From 6d8abce42792eba7385f0f2e4e2356735761c635 Mon Sep 17 00:00:00 2001 From: Blood-Asp Date: Mon, 12 Oct 2015 01:23:48 +0200 Subject: [PATCH 01/17] first half of 5.08.31 --- .../metatileentity/BaseMetaTileEntity.java | 5 +- .../java/gregtech/api/util/GT_ModHandler.java | 5 +- .../GT_MetaTileEntity_ProcessingArray.java | 12 ++-- .../loaders/misc/GT_Achievements.java | 10 +-- .../postload/GT_CraftingRecipeLoader.java | 4 +- .../postload/GT_MachineRecipeLoader.java | 15 +++- .../GT_Loader_Item_Block_And_Fluid.java | 68 +++++++++---------- .../resources/assets/gregtech/lang/en_US.lang | 6 +- .../resources/assets/gregtech/lang/zh_CN.lang | 4 +- 9 files changed, 70 insertions(+), 59 deletions(-) diff --git a/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java index ce5b3c62..9870ba9b 100644 --- a/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java +++ b/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java @@ -388,8 +388,9 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE || (getCoverIDAtSide((byte)4) == 0 && worldObj.getPrecipitationHeight(xCoord-1, zCoord ) - 1 < yCoord) || (getCoverIDAtSide((byte)5) == 0 && worldObj.getPrecipitationHeight(xCoord+1, zCoord ) - 1 < yCoord)) { if (GregTech_API.sMachineRainExplosions && worldObj.isRaining() && getBiome().rainfall > 0) { - if (getRandomNumber(10)==0) {doEnergyExplosion(); + if (getRandomNumber(10)==0) { try{GT_Mod.instance.achievements.issueAchievement(this.getWorldObj().getPlayerEntityByName(mOwnerName), "badweather");}catch(Exception e){} + doEnergyExplosion(); }else setOnFire(); } if (!hasValidMetaTileEntity()) { @@ -397,8 +398,8 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE return; } if (GregTech_API.sMachineThunderExplosions && worldObj.isThundering() && getBiome().rainfall > 0 && getRandomNumber(3) == 0) { - doEnergyExplosion(); try{GT_Mod.instance.achievements.issueAchievement(this.getWorldObj().getPlayerEntityByName(mOwnerName), "badweather");}catch(Exception e){} + doEnergyExplosion(); } } } diff --git a/main/java/gregtech/api/util/GT_ModHandler.java b/main/java/gregtech/api/util/GT_ModHandler.java index 22759cd0..b657c8ee 100644 --- a/main/java/gregtech/api/util/GT_ModHandler.java +++ b/main/java/gregtech/api/util/GT_ModHandler.java @@ -1503,7 +1503,10 @@ public class GT_ModHandler { if(isElectricItem(aStack)&&ic2.api.item.ElectricItem.manager.getCharge(aStack)>1000.0d){ for (int i = 0; i < tPlayer.inventory.mainInventory.length; i++) { if (GT_Utility.isStackInList(tPlayer.inventory.mainInventory[i], GregTech_API.sSolderingMetalList)) { - tPlayer.inventory.mainInventory[i].stackSize--; + if(tPlayer.inventory.mainInventory[i].stackSize<1)return false; + if(tPlayer.inventory.mainInventory[i].stackSize==1){tPlayer.inventory.mainInventory[i]=null;}else{ + tPlayer.inventory.mainInventory[i].stackSize--;} + if (tPlayer.inventoryContainer != null) tPlayer.inventoryContainer.detectAndSendChanges(); if (canUseElectricItem(aStack, 10000)) { return GT_ModHandler.useElectricItem(aStack, 10000, (EntityPlayer)aPlayer); diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java index 410eea61..a3478adc 100644 --- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java +++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java @@ -177,18 +177,22 @@ public class GT_MetaTileEntity_ProcessingArray extends GT_MetaTileEntity_MultiBl if(tInputList.size() > 0 || tFluids.length>0){ GT_Recipe tRecipe = map.findRecipe(getBaseMetaTileEntity(), mLastRecipe, false, gregtech.api.enums.GT_Values.V[tTier], tFluids, tInputs); if (tRecipe != null) { + if(tRecipe.mFluidInputs!=null){ + + } mLastRecipe = tRecipe; this.mEUt = 0; this.mOutputItems = null; this.mOutputFluids = null; - this.mMaxProgresstime = tRecipe.mDuration; int machines = Math.min(16,mInventory[1].stackSize); - this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); - this.mEfficiencyIncrease = 10000; int i = 0; for(;i> >>> < > <= >= == != ~ ( ) ?: , ; ;= ;=X; = i0 i1 i2 i3 i4 i5 o0 o1 o2 o3 o4 o5 v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 m0 m1 m2 m3 m4 m5 m6 m7 m8 m9 A B C D E F", + "'0' = false, 'everything but 0' = true, '!' turns '0' into '1' and everything else into '0'", "',' is just a separator for multiple executed Codes in a row.", + "';' means that the Program waits until the next tick before continuing. ';=10' and ';=10;' both mean that it will wait 10 Ticks instead of 1. And ';=0' or anything < 0 will default to 0.", + "If the '=' Operator is used within Brackets, it returns the value the variable has been set to.", + "The Program saves the Char Index of the current Task, the 10 Variables (which reset to 0 as soon as the Program Loop stops), the 10 Member Variables and the remaining waiting Time in its NBT.", + "A = 10, B = 11, C = 12, D = 13, E = 14, F = 15, just for Hexadecimal Space saving, since Redstone has only 4 Bits.", + "For implementing Loops you just need 1 Punch Card per Loop, these Cards can restart once they are finished, depending on how many other Cards there are in the Program Loop you inserted your Card into, since it will process them procedurally.", + "A Punch Card Processor can run up to four Loops, each with the length of seven Punch Cards, parallel.", + "Why does the Punch Card need Ink to be made, you ask? Because the empty one needs to have some lines on, and the for the punched one it prints the Code to execute in a human readable format on the Card." }); - - - - - - - - - GT_Utility.getWrittenBook("Manual_Punch_Cards", "Punch Card Manual V0.0", "Gregorius Techneticies", new String[] { "This Manual will explain the Functionality of the Punch Cards, once they are fully implemented. And no, they won't be like the IRL Punch Cards. This is just a current Idea Collection.", "(i1&&i2)?o1=15:o1=0;=10", "ignore all Whitespace Characters, use Long for saving the Numbers", "&& || ^^ & | ^ ! ++ -- + - % / // * ** << >> >>> < > <= >= == != ~ ( ) ?: , ; ;= ;=X; = i0 i1 i2 i3 i4 i5 o0 o1 o2 o3 o4 o5 v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 m0 m1 m2 m3 m4 m5 m6 m7 m8 m9 A B C D E F", "'0' = false, 'everything but 0' = true, '!' turns '0' into '1' and everything else into '0'", "',' is just a separator for multiple executed Codes in a row.", "';' means that the Program waits until the next tick before continuing. ';=10' and ';=10;' both mean that it will wait 10 Ticks instead of 1. And ';=0' or anything < 0 will default to 0.", "If the '=' Operator is used within Brackets, it returns the value the variable has been set to.", "The Program saves the Char Index of the current Task, the 10 Variables (which reset to 0 as soon as the Program Loop stops), the 10 Member Variables and the remaining waiting Time in its NBT.", "A = 10, B = 11, C = 12, D = 13, E = 14, F = 15, just for Hexadecimal Space saving, since Redstone has only 4 Bits.", "For implementing Loops you just need 1 Punch Card per Loop, these Cards can restart once they are finished, depending on how many other Cards there are in the Program Loop you inserted your Card into, since it will process them procedurally.", "A Punch Card Processor can run up to four Loops, each with the length of seven Punch Cards, parallel.", "Why does the Punch Card need Ink to be made, you ask? Because the empty one needs to have some lines on, and the for the punched one it prints the Code to execute in a human readable format on the Card." }); - - - - - - - - - - - - - - - - GT_Utility.getWrittenBook("Manual_Microwave", "Microwave Oven Manual", "Kitchen Industries", new String[] { "Congratulations, you inserted a random seemingly empty Book into the Microwave and these Letters appeared out of nowhere.", "You just got a Microwave Oven and asked yourself 'why do I even need it?'. It's simple, the Microwave can cook for just 128 EU and at an insane speed. Not even a normal E-furnace can do it that fast and cheap!", "This is the cheapest and fastest way to cook for you. That is why the Microwave Oven can be found in almost every Kitchen (see www.youwannabuyakitchen.ly).", "Long time exposure to Microwaves can cause Cancer, but we doubt Steve lives long enough to die because of that.", "Do not insert any Metals. It might result in an Explosion.", "Do not dry Animals with it. It will result in a Hot Dog, no matter which Animal you put into it.", "Do not insert inflammable Objects. The Oven will catch on Fire.", "Do not insert Explosives such as Eggs. Just don't." }); - - - - - - - - - - + GT_Utility.getWrittenBook("Manual_Microwave", "Microwave Oven Manual", "Kitchen Industries", new String[] { + "Congratulations, you inserted a random seemingly empty Book into the Microwave and these Letters appeared out of nowhere.", + "You just got a Microwave Oven and asked yourself 'why do I even need it?'. It's simple, the Microwave can cook for just 128 EU and at an insane speed. Not even a normal E-furnace can do it that fast and cheap!", + "This is the cheapest and fastest way to cook for you. That is why the Microwave Oven can be found in almost every Kitchen (see www.youwannabuyakitchen.ly).", + "Long time exposure to Microwaves can cause Cancer, but we doubt Steve lives long enough to die because of that.", + "Do not insert any Metals. It might result in an Explosion.", + "Do not dry Animals with it. It will result in a Hot Dog, no matter which Animal you put into it.", + "Do not insert inflammable Objects. The Oven will catch on Fire.", "Do not insert Explosives such as Eggs. Just don't." }); + GT_Log.out.println("GT_Mod: Register Items."); new GT_IntegratedCircuit_Item(); @@ -137,7 +132,6 @@ public class GT_Loader_Item_Block_And_Fluid GT_ModHandler.addCraftingRecipe(ItemList.Reactor_Coolant_NaK_6.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE , new Object[] { "PCP", "PDP", "PCP",'C', ItemList.Reactor_Coolant_NaK_3,'P', OrePrefixes.plate.get(Materials.Tin),'D',OrePrefixes.plateDense.get(Materials.Copper) }); ItemList.ThoriumCell_1.set(new GT_RadioactiveCellIC_Item("Thoriumcell", "Fuel Rod (Thorium)", 1, 50000, 0.2F,0,0.25F)); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.ThoriumCell_1.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE , new Object[] {Ic2Items.fuelRod , OrePrefixes.dust.get(Materials.Thorium) }); ItemList.ThoriumCell_2.set(new GT_RadioactiveCellIC_Item("Double_Thoriumcell", "Double Fuel Rod (Thorium)", 2, 50000, 0.2F,0,0.25F)); GT_ModHandler.addCraftingRecipe(ItemList.ThoriumCell_2.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE , new Object[] { "RPR", " ", " ",'R', ItemList.ThoriumCell_1 ,'P', OrePrefixes.plate.get(Materials.Iron) }); diff --git a/main/resources/assets/gregtech/lang/en_US.lang b/main/resources/assets/gregtech/lang/en_US.lang index 6a34a8e1..695cd07a 100644 --- a/main/resources/assets/gregtech/lang/en_US.lang +++ b/main/resources/assets/gregtech/lang/en_US.lang @@ -294,13 +294,13 @@ achievement.batterys.desc=Craft a Battery Buffer achievement.badweather=Bad Weather achievement.badweather.desc=Forget to build a Roof above your Machines achievement.electricproblems=Electric Problems -achievement.electricproblems.desc=Loose a Machine due to Overvoltage +achievement.electricproblems.desc=Lose a Machine due to Overvoltage achievement.ebf=Electric Blast Furnace achievement.ebf.desc=Craft an Electric Blast Furnace achievement.energyhatch=You need three of them achievement.energyhatch.desc=Craft a LV Energy Hatch -achievement.aluminium=Aluminium -achievement.aluminium.desc=Produce an Aluminium Ingot +achievement.gtaluminium=Aluminium +achievement.gtaluminium.desc=Produce an Aluminium Ingot achievement.highpowersmelt=High Power Smelter achievement.highpowersmelt.desc=Craft a Multi Furnace achievement.oilplant=Oil Plant diff --git a/main/resources/assets/gregtech/lang/zh_CN.lang b/main/resources/assets/gregtech/lang/zh_CN.lang index 3fad547f..aa7913fc 100644 --- a/main/resources/assets/gregtech/lang/zh_CN.lang +++ b/main/resources/assets/gregtech/lang/zh_CN.lang @@ -299,8 +299,8 @@ achievement.ebf=电力高炉 achievement.ebf.desc=制造一台电力高炉 achievement.energyhatch=你需要三个 achievement.energyhatch.desc=制造一个LV级能源输入舱 -achievement.aluminium=铝 -achievement.aluminium.desc=制作一块铝锭 +achievement.gtaluminium=铝 +achievement.gtaluminium.desc=制作一块铝锭 achievement.highpowersmelt=高功率冶炼厂 achievement.highpowersmelt.desc=制造一台工业熔炉 achievement.oilplant=原油工厂 From 836aac1d1a39d1fbea715a5b0621a98fc7fcf995 Mon Sep 17 00:00:00 2001 From: Shawn Buckley Date: Wed, 14 Oct 2015 17:34:26 -0400 Subject: [PATCH 02/17] Update ore dictionary logger header language --- main/java/gregtech/GT_Mod.java | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/main/java/gregtech/GT_Mod.java b/main/java/gregtech/GT_Mod.java index 9dca7996..6579445b 100644 --- a/main/java/gregtech/GT_Mod.java +++ b/main/java/gregtech/GT_Mod.java @@ -235,18 +235,12 @@ public class GT_Mod try { List tList = ((GT_Log.LogBuffer)GT_Log.ore).mBufferedOreDictLog; - GT_Log.ore = new PrintStream(GT_Log.mOreDictLogFile); - GT_Log.ore.println("**********************************************************************"); - GT_Log.ore.println("* This is the complete Log of the GregTech OreDictionary Handler *"); - GT_Log.ore.println("* Everything in the OreDict goes through it sometimes causing Errors *"); - GT_Log.ore.println("* These Errors are getting logged aswell as properly registered Ores *"); - GT_Log.ore.println("* If you see something fishy going on in this Log, such as improper *"); - GT_Log.ore.println("* Items being registered, then mention it to the corresponding Mod *"); - GT_Log.ore.println("* In case it mentions GregTech itself improperly registering Stuff *"); - GT_Log.ore.println("* then please contact me about that immediatly *"); - GT_Log.ore.println("* *"); - GT_Log.ore.println("* In case of something being 'ignored properly', that one isnt a Bug *"); - GT_Log.ore.println("**********************************************************************"); + GT_Log.ore.println("******************************************************************************"); + GT_Log.ore.println("* This is the complete log of the GT5-Unofficial OreDictionary Handler. It *"); + GT_Log.ore.println("* processes all OreDictionary entries and can sometimes cause errors. All *"); + GT_Log.ore.println("* entries and errors are being logged. If you see an error please raise an *"); + GT_Log.ore.println("* issue at https://github.com/Blood-Asp/GT5-Unofficial. *"); + GT_Log.ore.println("******************************************************************************"); String tString; for (Iterator i$ = tList.iterator(); i$.hasNext(); GT_Log.ore.println(tString)) { tString = (String)i$.next(); @@ -1111,9 +1105,3 @@ public void onIDChangingEvent(FMLModIdMappingEvent aEvent) gregtechproxy.doSonictronSound(aStack, aWorld, aX, aY, aZ); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.GT_Mod - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file From 22202a5fd714979676ca8b40a9c5a75ed0f50022 Mon Sep 17 00:00:00 2001 From: Shawn Buckley Date: Wed, 14 Oct 2015 22:33:33 -0400 Subject: [PATCH 03/17] Removed JD comments --- main/java/gregtech/GT_Mod.java | 6 ------ .../api/util/GT_RecipeRegistrator.java | 2 +- main/java/gregtech/common/GT_DummyWorld.java | 6 ------ .../gregtech/common/GT_IteratorRandom.java | 6 ------ .../common/GT_MinableOreGenerator.java | 6 ------ main/java/gregtech/common/GT_Network.java | 6 ------ .../common/GT_PlayerActivityLogger.java | 6 ------ main/java/gregtech/common/GT_Server.java | 6 ------ .../common/GT_Worldgen_GT_Ore_Layer.java | 6 ------ .../common/GT_Worldgen_GT_Ore_SmallPieces.java | 6 ------ .../gregtech/common/GT_Worldgen_Stone.java | 6 ------ .../gregtech/common/GT_Worldgenerator.java | 6 ------ .../common/blocks/GT_Block_Casings1.java | 6 ------ .../common/blocks/GT_Block_Casings2.java | 6 ------ .../common/blocks/GT_Block_Casings3.java | 6 ------ .../blocks/GT_Block_Casings_Abstract.java | 6 ------ .../common/blocks/GT_Block_Concretes.java | 6 ------ .../common/blocks/GT_Block_Granites.java | 6 ------ .../common/blocks/GT_Block_Machines.java | 6 ------ .../gregtech/common/blocks/GT_Block_Ores.java | 10 ---------- .../blocks/GT_Block_Stones_Abstract.java | 6 ------ .../common/blocks/GT_Item_Casings1.java | 6 ------ .../common/blocks/GT_Item_Casings2.java | 6 ------ .../common/blocks/GT_Item_Casings3.java | 6 ------ .../common/blocks/GT_Item_Casings4.java | 6 ------ .../blocks/GT_Item_Casings_Abstract.java | 6 ------ .../common/blocks/GT_Item_Concretes.java | 6 ------ .../common/blocks/GT_Item_Granites.java | 6 ------ .../common/blocks/GT_Item_Machines.java | 6 ------ .../gregtech/common/blocks/GT_Item_Ores.java | 6 ------ .../common/blocks/GT_Item_Stones_Abstract.java | 6 ------ .../common/blocks/GT_Material_Casings.java | 6 ------ .../common/blocks/GT_Material_Machines.java | 6 ------ .../gregtech/common/blocks/GT_Packet_Ores.java | 6 ------ .../common/blocks/GT_TileEntity_Ores.java | 10 ---------- .../gregtech/common/covers/GT_Cover_Arm.java | 6 ------ .../common/covers/GT_Cover_Blastproof.java | 6 ------ .../common/covers/GT_Cover_ControlsWork.java | 6 ------ .../common/covers/GT_Cover_Conveyor.java | 6 ------ .../common/covers/GT_Cover_Crafting.java | 6 ------ .../common/covers/GT_Cover_DoesWork.java | 6 ------ .../gregtech/common/covers/GT_Cover_Drain.java | 6 ------ .../common/covers/GT_Cover_EUMeter.java | 6 ------ .../common/covers/GT_Cover_EnergyOnly.java | 6 ------ .../common/covers/GT_Cover_ItemMeter.java | 6 ------ .../gregtech/common/covers/GT_Cover_Lens.java | 6 ------ .../gregtech/common/covers/GT_Cover_Pump.java | 6 ------ .../covers/GT_Cover_RedstoneConductor.java | 6 ------ .../GT_Cover_RedstoneReceiverExternal.java | 6 ------ .../GT_Cover_RedstoneReceiverInternal.java | 6 ------ .../covers/GT_Cover_RedstoneSignalizer.java | 6 ------ .../GT_Cover_RedstoneTransmitterExternal.java | 6 ------ .../GT_Cover_RedstoneTransmitterInternal.java | 6 ------ .../covers/GT_Cover_RedstoneWirelessBase.java | 6 ------ .../common/covers/GT_Cover_Screen.java | 6 ------ .../common/covers/GT_Cover_Shutter.java | 6 ------ .../gregtech/common/covers/GT_Cover_Vent.java | 6 ------ .../common/entities/GT_Entity_Arrow.java | 6 ------ .../entities/GT_Entity_Arrow_Potion.java | 6 ------ .../common/gui/GT_Container_Boiler.java | 6 ------ .../gui/GT_Container_BronzeBlastFurnace.java | 6 ------ .../common/gui/GT_Container_ChestBuffer.java | 6 ------ .../common/gui/GT_Container_Filter.java | 6 ------ .../common/gui/GT_Container_Regulator.java | 6 ------ .../common/gui/GT_Container_SuperBuffer.java | 6 ------ .../common/gui/GT_Container_TypeFilter.java | 6 ------ .../common/gui/GT_GUIContainer_Boiler.java | 6 ------ .../GT_GUIContainer_BronzeBlastFurnace.java | 6 ------ .../gui/GT_GUIContainer_ChestBuffer.java | 6 ------ .../common/gui/GT_GUIContainer_Filter.java | 6 ------ .../common/gui/GT_GUIContainer_Regulator.java | 6 ------ .../gui/GT_GUIContainer_SuperBuffer.java | 6 ------ .../common/gui/GT_GUIContainer_TypeFilter.java | 6 ------ .../common/items/GT_FluidDisplayItem.java | 6 ------ .../items/GT_IntegratedCircuit_Item.java | 6 ------ .../common/items/GT_MetaGenerated_Item_01.java | 6 ------ .../common/items/GT_MetaGenerated_Item_02.java | 6 ------ .../common/items/GT_MetaGenerated_Item_03.java | 6 ------ .../common/items/GT_MetaGenerated_Tool_01.java | 18 ++++++------------ .../common/items/GT_SensorCard_Item.java | 6 ------ .../items/behaviors/Behaviour_Arrow.java | 6 ------ .../behaviors/Behaviour_Arrow_Potion.java | 6 ------ .../items/behaviors/Behaviour_Crowbar.java | 6 ------ .../items/behaviors/Behaviour_DataOrb.java | 6 ------ .../items/behaviors/Behaviour_DataStick.java | 6 ------ .../common/items/behaviors/Behaviour_Hoe.java | 6 ------ .../items/behaviors/Behaviour_Lighter.java | 6 ------ .../common/items/behaviors/Behaviour_None.java | 6 ------ .../behaviors/Behaviour_Plunger_Essentia.java | 6 ------ .../behaviors/Behaviour_Plunger_Fluid.java | 6 ------ .../behaviors/Behaviour_Plunger_Item.java | 6 ------ .../behaviors/Behaviour_PrintedPages.java | 6 ------ .../items/behaviors/Behaviour_Prospecting.java | 6 ------ .../items/behaviors/Behaviour_Scanner.java | 6 ------ .../items/behaviors/Behaviour_Scoop.java | 6 ------ .../items/behaviors/Behaviour_Screwdriver.java | 6 ------ .../items/behaviors/Behaviour_Sense.java | 6 ------ .../items/behaviors/Behaviour_SensorKit.java | 6 ------ .../items/behaviors/Behaviour_SoftHammer.java | 6 ------ .../items/behaviors/Behaviour_Sonictron.java | 6 ------ .../items/behaviors/Behaviour_Spray_Color.java | 6 ------ .../items/behaviors/Behaviour_WrittenBook.java | 6 ------ .../GT_Circuit_BasicLogic.java | 6 ------ .../redstonecircuits/GT_Circuit_BitAnd.java | 6 ------ .../GT_Circuit_CombinationLock.java | 6 ------ .../redstonecircuits/GT_Circuit_Equals.java | 6 ------ .../redstonecircuits/GT_Circuit_Pulser.java | 6 ------ .../GT_Circuit_Randomizer.java | 6 ------ .../GT_Circuit_RedstoneMeter.java | 6 ------ .../redstonecircuits/GT_Circuit_Repeater.java | 6 ------ .../redstonecircuits/GT_Circuit_Timer.java | 6 ------ .../common/render/GT_CapeRenderer.java | 6 ------ .../render/GT_MetaGenerated_Item_Renderer.java | 6 ------ .../render/GT_MetaGenerated_Tool_Renderer.java | 6 ------ .../gregtech/common/render/GT_RenderUtil.java | 6 ------ .../render/GT_Renderer_Entity_Arrow.java | 6 ------ .../GT_MetaTileEntity_ChestBuffer.java | 6 ------ .../automation/GT_MetaTileEntity_Filter.java | 6 ------ .../GT_MetaTileEntity_Regulator.java | 6 ------ .../GT_MetaTileEntity_SuperBuffer.java | 6 ------ .../GT_MetaTileEntity_TypeFilter.java | 6 ------ .../boilers/GT_MetaTileEntity_Boiler_Lava.java | 6 ------ .../GT_MetaTileEntity_Boiler_Solar.java | 6 ------ .../GT_MetaTileEntity_Boiler_Steel.java | 6 ------ .../GT_MetaTileEntity_DieselGenerator.java | 6 ------ ...GT_MetaTileEntity_FluidNaquadahReactor.java | 6 ------ .../GT_MetaTileEntity_GasTurbine.java | 6 ------ ...GT_MetaTileEntity_SolidNaquadahReactor.java | 6 ------ .../GT_MetaTileEntity_SteamTurbine.java | 6 ------ .../GT_MetaTileEntity_BasicHull_Bronze.java | 6 ------ ..._MetaTileEntity_BasicHull_BronzeBricks.java | 6 ------ .../GT_MetaTileEntity_BasicHull_Steel.java | 6 ------ ...T_MetaTileEntity_BasicHull_SteelBricks.java | 6 ------ .../basic/GT_MetaTileEntity_Boxinator.java | 6 ------ .../basic/GT_MetaTileEntity_Disassembler.java | 6 ------ .../GT_MetaTileEntity_Massfabricator.java | 6 ------ .../basic/GT_MetaTileEntity_PotionBrewer.java | 6 ------ .../basic/GT_MetaTileEntity_Printer.java | 6 ------ .../basic/GT_MetaTileEntity_Replicator.java | 6 ------ .../basic/GT_MetaTileEntity_RockBreaker.java | 6 ------ .../basic/GT_MetaTileEntity_Scanner.java | 6 ------ .../GT_MetaTileEntity_BronzeBlastFurnace.java | 6 ------ ...GT_MetaTileEntity_ElectricBlastFurnace.java | 6 ------ .../GT_MetaTileEntity_ImplosionCompressor.java | 6 ------ .../multi/GT_MetaTileEntity_LargeBoiler.java | 10 ---------- .../GT_MetaTileEntity_LargeBoiler_Bronze.java | 6 ------ .../GT_MetaTileEntity_LargeBoiler_Steel.java | 6 ------ ...taTileEntity_LargeBoiler_TungstenSteel.java | 6 ------ .../multi/GT_MetaTileEntity_MultiFurnace.java | 6 ------ .../multi/GT_MetaTileEntity_VacuumFreezer.java | 6 ------ .../GT_MetaTileEntity_AlloySmelter_Bronze.java | 6 ------ .../GT_MetaTileEntity_AlloySmelter_Steel.java | 6 ------ .../GT_MetaTileEntity_Compressor_Bronze.java | 6 ------ .../GT_MetaTileEntity_Compressor_Steel.java | 6 ------ .../GT_MetaTileEntity_Extractor_Bronze.java | 6 ------ .../GT_MetaTileEntity_Extractor_Steel.java | 6 ------ .../GT_MetaTileEntity_ForgeHammer_Bronze.java | 6 ------ .../GT_MetaTileEntity_ForgeHammer_Steel.java | 6 ------ .../GT_MetaTileEntity_Furnace_Bronze.java | 6 ------ .../steam/GT_MetaTileEntity_Furnace_Steel.java | 6 ------ .../GT_MetaTileEntity_Macerator_Steel.java | 6 ------ .../storage/GT_MetaTileEntity_Locker.java | 6 ------ main/java/gregtech/common/tools/GT_Tool.java | 6 ------ .../gregtech/common/tools/GT_Tool_Axe.java | 6 ------ .../common/tools/GT_Tool_BranchCutter.java | 6 ------ .../common/tools/GT_Tool_ButcheryKnife.java | 6 ------ .../gregtech/common/tools/GT_Tool_BuzzSaw.java | 6 ------ .../common/tools/GT_Tool_Chainsaw_HV.java | 6 ------ .../common/tools/GT_Tool_Chainsaw_LV.java | 6 ------ .../common/tools/GT_Tool_Chainsaw_MV.java | 6 ------ .../gregtech/common/tools/GT_Tool_Crowbar.java | 6 ------ .../common/tools/GT_Tool_Drill_HV.java | 6 ------ .../common/tools/GT_Tool_Drill_LV.java | 6 ------ .../common/tools/GT_Tool_Drill_MV.java | 6 ------ .../gregtech/common/tools/GT_Tool_File.java | 6 ------ .../common/tools/GT_Tool_HardHammer.java | 6 ------ .../gregtech/common/tools/GT_Tool_Hoe.java | 6 ------ .../common/tools/GT_Tool_JackHammer.java | 6 ------ .../gregtech/common/tools/GT_Tool_Knife.java | 6 ------ .../gregtech/common/tools/GT_Tool_Mortar.java | 6 ------ .../gregtech/common/tools/GT_Tool_Pickaxe.java | 6 ------ .../gregtech/common/tools/GT_Tool_Plow.java | 6 ------ .../gregtech/common/tools/GT_Tool_Plunger.java | 6 ------ .../common/tools/GT_Tool_RollingPin.java | 6 ------ .../gregtech/common/tools/GT_Tool_Saw.java | 6 ------ .../gregtech/common/tools/GT_Tool_Scoop.java | 6 ------ .../common/tools/GT_Tool_Screwdriver.java | 6 ------ .../common/tools/GT_Tool_Screwdriver_LV.java | 6 ------ .../gregtech/common/tools/GT_Tool_Sense.java | 6 ------ .../gregtech/common/tools/GT_Tool_Shovel.java | 6 ------ .../common/tools/GT_Tool_SoftHammer.java | 6 ------ .../gregtech/common/tools/GT_Tool_Sword.java | 6 ------ .../common/tools/GT_Tool_UniversalSpade.java | 6 ------ .../common/tools/GT_Tool_WireCutter.java | 6 ------ .../common/tools/GT_Tool_Wrench_HV.java | 6 ------ .../common/tools/GT_Tool_Wrench_LV.java | 6 ------ .../common/tools/GT_Tool_Wrench_MV.java | 6 ------ .../loaders/load/GT_CoverBehaviorLoader.java | 6 ------ .../gregtech/loaders/load/GT_FuelLoader.java | 6 ------ .../loaders/load/GT_SonictronLoader.java | 6 ------ .../gregtech/loaders/misc/GT_CoverLoader.java | 6 ------ .../loaders/oreprocessing/ProcessingAll.java | 6 ------ .../oreprocessing/ProcessingArrows.java | 6 ------ .../oreprocessing/ProcessingBattery.java | 6 ------ .../loaders/oreprocessing/ProcessingBeans.java | 6 ------ .../loaders/oreprocessing/ProcessingBlock.java | 6 ------ .../loaders/oreprocessing/ProcessingBolt.java | 6 ------ .../loaders/oreprocessing/ProcessingCell.java | 10 ---------- .../oreprocessing/ProcessingCellPlasma.java | 6 ------ .../oreprocessing/ProcessingCircuit.java | 6 ------ .../oreprocessing/ProcessingCompressed.java | 6 ------ .../oreprocessing/ProcessingCrafting.java | 6 ------ .../loaders/oreprocessing/ProcessingCrop.java | 6 ------ .../ProcessingCrushedCentrifuged.java | 6 ------ .../ProcessingCrushedPurified.java | 6 ------ .../oreprocessing/ProcessingCrystallized.java | 6 ------ .../loaders/oreprocessing/ProcessingDirty.java | 6 ------ .../loaders/oreprocessing/ProcessingDust.java | 6 ------ .../oreprocessing/ProcessingDustImpure.java | 6 ------ .../oreprocessing/ProcessingDustSmall.java | 6 ------ .../oreprocessing/ProcessingDustTiny.java | 6 ------ .../loaders/oreprocessing/ProcessingDye.java | 6 ------ .../loaders/oreprocessing/ProcessingFoil.java | 6 ------ .../loaders/oreprocessing/ProcessingFood.java | 6 ------ .../loaders/oreprocessing/ProcessingGear.java | 6 ------ .../oreprocessing/ProcessingGearSmall.java | 6 ------ .../loaders/oreprocessing/ProcessingGem.java | 6 ------ .../oreprocessing/ProcessingGemChipped.java | 6 ------ .../oreprocessing/ProcessingGemExquisite.java | 6 ------ .../oreprocessing/ProcessingGemFlawed.java | 6 ------ .../oreprocessing/ProcessingGemFlawless.java | 6 ------ .../oreprocessing/ProcessingIngot1.java | 6 ------ .../oreprocessing/ProcessingIngot2.java | 6 ------ .../oreprocessing/ProcessingIngot3.java | 6 ------ .../oreprocessing/ProcessingIngot4.java | 6 ------ .../oreprocessing/ProcessingIngot5.java | 6 ------ .../oreprocessing/ProcessingIngotHot.java | 6 ------ .../loaders/oreprocessing/ProcessingItem.java | 6 ------ .../oreprocessing/ProcessingLeaves.java | 6 ------ .../loaders/oreprocessing/ProcessingLens.java | 6 ------ .../loaders/oreprocessing/ProcessingLog.java | 6 ------ .../oreprocessing/ProcessingNugget.java | 6 ------ .../loaders/oreprocessing/ProcessingOre.java | 6 ------ .../oreprocessing/ProcessingOrePoor.java | 8 +------- .../oreprocessing/ProcessingOreSmelting.java | 2 +- .../oreprocessing/ProcessingPipeLarge.java | 6 ------ .../oreprocessing/ProcessingPipeMedium.java | 6 ------ .../ProcessingPipeRestrictive.java | 6 ------ .../oreprocessing/ProcessingPipeSmall.java | 6 ------ .../loaders/oreprocessing/ProcessingPlank.java | 6 ------ .../oreprocessing/ProcessingPlate1.java | 6 ------ .../oreprocessing/ProcessingPlate2.java | 2 +- .../oreprocessing/ProcessingPlate3.java | 6 ------ .../oreprocessing/ProcessingPlate4.java | 6 ------ .../oreprocessing/ProcessingPlate5.java | 6 ------ .../oreprocessing/ProcessingPlate9.java | 6 ------ .../oreprocessing/ProcessingPlateAlloy.java | 6 ------ .../loaders/oreprocessing/ProcessingPure.java | 6 ------ .../oreprocessing/ProcessingRecycling.java | 6 ------ .../loaders/oreprocessing/ProcessingSand.java | 6 ------ .../oreprocessing/ProcessingSaplings.java | 6 ------ .../oreprocessing/ProcessingShaping.java | 6 ------ .../loaders/oreprocessing/ProcessingSlab.java | 6 ------ .../loaders/oreprocessing/ProcessingStick.java | 6 ------ .../oreprocessing/ProcessingStickLong.java | 6 ------ .../loaders/oreprocessing/ProcessingStone.java | 6 ------ .../oreprocessing/ProcessingStoneCobble.java | 6 ------ .../oreprocessing/ProcessingStoneVarious.java | 6 ------ .../oreprocessing/ProcessingToolHeadArrow.java | 6 ------ .../oreprocessing/ProcessingToolHeadAxe.java | 6 ------ .../ProcessingToolHeadBuzzSaw.java | 6 ------ .../ProcessingToolHeadChainsaw.java | 6 ------ .../oreprocessing/ProcessingToolHeadDrill.java | 6 ------ .../oreprocessing/ProcessingToolHeadFile.java | 6 ------ .../oreprocessing/ProcessingToolHeadHoe.java | 6 ------ .../ProcessingToolHeadPickaxe.java | 6 ------ .../oreprocessing/ProcessingToolHeadPlow.java | 6 ------ .../oreprocessing/ProcessingToolHeadSaw.java | 6 ------ .../oreprocessing/ProcessingToolHeadSense.java | 6 ------ .../ProcessingToolHeadShovel.java | 6 ------ .../oreprocessing/ProcessingToolHeadSword.java | 6 ------ .../ProcessingToolHeadUniversalSpade.java | 6 ------ .../ProcessingToolHeadWrench.java | 6 ------ .../oreprocessing/ProcessingTransforming.java | 6 ------ .../loaders/oreprocessing/ProcessingWax.java | 6 ------ .../oreprocessing/ProcessingWire01.java | 6 ------ .../oreprocessing/ProcessingWire02.java | 6 ------ .../oreprocessing/ProcessingWire04.java | 6 ------ .../oreprocessing/ProcessingWire08.java | 6 ------ .../oreprocessing/ProcessingWire12.java | 6 ------ .../oreprocessing/ProcessingWire16.java | 6 ------ .../postload/GT_BlockResistanceLoader.java | 6 ------ .../loaders/postload/GT_BookAndLootLoader.java | 6 ------ .../loaders/postload/GT_CropLoader.java | 6 ------ .../postload/GT_ItemMaxStacksizeLoader.java | 6 ------ .../postload/GT_MinableRegistrator.java | 6 ------ .../postload/GT_RecyclerBlacklistLoader.java | 6 ------ .../postload/GT_ScrapboxDropLoader.java | 6 ------ .../loaders/postload/GT_UUMRecipeLoader.java | 6 ------ .../loaders/postload/GT_Worldgenloader.java | 6 ------ .../preload/GT_Loader_CircuitBehaviors.java | 6 ------ .../loaders/preload/GT_Loader_ItemData.java | 6 ------ .../GT_Loader_Item_Block_And_Fluid.java | 6 ------ .../preload/GT_Loader_MetaTileEntities.java | 10 ---------- .../preload/GT_Loader_OreDictionary.java | 6 ------ .../preload/GT_Loader_OreProcessing.java | 6 ------ .../gregtech/nei/GT_NEI_DefaultHandler.java | 6 ------ main/java/gregtech/nei/NEI_GT_Config.java | 6 ------ 308 files changed, 10 insertions(+), 1860 deletions(-) diff --git a/main/java/gregtech/GT_Mod.java b/main/java/gregtech/GT_Mod.java index 9dca7996..ad9b2ea3 100644 --- a/main/java/gregtech/GT_Mod.java +++ b/main/java/gregtech/GT_Mod.java @@ -1111,9 +1111,3 @@ public void onIDChangingEvent(FMLModIdMappingEvent aEvent) gregtechproxy.doSonictronSound(aStack, aWorld, aX, aY, aZ); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.GT_Mod - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/api/util/GT_RecipeRegistrator.java b/main/java/gregtech/api/util/GT_RecipeRegistrator.java index ee9f080c..a11a4a1a 100644 --- a/main/java/gregtech/api/util/GT_RecipeRegistrator.java +++ b/main/java/gregtech/api/util/GT_RecipeRegistrator.java @@ -310,4 +310,4 @@ public class GT_RecipeRegistrator { {"Scythe" , s_I+s_P+s_H, s_R+s_F+s_P, s_R+" "+" "}, {"Scythe" , s_H+s_P+s_I, s_P+s_F+s_R, " "+" "+s_R} }; -} \ No newline at end of file +} diff --git a/main/java/gregtech/common/GT_DummyWorld.java b/main/java/gregtech/common/GT_DummyWorld.java index aed129e7..d7b26522 100644 --- a/main/java/gregtech/common/GT_DummyWorld.java +++ b/main/java/gregtech/common/GT_DummyWorld.java @@ -145,9 +145,3 @@ public class GT_DummyWorld return 0; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.GT_DummyWorld - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/GT_IteratorRandom.java b/main/java/gregtech/common/GT_IteratorRandom.java index e0e33bfd..d61953d5 100644 --- a/main/java/gregtech/common/GT_IteratorRandom.java +++ b/main/java/gregtech/common/GT_IteratorRandom.java @@ -16,9 +16,3 @@ public class GT_IteratorRandom return --this.mIterationStep; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.GT_IteratorRandom - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/GT_MinableOreGenerator.java b/main/java/gregtech/common/GT_MinableOreGenerator.java index cd0c9bfb..252b8896 100644 --- a/main/java/gregtech/common/GT_MinableOreGenerator.java +++ b/main/java/gregtech/common/GT_MinableOreGenerator.java @@ -77,9 +77,3 @@ public class GT_MinableOreGenerator return true; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.GT_MinableOreGenerator - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/GT_Network.java b/main/java/gregtech/common/GT_Network.java index 51044140..3598b7e5 100644 --- a/main/java/gregtech/common/GT_Network.java +++ b/main/java/gregtech/common/GT_Network.java @@ -111,9 +111,3 @@ public class GT_Network } } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.GT_Network - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/GT_PlayerActivityLogger.java b/main/java/gregtech/common/GT_PlayerActivityLogger.java index 7d5a247a..9526c21d 100644 --- a/main/java/gregtech/common/GT_PlayerActivityLogger.java +++ b/main/java/gregtech/common/GT_PlayerActivityLogger.java @@ -34,9 +34,3 @@ public class GT_PlayerActivityLogger catch (Throwable e) {} } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.GT_PlayerActivityLogger - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/GT_Server.java b/main/java/gregtech/common/GT_Server.java index 4a56c538..cdcd954d 100644 --- a/main/java/gregtech/common/GT_Server.java +++ b/main/java/gregtech/common/GT_Server.java @@ -34,9 +34,3 @@ public class GT_Server return null; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.GT_Server - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java b/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java index f92806b3..6cbe3e9b 100644 --- a/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java +++ b/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java @@ -97,9 +97,3 @@ public class GT_Worldgen_GT_Ore_Layer return true; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.GT_Worldgen_GT_Ore_Layer - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java b/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java index 6fe2bfbb..6c7eb04d 100644 --- a/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java +++ b/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java @@ -47,9 +47,3 @@ public class GT_Worldgen_GT_Ore_SmallPieces return true; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.GT_Worldgen_GT_Ore_SmallPieces - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/GT_Worldgen_Stone.java b/main/java/gregtech/common/GT_Worldgen_Stone.java index f24dc9af..d6630a24 100644 --- a/main/java/gregtech/common/GT_Worldgen_Stone.java +++ b/main/java/gregtech/common/GT_Worldgen_Stone.java @@ -89,9 +89,3 @@ public class GT_Worldgen_Stone return false; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.GT_Worldgen_Stone - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/GT_Worldgenerator.java b/main/java/gregtech/common/GT_Worldgenerator.java index 0d2f5fc3..77b79efd 100644 --- a/main/java/gregtech/common/GT_Worldgenerator.java +++ b/main/java/gregtech/common/GT_Worldgenerator.java @@ -128,9 +128,3 @@ public class GT_Worldgenerator } } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.GT_Worldgenerator - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/blocks/GT_Block_Casings1.java b/main/java/gregtech/common/blocks/GT_Block_Casings1.java index a24aee84..e8d3621c 100644 --- a/main/java/gregtech/common/blocks/GT_Block_Casings1.java +++ b/main/java/gregtech/common/blocks/GT_Block_Casings1.java @@ -88,9 +88,3 @@ public class GT_Block_Casings1 return aWorld.getBlockMetadata(aX, aY, aZ) > 9 ? super.colorMultiplier(aWorld, aX, aY, aZ) : gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[0] << 16 | gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[1] << 8 | gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[2]; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.blocks.GT_Block_Casings1 - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/blocks/GT_Block_Casings2.java b/main/java/gregtech/common/blocks/GT_Block_Casings2.java index 73d049be..38054eb1 100644 --- a/main/java/gregtech/common/blocks/GT_Block_Casings2.java +++ b/main/java/gregtech/common/blocks/GT_Block_Casings2.java @@ -100,9 +100,3 @@ public class GT_Block_Casings2 return aWorld.getBlockMetadata(aX, aY, aZ) == 8 ? Blocks.bedrock.getExplosionResistance(aTNT) : super.getExplosionResistance(aTNT, aWorld, aX, aY, aZ, eX, eY, eZ); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.blocks.GT_Block_Casings2 - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/blocks/GT_Block_Casings3.java b/main/java/gregtech/common/blocks/GT_Block_Casings3.java index 30e46a8c..467efc12 100644 --- a/main/java/gregtech/common/blocks/GT_Block_Casings3.java +++ b/main/java/gregtech/common/blocks/GT_Block_Casings3.java @@ -91,9 +91,3 @@ public class GT_Block_Casings3 return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon(); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.blocks.GT_Block_Casings3 - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/blocks/GT_Block_Casings_Abstract.java b/main/java/gregtech/common/blocks/GT_Block_Casings_Abstract.java index fa04e490..eb8b5bca 100644 --- a/main/java/gregtech/common/blocks/GT_Block_Casings_Abstract.java +++ b/main/java/gregtech/common/blocks/GT_Block_Casings_Abstract.java @@ -138,9 +138,3 @@ public abstract class GT_Block_Casings_Abstract } } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.blocks.GT_Block_Casings_Abstract - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/blocks/GT_Block_Concretes.java b/main/java/gregtech/common/blocks/GT_Block_Concretes.java index d312719b..ae432fa4 100644 --- a/main/java/gregtech/common/blocks/GT_Block_Concretes.java +++ b/main/java/gregtech/common/blocks/GT_Block_Concretes.java @@ -102,9 +102,3 @@ public class GT_Block_Concretes return AxisAlignedBB.getBoundingBox(aX, aY, aZ, aX + 1, aY + 0.875D, aZ + 1); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.blocks.GT_Block_Concretes - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/blocks/GT_Block_Granites.java b/main/java/gregtech/common/blocks/GT_Block_Granites.java index 379fb000..906a3a2a 100644 --- a/main/java/gregtech/common/blocks/GT_Block_Granites.java +++ b/main/java/gregtech/common/blocks/GT_Block_Granites.java @@ -78,9 +78,3 @@ public class GT_Block_Granites return !(entity instanceof EntityWither); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.blocks.GT_Block_Granites - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/blocks/GT_Block_Machines.java b/main/java/gregtech/common/blocks/GT_Block_Machines.java index dd791ec7..5f756973 100644 --- a/main/java/gregtech/common/blocks/GT_Block_Machines.java +++ b/main/java/gregtech/common/blocks/GT_Block_Machines.java @@ -576,9 +576,3 @@ public class GT_Block_Machines return false; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.blocks.GT_Block_Machines - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/blocks/GT_Block_Ores.java b/main/java/gregtech/common/blocks/GT_Block_Ores.java index a03f70f1..746b26de 100644 --- a/main/java/gregtech/common/blocks/GT_Block_Ores.java +++ b/main/java/gregtech/common/blocks/GT_Block_Ores.java @@ -261,13 +261,3 @@ public class GT_Block_Ores } } } - - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - - * Qualified Name: gregtech.common.blocks.GT_Block_Ores - - * JD-Core Version: 0.7.0.1 - - */ diff --git a/main/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java b/main/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java index 011a0e06..d3963959 100644 --- a/main/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java +++ b/main/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java @@ -173,9 +173,3 @@ public class GT_Block_Stones_Abstract } } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.blocks.GT_Block_Stones_Abstract - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/blocks/GT_Item_Casings1.java b/main/java/gregtech/common/blocks/GT_Item_Casings1.java index 3dc1dcb2..634222e8 100644 --- a/main/java/gregtech/common/blocks/GT_Item_Casings1.java +++ b/main/java/gregtech/common/blocks/GT_Item_Casings1.java @@ -27,9 +27,3 @@ public class GT_Item_Casings1 } } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.blocks.GT_Item_Casings1 - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/blocks/GT_Item_Casings2.java b/main/java/gregtech/common/blocks/GT_Item_Casings2.java index 3ff52142..a1b7f3e6 100644 --- a/main/java/gregtech/common/blocks/GT_Item_Casings2.java +++ b/main/java/gregtech/common/blocks/GT_Item_Casings2.java @@ -23,9 +23,3 @@ public class GT_Item_Casings2 } } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.blocks.GT_Item_Casings2 - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/blocks/GT_Item_Casings3.java b/main/java/gregtech/common/blocks/GT_Item_Casings3.java index da2d8eda..e27214ff 100644 --- a/main/java/gregtech/common/blocks/GT_Item_Casings3.java +++ b/main/java/gregtech/common/blocks/GT_Item_Casings3.java @@ -10,9 +10,3 @@ public class GT_Item_Casings3 super(par1); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.blocks.GT_Item_Casings3 - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/blocks/GT_Item_Casings4.java b/main/java/gregtech/common/blocks/GT_Item_Casings4.java index f3135b5a..5c9e2fce 100644 --- a/main/java/gregtech/common/blocks/GT_Item_Casings4.java +++ b/main/java/gregtech/common/blocks/GT_Item_Casings4.java @@ -10,9 +10,3 @@ public class GT_Item_Casings4 super(par1); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.blocks.GT_Item_Casings4 - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java b/main/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java index b3ed47ab..14126604 100644 --- a/main/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java +++ b/main/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java @@ -43,9 +43,3 @@ public abstract class GT_Item_Casings_Abstract aList.add(this.mNoTileEntityToolTip); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.blocks.GT_Item_Casings_Abstract - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/blocks/GT_Item_Concretes.java b/main/java/gregtech/common/blocks/GT_Item_Concretes.java index 0034859c..7f4d9619 100644 --- a/main/java/gregtech/common/blocks/GT_Item_Concretes.java +++ b/main/java/gregtech/common/blocks/GT_Item_Concretes.java @@ -22,9 +22,3 @@ public class GT_Item_Concretes aList.add(this.mRunFasterToolTip); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.blocks.GT_Item_Concretes - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/blocks/GT_Item_Granites.java b/main/java/gregtech/common/blocks/GT_Item_Granites.java index 4604d077..57244ea7 100644 --- a/main/java/gregtech/common/blocks/GT_Item_Granites.java +++ b/main/java/gregtech/common/blocks/GT_Item_Granites.java @@ -10,9 +10,3 @@ public class GT_Item_Granites super(par1); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.blocks.GT_Item_Granites - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/blocks/GT_Item_Machines.java b/main/java/gregtech/common/blocks/GT_Item_Machines.java index ba9bb615..0f7c4655 100644 --- a/main/java/gregtech/common/blocks/GT_Item_Machines.java +++ b/main/java/gregtech/common/blocks/GT_Item_Machines.java @@ -164,9 +164,3 @@ public class GT_Item_Machines return true; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.blocks.GT_Item_Machines - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/blocks/GT_Item_Ores.java b/main/java/gregtech/common/blocks/GT_Item_Ores.java index 38b9b2fb..ab49dfdd 100644 --- a/main/java/gregtech/common/blocks/GT_Item_Ores.java +++ b/main/java/gregtech/common/blocks/GT_Item_Ores.java @@ -52,9 +52,3 @@ public class GT_Item_Ores return true; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.blocks.GT_Item_Ores - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/blocks/GT_Item_Stones_Abstract.java b/main/java/gregtech/common/blocks/GT_Item_Stones_Abstract.java index 7a1dbdae..4b933609 100644 --- a/main/java/gregtech/common/blocks/GT_Item_Stones_Abstract.java +++ b/main/java/gregtech/common/blocks/GT_Item_Stones_Abstract.java @@ -39,9 +39,3 @@ public class GT_Item_Stones_Abstract } } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.blocks.GT_Item_Stones_Abstract - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/blocks/GT_Material_Casings.java b/main/java/gregtech/common/blocks/GT_Material_Casings.java index 9bae1ad5..f2df366a 100644 --- a/main/java/gregtech/common/blocks/GT_Material_Casings.java +++ b/main/java/gregtech/common/blocks/GT_Material_Casings.java @@ -19,9 +19,3 @@ public class GT_Material_Casings return false; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.blocks.GT_Material_Casings - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/blocks/GT_Material_Machines.java b/main/java/gregtech/common/blocks/GT_Material_Machines.java index b77deb9c..5abe245c 100644 --- a/main/java/gregtech/common/blocks/GT_Material_Machines.java +++ b/main/java/gregtech/common/blocks/GT_Material_Machines.java @@ -19,9 +19,3 @@ public class GT_Material_Machines return false; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.blocks.GT_Material_Machines - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/blocks/GT_Packet_Ores.java b/main/java/gregtech/common/blocks/GT_Packet_Ores.java index c6648b17..4dbc01fd 100644 --- a/main/java/gregtech/common/blocks/GT_Packet_Ores.java +++ b/main/java/gregtech/common/blocks/GT_Packet_Ores.java @@ -66,9 +66,3 @@ public class GT_Packet_Ores return 3; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.blocks.GT_Packet_Ores - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/blocks/GT_TileEntity_Ores.java b/main/java/gregtech/common/blocks/GT_TileEntity_Ores.java index 6edce964..e032f781 100644 --- a/main/java/gregtech/common/blocks/GT_TileEntity_Ores.java +++ b/main/java/gregtech/common/blocks/GT_TileEntity_Ores.java @@ -245,13 +245,3 @@ public class GT_TileEntity_Ores return new ITexture[] { mStoneTextures[0], new GT_RenderedTexture(gregtech.api.enums.TextureSet.SET_NONE.mTextures[OrePrefixes.ore.mTextureIndex]) }; } } - - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - - * Qualified Name: gregtech.common.blocks.GT_TileEntity_Ores - - * JD-Core Version: 0.7.0.1 - - */ diff --git a/main/java/gregtech/common/covers/GT_Cover_Arm.java b/main/java/gregtech/common/covers/GT_Cover_Arm.java index 49adff20..3212ce92 100644 --- a/main/java/gregtech/common/covers/GT_Cover_Arm.java +++ b/main/java/gregtech/common/covers/GT_Cover_Arm.java @@ -110,9 +110,3 @@ public class GT_Cover_Arm return this.mTickRate; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.covers.GT_Cover_Arm - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/covers/GT_Cover_Blastproof.java b/main/java/gregtech/common/covers/GT_Cover_Blastproof.java index 75f964b6..8c92eb91 100644 --- a/main/java/gregtech/common/covers/GT_Cover_Blastproof.java +++ b/main/java/gregtech/common/covers/GT_Cover_Blastproof.java @@ -23,9 +23,3 @@ public class GT_Cover_Blastproof return true; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.covers.GT_Cover_Blastproof - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java b/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java index b0c61dfa..ee06b47f 100644 --- a/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java +++ b/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java @@ -83,9 +83,3 @@ public class GT_Cover_ControlsWork return 1; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.covers.GT_Cover_ControlsWork - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/covers/GT_Cover_Conveyor.java b/main/java/gregtech/common/covers/GT_Cover_Conveyor.java index 515df083..10d2eb80 100644 --- a/main/java/gregtech/common/covers/GT_Cover_Conveyor.java +++ b/main/java/gregtech/common/covers/GT_Cover_Conveyor.java @@ -131,9 +131,3 @@ public class GT_Cover_Conveyor return this.mTickRate; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.covers.GT_Cover_Conveyor - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/covers/GT_Cover_Crafting.java b/main/java/gregtech/common/covers/GT_Cover_Crafting.java index 4eea9bca..0198146f 100644 --- a/main/java/gregtech/common/covers/GT_Cover_Crafting.java +++ b/main/java/gregtech/common/covers/GT_Cover_Crafting.java @@ -33,9 +33,3 @@ public class GT_Cover_Crafting return true; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.covers.GT_Cover_Crafting - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/covers/GT_Cover_DoesWork.java b/main/java/gregtech/common/covers/GT_Cover_DoesWork.java index 445ef518..119e054b 100644 --- a/main/java/gregtech/common/covers/GT_Cover_DoesWork.java +++ b/main/java/gregtech/common/covers/GT_Cover_DoesWork.java @@ -92,9 +92,3 @@ public class GT_Cover_DoesWork return 5; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.covers.GT_Cover_DoesWork - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/covers/GT_Cover_Drain.java b/main/java/gregtech/common/covers/GT_Cover_Drain.java index 17b1d05a..a17098e8 100644 --- a/main/java/gregtech/common/covers/GT_Cover_Drain.java +++ b/main/java/gregtech/common/covers/GT_Cover_Drain.java @@ -106,9 +106,3 @@ public class GT_Cover_Drain return aCoverVariable < 3 ? 50 : 1; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.covers.GT_Cover_Drain - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/covers/GT_Cover_EUMeter.java b/main/java/gregtech/common/covers/GT_Cover_EUMeter.java index 285fa493..6917e6bf 100644 --- a/main/java/gregtech/common/covers/GT_Cover_EUMeter.java +++ b/main/java/gregtech/common/covers/GT_Cover_EUMeter.java @@ -185,9 +185,3 @@ public class GT_Cover_EUMeter return 20; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.covers.GT_Cover_EUMeter - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/covers/GT_Cover_EnergyOnly.java b/main/java/gregtech/common/covers/GT_Cover_EnergyOnly.java index fd948309..4ffdcb9e 100644 --- a/main/java/gregtech/common/covers/GT_Cover_EnergyOnly.java +++ b/main/java/gregtech/common/covers/GT_Cover_EnergyOnly.java @@ -100,9 +100,3 @@ public class GT_Cover_EnergyOnly return true; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.covers.GT_Cover_EnergyOnly - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java b/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java index 9cf6236e..f2fc6a4d 100644 --- a/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java +++ b/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java @@ -91,9 +91,3 @@ public class GT_Cover_ItemMeter return 5; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.covers.GT_Cover_ItemMeter - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/covers/GT_Cover_Lens.java b/main/java/gregtech/common/covers/GT_Cover_Lens.java index e4ba2142..000acc45 100644 --- a/main/java/gregtech/common/covers/GT_Cover_Lens.java +++ b/main/java/gregtech/common/covers/GT_Cover_Lens.java @@ -18,9 +18,3 @@ public class GT_Cover_Lens return this.mColor; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.covers.GT_Cover_Lens - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/covers/GT_Cover_Pump.java b/main/java/gregtech/common/covers/GT_Cover_Pump.java index a97211d8..6f1cbabd 100644 --- a/main/java/gregtech/common/covers/GT_Cover_Pump.java +++ b/main/java/gregtech/common/covers/GT_Cover_Pump.java @@ -185,9 +185,3 @@ public class GT_Cover_Pump return 1; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.covers.GT_Cover_Pump - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/covers/GT_Cover_RedstoneConductor.java b/main/java/gregtech/common/covers/GT_Cover_RedstoneConductor.java index eb7dfb02..9c4ae92a 100644 --- a/main/java/gregtech/common/covers/GT_Cover_RedstoneConductor.java +++ b/main/java/gregtech/common/covers/GT_Cover_RedstoneConductor.java @@ -82,9 +82,3 @@ public class GT_Cover_RedstoneConductor return 1; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.covers.GT_Cover_RedstoneConductor - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverExternal.java b/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverExternal.java index 080b49a7..da5c149b 100644 --- a/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverExternal.java +++ b/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverExternal.java @@ -23,9 +23,3 @@ public class GT_Cover_RedstoneReceiverExternal return 1; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.covers.GT_Cover_RedstoneReceiverExternal - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverInternal.java b/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverInternal.java index 4d9d660a..217a36ee 100644 --- a/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverInternal.java +++ b/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverInternal.java @@ -22,9 +22,3 @@ public class GT_Cover_RedstoneReceiverInternal return 1; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.covers.GT_Cover_RedstoneReceiverInternal - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/covers/GT_Cover_RedstoneSignalizer.java b/main/java/gregtech/common/covers/GT_Cover_RedstoneSignalizer.java index c37e91bd..c9d29b1e 100644 --- a/main/java/gregtech/common/covers/GT_Cover_RedstoneSignalizer.java +++ b/main/java/gregtech/common/covers/GT_Cover_RedstoneSignalizer.java @@ -79,9 +79,3 @@ public class GT_Cover_RedstoneSignalizer return (byte)(aCoverVariable & 0xF); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.covers.GT_Cover_RedstoneSignalizer - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterExternal.java b/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterExternal.java index 49b73738..15609ca1 100644 --- a/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterExternal.java +++ b/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterExternal.java @@ -23,9 +23,3 @@ public class GT_Cover_RedstoneTransmitterExternal return 1; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.covers.GT_Cover_RedstoneTransmitterExternal - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterInternal.java b/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterInternal.java index 827fb27b..a1a2ed93 100644 --- a/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterInternal.java +++ b/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterInternal.java @@ -28,9 +28,3 @@ public class GT_Cover_RedstoneTransmitterInternal return 1; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.covers.GT_Cover_RedstoneTransmitterInternal - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/covers/GT_Cover_RedstoneWirelessBase.java b/main/java/gregtech/common/covers/GT_Cover_RedstoneWirelessBase.java index 12f758a9..cbc5aa2a 100644 --- a/main/java/gregtech/common/covers/GT_Cover_RedstoneWirelessBase.java +++ b/main/java/gregtech/common/covers/GT_Cover_RedstoneWirelessBase.java @@ -96,9 +96,3 @@ public abstract class GT_Cover_RedstoneWirelessBase return 1; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.covers.GT_Cover_RedstoneWirelessBase - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/covers/GT_Cover_Screen.java b/main/java/gregtech/common/covers/GT_Cover_Screen.java index ee41f919..ee714049 100644 --- a/main/java/gregtech/common/covers/GT_Cover_Screen.java +++ b/main/java/gregtech/common/covers/GT_Cover_Screen.java @@ -78,9 +78,3 @@ public class GT_Cover_Screen return 0; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.covers.GT_Cover_Screen - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/covers/GT_Cover_Shutter.java b/main/java/gregtech/common/covers/GT_Cover_Shutter.java index f11ac72b..167e2dbd 100644 --- a/main/java/gregtech/common/covers/GT_Cover_Shutter.java +++ b/main/java/gregtech/common/covers/GT_Cover_Shutter.java @@ -83,9 +83,3 @@ public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aS return 0; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.covers.GT_Cover_Shutter - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/covers/GT_Cover_Vent.java b/main/java/gregtech/common/covers/GT_Cover_Vent.java index 9e91bde7..5bab99fb 100644 --- a/main/java/gregtech/common/covers/GT_Cover_Vent.java +++ b/main/java/gregtech/common/covers/GT_Cover_Vent.java @@ -38,9 +38,3 @@ public class GT_Cover_Vent return 60; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.covers.GT_Cover_Vent - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/entities/GT_Entity_Arrow.java b/main/java/gregtech/common/entities/GT_Entity_Arrow.java index 83bb16d9..db8ef1ac 100644 --- a/main/java/gregtech/common/entities/GT_Entity_Arrow.java +++ b/main/java/gregtech/common/entities/GT_Entity_Arrow.java @@ -389,9 +389,3 @@ public class GT_Entity_Arrow this.mKnockback = aKnockback; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.entities.GT_Entity_Arrow - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/entities/GT_Entity_Arrow_Potion.java b/main/java/gregtech/common/entities/GT_Entity_Arrow_Potion.java index 1deb2f37..a6626b18 100644 --- a/main/java/gregtech/common/entities/GT_Entity_Arrow_Potion.java +++ b/main/java/gregtech/common/entities/GT_Entity_Arrow_Potion.java @@ -69,9 +69,3 @@ public class GT_Entity_Arrow_Potion return super.onHitEntity(aHitEntity, aShootingEntity, aArrow, 1, aMagicDamage, aKnockback, aFireDamage, aHitTimer); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.entities.GT_Entity_Arrow_Potion - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/gui/GT_Container_Boiler.java b/main/java/gregtech/common/gui/GT_Container_Boiler.java index dc851896..7ab8cc0f 100644 --- a/main/java/gregtech/common/gui/GT_Container_Boiler.java +++ b/main/java/gregtech/common/gui/GT_Container_Boiler.java @@ -89,9 +89,3 @@ public class GT_Container_Boiler } } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.gui.GT_Container_Boiler - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/gui/GT_Container_BronzeBlastFurnace.java b/main/java/gregtech/common/gui/GT_Container_BronzeBlastFurnace.java index be6bb35a..7dc97e09 100644 --- a/main/java/gregtech/common/gui/GT_Container_BronzeBlastFurnace.java +++ b/main/java/gregtech/common/gui/GT_Container_BronzeBlastFurnace.java @@ -32,9 +32,3 @@ public class GT_Container_BronzeBlastFurnace return 2; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.gui.GT_Container_BronzeBlastFurnace - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/gui/GT_Container_ChestBuffer.java b/main/java/gregtech/common/gui/GT_Container_ChestBuffer.java index ffe772bb..f2fd7848 100644 --- a/main/java/gregtech/common/gui/GT_Container_ChestBuffer.java +++ b/main/java/gregtech/common/gui/GT_Container_ChestBuffer.java @@ -86,9 +86,3 @@ public class GT_Container_ChestBuffer return 27; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.gui.GT_Container_ChestBuffer - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/gui/GT_Container_Filter.java b/main/java/gregtech/common/gui/GT_Container_Filter.java index 76a267de..ac468a44 100644 --- a/main/java/gregtech/common/gui/GT_Container_Filter.java +++ b/main/java/gregtech/common/gui/GT_Container_Filter.java @@ -141,9 +141,3 @@ public class GT_Container_Filter return 9; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.gui.GT_Container_Filter - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/gui/GT_Container_Regulator.java b/main/java/gregtech/common/gui/GT_Container_Regulator.java index e19ad1b6..5fab8681 100644 --- a/main/java/gregtech/common/gui/GT_Container_Regulator.java +++ b/main/java/gregtech/common/gui/GT_Container_Regulator.java @@ -172,9 +172,3 @@ public class GT_Container_Regulator return 9; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.gui.GT_Container_Regulator - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/gui/GT_Container_SuperBuffer.java b/main/java/gregtech/common/gui/GT_Container_SuperBuffer.java index 0755237d..e28616e2 100644 --- a/main/java/gregtech/common/gui/GT_Container_SuperBuffer.java +++ b/main/java/gregtech/common/gui/GT_Container_SuperBuffer.java @@ -81,9 +81,3 @@ public class GT_Container_SuperBuffer return 0; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.gui.GT_Container_SuperBuffer - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/gui/GT_Container_TypeFilter.java b/main/java/gregtech/common/gui/GT_Container_TypeFilter.java index 964fffa4..57bd51e5 100644 --- a/main/java/gregtech/common/gui/GT_Container_TypeFilter.java +++ b/main/java/gregtech/common/gui/GT_Container_TypeFilter.java @@ -121,9 +121,3 @@ public class GT_Container_TypeFilter return 9; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.gui.GT_Container_TypeFilter - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/gui/GT_GUIContainer_Boiler.java b/main/java/gregtech/common/gui/GT_GUIContainer_Boiler.java index 2a22eb42..e8e95513 100644 --- a/main/java/gregtech/common/gui/GT_GUIContainer_Boiler.java +++ b/main/java/gregtech/common/gui/GT_GUIContainer_Boiler.java @@ -45,9 +45,3 @@ public class GT_GUIContainer_Boiler } } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.gui.GT_GUIContainer_Boiler - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/gui/GT_GUIContainer_BronzeBlastFurnace.java b/main/java/gregtech/common/gui/GT_GUIContainer_BronzeBlastFurnace.java index fbd663c2..c82562c4 100644 --- a/main/java/gregtech/common/gui/GT_GUIContainer_BronzeBlastFurnace.java +++ b/main/java/gregtech/common/gui/GT_GUIContainer_BronzeBlastFurnace.java @@ -31,9 +31,3 @@ public class GT_GUIContainer_BronzeBlastFurnace } } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.gui.GT_GUIContainer_BronzeBlastFurnace - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/gui/GT_GUIContainer_ChestBuffer.java b/main/java/gregtech/common/gui/GT_GUIContainer_ChestBuffer.java index c0091469..77935684 100644 --- a/main/java/gregtech/common/gui/GT_GUIContainer_ChestBuffer.java +++ b/main/java/gregtech/common/gui/GT_GUIContainer_ChestBuffer.java @@ -20,9 +20,3 @@ public class GT_GUIContainer_ChestBuffer drawTexturedModalRect(x, y, 0, 0, this.xSize, this.ySize); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.gui.GT_GUIContainer_ChestBuffer - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/gui/GT_GUIContainer_Filter.java b/main/java/gregtech/common/gui/GT_GUIContainer_Filter.java index 9730558f..88889b74 100644 --- a/main/java/gregtech/common/gui/GT_GUIContainer_Filter.java +++ b/main/java/gregtech/common/gui/GT_GUIContainer_Filter.java @@ -20,9 +20,3 @@ public class GT_GUIContainer_Filter drawTexturedModalRect(x, y, 0, 0, this.xSize, this.ySize); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.gui.GT_GUIContainer_Filter - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/gui/GT_GUIContainer_Regulator.java b/main/java/gregtech/common/gui/GT_GUIContainer_Regulator.java index 54a197f6..a3ba4d42 100644 --- a/main/java/gregtech/common/gui/GT_GUIContainer_Regulator.java +++ b/main/java/gregtech/common/gui/GT_GUIContainer_Regulator.java @@ -34,9 +34,3 @@ public class GT_GUIContainer_Regulator drawTexturedModalRect(x, y, 0, 0, this.xSize, this.ySize); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.gui.GT_GUIContainer_Regulator - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/gui/GT_GUIContainer_SuperBuffer.java b/main/java/gregtech/common/gui/GT_GUIContainer_SuperBuffer.java index af167ddf..2e1daf31 100644 --- a/main/java/gregtech/common/gui/GT_GUIContainer_SuperBuffer.java +++ b/main/java/gregtech/common/gui/GT_GUIContainer_SuperBuffer.java @@ -20,9 +20,3 @@ public class GT_GUIContainer_SuperBuffer drawTexturedModalRect(x, y, 0, 0, this.xSize, this.ySize); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.gui.GT_GUIContainer_SuperBuffer - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/gui/GT_GUIContainer_TypeFilter.java b/main/java/gregtech/common/gui/GT_GUIContainer_TypeFilter.java index 46ade86b..64f597c9 100644 --- a/main/java/gregtech/common/gui/GT_GUIContainer_TypeFilter.java +++ b/main/java/gregtech/common/gui/GT_GUIContainer_TypeFilter.java @@ -20,9 +20,3 @@ public class GT_GUIContainer_TypeFilter drawTexturedModalRect(x, y, 0, 0, this.xSize, this.ySize); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.gui.GT_GUIContainer_TypeFilter - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/GT_FluidDisplayItem.java b/main/java/gregtech/common/items/GT_FluidDisplayItem.java index 10f56c46..71f6d107 100644 --- a/main/java/gregtech/common/items/GT_FluidDisplayItem.java +++ b/main/java/gregtech/common/items/GT_FluidDisplayItem.java @@ -100,9 +100,3 @@ public class GT_FluidDisplayItem } } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.GT_FluidDisplayItem - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java b/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java index 7bd86680..510a426c 100644 --- a/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java +++ b/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java @@ -123,9 +123,3 @@ public class GT_IntegratedCircuit_Item return getModeString(aMetaData) + " " + (byte)(aMetaData & 0xFF); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.GT_IntegratedCircuit_Item - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file 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 5f7ff478..e6805d3b 100644 --- a/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java +++ b/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java @@ -879,9 +879,3 @@ public class GT_MetaGenerated_Item_01 return (super.doesMaterialAllowGeneration(aPrefix, aMaterial)) && ((aPrefix != OrePrefixes.ingotHot) || (aMaterial.mBlastFurnaceTemp > 1750)); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.GT_MetaGenerated_Item_01 - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java b/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java index ce339b17..9ae7115f 100644 --- a/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java +++ b/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java @@ -445,9 +445,3 @@ public class GT_MetaGenerated_Item_02 return null; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.GT_MetaGenerated_Item_02 - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java b/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java index 66fd71c0..7d2e2029 100644 --- a/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java +++ b/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java @@ -20,9 +20,3 @@ public class GT_MetaGenerated_Item_03 return aDoShowAllItems; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.GT_MetaGenerated_Item_03 - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java b/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java index fa46b2bd..e9d50679 100644 --- a/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java +++ b/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java @@ -188,15 +188,9 @@ public class GT_MetaGenerated_Tool_01 } if (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.mortar, "Flint", true)) { GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Items.flint, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ToolDictNames.craftingToolMortar, new ItemStack(Blocks.gravel, 1) }); -/* A0: */ } -/* A1:87 */ if (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.mortar, "Blaze", true)) { -/* A2:87 */ GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Items.blaze_powder, 2), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ToolDictNames.craftingToolMortar, new ItemStack(Items.blaze_rod, 1) }); -/* A3: */ } -/* A4: */ } -/* A5: */ } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.GT_MetaGenerated_Tool_01 - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.mortar, "Blaze", true)) { + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Items.blaze_powder, 2), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ToolDictNames.craftingToolMortar, new ItemStack(Items.blaze_rod, 1) }); + } + } +} diff --git a/main/java/gregtech/common/items/GT_SensorCard_Item.java b/main/java/gregtech/common/items/GT_SensorCard_Item.java index aa0f6c22..b1781ccc 100644 --- a/main/java/gregtech/common/items/GT_SensorCard_Item.java +++ b/main/java/gregtech/common/items/GT_SensorCard_Item.java @@ -99,9 +99,3 @@ public class GT_SensorCard_Item @SideOnly(Side.CLIENT) public void getSubItems(Item var1, CreativeTabs aTab, List aList) {} } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.GT_SensorCard_Item - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Arrow.java b/main/java/gregtech/common/items/behaviors/Behaviour_Arrow.java index ff13e128..d0be7352 100644 --- a/main/java/gregtech/common/items/behaviors/Behaviour_Arrow.java +++ b/main/java/gregtech/common/items/behaviors/Behaviour_Arrow.java @@ -127,9 +127,3 @@ public class Behaviour_Arrow return rArrow; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.behaviors.Behaviour_Arrow - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Arrow_Potion.java b/main/java/gregtech/common/items/behaviors/Behaviour_Arrow_Potion.java index a6c8b139..98c099e4 100644 --- a/main/java/gregtech/common/items/behaviors/Behaviour_Arrow_Potion.java +++ b/main/java/gregtech/common/items/behaviors/Behaviour_Arrow_Potion.java @@ -64,9 +64,3 @@ public class Behaviour_Arrow_Potion return rArrow; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.behaviors.Behaviour_Arrow_Potion - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Crowbar.java b/main/java/gregtech/common/items/behaviors/Behaviour_Crowbar.java index 07fa9934..827239a6 100644 --- a/main/java/gregtech/common/items/behaviors/Behaviour_Crowbar.java +++ b/main/java/gregtech/common/items/behaviors/Behaviour_Crowbar.java @@ -61,9 +61,3 @@ public class Behaviour_Crowbar return false; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.behaviors.Behaviour_Crowbar - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_DataOrb.java b/main/java/gregtech/common/items/behaviors/Behaviour_DataOrb.java index 5738962c..b09b23cc 100644 --- a/main/java/gregtech/common/items/behaviors/Behaviour_DataOrb.java +++ b/main/java/gregtech/common/items/behaviors/Behaviour_DataOrb.java @@ -113,9 +113,3 @@ public class Behaviour_DataOrb return tNBT; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.behaviors.Behaviour_DataOrb - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_DataStick.java b/main/java/gregtech/common/items/behaviors/Behaviour_DataStick.java index d5b5e0b8..8d0809f2 100644 --- a/main/java/gregtech/common/items/behaviors/Behaviour_DataStick.java +++ b/main/java/gregtech/common/items/behaviors/Behaviour_DataStick.java @@ -35,9 +35,3 @@ public class Behaviour_DataStick return aList; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.behaviors.Behaviour_DataStick - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Hoe.java b/main/java/gregtech/common/items/behaviors/Behaviour_Hoe.java index 24a22ef3..fc995e3a 100644 --- a/main/java/gregtech/common/items/behaviors/Behaviour_Hoe.java +++ b/main/java/gregtech/common/items/behaviors/Behaviour_Hoe.java @@ -66,9 +66,3 @@ public class Behaviour_Hoe return aList; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.behaviors.Behaviour_Hoe - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Lighter.java b/main/java/gregtech/common/items/behaviors/Behaviour_Lighter.java index b8ef7d32..ef287d12 100644 --- a/main/java/gregtech/common/items/behaviors/Behaviour_Lighter.java +++ b/main/java/gregtech/common/items/behaviors/Behaviour_Lighter.java @@ -135,9 +135,3 @@ public class Behaviour_Lighter return aList; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.behaviors.Behaviour_Lighter - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_None.java b/main/java/gregtech/common/items/behaviors/Behaviour_None.java index caf6325e..43f84393 100644 --- a/main/java/gregtech/common/items/behaviors/Behaviour_None.java +++ b/main/java/gregtech/common/items/behaviors/Behaviour_None.java @@ -80,9 +80,3 @@ public class Behaviour_None return null; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.behaviors.Behaviour_None - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Essentia.java b/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Essentia.java index 35459491..9d3d8e4d 100644 --- a/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Essentia.java +++ b/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Essentia.java @@ -51,9 +51,3 @@ public class Behaviour_Plunger_Essentia return aList; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.behaviors.Behaviour_Plunger_Essentia - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java b/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java index a237fe70..fa3155e9 100644 --- a/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java +++ b/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java @@ -54,9 +54,3 @@ public class Behaviour_Plunger_Fluid return aList; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.behaviors.Behaviour_Plunger_Fluid - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Item.java b/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Item.java index 57571cd4..a6c24bc6 100644 --- a/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Item.java +++ b/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Item.java @@ -75,9 +75,3 @@ public class Behaviour_Plunger_Item return aList; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.behaviors.Behaviour_Plunger_Item - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_PrintedPages.java b/main/java/gregtech/common/items/behaviors/Behaviour_PrintedPages.java index b50a5e79..bbcdd580 100644 --- a/main/java/gregtech/common/items/behaviors/Behaviour_PrintedPages.java +++ b/main/java/gregtech/common/items/behaviors/Behaviour_PrintedPages.java @@ -38,9 +38,3 @@ public class Behaviour_PrintedPages return tNBT.getString("author"); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.behaviors.Behaviour_PrintedPages - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java b/main/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java index c90c5bf4..aa676a76 100644 --- a/main/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java +++ b/main/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java @@ -141,9 +141,3 @@ public class Behaviour_Prospecting return aList; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.behaviors.Behaviour_Prospecting - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Scanner.java b/main/java/gregtech/common/items/behaviors/Behaviour_Scanner.java index 233217df..1f0972c3 100644 --- a/main/java/gregtech/common/items/behaviors/Behaviour_Scanner.java +++ b/main/java/gregtech/common/items/behaviors/Behaviour_Scanner.java @@ -42,9 +42,3 @@ public class Behaviour_Scanner return aList; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.behaviors.Behaviour_Scanner - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Scoop.java b/main/java/gregtech/common/items/behaviors/Behaviour_Scoop.java index 31fc3098..6da6d999 100644 --- a/main/java/gregtech/common/items/behaviors/Behaviour_Scoop.java +++ b/main/java/gregtech/common/items/behaviors/Behaviour_Scoop.java @@ -55,9 +55,3 @@ public class Behaviour_Scoop return aList; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.behaviors.Behaviour_Scoop - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Screwdriver.java b/main/java/gregtech/common/items/behaviors/Behaviour_Screwdriver.java index a29d8197..c6c39e2e 100644 --- a/main/java/gregtech/common/items/behaviors/Behaviour_Screwdriver.java +++ b/main/java/gregtech/common/items/behaviors/Behaviour_Screwdriver.java @@ -54,9 +54,3 @@ public class Behaviour_Screwdriver return false; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.behaviors.Behaviour_Screwdriver - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Sense.java b/main/java/gregtech/common/items/behaviors/Behaviour_Sense.java index d23e8d90..13e4c583 100644 --- a/main/java/gregtech/common/items/behaviors/Behaviour_Sense.java +++ b/main/java/gregtech/common/items/behaviors/Behaviour_Sense.java @@ -51,9 +51,3 @@ public class Behaviour_Sense return aList; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.behaviors.Behaviour_Sense - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_SensorKit.java b/main/java/gregtech/common/items/behaviors/Behaviour_SensorKit.java index c20ca762..9ac266d6 100644 --- a/main/java/gregtech/common/items/behaviors/Behaviour_SensorKit.java +++ b/main/java/gregtech/common/items/behaviors/Behaviour_SensorKit.java @@ -50,9 +50,3 @@ public class Behaviour_SensorKit return aList; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.behaviors.Behaviour_SensorKit - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_SoftHammer.java b/main/java/gregtech/common/items/behaviors/Behaviour_SoftHammer.java index a9015ce4..11a6424e 100644 --- a/main/java/gregtech/common/items/behaviors/Behaviour_SoftHammer.java +++ b/main/java/gregtech/common/items/behaviors/Behaviour_SoftHammer.java @@ -123,9 +123,3 @@ public class Behaviour_SoftHammer return aList; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.behaviors.Behaviour_SoftHammer - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Sonictron.java b/main/java/gregtech/common/items/behaviors/Behaviour_Sonictron.java index 0198324f..781f85c8 100644 --- a/main/java/gregtech/common/items/behaviors/Behaviour_Sonictron.java +++ b/main/java/gregtech/common/items/behaviors/Behaviour_Sonictron.java @@ -139,9 +139,3 @@ public class Behaviour_Sonictron } } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.behaviors.Behaviour_Sonictron - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java b/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java index e43e4ce3..bfd45737 100644 --- a/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java +++ b/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java @@ -135,9 +135,3 @@ public class Behaviour_Spray_Color return aList; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.behaviors.Behaviour_Spray_Color - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_WrittenBook.java b/main/java/gregtech/common/items/behaviors/Behaviour_WrittenBook.java index bb605280..d00e5c31 100644 --- a/main/java/gregtech/common/items/behaviors/Behaviour_WrittenBook.java +++ b/main/java/gregtech/common/items/behaviors/Behaviour_WrittenBook.java @@ -36,9 +36,3 @@ public class Behaviour_WrittenBook return aList; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.items.behaviors.Behaviour_WrittenBook - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/redstonecircuits/GT_Circuit_BasicLogic.java b/main/java/gregtech/common/redstonecircuits/GT_Circuit_BasicLogic.java index 89d1abc7..30d06a2e 100644 --- a/main/java/gregtech/common/redstonecircuits/GT_Circuit_BasicLogic.java +++ b/main/java/gregtech/common/redstonecircuits/GT_Circuit_BasicLogic.java @@ -105,9 +105,3 @@ public class GT_Circuit_BasicLogic return ""; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.redstonecircuits.GT_Circuit_BasicLogic - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/redstonecircuits/GT_Circuit_BitAnd.java b/main/java/gregtech/common/redstonecircuits/GT_Circuit_BitAnd.java index 1efced38..ad62f847 100644 --- a/main/java/gregtech/common/redstonecircuits/GT_Circuit_BitAnd.java +++ b/main/java/gregtech/common/redstonecircuits/GT_Circuit_BitAnd.java @@ -77,9 +77,3 @@ public class GT_Circuit_BitAnd return aCircuitData[aCircuitDataIndex] == 0 ? "OFF" : "ON"; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.redstonecircuits.GT_Circuit_BitAnd - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/redstonecircuits/GT_Circuit_CombinationLock.java b/main/java/gregtech/common/redstonecircuits/GT_Circuit_CombinationLock.java index 491f465e..4f6e2ef9 100644 --- a/main/java/gregtech/common/redstonecircuits/GT_Circuit_CombinationLock.java +++ b/main/java/gregtech/common/redstonecircuits/GT_Circuit_CombinationLock.java @@ -115,9 +115,3 @@ public class GT_Circuit_CombinationLock return null; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.redstonecircuits.GT_Circuit_CombinationLock - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/redstonecircuits/GT_Circuit_Equals.java b/main/java/gregtech/common/redstonecircuits/GT_Circuit_Equals.java index a8f1b29e..acfcab6a 100644 --- a/main/java/gregtech/common/redstonecircuits/GT_Circuit_Equals.java +++ b/main/java/gregtech/common/redstonecircuits/GT_Circuit_Equals.java @@ -73,9 +73,3 @@ public class GT_Circuit_Equals return null; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.redstonecircuits.GT_Circuit_Equals - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/redstonecircuits/GT_Circuit_Pulser.java b/main/java/gregtech/common/redstonecircuits/GT_Circuit_Pulser.java index 47f8fb87..6c02f8e5 100644 --- a/main/java/gregtech/common/redstonecircuits/GT_Circuit_Pulser.java +++ b/main/java/gregtech/common/redstonecircuits/GT_Circuit_Pulser.java @@ -91,9 +91,3 @@ public class GT_Circuit_Pulser return aCircuitDataIndex > 1 ? "" : null; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.redstonecircuits.GT_Circuit_Pulser - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/redstonecircuits/GT_Circuit_Randomizer.java b/main/java/gregtech/common/redstonecircuits/GT_Circuit_Randomizer.java index c8739cbe..036485bc 100644 --- a/main/java/gregtech/common/redstonecircuits/GT_Circuit_Randomizer.java +++ b/main/java/gregtech/common/redstonecircuits/GT_Circuit_Randomizer.java @@ -92,9 +92,3 @@ public class GT_Circuit_Randomizer return null; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.redstonecircuits.GT_Circuit_Randomizer - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/redstonecircuits/GT_Circuit_RedstoneMeter.java b/main/java/gregtech/common/redstonecircuits/GT_Circuit_RedstoneMeter.java index 95820a33..0cb8d097 100644 --- a/main/java/gregtech/common/redstonecircuits/GT_Circuit_RedstoneMeter.java +++ b/main/java/gregtech/common/redstonecircuits/GT_Circuit_RedstoneMeter.java @@ -95,9 +95,3 @@ public class GT_Circuit_RedstoneMeter return null; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.redstonecircuits.GT_Circuit_RedstoneMeter - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/redstonecircuits/GT_Circuit_Repeater.java b/main/java/gregtech/common/redstonecircuits/GT_Circuit_Repeater.java index a5267b0b..ba96272d 100644 --- a/main/java/gregtech/common/redstonecircuits/GT_Circuit_Repeater.java +++ b/main/java/gregtech/common/redstonecircuits/GT_Circuit_Repeater.java @@ -95,9 +95,3 @@ public class GT_Circuit_Repeater return null; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.redstonecircuits.GT_Circuit_Repeater - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/redstonecircuits/GT_Circuit_Timer.java b/main/java/gregtech/common/redstonecircuits/GT_Circuit_Timer.java index 38c41149..ef450cc7 100644 --- a/main/java/gregtech/common/redstonecircuits/GT_Circuit_Timer.java +++ b/main/java/gregtech/common/redstonecircuits/GT_Circuit_Timer.java @@ -122,9 +122,3 @@ public class GT_Circuit_Timer return null; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.redstonecircuits.GT_Circuit_Timer - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/render/GT_CapeRenderer.java b/main/java/gregtech/common/render/GT_CapeRenderer.java index 712399f1..6daf94c3 100644 --- a/main/java/gregtech/common/render/GT_CapeRenderer.java +++ b/main/java/gregtech/common/render/GT_CapeRenderer.java @@ -103,9 +103,3 @@ public class GT_CapeRenderer } } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.render.GT_CapeRenderer - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/render/GT_MetaGenerated_Item_Renderer.java b/main/java/gregtech/common/render/GT_MetaGenerated_Item_Renderer.java index 10e7e9c6..aab095d5 100644 --- a/main/java/gregtech/common/render/GT_MetaGenerated_Item_Renderer.java +++ b/main/java/gregtech/common/render/GT_MetaGenerated_Item_Renderer.java @@ -182,9 +182,3 @@ public class GT_MetaGenerated_Item_Renderer GL11.glDisable(3042); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.render.GT_MetaGenerated_Item_Renderer - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/render/GT_MetaGenerated_Tool_Renderer.java b/main/java/gregtech/common/render/GT_MetaGenerated_Tool_Renderer.java index afb7ff21..f905cc0e 100644 --- a/main/java/gregtech/common/render/GT_MetaGenerated_Tool_Renderer.java +++ b/main/java/gregtech/common/render/GT_MetaGenerated_Tool_Renderer.java @@ -206,9 +206,3 @@ public class GT_MetaGenerated_Tool_Renderer GL11.glDisable(3042); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.render.GT_MetaGenerated_Tool_Renderer - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/render/GT_RenderUtil.java b/main/java/gregtech/common/render/GT_RenderUtil.java index 9a2fd8c2..708bf193 100644 --- a/main/java/gregtech/common/render/GT_RenderUtil.java +++ b/main/java/gregtech/common/render/GT_RenderUtil.java @@ -34,9 +34,3 @@ public class GT_RenderUtil Tessellator.instance.draw(); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.render.GT_RenderUtil - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/render/GT_Renderer_Entity_Arrow.java b/main/java/gregtech/common/render/GT_Renderer_Entity_Arrow.java index 1d42fa06..ba656458 100644 --- a/main/java/gregtech/common/render/GT_Renderer_Entity_Arrow.java +++ b/main/java/gregtech/common/render/GT_Renderer_Entity_Arrow.java @@ -21,9 +21,3 @@ public class GT_Renderer_Entity_Arrow return this.mTexture; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.render.GT_Renderer_Entity_Arrow - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java b/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java index dade717e..f8bf845e 100644 --- a/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java +++ b/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java @@ -73,9 +73,3 @@ public class GT_MetaTileEntity_ChestBuffer return new GT_GUIContainer_ChestBuffer(aPlayerInventory, aBaseMetaTileEntity); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.automation.GT_MetaTileEntity_ChestBuffer - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Filter.java b/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Filter.java index 48ad19bd..09aac62b 100644 --- a/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Filter.java +++ b/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Filter.java @@ -86,9 +86,3 @@ public class GT_MetaTileEntity_Filter return GT_Utility.areStacksEqual(this.mInventory[(aIndex + 9)], aStack, this.bIgnoreNBT); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.automation.GT_MetaTileEntity_Filter - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java b/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java index c9670a34..6790d1d7 100644 --- a/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java +++ b/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java @@ -105,9 +105,3 @@ public class GT_MetaTileEntity_Regulator return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) && (GT_Utility.areStacksEqual(aStack, this.mInventory[(aIndex + 9)])); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.automation.GT_MetaTileEntity_Regulator - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_SuperBuffer.java b/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_SuperBuffer.java index d90a6c4b..46c0fde6 100644 --- a/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_SuperBuffer.java +++ b/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_SuperBuffer.java @@ -43,9 +43,3 @@ public class GT_MetaTileEntity_SuperBuffer return new GT_GUIContainer_SuperBuffer(aPlayerInventory, aBaseMetaTileEntity); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.automation.GT_MetaTileEntity_SuperBuffer - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java b/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java index 90acb38d..4101e2f5 100644 --- a/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java +++ b/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java @@ -155,9 +155,3 @@ public class GT_MetaTileEntity_TypeFilter return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) && ((this.bNBTAllowed) || (!aStack.hasTagCompound())) && (tAllowPrefix != this.bInvertFilter); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.automation.GT_MetaTileEntity_TypeFilter - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java b/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java index 6f6d887c..be715de6 100644 --- a/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java +++ b/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java @@ -158,9 +158,3 @@ public class GT_MetaTileEntity_Boiler_Lava return super.fill(aFluid, doFill); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.boilers.GT_MetaTileEntity_Boiler_Lava - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java b/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java index 74450f51..346b4511 100644 --- a/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java +++ b/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java @@ -150,9 +150,3 @@ public class GT_MetaTileEntity_Boiler_Solar } } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.boilers.GT_MetaTileEntity_Boiler_Solar - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Steel.java b/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Steel.java index 7b8361fa..e6e3f918 100644 --- a/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Steel.java +++ b/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Steel.java @@ -178,9 +178,3 @@ rTextures[4][(i + 1)] = tmp5; } } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.boilers.GT_MetaTileEntity_Boiler_Steel - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java b/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java index 83c731a6..4ed569dc 100644 --- a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java +++ b/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java @@ -124,9 +124,3 @@ public class GT_MetaTileEntity_DieselGenerator return new ITexture[] { super.getSidesActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_SIDE_ACTIVE) }; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.generators.GT_MetaTileEntity_DieselGenerator - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_FluidNaquadahReactor.java b/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_FluidNaquadahReactor.java index 7b084c12..fef02461 100644 --- a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_FluidNaquadahReactor.java +++ b/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_FluidNaquadahReactor.java @@ -106,9 +106,3 @@ public class GT_MetaTileEntity_FluidNaquadahReactor return new ITexture[] { super.getSidesActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_FLUID_SIDE_ACTIVE) }; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.generators.GT_MetaTileEntity_FluidNaquadahReactor - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java b/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java index f6c39bbe..488771a6 100644 --- a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java +++ b/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java @@ -110,9 +110,3 @@ public void onConfigLoad() return new ITexture[] { super.getSidesActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.GAS_TURBINE_SIDE_ACTIVE) }; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.generators.GT_MetaTileEntity_GasTurbine - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SolidNaquadahReactor.java b/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SolidNaquadahReactor.java index 945d0ad0..ef569485 100644 --- a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SolidNaquadahReactor.java +++ b/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SolidNaquadahReactor.java @@ -106,9 +106,3 @@ public class GT_MetaTileEntity_SolidNaquadahReactor return new ITexture[] { super.getSidesActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_SIDE_ACTIVE) }; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.generators.GT_MetaTileEntity_SolidNaquadahReactor - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java b/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java index 9da9f6b2..6a82eed4 100644 --- a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java +++ b/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java @@ -121,9 +121,3 @@ public void onConfigLoad() return new ITexture[] { super.getSidesActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_SIDE_ACTIVE) }; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.generators.GT_MetaTileEntity_SteamTurbine - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Bronze.java b/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Bronze.java index 1ca02b7c..9ee2253c 100644 --- a/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Bronze.java +++ b/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Bronze.java @@ -39,9 +39,3 @@ public class GT_MetaTileEntity_BasicHull_Bronze return rTextures; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.GT_MetaTileEntity_BasicHull_Bronze - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_BronzeBricks.java b/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_BronzeBricks.java index bd7004ba..3d881266 100644 --- a/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_BronzeBricks.java +++ b/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_BronzeBricks.java @@ -40,9 +40,3 @@ rTextures[2][(i + 1)] = tmp2; return rTextures; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.GT_MetaTileEntity_BasicHull_BronzeBricks - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Steel.java b/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Steel.java index 77f3033b..00e4481d 100644 --- a/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Steel.java +++ b/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Steel.java @@ -41,9 +41,3 @@ rTextures[2][(i + 1)] =tmp2; return rTextures; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.GT_MetaTileEntity_BasicHull_Steel - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_SteelBricks.java b/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_SteelBricks.java index 83bf7590..81079617 100644 --- a/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_SteelBricks.java +++ b/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_SteelBricks.java @@ -41,9 +41,3 @@ rTextures[2][(i + 1)] = tmp2; return rTextures; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.GT_MetaTileEntity_BasicHull_SteelBricks - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Boxinator.java b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Boxinator.java index 23b9d74f..bf498a22 100644 --- a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Boxinator.java +++ b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Boxinator.java @@ -107,9 +107,3 @@ public class GT_MetaTileEntity_Boxinator return false; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Boxinator - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java index 1a5d8e1a..8be43c1b 100644 --- a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java +++ b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java @@ -63,9 +63,3 @@ public class GT_MetaTileEntity_Disassembler return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) && (aStack.getTagCompound() != null) && (aStack.getTagCompound().getCompoundTag("GT.CraftingComponents") != null); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Disassembler - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java index 07337cd3..1932ad49 100644 --- a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java +++ b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java @@ -75,9 +75,3 @@ public class GT_MetaTileEntity_Massfabricator return Math.max(sUUAperUUM, 1000); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Massfabricator - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_PotionBrewer.java b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_PotionBrewer.java index 5064b50c..35110b6a 100644 --- a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_PotionBrewer.java +++ b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_PotionBrewer.java @@ -157,9 +157,3 @@ public class GT_MetaTileEntity_PotionBrewer return 750; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_PotionBrewer - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Printer.java b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Printer.java index bf10c514..b4058f88 100644 --- a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Printer.java +++ b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Printer.java @@ -63,9 +63,3 @@ public class GT_MetaTileEntity_Printer return null; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Printer - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Replicator.java b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Replicator.java index d81103fb..c5a0ecfc 100644 --- a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Replicator.java +++ b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Replicator.java @@ -117,9 +117,3 @@ public class GT_MetaTileEntity_Replicator return sHeaviestElementMass; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Replicator - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_RockBreaker.java b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_RockBreaker.java index d65970db..aab40f71 100644 --- a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_RockBreaker.java +++ b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_RockBreaker.java @@ -80,9 +80,3 @@ public class GT_MetaTileEntity_RockBreaker return 0; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_RockBreaker - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java index 33603691..6b53904f 100644 --- a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java +++ b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java @@ -213,9 +213,3 @@ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { sendLoopStart((byte)1); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Scanner - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java index 9f244a54..f510d064 100644 --- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java +++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java @@ -400,9 +400,3 @@ public class GT_MetaTileEntity_BronzeBlastFurnace return 0; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_BronzeBlastFurnace - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java index 5c6df03c..8e77293c 100644 --- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java +++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java @@ -241,9 +241,3 @@ public class GT_MetaTileEntity_ElectricBlastFurnace return false; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_ElectricBlastFurnace - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java index 468da7a8..fdc206b3 100644 --- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java +++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java @@ -172,9 +172,3 @@ public class GT_MetaTileEntity_ImplosionCompressor return false; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_ImplosionCompressor - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java index df129f8f..3a30fc43 100644 --- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java +++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java @@ -257,13 +257,3 @@ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { return false; } } - - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - - * Qualified Name: gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_LargeBoiler - - * JD-Core Version: 0.7.0.1 - - */ diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Bronze.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Bronze.java index c0c362d2..2df675ef 100644 --- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Bronze.java +++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Bronze.java @@ -73,9 +73,3 @@ public class GT_MetaTileEntity_LargeBoiler_Bronze return 16; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_LargeBoiler_Bronze - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Steel.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Steel.java index c6f16a7d..29f0901e 100644 --- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Steel.java +++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Steel.java @@ -73,9 +73,3 @@ public class GT_MetaTileEntity_LargeBoiler_Steel return 12; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_LargeBoiler_Steel - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_TungstenSteel.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_TungstenSteel.java index 399ba2dc..c3c3cbec 100644 --- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_TungstenSteel.java +++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_TungstenSteel.java @@ -73,9 +73,3 @@ public class GT_MetaTileEntity_LargeBoiler_TungstenSteel return 4; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_LargeBoiler_TungstenSteel - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java index f1017a18..fc2a8a90 100644 --- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java +++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java @@ -187,9 +187,3 @@ public class GT_MetaTileEntity_MultiFurnace return false; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_MultiFurnace - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java index e416905b..c0d4af25 100644 --- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java +++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java @@ -167,9 +167,3 @@ public class GT_MetaTileEntity_VacuumFreezer return false; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_VacuumFreezer - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Bronze.java b/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Bronze.java index e8e06e94..ce722b63 100644 --- a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Bronze.java +++ b/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Bronze.java @@ -114,9 +114,3 @@ public class GT_MetaTileEntity_AlloySmelter_Bronze return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER) }; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_AlloySmelter_Bronze - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Steel.java b/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Steel.java index e2d9ddbf..3de31757 100644 --- a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Steel.java +++ b/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Steel.java @@ -114,9 +114,3 @@ public class GT_MetaTileEntity_AlloySmelter_Steel return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER) }; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_AlloySmelter_Steel - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java b/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java index 8b9d8400..f69dd2ad 100644 --- a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java +++ b/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java @@ -110,9 +110,3 @@ public class GT_MetaTileEntity_Compressor_Bronze return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_COMPRESSOR) }; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Compressor_Bronze - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java b/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java index ec478e62..f448e8b4 100644 --- a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java +++ b/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java @@ -110,9 +110,3 @@ public class GT_MetaTileEntity_Compressor_Steel return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_COMPRESSOR) }; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Compressor_Steel - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java b/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java index bfcf602c..03c31a5b 100644 --- a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java +++ b/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java @@ -110,9 +110,3 @@ public class GT_MetaTileEntity_Extractor_Bronze return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_EXTRACTOR) }; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Extractor_Bronze - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java b/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java index d2a0cc3c..f30adfc5 100644 --- a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java +++ b/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java @@ -110,9 +110,3 @@ public class GT_MetaTileEntity_Extractor_Steel return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_EXTRACTOR) }; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Extractor_Steel - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java b/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java index 55965713..8cdaf470 100644 --- a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java +++ b/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java @@ -114,9 +114,3 @@ public class GT_MetaTileEntity_ForgeHammer_Bronze return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_HAMMER) }; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_ForgeHammer_Bronze - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java b/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java index fda06205..a8e41598 100644 --- a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java +++ b/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java @@ -114,9 +114,3 @@ public class GT_MetaTileEntity_ForgeHammer_Steel return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_HAMMER) }; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_ForgeHammer_Steel - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Bronze.java b/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Bronze.java index 29606fce..0a4f86fc 100644 --- a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Bronze.java +++ b/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Bronze.java @@ -110,9 +110,3 @@ public class GT_MetaTileEntity_Furnace_Bronze return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_FURNACE) }; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Furnace_Bronze - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Steel.java b/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Steel.java index 3bce5fd4..12b915af 100644 --- a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Steel.java +++ b/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Steel.java @@ -110,9 +110,3 @@ public class GT_MetaTileEntity_Furnace_Steel return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_FURNACE) }; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Furnace_Steel - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java b/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java index 4f8104cc..59b13f6e 100644 --- a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java +++ b/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java @@ -129,9 +129,3 @@ public class GT_MetaTileEntity_Macerator_Steel return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_MACERATOR) }; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Macerator_Steel - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_Locker.java b/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_Locker.java index 1f6df57c..f0beaa45 100644 --- a/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_Locker.java +++ b/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_Locker.java @@ -195,9 +195,3 @@ rTextures[2][(i + 1)] =tmp2; return false; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.storage.GT_MetaTileEntity_Locker - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool.java b/main/java/gregtech/common/tools/GT_Tool.java index 3bd87a4b..30995b6d 100644 --- a/main/java/gregtech/common/tools/GT_Tool.java +++ b/main/java/gregtech/common/tools/GT_Tool.java @@ -168,9 +168,3 @@ public abstract class GT_Tool return aOriginalDamage; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Axe.java b/main/java/gregtech/common/tools/GT_Tool_Axe.java index 72c60f15..28cd415a 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Axe.java +++ b/main/java/gregtech/common/tools/GT_Tool_Axe.java @@ -144,9 +144,3 @@ public class GT_Tool_Axe return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been chopped by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Axe - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_BranchCutter.java b/main/java/gregtech/common/tools/GT_Tool_BranchCutter.java index 0757a511..a1e29211 100644 --- a/main/java/gregtech/common/tools/GT_Tool_BranchCutter.java +++ b/main/java/gregtech/common/tools/GT_Tool_BranchCutter.java @@ -98,9 +98,3 @@ public class GT_Tool_BranchCutter return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been trimmed by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_BranchCutter - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_ButcheryKnife.java b/main/java/gregtech/common/tools/GT_Tool_ButcheryKnife.java index 7d70d8ca..5c96cbb3 100644 --- a/main/java/gregtech/common/tools/GT_Tool_ButcheryKnife.java +++ b/main/java/gregtech/common/tools/GT_Tool_ButcheryKnife.java @@ -97,9 +97,3 @@ public class GT_Tool_ButcheryKnife return false; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_ButcheryKnife - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_BuzzSaw.java b/main/java/gregtech/common/tools/GT_Tool_BuzzSaw.java index 8208b2c7..1db0c0be 100644 --- a/main/java/gregtech/common/tools/GT_Tool_BuzzSaw.java +++ b/main/java/gregtech/common/tools/GT_Tool_BuzzSaw.java @@ -79,9 +79,3 @@ public class GT_Tool_BuzzSaw return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got buzzed by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_BuzzSaw - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Chainsaw_HV.java b/main/java/gregtech/common/tools/GT_Tool_Chainsaw_HV.java index 54f1794a..0847a6db 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Chainsaw_HV.java +++ b/main/java/gregtech/common/tools/GT_Tool_Chainsaw_HV.java @@ -53,9 +53,3 @@ public class GT_Tool_Chainsaw_HV return aIsToolHead ? gregtech.api.items.GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadChainsaw.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_HV; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Chainsaw_HV - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Chainsaw_LV.java b/main/java/gregtech/common/tools/GT_Tool_Chainsaw_LV.java index 053749fd..987ec8be 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Chainsaw_LV.java +++ b/main/java/gregtech/common/tools/GT_Tool_Chainsaw_LV.java @@ -112,9 +112,3 @@ public class GT_Tool_Chainsaw_LV return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " was massacred by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Chainsaw_LV - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Chainsaw_MV.java b/main/java/gregtech/common/tools/GT_Tool_Chainsaw_MV.java index 646fad01..2c46049a 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Chainsaw_MV.java +++ b/main/java/gregtech/common/tools/GT_Tool_Chainsaw_MV.java @@ -53,9 +53,3 @@ public class GT_Tool_Chainsaw_MV return aIsToolHead ? gregtech.api.items.GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadChainsaw.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_MV; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Chainsaw_MV - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Crowbar.java b/main/java/gregtech/common/tools/GT_Tool_Crowbar.java index 1451b05e..87c30b4a 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Crowbar.java +++ b/main/java/gregtech/common/tools/GT_Tool_Crowbar.java @@ -143,9 +143,3 @@ public class GT_Tool_Crowbar return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " was removed by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Crowbar - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Drill_HV.java b/main/java/gregtech/common/tools/GT_Tool_Drill_HV.java index 0ad23b8f..03167c16 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Drill_HV.java +++ b/main/java/gregtech/common/tools/GT_Tool_Drill_HV.java @@ -62,9 +62,3 @@ public class GT_Tool_Drill_HV return aIsToolHead ? gregtech.api.items.GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadDrill.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_HV; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Drill_HV - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Drill_LV.java b/main/java/gregtech/common/tools/GT_Tool_Drill_LV.java index 5feae608..85291094 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Drill_LV.java +++ b/main/java/gregtech/common/tools/GT_Tool_Drill_LV.java @@ -130,9 +130,3 @@ public class GT_Tool_Drill_LV return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got the Drill! (by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + ")"); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Drill_LV - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Drill_MV.java b/main/java/gregtech/common/tools/GT_Tool_Drill_MV.java index 928d4c39..4548e463 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Drill_MV.java +++ b/main/java/gregtech/common/tools/GT_Tool_Drill_MV.java @@ -55,9 +55,3 @@ public class GT_Tool_Drill_MV return aIsToolHead ? gregtech.api.items.GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadDrill.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_MV; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Drill_MV - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_File.java b/main/java/gregtech/common/tools/GT_Tool_File.java index 43e39e80..29d04f81 100644 --- a/main/java/gregtech/common/tools/GT_Tool_File.java +++ b/main/java/gregtech/common/tools/GT_Tool_File.java @@ -122,9 +122,3 @@ public class GT_Tool_File return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been filed D for 'Dead' by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_File - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_HardHammer.java b/main/java/gregtech/common/tools/GT_Tool_HardHammer.java index 71f5c6e7..f7212b9a 100644 --- a/main/java/gregtech/common/tools/GT_Tool_HardHammer.java +++ b/main/java/gregtech/common/tools/GT_Tool_HardHammer.java @@ -188,9 +188,3 @@ public class GT_Tool_HardHammer try{GT_Mod.instance.achievements.issueAchievement(aPlayer, "tools");}catch(Exception e){} } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_HardHammer - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Hoe.java b/main/java/gregtech/common/tools/GT_Tool_Hoe.java index 22cf5e74..3e6f4687 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Hoe.java +++ b/main/java/gregtech/common/tools/GT_Tool_Hoe.java @@ -126,9 +126,3 @@ public class GT_Tool_Hoe return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been called a stupid Hoe by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Hoe - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_JackHammer.java b/main/java/gregtech/common/tools/GT_Tool_JackHammer.java index 4051414d..43043f9d 100644 --- a/main/java/gregtech/common/tools/GT_Tool_JackHammer.java +++ b/main/java/gregtech/common/tools/GT_Tool_JackHammer.java @@ -119,9 +119,3 @@ public class GT_Tool_JackHammer return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been jackhammered into pieces by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_JackHammer - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Knife.java b/main/java/gregtech/common/tools/GT_Tool_Knife.java index 35d4a774..962d7e5c 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Knife.java +++ b/main/java/gregtech/common/tools/GT_Tool_Knife.java @@ -57,9 +57,3 @@ public class GT_Tool_Knife return new ChatComponentText("<" + EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + "> " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + " what are you doing?, " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + "?!? STAHP!!!"); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Knife - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Mortar.java b/main/java/gregtech/common/tools/GT_Tool_Mortar.java index 21a6d679..7284fe22 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Mortar.java +++ b/main/java/gregtech/common/tools/GT_Tool_Mortar.java @@ -122,9 +122,3 @@ public class GT_Tool_Mortar return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " was grounded by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Mortar - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Pickaxe.java b/main/java/gregtech/common/tools/GT_Tool_Pickaxe.java index 7ac2cadd..a0bb3271 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Pickaxe.java +++ b/main/java/gregtech/common/tools/GT_Tool_Pickaxe.java @@ -126,9 +126,3 @@ public class GT_Tool_Pickaxe return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got mined by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Pickaxe - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Plow.java b/main/java/gregtech/common/tools/GT_Tool_Plow.java index 1a5efd50..5f120bf3 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Plow.java +++ b/main/java/gregtech/common/tools/GT_Tool_Plow.java @@ -79,9 +79,3 @@ public class GT_Tool_Plow return new ChatComponentText(EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + " plew through the yard of " + EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Plow - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Plunger.java b/main/java/gregtech/common/tools/GT_Tool_Plunger.java index 00a4dceb..e8f406ee 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Plunger.java +++ b/main/java/gregtech/common/tools/GT_Tool_Plunger.java @@ -88,9 +88,3 @@ public class GT_Tool_Plunger return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got stuck trying to escape through a Pipe while fighting " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Plunger - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_RollingPin.java b/main/java/gregtech/common/tools/GT_Tool_RollingPin.java index e7ec8819..619a6b39 100644 --- a/main/java/gregtech/common/tools/GT_Tool_RollingPin.java +++ b/main/java/gregtech/common/tools/GT_Tool_RollingPin.java @@ -63,9 +63,3 @@ public class GT_Tool_RollingPin return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got flattened by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_RollingPin - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Saw.java b/main/java/gregtech/common/tools/GT_Tool_Saw.java index 876b82e9..0a406971 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Saw.java +++ b/main/java/gregtech/common/tools/GT_Tool_Saw.java @@ -140,9 +140,3 @@ public class GT_Tool_Saw return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " was getting cut down by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Saw - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Scoop.java b/main/java/gregtech/common/tools/GT_Tool_Scoop.java index c7eb3e55..62bb1720 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Scoop.java +++ b/main/java/gregtech/common/tools/GT_Tool_Scoop.java @@ -132,9 +132,3 @@ public class GT_Tool_Scoop return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got scooped up by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Scoop - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Screwdriver.java b/main/java/gregtech/common/tools/GT_Tool_Screwdriver.java index 8dbe5812..41e97287 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Screwdriver.java +++ b/main/java/gregtech/common/tools/GT_Tool_Screwdriver.java @@ -142,9 +142,3 @@ public class GT_Tool_Screwdriver return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " is screwed! (by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + ")"); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Screwdriver - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Screwdriver_LV.java b/main/java/gregtech/common/tools/GT_Tool_Screwdriver_LV.java index f13b7419..43186f3a 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Screwdriver_LV.java +++ b/main/java/gregtech/common/tools/GT_Tool_Screwdriver_LV.java @@ -30,9 +30,3 @@ public class GT_Tool_Screwdriver_LV return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Screwdriver_LV - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Sense.java b/main/java/gregtech/common/tools/GT_Tool_Sense.java index af609cef..ff8f48af 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Sense.java +++ b/main/java/gregtech/common/tools/GT_Tool_Sense.java @@ -78,9 +78,3 @@ public class GT_Tool_Sense return new ChatComponentText(EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + " has taken the Soul of " + EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Sense - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Shovel.java b/main/java/gregtech/common/tools/GT_Tool_Shovel.java index 88ea7fc1..27029337 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Shovel.java +++ b/main/java/gregtech/common/tools/GT_Tool_Shovel.java @@ -114,9 +114,3 @@ public class GT_Tool_Shovel return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got dug up by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Shovel - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_SoftHammer.java b/main/java/gregtech/common/tools/GT_Tool_SoftHammer.java index 9de0b8f4..fe89fffa 100644 --- a/main/java/gregtech/common/tools/GT_Tool_SoftHammer.java +++ b/main/java/gregtech/common/tools/GT_Tool_SoftHammer.java @@ -133,9 +133,3 @@ public class GT_Tool_SoftHammer return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " was hammered to death by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_SoftHammer - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Sword.java b/main/java/gregtech/common/tools/GT_Tool_Sword.java index 004ed909..90579dcb 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Sword.java +++ b/main/java/gregtech/common/tools/GT_Tool_Sword.java @@ -120,9 +120,3 @@ public class GT_Tool_Sword aPlayer.triggerAchievement(AchievementList.buildSword); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Sword - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_UniversalSpade.java b/main/java/gregtech/common/tools/GT_Tool_UniversalSpade.java index 47d89cd0..d5f6c022 100644 --- a/main/java/gregtech/common/tools/GT_Tool_UniversalSpade.java +++ b/main/java/gregtech/common/tools/GT_Tool_UniversalSpade.java @@ -135,9 +135,3 @@ public class GT_Tool_UniversalSpade return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been digged by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_UniversalSpade - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_WireCutter.java b/main/java/gregtech/common/tools/GT_Tool_WireCutter.java index 4e105486..4d9a4afd 100644 --- a/main/java/gregtech/common/tools/GT_Tool_WireCutter.java +++ b/main/java/gregtech/common/tools/GT_Tool_WireCutter.java @@ -117,9 +117,3 @@ public class GT_Tool_WireCutter return new ChatComponentText(EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + " has cut the Cable for the Life Support Machine of " + EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_WireCutter - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Wrench_HV.java b/main/java/gregtech/common/tools/GT_Tool_Wrench_HV.java index 1d682520..e3b565dc 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Wrench_HV.java +++ b/main/java/gregtech/common/tools/GT_Tool_Wrench_HV.java @@ -65,9 +65,3 @@ public class GT_Tool_Wrench_HV return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Wrench_HV - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Wrench_LV.java b/main/java/gregtech/common/tools/GT_Tool_Wrench_LV.java index 6790f0c4..5cd294e1 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Wrench_LV.java +++ b/main/java/gregtech/common/tools/GT_Tool_Wrench_LV.java @@ -72,9 +72,3 @@ public class GT_Tool_Wrench_LV return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Wrench_LV - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/common/tools/GT_Tool_Wrench_MV.java b/main/java/gregtech/common/tools/GT_Tool_Wrench_MV.java index 914099f1..212bc0cd 100644 --- a/main/java/gregtech/common/tools/GT_Tool_Wrench_MV.java +++ b/main/java/gregtech/common/tools/GT_Tool_Wrench_MV.java @@ -65,9 +65,3 @@ public class GT_Tool_Wrench_MV return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tools.GT_Tool_Wrench_MV - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/load/GT_CoverBehaviorLoader.java b/main/java/gregtech/loaders/load/GT_CoverBehaviorLoader.java index 3fa3192b..c44d52a9 100644 --- a/main/java/gregtech/loaders/load/GT_CoverBehaviorLoader.java +++ b/main/java/gregtech/loaders/load/GT_CoverBehaviorLoader.java @@ -11,9 +11,3 @@ public class GT_CoverBehaviorLoader GT_Log.out.println("GT_Mod: Adding Cover Behaviors"); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.loaders.load.GT_CoverBehaviorLoader - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/load/GT_FuelLoader.java b/main/java/gregtech/loaders/load/GT_FuelLoader.java index 7bc95726..d5934ebb 100644 --- a/main/java/gregtech/loaders/load/GT_FuelLoader.java +++ b/main/java/gregtech/loaders/load/GT_FuelLoader.java @@ -33,9 +33,3 @@ public class GT_FuelLoader GT_Values.RA.addFuel(new ItemStack(Blocks.beacon, 1), null, Materials.NetherStar.mFuelPower * 2, Materials.NetherStar.mFuelType); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.loaders.load.GT_FuelLoader - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/load/GT_SonictronLoader.java b/main/java/gregtech/loaders/load/GT_SonictronLoader.java index b146aad9..0d22d1b3 100644 --- a/main/java/gregtech/loaders/load/GT_SonictronLoader.java +++ b/main/java/gregtech/loaders/load/GT_SonictronLoader.java @@ -158,9 +158,3 @@ public class GT_SonictronLoader GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.loaders.load.GT_SonictronLoader - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/misc/GT_CoverLoader.java b/main/java/gregtech/loaders/misc/GT_CoverLoader.java index 94eddc13..f4a73c87 100644 --- a/main/java/gregtech/loaders/misc/GT_CoverLoader.java +++ b/main/java/gregtech/loaders/misc/GT_CoverLoader.java @@ -24,9 +24,3 @@ public class GT_CoverLoader GregTech_API.registerCover(GT_ModHandler.getIC2Item("reactorVentDiamond", 1L), new GT_RenderedTexture(Textures.BlockIcons.VENT_ADVANCED), null); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.loaders.misc.GT_CoverLoader - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingAll.java b/main/java/gregtech/loaders/oreprocessing/ProcessingAll.java index 049cd940..f153e5da 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingAll.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingAll.java @@ -17,9 +17,3 @@ public class ProcessingAll implements gregtech.api.interfaces.IOreRecipeRegistra if (((aStack.getItem() instanceof net.minecraft.item.ItemBlock)) && (aPrefix.mDefaultStackSize < aStack.getItem().getItemStackLimit(aStack))) aStack.getItem().setMaxStackSize(aPrefix.mDefaultStackSize); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingAll.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java b/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java index 80290942..4100022e 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java @@ -41,9 +41,3 @@ public class ProcessingArrows implements gregtech.api.interfaces.IOreRecipeRegis GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.Mercury.getFluid(25L), tOutput, null, null, null, 100, 2); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingArrows.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingBattery.java b/main/java/gregtech/loaders/oreprocessing/ProcessingBattery.java index c3496813..dd6984d9 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingBattery.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingBattery.java @@ -23,9 +23,3 @@ public class ProcessingBattery implements gregtech.api.interfaces.IOreRecipeRegi } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingBattery.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java b/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java index aae640f2..eda781bd 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java @@ -19,9 +19,3 @@ public class ProcessingBeans implements gregtech.api.interfaces.IOreRecipeRegist if (aOreDictName.equals("beansCocoa")) GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cocoa, 1L)); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingBeans.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java b/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java index 7e0ba7ea..98f08594 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java @@ -66,9 +66,3 @@ public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegist } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingBlock.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingBolt.java b/main/java/gregtech/loaders/oreprocessing/ProcessingBolt.java index a695afd9..7303c8a7 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingBolt.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingBolt.java @@ -24,9 +24,3 @@ public class ProcessingBolt implements gregtech.api.interfaces.IOreRecipeRegistr if (!aMaterial.contains(SubTag.NO_WORKING)) GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.screw, aMaterial, 1L), null, (int)Math.max(aMaterial.getMass() / 8L, 1L), 4); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingBolt.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java b/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java index 20d48db6..6f7fa921 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java @@ -100,13 +100,3 @@ public class ProcessingCell } } } - - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - - * Qualified Name: gregtech.loaders.oreprocessing.ProcessingCell - - * JD-Core Version: 0.7.0.1 - - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingCellPlasma.java b/main/java/gregtech/loaders/oreprocessing/ProcessingCellPlasma.java index 1718b517..de3e48ab 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingCellPlasma.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingCellPlasma.java @@ -25,9 +25,3 @@ public class ProcessingCellPlasma implements gregtech.api.interfaces.IOreRecipeR } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingCellPlasma.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingCircuit.java b/main/java/gregtech/loaders/oreprocessing/ProcessingCircuit.java index d161c370..9164641d 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingCircuit.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingCircuit.java @@ -32,9 +32,3 @@ public class ProcessingCircuit implements gregtech.api.interfaces.IOreRecipeRegi } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingCircuit.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingCompressed.java b/main/java/gregtech/loaders/oreprocessing/ProcessingCompressed.java index 17e05e1e..24a28193 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingCompressed.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingCompressed.java @@ -24,9 +24,3 @@ public class ProcessingCompressed implements IOreRecipeRegistrator GT_RecipeRegistrator.registerUsagesForMaterials(GT_Utility.copyAmount(1L, new Object[] { aStack }), null, false); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingCompressed.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java b/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java index 1ce6d776..6fd802eb 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java @@ -59,9 +59,3 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingCrafting.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java b/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java index 2920bbcc..9155ecac 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java @@ -49,9 +49,3 @@ public class ProcessingCrop implements gregtech.api.interfaces.IOreRecipeRegistr } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingCrop.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedCentrifuged.java b/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedCentrifuged.java index 7b9ab404..0af27d1b 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedCentrifuged.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedCentrifuged.java @@ -21,9 +21,3 @@ public class ProcessingCrushedCentrifuged implements gregtech.api.interfaces.IOr GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, GT_Utility.selectItemInList(2, aMaterial.mMacerateInto, aMaterial.mOreByProducts), 1L), 10, false); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingCrushedCentrifuged.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedPurified.java b/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedPurified.java index f6a45be5..384187f2 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedPurified.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedPurified.java @@ -22,9 +22,3 @@ public class ProcessingCrushedPurified implements gregtech.api.interfaces.IOreRe if (tGem != null) GT_Values.RA.addSifterRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, tGem, 1L), GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, tGem, 1L), tGem, GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, tGem, 1L), GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, tGem, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, tGem, 1L) }, new int[] { 100, 400, 1500, 2000, 4000, 5000 }, 800, 16); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingCrushedPurified.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java b/main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java index 41273652..92faac97 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java @@ -22,9 +22,3 @@ public class ProcessingCrystallized implements gregtech.api.interfaces.IOreRecip GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), null, 10, false); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingCrystallized.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java b/main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java index fa46a251..bb24587e 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java @@ -34,9 +34,3 @@ public class ProcessingDirty implements gregtech.api.interfaces.IOreRecipeRegist } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingDirty.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java b/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java index 0909cfe4..0800d244 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java @@ -164,9 +164,3 @@ else if (!aMaterial.contains(SubTag.NO_WORKING)) } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingDust.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingDustImpure.java b/main/java/gregtech/loaders/oreprocessing/ProcessingDustImpure.java index 3de789f1..dd8f1e1d 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingDustImpure.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingDustImpure.java @@ -63,9 +63,3 @@ public class ProcessingDustImpure implements gregtech.api.interfaces.IOreRecipeR } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingDustImpure.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingDustSmall.java b/main/java/gregtech/loaders/oreprocessing/ProcessingDustSmall.java index e54f0c58..16d91881 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingDustSmall.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingDustSmall.java @@ -32,9 +32,3 @@ public class ProcessingDustSmall implements gregtech.api.interfaces.IOreRecipeRe } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingDustSmall.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingDustTiny.java b/main/java/gregtech/loaders/oreprocessing/ProcessingDustTiny.java index c1641383..760785cf 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingDustTiny.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingDustTiny.java @@ -37,9 +37,3 @@ public class ProcessingDustTiny implements gregtech.api.interfaces.IOreRecipeReg } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingDustTiny.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java b/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java index 47431f6d..007943f1 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java @@ -32,9 +32,3 @@ public class ProcessingDye implements IOreRecipeRegistrator } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingDye.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java b/main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java index 5d3d3821..38d47274 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java @@ -19,9 +19,3 @@ public class ProcessingFoil implements IOreRecipeRegistrator GregTech_API.registerCover(aStack, new GT_RenderedTexture(aMaterial.mIconSet.mTextures[70], aMaterial.mRGBa, false), null); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingFoil.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java b/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java index 801ec824..1e9e5717 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java @@ -37,9 +37,3 @@ public class ProcessingFood implements gregtech.api.interfaces.IOreRecipeRegistr } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingFood.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingGear.java b/main/java/gregtech/loaders/oreprocessing/ProcessingGear.java index 0263a52e..dc224f20 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingGear.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingGear.java @@ -22,9 +22,3 @@ public class ProcessingGear implements gregtech.api.interfaces.IOreRecipeRegistr if (aMaterial.mStandardMoltenFluid != null) GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Gear.get(0L, new Object[0]), aMaterial.getMolten(576L), GT_OreDictUnificator.get(aPrefix, aMaterial, 1L), 128, 8); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingGear.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingGearSmall.java b/main/java/gregtech/loaders/oreprocessing/ProcessingGearSmall.java index 66b0145a..4a403ff1 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingGearSmall.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingGearSmall.java @@ -20,9 +20,3 @@ public class ProcessingGearSmall implements gregtech.api.interfaces.IOreRecipeRe if (aMaterial.mStandardMoltenFluid != null) GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Gear_Small.get(0L, new Object[0]), aMaterial.getMolten(144L), GT_Utility.copyAmount(1L, new Object[] { aStack }), 16, 8); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingGearSmall.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java b/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java index c3a77bd9..33f2e0ac 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java @@ -54,9 +54,3 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingGem.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingGemChipped.java b/main/java/gregtech/loaders/oreprocessing/ProcessingGemChipped.java index 031cfca0..788b3339 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingGemChipped.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingGemChipped.java @@ -21,9 +21,3 @@ public class ProcessingGemChipped implements gregtech.api.interfaces.IOreRecipeR if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_WORKING)) GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 1L), (int)Math.max(aMaterial.getMass(), 1L), 8); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingGemChipped.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingGemExquisite.java b/main/java/gregtech/loaders/oreprocessing/ProcessingGemExquisite.java index 0f62e5e3..0d089212 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingGemExquisite.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingGemExquisite.java @@ -22,9 +22,3 @@ public class ProcessingGemExquisite implements gregtech.api.interfaces.IOreRecip GT_Values.RA.addForgeHammerRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 2L), 64, 16); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingGemExquisite.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawed.java b/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawed.java index 0d0effb5..26a5eb41 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawed.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawed.java @@ -22,9 +22,3 @@ public class ProcessingGemFlawed implements gregtech.api.interfaces.IOreRecipeRe GT_Values.RA.addForgeHammerRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, 2L), 64, 16); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingGemFlawed.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawless.java b/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawless.java index 11e1c13f..fd413de2 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawless.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawless.java @@ -22,9 +22,3 @@ public class ProcessingGemFlawless implements gregtech.api.interfaces.IOreRecipe GT_Values.RA.addForgeHammerRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 2L), 64, 16); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingGemFlawless.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingIngot1.java b/main/java/gregtech/loaders/oreprocessing/ProcessingIngot1.java index 8cd352de..066e0d3d 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingIngot1.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingIngot1.java @@ -61,9 +61,3 @@ public class ProcessingIngot1 implements gregtech.api.interfaces.IOreRecipeRegis } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingIngot1.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingIngot2.java b/main/java/gregtech/loaders/oreprocessing/ProcessingIngot2.java index 705e0e8e..9521a1ce 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingIngot2.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingIngot2.java @@ -23,9 +23,3 @@ public class ProcessingIngot2 implements gregtech.api.interfaces.IOreRecipeRegis } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingIngot2.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingIngot3.java b/main/java/gregtech/loaders/oreprocessing/ProcessingIngot3.java index fcede736..171f0746 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingIngot3.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingIngot3.java @@ -23,9 +23,3 @@ public class ProcessingIngot3 implements gregtech.api.interfaces.IOreRecipeRegis } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingIngot3.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingIngot4.java b/main/java/gregtech/loaders/oreprocessing/ProcessingIngot4.java index 90c3aa79..d0a24168 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingIngot4.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingIngot4.java @@ -22,9 +22,3 @@ public class ProcessingIngot4 implements gregtech.api.interfaces.IOreRecipeRegis } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingIngot4.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingIngot5.java b/main/java/gregtech/loaders/oreprocessing/ProcessingIngot5.java index 0420c8e0..d08e5988 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingIngot5.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingIngot5.java @@ -22,9 +22,3 @@ public class ProcessingIngot5 implements gregtech.api.interfaces.IOreRecipeRegis } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingIngot5.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingIngotHot.java b/main/java/gregtech/loaders/oreprocessing/ProcessingIngotHot.java index e176ac6b..939e4f2f 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingIngotHot.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingIngotHot.java @@ -19,9 +19,3 @@ public class ProcessingIngotHot implements gregtech.api.interfaces.IOreRecipeReg GT_Values.RA.addVacuumFreezerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 3L, 1L)); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingIngotHot.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingItem.java b/main/java/gregtech/loaders/oreprocessing/ProcessingItem.java index effba804..63d5c771 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingItem.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingItem.java @@ -68,9 +68,3 @@ public class ProcessingItem implements gregtech.api.interfaces.IOreRecipeRegistr } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingItem.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingLeaves.java b/main/java/gregtech/loaders/oreprocessing/ProcessingLeaves.java index 5521fc18..39d0cec0 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingLeaves.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingLeaves.java @@ -13,9 +13,3 @@ public class ProcessingLeaves implements gregtech.api.interfaces.IOreRecipeRegis public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) {} } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingLeaves.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java b/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java index 462225a8..0e00bb6c 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java @@ -22,9 +22,3 @@ public class ProcessingLens implements gregtech.api.interfaces.IOreRecipeRegistr GregTech_API.registerCover(aStack, new GT_MultiTexture(new gregtech.api.interfaces.ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_LENS, aMaterial.mRGBa, false) }), new gregtech.common.covers.GT_Cover_Lens(aMaterial.mColor.mIndex)); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingLens.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java b/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java index cebd50ea..6d747ab0 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java @@ -84,9 +84,3 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", false))) GT_ModHandler.removeFurnaceSmelting(GT_Utility.copyAmount(1L, new Object[] { aStack })); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingLog.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java b/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java index a5a09162..a28b6912 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java @@ -36,9 +36,3 @@ public class ProcessingNugget implements gregtech.api.interfaces.IOreRecipeRegis } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingNugget.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java b/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java index 97326463..7af18315 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java @@ -116,9 +116,3 @@ public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistra return true; } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingOre.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java b/main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java index ac8ad735..e9013898 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java @@ -33,10 +33,4 @@ public class ProcessingOrePoor implements gregtech.api.interfaces.IOreRecipeRegi if (aMaterial.contains(gregtech.api.enums.SubTag.NO_SMELTING)) GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial.mDirectSmelting, aMultiplier)); } } -} - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingOrePoor.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file +} \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingOreSmelting.java b/main/java/gregtech/loaders/oreprocessing/ProcessingOreSmelting.java index a5274046..93e24bc3 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingOreSmelting.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingOreSmelting.java @@ -39,4 +39,4 @@ public class ProcessingOreSmelting implements gregtech.api.interfaces.IOreRecipe } } } -} \ No newline at end of file +} diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPipeLarge.java b/main/java/gregtech/loaders/oreprocessing/ProcessingPipeLarge.java index a2007fb8..a149407b 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingPipeLarge.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingPipeLarge.java @@ -23,9 +23,3 @@ public class ProcessingPipeLarge implements gregtech.api.interfaces.IOreRecipeRe } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingPipeLarge.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPipeMedium.java b/main/java/gregtech/loaders/oreprocessing/ProcessingPipeMedium.java index 569b9428..229b72dd 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingPipeMedium.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingPipeMedium.java @@ -23,9 +23,3 @@ public class ProcessingPipeMedium implements gregtech.api.interfaces.IOreRecipeR } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingPipeMedium.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPipeRestrictive.java b/main/java/gregtech/loaders/oreprocessing/ProcessingPipeRestrictive.java index 6594365e..b38a58a5 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingPipeRestrictive.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingPipeRestrictive.java @@ -19,9 +19,3 @@ public class ProcessingPipeRestrictive implements gregtech.api.interfaces.IOreRe gregtech.api.enums.GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(aOreDictName.replaceFirst("Restrictive", ""), null, 1L, false, true), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Steel, aPrefix.mSecondaryMaterial.mAmount / OrePrefixes.ring.mMaterialAmount), GT_Utility.copyAmount(1L, new Object[] { aStack }), (int)(aPrefix.mSecondaryMaterial.mAmount * 400L / OrePrefixes.ring.mMaterialAmount), 4); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingPipeRestrictive.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPipeSmall.java b/main/java/gregtech/loaders/oreprocessing/ProcessingPipeSmall.java index 570c942f..d95a2b90 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingPipeSmall.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingPipeSmall.java @@ -23,9 +23,3 @@ public class ProcessingPipeSmall implements gregtech.api.interfaces.IOreRecipeRe } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingPipeSmall.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java b/main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java index be9af4b3..22d4e88c 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java @@ -57,9 +57,3 @@ public class ProcessingPlank implements gregtech.api.interfaces.IOreRecipeRegist } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingPlank.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPlate1.java b/main/java/gregtech/loaders/oreprocessing/ProcessingPlate1.java index 666038aa..96fe6a47 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingPlate1.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingPlate1.java @@ -65,9 +65,3 @@ public class ProcessingPlate1 implements gregtech.api.interfaces.IOreRecipeRegis } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingPlate1.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPlate2.java b/main/java/gregtech/loaders/oreprocessing/ProcessingPlate2.java index 774fbefd..c64ba8a8 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingPlate2.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingPlate2.java @@ -33,4 +33,4 @@ public class ProcessingPlate2 implements gregtech.api.interfaces.IOreRecipeRegis GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 2L), gregtech.api.enums.ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), Materials.Glue.getFluid(10L), GT_Utility.copyAmount(1L, new Object[] { aStack }), 64, 8); } } -} \ No newline at end of file +} diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPlate3.java b/main/java/gregtech/loaders/oreprocessing/ProcessingPlate3.java index 209ac0ff..4c0a4bc3 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingPlate3.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingPlate3.java @@ -34,9 +34,3 @@ public class ProcessingPlate3 implements gregtech.api.interfaces.IOreRecipeRegis } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingPlate3.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPlate4.java b/main/java/gregtech/loaders/oreprocessing/ProcessingPlate4.java index f2aafd50..a9c6fab4 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingPlate4.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingPlate4.java @@ -30,9 +30,3 @@ public class ProcessingPlate4 implements gregtech.api.interfaces.IOreRecipeRegis } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingPlate4.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPlate5.java b/main/java/gregtech/loaders/oreprocessing/ProcessingPlate5.java index 8a0f4d83..602c96f7 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingPlate5.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingPlate5.java @@ -29,9 +29,3 @@ public class ProcessingPlate5 implements gregtech.api.interfaces.IOreRecipeRegis } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingPlate5.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPlate9.java b/main/java/gregtech/loaders/oreprocessing/ProcessingPlate9.java index 85addddd..e4e72414 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingPlate9.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingPlate9.java @@ -21,9 +21,3 @@ public class ProcessingPlate9 implements IOreRecipeRegistrator GregTech_API.registerCover(aStack, new GT_RenderedTexture(aMaterial.mIconSet.mTextures[76], aMaterial.mRGBa, false), null); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingPlate9.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPlateAlloy.java b/main/java/gregtech/loaders/oreprocessing/ProcessingPlateAlloy.java index fad97321..16dacfe8 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingPlateAlloy.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingPlateAlloy.java @@ -31,9 +31,3 @@ public class ProcessingPlateAlloy implements gregtech.api.interfaces.IOreRecipeR } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingPlateAlloy.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPure.java b/main/java/gregtech/loaders/oreprocessing/ProcessingPure.java index acd20286..c1b8aec7 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingPure.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingPure.java @@ -23,9 +23,3 @@ public class ProcessingPure implements gregtech.api.interfaces.IOreRecipeRegistr GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dustPure, aMaterial.mMacerateInto, GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), 1L), GT_OreDictUnificator.get(OrePrefixes.dust, GT_Utility.selectItemInList(1, aMaterial.mMacerateInto, aMaterial.mOreByProducts), 1L), 10, false); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingPure.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java b/main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java index 602d5b2b..66efcc63 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java @@ -19,9 +19,3 @@ public class ProcessingRecycling implements gregtech.api.interfaces.IOreRecipeRe if ((aMaterial != Materials.Empty) && (GT_Utility.getFluidForFilledItem(aStack, true) == null)) GT_Values.RA.addCannerRecipe(aStack, null, GT_Utility.getContainerItem(aStack, true), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, aPrefix.mMaterialAmount / 3628800L), (int)Math.max(aMaterial.getMass() / 2L, 1L), 2); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingRecycling.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingSand.java b/main/java/gregtech/loaders/oreprocessing/ProcessingSand.java index c45f61d2..1cb9eca0 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingSand.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingSand.java @@ -25,9 +25,3 @@ public class ProcessingSand implements gregtech.api.interfaces.IOreRecipeRegistr } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingSand.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java b/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java index 74f5944b..53b4f6fd 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java @@ -21,9 +21,3 @@ public class ProcessingSaplings implements gregtech.api.interfaces.IOreRecipeReg GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Wood, 1L), 16, 8); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingSaplings.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java b/main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java index e921cbe8..7c601eeb 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java @@ -105,9 +105,3 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingShaping.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java b/main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java index 63815005..a79ce45f 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java @@ -21,9 +21,3 @@ public class ProcessingSlab implements gregtech.api.interfaces.IOreRecipeRegistr } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingSlab.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingStick.java b/main/java/gregtech/loaders/oreprocessing/ProcessingStick.java index df8413e0..6a1084fe 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingStick.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingStick.java @@ -24,9 +24,3 @@ public class ProcessingStick implements gregtech.api.interfaces.IOreRecipeRegist } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingStick.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java b/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java index a2aec41b..b3249e94 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java @@ -23,9 +23,3 @@ public class ProcessingStickLong implements gregtech.api.interfaces.IOreRecipeRe } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingStickLong.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingStone.java b/main/java/gregtech/loaders/oreprocessing/ProcessingStone.java index 23122046..c581536e 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingStone.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingStone.java @@ -70,9 +70,3 @@ public class ProcessingStone } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingStone.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingStoneCobble.java b/main/java/gregtech/loaders/oreprocessing/ProcessingStoneCobble.java index 27105920..75cc12fc 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingStoneCobble.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingStoneCobble.java @@ -26,9 +26,3 @@ public class ProcessingStoneCobble implements gregtech.api.interfaces.IOreRecipe GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(7L, new Object[] { aStack }), new ItemStack(Items.bow, 1, 0), Materials.Redstone.getMolten(144L), new ItemStack(Blocks.dispenser, 1), 400, 4); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingStoneCobble.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingStoneVarious.java b/main/java/gregtech/loaders/oreprocessing/ProcessingStoneVarious.java index 670c7c4a..a3bc8503 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingStoneVarious.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingStoneVarious.java @@ -30,9 +30,3 @@ public class ProcessingStoneVarious implements gregtech.api.interfaces.IOreRecip } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingStoneVarious.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadArrow.java b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadArrow.java index c013b747..2824a17b 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadArrow.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadArrow.java @@ -20,9 +20,3 @@ public class ProcessingToolHeadArrow implements gregtech.api.interfaces.IOreReci if (aMaterial.mStandardMoltenFluid != null) GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Arrow.get(0L, new Object[0]), aMaterial.getMolten(36L), GT_Utility.copyAmount(1L, new Object[] { aStack }), 16, 4); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingToolHeadArrow.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadAxe.java b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadAxe.java index 11b3126e..8c6ac19b 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadAxe.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadAxe.java @@ -18,9 +18,3 @@ public class ProcessingToolHeadAxe implements gregtech.api.interfaces.IOreRecipe GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(6, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingToolHeadAxe.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadBuzzSaw.java b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadBuzzSaw.java index c47a00db..77ea257e 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadBuzzSaw.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadBuzzSaw.java @@ -22,9 +22,3 @@ public class ProcessingToolHeadBuzzSaw implements gregtech.api.interfaces.IOreRe GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(140, 1, aMaterial, Materials.StainlessSteel, new long[] { 50000L, 32L, 1L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PBM", "dXG", "SGP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Sodium.get(1L, new Object[0]) }); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingToolHeadBuzzSaw.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadChainsaw.java b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadChainsaw.java index ccda6d2a..f61b8d0c 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadChainsaw.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadChainsaw.java @@ -28,9 +28,3 @@ public class ProcessingToolHeadChainsaw implements gregtech.api.interfaces.IOreR GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(114, 1, aMaterial, Materials.TungstenSteel, new long[] { 800000L, 512L, 3L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.TungstenSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.TungstenSteel), Character.valueOf('B'), ItemList.Battery_RE_HV_Sodium.get(1L, new Object[0]) }); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingToolHeadChainsaw.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadDrill.java b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadDrill.java index 7d4ba13b..d58cab1c 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadDrill.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadDrill.java @@ -32,9 +32,3 @@ public class ProcessingToolHeadDrill implements gregtech.api.interfaces.IOreReci GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(130, 1, aMaterial, Materials.Titanium, new long[] { 800000L, 512L, 3L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "PRP", "MPB", Character.valueOf('X'), OrePrefixes.stickLong.get(aMaterial), Character.valueOf('M'), ItemList.Electric_Piston_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('R'), OrePrefixes.spring.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_HV_Sodium.get(1L, new Object[0]) }); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingToolHeadDrill.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadFile.java b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadFile.java index ca93140e..f89367b4 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadFile.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadFile.java @@ -23,9 +23,3 @@ public class ProcessingToolHeadFile implements gregtech.api.interfaces.IOreRecip } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingToolHeadFile.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHoe.java b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHoe.java index 7e24b5c2..c1cbd497 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHoe.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHoe.java @@ -18,9 +18,3 @@ public class ProcessingToolHeadHoe implements gregtech.api.interfaces.IOreRecipe GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(8, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingToolHeadHoe.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPickaxe.java b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPickaxe.java index 9d11d3e1..d5ff3c78 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPickaxe.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPickaxe.java @@ -18,9 +18,3 @@ public class ProcessingToolHeadPickaxe implements gregtech.api.interfaces.IOreRe GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(2, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingToolHeadPickaxe.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPlow.java b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPlow.java index d8ad27a0..3f758089 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPlow.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPlow.java @@ -18,9 +18,3 @@ public class ProcessingToolHeadPlow implements gregtech.api.interfaces.IOreRecip GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(42, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingToolHeadPlow.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSaw.java b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSaw.java index 331882d0..11cb5113 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSaw.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSaw.java @@ -18,9 +18,3 @@ public class ProcessingToolHeadSaw implements gregtech.api.interfaces.IOreRecipe GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(10, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingToolHeadSaw.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSense.java b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSense.java index 260b21ba..78a3762c 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSense.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSense.java @@ -18,9 +18,3 @@ public class ProcessingToolHeadSense implements gregtech.api.interfaces.IOreReci GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(40, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingToolHeadSense.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadShovel.java b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadShovel.java index 4e961d20..d8b6bf32 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadShovel.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadShovel.java @@ -18,9 +18,3 @@ public class ProcessingToolHeadShovel implements gregtech.api.interfaces.IOreRec GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(4, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingToolHeadShovel.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSword.java b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSword.java index 79572b24..fcf3680e 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSword.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSword.java @@ -18,9 +18,3 @@ public class ProcessingToolHeadSword implements gregtech.api.interfaces.IOreReci GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(0, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingToolHeadSword.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadUniversalSpade.java b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadUniversalSpade.java index 552addc5..119be3c0 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadUniversalSpade.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadUniversalSpade.java @@ -19,9 +19,3 @@ public class ProcessingToolHeadUniversalSpade implements gregtech.api.interfaces GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(32, 1, aMaterial, aMaterial, null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial), OrePrefixes.screw.get(aMaterial), ToolDictNames.craftingToolScrewdriver }); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingToolHeadUniversalSpade.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadWrench.java b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadWrench.java index 6c6ca539..87434b86 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadWrench.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadWrench.java @@ -32,9 +32,3 @@ public class ProcessingToolHeadWrench implements gregtech.api.interfaces.IOreRec GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(150, 1, aMaterial, Materials.StainlessSteel, new long[] { 50000L, 32L, 1L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PdX", "MGS", "GBP", Character.valueOf('X'), OrePrefixes.stickLong.get(aMaterial), Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Sodium.get(1L, new Object[0]) }); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingToolHeadWrench.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java b/main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java index 1a877643..b906df68 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java @@ -43,9 +43,3 @@ public class ProcessingTransforming } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingTransforming.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingWax.java b/main/java/gregtech/loaders/oreprocessing/ProcessingWax.java index 633557d1..9f33c770 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingWax.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingWax.java @@ -18,9 +18,3 @@ public class ProcessingWax implements gregtech.api.interfaces.IOreRecipeRegistra if (aOreDictName.equals("waxMagical")) GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[] { aStack }), null, 6, 5); } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingWax.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingWire01.java b/main/java/gregtech/loaders/oreprocessing/ProcessingWire01.java index 8efb652e..30ddd5de 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingWire01.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingWire01.java @@ -42,9 +42,3 @@ public class ProcessingWire01 implements gregtech.api.interfaces.IOreRecipeRegis } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingWire01.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingWire02.java b/main/java/gregtech/loaders/oreprocessing/ProcessingWire02.java index d294d8db..6fe6f80e 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingWire02.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingWire02.java @@ -32,9 +32,3 @@ public class ProcessingWire02 implements gregtech.api.interfaces.IOreRecipeRegis } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingWire02.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingWire04.java b/main/java/gregtech/loaders/oreprocessing/ProcessingWire04.java index 9cdf6008..bd81db8b 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingWire04.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingWire04.java @@ -32,9 +32,3 @@ public class ProcessingWire04 implements gregtech.api.interfaces.IOreRecipeRegis } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingWire04.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingWire08.java b/main/java/gregtech/loaders/oreprocessing/ProcessingWire08.java index 167484f6..74b489f4 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingWire08.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingWire08.java @@ -32,9 +32,3 @@ public class ProcessingWire08 implements gregtech.api.interfaces.IOreRecipeRegis } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingWire08.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingWire12.java b/main/java/gregtech/loaders/oreprocessing/ProcessingWire12.java index 61112654..b23c6a13 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingWire12.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingWire12.java @@ -32,9 +32,3 @@ public class ProcessingWire12 implements gregtech.api.interfaces.IOreRecipeRegis } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingWire12.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingWire16.java b/main/java/gregtech/loaders/oreprocessing/ProcessingWire16.java index df767fb5..5a9a5170 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingWire16.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingWire16.java @@ -28,9 +28,3 @@ public class ProcessingWire16 implements gregtech.api.interfaces.IOreRecipeRegis } } } - - -/* Location: F:\Torrent\minecraft\jdgui test\gregtech_1.7.10-5.07.07-dev.jar!\gregtech\loaders\oreprocessing\ProcessingWire16.class - * Java compiler version: 6 (50.0) - * JD-Core Version: 0.7.1-SNAPSHOT-20140817 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/postload/GT_BlockResistanceLoader.java b/main/java/gregtech/loaders/postload/GT_BlockResistanceLoader.java index ee3928b0..ffa1779b 100644 --- a/main/java/gregtech/loaders/postload/GT_BlockResistanceLoader.java +++ b/main/java/gregtech/loaders/postload/GT_BlockResistanceLoader.java @@ -52,9 +52,3 @@ public class GT_BlockResistanceLoader tSet.add(Blocks.tnt); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.loaders.postload.GT_BlockResistanceLoader - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/postload/GT_BookAndLootLoader.java b/main/java/gregtech/loaders/postload/GT_BookAndLootLoader.java index cd17f31f..09f7bb47 100644 --- a/main/java/gregtech/loaders/postload/GT_BookAndLootLoader.java +++ b/main/java/gregtech/loaders/postload/GT_BookAndLootLoader.java @@ -117,9 +117,3 @@ public class GT_BookAndLootLoader ChestGenHooks.addItem("strongholdCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.arrowGtWood, Materials.SterlingSilver, 1L), 8, 24, 6)); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.loaders.postload.GT_BookAndLootLoader - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/postload/GT_CropLoader.java b/main/java/gregtech/loaders/postload/GT_CropLoader.java index d8338f30..bb9f1cf5 100644 --- a/main/java/gregtech/loaders/postload/GT_CropLoader.java +++ b/main/java/gregtech/loaders/postload/GT_CropLoader.java @@ -52,9 +52,3 @@ public class GT_CropLoader } } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.loaders.postload.GT_CropLoader - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/postload/GT_ItemMaxStacksizeLoader.java b/main/java/gregtech/loaders/postload/GT_ItemMaxStacksizeLoader.java index c12118a2..6d5e177f 100644 --- a/main/java/gregtech/loaders/postload/GT_ItemMaxStacksizeLoader.java +++ b/main/java/gregtech/loaders/postload/GT_ItemMaxStacksizeLoader.java @@ -82,9 +82,3 @@ public class GT_ItemMaxStacksizeLoader } } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.loaders.postload.GT_ItemMaxStacksizeLoader - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/postload/GT_MinableRegistrator.java b/main/java/gregtech/loaders/postload/GT_MinableRegistrator.java index ef56dcdf..46fb2aab 100644 --- a/main/java/gregtech/loaders/postload/GT_MinableRegistrator.java +++ b/main/java/gregtech/loaders/postload/GT_MinableRegistrator.java @@ -15,9 +15,3 @@ public class GT_MinableRegistrator GT_ModHandler.addValuableOre(Blocks.soul_sand, 0, 1); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.loaders.postload.GT_MinableRegistrator - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/postload/GT_RecyclerBlacklistLoader.java b/main/java/gregtech/loaders/postload/GT_RecyclerBlacklistLoader.java index a039b167..e90c65b6 100644 --- a/main/java/gregtech/loaders/postload/GT_RecyclerBlacklistLoader.java +++ b/main/java/gregtech/loaders/postload/GT_RecyclerBlacklistLoader.java @@ -62,9 +62,3 @@ public class GT_RecyclerBlacklistLoader } } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.loaders.postload.GT_RecyclerBlacklistLoader - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/postload/GT_ScrapboxDropLoader.java b/main/java/gregtech/loaders/postload/GT_ScrapboxDropLoader.java index f2f8dc36..45765581 100644 --- a/main/java/gregtech/loaders/postload/GT_ScrapboxDropLoader.java +++ b/main/java/gregtech/loaders/postload/GT_ScrapboxDropLoader.java @@ -105,9 +105,3 @@ public class GT_ScrapboxDropLoader GT_ModHandler.addScrapboxDrop(0.05F, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Diamond, 1L)); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.loaders.postload.GT_ScrapboxDropLoader - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/postload/GT_UUMRecipeLoader.java b/main/java/gregtech/loaders/postload/GT_UUMRecipeLoader.java index 0b03f348..7954ee93 100644 --- a/main/java/gregtech/loaders/postload/GT_UUMRecipeLoader.java +++ b/main/java/gregtech/loaders/postload/GT_UUMRecipeLoader.java @@ -5,9 +5,3 @@ public class GT_UUMRecipeLoader { public void run() {} } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.loaders.postload.GT_UUMRecipeLoader - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/postload/GT_Worldgenloader.java b/main/java/gregtech/loaders/postload/GT_Worldgenloader.java index 759cfa39..b8e1f430 100644 --- a/main/java/gregtech/loaders/postload/GT_Worldgenloader.java +++ b/main/java/gregtech/loaders/postload/GT_Worldgenloader.java @@ -134,9 +134,3 @@ public class GT_Worldgenloader new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.15", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.loaders.postload.GT_Worldgenloader - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/preload/GT_Loader_CircuitBehaviors.java b/main/java/gregtech/loaders/preload/GT_Loader_CircuitBehaviors.java index 7b82f2a9..305b3b7b 100644 --- a/main/java/gregtech/loaders/preload/GT_Loader_CircuitBehaviors.java +++ b/main/java/gregtech/loaders/preload/GT_Loader_CircuitBehaviors.java @@ -31,9 +31,3 @@ public class GT_Loader_CircuitBehaviors new GT_Circuit_Equals(18); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.loaders.preload.GT_Loader_CircuitBehaviors - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/preload/GT_Loader_ItemData.java b/main/java/gregtech/loaders/preload/GT_Loader_ItemData.java index 3584dcec..c0ceb5ea 100644 --- a/main/java/gregtech/loaders/preload/GT_Loader_ItemData.java +++ b/main/java/gregtech/loaders/preload/GT_Loader_ItemData.java @@ -177,9 +177,3 @@ public class GT_Loader_ItemData } } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.loaders.preload.GT_Loader_ItemData - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java b/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java index 94d51984..23cf902c 100644 --- a/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java +++ b/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java @@ -480,9 +480,3 @@ public class GT_Loader_Item_Block_And_Fluid GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Coffee, ItemList.IC2_CoffeePowder.get(1L, new Object[0])); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.loaders.preload.GT_Loader_Item_Block_And_Fluid - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java b/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java index b9e9ecea..5e24451c 100644 --- a/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java +++ b/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java @@ -1273,13 +1273,3 @@ public class GT_Loader_MetaTileEntities } } } - - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - - * Qualified Name: gregtech.loaders.preload.GT_Loader_MetaTileEntities - - * JD-Core Version: 0.7.0.1 - - */ diff --git a/main/java/gregtech/loaders/preload/GT_Loader_OreDictionary.java b/main/java/gregtech/loaders/preload/GT_Loader_OreDictionary.java index d062634b..5b6c29b4 100644 --- a/main/java/gregtech/loaders/preload/GT_Loader_OreDictionary.java +++ b/main/java/gregtech/loaders/preload/GT_Loader_OreDictionary.java @@ -205,9 +205,3 @@ public class GT_Loader_OreDictionary GT_OreDictUnificator.registerOre(OrePrefixes.circuit, Materials.Advanced, GT_ModHandler.getIC2Item("advancedCircuit", 1L)); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.loaders.preload.GT_Loader_OreDictionary - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/loaders/preload/GT_Loader_OreProcessing.java b/main/java/gregtech/loaders/preload/GT_Loader_OreProcessing.java index f740e55f..be1226f8 100644 --- a/main/java/gregtech/loaders/preload/GT_Loader_OreProcessing.java +++ b/main/java/gregtech/loaders/preload/GT_Loader_OreProcessing.java @@ -193,9 +193,3 @@ public class GT_Loader_OreProcessing new ProcessingWire16(); } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.loaders.preload.GT_Loader_OreProcessing - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/nei/GT_NEI_DefaultHandler.java b/main/java/gregtech/nei/GT_NEI_DefaultHandler.java index e9676de4..dcbd6af2 100644 --- a/main/java/gregtech/nei/GT_NEI_DefaultHandler.java +++ b/main/java/gregtech/nei/GT_NEI_DefaultHandler.java @@ -840,9 +840,3 @@ public class GT_NEI_DefaultHandler } } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.nei.GT_NEI_DefaultHandler - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file diff --git a/main/java/gregtech/nei/NEI_GT_Config.java b/main/java/gregtech/nei/NEI_GT_Config.java index d2db7055..c0d5c80c 100644 --- a/main/java/gregtech/nei/NEI_GT_Config.java +++ b/main/java/gregtech/nei/NEI_GT_Config.java @@ -29,9 +29,3 @@ public class NEI_GT_Config return "(5.03a)"; } } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.nei.NEI_GT_Config - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file From 513c6606f21fc724956fc1b5b9e3ecd687ef9ff0 Mon Sep 17 00:00:00 2001 From: Blood-Asp Date: Sun, 18 Oct 2015 17:28:51 +0200 Subject: [PATCH 04/17] GT5.08.31 --- main/java/gregtech/api/enums/Materials.java | 1 + .../gui/GT_GUIContainer_FusionReactor.java | 4 ++- .../GT_MetaTileEntity_TypeFilter.java | 6 ++-- .../GT_MetaTileEntity_FusionComputer.java | 3 +- .../loaders/oreprocessing/ProcessingCell.java | 10 ++++--- .../postload/GT_MachineRecipeLoader.java | 8 +++++- .../gregtech/nei/GT_NEI_DefaultHandler.java | 28 +++++++++++++++---- 7 files changed, 44 insertions(+), 16 deletions(-) diff --git a/main/java/gregtech/api/enums/Materials.java b/main/java/gregtech/api/enums/Materials.java index 9b6caca1..2efef3ac 100644 --- a/main/java/gregtech/api/enums/Materials.java +++ b/main/java/gregtech/api/enums/Materials.java @@ -603,6 +603,7 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { GraniteBlack ( 849, TextureSet.SET_ROUGH , 4.0F, 64, 3, 1 |64|128 , 10, 10, 10, 0, "Black Granite" , 0, 0, -1, 0, F, F, 0, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(SiliconDioxide, 4), new MaterialStack(Biotite, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), GraniteRed ( 850, TextureSet.SET_ROUGH , 4.0F, 64, 3, 1 |64|128 , 255, 0, 128, 0, "Red Granite" , 0, 0, -1, 0, F, F, 0, 1, 1, Dyes.dyeMagenta , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(PotassiumFeldspar, 1), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), Chrysotile ( 912, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 110, 140, 110, 0, "Chrysotile" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Asbestos, 1))), + Realgar ( 555, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 140, 100, 100, 0, "Realgar" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Arsenic, 4), new MaterialStack(Sulfur,4))), VanadiumMagnetite ( 923, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 35, 35, 60, 0, "Vanadium Magnetite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(Vanadium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), // Mixture of Fe3O4 and V2O5 BasalticMineralSand ( 935, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 40, 50, 40, 0, "Basaltic Mineral Sand" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(Basalt, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), GraniticMineralSand ( 936, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 40, 60, 60, 0, "Granitic Mineral Sand" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(GraniteBlack, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), diff --git a/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java b/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java index c6f588a3..081550a5 100644 --- a/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java +++ b/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java @@ -10,10 +10,12 @@ import gregtech.api.util.GT_Utility; public class GT_GUIContainer_FusionReactor extends GT_GUIContainerMetaTile_Machine { String mName = ""; + public String mNEI; - public GT_GUIContainer_FusionReactor(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName, String aTextureFile) { + public GT_GUIContainer_FusionReactor(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName, String aTextureFile, String aNEI) { super(new GT_Container_MultiMachine(aInventoryPlayer, aTileEntity, false), RES_PATH_GUI + "multimachines/" + (aTextureFile==null?"MultiblockDisplay":aTextureFile)); mName = aName; + mNEI = aNEI; } @Override diff --git a/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java b/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java index 90acb38d..265a8b81 100644 --- a/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java +++ b/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java @@ -139,7 +139,9 @@ public class GT_MetaTileEntity_TypeFilter { boolean tAllowPrefix = this.mPrefix.contains(aStack); if(this.mPrefix==OrePrefixes.ore){ - OrePrefixes tFix = GT_OreDictUnificator.getItemData(aStack).mPrefix; + ItemData tData = GT_OreDictUnificator.getItemData(aStack); + if(tData!=null&&tData.mPrefix!=null){ + OrePrefixes tFix = tData.mPrefix; if(tFix==OrePrefixes.oreBlackgranite|| tFix==OrePrefixes.oreDense|| tFix==OrePrefixes.oreEnd|| @@ -151,7 +153,7 @@ public class GT_MetaTileEntity_TypeFilter tFix==OrePrefixes.oreRedgranite|| tFix==OrePrefixes.oreRich|| tFix==OrePrefixes.oreSmall)tAllowPrefix=true; - } + }} return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) && ((this.bNBTAllowed) || (!aStack.hasTagCompound())) && (tAllowPrefix != this.bInvertFilter); } } diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java index 9a835e62..8a5a1d6b 100644 --- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java +++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java @@ -60,7 +60,7 @@ public abstract class GT_MetaTileEntity_FusionComputer extends GT_MetaTileEntity @Override public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_FusionReactor(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "FusionComputer.png"); + return new GT_GUIContainer_FusionReactor(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "FusionComputer.png", GT_Recipe.GT_Recipe_Map.sFusionRecipes.mNEIName); } public abstract MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity); @@ -283,7 +283,6 @@ public abstract class GT_MetaTileEntity_FusionComputer extends GT_MetaTileEntity return false; } if (mRunningOnLoad||tRecipe.isRecipeInputEqual(true, tFluids, new ItemStack[] {})) { - if(mRunningOnLoad)System.out.println("First Recipe!"); this.mLastRecipe = tRecipe; this.mEUt = (this.mLastRecipe.mEUt * overclock(this.mLastRecipe.mSpecialValue)); this.mMaxProgresstime = this.mLastRecipe.mDuration / overclock(this.mLastRecipe.mSpecialValue); diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java b/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java index 20d48db6..0b5a84a4 100644 --- a/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java +++ b/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java @@ -90,11 +90,13 @@ public class ProcessingCell if (tList.size() > 0) { if ((aMaterial.mExtraData & 0x1) != 0) { - GT_Values.RA.addElectrolyzerRecipe(GT_Utility.copyAmount(tItemAmount, new Object[] { aStack }), tCapsuleCount > 0L ? (int)tCapsuleCount : 0, (ItemStack)tList.get(0), tList.size() < 2 ? null : (ItemStack)tList.get(1), tList.size() < 3 ? null : (ItemStack)tList.get(2), tList.size() < 4 ? null : (ItemStack)tList.get(3), tList.size() < 5 ? null : (ItemStack)tList.get(4), tList.size() < 6 ? null : tCapsuleCount < 0L ? ItemList.Cell_Empty.get(-tCapsuleCount, new Object[0]) : (ItemStack)tList.get(5), (int)Math.max(1L, Math.abs(aMaterial.getProtons() * 8L * tItemAmount)), Math.min(4, tList.size()) * 30); - } + //GT_Values.RA.addElectrolyzerRecipe(GT_Utility.copyAmount(tItemAmount, new Object[] { aStack }), tCapsuleCount > 0L ? (int)tCapsuleCount : 0, (ItemStack)tList.get(0), tList.size() < 2 ? null : (ItemStack)tList.get(1), tList.size() < 3 ? null : (ItemStack)tList.get(2), tList.size() < 4 ? null : (ItemStack)tList.get(3), tList.size() < 5 ? null : (ItemStack)tList.get(4), tList.size() < 6 ? null : tCapsuleCount < 0L ? ItemList.Cell_Empty.get(-tCapsuleCount, new Object[0]) : (ItemStack)tList.get(5), (int)Math.max(1L, Math.abs(aMaterial.getProtons() * 8L * tItemAmount)), Math.min(4, tList.size()) * 30); + GT_Values.RA.addElectrolyzerRecipe(GT_Utility.copyAmount(tItemAmount, new Object[] { aStack }), tCapsuleCount <= 0L ? 0 : (int)tCapsuleCount, (ItemStack)tList.get(0), tList.size() >= 2 ? (ItemStack)tList.get(1) : null, tList.size() >= 3 ? (ItemStack)tList.get(2) : null, tList.size() >= 4 ? (ItemStack)tList.get(3) : null, tList.size() >= 5 ? (ItemStack)tList.get(4) : null, tCapsuleCount >= 0L ? tList.size() >= 6 ? (ItemStack)tList.get(5) : null : ItemList.Cell_Empty.get(-tCapsuleCount, new Object[0]), (int)Math.max(1L, Math.abs(aMaterial.getProtons() * 8L * tItemAmount)), Math.min(4, tList.size()) * 30); + } if ((aMaterial.mExtraData & 0x2) != 0) { - GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(tItemAmount, new Object[] { aStack }), tCapsuleCount > 0L ? (int)tCapsuleCount : 0, (ItemStack)tList.get(0), tList.size() < 2 ? null : (ItemStack)tList.get(1), tList.size() < 3 ? null : (ItemStack)tList.get(2), tList.size() < 4 ? null : (ItemStack)tList.get(3), tList.size() < 5 ? null : (ItemStack)tList.get(4), tList.size() < 6 ? null : tCapsuleCount < 0L ? ItemList.Cell_Empty.get(-tCapsuleCount, new Object[0]) : (ItemStack)tList.get(5), (int)Math.max(1L, Math.abs(aMaterial.getMass() * 2L * tItemAmount))); - } + //GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(tItemAmount, new Object[] { aStack }), tCapsuleCount > 0L ? (int)tCapsuleCount : 0, (ItemStack)tList.get(0), tList.size() < 2 ? null : (ItemStack)tList.get(1), tList.size() < 3 ? null : (ItemStack)tList.get(2), tList.size() < 4 ? null : (ItemStack)tList.get(3), tList.size() < 5 ? null : (ItemStack)tList.get(4), tList.size() < 6 ? null : tCapsuleCount < 0L ? ItemList.Cell_Empty.get(-tCapsuleCount, new Object[0]) : (ItemStack)tList.get(5), (int)Math.max(1L, Math.abs(aMaterial.getMass() * 2L * tItemAmount))); + GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(tItemAmount, new Object[] { aStack }), tCapsuleCount <= 0L ? 0 : (int)tCapsuleCount, (ItemStack)tList.get(0), tList.size() >= 2 ? (ItemStack)tList.get(1) : null, tList.size() >= 3 ? (ItemStack)tList.get(2) : null, tList.size() >= 4 ? (ItemStack)tList.get(3) : null, tList.size() >= 5 ? (ItemStack)tList.get(4) : null, tCapsuleCount >= 0L ? tList.size() >= 6 ? (ItemStack)tList.get(5) : null : ItemList.Cell_Empty.get(-tCapsuleCount, new Object[0]), (int)Math.max(1L, Math.abs(aMaterial.getMass() * 2L * tItemAmount))); + } } } } diff --git a/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java b/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java index 4a3b0ec9..aa21c389 100644 --- a/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java +++ b/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java @@ -864,7 +864,13 @@ public class GT_MachineRecipeLoader GT_Values.RA.addVacuumFreezerRecipe(GT_ModHandler.getIC2Item("reactorCoolantSimple", 1L, 32767), GT_ModHandler.getIC2Item("reactorCoolantSimple", 1L,1), 100); GT_Values.RA.addVacuumFreezerRecipe(GT_ModHandler.getIC2Item("reactorCoolantTriple", 1L, 32767), GT_ModHandler.getIC2Item("reactorCoolantTriple", 1L,1), 300); GT_Values.RA.addVacuumFreezerRecipe(GT_ModHandler.getIC2Item("reactorCoolantSix", 1L, 32767), GT_ModHandler.getIC2Item("reactorCoolantSix", 1L,1), 600); - GT_Values.RA.addVacuumFreezerRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Water, 1L), GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Ice, 1L), 50); + GT_Values.RA.addVacuumFreezerRecipe(ItemList.Reactor_Coolant_He_1.getWildcard(1L, new Object[0]), ItemList.Reactor_Coolant_He_1.get(1L, new Object[0]), 600); + GT_Values.RA.addVacuumFreezerRecipe(ItemList.Reactor_Coolant_He_3.getWildcard(1L, new Object[0]), ItemList.Reactor_Coolant_He_3.get(1L, new Object[0]), 1800); + GT_Values.RA.addVacuumFreezerRecipe(ItemList.Reactor_Coolant_He_6.getWildcard(1L, new Object[0]), ItemList.Reactor_Coolant_He_6.get(1L, new Object[0]), 3600); + GT_Values.RA.addVacuumFreezerRecipe(ItemList.Reactor_Coolant_NaK_1.getWildcard(1L, new Object[0]), ItemList.Reactor_Coolant_NaK_1.get(1L, new Object[0]), 600); + GT_Values.RA.addVacuumFreezerRecipe(ItemList.Reactor_Coolant_NaK_3.getWildcard(1L, new Object[0]), ItemList.Reactor_Coolant_NaK_3.get(1L, new Object[0]),1800); + GT_Values.RA.addVacuumFreezerRecipe(ItemList.Reactor_Coolant_NaK_6.getWildcard(1L, new Object[0]), ItemList.Reactor_Coolant_NaK_6.get(1L, new Object[0]),3600); + GT_Values.RA.addVacuumFreezerRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Water, 1L), GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Ice, 1L), 50); GT_Values.RA.addAlloySmelterRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lead, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Obsidian, 2L), ItemList.TE_Hardened_Glass.get(2L, new Object[0]), 200, 16); GT_Values.RA.addAlloySmelterRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Lead, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Obsidian, 2L), ItemList.TE_Hardened_Glass.get(2L, new Object[0]), 200, 16); diff --git a/main/java/gregtech/nei/GT_NEI_DefaultHandler.java b/main/java/gregtech/nei/GT_NEI_DefaultHandler.java index e9676de4..0f8e0853 100644 --- a/main/java/gregtech/nei/GT_NEI_DefaultHandler.java +++ b/main/java/gregtech/nei/GT_NEI_DefaultHandler.java @@ -11,7 +11,9 @@ import codechicken.nei.recipe.GuiUsageRecipe; import codechicken.nei.recipe.TemplateRecipeHandler; import codechicken.nei.recipe.TemplateRecipeHandler.CachedRecipe; import codechicken.nei.recipe.TemplateRecipeHandler.RecipeTransferRect; + import com.google.common.collect.ListMultimap; + import cpw.mods.fml.common.event.FMLInterModComms; import gregtech.api.enums.GT_Values; import gregtech.api.enums.OrePrefixes; @@ -23,6 +25,8 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; +import gregtech.common.gui.GT_GUIContainer_FusionReactor; + import java.awt.Point; import java.awt.Rectangle; import java.util.ArrayList; @@ -30,6 +34,7 @@ import java.util.Collection; import java.util.Iterator; import java.util.LinkedList; import java.util.List; + import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiContainer; @@ -38,6 +43,7 @@ import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData; import net.minecraftforge.fluids.FluidStack; + import org.lwjgl.opengl.GL11; public class GT_NEI_DefaultHandler @@ -615,21 +621,31 @@ public class GT_NEI_DefaultHandler public boolean canHandle(GuiContainer gui) { - return ((gui instanceof GT_GUIContainer_BasicMachine)) && (GT_Utility.isStringValid(((GT_GUIContainer_BasicMachine)gui).mNEI)); + return (((gui instanceof GT_GUIContainer_BasicMachine)) && (GT_Utility.isStringValid(((GT_GUIContainer_BasicMachine)gui).mNEI))||((gui instanceof GT_GUIContainer_FusionReactor)) && (GT_Utility.isStringValid(((GT_GUIContainer_FusionReactor)gui).mNEI))); } public List handleTooltip(GuiContainer gui, int mousex, int mousey, List currenttip) { - if ((canHandle(gui)) && (currenttip.isEmpty()) && (new Rectangle(65, 13, 36, 18).contains(new Point(GuiDraw.getMousePosition().x - ((GT_GUIContainer_BasicMachine)gui).getLeft() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[0], GuiDraw.getMousePosition().y - ((GT_GUIContainer_BasicMachine)gui).getTop() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[1])))) { - currenttip.add("Recipes"); - } + if ((canHandle(gui)) && (currenttip.isEmpty())){ + if(gui instanceof GT_GUIContainer_BasicMachine && new Rectangle(65, 13, 36, 18).contains(new Point(GuiDraw.getMousePosition().x - ((GT_GUIContainer_BasicMachine)gui).getLeft() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[0], GuiDraw.getMousePosition().y - ((GT_GUIContainer_BasicMachine)gui).getTop() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[1]))) + {currenttip.add("Recipes"); + }else if(gui instanceof GT_GUIContainer_FusionReactor && new Rectangle(145, 0, 24, 24).contains(new Point(GuiDraw.getMousePosition().x - ((GT_GUIContainer_FusionReactor)gui).getLeft() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[0], GuiDraw.getMousePosition().y - ((GT_GUIContainer_FusionReactor)gui).getTop() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[1]))) + {currenttip.add("Recipes"); + } + + } return currenttip; } private boolean transferRect(GuiContainer gui, boolean usage) { - return (canHandle(gui)) && (new Rectangle(65, 13, 36, 18).contains(new Point(GuiDraw.getMousePosition().x - ((GT_GUIContainer_BasicMachine)gui).getLeft() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[0], GuiDraw.getMousePosition().y - ((GT_GUIContainer_BasicMachine)gui).getTop() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[1]))) && (usage ? GuiUsageRecipe.openRecipeGui(((GT_GUIContainer_BasicMachine)gui).mNEI, new Object[0]) : GuiCraftingRecipe.openRecipeGui(((GT_GUIContainer_BasicMachine)gui).mNEI, new Object[0])); - } + if(gui instanceof GT_GUIContainer_BasicMachine){ + return (canHandle(gui)) && (new Rectangle(65, 13, 36, 18).contains(new Point(GuiDraw.getMousePosition().x - ((GT_GUIContainer_BasicMachine)gui).getLeft() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[0], GuiDraw.getMousePosition().y - ((GT_GUIContainer_BasicMachine)gui).getTop() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[1]))) && (usage ? GuiUsageRecipe.openRecipeGui(((GT_GUIContainer_BasicMachine)gui).mNEI, new Object[0]) : GuiCraftingRecipe.openRecipeGui(((GT_GUIContainer_BasicMachine)gui).mNEI, new Object[0])); + }else if(gui instanceof GT_GUIContainer_FusionReactor){ + return (canHandle(gui)) && (new Rectangle(145, 0, 24, 24).contains(new Point(GuiDraw.getMousePosition().x - ((GT_GUIContainer_FusionReactor)gui).getLeft() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[0], GuiDraw.getMousePosition().y - ((GT_GUIContainer_FusionReactor)gui).getTop() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[1]))) && (usage ? GuiUsageRecipe.openRecipeGui(((GT_GUIContainer_FusionReactor)gui).mNEI, new Object[0]) : GuiCraftingRecipe.openRecipeGui(((GT_GUIContainer_FusionReactor)gui).mNEI, new Object[0])); + } + return false; + } public List handleItemDisplayName(GuiContainer gui, ItemStack itemstack, List currenttip) { From e4f5504a89b78893d130e7191bbc50315141ccdb Mon Sep 17 00:00:00 2001 From: Shawn Buckley Date: Sun, 18 Oct 2015 22:50:44 -0400 Subject: [PATCH 05/17] Update dependencies --- build.gradle | 108 ++++++++++++++++++++++++++++++++++++----------- build.properties | 22 ++++++++++ 2 files changed, 105 insertions(+), 25 deletions(-) create mode 100644 build.properties diff --git a/build.gradle b/build.gradle index ba2e368b..fb8b1601 100644 --- a/build.gradle +++ b/build.gradle @@ -16,30 +16,84 @@ buildscript { } apply plugin: 'forge' +apply plugin: 'idea' -version = "5.08" -group= "gregtech" // http://maven.apache.org/guides/mini/guide-naming-conventions.html +file "build.properties" withReader { + def prop = new Properties() + prop.load(it) + ext.config = new ConfigSlurper().parse prop +} + +version = "${config.gt.version}" +group= "gregtech" archivesBaseName = "gregtech" minecraft { - version = "1.7.10-10.13.4.1481-1.7.10" + version = "${config.minecraft.version}-${config.forge.version}" runDir = "eclipse" } +configurations { + provided + embedded + compile.extendsFrom provided, embedded +} + +repositories { + maven { + name 'Forge' + url 'http://files.minecraftforge.net/maven' + } + maven { + name = "chickenbones" + url = "http://chickenbones.net/maven/" + } + maven { + name = "ic2, forestry" + url = "http://maven.ic2.player.to/" + } + maven { // EnderIO & EnderCore + name 'tterrag Repo' + url "http://maven.tterrag.com" + } + maven { // AppleCore + url "http://www.ryanliptak.com/maven/" + } + ivy { + name "BuildCraft" + artifactPattern "http://www.mod-buildcraft.com/releases/BuildCraft/[revision]/[module]-[revision]-[classifier].[ext]" + } + ivy { + name 'CoFHLib' + artifactPattern "http://addons-origin.cursecdn.com/files/${config.cofhlib.cf}/[module]-[revision].[ext]" + } + ivy { + name 'CoFHCore' + artifactPattern "http://addons-origin.cursecdn.com/files/${config.cofhcore.cf}/[module]-[revision].[ext]" + } + ivy { + name 'Railcraft' + artifactPattern "http://addons-origin.cursecdn.com/files/${config.railcraft.cf}/[module]_[revision].[ext]" + } +} + dependencies { - // you may put jars on which you depend on in ./libs - // or you may define them like so.. - //compile "some.group:artifact:version:classifier" - //compile "some.group:artifact:version" - - // real examples - //compile 'com.mod-buildcraft:buildcraft:6.0.8:dev' // adds buildcraft to the dev env - //compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env - - // for more info... - // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html - // http://www.gradle.org/docs/current/userguide/dependency_management.html - + provided ("appeng:appliedenergistics2:${config.ae2.version}:dev") { + exclude module: '*' + } + provided "codechicken:CodeChickenLib:${config.minecraft.version}-${config.codechickenlib.version}:dev" + provided "codechicken:NotEnoughItems:${config.minecraft.version}-${config.nei.version}:dev" + provided "net.industrial-craft:industrialcraft-2:${config.ic2.version}:dev" + provided "net.sengir.forestry:forestry_${config.minecraft.version}:${config.forestry.version}:dev" + provided "applecore:AppleCore:${config.applecore.version}:api" + provided "com.enderio.core:EnderCore:${config.enderiocore.version}:dev" + provided ("com.enderio:EnderIO:${config.enderio.version}:dev") { + transitive = false + } + provided name: 'buildcraft', version: config.buildcraft.version, classifier: "dev", ext: 'jar' + provided name: 'CoFHLib', version: config.cofhlib.version, ext: 'jar' + provided name: 'CoFHCore', version: config.cofhcore.version, ext: 'jar' + provided name: 'Railcraft', version: config.railcraft.version, ext: 'jar' } processResources @@ -61,17 +115,21 @@ processResources exclude 'mcmod.info' } } + task sourceJar(type: Jar) { -from sourceSets.main.allSource -classifier = 'sources'} + from sourceSets.main.allSource + classifier = 'sources' +} + task devJar(type: Jar) { -from sourceSets.main.output -classifier = 'dev' -manifest { -//attributes 'FMLCorePlugin': 'WhateverLoaderClass' -//attributes 'FMLCorePluginContainsFMLMod': 'true' -} + from sourceSets.main.output + classifier = 'dev' + manifest { + //attributes 'FMLCorePlugin': 'WhateverLoaderClass' + //attributes 'FMLCorePluginContainsFMLMod': 'true' + } } + artifacts { -archives devJar + archives devJar } \ No newline at end of file diff --git a/build.properties b/build.properties new file mode 100644 index 00000000..a269d221 --- /dev/null +++ b/build.properties @@ -0,0 +1,22 @@ +minecraft.version=1.7.10 +forge.version=10.13.4.1448-1.7.10 + +gt.version=5.08.31 +gt.subversion=dev + +applecore.version=1.7.10-1.2.1+107.59407 +ae2.version=rv2-beta-33 +buildcraft.version=7.1.11 +ic2.version=2.2.780-experimental +codechickenlib.version=1.1.3.140 +cofhcore.cf=2246/697 +cofhcore.version=[1.7.10]3.0.3B4-302-dev +cofhlib.cf=2230/207 +cofhlib.version=[1.7.10]1.0.0RC7-127 +railcraft.cf=2219/321 +railcraft.version=1.7.10-9.4.0.0 +forestry.version=3.6.9.28 +enderio.cf=2219/296 +enderio.version=1.7.10-2.3.0.417_beta +enderiocore.version=1.7.10-0.1.0.25_beta +nei.version=1.0.3.57 From 02d954475de5762a82aaab00a8c842501ffc2e92 Mon Sep 17 00:00:00 2001 From: Shawn Buckley Date: Sun, 18 Oct 2015 22:54:59 -0400 Subject: [PATCH 06/17] Organize build.properties --- build.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/build.properties b/build.properties index a269d221..aa25dd25 100644 --- a/build.properties +++ b/build.properties @@ -4,19 +4,19 @@ forge.version=10.13.4.1448-1.7.10 gt.version=5.08.31 gt.subversion=dev -applecore.version=1.7.10-1.2.1+107.59407 ae2.version=rv2-beta-33 +applecore.version=1.7.10-1.2.1+107.59407 buildcraft.version=7.1.11 -ic2.version=2.2.780-experimental codechickenlib.version=1.1.3.140 cofhcore.cf=2246/697 cofhcore.version=[1.7.10]3.0.3B4-302-dev cofhlib.cf=2230/207 cofhlib.version=[1.7.10]1.0.0RC7-127 -railcraft.cf=2219/321 -railcraft.version=1.7.10-9.4.0.0 -forestry.version=3.6.9.28 enderio.cf=2219/296 enderio.version=1.7.10-2.3.0.417_beta enderiocore.version=1.7.10-0.1.0.25_beta +forestry.version=3.6.9.28 +ic2.version=2.2.780-experimental nei.version=1.0.3.57 +railcraft.cf=2219/321 +railcraft.version=1.7.10-9.4.0.0 From 85c804fa112fd1f19c91e45d150a787cfbf0f7a8 Mon Sep 17 00:00:00 2001 From: Shawn Buckley Date: Sun, 18 Oct 2015 23:04:39 -0400 Subject: [PATCH 07/17] Move source directory --- {main => src/main}/META-INF/MANIFEST.MF | 0 {main => src/main}/java/gregtech/GT_Mod.java | 0 .../main}/java/gregtech/api/GregTech_API.java | 0 .../api/damagesources/GT_DamageSources.java | 0 .../api/enchants/Enchantment_EnderDamage.java | 0 .../api/enchants/Enchantment_Radioactivity.java | 0 .../java/gregtech/api/enums/ConfigCategories.java | 0 .../main}/java/gregtech/api/enums/Dyes.java | 0 .../main}/java/gregtech/api/enums/Element.java | 0 .../main}/java/gregtech/api/enums/GT_Values.java | 0 .../main}/java/gregtech/api/enums/ItemList.java | 0 .../main}/java/gregtech/api/enums/Materials.java | 0 .../main}/java/gregtech/api/enums/OreDictNames.java | 0 .../main}/java/gregtech/api/enums/OrePrefixes.java | 0 .../main}/java/gregtech/api/enums/SubTag.java | 0 .../main}/java/gregtech/api/enums/TC_Aspects.java | 0 .../main}/java/gregtech/api/enums/TextureSet.java | 0 .../main}/java/gregtech/api/enums/Textures.java | 0 .../main}/java/gregtech/api/enums/Tier.java | 0 .../java/gregtech/api/enums/ToolDictNames.java | 0 .../gregtech/api/events/BlockScanningEvent.java | 0 .../main}/java/gregtech/api/gui/GT_Container.java | 0 .../api/gui/GT_ContainerMetaTile_Machine.java | 0 .../java/gregtech/api/gui/GT_Container_1by1.java | 0 .../java/gregtech/api/gui/GT_Container_2by2.java | 0 .../java/gregtech/api/gui/GT_Container_3by3.java | 0 .../java/gregtech/api/gui/GT_Container_4by4.java | 0 .../gregtech/api/gui/GT_Container_BasicMachine.java | 0 .../gregtech/api/gui/GT_Container_BasicTank.java | 0 .../api/gui/GT_Container_MaintenanceHatch.java | 0 .../gregtech/api/gui/GT_Container_MultiMachine.java | 0 .../java/gregtech/api/gui/GT_GUIContainer.java | 0 .../api/gui/GT_GUIContainerMetaTile_Machine.java | 0 .../java/gregtech/api/gui/GT_GUIContainer_1by1.java | 0 .../java/gregtech/api/gui/GT_GUIContainer_2by2.java | 0 .../java/gregtech/api/gui/GT_GUIContainer_3by3.java | 0 .../java/gregtech/api/gui/GT_GUIContainer_4by4.java | 0 .../api/gui/GT_GUIContainer_BasicMachine.java | 0 .../gregtech/api/gui/GT_GUIContainer_BasicTank.java | 0 .../api/gui/GT_GUIContainer_MaintenanceHatch.java | 0 .../api/gui/GT_GUIContainer_MultiMachine.java | 0 .../main}/java/gregtech/api/gui/GT_Slot_Armor.java | 0 .../java/gregtech/api/gui/GT_Slot_DataOrb.java | 0 .../main}/java/gregtech/api/gui/GT_Slot_Holo.java | 0 .../main}/java/gregtech/api/gui/GT_Slot_Output.java | 0 .../main}/java/gregtech/api/gui/GT_Slot_Render.java | 0 .../api/interfaces/IColorModulationContainer.java | 0 .../java/gregtech/api/interfaces/ICondition.java | 0 .../gregtech/api/interfaces/IDamagableItem.java | 0 .../gregtech/api/interfaces/IDebugableBlock.java | 0 .../java/gregtech/api/interfaces/IDescribable.java | 0 .../java/gregtech/api/interfaces/IFoodStat.java | 0 .../gregtech/api/interfaces/IIconContainer.java | 0 .../gregtech/api/interfaces/IItemBehaviour.java | 0 .../gregtech/api/interfaces/IItemContainer.java | 0 .../api/interfaces/IOreRecipeRegistrator.java | 0 .../gregtech/api/interfaces/IProjectileItem.java | 0 .../api/interfaces/IRedstoneCircuitBlock.java | 0 .../gregtech/api/interfaces/ISubTagContainer.java | 0 .../java/gregtech/api/interfaces/ITexture.java | 0 .../java/gregtech/api/interfaces/IToolStats.java | 0 .../api/interfaces/internal/IBCTileEntity.java | 0 .../api/interfaces/internal/IGT_CraftingRecipe.java | 0 .../gregtech/api/interfaces/internal/IGT_Mod.java | 0 .../api/interfaces/internal/IGT_RecipeAdder.java | 0 .../api/interfaces/internal/IIC2TileEntity.java | 0 .../api/interfaces/internal/IThaumcraftCompat.java | 0 .../api/interfaces/internal/IUETileEntity.java | 0 .../interfaces/metatileentity/IMetaTileEntity.java | 0 .../metatileentity/IMetaTileEntityCable.java | 0 .../metatileentity/IMetaTileEntityItemPipe.java | 0 .../tileentity/IBasicEnergyContainer.java | 0 .../interfaces/tileentity/IColoredTileEntity.java | 0 .../api/interfaces/tileentity/ICoverable.java | 0 .../api/interfaces/tileentity/IDigitalChest.java | 0 .../api/interfaces/tileentity/IEnergyConductor.java | 0 .../api/interfaces/tileentity/IEnergyConnected.java | 0 .../tileentity/IExperimentalEnergyTileEntity.java | 0 .../api/interfaces/tileentity/IFibreConnected.java | 0 .../tileentity/IGearEnergyTileEntity.java | 0 .../tileentity/IGregTechDeviceInformation.java | 0 .../interfaces/tileentity/IGregTechTileEntity.java | 0 .../api/interfaces/tileentity/IHasInventory.java | 0 .../tileentity/IHasWorldObjectAndCoords.java | 0 .../tileentity/IMachineBlockUpdateable.java | 0 .../api/interfaces/tileentity/IMachineProgress.java | 0 .../tileentity/IPipeRenderedTileEntity.java | 0 .../api/interfaces/tileentity/IRedstoneEmitter.java | 0 .../interfaces/tileentity/IRedstoneReceiver.java | 0 .../interfaces/tileentity/IRedstoneTileEntity.java | 0 .../interfaces/tileentity/ITexturedTileEntity.java | 0 .../api/interfaces/tileentity/ITurnable.java | 0 .../interfaces/tileentity/IUpgradableMachine.java | 0 .../gregtech/api/items/GT_CoolantCellIC_Item.java | 0 .../gregtech/api/items/GT_CoolantCell_Item.java | 0 .../gregtech/api/items/GT_EnergyArmor_Item.java | 0 .../java/gregtech/api/items/GT_Generic_Block.java | 0 .../java/gregtech/api/items/GT_Generic_Item.java | 0 .../java/gregtech/api/items/GT_MetaBase_Item.java | 0 .../gregtech/api/items/GT_MetaGenerated_Item.java | 0 .../api/items/GT_MetaGenerated_Item_X01.java | 0 .../api/items/GT_MetaGenerated_Item_X32.java | 0 .../gregtech/api/items/GT_MetaGenerated_Tool.java | 0 .../api/items/GT_RadioactiveCellIC_Item.java | 0 .../gregtech/api/items/GT_RadioactiveCell_Item.java | 0 .../gregtech/api/items/GT_SolderingTool_Item.java | 0 .../java/gregtech/api/items/GT_Spray_Bug_Item.java | 0 .../java/gregtech/api/items/GT_Spray_Foam_Item.java | 0 .../gregtech/api/items/GT_Spray_Hardener_Item.java | 0 .../gregtech/api/items/GT_Spray_Hydration_Item.java | 0 .../java/gregtech/api/items/GT_Spray_Ice_Item.java | 0 .../gregtech/api/items/GT_Spray_Pepper_Item.java | 0 .../main}/java/gregtech/api/items/GT_Tool_Item.java | 0 .../api/metatileentity/BaseMetaPipeEntity.java | 0 .../api/metatileentity/BaseMetaTileEntity.java | 0 .../api/metatileentity/BaseMetaTileEntityUE.java | 0 .../gregtech/api/metatileentity/BaseTileEntity.java | 0 .../gregtech/api/metatileentity/MetaPipeEntity.java | 0 .../gregtech/api/metatileentity/MetaTileEntity.java | 0 .../examples/GT_MetaTileEntity_E_Furnace.java | 0 .../implementations/GT_MetaPipeEntity_Cable.java | 0 .../implementations/GT_MetaPipeEntity_Fluid.java | 0 .../implementations/GT_MetaPipeEntity_Frame.java | 0 .../implementations/GT_MetaPipeEntity_Item.java | 0 .../GT_MetaTileEntity_BasicBatteryBuffer.java | 0 .../GT_MetaTileEntity_BasicGenerator.java | 0 .../GT_MetaTileEntity_BasicHull.java | 0 .../GT_MetaTileEntity_BasicHull_NonElectric.java | 0 .../GT_MetaTileEntity_BasicMachine.java | 0 .../GT_MetaTileEntity_BasicMachine_Bronze.java | 0 .../GT_MetaTileEntity_BasicMachine_GT_Recipe.java | 0 .../GT_MetaTileEntity_BasicMachine_Steel.java | 0 .../GT_MetaTileEntity_BasicTank.java | 0 .../implementations/GT_MetaTileEntity_Buffer.java | 0 .../implementations/GT_MetaTileEntity_Hatch.java | 0 .../GT_MetaTileEntity_Hatch_Dynamo.java | 0 .../GT_MetaTileEntity_Hatch_Energy.java | 0 .../GT_MetaTileEntity_Hatch_Input.java | 0 .../GT_MetaTileEntity_Hatch_InputBus.java | 0 .../GT_MetaTileEntity_Hatch_Maintenance.java | 0 .../GT_MetaTileEntity_Hatch_Muffler.java | 0 .../GT_MetaTileEntity_Hatch_Output.java | 0 .../GT_MetaTileEntity_Hatch_OutputBus.java | 0 .../GT_MetaTileEntity_MultiBlockBase.java | 0 .../GT_MetaTileEntity_TieredMachineBlock.java | 0 .../GT_MetaTileEntity_Transformer.java | 0 .../main}/java/gregtech/api/net/GT_Packet.java | 0 .../gregtech/api/net/GT_Packet_Block_Event.java | 0 .../java/gregtech/api/net/GT_Packet_Sound.java | 0 .../java/gregtech/api/net/GT_Packet_TileEntity.java | 0 .../java/gregtech/api/net/IGT_NetworkHandler.java | 0 .../java/gregtech/api/objects/ElementStack.java | 0 .../java/gregtech/api/objects/GT_ArrayList.java | 0 .../gregtech/api/objects/GT_CopiedBlockTexture.java | 0 .../java/gregtech/api/objects/GT_Cover_Default.java | 0 .../java/gregtech/api/objects/GT_Cover_None.java | 0 .../main}/java/gregtech/api/objects/GT_Fluid.java | 0 .../java/gregtech/api/objects/GT_FluidStack.java | 0 .../main}/java/gregtech/api/objects/GT_HashSet.java | 0 .../java/gregtech/api/objects/GT_ItemStack.java | 0 .../java/gregtech/api/objects/GT_MultiTexture.java | 0 .../gregtech/api/objects/GT_RenderedTexture.java | 0 .../java/gregtech/api/objects/GT_SidedTexture.java | 0 .../main}/java/gregtech/api/objects/ItemData.java | 0 .../java/gregtech/api/objects/MaterialStack.java | 0 .../api/threads/GT_Runnable_MachineBlockUpdate.java | 0 .../gregtech/api/threads/GT_Runnable_Sound.java | 0 .../main}/java/gregtech/api/util/GT_BaseCrop.java | 0 .../gregtech/api/util/GT_CircuitryBehavior.java | 0 .../main}/java/gregtech/api/util/GT_Config.java | 0 .../java/gregtech/api/util/GT_CoverBehavior.java | 0 .../java/gregtech/api/util/GT_CreativeTab.java | 0 .../main}/java/gregtech/api/util/GT_FoodStat.java | 0 .../java/gregtech/api/util/GT_IBoxableWrapper.java | 0 .../api/util/GT_ItsNotMyFaultException.java | 0 .../java/gregtech/api/util/GT_LanguageManager.java | 0 .../main}/java/gregtech/api/util/GT_Log.java | 0 .../main}/java/gregtech/api/util/GT_ModHandler.java | 0 .../gregtech/api/util/GT_OreDictUnificator.java | 0 .../java/gregtech/api/util/GT_PlayedSound.java | 0 .../main}/java/gregtech/api/util/GT_Recipe.java | 0 .../gregtech/api/util/GT_RecipeRegistrator.java | 0 .../java/gregtech/api/util/GT_Shaped_Recipe.java | 0 .../java/gregtech/api/util/GT_Shapeless_Recipe.java | 0 .../gregtech/api/util/GT_SpawnEventHandler.java | 0 .../main}/java/gregtech/api/util/GT_Utility.java | 0 .../main}/java/gregtech/api/world/GT_Worldgen.java | 0 .../gregtech/api/world/GT_Worldgen_Boulder.java | 0 .../java/gregtech/api/world/GT_Worldgen_Ore.java | 0 .../gregtech/api/world/GT_Worldgen_Ore_Normal.java | 0 .../api/world/GT_Worldgen_Ore_SingleBlock.java | 0 .../GT_Worldgen_Ore_SingleBlock_UnderLava.java | 0 .../main}/java/gregtech/common/GT_Client.java | 0 .../main}/java/gregtech/common/GT_DummyWorld.java | 0 .../java/gregtech/common/GT_IteratorRandom.java | 0 .../gregtech/common/GT_MinableOreGenerator.java | 0 .../main}/java/gregtech/common/GT_Network.java | 0 .../gregtech/common/GT_PlayerActivityLogger.java | 0 .../main}/java/gregtech/common/GT_Proxy.java | 0 .../main}/java/gregtech/common/GT_RecipeAdder.java | 0 .../main}/java/gregtech/common/GT_Server.java | 0 .../java/gregtech/common/GT_ThaumcraftCompat.java | 0 .../gregtech/common/GT_Worldgen_GT_Ore_Layer.java | 0 .../common/GT_Worldgen_GT_Ore_SmallPieces.java | 0 .../java/gregtech/common/GT_Worldgen_Stone.java | 0 .../java/gregtech/common/GT_Worldgenerator.java | 0 .../gregtech/common/blocks/GT_Block_Casings1.java | 0 .../gregtech/common/blocks/GT_Block_Casings2.java | 0 .../gregtech/common/blocks/GT_Block_Casings3.java | 0 .../gregtech/common/blocks/GT_Block_Casings4.java | 0 .../common/blocks/GT_Block_Casings_Abstract.java | 0 .../gregtech/common/blocks/GT_Block_Concretes.java | 0 .../gregtech/common/blocks/GT_Block_Granites.java | 0 .../gregtech/common/blocks/GT_Block_Machines.java | 0 .../java/gregtech/common/blocks/GT_Block_Ores.java | 0 .../common/blocks/GT_Block_Stones_Abstract.java | 0 .../gregtech/common/blocks/GT_Item_Casings1.java | 0 .../gregtech/common/blocks/GT_Item_Casings2.java | 0 .../gregtech/common/blocks/GT_Item_Casings3.java | 0 .../gregtech/common/blocks/GT_Item_Casings4.java | 0 .../common/blocks/GT_Item_Casings_Abstract.java | 0 .../gregtech/common/blocks/GT_Item_Concretes.java | 0 .../gregtech/common/blocks/GT_Item_Granites.java | 0 .../gregtech/common/blocks/GT_Item_Machines.java | 0 .../java/gregtech/common/blocks/GT_Item_Ores.java | 0 .../common/blocks/GT_Item_Stones_Abstract.java | 0 .../gregtech/common/blocks/GT_Material_Casings.java | 0 .../common/blocks/GT_Material_Machines.java | 0 .../java/gregtech/common/blocks/GT_Packet_Ores.java | 0 .../gregtech/common/blocks/GT_TileEntity_Ores.java | 0 .../java/gregtech/common/covers/GT_Cover_Arm.java | 0 .../gregtech/common/covers/GT_Cover_Blastproof.java | 0 .../common/covers/GT_Cover_ControlsWork.java | 0 .../gregtech/common/covers/GT_Cover_Conveyor.java | 0 .../gregtech/common/covers/GT_Cover_Crafting.java | 0 .../gregtech/common/covers/GT_Cover_DoesWork.java | 0 .../java/gregtech/common/covers/GT_Cover_Drain.java | 0 .../gregtech/common/covers/GT_Cover_EUMeter.java | 0 .../gregtech/common/covers/GT_Cover_EnergyOnly.java | 0 .../gregtech/common/covers/GT_Cover_ItemMeter.java | 0 .../java/gregtech/common/covers/GT_Cover_Lens.java | 0 .../common/covers/GT_Cover_LiquidMeter.java | 0 .../common/covers/GT_Cover_NeedMaintainance.java | 0 .../common/covers/GT_Cover_PlayerDetector.java | 0 .../java/gregtech/common/covers/GT_Cover_Pump.java | 0 .../common/covers/GT_Cover_RedstoneConductor.java | 0 .../covers/GT_Cover_RedstoneReceiverExternal.java | 0 .../covers/GT_Cover_RedstoneReceiverInternal.java | 0 .../common/covers/GT_Cover_RedstoneSignalizer.java | 0 .../GT_Cover_RedstoneTransmitterExternal.java | 0 .../GT_Cover_RedstoneTransmitterInternal.java | 0 .../covers/GT_Cover_RedstoneWirelessBase.java | 0 .../gregtech/common/covers/GT_Cover_Screen.java | 0 .../gregtech/common/covers/GT_Cover_Shutter.java | 0 .../gregtech/common/covers/GT_Cover_SolarPanel.java | 0 .../java/gregtech/common/covers/GT_Cover_Vent.java | 0 .../gregtech/common/entities/GT_Entity_Arrow.java | 0 .../common/entities/GT_Entity_Arrow_Potion.java | 0 .../gregtech/common/gui/GT_Container_Boiler.java | 0 .../common/gui/GT_Container_BronzeBlastFurnace.java | 0 .../common/gui/GT_Container_ChestBuffer.java | 0 .../gregtech/common/gui/GT_Container_Filter.java | 0 .../common/gui/GT_Container_QuantumChest.java | 0 .../gregtech/common/gui/GT_Container_Regulator.java | 0 .../common/gui/GT_Container_SuperBuffer.java | 0 .../common/gui/GT_Container_Teleporter.java | 0 .../common/gui/GT_Container_TypeFilter.java | 0 .../gregtech/common/gui/GT_GUIContainer_Boiler.java | 0 .../gui/GT_GUIContainer_BronzeBlastFurnace.java | 0 .../common/gui/GT_GUIContainer_ChestBuffer.java | 0 .../gregtech/common/gui/GT_GUIContainer_Filter.java | 0 .../common/gui/GT_GUIContainer_FusionReactor.java | 0 .../common/gui/GT_GUIContainer_QuantumChest.java | 0 .../common/gui/GT_GUIContainer_Regulator.java | 0 .../common/gui/GT_GUIContainer_SuperBuffer.java | 0 .../common/gui/GT_GUIContainer_Teleporter.java | 0 .../common/gui/GT_GUIContainer_TypeFilter.java | 0 .../gregtech/common/items/GT_DepletetCell_Item.java | 0 .../gregtech/common/items/GT_FluidDisplayItem.java | 0 .../common/items/GT_IntegratedCircuit_Item.java | 0 .../common/items/GT_MetaGenerated_Item_01.java | 0 .../common/items/GT_MetaGenerated_Item_02.java | 0 .../common/items/GT_MetaGenerated_Item_03.java | 0 .../common/items/GT_MetaGenerated_Tool_01.java | 0 .../common/items/GT_NeutronReflector_Item.java | 0 .../gregtech/common/items/GT_SensorCard_Item.java | 0 .../common/items/behaviors/Behaviour_Arrow.java | 0 .../items/behaviors/Behaviour_Arrow_Potion.java | 0 .../common/items/behaviors/Behaviour_Crowbar.java | 0 .../common/items/behaviors/Behaviour_DataOrb.java | 0 .../common/items/behaviors/Behaviour_DataStick.java | 0 .../common/items/behaviors/Behaviour_Hoe.java | 0 .../common/items/behaviors/Behaviour_Lighter.java | 0 .../common/items/behaviors/Behaviour_None.java | 0 .../items/behaviors/Behaviour_Plunger_Essentia.java | 0 .../items/behaviors/Behaviour_Plunger_Fluid.java | 0 .../items/behaviors/Behaviour_Plunger_Item.java | 0 .../items/behaviors/Behaviour_PrintedPages.java | 0 .../items/behaviors/Behaviour_Prospecting.java | 0 .../common/items/behaviors/Behaviour_Scanner.java | 0 .../common/items/behaviors/Behaviour_Scoop.java | 0 .../items/behaviors/Behaviour_Screwdriver.java | 0 .../common/items/behaviors/Behaviour_Sense.java | 0 .../common/items/behaviors/Behaviour_SensorKit.java | 0 .../items/behaviors/Behaviour_SoftHammer.java | 0 .../common/items/behaviors/Behaviour_Sonictron.java | 0 .../items/behaviors/Behaviour_Spray_Color.java | 0 .../common/items/behaviors/Behaviour_Wrench.java | 0 .../items/behaviors/Behaviour_WrittenBook.java | 0 .../redstonecircuits/GT_Circuit_BasicLogic.java | 0 .../common/redstonecircuits/GT_Circuit_BitAnd.java | 0 .../GT_Circuit_CombinationLock.java | 0 .../common/redstonecircuits/GT_Circuit_Equals.java | 0 .../common/redstonecircuits/GT_Circuit_Pulser.java | 0 .../redstonecircuits/GT_Circuit_Randomizer.java | 0 .../redstonecircuits/GT_Circuit_RedstoneMeter.java | 0 .../redstonecircuits/GT_Circuit_Repeater.java | 0 .../common/redstonecircuits/GT_Circuit_Timer.java | 0 .../gregtech/common/render/GT_CapeRenderer.java | 0 .../render/GT_MetaGenerated_Item_Renderer.java | 0 .../render/GT_MetaGenerated_Tool_Renderer.java | 0 .../java/gregtech/common/render/GT_RenderUtil.java | 0 .../gregtech/common/render/GT_Renderer_Block.java | 0 .../common/render/GT_Renderer_Entity_Arrow.java | 0 .../automation/GT_MetaTileEntity_ChestBuffer.java | 0 .../automation/GT_MetaTileEntity_Filter.java | 0 .../automation/GT_MetaTileEntity_Regulator.java | 0 .../automation/GT_MetaTileEntity_SuperBuffer.java | 0 .../automation/GT_MetaTileEntity_TypeFilter.java | 0 .../boilers/GT_MetaTileEntity_Boiler.java | 0 .../boilers/GT_MetaTileEntity_Boiler_Bronze.java | 0 .../boilers/GT_MetaTileEntity_Boiler_Lava.java | 0 .../boilers/GT_MetaTileEntity_Boiler_Solar.java | 0 .../boilers/GT_MetaTileEntity_Boiler_Steel.java | 0 .../GT_MetaTileEntity_DieselGenerator.java | 0 .../GT_MetaTileEntity_FluidNaquadahReactor.java | 0 .../generators/GT_MetaTileEntity_GasTurbine.java | 0 .../GT_MetaTileEntity_MagicEnergyConverter.java | 0 .../GT_MetaTileEntity_MagicalEnergyAbsorber.java | 0 .../GT_MetaTileEntity_PlasmaGenerator.java | 0 .../GT_MetaTileEntity_SolidNaquadahReactor.java | 0 .../generators/GT_MetaTileEntity_SteamTurbine.java | 0 .../GT_MetaTileEntity_BasicHull_Bronze.java | 0 .../GT_MetaTileEntity_BasicHull_BronzeBricks.java | 0 .../machines/GT_MetaTileEntity_BasicHull_Steel.java | 0 .../GT_MetaTileEntity_BasicHull_SteelBricks.java | 0 .../machines/basic/GT_MetaTileEntity_Boxinator.java | 0 .../basic/GT_MetaTileEntity_Disassembler.java | 0 .../basic/GT_MetaTileEntity_Massfabricator.java | 0 .../basic/GT_MetaTileEntity_MonsterRepellent.java | 0 .../basic/GT_MetaTileEntity_PotionBrewer.java | 0 .../machines/basic/GT_MetaTileEntity_Printer.java | 0 .../machines/basic/GT_MetaTileEntity_Pump.java | 0 .../basic/GT_MetaTileEntity_Replicator.java | 0 .../basic/GT_MetaTileEntity_RockBreaker.java | 0 .../machines/basic/GT_MetaTileEntity_Scanner.java | 0 .../basic/GT_MetaTileEntity_Teleporter.java | 0 .../multi/GT_MetaTileEntity_BronzeBlastFurnace.java | 0 .../multi/GT_MetaTileEntity_DistillationTower.java | 0 .../GT_MetaTileEntity_ElectricBlastFurnace.java | 0 .../multi/GT_MetaTileEntity_FusionComputer.java | 0 .../multi/GT_MetaTileEntity_FusionComputer1.java | 0 .../multi/GT_MetaTileEntity_FusionComputer2.java | 0 .../multi/GT_MetaTileEntity_FusionComputer3.java | 0 .../multi/GT_MetaTileEntity_HeatExchanger.java | 0 .../GT_MetaTileEntity_ImplosionCompressor.java | 0 .../multi/GT_MetaTileEntity_LargeBoiler.java | 0 .../multi/GT_MetaTileEntity_LargeBoiler_Bronze.java | 0 .../multi/GT_MetaTileEntity_LargeBoiler_Steel.java | 0 .../GT_MetaTileEntity_LargeBoiler_Titanium.java | 0 ...GT_MetaTileEntity_LargeBoiler_TungstenSteel.java | 0 .../multi/GT_MetaTileEntity_LargeTurbine.java | 0 .../multi/GT_MetaTileEntity_LargeTurbine_Gas.java | 0 .../GT_MetaTileEntity_LargeTurbine_HPSteam.java | 0 .../GT_MetaTileEntity_LargeTurbine_Plasma.java | 0 .../multi/GT_MetaTileEntity_LargeTurbine_Steam.java | 0 .../multi/GT_MetaTileEntity_MultiFurnace.java | 0 .../multi/GT_MetaTileEntity_ProcessingArray.java | 0 .../multi/GT_MetaTileEntity_VacuumFreezer.java | 0 .../GT_MetaTileEntity_AlloySmelter_Bronze.java | 0 .../steam/GT_MetaTileEntity_AlloySmelter_Steel.java | 0 .../steam/GT_MetaTileEntity_Compressor_Bronze.java | 0 .../steam/GT_MetaTileEntity_Compressor_Steel.java | 0 .../steam/GT_MetaTileEntity_Extractor_Bronze.java | 0 .../steam/GT_MetaTileEntity_Extractor_Steel.java | 0 .../steam/GT_MetaTileEntity_ForgeHammer_Bronze.java | 0 .../steam/GT_MetaTileEntity_ForgeHammer_Steel.java | 0 .../steam/GT_MetaTileEntity_Furnace_Bronze.java | 0 .../steam/GT_MetaTileEntity_Furnace_Steel.java | 0 .../steam/GT_MetaTileEntity_Macerator_Bronze.java | 0 .../steam/GT_MetaTileEntity_Macerator_Steel.java | 0 .../storage/GT_MetaTileEntity_Locker.java | 0 .../storage/GT_MetaTileEntity_QuantumChest.java | 0 .../storage/GT_MetaTileEntity_QuantumTank.java | 0 .../main}/java/gregtech/common/tools/GT_Tool.java | 0 .../java/gregtech/common/tools/GT_Tool_Axe.java | 0 .../gregtech/common/tools/GT_Tool_BranchCutter.java | 0 .../common/tools/GT_Tool_ButcheryKnife.java | 0 .../java/gregtech/common/tools/GT_Tool_BuzzSaw.java | 0 .../gregtech/common/tools/GT_Tool_Chainsaw_HV.java | 0 .../gregtech/common/tools/GT_Tool_Chainsaw_LV.java | 0 .../gregtech/common/tools/GT_Tool_Chainsaw_MV.java | 0 .../java/gregtech/common/tools/GT_Tool_Crowbar.java | 0 .../gregtech/common/tools/GT_Tool_Drill_HV.java | 0 .../gregtech/common/tools/GT_Tool_Drill_LV.java | 0 .../gregtech/common/tools/GT_Tool_Drill_MV.java | 0 .../java/gregtech/common/tools/GT_Tool_File.java | 0 .../gregtech/common/tools/GT_Tool_HardHammer.java | 0 .../java/gregtech/common/tools/GT_Tool_Hoe.java | 0 .../gregtech/common/tools/GT_Tool_JackHammer.java | 0 .../java/gregtech/common/tools/GT_Tool_Knife.java | 0 .../java/gregtech/common/tools/GT_Tool_Mortar.java | 0 .../java/gregtech/common/tools/GT_Tool_Pickaxe.java | 0 .../java/gregtech/common/tools/GT_Tool_Plow.java | 0 .../java/gregtech/common/tools/GT_Tool_Plunger.java | 0 .../gregtech/common/tools/GT_Tool_RollingPin.java | 0 .../java/gregtech/common/tools/GT_Tool_Saw.java | 0 .../java/gregtech/common/tools/GT_Tool_Scoop.java | 0 .../gregtech/common/tools/GT_Tool_Screwdriver.java | 0 .../common/tools/GT_Tool_Screwdriver_LV.java | 0 .../java/gregtech/common/tools/GT_Tool_Sense.java | 0 .../java/gregtech/common/tools/GT_Tool_Shovel.java | 0 .../gregtech/common/tools/GT_Tool_SoftHammer.java | 0 .../common/tools/GT_Tool_Soldering_Iron.java | 0 .../java/gregtech/common/tools/GT_Tool_Sword.java | 0 .../java/gregtech/common/tools/GT_Tool_Turbine.java | 0 .../gregtech/common/tools/GT_Tool_Turbine_Huge.java | 0 .../common/tools/GT_Tool_Turbine_Large.java | 0 .../common/tools/GT_Tool_Turbine_Normal.java | 0 .../common/tools/GT_Tool_Turbine_Small.java | 0 .../common/tools/GT_Tool_UniversalSpade.java | 0 .../gregtech/common/tools/GT_Tool_WireCutter.java | 0 .../java/gregtech/common/tools/GT_Tool_Wrench.java | 0 .../gregtech/common/tools/GT_Tool_Wrench_HV.java | 0 .../gregtech/common/tools/GT_Tool_Wrench_LV.java | 0 .../gregtech/common/tools/GT_Tool_Wrench_MV.java | 0 .../loaders/load/GT_CoverBehaviorLoader.java | 0 .../java/gregtech/loaders/load/GT_FuelLoader.java | 0 .../java/gregtech/loaders/load/GT_ItemIterator.java | 0 .../gregtech/loaders/load/GT_SonictronLoader.java | 0 .../java/gregtech/loaders/misc/GT_Achievements.java | 0 .../java/gregtech/loaders/misc/GT_CoverLoader.java | 0 .../loaders/oreprocessing/ProcessingAll.java | 0 .../loaders/oreprocessing/ProcessingArrows.java | 0 .../loaders/oreprocessing/ProcessingBattery.java | 0 .../loaders/oreprocessing/ProcessingBeans.java | 0 .../loaders/oreprocessing/ProcessingBlock.java | 0 .../loaders/oreprocessing/ProcessingBolt.java | 0 .../loaders/oreprocessing/ProcessingCell.java | 0 .../loaders/oreprocessing/ProcessingCellPlasma.java | 0 .../loaders/oreprocessing/ProcessingCircuit.java | 0 .../loaders/oreprocessing/ProcessingCompressed.java | 0 .../loaders/oreprocessing/ProcessingCrafting.java | 0 .../loaders/oreprocessing/ProcessingCrop.java | 0 .../oreprocessing/ProcessingCrushedCentrifuged.java | 0 .../oreprocessing/ProcessingCrushedPurified.java | 0 .../oreprocessing/ProcessingCrystallized.java | 0 .../loaders/oreprocessing/ProcessingDirty.java | 0 .../loaders/oreprocessing/ProcessingDust.java | 0 .../loaders/oreprocessing/ProcessingDustImpure.java | 0 .../loaders/oreprocessing/ProcessingDustSmall.java | 0 .../loaders/oreprocessing/ProcessingDustTiny.java | 0 .../loaders/oreprocessing/ProcessingDye.java | 0 .../loaders/oreprocessing/ProcessingFoil.java | 0 .../loaders/oreprocessing/ProcessingFood.java | 0 .../loaders/oreprocessing/ProcessingGear.java | 0 .../loaders/oreprocessing/ProcessingGearSmall.java | 0 .../loaders/oreprocessing/ProcessingGem.java | 0 .../loaders/oreprocessing/ProcessingGemChipped.java | 0 .../oreprocessing/ProcessingGemExquisite.java | 0 .../loaders/oreprocessing/ProcessingGemFlawed.java | 0 .../oreprocessing/ProcessingGemFlawless.java | 0 .../loaders/oreprocessing/ProcessingIngot1.java | 0 .../loaders/oreprocessing/ProcessingIngot2.java | 0 .../loaders/oreprocessing/ProcessingIngot3.java | 0 .../loaders/oreprocessing/ProcessingIngot4.java | 0 .../loaders/oreprocessing/ProcessingIngot5.java | 0 .../loaders/oreprocessing/ProcessingIngotHot.java | 0 .../loaders/oreprocessing/ProcessingItem.java | 0 .../loaders/oreprocessing/ProcessingLeaves.java | 0 .../loaders/oreprocessing/ProcessingLens.java | 0 .../loaders/oreprocessing/ProcessingLog.java | 0 .../loaders/oreprocessing/ProcessingNugget.java | 0 .../loaders/oreprocessing/ProcessingOre.java | 0 .../loaders/oreprocessing/ProcessingOrePoor.java | 0 .../oreprocessing/ProcessingOreSmelting.java | 0 .../loaders/oreprocessing/ProcessingPipeLarge.java | 0 .../loaders/oreprocessing/ProcessingPipeMedium.java | 0 .../oreprocessing/ProcessingPipeRestrictive.java | 0 .../loaders/oreprocessing/ProcessingPipeSmall.java | 0 .../loaders/oreprocessing/ProcessingPlank.java | 0 .../loaders/oreprocessing/ProcessingPlate1.java | 0 .../loaders/oreprocessing/ProcessingPlate2.java | 0 .../loaders/oreprocessing/ProcessingPlate3.java | 0 .../loaders/oreprocessing/ProcessingPlate4.java | 0 .../loaders/oreprocessing/ProcessingPlate5.java | 0 .../loaders/oreprocessing/ProcessingPlate9.java | 0 .../loaders/oreprocessing/ProcessingPlateAlloy.java | 0 .../loaders/oreprocessing/ProcessingPure.java | 0 .../loaders/oreprocessing/ProcessingRecycling.java | 0 .../loaders/oreprocessing/ProcessingSand.java | 0 .../loaders/oreprocessing/ProcessingSaplings.java | 0 .../loaders/oreprocessing/ProcessingShaping.java | 0 .../loaders/oreprocessing/ProcessingSlab.java | 0 .../loaders/oreprocessing/ProcessingStick.java | 0 .../loaders/oreprocessing/ProcessingStickLong.java | 0 .../loaders/oreprocessing/ProcessingStone.java | 0 .../oreprocessing/ProcessingStoneCobble.java | 0 .../oreprocessing/ProcessingStoneVarious.java | 0 .../oreprocessing/ProcessingToolHeadArrow.java | 0 .../oreprocessing/ProcessingToolHeadAxe.java | 0 .../oreprocessing/ProcessingToolHeadBuzzSaw.java | 0 .../oreprocessing/ProcessingToolHeadChainsaw.java | 0 .../oreprocessing/ProcessingToolHeadDrill.java | 0 .../oreprocessing/ProcessingToolHeadFile.java | 0 .../oreprocessing/ProcessingToolHeadHammer.java | 0 .../oreprocessing/ProcessingToolHeadHoe.java | 0 .../oreprocessing/ProcessingToolHeadPickaxe.java | 0 .../oreprocessing/ProcessingToolHeadPlow.java | 0 .../oreprocessing/ProcessingToolHeadSaw.java | 0 .../oreprocessing/ProcessingToolHeadSense.java | 0 .../oreprocessing/ProcessingToolHeadShovel.java | 0 .../oreprocessing/ProcessingToolHeadSword.java | 0 .../ProcessingToolHeadUniversalSpade.java | 0 .../oreprocessing/ProcessingToolHeadWrench.java | 0 .../oreprocessing/ProcessingTransforming.java | 0 .../loaders/oreprocessing/ProcessingWax.java | 0 .../loaders/oreprocessing/ProcessingWire01.java | 0 .../loaders/oreprocessing/ProcessingWire02.java | 0 .../loaders/oreprocessing/ProcessingWire04.java | 0 .../loaders/oreprocessing/ProcessingWire08.java | 0 .../loaders/oreprocessing/ProcessingWire12.java | 0 .../loaders/oreprocessing/ProcessingWire16.java | 0 .../loaders/postload/GT_BlockResistanceLoader.java | 0 .../loaders/postload/GT_BookAndLootLoader.java | 0 .../loaders/postload/GT_CraftingRecipeLoader.java | 0 .../gregtech/loaders/postload/GT_CropLoader.java | 0 .../loaders/postload/GT_ItemMaxStacksizeLoader.java | 0 .../loaders/postload/GT_MachineRecipeLoader.java | 0 .../loaders/postload/GT_MinableRegistrator.java | 0 .../postload/GT_RecyclerBlacklistLoader.java | 0 .../loaders/postload/GT_ScrapboxDropLoader.java | 0 .../loaders/postload/GT_UUMRecipeLoader.java | 0 .../loaders/postload/GT_Worldgenloader.java | 0 .../loaders/preload/GT_Loader_CircuitBehaviors.java | 0 .../loaders/preload/GT_Loader_ItemData.java | 0 .../preload/GT_Loader_Item_Block_And_Fluid.java | 0 .../loaders/preload/GT_Loader_MetaTileEntities.java | 0 .../loaders/preload/GT_Loader_OreDictionary.java | 0 .../loaders/preload/GT_Loader_OreProcessing.java | 0 .../java/gregtech/nei/GT_NEI_DefaultHandler.java | 0 .../main}/java/gregtech/nei/NEI_GT_Config.java | 0 {main => src/main}/pack.mcmeta | 0 .../main}/resources/assets/gregtech/lang/en_US.lang | 0 .../main}/resources/assets/gregtech/lang/zh_CN.lang | 0 .../assets/gregtech/textures/BrainTechCape.png | Bin .../assets/gregtech/textures/GregTechCape.png | Bin .../assets/gregtech/textures/GregoriusCape.png | Bin .../assets/gregtech/textures/LogoGTI_Long.png | Bin .../assets/gregtech/textures/MrBrainCape.png | Bin .../assets/gregtech/textures/aspects/ELECTRUM.png | Bin .../assets/gregtech/textures/aspects/MAGNETO.png | Bin .../assets/gregtech/textures/aspects/NEBRISUM.png | Bin .../assets/gregtech/textures/aspects/RADIO.png | Bin .../assets/gregtech/textures/aspects/STRONTIO.png | Bin .../basicmachines/alloy_smelter/OVERLAY_BOTTOM.png | Bin .../alloy_smelter/OVERLAY_BOTTOM_ACTIVE.png | Bin .../basicmachines/alloy_smelter/OVERLAY_FRONT.png | Bin .../alloy_smelter/OVERLAY_FRONT_ACTIVE.png | Bin .../basicmachines/alloy_smelter/OVERLAY_SIDE.png | Bin .../alloy_smelter/OVERLAY_SIDE_ACTIVE.png | Bin .../basicmachines/alloy_smelter/OVERLAY_TOP.png | Bin .../alloy_smelter/OVERLAY_TOP_ACTIVE.png | Bin .../basicmachines/amplifab/OVERLAY_BOTTOM.png | Bin .../amplifab/OVERLAY_BOTTOM_ACTIVE.png | Bin .../blocks/basicmachines/amplifab/OVERLAY_FRONT.png | Bin .../basicmachines/amplifab/OVERLAY_FRONT_ACTIVE.png | Bin .../blocks/basicmachines/amplifab/OVERLAY_SIDE.png | Bin .../basicmachines/amplifab/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/amplifab/OVERLAY_TOP.png | Bin .../basicmachines/amplifab/OVERLAY_TOP_ACTIVE.png | Bin .../basicmachines/arc_furnace/OVERLAY_BOTTOM.png | Bin .../arc_furnace/OVERLAY_BOTTOM_ACTIVE.png | Bin .../basicmachines/arc_furnace/OVERLAY_FRONT.png | Bin .../arc_furnace/OVERLAY_FRONT_ACTIVE.png | Bin .../basicmachines/arc_furnace/OVERLAY_SIDE.png | Bin .../arc_furnace/OVERLAY_SIDE_ACTIVE.png | Bin .../basicmachines/arc_furnace/OVERLAY_TOP.png | Bin .../arc_furnace/OVERLAY_TOP_ACTIVE.png | Bin .../basicmachines/assembler/OVERLAY_BOTTOM.png | Bin .../assembler/OVERLAY_BOTTOM_ACTIVE.png | Bin .../basicmachines/assembler/OVERLAY_FRONT.png | Bin .../assembler/OVERLAY_FRONT_ACTIVE.png | Bin .../blocks/basicmachines/assembler/OVERLAY_SIDE.png | Bin .../basicmachines/assembler/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/assembler/OVERLAY_TOP.png | Bin .../basicmachines/assembler/OVERLAY_TOP_ACTIVE.png | Bin .../basicmachines/autoclave/OVERLAY_BOTTOM.png | Bin .../autoclave/OVERLAY_BOTTOM_ACTIVE.png | Bin .../basicmachines/autoclave/OVERLAY_FRONT.png | Bin .../autoclave/OVERLAY_FRONT_ACTIVE.png | Bin .../blocks/basicmachines/autoclave/OVERLAY_SIDE.png | Bin .../basicmachines/autoclave/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/autoclave/OVERLAY_TOP.png | Bin .../basicmachines/autoclave/OVERLAY_TOP_ACTIVE.png | Bin .../blocks/basicmachines/bender/OVERLAY_BOTTOM.png | Bin .../basicmachines/bender/OVERLAY_BOTTOM_ACTIVE.png | Bin .../blocks/basicmachines/bender/OVERLAY_FRONT.png | Bin .../basicmachines/bender/OVERLAY_FRONT_ACTIVE.png | Bin .../blocks/basicmachines/bender/OVERLAY_SIDE.png | Bin .../basicmachines/bender/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/bender/OVERLAY_TOP.png | Bin .../basicmachines/bender/OVERLAY_TOP_ACTIVE.png | Bin .../blocks/basicmachines/canner/OVERLAY_BOTTOM.png | Bin .../basicmachines/canner/OVERLAY_BOTTOM_ACTIVE.png | Bin .../blocks/basicmachines/canner/OVERLAY_FRONT.png | Bin .../basicmachines/canner/OVERLAY_FRONT_ACTIVE.png | Bin .../blocks/basicmachines/canner/OVERLAY_SIDE.png | Bin .../basicmachines/canner/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/canner/OVERLAY_TOP.png | Bin .../basicmachines/canner/OVERLAY_TOP_ACTIVE.png | Bin .../basicmachines/centrifuge/OVERLAY_BOTTOM.png | Bin .../centrifuge/OVERLAY_BOTTOM_ACTIVE.png | Bin .../basicmachines/centrifuge/OVERLAY_FRONT.png | Bin .../centrifuge/OVERLAY_FRONT_ACTIVE.png | Bin .../centrifuge/OVERLAY_FRONT_ACTIVE.png.mcmeta | 0 .../basicmachines/centrifuge/OVERLAY_SIDE.png | Bin .../centrifuge/OVERLAY_SIDE_ACTIVE.png | Bin .../centrifuge/OVERLAY_SIDE_ACTIVE.png.mcmeta | 0 .../blocks/basicmachines/centrifuge/OVERLAY_TOP.png | Bin .../basicmachines/centrifuge/OVERLAY_TOP_ACTIVE.png | Bin .../centrifuge/OVERLAY_TOP_ACTIVE.png.mcmeta | 0 .../basicmachines/chemical_bath/OVERLAY_BOTTOM.png | Bin .../chemical_bath/OVERLAY_BOTTOM_ACTIVE.png | Bin .../basicmachines/chemical_bath/OVERLAY_FRONT.png | Bin .../chemical_bath/OVERLAY_FRONT_ACTIVE.png | Bin .../basicmachines/chemical_bath/OVERLAY_SIDE.png | Bin .../chemical_bath/OVERLAY_SIDE_ACTIVE.png | Bin .../basicmachines/chemical_bath/OVERLAY_TOP.png | Bin .../chemical_bath/OVERLAY_TOP_ACTIVE.png | Bin .../chemical_reactor/OVERLAY_BOTTOM.png | Bin .../chemical_reactor/OVERLAY_BOTTOM_ACTIVE.png | Bin .../chemical_reactor/OVERLAY_FRONT.png | Bin .../chemical_reactor/OVERLAY_FRONT_ACTIVE.png | Bin .../basicmachines/chemical_reactor/OVERLAY_SIDE.png | Bin .../chemical_reactor/OVERLAY_SIDE_ACTIVE.png | Bin .../basicmachines/chemical_reactor/OVERLAY_TOP.png | Bin .../chemical_reactor/OVERLAY_TOP_ACTIVE.png | Bin .../basicmachines/compressor/OVERLAY_BOTTOM.png | Bin .../compressor/OVERLAY_BOTTOM_ACTIVE.png | Bin .../basicmachines/compressor/OVERLAY_FRONT.png | Bin .../compressor/OVERLAY_FRONT_ACTIVE.png | Bin .../basicmachines/compressor/OVERLAY_SIDE.png | Bin .../compressor/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/compressor/OVERLAY_TOP.png | Bin .../basicmachines/compressor/OVERLAY_TOP_ACTIVE.png | Bin .../blocks/basicmachines/cutter/OVERLAY_BOTTOM.png | Bin .../basicmachines/cutter/OVERLAY_BOTTOM_ACTIVE.png | Bin .../blocks/basicmachines/cutter/OVERLAY_FRONT.png | Bin .../basicmachines/cutter/OVERLAY_FRONT_ACTIVE.png | Bin .../blocks/basicmachines/cutter/OVERLAY_SIDE.png | Bin .../basicmachines/cutter/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/cutter/OVERLAY_TOP.png | Bin .../basicmachines/cutter/OVERLAY_TOP_ACTIVE.png | Bin .../basicmachines/distillery/OVERLAY_BOTTOM.png | Bin .../distillery/OVERLAY_BOTTOM_ACTIVE.png | Bin .../basicmachines/distillery/OVERLAY_FRONT.png | Bin .../distillery/OVERLAY_FRONT_ACTIVE.png | Bin .../basicmachines/distillery/OVERLAY_SIDE.png | Bin .../distillery/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/distillery/OVERLAY_TOP.png | Bin .../basicmachines/distillery/OVERLAY_TOP_ACTIVE.png | Bin .../electric_furnace/OVERLAY_BOTTOM.png | Bin .../electric_furnace/OVERLAY_BOTTOM_ACTIVE.png | Bin .../electric_furnace/OVERLAY_FRONT.png | Bin .../electric_furnace/OVERLAY_FRONT_ACTIVE.png | Bin .../basicmachines/electric_furnace/OVERLAY_SIDE.png | Bin .../electric_furnace/OVERLAY_SIDE_ACTIVE.png | Bin .../basicmachines/electric_furnace/OVERLAY_TOP.png | Bin .../electric_furnace/OVERLAY_TOP_ACTIVE.png | Bin .../basicmachines/electric_oven/OVERLAY_BOTTOM.png | Bin .../electric_oven/OVERLAY_BOTTOM_ACTIVE.png | Bin .../basicmachines/electric_oven/OVERLAY_FRONT.png | Bin .../electric_oven/OVERLAY_FRONT_ACTIVE.png | Bin .../basicmachines/electric_oven/OVERLAY_SIDE.png | Bin .../electric_oven/OVERLAY_SIDE_ACTIVE.png | Bin .../basicmachines/electric_oven/OVERLAY_TOP.png | Bin .../electric_oven/OVERLAY_TOP_ACTIVE.png | Bin .../basicmachines/electrolyzer/OVERLAY_BOTTOM.png | Bin .../electrolyzer/OVERLAY_BOTTOM_ACTIVE.png | Bin .../basicmachines/electrolyzer/OVERLAY_FRONT.png | Bin .../electrolyzer/OVERLAY_FRONT_ACTIVE.png | Bin .../basicmachines/electrolyzer/OVERLAY_SIDE.png | Bin .../electrolyzer/OVERLAY_SIDE_ACTIVE.png | Bin .../basicmachines/electrolyzer/OVERLAY_TOP.png | Bin .../electrolyzer/OVERLAY_TOP_ACTIVE.png | Bin .../electromagnetic_separator/OVERLAY_BOTTOM.png | Bin .../OVERLAY_BOTTOM_ACTIVE.png | Bin .../electromagnetic_separator/OVERLAY_FRONT.png | Bin .../OVERLAY_FRONT_ACTIVE.png | Bin .../OVERLAY_FRONT_ACTIVE.png.mcmeta | 0 .../electromagnetic_separator/OVERLAY_SIDE.png | Bin .../OVERLAY_SIDE_ACTIVE.png | Bin .../electromagnetic_separator/OVERLAY_TOP.png | Bin .../OVERLAY_TOP_ACTIVE.png | Bin .../basicmachines/extractor/OVERLAY_BOTTOM.png | Bin .../extractor/OVERLAY_BOTTOM_ACTIVE.png | Bin .../basicmachines/extractor/OVERLAY_FRONT.png | Bin .../extractor/OVERLAY_FRONT_ACTIVE.png | Bin .../blocks/basicmachines/extractor/OVERLAY_SIDE.png | Bin .../basicmachines/extractor/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/extractor/OVERLAY_TOP.png | Bin .../basicmachines/extractor/OVERLAY_TOP_ACTIVE.png | Bin .../basicmachines/extruder/OVERLAY_BOTTOM.png | Bin .../extruder/OVERLAY_BOTTOM_ACTIVE.png | Bin .../blocks/basicmachines/extruder/OVERLAY_FRONT.png | Bin .../basicmachines/extruder/OVERLAY_FRONT_ACTIVE.png | Bin .../blocks/basicmachines/extruder/OVERLAY_SIDE.png | Bin .../basicmachines/extruder/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/extruder/OVERLAY_TOP.png | Bin .../basicmachines/extruder/OVERLAY_TOP_ACTIVE.png | Bin .../basicmachines/fermenter/OVERLAY_BOTTOM.png | Bin .../fermenter/OVERLAY_BOTTOM_ACTIVE.png | Bin .../basicmachines/fermenter/OVERLAY_FRONT.png | Bin .../fermenter/OVERLAY_FRONT_ACTIVE.png | Bin .../blocks/basicmachines/fermenter/OVERLAY_SIDE.png | Bin .../basicmachines/fermenter/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/fermenter/OVERLAY_TOP.png | Bin .../basicmachines/fermenter/OVERLAY_TOP_ACTIVE.png | Bin .../basicmachines/fluid_canner/OVERLAY_BOTTOM.png | Bin .../fluid_canner/OVERLAY_BOTTOM_ACTIVE.png | Bin .../basicmachines/fluid_canner/OVERLAY_FRONT.png | Bin .../fluid_canner/OVERLAY_FRONT_ACTIVE.png | Bin .../basicmachines/fluid_canner/OVERLAY_SIDE.png | Bin .../fluid_canner/OVERLAY_SIDE_ACTIVE.png | Bin .../basicmachines/fluid_canner/OVERLAY_TOP.png | Bin .../fluid_canner/OVERLAY_TOP_ACTIVE.png | Bin .../fluid_extractor/OVERLAY_BOTTOM.png | Bin .../fluid_extractor/OVERLAY_BOTTOM_ACTIVE.png | Bin .../basicmachines/fluid_extractor/OVERLAY_FRONT.png | Bin .../fluid_extractor/OVERLAY_FRONT_ACTIVE.png | Bin .../basicmachines/fluid_extractor/OVERLAY_SIDE.png | Bin .../fluid_extractor/OVERLAY_SIDE_ACTIVE.png | Bin .../basicmachines/fluid_extractor/OVERLAY_TOP.png | Bin .../fluid_extractor/OVERLAY_TOP_ACTIVE.png | Bin .../basicmachines/fluid_heater/OVERLAY_BOTTOM.png | Bin .../fluid_heater/OVERLAY_BOTTOM_ACTIVE.png | Bin .../basicmachines/fluid_heater/OVERLAY_FRONT.png | Bin .../fluid_heater/OVERLAY_FRONT_ACTIVE.png | Bin .../basicmachines/fluid_heater/OVERLAY_SIDE.png | Bin .../fluid_heater/OVERLAY_SIDE_ACTIVE.png | Bin .../basicmachines/fluid_heater/OVERLAY_TOP.png | Bin .../fluid_heater/OVERLAY_TOP_ACTIVE.png | Bin .../fluid_solidifier/OVERLAY_BOTTOM.png | Bin .../fluid_solidifier/OVERLAY_BOTTOM_ACTIVE.png | Bin .../fluid_solidifier/OVERLAY_FRONT.png | Bin .../fluid_solidifier/OVERLAY_FRONT_ACTIVE.png | Bin .../basicmachines/fluid_solidifier/OVERLAY_SIDE.png | Bin .../fluid_solidifier/OVERLAY_SIDE_ACTIVE.png | Bin .../basicmachines/fluid_solidifier/OVERLAY_TOP.png | Bin .../fluid_solidifier/OVERLAY_TOP_ACTIVE.png | Bin .../blocks/basicmachines/hammer/OVERLAY_BOTTOM.png | Bin .../basicmachines/hammer/OVERLAY_BOTTOM_ACTIVE.png | Bin .../blocks/basicmachines/hammer/OVERLAY_FRONT.png | Bin .../basicmachines/hammer/OVERLAY_FRONT_ACTIVE.png | Bin .../blocks/basicmachines/hammer/OVERLAY_SIDE.png | Bin .../basicmachines/hammer/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/hammer/OVERLAY_TOP.png | Bin .../basicmachines/hammer/OVERLAY_TOP_ACTIVE.png | Bin .../basicmachines/laser_engraver/OVERLAY_BOTTOM.png | Bin .../laser_engraver/OVERLAY_BOTTOM_ACTIVE.png | Bin .../basicmachines/laser_engraver/OVERLAY_FRONT.png | Bin .../laser_engraver/OVERLAY_FRONT_ACTIVE.png | Bin .../laser_engraver/OVERLAY_FRONT_ACTIVE.png.mcmeta | 0 .../basicmachines/laser_engraver/OVERLAY_SIDE.png | Bin .../laser_engraver/OVERLAY_SIDE_ACTIVE.png | Bin .../basicmachines/laser_engraver/OVERLAY_TOP.png | Bin .../laser_engraver/OVERLAY_TOP_ACTIVE.png | Bin .../blocks/basicmachines/lathe/OVERLAY_BOTTOM.png | Bin .../basicmachines/lathe/OVERLAY_BOTTOM_ACTIVE.png | Bin .../blocks/basicmachines/lathe/OVERLAY_FRONT.png | Bin .../basicmachines/lathe/OVERLAY_FRONT_ACTIVE.png | Bin .../blocks/basicmachines/lathe/OVERLAY_SIDE.png | Bin .../basicmachines/lathe/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/lathe/OVERLAY_TOP.png | Bin .../basicmachines/lathe/OVERLAY_TOP_ACTIVE.png | Bin .../basicmachines/macerator/OVERLAY_BOTTOM.png | Bin .../macerator/OVERLAY_BOTTOM_ACTIVE.png | Bin .../basicmachines/macerator/OVERLAY_FRONT.png | Bin .../macerator/OVERLAY_FRONT_ACTIVE.png | Bin .../blocks/basicmachines/macerator/OVERLAY_SIDE.png | Bin .../basicmachines/macerator/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/macerator/OVERLAY_TOP.png | Bin .../basicmachines/macerator/OVERLAY_TOP_ACTIVE.png | Bin .../macerator/OVERLAY_TOP_ACTIVE.png.mcmeta | 0 .../basicmachines/microwave/OVERLAY_BOTTOM.png | Bin .../microwave/OVERLAY_BOTTOM_ACTIVE.png | Bin .../basicmachines/microwave/OVERLAY_FRONT.png | Bin .../microwave/OVERLAY_FRONT_ACTIVE.png | Bin .../blocks/basicmachines/microwave/OVERLAY_SIDE.png | Bin .../basicmachines/microwave/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/microwave/OVERLAY_TOP.png | Bin .../basicmachines/microwave/OVERLAY_TOP_ACTIVE.png | Bin .../blocks/basicmachines/mixer/OVERLAY_BOTTOM.png | Bin .../basicmachines/mixer/OVERLAY_BOTTOM_ACTIVE.png | Bin .../blocks/basicmachines/mixer/OVERLAY_FRONT.png | Bin .../basicmachines/mixer/OVERLAY_FRONT_ACTIVE.png | Bin .../mixer/OVERLAY_FRONT_ACTIVE.png.mcmeta | 0 .../blocks/basicmachines/mixer/OVERLAY_SIDE.png | Bin .../basicmachines/mixer/OVERLAY_SIDE_ACTIVE.png | Bin .../mixer/OVERLAY_SIDE_ACTIVE.png.mcmeta | 0 .../blocks/basicmachines/mixer/OVERLAY_TOP.png | Bin .../basicmachines/mixer/OVERLAY_TOP_ACTIVE.png | Bin .../mixer/OVERLAY_TOP_ACTIVE.png.mcmeta | 0 .../basicmachines/ore_washer/OVERLAY_BOTTOM.png | Bin .../ore_washer/OVERLAY_BOTTOM_ACTIVE.png | Bin .../basicmachines/ore_washer/OVERLAY_FRONT.png | Bin .../ore_washer/OVERLAY_FRONT_ACTIVE.png | Bin .../basicmachines/ore_washer/OVERLAY_SIDE.png | Bin .../ore_washer/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/ore_washer/OVERLAY_TOP.png | Bin .../basicmachines/ore_washer/OVERLAY_TOP_ACTIVE.png | Bin .../plasma_arc_furnace/OVERLAY_BOTTOM.png | Bin .../plasma_arc_furnace/OVERLAY_BOTTOM_ACTIVE.png | Bin .../plasma_arc_furnace/OVERLAY_FRONT.png | Bin .../plasma_arc_furnace/OVERLAY_FRONT_ACTIVE.png | Bin .../plasma_arc_furnace/OVERLAY_SIDE.png | Bin .../plasma_arc_furnace/OVERLAY_SIDE_ACTIVE.png | Bin .../plasma_arc_furnace/OVERLAY_TOP.png | Bin .../plasma_arc_furnace/OVERLAY_TOP_ACTIVE.png | Bin .../basicmachines/polarizer/OVERLAY_BOTTOM.png | Bin .../polarizer/OVERLAY_BOTTOM_ACTIVE.png | Bin .../basicmachines/polarizer/OVERLAY_FRONT.png | Bin .../polarizer/OVERLAY_FRONT_ACTIVE.png | Bin .../blocks/basicmachines/polarizer/OVERLAY_SIDE.png | Bin .../basicmachines/polarizer/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/polarizer/OVERLAY_TOP.png | Bin .../basicmachines/polarizer/OVERLAY_TOP_ACTIVE.png | Bin .../blocks/basicmachines/press/OVERLAY_BOTTOM.png | Bin .../basicmachines/press/OVERLAY_BOTTOM_ACTIVE.png | Bin .../blocks/basicmachines/press/OVERLAY_FRONT.png | Bin .../basicmachines/press/OVERLAY_FRONT_ACTIVE.png | Bin .../blocks/basicmachines/press/OVERLAY_SIDE.png | Bin .../basicmachines/press/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/press/OVERLAY_TOP.png | Bin .../basicmachines/press/OVERLAY_TOP_ACTIVE.png | Bin .../blocks/basicmachines/printer/OVERLAY_BOTTOM.png | Bin .../basicmachines/printer/OVERLAY_BOTTOM_ACTIVE.png | Bin .../blocks/basicmachines/printer/OVERLAY_FRONT.png | Bin .../basicmachines/printer/OVERLAY_FRONT_ACTIVE.png | Bin .../blocks/basicmachines/printer/OVERLAY_SIDE.png | Bin .../basicmachines/printer/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/printer/OVERLAY_TOP.png | Bin .../basicmachines/printer/OVERLAY_TOP_ACTIVE.png | Bin .../basicmachines/pulverizer/OVERLAY_BOTTOM.png | Bin .../pulverizer/OVERLAY_BOTTOM_ACTIVE.png | Bin .../basicmachines/pulverizer/OVERLAY_FRONT.png | Bin .../pulverizer/OVERLAY_FRONT_ACTIVE.png | Bin .../basicmachines/pulverizer/OVERLAY_SIDE.png | Bin .../pulverizer/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/pulverizer/OVERLAY_TOP.png | Bin .../basicmachines/pulverizer/OVERLAY_TOP_ACTIVE.png | Bin .../pulverizer/OVERLAY_TOP_ACTIVE.png.mcmeta | 0 .../basicmachines/recycler/OVERLAY_BOTTOM.png | Bin .../recycler/OVERLAY_BOTTOM_ACTIVE.png | Bin .../blocks/basicmachines/recycler/OVERLAY_FRONT.png | Bin .../basicmachines/recycler/OVERLAY_FRONT_ACTIVE.png | Bin .../blocks/basicmachines/recycler/OVERLAY_SIDE.png | Bin .../basicmachines/recycler/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/recycler/OVERLAY_TOP.png | Bin .../basicmachines/recycler/OVERLAY_TOP_ACTIVE.png | Bin .../blocks/basicmachines/sifter/OVERLAY_BOTTOM.png | Bin .../basicmachines/sifter/OVERLAY_BOTTOM_ACTIVE.png | Bin .../blocks/basicmachines/sifter/OVERLAY_FRONT.png | Bin .../basicmachines/sifter/OVERLAY_FRONT_ACTIVE.png | Bin .../sifter/OVERLAY_FRONT_ACTIVE.png.mcmeta | 0 .../blocks/basicmachines/sifter/OVERLAY_SIDE.png | Bin .../basicmachines/sifter/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/sifter/OVERLAY_TOP.png | Bin .../basicmachines/sifter/OVERLAY_TOP_ACTIVE.png | Bin .../blocks/basicmachines/slicer/OVERLAY_BOTTOM.png | Bin .../basicmachines/slicer/OVERLAY_BOTTOM_ACTIVE.png | Bin .../blocks/basicmachines/slicer/OVERLAY_FRONT.png | Bin .../basicmachines/slicer/OVERLAY_FRONT_ACTIVE.png | Bin .../blocks/basicmachines/slicer/OVERLAY_SIDE.png | Bin .../basicmachines/slicer/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/slicer/OVERLAY_TOP.png | Bin .../basicmachines/slicer/OVERLAY_TOP_ACTIVE.png | Bin .../thermal_centrifuge/OVERLAY_BOTTOM.png | Bin .../thermal_centrifuge/OVERLAY_BOTTOM_ACTIVE.png | Bin .../thermal_centrifuge/OVERLAY_FRONT.png | Bin .../thermal_centrifuge/OVERLAY_FRONT_ACTIVE.png | Bin .../thermal_centrifuge/OVERLAY_SIDE.png | Bin .../thermal_centrifuge/OVERLAY_SIDE_ACTIVE.png | Bin .../thermal_centrifuge/OVERLAY_TOP.png | Bin .../thermal_centrifuge/OVERLAY_TOP_ACTIVE.png | Bin .../basicmachines/unboxinator/OVERLAY_BOTTOM.png | Bin .../unboxinator/OVERLAY_BOTTOM_ACTIVE.png | Bin .../basicmachines/unboxinator/OVERLAY_FRONT.png | Bin .../unboxinator/OVERLAY_FRONT_ACTIVE.png | Bin .../basicmachines/unboxinator/OVERLAY_SIDE.png | Bin .../unboxinator/OVERLAY_SIDE_ACTIVE.png | Bin .../basicmachines/unboxinator/OVERLAY_TOP.png | Bin .../unboxinator/OVERLAY_TOP_ACTIVE.png | Bin .../basicmachines/wiremill/OVERLAY_BOTTOM.png | Bin .../wiremill/OVERLAY_BOTTOM_ACTIVE.png | Bin .../blocks/basicmachines/wiremill/OVERLAY_FRONT.png | Bin .../basicmachines/wiremill/OVERLAY_FRONT_ACTIVE.png | Bin .../blocks/basicmachines/wiremill/OVERLAY_SIDE.png | Bin .../basicmachines/wiremill/OVERLAY_SIDE_ACTIVE.png | Bin .../blocks/basicmachines/wiremill/OVERLAY_TOP.png | Bin .../basicmachines/wiremill/OVERLAY_TOP_ACTIVE.png | Bin .../gregtech/textures/blocks/fluids/fluid.air.png | Bin .../textures/blocks/fluids/fluid.berylium.png | Bin .../blocks/fluids/fluid.berylium.png.mcmeta | 0 .../textures/blocks/fluids/fluid.bioethanol.png | Bin .../blocks/fluids/fluid.bioethanol.png.mcmeta | 0 .../textures/blocks/fluids/fluid.biomass.png | Bin .../textures/blocks/fluids/fluid.biomass.png.mcmeta | 0 .../textures/blocks/fluids/fluid.calcium.png | Bin .../textures/blocks/fluids/fluid.calcium.png.mcmeta | 0 .../blocks/fluids/fluid.calciumcarbonate.png | Bin .../blocks/fluids/fluid.calciumcarbonate.png.mcmeta | 0 .../textures/blocks/fluids/fluid.chlorine.png | Bin .../blocks/fluids/fluid.chlorine.png.mcmeta | 0 .../textures/blocks/fluids/fluid.creosote.png | Bin .../blocks/fluids/fluid.creosote.png.mcmeta | 0 .../textures/blocks/fluids/fluid.deuterium.png | Bin .../gregtech/textures/blocks/fluids/fluid.dyes.png | Bin .../textures/blocks/fluids/fluid.dyes.png.mcmeta | 0 .../textures/blocks/fluids/fluid.fieryblood.png | Bin .../blocks/fluids/fluid.fieryblood.png.mcmeta | 0 .../textures/blocks/fluids/fluid.fishoil.png | Bin .../textures/blocks/fluids/fluid.fishoil.png.mcmeta | 0 .../textures/blocks/fluids/fluid.fluorine.png | Bin .../blocks/fluids/fluid.fluorine.png.mcmeta | 0 .../textures/blocks/fluids/fluid.for.honey.png | Bin .../blocks/fluids/fluid.for.honey.png.mcmeta | 0 .../gregtech/textures/blocks/fluids/fluid.fuel.png | Bin .../textures/blocks/fluids/fluid.fuel.png.mcmeta | 0 .../blocks/fluids/fluid.gas_natural_gas.png | Bin .../gregtech/textures/blocks/fluids/fluid.glue.png | Bin .../textures/blocks/fluids/fluid.glue.png.mcmeta | 0 .../textures/blocks/fluids/fluid.glyceryl.png | Bin .../blocks/fluids/fluid.glyceryl.png.mcmeta | 0 .../textures/blocks/fluids/fluid.helium-3.png | Bin .../textures/blocks/fluids/fluid.helium.png | Bin .../textures/blocks/fluids/fluid.heliumplasma.png | Bin .../blocks/fluids/fluid.heliumplasma.png.mcmeta | 0 .../textures/blocks/fluids/fluid.holywater.png | Bin .../blocks/fluids/fluid.holywater.png.mcmeta | 0 .../textures/blocks/fluids/fluid.hotfryingoil.png | Bin .../blocks/fluids/fluid.hotfryingoil.png.mcmeta | 0 .../textures/blocks/fluids/fluid.hydrogen.png | Bin .../gregtech/textures/blocks/fluids/fluid.ice.png | Bin .../textures/blocks/fluids/fluid.ice.png.mcmeta | 0 .../textures/blocks/fluids/fluid.indigo.png | Bin .../textures/blocks/fluids/fluid.indigo.png.mcmeta | 0 .../blocks/fluids/fluid.liquid_extra_heavy_oil.png | Bin .../fluids/fluid.liquid_extra_heavy_oil.png.mcmeta | 0 .../blocks/fluids/fluid.liquid_heavy_oil.png | Bin .../blocks/fluids/fluid.liquid_heavy_oil.png.mcmeta | 0 .../blocks/fluids/fluid.liquid_light_oil.png | Bin .../blocks/fluids/fluid.liquid_light_oil.png.mcmeta | 0 .../blocks/fluids/fluid.liquid_medium_oil.png | Bin .../fluids/fluid.liquid_medium_oil.png.mcmeta | 0 .../textures/blocks/fluids/fluid.lithium.png | Bin .../textures/blocks/fluids/fluid.lithium.png.mcmeta | 0 .../textures/blocks/fluids/fluid.lubricant.png | Bin .../blocks/fluids/fluid.lubricant.png.mcmeta | 0 .../textures/blocks/fluids/fluid.mcguffium.png | Bin .../blocks/fluids/fluid.mcguffium.png.mcmeta | 0 .../textures/blocks/fluids/fluid.mercury.png | Bin .../textures/blocks/fluids/fluid.mercury.png.mcmeta | 0 .../textures/blocks/fluids/fluid.methane.png | Bin .../gregtech/textures/blocks/fluids/fluid.milk.png | Bin .../textures/blocks/fluids/fluid.milk.png.mcmeta | 0 .../blocks/fluids/fluid.molten.autogenerated.png | Bin .../fluids/fluid.molten.autogenerated.png.mcmeta | 0 .../textures/blocks/fluids/fluid.molten.blaze.png | Bin .../blocks/fluids/fluid.molten.blaze.png.mcmeta | 0 .../blocks/fluids/fluid.molten.concrete.png | Bin .../blocks/fluids/fluid.molten.concrete.png.mcmeta | 0 .../textures/blocks/fluids/fluid.molten.glass.png | Bin .../blocks/fluids/fluid.molten.glass.png.mcmeta | 0 .../blocks/fluids/fluid.molten.redstone.png | Bin .../blocks/fluids/fluid.molten.redstone.png.mcmeta | 0 .../textures/blocks/fluids/fluid.nitrocoalfuel.png | Bin .../blocks/fluids/fluid.nitrocoalfuel.png.mcmeta | 0 .../textures/blocks/fluids/fluid.nitrofuel.png | Bin .../blocks/fluids/fluid.nitrofuel.png.mcmeta | 0 .../textures/blocks/fluids/fluid.nitrogen.png | Bin .../blocks/fluids/fluid.nitrogendioxide.png | Bin .../textures/blocks/fluids/fluid.nitrogenplasma.png | Bin .../blocks/fluids/fluid.nitrogenplasma.png.mcmeta | 0 .../gregtech/textures/blocks/fluids/fluid.oil.png | Bin .../textures/blocks/fluids/fluid.oil.png.mcmeta | 0 .../textures/blocks/fluids/fluid.oxygen.png | Bin .../blocks/fluids/fluid.plasma.autogenerated.png | Bin .../fluids/fluid.plasma.autogenerated.png.mcmeta | 0 .../textures/blocks/fluids/fluid.potassium.png | Bin .../blocks/fluids/fluid.potassium.png.mcmeta | 0 .../blocks/fluids/fluid.potion.alcopops.png | Bin .../blocks/fluids/fluid.potion.alcopops.png.mcmeta | 0 .../blocks/fluids/fluid.potion.applejuice.png | Bin .../fluids/fluid.potion.applejuice.png.mcmeta | 0 .../textures/blocks/fluids/fluid.potion.awkward.png | Bin .../blocks/fluids/fluid.potion.awkward.png.mcmeta | 0 .../textures/blocks/fluids/fluid.potion.beer.png | Bin .../blocks/fluids/fluid.potion.beer.png.mcmeta | 0 .../blocks/fluids/fluid.potion.cafeaulait.png | Bin .../fluids/fluid.potion.cafeaulait.png.mcmeta | 0 .../fluid.potion.cavejohnsonsgrenadejuice.png | Bin ...fluid.potion.cavejohnsonsgrenadejuice.png.mcmeta | 0 .../blocks/fluids/fluid.potion.chillysauce.png | Bin .../fluids/fluid.potion.chillysauce.png.mcmeta | 0 .../blocks/fluids/fluid.potion.chocolatemilk.png | Bin .../fluids/fluid.potion.chocolatemilk.png.mcmeta | 0 .../textures/blocks/fluids/fluid.potion.cider.png | Bin .../blocks/fluids/fluid.potion.cider.png.mcmeta | 0 .../textures/blocks/fluids/fluid.potion.coffee.png | Bin .../blocks/fluids/fluid.potion.coffee.png.mcmeta | 0 .../textures/blocks/fluids/fluid.potion.damage.png | Bin .../blocks/fluids/fluid.potion.damage.png.mcmeta | 0 .../blocks/fluids/fluid.potion.damage.splash.png | Bin .../fluids/fluid.potion.damage.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.damage.strong.png | Bin .../fluids/fluid.potion.damage.strong.png.mcmeta | 0 .../fluids/fluid.potion.damage.strong.splash.png | Bin .../fluid.potion.damage.strong.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.darkbeer.png | Bin .../blocks/fluids/fluid.potion.darkbeer.png.mcmeta | 0 .../blocks/fluids/fluid.potion.darkcafeaulait.png | Bin .../fluids/fluid.potion.darkcafeaulait.png.mcmeta | 0 .../fluids/fluid.potion.darkchocolatemilk.png | Bin .../fluid.potion.darkchocolatemilk.png.mcmeta | 0 .../blocks/fluids/fluid.potion.darkcoffee.png | Bin .../fluids/fluid.potion.darkcoffee.png.mcmeta | 0 .../blocks/fluids/fluid.potion.diablosauce.png | Bin .../fluids/fluid.potion.diablosauce.png.mcmeta | 0 .../fluids/fluid.potion.diablosauce.strong.png | Bin .../fluid.potion.diablosauce.strong.png.mcmeta | 0 .../blocks/fluids/fluid.potion.diabolosauce.png | Bin .../fluids/fluid.potion.diabolosauce.png.mcmeta | 0 .../blocks/fluids/fluid.potion.dragonblood.png | Bin .../fluids/fluid.potion.dragonblood.png.mcmeta | 0 .../fluids/fluid.potion.fireresistance.long.png | Bin .../fluid.potion.fireresistance.long.png.mcmeta | 0 .../fluid.potion.fireresistance.long.splash.png | Bin ...uid.potion.fireresistance.long.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.fireresistance.png | Bin .../fluids/fluid.potion.fireresistance.png.mcmeta | 0 .../fluids/fluid.potion.fireresistance.splash.png | Bin .../fluid.potion.fireresistance.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.glenmckenner.png | Bin .../fluids/fluid.potion.glenmckenner.png.mcmeta | 0 .../blocks/fluids/fluid.potion.goldenapplejuice.png | Bin .../fluids/fluid.potion.goldenapplejuice.png.mcmeta | 0 .../blocks/fluids/fluid.potion.goldencider.png | Bin .../fluids/fluid.potion.goldencider.png.mcmeta | 0 .../blocks/fluids/fluid.potion.grapejuice.png | Bin .../fluids/fluid.potion.grapejuice.png.mcmeta | 0 .../textures/blocks/fluids/fluid.potion.health.png | Bin .../blocks/fluids/fluid.potion.health.png.mcmeta | 0 .../blocks/fluids/fluid.potion.health.splash.png | Bin .../fluids/fluid.potion.health.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.health.strong.png | Bin .../fluids/fluid.potion.health.strong.png.mcmeta | 0 .../fluids/fluid.potion.health.strong.splash.png | Bin .../fluid.potion.health.strong.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.hopsjuice.png | Bin .../blocks/fluids/fluid.potion.hopsjuice.png.mcmeta | 0 .../blocks/fluids/fluid.potion.hotsauce.png | Bin .../blocks/fluids/fluid.potion.hotsauce.png.mcmeta | 0 .../textures/blocks/fluids/fluid.potion.icetea.png | Bin .../blocks/fluids/fluid.potion.icetea.png.mcmeta | 0 .../blocks/fluids/fluid.potion.idunsapplejuice.png | Bin .../fluids/fluid.potion.idunsapplejuice.png.mcmeta | 0 .../fluids/fluid.potion.invisibility.long.png | Bin .../fluid.potion.invisibility.long.png.mcmeta | 0 .../fluid.potion.invisibility.long.splash.png | Bin ...fluid.potion.invisibility.long.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.invisibility.png | Bin .../fluids/fluid.potion.invisibility.png.mcmeta | 0 .../fluids/fluid.potion.invisibility.splash.png | Bin .../fluid.potion.invisibility.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.laitaucafe.png | Bin .../fluids/fluid.potion.laitaucafe.png.mcmeta | 0 .../blocks/fluids/fluid.potion.lemonade.png | Bin .../blocks/fluids/fluid.potion.lemonade.png.mcmeta | 0 .../blocks/fluids/fluid.potion.lemonjuice.png | Bin .../fluids/fluid.potion.lemonjuice.png.mcmeta | 0 .../blocks/fluids/fluid.potion.leninade.png | Bin .../blocks/fluids/fluid.potion.leninade.png.mcmeta | 0 .../blocks/fluids/fluid.potion.limoncello.png | Bin .../fluids/fluid.potion.limoncello.png.mcmeta | 0 .../blocks/fluids/fluid.potion.mineralwater.png | Bin .../fluids/fluid.potion.mineralwater.png.mcmeta | 0 .../textures/blocks/fluids/fluid.potion.mundane.png | Bin .../blocks/fluids/fluid.potion.mundane.png.mcmeta | 0 .../blocks/fluids/fluid.potion.nightvision.long.png | Bin .../fluids/fluid.potion.nightvision.long.png.mcmeta | 0 .../fluids/fluid.potion.nightvision.long.splash.png | Bin .../fluid.potion.nightvision.long.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.nightvision.png | Bin .../fluids/fluid.potion.nightvision.png.mcmeta | 0 .../fluids/fluid.potion.nightvision.splash.png | Bin .../fluid.potion.nightvision.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.notchesbrew.png | Bin .../fluids/fluid.potion.notchesbrew.png.mcmeta | 0 .../blocks/fluids/fluid.potion.piratebrew.png | Bin .../fluids/fluid.potion.piratebrew.png.mcmeta | 0 .../blocks/fluids/fluid.potion.poison.long.png | Bin .../fluids/fluid.potion.poison.long.png.mcmeta | 0 .../fluids/fluid.potion.poison.long.splash.png | Bin .../fluid.potion.poison.long.splash.png.mcmeta | 0 .../textures/blocks/fluids/fluid.potion.poison.png | Bin .../blocks/fluids/fluid.potion.poison.png.mcmeta | 0 .../blocks/fluids/fluid.potion.poison.splash.png | Bin .../fluids/fluid.potion.poison.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.poison.strong.png | Bin .../fluids/fluid.potion.poison.strong.png.mcmeta | 0 .../fluids/fluid.potion.poison.strong.splash.png | Bin .../fluid.potion.poison.strong.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.potatojuice.png | Bin .../fluids/fluid.potion.potatojuice.png.mcmeta | 0 .../blocks/fluids/fluid.potion.purpledrink.png | Bin .../fluids/fluid.potion.purpledrink.png.mcmeta | 0 .../blocks/fluids/fluid.potion.reedwater.png | Bin .../blocks/fluids/fluid.potion.reedwater.png.mcmeta | 0 .../blocks/fluids/fluid.potion.regen.long.png | Bin .../fluids/fluid.potion.regen.long.png.mcmeta | 0 .../fluids/fluid.potion.regen.long.splash.png | Bin .../fluid.potion.regen.long.splash.png.mcmeta | 0 .../textures/blocks/fluids/fluid.potion.regen.png | Bin .../blocks/fluids/fluid.potion.regen.png.mcmeta | 0 .../blocks/fluids/fluid.potion.regen.splash.png | Bin .../fluids/fluid.potion.regen.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.regen.strong.png | Bin .../fluids/fluid.potion.regen.strong.png.mcmeta | 0 .../fluids/fluid.potion.regen.strong.splash.png | Bin .../fluid.potion.regen.strong.splash.png.mcmeta | 0 .../textures/blocks/fluids/fluid.potion.rum.png | Bin .../blocks/fluids/fluid.potion.rum.png.mcmeta | 0 .../blocks/fluids/fluid.potion.saltywater.png | Bin .../fluids/fluid.potion.saltywater.png.mcmeta | 0 .../textures/blocks/fluids/fluid.potion.scotch.png | Bin .../blocks/fluids/fluid.potion.scotch.png.mcmeta | 0 .../blocks/fluids/fluid.potion.slowness.long.png | Bin .../fluids/fluid.potion.slowness.long.png.mcmeta | 0 .../fluids/fluid.potion.slowness.long.splash.png | Bin .../fluid.potion.slowness.long.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.slowness.png | Bin .../blocks/fluids/fluid.potion.slowness.png.mcmeta | 0 .../blocks/fluids/fluid.potion.slowness.splash.png | Bin .../fluids/fluid.potion.slowness.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.speed.long.png | Bin .../fluids/fluid.potion.speed.long.png.mcmeta | 0 .../fluids/fluid.potion.speed.long.splash.png | Bin .../fluid.potion.speed.long.splash.png.mcmeta | 0 .../textures/blocks/fluids/fluid.potion.speed.png | Bin .../blocks/fluids/fluid.potion.speed.png.mcmeta | 0 .../blocks/fluids/fluid.potion.speed.splash.png | Bin .../fluids/fluid.potion.speed.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.speed.strong.png | Bin .../fluids/fluid.potion.speed.strong.png.mcmeta | 0 .../fluids/fluid.potion.speed.strong.splash.png | Bin .../fluid.potion.speed.strong.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.strength.long.png | Bin .../fluids/fluid.potion.strength.long.png.mcmeta | 0 .../fluids/fluid.potion.strength.long.splash.png | Bin .../fluid.potion.strength.long.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.strength.png | Bin .../blocks/fluids/fluid.potion.strength.png.mcmeta | 0 .../blocks/fluids/fluid.potion.strength.splash.png | Bin .../fluids/fluid.potion.strength.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.strength.strong.png | Bin .../fluids/fluid.potion.strength.strong.png.mcmeta | 0 .../fluids/fluid.potion.strength.strong.splash.png | Bin .../fluid.potion.strength.strong.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.sweettea.png | Bin .../blocks/fluids/fluid.potion.sweettea.png.mcmeta | 0 .../textures/blocks/fluids/fluid.potion.tea.png | Bin .../blocks/fluids/fluid.potion.tea.png.mcmeta | 0 .../textures/blocks/fluids/fluid.potion.thick.png | Bin .../blocks/fluids/fluid.potion.thick.png.mcmeta | 0 .../textures/blocks/fluids/fluid.potion.vinegar.png | Bin .../blocks/fluids/fluid.potion.vinegar.png.mcmeta | 0 .../textures/blocks/fluids/fluid.potion.vodka.png | Bin .../blocks/fluids/fluid.potion.vodka.png.mcmeta | 0 .../fluids/fluid.potion.waterbreathing.long.png | Bin .../fluid.potion.waterbreathing.long.png.mcmeta | 0 .../fluid.potion.waterbreathing.long.splash.png | Bin ...uid.potion.waterbreathing.long.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.waterbreathing.png | Bin .../fluids/fluid.potion.waterbreathing.png.mcmeta | 0 .../fluids/fluid.potion.waterbreathing.splash.png | Bin .../fluid.potion.waterbreathing.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.weakness.long.png | Bin .../fluids/fluid.potion.weakness.long.png.mcmeta | 0 .../fluids/fluid.potion.weakness.long.splash.png | Bin .../fluid.potion.weakness.long.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.weakness.png | Bin .../blocks/fluids/fluid.potion.weakness.png.mcmeta | 0 .../blocks/fluids/fluid.potion.weakness.splash.png | Bin .../fluids/fluid.potion.weakness.splash.png.mcmeta | 0 .../blocks/fluids/fluid.potion.wheatyhopsjuice.png | Bin .../fluids/fluid.potion.wheatyhopsjuice.png.mcmeta | 0 .../blocks/fluids/fluid.potion.wheatyjuice.png | Bin .../fluids/fluid.potion.wheatyjuice.png.mcmeta | 0 .../textures/blocks/fluids/fluid.potion.wine.png | Bin .../blocks/fluids/fluid.potion.wine.png.mcmeta | 0 .../textures/blocks/fluids/fluid.seedoil.png | Bin .../textures/blocks/fluids/fluid.seedoil.png.mcmeta | 0 .../textures/blocks/fluids/fluid.silicon.png | Bin .../textures/blocks/fluids/fluid.silicon.png.mcmeta | 0 .../textures/blocks/fluids/fluid.sodium.png | Bin .../textures/blocks/fluids/fluid.sodium.png.mcmeta | 0 .../blocks/fluids/fluid.sodiumpersulfate.png | Bin .../blocks/fluids/fluid.sodiumpersulfate.png.mcmeta | 0 .../textures/blocks/fluids/fluid.squidink.png | Bin .../blocks/fluids/fluid.squidink.png.mcmeta | 0 .../gregtech/textures/blocks/fluids/fluid.steam.png | Bin .../textures/blocks/fluids/fluid.steam.png.mcmeta | 0 .../textures/blocks/fluids/fluid.sulfuricacid.png | Bin .../blocks/fluids/fluid.sulfuricacid.png.mcmeta | 0 .../textures/blocks/fluids/fluid.tritium.png | Bin .../textures/blocks/fluids/fluid.uuamplifier.png | Bin .../blocks/fluids/fluid.uuamplifier.png.mcmeta | 0 .../textures/blocks/fluids/fluid.wolframium.png | Bin .../blocks/fluids/fluid.wolframium.png.mcmeta | 0 .../textures/blocks/iconsets/ARROW_DOWN.png | Bin .../textures/blocks/iconsets/ARROW_LEFT.png | Bin .../textures/blocks/iconsets/ARROW_RIGHT.png | Bin .../gregtech/textures/blocks/iconsets/ARROW_UP.png | Bin .../blocks/iconsets/AUTOMATION_CHESTBUFFER.png | Bin .../textures/blocks/iconsets/AUTOMATION_FILTER.png | Bin .../blocks/iconsets/AUTOMATION_REGULATOR.png | Bin .../blocks/iconsets/AUTOMATION_SUPERBUFFER.png | Bin .../blocks/iconsets/AUTOMATION_TYPEFILTER.png | Bin .../textures/blocks/iconsets/BASALT_BRICKS.png | Bin .../blocks/iconsets/BASALT_BRICKS_CHISELED.png | Bin .../blocks/iconsets/BASALT_BRICKS_CRACKED.png | Bin .../blocks/iconsets/BASALT_BRICKS_MOSSY.png | Bin .../textures/blocks/iconsets/BASALT_COBBLE.png | Bin .../blocks/iconsets/BASALT_COBBLE_MOSSY.png | Bin .../textures/blocks/iconsets/BASALT_SMOOTH.png | Bin .../textures/blocks/iconsets/BASALT_STONE.png | Bin .../textures/blocks/iconsets/BOILER_FRONT.png | Bin .../blocks/iconsets/BOILER_FRONT_ACTIVE.png | Bin .../blocks/iconsets/BOILER_FRONT_ACTIVE.png.mcmeta | 0 .../textures/blocks/iconsets/BOILER_LAVA_FRONT.png | Bin .../blocks/iconsets/BOILER_LAVA_FRONT_ACTIVE.png | Bin .../iconsets/BOILER_LAVA_FRONT_ACTIVE.png.mcmeta | 0 .../textures/blocks/iconsets/BOILER_SOLAR.png | Bin .../textures/blocks/iconsets/CFOAM_FRESH.png | Bin .../textures/blocks/iconsets/CFOAM_HARDENED.png | Bin .../blocks/iconsets/CONCRETE_DARK_BRICKS.png | Bin .../iconsets/CONCRETE_DARK_BRICKS_CHISELED.png | Bin .../iconsets/CONCRETE_DARK_BRICKS_CRACKED.png | Bin .../blocks/iconsets/CONCRETE_DARK_BRICKS_MOSSY.png | Bin .../blocks/iconsets/CONCRETE_DARK_COBBLE.png | Bin .../blocks/iconsets/CONCRETE_DARK_COBBLE_MOSSY.png | Bin .../blocks/iconsets/CONCRETE_DARK_SMOOTH.png | Bin .../blocks/iconsets/CONCRETE_DARK_STONE.png | Bin .../blocks/iconsets/CONCRETE_LIGHT_BRICKS.png | Bin .../iconsets/CONCRETE_LIGHT_BRICKS_CHISELED.png | Bin .../iconsets/CONCRETE_LIGHT_BRICKS_CRACKED.png | Bin .../blocks/iconsets/CONCRETE_LIGHT_BRICKS_MOSSY.png | Bin .../blocks/iconsets/CONCRETE_LIGHT_COBBLE.png | Bin .../blocks/iconsets/CONCRETE_LIGHT_COBBLE_MOSSY.png | Bin .../blocks/iconsets/CONCRETE_LIGHT_SMOOTH.png | Bin .../blocks/iconsets/CONCRETE_LIGHT_STONE.png | Bin .../textures/blocks/iconsets/COVER_WOOD_PLATE.png | Bin .../blocks/iconsets/DIESEL_GENERATOR_BACK.png | Bin .../iconsets/DIESEL_GENERATOR_BACK_ACTIVE.png | Bin .../blocks/iconsets/DIESEL_GENERATOR_BOTTOM.png | Bin .../iconsets/DIESEL_GENERATOR_BOTTOM_ACTIVE.png | Bin .../blocks/iconsets/DIESEL_GENERATOR_FRONT.png | Bin .../iconsets/DIESEL_GENERATOR_FRONT_ACTIVE.png | Bin .../blocks/iconsets/DIESEL_GENERATOR_SIDE.png | Bin .../iconsets/DIESEL_GENERATOR_SIDE_ACTIVE.png | Bin .../blocks/iconsets/DIESEL_GENERATOR_TOP.png | Bin .../blocks/iconsets/DIESEL_GENERATOR_TOP_ACTIVE.png | Bin .../iconsets/DIESEL_GENERATOR_TOP_ACTIVE.png.mcmeta | 0 .../textures/blocks/iconsets/FUSIONII_1.png | Bin .../textures/blocks/iconsets/FUSIONII_10.png | Bin .../textures/blocks/iconsets/FUSIONII_11.png | Bin .../textures/blocks/iconsets/FUSIONII_12.png | Bin .../textures/blocks/iconsets/FUSIONII_2.png | Bin .../textures/blocks/iconsets/FUSIONII_3.png | Bin .../textures/blocks/iconsets/FUSIONII_4.png | Bin .../textures/blocks/iconsets/FUSIONII_5.png | Bin .../textures/blocks/iconsets/FUSIONII_6.png | Bin .../textures/blocks/iconsets/FUSIONII_7.png | Bin .../textures/blocks/iconsets/FUSIONII_8.png | Bin .../textures/blocks/iconsets/FUSIONII_9.png | Bin .../gregtech/textures/blocks/iconsets/FUSIONI_1.png | Bin .../textures/blocks/iconsets/FUSIONI_10.png | Bin .../textures/blocks/iconsets/FUSIONI_11.png | Bin .../textures/blocks/iconsets/FUSIONI_12.png | Bin .../gregtech/textures/blocks/iconsets/FUSIONI_2.png | Bin .../gregtech/textures/blocks/iconsets/FUSIONI_3.png | Bin .../gregtech/textures/blocks/iconsets/FUSIONI_4.png | Bin .../gregtech/textures/blocks/iconsets/FUSIONI_5.png | Bin .../gregtech/textures/blocks/iconsets/FUSIONI_6.png | Bin .../gregtech/textures/blocks/iconsets/FUSIONI_7.png | Bin .../gregtech/textures/blocks/iconsets/FUSIONI_8.png | Bin .../gregtech/textures/blocks/iconsets/FUSIONI_9.png | Bin .../textures/blocks/iconsets/GAS_TURBINE_BACK.png | Bin .../blocks/iconsets/GAS_TURBINE_BACK_ACTIVE.png | Bin .../textures/blocks/iconsets/GAS_TURBINE_BOTTOM.png | Bin .../blocks/iconsets/GAS_TURBINE_BOTTOM_ACTIVE.png | Bin .../textures/blocks/iconsets/GAS_TURBINE_FRONT.png | Bin .../blocks/iconsets/GAS_TURBINE_FRONT_ACTIVE.png | Bin .../textures/blocks/iconsets/GAS_TURBINE_SIDE.png | Bin .../blocks/iconsets/GAS_TURBINE_SIDE_ACTIVE.png | Bin .../textures/blocks/iconsets/GAS_TURBINE_TOP.png | Bin .../blocks/iconsets/GAS_TURBINE_TOP_ACTIVE.png | Bin .../blocks/iconsets/GRANITE_BLACK_BRICKS.png | Bin .../iconsets/GRANITE_BLACK_BRICKS_CHISELED.png | Bin .../iconsets/GRANITE_BLACK_BRICKS_CRACKED.png | Bin .../blocks/iconsets/GRANITE_BLACK_BRICKS_MOSSY.png | Bin .../blocks/iconsets/GRANITE_BLACK_COBBLE.png | Bin .../blocks/iconsets/GRANITE_BLACK_COBBLE_MOSSY.png | Bin .../blocks/iconsets/GRANITE_BLACK_SMOOTH.png | Bin .../blocks/iconsets/GRANITE_BLACK_STONE.png | Bin .../textures/blocks/iconsets/GRANITE_RED_BRICKS.png | Bin .../blocks/iconsets/GRANITE_RED_BRICKS_CHISELED.png | Bin .../blocks/iconsets/GRANITE_RED_BRICKS_CRACKED.png | Bin .../blocks/iconsets/GRANITE_RED_BRICKS_MOSSY.png | Bin .../textures/blocks/iconsets/GRANITE_RED_COBBLE.png | Bin .../blocks/iconsets/GRANITE_RED_COBBLE_MOSSY.png | Bin .../textures/blocks/iconsets/GRANITE_RED_SMOOTH.png | Bin .../textures/blocks/iconsets/GRANITE_RED_STONE.png | Bin .../textures/blocks/iconsets/INSULATION_FULL.png | Bin .../textures/blocks/iconsets/INSULATION_HUGE.png | Bin .../textures/blocks/iconsets/INSULATION_LARGE.png | Bin .../textures/blocks/iconsets/INSULATION_MEDIUM.png | Bin .../textures/blocks/iconsets/INSULATION_SMALL.png | Bin .../textures/blocks/iconsets/INSULATION_TINY.png | Bin .../textures/blocks/iconsets/LARGETURBINE1.png | Bin .../textures/blocks/iconsets/LARGETURBINE2.png | Bin .../textures/blocks/iconsets/LARGETURBINE3.png | Bin .../textures/blocks/iconsets/LARGETURBINE4.png | Bin .../textures/blocks/iconsets/LARGETURBINE5.png | Bin .../textures/blocks/iconsets/LARGETURBINE6.png | Bin .../textures/blocks/iconsets/LARGETURBINE7.png | Bin .../textures/blocks/iconsets/LARGETURBINE8.png | Bin .../textures/blocks/iconsets/LARGETURBINE9.png | Bin .../blocks/iconsets/LARGETURBINE_ACTIVE1.png | Bin .../blocks/iconsets/LARGETURBINE_ACTIVE1.png.mcmeta | 0 .../blocks/iconsets/LARGETURBINE_ACTIVE2.png | Bin .../blocks/iconsets/LARGETURBINE_ACTIVE2.png.mcmeta | 0 .../blocks/iconsets/LARGETURBINE_ACTIVE3.png | Bin .../blocks/iconsets/LARGETURBINE_ACTIVE3.png.mcmeta | 0 .../blocks/iconsets/LARGETURBINE_ACTIVE4.png | Bin .../blocks/iconsets/LARGETURBINE_ACTIVE4.png.mcmeta | 0 .../blocks/iconsets/LARGETURBINE_ACTIVE5.png | Bin .../blocks/iconsets/LARGETURBINE_ACTIVE5.png.mcmeta | 0 .../blocks/iconsets/LARGETURBINE_ACTIVE6.png | Bin .../blocks/iconsets/LARGETURBINE_ACTIVE6.png.mcmeta | 0 .../blocks/iconsets/LARGETURBINE_ACTIVE7.png | Bin .../blocks/iconsets/LARGETURBINE_ACTIVE7.png.mcmeta | 0 .../blocks/iconsets/LARGETURBINE_ACTIVE8.png | Bin .../blocks/iconsets/LARGETURBINE_ACTIVE8.png.mcmeta | 0 .../blocks/iconsets/LARGETURBINE_ACTIVE9.png | Bin .../blocks/iconsets/LARGETURBINE_ACTIVE9.png.mcmeta | 0 .../textures/blocks/iconsets/MACHINE_8V_BOTTOM.png | Bin .../textures/blocks/iconsets/MACHINE_8V_SIDE.png | Bin .../textures/blocks/iconsets/MACHINE_8V_TOP.png | Bin .../blocks/iconsets/MACHINE_BRONZEBLASTFURNACE.png | Bin .../iconsets/MACHINE_BRONZEBLASTFURNACE_ACTIVE.png | Bin .../blocks/iconsets/MACHINE_BRONZEBRICKS_BOTTOM.png | Bin .../blocks/iconsets/MACHINE_BRONZEBRICKS_SIDE.png | Bin .../blocks/iconsets/MACHINE_BRONZEBRICKS_TOP.png | Bin .../blocks/iconsets/MACHINE_BRONZEPLATEDBRICKS.png | Bin .../blocks/iconsets/MACHINE_BRONZE_BOTTOM.png | Bin .../blocks/iconsets/MACHINE_BRONZE_SIDE.png | Bin .../textures/blocks/iconsets/MACHINE_BRONZE_TOP.png | Bin .../blocks/iconsets/MACHINE_CASING_ACIDHAZARD.png | Bin .../blocks/iconsets/MACHINE_CASING_ASSEMBLER.png | Bin .../blocks/iconsets/MACHINE_CASING_BIOHAZARD.png | Bin .../MACHINE_CASING_CLEAN_STAINLESSSTEEL.png | Bin .../iconsets/MACHINE_CASING_CONTAINMENT_FIELD.png | Bin .../blocks/iconsets/MACHINE_CASING_DATA_DRIVE.png | Bin .../blocks/iconsets/MACHINE_CASING_DRAGONEGG.png | Bin .../iconsets/MACHINE_CASING_EXPLOSIONHAZARD.png | Bin .../iconsets/MACHINE_CASING_FIREBOX_BRONZE.png | Bin .../iconsets/MACHINE_CASING_FIREBOX_STEEL.png | Bin .../iconsets/MACHINE_CASING_FIREBOX_TITANIUM.png | Bin .../MACHINE_CASING_FIREBOX_TUNGSTENSTEEL.png | Bin .../blocks/iconsets/MACHINE_CASING_FIREHAZARD.png | Bin .../blocks/iconsets/MACHINE_CASING_FROSTHAZARD.png | Bin .../blocks/iconsets/MACHINE_CASING_FROST_PROOF.png | Bin .../blocks/iconsets/MACHINE_CASING_FUSION.png | Bin .../blocks/iconsets/MACHINE_CASING_FUSION_2.png | Bin .../blocks/iconsets/MACHINE_CASING_FUSION_COIL.png | Bin .../blocks/iconsets/MACHINE_CASING_FUSION_GLASS.png | Bin .../iconsets/MACHINE_CASING_FUSION_GLASS_YELLOW.png | Bin .../iconsets/MACHINE_CASING_GEARBOX_BRONZE.png | Bin .../iconsets/MACHINE_CASING_GEARBOX_STEEL.png | Bin .../iconsets/MACHINE_CASING_GEARBOX_TITANIUM.png | Bin .../MACHINE_CASING_GEARBOX_TUNGSTENSTEEL.png | Bin .../blocks/iconsets/MACHINE_CASING_GRATE.png | Bin .../blocks/iconsets/MACHINE_CASING_MAGIC.png | Bin .../blocks/iconsets/MACHINE_CASING_MAGICHAZARD.png | Bin .../blocks/iconsets/MACHINE_CASING_MAGIC_ACTIVE.png | Bin .../blocks/iconsets/MACHINE_CASING_MAGIC_FRONT.png | Bin .../iconsets/MACHINE_CASING_MAGIC_FRONT_ACTIVE.png | Bin .../blocks/iconsets/MACHINE_CASING_MOTOR.png | Bin .../blocks/iconsets/MACHINE_CASING_NOISEHAZARD.png | Bin .../blocks/iconsets/MACHINE_CASING_PIPE_BRONZE.png | Bin .../blocks/iconsets/MACHINE_CASING_PIPE_STEEL.png | Bin .../iconsets/MACHINE_CASING_PIPE_TITANIUM.png | Bin .../iconsets/MACHINE_CASING_PIPE_TUNGSTENSTEEL.png | Bin .../blocks/iconsets/MACHINE_CASING_PROCESSOR.png | Bin .../blocks/iconsets/MACHINE_CASING_PUMP.png | Bin .../iconsets/MACHINE_CASING_RADIATIONPROOF.png | Bin .../iconsets/MACHINE_CASING_RADIOACTIVEHAZARD.png | Bin .../MACHINE_CASING_ROBUST_TUNGSTENSTEEL.png | Bin .../blocks/iconsets/MACHINE_CASING_SOLID_STEEL.png | Bin .../iconsets/MACHINE_CASING_STABLE_TITANIUM.png | Bin .../blocks/iconsets/MACHINE_CASING_STRIPES_A.png | Bin .../blocks/iconsets/MACHINE_CASING_STRIPES_B.png | Bin .../blocks/iconsets/MACHINE_CASING_TURBINE.png | Bin .../blocks/iconsets/MACHINE_CASING_VENT.png | Bin .../blocks/iconsets/MACHINE_COIL_CUPRONICKEL.png | Bin .../blocks/iconsets/MACHINE_COIL_KANTHAL.png | Bin .../blocks/iconsets/MACHINE_COIL_NICHROME.png | Bin .../blocks/iconsets/MACHINE_COIL_SUPERCONDUCTOR.png | Bin .../textures/blocks/iconsets/MACHINE_EV_BOTTOM.png | Bin .../textures/blocks/iconsets/MACHINE_EV_SIDE.png | Bin .../textures/blocks/iconsets/MACHINE_EV_TOP.png | Bin .../blocks/iconsets/MACHINE_HEATPROOFCASING.png | Bin .../textures/blocks/iconsets/MACHINE_HV_BOTTOM.png | Bin .../textures/blocks/iconsets/MACHINE_HV_SIDE.png | Bin .../textures/blocks/iconsets/MACHINE_HV_TOP.png | Bin .../textures/blocks/iconsets/MACHINE_IV_BOTTOM.png | Bin .../textures/blocks/iconsets/MACHINE_IV_SIDE.png | Bin .../textures/blocks/iconsets/MACHINE_IV_TOP.png | Bin .../textures/blocks/iconsets/MACHINE_LV_BOTTOM.png | Bin .../textures/blocks/iconsets/MACHINE_LV_SIDE.png | Bin .../textures/blocks/iconsets/MACHINE_LV_TOP.png | Bin .../textures/blocks/iconsets/MACHINE_LuV_BOTTOM.png | Bin .../textures/blocks/iconsets/MACHINE_LuV_SIDE.png | Bin .../textures/blocks/iconsets/MACHINE_LuV_TOP.png | Bin .../textures/blocks/iconsets/MACHINE_MAX_BOTTOM.png | Bin .../textures/blocks/iconsets/MACHINE_MAX_SIDE.png | Bin .../textures/blocks/iconsets/MACHINE_MAX_TOP.png | Bin .../textures/blocks/iconsets/MACHINE_MV_BOTTOM.png | Bin .../textures/blocks/iconsets/MACHINE_MV_SIDE.png | Bin .../textures/blocks/iconsets/MACHINE_MV_TOP.png | Bin .../blocks/iconsets/MACHINE_STEELBRICKS_BOTTOM.png | Bin .../blocks/iconsets/MACHINE_STEELBRICKS_SIDE.png | Bin .../blocks/iconsets/MACHINE_STEELBRICKS_TOP.png | Bin .../blocks/iconsets/MACHINE_STEEL_BOTTOM.png | Bin .../textures/blocks/iconsets/MACHINE_STEEL_SIDE.png | Bin .../textures/blocks/iconsets/MACHINE_STEEL_TOP.png | Bin .../textures/blocks/iconsets/MACHINE_UV_BOTTOM.png | Bin .../textures/blocks/iconsets/MACHINE_UV_SIDE.png | Bin .../textures/blocks/iconsets/MACHINE_UV_TOP.png | Bin .../textures/blocks/iconsets/MACHINE_ZPM_BOTTOM.png | Bin .../textures/blocks/iconsets/MACHINE_ZPM_SIDE.png | Bin .../textures/blocks/iconsets/MACHINE_ZPM_TOP.png | Bin .../textures/blocks/iconsets/MARBLE_BRICKS.png | Bin .../blocks/iconsets/MARBLE_BRICKS_CHISELED.png | Bin .../blocks/iconsets/MARBLE_BRICKS_CRACKED.png | Bin .../blocks/iconsets/MARBLE_BRICKS_MOSSY.png | Bin .../textures/blocks/iconsets/MARBLE_COBBLE.png | Bin .../blocks/iconsets/MARBLE_COBBLE_MOSSY.png | Bin .../textures/blocks/iconsets/MARBLE_SMOOTH.png | Bin .../textures/blocks/iconsets/MARBLE_STONE.png | Bin .../blocks/iconsets/NAQUADAH_REACTOR_FLUID_BACK.png | Bin .../iconsets/NAQUADAH_REACTOR_FLUID_BACK_ACTIVE.png | Bin .../iconsets/NAQUADAH_REACTOR_FLUID_BOTTOM.png | Bin .../NAQUADAH_REACTOR_FLUID_BOTTOM_ACTIVE.png | Bin .../iconsets/NAQUADAH_REACTOR_FLUID_FRONT.png | Bin .../NAQUADAH_REACTOR_FLUID_FRONT_ACTIVE.png | Bin .../blocks/iconsets/NAQUADAH_REACTOR_FLUID_SIDE.png | Bin .../iconsets/NAQUADAH_REACTOR_FLUID_SIDE_ACTIVE.png | Bin .../blocks/iconsets/NAQUADAH_REACTOR_FLUID_TOP.png | Bin .../iconsets/NAQUADAH_REACTOR_FLUID_TOP_ACTIVE.png | Bin .../blocks/iconsets/NAQUADAH_REACTOR_SOLID_BACK.png | Bin .../iconsets/NAQUADAH_REACTOR_SOLID_BACK_ACTIVE.png | Bin .../iconsets/NAQUADAH_REACTOR_SOLID_BOTTOM.png | Bin .../NAQUADAH_REACTOR_SOLID_BOTTOM_ACTIVE.png | Bin .../iconsets/NAQUADAH_REACTOR_SOLID_FRONT.png | Bin .../NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE.png | Bin .../blocks/iconsets/NAQUADAH_REACTOR_SOLID_SIDE.png | Bin .../iconsets/NAQUADAH_REACTOR_SOLID_SIDE_ACTIVE.png | Bin .../blocks/iconsets/NAQUADAH_REACTOR_SOLID_TOP.png | Bin .../iconsets/NAQUADAH_REACTOR_SOLID_TOP_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_ACTIVITYDETECTOR.png | Bin .../textures/blocks/iconsets/OVERLAY_ADV_PUMP.png | Bin .../textures/blocks/iconsets/OVERLAY_ARM.png | Bin .../textures/blocks/iconsets/OVERLAY_ARM.png.mcmeta | 0 .../blocks/iconsets/OVERLAY_BOTTOM_BOXINATOR.png | Bin .../iconsets/OVERLAY_BOTTOM_BOXINATOR_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_BOTTOM_DISASSEMBLER.png | Bin .../iconsets/OVERLAY_BOTTOM_DISASSEMBLER_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_BOTTOM_MASSFAB.png | Bin .../iconsets/OVERLAY_BOTTOM_MASSFAB_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_BOTTOM_POTIONBREWER.png | Bin .../iconsets/OVERLAY_BOTTOM_POTIONBREWER_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_BOTTOM_REPLICATOR.png | Bin .../iconsets/OVERLAY_BOTTOM_REPLICATOR_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_BOTTOM_ROCK_BREAKER.png | Bin .../iconsets/OVERLAY_BOTTOM_ROCK_BREAKER_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_BOTTOM_SCANNER.png | Bin .../iconsets/OVERLAY_BOTTOM_SCANNER_ACTIVE.png | Bin .../iconsets/OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER.png | Bin .../OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER_ACTIVE.png | Bin .../iconsets/OVERLAY_BOTTOM_STEAM_COMPRESSOR.png | Bin .../OVERLAY_BOTTOM_STEAM_COMPRESSOR_ACTIVE.png | Bin .../iconsets/OVERLAY_BOTTOM_STEAM_EXTRACTOR.png | Bin .../OVERLAY_BOTTOM_STEAM_EXTRACTOR_ACTIVE.png | Bin .../iconsets/OVERLAY_BOTTOM_STEAM_FURNACE.png | Bin .../OVERLAY_BOTTOM_STEAM_FURNACE_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_BOTTOM_STEAM_HAMMER.png | Bin .../iconsets/OVERLAY_BOTTOM_STEAM_HAMMER_ACTIVE.png | Bin .../iconsets/OVERLAY_BOTTOM_STEAM_MACERATOR.png | Bin .../OVERLAY_BOTTOM_STEAM_MACERATOR_ACTIVE.png | Bin .../textures/blocks/iconsets/OVERLAY_CLOSET.png | Bin .../textures/blocks/iconsets/OVERLAY_CONTROLLER.png | Bin .../textures/blocks/iconsets/OVERLAY_CONVEYOR.png | Bin .../blocks/iconsets/OVERLAY_CONVEYOR.png.mcmeta | 0 .../textures/blocks/iconsets/OVERLAY_CRAFTING.png | Bin .../textures/blocks/iconsets/OVERLAY_DRAIN.png | Bin .../textures/blocks/iconsets/OVERLAY_DUCTTAPE.png | Bin .../blocks/iconsets/OVERLAY_ENERGYDETECTOR.png | Bin .../textures/blocks/iconsets/OVERLAY_ENERGY_IN.png | Bin .../blocks/iconsets/OVERLAY_ENERGY_IN_MULTI.png | Bin .../textures/blocks/iconsets/OVERLAY_ENERGY_OUT.png | Bin .../blocks/iconsets/OVERLAY_ENERGY_OUT_MULTI.png | Bin .../blocks/iconsets/OVERLAY_FLUIDDETECTOR.png | Bin .../blocks/iconsets/OVERLAY_FRONT_BOXINATOR.png | Bin .../iconsets/OVERLAY_FRONT_BOXINATOR_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_FRONT_DISASSEMBLER.png | Bin .../iconsets/OVERLAY_FRONT_DISASSEMBLER_ACTIVE.png | Bin .../OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE.png | Bin .../OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE.png | Bin .../iconsets/OVERLAY_FRONT_IMPLOSION_COMPRESSOR.png | Bin .../OVERLAY_FRONT_IMPLOSION_COMPRESSOR_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_FRONT_LARGE_BOILER.png | Bin .../iconsets/OVERLAY_FRONT_LARGE_BOILER_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_FRONT_MASSFAB.png | Bin .../iconsets/OVERLAY_FRONT_MASSFAB_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_FRONT_MULTI_SMELTER.png | Bin .../iconsets/OVERLAY_FRONT_MULTI_SMELTER_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_FRONT_POTIONBREWER.png | Bin .../iconsets/OVERLAY_FRONT_POTIONBREWER_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_FRONT_REPLICATOR.png | Bin .../iconsets/OVERLAY_FRONT_REPLICATOR_ACTIVE.png | Bin .../OVERLAY_FRONT_REPLICATOR_ACTIVE.png.mcmeta | 0 .../blocks/iconsets/OVERLAY_FRONT_ROCK_BREAKER.png | Bin .../iconsets/OVERLAY_FRONT_ROCK_BREAKER_ACTIVE.png | Bin .../OVERLAY_FRONT_ROCK_BREAKER_ACTIVE.png.mcmeta | 0 .../blocks/iconsets/OVERLAY_FRONT_SCANNER.png | Bin .../iconsets/OVERLAY_FRONT_SCANNER_ACTIVE.png | Bin .../iconsets/OVERLAY_FRONT_STEAM_ALLOY_SMELTER.png | Bin .../OVERLAY_FRONT_STEAM_ALLOY_SMELTER_ACTIVE.png | Bin .../iconsets/OVERLAY_FRONT_STEAM_COMPRESSOR.png | Bin .../OVERLAY_FRONT_STEAM_COMPRESSOR_ACTIVE.png | Bin .../iconsets/OVERLAY_FRONT_STEAM_EXTRACTOR.png | Bin .../OVERLAY_FRONT_STEAM_EXTRACTOR_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_FRONT_STEAM_FURNACE.png | Bin .../iconsets/OVERLAY_FRONT_STEAM_FURNACE_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_FRONT_STEAM_HAMMER.png | Bin .../iconsets/OVERLAY_FRONT_STEAM_HAMMER_ACTIVE.png | Bin .../iconsets/OVERLAY_FRONT_STEAM_MACERATOR.png | Bin .../OVERLAY_FRONT_STEAM_MACERATOR_ACTIVE.png | Bin .../iconsets/OVERLAY_FRONT_VACUUM_FREEZER.png | Bin .../OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE.png | Bin .../textures/blocks/iconsets/OVERLAY_FUSION1.png | Bin .../blocks/iconsets/OVERLAY_FUSION1.png.mcmeta | 0 .../textures/blocks/iconsets/OVERLAY_FUSION2.png | Bin .../blocks/iconsets/OVERLAY_FUSION2.png.mcmeta | 0 .../textures/blocks/iconsets/OVERLAY_FUSION3.png | Bin .../blocks/iconsets/OVERLAY_FUSION3.png.mcmeta | 0 .../blocks/iconsets/OVERLAY_ITEMDETECTOR.png | Bin .../textures/blocks/iconsets/OVERLAY_LENS.png | Bin .../textures/blocks/iconsets/OVERLAY_LOCKER.png | Bin .../textures/blocks/iconsets/OVERLAY_LOCKER_000.png | Bin .../textures/blocks/iconsets/OVERLAY_LOCKER_001.png | Bin .../textures/blocks/iconsets/OVERLAY_LOCKER_002.png | Bin .../textures/blocks/iconsets/OVERLAY_LOCKER_003.png | Bin .../textures/blocks/iconsets/OVERLAY_LOCKER_004.png | Bin .../textures/blocks/iconsets/OVERLAY_LOCKER_005.png | Bin .../textures/blocks/iconsets/OVERLAY_LOCKER_006.png | Bin .../textures/blocks/iconsets/OVERLAY_LOCKER_007.png | Bin .../textures/blocks/iconsets/OVERLAY_LOCKER_008.png | Bin .../textures/blocks/iconsets/OVERLAY_LOCKER_009.png | Bin .../textures/blocks/iconsets/OVERLAY_LOCKER_010.png | Bin .../textures/blocks/iconsets/OVERLAY_LOCKER_011.png | Bin .../textures/blocks/iconsets/OVERLAY_LOCKER_012.png | Bin .../textures/blocks/iconsets/OVERLAY_LOCKER_013.png | Bin .../blocks/iconsets/OVERLAY_MAINTENANCE.png | Bin .../textures/blocks/iconsets/OVERLAY_MUFFLER.png | Bin .../textures/blocks/iconsets/OVERLAY_PIPE.png | Bin .../textures/blocks/iconsets/OVERLAY_PIPE_IN.png | Bin .../textures/blocks/iconsets/OVERLAY_PIPE_OUT.png | Bin .../textures/blocks/iconsets/OVERLAY_PUMP.png | Bin .../blocks/iconsets/OVERLAY_PUMP.png.mcmeta | 0 .../textures/blocks/iconsets/OVERLAY_QCHEST.png | Bin .../blocks/iconsets/OVERLAY_QCHEST.png.mcmeta | 0 .../textures/blocks/iconsets/OVERLAY_QTANK.png | Bin .../blocks/iconsets/OVERLAY_QTANK.png.mcmeta | 0 .../textures/blocks/iconsets/OVERLAY_SCREEN.png | Bin .../blocks/iconsets/OVERLAY_SCREEN.png.mcmeta | 0 .../textures/blocks/iconsets/OVERLAY_SHUTTER.png | Bin .../blocks/iconsets/OVERLAY_SIDE_BOXINATOR.png | Bin .../iconsets/OVERLAY_SIDE_BOXINATOR_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_SIDE_DISASSEMBLER.png | Bin .../iconsets/OVERLAY_SIDE_DISASSEMBLER_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_SIDE_MASSFAB.png | Bin .../blocks/iconsets/OVERLAY_SIDE_MASSFAB_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_SIDE_POTIONBREWER.png | Bin .../iconsets/OVERLAY_SIDE_POTIONBREWER_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_SIDE_REPLICATOR.png | Bin .../iconsets/OVERLAY_SIDE_REPLICATOR_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_SIDE_ROCK_BREAKER.png | Bin .../iconsets/OVERLAY_SIDE_ROCK_BREAKER_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_SIDE_SCANNER.png | Bin .../blocks/iconsets/OVERLAY_SIDE_SCANNER_ACTIVE.png | Bin .../iconsets/OVERLAY_SIDE_STEAM_ALLOY_SMELTER.png | Bin .../OVERLAY_SIDE_STEAM_ALLOY_SMELTER_ACTIVE.png | Bin .../iconsets/OVERLAY_SIDE_STEAM_COMPRESSOR.png | Bin .../OVERLAY_SIDE_STEAM_COMPRESSOR_ACTIVE.png | Bin .../iconsets/OVERLAY_SIDE_STEAM_EXTRACTOR.png | Bin .../OVERLAY_SIDE_STEAM_EXTRACTOR_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_SIDE_STEAM_FURNACE.png | Bin .../iconsets/OVERLAY_SIDE_STEAM_FURNACE_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_SIDE_STEAM_HAMMER.png | Bin .../iconsets/OVERLAY_SIDE_STEAM_HAMMER_ACTIVE.png | Bin .../iconsets/OVERLAY_SIDE_STEAM_MACERATOR.png | Bin .../OVERLAY_SIDE_STEAM_MACERATOR_ACTIVE.png | Bin .../textures/blocks/iconsets/OVERLAY_TELEPORTER.png | Bin .../blocks/iconsets/OVERLAY_TELEPORTER_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_TOP_BOXINATOR.png | Bin .../iconsets/OVERLAY_TOP_BOXINATOR_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_TOP_DISASSEMBLER.png | Bin .../iconsets/OVERLAY_TOP_DISASSEMBLER_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_TOP_MASSFAB.png | Bin .../blocks/iconsets/OVERLAY_TOP_MASSFAB_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_TOP_POTIONBREWER.png | Bin .../iconsets/OVERLAY_TOP_POTIONBREWER_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_TOP_REPLICATOR.png | Bin .../iconsets/OVERLAY_TOP_REPLICATOR_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_TOP_ROCK_BREAKER.png | Bin .../iconsets/OVERLAY_TOP_ROCK_BREAKER_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_TOP_SCANNER.png | Bin .../blocks/iconsets/OVERLAY_TOP_SCANNER_ACTIVE.png | Bin .../iconsets/OVERLAY_TOP_STEAM_ALLOY_SMELTER.png | Bin .../OVERLAY_TOP_STEAM_ALLOY_SMELTER_ACTIVE.png | Bin .../iconsets/OVERLAY_TOP_STEAM_COMPRESSOR.png | Bin .../OVERLAY_TOP_STEAM_COMPRESSOR_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_TOP_STEAM_EXTRACTOR.png | Bin .../iconsets/OVERLAY_TOP_STEAM_EXTRACTOR_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_TOP_STEAM_FURNACE.png | Bin .../iconsets/OVERLAY_TOP_STEAM_FURNACE_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_TOP_STEAM_HAMMER.png | Bin .../iconsets/OVERLAY_TOP_STEAM_HAMMER_ACTIVE.png | Bin .../blocks/iconsets/OVERLAY_TOP_STEAM_MACERATOR.png | Bin .../iconsets/OVERLAY_TOP_STEAM_MACERATOR_ACTIVE.png | Bin .../OVERLAY_TOP_STEAM_MACERATOR_ACTIVE.png.mcmeta | 0 .../textures/blocks/iconsets/PIPE_RESTRICTOR.png | Bin .../textures/blocks/iconsets/RENDERING_ERROR.png | Bin .../textures/blocks/iconsets/SOLARPANEL.png | Bin .../textures/blocks/iconsets/SOLARPANEL_8V.png | Bin .../textures/blocks/iconsets/SOLARPANEL_EV.png | Bin .../textures/blocks/iconsets/SOLARPANEL_HV.png | Bin .../textures/blocks/iconsets/SOLARPANEL_IV.png | Bin .../textures/blocks/iconsets/SOLARPANEL_LV.png | Bin .../textures/blocks/iconsets/SOLARPANEL_LuV.png | Bin .../textures/blocks/iconsets/SOLARPANEL_MV.png | Bin .../textures/blocks/iconsets/SOLARPANEL_UV.png | Bin .../textures/blocks/iconsets/SOLARPANEL_ZPM.png | Bin .../textures/blocks/iconsets/STEAM_TURBINE_BACK.png | Bin .../blocks/iconsets/STEAM_TURBINE_BACK_ACTIVE.png | Bin .../blocks/iconsets/STEAM_TURBINE_BOTTOM.png | Bin .../blocks/iconsets/STEAM_TURBINE_BOTTOM_ACTIVE.png | Bin .../blocks/iconsets/STEAM_TURBINE_FRONT.png | Bin .../blocks/iconsets/STEAM_TURBINE_FRONT_ACTIVE.png | Bin .../textures/blocks/iconsets/STEAM_TURBINE_SIDE.png | Bin .../blocks/iconsets/STEAM_TURBINE_SIDE_ACTIVE.png | Bin .../textures/blocks/iconsets/STEAM_TURBINE_TOP.png | Bin .../blocks/iconsets/STEAM_TURBINE_TOP_ACTIVE.png | Bin .../textures/blocks/iconsets/VENT_ADVANCED.png | Bin .../blocks/iconsets/VENT_ADVANCED.png.mcmeta | 0 .../textures/blocks/iconsets/VENT_NORMAL.png | Bin .../textures/blocks/iconsets/VENT_NORMAL.png.mcmeta | 0 .../gregtech/textures/blocks/iconsets/VOID.png | Bin .../blocks/materialicons/DIAMOND/block1.png | Bin .../blocks/materialicons/DIAMOND/block2.png | Bin .../blocks/materialicons/DIAMOND/block3.png | Bin .../blocks/materialicons/DIAMOND/block4.png | Bin .../blocks/materialicons/DIAMOND/block5.png | Bin .../blocks/materialicons/DIAMOND/block6.png | Bin .../textures/blocks/materialicons/DIAMOND/foil.png | Bin .../blocks/materialicons/DIAMOND/frameGt.png | Bin .../textures/blocks/materialicons/DIAMOND/ore.png | Bin .../blocks/materialicons/DIAMOND/oreSmall.png | Bin .../blocks/materialicons/DIAMOND/pipeHuge.png | Bin .../blocks/materialicons/DIAMOND/pipeLarge.png | Bin .../blocks/materialicons/DIAMOND/pipeMedium.png | Bin .../blocks/materialicons/DIAMOND/pipeSide.png | Bin .../blocks/materialicons/DIAMOND/pipeSmall.png | Bin .../blocks/materialicons/DIAMOND/pipeTiny.png | Bin .../textures/blocks/materialicons/DIAMOND/void.png | Bin .../textures/blocks/materialicons/DIAMOND/wire.png | Bin .../textures/blocks/materialicons/DULL/block1.png | Bin .../textures/blocks/materialicons/DULL/block2.png | Bin .../textures/blocks/materialicons/DULL/block3.png | Bin .../textures/blocks/materialicons/DULL/block4.png | Bin .../textures/blocks/materialicons/DULL/block5.png | Bin .../textures/blocks/materialicons/DULL/block6.png | Bin .../textures/blocks/materialicons/DULL/foil.png | Bin .../textures/blocks/materialicons/DULL/frameGt.png | Bin .../textures/blocks/materialicons/DULL/ore.png | Bin .../textures/blocks/materialicons/DULL/oreSmall.png | Bin .../textures/blocks/materialicons/DULL/pipeHuge.png | Bin .../blocks/materialicons/DULL/pipeLarge.png | Bin .../blocks/materialicons/DULL/pipeMedium.png | Bin .../textures/blocks/materialicons/DULL/pipeSide.png | Bin .../blocks/materialicons/DULL/pipeSmall.png | Bin .../textures/blocks/materialicons/DULL/pipeTiny.png | Bin .../textures/blocks/materialicons/DULL/void.png | Bin .../textures/blocks/materialicons/DULL/wire.png | Bin .../blocks/materialicons/EMERALD/block1.png | Bin .../blocks/materialicons/EMERALD/block2.png | Bin .../blocks/materialicons/EMERALD/block3.png | Bin .../blocks/materialicons/EMERALD/block4.png | Bin .../blocks/materialicons/EMERALD/block5.png | Bin .../blocks/materialicons/EMERALD/block6.png | Bin .../textures/blocks/materialicons/EMERALD/foil.png | Bin .../blocks/materialicons/EMERALD/frameGt.png | Bin .../textures/blocks/materialicons/EMERALD/ore.png | Bin .../blocks/materialicons/EMERALD/oreSmall.png | Bin .../blocks/materialicons/EMERALD/pipeHuge.png | Bin .../blocks/materialicons/EMERALD/pipeLarge.png | Bin .../blocks/materialicons/EMERALD/pipeMedium.png | Bin .../blocks/materialicons/EMERALD/pipeSide.png | Bin .../blocks/materialicons/EMERALD/pipeSmall.png | Bin .../blocks/materialicons/EMERALD/pipeTiny.png | Bin .../textures/blocks/materialicons/EMERALD/void.png | Bin .../textures/blocks/materialicons/EMERALD/wire.png | Bin .../textures/blocks/materialicons/FIERY/block1.png | Bin .../textures/blocks/materialicons/FIERY/block2.png | Bin .../textures/blocks/materialicons/FIERY/block3.png | Bin .../textures/blocks/materialicons/FIERY/block4.png | Bin .../textures/blocks/materialicons/FIERY/block5.png | Bin .../textures/blocks/materialicons/FIERY/block6.png | Bin .../textures/blocks/materialicons/FIERY/foil.png | Bin .../textures/blocks/materialicons/FIERY/frameGt.png | Bin .../textures/blocks/materialicons/FIERY/ore.png | Bin .../blocks/materialicons/FIERY/oreSmall.png | Bin .../blocks/materialicons/FIERY/pipeHuge.png | Bin .../blocks/materialicons/FIERY/pipeLarge.png | Bin .../blocks/materialicons/FIERY/pipeMedium.png | Bin .../blocks/materialicons/FIERY/pipeSide.png | Bin .../blocks/materialicons/FIERY/pipeSmall.png | Bin .../blocks/materialicons/FIERY/pipeTiny.png | Bin .../textures/blocks/materialicons/FIERY/void.png | Bin .../textures/blocks/materialicons/FIERY/wire.png | Bin .../textures/blocks/materialicons/FINE/block1.png | Bin .../textures/blocks/materialicons/FINE/block2.png | Bin .../textures/blocks/materialicons/FINE/block3.png | Bin .../textures/blocks/materialicons/FINE/block4.png | Bin .../textures/blocks/materialicons/FINE/block5.png | Bin .../textures/blocks/materialicons/FINE/block6.png | Bin .../textures/blocks/materialicons/FINE/foil.png | Bin .../textures/blocks/materialicons/FINE/frameGt.png | Bin .../textures/blocks/materialicons/FINE/ore.png | Bin .../textures/blocks/materialicons/FINE/oreSmall.png | Bin .../textures/blocks/materialicons/FINE/pipeHuge.png | Bin .../blocks/materialicons/FINE/pipeLarge.png | Bin .../blocks/materialicons/FINE/pipeMedium.png | Bin .../textures/blocks/materialicons/FINE/pipeSide.png | Bin .../blocks/materialicons/FINE/pipeSmall.png | Bin .../textures/blocks/materialicons/FINE/pipeTiny.png | Bin .../textures/blocks/materialicons/FINE/void.png | Bin .../textures/blocks/materialicons/FINE/wire.png | Bin .../textures/blocks/materialicons/FLINT/block1.png | Bin .../textures/blocks/materialicons/FLINT/block2.png | Bin .../textures/blocks/materialicons/FLINT/block3.png | Bin .../textures/blocks/materialicons/FLINT/block4.png | Bin .../textures/blocks/materialicons/FLINT/block5.png | Bin .../textures/blocks/materialicons/FLINT/block6.png | Bin .../textures/blocks/materialicons/FLINT/foil.png | Bin .../textures/blocks/materialicons/FLINT/frameGt.png | Bin .../textures/blocks/materialicons/FLINT/ore.png | Bin .../blocks/materialicons/FLINT/oreSmall.png | Bin .../blocks/materialicons/FLINT/pipeHuge.png | Bin .../blocks/materialicons/FLINT/pipeLarge.png | Bin .../blocks/materialicons/FLINT/pipeMedium.png | Bin .../blocks/materialicons/FLINT/pipeSide.png | Bin .../blocks/materialicons/FLINT/pipeSmall.png | Bin .../blocks/materialicons/FLINT/pipeTiny.png | Bin .../textures/blocks/materialicons/FLINT/void.png | Bin .../textures/blocks/materialicons/FLINT/wire.png | Bin .../textures/blocks/materialicons/FLUID/block1.png | Bin .../textures/blocks/materialicons/FLUID/block2.png | Bin .../textures/blocks/materialicons/FLUID/block3.png | Bin .../textures/blocks/materialicons/FLUID/block4.png | Bin .../textures/blocks/materialicons/FLUID/block5.png | Bin .../textures/blocks/materialicons/FLUID/block6.png | Bin .../textures/blocks/materialicons/FLUID/foil.png | Bin .../textures/blocks/materialicons/FLUID/frameGt.png | Bin .../textures/blocks/materialicons/FLUID/ore.png | Bin .../blocks/materialicons/FLUID/oreSmall.png | Bin .../blocks/materialicons/FLUID/pipeHuge.png | Bin .../blocks/materialicons/FLUID/pipeLarge.png | Bin .../blocks/materialicons/FLUID/pipeMedium.png | Bin .../blocks/materialicons/FLUID/pipeSide.png | Bin .../blocks/materialicons/FLUID/pipeSmall.png | Bin .../blocks/materialicons/FLUID/pipeTiny.png | Bin .../textures/blocks/materialicons/FLUID/void.png | Bin .../textures/blocks/materialicons/FLUID/wire.png | Bin .../blocks/materialicons/GEM_HORIZONTAL/block1.png | Bin .../blocks/materialicons/GEM_HORIZONTAL/block2.png | Bin .../blocks/materialicons/GEM_HORIZONTAL/block3.png | Bin .../blocks/materialicons/GEM_HORIZONTAL/block4.png | Bin .../blocks/materialicons/GEM_HORIZONTAL/block5.png | Bin .../blocks/materialicons/GEM_HORIZONTAL/block6.png | Bin .../blocks/materialicons/GEM_HORIZONTAL/foil.png | Bin .../blocks/materialicons/GEM_HORIZONTAL/frameGt.png | Bin .../blocks/materialicons/GEM_HORIZONTAL/ore.png | Bin .../materialicons/GEM_HORIZONTAL/oreSmall.png | Bin .../materialicons/GEM_HORIZONTAL/pipeHuge.png | Bin .../materialicons/GEM_HORIZONTAL/pipeLarge.png | Bin .../materialicons/GEM_HORIZONTAL/pipeMedium.png | Bin .../materialicons/GEM_HORIZONTAL/pipeSide.png | Bin .../materialicons/GEM_HORIZONTAL/pipeSmall.png | Bin .../materialicons/GEM_HORIZONTAL/pipeTiny.png | Bin .../blocks/materialicons/GEM_HORIZONTAL/void.png | Bin .../blocks/materialicons/GEM_HORIZONTAL/wire.png | Bin .../blocks/materialicons/GEM_VERTICAL/block1.png | Bin .../blocks/materialicons/GEM_VERTICAL/block2.png | Bin .../blocks/materialicons/GEM_VERTICAL/block3.png | Bin .../blocks/materialicons/GEM_VERTICAL/block4.png | Bin .../blocks/materialicons/GEM_VERTICAL/block5.png | Bin .../blocks/materialicons/GEM_VERTICAL/block6.png | Bin .../blocks/materialicons/GEM_VERTICAL/foil.png | Bin .../blocks/materialicons/GEM_VERTICAL/frameGt.png | Bin .../blocks/materialicons/GEM_VERTICAL/ore.png | Bin .../blocks/materialicons/GEM_VERTICAL/oreSmall.png | Bin .../blocks/materialicons/GEM_VERTICAL/pipeHuge.png | Bin .../blocks/materialicons/GEM_VERTICAL/pipeLarge.png | Bin .../materialicons/GEM_VERTICAL/pipeMedium.png | Bin .../blocks/materialicons/GEM_VERTICAL/pipeSide.png | Bin .../blocks/materialicons/GEM_VERTICAL/pipeSmall.png | Bin .../blocks/materialicons/GEM_VERTICAL/pipeTiny.png | Bin .../blocks/materialicons/GEM_VERTICAL/void.png | Bin .../blocks/materialicons/GEM_VERTICAL/wire.png | Bin .../textures/blocks/materialicons/GLASS/block1.png | Bin .../textures/blocks/materialicons/GLASS/block2.png | Bin .../textures/blocks/materialicons/GLASS/block3.png | Bin .../textures/blocks/materialicons/GLASS/block4.png | Bin .../textures/blocks/materialicons/GLASS/block5.png | Bin .../textures/blocks/materialicons/GLASS/block6.png | Bin .../textures/blocks/materialicons/GLASS/foil.png | Bin .../textures/blocks/materialicons/GLASS/frameGt.png | Bin .../textures/blocks/materialicons/GLASS/ore.png | Bin .../blocks/materialicons/GLASS/oreSmall.png | Bin .../blocks/materialicons/GLASS/pipeHuge.png | Bin .../blocks/materialicons/GLASS/pipeLarge.png | Bin .../blocks/materialicons/GLASS/pipeMedium.png | Bin .../blocks/materialicons/GLASS/pipeSide.png | Bin .../blocks/materialicons/GLASS/pipeSmall.png | Bin .../blocks/materialicons/GLASS/pipeTiny.png | Bin .../textures/blocks/materialicons/GLASS/void.png | Bin .../textures/blocks/materialicons/GLASS/wire.png | Bin .../textures/blocks/materialicons/LAPIS/block1.png | Bin .../textures/blocks/materialicons/LAPIS/block2.png | Bin .../textures/blocks/materialicons/LAPIS/block3.png | Bin .../textures/blocks/materialicons/LAPIS/block4.png | Bin .../textures/blocks/materialicons/LAPIS/block5.png | Bin .../textures/blocks/materialicons/LAPIS/block6.png | Bin .../textures/blocks/materialicons/LAPIS/foil.png | Bin .../textures/blocks/materialicons/LAPIS/frameGt.png | Bin .../textures/blocks/materialicons/LAPIS/ore.png | Bin .../blocks/materialicons/LAPIS/oreSmall.png | Bin .../blocks/materialicons/LAPIS/pipeHuge.png | Bin .../blocks/materialicons/LAPIS/pipeLarge.png | Bin .../blocks/materialicons/LAPIS/pipeMedium.png | Bin .../blocks/materialicons/LAPIS/pipeSide.png | Bin .../blocks/materialicons/LAPIS/pipeSmall.png | Bin .../blocks/materialicons/LAPIS/pipeTiny.png | Bin .../textures/blocks/materialicons/LAPIS/void.png | Bin .../textures/blocks/materialicons/LAPIS/wire.png | Bin .../textures/blocks/materialicons/LEAF/block1.png | Bin .../textures/blocks/materialicons/LEAF/block2.png | Bin .../textures/blocks/materialicons/LEAF/block3.png | Bin .../textures/blocks/materialicons/LEAF/block4.png | Bin .../textures/blocks/materialicons/LEAF/block5.png | Bin .../textures/blocks/materialicons/LEAF/block6.png | Bin .../textures/blocks/materialicons/LEAF/foil.png | Bin .../textures/blocks/materialicons/LEAF/frameGt.png | Bin .../textures/blocks/materialicons/LEAF/ore.png | Bin .../textures/blocks/materialicons/LEAF/oreSmall.png | Bin .../textures/blocks/materialicons/LEAF/pipeHuge.png | Bin .../blocks/materialicons/LEAF/pipeLarge.png | Bin .../blocks/materialicons/LEAF/pipeMedium.png | Bin .../textures/blocks/materialicons/LEAF/pipeSide.png | Bin .../blocks/materialicons/LEAF/pipeSmall.png | Bin .../textures/blocks/materialicons/LEAF/pipeTiny.png | Bin .../textures/blocks/materialicons/LEAF/void.png | Bin .../textures/blocks/materialicons/LEAF/wire.png | Bin .../blocks/materialicons/LIGNITE/block1.png | Bin .../blocks/materialicons/LIGNITE/block2.png | Bin .../blocks/materialicons/LIGNITE/block3.png | Bin .../blocks/materialicons/LIGNITE/block4.png | Bin .../blocks/materialicons/LIGNITE/block5.png | Bin .../blocks/materialicons/LIGNITE/block6.png | Bin .../textures/blocks/materialicons/LIGNITE/foil.png | Bin .../blocks/materialicons/LIGNITE/frameGt.png | Bin .../textures/blocks/materialicons/LIGNITE/ore.png | Bin .../blocks/materialicons/LIGNITE/oreSmall.png | Bin .../blocks/materialicons/LIGNITE/pipeHuge.png | Bin .../blocks/materialicons/LIGNITE/pipeLarge.png | Bin .../blocks/materialicons/LIGNITE/pipeMedium.png | Bin .../blocks/materialicons/LIGNITE/pipeSide.png | Bin .../blocks/materialicons/LIGNITE/pipeSmall.png | Bin .../blocks/materialicons/LIGNITE/pipeTiny.png | Bin .../textures/blocks/materialicons/LIGNITE/void.png | Bin .../textures/blocks/materialicons/LIGNITE/wire.png | Bin .../blocks/materialicons/MAGNETIC/block1.png | Bin .../blocks/materialicons/MAGNETIC/block2.png | Bin .../blocks/materialicons/MAGNETIC/block3.png | Bin .../blocks/materialicons/MAGNETIC/block4.png | Bin .../blocks/materialicons/MAGNETIC/block5.png | Bin .../blocks/materialicons/MAGNETIC/block6.png | Bin .../textures/blocks/materialicons/MAGNETIC/foil.png | Bin .../blocks/materialicons/MAGNETIC/frameGt.png | Bin .../textures/blocks/materialicons/MAGNETIC/ore.png | Bin .../blocks/materialicons/MAGNETIC/oreSmall.png | Bin .../blocks/materialicons/MAGNETIC/pipeHuge.png | Bin .../blocks/materialicons/MAGNETIC/pipeLarge.png | Bin .../blocks/materialicons/MAGNETIC/pipeMedium.png | Bin .../blocks/materialicons/MAGNETIC/pipeSide.png | Bin .../blocks/materialicons/MAGNETIC/pipeSmall.png | Bin .../blocks/materialicons/MAGNETIC/pipeTiny.png | Bin .../textures/blocks/materialicons/MAGNETIC/void.png | Bin .../textures/blocks/materialicons/MAGNETIC/wire.png | Bin .../blocks/materialicons/METALLIC/block1.png | Bin .../blocks/materialicons/METALLIC/block2.png | Bin .../blocks/materialicons/METALLIC/block3.png | Bin .../blocks/materialicons/METALLIC/block4.png | Bin .../blocks/materialicons/METALLIC/block5.png | Bin .../blocks/materialicons/METALLIC/block6.png | Bin .../textures/blocks/materialicons/METALLIC/foil.png | Bin .../blocks/materialicons/METALLIC/frameGt.png | Bin .../textures/blocks/materialicons/METALLIC/ore.png | Bin .../blocks/materialicons/METALLIC/oreSmall.png | Bin .../blocks/materialicons/METALLIC/pipeHuge.png | Bin .../blocks/materialicons/METALLIC/pipeLarge.png | Bin .../blocks/materialicons/METALLIC/pipeMedium.png | Bin .../blocks/materialicons/METALLIC/pipeSide.png | Bin .../blocks/materialicons/METALLIC/pipeSmall.png | Bin .../blocks/materialicons/METALLIC/pipeTiny.png | Bin .../textures/blocks/materialicons/METALLIC/void.png | Bin .../textures/blocks/materialicons/METALLIC/wire.png | Bin .../blocks/materialicons/NETHERSTAR/block1.png | Bin .../blocks/materialicons/NETHERSTAR/block2.png | Bin .../blocks/materialicons/NETHERSTAR/block3.png | Bin .../blocks/materialicons/NETHERSTAR/block4.png | Bin .../blocks/materialicons/NETHERSTAR/block5.png | Bin .../blocks/materialicons/NETHERSTAR/block6.png | Bin .../blocks/materialicons/NETHERSTAR/foil.png | Bin .../blocks/materialicons/NETHERSTAR/frameGt.png | Bin .../blocks/materialicons/NETHERSTAR/ore.png | Bin .../blocks/materialicons/NETHERSTAR/oreSmall.png | Bin .../blocks/materialicons/NETHERSTAR/pipeHuge.png | Bin .../blocks/materialicons/NETHERSTAR/pipeLarge.png | Bin .../blocks/materialicons/NETHERSTAR/pipeMedium.png | Bin .../blocks/materialicons/NETHERSTAR/pipeSide.png | Bin .../blocks/materialicons/NETHERSTAR/pipeSmall.png | Bin .../blocks/materialicons/NETHERSTAR/pipeTiny.png | Bin .../blocks/materialicons/NETHERSTAR/void.png | Bin .../blocks/materialicons/NETHERSTAR/wire.png | Bin .../textures/blocks/materialicons/NONE/block1.png | Bin .../textures/blocks/materialicons/NONE/block2.png | Bin .../textures/blocks/materialicons/NONE/block3.png | Bin .../textures/blocks/materialicons/NONE/block4.png | Bin .../textures/blocks/materialicons/NONE/block5.png | Bin .../textures/blocks/materialicons/NONE/block6.png | Bin .../textures/blocks/materialicons/NONE/foil.png | Bin .../textures/blocks/materialicons/NONE/frameGt.png | Bin .../textures/blocks/materialicons/NONE/ore.png | Bin .../textures/blocks/materialicons/NONE/oreSmall.png | Bin .../textures/blocks/materialicons/NONE/pipeHuge.png | Bin .../blocks/materialicons/NONE/pipeLarge.png | Bin .../blocks/materialicons/NONE/pipeMedium.png | Bin .../textures/blocks/materialicons/NONE/pipeSide.png | Bin .../blocks/materialicons/NONE/pipeSmall.png | Bin .../textures/blocks/materialicons/NONE/pipeTiny.png | Bin .../textures/blocks/materialicons/NONE/void.png | Bin .../textures/blocks/materialicons/NONE/wire.png | Bin .../textures/blocks/materialicons/OPAL/block1.png | Bin .../textures/blocks/materialicons/OPAL/block2.png | Bin .../textures/blocks/materialicons/OPAL/block3.png | Bin .../textures/blocks/materialicons/OPAL/block4.png | Bin .../textures/blocks/materialicons/OPAL/block5.png | Bin .../textures/blocks/materialicons/OPAL/block6.png | Bin .../textures/blocks/materialicons/OPAL/foil.png | Bin .../textures/blocks/materialicons/OPAL/frameGt.png | Bin .../textures/blocks/materialicons/OPAL/ore.png | Bin .../textures/blocks/materialicons/OPAL/oreSmall.png | Bin .../textures/blocks/materialicons/OPAL/pipeHuge.png | Bin .../blocks/materialicons/OPAL/pipeLarge.png | Bin .../blocks/materialicons/OPAL/pipeMedium.png | Bin .../textures/blocks/materialicons/OPAL/pipeSide.png | Bin .../blocks/materialicons/OPAL/pipeSmall.png | Bin .../textures/blocks/materialicons/OPAL/pipeTiny.png | Bin .../textures/blocks/materialicons/OPAL/void.png | Bin .../textures/blocks/materialicons/OPAL/wire.png | Bin .../textures/blocks/materialicons/PAPER/block1.png | Bin .../textures/blocks/materialicons/PAPER/block2.png | Bin .../textures/blocks/materialicons/PAPER/block3.png | Bin .../textures/blocks/materialicons/PAPER/block4.png | Bin .../textures/blocks/materialicons/PAPER/block5.png | Bin .../textures/blocks/materialicons/PAPER/block6.png | Bin .../textures/blocks/materialicons/PAPER/foil.png | Bin .../textures/blocks/materialicons/PAPER/frameGt.png | Bin .../textures/blocks/materialicons/PAPER/ore.png | Bin .../blocks/materialicons/PAPER/oreSmall.png | Bin .../blocks/materialicons/PAPER/pipeHuge.png | Bin .../blocks/materialicons/PAPER/pipeLarge.png | Bin .../blocks/materialicons/PAPER/pipeMedium.png | Bin .../blocks/materialicons/PAPER/pipeSide.png | Bin .../blocks/materialicons/PAPER/pipeSmall.png | Bin .../blocks/materialicons/PAPER/pipeTiny.png | Bin .../textures/blocks/materialicons/PAPER/void.png | Bin .../textures/blocks/materialicons/PAPER/wire.png | Bin .../textures/blocks/materialicons/POWDER/block1.png | Bin .../textures/blocks/materialicons/POWDER/block2.png | Bin .../textures/blocks/materialicons/POWDER/block3.png | Bin .../textures/blocks/materialicons/POWDER/block4.png | Bin .../textures/blocks/materialicons/POWDER/block5.png | Bin .../textures/blocks/materialicons/POWDER/block6.png | Bin .../textures/blocks/materialicons/POWDER/foil.png | Bin .../blocks/materialicons/POWDER/frameGt.png | Bin .../textures/blocks/materialicons/POWDER/ore.png | Bin .../blocks/materialicons/POWDER/oreSmall.png | Bin .../blocks/materialicons/POWDER/pipeHuge.png | Bin .../blocks/materialicons/POWDER/pipeLarge.png | Bin .../blocks/materialicons/POWDER/pipeMedium.png | Bin .../blocks/materialicons/POWDER/pipeSide.png | Bin .../blocks/materialicons/POWDER/pipeSmall.png | Bin .../blocks/materialicons/POWDER/pipeTiny.png | Bin .../textures/blocks/materialicons/POWDER/void.png | Bin .../textures/blocks/materialicons/POWDER/wire.png | Bin .../textures/blocks/materialicons/QUARTZ/block1.png | Bin .../textures/blocks/materialicons/QUARTZ/block2.png | Bin .../textures/blocks/materialicons/QUARTZ/block3.png | Bin .../textures/blocks/materialicons/QUARTZ/block4.png | Bin .../textures/blocks/materialicons/QUARTZ/block5.png | Bin .../textures/blocks/materialicons/QUARTZ/block6.png | Bin .../textures/blocks/materialicons/QUARTZ/foil.png | Bin .../blocks/materialicons/QUARTZ/frameGt.png | Bin .../textures/blocks/materialicons/QUARTZ/ore.png | Bin .../blocks/materialicons/QUARTZ/oreSmall.png | Bin .../blocks/materialicons/QUARTZ/pipeHuge.png | Bin .../blocks/materialicons/QUARTZ/pipeLarge.png | Bin .../blocks/materialicons/QUARTZ/pipeMedium.png | Bin .../blocks/materialicons/QUARTZ/pipeSide.png | Bin .../blocks/materialicons/QUARTZ/pipeSmall.png | Bin .../blocks/materialicons/QUARTZ/pipeTiny.png | Bin .../textures/blocks/materialicons/QUARTZ/void.png | Bin .../textures/blocks/materialicons/QUARTZ/wire.png | Bin .../textures/blocks/materialicons/ROUGH/block1.png | Bin .../textures/blocks/materialicons/ROUGH/block2.png | Bin .../textures/blocks/materialicons/ROUGH/block3.png | Bin .../textures/blocks/materialicons/ROUGH/block4.png | Bin .../textures/blocks/materialicons/ROUGH/block5.png | Bin .../textures/blocks/materialicons/ROUGH/block6.png | Bin .../textures/blocks/materialicons/ROUGH/foil.png | Bin .../textures/blocks/materialicons/ROUGH/frameGt.png | Bin .../textures/blocks/materialicons/ROUGH/ore.png | Bin .../blocks/materialicons/ROUGH/oreSmall.png | Bin .../blocks/materialicons/ROUGH/pipeHuge.png | Bin .../blocks/materialicons/ROUGH/pipeLarge.png | Bin .../blocks/materialicons/ROUGH/pipeMedium.png | Bin .../blocks/materialicons/ROUGH/pipeSide.png | Bin .../blocks/materialicons/ROUGH/pipeSmall.png | Bin .../blocks/materialicons/ROUGH/pipeTiny.png | Bin .../textures/blocks/materialicons/ROUGH/void.png | Bin .../textures/blocks/materialicons/ROUGH/wire.png | Bin .../textures/blocks/materialicons/RUBY/block1.png | Bin .../textures/blocks/materialicons/RUBY/block2.png | Bin .../textures/blocks/materialicons/RUBY/block3.png | Bin .../textures/blocks/materialicons/RUBY/block4.png | Bin .../textures/blocks/materialicons/RUBY/block5.png | Bin .../textures/blocks/materialicons/RUBY/block6.png | Bin .../textures/blocks/materialicons/RUBY/foil.png | Bin .../textures/blocks/materialicons/RUBY/frameGt.png | Bin .../textures/blocks/materialicons/RUBY/ore.png | Bin .../textures/blocks/materialicons/RUBY/oreSmall.png | Bin .../textures/blocks/materialicons/RUBY/pipeHuge.png | Bin .../blocks/materialicons/RUBY/pipeLarge.png | Bin .../blocks/materialicons/RUBY/pipeMedium.png | Bin .../textures/blocks/materialicons/RUBY/pipeSide.png | Bin .../blocks/materialicons/RUBY/pipeSmall.png | Bin .../textures/blocks/materialicons/RUBY/pipeTiny.png | Bin .../textures/blocks/materialicons/RUBY/void.png | Bin .../textures/blocks/materialicons/RUBY/wire.png | Bin .../textures/blocks/materialicons/SAND/block1.png | Bin .../textures/blocks/materialicons/SAND/block2.png | Bin .../textures/blocks/materialicons/SAND/block3.png | Bin .../textures/blocks/materialicons/SAND/block4.png | Bin .../textures/blocks/materialicons/SAND/block5.png | Bin .../textures/blocks/materialicons/SAND/block6.png | Bin .../textures/blocks/materialicons/SAND/foil.png | Bin .../textures/blocks/materialicons/SAND/frameGt.png | Bin .../textures/blocks/materialicons/SAND/ore.png | Bin .../textures/blocks/materialicons/SAND/oreSmall.png | Bin .../textures/blocks/materialicons/SAND/pipeHuge.png | Bin .../blocks/materialicons/SAND/pipeLarge.png | Bin .../blocks/materialicons/SAND/pipeMedium.png | Bin .../textures/blocks/materialicons/SAND/pipeSide.png | Bin .../blocks/materialicons/SAND/pipeSmall.png | Bin .../textures/blocks/materialicons/SAND/pipeTiny.png | Bin .../textures/blocks/materialicons/SAND/void.png | Bin .../textures/blocks/materialicons/SAND/wire.png | Bin .../textures/blocks/materialicons/SHARDS/block1.png | Bin .../textures/blocks/materialicons/SHARDS/block2.png | Bin .../textures/blocks/materialicons/SHARDS/block3.png | Bin .../textures/blocks/materialicons/SHARDS/block4.png | Bin .../textures/blocks/materialicons/SHARDS/block5.png | Bin .../textures/blocks/materialicons/SHARDS/block6.png | Bin .../textures/blocks/materialicons/SHARDS/foil.png | Bin .../blocks/materialicons/SHARDS/frameGt.png | Bin .../textures/blocks/materialicons/SHARDS/ore.png | Bin .../blocks/materialicons/SHARDS/oreSmall.png | Bin .../blocks/materialicons/SHARDS/pipeHuge.png | Bin .../blocks/materialicons/SHARDS/pipeLarge.png | Bin .../blocks/materialicons/SHARDS/pipeMedium.png | Bin .../blocks/materialicons/SHARDS/pipeSide.png | Bin .../blocks/materialicons/SHARDS/pipeSmall.png | Bin .../blocks/materialicons/SHARDS/pipeTiny.png | Bin .../textures/blocks/materialicons/SHARDS/void.png | Bin .../textures/blocks/materialicons/SHARDS/wire.png | Bin .../textures/blocks/materialicons/SHINY/block1.png | Bin .../textures/blocks/materialicons/SHINY/block2.png | Bin .../textures/blocks/materialicons/SHINY/block3.png | Bin .../textures/blocks/materialicons/SHINY/block4.png | Bin .../textures/blocks/materialicons/SHINY/block5.png | Bin .../textures/blocks/materialicons/SHINY/block6.png | Bin .../textures/blocks/materialicons/SHINY/foil.png | Bin .../textures/blocks/materialicons/SHINY/frameGt.png | Bin .../textures/blocks/materialicons/SHINY/ore.png | Bin .../blocks/materialicons/SHINY/oreSmall.png | Bin .../blocks/materialicons/SHINY/pipeHuge.png | Bin .../blocks/materialicons/SHINY/pipeLarge.png | Bin .../blocks/materialicons/SHINY/pipeMedium.png | Bin .../blocks/materialicons/SHINY/pipeSide.png | Bin .../blocks/materialicons/SHINY/pipeSmall.png | Bin .../blocks/materialicons/SHINY/pipeTiny.png | Bin .../textures/blocks/materialicons/SHINY/void.png | Bin .../textures/blocks/materialicons/SHINY/wire.png | Bin .../textures/blocks/materialicons/WOOD/block1.png | Bin .../textures/blocks/materialicons/WOOD/block2.png | Bin .../textures/blocks/materialicons/WOOD/block3.png | Bin .../textures/blocks/materialicons/WOOD/block4.png | Bin .../textures/blocks/materialicons/WOOD/block5.png | Bin .../textures/blocks/materialicons/WOOD/block6.png | Bin .../textures/blocks/materialicons/WOOD/foil.png | Bin .../textures/blocks/materialicons/WOOD/frameGt.png | Bin .../textures/blocks/materialicons/WOOD/ore.png | Bin .../textures/blocks/materialicons/WOOD/oreSmall.png | Bin .../textures/blocks/materialicons/WOOD/pipeHuge.png | Bin .../blocks/materialicons/WOOD/pipeLarge.png | Bin .../blocks/materialicons/WOOD/pipeMedium.png | Bin .../textures/blocks/materialicons/WOOD/pipeSide.png | Bin .../blocks/materialicons/WOOD/pipeSmall.png | Bin .../textures/blocks/materialicons/WOOD/pipeTiny.png | Bin .../textures/blocks/materialicons/WOOD/void.png | Bin .../textures/blocks/materialicons/WOOD/wire.png | Bin .../textures/blocks/materialicons/copy_into_all.bat | 0 .../blocks/materialicons/copy_into_dull.bat | 0 .../blocks/materialicons/copy_into_gems.bat | 0 .../blocks/materialicons/copy_into_shiny.bat | 0 .../assets/gregtech/textures/entity/arrow.png | Bin .../gregtech/textures/entity/arrow_potions.png | Bin .../resources/assets/gregtech/textures/gui/1by1.png | Bin .../resources/assets/gregtech/textures/gui/2by2.png | Bin .../resources/assets/gregtech/textures/gui/3by3.png | Bin .../resources/assets/gregtech/textures/gui/4by4.png | Bin .../gregtech/textures/gui/AdvancedCraftingTable.png | Bin .../assets/gregtech/textures/gui/BasicTank.png | Bin .../gregtech/textures/gui/BronzeBlastFurnace.png | Bin .../assets/gregtech/textures/gui/BronzeBoiler.png | Bin .../gregtech/textures/gui/BronzeCraftingTable.png | Bin .../assets/gregtech/textures/gui/ChestBuffer.png | Bin .../gregtech/textures/gui/ComputerCubeRedstone.png | Bin .../assets/gregtech/textures/gui/CropHarvestor.png | Bin .../gregtech/textures/gui/ElectricAutoWorkbench.png | Bin .../gregtech/textures/gui/ElectricBufferSmall.png | Bin .../gregtech/textures/gui/ElectricItemCleaner.png | Bin .../assets/gregtech/textures/gui/Filter.png | Bin .../assets/gregtech/textures/gui/FusionComputer.png | Bin .../assets/gregtech/textures/gui/Implosion.png | Bin .../gregtech/textures/gui/InventoryManager.png | Bin .../assets/gregtech/textures/gui/MagicAbsorber.png | Bin .../assets/gregtech/textures/gui/Maintenance.png | Bin .../gregtech/textures/gui/RedstoneCircuitBlock.png | Bin .../assets/gregtech/textures/gui/Regulator.png | Bin .../assets/gregtech/textures/gui/Retriever.png | Bin .../resources/assets/gregtech/textures/gui/Safe.png | Bin .../assets/gregtech/textures/gui/SolarBoiler.png | Bin .../assets/gregtech/textures/gui/Sonictron.png | Bin .../assets/gregtech/textures/gui/SteelBoiler.png | Bin .../assets/gregtech/textures/gui/SuperBuffer.png | Bin .../assets/gregtech/textures/gui/Teleporter.png | Bin .../gregtech/textures/gui/Tradeomat_Inventory.png | Bin .../assets/gregtech/textures/gui/Tradeomat_Main.png | Bin .../gregtech/textures/gui/Tradeomat_Settings.png | Bin .../assets/gregtech/textures/gui/TypeFilter.png | Bin .../textures/gui/basicmachines/AlloySmelter.png | Bin .../textures/gui/basicmachines/Amplifabricator.png | Bin .../textures/gui/basicmachines/ArcFurnace.png | Bin .../textures/gui/basicmachines/Assembler.png | Bin .../textures/gui/basicmachines/Autoclave.png | Bin .../gregtech/textures/gui/basicmachines/Bender.png | Bin .../gui/basicmachines/BronzeAlloySmelter.png | Bin .../textures/gui/basicmachines/BronzeCompressor.png | Bin .../textures/gui/basicmachines/BronzeExtractor.png | Bin .../textures/gui/basicmachines/BronzeFurnace.png | Bin .../textures/gui/basicmachines/BronzeHammer.png | Bin .../textures/gui/basicmachines/BronzeMacerator.png | Bin .../gregtech/textures/gui/basicmachines/Canner.png | Bin .../textures/gui/basicmachines/Centrifuge.png | Bin .../textures/gui/basicmachines/ChemicalBath.png | Bin .../textures/gui/basicmachines/ChemicalReactor.png | Bin .../textures/gui/basicmachines/Compressor.png | Bin .../gregtech/textures/gui/basicmachines/Cutter.png | Bin .../gregtech/textures/gui/basicmachines/Default.png | Bin .../textures/gui/basicmachines/Disassembler.png | Bin .../textures/gui/basicmachines/Distillery.png | Bin .../textures/gui/basicmachines/E_Furnace.png | Bin .../gregtech/textures/gui/basicmachines/E_Oven.png | Bin .../textures/gui/basicmachines/Electrolyzer.png | Bin .../gui/basicmachines/ElectromagneticSeparator.png | Bin .../textures/gui/basicmachines/Extractor.png | Bin .../textures/gui/basicmachines/Extruder.png | Bin .../textures/gui/basicmachines/Fermenter.png | Bin .../textures/gui/basicmachines/FluidCanner.png | Bin .../textures/gui/basicmachines/FluidCannerNEI.png | Bin .../textures/gui/basicmachines/FluidExtractor.png | Bin .../textures/gui/basicmachines/FluidHeater.png | Bin .../textures/gui/basicmachines/FluidSolidifier.png | Bin .../gregtech/textures/gui/basicmachines/Hammer.png | Bin .../textures/gui/basicmachines/LaserEngraver.png | Bin .../gregtech/textures/gui/basicmachines/Lathe.png | Bin .../textures/gui/basicmachines/Macerator1.png | Bin .../textures/gui/basicmachines/Macerator2.png | Bin .../textures/gui/basicmachines/Macerator3.png | Bin .../textures/gui/basicmachines/Macerator4.png | Bin .../textures/gui/basicmachines/Massfabricator.png | Bin .../gregtech/textures/gui/basicmachines/Mixer.png | Bin .../textures/gui/basicmachines/OreWasher.png | Bin .../textures/gui/basicmachines/Packager.png | Bin .../textures/gui/basicmachines/PlasmaArcFurnace.png | Bin .../textures/gui/basicmachines/Polarizer.png | Bin .../textures/gui/basicmachines/PotionBrewer.png | Bin .../gregtech/textures/gui/basicmachines/Press.png | Bin .../gregtech/textures/gui/basicmachines/Printer.png | Bin .../textures/gui/basicmachines/Recycler.png | Bin .../textures/gui/basicmachines/Replicator.png | Bin .../textures/gui/basicmachines/RockBreaker.png | Bin .../gregtech/textures/gui/basicmachines/Scanner.png | Bin .../gregtech/textures/gui/basicmachines/Sifter.png | Bin .../gregtech/textures/gui/basicmachines/Slicer.png | Bin .../gui/basicmachines/SteelAlloySmelter.png | Bin .../textures/gui/basicmachines/SteelCompressor.png | Bin .../textures/gui/basicmachines/SteelExtractor.png | Bin .../textures/gui/basicmachines/SteelFurnace.png | Bin .../textures/gui/basicmachines/SteelHammer.png | Bin .../textures/gui/basicmachines/SteelMacerator.png | Bin .../gui/basicmachines/ThermalCentrifuge.png | Bin .../textures/gui/basicmachines/Unpackager.png | Bin .../textures/gui/basicmachines/Wiremill.png | Bin .../gui/multimachines/ElectricBlastFurnace.png | Bin .../textures/gui/multimachines/FusionComputer.png | Bin .../gui/multimachines/ImplosionCompressor.png | Bin .../textures/gui/multimachines/LargeBoiler.png | Bin .../textures/gui/multimachines/MultiFurnace.png | Bin .../gui/multimachines/MultiblockDisplay.png | Bin .../textures/gui/multimachines/VacuumFreezer.png | Bin .../resources/assets/gregtech/textures/gui/void.png | Bin .../textures/items/gt.180k_Helium_Coolantcell.png | Bin .../textures/items/gt.180k_NaK_Coolantcell.png | Bin .../textures/items/gt.360k_Helium_Coolantcell.png | Bin .../textures/items/gt.360k_NaK_Coolantcell.png | Bin .../textures/items/gt.60k_Helium_Coolantcell.png | Bin .../textures/items/gt.60k_NaK_Coolantcell.png | Bin .../textures/items/gt.Double_Thoriumcell.png | Bin .../textures/items/gt.Double_ThoriumcellDep.png | Bin .../gregtech/textures/items/gt.Quad_Thoriumcell.png | Bin .../textures/items/gt.Quad_ThoriumcellDep.png | Bin .../gregtech/textures/items/gt.Thoriumcell.png | Bin .../gregtech/textures/items/gt.ThoriumcellDep.png | Bin .../textures/items/gt.integrated_circuit.png | Bin .../gregtech/textures/items/gt.metaitem.01/0.png | Bin .../gregtech/textures/items/gt.metaitem.01/1.png | Bin .../gregtech/textures/items/gt.metaitem.01/10.png | Bin .../gregtech/textures/items/gt.metaitem.01/100.png | Bin .../gregtech/textures/items/gt.metaitem.01/101.png | Bin .../gregtech/textures/items/gt.metaitem.01/11.png | Bin .../gregtech/textures/items/gt.metaitem.01/13.png | Bin .../gregtech/textures/items/gt.metaitem.01/14.png | Bin .../gregtech/textures/items/gt.metaitem.01/15.png | Bin .../gregtech/textures/items/gt.metaitem.01/16.png | Bin .../gregtech/textures/items/gt.metaitem.01/2.png | Bin .../gregtech/textures/items/gt.metaitem.01/200.png | Bin .../gregtech/textures/items/gt.metaitem.01/201.png | Bin .../gregtech/textures/items/gt.metaitem.01/202.png | Bin .../gregtech/textures/items/gt.metaitem.01/203.png | Bin .../gregtech/textures/items/gt.metaitem.01/204.png | Bin .../gregtech/textures/items/gt.metaitem.01/205.png | Bin .../gregtech/textures/items/gt.metaitem.01/206.png | Bin .../gregtech/textures/items/gt.metaitem.01/207.png | Bin .../gregtech/textures/items/gt.metaitem.01/208.png | Bin .../gregtech/textures/items/gt.metaitem.01/225.png | Bin .../gregtech/textures/items/gt.metaitem.01/226.png | Bin .../gregtech/textures/items/gt.metaitem.01/227.png | Bin .../gregtech/textures/items/gt.metaitem.01/228.png | Bin .../gregtech/textures/items/gt.metaitem.01/229.png | Bin .../gregtech/textures/items/gt.metaitem.01/230.png | Bin .../gregtech/textures/items/gt.metaitem.01/231.png | Bin .../gregtech/textures/items/gt.metaitem.01/232.png | Bin .../gregtech/textures/items/gt.metaitem.01/233.png | Bin .../gregtech/textures/items/gt.metaitem.01/250.png | Bin .../gregtech/textures/items/gt.metaitem.01/251.png | Bin .../gregtech/textures/items/gt.metaitem.01/252.png | Bin .../gregtech/textures/items/gt.metaitem.01/253.png | Bin .../gregtech/textures/items/gt.metaitem.01/254.png | Bin .../gregtech/textures/items/gt.metaitem.01/255.png | Bin .../gregtech/textures/items/gt.metaitem.01/256.png | Bin .../gregtech/textures/items/gt.metaitem.01/257.png | Bin .../gregtech/textures/items/gt.metaitem.01/258.png | Bin .../gregtech/textures/items/gt.metaitem.01/3.png | Bin .../gregtech/textures/items/gt.metaitem.01/300.png | Bin .../gregtech/textures/items/gt.metaitem.01/301.png | Bin .../gregtech/textures/items/gt.metaitem.01/302.png | Bin .../gregtech/textures/items/gt.metaitem.01/303.png | Bin .../gregtech/textures/items/gt.metaitem.01/304.png | Bin .../gregtech/textures/items/gt.metaitem.01/305.png | Bin .../gregtech/textures/items/gt.metaitem.01/306.png | Bin .../gregtech/textures/items/gt.metaitem.01/307.png | Bin .../gregtech/textures/items/gt.metaitem.01/308.png | Bin .../gregtech/textures/items/gt.metaitem.01/309.png | Bin .../gregtech/textures/items/gt.metaitem.01/310.png | Bin .../gregtech/textures/items/gt.metaitem.01/311.png | Bin .../gregtech/textures/items/gt.metaitem.01/312.png | Bin .../gregtech/textures/items/gt.metaitem.01/313.png | Bin .../gregtech/textures/items/gt.metaitem.01/314.png | Bin .../gregtech/textures/items/gt.metaitem.01/315.png | Bin .../gregtech/textures/items/gt.metaitem.01/316.png | Bin .../gregtech/textures/items/gt.metaitem.01/317.png | Bin .../gregtech/textures/items/gt.metaitem.01/350.png | Bin .../gregtech/textures/items/gt.metaitem.01/351.png | Bin .../gregtech/textures/items/gt.metaitem.01/352.png | Bin .../gregtech/textures/items/gt.metaitem.01/353.png | Bin .../gregtech/textures/items/gt.metaitem.01/354.png | Bin .../gregtech/textures/items/gt.metaitem.01/355.png | Bin .../gregtech/textures/items/gt.metaitem.01/356.png | Bin .../gregtech/textures/items/gt.metaitem.01/357.png | Bin .../gregtech/textures/items/gt.metaitem.01/358.png | Bin .../gregtech/textures/items/gt.metaitem.01/359.png | Bin .../gregtech/textures/items/gt.metaitem.01/360.png | Bin .../gregtech/textures/items/gt.metaitem.01/361.png | Bin .../gregtech/textures/items/gt.metaitem.01/362.png | Bin .../gregtech/textures/items/gt.metaitem.01/363.png | Bin .../gregtech/textures/items/gt.metaitem.01/364.png | Bin .../gregtech/textures/items/gt.metaitem.01/365.png | Bin .../gregtech/textures/items/gt.metaitem.01/366.png | Bin .../gregtech/textures/items/gt.metaitem.01/367.png | Bin .../gregtech/textures/items/gt.metaitem.01/368.png | Bin .../gregtech/textures/items/gt.metaitem.01/369.png | Bin .../gregtech/textures/items/gt.metaitem.01/370.png | Bin .../gregtech/textures/items/gt.metaitem.01/371.png | Bin .../gregtech/textures/items/gt.metaitem.01/372.png | Bin .../gregtech/textures/items/gt.metaitem.01/373.png | Bin .../gregtech/textures/items/gt.metaitem.01/398.png | Bin .../gregtech/textures/items/gt.metaitem.01/399.png | Bin .../gregtech/textures/items/gt.metaitem.01/4.png | Bin .../gregtech/textures/items/gt.metaitem.01/400.png | Bin .../gregtech/textures/items/gt.metaitem.01/401.png | Bin .../gregtech/textures/items/gt.metaitem.01/402.png | Bin .../gregtech/textures/items/gt.metaitem.01/403.png | Bin .../gregtech/textures/items/gt.metaitem.01/404.png | Bin .../gregtech/textures/items/gt.metaitem.01/405.png | Bin .../gregtech/textures/items/gt.metaitem.01/406.png | Bin .../gregtech/textures/items/gt.metaitem.01/430.png | Bin .../gregtech/textures/items/gt.metaitem.01/431.png | Bin .../gregtech/textures/items/gt.metaitem.01/432.png | Bin .../gregtech/textures/items/gt.metaitem.01/433.png | Bin .../gregtech/textures/items/gt.metaitem.01/434.png | Bin .../gregtech/textures/items/gt.metaitem.01/435.png | Bin .../gregtech/textures/items/gt.metaitem.01/436.png | Bin .../gregtech/textures/items/gt.metaitem.01/437.png | Bin .../gregtech/textures/items/gt.metaitem.01/438.png | Bin .../gregtech/textures/items/gt.metaitem.01/439.png | Bin .../gregtech/textures/items/gt.metaitem.01/440.png | Bin .../gregtech/textures/items/gt.metaitem.01/441.png | Bin .../gregtech/textures/items/gt.metaitem.01/442.png | Bin .../gregtech/textures/items/gt.metaitem.01/443.png | Bin .../gregtech/textures/items/gt.metaitem.01/444.png | Bin .../gregtech/textures/items/gt.metaitem.01/445.png | Bin .../gregtech/textures/items/gt.metaitem.01/446.png | Bin .../gregtech/textures/items/gt.metaitem.01/447.png | Bin .../gregtech/textures/items/gt.metaitem.01/448.png | Bin .../gregtech/textures/items/gt.metaitem.01/449.png | Bin .../gregtech/textures/items/gt.metaitem.01/450.png | Bin .../gregtech/textures/items/gt.metaitem.01/451.png | Bin .../gregtech/textures/items/gt.metaitem.01/452.png | Bin .../gregtech/textures/items/gt.metaitem.01/453.png | Bin .../gregtech/textures/items/gt.metaitem.01/454.png | Bin .../gregtech/textures/items/gt.metaitem.01/455.png | Bin .../gregtech/textures/items/gt.metaitem.01/456.png | Bin .../gregtech/textures/items/gt.metaitem.01/457.png | Bin .../gregtech/textures/items/gt.metaitem.01/458.png | Bin .../gregtech/textures/items/gt.metaitem.01/459.png | Bin .../gregtech/textures/items/gt.metaitem.01/460.png | Bin .../gregtech/textures/items/gt.metaitem.01/461.png | Bin .../gregtech/textures/items/gt.metaitem.01/462.png | Bin .../gregtech/textures/items/gt.metaitem.01/463.png | Bin .../gregtech/textures/items/gt.metaitem.01/464.png | Bin .../gregtech/textures/items/gt.metaitem.01/471.png | Bin .../gregtech/textures/items/gt.metaitem.01/472.png | Bin .../gregtech/textures/items/gt.metaitem.01/473.png | Bin .../gregtech/textures/items/gt.metaitem.01/474.png | Bin .../gregtech/textures/items/gt.metaitem.01/475.png | Bin .../gregtech/textures/items/gt.metaitem.01/476.png | Bin .../gregtech/textures/items/gt.metaitem.01/477.png | Bin .../gregtech/textures/items/gt.metaitem.01/478.png | Bin .../gregtech/textures/items/gt.metaitem.01/479.png | Bin .../gregtech/textures/items/gt.metaitem.01/480.png | Bin .../gregtech/textures/items/gt.metaitem.01/481.png | Bin .../gregtech/textures/items/gt.metaitem.01/482.png | Bin .../gregtech/textures/items/gt.metaitem.01/483.png | Bin .../gregtech/textures/items/gt.metaitem.01/484.png | Bin .../gregtech/textures/items/gt.metaitem.01/485.png | Bin .../gregtech/textures/items/gt.metaitem.01/486.png | Bin .../gregtech/textures/items/gt.metaitem.01/487.png | Bin .../gregtech/textures/items/gt.metaitem.01/488.png | Bin .../gregtech/textures/items/gt.metaitem.01/489.png | Bin .../gregtech/textures/items/gt.metaitem.01/490.png | Bin .../gregtech/textures/items/gt.metaitem.01/491.png | Bin .../gregtech/textures/items/gt.metaitem.01/495.png | Bin .../gregtech/textures/items/gt.metaitem.01/496.png | Bin .../gregtech/textures/items/gt.metaitem.01/497.png | Bin .../gregtech/textures/items/gt.metaitem.01/498.png | Bin .../gregtech/textures/items/gt.metaitem.01/499.png | Bin .../gregtech/textures/items/gt.metaitem.01/5.png | Bin .../gregtech/textures/items/gt.metaitem.01/500.png | Bin .../gregtech/textures/items/gt.metaitem.01/501.png | Bin .../gregtech/textures/items/gt.metaitem.01/502.png | Bin .../gregtech/textures/items/gt.metaitem.01/510.png | Bin .../textures/items/gt.metaitem.01/510/1.png | Bin .../textures/items/gt.metaitem.01/510/2.png | Bin .../textures/items/gt.metaitem.01/510/3.png | Bin .../textures/items/gt.metaitem.01/510/4.png | Bin .../textures/items/gt.metaitem.01/510/5.png | Bin .../textures/items/gt.metaitem.01/510/6.png | Bin .../textures/items/gt.metaitem.01/510/7.png | Bin .../textures/items/gt.metaitem.01/510/8.png | Bin .../gregtech/textures/items/gt.metaitem.01/511.png | Bin .../textures/items/gt.metaitem.01/511/1.png | Bin .../textures/items/gt.metaitem.01/511/2.png | Bin .../textures/items/gt.metaitem.01/511/3.png | Bin .../textures/items/gt.metaitem.01/511/4.png | Bin .../textures/items/gt.metaitem.01/511/5.png | Bin .../textures/items/gt.metaitem.01/511/6.png | Bin .../textures/items/gt.metaitem.01/511/7.png | Bin .../textures/items/gt.metaitem.01/511/8.png | Bin .../gregtech/textures/items/gt.metaitem.01/517.png | Bin .../textures/items/gt.metaitem.01/517/1.png | Bin .../textures/items/gt.metaitem.01/517/2.png | Bin .../textures/items/gt.metaitem.01/517/3.png | Bin .../textures/items/gt.metaitem.01/517/4.png | Bin .../textures/items/gt.metaitem.01/517/5.png | Bin .../textures/items/gt.metaitem.01/517/6.png | Bin .../textures/items/gt.metaitem.01/517/7.png | Bin .../textures/items/gt.metaitem.01/517/8.png | Bin .../gregtech/textures/items/gt.metaitem.01/518.png | Bin .../textures/items/gt.metaitem.01/518/1.png | Bin .../textures/items/gt.metaitem.01/518/2.png | Bin .../textures/items/gt.metaitem.01/518/3.png | Bin .../textures/items/gt.metaitem.01/518/4.png | Bin .../textures/items/gt.metaitem.01/518/5.png | Bin .../textures/items/gt.metaitem.01/518/6.png | Bin .../textures/items/gt.metaitem.01/518/7.png | Bin .../textures/items/gt.metaitem.01/518/8.png | Bin .../gregtech/textures/items/gt.metaitem.01/519.png | Bin .../textures/items/gt.metaitem.01/519/1.png | Bin .../textures/items/gt.metaitem.01/519/2.png | Bin .../textures/items/gt.metaitem.01/519/3.png | Bin .../textures/items/gt.metaitem.01/519/4.png | Bin .../textures/items/gt.metaitem.01/519/5.png | Bin .../textures/items/gt.metaitem.01/519/6.png | Bin .../textures/items/gt.metaitem.01/519/7.png | Bin .../textures/items/gt.metaitem.01/519/8.png | Bin .../gregtech/textures/items/gt.metaitem.01/520.png | Bin .../textures/items/gt.metaitem.01/520/1.png | Bin .../textures/items/gt.metaitem.01/520/2.png | Bin .../textures/items/gt.metaitem.01/520/3.png | Bin .../textures/items/gt.metaitem.01/520/4.png | Bin .../textures/items/gt.metaitem.01/520/5.png | Bin .../textures/items/gt.metaitem.01/520/6.png | Bin .../textures/items/gt.metaitem.01/520/7.png | Bin .../textures/items/gt.metaitem.01/520/8.png | Bin .../gregtech/textures/items/gt.metaitem.01/521.png | Bin .../textures/items/gt.metaitem.01/521/1.png | Bin .../textures/items/gt.metaitem.01/521/2.png | Bin .../textures/items/gt.metaitem.01/521/3.png | Bin .../textures/items/gt.metaitem.01/521/4.png | Bin .../textures/items/gt.metaitem.01/521/5.png | Bin .../textures/items/gt.metaitem.01/521/6.png | Bin .../textures/items/gt.metaitem.01/521/7.png | Bin .../textures/items/gt.metaitem.01/521/8.png | Bin .../gregtech/textures/items/gt.metaitem.01/527.png | Bin .../textures/items/gt.metaitem.01/527/1.png | Bin .../textures/items/gt.metaitem.01/527/2.png | Bin .../textures/items/gt.metaitem.01/527/3.png | Bin .../textures/items/gt.metaitem.01/527/4.png | Bin .../textures/items/gt.metaitem.01/527/5.png | Bin .../textures/items/gt.metaitem.01/527/6.png | Bin .../textures/items/gt.metaitem.01/527/7.png | Bin .../textures/items/gt.metaitem.01/527/8.png | Bin .../gregtech/textures/items/gt.metaitem.01/528.png | Bin .../textures/items/gt.metaitem.01/528/1.png | Bin .../textures/items/gt.metaitem.01/528/2.png | Bin .../textures/items/gt.metaitem.01/528/3.png | Bin .../textures/items/gt.metaitem.01/528/4.png | Bin .../textures/items/gt.metaitem.01/528/5.png | Bin .../textures/items/gt.metaitem.01/528/6.png | Bin .../textures/items/gt.metaitem.01/528/7.png | Bin .../textures/items/gt.metaitem.01/528/8.png | Bin .../gregtech/textures/items/gt.metaitem.01/529.png | Bin .../textures/items/gt.metaitem.01/529/1.png | Bin .../textures/items/gt.metaitem.01/529/2.png | Bin .../textures/items/gt.metaitem.01/529/3.png | Bin .../textures/items/gt.metaitem.01/529/4.png | Bin .../textures/items/gt.metaitem.01/529/5.png | Bin .../textures/items/gt.metaitem.01/529/6.png | Bin .../textures/items/gt.metaitem.01/529/7.png | Bin .../textures/items/gt.metaitem.01/529/8.png | Bin .../gregtech/textures/items/gt.metaitem.01/530.png | Bin .../textures/items/gt.metaitem.01/530/1.png | Bin .../textures/items/gt.metaitem.01/530/2.png | Bin .../textures/items/gt.metaitem.01/530/3.png | Bin .../textures/items/gt.metaitem.01/530/4.png | Bin .../textures/items/gt.metaitem.01/530/5.png | Bin .../textures/items/gt.metaitem.01/530/6.png | Bin .../textures/items/gt.metaitem.01/530/7.png | Bin .../textures/items/gt.metaitem.01/530/8.png | Bin .../gregtech/textures/items/gt.metaitem.01/531.png | Bin .../textures/items/gt.metaitem.01/531/1.png | Bin .../textures/items/gt.metaitem.01/531/2.png | Bin .../textures/items/gt.metaitem.01/531/3.png | Bin .../textures/items/gt.metaitem.01/531/4.png | Bin .../textures/items/gt.metaitem.01/531/5.png | Bin .../textures/items/gt.metaitem.01/531/6.png | Bin .../textures/items/gt.metaitem.01/531/7.png | Bin .../textures/items/gt.metaitem.01/531/8.png | Bin .../gregtech/textures/items/gt.metaitem.01/537.png | Bin .../textures/items/gt.metaitem.01/537/1.png | Bin .../textures/items/gt.metaitem.01/537/2.png | Bin .../textures/items/gt.metaitem.01/537/3.png | Bin .../textures/items/gt.metaitem.01/537/4.png | Bin .../textures/items/gt.metaitem.01/537/5.png | Bin .../textures/items/gt.metaitem.01/537/6.png | Bin .../textures/items/gt.metaitem.01/537/7.png | Bin .../textures/items/gt.metaitem.01/537/8.png | Bin .../gregtech/textures/items/gt.metaitem.01/538.png | Bin .../textures/items/gt.metaitem.01/538/1.png | Bin .../textures/items/gt.metaitem.01/538/2.png | Bin .../textures/items/gt.metaitem.01/538/3.png | Bin .../textures/items/gt.metaitem.01/538/4.png | Bin .../textures/items/gt.metaitem.01/538/5.png | Bin .../textures/items/gt.metaitem.01/538/6.png | Bin .../textures/items/gt.metaitem.01/538/7.png | Bin .../textures/items/gt.metaitem.01/538/8.png | Bin .../gregtech/textures/items/gt.metaitem.01/539.png | Bin .../textures/items/gt.metaitem.01/539/1.png | Bin .../textures/items/gt.metaitem.01/539/2.png | Bin .../textures/items/gt.metaitem.01/539/3.png | Bin .../textures/items/gt.metaitem.01/539/4.png | Bin .../textures/items/gt.metaitem.01/539/5.png | Bin .../textures/items/gt.metaitem.01/539/6.png | Bin .../textures/items/gt.metaitem.01/539/7.png | Bin .../textures/items/gt.metaitem.01/539/8.png | Bin .../gregtech/textures/items/gt.metaitem.01/597.png | Bin .../textures/items/gt.metaitem.01/597/1.png | Bin .../textures/items/gt.metaitem.01/597/2.png | Bin .../textures/items/gt.metaitem.01/597/3.png | Bin .../textures/items/gt.metaitem.01/597/4.png | Bin .../textures/items/gt.metaitem.01/597/5.png | Bin .../textures/items/gt.metaitem.01/597/6.png | Bin .../textures/items/gt.metaitem.01/597/7.png | Bin .../textures/items/gt.metaitem.01/597/8.png | Bin .../gregtech/textures/items/gt.metaitem.01/598.png | Bin .../textures/items/gt.metaitem.01/598/1.png | Bin .../textures/items/gt.metaitem.01/598/2.png | Bin .../textures/items/gt.metaitem.01/598/3.png | Bin .../textures/items/gt.metaitem.01/598/4.png | Bin .../textures/items/gt.metaitem.01/598/5.png | Bin .../textures/items/gt.metaitem.01/598/6.png | Bin .../textures/items/gt.metaitem.01/598/7.png | Bin .../textures/items/gt.metaitem.01/598/8.png | Bin .../gregtech/textures/items/gt.metaitem.01/599.png | Bin .../textures/items/gt.metaitem.01/599/1.png | Bin .../textures/items/gt.metaitem.01/599/2.png | Bin .../textures/items/gt.metaitem.01/599/3.png | Bin .../textures/items/gt.metaitem.01/599/4.png | Bin .../textures/items/gt.metaitem.01/599/5.png | Bin .../textures/items/gt.metaitem.01/599/6.png | Bin .../textures/items/gt.metaitem.01/599/7.png | Bin .../textures/items/gt.metaitem.01/599/8.png | Bin .../gregtech/textures/items/gt.metaitem.01/6.png | Bin .../gregtech/textures/items/gt.metaitem.01/600.png | Bin .../gregtech/textures/items/gt.metaitem.01/601.png | Bin .../gregtech/textures/items/gt.metaitem.01/602.png | Bin .../gregtech/textures/items/gt.metaitem.01/603.png | Bin .../gregtech/textures/items/gt.metaitem.01/604.png | Bin .../gregtech/textures/items/gt.metaitem.01/605.png | Bin .../textures/items/gt.metaitem.01/605/1.png | Bin .../textures/items/gt.metaitem.01/605/2.png | Bin .../textures/items/gt.metaitem.01/605/3.png | Bin .../textures/items/gt.metaitem.01/605/4.png | Bin .../textures/items/gt.metaitem.01/605/5.png | Bin .../textures/items/gt.metaitem.01/605/6.png | Bin .../textures/items/gt.metaitem.01/605/7.png | Bin .../textures/items/gt.metaitem.01/605/8.png | Bin .../gregtech/textures/items/gt.metaitem.01/610.png | Bin .../gregtech/textures/items/gt.metaitem.01/611.png | Bin .../gregtech/textures/items/gt.metaitem.01/612.png | Bin .../gregtech/textures/items/gt.metaitem.01/613.png | Bin .../gregtech/textures/items/gt.metaitem.01/614.png | Bin .../gregtech/textures/items/gt.metaitem.01/630.png | Bin .../gregtech/textures/items/gt.metaitem.01/631.png | Bin .../gregtech/textures/items/gt.metaitem.01/632.png | Bin .../gregtech/textures/items/gt.metaitem.01/633.png | Bin .../gregtech/textures/items/gt.metaitem.01/634.png | Bin .../gregtech/textures/items/gt.metaitem.01/640.png | Bin .../gregtech/textures/items/gt.metaitem.01/641.png | Bin .../gregtech/textures/items/gt.metaitem.01/642.png | Bin .../gregtech/textures/items/gt.metaitem.01/643.png | Bin .../gregtech/textures/items/gt.metaitem.01/644.png | Bin .../gregtech/textures/items/gt.metaitem.01/650.png | Bin .../gregtech/textures/items/gt.metaitem.01/651.png | Bin .../gregtech/textures/items/gt.metaitem.01/652.png | Bin .../gregtech/textures/items/gt.metaitem.01/653.png | Bin .../gregtech/textures/items/gt.metaitem.01/654.png | Bin .../gregtech/textures/items/gt.metaitem.01/660.png | Bin .../gregtech/textures/items/gt.metaitem.01/661.png | Bin .../gregtech/textures/items/gt.metaitem.01/662.png | Bin .../gregtech/textures/items/gt.metaitem.01/663.png | Bin .../gregtech/textures/items/gt.metaitem.01/664.png | Bin .../gregtech/textures/items/gt.metaitem.01/670.png | Bin .../gregtech/textures/items/gt.metaitem.01/671.png | Bin .../gregtech/textures/items/gt.metaitem.01/672.png | Bin .../gregtech/textures/items/gt.metaitem.01/673.png | Bin .../gregtech/textures/items/gt.metaitem.01/674.png | Bin .../gregtech/textures/items/gt.metaitem.01/680.png | Bin .../gregtech/textures/items/gt.metaitem.01/681.png | Bin .../gregtech/textures/items/gt.metaitem.01/682.png | Bin .../gregtech/textures/items/gt.metaitem.01/683.png | Bin .../gregtech/textures/items/gt.metaitem.01/684.png | Bin .../gregtech/textures/items/gt.metaitem.01/690.png | Bin .../gregtech/textures/items/gt.metaitem.01/691.png | Bin .../gregtech/textures/items/gt.metaitem.01/692.png | Bin .../gregtech/textures/items/gt.metaitem.01/693.png | Bin .../gregtech/textures/items/gt.metaitem.01/694.png | Bin .../gregtech/textures/items/gt.metaitem.01/7.png | Bin .../gregtech/textures/items/gt.metaitem.01/700.png | Bin .../gregtech/textures/items/gt.metaitem.01/701.png | Bin .../gregtech/textures/items/gt.metaitem.01/702.png | Bin .../gregtech/textures/items/gt.metaitem.01/703.png | Bin .../gregtech/textures/items/gt.metaitem.01/704.png | Bin .../gregtech/textures/items/gt.metaitem.01/705.png | Bin .../gregtech/textures/items/gt.metaitem.01/706.png | Bin .../gregtech/textures/items/gt.metaitem.01/707.png | Bin .../gregtech/textures/items/gt.metaitem.01/708.png | Bin .../gregtech/textures/items/gt.metaitem.01/710.png | Bin .../gregtech/textures/items/gt.metaitem.01/711.png | Bin .../gregtech/textures/items/gt.metaitem.01/712.png | Bin .../gregtech/textures/items/gt.metaitem.01/713.png | Bin .../gregtech/textures/items/gt.metaitem.01/714.png | Bin .../gregtech/textures/items/gt.metaitem.01/715.png | Bin .../gregtech/textures/items/gt.metaitem.01/716.png | Bin .../gregtech/textures/items/gt.metaitem.01/717.png | Bin .../gregtech/textures/items/gt.metaitem.01/718.png | Bin .../gregtech/textures/items/gt.metaitem.01/721.png | Bin .../gregtech/textures/items/gt.metaitem.01/722.png | Bin .../gregtech/textures/items/gt.metaitem.01/723.png | Bin .../gregtech/textures/items/gt.metaitem.01/727.png | Bin .../gregtech/textures/items/gt.metaitem.01/728.png | Bin .../gregtech/textures/items/gt.metaitem.01/729.png | Bin .../gregtech/textures/items/gt.metaitem.01/730.png | Bin .../gregtech/textures/items/gt.metaitem.01/731.png | Bin .../gregtech/textures/items/gt.metaitem.01/732.png | Bin .../gregtech/textures/items/gt.metaitem.01/733.png | Bin .../gregtech/textures/items/gt.metaitem.01/734.png | Bin .../gregtech/textures/items/gt.metaitem.01/735.png | Bin .../gregtech/textures/items/gt.metaitem.01/740.png | Bin .../gregtech/textures/items/gt.metaitem.01/741.png | Bin .../gregtech/textures/items/gt.metaitem.01/742.png | Bin .../gregtech/textures/items/gt.metaitem.01/744.png | Bin .../gregtech/textures/items/gt.metaitem.01/745.png | Bin .../gregtech/textures/items/gt.metaitem.01/746.png | Bin .../gregtech/textures/items/gt.metaitem.01/747.png | Bin .../gregtech/textures/items/gt.metaitem.01/748.png | Bin .../gregtech/textures/items/gt.metaitem.01/749.png | Bin .../gregtech/textures/items/gt.metaitem.01/750.png | Bin .../gregtech/textures/items/gt.metaitem.01/751.png | Bin .../gregtech/textures/items/gt.metaitem.01/752.png | Bin .../gregtech/textures/items/gt.metaitem.01/753.png | Bin .../gregtech/textures/items/gt.metaitem.01/754.png | Bin .../gregtech/textures/items/gt.metaitem.01/755.png | Bin .../gregtech/textures/items/gt.metaitem.01/756.png | Bin .../gregtech/textures/items/gt.metaitem.01/757.png | Bin .../gregtech/textures/items/gt.metaitem.01/758.png | Bin .../gregtech/textures/items/gt.metaitem.01/759.png | Bin .../gregtech/textures/items/gt.metaitem.01/760.png | Bin .../gregtech/textures/items/gt.metaitem.01/761.png | Bin .../gregtech/textures/items/gt.metaitem.01/762.png | Bin .../gregtech/textures/items/gt.metaitem.01/763.png | Bin .../gregtech/textures/items/gt.metaitem.01/764.png | Bin .../gregtech/textures/items/gt.metaitem.01/765.png | Bin .../gregtech/textures/items/gt.metaitem.01/8.png | Bin .../gregtech/textures/items/gt.metaitem.01/9.png | Bin .../gregtech/textures/items/gt.metaitem.02/0.png | Bin .../gregtech/textures/items/gt.metaitem.02/1.png | Bin .../gregtech/textures/items/gt.metaitem.02/100.png | Bin .../gregtech/textures/items/gt.metaitem.02/101.png | Bin .../gregtech/textures/items/gt.metaitem.02/102.png | Bin .../gregtech/textures/items/gt.metaitem.02/103.png | Bin .../gregtech/textures/items/gt.metaitem.02/104.png | Bin .../gregtech/textures/items/gt.metaitem.02/105.png | Bin .../gregtech/textures/items/gt.metaitem.02/106.png | Bin .../gregtech/textures/items/gt.metaitem.02/107.png | Bin .../gregtech/textures/items/gt.metaitem.02/108.png | Bin .../gregtech/textures/items/gt.metaitem.02/109.png | Bin .../gregtech/textures/items/gt.metaitem.02/110.png | Bin .../gregtech/textures/items/gt.metaitem.02/111.png | Bin .../gregtech/textures/items/gt.metaitem.02/112.png | Bin .../gregtech/textures/items/gt.metaitem.02/113.png | Bin .../gregtech/textures/items/gt.metaitem.02/114.png | Bin .../gregtech/textures/items/gt.metaitem.02/115.png | Bin .../gregtech/textures/items/gt.metaitem.02/116.png | Bin .../gregtech/textures/items/gt.metaitem.02/117.png | Bin .../gregtech/textures/items/gt.metaitem.02/118.png | Bin .../gregtech/textures/items/gt.metaitem.02/119.png | Bin .../gregtech/textures/items/gt.metaitem.02/120.png | Bin .../gregtech/textures/items/gt.metaitem.02/121.png | Bin .../gregtech/textures/items/gt.metaitem.02/122.png | Bin .../gregtech/textures/items/gt.metaitem.02/123.png | Bin .../gregtech/textures/items/gt.metaitem.02/124.png | Bin .../gregtech/textures/items/gt.metaitem.02/125.png | Bin .../gregtech/textures/items/gt.metaitem.02/126.png | Bin .../gregtech/textures/items/gt.metaitem.02/127.png | Bin .../gregtech/textures/items/gt.metaitem.02/128.png | Bin .../gregtech/textures/items/gt.metaitem.02/129.png | Bin .../gregtech/textures/items/gt.metaitem.02/130.png | Bin .../gregtech/textures/items/gt.metaitem.02/131.png | Bin .../gregtech/textures/items/gt.metaitem.02/132.png | Bin .../gregtech/textures/items/gt.metaitem.02/133.png | Bin .../gregtech/textures/items/gt.metaitem.02/134.png | Bin .../gregtech/textures/items/gt.metaitem.02/135.png | Bin .../gregtech/textures/items/gt.metaitem.02/136.png | Bin .../gregtech/textures/items/gt.metaitem.02/137.png | Bin .../gregtech/textures/items/gt.metaitem.02/2.png | Bin .../gregtech/textures/items/gt.metaitem.02/200.png | Bin .../gregtech/textures/items/gt.metaitem.02/201.png | Bin .../gregtech/textures/items/gt.metaitem.02/202.png | Bin .../gregtech/textures/items/gt.metaitem.02/203.png | Bin .../gregtech/textures/items/gt.metaitem.02/204.png | Bin .../gregtech/textures/items/gt.metaitem.02/205.png | Bin .../gregtech/textures/items/gt.metaitem.02/206.png | Bin .../gregtech/textures/items/gt.metaitem.02/207.png | Bin .../gregtech/textures/items/gt.metaitem.02/208.png | Bin .../gregtech/textures/items/gt.metaitem.02/209.png | Bin .../gregtech/textures/items/gt.metaitem.02/210.png | Bin .../gregtech/textures/items/gt.metaitem.02/211.png | Bin .../gregtech/textures/items/gt.metaitem.02/212.png | Bin .../gregtech/textures/items/gt.metaitem.02/213.png | Bin .../gregtech/textures/items/gt.metaitem.02/214.png | Bin .../gregtech/textures/items/gt.metaitem.02/220.png | Bin .../gregtech/textures/items/gt.metaitem.02/221.png | Bin .../gregtech/textures/items/gt.metaitem.02/222.png | Bin .../gregtech/textures/items/gt.metaitem.02/223.png | Bin .../gregtech/textures/items/gt.metaitem.02/224.png | Bin .../gregtech/textures/items/gt.metaitem.02/230.png | Bin .../gregtech/textures/items/gt.metaitem.02/231.png | Bin .../gregtech/textures/items/gt.metaitem.02/232.png | Bin .../gregtech/textures/items/gt.metaitem.02/233.png | Bin .../gregtech/textures/items/gt.metaitem.02/234.png | Bin .../gregtech/textures/items/gt.metaitem.02/240.png | Bin .../gregtech/textures/items/gt.metaitem.02/241.png | Bin .../gregtech/textures/items/gt.metaitem.02/242.png | Bin .../gregtech/textures/items/gt.metaitem.02/243.png | Bin .../gregtech/textures/items/gt.metaitem.02/244.png | Bin .../gregtech/textures/items/gt.metaitem.02/250.png | Bin .../gregtech/textures/items/gt.metaitem.02/251.png | Bin .../gregtech/textures/items/gt.metaitem.02/252.png | Bin .../gregtech/textures/items/gt.metaitem.02/260.png | Bin .../gregtech/textures/items/gt.metaitem.02/261.png | Bin .../gregtech/textures/items/gt.metaitem.02/262.png | Bin .../gregtech/textures/items/gt.metaitem.02/3.png | Bin .../gregtech/textures/items/gt.metaitem.02/4.png | Bin .../gregtech/textures/items/gt.metaitem.02/410.png | Bin .../gregtech/textures/items/gt.metaitem.02/414.png | Bin .../gregtech/textures/items/gt.metaitem.02/415.png | Bin .../gregtech/textures/items/gt.metaitem.02/416.png | Bin .../gregtech/textures/items/gt.metaitem.02/417.png | Bin .../gregtech/textures/items/gt.metaitem.02/418.png | Bin .../gregtech/textures/items/gt.metaitem.02/419.png | Bin .../gregtech/textures/items/gt.metaitem.02/420.png | Bin .../gregtech/textures/items/gt.metaitem.02/421.png | Bin .../gregtech/textures/items/gt.metaitem.02/422.png | Bin .../gregtech/textures/items/gt.metaitem.02/423.png | Bin .../gregtech/textures/items/gt.metaitem.02/424.png | Bin .../gregtech/textures/items/gt.metaitem.02/425.png | Bin .../gregtech/textures/items/gt.metaitem.02/426.png | Bin .../gregtech/textures/items/gt.metaitem.02/427.png | Bin .../gregtech/textures/items/gt.metaitem.02/428.png | Bin .../gregtech/textures/items/gt.metaitem.02/429.png | Bin .../gregtech/textures/items/gt.metaitem.02/470.png | Bin .../gregtech/textures/items/gt.metaitem.02/471.png | Bin .../gregtech/textures/items/gt.metaitem.02/472.png | Bin .../gregtech/textures/items/gt.metaitem.02/473.png | Bin .../gregtech/textures/items/gt.metaitem.02/474.png | Bin .../gregtech/textures/items/gt.metaitem.02/475.png | Bin .../gregtech/textures/items/gt.metaitem.02/476.png | Bin .../gregtech/textures/items/gt.metaitem.02/477.png | Bin .../gregtech/textures/items/gt.metaitem.02/478.png | Bin .../gregtech/textures/items/gt.metaitem.02/479.png | Bin .../gregtech/textures/items/gt.metaitem.02/480.png | Bin .../gregtech/textures/items/gt.metaitem.02/481.png | Bin .../gregtech/textures/items/gt.metaitem.02/482.png | Bin .../gregtech/textures/items/gt.metaitem.02/483.png | Bin .../gregtech/textures/items/gt.metaitem.02/484.png | Bin .../gregtech/textures/items/gt.metaitem.02/485.png | Bin .../gregtech/textures/items/gt.metaitem.02/486.png | Bin .../gregtech/textures/items/gt.metaitem.02/487.png | Bin .../gregtech/textures/items/gt.metaitem.02/488.png | Bin .../gregtech/textures/items/gt.metaitem.02/489.png | Bin .../gregtech/textures/items/gt.metaitem.02/490.png | Bin .../gregtech/textures/items/gt.metaitem.02/491.png | Bin .../gregtech/textures/items/gt.metaitem.02/492.png | Bin .../gregtech/textures/items/gt.metaitem.02/493.png | Bin .../gregtech/textures/items/gt.metaitem.02/494.png | Bin .../gregtech/textures/items/gt.metaitem.02/495.png | Bin .../gregtech/textures/items/gt.metaitem.02/496.png | Bin .../gregtech/textures/items/gt.metaitem.02/497.png | Bin .../gregtech/textures/items/gt.metaitem.02/498.png | Bin .../gregtech/textures/items/gt.metaitem.02/499.png | Bin .../gregtech/textures/items/gt.metaitem.02/5.png | Bin .../gregtech/textures/items/gt.metaitem.02/500.png | Bin .../gregtech/textures/items/gt.metaitem.02/501.png | Bin .../gregtech/textures/items/gt.metaitem.02/502.png | Bin .../gregtech/textures/items/gt.metaitem.02/503.png | Bin .../gregtech/textures/items/gt.metaitem.02/504.png | Bin .../gregtech/textures/items/gt.metaitem.02/505.png | Bin .../gregtech/textures/items/gt.metaitem.02/510.png | Bin .../gregtech/textures/items/gt.metaitem.02/511.png | Bin .../gregtech/textures/items/gt.metaitem.02/520.png | Bin .../gregtech/textures/items/gt.metaitem.02/530.png | Bin .../gregtech/textures/items/gt.metaitem.02/540.png | Bin .../gregtech/textures/items/gt.metaitem.02/550.png | Bin .../gregtech/textures/items/gt.metaitem.02/551.png | Bin .../gregtech/textures/items/gt.metaitem.02/552.png | Bin .../gregtech/textures/items/gt.metaitem.02/553.png | Bin .../gregtech/textures/items/gt.metaitem.02/554.png | Bin .../gregtech/textures/items/gt.metaitem.02/555.png | Bin .../gregtech/textures/items/gt.metaitem.02/556.png | Bin .../gregtech/textures/items/gt.metaitem.02/558.png | Bin .../gregtech/textures/items/gt.metaitem.02/559.png | Bin .../gregtech/textures/items/gt.metaitem.02/560.png | Bin .../gregtech/textures/items/gt.metaitem.02/561.png | Bin .../gregtech/textures/items/gt.metaitem.02/562.png | Bin .../gregtech/textures/items/gt.metaitem.02/563.png | Bin .../gregtech/textures/items/gt.metaitem.02/564.png | Bin .../gregtech/textures/items/gt.metaitem.02/565.png | Bin .../gregtech/textures/items/gt.metaitem.02/566.png | Bin .../gregtech/textures/items/gt.metaitem.02/567.png | Bin .../gregtech/textures/items/gt.metaitem.02/568.png | Bin .../gregtech/textures/items/gt.metaitem.02/569.png | Bin .../gregtech/textures/items/gt.metaitem.02/570.png | Bin .../gregtech/textures/items/gt.metaitem.02/571.png | Bin .../gregtech/textures/items/gt.metaitem.02/572.png | Bin .../gregtech/textures/items/gt.metaitem.02/573.png | Bin .../gregtech/textures/items/gt.metaitem.02/574.png | Bin .../gregtech/textures/items/gt.metaitem.02/576.png | Bin .../gregtech/textures/items/gt.metaitem.02/6.png | Bin .../gregtech/textures/items/gt.metaitem.02/7.png | Bin .../gregtech/textures/items/gt.metaitem.02/766.png | Bin .../gregtech/textures/items/gt.metaitem.02/8.png | Bin .../gregtech/textures/items/gt.metaitem.02/9.png | Bin .../gregtech/textures/items/gt.neutronreflector.png | Bin .../gregtech/textures/items/gt.sensorcard.png | Bin .../textures/items/iconsets/BUTCHERYKNIFE.png | Bin .../items/iconsets/BUTCHERYKNIFE_OVERLAY.png | Bin .../gregtech/textures/items/iconsets/CROWBAR.png | Bin .../textures/items/iconsets/CROWBAR_OVERLAY.png | Bin .../textures/items/iconsets/DURABILITY_BAR_0.png | Bin .../items/iconsets/DURABILITY_BAR_0_OVERLAY.png | Bin .../textures/items/iconsets/DURABILITY_BAR_1.png | Bin .../items/iconsets/DURABILITY_BAR_1_OVERLAY.png | Bin .../textures/items/iconsets/DURABILITY_BAR_2.png | Bin .../items/iconsets/DURABILITY_BAR_2_OVERLAY.png | Bin .../textures/items/iconsets/DURABILITY_BAR_3.png | Bin .../items/iconsets/DURABILITY_BAR_3_OVERLAY.png | Bin .../textures/items/iconsets/DURABILITY_BAR_4.png | Bin .../items/iconsets/DURABILITY_BAR_4_OVERLAY.png | Bin .../textures/items/iconsets/DURABILITY_BAR_5.png | Bin .../items/iconsets/DURABILITY_BAR_5_OVERLAY.png | Bin .../textures/items/iconsets/DURABILITY_BAR_6.png | Bin .../items/iconsets/DURABILITY_BAR_6_OVERLAY.png | Bin .../textures/items/iconsets/DURABILITY_BAR_7.png | Bin .../items/iconsets/DURABILITY_BAR_7_OVERLAY.png | Bin .../textures/items/iconsets/DURABILITY_BAR_8.png | Bin .../items/iconsets/DURABILITY_BAR_8_OVERLAY.png | Bin .../textures/items/iconsets/ENERGY_BAR_0.png | Bin .../items/iconsets/ENERGY_BAR_0_OVERLAY.png | Bin .../textures/items/iconsets/ENERGY_BAR_1.png | Bin .../items/iconsets/ENERGY_BAR_1_OVERLAY.png | Bin .../textures/items/iconsets/ENERGY_BAR_2.png | Bin .../items/iconsets/ENERGY_BAR_2_OVERLAY.png | Bin .../textures/items/iconsets/ENERGY_BAR_3.png | Bin .../items/iconsets/ENERGY_BAR_3_OVERLAY.png | Bin .../textures/items/iconsets/ENERGY_BAR_4.png | Bin .../items/iconsets/ENERGY_BAR_4_OVERLAY.png | Bin .../textures/items/iconsets/ENERGY_BAR_5.png | Bin .../items/iconsets/ENERGY_BAR_5_OVERLAY.png | Bin .../textures/items/iconsets/ENERGY_BAR_6.png | Bin .../items/iconsets/ENERGY_BAR_6_OVERLAY.png | Bin .../textures/items/iconsets/ENERGY_BAR_7.png | Bin .../items/iconsets/ENERGY_BAR_7_OVERLAY.png | Bin .../textures/items/iconsets/ENERGY_BAR_8.png | Bin .../items/iconsets/ENERGY_BAR_8_OVERLAY.png | Bin .../gregtech/textures/items/iconsets/GRAFTER.png | Bin .../textures/items/iconsets/GRAFTER_OVERLAY.png | Bin .../textures/items/iconsets/HANDLE_BUZZSAW.png | Bin .../items/iconsets/HANDLE_BUZZSAW_OVERLAY.png | Bin .../items/iconsets/HANDLE_ELECTRIC_SCREWDRIVER.png | Bin .../HANDLE_ELECTRIC_SCREWDRIVER_OVERLAY.png | Bin .../textures/items/iconsets/HANDLE_FILE.png | Bin .../textures/items/iconsets/HANDLE_FILE_OVERLAY.png | Bin .../gregtech/textures/items/iconsets/HANDLE_SAW.png | Bin .../textures/items/iconsets/HANDLE_SAW_OVERLAY.png | Bin .../textures/items/iconsets/HANDLE_SCREWDRIVER.png | Bin .../items/iconsets/HANDLE_SCREWDRIVER_OVERLAY.png | Bin .../textures/items/iconsets/HANDLE_SOLDERING.png | Bin .../items/iconsets/HANDLE_SOLDERING_OVERLAY.png | Bin .../textures/items/iconsets/HANDLE_SWORD.png | Bin .../items/iconsets/HANDLE_SWORD_OVERLAY.png | Bin .../gregtech/textures/items/iconsets/JACKHAMMER.png | Bin .../textures/items/iconsets/JACKHAMMER_OVERLAY.png | Bin .../gregtech/textures/items/iconsets/KNIFE.png | Bin .../textures/items/iconsets/KNIFE_OVERLAY.png | Bin .../gregtech/textures/items/iconsets/MORTAR.png | Bin .../textures/items/iconsets/MORTAR_OVERLAY.png | Bin .../gregtech/textures/items/iconsets/PLUNGER.png | Bin .../textures/items/iconsets/PLUNGER_OVERLAY.png | Bin .../textures/items/iconsets/POWER_UNIT_HV.png | Bin .../items/iconsets/POWER_UNIT_HV_OVERLAY.png | Bin .../textures/items/iconsets/POWER_UNIT_LV.png | Bin .../items/iconsets/POWER_UNIT_LV_OVERLAY.png | Bin .../textures/items/iconsets/POWER_UNIT_MV.png | Bin .../items/iconsets/POWER_UNIT_MV_OVERLAY.png | Bin .../textures/items/iconsets/RENDERING_ERROR.png | Bin .../items/iconsets/RENDERING_ERROR_OVERLAY.png | Bin .../textures/items/iconsets/ROLLING_PIN.png | Bin .../textures/items/iconsets/ROLLING_PIN_OVERLAY.png | Bin .../gregtech/textures/items/iconsets/SCOOP.png | Bin .../textures/items/iconsets/SCOOP_OVERLAY.png | Bin .../gregtech/textures/items/iconsets/SICKLE.png | Bin .../textures/items/iconsets/SICKLE_OVERLAY.png | Bin .../gregtech/textures/items/iconsets/TURBINE.png | Bin .../textures/items/iconsets/TURBINE_HUGE.png | Bin .../items/iconsets/TURBINE_HUGE_OVERLAY.png | Bin .../textures/items/iconsets/TURBINE_LARGE.png | Bin .../items/iconsets/TURBINE_LARGE_OVERLAY.png | Bin .../textures/items/iconsets/TURBINE_OVERLAY.png | Bin .../textures/items/iconsets/TURBINE_SMALL.png | Bin .../items/iconsets/TURBINE_SMALL_OVERLAY.png | Bin .../gregtech/textures/items/iconsets/VOID.png | Bin .../textures/items/iconsets/VOID_OVERLAY.png | Bin .../textures/items/iconsets/WIRE_CUTTER.png | Bin .../textures/items/iconsets/WIRE_CUTTER_OVERLAY.png | Bin .../gregtech/textures/items/iconsets/WRENCH.png | Bin .../textures/items/iconsets/WRENCH_OVERLAY.png | Bin .../items/materialicons/DIAMOND/TURBINE_BLADE.png | Bin .../materialicons/DIAMOND/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/DIAMOND/arrowGtPlastic.png | Bin .../DIAMOND/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/DIAMOND/arrowGtWood.png | Bin .../materialicons/DIAMOND/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/DIAMOND/bolt.png | Bin .../items/materialicons/DIAMOND/bolt_OVERLAY.png | Bin .../textures/items/materialicons/DIAMOND/cell.png | Bin .../items/materialicons/DIAMOND/cellPlasma.png | Bin .../materialicons/DIAMOND/cellPlasma_OVERLAY.png | Bin .../items/materialicons/DIAMOND/cell_OVERLAY.png | Bin .../items/materialicons/DIAMOND/crateGtDust.png | Bin .../materialicons/DIAMOND/crateGtDust_OVERLAY.png | Bin .../items/materialicons/DIAMOND/crateGtGem.png | Bin .../materialicons/DIAMOND/crateGtGem_OVERLAY.png | Bin .../items/materialicons/DIAMOND/crateGtIngot.png | Bin .../materialicons/DIAMOND/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/DIAMOND/crateGtPlate.png | Bin .../materialicons/DIAMOND/crateGtPlate_OVERLAY.png | Bin .../items/materialicons/DIAMOND/crushed.png | Bin .../materialicons/DIAMOND/crushedCentrifuged.png | Bin .../DIAMOND/crushedCentrifuged_OVERLAY.png | Bin .../items/materialicons/DIAMOND/crushedPurified.png | Bin .../DIAMOND/crushedPurified_OVERLAY.png | Bin .../items/materialicons/DIAMOND/crushed_OVERLAY.png | Bin .../textures/items/materialicons/DIAMOND/dust.png | Bin .../items/materialicons/DIAMOND/dustImpure.png | Bin .../materialicons/DIAMOND/dustImpure_OVERLAY.png | Bin .../items/materialicons/DIAMOND/dustPure.png | Bin .../materialicons/DIAMOND/dustPure_OVERLAY.png | Bin .../items/materialicons/DIAMOND/dustSmall.png | Bin .../materialicons/DIAMOND/dustSmall_OVERLAY.png | Bin .../items/materialicons/DIAMOND/dustTiny.png | Bin .../materialicons/DIAMOND/dustTiny_OVERLAY.png | Bin .../items/materialicons/DIAMOND/dust_OVERLAY.png | Bin .../textures/items/materialicons/DIAMOND/foil.png | Bin .../items/materialicons/DIAMOND/foil_OVERLAY.png | Bin .../textures/items/materialicons/DIAMOND/gearGt.png | Bin .../items/materialicons/DIAMOND/gearGtSmall.png | Bin .../materialicons/DIAMOND/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/DIAMOND/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/DIAMOND/gem.png | Bin .../items/materialicons/DIAMOND/gemChipped.png | Bin .../materialicons/DIAMOND/gemChipped_OVERLAY.png | Bin .../items/materialicons/DIAMOND/gemExquisite.png | Bin .../materialicons/DIAMOND/gemExquisite_OVERLAY.png | Bin .../items/materialicons/DIAMOND/gemFlawed.png | Bin .../materialicons/DIAMOND/gemFlawed_OVERLAY.png | Bin .../items/materialicons/DIAMOND/gemFlawless.png | Bin .../materialicons/DIAMOND/gemFlawless_OVERLAY.png | Bin .../items/materialicons/DIAMOND/gem_OVERLAY.png | Bin .../textures/items/materialicons/DIAMOND/ingot.png | Bin .../items/materialicons/DIAMOND/ingotDouble.png | Bin .../materialicons/DIAMOND/ingotDouble_OVERLAY.png | Bin .../items/materialicons/DIAMOND/ingotHot.png | Bin .../materialicons/DIAMOND/ingotHot_OVERLAY.png | Bin .../items/materialicons/DIAMOND/ingotQuadruple.png | Bin .../DIAMOND/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/DIAMOND/ingotQuintuple.png | Bin .../DIAMOND/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/DIAMOND/ingotTriple.png | Bin .../materialicons/DIAMOND/ingotTriple_OVERLAY.png | Bin .../items/materialicons/DIAMOND/ingot_OVERLAY.png | Bin .../textures/items/materialicons/DIAMOND/lens.png | Bin .../items/materialicons/DIAMOND/lens_OVERLAY.png | Bin .../textures/items/materialicons/DIAMOND/nugget.png | Bin .../items/materialicons/DIAMOND/nugget_OVERLAY.png | Bin .../textures/items/materialicons/DIAMOND/plate.png | Bin .../items/materialicons/DIAMOND/plateDense.png | Bin .../materialicons/DIAMOND/plateDense_OVERLAY.png | Bin .../items/materialicons/DIAMOND/plateDouble.png | Bin .../materialicons/DIAMOND/plateDouble_OVERLAY.png | Bin .../items/materialicons/DIAMOND/plateQuadruple.png | Bin .../DIAMOND/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/DIAMOND/plateQuintuple.png | Bin .../DIAMOND/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/DIAMOND/plateTriple.png | Bin .../materialicons/DIAMOND/plateTriple_OVERLAY.png | Bin .../items/materialicons/DIAMOND/plate_OVERLAY.png | Bin .../textures/items/materialicons/DIAMOND/ring.png | Bin .../items/materialicons/DIAMOND/ring_OVERLAY.png | Bin .../textures/items/materialicons/DIAMOND/rotor.png | Bin .../items/materialicons/DIAMOND/rotor_OVERLAY.png | Bin .../textures/items/materialicons/DIAMOND/round.png | Bin .../items/materialicons/DIAMOND/round_OVERLAY.png | Bin .../textures/items/materialicons/DIAMOND/screw.png | Bin .../items/materialicons/DIAMOND/screw_OVERLAY.png | Bin .../textures/items/materialicons/DIAMOND/spring.png | Bin .../items/materialicons/DIAMOND/springSmall.png | Bin .../materialicons/DIAMOND/springSmall_OVERLAY.png | Bin .../items/materialicons/DIAMOND/spring_OVERLAY.png | Bin .../textures/items/materialicons/DIAMOND/stick.png | Bin .../items/materialicons/DIAMOND/stickLong.png | Bin .../materialicons/DIAMOND/stickLong_OVERLAY.png | Bin .../items/materialicons/DIAMOND/stick_OVERLAY.png | Bin .../items/materialicons/DIAMOND/toolHeadArrow.png | Bin .../materialicons/DIAMOND/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/DIAMOND/toolHeadAxe.png | Bin .../materialicons/DIAMOND/toolHeadAxe_OVERLAY.png | Bin .../items/materialicons/DIAMOND/toolHeadBuzzSaw.png | Bin .../DIAMOND/toolHeadBuzzSaw_OVERLAY.png | Bin .../materialicons/DIAMOND/toolHeadChainsaw.png | Bin .../DIAMOND/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/DIAMOND/toolHeadDrill.png | Bin .../materialicons/DIAMOND/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/DIAMOND/toolHeadFile.png | Bin .../materialicons/DIAMOND/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/DIAMOND/toolHeadHammer.png | Bin .../DIAMOND/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/DIAMOND/toolHeadHoe.png | Bin .../materialicons/DIAMOND/toolHeadHoe_OVERLAY.png | Bin .../items/materialicons/DIAMOND/toolHeadPickaxe.png | Bin .../DIAMOND/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/DIAMOND/toolHeadPlow.png | Bin .../materialicons/DIAMOND/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/DIAMOND/toolHeadSaw.png | Bin .../materialicons/DIAMOND/toolHeadSaw_OVERLAY.png | Bin .../materialicons/DIAMOND/toolHeadScrewdriver.png | Bin .../DIAMOND/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/DIAMOND/toolHeadSense.png | Bin .../materialicons/DIAMOND/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/DIAMOND/toolHeadShovel.png | Bin .../DIAMOND/toolHeadShovel_OVERLAY.png | Bin .../materialicons/DIAMOND/toolHeadSoldering.png | Bin .../DIAMOND/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/DIAMOND/toolHeadSword.png | Bin .../materialicons/DIAMOND/toolHeadSword_OVERLAY.png | Bin .../DIAMOND/toolHeadUniversalSpade.png | Bin .../DIAMOND/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/DIAMOND/toolHeadWrench.png | Bin .../DIAMOND/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/DIAMOND/turbineBlade.png | Bin .../materialicons/DIAMOND/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/DIAMOND/void.png | Bin .../items/materialicons/DIAMOND/void_OVERLAY.png | Bin .../items/materialicons/DIAMOND/wireFine.png | Bin .../materialicons/DIAMOND/wireFine_OVERLAY.png | Bin .../items/materialicons/DULL/TURBINE_BLADE.png | Bin .../materialicons/DULL/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/DULL/arrowGtPlastic.png | Bin .../materialicons/DULL/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/DULL/arrowGtWood.png | Bin .../materialicons/DULL/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/DULL/bolt.png | Bin .../items/materialicons/DULL/bolt_OVERLAY.png | Bin .../textures/items/materialicons/DULL/cell.png | Bin .../items/materialicons/DULL/cellPlasma.png | Bin .../items/materialicons/DULL/cellPlasma_OVERLAY.png | Bin .../items/materialicons/DULL/cell_OVERLAY.png | Bin .../items/materialicons/DULL/crateGtDust.png | Bin .../materialicons/DULL/crateGtDust_OVERLAY.png | Bin .../items/materialicons/DULL/crateGtGem.png | Bin .../items/materialicons/DULL/crateGtGem_OVERLAY.png | Bin .../items/materialicons/DULL/crateGtIngot.png | Bin .../materialicons/DULL/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/DULL/crateGtPlate.png | Bin .../materialicons/DULL/crateGtPlate_OVERLAY.png | Bin .../textures/items/materialicons/DULL/crushed.png | Bin .../items/materialicons/DULL/crushedCentrifuged.png | Bin .../DULL/crushedCentrifuged_OVERLAY.png | Bin .../items/materialicons/DULL/crushedPurified.png | Bin .../materialicons/DULL/crushedPurified_OVERLAY.png | Bin .../items/materialicons/DULL/crushed_OVERLAY.png | Bin .../textures/items/materialicons/DULL/dust.png | Bin .../items/materialicons/DULL/dustImpure.png | Bin .../items/materialicons/DULL/dustImpure_OVERLAY.png | Bin .../textures/items/materialicons/DULL/dustPure.png | Bin .../items/materialicons/DULL/dustPure_OVERLAY.png | Bin .../textures/items/materialicons/DULL/dustSmall.png | Bin .../items/materialicons/DULL/dustSmall_OVERLAY.png | Bin .../textures/items/materialicons/DULL/dustTiny.png | Bin .../items/materialicons/DULL/dustTiny_OVERLAY.png | Bin .../items/materialicons/DULL/dust_OVERLAY.png | Bin .../textures/items/materialicons/DULL/foil.png | Bin .../items/materialicons/DULL/foil_OVERLAY.png | Bin .../textures/items/materialicons/DULL/gearGt.png | Bin .../items/materialicons/DULL/gearGtSmall.png | Bin .../materialicons/DULL/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/DULL/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/DULL/gem.png | Bin .../items/materialicons/DULL/gemChipped.png | Bin .../items/materialicons/DULL/gemChipped_OVERLAY.png | Bin .../items/materialicons/DULL/gemExquisite.png | Bin .../materialicons/DULL/gemExquisite_OVERLAY.png | Bin .../textures/items/materialicons/DULL/gemFlawed.png | Bin .../items/materialicons/DULL/gemFlawed_OVERLAY.png | Bin .../items/materialicons/DULL/gemFlawless.png | Bin .../materialicons/DULL/gemFlawless_OVERLAY.png | Bin .../items/materialicons/DULL/gem_OVERLAY.png | Bin .../textures/items/materialicons/DULL/ingot.png | Bin .../items/materialicons/DULL/ingotDouble.png | Bin .../materialicons/DULL/ingotDouble_OVERLAY.png | Bin .../textures/items/materialicons/DULL/ingotHot.png | Bin .../items/materialicons/DULL/ingotHot_OVERLAY.png | Bin .../items/materialicons/DULL/ingotQuadruple.png | Bin .../materialicons/DULL/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/DULL/ingotQuintuple.png | Bin .../materialicons/DULL/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/DULL/ingotTriple.png | Bin .../materialicons/DULL/ingotTriple_OVERLAY.png | Bin .../items/materialicons/DULL/ingot_OVERLAY.png | Bin .../textures/items/materialicons/DULL/lens.png | Bin .../items/materialicons/DULL/lens_OVERLAY.png | Bin .../textures/items/materialicons/DULL/nugget.png | Bin .../items/materialicons/DULL/nugget_OVERLAY.png | Bin .../textures/items/materialicons/DULL/plate.png | Bin .../items/materialicons/DULL/plateDense.png | Bin .../items/materialicons/DULL/plateDense_OVERLAY.png | Bin .../items/materialicons/DULL/plateDouble.png | Bin .../materialicons/DULL/plateDouble_OVERLAY.png | Bin .../items/materialicons/DULL/plateQuadruple.png | Bin .../materialicons/DULL/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/DULL/plateQuintuple.png | Bin .../materialicons/DULL/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/DULL/plateTriple.png | Bin .../materialicons/DULL/plateTriple_OVERLAY.png | Bin .../items/materialicons/DULL/plate_OVERLAY.png | Bin .../textures/items/materialicons/DULL/ring.png | Bin .../items/materialicons/DULL/ring_OVERLAY.png | Bin .../textures/items/materialicons/DULL/rotor.png | Bin .../items/materialicons/DULL/rotor_OVERLAY.png | Bin .../textures/items/materialicons/DULL/round.png | Bin .../items/materialicons/DULL/round_OVERLAY.png | Bin .../textures/items/materialicons/DULL/screw.png | Bin .../items/materialicons/DULL/screw_OVERLAY.png | Bin .../textures/items/materialicons/DULL/spring.png | Bin .../items/materialicons/DULL/springSmall.png | Bin .../materialicons/DULL/springSmall_OVERLAY.png | Bin .../items/materialicons/DULL/spring_OVERLAY.png | Bin .../textures/items/materialicons/DULL/stick.png | Bin .../textures/items/materialicons/DULL/stickLong.png | Bin .../items/materialicons/DULL/stickLong_OVERLAY.png | Bin .../items/materialicons/DULL/stick_OVERLAY.png | Bin .../items/materialicons/DULL/toolHeadArrow.png | Bin .../materialicons/DULL/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/DULL/toolHeadAxe.png | Bin .../materialicons/DULL/toolHeadAxe_OVERLAY.png | Bin .../items/materialicons/DULL/toolHeadBuzzSaw.png | Bin .../materialicons/DULL/toolHeadBuzzSaw_OVERLAY.png | Bin .../items/materialicons/DULL/toolHeadChainsaw.png | Bin .../materialicons/DULL/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/DULL/toolHeadDrill.png | Bin .../materialicons/DULL/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/DULL/toolHeadFile.png | Bin .../materialicons/DULL/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/DULL/toolHeadHammer.png | Bin .../materialicons/DULL/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/DULL/toolHeadHoe.png | Bin .../materialicons/DULL/toolHeadHoe_OVERLAY.png | Bin .../items/materialicons/DULL/toolHeadPickaxe.png | Bin .../materialicons/DULL/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/DULL/toolHeadPlow.png | Bin .../materialicons/DULL/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/DULL/toolHeadSaw.png | Bin .../materialicons/DULL/toolHeadSaw_OVERLAY.png | Bin .../materialicons/DULL/toolHeadScrewdriver.png | Bin .../DULL/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/DULL/toolHeadSense.png | Bin .../materialicons/DULL/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/DULL/toolHeadShovel.png | Bin .../materialicons/DULL/toolHeadShovel_OVERLAY.png | Bin .../items/materialicons/DULL/toolHeadSoldering.png | Bin .../DULL/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/DULL/toolHeadSword.png | Bin .../materialicons/DULL/toolHeadSword_OVERLAY.png | Bin .../materialicons/DULL/toolHeadUniversalSpade.png | Bin .../DULL/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/DULL/toolHeadWrench.png | Bin .../materialicons/DULL/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/DULL/turbineBlade.png | Bin .../materialicons/DULL/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/DULL/void.png | Bin .../items/materialicons/DULL/void_OVERLAY.png | Bin .../textures/items/materialicons/DULL/wireFine.png | Bin .../items/materialicons/DULL/wireFine_OVERLAY.png | Bin .../items/materialicons/EMERALD/TURBINE_BLADE.png | Bin .../materialicons/EMERALD/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/EMERALD/arrowGtPlastic.png | Bin .../EMERALD/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/EMERALD/arrowGtWood.png | Bin .../materialicons/EMERALD/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/EMERALD/bolt.png | Bin .../items/materialicons/EMERALD/bolt_OVERLAY.png | Bin .../textures/items/materialicons/EMERALD/cell.png | Bin .../items/materialicons/EMERALD/cellPlasma.png | Bin .../materialicons/EMERALD/cellPlasma_OVERLAY.png | Bin .../items/materialicons/EMERALD/cell_OVERLAY.png | Bin .../items/materialicons/EMERALD/crateGtDust.png | Bin .../materialicons/EMERALD/crateGtDust_OVERLAY.png | Bin .../items/materialicons/EMERALD/crateGtGem.png | Bin .../materialicons/EMERALD/crateGtGem_OVERLAY.png | Bin .../items/materialicons/EMERALD/crateGtIngot.png | Bin .../materialicons/EMERALD/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/EMERALD/crateGtPlate.png | Bin .../materialicons/EMERALD/crateGtPlate_OVERLAY.png | Bin .../items/materialicons/EMERALD/crushed.png | Bin .../materialicons/EMERALD/crushedCentrifuged.png | Bin .../EMERALD/crushedCentrifuged_OVERLAY.png | Bin .../items/materialicons/EMERALD/crushedPurified.png | Bin .../EMERALD/crushedPurified_OVERLAY.png | Bin .../items/materialicons/EMERALD/crushed_OVERLAY.png | Bin .../textures/items/materialicons/EMERALD/dust.png | Bin .../items/materialicons/EMERALD/dustImpure.png | Bin .../materialicons/EMERALD/dustImpure_OVERLAY.png | Bin .../items/materialicons/EMERALD/dustPure.png | Bin .../materialicons/EMERALD/dustPure_OVERLAY.png | Bin .../items/materialicons/EMERALD/dustSmall.png | Bin .../materialicons/EMERALD/dustSmall_OVERLAY.png | Bin .../items/materialicons/EMERALD/dustTiny.png | Bin .../materialicons/EMERALD/dustTiny_OVERLAY.png | Bin .../items/materialicons/EMERALD/dust_OVERLAY.png | Bin .../textures/items/materialicons/EMERALD/foil.png | Bin .../items/materialicons/EMERALD/foil_OVERLAY.png | Bin .../textures/items/materialicons/EMERALD/gearGt.png | Bin .../items/materialicons/EMERALD/gearGtSmall.png | Bin .../materialicons/EMERALD/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/EMERALD/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/EMERALD/gem.png | Bin .../items/materialicons/EMERALD/gemChipped.png | Bin .../materialicons/EMERALD/gemChipped_OVERLAY.png | Bin .../items/materialicons/EMERALD/gemExquisite.png | Bin .../materialicons/EMERALD/gemExquisite_OVERLAY.png | Bin .../items/materialicons/EMERALD/gemFlawed.png | Bin .../materialicons/EMERALD/gemFlawed_OVERLAY.png | Bin .../items/materialicons/EMERALD/gemFlawless.png | Bin .../materialicons/EMERALD/gemFlawless_OVERLAY.png | Bin .../items/materialicons/EMERALD/gem_OVERLAY.png | Bin .../textures/items/materialicons/EMERALD/ingot.png | Bin .../items/materialicons/EMERALD/ingotDouble.png | Bin .../materialicons/EMERALD/ingotDouble_OVERLAY.png | Bin .../items/materialicons/EMERALD/ingotHot.png | Bin .../materialicons/EMERALD/ingotHot_OVERLAY.png | Bin .../items/materialicons/EMERALD/ingotQuadruple.png | Bin .../EMERALD/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/EMERALD/ingotQuintuple.png | Bin .../EMERALD/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/EMERALD/ingotTriple.png | Bin .../materialicons/EMERALD/ingotTriple_OVERLAY.png | Bin .../items/materialicons/EMERALD/ingot_OVERLAY.png | Bin .../textures/items/materialicons/EMERALD/lens.png | Bin .../items/materialicons/EMERALD/lens_OVERLAY.png | Bin .../textures/items/materialicons/EMERALD/nugget.png | Bin .../items/materialicons/EMERALD/nugget_OVERLAY.png | Bin .../textures/items/materialicons/EMERALD/plate.png | Bin .../items/materialicons/EMERALD/plateDense.png | Bin .../materialicons/EMERALD/plateDense_OVERLAY.png | Bin .../items/materialicons/EMERALD/plateDouble.png | Bin .../materialicons/EMERALD/plateDouble_OVERLAY.png | Bin .../items/materialicons/EMERALD/plateQuadruple.png | Bin .../EMERALD/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/EMERALD/plateQuintuple.png | Bin .../EMERALD/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/EMERALD/plateTriple.png | Bin .../materialicons/EMERALD/plateTriple_OVERLAY.png | Bin .../items/materialicons/EMERALD/plate_OVERLAY.png | Bin .../textures/items/materialicons/EMERALD/ring.png | Bin .../items/materialicons/EMERALD/ring_OVERLAY.png | Bin .../textures/items/materialicons/EMERALD/rotor.png | Bin .../items/materialicons/EMERALD/rotor_OVERLAY.png | Bin .../textures/items/materialicons/EMERALD/round.png | Bin .../items/materialicons/EMERALD/round_OVERLAY.png | Bin .../textures/items/materialicons/EMERALD/screw.png | Bin .../items/materialicons/EMERALD/screw_OVERLAY.png | Bin .../textures/items/materialicons/EMERALD/spring.png | Bin .../items/materialicons/EMERALD/springSmall.png | Bin .../materialicons/EMERALD/springSmall_OVERLAY.png | Bin .../items/materialicons/EMERALD/spring_OVERLAY.png | Bin .../textures/items/materialicons/EMERALD/stick.png | Bin .../items/materialicons/EMERALD/stickLong.png | Bin .../materialicons/EMERALD/stickLong_OVERLAY.png | Bin .../items/materialicons/EMERALD/stick_OVERLAY.png | Bin .../items/materialicons/EMERALD/toolHeadArrow.png | Bin .../materialicons/EMERALD/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/EMERALD/toolHeadAxe.png | Bin .../materialicons/EMERALD/toolHeadAxe_OVERLAY.png | Bin .../items/materialicons/EMERALD/toolHeadBuzzSaw.png | Bin .../EMERALD/toolHeadBuzzSaw_OVERLAY.png | Bin .../materialicons/EMERALD/toolHeadChainsaw.png | Bin .../EMERALD/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/EMERALD/toolHeadDrill.png | Bin .../materialicons/EMERALD/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/EMERALD/toolHeadFile.png | Bin .../materialicons/EMERALD/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/EMERALD/toolHeadHammer.png | Bin .../EMERALD/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/EMERALD/toolHeadHoe.png | Bin .../materialicons/EMERALD/toolHeadHoe_OVERLAY.png | Bin .../items/materialicons/EMERALD/toolHeadPickaxe.png | Bin .../EMERALD/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/EMERALD/toolHeadPlow.png | Bin .../materialicons/EMERALD/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/EMERALD/toolHeadSaw.png | Bin .../materialicons/EMERALD/toolHeadSaw_OVERLAY.png | Bin .../materialicons/EMERALD/toolHeadScrewdriver.png | Bin .../EMERALD/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/EMERALD/toolHeadSense.png | Bin .../materialicons/EMERALD/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/EMERALD/toolHeadShovel.png | Bin .../EMERALD/toolHeadShovel_OVERLAY.png | Bin .../materialicons/EMERALD/toolHeadSoldering.png | Bin .../EMERALD/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/EMERALD/toolHeadSword.png | Bin .../materialicons/EMERALD/toolHeadSword_OVERLAY.png | Bin .../EMERALD/toolHeadUniversalSpade.png | Bin .../EMERALD/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/EMERALD/toolHeadWrench.png | Bin .../EMERALD/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/EMERALD/turbineBlade.png | Bin .../materialicons/EMERALD/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/EMERALD/void.png | Bin .../items/materialicons/EMERALD/void_OVERLAY.png | Bin .../items/materialicons/EMERALD/wireFine.png | Bin .../materialicons/EMERALD/wireFine_OVERLAY.png | Bin .../items/materialicons/FIERY/TURBINE_BLADE.png | Bin .../materialicons/FIERY/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/FIERY/arrowGtPlastic.png | Bin .../materialicons/FIERY/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/FIERY/arrowGtWood.png | Bin .../materialicons/FIERY/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/FIERY/bolt.png | Bin .../items/materialicons/FIERY/bolt_OVERLAY.png | Bin .../textures/items/materialicons/FIERY/cell.png | Bin .../items/materialicons/FIERY/cellPlasma.png | Bin .../materialicons/FIERY/cellPlasma_OVERLAY.png | Bin .../items/materialicons/FIERY/cell_OVERLAY.png | Bin .../items/materialicons/FIERY/crateGtDust.png | Bin .../materialicons/FIERY/crateGtDust_OVERLAY.png | Bin .../items/materialicons/FIERY/crateGtGem.png | Bin .../materialicons/FIERY/crateGtGem_OVERLAY.png | Bin .../items/materialicons/FIERY/crateGtIngot.png | Bin .../materialicons/FIERY/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/FIERY/crateGtPlate.png | Bin .../materialicons/FIERY/crateGtPlate_OVERLAY.png | Bin .../textures/items/materialicons/FIERY/crushed.png | Bin .../materialicons/FIERY/crushedCentrifuged.png | Bin .../FIERY/crushedCentrifuged_OVERLAY.png | Bin .../items/materialicons/FIERY/crushedPurified.png | Bin .../materialicons/FIERY/crushedPurified_OVERLAY.png | Bin .../items/materialicons/FIERY/crushed_OVERLAY.png | Bin .../textures/items/materialicons/FIERY/dust.png | Bin .../items/materialicons/FIERY/dustImpure.png | Bin .../materialicons/FIERY/dustImpure_OVERLAY.png | Bin .../textures/items/materialicons/FIERY/dustPure.png | Bin .../items/materialicons/FIERY/dustPure_OVERLAY.png | Bin .../items/materialicons/FIERY/dustSmall.png | Bin .../items/materialicons/FIERY/dustSmall_OVERLAY.png | Bin .../textures/items/materialicons/FIERY/dustTiny.png | Bin .../items/materialicons/FIERY/dustTiny_OVERLAY.png | Bin .../items/materialicons/FIERY/dust_OVERLAY.png | Bin .../textures/items/materialicons/FIERY/foil.png | Bin .../items/materialicons/FIERY/foil_OVERLAY.png | Bin .../textures/items/materialicons/FIERY/gearGt.png | Bin .../items/materialicons/FIERY/gearGtSmall.png | Bin .../materialicons/FIERY/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/FIERY/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/FIERY/gem.png | Bin .../items/materialicons/FIERY/gemChipped.png | Bin .../materialicons/FIERY/gemChipped_OVERLAY.png | Bin .../items/materialicons/FIERY/gemExquisite.png | Bin .../materialicons/FIERY/gemExquisite_OVERLAY.png | Bin .../items/materialicons/FIERY/gemFlawed.png | Bin .../items/materialicons/FIERY/gemFlawed_OVERLAY.png | Bin .../items/materialicons/FIERY/gemFlawless.png | Bin .../materialicons/FIERY/gemFlawless_OVERLAY.png | Bin .../items/materialicons/FIERY/gem_OVERLAY.png | Bin .../textures/items/materialicons/FIERY/ingot.png | Bin .../items/materialicons/FIERY/ingotDouble.png | Bin .../materialicons/FIERY/ingotDouble_OVERLAY.png | Bin .../textures/items/materialicons/FIERY/ingotHot.png | Bin .../items/materialicons/FIERY/ingotHot_OVERLAY.png | Bin .../items/materialicons/FIERY/ingotQuadruple.png | Bin .../materialicons/FIERY/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/FIERY/ingotQuintuple.png | Bin .../materialicons/FIERY/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/FIERY/ingotTriple.png | Bin .../materialicons/FIERY/ingotTriple_OVERLAY.png | Bin .../items/materialicons/FIERY/ingot_OVERLAY.png | Bin .../textures/items/materialicons/FIERY/lens.png | Bin .../items/materialicons/FIERY/lens_OVERLAY.png | Bin .../textures/items/materialicons/FIERY/nugget.png | Bin .../items/materialicons/FIERY/nugget_OVERLAY.png | Bin .../textures/items/materialicons/FIERY/plate.png | Bin .../items/materialicons/FIERY/plateDense.png | Bin .../materialicons/FIERY/plateDense_OVERLAY.png | Bin .../items/materialicons/FIERY/plateDouble.png | Bin .../materialicons/FIERY/plateDouble_OVERLAY.png | Bin .../items/materialicons/FIERY/plateQuadruple.png | Bin .../materialicons/FIERY/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/FIERY/plateQuintuple.png | Bin .../materialicons/FIERY/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/FIERY/plateTriple.png | Bin .../materialicons/FIERY/plateTriple_OVERLAY.png | Bin .../items/materialicons/FIERY/plate_OVERLAY.png | Bin .../textures/items/materialicons/FIERY/ring.png | Bin .../items/materialicons/FIERY/ring_OVERLAY.png | Bin .../textures/items/materialicons/FIERY/rotor.png | Bin .../items/materialicons/FIERY/rotor_OVERLAY.png | Bin .../textures/items/materialicons/FIERY/round.png | Bin .../items/materialicons/FIERY/round_OVERLAY.png | Bin .../textures/items/materialicons/FIERY/screw.png | Bin .../items/materialicons/FIERY/screw_OVERLAY.png | Bin .../textures/items/materialicons/FIERY/spring.png | Bin .../items/materialicons/FIERY/springSmall.png | Bin .../materialicons/FIERY/springSmall_OVERLAY.png | Bin .../items/materialicons/FIERY/spring_OVERLAY.png | Bin .../textures/items/materialicons/FIERY/stick.png | Bin .../items/materialicons/FIERY/stickLong.png | Bin .../items/materialicons/FIERY/stickLong_OVERLAY.png | Bin .../items/materialicons/FIERY/stick_OVERLAY.png | Bin .../items/materialicons/FIERY/toolHeadArrow.png | Bin .../materialicons/FIERY/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/FIERY/toolHeadAxe.png | Bin .../materialicons/FIERY/toolHeadAxe_OVERLAY.png | Bin .../items/materialicons/FIERY/toolHeadBuzzSaw.png | Bin .../materialicons/FIERY/toolHeadBuzzSaw_OVERLAY.png | Bin .../items/materialicons/FIERY/toolHeadChainsaw.png | Bin .../FIERY/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/FIERY/toolHeadDrill.png | Bin .../materialicons/FIERY/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/FIERY/toolHeadFile.png | Bin .../materialicons/FIERY/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/FIERY/toolHeadHammer.png | Bin .../materialicons/FIERY/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/FIERY/toolHeadHoe.png | Bin .../materialicons/FIERY/toolHeadHoe_OVERLAY.png | Bin .../items/materialicons/FIERY/toolHeadPickaxe.png | Bin .../materialicons/FIERY/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/FIERY/toolHeadPlow.png | Bin .../materialicons/FIERY/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/FIERY/toolHeadSaw.png | Bin .../materialicons/FIERY/toolHeadSaw_OVERLAY.png | Bin .../materialicons/FIERY/toolHeadScrewdriver.png | Bin .../FIERY/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/FIERY/toolHeadSense.png | Bin .../materialicons/FIERY/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/FIERY/toolHeadShovel.png | Bin .../materialicons/FIERY/toolHeadShovel_OVERLAY.png | Bin .../items/materialicons/FIERY/toolHeadSoldering.png | Bin .../FIERY/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/FIERY/toolHeadSword.png | Bin .../materialicons/FIERY/toolHeadSword_OVERLAY.png | Bin .../materialicons/FIERY/toolHeadUniversalSpade.png | Bin .../FIERY/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/FIERY/toolHeadWrench.png | Bin .../materialicons/FIERY/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/FIERY/turbineBlade.png | Bin .../materialicons/FIERY/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/FIERY/void.png | Bin .../items/materialicons/FIERY/void_OVERLAY.png | Bin .../textures/items/materialicons/FIERY/wireFine.png | Bin .../items/materialicons/FIERY/wireFine_OVERLAY.png | Bin .../items/materialicons/FINE/TURBINE_BLADE.png | Bin .../materialicons/FINE/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/FINE/arrowGtPlastic.png | Bin .../materialicons/FINE/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/FINE/arrowGtWood.png | Bin .../materialicons/FINE/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/FINE/bolt.png | Bin .../items/materialicons/FINE/bolt_OVERLAY.png | Bin .../textures/items/materialicons/FINE/cell.png | Bin .../items/materialicons/FINE/cellPlasma.png | Bin .../items/materialicons/FINE/cellPlasma_OVERLAY.png | Bin .../items/materialicons/FINE/cell_OVERLAY.png | Bin .../items/materialicons/FINE/crateGtDust.png | Bin .../materialicons/FINE/crateGtDust_OVERLAY.png | Bin .../items/materialicons/FINE/crateGtGem.png | Bin .../items/materialicons/FINE/crateGtGem_OVERLAY.png | Bin .../items/materialicons/FINE/crateGtIngot.png | Bin .../materialicons/FINE/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/FINE/crateGtPlate.png | Bin .../materialicons/FINE/crateGtPlate_OVERLAY.png | Bin .../textures/items/materialicons/FINE/crushed.png | Bin .../items/materialicons/FINE/crushedCentrifuged.png | Bin .../FINE/crushedCentrifuged_OVERLAY.png | Bin .../items/materialicons/FINE/crushedPurified.png | Bin .../materialicons/FINE/crushedPurified_OVERLAY.png | Bin .../items/materialicons/FINE/crushed_OVERLAY.png | Bin .../textures/items/materialicons/FINE/dust.png | Bin .../items/materialicons/FINE/dustImpure.png | Bin .../items/materialicons/FINE/dustImpure_OVERLAY.png | Bin .../textures/items/materialicons/FINE/dustPure.png | Bin .../items/materialicons/FINE/dustPure_OVERLAY.png | Bin .../textures/items/materialicons/FINE/dustSmall.png | Bin .../items/materialicons/FINE/dustSmall_OVERLAY.png | Bin .../textures/items/materialicons/FINE/dustTiny.png | Bin .../items/materialicons/FINE/dustTiny_OVERLAY.png | Bin .../items/materialicons/FINE/dust_OVERLAY.png | Bin .../textures/items/materialicons/FINE/foil.png | Bin .../items/materialicons/FINE/foil_OVERLAY.png | Bin .../textures/items/materialicons/FINE/gearGt.png | Bin .../items/materialicons/FINE/gearGtSmall.png | Bin .../materialicons/FINE/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/FINE/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/FINE/gem.png | Bin .../items/materialicons/FINE/gemChipped.png | Bin .../items/materialicons/FINE/gemChipped_OVERLAY.png | Bin .../items/materialicons/FINE/gemExquisite.png | Bin .../materialicons/FINE/gemExquisite_OVERLAY.png | Bin .../textures/items/materialicons/FINE/gemFlawed.png | Bin .../items/materialicons/FINE/gemFlawed_OVERLAY.png | Bin .../items/materialicons/FINE/gemFlawless.png | Bin .../materialicons/FINE/gemFlawless_OVERLAY.png | Bin .../items/materialicons/FINE/gem_OVERLAY.png | Bin .../textures/items/materialicons/FINE/ingot.png | Bin .../items/materialicons/FINE/ingotDouble.png | Bin .../materialicons/FINE/ingotDouble_OVERLAY.png | Bin .../textures/items/materialicons/FINE/ingotHot.png | Bin .../items/materialicons/FINE/ingotHot_OVERLAY.png | Bin .../items/materialicons/FINE/ingotQuadruple.png | Bin .../materialicons/FINE/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/FINE/ingotQuintuple.png | Bin .../materialicons/FINE/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/FINE/ingotTriple.png | Bin .../materialicons/FINE/ingotTriple_OVERLAY.png | Bin .../items/materialicons/FINE/ingot_OVERLAY.png | Bin .../textures/items/materialicons/FINE/lens.png | Bin .../items/materialicons/FINE/lens_OVERLAY.png | Bin .../textures/items/materialicons/FINE/nugget.png | Bin .../items/materialicons/FINE/nugget_OVERLAY.png | Bin .../textures/items/materialicons/FINE/plate.png | Bin .../items/materialicons/FINE/plateDense.png | Bin .../items/materialicons/FINE/plateDense_OVERLAY.png | Bin .../items/materialicons/FINE/plateDouble.png | Bin .../materialicons/FINE/plateDouble_OVERLAY.png | Bin .../items/materialicons/FINE/plateQuadruple.png | Bin .../materialicons/FINE/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/FINE/plateQuintuple.png | Bin .../materialicons/FINE/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/FINE/plateTriple.png | Bin .../materialicons/FINE/plateTriple_OVERLAY.png | Bin .../items/materialicons/FINE/plate_OVERLAY.png | Bin .../textures/items/materialicons/FINE/ring.png | Bin .../items/materialicons/FINE/ring_OVERLAY.png | Bin .../textures/items/materialicons/FINE/rotor.png | Bin .../items/materialicons/FINE/rotor_OVERLAY.png | Bin .../textures/items/materialicons/FINE/round.png | Bin .../items/materialicons/FINE/round_OVERLAY.png | Bin .../textures/items/materialicons/FINE/screw.png | Bin .../items/materialicons/FINE/screw_OVERLAY.png | Bin .../textures/items/materialicons/FINE/spring.png | Bin .../items/materialicons/FINE/springSmall.png | Bin .../materialicons/FINE/springSmall_OVERLAY.png | Bin .../items/materialicons/FINE/spring_OVERLAY.png | Bin .../textures/items/materialicons/FINE/stick.png | Bin .../textures/items/materialicons/FINE/stickLong.png | Bin .../items/materialicons/FINE/stickLong_OVERLAY.png | Bin .../items/materialicons/FINE/stick_OVERLAY.png | Bin .../items/materialicons/FINE/toolHeadArrow.png | Bin .../materialicons/FINE/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/FINE/toolHeadAxe.png | Bin .../materialicons/FINE/toolHeadAxe_OVERLAY.png | Bin .../items/materialicons/FINE/toolHeadBuzzSaw.png | Bin .../materialicons/FINE/toolHeadBuzzSaw_OVERLAY.png | Bin .../items/materialicons/FINE/toolHeadChainsaw.png | Bin .../materialicons/FINE/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/FINE/toolHeadDrill.png | Bin .../materialicons/FINE/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/FINE/toolHeadFile.png | Bin .../materialicons/FINE/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/FINE/toolHeadHammer.png | Bin .../materialicons/FINE/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/FINE/toolHeadHoe.png | Bin .../materialicons/FINE/toolHeadHoe_OVERLAY.png | Bin .../items/materialicons/FINE/toolHeadPickaxe.png | Bin .../materialicons/FINE/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/FINE/toolHeadPlow.png | Bin .../materialicons/FINE/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/FINE/toolHeadSaw.png | Bin .../materialicons/FINE/toolHeadSaw_OVERLAY.png | Bin .../materialicons/FINE/toolHeadScrewdriver.png | Bin .../FINE/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/FINE/toolHeadSense.png | Bin .../materialicons/FINE/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/FINE/toolHeadShovel.png | Bin .../materialicons/FINE/toolHeadShovel_OVERLAY.png | Bin .../items/materialicons/FINE/toolHeadSoldering.png | Bin .../FINE/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/FINE/toolHeadSword.png | Bin .../materialicons/FINE/toolHeadSword_OVERLAY.png | Bin .../materialicons/FINE/toolHeadUniversalSpade.png | Bin .../FINE/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/FINE/toolHeadWrench.png | Bin .../materialicons/FINE/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/FINE/turbineBlade.png | Bin .../materialicons/FINE/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/FINE/void.png | Bin .../items/materialicons/FINE/void_OVERLAY.png | Bin .../textures/items/materialicons/FINE/wireFine.png | Bin .../items/materialicons/FINE/wireFine_OVERLAY.png | Bin .../items/materialicons/FLINT/TURBINE_BLADE.png | Bin .../materialicons/FLINT/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/FLINT/arrowGtPlastic.png | Bin .../materialicons/FLINT/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/FLINT/arrowGtWood.png | Bin .../materialicons/FLINT/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/FLINT/bolt.png | Bin .../items/materialicons/FLINT/bolt_OVERLAY.png | Bin .../textures/items/materialicons/FLINT/cell.png | Bin .../items/materialicons/FLINT/cellPlasma.png | Bin .../materialicons/FLINT/cellPlasma_OVERLAY.png | Bin .../items/materialicons/FLINT/cell_OVERLAY.png | Bin .../items/materialicons/FLINT/crateGtDust.png | Bin .../materialicons/FLINT/crateGtDust_OVERLAY.png | Bin .../items/materialicons/FLINT/crateGtGem.png | Bin .../materialicons/FLINT/crateGtGem_OVERLAY.png | Bin .../items/materialicons/FLINT/crateGtIngot.png | Bin .../materialicons/FLINT/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/FLINT/crateGtPlate.png | Bin .../materialicons/FLINT/crateGtPlate_OVERLAY.png | Bin .../textures/items/materialicons/FLINT/crushed.png | Bin .../materialicons/FLINT/crushedCentrifuged.png | Bin .../FLINT/crushedCentrifuged_OVERLAY.png | Bin .../items/materialicons/FLINT/crushedPurified.png | Bin .../materialicons/FLINT/crushedPurified_OVERLAY.png | Bin .../items/materialicons/FLINT/crushed_OVERLAY.png | Bin .../textures/items/materialicons/FLINT/dust.png | Bin .../items/materialicons/FLINT/dustImpure.png | Bin .../materialicons/FLINT/dustImpure_OVERLAY.png | Bin .../textures/items/materialicons/FLINT/dustPure.png | Bin .../items/materialicons/FLINT/dustPure_OVERLAY.png | Bin .../items/materialicons/FLINT/dustSmall.png | Bin .../items/materialicons/FLINT/dustSmall_OVERLAY.png | Bin .../textures/items/materialicons/FLINT/dustTiny.png | Bin .../items/materialicons/FLINT/dustTiny_OVERLAY.png | Bin .../items/materialicons/FLINT/dust_OVERLAY.png | Bin .../textures/items/materialicons/FLINT/foil.png | Bin .../items/materialicons/FLINT/foil_OVERLAY.png | Bin .../textures/items/materialicons/FLINT/gearGt.png | Bin .../items/materialicons/FLINT/gearGtSmall.png | Bin .../materialicons/FLINT/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/FLINT/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/FLINT/gem.png | Bin .../items/materialicons/FLINT/gemChipped.png | Bin .../materialicons/FLINT/gemChipped_OVERLAY.png | Bin .../items/materialicons/FLINT/gemExquisite.png | Bin .../materialicons/FLINT/gemExquisite_OVERLAY.png | Bin .../items/materialicons/FLINT/gemFlawed.png | Bin .../items/materialicons/FLINT/gemFlawed_OVERLAY.png | Bin .../items/materialicons/FLINT/gemFlawless.png | Bin .../materialicons/FLINT/gemFlawless_OVERLAY.png | Bin .../items/materialicons/FLINT/gem_OVERLAY.png | Bin .../textures/items/materialicons/FLINT/ingot.png | Bin .../items/materialicons/FLINT/ingotDouble.png | Bin .../materialicons/FLINT/ingotDouble_OVERLAY.png | Bin .../textures/items/materialicons/FLINT/ingotHot.png | Bin .../items/materialicons/FLINT/ingotHot_OVERLAY.png | Bin .../items/materialicons/FLINT/ingotQuadruple.png | Bin .../materialicons/FLINT/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/FLINT/ingotQuintuple.png | Bin .../materialicons/FLINT/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/FLINT/ingotTriple.png | Bin .../materialicons/FLINT/ingotTriple_OVERLAY.png | Bin .../items/materialicons/FLINT/ingot_OVERLAY.png | Bin .../textures/items/materialicons/FLINT/lens.png | Bin .../items/materialicons/FLINT/lens_OVERLAY.png | Bin .../textures/items/materialicons/FLINT/nugget.png | Bin .../items/materialicons/FLINT/nugget_OVERLAY.png | Bin .../textures/items/materialicons/FLINT/plate.png | Bin .../items/materialicons/FLINT/plateDense.png | Bin .../materialicons/FLINT/plateDense_OVERLAY.png | Bin .../items/materialicons/FLINT/plateDouble.png | Bin .../materialicons/FLINT/plateDouble_OVERLAY.png | Bin .../items/materialicons/FLINT/plateQuadruple.png | Bin .../materialicons/FLINT/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/FLINT/plateQuintuple.png | Bin .../materialicons/FLINT/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/FLINT/plateTriple.png | Bin .../materialicons/FLINT/plateTriple_OVERLAY.png | Bin .../items/materialicons/FLINT/plate_OVERLAY.png | Bin .../textures/items/materialicons/FLINT/ring.png | Bin .../items/materialicons/FLINT/ring_OVERLAY.png | Bin .../textures/items/materialicons/FLINT/rotor.png | Bin .../items/materialicons/FLINT/rotor_OVERLAY.png | Bin .../textures/items/materialicons/FLINT/round.png | Bin .../items/materialicons/FLINT/round_OVERLAY.png | Bin .../textures/items/materialicons/FLINT/screw.png | Bin .../items/materialicons/FLINT/screw_OVERLAY.png | Bin .../textures/items/materialicons/FLINT/spring.png | Bin .../items/materialicons/FLINT/springSmall.png | Bin .../materialicons/FLINT/springSmall_OVERLAY.png | Bin .../items/materialicons/FLINT/spring_OVERLAY.png | Bin .../textures/items/materialicons/FLINT/stick.png | Bin .../items/materialicons/FLINT/stickLong.png | Bin .../items/materialicons/FLINT/stickLong_OVERLAY.png | Bin .../items/materialicons/FLINT/stick_OVERLAY.png | Bin .../items/materialicons/FLINT/toolHeadArrow.png | Bin .../materialicons/FLINT/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/FLINT/toolHeadAxe.png | Bin .../materialicons/FLINT/toolHeadAxe_OVERLAY.png | Bin .../items/materialicons/FLINT/toolHeadBuzzSaw.png | Bin .../materialicons/FLINT/toolHeadBuzzSaw_OVERLAY.png | Bin .../items/materialicons/FLINT/toolHeadChainsaw.png | Bin .../FLINT/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/FLINT/toolHeadDrill.png | Bin .../materialicons/FLINT/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/FLINT/toolHeadFile.png | Bin .../materialicons/FLINT/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/FLINT/toolHeadHammer.png | Bin .../materialicons/FLINT/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/FLINT/toolHeadHoe.png | Bin .../materialicons/FLINT/toolHeadHoe_OVERLAY.png | Bin .../items/materialicons/FLINT/toolHeadPickaxe.png | Bin .../materialicons/FLINT/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/FLINT/toolHeadPlow.png | Bin .../materialicons/FLINT/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/FLINT/toolHeadSaw.png | Bin .../materialicons/FLINT/toolHeadSaw_OVERLAY.png | Bin .../materialicons/FLINT/toolHeadScrewdriver.png | Bin .../FLINT/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/FLINT/toolHeadSense.png | Bin .../materialicons/FLINT/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/FLINT/toolHeadShovel.png | Bin .../materialicons/FLINT/toolHeadShovel_OVERLAY.png | Bin .../items/materialicons/FLINT/toolHeadSoldering.png | Bin .../FLINT/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/FLINT/toolHeadSword.png | Bin .../materialicons/FLINT/toolHeadSword_OVERLAY.png | Bin .../materialicons/FLINT/toolHeadUniversalSpade.png | Bin .../FLINT/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/FLINT/toolHeadWrench.png | Bin .../materialicons/FLINT/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/FLINT/turbineBlade.png | Bin .../materialicons/FLINT/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/FLINT/void.png | Bin .../items/materialicons/FLINT/void_OVERLAY.png | Bin .../textures/items/materialicons/FLINT/wireFine.png | Bin .../items/materialicons/FLINT/wireFine_OVERLAY.png | Bin .../items/materialicons/FLUID/TURBINE_BLADE.png | Bin .../materialicons/FLUID/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/FLUID/arrowGtPlastic.png | Bin .../materialicons/FLUID/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/FLUID/arrowGtWood.png | Bin .../materialicons/FLUID/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/FLUID/bolt.png | Bin .../items/materialicons/FLUID/bolt_OVERLAY.png | Bin .../textures/items/materialicons/FLUID/cell.png | Bin .../items/materialicons/FLUID/cellPlasma.png | Bin .../materialicons/FLUID/cellPlasma_OVERLAY.png | Bin .../items/materialicons/FLUID/cell_OVERLAY.png | Bin .../items/materialicons/FLUID/crateGtDust.png | Bin .../materialicons/FLUID/crateGtDust_OVERLAY.png | Bin .../items/materialicons/FLUID/crateGtGem.png | Bin .../materialicons/FLUID/crateGtGem_OVERLAY.png | Bin .../items/materialicons/FLUID/crateGtIngot.png | Bin .../materialicons/FLUID/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/FLUID/crateGtPlate.png | Bin .../materialicons/FLUID/crateGtPlate_OVERLAY.png | Bin .../textures/items/materialicons/FLUID/crushed.png | Bin .../materialicons/FLUID/crushedCentrifuged.png | Bin .../FLUID/crushedCentrifuged_OVERLAY.png | Bin .../items/materialicons/FLUID/crushedPurified.png | Bin .../materialicons/FLUID/crushedPurified_OVERLAY.png | Bin .../items/materialicons/FLUID/crushed_OVERLAY.png | Bin .../textures/items/materialicons/FLUID/dust.png | Bin .../items/materialicons/FLUID/dustImpure.png | Bin .../materialicons/FLUID/dustImpure_OVERLAY.png | Bin .../textures/items/materialicons/FLUID/dustPure.png | Bin .../items/materialicons/FLUID/dustPure_OVERLAY.png | Bin .../items/materialicons/FLUID/dustSmall.png | Bin .../items/materialicons/FLUID/dustSmall_OVERLAY.png | Bin .../textures/items/materialicons/FLUID/dustTiny.png | Bin .../items/materialicons/FLUID/dustTiny_OVERLAY.png | Bin .../items/materialicons/FLUID/dust_OVERLAY.png | Bin .../textures/items/materialicons/FLUID/foil.png | Bin .../items/materialicons/FLUID/foil_OVERLAY.png | Bin .../textures/items/materialicons/FLUID/gearGt.png | Bin .../items/materialicons/FLUID/gearGtSmall.png | Bin .../materialicons/FLUID/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/FLUID/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/FLUID/gem.png | Bin .../items/materialicons/FLUID/gemChipped.png | Bin .../materialicons/FLUID/gemChipped_OVERLAY.png | Bin .../items/materialicons/FLUID/gemExquisite.png | Bin .../materialicons/FLUID/gemExquisite_OVERLAY.png | Bin .../items/materialicons/FLUID/gemFlawed.png | Bin .../items/materialicons/FLUID/gemFlawed_OVERLAY.png | Bin .../items/materialicons/FLUID/gemFlawless.png | Bin .../materialicons/FLUID/gemFlawless_OVERLAY.png | Bin .../items/materialicons/FLUID/gem_OVERLAY.png | Bin .../textures/items/materialicons/FLUID/ingot.png | Bin .../items/materialicons/FLUID/ingotDouble.png | Bin .../materialicons/FLUID/ingotDouble_OVERLAY.png | Bin .../textures/items/materialicons/FLUID/ingotHot.png | Bin .../items/materialicons/FLUID/ingotHot_OVERLAY.png | Bin .../items/materialicons/FLUID/ingotQuadruple.png | Bin .../materialicons/FLUID/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/FLUID/ingotQuintuple.png | Bin .../materialicons/FLUID/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/FLUID/ingotTriple.png | Bin .../materialicons/FLUID/ingotTriple_OVERLAY.png | Bin .../items/materialicons/FLUID/ingot_OVERLAY.png | Bin .../textures/items/materialicons/FLUID/lens.png | Bin .../items/materialicons/FLUID/lens_OVERLAY.png | Bin .../textures/items/materialicons/FLUID/nugget.png | Bin .../items/materialicons/FLUID/nugget_OVERLAY.png | Bin .../textures/items/materialicons/FLUID/plate.png | Bin .../items/materialicons/FLUID/plateDense.png | Bin .../materialicons/FLUID/plateDense_OVERLAY.png | Bin .../items/materialicons/FLUID/plateDouble.png | Bin .../materialicons/FLUID/plateDouble_OVERLAY.png | Bin .../items/materialicons/FLUID/plateQuadruple.png | Bin .../materialicons/FLUID/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/FLUID/plateQuintuple.png | Bin .../materialicons/FLUID/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/FLUID/plateTriple.png | Bin .../materialicons/FLUID/plateTriple_OVERLAY.png | Bin .../items/materialicons/FLUID/plate_OVERLAY.png | Bin .../textures/items/materialicons/FLUID/ring.png | Bin .../items/materialicons/FLUID/ring_OVERLAY.png | Bin .../textures/items/materialicons/FLUID/rotor.png | Bin .../items/materialicons/FLUID/rotor_OVERLAY.png | Bin .../textures/items/materialicons/FLUID/round.png | Bin .../items/materialicons/FLUID/round_OVERLAY.png | Bin .../textures/items/materialicons/FLUID/screw.png | Bin .../items/materialicons/FLUID/screw_OVERLAY.png | Bin .../textures/items/materialicons/FLUID/spring.png | Bin .../items/materialicons/FLUID/springSmall.png | Bin .../materialicons/FLUID/springSmall_OVERLAY.png | Bin .../items/materialicons/FLUID/spring_OVERLAY.png | Bin .../textures/items/materialicons/FLUID/stick.png | Bin .../items/materialicons/FLUID/stickLong.png | Bin .../items/materialicons/FLUID/stickLong_OVERLAY.png | Bin .../items/materialicons/FLUID/stick_OVERLAY.png | Bin .../items/materialicons/FLUID/toolHeadArrow.png | Bin .../materialicons/FLUID/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/FLUID/toolHeadAxe.png | Bin .../materialicons/FLUID/toolHeadAxe_OVERLAY.png | Bin .../items/materialicons/FLUID/toolHeadBuzzSaw.png | Bin .../materialicons/FLUID/toolHeadBuzzSaw_OVERLAY.png | Bin .../items/materialicons/FLUID/toolHeadChainsaw.png | Bin .../FLUID/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/FLUID/toolHeadDrill.png | Bin .../materialicons/FLUID/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/FLUID/toolHeadFile.png | Bin .../materialicons/FLUID/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/FLUID/toolHeadHammer.png | Bin .../materialicons/FLUID/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/FLUID/toolHeadHoe.png | Bin .../materialicons/FLUID/toolHeadHoe_OVERLAY.png | Bin .../items/materialicons/FLUID/toolHeadPickaxe.png | Bin .../materialicons/FLUID/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/FLUID/toolHeadPlow.png | Bin .../materialicons/FLUID/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/FLUID/toolHeadSaw.png | Bin .../materialicons/FLUID/toolHeadSaw_OVERLAY.png | Bin .../materialicons/FLUID/toolHeadScrewdriver.png | Bin .../FLUID/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/FLUID/toolHeadSense.png | Bin .../materialicons/FLUID/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/FLUID/toolHeadShovel.png | Bin .../materialicons/FLUID/toolHeadShovel_OVERLAY.png | Bin .../items/materialicons/FLUID/toolHeadSoldering.png | Bin .../FLUID/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/FLUID/toolHeadSword.png | Bin .../materialicons/FLUID/toolHeadSword_OVERLAY.png | Bin .../materialicons/FLUID/toolHeadUniversalSpade.png | Bin .../FLUID/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/FLUID/toolHeadWrench.png | Bin .../materialicons/FLUID/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/FLUID/turbineBlade.png | Bin .../materialicons/FLUID/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/FLUID/void.png | Bin .../items/materialicons/FLUID/void_OVERLAY.png | Bin .../textures/items/materialicons/FLUID/wireFine.png | Bin .../items/materialicons/FLUID/wireFine_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/TURBINE_BLADE.png | Bin .../GEM_HORIZONTAL/TURBINE_BLADE_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/arrowGtPlastic.png | Bin .../GEM_HORIZONTAL/arrowGtPlastic_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/arrowGtWood.png | Bin .../GEM_HORIZONTAL/arrowGtWood_OVERLAY.png | Bin .../items/materialicons/GEM_HORIZONTAL/bolt.png | Bin .../materialicons/GEM_HORIZONTAL/bolt_OVERLAY.png | Bin .../items/materialicons/GEM_HORIZONTAL/cell.png | Bin .../materialicons/GEM_HORIZONTAL/cellPlasma.png | Bin .../GEM_HORIZONTAL/cellPlasma_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/cell_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/crateGtDust.png | Bin .../GEM_HORIZONTAL/crateGtDust_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/crateGtGem.png | Bin .../GEM_HORIZONTAL/crateGtGem_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/crateGtIngot.png | Bin .../GEM_HORIZONTAL/crateGtIngot_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/crateGtPlate.png | Bin .../GEM_HORIZONTAL/crateGtPlate_OVERLAY.png | Bin .../items/materialicons/GEM_HORIZONTAL/crushed.png | Bin .../GEM_HORIZONTAL/crushedCentrifuged.png | Bin .../GEM_HORIZONTAL/crushedCentrifuged_OVERLAY.png | Bin .../GEM_HORIZONTAL/crushedPurified.png | Bin .../GEM_HORIZONTAL/crushedPurified_OVERLAY.png | Bin .../GEM_HORIZONTAL/crushed_OVERLAY.png | Bin .../items/materialicons/GEM_HORIZONTAL/dust.png | Bin .../materialicons/GEM_HORIZONTAL/dustImpure.png | Bin .../GEM_HORIZONTAL/dustImpure_OVERLAY.png | Bin .../items/materialicons/GEM_HORIZONTAL/dustPure.png | Bin .../GEM_HORIZONTAL/dustPure_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/dustSmall.png | Bin .../GEM_HORIZONTAL/dustSmall_OVERLAY.png | Bin .../items/materialicons/GEM_HORIZONTAL/dustTiny.png | Bin .../GEM_HORIZONTAL/dustTiny_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/dust_OVERLAY.png | Bin .../items/materialicons/GEM_HORIZONTAL/foil.png | Bin .../materialicons/GEM_HORIZONTAL/foil_OVERLAY.png | Bin .../items/materialicons/GEM_HORIZONTAL/gearGt.png | Bin .../materialicons/GEM_HORIZONTAL/gearGtSmall.png | Bin .../GEM_HORIZONTAL/gearGtSmall_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/gearGt_OVERLAY.png | Bin .../items/materialicons/GEM_HORIZONTAL/gem.png | Bin .../materialicons/GEM_HORIZONTAL/gemChipped.png | Bin .../GEM_HORIZONTAL/gemChipped_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/gemExquisite.png | Bin .../GEM_HORIZONTAL/gemExquisite_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/gemFlawed.png | Bin .../GEM_HORIZONTAL/gemFlawed_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/gemFlawless.png | Bin .../GEM_HORIZONTAL/gemFlawless_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/gem_OVERLAY.png | Bin .../items/materialicons/GEM_HORIZONTAL/ingot.png | Bin .../materialicons/GEM_HORIZONTAL/ingotDouble.png | Bin .../GEM_HORIZONTAL/ingotDouble_OVERLAY.png | Bin .../items/materialicons/GEM_HORIZONTAL/ingotHot.png | Bin .../GEM_HORIZONTAL/ingotHot_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/ingotQuadruple.png | Bin .../GEM_HORIZONTAL/ingotQuadruple_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/ingotQuintuple.png | Bin .../GEM_HORIZONTAL/ingotQuintuple_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/ingotTriple.png | Bin .../GEM_HORIZONTAL/ingotTriple_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/ingot_OVERLAY.png | Bin .../items/materialicons/GEM_HORIZONTAL/lens.png | Bin .../materialicons/GEM_HORIZONTAL/lens_OVERLAY.png | Bin .../items/materialicons/GEM_HORIZONTAL/nugget.png | Bin .../materialicons/GEM_HORIZONTAL/nugget_OVERLAY.png | Bin .../items/materialicons/GEM_HORIZONTAL/plate.png | Bin .../materialicons/GEM_HORIZONTAL/plateDense.png | Bin .../GEM_HORIZONTAL/plateDense_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/plateDouble.png | Bin .../GEM_HORIZONTAL/plateDouble_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/plateQuadruple.png | Bin .../GEM_HORIZONTAL/plateQuadruple_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/plateQuintuple.png | Bin .../GEM_HORIZONTAL/plateQuintuple_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/plateTriple.png | Bin .../GEM_HORIZONTAL/plateTriple_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/plate_OVERLAY.png | Bin .../items/materialicons/GEM_HORIZONTAL/ring.png | Bin .../materialicons/GEM_HORIZONTAL/ring_OVERLAY.png | Bin .../items/materialicons/GEM_HORIZONTAL/rotor.png | Bin .../materialicons/GEM_HORIZONTAL/rotor_OVERLAY.png | Bin .../items/materialicons/GEM_HORIZONTAL/round.png | Bin .../materialicons/GEM_HORIZONTAL/round_OVERLAY.png | Bin .../items/materialicons/GEM_HORIZONTAL/screw.png | Bin .../materialicons/GEM_HORIZONTAL/screw_OVERLAY.png | Bin .../items/materialicons/GEM_HORIZONTAL/spring.png | Bin .../materialicons/GEM_HORIZONTAL/springSmall.png | Bin .../GEM_HORIZONTAL/springSmall_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/spring_OVERLAY.png | Bin .../items/materialicons/GEM_HORIZONTAL/stick.png | Bin .../materialicons/GEM_HORIZONTAL/stickLong.png | Bin .../GEM_HORIZONTAL/stickLong_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/stick_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/toolHeadArrow.png | Bin .../GEM_HORIZONTAL/toolHeadArrow_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/toolHeadAxe.png | Bin .../GEM_HORIZONTAL/toolHeadAxe_OVERLAY.png | Bin .../GEM_HORIZONTAL/toolHeadBuzzSaw.png | Bin .../GEM_HORIZONTAL/toolHeadBuzzSaw_OVERLAY.png | Bin .../GEM_HORIZONTAL/toolHeadChainsaw.png | Bin .../GEM_HORIZONTAL/toolHeadChainsaw_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/toolHeadDrill.png | Bin .../GEM_HORIZONTAL/toolHeadDrill_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/toolHeadFile.png | Bin .../GEM_HORIZONTAL/toolHeadFile_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/toolHeadHammer.png | Bin .../GEM_HORIZONTAL/toolHeadHammer_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/toolHeadHoe.png | Bin .../GEM_HORIZONTAL/toolHeadHoe_OVERLAY.png | Bin .../GEM_HORIZONTAL/toolHeadPickaxe.png | Bin .../GEM_HORIZONTAL/toolHeadPickaxe_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/toolHeadPlow.png | Bin .../GEM_HORIZONTAL/toolHeadPlow_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/toolHeadSaw.png | Bin .../GEM_HORIZONTAL/toolHeadSaw_OVERLAY.png | Bin .../GEM_HORIZONTAL/toolHeadScrewdriver.png | Bin .../GEM_HORIZONTAL/toolHeadScrewdriver_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/toolHeadSense.png | Bin .../GEM_HORIZONTAL/toolHeadSense_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/toolHeadShovel.png | Bin .../GEM_HORIZONTAL/toolHeadShovel_OVERLAY.png | Bin .../GEM_HORIZONTAL/toolHeadSoldering.png | Bin .../GEM_HORIZONTAL/toolHeadSoldering_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/toolHeadSword.png | Bin .../GEM_HORIZONTAL/toolHeadSword_OVERLAY.png | Bin .../GEM_HORIZONTAL/toolHeadUniversalSpade.png | Bin .../toolHeadUniversalSpade_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/toolHeadWrench.png | Bin .../GEM_HORIZONTAL/toolHeadWrench_OVERLAY.png | Bin .../materialicons/GEM_HORIZONTAL/turbineBlade.png | Bin .../GEM_HORIZONTAL/turbineBlade_OVERLAY.png | Bin .../items/materialicons/GEM_HORIZONTAL/void.png | Bin .../materialicons/GEM_HORIZONTAL/void_OVERLAY.png | Bin .../items/materialicons/GEM_HORIZONTAL/wireFine.png | Bin .../GEM_HORIZONTAL/wireFine_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/TURBINE_BLADE.png | Bin .../GEM_VERTICAL/TURBINE_BLADE_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/arrowGtPlastic.png | Bin .../GEM_VERTICAL/arrowGtPlastic_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/arrowGtWood.png | Bin .../GEM_VERTICAL/arrowGtWood_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/bolt.png | Bin .../materialicons/GEM_VERTICAL/bolt_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/cell.png | Bin .../items/materialicons/GEM_VERTICAL/cellPlasma.png | Bin .../GEM_VERTICAL/cellPlasma_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/cell_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/crateGtDust.png | Bin .../GEM_VERTICAL/crateGtDust_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/crateGtGem.png | Bin .../GEM_VERTICAL/crateGtGem_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/crateGtIngot.png | Bin .../GEM_VERTICAL/crateGtIngot_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/crateGtPlate.png | Bin .../GEM_VERTICAL/crateGtPlate_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/crushed.png | Bin .../GEM_VERTICAL/crushedCentrifuged.png | Bin .../GEM_VERTICAL/crushedCentrifuged_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/crushedPurified.png | Bin .../GEM_VERTICAL/crushedPurified_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/crushed_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/dust.png | Bin .../items/materialicons/GEM_VERTICAL/dustImpure.png | Bin .../GEM_VERTICAL/dustImpure_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/dustPure.png | Bin .../materialicons/GEM_VERTICAL/dustPure_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/dustSmall.png | Bin .../GEM_VERTICAL/dustSmall_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/dustTiny.png | Bin .../materialicons/GEM_VERTICAL/dustTiny_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/dust_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/foil.png | Bin .../materialicons/GEM_VERTICAL/foil_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/gearGt.png | Bin .../materialicons/GEM_VERTICAL/gearGtSmall.png | Bin .../GEM_VERTICAL/gearGtSmall_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/gearGt_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/gem.png | Bin .../items/materialicons/GEM_VERTICAL/gemChipped.png | Bin .../GEM_VERTICAL/gemChipped_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/gemExquisite.png | Bin .../GEM_VERTICAL/gemExquisite_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/gemFlawed.png | Bin .../GEM_VERTICAL/gemFlawed_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/gemFlawless.png | Bin .../GEM_VERTICAL/gemFlawless_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/gem_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/ingot.png | Bin .../materialicons/GEM_VERTICAL/ingotDouble.png | Bin .../GEM_VERTICAL/ingotDouble_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/ingotHot.png | Bin .../materialicons/GEM_VERTICAL/ingotHot_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/ingotQuadruple.png | Bin .../GEM_VERTICAL/ingotQuadruple_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/ingotQuintuple.png | Bin .../GEM_VERTICAL/ingotQuintuple_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/ingotTriple.png | Bin .../GEM_VERTICAL/ingotTriple_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/ingot_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/lens.png | Bin .../materialicons/GEM_VERTICAL/lens_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/nugget.png | Bin .../materialicons/GEM_VERTICAL/nugget_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/plate.png | Bin .../items/materialicons/GEM_VERTICAL/plateDense.png | Bin .../GEM_VERTICAL/plateDense_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/plateDouble.png | Bin .../GEM_VERTICAL/plateDouble_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/plateQuadruple.png | Bin .../GEM_VERTICAL/plateQuadruple_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/plateQuintuple.png | Bin .../GEM_VERTICAL/plateQuintuple_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/plateTriple.png | Bin .../GEM_VERTICAL/plateTriple_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/plate_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/ring.png | Bin .../materialicons/GEM_VERTICAL/ring_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/rotor.png | Bin .../materialicons/GEM_VERTICAL/rotor_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/round.png | Bin .../materialicons/GEM_VERTICAL/round_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/screw.png | Bin .../materialicons/GEM_VERTICAL/screw_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/spring.png | Bin .../materialicons/GEM_VERTICAL/springSmall.png | Bin .../GEM_VERTICAL/springSmall_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/spring_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/stick.png | Bin .../items/materialicons/GEM_VERTICAL/stickLong.png | Bin .../GEM_VERTICAL/stickLong_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/stick_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/toolHeadArrow.png | Bin .../GEM_VERTICAL/toolHeadArrow_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/toolHeadAxe.png | Bin .../GEM_VERTICAL/toolHeadAxe_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/toolHeadBuzzSaw.png | Bin .../GEM_VERTICAL/toolHeadBuzzSaw_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/toolHeadChainsaw.png | Bin .../GEM_VERTICAL/toolHeadChainsaw_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/toolHeadDrill.png | Bin .../GEM_VERTICAL/toolHeadDrill_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/toolHeadFile.png | Bin .../GEM_VERTICAL/toolHeadFile_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/toolHeadHammer.png | Bin .../GEM_VERTICAL/toolHeadHammer_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/toolHeadHoe.png | Bin .../GEM_VERTICAL/toolHeadHoe_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/toolHeadPickaxe.png | Bin .../GEM_VERTICAL/toolHeadPickaxe_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/toolHeadPlow.png | Bin .../GEM_VERTICAL/toolHeadPlow_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/toolHeadSaw.png | Bin .../GEM_VERTICAL/toolHeadSaw_OVERLAY.png | Bin .../GEM_VERTICAL/toolHeadScrewdriver.png | Bin .../GEM_VERTICAL/toolHeadScrewdriver_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/toolHeadSense.png | Bin .../GEM_VERTICAL/toolHeadSense_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/toolHeadShovel.png | Bin .../GEM_VERTICAL/toolHeadShovel_OVERLAY.png | Bin .../GEM_VERTICAL/toolHeadSoldering.png | Bin .../GEM_VERTICAL/toolHeadSoldering_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/toolHeadSword.png | Bin .../GEM_VERTICAL/toolHeadSword_OVERLAY.png | Bin .../GEM_VERTICAL/toolHeadUniversalSpade.png | Bin .../GEM_VERTICAL/toolHeadUniversalSpade_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/toolHeadWrench.png | Bin .../GEM_VERTICAL/toolHeadWrench_OVERLAY.png | Bin .../materialicons/GEM_VERTICAL/turbineBlade.png | Bin .../GEM_VERTICAL/turbineBlade_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/void.png | Bin .../materialicons/GEM_VERTICAL/void_OVERLAY.png | Bin .../items/materialicons/GEM_VERTICAL/wireFine.png | Bin .../materialicons/GEM_VERTICAL/wireFine_OVERLAY.png | Bin .../items/materialicons/GLASS/TURBINE_BLADE.png | Bin .../materialicons/GLASS/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/GLASS/arrowGtPlastic.png | Bin .../materialicons/GLASS/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/GLASS/arrowGtWood.png | Bin .../materialicons/GLASS/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/GLASS/bolt.png | Bin .../items/materialicons/GLASS/bolt_OVERLAY.png | Bin .../textures/items/materialicons/GLASS/cell.png | Bin .../items/materialicons/GLASS/cellPlasma.png | Bin .../materialicons/GLASS/cellPlasma_OVERLAY.png | Bin .../items/materialicons/GLASS/cell_OVERLAY.png | Bin .../items/materialicons/GLASS/crateGtDust.png | Bin .../materialicons/GLASS/crateGtDust_OVERLAY.png | Bin .../items/materialicons/GLASS/crateGtGem.png | Bin .../materialicons/GLASS/crateGtGem_OVERLAY.png | Bin .../items/materialicons/GLASS/crateGtIngot.png | Bin .../materialicons/GLASS/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/GLASS/crateGtPlate.png | Bin .../materialicons/GLASS/crateGtPlate_OVERLAY.png | Bin .../textures/items/materialicons/GLASS/crushed.png | Bin .../materialicons/GLASS/crushedCentrifuged.png | Bin .../GLASS/crushedCentrifuged_OVERLAY.png | Bin .../items/materialicons/GLASS/crushedPurified.png | Bin .../materialicons/GLASS/crushedPurified_OVERLAY.png | Bin .../items/materialicons/GLASS/crushed_OVERLAY.png | Bin .../textures/items/materialicons/GLASS/dust.png | Bin .../items/materialicons/GLASS/dustImpure.png | Bin .../materialicons/GLASS/dustImpure_OVERLAY.png | Bin .../textures/items/materialicons/GLASS/dustPure.png | Bin .../items/materialicons/GLASS/dustPure_OVERLAY.png | Bin .../items/materialicons/GLASS/dustSmall.png | Bin .../items/materialicons/GLASS/dustSmall_OVERLAY.png | Bin .../textures/items/materialicons/GLASS/dustTiny.png | Bin .../items/materialicons/GLASS/dustTiny_OVERLAY.png | Bin .../items/materialicons/GLASS/dust_OVERLAY.png | Bin .../textures/items/materialicons/GLASS/foil.png | Bin .../items/materialicons/GLASS/foil_OVERLAY.png | Bin .../textures/items/materialicons/GLASS/gearGt.png | Bin .../items/materialicons/GLASS/gearGtSmall.png | Bin .../materialicons/GLASS/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/GLASS/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/GLASS/gem.png | Bin .../items/materialicons/GLASS/gemChipped.png | Bin .../materialicons/GLASS/gemChipped_OVERLAY.png | Bin .../items/materialicons/GLASS/gemExquisite.png | Bin .../materialicons/GLASS/gemExquisite_OVERLAY.png | Bin .../items/materialicons/GLASS/gemFlawed.png | Bin .../items/materialicons/GLASS/gemFlawed_OVERLAY.png | Bin .../items/materialicons/GLASS/gemFlawless.png | Bin .../materialicons/GLASS/gemFlawless_OVERLAY.png | Bin .../items/materialicons/GLASS/gem_OVERLAY.png | Bin .../textures/items/materialicons/GLASS/ingot.png | Bin .../items/materialicons/GLASS/ingotDouble.png | Bin .../materialicons/GLASS/ingotDouble_OVERLAY.png | Bin .../textures/items/materialicons/GLASS/ingotHot.png | Bin .../items/materialicons/GLASS/ingotHot_OVERLAY.png | Bin .../items/materialicons/GLASS/ingotQuadruple.png | Bin .../materialicons/GLASS/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/GLASS/ingotQuintuple.png | Bin .../materialicons/GLASS/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/GLASS/ingotTriple.png | Bin .../materialicons/GLASS/ingotTriple_OVERLAY.png | Bin .../items/materialicons/GLASS/ingot_OVERLAY.png | Bin .../textures/items/materialicons/GLASS/lens.png | Bin .../items/materialicons/GLASS/lens_OVERLAY.png | Bin .../textures/items/materialicons/GLASS/nugget.png | Bin .../items/materialicons/GLASS/nugget_OVERLAY.png | Bin .../textures/items/materialicons/GLASS/plate.png | Bin .../items/materialicons/GLASS/plateDense.png | Bin .../materialicons/GLASS/plateDense_OVERLAY.png | Bin .../items/materialicons/GLASS/plateDouble.png | Bin .../materialicons/GLASS/plateDouble_OVERLAY.png | Bin .../items/materialicons/GLASS/plateQuadruple.png | Bin .../materialicons/GLASS/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/GLASS/plateQuintuple.png | Bin .../materialicons/GLASS/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/GLASS/plateTriple.png | Bin .../materialicons/GLASS/plateTriple_OVERLAY.png | Bin .../items/materialicons/GLASS/plate_OVERLAY.png | Bin .../textures/items/materialicons/GLASS/ring.png | Bin .../items/materialicons/GLASS/ring_OVERLAY.png | Bin .../textures/items/materialicons/GLASS/rotor.png | Bin .../items/materialicons/GLASS/rotor_OVERLAY.png | Bin .../textures/items/materialicons/GLASS/round.png | Bin .../items/materialicons/GLASS/round_OVERLAY.png | Bin .../textures/items/materialicons/GLASS/screw.png | Bin .../items/materialicons/GLASS/screw_OVERLAY.png | Bin .../textures/items/materialicons/GLASS/spring.png | Bin .../items/materialicons/GLASS/springSmall.png | Bin .../materialicons/GLASS/springSmall_OVERLAY.png | Bin .../items/materialicons/GLASS/spring_OVERLAY.png | Bin .../textures/items/materialicons/GLASS/stick.png | Bin .../items/materialicons/GLASS/stickLong.png | Bin .../items/materialicons/GLASS/stickLong_OVERLAY.png | Bin .../items/materialicons/GLASS/stick_OVERLAY.png | Bin .../items/materialicons/GLASS/toolHeadArrow.png | Bin .../materialicons/GLASS/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/GLASS/toolHeadAxe.png | Bin .../materialicons/GLASS/toolHeadAxe_OVERLAY.png | Bin .../items/materialicons/GLASS/toolHeadBuzzSaw.png | Bin .../materialicons/GLASS/toolHeadBuzzSaw_OVERLAY.png | Bin .../items/materialicons/GLASS/toolHeadChainsaw.png | Bin .../GLASS/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/GLASS/toolHeadDrill.png | Bin .../materialicons/GLASS/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/GLASS/toolHeadFile.png | Bin .../materialicons/GLASS/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/GLASS/toolHeadHammer.png | Bin .../materialicons/GLASS/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/GLASS/toolHeadHoe.png | Bin .../materialicons/GLASS/toolHeadHoe_OVERLAY.png | Bin .../items/materialicons/GLASS/toolHeadPickaxe.png | Bin .../materialicons/GLASS/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/GLASS/toolHeadPlow.png | Bin .../materialicons/GLASS/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/GLASS/toolHeadSaw.png | Bin .../materialicons/GLASS/toolHeadSaw_OVERLAY.png | Bin .../materialicons/GLASS/toolHeadScrewdriver.png | Bin .../GLASS/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/GLASS/toolHeadSense.png | Bin .../materialicons/GLASS/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/GLASS/toolHeadShovel.png | Bin .../materialicons/GLASS/toolHeadShovel_OVERLAY.png | Bin .../items/materialicons/GLASS/toolHeadSoldering.png | Bin .../GLASS/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/GLASS/toolHeadSword.png | Bin .../materialicons/GLASS/toolHeadSword_OVERLAY.png | Bin .../materialicons/GLASS/toolHeadUniversalSpade.png | Bin .../GLASS/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/GLASS/toolHeadWrench.png | Bin .../materialicons/GLASS/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/GLASS/turbineBlade.png | Bin .../materialicons/GLASS/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/GLASS/void.png | Bin .../items/materialicons/GLASS/void_OVERLAY.png | Bin .../textures/items/materialicons/GLASS/wireFine.png | Bin .../items/materialicons/GLASS/wireFine_OVERLAY.png | Bin .../items/materialicons/LAPIS/TURBINE_BLADE.png | Bin .../materialicons/LAPIS/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/LAPIS/arrowGtPlastic.png | Bin .../materialicons/LAPIS/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/LAPIS/arrowGtWood.png | Bin .../materialicons/LAPIS/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/LAPIS/bolt.png | Bin .../items/materialicons/LAPIS/bolt_OVERLAY.png | Bin .../textures/items/materialicons/LAPIS/cell.png | Bin .../items/materialicons/LAPIS/cellPlasma.png | Bin .../materialicons/LAPIS/cellPlasma_OVERLAY.png | Bin .../items/materialicons/LAPIS/cell_OVERLAY.png | Bin .../items/materialicons/LAPIS/crateGtDust.png | Bin .../materialicons/LAPIS/crateGtDust_OVERLAY.png | Bin .../items/materialicons/LAPIS/crateGtGem.png | Bin .../materialicons/LAPIS/crateGtGem_OVERLAY.png | Bin .../items/materialicons/LAPIS/crateGtIngot.png | Bin .../materialicons/LAPIS/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/LAPIS/crateGtPlate.png | Bin .../materialicons/LAPIS/crateGtPlate_OVERLAY.png | Bin .../textures/items/materialicons/LAPIS/crushed.png | Bin .../materialicons/LAPIS/crushedCentrifuged.png | Bin .../LAPIS/crushedCentrifuged_OVERLAY.png | Bin .../items/materialicons/LAPIS/crushedPurified.png | Bin .../materialicons/LAPIS/crushedPurified_OVERLAY.png | Bin .../items/materialicons/LAPIS/crushed_OVERLAY.png | Bin .../textures/items/materialicons/LAPIS/dust.png | Bin .../items/materialicons/LAPIS/dustImpure.png | Bin .../materialicons/LAPIS/dustImpure_OVERLAY.png | Bin .../textures/items/materialicons/LAPIS/dustPure.png | Bin .../items/materialicons/LAPIS/dustPure_OVERLAY.png | Bin .../items/materialicons/LAPIS/dustSmall.png | Bin .../items/materialicons/LAPIS/dustSmall_OVERLAY.png | Bin .../textures/items/materialicons/LAPIS/dustTiny.png | Bin .../items/materialicons/LAPIS/dustTiny_OVERLAY.png | Bin .../items/materialicons/LAPIS/dust_OVERLAY.png | Bin .../textures/items/materialicons/LAPIS/foil.png | Bin .../items/materialicons/LAPIS/foil_OVERLAY.png | Bin .../textures/items/materialicons/LAPIS/gearGt.png | Bin .../items/materialicons/LAPIS/gearGtSmall.png | Bin .../materialicons/LAPIS/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/LAPIS/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/LAPIS/gem.png | Bin .../items/materialicons/LAPIS/gemChipped.png | Bin .../materialicons/LAPIS/gemChipped_OVERLAY.png | Bin .../items/materialicons/LAPIS/gemExquisite.png | Bin .../materialicons/LAPIS/gemExquisite_OVERLAY.png | Bin .../items/materialicons/LAPIS/gemFlawed.png | Bin .../items/materialicons/LAPIS/gemFlawed_OVERLAY.png | Bin .../items/materialicons/LAPIS/gemFlawless.png | Bin .../materialicons/LAPIS/gemFlawless_OVERLAY.png | Bin .../items/materialicons/LAPIS/gem_OVERLAY.png | Bin .../textures/items/materialicons/LAPIS/ingot.png | Bin .../items/materialicons/LAPIS/ingotDouble.png | Bin .../materialicons/LAPIS/ingotDouble_OVERLAY.png | Bin .../textures/items/materialicons/LAPIS/ingotHot.png | Bin .../items/materialicons/LAPIS/ingotHot_OVERLAY.png | Bin .../items/materialicons/LAPIS/ingotQuadruple.png | Bin .../materialicons/LAPIS/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/LAPIS/ingotQuintuple.png | Bin .../materialicons/LAPIS/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/LAPIS/ingotTriple.png | Bin .../materialicons/LAPIS/ingotTriple_OVERLAY.png | Bin .../items/materialicons/LAPIS/ingot_OVERLAY.png | Bin .../textures/items/materialicons/LAPIS/lens.png | Bin .../items/materialicons/LAPIS/lens_OVERLAY.png | Bin .../textures/items/materialicons/LAPIS/nugget.png | Bin .../items/materialicons/LAPIS/nugget_OVERLAY.png | Bin .../textures/items/materialicons/LAPIS/plate.png | Bin .../items/materialicons/LAPIS/plateDense.png | Bin .../materialicons/LAPIS/plateDense_OVERLAY.png | Bin .../items/materialicons/LAPIS/plateDouble.png | Bin .../materialicons/LAPIS/plateDouble_OVERLAY.png | Bin .../items/materialicons/LAPIS/plateQuadruple.png | Bin .../materialicons/LAPIS/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/LAPIS/plateQuintuple.png | Bin .../materialicons/LAPIS/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/LAPIS/plateTriple.png | Bin .../materialicons/LAPIS/plateTriple_OVERLAY.png | Bin .../items/materialicons/LAPIS/plate_OVERLAY.png | Bin .../textures/items/materialicons/LAPIS/ring.png | Bin .../items/materialicons/LAPIS/ring_OVERLAY.png | Bin .../textures/items/materialicons/LAPIS/rotor.png | Bin .../items/materialicons/LAPIS/rotor_OVERLAY.png | Bin .../textures/items/materialicons/LAPIS/round.png | Bin .../items/materialicons/LAPIS/round_OVERLAY.png | Bin .../textures/items/materialicons/LAPIS/screw.png | Bin .../items/materialicons/LAPIS/screw_OVERLAY.png | Bin .../textures/items/materialicons/LAPIS/spring.png | Bin .../items/materialicons/LAPIS/springSmall.png | Bin .../materialicons/LAPIS/springSmall_OVERLAY.png | Bin .../items/materialicons/LAPIS/spring_OVERLAY.png | Bin .../textures/items/materialicons/LAPIS/stick.png | Bin .../items/materialicons/LAPIS/stickLong.png | Bin .../items/materialicons/LAPIS/stickLong_OVERLAY.png | Bin .../items/materialicons/LAPIS/stick_OVERLAY.png | Bin .../items/materialicons/LAPIS/toolHeadArrow.png | Bin .../materialicons/LAPIS/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/LAPIS/toolHeadAxe.png | Bin .../materialicons/LAPIS/toolHeadAxe_OVERLAY.png | Bin .../items/materialicons/LAPIS/toolHeadBuzzSaw.png | Bin .../materialicons/LAPIS/toolHeadBuzzSaw_OVERLAY.png | Bin .../items/materialicons/LAPIS/toolHeadChainsaw.png | Bin .../LAPIS/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/LAPIS/toolHeadDrill.png | Bin .../materialicons/LAPIS/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/LAPIS/toolHeadFile.png | Bin .../materialicons/LAPIS/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/LAPIS/toolHeadHammer.png | Bin .../materialicons/LAPIS/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/LAPIS/toolHeadHoe.png | Bin .../materialicons/LAPIS/toolHeadHoe_OVERLAY.png | Bin .../items/materialicons/LAPIS/toolHeadPickaxe.png | Bin .../materialicons/LAPIS/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/LAPIS/toolHeadPlow.png | Bin .../materialicons/LAPIS/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/LAPIS/toolHeadSaw.png | Bin .../materialicons/LAPIS/toolHeadSaw_OVERLAY.png | Bin .../materialicons/LAPIS/toolHeadScrewdriver.png | Bin .../LAPIS/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/LAPIS/toolHeadSense.png | Bin .../materialicons/LAPIS/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/LAPIS/toolHeadShovel.png | Bin .../materialicons/LAPIS/toolHeadShovel_OVERLAY.png | Bin .../items/materialicons/LAPIS/toolHeadSoldering.png | Bin .../LAPIS/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/LAPIS/toolHeadSword.png | Bin .../materialicons/LAPIS/toolHeadSword_OVERLAY.png | Bin .../materialicons/LAPIS/toolHeadUniversalSpade.png | Bin .../LAPIS/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/LAPIS/toolHeadWrench.png | Bin .../materialicons/LAPIS/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/LAPIS/turbineBlade.png | Bin .../materialicons/LAPIS/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/LAPIS/void.png | Bin .../items/materialicons/LAPIS/void_OVERLAY.png | Bin .../textures/items/materialicons/LAPIS/wireFine.png | Bin .../items/materialicons/LAPIS/wireFine_OVERLAY.png | Bin .../items/materialicons/LEAF/arrowGtPlastic.png | Bin .../materialicons/LEAF/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/LEAF/arrowGtWood.png | Bin .../materialicons/LEAF/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/bolt.png | Bin .../items/materialicons/LEAF/bolt_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/cell.png | Bin .../items/materialicons/LEAF/cellPlasma.png | Bin .../items/materialicons/LEAF/cellPlasma_OVERLAY.png | Bin .../items/materialicons/LEAF/cell_OVERLAY.png | Bin .../items/materialicons/LEAF/crateGtDust.png | Bin .../materialicons/LEAF/crateGtDust_OVERLAY.png | Bin .../items/materialicons/LEAF/crateGtGem.png | Bin .../items/materialicons/LEAF/crateGtGem_OVERLAY.png | Bin .../items/materialicons/LEAF/crateGtIngot.png | Bin .../materialicons/LEAF/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/LEAF/crateGtPlate.png | Bin .../materialicons/LEAF/crateGtPlate_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/crushed.png | Bin .../items/materialicons/LEAF/crushedCentrifuged.png | Bin .../LEAF/crushedCentrifuged_OVERLAY.png | Bin .../items/materialicons/LEAF/crushedPurified.png | Bin .../materialicons/LEAF/crushedPurified_OVERLAY.png | Bin .../items/materialicons/LEAF/crushed_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/dust.png | Bin .../items/materialicons/LEAF/dustImpure.png | Bin .../items/materialicons/LEAF/dustImpure_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/dustPure.png | Bin .../items/materialicons/LEAF/dustPure_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/dustSmall.png | Bin .../items/materialicons/LEAF/dustSmall_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/dustTiny.png | Bin .../items/materialicons/LEAF/dustTiny_OVERLAY.png | Bin .../items/materialicons/LEAF/dust_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/foil.png | Bin .../items/materialicons/LEAF/foil_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/gearGt.png | Bin .../items/materialicons/LEAF/gearGtSmall.png | Bin .../materialicons/LEAF/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/LEAF/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/gem.png | Bin .../items/materialicons/LEAF/gemChipped.png | Bin .../items/materialicons/LEAF/gemChipped_OVERLAY.png | Bin .../items/materialicons/LEAF/gemExquisite.png | Bin .../materialicons/LEAF/gemExquisite_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/gemFlawed.png | Bin .../items/materialicons/LEAF/gemFlawed_OVERLAY.png | Bin .../items/materialicons/LEAF/gemFlawless.png | Bin .../materialicons/LEAF/gemFlawless_OVERLAY.png | Bin .../items/materialicons/LEAF/gem_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/ingot.png | Bin .../items/materialicons/LEAF/ingotDouble.png | Bin .../materialicons/LEAF/ingotDouble_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/ingotHot.png | Bin .../items/materialicons/LEAF/ingotHot_OVERLAY.png | Bin .../items/materialicons/LEAF/ingotQuadruple.png | Bin .../materialicons/LEAF/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/LEAF/ingotQuintuple.png | Bin .../materialicons/LEAF/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/LEAF/ingotTriple.png | Bin .../materialicons/LEAF/ingotTriple_OVERLAY.png | Bin .../items/materialicons/LEAF/ingot_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/lens.png | Bin .../items/materialicons/LEAF/lens_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/nugget.png | Bin .../items/materialicons/LEAF/nugget_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/plate.png | Bin .../items/materialicons/LEAF/plateDense.png | Bin .../items/materialicons/LEAF/plateDense_OVERLAY.png | Bin .../items/materialicons/LEAF/plateDouble.png | Bin .../materialicons/LEAF/plateDouble_OVERLAY.png | Bin .../items/materialicons/LEAF/plateQuadruple.png | Bin .../materialicons/LEAF/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/LEAF/plateQuintuple.png | Bin .../materialicons/LEAF/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/LEAF/plateTriple.png | Bin .../materialicons/LEAF/plateTriple_OVERLAY.png | Bin .../items/materialicons/LEAF/plate_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/ring.png | Bin .../items/materialicons/LEAF/ring_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/rotor.png | Bin .../items/materialicons/LEAF/rotor_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/round.png | Bin .../items/materialicons/LEAF/round_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/screw.png | Bin .../items/materialicons/LEAF/screw_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/spring.png | Bin .../items/materialicons/LEAF/springSmall.png | Bin .../materialicons/LEAF/springSmall_OVERLAY.png | Bin .../items/materialicons/LEAF/spring_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/stick.png | Bin .../textures/items/materialicons/LEAF/stickLong.png | Bin .../items/materialicons/LEAF/stickLong_OVERLAY.png | Bin .../items/materialicons/LEAF/stick_OVERLAY.png | Bin .../items/materialicons/LEAF/toolHeadArrow.png | Bin .../materialicons/LEAF/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/LEAF/toolHeadAxe.png | Bin .../materialicons/LEAF/toolHeadAxe_OVERLAY.png | Bin .../items/materialicons/LEAF/toolHeadBuzzSaw.png | Bin .../materialicons/LEAF/toolHeadBuzzSaw_OVERLAY.png | Bin .../items/materialicons/LEAF/toolHeadChainsaw.png | Bin .../materialicons/LEAF/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/LEAF/toolHeadDrill.png | Bin .../materialicons/LEAF/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/LEAF/toolHeadFile.png | Bin .../materialicons/LEAF/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/LEAF/toolHeadHammer.png | Bin .../materialicons/LEAF/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/LEAF/toolHeadHoe.png | Bin .../materialicons/LEAF/toolHeadHoe_OVERLAY.png | Bin .../items/materialicons/LEAF/toolHeadPickaxe.png | Bin .../materialicons/LEAF/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/LEAF/toolHeadPlow.png | Bin .../materialicons/LEAF/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/LEAF/toolHeadSaw.png | Bin .../materialicons/LEAF/toolHeadSaw_OVERLAY.png | Bin .../materialicons/LEAF/toolHeadScrewdriver.png | Bin .../LEAF/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/LEAF/toolHeadSense.png | Bin .../materialicons/LEAF/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/LEAF/toolHeadShovel.png | Bin .../materialicons/LEAF/toolHeadShovel_OVERLAY.png | Bin .../items/materialicons/LEAF/toolHeadSoldering.png | Bin .../LEAF/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/LEAF/toolHeadSword.png | Bin .../materialicons/LEAF/toolHeadSword_OVERLAY.png | Bin .../materialicons/LEAF/toolHeadUniversalSpade.png | Bin .../LEAF/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/LEAF/toolHeadWrench.png | Bin .../materialicons/LEAF/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/LEAF/turbineBlade.png | Bin .../materialicons/LEAF/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/void.png | Bin .../items/materialicons/LEAF/void_OVERLAY.png | Bin .../textures/items/materialicons/LEAF/wireFine.png | Bin .../items/materialicons/LEAF/wireFine_OVERLAY.png | Bin .../items/materialicons/LIGNITE/TURBINE_BLADE.png | Bin .../materialicons/LIGNITE/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/LIGNITE/arrowGtPlastic.png | Bin .../LIGNITE/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/LIGNITE/arrowGtWood.png | Bin .../materialicons/LIGNITE/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/LIGNITE/bolt.png | Bin .../items/materialicons/LIGNITE/bolt_OVERLAY.png | Bin .../textures/items/materialicons/LIGNITE/cell.png | Bin .../items/materialicons/LIGNITE/cellPlasma.png | Bin .../materialicons/LIGNITE/cellPlasma_OVERLAY.png | Bin .../items/materialicons/LIGNITE/cell_OVERLAY.png | Bin .../items/materialicons/LIGNITE/crateGtDust.png | Bin .../materialicons/LIGNITE/crateGtDust_OVERLAY.png | Bin .../items/materialicons/LIGNITE/crateGtGem.png | Bin .../materialicons/LIGNITE/crateGtGem_OVERLAY.png | Bin .../items/materialicons/LIGNITE/crateGtIngot.png | Bin .../materialicons/LIGNITE/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/LIGNITE/crateGtPlate.png | Bin .../materialicons/LIGNITE/crateGtPlate_OVERLAY.png | Bin .../items/materialicons/LIGNITE/crushed.png | Bin .../materialicons/LIGNITE/crushedCentrifuged.png | Bin .../LIGNITE/crushedCentrifuged_OVERLAY.png | Bin .../items/materialicons/LIGNITE/crushedPurified.png | Bin .../LIGNITE/crushedPurified_OVERLAY.png | Bin .../items/materialicons/LIGNITE/crushed_OVERLAY.png | Bin .../textures/items/materialicons/LIGNITE/dust.png | Bin .../items/materialicons/LIGNITE/dustImpure.png | Bin .../materialicons/LIGNITE/dustImpure_OVERLAY.png | Bin .../items/materialicons/LIGNITE/dustPure.png | Bin .../materialicons/LIGNITE/dustPure_OVERLAY.png | Bin .../items/materialicons/LIGNITE/dustSmall.png | Bin .../materialicons/LIGNITE/dustSmall_OVERLAY.png | Bin .../items/materialicons/LIGNITE/dustTiny.png | Bin .../materialicons/LIGNITE/dustTiny_OVERLAY.png | Bin .../items/materialicons/LIGNITE/dust_OVERLAY.png | Bin .../textures/items/materialicons/LIGNITE/foil.png | Bin .../items/materialicons/LIGNITE/foil_OVERLAY.png | Bin .../textures/items/materialicons/LIGNITE/gearGt.png | Bin .../items/materialicons/LIGNITE/gearGtSmall.png | Bin .../materialicons/LIGNITE/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/LIGNITE/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/LIGNITE/gem.png | Bin .../items/materialicons/LIGNITE/gemChipped.png | Bin .../materialicons/LIGNITE/gemChipped_OVERLAY.png | Bin .../items/materialicons/LIGNITE/gemExquisite.png | Bin .../materialicons/LIGNITE/gemExquisite_OVERLAY.png | Bin .../items/materialicons/LIGNITE/gemFlawed.png | Bin .../materialicons/LIGNITE/gemFlawed_OVERLAY.png | Bin .../items/materialicons/LIGNITE/gemFlawless.png | Bin .../materialicons/LIGNITE/gemFlawless_OVERLAY.png | Bin .../items/materialicons/LIGNITE/gem_OVERLAY.png | Bin .../textures/items/materialicons/LIGNITE/ingot.png | Bin .../items/materialicons/LIGNITE/ingotDouble.png | Bin .../materialicons/LIGNITE/ingotDouble_OVERLAY.png | Bin .../items/materialicons/LIGNITE/ingotHot.png | Bin .../materialicons/LIGNITE/ingotHot_OVERLAY.png | Bin .../items/materialicons/LIGNITE/ingotQuadruple.png | Bin .../LIGNITE/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/LIGNITE/ingotQuintuple.png | Bin .../LIGNITE/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/LIGNITE/ingotTriple.png | Bin .../materialicons/LIGNITE/ingotTriple_OVERLAY.png | Bin .../items/materialicons/LIGNITE/ingot_OVERLAY.png | Bin .../textures/items/materialicons/LIGNITE/lens.png | Bin .../items/materialicons/LIGNITE/lens_OVERLAY.png | Bin .../textures/items/materialicons/LIGNITE/nugget.png | Bin .../items/materialicons/LIGNITE/nugget_OVERLAY.png | Bin .../textures/items/materialicons/LIGNITE/plate.png | Bin .../items/materialicons/LIGNITE/plateDense.png | Bin .../materialicons/LIGNITE/plateDense_OVERLAY.png | Bin .../items/materialicons/LIGNITE/plateDouble.png | Bin .../materialicons/LIGNITE/plateDouble_OVERLAY.png | Bin .../items/materialicons/LIGNITE/plateQuadruple.png | Bin .../LIGNITE/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/LIGNITE/plateQuintuple.png | Bin .../LIGNITE/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/LIGNITE/plateTriple.png | Bin .../materialicons/LIGNITE/plateTriple_OVERLAY.png | Bin .../items/materialicons/LIGNITE/plate_OVERLAY.png | Bin .../textures/items/materialicons/LIGNITE/ring.png | Bin .../items/materialicons/LIGNITE/ring_OVERLAY.png | Bin .../textures/items/materialicons/LIGNITE/rotor.png | Bin .../items/materialicons/LIGNITE/rotor_OVERLAY.png | Bin .../textures/items/materialicons/LIGNITE/round.png | Bin .../items/materialicons/LIGNITE/round_OVERLAY.png | Bin .../textures/items/materialicons/LIGNITE/screw.png | Bin .../items/materialicons/LIGNITE/screw_OVERLAY.png | Bin .../textures/items/materialicons/LIGNITE/spring.png | Bin .../items/materialicons/LIGNITE/springSmall.png | Bin .../materialicons/LIGNITE/springSmall_OVERLAY.png | Bin .../items/materialicons/LIGNITE/spring_OVERLAY.png | Bin .../textures/items/materialicons/LIGNITE/stick.png | Bin .../items/materialicons/LIGNITE/stickLong.png | Bin .../materialicons/LIGNITE/stickLong_OVERLAY.png | Bin .../items/materialicons/LIGNITE/stick_OVERLAY.png | Bin .../items/materialicons/LIGNITE/toolHeadArrow.png | Bin .../materialicons/LIGNITE/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/LIGNITE/toolHeadAxe.png | Bin .../materialicons/LIGNITE/toolHeadAxe_OVERLAY.png | Bin .../items/materialicons/LIGNITE/toolHeadBuzzSaw.png | Bin .../LIGNITE/toolHeadBuzzSaw_OVERLAY.png | Bin .../materialicons/LIGNITE/toolHeadChainsaw.png | Bin .../LIGNITE/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/LIGNITE/toolHeadDrill.png | Bin .../materialicons/LIGNITE/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/LIGNITE/toolHeadFile.png | Bin .../materialicons/LIGNITE/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/LIGNITE/toolHeadHammer.png | Bin .../LIGNITE/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/LIGNITE/toolHeadHoe.png | Bin .../materialicons/LIGNITE/toolHeadHoe_OVERLAY.png | Bin .../items/materialicons/LIGNITE/toolHeadPickaxe.png | Bin .../LIGNITE/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/LIGNITE/toolHeadPlow.png | Bin .../materialicons/LIGNITE/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/LIGNITE/toolHeadSaw.png | Bin .../materialicons/LIGNITE/toolHeadSaw_OVERLAY.png | Bin .../materialicons/LIGNITE/toolHeadScrewdriver.png | Bin .../LIGNITE/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/LIGNITE/toolHeadSense.png | Bin .../materialicons/LIGNITE/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/LIGNITE/toolHeadShovel.png | Bin .../LIGNITE/toolHeadShovel_OVERLAY.png | Bin .../materialicons/LIGNITE/toolHeadSoldering.png | Bin .../LIGNITE/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/LIGNITE/toolHeadSword.png | Bin .../materialicons/LIGNITE/toolHeadSword_OVERLAY.png | Bin .../LIGNITE/toolHeadUniversalSpade.png | Bin .../LIGNITE/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/LIGNITE/toolHeadWrench.png | Bin .../LIGNITE/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/LIGNITE/turbineBlade.png | Bin .../materialicons/LIGNITE/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/LIGNITE/void.png | Bin .../items/materialicons/LIGNITE/void_OVERLAY.png | Bin .../items/materialicons/LIGNITE/wireFine.png | Bin .../materialicons/LIGNITE/wireFine_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/TURBINE_BLADE.png | Bin .../MAGNETIC/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/arrowGtPlastic.png | Bin .../MAGNETIC/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/arrowGtWood.png | Bin .../materialicons/MAGNETIC/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/MAGNETIC/bolt.png | Bin .../items/materialicons/MAGNETIC/bolt_OVERLAY.png | Bin .../textures/items/materialicons/MAGNETIC/cell.png | Bin .../items/materialicons/MAGNETIC/cellPlasma.png | Bin .../materialicons/MAGNETIC/cellPlasma_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/cell_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/crateGtDust.png | Bin .../materialicons/MAGNETIC/crateGtDust_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/crateGtGem.png | Bin .../materialicons/MAGNETIC/crateGtGem_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/crateGtIngot.png | Bin .../materialicons/MAGNETIC/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/crateGtPlate.png | Bin .../materialicons/MAGNETIC/crateGtPlate_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/crushed.png | Bin .../materialicons/MAGNETIC/crushedCentrifuged.png | Bin .../MAGNETIC/crushedCentrifuged_OVERLAY.png | Bin .../materialicons/MAGNETIC/crushedPurified.png | Bin .../MAGNETIC/crushedPurified_OVERLAY.png | Bin .../materialicons/MAGNETIC/crushed_OVERLAY.png | Bin .../textures/items/materialicons/MAGNETIC/dust.png | Bin .../items/materialicons/MAGNETIC/dustImpure.png | Bin .../materialicons/MAGNETIC/dustImpure_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/dustPure.png | Bin .../materialicons/MAGNETIC/dustPure_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/dustSmall.png | Bin .../materialicons/MAGNETIC/dustSmall_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/dustTiny.png | Bin .../materialicons/MAGNETIC/dustTiny_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/dust_OVERLAY.png | Bin .../textures/items/materialicons/MAGNETIC/foil.png | Bin .../items/materialicons/MAGNETIC/foil_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/gearGt.png | Bin .../items/materialicons/MAGNETIC/gearGtSmall.png | Bin .../materialicons/MAGNETIC/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/MAGNETIC/gem.png | Bin .../items/materialicons/MAGNETIC/gemChipped.png | Bin .../materialicons/MAGNETIC/gemChipped_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/gemExquisite.png | Bin .../materialicons/MAGNETIC/gemExquisite_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/gemFlawed.png | Bin .../materialicons/MAGNETIC/gemFlawed_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/gemFlawless.png | Bin .../materialicons/MAGNETIC/gemFlawless_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/gem_OVERLAY.png | Bin .../textures/items/materialicons/MAGNETIC/ingot.png | Bin .../items/materialicons/MAGNETIC/ingotDouble.png | Bin .../materialicons/MAGNETIC/ingotDouble_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/ingotHot.png | Bin .../materialicons/MAGNETIC/ingotHot_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/ingotQuadruple.png | Bin .../MAGNETIC/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/ingotQuintuple.png | Bin .../MAGNETIC/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/ingotTriple.png | Bin .../materialicons/MAGNETIC/ingotTriple_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/ingot_OVERLAY.png | Bin .../textures/items/materialicons/MAGNETIC/lens.png | Bin .../items/materialicons/MAGNETIC/lens_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/nugget.png | Bin .../items/materialicons/MAGNETIC/nugget_OVERLAY.png | Bin .../textures/items/materialicons/MAGNETIC/plate.png | Bin .../items/materialicons/MAGNETIC/plateDense.png | Bin .../materialicons/MAGNETIC/plateDense_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/plateDouble.png | Bin .../materialicons/MAGNETIC/plateDouble_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/plateQuadruple.png | Bin .../MAGNETIC/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/plateQuintuple.png | Bin .../MAGNETIC/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/plateTriple.png | Bin .../materialicons/MAGNETIC/plateTriple_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/plate_OVERLAY.png | Bin .../textures/items/materialicons/MAGNETIC/ring.png | Bin .../items/materialicons/MAGNETIC/ring_OVERLAY.png | Bin .../textures/items/materialicons/MAGNETIC/rotor.png | Bin .../items/materialicons/MAGNETIC/rotor_OVERLAY.png | Bin .../textures/items/materialicons/MAGNETIC/round.png | Bin .../items/materialicons/MAGNETIC/round_OVERLAY.png | Bin .../textures/items/materialicons/MAGNETIC/screw.png | Bin .../items/materialicons/MAGNETIC/screw_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/spring.png | Bin .../items/materialicons/MAGNETIC/springSmall.png | Bin .../materialicons/MAGNETIC/springSmall_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/spring_OVERLAY.png | Bin .../textures/items/materialicons/MAGNETIC/stick.png | Bin .../items/materialicons/MAGNETIC/stickLong.png | Bin .../materialicons/MAGNETIC/stickLong_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/stick_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/toolHeadArrow.png | Bin .../MAGNETIC/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/toolHeadAxe.png | Bin .../materialicons/MAGNETIC/toolHeadAxe_OVERLAY.png | Bin .../materialicons/MAGNETIC/toolHeadBuzzSaw.png | Bin .../MAGNETIC/toolHeadBuzzSaw_OVERLAY.png | Bin .../materialicons/MAGNETIC/toolHeadChainsaw.png | Bin .../MAGNETIC/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/toolHeadDrill.png | Bin .../MAGNETIC/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/toolHeadFile.png | Bin .../materialicons/MAGNETIC/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/toolHeadHammer.png | Bin .../MAGNETIC/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/toolHeadHoe.png | Bin .../materialicons/MAGNETIC/toolHeadHoe_OVERLAY.png | Bin .../materialicons/MAGNETIC/toolHeadPickaxe.png | Bin .../MAGNETIC/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/toolHeadPlow.png | Bin .../materialicons/MAGNETIC/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/toolHeadSaw.png | Bin .../materialicons/MAGNETIC/toolHeadSaw_OVERLAY.png | Bin .../materialicons/MAGNETIC/toolHeadScrewdriver.png | Bin .../MAGNETIC/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/toolHeadSense.png | Bin .../MAGNETIC/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/toolHeadShovel.png | Bin .../MAGNETIC/toolHeadShovel_OVERLAY.png | Bin .../materialicons/MAGNETIC/toolHeadSoldering.png | Bin .../MAGNETIC/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/toolHeadSword.png | Bin .../MAGNETIC/toolHeadSword_OVERLAY.png | Bin .../MAGNETIC/toolHeadUniversalSpade.png | Bin .../MAGNETIC/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/toolHeadWrench.png | Bin .../MAGNETIC/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/turbineBlade.png | Bin .../materialicons/MAGNETIC/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/MAGNETIC/void.png | Bin .../items/materialicons/MAGNETIC/void_OVERLAY.png | Bin .../items/materialicons/MAGNETIC/wireFine.png | Bin .../materialicons/MAGNETIC/wireFine_OVERLAY.png | Bin .../items/materialicons/METALLIC/TURBINE_BLADE.png | Bin .../METALLIC/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/METALLIC/arrowGtPlastic.png | Bin .../METALLIC/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/METALLIC/arrowGtWood.png | Bin .../materialicons/METALLIC/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/METALLIC/bolt.png | Bin .../items/materialicons/METALLIC/bolt_OVERLAY.png | Bin .../textures/items/materialicons/METALLIC/cell.png | Bin .../items/materialicons/METALLIC/cellPlasma.png | Bin .../materialicons/METALLIC/cellPlasma_OVERLAY.png | Bin .../items/materialicons/METALLIC/cell_OVERLAY.png | Bin .../items/materialicons/METALLIC/crateGtDust.png | Bin .../materialicons/METALLIC/crateGtDust_OVERLAY.png | Bin .../items/materialicons/METALLIC/crateGtGem.png | Bin .../materialicons/METALLIC/crateGtGem_OVERLAY.png | Bin .../items/materialicons/METALLIC/crateGtIngot.png | Bin .../materialicons/METALLIC/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/METALLIC/crateGtPlate.png | Bin .../materialicons/METALLIC/crateGtPlate_OVERLAY.png | Bin .../items/materialicons/METALLIC/crushed.png | Bin .../materialicons/METALLIC/crushedCentrifuged.png | Bin .../METALLIC/crushedCentrifuged_OVERLAY.png | Bin .../materialicons/METALLIC/crushedPurified.png | Bin .../METALLIC/crushedPurified_OVERLAY.png | Bin .../materialicons/METALLIC/crushed_OVERLAY.png | Bin .../textures/items/materialicons/METALLIC/dust.png | Bin .../items/materialicons/METALLIC/dustImpure.png | Bin .../materialicons/METALLIC/dustImpure_OVERLAY.png | Bin .../items/materialicons/METALLIC/dustPure.png | Bin .../materialicons/METALLIC/dustPure_OVERLAY.png | Bin .../items/materialicons/METALLIC/dustSmall.png | Bin .../materialicons/METALLIC/dustSmall_OVERLAY.png | Bin .../items/materialicons/METALLIC/dustTiny.png | Bin .../materialicons/METALLIC/dustTiny_OVERLAY.png | Bin .../items/materialicons/METALLIC/dust_OVERLAY.png | Bin .../textures/items/materialicons/METALLIC/foil.png | Bin .../items/materialicons/METALLIC/foil_OVERLAY.png | Bin .../items/materialicons/METALLIC/gearGt.png | Bin .../items/materialicons/METALLIC/gearGtSmall.png | Bin .../materialicons/METALLIC/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/METALLIC/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/METALLIC/gem.png | Bin .../items/materialicons/METALLIC/gemChipped.png | Bin .../materialicons/METALLIC/gemChipped_OVERLAY.png | Bin .../items/materialicons/METALLIC/gemExquisite.png | Bin .../materialicons/METALLIC/gemExquisite_OVERLAY.png | Bin .../items/materialicons/METALLIC/gemFlawed.png | Bin .../materialicons/METALLIC/gemFlawed_OVERLAY.png | Bin .../items/materialicons/METALLIC/gemFlawless.png | Bin .../materialicons/METALLIC/gemFlawless_OVERLAY.png | Bin .../items/materialicons/METALLIC/gem_OVERLAY.png | Bin .../textures/items/materialicons/METALLIC/ingot.png | Bin .../items/materialicons/METALLIC/ingotDouble.png | Bin .../materialicons/METALLIC/ingotDouble_OVERLAY.png | Bin .../items/materialicons/METALLIC/ingotHot.png | Bin .../materialicons/METALLIC/ingotHot_OVERLAY.png | Bin .../items/materialicons/METALLIC/ingotQuadruple.png | Bin .../METALLIC/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/METALLIC/ingotQuintuple.png | Bin .../METALLIC/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/METALLIC/ingotTriple.png | Bin .../materialicons/METALLIC/ingotTriple_OVERLAY.png | Bin .../items/materialicons/METALLIC/ingot_OVERLAY.png | Bin .../textures/items/materialicons/METALLIC/lens.png | Bin .../items/materialicons/METALLIC/lens_OVERLAY.png | Bin .../items/materialicons/METALLIC/nugget.png | Bin .../items/materialicons/METALLIC/nugget_OVERLAY.png | Bin .../textures/items/materialicons/METALLIC/plate.png | Bin .../items/materialicons/METALLIC/plateDense.png | Bin .../materialicons/METALLIC/plateDense_OVERLAY.png | Bin .../items/materialicons/METALLIC/plateDouble.png | Bin .../materialicons/METALLIC/plateDouble_OVERLAY.png | Bin .../items/materialicons/METALLIC/plateQuadruple.png | Bin .../METALLIC/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/METALLIC/plateQuintuple.png | Bin .../METALLIC/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/METALLIC/plateTriple.png | Bin .../materialicons/METALLIC/plateTriple_OVERLAY.png | Bin .../items/materialicons/METALLIC/plate_OVERLAY.png | Bin .../textures/items/materialicons/METALLIC/ring.png | Bin .../items/materialicons/METALLIC/ring_OVERLAY.png | Bin .../textures/items/materialicons/METALLIC/rotor.png | Bin .../items/materialicons/METALLIC/rotor_OVERLAY.png | Bin .../textures/items/materialicons/METALLIC/round.png | Bin .../items/materialicons/METALLIC/round_OVERLAY.png | Bin .../textures/items/materialicons/METALLIC/screw.png | Bin .../items/materialicons/METALLIC/screw_OVERLAY.png | Bin .../items/materialicons/METALLIC/spring.png | Bin .../items/materialicons/METALLIC/springSmall.png | Bin .../materialicons/METALLIC/springSmall_OVERLAY.png | Bin .../items/materialicons/METALLIC/spring_OVERLAY.png | Bin .../textures/items/materialicons/METALLIC/stick.png | Bin .../items/materialicons/METALLIC/stickLong.png | Bin .../materialicons/METALLIC/stickLong_OVERLAY.png | Bin .../items/materialicons/METALLIC/stick_OVERLAY.png | Bin .../items/materialicons/METALLIC/toolHeadArrow.png | Bin .../METALLIC/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/METALLIC/toolHeadAxe.png | Bin .../materialicons/METALLIC/toolHeadAxe_OVERLAY.png | Bin .../materialicons/METALLIC/toolHeadBuzzSaw.png | Bin .../METALLIC/toolHeadBuzzSaw_OVERLAY.png | Bin .../materialicons/METALLIC/toolHeadChainsaw.png | Bin .../METALLIC/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/METALLIC/toolHeadDrill.png | Bin .../METALLIC/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/METALLIC/toolHeadFile.png | Bin .../materialicons/METALLIC/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/METALLIC/toolHeadHammer.png | Bin .../METALLIC/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/METALLIC/toolHeadHoe.png | Bin .../materialicons/METALLIC/toolHeadHoe_OVERLAY.png | Bin .../materialicons/METALLIC/toolHeadPickaxe.png | Bin .../METALLIC/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/METALLIC/toolHeadPlow.png | Bin .../materialicons/METALLIC/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/METALLIC/toolHeadSaw.png | Bin .../materialicons/METALLIC/toolHeadSaw_OVERLAY.png | Bin .../materialicons/METALLIC/toolHeadScrewdriver.png | Bin .../METALLIC/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/METALLIC/toolHeadSense.png | Bin .../METALLIC/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/METALLIC/toolHeadShovel.png | Bin .../METALLIC/toolHeadShovel_OVERLAY.png | Bin .../materialicons/METALLIC/toolHeadSoldering.png | Bin .../METALLIC/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/METALLIC/toolHeadSword.png | Bin .../METALLIC/toolHeadSword_OVERLAY.png | Bin .../METALLIC/toolHeadUniversalSpade.png | Bin .../METALLIC/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/METALLIC/toolHeadWrench.png | Bin .../METALLIC/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/METALLIC/turbineBlade.png | Bin .../materialicons/METALLIC/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/METALLIC/void.png | Bin .../items/materialicons/METALLIC/void_OVERLAY.png | Bin .../items/materialicons/METALLIC/wireFine.png | Bin .../materialicons/METALLIC/wireFine_OVERLAY.png | Bin .../materialicons/NETHERSTAR/TURBINE_BLADE.png | Bin .../NETHERSTAR/TURBINE_BLADE_OVERLAY.png | Bin .../materialicons/NETHERSTAR/arrowGtPlastic.png | Bin .../NETHERSTAR/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/arrowGtWood.png | Bin .../NETHERSTAR/arrowGtWood_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/bolt.png | Bin .../items/materialicons/NETHERSTAR/bolt_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/cell.png | Bin .../items/materialicons/NETHERSTAR/cellPlasma.png | Bin .../materialicons/NETHERSTAR/cellPlasma_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/cell_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/crateGtDust.png | Bin .../NETHERSTAR/crateGtDust_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/crateGtGem.png | Bin .../materialicons/NETHERSTAR/crateGtGem_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/crateGtIngot.png | Bin .../NETHERSTAR/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/crateGtPlate.png | Bin .../NETHERSTAR/crateGtPlate_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/crushed.png | Bin .../materialicons/NETHERSTAR/crushedCentrifuged.png | Bin .../NETHERSTAR/crushedCentrifuged_OVERLAY.png | Bin .../materialicons/NETHERSTAR/crushedPurified.png | Bin .../NETHERSTAR/crushedPurified_OVERLAY.png | Bin .../materialicons/NETHERSTAR/crushed_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/dust.png | Bin .../items/materialicons/NETHERSTAR/dustImpure.png | Bin .../materialicons/NETHERSTAR/dustImpure_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/dustPure.png | Bin .../materialicons/NETHERSTAR/dustPure_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/dustSmall.png | Bin .../materialicons/NETHERSTAR/dustSmall_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/dustTiny.png | Bin .../materialicons/NETHERSTAR/dustTiny_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/dust_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/foil.png | Bin .../items/materialicons/NETHERSTAR/foil_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/gearGt.png | Bin .../items/materialicons/NETHERSTAR/gearGtSmall.png | Bin .../NETHERSTAR/gearGtSmall_OVERLAY.png | Bin .../materialicons/NETHERSTAR/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/NETHERSTAR/gem.png | Bin .../items/materialicons/NETHERSTAR/gemChipped.png | Bin .../materialicons/NETHERSTAR/gemChipped_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/gemExquisite.png | Bin .../NETHERSTAR/gemExquisite_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/gemFlawed.png | Bin .../materialicons/NETHERSTAR/gemFlawed_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/gemFlawless.png | Bin .../NETHERSTAR/gemFlawless_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/gem_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/ingot.png | Bin .../items/materialicons/NETHERSTAR/ingotDouble.png | Bin .../NETHERSTAR/ingotDouble_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/ingotHot.png | Bin .../materialicons/NETHERSTAR/ingotHot_OVERLAY.png | Bin .../materialicons/NETHERSTAR/ingotQuadruple.png | Bin .../NETHERSTAR/ingotQuadruple_OVERLAY.png | Bin .../materialicons/NETHERSTAR/ingotQuintuple.png | Bin .../NETHERSTAR/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/ingotTriple.png | Bin .../NETHERSTAR/ingotTriple_OVERLAY.png | Bin .../materialicons/NETHERSTAR/ingot_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/lens.png | Bin .../items/materialicons/NETHERSTAR/lens_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/nugget.png | Bin .../materialicons/NETHERSTAR/nugget_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/plate.png | Bin .../items/materialicons/NETHERSTAR/plateDense.png | Bin .../materialicons/NETHERSTAR/plateDense_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/plateDouble.png | Bin .../NETHERSTAR/plateDouble_OVERLAY.png | Bin .../materialicons/NETHERSTAR/plateQuadruple.png | Bin .../NETHERSTAR/plateQuadruple_OVERLAY.png | Bin .../materialicons/NETHERSTAR/plateQuintuple.png | Bin .../NETHERSTAR/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/plateTriple.png | Bin .../NETHERSTAR/plateTriple_OVERLAY.png | Bin .../materialicons/NETHERSTAR/plate_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/ring.png | Bin .../items/materialicons/NETHERSTAR/ring_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/rotor.png | Bin .../materialicons/NETHERSTAR/rotor_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/round.png | Bin .../materialicons/NETHERSTAR/round_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/screw.png | Bin .../materialicons/NETHERSTAR/screw_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/spring.png | Bin .../items/materialicons/NETHERSTAR/springSmall.png | Bin .../NETHERSTAR/springSmall_OVERLAY.png | Bin .../materialicons/NETHERSTAR/spring_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/stick.png | Bin .../items/materialicons/NETHERSTAR/stickLong.png | Bin .../materialicons/NETHERSTAR/stickLong_OVERLAY.png | Bin .../materialicons/NETHERSTAR/stick_OVERLAY.png | Bin .../materialicons/NETHERSTAR/toolHeadArrow.png | Bin .../NETHERSTAR/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/toolHeadAxe.png | Bin .../NETHERSTAR/toolHeadAxe_OVERLAY.png | Bin .../materialicons/NETHERSTAR/toolHeadBuzzSaw.png | Bin .../NETHERSTAR/toolHeadBuzzSaw_OVERLAY.png | Bin .../materialicons/NETHERSTAR/toolHeadChainsaw.png | Bin .../NETHERSTAR/toolHeadChainsaw_OVERLAY.png | Bin .../materialicons/NETHERSTAR/toolHeadDrill.png | Bin .../NETHERSTAR/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/toolHeadFile.png | Bin .../NETHERSTAR/toolHeadFile_OVERLAY.png | Bin .../materialicons/NETHERSTAR/toolHeadHammer.png | Bin .../NETHERSTAR/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/toolHeadHoe.png | Bin .../NETHERSTAR/toolHeadHoe_OVERLAY.png | Bin .../materialicons/NETHERSTAR/toolHeadPickaxe.png | Bin .../NETHERSTAR/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/toolHeadPlow.png | Bin .../NETHERSTAR/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/toolHeadSaw.png | Bin .../NETHERSTAR/toolHeadSaw_OVERLAY.png | Bin .../NETHERSTAR/toolHeadScrewdriver.png | Bin .../NETHERSTAR/toolHeadScrewdriver_OVERLAY.png | Bin .../materialicons/NETHERSTAR/toolHeadSense.png | Bin .../NETHERSTAR/toolHeadSense_OVERLAY.png | Bin .../materialicons/NETHERSTAR/toolHeadShovel.png | Bin .../NETHERSTAR/toolHeadShovel_OVERLAY.png | Bin .../materialicons/NETHERSTAR/toolHeadSoldering.png | Bin .../NETHERSTAR/toolHeadSoldering_OVERLAY.png | Bin .../materialicons/NETHERSTAR/toolHeadSword.png | Bin .../NETHERSTAR/toolHeadSword_OVERLAY.png | Bin .../NETHERSTAR/toolHeadUniversalSpade.png | Bin .../NETHERSTAR/toolHeadUniversalSpade_OVERLAY.png | Bin .../materialicons/NETHERSTAR/toolHeadWrench.png | Bin .../NETHERSTAR/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/turbineBlade.png | Bin .../NETHERSTAR/turbineBlade_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/void.png | Bin .../items/materialicons/NETHERSTAR/void_OVERLAY.png | Bin .../items/materialicons/NETHERSTAR/wireFine.png | Bin .../materialicons/NETHERSTAR/wireFine_OVERLAY.png | Bin .../items/materialicons/NONE/TURBINE_BLADE.png | Bin .../materialicons/NONE/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/NONE/arrowGtPlastic.png | Bin .../materialicons/NONE/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/NONE/arrowGtWood.png | Bin .../materialicons/NONE/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/NONE/bolt.png | Bin .../items/materialicons/NONE/bolt_OVERLAY.png | Bin .../textures/items/materialicons/NONE/cell.png | Bin .../items/materialicons/NONE/cellPlasma.png | Bin .../items/materialicons/NONE/cellPlasma_OVERLAY.png | Bin .../items/materialicons/NONE/cell_OVERLAY.png | Bin .../items/materialicons/NONE/crateGtDust.png | Bin .../materialicons/NONE/crateGtDust_OVERLAY.png | Bin .../items/materialicons/NONE/crateGtGem.png | Bin .../items/materialicons/NONE/crateGtGem_OVERLAY.png | Bin .../items/materialicons/NONE/crateGtIngot.png | Bin .../materialicons/NONE/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/NONE/crateGtPlate.png | Bin .../materialicons/NONE/crateGtPlate_OVERLAY.png | Bin .../textures/items/materialicons/NONE/crushed.png | Bin .../items/materialicons/NONE/crushedCentrifuged.png | Bin .../NONE/crushedCentrifuged_OVERLAY.png | Bin .../items/materialicons/NONE/crushedPurified.png | Bin .../materialicons/NONE/crushedPurified_OVERLAY.png | Bin .../items/materialicons/NONE/crushed_OVERLAY.png | Bin .../textures/items/materialicons/NONE/dust.png | Bin .../items/materialicons/NONE/dustImpure.png | Bin .../items/materialicons/NONE/dustImpure_OVERLAY.png | Bin .../textures/items/materialicons/NONE/dustPure.png | Bin .../items/materialicons/NONE/dustPure_OVERLAY.png | Bin .../textures/items/materialicons/NONE/dustSmall.png | Bin .../items/materialicons/NONE/dustSmall_OVERLAY.png | Bin .../textures/items/materialicons/NONE/dustTiny.png | Bin .../items/materialicons/NONE/dustTiny_OVERLAY.png | Bin .../items/materialicons/NONE/dust_OVERLAY.png | Bin .../textures/items/materialicons/NONE/foil.png | Bin .../items/materialicons/NONE/foil_OVERLAY.png | Bin .../textures/items/materialicons/NONE/gearGt.png | Bin .../items/materialicons/NONE/gearGtSmall.png | Bin .../materialicons/NONE/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/NONE/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/NONE/gem.png | Bin .../items/materialicons/NONE/gemChipped.png | Bin .../items/materialicons/NONE/gemChipped_OVERLAY.png | Bin .../items/materialicons/NONE/gemExquisite.png | Bin .../materialicons/NONE/gemExquisite_OVERLAY.png | Bin .../textures/items/materialicons/NONE/gemFlawed.png | Bin .../items/materialicons/NONE/gemFlawed_OVERLAY.png | Bin .../items/materialicons/NONE/gemFlawless.png | Bin .../materialicons/NONE/gemFlawless_OVERLAY.png | Bin .../items/materialicons/NONE/gem_OVERLAY.png | Bin .../textures/items/materialicons/NONE/ingot.png | Bin .../items/materialicons/NONE/ingotDouble.png | Bin .../materialicons/NONE/ingotDouble_OVERLAY.png | Bin .../textures/items/materialicons/NONE/ingotHot.png | Bin .../items/materialicons/NONE/ingotHot_OVERLAY.png | Bin .../items/materialicons/NONE/ingotQuadruple.png | Bin .../materialicons/NONE/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/NONE/ingotQuintuple.png | Bin .../materialicons/NONE/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/NONE/ingotTriple.png | Bin .../materialicons/NONE/ingotTriple_OVERLAY.png | Bin .../items/materialicons/NONE/ingot_OVERLAY.png | Bin .../textures/items/materialicons/NONE/lens.png | Bin .../items/materialicons/NONE/lens_OVERLAY.png | Bin .../textures/items/materialicons/NONE/nugget.png | Bin .../items/materialicons/NONE/nugget_OVERLAY.png | Bin .../textures/items/materialicons/NONE/plate.png | Bin .../items/materialicons/NONE/plateDense.png | Bin .../items/materialicons/NONE/plateDense_OVERLAY.png | Bin .../items/materialicons/NONE/plateDouble.png | Bin .../materialicons/NONE/plateDouble_OVERLAY.png | Bin .../items/materialicons/NONE/plateQuadruple.png | Bin .../materialicons/NONE/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/NONE/plateQuintuple.png | Bin .../materialicons/NONE/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/NONE/plateTriple.png | Bin .../materialicons/NONE/plateTriple_OVERLAY.png | Bin .../items/materialicons/NONE/plate_OVERLAY.png | Bin .../textures/items/materialicons/NONE/ring.png | Bin .../items/materialicons/NONE/ring_OVERLAY.png | Bin .../textures/items/materialicons/NONE/rotor.png | Bin .../items/materialicons/NONE/rotor_OVERLAY.png | Bin .../textures/items/materialicons/NONE/round.png | Bin .../items/materialicons/NONE/round_OVERLAY.png | Bin .../textures/items/materialicons/NONE/screw.png | Bin .../items/materialicons/NONE/screw_OVERLAY.png | Bin .../textures/items/materialicons/NONE/spring.png | Bin .../items/materialicons/NONE/springSmall.png | Bin .../materialicons/NONE/springSmall_OVERLAY.png | Bin .../items/materialicons/NONE/spring_OVERLAY.png | Bin .../textures/items/materialicons/NONE/stick.png | Bin .../textures/items/materialicons/NONE/stickLong.png | Bin .../items/materialicons/NONE/stickLong_OVERLAY.png | Bin .../items/materialicons/NONE/stick_OVERLAY.png | Bin .../items/materialicons/NONE/toolHeadArrow.png | Bin .../materialicons/NONE/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/NONE/toolHeadAxe.png | Bin .../materialicons/NONE/toolHeadAxe_OVERLAY.png | Bin .../items/materialicons/NONE/toolHeadBuzzSaw.png | Bin .../materialicons/NONE/toolHeadBuzzSaw_OVERLAY.png | Bin .../items/materialicons/NONE/toolHeadChainsaw.png | Bin .../materialicons/NONE/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/NONE/toolHeadDrill.png | Bin .../materialicons/NONE/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/NONE/toolHeadFile.png | Bin .../materialicons/NONE/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/NONE/toolHeadHammer.png | Bin .../materialicons/NONE/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/NONE/toolHeadHoe.png | Bin .../materialicons/NONE/toolHeadHoe_OVERLAY.png | Bin .../items/materialicons/NONE/toolHeadPickaxe.png | Bin .../materialicons/NONE/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/NONE/toolHeadPlow.png | Bin .../materialicons/NONE/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/NONE/toolHeadSaw.png | Bin .../materialicons/NONE/toolHeadSaw_OVERLAY.png | Bin .../materialicons/NONE/toolHeadScrewdriver.png | Bin .../NONE/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/NONE/toolHeadSense.png | Bin .../materialicons/NONE/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/NONE/toolHeadShovel.png | Bin .../materialicons/NONE/toolHeadShovel_OVERLAY.png | Bin .../items/materialicons/NONE/toolHeadSoldering.png | Bin .../NONE/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/NONE/toolHeadSword.png | Bin .../materialicons/NONE/toolHeadSword_OVERLAY.png | Bin .../materialicons/NONE/toolHeadUniversalSpade.png | Bin .../NONE/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/NONE/toolHeadWrench.png | Bin .../materialicons/NONE/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/NONE/turbineBlade.png | Bin .../materialicons/NONE/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/NONE/void.png | Bin .../items/materialicons/NONE/void_OVERLAY.png | Bin .../textures/items/materialicons/NONE/wireFine.png | Bin .../items/materialicons/NONE/wireFine_OVERLAY.png | Bin .../items/materialicons/OPAL/TURBINE_BLADE.png | Bin .../materialicons/OPAL/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/OPAL/arrowGtPlastic.png | Bin .../materialicons/OPAL/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/OPAL/arrowGtWood.png | Bin .../materialicons/OPAL/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/bolt.png | Bin .../items/materialicons/OPAL/bolt_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/cell.png | Bin .../items/materialicons/OPAL/cellPlasma.png | Bin .../items/materialicons/OPAL/cellPlasma_OVERLAY.png | Bin .../items/materialicons/OPAL/cell_OVERLAY.png | Bin .../items/materialicons/OPAL/crateGtDust.png | Bin .../materialicons/OPAL/crateGtDust_OVERLAY.png | Bin .../items/materialicons/OPAL/crateGtGem.png | Bin .../items/materialicons/OPAL/crateGtGem_OVERLAY.png | Bin .../items/materialicons/OPAL/crateGtIngot.png | Bin .../materialicons/OPAL/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/OPAL/crateGtPlate.png | Bin .../materialicons/OPAL/crateGtPlate_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/crushed.png | Bin .../items/materialicons/OPAL/crushedCentrifuged.png | Bin .../OPAL/crushedCentrifuged_OVERLAY.png | Bin .../items/materialicons/OPAL/crushedPurified.png | Bin .../materialicons/OPAL/crushedPurified_OVERLAY.png | Bin .../items/materialicons/OPAL/crushed_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/dust.png | Bin .../items/materialicons/OPAL/dustImpure.png | Bin .../items/materialicons/OPAL/dustImpure_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/dustPure.png | Bin .../items/materialicons/OPAL/dustPure_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/dustSmall.png | Bin .../items/materialicons/OPAL/dustSmall_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/dustTiny.png | Bin .../items/materialicons/OPAL/dustTiny_OVERLAY.png | Bin .../items/materialicons/OPAL/dust_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/foil.png | Bin .../items/materialicons/OPAL/foil_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/gearGt.png | Bin .../items/materialicons/OPAL/gearGtSmall.png | Bin .../materialicons/OPAL/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/OPAL/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/gem.png | Bin .../items/materialicons/OPAL/gemChipped.png | Bin .../items/materialicons/OPAL/gemChipped_OVERLAY.png | Bin .../items/materialicons/OPAL/gemExquisite.png | Bin .../materialicons/OPAL/gemExquisite_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/gemFlawed.png | Bin .../items/materialicons/OPAL/gemFlawed_OVERLAY.png | Bin .../items/materialicons/OPAL/gemFlawless.png | Bin .../materialicons/OPAL/gemFlawless_OVERLAY.png | Bin .../items/materialicons/OPAL/gem_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/ingot.png | Bin .../items/materialicons/OPAL/ingotDouble.png | Bin .../materialicons/OPAL/ingotDouble_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/ingotHot.png | Bin .../items/materialicons/OPAL/ingotHot_OVERLAY.png | Bin .../items/materialicons/OPAL/ingotQuadruple.png | Bin .../materialicons/OPAL/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/OPAL/ingotQuintuple.png | Bin .../materialicons/OPAL/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/OPAL/ingotTriple.png | Bin .../materialicons/OPAL/ingotTriple_OVERLAY.png | Bin .../items/materialicons/OPAL/ingot_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/lens.png | Bin .../items/materialicons/OPAL/lens_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/nugget.png | Bin .../items/materialicons/OPAL/nugget_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/plate.png | Bin .../items/materialicons/OPAL/plateDense.png | Bin .../items/materialicons/OPAL/plateDense_OVERLAY.png | Bin .../items/materialicons/OPAL/plateDouble.png | Bin .../materialicons/OPAL/plateDouble_OVERLAY.png | Bin .../items/materialicons/OPAL/plateQuadruple.png | Bin .../materialicons/OPAL/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/OPAL/plateQuintuple.png | Bin .../materialicons/OPAL/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/OPAL/plateTriple.png | Bin .../materialicons/OPAL/plateTriple_OVERLAY.png | Bin .../items/materialicons/OPAL/plate_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/ring.png | Bin .../items/materialicons/OPAL/ring_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/rotor.png | Bin .../items/materialicons/OPAL/rotor_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/round.png | Bin .../items/materialicons/OPAL/round_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/screw.png | Bin .../items/materialicons/OPAL/screw_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/spring.png | Bin .../items/materialicons/OPAL/springSmall.png | Bin .../materialicons/OPAL/springSmall_OVERLAY.png | Bin .../items/materialicons/OPAL/spring_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/stick.png | Bin .../textures/items/materialicons/OPAL/stickLong.png | Bin .../items/materialicons/OPAL/stickLong_OVERLAY.png | Bin .../items/materialicons/OPAL/stick_OVERLAY.png | Bin .../items/materialicons/OPAL/toolHeadArrow.png | Bin .../materialicons/OPAL/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/OPAL/toolHeadAxe.png | Bin .../materialicons/OPAL/toolHeadAxe_OVERLAY.png | Bin .../items/materialicons/OPAL/toolHeadBuzzSaw.png | Bin .../materialicons/OPAL/toolHeadBuzzSaw_OVERLAY.png | Bin .../items/materialicons/OPAL/toolHeadChainsaw.png | Bin .../materialicons/OPAL/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/OPAL/toolHeadDrill.png | Bin .../materialicons/OPAL/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/OPAL/toolHeadFile.png | Bin .../materialicons/OPAL/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/OPAL/toolHeadHammer.png | Bin .../materialicons/OPAL/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/OPAL/toolHeadHoe.png | Bin .../materialicons/OPAL/toolHeadHoe_OVERLAY.png | Bin .../items/materialicons/OPAL/toolHeadPickaxe.png | Bin .../materialicons/OPAL/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/OPAL/toolHeadPlow.png | Bin .../materialicons/OPAL/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/OPAL/toolHeadSaw.png | Bin .../materialicons/OPAL/toolHeadSaw_OVERLAY.png | Bin .../materialicons/OPAL/toolHeadScrewdriver.png | Bin .../OPAL/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/OPAL/toolHeadSense.png | Bin .../materialicons/OPAL/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/OPAL/toolHeadShovel.png | Bin .../materialicons/OPAL/toolHeadShovel_OVERLAY.png | Bin .../items/materialicons/OPAL/toolHeadSoldering.png | Bin .../OPAL/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/OPAL/toolHeadSword.png | Bin .../materialicons/OPAL/toolHeadSword_OVERLAY.png | Bin .../materialicons/OPAL/toolHeadUniversalSpade.png | Bin .../OPAL/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/OPAL/toolHeadWrench.png | Bin .../materialicons/OPAL/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/OPAL/turbineBlade.png | Bin .../materialicons/OPAL/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/void.png | Bin .../items/materialicons/OPAL/void_OVERLAY.png | Bin .../textures/items/materialicons/OPAL/wireFine.png | Bin .../items/materialicons/OPAL/wireFine_OVERLAY.png | Bin .../items/materialicons/PAPER/TURBINE_BLADE.png | Bin .../materialicons/PAPER/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/PAPER/arrowGtPlastic.png | Bin .../materialicons/PAPER/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/PAPER/arrowGtWood.png | Bin .../materialicons/PAPER/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/PAPER/bolt.png | Bin .../items/materialicons/PAPER/bolt_OVERLAY.png | Bin .../textures/items/materialicons/PAPER/cell.png | Bin .../items/materialicons/PAPER/cellPlasma.png | Bin .../materialicons/PAPER/cellPlasma_OVERLAY.png | Bin .../items/materialicons/PAPER/cell_OVERLAY.png | Bin .../items/materialicons/PAPER/crateGtDust.png | Bin .../materialicons/PAPER/crateGtDust_OVERLAY.png | Bin .../items/materialicons/PAPER/crateGtGem.png | Bin .../materialicons/PAPER/crateGtGem_OVERLAY.png | Bin .../items/materialicons/PAPER/crateGtIngot.png | Bin .../materialicons/PAPER/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/PAPER/crateGtPlate.png | Bin .../materialicons/PAPER/crateGtPlate_OVERLAY.png | Bin .../textures/items/materialicons/PAPER/crushed.png | Bin .../materialicons/PAPER/crushedCentrifuged.png | Bin .../PAPER/crushedCentrifuged_OVERLAY.png | Bin .../items/materialicons/PAPER/crushedPurified.png | Bin .../materialicons/PAPER/crushedPurified_OVERLAY.png | Bin .../items/materialicons/PAPER/crushed_OVERLAY.png | Bin .../textures/items/materialicons/PAPER/dust.png | Bin .../items/materialicons/PAPER/dustImpure.png | Bin .../materialicons/PAPER/dustImpure_OVERLAY.png | Bin .../textures/items/materialicons/PAPER/dustPure.png | Bin .../items/materialicons/PAPER/dustPure_OVERLAY.png | Bin .../items/materialicons/PAPER/dustSmall.png | Bin .../items/materialicons/PAPER/dustSmall_OVERLAY.png | Bin .../textures/items/materialicons/PAPER/dustTiny.png | Bin .../items/materialicons/PAPER/dustTiny_OVERLAY.png | Bin .../items/materialicons/PAPER/dust_OVERLAY.png | Bin .../textures/items/materialicons/PAPER/foil.png | Bin .../items/materialicons/PAPER/foil_OVERLAY.png | Bin .../textures/items/materialicons/PAPER/gearGt.png | Bin .../items/materialicons/PAPER/gearGtSmall.png | Bin .../materialicons/PAPER/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/PAPER/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/PAPER/gem.png | Bin .../items/materialicons/PAPER/gemChipped.png | Bin .../materialicons/PAPER/gemChipped_OVERLAY.png | Bin .../items/materialicons/PAPER/gemExquisite.png | Bin .../materialicons/PAPER/gemExquisite_OVERLAY.png | Bin .../items/materialicons/PAPER/gemFlawed.png | Bin .../items/materialicons/PAPER/gemFlawed_OVERLAY.png | Bin .../items/materialicons/PAPER/gemFlawless.png | Bin .../materialicons/PAPER/gemFlawless_OVERLAY.png | Bin .../items/materialicons/PAPER/gem_OVERLAY.png | Bin .../textures/items/materialicons/PAPER/ingot.png | Bin .../items/materialicons/PAPER/ingotDouble.png | Bin .../materialicons/PAPER/ingotDouble_OVERLAY.png | Bin .../textures/items/materialicons/PAPER/ingotHot.png | Bin .../items/materialicons/PAPER/ingotHot_OVERLAY.png | Bin .../items/materialicons/PAPER/ingotQuadruple.png | Bin .../materialicons/PAPER/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/PAPER/ingotQuintuple.png | Bin .../materialicons/PAPER/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/PAPER/ingotTriple.png | Bin .../materialicons/PAPER/ingotTriple_OVERLAY.png | Bin .../items/materialicons/PAPER/ingot_OVERLAY.png | Bin .../textures/items/materialicons/PAPER/lens.png | Bin .../items/materialicons/PAPER/lens_OVERLAY.png | Bin .../textures/items/materialicons/PAPER/nugget.png | Bin .../items/materialicons/PAPER/nugget_OVERLAY.png | Bin .../textures/items/materialicons/PAPER/plate.png | Bin .../items/materialicons/PAPER/plateDense.png | Bin .../materialicons/PAPER/plateDense_OVERLAY.png | Bin .../items/materialicons/PAPER/plateDouble.png | Bin .../materialicons/PAPER/plateDouble_OVERLAY.png | Bin .../items/materialicons/PAPER/plateQuadruple.png | Bin .../materialicons/PAPER/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/PAPER/plateQuintuple.png | Bin .../materialicons/PAPER/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/PAPER/plateTriple.png | Bin .../materialicons/PAPER/plateTriple_OVERLAY.png | Bin .../items/materialicons/PAPER/plate_OVERLAY.png | Bin .../textures/items/materialicons/PAPER/ring.png | Bin .../items/materialicons/PAPER/ring_OVERLAY.png | Bin .../textures/items/materialicons/PAPER/rotor.png | Bin .../items/materialicons/PAPER/rotor_OVERLAY.png | Bin .../textures/items/materialicons/PAPER/round.png | Bin .../items/materialicons/PAPER/round_OVERLAY.png | Bin .../textures/items/materialicons/PAPER/screw.png | Bin .../items/materialicons/PAPER/screw_OVERLAY.png | Bin .../textures/items/materialicons/PAPER/spring.png | Bin .../items/materialicons/PAPER/springSmall.png | Bin .../materialicons/PAPER/springSmall_OVERLAY.png | Bin .../items/materialicons/PAPER/spring_OVERLAY.png | Bin .../textures/items/materialicons/PAPER/stick.png | Bin .../items/materialicons/PAPER/stickLong.png | Bin .../items/materialicons/PAPER/stickLong_OVERLAY.png | Bin .../items/materialicons/PAPER/stick_OVERLAY.png | Bin .../items/materialicons/PAPER/toolHeadArrow.png | Bin .../materialicons/PAPER/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/PAPER/toolHeadAxe.png | Bin .../materialicons/PAPER/toolHeadAxe_OVERLAY.png | Bin .../items/materialicons/PAPER/toolHeadBuzzSaw.png | Bin .../materialicons/PAPER/toolHeadBuzzSaw_OVERLAY.png | Bin .../items/materialicons/PAPER/toolHeadChainsaw.png | Bin .../PAPER/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/PAPER/toolHeadDrill.png | Bin .../materialicons/PAPER/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/PAPER/toolHeadFile.png | Bin .../materialicons/PAPER/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/PAPER/toolHeadHammer.png | Bin .../materialicons/PAPER/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/PAPER/toolHeadHoe.png | Bin .../materialicons/PAPER/toolHeadHoe_OVERLAY.png | Bin .../items/materialicons/PAPER/toolHeadPickaxe.png | Bin .../materialicons/PAPER/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/PAPER/toolHeadPlow.png | Bin .../materialicons/PAPER/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/PAPER/toolHeadSaw.png | Bin .../materialicons/PAPER/toolHeadSaw_OVERLAY.png | Bin .../materialicons/PAPER/toolHeadScrewdriver.png | Bin .../PAPER/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/PAPER/toolHeadSense.png | Bin .../materialicons/PAPER/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/PAPER/toolHeadShovel.png | Bin .../materialicons/PAPER/toolHeadShovel_OVERLAY.png | Bin .../items/materialicons/PAPER/toolHeadSoldering.png | Bin .../PAPER/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/PAPER/toolHeadSword.png | Bin .../materialicons/PAPER/toolHeadSword_OVERLAY.png | Bin .../materialicons/PAPER/toolHeadUniversalSpade.png | Bin .../PAPER/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/PAPER/toolHeadWrench.png | Bin .../materialicons/PAPER/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/PAPER/turbineBlade.png | Bin .../materialicons/PAPER/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/PAPER/void.png | Bin .../items/materialicons/PAPER/void_OVERLAY.png | Bin .../textures/items/materialicons/PAPER/wireFine.png | Bin .../items/materialicons/PAPER/wireFine_OVERLAY.png | Bin .../items/materialicons/POWDER/TURBINE_BLADE.png | Bin .../materialicons/POWDER/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/POWDER/arrowGtPlastic.png | Bin .../materialicons/POWDER/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/POWDER/arrowGtWood.png | Bin .../materialicons/POWDER/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/POWDER/bolt.png | Bin .../items/materialicons/POWDER/bolt_OVERLAY.png | Bin .../textures/items/materialicons/POWDER/cell.png | Bin .../items/materialicons/POWDER/cellPlasma.png | Bin .../materialicons/POWDER/cellPlasma_OVERLAY.png | Bin .../items/materialicons/POWDER/cell_OVERLAY.png | Bin .../items/materialicons/POWDER/crateGtDust.png | Bin .../materialicons/POWDER/crateGtDust_OVERLAY.png | Bin .../items/materialicons/POWDER/crateGtGem.png | Bin .../materialicons/POWDER/crateGtGem_OVERLAY.png | Bin .../items/materialicons/POWDER/crateGtIngot.png | Bin .../materialicons/POWDER/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/POWDER/crateGtPlate.png | Bin .../materialicons/POWDER/crateGtPlate_OVERLAY.png | Bin .../textures/items/materialicons/POWDER/crushed.png | Bin .../materialicons/POWDER/crushedCentrifuged.png | Bin .../POWDER/crushedCentrifuged_OVERLAY.png | Bin .../items/materialicons/POWDER/crushedPurified.png | Bin .../POWDER/crushedPurified_OVERLAY.png | Bin .../items/materialicons/POWDER/crushed_OVERLAY.png | Bin .../textures/items/materialicons/POWDER/dust.png | Bin .../items/materialicons/POWDER/dustImpure.png | Bin .../materialicons/POWDER/dustImpure_OVERLAY.png | Bin .../items/materialicons/POWDER/dustPure.png | Bin .../items/materialicons/POWDER/dustPure_OVERLAY.png | Bin .../items/materialicons/POWDER/dustSmall.png | Bin .../materialicons/POWDER/dustSmall_OVERLAY.png | Bin .../items/materialicons/POWDER/dustTiny.png | Bin .../items/materialicons/POWDER/dustTiny_OVERLAY.png | Bin .../items/materialicons/POWDER/dust_OVERLAY.png | Bin .../textures/items/materialicons/POWDER/foil.png | Bin .../items/materialicons/POWDER/foil_OVERLAY.png | Bin .../textures/items/materialicons/POWDER/gearGt.png | Bin .../items/materialicons/POWDER/gearGtSmall.png | Bin .../materialicons/POWDER/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/POWDER/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/POWDER/gem.png | Bin .../items/materialicons/POWDER/gemChipped.png | Bin .../materialicons/POWDER/gemChipped_OVERLAY.png | Bin .../items/materialicons/POWDER/gemExquisite.png | Bin .../materialicons/POWDER/gemExquisite_OVERLAY.png | Bin .../items/materialicons/POWDER/gemFlawed.png | Bin .../materialicons/POWDER/gemFlawed_OVERLAY.png | Bin .../items/materialicons/POWDER/gemFlawless.png | Bin .../materialicons/POWDER/gemFlawless_OVERLAY.png | Bin .../items/materialicons/POWDER/gem_OVERLAY.png | Bin .../textures/items/materialicons/POWDER/ingot.png | Bin .../items/materialicons/POWDER/ingotDouble.png | Bin .../materialicons/POWDER/ingotDouble_OVERLAY.png | Bin .../items/materialicons/POWDER/ingotHot.png | Bin .../items/materialicons/POWDER/ingotHot_OVERLAY.png | Bin .../items/materialicons/POWDER/ingotQuadruple.png | Bin .../materialicons/POWDER/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/POWDER/ingotQuintuple.png | Bin .../materialicons/POWDER/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/POWDER/ingotTriple.png | Bin .../materialicons/POWDER/ingotTriple_OVERLAY.png | Bin .../items/materialicons/POWDER/ingot_OVERLAY.png | Bin .../textures/items/materialicons/POWDER/lens.png | Bin .../items/materialicons/POWDER/lens_OVERLAY.png | Bin .../textures/items/materialicons/POWDER/nugget.png | Bin .../items/materialicons/POWDER/nugget_OVERLAY.png | Bin .../textures/items/materialicons/POWDER/plate.png | Bin .../items/materialicons/POWDER/plateDense.png | Bin .../materialicons/POWDER/plateDense_OVERLAY.png | Bin .../items/materialicons/POWDER/plateDouble.png | Bin .../materialicons/POWDER/plateDouble_OVERLAY.png | Bin .../items/materialicons/POWDER/plateQuadruple.png | Bin .../materialicons/POWDER/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/POWDER/plateQuintuple.png | Bin .../materialicons/POWDER/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/POWDER/plateTriple.png | Bin .../materialicons/POWDER/plateTriple_OVERLAY.png | Bin .../items/materialicons/POWDER/plate_OVERLAY.png | Bin .../textures/items/materialicons/POWDER/ring.png | Bin .../items/materialicons/POWDER/ring_OVERLAY.png | Bin .../textures/items/materialicons/POWDER/rotor.png | Bin .../items/materialicons/POWDER/rotor_OVERLAY.png | Bin .../textures/items/materialicons/POWDER/round.png | Bin .../items/materialicons/POWDER/round_OVERLAY.png | Bin .../textures/items/materialicons/POWDER/screw.png | Bin .../items/materialicons/POWDER/screw_OVERLAY.png | Bin .../textures/items/materialicons/POWDER/spring.png | Bin .../items/materialicons/POWDER/springSmall.png | Bin .../materialicons/POWDER/springSmall_OVERLAY.png | Bin .../items/materialicons/POWDER/spring_OVERLAY.png | Bin .../textures/items/materialicons/POWDER/stick.png | Bin .../items/materialicons/POWDER/stickLong.png | Bin .../materialicons/POWDER/stickLong_OVERLAY.png | Bin .../items/materialicons/POWDER/stick_OVERLAY.png | Bin .../items/materialicons/POWDER/toolHeadArrow.png | Bin .../materialicons/POWDER/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/POWDER/toolHeadAxe.png | Bin .../materialicons/POWDER/toolHeadAxe_OVERLAY.png | Bin .../items/materialicons/POWDER/toolHeadBuzzSaw.png | Bin .../POWDER/toolHeadBuzzSaw_OVERLAY.png | Bin .../items/materialicons/POWDER/toolHeadChainsaw.png | Bin .../POWDER/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/POWDER/toolHeadDrill.png | Bin .../materialicons/POWDER/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/POWDER/toolHeadFile.png | Bin .../materialicons/POWDER/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/POWDER/toolHeadHammer.png | Bin .../materialicons/POWDER/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/POWDER/toolHeadHoe.png | Bin .../materialicons/POWDER/toolHeadHoe_OVERLAY.png | Bin .../items/materialicons/POWDER/toolHeadPickaxe.png | Bin .../POWDER/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/POWDER/toolHeadPlow.png | Bin .../materialicons/POWDER/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/POWDER/toolHeadSaw.png | Bin .../materialicons/POWDER/toolHeadSaw_OVERLAY.png | Bin .../materialicons/POWDER/toolHeadScrewdriver.png | Bin .../POWDER/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/POWDER/toolHeadSense.png | Bin .../materialicons/POWDER/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/POWDER/toolHeadShovel.png | Bin .../materialicons/POWDER/toolHeadShovel_OVERLAY.png | Bin .../materialicons/POWDER/toolHeadSoldering.png | Bin .../POWDER/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/POWDER/toolHeadSword.png | Bin .../materialicons/POWDER/toolHeadSword_OVERLAY.png | Bin .../materialicons/POWDER/toolHeadUniversalSpade.png | Bin .../POWDER/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/POWDER/toolHeadWrench.png | Bin .../materialicons/POWDER/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/POWDER/turbineBlade.png | Bin .../materialicons/POWDER/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/POWDER/void.png | Bin .../items/materialicons/POWDER/void_OVERLAY.png | Bin .../items/materialicons/POWDER/wireFine.png | Bin .../items/materialicons/POWDER/wireFine_OVERLAY.png | Bin .../items/materialicons/QUARTZ/TURBINE_BLADE.png | Bin .../materialicons/QUARTZ/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/QUARTZ/arrowGtPlastic.png | Bin .../materialicons/QUARTZ/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/QUARTZ/arrowGtWood.png | Bin .../materialicons/QUARTZ/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/QUARTZ/bolt.png | Bin .../items/materialicons/QUARTZ/bolt_OVERLAY.png | Bin .../textures/items/materialicons/QUARTZ/cell.png | Bin .../items/materialicons/QUARTZ/cellPlasma.png | Bin .../materialicons/QUARTZ/cellPlasma_OVERLAY.png | Bin .../items/materialicons/QUARTZ/cell_OVERLAY.png | Bin .../items/materialicons/QUARTZ/crateGtDust.png | Bin .../materialicons/QUARTZ/crateGtDust_OVERLAY.png | Bin .../items/materialicons/QUARTZ/crateGtGem.png | Bin .../materialicons/QUARTZ/crateGtGem_OVERLAY.png | Bin .../items/materialicons/QUARTZ/crateGtIngot.png | Bin .../materialicons/QUARTZ/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/QUARTZ/crateGtPlate.png | Bin .../materialicons/QUARTZ/crateGtPlate_OVERLAY.png | Bin .../textures/items/materialicons/QUARTZ/crushed.png | Bin .../materialicons/QUARTZ/crushedCentrifuged.png | Bin .../QUARTZ/crushedCentrifuged_OVERLAY.png | Bin .../items/materialicons/QUARTZ/crushedPurified.png | Bin .../QUARTZ/crushedPurified_OVERLAY.png | Bin .../items/materialicons/QUARTZ/crushed_OVERLAY.png | Bin .../textures/items/materialicons/QUARTZ/dust.png | Bin .../items/materialicons/QUARTZ/dustImpure.png | Bin .../materialicons/QUARTZ/dustImpure_OVERLAY.png | Bin .../items/materialicons/QUARTZ/dustPure.png | Bin .../items/materialicons/QUARTZ/dustPure_OVERLAY.png | Bin .../items/materialicons/QUARTZ/dustSmall.png | Bin .../materialicons/QUARTZ/dustSmall_OVERLAY.png | Bin .../items/materialicons/QUARTZ/dustTiny.png | Bin .../items/materialicons/QUARTZ/dustTiny_OVERLAY.png | Bin .../items/materialicons/QUARTZ/dust_OVERLAY.png | Bin .../textures/items/materialicons/QUARTZ/foil.png | Bin .../items/materialicons/QUARTZ/foil_OVERLAY.png | Bin .../textures/items/materialicons/QUARTZ/gearGt.png | Bin .../items/materialicons/QUARTZ/gearGtSmall.png | Bin .../materialicons/QUARTZ/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/QUARTZ/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/QUARTZ/gem.png | Bin .../items/materialicons/QUARTZ/gemChipped.png | Bin .../materialicons/QUARTZ/gemChipped_OVERLAY.png | Bin .../items/materialicons/QUARTZ/gemExquisite.png | Bin .../materialicons/QUARTZ/gemExquisite_OVERLAY.png | Bin .../items/materialicons/QUARTZ/gemFlawed.png | Bin .../materialicons/QUARTZ/gemFlawed_OVERLAY.png | Bin .../items/materialicons/QUARTZ/gemFlawless.png | Bin .../materialicons/QUARTZ/gemFlawless_OVERLAY.png | Bin .../items/materialicons/QUARTZ/gem_OVERLAY.png | Bin .../textures/items/materialicons/QUARTZ/ingot.png | Bin .../items/materialicons/QUARTZ/ingotDouble.png | Bin .../materialicons/QUARTZ/ingotDouble_OVERLAY.png | Bin .../items/materialicons/QUARTZ/ingotHot.png | Bin .../items/materialicons/QUARTZ/ingotHot_OVERLAY.png | Bin .../items/materialicons/QUARTZ/ingotQuadruple.png | Bin .../materialicons/QUARTZ/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/QUARTZ/ingotQuintuple.png | Bin .../materialicons/QUARTZ/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/QUARTZ/ingotTriple.png | Bin .../materialicons/QUARTZ/ingotTriple_OVERLAY.png | Bin .../items/materialicons/QUARTZ/ingot_OVERLAY.png | Bin .../textures/items/materialicons/QUARTZ/lens.png | Bin .../items/materialicons/QUARTZ/lens_OVERLAY.png | Bin .../textures/items/materialicons/QUARTZ/nugget.png | Bin .../items/materialicons/QUARTZ/nugget_OVERLAY.png | Bin .../textures/items/materialicons/QUARTZ/plate.png | Bin .../items/materialicons/QUARTZ/plateDense.png | Bin .../materialicons/QUARTZ/plateDense_OVERLAY.png | Bin .../items/materialicons/QUARTZ/plateDouble.png | Bin .../materialicons/QUARTZ/plateDouble_OVERLAY.png | Bin .../items/materialicons/QUARTZ/plateQuadruple.png | Bin .../materialicons/QUARTZ/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/QUARTZ/plateQuintuple.png | Bin .../materialicons/QUARTZ/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/QUARTZ/plateTriple.png | Bin .../materialicons/QUARTZ/plateTriple_OVERLAY.png | Bin .../items/materialicons/QUARTZ/plate_OVERLAY.png | Bin .../textures/items/materialicons/QUARTZ/ring.png | Bin .../items/materialicons/QUARTZ/ring_OVERLAY.png | Bin .../textures/items/materialicons/QUARTZ/rotor.png | Bin .../items/materialicons/QUARTZ/rotor_OVERLAY.png | Bin .../textures/items/materialicons/QUARTZ/round.png | Bin .../items/materialicons/QUARTZ/round_OVERLAY.png | Bin .../textures/items/materialicons/QUARTZ/screw.png | Bin .../items/materialicons/QUARTZ/screw_OVERLAY.png | Bin .../textures/items/materialicons/QUARTZ/spring.png | Bin .../items/materialicons/QUARTZ/springSmall.png | Bin .../materialicons/QUARTZ/springSmall_OVERLAY.png | Bin .../items/materialicons/QUARTZ/spring_OVERLAY.png | Bin .../textures/items/materialicons/QUARTZ/stick.png | Bin .../items/materialicons/QUARTZ/stickLong.png | Bin .../materialicons/QUARTZ/stickLong_OVERLAY.png | Bin .../items/materialicons/QUARTZ/stick_OVERLAY.png | Bin .../items/materialicons/QUARTZ/toolHeadArrow.png | Bin .../materialicons/QUARTZ/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/QUARTZ/toolHeadAxe.png | Bin .../materialicons/QUARTZ/toolHeadAxe_OVERLAY.png | Bin .../items/materialicons/QUARTZ/toolHeadBuzzSaw.png | Bin .../QUARTZ/toolHeadBuzzSaw_OVERLAY.png | Bin .../items/materialicons/QUARTZ/toolHeadChainsaw.png | Bin .../QUARTZ/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/QUARTZ/toolHeadDrill.png | Bin .../materialicons/QUARTZ/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/QUARTZ/toolHeadFile.png | Bin .../materialicons/QUARTZ/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/QUARTZ/toolHeadHammer.png | Bin .../materialicons/QUARTZ/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/QUARTZ/toolHeadHoe.png | Bin .../materialicons/QUARTZ/toolHeadHoe_OVERLAY.png | Bin .../items/materialicons/QUARTZ/toolHeadPickaxe.png | Bin .../QUARTZ/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/QUARTZ/toolHeadPlow.png | Bin .../materialicons/QUARTZ/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/QUARTZ/toolHeadSaw.png | Bin .../materialicons/QUARTZ/toolHeadSaw_OVERLAY.png | Bin .../materialicons/QUARTZ/toolHeadScrewdriver.png | Bin .../QUARTZ/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/QUARTZ/toolHeadSense.png | Bin .../materialicons/QUARTZ/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/QUARTZ/toolHeadShovel.png | Bin .../materialicons/QUARTZ/toolHeadShovel_OVERLAY.png | Bin .../materialicons/QUARTZ/toolHeadSoldering.png | Bin .../QUARTZ/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/QUARTZ/toolHeadSword.png | Bin .../materialicons/QUARTZ/toolHeadSword_OVERLAY.png | Bin .../materialicons/QUARTZ/toolHeadUniversalSpade.png | Bin .../QUARTZ/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/QUARTZ/toolHeadWrench.png | Bin .../materialicons/QUARTZ/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/QUARTZ/turbineBlade.png | Bin .../materialicons/QUARTZ/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/QUARTZ/void.png | Bin .../items/materialicons/QUARTZ/void_OVERLAY.png | Bin .../items/materialicons/QUARTZ/wireFine.png | Bin .../items/materialicons/QUARTZ/wireFine_OVERLAY.png | Bin .../items/materialicons/ROUGH/TURBINE_BLADE.png | Bin .../materialicons/ROUGH/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/ROUGH/arrowGtPlastic.png | Bin .../materialicons/ROUGH/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/ROUGH/arrowGtWood.png | Bin .../materialicons/ROUGH/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/ROUGH/bolt.png | Bin .../items/materialicons/ROUGH/bolt_OVERLAY.png | Bin .../textures/items/materialicons/ROUGH/cell.png | Bin .../items/materialicons/ROUGH/cellPlasma.png | Bin .../materialicons/ROUGH/cellPlasma_OVERLAY.png | Bin .../items/materialicons/ROUGH/cell_OVERLAY.png | Bin .../items/materialicons/ROUGH/crateGtDust.png | Bin .../materialicons/ROUGH/crateGtDust_OVERLAY.png | Bin .../items/materialicons/ROUGH/crateGtGem.png | Bin .../materialicons/ROUGH/crateGtGem_OVERLAY.png | Bin .../items/materialicons/ROUGH/crateGtIngot.png | Bin .../materialicons/ROUGH/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/ROUGH/crateGtPlate.png | Bin .../materialicons/ROUGH/crateGtPlate_OVERLAY.png | Bin .../textures/items/materialicons/ROUGH/crushed.png | Bin .../materialicons/ROUGH/crushedCentrifuged.png | Bin .../ROUGH/crushedCentrifuged_OVERLAY.png | Bin .../items/materialicons/ROUGH/crushedPurified.png | Bin .../materialicons/ROUGH/crushedPurified_OVERLAY.png | Bin .../items/materialicons/ROUGH/crushed_OVERLAY.png | Bin .../textures/items/materialicons/ROUGH/dust.png | Bin .../items/materialicons/ROUGH/dustImpure.png | Bin .../materialicons/ROUGH/dustImpure_OVERLAY.png | Bin .../textures/items/materialicons/ROUGH/dustPure.png | Bin .../items/materialicons/ROUGH/dustPure_OVERLAY.png | Bin .../items/materialicons/ROUGH/dustSmall.png | Bin .../items/materialicons/ROUGH/dustSmall_OVERLAY.png | Bin .../textures/items/materialicons/ROUGH/dustTiny.png | Bin .../items/materialicons/ROUGH/dustTiny_OVERLAY.png | Bin .../items/materialicons/ROUGH/dust_OVERLAY.png | Bin .../textures/items/materialicons/ROUGH/foil.png | Bin .../items/materialicons/ROUGH/foil_OVERLAY.png | Bin .../textures/items/materialicons/ROUGH/gearGt.png | Bin .../items/materialicons/ROUGH/gearGtSmall.png | Bin .../materialicons/ROUGH/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/ROUGH/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/ROUGH/gem.png | Bin .../items/materialicons/ROUGH/gemChipped.png | Bin .../materialicons/ROUGH/gemChipped_OVERLAY.png | Bin .../items/materialicons/ROUGH/gemExquisite.png | Bin .../materialicons/ROUGH/gemExquisite_OVERLAY.png | Bin .../items/materialicons/ROUGH/gemFlawed.png | Bin .../items/materialicons/ROUGH/gemFlawed_OVERLAY.png | Bin .../items/materialicons/ROUGH/gemFlawless.png | Bin .../materialicons/ROUGH/gemFlawless_OVERLAY.png | Bin .../items/materialicons/ROUGH/gem_OVERLAY.png | Bin .../textures/items/materialicons/ROUGH/ingot.png | Bin .../items/materialicons/ROUGH/ingotDouble.png | Bin .../materialicons/ROUGH/ingotDouble_OVERLAY.png | Bin .../textures/items/materialicons/ROUGH/ingotHot.png | Bin .../items/materialicons/ROUGH/ingotHot_OVERLAY.png | Bin .../items/materialicons/ROUGH/ingotQuadruple.png | Bin .../materialicons/ROUGH/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/ROUGH/ingotQuintuple.png | Bin .../materialicons/ROUGH/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/ROUGH/ingotTriple.png | Bin .../materialicons/ROUGH/ingotTriple_OVERLAY.png | Bin .../items/materialicons/ROUGH/ingot_OVERLAY.png | Bin .../textures/items/materialicons/ROUGH/lens.png | Bin .../items/materialicons/ROUGH/lens_OVERLAY.png | Bin .../textures/items/materialicons/ROUGH/nugget.png | Bin .../items/materialicons/ROUGH/nugget_OVERLAY.png | Bin .../textures/items/materialicons/ROUGH/plate.png | Bin .../items/materialicons/ROUGH/plateDense.png | Bin .../materialicons/ROUGH/plateDense_OVERLAY.png | Bin .../items/materialicons/ROUGH/plateDouble.png | Bin .../materialicons/ROUGH/plateDouble_OVERLAY.png | Bin .../items/materialicons/ROUGH/plateQuadruple.png | Bin .../materialicons/ROUGH/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/ROUGH/plateQuintuple.png | Bin .../materialicons/ROUGH/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/ROUGH/plateTriple.png | Bin .../materialicons/ROUGH/plateTriple_OVERLAY.png | Bin .../items/materialicons/ROUGH/plate_OVERLAY.png | Bin .../textures/items/materialicons/ROUGH/ring.png | Bin .../items/materialicons/ROUGH/ring_OVERLAY.png | Bin .../textures/items/materialicons/ROUGH/rotor.png | Bin .../items/materialicons/ROUGH/rotor_OVERLAY.png | Bin .../textures/items/materialicons/ROUGH/round.png | Bin .../items/materialicons/ROUGH/round_OVERLAY.png | Bin .../textures/items/materialicons/ROUGH/screw.png | Bin .../items/materialicons/ROUGH/screw_OVERLAY.png | Bin .../textures/items/materialicons/ROUGH/spring.png | Bin .../items/materialicons/ROUGH/springSmall.png | Bin .../materialicons/ROUGH/springSmall_OVERLAY.png | Bin .../items/materialicons/ROUGH/spring_OVERLAY.png | Bin .../textures/items/materialicons/ROUGH/stick.png | Bin .../items/materialicons/ROUGH/stickLong.png | Bin .../items/materialicons/ROUGH/stickLong_OVERLAY.png | Bin .../items/materialicons/ROUGH/stick_OVERLAY.png | Bin .../items/materialicons/ROUGH/toolHeadArrow.png | Bin .../materialicons/ROUGH/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/ROUGH/toolHeadAxe.png | Bin .../materialicons/ROUGH/toolHeadAxe_OVERLAY.png | Bin .../items/materialicons/ROUGH/toolHeadBuzzSaw.png | Bin .../materialicons/ROUGH/toolHeadBuzzSaw_OVERLAY.png | Bin .../items/materialicons/ROUGH/toolHeadChainsaw.png | Bin .../ROUGH/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/ROUGH/toolHeadDrill.png | Bin .../materialicons/ROUGH/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/ROUGH/toolHeadFile.png | Bin .../materialicons/ROUGH/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/ROUGH/toolHeadHammer.png | Bin .../materialicons/ROUGH/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/ROUGH/toolHeadHoe.png | Bin .../materialicons/ROUGH/toolHeadHoe_OVERLAY.png | Bin .../items/materialicons/ROUGH/toolHeadPickaxe.png | Bin .../materialicons/ROUGH/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/ROUGH/toolHeadPlow.png | Bin .../materialicons/ROUGH/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/ROUGH/toolHeadSaw.png | Bin .../materialicons/ROUGH/toolHeadSaw_OVERLAY.png | Bin .../materialicons/ROUGH/toolHeadScrewdriver.png | Bin .../ROUGH/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/ROUGH/toolHeadSense.png | Bin .../materialicons/ROUGH/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/ROUGH/toolHeadShovel.png | Bin .../materialicons/ROUGH/toolHeadShovel_OVERLAY.png | Bin .../items/materialicons/ROUGH/toolHeadSoldering.png | Bin .../ROUGH/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/ROUGH/toolHeadSword.png | Bin .../materialicons/ROUGH/toolHeadSword_OVERLAY.png | Bin .../materialicons/ROUGH/toolHeadUniversalSpade.png | Bin .../ROUGH/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/ROUGH/toolHeadWrench.png | Bin .../materialicons/ROUGH/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/ROUGH/turbineBlade.png | Bin .../materialicons/ROUGH/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/ROUGH/void.png | Bin .../items/materialicons/ROUGH/void_OVERLAY.png | Bin .../textures/items/materialicons/ROUGH/wireFine.png | Bin .../items/materialicons/ROUGH/wireFine_OVERLAY.png | Bin .../items/materialicons/RUBY/TURBINE_BLADE.png | Bin .../materialicons/RUBY/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/RUBY/arrowGtPlastic.png | Bin .../materialicons/RUBY/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/RUBY/arrowGtWood.png | Bin .../materialicons/RUBY/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/bolt.png | Bin .../items/materialicons/RUBY/bolt_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/cell.png | Bin .../items/materialicons/RUBY/cellPlasma.png | Bin .../items/materialicons/RUBY/cellPlasma_OVERLAY.png | Bin .../items/materialicons/RUBY/cell_OVERLAY.png | Bin .../items/materialicons/RUBY/crateGtDust.png | Bin .../materialicons/RUBY/crateGtDust_OVERLAY.png | Bin .../items/materialicons/RUBY/crateGtGem.png | Bin .../items/materialicons/RUBY/crateGtGem_OVERLAY.png | Bin .../items/materialicons/RUBY/crateGtIngot.png | Bin .../materialicons/RUBY/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/RUBY/crateGtPlate.png | Bin .../materialicons/RUBY/crateGtPlate_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/crushed.png | Bin .../items/materialicons/RUBY/crushedCentrifuged.png | Bin .../RUBY/crushedCentrifuged_OVERLAY.png | Bin .../items/materialicons/RUBY/crushedPurified.png | Bin .../materialicons/RUBY/crushedPurified_OVERLAY.png | Bin .../items/materialicons/RUBY/crushed_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/dust.png | Bin .../items/materialicons/RUBY/dustImpure.png | Bin .../items/materialicons/RUBY/dustImpure_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/dustPure.png | Bin .../items/materialicons/RUBY/dustPure_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/dustSmall.png | Bin .../items/materialicons/RUBY/dustSmall_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/dustTiny.png | Bin .../items/materialicons/RUBY/dustTiny_OVERLAY.png | Bin .../items/materialicons/RUBY/dust_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/foil.png | Bin .../items/materialicons/RUBY/foil_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/gearGt.png | Bin .../items/materialicons/RUBY/gearGtSmall.png | Bin .../materialicons/RUBY/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/RUBY/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/gem.png | Bin .../items/materialicons/RUBY/gemChipped.png | Bin .../items/materialicons/RUBY/gemChipped_OVERLAY.png | Bin .../items/materialicons/RUBY/gemExquisite.png | Bin .../materialicons/RUBY/gemExquisite_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/gemFlawed.png | Bin .../items/materialicons/RUBY/gemFlawed_OVERLAY.png | Bin .../items/materialicons/RUBY/gemFlawless.png | Bin .../materialicons/RUBY/gemFlawless_OVERLAY.png | Bin .../items/materialicons/RUBY/gem_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/ingot.png | Bin .../items/materialicons/RUBY/ingotDouble.png | Bin .../materialicons/RUBY/ingotDouble_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/ingotHot.png | Bin .../items/materialicons/RUBY/ingotHot_OVERLAY.png | Bin .../items/materialicons/RUBY/ingotQuadruple.png | Bin .../materialicons/RUBY/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/RUBY/ingotQuintuple.png | Bin .../materialicons/RUBY/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/RUBY/ingotTriple.png | Bin .../materialicons/RUBY/ingotTriple_OVERLAY.png | Bin .../items/materialicons/RUBY/ingot_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/lens.png | Bin .../items/materialicons/RUBY/lens_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/nugget.png | Bin .../items/materialicons/RUBY/nugget_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/plate.png | Bin .../items/materialicons/RUBY/plateDense.png | Bin .../items/materialicons/RUBY/plateDense_OVERLAY.png | Bin .../items/materialicons/RUBY/plateDouble.png | Bin .../materialicons/RUBY/plateDouble_OVERLAY.png | Bin .../items/materialicons/RUBY/plateQuadruple.png | Bin .../materialicons/RUBY/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/RUBY/plateQuintuple.png | Bin .../materialicons/RUBY/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/RUBY/plateTriple.png | Bin .../materialicons/RUBY/plateTriple_OVERLAY.png | Bin .../items/materialicons/RUBY/plate_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/ring.png | Bin .../items/materialicons/RUBY/ring_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/rotor.png | Bin .../items/materialicons/RUBY/rotor_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/round.png | Bin .../items/materialicons/RUBY/round_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/screw.png | Bin .../items/materialicons/RUBY/screw_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/spring.png | Bin .../items/materialicons/RUBY/springSmall.png | Bin .../materialicons/RUBY/springSmall_OVERLAY.png | Bin .../items/materialicons/RUBY/spring_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/stick.png | Bin .../textures/items/materialicons/RUBY/stickLong.png | Bin .../items/materialicons/RUBY/stickLong_OVERLAY.png | Bin .../items/materialicons/RUBY/stick_OVERLAY.png | Bin .../items/materialicons/RUBY/toolHeadArrow.png | Bin .../materialicons/RUBY/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/RUBY/toolHeadAxe.png | Bin .../materialicons/RUBY/toolHeadAxe_OVERLAY.png | Bin .../items/materialicons/RUBY/toolHeadBuzzSaw.png | Bin .../materialicons/RUBY/toolHeadBuzzSaw_OVERLAY.png | Bin .../items/materialicons/RUBY/toolHeadChainsaw.png | Bin .../materialicons/RUBY/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/RUBY/toolHeadDrill.png | Bin .../materialicons/RUBY/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/RUBY/toolHeadFile.png | Bin .../materialicons/RUBY/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/RUBY/toolHeadHammer.png | Bin .../materialicons/RUBY/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/RUBY/toolHeadHoe.png | Bin .../materialicons/RUBY/toolHeadHoe_OVERLAY.png | Bin .../items/materialicons/RUBY/toolHeadPickaxe.png | Bin .../materialicons/RUBY/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/RUBY/toolHeadPlow.png | Bin .../materialicons/RUBY/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/RUBY/toolHeadSaw.png | Bin .../materialicons/RUBY/toolHeadSaw_OVERLAY.png | Bin .../materialicons/RUBY/toolHeadScrewdriver.png | Bin .../RUBY/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/RUBY/toolHeadSense.png | Bin .../materialicons/RUBY/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/RUBY/toolHeadShovel.png | Bin .../materialicons/RUBY/toolHeadShovel_OVERLAY.png | Bin .../items/materialicons/RUBY/toolHeadSoldering.png | Bin .../RUBY/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/RUBY/toolHeadSword.png | Bin .../materialicons/RUBY/toolHeadSword_OVERLAY.png | Bin .../materialicons/RUBY/toolHeadUniversalSpade.png | Bin .../RUBY/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/RUBY/toolHeadWrench.png | Bin .../materialicons/RUBY/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/RUBY/turbineBlade.png | Bin .../materialicons/RUBY/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/void.png | Bin .../items/materialicons/RUBY/void_OVERLAY.png | Bin .../textures/items/materialicons/RUBY/wireFine.png | Bin .../items/materialicons/RUBY/wireFine_OVERLAY.png | Bin .../items/materialicons/SAND/TURBINE_BLADE.png | Bin .../materialicons/SAND/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/SAND/arrowGtPlastic.png | Bin .../materialicons/SAND/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/SAND/arrowGtWood.png | Bin .../materialicons/SAND/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/SAND/bolt.png | Bin .../items/materialicons/SAND/bolt_OVERLAY.png | Bin .../textures/items/materialicons/SAND/cell.png | Bin .../items/materialicons/SAND/cellPlasma.png | Bin .../items/materialicons/SAND/cellPlasma_OVERLAY.png | Bin .../items/materialicons/SAND/cell_OVERLAY.png | Bin .../items/materialicons/SAND/crateGtDust.png | Bin .../materialicons/SAND/crateGtDust_OVERLAY.png | Bin .../items/materialicons/SAND/crateGtGem.png | Bin .../items/materialicons/SAND/crateGtGem_OVERLAY.png | Bin .../items/materialicons/SAND/crateGtIngot.png | Bin .../materialicons/SAND/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/SAND/crateGtPlate.png | Bin .../materialicons/SAND/crateGtPlate_OVERLAY.png | Bin .../textures/items/materialicons/SAND/crushed.png | Bin .../items/materialicons/SAND/crushedCentrifuged.png | Bin .../SAND/crushedCentrifuged_OVERLAY.png | Bin .../items/materialicons/SAND/crushedPurified.png | Bin .../materialicons/SAND/crushedPurified_OVERLAY.png | Bin .../items/materialicons/SAND/crushed_OVERLAY.png | Bin .../textures/items/materialicons/SAND/dust.png | Bin .../items/materialicons/SAND/dustImpure.png | Bin .../items/materialicons/SAND/dustImpure_OVERLAY.png | Bin .../textures/items/materialicons/SAND/dustPure.png | Bin .../items/materialicons/SAND/dustPure_OVERLAY.png | Bin .../textures/items/materialicons/SAND/dustSmall.png | Bin .../items/materialicons/SAND/dustSmall_OVERLAY.png | Bin .../textures/items/materialicons/SAND/dustTiny.png | Bin .../items/materialicons/SAND/dustTiny_OVERLAY.png | Bin .../items/materialicons/SAND/dust_OVERLAY.png | Bin .../textures/items/materialicons/SAND/foil.png | Bin .../items/materialicons/SAND/foil_OVERLAY.png | Bin .../textures/items/materialicons/SAND/gearGt.png | Bin .../items/materialicons/SAND/gearGtSmall.png | Bin .../materialicons/SAND/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/SAND/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/SAND/gem.png | Bin .../items/materialicons/SAND/gemChipped.png | Bin .../items/materialicons/SAND/gemChipped_OVERLAY.png | Bin .../items/materialicons/SAND/gemExquisite.png | Bin .../materialicons/SAND/gemExquisite_OVERLAY.png | Bin .../textures/items/materialicons/SAND/gemFlawed.png | Bin .../items/materialicons/SAND/gemFlawed_OVERLAY.png | Bin .../items/materialicons/SAND/gemFlawless.png | Bin .../materialicons/SAND/gemFlawless_OVERLAY.png | Bin .../items/materialicons/SAND/gem_OVERLAY.png | Bin .../textures/items/materialicons/SAND/ingot.png | Bin .../items/materialicons/SAND/ingotDouble.png | Bin .../materialicons/SAND/ingotDouble_OVERLAY.png | Bin .../textures/items/materialicons/SAND/ingotHot.png | Bin .../items/materialicons/SAND/ingotHot_OVERLAY.png | Bin .../items/materialicons/SAND/ingotQuadruple.png | Bin .../materialicons/SAND/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/SAND/ingotQuintuple.png | Bin .../materialicons/SAND/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/SAND/ingotTriple.png | Bin .../materialicons/SAND/ingotTriple_OVERLAY.png | Bin .../items/materialicons/SAND/ingot_OVERLAY.png | Bin .../textures/items/materialicons/SAND/lens.png | Bin .../items/materialicons/SAND/lens_OVERLAY.png | Bin .../textures/items/materialicons/SAND/nugget.png | Bin .../items/materialicons/SAND/nugget_OVERLAY.png | Bin .../textures/items/materialicons/SAND/plate.png | Bin .../items/materialicons/SAND/plateDense.png | Bin .../items/materialicons/SAND/plateDense_OVERLAY.png | Bin .../items/materialicons/SAND/plateDouble.png | Bin .../materialicons/SAND/plateDouble_OVERLAY.png | Bin .../items/materialicons/SAND/plateQuadruple.png | Bin .../materialicons/SAND/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/SAND/plateQuintuple.png | Bin .../materialicons/SAND/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/SAND/plateTriple.png | Bin .../materialicons/SAND/plateTriple_OVERLAY.png | Bin .../items/materialicons/SAND/plate_OVERLAY.png | Bin .../textures/items/materialicons/SAND/ring.png | Bin .../items/materialicons/SAND/ring_OVERLAY.png | Bin .../textures/items/materialicons/SAND/rotor.png | Bin .../items/materialicons/SAND/rotor_OVERLAY.png | Bin .../textures/items/materialicons/SAND/round.png | Bin .../items/materialicons/SAND/round_OVERLAY.png | Bin .../textures/items/materialicons/SAND/screw.png | Bin .../items/materialicons/SAND/screw_OVERLAY.png | Bin .../textures/items/materialicons/SAND/spring.png | Bin .../items/materialicons/SAND/springSmall.png | Bin .../materialicons/SAND/springSmall_OVERLAY.png | Bin .../items/materialicons/SAND/spring_OVERLAY.png | Bin .../textures/items/materialicons/SAND/stick.png | Bin .../textures/items/materialicons/SAND/stickLong.png | Bin .../items/materialicons/SAND/stickLong_OVERLAY.png | Bin .../items/materialicons/SAND/stick_OVERLAY.png | Bin .../items/materialicons/SAND/toolHeadArrow.png | Bin .../materialicons/SAND/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/SAND/toolHeadAxe.png | Bin .../materialicons/SAND/toolHeadAxe_OVERLAY.png | Bin .../items/materialicons/SAND/toolHeadBuzzSaw.png | Bin .../materialicons/SAND/toolHeadBuzzSaw_OVERLAY.png | Bin .../items/materialicons/SAND/toolHeadChainsaw.png | Bin .../materialicons/SAND/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/SAND/toolHeadDrill.png | Bin .../materialicons/SAND/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/SAND/toolHeadFile.png | Bin .../materialicons/SAND/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/SAND/toolHeadHammer.png | Bin .../materialicons/SAND/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/SAND/toolHeadHoe.png | Bin .../materialicons/SAND/toolHeadHoe_OVERLAY.png | Bin .../items/materialicons/SAND/toolHeadPickaxe.png | Bin .../materialicons/SAND/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/SAND/toolHeadPlow.png | Bin .../materialicons/SAND/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/SAND/toolHeadSaw.png | Bin .../materialicons/SAND/toolHeadSaw_OVERLAY.png | Bin .../materialicons/SAND/toolHeadScrewdriver.png | Bin .../SAND/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/SAND/toolHeadSense.png | Bin .../materialicons/SAND/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/SAND/toolHeadShovel.png | Bin .../materialicons/SAND/toolHeadShovel_OVERLAY.png | Bin .../items/materialicons/SAND/toolHeadSoldering.png | Bin .../SAND/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/SAND/toolHeadSword.png | Bin .../materialicons/SAND/toolHeadSword_OVERLAY.png | Bin .../materialicons/SAND/toolHeadUniversalSpade.png | Bin .../SAND/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/SAND/toolHeadWrench.png | Bin .../materialicons/SAND/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/SAND/turbineBlade.png | Bin .../materialicons/SAND/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/SAND/void.png | Bin .../items/materialicons/SAND/void_OVERLAY.png | Bin .../textures/items/materialicons/SAND/wireFine.png | Bin .../items/materialicons/SAND/wireFine_OVERLAY.png | Bin .../items/materialicons/SHARDS/TURBINE_BLADE.png | Bin .../materialicons/SHARDS/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/SHARDS/arrowGtPlastic.png | Bin .../materialicons/SHARDS/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/SHARDS/arrowGtWood.png | Bin .../materialicons/SHARDS/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/SHARDS/bolt.png | Bin .../items/materialicons/SHARDS/bolt_OVERLAY.png | Bin .../textures/items/materialicons/SHARDS/cell.png | Bin .../items/materialicons/SHARDS/cellPlasma.png | Bin .../materialicons/SHARDS/cellPlasma_OVERLAY.png | Bin .../items/materialicons/SHARDS/cell_OVERLAY.png | Bin .../items/materialicons/SHARDS/crateGtDust.png | Bin .../materialicons/SHARDS/crateGtDust_OVERLAY.png | Bin .../items/materialicons/SHARDS/crateGtGem.png | Bin .../materialicons/SHARDS/crateGtGem_OVERLAY.png | Bin .../items/materialicons/SHARDS/crateGtIngot.png | Bin .../materialicons/SHARDS/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/SHARDS/crateGtPlate.png | Bin .../materialicons/SHARDS/crateGtPlate_OVERLAY.png | Bin .../textures/items/materialicons/SHARDS/crushed.png | Bin .../materialicons/SHARDS/crushedCentrifuged.png | Bin .../SHARDS/crushedCentrifuged_OVERLAY.png | Bin .../items/materialicons/SHARDS/crushedPurified.png | Bin .../SHARDS/crushedPurified_OVERLAY.png | Bin .../items/materialicons/SHARDS/crushed_OVERLAY.png | Bin .../textures/items/materialicons/SHARDS/dust.png | Bin .../items/materialicons/SHARDS/dustImpure.png | Bin .../materialicons/SHARDS/dustImpure_OVERLAY.png | Bin .../items/materialicons/SHARDS/dustPure.png | Bin .../items/materialicons/SHARDS/dustPure_OVERLAY.png | Bin .../items/materialicons/SHARDS/dustSmall.png | Bin .../materialicons/SHARDS/dustSmall_OVERLAY.png | Bin .../items/materialicons/SHARDS/dustTiny.png | Bin .../items/materialicons/SHARDS/dustTiny_OVERLAY.png | Bin .../items/materialicons/SHARDS/dust_OVERLAY.png | Bin .../textures/items/materialicons/SHARDS/foil.png | Bin .../items/materialicons/SHARDS/foil_OVERLAY.png | Bin .../textures/items/materialicons/SHARDS/gearGt.png | Bin .../items/materialicons/SHARDS/gearGtSmall.png | Bin .../materialicons/SHARDS/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/SHARDS/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/SHARDS/gem.png | Bin .../items/materialicons/SHARDS/gemChipped.png | Bin .../materialicons/SHARDS/gemChipped_OVERLAY.png | Bin .../items/materialicons/SHARDS/gemExquisite.png | Bin .../materialicons/SHARDS/gemExquisite_OVERLAY.png | Bin .../items/materialicons/SHARDS/gemFlawed.png | Bin .../materialicons/SHARDS/gemFlawed_OVERLAY.png | Bin .../items/materialicons/SHARDS/gemFlawless.png | Bin .../materialicons/SHARDS/gemFlawless_OVERLAY.png | Bin .../items/materialicons/SHARDS/gem_OVERLAY.png | Bin .../textures/items/materialicons/SHARDS/ingot.png | Bin .../items/materialicons/SHARDS/ingotDouble.png | Bin .../materialicons/SHARDS/ingotDouble_OVERLAY.png | Bin .../items/materialicons/SHARDS/ingotHot.png | Bin .../items/materialicons/SHARDS/ingotHot_OVERLAY.png | Bin .../items/materialicons/SHARDS/ingotQuadruple.png | Bin .../materialicons/SHARDS/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/SHARDS/ingotQuintuple.png | Bin .../materialicons/SHARDS/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/SHARDS/ingotTriple.png | Bin .../materialicons/SHARDS/ingotTriple_OVERLAY.png | Bin .../items/materialicons/SHARDS/ingot_OVERLAY.png | Bin .../textures/items/materialicons/SHARDS/lens.png | Bin .../items/materialicons/SHARDS/lens_OVERLAY.png | Bin .../textures/items/materialicons/SHARDS/nugget.png | Bin .../items/materialicons/SHARDS/nugget_OVERLAY.png | Bin .../textures/items/materialicons/SHARDS/plate.png | Bin .../items/materialicons/SHARDS/plateDense.png | Bin .../materialicons/SHARDS/plateDense_OVERLAY.png | Bin .../items/materialicons/SHARDS/plateDouble.png | Bin .../materialicons/SHARDS/plateDouble_OVERLAY.png | Bin .../items/materialicons/SHARDS/plateQuadruple.png | Bin .../materialicons/SHARDS/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/SHARDS/plateQuintuple.png | Bin .../materialicons/SHARDS/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/SHARDS/plateTriple.png | Bin .../materialicons/SHARDS/plateTriple_OVERLAY.png | Bin .../items/materialicons/SHARDS/plate_OVERLAY.png | Bin .../textures/items/materialicons/SHARDS/ring.png | Bin .../items/materialicons/SHARDS/ring_OVERLAY.png | Bin .../textures/items/materialicons/SHARDS/rotor.png | Bin .../items/materialicons/SHARDS/rotor_OVERLAY.png | Bin .../textures/items/materialicons/SHARDS/round.png | Bin .../items/materialicons/SHARDS/round_OVERLAY.png | Bin .../textures/items/materialicons/SHARDS/screw.png | Bin .../items/materialicons/SHARDS/screw_OVERLAY.png | Bin .../textures/items/materialicons/SHARDS/spring.png | Bin .../items/materialicons/SHARDS/springSmall.png | Bin .../materialicons/SHARDS/springSmall_OVERLAY.png | Bin .../items/materialicons/SHARDS/spring_OVERLAY.png | Bin .../textures/items/materialicons/SHARDS/stick.png | Bin .../items/materialicons/SHARDS/stickLong.png | Bin .../materialicons/SHARDS/stickLong_OVERLAY.png | Bin .../items/materialicons/SHARDS/stick_OVERLAY.png | Bin .../items/materialicons/SHARDS/toolHeadArrow.png | Bin .../materialicons/SHARDS/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/SHARDS/toolHeadAxe.png | Bin .../materialicons/SHARDS/toolHeadAxe_OVERLAY.png | Bin .../items/materialicons/SHARDS/toolHeadBuzzSaw.png | Bin .../SHARDS/toolHeadBuzzSaw_OVERLAY.png | Bin .../items/materialicons/SHARDS/toolHeadChainsaw.png | Bin .../SHARDS/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/SHARDS/toolHeadDrill.png | Bin .../materialicons/SHARDS/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/SHARDS/toolHeadFile.png | Bin .../materialicons/SHARDS/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/SHARDS/toolHeadHammer.png | Bin .../materialicons/SHARDS/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/SHARDS/toolHeadHoe.png | Bin .../materialicons/SHARDS/toolHeadHoe_OVERLAY.png | Bin .../items/materialicons/SHARDS/toolHeadPickaxe.png | Bin .../SHARDS/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/SHARDS/toolHeadPlow.png | Bin .../materialicons/SHARDS/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/SHARDS/toolHeadSaw.png | Bin .../materialicons/SHARDS/toolHeadSaw_OVERLAY.png | Bin .../materialicons/SHARDS/toolHeadScrewdriver.png | Bin .../SHARDS/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/SHARDS/toolHeadSense.png | Bin .../materialicons/SHARDS/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/SHARDS/toolHeadShovel.png | Bin .../materialicons/SHARDS/toolHeadShovel_OVERLAY.png | Bin .../materialicons/SHARDS/toolHeadSoldering.png | Bin .../SHARDS/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/SHARDS/toolHeadSword.png | Bin .../materialicons/SHARDS/toolHeadSword_OVERLAY.png | Bin .../materialicons/SHARDS/toolHeadUniversalSpade.png | Bin .../SHARDS/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/SHARDS/toolHeadWrench.png | Bin .../materialicons/SHARDS/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/SHARDS/turbineBlade.png | Bin .../materialicons/SHARDS/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/SHARDS/void.png | Bin .../items/materialicons/SHARDS/void_OVERLAY.png | Bin .../items/materialicons/SHARDS/wireFine.png | Bin .../items/materialicons/SHARDS/wireFine_OVERLAY.png | Bin .../items/materialicons/SHINY/TURBINE_BLADE.png | Bin .../materialicons/SHINY/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/SHINY/arrowGtPlastic.png | Bin .../materialicons/SHINY/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/SHINY/arrowGtWood.png | Bin .../materialicons/SHINY/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/SHINY/bolt.png | Bin .../items/materialicons/SHINY/bolt_OVERLAY.png | Bin .../textures/items/materialicons/SHINY/cell.png | Bin .../items/materialicons/SHINY/cellPlasma.png | Bin .../materialicons/SHINY/cellPlasma_OVERLAY.png | Bin .../items/materialicons/SHINY/cell_OVERLAY.png | Bin .../items/materialicons/SHINY/crateGtDust.png | Bin .../materialicons/SHINY/crateGtDust_OVERLAY.png | Bin .../items/materialicons/SHINY/crateGtGem.png | Bin .../materialicons/SHINY/crateGtGem_OVERLAY.png | Bin .../items/materialicons/SHINY/crateGtIngot.png | Bin .../materialicons/SHINY/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/SHINY/crateGtPlate.png | Bin .../materialicons/SHINY/crateGtPlate_OVERLAY.png | Bin .../textures/items/materialicons/SHINY/crushed.png | Bin .../materialicons/SHINY/crushedCentrifuged.png | Bin .../SHINY/crushedCentrifuged_OVERLAY.png | Bin .../items/materialicons/SHINY/crushedPurified.png | Bin .../materialicons/SHINY/crushedPurified_OVERLAY.png | Bin .../items/materialicons/SHINY/crushed_OVERLAY.png | Bin .../textures/items/materialicons/SHINY/dust.png | Bin .../items/materialicons/SHINY/dustImpure.png | Bin .../materialicons/SHINY/dustImpure_OVERLAY.png | Bin .../textures/items/materialicons/SHINY/dustPure.png | Bin .../items/materialicons/SHINY/dustPure_OVERLAY.png | Bin .../items/materialicons/SHINY/dustSmall.png | Bin .../items/materialicons/SHINY/dustSmall_OVERLAY.png | Bin .../textures/items/materialicons/SHINY/dustTiny.png | Bin .../items/materialicons/SHINY/dustTiny_OVERLAY.png | Bin .../items/materialicons/SHINY/dust_OVERLAY.png | Bin .../textures/items/materialicons/SHINY/foil.png | Bin .../items/materialicons/SHINY/foil_OVERLAY.png | Bin .../textures/items/materialicons/SHINY/gearGt.png | Bin .../items/materialicons/SHINY/gearGtSmall.png | Bin .../materialicons/SHINY/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/SHINY/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/SHINY/gem.png | Bin .../items/materialicons/SHINY/gemChipped.png | Bin .../materialicons/SHINY/gemChipped_OVERLAY.png | Bin .../items/materialicons/SHINY/gemExquisite.png | Bin .../materialicons/SHINY/gemExquisite_OVERLAY.png | Bin .../items/materialicons/SHINY/gemFlawed.png | Bin .../items/materialicons/SHINY/gemFlawed_OVERLAY.png | Bin .../items/materialicons/SHINY/gemFlawless.png | Bin .../materialicons/SHINY/gemFlawless_OVERLAY.png | Bin .../items/materialicons/SHINY/gem_OVERLAY.png | Bin .../textures/items/materialicons/SHINY/ingot.png | Bin .../items/materialicons/SHINY/ingotDouble.png | Bin .../materialicons/SHINY/ingotDouble_OVERLAY.png | Bin .../textures/items/materialicons/SHINY/ingotHot.png | Bin .../items/materialicons/SHINY/ingotHot_OVERLAY.png | Bin .../items/materialicons/SHINY/ingotQuadruple.png | Bin .../materialicons/SHINY/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/SHINY/ingotQuintuple.png | Bin .../materialicons/SHINY/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/SHINY/ingotTriple.png | Bin .../materialicons/SHINY/ingotTriple_OVERLAY.png | Bin .../items/materialicons/SHINY/ingot_OVERLAY.png | Bin .../textures/items/materialicons/SHINY/lens.png | Bin .../items/materialicons/SHINY/lens_OVERLAY.png | Bin .../textures/items/materialicons/SHINY/nugget.png | Bin .../items/materialicons/SHINY/nugget_OVERLAY.png | Bin .../textures/items/materialicons/SHINY/plate.png | Bin .../items/materialicons/SHINY/plateDense.png | Bin .../materialicons/SHINY/plateDense_OVERLAY.png | Bin .../items/materialicons/SHINY/plateDouble.png | Bin .../materialicons/SHINY/plateDouble_OVERLAY.png | Bin .../items/materialicons/SHINY/plateQuadruple.png | Bin .../materialicons/SHINY/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/SHINY/plateQuintuple.png | Bin .../materialicons/SHINY/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/SHINY/plateTriple.png | Bin .../materialicons/SHINY/plateTriple_OVERLAY.png | Bin .../items/materialicons/SHINY/plate_OVERLAY.png | Bin .../textures/items/materialicons/SHINY/ring.png | Bin .../items/materialicons/SHINY/ring_OVERLAY.png | Bin .../textures/items/materialicons/SHINY/rotor.png | Bin .../items/materialicons/SHINY/rotor_OVERLAY.png | Bin .../textures/items/materialicons/SHINY/round.png | Bin .../items/materialicons/SHINY/round_OVERLAY.png | Bin .../textures/items/materialicons/SHINY/screw.png | Bin .../items/materialicons/SHINY/screw_OVERLAY.png | Bin .../textures/items/materialicons/SHINY/spring.png | Bin .../items/materialicons/SHINY/springSmall.png | Bin .../materialicons/SHINY/springSmall_OVERLAY.png | Bin .../items/materialicons/SHINY/spring_OVERLAY.png | Bin .../textures/items/materialicons/SHINY/stick.png | Bin .../items/materialicons/SHINY/stickLong.png | Bin .../items/materialicons/SHINY/stickLong_OVERLAY.png | Bin .../items/materialicons/SHINY/stick_OVERLAY.png | Bin .../items/materialicons/SHINY/toolHeadArrow.png | Bin .../materialicons/SHINY/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/SHINY/toolHeadAxe.png | Bin .../materialicons/SHINY/toolHeadAxe_OVERLAY.png | Bin .../items/materialicons/SHINY/toolHeadBuzzSaw.png | Bin .../materialicons/SHINY/toolHeadBuzzSaw_OVERLAY.png | Bin .../items/materialicons/SHINY/toolHeadChainsaw.png | Bin .../SHINY/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/SHINY/toolHeadDrill.png | Bin .../materialicons/SHINY/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/SHINY/toolHeadFile.png | Bin .../materialicons/SHINY/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/SHINY/toolHeadHammer.png | Bin .../materialicons/SHINY/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/SHINY/toolHeadHoe.png | Bin .../materialicons/SHINY/toolHeadHoe_OVERLAY.png | Bin .../items/materialicons/SHINY/toolHeadPickaxe.png | Bin .../materialicons/SHINY/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/SHINY/toolHeadPlow.png | Bin .../materialicons/SHINY/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/SHINY/toolHeadSaw.png | Bin .../materialicons/SHINY/toolHeadSaw_OVERLAY.png | Bin .../materialicons/SHINY/toolHeadScrewdriver.png | Bin .../SHINY/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/SHINY/toolHeadSense.png | Bin .../materialicons/SHINY/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/SHINY/toolHeadShovel.png | Bin .../materialicons/SHINY/toolHeadShovel_OVERLAY.png | Bin .../items/materialicons/SHINY/toolHeadSoldering.png | Bin .../SHINY/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/SHINY/toolHeadSword.png | Bin .../materialicons/SHINY/toolHeadSword_OVERLAY.png | Bin .../materialicons/SHINY/toolHeadUniversalSpade.png | Bin .../SHINY/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/SHINY/toolHeadWrench.png | Bin .../materialicons/SHINY/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/SHINY/turbineBlade.png | Bin .../materialicons/SHINY/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/SHINY/void.png | Bin .../items/materialicons/SHINY/void_OVERLAY.png | Bin .../textures/items/materialicons/SHINY/wireFine.png | Bin .../items/materialicons/SHINY/wireFine_OVERLAY.png | Bin .../items/materialicons/WOOD/TURBINE_BLADE.png | Bin .../materialicons/WOOD/TURBINE_BLADE_OVERLAY.png | Bin .../items/materialicons/WOOD/arrowGtPlastic.png | Bin .../materialicons/WOOD/arrowGtPlastic_OVERLAY.png | Bin .../items/materialicons/WOOD/arrowGtWood.png | Bin .../materialicons/WOOD/arrowGtWood_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/bolt.png | Bin .../items/materialicons/WOOD/bolt_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/cell.png | Bin .../items/materialicons/WOOD/cellPlasma.png | Bin .../items/materialicons/WOOD/cellPlasma_OVERLAY.png | Bin .../items/materialicons/WOOD/cell_OVERLAY.png | Bin .../items/materialicons/WOOD/crateGtDust.png | Bin .../materialicons/WOOD/crateGtDust_OVERLAY.png | Bin .../items/materialicons/WOOD/crateGtGem.png | Bin .../items/materialicons/WOOD/crateGtGem_OVERLAY.png | Bin .../items/materialicons/WOOD/crateGtIngot.png | Bin .../materialicons/WOOD/crateGtIngot_OVERLAY.png | Bin .../items/materialicons/WOOD/crateGtPlate.png | Bin .../materialicons/WOOD/crateGtPlate_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/crushed.png | Bin .../items/materialicons/WOOD/crushedCentrifuged.png | Bin .../WOOD/crushedCentrifuged_OVERLAY.png | Bin .../items/materialicons/WOOD/crushedPurified.png | Bin .../materialicons/WOOD/crushedPurified_OVERLAY.png | Bin .../items/materialicons/WOOD/crushed_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/dust.png | Bin .../items/materialicons/WOOD/dustImpure.png | Bin .../items/materialicons/WOOD/dustImpure_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/dustPure.png | Bin .../items/materialicons/WOOD/dustPure_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/dustSmall.png | Bin .../items/materialicons/WOOD/dustSmall_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/dustTiny.png | Bin .../items/materialicons/WOOD/dustTiny_OVERLAY.png | Bin .../items/materialicons/WOOD/dust_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/foil.png | Bin .../items/materialicons/WOOD/foil_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/gearGt.png | Bin .../items/materialicons/WOOD/gearGtSmall.png | Bin .../materialicons/WOOD/gearGtSmall_OVERLAY.png | Bin .../items/materialicons/WOOD/gearGt_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/gem.png | Bin .../items/materialicons/WOOD/gemChipped.png | Bin .../items/materialicons/WOOD/gemChipped_OVERLAY.png | Bin .../items/materialicons/WOOD/gemExquisite.png | Bin .../materialicons/WOOD/gemExquisite_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/gemFlawed.png | Bin .../items/materialicons/WOOD/gemFlawed_OVERLAY.png | Bin .../items/materialicons/WOOD/gemFlawless.png | Bin .../materialicons/WOOD/gemFlawless_OVERLAY.png | Bin .../items/materialicons/WOOD/gem_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/ingot.png | Bin .../items/materialicons/WOOD/ingotDouble.png | Bin .../materialicons/WOOD/ingotDouble_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/ingotHot.png | Bin .../items/materialicons/WOOD/ingotHot_OVERLAY.png | Bin .../items/materialicons/WOOD/ingotQuadruple.png | Bin .../materialicons/WOOD/ingotQuadruple_OVERLAY.png | Bin .../items/materialicons/WOOD/ingotQuintuple.png | Bin .../materialicons/WOOD/ingotQuintuple_OVERLAY.png | Bin .../items/materialicons/WOOD/ingotTriple.png | Bin .../materialicons/WOOD/ingotTriple_OVERLAY.png | Bin .../items/materialicons/WOOD/ingot_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/lens.png | Bin .../items/materialicons/WOOD/lens_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/nugget.png | Bin .../items/materialicons/WOOD/nugget_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/plate.png | Bin .../items/materialicons/WOOD/plateDense.png | Bin .../items/materialicons/WOOD/plateDense_OVERLAY.png | Bin .../items/materialicons/WOOD/plateDouble.png | Bin .../materialicons/WOOD/plateDouble_OVERLAY.png | Bin .../items/materialicons/WOOD/plateQuadruple.png | Bin .../materialicons/WOOD/plateQuadruple_OVERLAY.png | Bin .../items/materialicons/WOOD/plateQuintuple.png | Bin .../materialicons/WOOD/plateQuintuple_OVERLAY.png | Bin .../items/materialicons/WOOD/plateTriple.png | Bin .../materialicons/WOOD/plateTriple_OVERLAY.png | Bin .../items/materialicons/WOOD/plate_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/ring.png | Bin .../items/materialicons/WOOD/ring_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/rotor.png | Bin .../items/materialicons/WOOD/rotor_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/round.png | Bin .../items/materialicons/WOOD/round_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/screw.png | Bin .../items/materialicons/WOOD/screw_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/spring.png | Bin .../items/materialicons/WOOD/springSmall.png | Bin .../materialicons/WOOD/springSmall_OVERLAY.png | Bin .../items/materialicons/WOOD/spring_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/stick.png | Bin .../textures/items/materialicons/WOOD/stickLong.png | Bin .../items/materialicons/WOOD/stickLong_OVERLAY.png | Bin .../items/materialicons/WOOD/stick_OVERLAY.png | Bin .../items/materialicons/WOOD/toolHeadArrow.png | Bin .../materialicons/WOOD/toolHeadArrow_OVERLAY.png | Bin .../items/materialicons/WOOD/toolHeadAxe.png | Bin .../materialicons/WOOD/toolHeadAxe_OVERLAY.png | Bin .../items/materialicons/WOOD/toolHeadBuzzSaw.png | Bin .../materialicons/WOOD/toolHeadBuzzSaw_OVERLAY.png | Bin .../items/materialicons/WOOD/toolHeadChainsaw.png | Bin .../materialicons/WOOD/toolHeadChainsaw_OVERLAY.png | Bin .../items/materialicons/WOOD/toolHeadDrill.png | Bin .../materialicons/WOOD/toolHeadDrill_OVERLAY.png | Bin .../items/materialicons/WOOD/toolHeadFile.png | Bin .../materialicons/WOOD/toolHeadFile_OVERLAY.png | Bin .../items/materialicons/WOOD/toolHeadHammer.png | Bin .../materialicons/WOOD/toolHeadHammer_OVERLAY.png | Bin .../items/materialicons/WOOD/toolHeadHoe.png | Bin .../materialicons/WOOD/toolHeadHoe_OVERLAY.png | Bin .../items/materialicons/WOOD/toolHeadPickaxe.png | Bin .../materialicons/WOOD/toolHeadPickaxe_OVERLAY.png | Bin .../items/materialicons/WOOD/toolHeadPlow.png | Bin .../materialicons/WOOD/toolHeadPlow_OVERLAY.png | Bin .../items/materialicons/WOOD/toolHeadSaw.png | Bin .../materialicons/WOOD/toolHeadSaw_OVERLAY.png | Bin .../materialicons/WOOD/toolHeadScrewdriver.png | Bin .../WOOD/toolHeadScrewdriver_OVERLAY.png | Bin .../items/materialicons/WOOD/toolHeadSense.png | Bin .../materialicons/WOOD/toolHeadSense_OVERLAY.png | Bin .../items/materialicons/WOOD/toolHeadShovel.png | Bin .../materialicons/WOOD/toolHeadShovel_OVERLAY.png | Bin .../items/materialicons/WOOD/toolHeadSoldering.png | Bin .../WOOD/toolHeadSoldering_OVERLAY.png | Bin .../items/materialicons/WOOD/toolHeadSword.png | Bin .../materialicons/WOOD/toolHeadSword_OVERLAY.png | Bin .../materialicons/WOOD/toolHeadUniversalSpade.png | Bin .../WOOD/toolHeadUniversalSpade_OVERLAY.png | Bin .../items/materialicons/WOOD/toolHeadWrench.png | Bin .../materialicons/WOOD/toolHeadWrench_OVERLAY.png | Bin .../items/materialicons/WOOD/turbineBlade.png | Bin .../materialicons/WOOD/turbineBlade_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/void.png | Bin .../items/materialicons/WOOD/void_OVERLAY.png | Bin .../textures/items/materialicons/WOOD/wireFine.png | Bin .../items/materialicons/WOOD/wireFine_OVERLAY.png | Bin .../textures/items/materialicons/copy_into_all.bat | 0 .../textures/items/materialicons/copy_into_dull.bat | 0 .../textures/items/materialicons/copy_into_gems.bat | 0 .../items/materialicons/copy_into_shiny.bat | 0 {main => src/main}/resources/assets/ic2/sounds.json | 0 .../resources/assets/ic2/sounds/BatteryUse.ogg | Bin .../resources/assets/ic2/sounds/ChainsawIdle.ogg | Bin .../resources/assets/ic2/sounds/ChainsawStop.ogg | Bin .../resources/assets/ic2/sounds/ChainsawUseOne.ogg | Bin .../resources/assets/ic2/sounds/ChainsawUseTwo.ogg | Bin .../resources/assets/ic2/sounds/CompressorOp.ogg | Bin .../main}/resources/assets/ic2/sounds/DrillHard.ogg | Bin .../main}/resources/assets/ic2/sounds/DrillSoft.ogg | Bin .../resources/assets/ic2/sounds/DrillUseLoop.ogg | Bin .../resources/assets/ic2/sounds/Dynamiteomote.ogg | Bin .../assets/ic2/sounds/ElectroFurnaceLoop.ogg | Bin .../resources/assets/ic2/sounds/ExtractorOp.ogg | Bin .../resources/assets/ic2/sounds/HelmetLoop.ogg | Bin .../resources/assets/ic2/sounds/InductionLoop.ogg | Bin .../assets/ic2/sounds/InsulationCutters.ogg | Bin .../resources/assets/ic2/sounds/InterruptOne.ogg | Bin .../resources/assets/ic2/sounds/IronFurnaceOp.ogg | Bin .../resources/assets/ic2/sounds/JetpackFire.ogg | Bin .../resources/assets/ic2/sounds/JetpackLoop.ogg | Bin .../main}/resources/assets/ic2/sounds/KaChing.ogg | Bin .../resources/assets/ic2/sounds/MaceratorOp.ogg | Bin .../resources/assets/ic2/sounds/MachineOverload.ogg | Bin .../resources/assets/ic2/sounds/MagnetizerLoop.ogg | Bin .../main}/resources/assets/ic2/sounds/MinerOp.ogg | Bin .../resources/assets/ic2/sounds/MiningLaser.ogg | Bin .../assets/ic2/sounds/MiningLaserExplosive.ogg | Bin .../assets/ic2/sounds/MiningLaserLongRange.ogg | Bin .../assets/ic2/sounds/MiningLaserLowFocus.ogg | Bin .../assets/ic2/sounds/MiningLaserScatter.ogg | Bin .../resources/assets/ic2/sounds/NanosabreIdle.ogg | Bin .../assets/ic2/sounds/NanosabrePowerup.ogg | Bin .../resources/assets/ic2/sounds/NanosabreSwing1.ogg | Bin .../resources/assets/ic2/sounds/NanosabreSwing2.ogg | Bin .../resources/assets/ic2/sounds/NanosabreSwing3.ogg | Bin .../resources/assets/ic2/sounds/NukeExplosion.ogg | Bin .../main}/resources/assets/ic2/sounds/ODScanner.ogg | Bin .../main}/resources/assets/ic2/sounds/Painter.ogg | Bin .../main}/resources/assets/ic2/sounds/PumpOp.ogg | Bin .../assets/ic2/sounds/QuantumsuitBoots.ogg | Bin .../resources/assets/ic2/sounds/RecyclerOp.ogg | Bin .../assets/ic2/sounds/RubberTrampoline.ogg | Bin .../main}/resources/assets/ic2/sounds/Treetap.ogg | Bin .../main}/resources/assets/ic2/sounds/Wrench.ogg | Bin .../textures/blocks/crop/blockCrop.Argentia.1.png | Bin .../textures/blocks/crop/blockCrop.Argentia.2.png | Bin .../textures/blocks/crop/blockCrop.Argentia.3.png | Bin .../textures/blocks/crop/blockCrop.Argentia.4.png | Bin .../textures/blocks/crop/blockCrop.Blazereed.1.png | Bin .../textures/blocks/crop/blockCrop.Blazereed.2.png | Bin .../textures/blocks/crop/blockCrop.Blazereed.3.png | Bin .../textures/blocks/crop/blockCrop.Blazereed.4.png | Bin .../blocks/crop/blockCrop.Bobsyeruncleranks.1.png | Bin .../blocks/crop/blockCrop.Bobsyeruncleranks.2.png | Bin .../blocks/crop/blockCrop.Bobsyeruncleranks.3.png | Bin .../blocks/crop/blockCrop.Bobsyeruncleranks.4.png | Bin .../blocks/crop/blockCrop.Brown Mushrooms.1.png | Bin .../blocks/crop/blockCrop.Brown Mushrooms.2.png | Bin .../blocks/crop/blockCrop.Brown Mushrooms.3.png | Bin .../ic2/textures/blocks/crop/blockCrop.Coppon.1.png | Bin .../ic2/textures/blocks/crop/blockCrop.Coppon.2.png | Bin .../ic2/textures/blocks/crop/blockCrop.Coppon.3.png | Bin .../ic2/textures/blocks/crop/blockCrop.Corium.1.png | Bin .../ic2/textures/blocks/crop/blockCrop.Corium.2.png | Bin .../ic2/textures/blocks/crop/blockCrop.Corium.3.png | Bin .../ic2/textures/blocks/crop/blockCrop.Corium.4.png | Bin .../blocks/crop/blockCrop.Corpseplant.1.png | Bin .../blocks/crop/blockCrop.Corpseplant.2.png | Bin .../blocks/crop/blockCrop.Corpseplant.3.png | Bin .../blocks/crop/blockCrop.Corpseplant.4.png | Bin .../blocks/crop/blockCrop.Creeperweed.1.png | Bin .../blocks/crop/blockCrop.Creeperweed.2.png | Bin .../blocks/crop/blockCrop.Creeperweed.3.png | Bin .../blocks/crop/blockCrop.Creeperweed.4.png | Bin .../textures/blocks/crop/blockCrop.Diareed.1.png | Bin .../textures/blocks/crop/blockCrop.Diareed.2.png | Bin .../textures/blocks/crop/blockCrop.Diareed.3.png | Bin .../textures/blocks/crop/blockCrop.Diareed.4.png | Bin .../textures/blocks/crop/blockCrop.Eggplant.1.png | Bin .../textures/blocks/crop/blockCrop.Eggplant.2.png | Bin .../textures/blocks/crop/blockCrop.Eggplant.3.png | Bin .../textures/blocks/crop/blockCrop.Enderbloom.1.png | Bin .../textures/blocks/crop/blockCrop.Enderbloom.2.png | Bin .../textures/blocks/crop/blockCrop.Enderbloom.3.png | Bin .../textures/blocks/crop/blockCrop.Enderbloom.4.png | Bin .../ic2/textures/blocks/crop/blockCrop.Flax.1.png | Bin .../ic2/textures/blocks/crop/blockCrop.Flax.2.png | Bin .../ic2/textures/blocks/crop/blockCrop.Flax.3.png | Bin .../ic2/textures/blocks/crop/blockCrop.Flax.4.png | Bin .../ic2/textures/blocks/crop/blockCrop.Indigo.1.png | Bin .../ic2/textures/blocks/crop/blockCrop.Indigo.2.png | Bin .../ic2/textures/blocks/crop/blockCrop.Indigo.3.png | Bin .../ic2/textures/blocks/crop/blockCrop.Indigo.4.png | Bin .../textures/blocks/crop/blockCrop.Liveroots.1.png | Bin .../textures/blocks/crop/blockCrop.Liveroots.2.png | Bin .../textures/blocks/crop/blockCrop.Liveroots.3.png | Bin .../textures/blocks/crop/blockCrop.Liveroots.4.png | Bin .../textures/blocks/crop/blockCrop.Meatrose.1.png | Bin .../textures/blocks/crop/blockCrop.Meatrose.2.png | Bin .../textures/blocks/crop/blockCrop.Meatrose.3.png | Bin .../textures/blocks/crop/blockCrop.Meatrose.4.png | Bin .../textures/blocks/crop/blockCrop.Milkwart.1.png | Bin .../textures/blocks/crop/blockCrop.Milkwart.2.png | Bin .../textures/blocks/crop/blockCrop.Milkwart.3.png | Bin .../textures/blocks/crop/blockCrop.Oilberries.1.png | Bin .../textures/blocks/crop/blockCrop.Oilberries.2.png | Bin .../textures/blocks/crop/blockCrop.Oilberries.3.png | Bin .../textures/blocks/crop/blockCrop.Oilberries.4.png | Bin .../textures/blocks/crop/blockCrop.Plumbilia.1.png | Bin .../textures/blocks/crop/blockCrop.Plumbilia.2.png | Bin .../textures/blocks/crop/blockCrop.Plumbilia.3.png | Bin .../textures/blocks/crop/blockCrop.Plumbilia.4.png | Bin .../blocks/crop/blockCrop.Red Mushrooms.1.png | Bin .../blocks/crop/blockCrop.Red Mushrooms.2.png | Bin .../blocks/crop/blockCrop.Red Mushrooms.3.png | Bin .../textures/blocks/crop/blockCrop.Slimeplant.1.png | Bin .../textures/blocks/crop/blockCrop.Slimeplant.2.png | Bin .../textures/blocks/crop/blockCrop.Slimeplant.3.png | Bin .../textures/blocks/crop/blockCrop.Slimeplant.4.png | Bin .../textures/blocks/crop/blockCrop.Spidernip.1.png | Bin .../textures/blocks/crop/blockCrop.Spidernip.2.png | Bin .../textures/blocks/crop/blockCrop.Spidernip.3.png | Bin .../textures/blocks/crop/blockCrop.Spidernip.4.png | Bin .../blocks/crop/blockCrop.Steeleafranks.1.png | Bin .../blocks/crop/blockCrop.Steeleafranks.2.png | Bin .../blocks/crop/blockCrop.Steeleafranks.3.png | Bin .../blocks/crop/blockCrop.Steeleafranks.4.png | Bin .../textures/blocks/crop/blockCrop.Tearstalks.1.png | Bin .../textures/blocks/crop/blockCrop.Tearstalks.2.png | Bin .../textures/blocks/crop/blockCrop.Tearstalks.3.png | Bin .../textures/blocks/crop/blockCrop.Tearstalks.4.png | Bin .../ic2/textures/blocks/crop/blockCrop.Tine.1.png | Bin .../ic2/textures/blocks/crop/blockCrop.Tine.2.png | Bin .../ic2/textures/blocks/crop/blockCrop.Tine.3.png | Bin .../textures/blocks/crop/blockCrop.Withereed.1.png | Bin .../textures/blocks/crop/blockCrop.Withereed.2.png | Bin .../textures/blocks/crop/blockCrop.Withereed.3.png | Bin .../textures/blocks/crop/blockCrop.Withereed.4.png | Bin .../models/armor/cloakingdevice_layer_1.png | Bin .../textures/models/armor/lapotronpack_layer_1.png | Bin .../models/armor/lithiumbatpack_layer_1.png | Bin {main => src/main}/resources/mcmod.info | 0 6867 files changed, 0 insertions(+), 0 deletions(-) rename {main => src/main}/META-INF/MANIFEST.MF (100%) rename {main => src/main}/java/gregtech/GT_Mod.java (100%) rename {main => src/main}/java/gregtech/api/GregTech_API.java (100%) rename {main => src/main}/java/gregtech/api/damagesources/GT_DamageSources.java (100%) rename {main => src/main}/java/gregtech/api/enchants/Enchantment_EnderDamage.java (100%) rename {main => src/main}/java/gregtech/api/enchants/Enchantment_Radioactivity.java (100%) rename {main => src/main}/java/gregtech/api/enums/ConfigCategories.java (100%) rename {main => src/main}/java/gregtech/api/enums/Dyes.java (100%) rename {main => src/main}/java/gregtech/api/enums/Element.java (100%) rename {main => src/main}/java/gregtech/api/enums/GT_Values.java (100%) rename {main => src/main}/java/gregtech/api/enums/ItemList.java (100%) rename {main => src/main}/java/gregtech/api/enums/Materials.java (100%) rename {main => src/main}/java/gregtech/api/enums/OreDictNames.java (100%) rename {main => src/main}/java/gregtech/api/enums/OrePrefixes.java (100%) rename {main => src/main}/java/gregtech/api/enums/SubTag.java (100%) rename {main => src/main}/java/gregtech/api/enums/TC_Aspects.java (100%) rename {main => src/main}/java/gregtech/api/enums/TextureSet.java (100%) rename {main => src/main}/java/gregtech/api/enums/Textures.java (100%) rename {main => src/main}/java/gregtech/api/enums/Tier.java (100%) rename {main => src/main}/java/gregtech/api/enums/ToolDictNames.java (100%) rename {main => src/main}/java/gregtech/api/events/BlockScanningEvent.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_Container.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_ContainerMetaTile_Machine.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_Container_1by1.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_Container_2by2.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_Container_3by3.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_Container_4by4.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_Container_BasicMachine.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_Container_BasicTank.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_Container_MaintenanceHatch.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_Container_MultiMachine.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_GUIContainer.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_GUIContainerMetaTile_Machine.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_GUIContainer_1by1.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_GUIContainer_2by2.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_GUIContainer_3by3.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_GUIContainer_4by4.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_GUIContainer_BasicMachine.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_GUIContainer_BasicTank.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_GUIContainer_MaintenanceHatch.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_GUIContainer_MultiMachine.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_Slot_Armor.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_Slot_DataOrb.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_Slot_Holo.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_Slot_Output.java (100%) rename {main => src/main}/java/gregtech/api/gui/GT_Slot_Render.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/IColorModulationContainer.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/ICondition.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/IDamagableItem.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/IDebugableBlock.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/IDescribable.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/IFoodStat.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/IIconContainer.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/IItemBehaviour.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/IItemContainer.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/IOreRecipeRegistrator.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/IProjectileItem.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/IRedstoneCircuitBlock.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/ISubTagContainer.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/ITexture.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/IToolStats.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/internal/IBCTileEntity.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/internal/IGT_CraftingRecipe.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/internal/IGT_Mod.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/internal/IIC2TileEntity.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/internal/IUETileEntity.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityCable.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityItemPipe.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/tileentity/IBasicEnergyContainer.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/tileentity/IColoredTileEntity.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/tileentity/ICoverable.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/tileentity/IDigitalChest.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/tileentity/IEnergyConductor.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/tileentity/IFibreConnected.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/tileentity/IGearEnergyTileEntity.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/tileentity/IGregTechDeviceInformation.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/tileentity/IHasInventory.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/tileentity/IHasWorldObjectAndCoords.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/tileentity/IMachineBlockUpdateable.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/tileentity/IMachineProgress.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/tileentity/IPipeRenderedTileEntity.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/tileentity/IRedstoneEmitter.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/tileentity/IRedstoneReceiver.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/tileentity/IRedstoneTileEntity.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/tileentity/ITexturedTileEntity.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/tileentity/ITurnable.java (100%) rename {main => src/main}/java/gregtech/api/interfaces/tileentity/IUpgradableMachine.java (100%) rename {main => src/main}/java/gregtech/api/items/GT_CoolantCellIC_Item.java (100%) rename {main => src/main}/java/gregtech/api/items/GT_CoolantCell_Item.java (100%) rename {main => src/main}/java/gregtech/api/items/GT_EnergyArmor_Item.java (100%) rename {main => src/main}/java/gregtech/api/items/GT_Generic_Block.java (100%) rename {main => src/main}/java/gregtech/api/items/GT_Generic_Item.java (100%) rename {main => src/main}/java/gregtech/api/items/GT_MetaBase_Item.java (100%) rename {main => src/main}/java/gregtech/api/items/GT_MetaGenerated_Item.java (100%) rename {main => src/main}/java/gregtech/api/items/GT_MetaGenerated_Item_X01.java (100%) rename {main => src/main}/java/gregtech/api/items/GT_MetaGenerated_Item_X32.java (100%) rename {main => src/main}/java/gregtech/api/items/GT_MetaGenerated_Tool.java (100%) rename {main => src/main}/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java (100%) rename {main => src/main}/java/gregtech/api/items/GT_RadioactiveCell_Item.java (100%) rename {main => src/main}/java/gregtech/api/items/GT_SolderingTool_Item.java (100%) rename {main => src/main}/java/gregtech/api/items/GT_Spray_Bug_Item.java (100%) rename {main => src/main}/java/gregtech/api/items/GT_Spray_Foam_Item.java (100%) rename {main => src/main}/java/gregtech/api/items/GT_Spray_Hardener_Item.java (100%) rename {main => src/main}/java/gregtech/api/items/GT_Spray_Hydration_Item.java (100%) rename {main => src/main}/java/gregtech/api/items/GT_Spray_Ice_Item.java (100%) rename {main => src/main}/java/gregtech/api/items/GT_Spray_Pepper_Item.java (100%) rename {main => src/main}/java/gregtech/api/items/GT_Tool_Item.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/BaseMetaTileEntity.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/BaseMetaTileEntityUE.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/BaseTileEntity.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/MetaPipeEntity.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/MetaTileEntity.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/examples/GT_MetaTileEntity_E_Furnace.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Frame.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull_NonElectric.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Steel.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicTank.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Dynamo.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Input.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_TieredMachineBlock.java (100%) rename {main => src/main}/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java (100%) rename {main => src/main}/java/gregtech/api/net/GT_Packet.java (100%) rename {main => src/main}/java/gregtech/api/net/GT_Packet_Block_Event.java (100%) rename {main => src/main}/java/gregtech/api/net/GT_Packet_Sound.java (100%) rename {main => src/main}/java/gregtech/api/net/GT_Packet_TileEntity.java (100%) rename {main => src/main}/java/gregtech/api/net/IGT_NetworkHandler.java (100%) rename {main => src/main}/java/gregtech/api/objects/ElementStack.java (100%) rename {main => src/main}/java/gregtech/api/objects/GT_ArrayList.java (100%) rename {main => src/main}/java/gregtech/api/objects/GT_CopiedBlockTexture.java (100%) rename {main => src/main}/java/gregtech/api/objects/GT_Cover_Default.java (100%) rename {main => src/main}/java/gregtech/api/objects/GT_Cover_None.java (100%) rename {main => src/main}/java/gregtech/api/objects/GT_Fluid.java (100%) rename {main => src/main}/java/gregtech/api/objects/GT_FluidStack.java (100%) rename {main => src/main}/java/gregtech/api/objects/GT_HashSet.java (100%) rename {main => src/main}/java/gregtech/api/objects/GT_ItemStack.java (100%) rename {main => src/main}/java/gregtech/api/objects/GT_MultiTexture.java (100%) rename {main => src/main}/java/gregtech/api/objects/GT_RenderedTexture.java (100%) rename {main => src/main}/java/gregtech/api/objects/GT_SidedTexture.java (100%) rename {main => src/main}/java/gregtech/api/objects/ItemData.java (100%) rename {main => src/main}/java/gregtech/api/objects/MaterialStack.java (100%) rename {main => src/main}/java/gregtech/api/threads/GT_Runnable_MachineBlockUpdate.java (100%) rename {main => src/main}/java/gregtech/api/threads/GT_Runnable_Sound.java (100%) rename {main => src/main}/java/gregtech/api/util/GT_BaseCrop.java (100%) rename {main => src/main}/java/gregtech/api/util/GT_CircuitryBehavior.java (100%) rename {main => src/main}/java/gregtech/api/util/GT_Config.java (100%) rename {main => src/main}/java/gregtech/api/util/GT_CoverBehavior.java (100%) rename {main => src/main}/java/gregtech/api/util/GT_CreativeTab.java (100%) rename {main => src/main}/java/gregtech/api/util/GT_FoodStat.java (100%) rename {main => src/main}/java/gregtech/api/util/GT_IBoxableWrapper.java (100%) rename {main => src/main}/java/gregtech/api/util/GT_ItsNotMyFaultException.java (100%) rename {main => src/main}/java/gregtech/api/util/GT_LanguageManager.java (100%) rename {main => src/main}/java/gregtech/api/util/GT_Log.java (100%) rename {main => src/main}/java/gregtech/api/util/GT_ModHandler.java (100%) rename {main => src/main}/java/gregtech/api/util/GT_OreDictUnificator.java (100%) rename {main => src/main}/java/gregtech/api/util/GT_PlayedSound.java (100%) rename {main => src/main}/java/gregtech/api/util/GT_Recipe.java (100%) rename {main => src/main}/java/gregtech/api/util/GT_RecipeRegistrator.java (100%) rename {main => src/main}/java/gregtech/api/util/GT_Shaped_Recipe.java (100%) rename {main => src/main}/java/gregtech/api/util/GT_Shapeless_Recipe.java (100%) rename {main => src/main}/java/gregtech/api/util/GT_SpawnEventHandler.java (100%) rename {main => src/main}/java/gregtech/api/util/GT_Utility.java (100%) rename {main => src/main}/java/gregtech/api/world/GT_Worldgen.java (100%) rename {main => src/main}/java/gregtech/api/world/GT_Worldgen_Boulder.java (100%) rename {main => src/main}/java/gregtech/api/world/GT_Worldgen_Ore.java (100%) rename {main => src/main}/java/gregtech/api/world/GT_Worldgen_Ore_Normal.java (100%) rename {main => src/main}/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock.java (100%) rename {main => src/main}/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock_UnderLava.java (100%) rename {main => src/main}/java/gregtech/common/GT_Client.java (100%) rename {main => src/main}/java/gregtech/common/GT_DummyWorld.java (100%) rename {main => src/main}/java/gregtech/common/GT_IteratorRandom.java (100%) rename {main => src/main}/java/gregtech/common/GT_MinableOreGenerator.java (100%) rename {main => src/main}/java/gregtech/common/GT_Network.java (100%) rename {main => src/main}/java/gregtech/common/GT_PlayerActivityLogger.java (100%) rename {main => src/main}/java/gregtech/common/GT_Proxy.java (100%) rename {main => src/main}/java/gregtech/common/GT_RecipeAdder.java (100%) rename {main => src/main}/java/gregtech/common/GT_Server.java (100%) rename {main => src/main}/java/gregtech/common/GT_ThaumcraftCompat.java (100%) rename {main => src/main}/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java (100%) rename {main => src/main}/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java (100%) rename {main => src/main}/java/gregtech/common/GT_Worldgen_Stone.java (100%) rename {main => src/main}/java/gregtech/common/GT_Worldgenerator.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Block_Casings1.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Block_Casings2.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Block_Casings3.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Block_Casings4.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Block_Casings_Abstract.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Block_Concretes.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Block_Granites.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Block_Machines.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Block_Ores.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Item_Casings1.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Item_Casings2.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Item_Casings3.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Item_Casings4.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Item_Concretes.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Item_Granites.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Item_Machines.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Item_Ores.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Item_Stones_Abstract.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Material_Casings.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Material_Machines.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_Packet_Ores.java (100%) rename {main => src/main}/java/gregtech/common/blocks/GT_TileEntity_Ores.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_Arm.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_Blastproof.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_ControlsWork.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_Conveyor.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_Crafting.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_DoesWork.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_Drain.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_EUMeter.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_EnergyOnly.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_ItemMeter.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_Lens.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_LiquidMeter.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_NeedMaintainance.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_PlayerDetector.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_Pump.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_RedstoneConductor.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_RedstoneReceiverExternal.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_RedstoneReceiverInternal.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_RedstoneSignalizer.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterExternal.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterInternal.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_RedstoneWirelessBase.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_Screen.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_Shutter.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_SolarPanel.java (100%) rename {main => src/main}/java/gregtech/common/covers/GT_Cover_Vent.java (100%) rename {main => src/main}/java/gregtech/common/entities/GT_Entity_Arrow.java (100%) rename {main => src/main}/java/gregtech/common/entities/GT_Entity_Arrow_Potion.java (100%) rename {main => src/main}/java/gregtech/common/gui/GT_Container_Boiler.java (100%) rename {main => src/main}/java/gregtech/common/gui/GT_Container_BronzeBlastFurnace.java (100%) rename {main => src/main}/java/gregtech/common/gui/GT_Container_ChestBuffer.java (100%) rename {main => src/main}/java/gregtech/common/gui/GT_Container_Filter.java (100%) rename {main => src/main}/java/gregtech/common/gui/GT_Container_QuantumChest.java (100%) rename {main => src/main}/java/gregtech/common/gui/GT_Container_Regulator.java (100%) rename {main => src/main}/java/gregtech/common/gui/GT_Container_SuperBuffer.java (100%) rename {main => src/main}/java/gregtech/common/gui/GT_Container_Teleporter.java (100%) rename {main => src/main}/java/gregtech/common/gui/GT_Container_TypeFilter.java (100%) rename {main => src/main}/java/gregtech/common/gui/GT_GUIContainer_Boiler.java (100%) rename {main => src/main}/java/gregtech/common/gui/GT_GUIContainer_BronzeBlastFurnace.java (100%) rename {main => src/main}/java/gregtech/common/gui/GT_GUIContainer_ChestBuffer.java (100%) rename {main => src/main}/java/gregtech/common/gui/GT_GUIContainer_Filter.java (100%) rename {main => src/main}/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java (100%) rename {main => src/main}/java/gregtech/common/gui/GT_GUIContainer_QuantumChest.java (100%) rename {main => src/main}/java/gregtech/common/gui/GT_GUIContainer_Regulator.java (100%) rename {main => src/main}/java/gregtech/common/gui/GT_GUIContainer_SuperBuffer.java (100%) rename {main => src/main}/java/gregtech/common/gui/GT_GUIContainer_Teleporter.java (100%) rename {main => src/main}/java/gregtech/common/gui/GT_GUIContainer_TypeFilter.java (100%) rename {main => src/main}/java/gregtech/common/items/GT_DepletetCell_Item.java (100%) rename {main => src/main}/java/gregtech/common/items/GT_FluidDisplayItem.java (100%) rename {main => src/main}/java/gregtech/common/items/GT_IntegratedCircuit_Item.java (100%) rename {main => src/main}/java/gregtech/common/items/GT_MetaGenerated_Item_01.java (100%) rename {main => src/main}/java/gregtech/common/items/GT_MetaGenerated_Item_02.java (100%) rename {main => src/main}/java/gregtech/common/items/GT_MetaGenerated_Item_03.java (100%) rename {main => src/main}/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java (100%) rename {main => src/main}/java/gregtech/common/items/GT_NeutronReflector_Item.java (100%) rename {main => src/main}/java/gregtech/common/items/GT_SensorCard_Item.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_Arrow.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_Arrow_Potion.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_Crowbar.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_DataOrb.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_DataStick.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_Hoe.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_Lighter.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_None.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_Plunger_Essentia.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_Plunger_Item.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_PrintedPages.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_Scanner.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_Scoop.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_Screwdriver.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_Sense.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_SensorKit.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_SoftHammer.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_Sonictron.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_Wrench.java (100%) rename {main => src/main}/java/gregtech/common/items/behaviors/Behaviour_WrittenBook.java (100%) rename {main => src/main}/java/gregtech/common/redstonecircuits/GT_Circuit_BasicLogic.java (100%) rename {main => src/main}/java/gregtech/common/redstonecircuits/GT_Circuit_BitAnd.java (100%) rename {main => src/main}/java/gregtech/common/redstonecircuits/GT_Circuit_CombinationLock.java (100%) rename {main => src/main}/java/gregtech/common/redstonecircuits/GT_Circuit_Equals.java (100%) rename {main => src/main}/java/gregtech/common/redstonecircuits/GT_Circuit_Pulser.java (100%) rename {main => src/main}/java/gregtech/common/redstonecircuits/GT_Circuit_Randomizer.java (100%) rename {main => src/main}/java/gregtech/common/redstonecircuits/GT_Circuit_RedstoneMeter.java (100%) rename {main => src/main}/java/gregtech/common/redstonecircuits/GT_Circuit_Repeater.java (100%) rename {main => src/main}/java/gregtech/common/redstonecircuits/GT_Circuit_Timer.java (100%) rename {main => src/main}/java/gregtech/common/render/GT_CapeRenderer.java (100%) rename {main => src/main}/java/gregtech/common/render/GT_MetaGenerated_Item_Renderer.java (100%) rename {main => src/main}/java/gregtech/common/render/GT_MetaGenerated_Tool_Renderer.java (100%) rename {main => src/main}/java/gregtech/common/render/GT_RenderUtil.java (100%) rename {main => src/main}/java/gregtech/common/render/GT_Renderer_Block.java (100%) rename {main => src/main}/java/gregtech/common/render/GT_Renderer_Entity_Arrow.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Filter.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_SuperBuffer.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Bronze.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Steel.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_FluidNaquadahReactor.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SolidNaquadahReactor.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Bronze.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_BronzeBricks.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Steel.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_SteelBricks.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Boxinator.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MonsterRepellent.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_PotionBrewer.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Printer.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Replicator.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_RockBreaker.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer1.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer2.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer3.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Bronze.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Steel.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Titanium.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_TungstenSteel.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Bronze.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Steel.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Bronze.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Steel.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Bronze.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_Locker.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumChest.java (100%) rename {main => src/main}/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumTank.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Axe.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_BranchCutter.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_ButcheryKnife.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_BuzzSaw.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Chainsaw_HV.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Chainsaw_LV.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Chainsaw_MV.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Crowbar.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Drill_HV.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Drill_LV.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Drill_MV.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_File.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_HardHammer.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Hoe.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_JackHammer.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Knife.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Mortar.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Pickaxe.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Plow.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Plunger.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_RollingPin.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Saw.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Scoop.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Screwdriver.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Screwdriver_LV.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Sense.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Shovel.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_SoftHammer.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Soldering_Iron.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Sword.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Turbine.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Turbine_Huge.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Turbine_Large.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Turbine_Normal.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Turbine_Small.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_UniversalSpade.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_WireCutter.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Wrench.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Wrench_HV.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Wrench_LV.java (100%) rename {main => src/main}/java/gregtech/common/tools/GT_Tool_Wrench_MV.java (100%) rename {main => src/main}/java/gregtech/loaders/load/GT_CoverBehaviorLoader.java (100%) rename {main => src/main}/java/gregtech/loaders/load/GT_FuelLoader.java (100%) rename {main => src/main}/java/gregtech/loaders/load/GT_ItemIterator.java (100%) rename {main => src/main}/java/gregtech/loaders/load/GT_SonictronLoader.java (100%) rename {main => src/main}/java/gregtech/loaders/misc/GT_Achievements.java (100%) rename {main => src/main}/java/gregtech/loaders/misc/GT_CoverLoader.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingAll.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingArrows.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingBattery.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingBeans.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingBlock.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingBolt.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingCell.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingCellPlasma.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingCircuit.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingCompressed.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingCrop.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingCrushedCentrifuged.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingCrushedPurified.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingDirty.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingDust.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingDustImpure.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingDustSmall.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingDustTiny.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingDye.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingFoil.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingFood.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingGear.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingGearSmall.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingGem.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingGemChipped.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingGemExquisite.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingGemFlawed.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingGemFlawless.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingIngot1.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingIngot2.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingIngot3.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingIngot4.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingIngot5.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingIngotHot.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingItem.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingLeaves.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingLens.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingLog.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingNugget.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingOre.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingOreSmelting.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingPipeLarge.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingPipeMedium.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingPipeRestrictive.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingPipeSmall.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingPlank.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingPlate1.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingPlate2.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingPlate3.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingPlate4.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingPlate5.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingPlate9.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingPlateAlloy.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingPure.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingSand.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingShaping.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingSlab.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingStick.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingStone.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingStoneCobble.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingStoneVarious.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingToolHeadArrow.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingToolHeadAxe.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingToolHeadBuzzSaw.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingToolHeadChainsaw.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingToolHeadDrill.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingToolHeadFile.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHammer.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHoe.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPickaxe.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPlow.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSaw.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSense.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingToolHeadShovel.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSword.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingToolHeadUniversalSpade.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingToolHeadWrench.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingWax.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingWire01.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingWire02.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingWire04.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingWire08.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingWire12.java (100%) rename {main => src/main}/java/gregtech/loaders/oreprocessing/ProcessingWire16.java (100%) rename {main => src/main}/java/gregtech/loaders/postload/GT_BlockResistanceLoader.java (100%) rename {main => src/main}/java/gregtech/loaders/postload/GT_BookAndLootLoader.java (100%) rename {main => src/main}/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java (100%) rename {main => src/main}/java/gregtech/loaders/postload/GT_CropLoader.java (100%) rename {main => src/main}/java/gregtech/loaders/postload/GT_ItemMaxStacksizeLoader.java (100%) rename {main => src/main}/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java (100%) rename {main => src/main}/java/gregtech/loaders/postload/GT_MinableRegistrator.java (100%) rename {main => src/main}/java/gregtech/loaders/postload/GT_RecyclerBlacklistLoader.java (100%) rename {main => src/main}/java/gregtech/loaders/postload/GT_ScrapboxDropLoader.java (100%) rename {main => src/main}/java/gregtech/loaders/postload/GT_UUMRecipeLoader.java (100%) rename {main => src/main}/java/gregtech/loaders/postload/GT_Worldgenloader.java (100%) rename {main => src/main}/java/gregtech/loaders/preload/GT_Loader_CircuitBehaviors.java (100%) rename {main => src/main}/java/gregtech/loaders/preload/GT_Loader_ItemData.java (100%) rename {main => src/main}/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java (100%) rename {main => src/main}/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java (100%) rename {main => src/main}/java/gregtech/loaders/preload/GT_Loader_OreDictionary.java (100%) rename {main => src/main}/java/gregtech/loaders/preload/GT_Loader_OreProcessing.java (100%) rename {main => src/main}/java/gregtech/nei/GT_NEI_DefaultHandler.java (100%) rename {main => src/main}/java/gregtech/nei/NEI_GT_Config.java (100%) rename {main => src/main}/pack.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/lang/en_US.lang (100%) rename {main => src/main}/resources/assets/gregtech/lang/zh_CN.lang (100%) rename {main => src/main}/resources/assets/gregtech/textures/BrainTechCape.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/GregTechCape.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/GregoriusCape.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/LogoGTI_Long.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/MrBrainCape.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/aspects/ELECTRUM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/aspects/MAGNETO.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/aspects/NEBRISUM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/aspects/RADIO.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/aspects/STRONTIO.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_FRONT_ACTIVE.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_SIDE_ACTIVE.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_TOP_ACTIVE.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_FRONT_ACTIVE.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_FRONT_ACTIVE.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_TOP_ACTIVE.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_FRONT_ACTIVE.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_SIDE_ACTIVE.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_TOP_ACTIVE.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_TOP_ACTIVE.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_FRONT_ACTIVE.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.air.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.berylium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.berylium.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.bioethanol.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.bioethanol.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.biomass.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.biomass.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.calcium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.calcium.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.calciumcarbonate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.calciumcarbonate.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.chlorine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.chlorine.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.creosote.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.creosote.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.deuterium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.dyes.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.dyes.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.fieryblood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.fieryblood.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.fishoil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.fishoil.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.fluorine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.fluorine.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.for.honey.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.for.honey.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.fuel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.fuel.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.gas_natural_gas.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.glue.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.glue.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.glyceryl.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.glyceryl.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.helium-3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.helium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.heliumplasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.heliumplasma.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.holywater.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.holywater.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.hotfryingoil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.hotfryingoil.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.hydrogen.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.ice.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.ice.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.indigo.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.indigo.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_extra_heavy_oil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_extra_heavy_oil.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_heavy_oil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_heavy_oil.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_light_oil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_light_oil.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_medium_oil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_medium_oil.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.lithium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.lithium.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.lubricant.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.lubricant.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.mcguffium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.mcguffium.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.mercury.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.mercury.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.methane.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.milk.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.milk.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.autogenerated.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.autogenerated.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.blaze.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.blaze.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.concrete.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.concrete.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.glass.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.glass.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.redstone.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.redstone.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrocoalfuel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrocoalfuel.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrofuel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrofuel.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrogen.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrogendioxide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrogenplasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrogenplasma.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.oil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.oil.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.oxygen.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.plasma.autogenerated.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.plasma.autogenerated.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potassium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potassium.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.alcopops.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.alcopops.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.applejuice.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.applejuice.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.awkward.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.awkward.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.beer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.beer.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cafeaulait.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cafeaulait.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cavejohnsonsgrenadejuice.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cavejohnsonsgrenadejuice.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.chillysauce.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.chillysauce.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.chocolatemilk.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.chocolatemilk.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cider.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cider.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.coffee.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.coffee.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.strong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.strong.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.strong.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.strong.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkbeer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkbeer.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkcafeaulait.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkcafeaulait.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkchocolatemilk.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkchocolatemilk.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkcoffee.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkcoffee.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diablosauce.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diablosauce.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diablosauce.strong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diablosauce.strong.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diabolosauce.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diabolosauce.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.dragonblood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.dragonblood.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.long.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.long.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.long.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.long.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.glenmckenner.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.glenmckenner.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.goldenapplejuice.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.goldenapplejuice.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.goldencider.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.goldencider.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.grapejuice.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.grapejuice.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.strong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.strong.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.strong.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.strong.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.hopsjuice.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.hopsjuice.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.hotsauce.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.hotsauce.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.icetea.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.icetea.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.idunsapplejuice.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.idunsapplejuice.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.long.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.long.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.long.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.long.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.laitaucafe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.laitaucafe.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.lemonade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.lemonade.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.lemonjuice.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.lemonjuice.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.leninade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.leninade.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.limoncello.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.limoncello.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.mineralwater.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.mineralwater.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.mundane.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.mundane.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.long.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.long.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.long.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.long.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.notchesbrew.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.notchesbrew.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.piratebrew.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.piratebrew.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.long.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.long.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.long.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.long.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.strong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.strong.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.strong.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.strong.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.potatojuice.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.potatojuice.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.purpledrink.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.purpledrink.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.reedwater.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.reedwater.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.long.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.long.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.long.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.long.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.strong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.strong.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.strong.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.strong.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.rum.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.rum.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.saltywater.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.saltywater.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.scotch.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.scotch.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.long.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.long.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.long.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.long.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.long.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.long.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.long.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.long.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.strong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.strong.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.strong.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.strong.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.long.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.long.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.long.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.long.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.strong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.strong.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.strong.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.strong.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.sweettea.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.sweettea.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.tea.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.tea.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.thick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.thick.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.vinegar.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.vinegar.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.vodka.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.vodka.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.long.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.long.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.long.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.long.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.long.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.long.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.long.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.long.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.splash.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.splash.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wheatyhopsjuice.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wheatyhopsjuice.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wheatyjuice.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wheatyjuice.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wine.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.seedoil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.seedoil.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.silicon.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.silicon.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.sodium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.sodium.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.sodiumpersulfate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.sodiumpersulfate.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.squidink.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.squidink.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.steam.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.steam.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.sulfuricacid.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.sulfuricacid.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.tritium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.uuamplifier.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.uuamplifier.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.wolframium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/fluids/fluid.wolframium.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/ARROW_DOWN.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/ARROW_LEFT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/ARROW_RIGHT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/ARROW_UP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_CHESTBUFFER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_FILTER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_REGULATOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_SUPERBUFFER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_TYPEFILTER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/BASALT_BRICKS.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/BASALT_BRICKS_CHISELED.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/BASALT_BRICKS_CRACKED.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/BASALT_BRICKS_MOSSY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/BASALT_COBBLE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/BASALT_COBBLE_MOSSY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/BASALT_SMOOTH.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/BASALT_STONE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/BOILER_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/BOILER_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/BOILER_FRONT_ACTIVE.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/BOILER_LAVA_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/BOILER_LAVA_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/BOILER_LAVA_FRONT_ACTIVE.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/BOILER_SOLAR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/CFOAM_FRESH.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/CFOAM_HARDENED.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_BRICKS.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_BRICKS_CHISELED.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_BRICKS_CRACKED.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_BRICKS_MOSSY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_COBBLE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_COBBLE_MOSSY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_SMOOTH.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_STONE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_BRICKS.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_BRICKS_CHISELED.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_BRICKS_CRACKED.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_BRICKS_MOSSY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_COBBLE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_COBBLE_MOSSY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_SMOOTH.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_STONE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/COVER_WOOD_PLATE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_BACK.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_BACK_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_TOP_ACTIVE.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_10.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_11.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_12.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_9.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_10.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_11.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_12.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_9.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_BACK.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_BACK_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_BRICKS.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_BRICKS_CHISELED.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_BRICKS_CRACKED.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_BRICKS_MOSSY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_COBBLE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_COBBLE_MOSSY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_SMOOTH.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_STONE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_BRICKS.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_BRICKS_CHISELED.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_BRICKS_CRACKED.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_BRICKS_MOSSY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_COBBLE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_COBBLE_MOSSY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_SMOOTH.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_STONE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_FULL.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_HUGE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_LARGE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_MEDIUM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_SMALL.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_TINY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE9.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE1.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE2.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE3.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE4.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE5.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE6.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE7.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE8.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE9.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE9.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_8V_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_8V_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_8V_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBLASTFURNACE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBLASTFURNACE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBRICKS_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBRICKS_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBRICKS_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEPLATEDBRICKS.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZE_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZE_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZE_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_ACIDHAZARD.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_ASSEMBLER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_BIOHAZARD.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_CLEAN_STAINLESSSTEEL.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_CONTAINMENT_FIELD.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_DATA_DRIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_DRAGONEGG.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_EXPLOSIONHAZARD.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREBOX_BRONZE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREBOX_STEEL.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREBOX_TITANIUM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREBOX_TUNGSTENSTEEL.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREHAZARD.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FROSTHAZARD.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FROST_PROOF.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION_2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION_COIL.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION_GLASS.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION_GLASS_YELLOW.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GEARBOX_BRONZE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GEARBOX_STEEL.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GEARBOX_TITANIUM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GEARBOX_TUNGSTENSTEEL.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GRATE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGIC.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGICHAZARD.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGIC_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGIC_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGIC_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MOTOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_NOISEHAZARD.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PIPE_BRONZE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PIPE_STEEL.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PIPE_TITANIUM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PIPE_TUNGSTENSTEEL.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PROCESSOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PUMP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_RADIATIONPROOF.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_RADIOACTIVEHAZARD.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_ROBUST_TUNGSTENSTEEL.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_SOLID_STEEL.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_STABLE_TITANIUM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_STRIPES_A.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_STRIPES_B.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_TURBINE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_VENT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_COIL_CUPRONICKEL.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_COIL_KANTHAL.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_COIL_NICHROME.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_COIL_SUPERCONDUCTOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_EV_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_EV_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_EV_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_HEATPROOFCASING.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_HV_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_HV_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_HV_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_IV_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_IV_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_IV_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LV_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LV_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LV_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LuV_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LuV_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LuV_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MAX_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MAX_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MAX_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MV_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MV_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MV_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEELBRICKS_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEELBRICKS_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEELBRICKS_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEEL_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEEL_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEEL_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_UV_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_UV_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_UV_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_ZPM_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_ZPM_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_ZPM_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_BRICKS.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_BRICKS_CHISELED.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_BRICKS_CRACKED.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_BRICKS_MOSSY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_COBBLE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_COBBLE_MOSSY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_SMOOTH.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_STONE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_BACK.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_BACK_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_BACK.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_BACK_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ACTIVITYDETECTOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ADV_PUMP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ARM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ARM.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_BOXINATOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_BOXINATOR_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_DISASSEMBLER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_DISASSEMBLER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_MASSFAB.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_MASSFAB_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_POTIONBREWER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_POTIONBREWER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_REPLICATOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_REPLICATOR_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_ROCK_BREAKER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_ROCK_BREAKER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_SCANNER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_SCANNER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_COMPRESSOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_COMPRESSOR_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_EXTRACTOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_EXTRACTOR_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_FURNACE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_FURNACE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_HAMMER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_HAMMER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_MACERATOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_MACERATOR_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CLOSET.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CONTROLLER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CONVEYOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CONVEYOR.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CRAFTING.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_DRAIN.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_DUCTTAPE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGYDETECTOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_IN.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_IN_MULTI.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_OUT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_OUT_MULTI.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FLUIDDETECTOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_BOXINATOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_BOXINATOR_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_DISASSEMBLER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_DISASSEMBLER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_IMPLOSION_COMPRESSOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_IMPLOSION_COMPRESSOR_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_LARGE_BOILER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_LARGE_BOILER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_MASSFAB.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_MASSFAB_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_MULTI_SMELTER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_MULTI_SMELTER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_POTIONBREWER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_POTIONBREWER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_REPLICATOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_REPLICATOR_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_REPLICATOR_ACTIVE.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ROCK_BREAKER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ROCK_BREAKER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ROCK_BREAKER_ACTIVE.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_SCANNER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_SCANNER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_ALLOY_SMELTER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_ALLOY_SMELTER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_COMPRESSOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_COMPRESSOR_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_EXTRACTOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_EXTRACTOR_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_FURNACE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_FURNACE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_HAMMER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_HAMMER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_MACERATOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_MACERATOR_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_VACUUM_FREEZER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION1.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION2.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION3.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ITEMDETECTOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LENS.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_000.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_001.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_002.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_003.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_004.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_005.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_006.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_007.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_008.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_009.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_010.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_011.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_012.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_013.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MAINTENANCE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MUFFLER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PIPE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PIPE_IN.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PIPE_OUT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PUMP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PUMP.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_QCHEST.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_QCHEST.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_QTANK.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_QTANK.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SCREEN.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SCREEN.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SHUTTER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_BOXINATOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_BOXINATOR_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_DISASSEMBLER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_DISASSEMBLER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_MASSFAB.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_MASSFAB_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_POTIONBREWER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_POTIONBREWER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_REPLICATOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_REPLICATOR_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_ROCK_BREAKER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_ROCK_BREAKER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_SCANNER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_SCANNER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_ALLOY_SMELTER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_ALLOY_SMELTER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_COMPRESSOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_COMPRESSOR_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_EXTRACTOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_EXTRACTOR_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_FURNACE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_FURNACE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_HAMMER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_HAMMER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_MACERATOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_MACERATOR_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TELEPORTER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TELEPORTER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_BOXINATOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_BOXINATOR_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_DISASSEMBLER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_DISASSEMBLER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_MASSFAB.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_MASSFAB_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_POTIONBREWER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_POTIONBREWER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_REPLICATOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_REPLICATOR_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_ROCK_BREAKER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_ROCK_BREAKER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_SCANNER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_SCANNER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_ALLOY_SMELTER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_ALLOY_SMELTER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_COMPRESSOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_COMPRESSOR_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_EXTRACTOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_EXTRACTOR_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_FURNACE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_FURNACE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_HAMMER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_HAMMER_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_MACERATOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_MACERATOR_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_MACERATOR_ACTIVE.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/RENDERING_ERROR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_8V.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_EV.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_HV.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_IV.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_LV.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_LuV.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_MV.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_UV.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_ZPM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_BACK.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_BACK_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_BOTTOM.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_BOTTOM_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_FRONT.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_FRONT_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_SIDE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_SIDE_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_TOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_TOP_ACTIVE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/VENT_ADVANCED.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/VENT_ADVANCED.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/VENT_NORMAL.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/VENT_NORMAL.png.mcmeta (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/iconsets/VOID.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DULL/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DULL/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DULL/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DULL/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DULL/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DULL/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DULL/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DULL/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DULL/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DULL/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DULL/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/DULL/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FIERY/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FIERY/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FIERY/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FIERY/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FIERY/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FIERY/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FINE/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FINE/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FINE/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FINE/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FINE/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FINE/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FINE/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FINE/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FINE/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FINE/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FINE/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FINE/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLINT/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLINT/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLINT/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLINT/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLINT/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLINT/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLUID/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLUID/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLUID/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLUID/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLUID/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/FLUID/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GLASS/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GLASS/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GLASS/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GLASS/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GLASS/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/GLASS/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LEAF/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LEAF/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LEAF/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LEAF/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LEAF/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LEAF/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NONE/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NONE/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NONE/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NONE/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NONE/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NONE/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NONE/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NONE/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NONE/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NONE/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NONE/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/NONE/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/OPAL/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/OPAL/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/OPAL/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/OPAL/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/OPAL/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/OPAL/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/PAPER/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/PAPER/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/PAPER/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/PAPER/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/PAPER/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/PAPER/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/POWDER/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/POWDER/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/POWDER/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/POWDER/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/POWDER/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/POWDER/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/RUBY/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/RUBY/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/RUBY/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/RUBY/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/RUBY/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/RUBY/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SAND/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SAND/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SAND/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SAND/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SAND/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SAND/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SAND/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SAND/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SAND/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SAND/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SAND/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SAND/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHINY/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHINY/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHINY/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHINY/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHINY/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/SHINY/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/WOOD/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/WOOD/frameGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/WOOD/ore.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/WOOD/oreSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeHuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeLarge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeMedium.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeSide.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/WOOD/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/WOOD/wire.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/copy_into_all.bat (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/copy_into_dull.bat (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/copy_into_gems.bat (100%) rename {main => src/main}/resources/assets/gregtech/textures/blocks/materialicons/copy_into_shiny.bat (100%) rename {main => src/main}/resources/assets/gregtech/textures/entity/arrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/entity/arrow_potions.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/1by1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/2by2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/3by3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/4by4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/AdvancedCraftingTable.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/BasicTank.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/BronzeBlastFurnace.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/BronzeBoiler.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/BronzeCraftingTable.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/ChestBuffer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/ComputerCubeRedstone.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/CropHarvestor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/ElectricAutoWorkbench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/ElectricBufferSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/ElectricItemCleaner.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/Filter.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/FusionComputer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/Implosion.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/InventoryManager.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/MagicAbsorber.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/Maintenance.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/RedstoneCircuitBlock.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/Regulator.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/Retriever.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/Safe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/SolarBoiler.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/Sonictron.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/SteelBoiler.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/SuperBuffer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/Teleporter.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/Tradeomat_Inventory.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/Tradeomat_Main.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/Tradeomat_Settings.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/TypeFilter.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/AlloySmelter.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Amplifabricator.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/ArcFurnace.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Assembler.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Autoclave.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Bender.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/BronzeAlloySmelter.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/BronzeCompressor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/BronzeExtractor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/BronzeFurnace.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/BronzeHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/BronzeMacerator.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Canner.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Centrifuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/ChemicalBath.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/ChemicalReactor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Compressor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Cutter.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Default.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Disassembler.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Distillery.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/E_Furnace.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/E_Oven.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Electrolyzer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/ElectromagneticSeparator.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Extractor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Extruder.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Fermenter.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/FluidCanner.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/FluidCannerNEI.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/FluidExtractor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/FluidHeater.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/FluidSolidifier.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Hammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/LaserEngraver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Lathe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Macerator1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Macerator2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Macerator3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Macerator4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Massfabricator.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Mixer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/OreWasher.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Packager.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/PlasmaArcFurnace.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Polarizer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/PotionBrewer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Press.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Printer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Recycler.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Replicator.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/RockBreaker.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Scanner.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Sifter.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Slicer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/SteelAlloySmelter.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/SteelCompressor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/SteelExtractor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/SteelFurnace.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/SteelHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/SteelMacerator.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/ThermalCentrifuge.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Unpackager.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/basicmachines/Wiremill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/multimachines/ElectricBlastFurnace.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/multimachines/FusionComputer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/multimachines/ImplosionCompressor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/multimachines/LargeBoiler.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/multimachines/MultiFurnace.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/multimachines/MultiblockDisplay.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/multimachines/VacuumFreezer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/gui/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.180k_Helium_Coolantcell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.180k_NaK_Coolantcell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.360k_Helium_Coolantcell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.360k_NaK_Coolantcell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.60k_Helium_Coolantcell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.60k_NaK_Coolantcell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.Double_Thoriumcell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.Double_ThoriumcellDep.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.Quad_Thoriumcell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.Quad_ThoriumcellDep.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.Thoriumcell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.ThoriumcellDep.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.integrated_circuit.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/0.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/10.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/100.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/101.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/11.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/13.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/14.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/15.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/16.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/200.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/201.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/202.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/203.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/204.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/205.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/206.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/207.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/208.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/225.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/226.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/227.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/228.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/229.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/230.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/231.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/232.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/233.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/250.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/251.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/252.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/253.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/254.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/255.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/256.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/257.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/258.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/300.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/301.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/302.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/303.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/304.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/305.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/306.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/307.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/308.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/309.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/310.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/311.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/312.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/313.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/314.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/315.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/316.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/317.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/350.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/351.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/352.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/353.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/354.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/355.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/356.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/357.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/358.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/359.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/360.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/361.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/362.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/363.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/364.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/365.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/366.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/367.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/368.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/369.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/370.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/371.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/372.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/373.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/398.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/399.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/400.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/401.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/402.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/403.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/404.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/405.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/406.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/430.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/431.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/432.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/433.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/434.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/435.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/436.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/437.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/438.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/439.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/440.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/441.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/442.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/443.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/444.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/445.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/446.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/447.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/448.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/449.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/450.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/451.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/452.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/453.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/454.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/455.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/456.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/457.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/458.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/459.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/460.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/461.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/462.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/463.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/464.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/471.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/472.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/473.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/474.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/475.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/476.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/477.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/478.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/479.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/480.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/481.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/482.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/483.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/484.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/485.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/486.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/487.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/488.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/489.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/490.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/491.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/495.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/496.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/497.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/498.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/499.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/500.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/501.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/502.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/510.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/510/1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/510/2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/510/3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/510/4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/510/5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/510/6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/510/7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/510/8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/511.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/511/1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/511/2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/511/3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/511/4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/511/5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/511/6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/511/7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/511/8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/517.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/517/1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/517/2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/517/3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/517/4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/517/5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/517/6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/517/7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/517/8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/518.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/518/1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/518/2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/518/3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/518/4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/518/5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/518/6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/518/7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/518/8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/519.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/519/1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/519/2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/519/3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/519/4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/519/5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/519/6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/519/7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/519/8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/520.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/520/1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/520/2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/520/3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/520/4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/520/5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/520/6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/520/7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/520/8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/521.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/521/1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/521/2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/521/3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/521/4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/521/5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/521/6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/521/7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/521/8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/527.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/527/1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/527/2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/527/3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/527/4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/527/5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/527/6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/527/7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/527/8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/528.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/528/1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/528/2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/528/3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/528/4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/528/5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/528/6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/528/7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/528/8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/529.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/529/1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/529/2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/529/3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/529/4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/529/5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/529/6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/529/7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/529/8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/530.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/530/1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/530/2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/530/3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/530/4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/530/5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/530/6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/530/7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/530/8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/531.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/531/1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/531/2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/531/3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/531/4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/531/5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/531/6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/531/7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/531/8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/537.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/537/1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/537/2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/537/3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/537/4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/537/5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/537/6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/537/7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/537/8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/538.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/538/1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/538/2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/538/3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/538/4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/538/5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/538/6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/538/7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/538/8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/539.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/539/1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/539/2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/539/3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/539/4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/539/5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/539/6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/539/7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/539/8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/597.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/597/1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/597/2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/597/3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/597/4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/597/5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/597/6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/597/7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/597/8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/598.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/598/1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/598/2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/598/3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/598/4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/598/5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/598/6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/598/7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/598/8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/599.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/599/1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/599/2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/599/3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/599/4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/599/5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/599/6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/599/7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/599/8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/600.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/601.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/602.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/603.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/604.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/605.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/605/1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/605/2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/605/3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/605/4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/605/5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/605/6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/605/7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/605/8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/610.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/611.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/612.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/613.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/614.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/630.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/631.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/632.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/633.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/634.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/640.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/641.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/642.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/643.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/644.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/650.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/651.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/652.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/653.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/654.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/660.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/661.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/662.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/663.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/664.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/670.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/671.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/672.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/673.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/674.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/680.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/681.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/682.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/683.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/684.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/690.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/691.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/692.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/693.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/694.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/700.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/701.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/702.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/703.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/704.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/705.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/706.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/707.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/708.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/710.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/711.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/712.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/713.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/714.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/715.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/716.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/717.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/718.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/721.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/722.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/723.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/727.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/728.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/729.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/730.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/731.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/732.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/733.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/734.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/735.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/740.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/741.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/742.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/744.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/745.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/746.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/747.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/748.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/749.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/750.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/751.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/752.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/753.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/754.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/755.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/756.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/757.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/758.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/759.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/760.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/761.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/762.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/763.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/764.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/765.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.01/9.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/0.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/100.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/101.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/102.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/103.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/104.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/105.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/106.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/107.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/108.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/109.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/110.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/111.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/112.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/113.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/114.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/115.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/116.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/117.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/118.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/119.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/120.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/121.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/122.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/123.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/124.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/125.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/126.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/127.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/128.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/129.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/130.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/131.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/132.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/133.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/134.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/135.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/136.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/137.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/200.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/201.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/202.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/203.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/204.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/205.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/206.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/207.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/208.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/209.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/210.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/211.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/212.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/213.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/214.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/220.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/221.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/222.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/223.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/224.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/230.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/231.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/232.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/233.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/234.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/240.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/241.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/242.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/243.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/244.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/250.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/251.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/252.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/260.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/261.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/262.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/410.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/414.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/415.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/416.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/417.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/418.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/419.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/420.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/421.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/422.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/423.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/424.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/425.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/426.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/427.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/428.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/429.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/470.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/471.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/472.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/473.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/474.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/475.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/476.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/477.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/478.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/479.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/480.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/481.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/482.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/483.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/484.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/485.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/486.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/487.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/488.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/489.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/490.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/491.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/492.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/493.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/494.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/495.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/496.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/497.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/498.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/499.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/500.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/501.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/502.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/503.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/504.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/505.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/510.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/511.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/520.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/530.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/540.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/550.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/551.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/552.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/553.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/554.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/555.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/556.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/558.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/559.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/560.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/561.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/562.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/563.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/564.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/565.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/566.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/567.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/568.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/569.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/570.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/571.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/572.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/573.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/574.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/576.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/766.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.metaitem.02/9.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.neutronreflector.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/gt.sensorcard.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/BUTCHERYKNIFE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/BUTCHERYKNIFE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/CROWBAR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/CROWBAR_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_0.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_0_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_1_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_2_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_3_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_4_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_5_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_6_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_7_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_8_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_0.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_0_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_1.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_1_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_2.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_2_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_3.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_3_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_4.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_4_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_5.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_5_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_6.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_6_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_7.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_7_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_8.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_8_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/GRAFTER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/GRAFTER_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/HANDLE_BUZZSAW.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/HANDLE_BUZZSAW_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/HANDLE_ELECTRIC_SCREWDRIVER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/HANDLE_ELECTRIC_SCREWDRIVER_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/HANDLE_FILE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/HANDLE_FILE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/HANDLE_SAW.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/HANDLE_SAW_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/HANDLE_SCREWDRIVER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/HANDLE_SCREWDRIVER_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/HANDLE_SOLDERING.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/HANDLE_SOLDERING_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/HANDLE_SWORD.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/HANDLE_SWORD_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/JACKHAMMER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/JACKHAMMER_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/KNIFE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/KNIFE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/MORTAR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/MORTAR_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/PLUNGER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/PLUNGER_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_HV.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_HV_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_LV.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_LV_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_MV.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_MV_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/RENDERING_ERROR.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/RENDERING_ERROR_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/ROLLING_PIN.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/ROLLING_PIN_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/SCOOP.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/SCOOP_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/SICKLE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/SICKLE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/TURBINE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/TURBINE_HUGE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/TURBINE_HUGE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/TURBINE_LARGE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/TURBINE_LARGE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/TURBINE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/TURBINE_SMALL.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/TURBINE_SMALL_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/VOID.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/VOID_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/WIRE_CUTTER.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/WIRE_CUTTER_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/WRENCH.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/iconsets/WRENCH_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DIAMOND/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/DULL/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/EMERALD/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FIERY/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FINE/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLINT/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/FLUID/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/GLASS/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LAPIS/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LEAF/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/LIGNITE/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/METALLIC/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/NONE/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/OPAL/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/PAPER/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/POWDER/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/QUARTZ/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/ROUGH/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/RUBY/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SAND/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHARDS/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/SHINY/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/TURBINE_BLADE.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/TURBINE_BLADE_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/arrowGtPlastic.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/arrowGtPlastic_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/arrowGtWood.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/arrowGtWood_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/bolt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/bolt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/cell.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/cellPlasma.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/cellPlasma_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/cell_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtDust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtDust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtGem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtGem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtIngot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtIngot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtPlate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtPlate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/crushed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/crushedCentrifuged.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/crushedCentrifuged_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/crushedPurified.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/crushedPurified_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/crushed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/dust.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/dustImpure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/dustImpure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/dustPure.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/dustPure_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/dustSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/dustSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/dustTiny.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/dustTiny_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/dust_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/foil.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/foil_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/gearGt.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/gearGtSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/gearGtSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/gearGt_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/gem.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/gemChipped.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/gemChipped_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/gemExquisite.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/gemExquisite_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/gemFlawed.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/gemFlawed_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/gemFlawless.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/gemFlawless_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/gem_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/ingot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotHot.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotHot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/ingot_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/lens.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/lens_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/nugget.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/nugget_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/plate.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/plateDense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/plateDense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/plateDouble.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/plateDouble_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/plateQuadruple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/plateQuadruple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/plateQuintuple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/plateQuintuple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/plateTriple.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/plateTriple_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/plate_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/ring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/ring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/rotor.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/rotor_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/round.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/round_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/screw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/screw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/spring.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/springSmall.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/springSmall_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/spring_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/stick.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/stickLong.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/stickLong_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/stick_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadArrow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadArrow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadAxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadAxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadBuzzSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadBuzzSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadChainsaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadChainsaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadDrill.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadDrill_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadFile.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadFile_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadHammer.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadHammer_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadHoe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadHoe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadPickaxe.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadPickaxe_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadPlow.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadPlow_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSaw.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSaw_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadScrewdriver.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadScrewdriver_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSense.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSense_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadShovel.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadShovel_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSoldering.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSoldering_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSword.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSword_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadUniversalSpade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadUniversalSpade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadWrench.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadWrench_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/turbineBlade.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/turbineBlade_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/void.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/void_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/wireFine.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/WOOD/wireFine_OVERLAY.png (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/copy_into_all.bat (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/copy_into_dull.bat (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/copy_into_gems.bat (100%) rename {main => src/main}/resources/assets/gregtech/textures/items/materialicons/copy_into_shiny.bat (100%) rename {main => src/main}/resources/assets/ic2/sounds.json (100%) rename {main => src/main}/resources/assets/ic2/sounds/BatteryUse.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/ChainsawIdle.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/ChainsawStop.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/ChainsawUseOne.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/ChainsawUseTwo.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/CompressorOp.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/DrillHard.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/DrillSoft.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/DrillUseLoop.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/Dynamiteomote.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/ElectroFurnaceLoop.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/ExtractorOp.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/HelmetLoop.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/InductionLoop.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/InsulationCutters.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/InterruptOne.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/IronFurnaceOp.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/JetpackFire.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/JetpackLoop.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/KaChing.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/MaceratorOp.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/MachineOverload.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/MagnetizerLoop.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/MinerOp.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/MiningLaser.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/MiningLaserExplosive.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/MiningLaserLongRange.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/MiningLaserLowFocus.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/MiningLaserScatter.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/NanosabreIdle.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/NanosabrePowerup.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/NanosabreSwing1.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/NanosabreSwing2.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/NanosabreSwing3.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/NukeExplosion.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/ODScanner.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/Painter.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/PumpOp.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/QuantumsuitBoots.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/RecyclerOp.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/RubberTrampoline.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/Treetap.ogg (100%) rename {main => src/main}/resources/assets/ic2/sounds/Wrench.ogg (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Argentia.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Argentia.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Argentia.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Argentia.4.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Blazereed.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Blazereed.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Blazereed.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Blazereed.4.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Bobsyeruncleranks.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Bobsyeruncleranks.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Bobsyeruncleranks.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Bobsyeruncleranks.4.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Brown Mushrooms.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Brown Mushrooms.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Brown Mushrooms.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Coppon.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Coppon.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Coppon.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.4.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Corpseplant.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Corpseplant.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Corpseplant.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Corpseplant.4.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Creeperweed.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Creeperweed.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Creeperweed.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Creeperweed.4.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Diareed.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Diareed.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Diareed.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Diareed.4.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Eggplant.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Eggplant.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Eggplant.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Enderbloom.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Enderbloom.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Enderbloom.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Enderbloom.4.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Flax.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Flax.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Flax.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Flax.4.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Indigo.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Indigo.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Indigo.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Indigo.4.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Liveroots.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Liveroots.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Liveroots.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Liveroots.4.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Meatrose.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Meatrose.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Meatrose.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Meatrose.4.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Milkwart.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Milkwart.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Milkwart.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Oilberries.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Oilberries.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Oilberries.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Oilberries.4.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Plumbilia.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Plumbilia.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Plumbilia.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Plumbilia.4.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Red Mushrooms.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Red Mushrooms.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Red Mushrooms.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Slimeplant.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Slimeplant.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Slimeplant.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Slimeplant.4.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Spidernip.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Spidernip.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Spidernip.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Spidernip.4.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Steeleafranks.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Steeleafranks.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Steeleafranks.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Steeleafranks.4.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Tearstalks.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Tearstalks.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Tearstalks.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Tearstalks.4.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Tine.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Tine.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Tine.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Withereed.1.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Withereed.2.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Withereed.3.png (100%) rename {main => src/main}/resources/assets/ic2/textures/blocks/crop/blockCrop.Withereed.4.png (100%) rename {main => src/main}/resources/assets/minecraft/textures/models/armor/cloakingdevice_layer_1.png (100%) rename {main => src/main}/resources/assets/minecraft/textures/models/armor/lapotronpack_layer_1.png (100%) rename {main => src/main}/resources/assets/minecraft/textures/models/armor/lithiumbatpack_layer_1.png (100%) rename {main => src/main}/resources/mcmod.info (100%) diff --git a/main/META-INF/MANIFEST.MF b/src/main/META-INF/MANIFEST.MF similarity index 100% rename from main/META-INF/MANIFEST.MF rename to src/main/META-INF/MANIFEST.MF diff --git a/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java similarity index 100% rename from main/java/gregtech/GT_Mod.java rename to src/main/java/gregtech/GT_Mod.java diff --git a/main/java/gregtech/api/GregTech_API.java b/src/main/java/gregtech/api/GregTech_API.java similarity index 100% rename from main/java/gregtech/api/GregTech_API.java rename to src/main/java/gregtech/api/GregTech_API.java diff --git a/main/java/gregtech/api/damagesources/GT_DamageSources.java b/src/main/java/gregtech/api/damagesources/GT_DamageSources.java similarity index 100% rename from main/java/gregtech/api/damagesources/GT_DamageSources.java rename to src/main/java/gregtech/api/damagesources/GT_DamageSources.java diff --git a/main/java/gregtech/api/enchants/Enchantment_EnderDamage.java b/src/main/java/gregtech/api/enchants/Enchantment_EnderDamage.java similarity index 100% rename from main/java/gregtech/api/enchants/Enchantment_EnderDamage.java rename to src/main/java/gregtech/api/enchants/Enchantment_EnderDamage.java diff --git a/main/java/gregtech/api/enchants/Enchantment_Radioactivity.java b/src/main/java/gregtech/api/enchants/Enchantment_Radioactivity.java similarity index 100% rename from main/java/gregtech/api/enchants/Enchantment_Radioactivity.java rename to src/main/java/gregtech/api/enchants/Enchantment_Radioactivity.java diff --git a/main/java/gregtech/api/enums/ConfigCategories.java b/src/main/java/gregtech/api/enums/ConfigCategories.java similarity index 100% rename from main/java/gregtech/api/enums/ConfigCategories.java rename to src/main/java/gregtech/api/enums/ConfigCategories.java diff --git a/main/java/gregtech/api/enums/Dyes.java b/src/main/java/gregtech/api/enums/Dyes.java similarity index 100% rename from main/java/gregtech/api/enums/Dyes.java rename to src/main/java/gregtech/api/enums/Dyes.java diff --git a/main/java/gregtech/api/enums/Element.java b/src/main/java/gregtech/api/enums/Element.java similarity index 100% rename from main/java/gregtech/api/enums/Element.java rename to src/main/java/gregtech/api/enums/Element.java diff --git a/main/java/gregtech/api/enums/GT_Values.java b/src/main/java/gregtech/api/enums/GT_Values.java similarity index 100% rename from main/java/gregtech/api/enums/GT_Values.java rename to src/main/java/gregtech/api/enums/GT_Values.java diff --git a/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java similarity index 100% rename from main/java/gregtech/api/enums/ItemList.java rename to src/main/java/gregtech/api/enums/ItemList.java diff --git a/main/java/gregtech/api/enums/Materials.java b/src/main/java/gregtech/api/enums/Materials.java similarity index 100% rename from main/java/gregtech/api/enums/Materials.java rename to src/main/java/gregtech/api/enums/Materials.java diff --git a/main/java/gregtech/api/enums/OreDictNames.java b/src/main/java/gregtech/api/enums/OreDictNames.java similarity index 100% rename from main/java/gregtech/api/enums/OreDictNames.java rename to src/main/java/gregtech/api/enums/OreDictNames.java diff --git a/main/java/gregtech/api/enums/OrePrefixes.java b/src/main/java/gregtech/api/enums/OrePrefixes.java similarity index 100% rename from main/java/gregtech/api/enums/OrePrefixes.java rename to src/main/java/gregtech/api/enums/OrePrefixes.java diff --git a/main/java/gregtech/api/enums/SubTag.java b/src/main/java/gregtech/api/enums/SubTag.java similarity index 100% rename from main/java/gregtech/api/enums/SubTag.java rename to src/main/java/gregtech/api/enums/SubTag.java diff --git a/main/java/gregtech/api/enums/TC_Aspects.java b/src/main/java/gregtech/api/enums/TC_Aspects.java similarity index 100% rename from main/java/gregtech/api/enums/TC_Aspects.java rename to src/main/java/gregtech/api/enums/TC_Aspects.java diff --git a/main/java/gregtech/api/enums/TextureSet.java b/src/main/java/gregtech/api/enums/TextureSet.java similarity index 100% rename from main/java/gregtech/api/enums/TextureSet.java rename to src/main/java/gregtech/api/enums/TextureSet.java diff --git a/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java similarity index 100% rename from main/java/gregtech/api/enums/Textures.java rename to src/main/java/gregtech/api/enums/Textures.java diff --git a/main/java/gregtech/api/enums/Tier.java b/src/main/java/gregtech/api/enums/Tier.java similarity index 100% rename from main/java/gregtech/api/enums/Tier.java rename to src/main/java/gregtech/api/enums/Tier.java diff --git a/main/java/gregtech/api/enums/ToolDictNames.java b/src/main/java/gregtech/api/enums/ToolDictNames.java similarity index 100% rename from main/java/gregtech/api/enums/ToolDictNames.java rename to src/main/java/gregtech/api/enums/ToolDictNames.java diff --git a/main/java/gregtech/api/events/BlockScanningEvent.java b/src/main/java/gregtech/api/events/BlockScanningEvent.java similarity index 100% rename from main/java/gregtech/api/events/BlockScanningEvent.java rename to src/main/java/gregtech/api/events/BlockScanningEvent.java diff --git a/main/java/gregtech/api/gui/GT_Container.java b/src/main/java/gregtech/api/gui/GT_Container.java similarity index 100% rename from main/java/gregtech/api/gui/GT_Container.java rename to src/main/java/gregtech/api/gui/GT_Container.java diff --git a/main/java/gregtech/api/gui/GT_ContainerMetaTile_Machine.java b/src/main/java/gregtech/api/gui/GT_ContainerMetaTile_Machine.java similarity index 100% rename from main/java/gregtech/api/gui/GT_ContainerMetaTile_Machine.java rename to src/main/java/gregtech/api/gui/GT_ContainerMetaTile_Machine.java diff --git a/main/java/gregtech/api/gui/GT_Container_1by1.java b/src/main/java/gregtech/api/gui/GT_Container_1by1.java similarity index 100% rename from main/java/gregtech/api/gui/GT_Container_1by1.java rename to src/main/java/gregtech/api/gui/GT_Container_1by1.java diff --git a/main/java/gregtech/api/gui/GT_Container_2by2.java b/src/main/java/gregtech/api/gui/GT_Container_2by2.java similarity index 100% rename from main/java/gregtech/api/gui/GT_Container_2by2.java rename to src/main/java/gregtech/api/gui/GT_Container_2by2.java diff --git a/main/java/gregtech/api/gui/GT_Container_3by3.java b/src/main/java/gregtech/api/gui/GT_Container_3by3.java similarity index 100% rename from main/java/gregtech/api/gui/GT_Container_3by3.java rename to src/main/java/gregtech/api/gui/GT_Container_3by3.java diff --git a/main/java/gregtech/api/gui/GT_Container_4by4.java b/src/main/java/gregtech/api/gui/GT_Container_4by4.java similarity index 100% rename from main/java/gregtech/api/gui/GT_Container_4by4.java rename to src/main/java/gregtech/api/gui/GT_Container_4by4.java diff --git a/main/java/gregtech/api/gui/GT_Container_BasicMachine.java b/src/main/java/gregtech/api/gui/GT_Container_BasicMachine.java similarity index 100% rename from main/java/gregtech/api/gui/GT_Container_BasicMachine.java rename to src/main/java/gregtech/api/gui/GT_Container_BasicMachine.java diff --git a/main/java/gregtech/api/gui/GT_Container_BasicTank.java b/src/main/java/gregtech/api/gui/GT_Container_BasicTank.java similarity index 100% rename from main/java/gregtech/api/gui/GT_Container_BasicTank.java rename to src/main/java/gregtech/api/gui/GT_Container_BasicTank.java diff --git a/main/java/gregtech/api/gui/GT_Container_MaintenanceHatch.java b/src/main/java/gregtech/api/gui/GT_Container_MaintenanceHatch.java similarity index 100% rename from main/java/gregtech/api/gui/GT_Container_MaintenanceHatch.java rename to src/main/java/gregtech/api/gui/GT_Container_MaintenanceHatch.java diff --git a/main/java/gregtech/api/gui/GT_Container_MultiMachine.java b/src/main/java/gregtech/api/gui/GT_Container_MultiMachine.java similarity index 100% rename from main/java/gregtech/api/gui/GT_Container_MultiMachine.java rename to src/main/java/gregtech/api/gui/GT_Container_MultiMachine.java diff --git a/main/java/gregtech/api/gui/GT_GUIContainer.java b/src/main/java/gregtech/api/gui/GT_GUIContainer.java similarity index 100% rename from main/java/gregtech/api/gui/GT_GUIContainer.java rename to src/main/java/gregtech/api/gui/GT_GUIContainer.java diff --git a/main/java/gregtech/api/gui/GT_GUIContainerMetaTile_Machine.java b/src/main/java/gregtech/api/gui/GT_GUIContainerMetaTile_Machine.java similarity index 100% rename from main/java/gregtech/api/gui/GT_GUIContainerMetaTile_Machine.java rename to src/main/java/gregtech/api/gui/GT_GUIContainerMetaTile_Machine.java diff --git a/main/java/gregtech/api/gui/GT_GUIContainer_1by1.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_1by1.java similarity index 100% rename from main/java/gregtech/api/gui/GT_GUIContainer_1by1.java rename to src/main/java/gregtech/api/gui/GT_GUIContainer_1by1.java diff --git a/main/java/gregtech/api/gui/GT_GUIContainer_2by2.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_2by2.java similarity index 100% rename from main/java/gregtech/api/gui/GT_GUIContainer_2by2.java rename to src/main/java/gregtech/api/gui/GT_GUIContainer_2by2.java diff --git a/main/java/gregtech/api/gui/GT_GUIContainer_3by3.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_3by3.java similarity index 100% rename from main/java/gregtech/api/gui/GT_GUIContainer_3by3.java rename to src/main/java/gregtech/api/gui/GT_GUIContainer_3by3.java diff --git a/main/java/gregtech/api/gui/GT_GUIContainer_4by4.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_4by4.java similarity index 100% rename from main/java/gregtech/api/gui/GT_GUIContainer_4by4.java rename to src/main/java/gregtech/api/gui/GT_GUIContainer_4by4.java diff --git a/main/java/gregtech/api/gui/GT_GUIContainer_BasicMachine.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_BasicMachine.java similarity index 100% rename from main/java/gregtech/api/gui/GT_GUIContainer_BasicMachine.java rename to src/main/java/gregtech/api/gui/GT_GUIContainer_BasicMachine.java diff --git a/main/java/gregtech/api/gui/GT_GUIContainer_BasicTank.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_BasicTank.java similarity index 100% rename from main/java/gregtech/api/gui/GT_GUIContainer_BasicTank.java rename to src/main/java/gregtech/api/gui/GT_GUIContainer_BasicTank.java diff --git a/main/java/gregtech/api/gui/GT_GUIContainer_MaintenanceHatch.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_MaintenanceHatch.java similarity index 100% rename from main/java/gregtech/api/gui/GT_GUIContainer_MaintenanceHatch.java rename to src/main/java/gregtech/api/gui/GT_GUIContainer_MaintenanceHatch.java diff --git a/main/java/gregtech/api/gui/GT_GUIContainer_MultiMachine.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_MultiMachine.java similarity index 100% rename from main/java/gregtech/api/gui/GT_GUIContainer_MultiMachine.java rename to src/main/java/gregtech/api/gui/GT_GUIContainer_MultiMachine.java diff --git a/main/java/gregtech/api/gui/GT_Slot_Armor.java b/src/main/java/gregtech/api/gui/GT_Slot_Armor.java similarity index 100% rename from main/java/gregtech/api/gui/GT_Slot_Armor.java rename to src/main/java/gregtech/api/gui/GT_Slot_Armor.java diff --git a/main/java/gregtech/api/gui/GT_Slot_DataOrb.java b/src/main/java/gregtech/api/gui/GT_Slot_DataOrb.java similarity index 100% rename from main/java/gregtech/api/gui/GT_Slot_DataOrb.java rename to src/main/java/gregtech/api/gui/GT_Slot_DataOrb.java diff --git a/main/java/gregtech/api/gui/GT_Slot_Holo.java b/src/main/java/gregtech/api/gui/GT_Slot_Holo.java similarity index 100% rename from main/java/gregtech/api/gui/GT_Slot_Holo.java rename to src/main/java/gregtech/api/gui/GT_Slot_Holo.java diff --git a/main/java/gregtech/api/gui/GT_Slot_Output.java b/src/main/java/gregtech/api/gui/GT_Slot_Output.java similarity index 100% rename from main/java/gregtech/api/gui/GT_Slot_Output.java rename to src/main/java/gregtech/api/gui/GT_Slot_Output.java diff --git a/main/java/gregtech/api/gui/GT_Slot_Render.java b/src/main/java/gregtech/api/gui/GT_Slot_Render.java similarity index 100% rename from main/java/gregtech/api/gui/GT_Slot_Render.java rename to src/main/java/gregtech/api/gui/GT_Slot_Render.java diff --git a/main/java/gregtech/api/interfaces/IColorModulationContainer.java b/src/main/java/gregtech/api/interfaces/IColorModulationContainer.java similarity index 100% rename from main/java/gregtech/api/interfaces/IColorModulationContainer.java rename to src/main/java/gregtech/api/interfaces/IColorModulationContainer.java diff --git a/main/java/gregtech/api/interfaces/ICondition.java b/src/main/java/gregtech/api/interfaces/ICondition.java similarity index 100% rename from main/java/gregtech/api/interfaces/ICondition.java rename to src/main/java/gregtech/api/interfaces/ICondition.java diff --git a/main/java/gregtech/api/interfaces/IDamagableItem.java b/src/main/java/gregtech/api/interfaces/IDamagableItem.java similarity index 100% rename from main/java/gregtech/api/interfaces/IDamagableItem.java rename to src/main/java/gregtech/api/interfaces/IDamagableItem.java diff --git a/main/java/gregtech/api/interfaces/IDebugableBlock.java b/src/main/java/gregtech/api/interfaces/IDebugableBlock.java similarity index 100% rename from main/java/gregtech/api/interfaces/IDebugableBlock.java rename to src/main/java/gregtech/api/interfaces/IDebugableBlock.java diff --git a/main/java/gregtech/api/interfaces/IDescribable.java b/src/main/java/gregtech/api/interfaces/IDescribable.java similarity index 100% rename from main/java/gregtech/api/interfaces/IDescribable.java rename to src/main/java/gregtech/api/interfaces/IDescribable.java diff --git a/main/java/gregtech/api/interfaces/IFoodStat.java b/src/main/java/gregtech/api/interfaces/IFoodStat.java similarity index 100% rename from main/java/gregtech/api/interfaces/IFoodStat.java rename to src/main/java/gregtech/api/interfaces/IFoodStat.java diff --git a/main/java/gregtech/api/interfaces/IIconContainer.java b/src/main/java/gregtech/api/interfaces/IIconContainer.java similarity index 100% rename from main/java/gregtech/api/interfaces/IIconContainer.java rename to src/main/java/gregtech/api/interfaces/IIconContainer.java diff --git a/main/java/gregtech/api/interfaces/IItemBehaviour.java b/src/main/java/gregtech/api/interfaces/IItemBehaviour.java similarity index 100% rename from main/java/gregtech/api/interfaces/IItemBehaviour.java rename to src/main/java/gregtech/api/interfaces/IItemBehaviour.java diff --git a/main/java/gregtech/api/interfaces/IItemContainer.java b/src/main/java/gregtech/api/interfaces/IItemContainer.java similarity index 100% rename from main/java/gregtech/api/interfaces/IItemContainer.java rename to src/main/java/gregtech/api/interfaces/IItemContainer.java diff --git a/main/java/gregtech/api/interfaces/IOreRecipeRegistrator.java b/src/main/java/gregtech/api/interfaces/IOreRecipeRegistrator.java similarity index 100% rename from main/java/gregtech/api/interfaces/IOreRecipeRegistrator.java rename to src/main/java/gregtech/api/interfaces/IOreRecipeRegistrator.java diff --git a/main/java/gregtech/api/interfaces/IProjectileItem.java b/src/main/java/gregtech/api/interfaces/IProjectileItem.java similarity index 100% rename from main/java/gregtech/api/interfaces/IProjectileItem.java rename to src/main/java/gregtech/api/interfaces/IProjectileItem.java diff --git a/main/java/gregtech/api/interfaces/IRedstoneCircuitBlock.java b/src/main/java/gregtech/api/interfaces/IRedstoneCircuitBlock.java similarity index 100% rename from main/java/gregtech/api/interfaces/IRedstoneCircuitBlock.java rename to src/main/java/gregtech/api/interfaces/IRedstoneCircuitBlock.java diff --git a/main/java/gregtech/api/interfaces/ISubTagContainer.java b/src/main/java/gregtech/api/interfaces/ISubTagContainer.java similarity index 100% rename from main/java/gregtech/api/interfaces/ISubTagContainer.java rename to src/main/java/gregtech/api/interfaces/ISubTagContainer.java diff --git a/main/java/gregtech/api/interfaces/ITexture.java b/src/main/java/gregtech/api/interfaces/ITexture.java similarity index 100% rename from main/java/gregtech/api/interfaces/ITexture.java rename to src/main/java/gregtech/api/interfaces/ITexture.java diff --git a/main/java/gregtech/api/interfaces/IToolStats.java b/src/main/java/gregtech/api/interfaces/IToolStats.java similarity index 100% rename from main/java/gregtech/api/interfaces/IToolStats.java rename to src/main/java/gregtech/api/interfaces/IToolStats.java diff --git a/main/java/gregtech/api/interfaces/internal/IBCTileEntity.java b/src/main/java/gregtech/api/interfaces/internal/IBCTileEntity.java similarity index 100% rename from main/java/gregtech/api/interfaces/internal/IBCTileEntity.java rename to src/main/java/gregtech/api/interfaces/internal/IBCTileEntity.java diff --git a/main/java/gregtech/api/interfaces/internal/IGT_CraftingRecipe.java b/src/main/java/gregtech/api/interfaces/internal/IGT_CraftingRecipe.java similarity index 100% rename from main/java/gregtech/api/interfaces/internal/IGT_CraftingRecipe.java rename to src/main/java/gregtech/api/interfaces/internal/IGT_CraftingRecipe.java diff --git a/main/java/gregtech/api/interfaces/internal/IGT_Mod.java b/src/main/java/gregtech/api/interfaces/internal/IGT_Mod.java similarity index 100% rename from main/java/gregtech/api/interfaces/internal/IGT_Mod.java rename to src/main/java/gregtech/api/interfaces/internal/IGT_Mod.java diff --git a/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java b/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java similarity index 100% rename from main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java rename to src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java diff --git a/main/java/gregtech/api/interfaces/internal/IIC2TileEntity.java b/src/main/java/gregtech/api/interfaces/internal/IIC2TileEntity.java similarity index 100% rename from main/java/gregtech/api/interfaces/internal/IIC2TileEntity.java rename to src/main/java/gregtech/api/interfaces/internal/IIC2TileEntity.java diff --git a/main/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java b/src/main/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java similarity index 100% rename from main/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java rename to src/main/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java diff --git a/main/java/gregtech/api/interfaces/internal/IUETileEntity.java b/src/main/java/gregtech/api/interfaces/internal/IUETileEntity.java similarity index 100% rename from main/java/gregtech/api/interfaces/internal/IUETileEntity.java rename to src/main/java/gregtech/api/interfaces/internal/IUETileEntity.java diff --git a/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java similarity index 100% rename from main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java rename to src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java diff --git a/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityCable.java b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityCable.java similarity index 100% rename from main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityCable.java rename to src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityCable.java diff --git a/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityItemPipe.java b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityItemPipe.java similarity index 100% rename from main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityItemPipe.java rename to src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityItemPipe.java diff --git a/main/java/gregtech/api/interfaces/tileentity/IBasicEnergyContainer.java b/src/main/java/gregtech/api/interfaces/tileentity/IBasicEnergyContainer.java similarity index 100% rename from main/java/gregtech/api/interfaces/tileentity/IBasicEnergyContainer.java rename to src/main/java/gregtech/api/interfaces/tileentity/IBasicEnergyContainer.java diff --git a/main/java/gregtech/api/interfaces/tileentity/IColoredTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IColoredTileEntity.java similarity index 100% rename from main/java/gregtech/api/interfaces/tileentity/IColoredTileEntity.java rename to src/main/java/gregtech/api/interfaces/tileentity/IColoredTileEntity.java diff --git a/main/java/gregtech/api/interfaces/tileentity/ICoverable.java b/src/main/java/gregtech/api/interfaces/tileentity/ICoverable.java similarity index 100% rename from main/java/gregtech/api/interfaces/tileentity/ICoverable.java rename to src/main/java/gregtech/api/interfaces/tileentity/ICoverable.java diff --git a/main/java/gregtech/api/interfaces/tileentity/IDigitalChest.java b/src/main/java/gregtech/api/interfaces/tileentity/IDigitalChest.java similarity index 100% rename from main/java/gregtech/api/interfaces/tileentity/IDigitalChest.java rename to src/main/java/gregtech/api/interfaces/tileentity/IDigitalChest.java diff --git a/main/java/gregtech/api/interfaces/tileentity/IEnergyConductor.java b/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConductor.java similarity index 100% rename from main/java/gregtech/api/interfaces/tileentity/IEnergyConductor.java rename to src/main/java/gregtech/api/interfaces/tileentity/IEnergyConductor.java diff --git a/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java b/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java similarity index 100% rename from main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java rename to src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java diff --git a/main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java similarity index 100% rename from main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java rename to src/main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java diff --git a/main/java/gregtech/api/interfaces/tileentity/IFibreConnected.java b/src/main/java/gregtech/api/interfaces/tileentity/IFibreConnected.java similarity index 100% rename from main/java/gregtech/api/interfaces/tileentity/IFibreConnected.java rename to src/main/java/gregtech/api/interfaces/tileentity/IFibreConnected.java diff --git a/main/java/gregtech/api/interfaces/tileentity/IGearEnergyTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IGearEnergyTileEntity.java similarity index 100% rename from main/java/gregtech/api/interfaces/tileentity/IGearEnergyTileEntity.java rename to src/main/java/gregtech/api/interfaces/tileentity/IGearEnergyTileEntity.java diff --git a/main/java/gregtech/api/interfaces/tileentity/IGregTechDeviceInformation.java b/src/main/java/gregtech/api/interfaces/tileentity/IGregTechDeviceInformation.java similarity index 100% rename from main/java/gregtech/api/interfaces/tileentity/IGregTechDeviceInformation.java rename to src/main/java/gregtech/api/interfaces/tileentity/IGregTechDeviceInformation.java diff --git a/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java similarity index 100% rename from main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java rename to src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java diff --git a/main/java/gregtech/api/interfaces/tileentity/IHasInventory.java b/src/main/java/gregtech/api/interfaces/tileentity/IHasInventory.java similarity index 100% rename from main/java/gregtech/api/interfaces/tileentity/IHasInventory.java rename to src/main/java/gregtech/api/interfaces/tileentity/IHasInventory.java diff --git a/main/java/gregtech/api/interfaces/tileentity/IHasWorldObjectAndCoords.java b/src/main/java/gregtech/api/interfaces/tileentity/IHasWorldObjectAndCoords.java similarity index 100% rename from main/java/gregtech/api/interfaces/tileentity/IHasWorldObjectAndCoords.java rename to src/main/java/gregtech/api/interfaces/tileentity/IHasWorldObjectAndCoords.java diff --git a/main/java/gregtech/api/interfaces/tileentity/IMachineBlockUpdateable.java b/src/main/java/gregtech/api/interfaces/tileentity/IMachineBlockUpdateable.java similarity index 100% rename from main/java/gregtech/api/interfaces/tileentity/IMachineBlockUpdateable.java rename to src/main/java/gregtech/api/interfaces/tileentity/IMachineBlockUpdateable.java diff --git a/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java b/src/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java similarity index 100% rename from main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java rename to src/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java diff --git a/main/java/gregtech/api/interfaces/tileentity/IPipeRenderedTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IPipeRenderedTileEntity.java similarity index 100% rename from main/java/gregtech/api/interfaces/tileentity/IPipeRenderedTileEntity.java rename to src/main/java/gregtech/api/interfaces/tileentity/IPipeRenderedTileEntity.java diff --git a/main/java/gregtech/api/interfaces/tileentity/IRedstoneEmitter.java b/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneEmitter.java similarity index 100% rename from main/java/gregtech/api/interfaces/tileentity/IRedstoneEmitter.java rename to src/main/java/gregtech/api/interfaces/tileentity/IRedstoneEmitter.java diff --git a/main/java/gregtech/api/interfaces/tileentity/IRedstoneReceiver.java b/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneReceiver.java similarity index 100% rename from main/java/gregtech/api/interfaces/tileentity/IRedstoneReceiver.java rename to src/main/java/gregtech/api/interfaces/tileentity/IRedstoneReceiver.java diff --git a/main/java/gregtech/api/interfaces/tileentity/IRedstoneTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneTileEntity.java similarity index 100% rename from main/java/gregtech/api/interfaces/tileentity/IRedstoneTileEntity.java rename to src/main/java/gregtech/api/interfaces/tileentity/IRedstoneTileEntity.java diff --git a/main/java/gregtech/api/interfaces/tileentity/ITexturedTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/ITexturedTileEntity.java similarity index 100% rename from main/java/gregtech/api/interfaces/tileentity/ITexturedTileEntity.java rename to src/main/java/gregtech/api/interfaces/tileentity/ITexturedTileEntity.java diff --git a/main/java/gregtech/api/interfaces/tileentity/ITurnable.java b/src/main/java/gregtech/api/interfaces/tileentity/ITurnable.java similarity index 100% rename from main/java/gregtech/api/interfaces/tileentity/ITurnable.java rename to src/main/java/gregtech/api/interfaces/tileentity/ITurnable.java diff --git a/main/java/gregtech/api/interfaces/tileentity/IUpgradableMachine.java b/src/main/java/gregtech/api/interfaces/tileentity/IUpgradableMachine.java similarity index 100% rename from main/java/gregtech/api/interfaces/tileentity/IUpgradableMachine.java rename to src/main/java/gregtech/api/interfaces/tileentity/IUpgradableMachine.java diff --git a/main/java/gregtech/api/items/GT_CoolantCellIC_Item.java b/src/main/java/gregtech/api/items/GT_CoolantCellIC_Item.java similarity index 100% rename from main/java/gregtech/api/items/GT_CoolantCellIC_Item.java rename to src/main/java/gregtech/api/items/GT_CoolantCellIC_Item.java diff --git a/main/java/gregtech/api/items/GT_CoolantCell_Item.java b/src/main/java/gregtech/api/items/GT_CoolantCell_Item.java similarity index 100% rename from main/java/gregtech/api/items/GT_CoolantCell_Item.java rename to src/main/java/gregtech/api/items/GT_CoolantCell_Item.java diff --git a/main/java/gregtech/api/items/GT_EnergyArmor_Item.java b/src/main/java/gregtech/api/items/GT_EnergyArmor_Item.java similarity index 100% rename from main/java/gregtech/api/items/GT_EnergyArmor_Item.java rename to src/main/java/gregtech/api/items/GT_EnergyArmor_Item.java diff --git a/main/java/gregtech/api/items/GT_Generic_Block.java b/src/main/java/gregtech/api/items/GT_Generic_Block.java similarity index 100% rename from main/java/gregtech/api/items/GT_Generic_Block.java rename to src/main/java/gregtech/api/items/GT_Generic_Block.java diff --git a/main/java/gregtech/api/items/GT_Generic_Item.java b/src/main/java/gregtech/api/items/GT_Generic_Item.java similarity index 100% rename from main/java/gregtech/api/items/GT_Generic_Item.java rename to src/main/java/gregtech/api/items/GT_Generic_Item.java diff --git a/main/java/gregtech/api/items/GT_MetaBase_Item.java b/src/main/java/gregtech/api/items/GT_MetaBase_Item.java similarity index 100% rename from main/java/gregtech/api/items/GT_MetaBase_Item.java rename to src/main/java/gregtech/api/items/GT_MetaBase_Item.java diff --git a/main/java/gregtech/api/items/GT_MetaGenerated_Item.java b/src/main/java/gregtech/api/items/GT_MetaGenerated_Item.java similarity index 100% rename from main/java/gregtech/api/items/GT_MetaGenerated_Item.java rename to src/main/java/gregtech/api/items/GT_MetaGenerated_Item.java diff --git a/main/java/gregtech/api/items/GT_MetaGenerated_Item_X01.java b/src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X01.java similarity index 100% rename from main/java/gregtech/api/items/GT_MetaGenerated_Item_X01.java rename to src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X01.java diff --git a/main/java/gregtech/api/items/GT_MetaGenerated_Item_X32.java b/src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X32.java similarity index 100% rename from main/java/gregtech/api/items/GT_MetaGenerated_Item_X32.java rename to src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X32.java diff --git a/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java similarity index 100% rename from main/java/gregtech/api/items/GT_MetaGenerated_Tool.java rename to src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java diff --git a/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java b/src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java similarity index 100% rename from main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java rename to src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java diff --git a/main/java/gregtech/api/items/GT_RadioactiveCell_Item.java b/src/main/java/gregtech/api/items/GT_RadioactiveCell_Item.java similarity index 100% rename from main/java/gregtech/api/items/GT_RadioactiveCell_Item.java rename to src/main/java/gregtech/api/items/GT_RadioactiveCell_Item.java diff --git a/main/java/gregtech/api/items/GT_SolderingTool_Item.java b/src/main/java/gregtech/api/items/GT_SolderingTool_Item.java similarity index 100% rename from main/java/gregtech/api/items/GT_SolderingTool_Item.java rename to src/main/java/gregtech/api/items/GT_SolderingTool_Item.java diff --git a/main/java/gregtech/api/items/GT_Spray_Bug_Item.java b/src/main/java/gregtech/api/items/GT_Spray_Bug_Item.java similarity index 100% rename from main/java/gregtech/api/items/GT_Spray_Bug_Item.java rename to src/main/java/gregtech/api/items/GT_Spray_Bug_Item.java diff --git a/main/java/gregtech/api/items/GT_Spray_Foam_Item.java b/src/main/java/gregtech/api/items/GT_Spray_Foam_Item.java similarity index 100% rename from main/java/gregtech/api/items/GT_Spray_Foam_Item.java rename to src/main/java/gregtech/api/items/GT_Spray_Foam_Item.java diff --git a/main/java/gregtech/api/items/GT_Spray_Hardener_Item.java b/src/main/java/gregtech/api/items/GT_Spray_Hardener_Item.java similarity index 100% rename from main/java/gregtech/api/items/GT_Spray_Hardener_Item.java rename to src/main/java/gregtech/api/items/GT_Spray_Hardener_Item.java diff --git a/main/java/gregtech/api/items/GT_Spray_Hydration_Item.java b/src/main/java/gregtech/api/items/GT_Spray_Hydration_Item.java similarity index 100% rename from main/java/gregtech/api/items/GT_Spray_Hydration_Item.java rename to src/main/java/gregtech/api/items/GT_Spray_Hydration_Item.java diff --git a/main/java/gregtech/api/items/GT_Spray_Ice_Item.java b/src/main/java/gregtech/api/items/GT_Spray_Ice_Item.java similarity index 100% rename from main/java/gregtech/api/items/GT_Spray_Ice_Item.java rename to src/main/java/gregtech/api/items/GT_Spray_Ice_Item.java diff --git a/main/java/gregtech/api/items/GT_Spray_Pepper_Item.java b/src/main/java/gregtech/api/items/GT_Spray_Pepper_Item.java similarity index 100% rename from main/java/gregtech/api/items/GT_Spray_Pepper_Item.java rename to src/main/java/gregtech/api/items/GT_Spray_Pepper_Item.java diff --git a/main/java/gregtech/api/items/GT_Tool_Item.java b/src/main/java/gregtech/api/items/GT_Tool_Item.java similarity index 100% rename from main/java/gregtech/api/items/GT_Tool_Item.java rename to src/main/java/gregtech/api/items/GT_Tool_Item.java diff --git a/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java similarity index 100% rename from main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java rename to src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java diff --git a/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java similarity index 100% rename from main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java rename to src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java diff --git a/main/java/gregtech/api/metatileentity/BaseMetaTileEntityUE.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntityUE.java similarity index 100% rename from main/java/gregtech/api/metatileentity/BaseMetaTileEntityUE.java rename to src/main/java/gregtech/api/metatileentity/BaseMetaTileEntityUE.java diff --git a/main/java/gregtech/api/metatileentity/BaseTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseTileEntity.java similarity index 100% rename from main/java/gregtech/api/metatileentity/BaseTileEntity.java rename to src/main/java/gregtech/api/metatileentity/BaseTileEntity.java diff --git a/main/java/gregtech/api/metatileentity/MetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java similarity index 100% rename from main/java/gregtech/api/metatileentity/MetaPipeEntity.java rename to src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java diff --git a/main/java/gregtech/api/metatileentity/MetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java similarity index 100% rename from main/java/gregtech/api/metatileentity/MetaTileEntity.java rename to src/main/java/gregtech/api/metatileentity/MetaTileEntity.java diff --git a/main/java/gregtech/api/metatileentity/examples/GT_MetaTileEntity_E_Furnace.java b/src/main/java/gregtech/api/metatileentity/examples/GT_MetaTileEntity_E_Furnace.java similarity index 100% rename from main/java/gregtech/api/metatileentity/examples/GT_MetaTileEntity_E_Furnace.java rename to src/main/java/gregtech/api/metatileentity/examples/GT_MetaTileEntity_E_Furnace.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Frame.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Frame.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Frame.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Frame.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull_NonElectric.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull_NonElectric.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull_NonElectric.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull_NonElectric.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Steel.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Steel.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Steel.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Steel.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicTank.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicTank.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicTank.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicTank.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Dynamo.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Dynamo.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Dynamo.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Dynamo.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Input.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Input.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Input.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Input.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_TieredMachineBlock.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_TieredMachineBlock.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_TieredMachineBlock.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_TieredMachineBlock.java diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java similarity index 100% rename from main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java rename to src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java diff --git a/main/java/gregtech/api/net/GT_Packet.java b/src/main/java/gregtech/api/net/GT_Packet.java similarity index 100% rename from main/java/gregtech/api/net/GT_Packet.java rename to src/main/java/gregtech/api/net/GT_Packet.java diff --git a/main/java/gregtech/api/net/GT_Packet_Block_Event.java b/src/main/java/gregtech/api/net/GT_Packet_Block_Event.java similarity index 100% rename from main/java/gregtech/api/net/GT_Packet_Block_Event.java rename to src/main/java/gregtech/api/net/GT_Packet_Block_Event.java diff --git a/main/java/gregtech/api/net/GT_Packet_Sound.java b/src/main/java/gregtech/api/net/GT_Packet_Sound.java similarity index 100% rename from main/java/gregtech/api/net/GT_Packet_Sound.java rename to src/main/java/gregtech/api/net/GT_Packet_Sound.java diff --git a/main/java/gregtech/api/net/GT_Packet_TileEntity.java b/src/main/java/gregtech/api/net/GT_Packet_TileEntity.java similarity index 100% rename from main/java/gregtech/api/net/GT_Packet_TileEntity.java rename to src/main/java/gregtech/api/net/GT_Packet_TileEntity.java diff --git a/main/java/gregtech/api/net/IGT_NetworkHandler.java b/src/main/java/gregtech/api/net/IGT_NetworkHandler.java similarity index 100% rename from main/java/gregtech/api/net/IGT_NetworkHandler.java rename to src/main/java/gregtech/api/net/IGT_NetworkHandler.java diff --git a/main/java/gregtech/api/objects/ElementStack.java b/src/main/java/gregtech/api/objects/ElementStack.java similarity index 100% rename from main/java/gregtech/api/objects/ElementStack.java rename to src/main/java/gregtech/api/objects/ElementStack.java diff --git a/main/java/gregtech/api/objects/GT_ArrayList.java b/src/main/java/gregtech/api/objects/GT_ArrayList.java similarity index 100% rename from main/java/gregtech/api/objects/GT_ArrayList.java rename to src/main/java/gregtech/api/objects/GT_ArrayList.java diff --git a/main/java/gregtech/api/objects/GT_CopiedBlockTexture.java b/src/main/java/gregtech/api/objects/GT_CopiedBlockTexture.java similarity index 100% rename from main/java/gregtech/api/objects/GT_CopiedBlockTexture.java rename to src/main/java/gregtech/api/objects/GT_CopiedBlockTexture.java diff --git a/main/java/gregtech/api/objects/GT_Cover_Default.java b/src/main/java/gregtech/api/objects/GT_Cover_Default.java similarity index 100% rename from main/java/gregtech/api/objects/GT_Cover_Default.java rename to src/main/java/gregtech/api/objects/GT_Cover_Default.java diff --git a/main/java/gregtech/api/objects/GT_Cover_None.java b/src/main/java/gregtech/api/objects/GT_Cover_None.java similarity index 100% rename from main/java/gregtech/api/objects/GT_Cover_None.java rename to src/main/java/gregtech/api/objects/GT_Cover_None.java diff --git a/main/java/gregtech/api/objects/GT_Fluid.java b/src/main/java/gregtech/api/objects/GT_Fluid.java similarity index 100% rename from main/java/gregtech/api/objects/GT_Fluid.java rename to src/main/java/gregtech/api/objects/GT_Fluid.java diff --git a/main/java/gregtech/api/objects/GT_FluidStack.java b/src/main/java/gregtech/api/objects/GT_FluidStack.java similarity index 100% rename from main/java/gregtech/api/objects/GT_FluidStack.java rename to src/main/java/gregtech/api/objects/GT_FluidStack.java diff --git a/main/java/gregtech/api/objects/GT_HashSet.java b/src/main/java/gregtech/api/objects/GT_HashSet.java similarity index 100% rename from main/java/gregtech/api/objects/GT_HashSet.java rename to src/main/java/gregtech/api/objects/GT_HashSet.java diff --git a/main/java/gregtech/api/objects/GT_ItemStack.java b/src/main/java/gregtech/api/objects/GT_ItemStack.java similarity index 100% rename from main/java/gregtech/api/objects/GT_ItemStack.java rename to src/main/java/gregtech/api/objects/GT_ItemStack.java diff --git a/main/java/gregtech/api/objects/GT_MultiTexture.java b/src/main/java/gregtech/api/objects/GT_MultiTexture.java similarity index 100% rename from main/java/gregtech/api/objects/GT_MultiTexture.java rename to src/main/java/gregtech/api/objects/GT_MultiTexture.java diff --git a/main/java/gregtech/api/objects/GT_RenderedTexture.java b/src/main/java/gregtech/api/objects/GT_RenderedTexture.java similarity index 100% rename from main/java/gregtech/api/objects/GT_RenderedTexture.java rename to src/main/java/gregtech/api/objects/GT_RenderedTexture.java diff --git a/main/java/gregtech/api/objects/GT_SidedTexture.java b/src/main/java/gregtech/api/objects/GT_SidedTexture.java similarity index 100% rename from main/java/gregtech/api/objects/GT_SidedTexture.java rename to src/main/java/gregtech/api/objects/GT_SidedTexture.java diff --git a/main/java/gregtech/api/objects/ItemData.java b/src/main/java/gregtech/api/objects/ItemData.java similarity index 100% rename from main/java/gregtech/api/objects/ItemData.java rename to src/main/java/gregtech/api/objects/ItemData.java diff --git a/main/java/gregtech/api/objects/MaterialStack.java b/src/main/java/gregtech/api/objects/MaterialStack.java similarity index 100% rename from main/java/gregtech/api/objects/MaterialStack.java rename to src/main/java/gregtech/api/objects/MaterialStack.java diff --git a/main/java/gregtech/api/threads/GT_Runnable_MachineBlockUpdate.java b/src/main/java/gregtech/api/threads/GT_Runnable_MachineBlockUpdate.java similarity index 100% rename from main/java/gregtech/api/threads/GT_Runnable_MachineBlockUpdate.java rename to src/main/java/gregtech/api/threads/GT_Runnable_MachineBlockUpdate.java diff --git a/main/java/gregtech/api/threads/GT_Runnable_Sound.java b/src/main/java/gregtech/api/threads/GT_Runnable_Sound.java similarity index 100% rename from main/java/gregtech/api/threads/GT_Runnable_Sound.java rename to src/main/java/gregtech/api/threads/GT_Runnable_Sound.java diff --git a/main/java/gregtech/api/util/GT_BaseCrop.java b/src/main/java/gregtech/api/util/GT_BaseCrop.java similarity index 100% rename from main/java/gregtech/api/util/GT_BaseCrop.java rename to src/main/java/gregtech/api/util/GT_BaseCrop.java diff --git a/main/java/gregtech/api/util/GT_CircuitryBehavior.java b/src/main/java/gregtech/api/util/GT_CircuitryBehavior.java similarity index 100% rename from main/java/gregtech/api/util/GT_CircuitryBehavior.java rename to src/main/java/gregtech/api/util/GT_CircuitryBehavior.java diff --git a/main/java/gregtech/api/util/GT_Config.java b/src/main/java/gregtech/api/util/GT_Config.java similarity index 100% rename from main/java/gregtech/api/util/GT_Config.java rename to src/main/java/gregtech/api/util/GT_Config.java diff --git a/main/java/gregtech/api/util/GT_CoverBehavior.java b/src/main/java/gregtech/api/util/GT_CoverBehavior.java similarity index 100% rename from main/java/gregtech/api/util/GT_CoverBehavior.java rename to src/main/java/gregtech/api/util/GT_CoverBehavior.java diff --git a/main/java/gregtech/api/util/GT_CreativeTab.java b/src/main/java/gregtech/api/util/GT_CreativeTab.java similarity index 100% rename from main/java/gregtech/api/util/GT_CreativeTab.java rename to src/main/java/gregtech/api/util/GT_CreativeTab.java diff --git a/main/java/gregtech/api/util/GT_FoodStat.java b/src/main/java/gregtech/api/util/GT_FoodStat.java similarity index 100% rename from main/java/gregtech/api/util/GT_FoodStat.java rename to src/main/java/gregtech/api/util/GT_FoodStat.java diff --git a/main/java/gregtech/api/util/GT_IBoxableWrapper.java b/src/main/java/gregtech/api/util/GT_IBoxableWrapper.java similarity index 100% rename from main/java/gregtech/api/util/GT_IBoxableWrapper.java rename to src/main/java/gregtech/api/util/GT_IBoxableWrapper.java diff --git a/main/java/gregtech/api/util/GT_ItsNotMyFaultException.java b/src/main/java/gregtech/api/util/GT_ItsNotMyFaultException.java similarity index 100% rename from main/java/gregtech/api/util/GT_ItsNotMyFaultException.java rename to src/main/java/gregtech/api/util/GT_ItsNotMyFaultException.java diff --git a/main/java/gregtech/api/util/GT_LanguageManager.java b/src/main/java/gregtech/api/util/GT_LanguageManager.java similarity index 100% rename from main/java/gregtech/api/util/GT_LanguageManager.java rename to src/main/java/gregtech/api/util/GT_LanguageManager.java diff --git a/main/java/gregtech/api/util/GT_Log.java b/src/main/java/gregtech/api/util/GT_Log.java similarity index 100% rename from main/java/gregtech/api/util/GT_Log.java rename to src/main/java/gregtech/api/util/GT_Log.java diff --git a/main/java/gregtech/api/util/GT_ModHandler.java b/src/main/java/gregtech/api/util/GT_ModHandler.java similarity index 100% rename from main/java/gregtech/api/util/GT_ModHandler.java rename to src/main/java/gregtech/api/util/GT_ModHandler.java diff --git a/main/java/gregtech/api/util/GT_OreDictUnificator.java b/src/main/java/gregtech/api/util/GT_OreDictUnificator.java similarity index 100% rename from main/java/gregtech/api/util/GT_OreDictUnificator.java rename to src/main/java/gregtech/api/util/GT_OreDictUnificator.java diff --git a/main/java/gregtech/api/util/GT_PlayedSound.java b/src/main/java/gregtech/api/util/GT_PlayedSound.java similarity index 100% rename from main/java/gregtech/api/util/GT_PlayedSound.java rename to src/main/java/gregtech/api/util/GT_PlayedSound.java diff --git a/main/java/gregtech/api/util/GT_Recipe.java b/src/main/java/gregtech/api/util/GT_Recipe.java similarity index 100% rename from main/java/gregtech/api/util/GT_Recipe.java rename to src/main/java/gregtech/api/util/GT_Recipe.java diff --git a/main/java/gregtech/api/util/GT_RecipeRegistrator.java b/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java similarity index 100% rename from main/java/gregtech/api/util/GT_RecipeRegistrator.java rename to src/main/java/gregtech/api/util/GT_RecipeRegistrator.java diff --git a/main/java/gregtech/api/util/GT_Shaped_Recipe.java b/src/main/java/gregtech/api/util/GT_Shaped_Recipe.java similarity index 100% rename from main/java/gregtech/api/util/GT_Shaped_Recipe.java rename to src/main/java/gregtech/api/util/GT_Shaped_Recipe.java diff --git a/main/java/gregtech/api/util/GT_Shapeless_Recipe.java b/src/main/java/gregtech/api/util/GT_Shapeless_Recipe.java similarity index 100% rename from main/java/gregtech/api/util/GT_Shapeless_Recipe.java rename to src/main/java/gregtech/api/util/GT_Shapeless_Recipe.java diff --git a/main/java/gregtech/api/util/GT_SpawnEventHandler.java b/src/main/java/gregtech/api/util/GT_SpawnEventHandler.java similarity index 100% rename from main/java/gregtech/api/util/GT_SpawnEventHandler.java rename to src/main/java/gregtech/api/util/GT_SpawnEventHandler.java diff --git a/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java similarity index 100% rename from main/java/gregtech/api/util/GT_Utility.java rename to src/main/java/gregtech/api/util/GT_Utility.java diff --git a/main/java/gregtech/api/world/GT_Worldgen.java b/src/main/java/gregtech/api/world/GT_Worldgen.java similarity index 100% rename from main/java/gregtech/api/world/GT_Worldgen.java rename to src/main/java/gregtech/api/world/GT_Worldgen.java diff --git a/main/java/gregtech/api/world/GT_Worldgen_Boulder.java b/src/main/java/gregtech/api/world/GT_Worldgen_Boulder.java similarity index 100% rename from main/java/gregtech/api/world/GT_Worldgen_Boulder.java rename to src/main/java/gregtech/api/world/GT_Worldgen_Boulder.java diff --git a/main/java/gregtech/api/world/GT_Worldgen_Ore.java b/src/main/java/gregtech/api/world/GT_Worldgen_Ore.java similarity index 100% rename from main/java/gregtech/api/world/GT_Worldgen_Ore.java rename to src/main/java/gregtech/api/world/GT_Worldgen_Ore.java diff --git a/main/java/gregtech/api/world/GT_Worldgen_Ore_Normal.java b/src/main/java/gregtech/api/world/GT_Worldgen_Ore_Normal.java similarity index 100% rename from main/java/gregtech/api/world/GT_Worldgen_Ore_Normal.java rename to src/main/java/gregtech/api/world/GT_Worldgen_Ore_Normal.java diff --git a/main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock.java b/src/main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock.java similarity index 100% rename from main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock.java rename to src/main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock.java diff --git a/main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock_UnderLava.java b/src/main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock_UnderLava.java similarity index 100% rename from main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock_UnderLava.java rename to src/main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock_UnderLava.java diff --git a/main/java/gregtech/common/GT_Client.java b/src/main/java/gregtech/common/GT_Client.java similarity index 100% rename from main/java/gregtech/common/GT_Client.java rename to src/main/java/gregtech/common/GT_Client.java diff --git a/main/java/gregtech/common/GT_DummyWorld.java b/src/main/java/gregtech/common/GT_DummyWorld.java similarity index 100% rename from main/java/gregtech/common/GT_DummyWorld.java rename to src/main/java/gregtech/common/GT_DummyWorld.java diff --git a/main/java/gregtech/common/GT_IteratorRandom.java b/src/main/java/gregtech/common/GT_IteratorRandom.java similarity index 100% rename from main/java/gregtech/common/GT_IteratorRandom.java rename to src/main/java/gregtech/common/GT_IteratorRandom.java diff --git a/main/java/gregtech/common/GT_MinableOreGenerator.java b/src/main/java/gregtech/common/GT_MinableOreGenerator.java similarity index 100% rename from main/java/gregtech/common/GT_MinableOreGenerator.java rename to src/main/java/gregtech/common/GT_MinableOreGenerator.java diff --git a/main/java/gregtech/common/GT_Network.java b/src/main/java/gregtech/common/GT_Network.java similarity index 100% rename from main/java/gregtech/common/GT_Network.java rename to src/main/java/gregtech/common/GT_Network.java diff --git a/main/java/gregtech/common/GT_PlayerActivityLogger.java b/src/main/java/gregtech/common/GT_PlayerActivityLogger.java similarity index 100% rename from main/java/gregtech/common/GT_PlayerActivityLogger.java rename to src/main/java/gregtech/common/GT_PlayerActivityLogger.java diff --git a/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java similarity index 100% rename from main/java/gregtech/common/GT_Proxy.java rename to src/main/java/gregtech/common/GT_Proxy.java diff --git a/main/java/gregtech/common/GT_RecipeAdder.java b/src/main/java/gregtech/common/GT_RecipeAdder.java similarity index 100% rename from main/java/gregtech/common/GT_RecipeAdder.java rename to src/main/java/gregtech/common/GT_RecipeAdder.java diff --git a/main/java/gregtech/common/GT_Server.java b/src/main/java/gregtech/common/GT_Server.java similarity index 100% rename from main/java/gregtech/common/GT_Server.java rename to src/main/java/gregtech/common/GT_Server.java diff --git a/main/java/gregtech/common/GT_ThaumcraftCompat.java b/src/main/java/gregtech/common/GT_ThaumcraftCompat.java similarity index 100% rename from main/java/gregtech/common/GT_ThaumcraftCompat.java rename to src/main/java/gregtech/common/GT_ThaumcraftCompat.java diff --git a/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java b/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java similarity index 100% rename from main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java rename to src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java diff --git a/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java b/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java similarity index 100% rename from main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java rename to src/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java diff --git a/main/java/gregtech/common/GT_Worldgen_Stone.java b/src/main/java/gregtech/common/GT_Worldgen_Stone.java similarity index 100% rename from main/java/gregtech/common/GT_Worldgen_Stone.java rename to src/main/java/gregtech/common/GT_Worldgen_Stone.java diff --git a/main/java/gregtech/common/GT_Worldgenerator.java b/src/main/java/gregtech/common/GT_Worldgenerator.java similarity index 100% rename from main/java/gregtech/common/GT_Worldgenerator.java rename to src/main/java/gregtech/common/GT_Worldgenerator.java diff --git a/main/java/gregtech/common/blocks/GT_Block_Casings1.java b/src/main/java/gregtech/common/blocks/GT_Block_Casings1.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Block_Casings1.java rename to src/main/java/gregtech/common/blocks/GT_Block_Casings1.java diff --git a/main/java/gregtech/common/blocks/GT_Block_Casings2.java b/src/main/java/gregtech/common/blocks/GT_Block_Casings2.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Block_Casings2.java rename to src/main/java/gregtech/common/blocks/GT_Block_Casings2.java diff --git a/main/java/gregtech/common/blocks/GT_Block_Casings3.java b/src/main/java/gregtech/common/blocks/GT_Block_Casings3.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Block_Casings3.java rename to src/main/java/gregtech/common/blocks/GT_Block_Casings3.java diff --git a/main/java/gregtech/common/blocks/GT_Block_Casings4.java b/src/main/java/gregtech/common/blocks/GT_Block_Casings4.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Block_Casings4.java rename to src/main/java/gregtech/common/blocks/GT_Block_Casings4.java diff --git a/main/java/gregtech/common/blocks/GT_Block_Casings_Abstract.java b/src/main/java/gregtech/common/blocks/GT_Block_Casings_Abstract.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Block_Casings_Abstract.java rename to src/main/java/gregtech/common/blocks/GT_Block_Casings_Abstract.java diff --git a/main/java/gregtech/common/blocks/GT_Block_Concretes.java b/src/main/java/gregtech/common/blocks/GT_Block_Concretes.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Block_Concretes.java rename to src/main/java/gregtech/common/blocks/GT_Block_Concretes.java diff --git a/main/java/gregtech/common/blocks/GT_Block_Granites.java b/src/main/java/gregtech/common/blocks/GT_Block_Granites.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Block_Granites.java rename to src/main/java/gregtech/common/blocks/GT_Block_Granites.java diff --git a/main/java/gregtech/common/blocks/GT_Block_Machines.java b/src/main/java/gregtech/common/blocks/GT_Block_Machines.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Block_Machines.java rename to src/main/java/gregtech/common/blocks/GT_Block_Machines.java diff --git a/main/java/gregtech/common/blocks/GT_Block_Ores.java b/src/main/java/gregtech/common/blocks/GT_Block_Ores.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Block_Ores.java rename to src/main/java/gregtech/common/blocks/GT_Block_Ores.java diff --git a/main/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java b/src/main/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java rename to src/main/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java diff --git a/main/java/gregtech/common/blocks/GT_Item_Casings1.java b/src/main/java/gregtech/common/blocks/GT_Item_Casings1.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Item_Casings1.java rename to src/main/java/gregtech/common/blocks/GT_Item_Casings1.java diff --git a/main/java/gregtech/common/blocks/GT_Item_Casings2.java b/src/main/java/gregtech/common/blocks/GT_Item_Casings2.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Item_Casings2.java rename to src/main/java/gregtech/common/blocks/GT_Item_Casings2.java diff --git a/main/java/gregtech/common/blocks/GT_Item_Casings3.java b/src/main/java/gregtech/common/blocks/GT_Item_Casings3.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Item_Casings3.java rename to src/main/java/gregtech/common/blocks/GT_Item_Casings3.java diff --git a/main/java/gregtech/common/blocks/GT_Item_Casings4.java b/src/main/java/gregtech/common/blocks/GT_Item_Casings4.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Item_Casings4.java rename to src/main/java/gregtech/common/blocks/GT_Item_Casings4.java diff --git a/main/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java b/src/main/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java rename to src/main/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java diff --git a/main/java/gregtech/common/blocks/GT_Item_Concretes.java b/src/main/java/gregtech/common/blocks/GT_Item_Concretes.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Item_Concretes.java rename to src/main/java/gregtech/common/blocks/GT_Item_Concretes.java diff --git a/main/java/gregtech/common/blocks/GT_Item_Granites.java b/src/main/java/gregtech/common/blocks/GT_Item_Granites.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Item_Granites.java rename to src/main/java/gregtech/common/blocks/GT_Item_Granites.java diff --git a/main/java/gregtech/common/blocks/GT_Item_Machines.java b/src/main/java/gregtech/common/blocks/GT_Item_Machines.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Item_Machines.java rename to src/main/java/gregtech/common/blocks/GT_Item_Machines.java diff --git a/main/java/gregtech/common/blocks/GT_Item_Ores.java b/src/main/java/gregtech/common/blocks/GT_Item_Ores.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Item_Ores.java rename to src/main/java/gregtech/common/blocks/GT_Item_Ores.java diff --git a/main/java/gregtech/common/blocks/GT_Item_Stones_Abstract.java b/src/main/java/gregtech/common/blocks/GT_Item_Stones_Abstract.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Item_Stones_Abstract.java rename to src/main/java/gregtech/common/blocks/GT_Item_Stones_Abstract.java diff --git a/main/java/gregtech/common/blocks/GT_Material_Casings.java b/src/main/java/gregtech/common/blocks/GT_Material_Casings.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Material_Casings.java rename to src/main/java/gregtech/common/blocks/GT_Material_Casings.java diff --git a/main/java/gregtech/common/blocks/GT_Material_Machines.java b/src/main/java/gregtech/common/blocks/GT_Material_Machines.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Material_Machines.java rename to src/main/java/gregtech/common/blocks/GT_Material_Machines.java diff --git a/main/java/gregtech/common/blocks/GT_Packet_Ores.java b/src/main/java/gregtech/common/blocks/GT_Packet_Ores.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_Packet_Ores.java rename to src/main/java/gregtech/common/blocks/GT_Packet_Ores.java diff --git a/main/java/gregtech/common/blocks/GT_TileEntity_Ores.java b/src/main/java/gregtech/common/blocks/GT_TileEntity_Ores.java similarity index 100% rename from main/java/gregtech/common/blocks/GT_TileEntity_Ores.java rename to src/main/java/gregtech/common/blocks/GT_TileEntity_Ores.java diff --git a/main/java/gregtech/common/covers/GT_Cover_Arm.java b/src/main/java/gregtech/common/covers/GT_Cover_Arm.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_Arm.java rename to src/main/java/gregtech/common/covers/GT_Cover_Arm.java diff --git a/main/java/gregtech/common/covers/GT_Cover_Blastproof.java b/src/main/java/gregtech/common/covers/GT_Cover_Blastproof.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_Blastproof.java rename to src/main/java/gregtech/common/covers/GT_Cover_Blastproof.java diff --git a/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java b/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_ControlsWork.java rename to src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java diff --git a/main/java/gregtech/common/covers/GT_Cover_Conveyor.java b/src/main/java/gregtech/common/covers/GT_Cover_Conveyor.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_Conveyor.java rename to src/main/java/gregtech/common/covers/GT_Cover_Conveyor.java diff --git a/main/java/gregtech/common/covers/GT_Cover_Crafting.java b/src/main/java/gregtech/common/covers/GT_Cover_Crafting.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_Crafting.java rename to src/main/java/gregtech/common/covers/GT_Cover_Crafting.java diff --git a/main/java/gregtech/common/covers/GT_Cover_DoesWork.java b/src/main/java/gregtech/common/covers/GT_Cover_DoesWork.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_DoesWork.java rename to src/main/java/gregtech/common/covers/GT_Cover_DoesWork.java diff --git a/main/java/gregtech/common/covers/GT_Cover_Drain.java b/src/main/java/gregtech/common/covers/GT_Cover_Drain.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_Drain.java rename to src/main/java/gregtech/common/covers/GT_Cover_Drain.java diff --git a/main/java/gregtech/common/covers/GT_Cover_EUMeter.java b/src/main/java/gregtech/common/covers/GT_Cover_EUMeter.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_EUMeter.java rename to src/main/java/gregtech/common/covers/GT_Cover_EUMeter.java diff --git a/main/java/gregtech/common/covers/GT_Cover_EnergyOnly.java b/src/main/java/gregtech/common/covers/GT_Cover_EnergyOnly.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_EnergyOnly.java rename to src/main/java/gregtech/common/covers/GT_Cover_EnergyOnly.java diff --git a/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java b/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_ItemMeter.java rename to src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java diff --git a/main/java/gregtech/common/covers/GT_Cover_Lens.java b/src/main/java/gregtech/common/covers/GT_Cover_Lens.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_Lens.java rename to src/main/java/gregtech/common/covers/GT_Cover_Lens.java diff --git a/main/java/gregtech/common/covers/GT_Cover_LiquidMeter.java b/src/main/java/gregtech/common/covers/GT_Cover_LiquidMeter.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_LiquidMeter.java rename to src/main/java/gregtech/common/covers/GT_Cover_LiquidMeter.java diff --git a/main/java/gregtech/common/covers/GT_Cover_NeedMaintainance.java b/src/main/java/gregtech/common/covers/GT_Cover_NeedMaintainance.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_NeedMaintainance.java rename to src/main/java/gregtech/common/covers/GT_Cover_NeedMaintainance.java diff --git a/main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java b/src/main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java rename to src/main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java diff --git a/main/java/gregtech/common/covers/GT_Cover_Pump.java b/src/main/java/gregtech/common/covers/GT_Cover_Pump.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_Pump.java rename to src/main/java/gregtech/common/covers/GT_Cover_Pump.java diff --git a/main/java/gregtech/common/covers/GT_Cover_RedstoneConductor.java b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneConductor.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_RedstoneConductor.java rename to src/main/java/gregtech/common/covers/GT_Cover_RedstoneConductor.java diff --git a/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverExternal.java b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverExternal.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverExternal.java rename to src/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverExternal.java diff --git a/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverInternal.java b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverInternal.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverInternal.java rename to src/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverInternal.java diff --git a/main/java/gregtech/common/covers/GT_Cover_RedstoneSignalizer.java b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneSignalizer.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_RedstoneSignalizer.java rename to src/main/java/gregtech/common/covers/GT_Cover_RedstoneSignalizer.java diff --git a/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterExternal.java b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterExternal.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterExternal.java rename to src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterExternal.java diff --git a/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterInternal.java b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterInternal.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterInternal.java rename to src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterInternal.java diff --git a/main/java/gregtech/common/covers/GT_Cover_RedstoneWirelessBase.java b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneWirelessBase.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_RedstoneWirelessBase.java rename to src/main/java/gregtech/common/covers/GT_Cover_RedstoneWirelessBase.java diff --git a/main/java/gregtech/common/covers/GT_Cover_Screen.java b/src/main/java/gregtech/common/covers/GT_Cover_Screen.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_Screen.java rename to src/main/java/gregtech/common/covers/GT_Cover_Screen.java diff --git a/main/java/gregtech/common/covers/GT_Cover_Shutter.java b/src/main/java/gregtech/common/covers/GT_Cover_Shutter.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_Shutter.java rename to src/main/java/gregtech/common/covers/GT_Cover_Shutter.java diff --git a/main/java/gregtech/common/covers/GT_Cover_SolarPanel.java b/src/main/java/gregtech/common/covers/GT_Cover_SolarPanel.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_SolarPanel.java rename to src/main/java/gregtech/common/covers/GT_Cover_SolarPanel.java diff --git a/main/java/gregtech/common/covers/GT_Cover_Vent.java b/src/main/java/gregtech/common/covers/GT_Cover_Vent.java similarity index 100% rename from main/java/gregtech/common/covers/GT_Cover_Vent.java rename to src/main/java/gregtech/common/covers/GT_Cover_Vent.java diff --git a/main/java/gregtech/common/entities/GT_Entity_Arrow.java b/src/main/java/gregtech/common/entities/GT_Entity_Arrow.java similarity index 100% rename from main/java/gregtech/common/entities/GT_Entity_Arrow.java rename to src/main/java/gregtech/common/entities/GT_Entity_Arrow.java diff --git a/main/java/gregtech/common/entities/GT_Entity_Arrow_Potion.java b/src/main/java/gregtech/common/entities/GT_Entity_Arrow_Potion.java similarity index 100% rename from main/java/gregtech/common/entities/GT_Entity_Arrow_Potion.java rename to src/main/java/gregtech/common/entities/GT_Entity_Arrow_Potion.java diff --git a/main/java/gregtech/common/gui/GT_Container_Boiler.java b/src/main/java/gregtech/common/gui/GT_Container_Boiler.java similarity index 100% rename from main/java/gregtech/common/gui/GT_Container_Boiler.java rename to src/main/java/gregtech/common/gui/GT_Container_Boiler.java diff --git a/main/java/gregtech/common/gui/GT_Container_BronzeBlastFurnace.java b/src/main/java/gregtech/common/gui/GT_Container_BronzeBlastFurnace.java similarity index 100% rename from main/java/gregtech/common/gui/GT_Container_BronzeBlastFurnace.java rename to src/main/java/gregtech/common/gui/GT_Container_BronzeBlastFurnace.java diff --git a/main/java/gregtech/common/gui/GT_Container_ChestBuffer.java b/src/main/java/gregtech/common/gui/GT_Container_ChestBuffer.java similarity index 100% rename from main/java/gregtech/common/gui/GT_Container_ChestBuffer.java rename to src/main/java/gregtech/common/gui/GT_Container_ChestBuffer.java diff --git a/main/java/gregtech/common/gui/GT_Container_Filter.java b/src/main/java/gregtech/common/gui/GT_Container_Filter.java similarity index 100% rename from main/java/gregtech/common/gui/GT_Container_Filter.java rename to src/main/java/gregtech/common/gui/GT_Container_Filter.java diff --git a/main/java/gregtech/common/gui/GT_Container_QuantumChest.java b/src/main/java/gregtech/common/gui/GT_Container_QuantumChest.java similarity index 100% rename from main/java/gregtech/common/gui/GT_Container_QuantumChest.java rename to src/main/java/gregtech/common/gui/GT_Container_QuantumChest.java diff --git a/main/java/gregtech/common/gui/GT_Container_Regulator.java b/src/main/java/gregtech/common/gui/GT_Container_Regulator.java similarity index 100% rename from main/java/gregtech/common/gui/GT_Container_Regulator.java rename to src/main/java/gregtech/common/gui/GT_Container_Regulator.java diff --git a/main/java/gregtech/common/gui/GT_Container_SuperBuffer.java b/src/main/java/gregtech/common/gui/GT_Container_SuperBuffer.java similarity index 100% rename from main/java/gregtech/common/gui/GT_Container_SuperBuffer.java rename to src/main/java/gregtech/common/gui/GT_Container_SuperBuffer.java diff --git a/main/java/gregtech/common/gui/GT_Container_Teleporter.java b/src/main/java/gregtech/common/gui/GT_Container_Teleporter.java similarity index 100% rename from main/java/gregtech/common/gui/GT_Container_Teleporter.java rename to src/main/java/gregtech/common/gui/GT_Container_Teleporter.java diff --git a/main/java/gregtech/common/gui/GT_Container_TypeFilter.java b/src/main/java/gregtech/common/gui/GT_Container_TypeFilter.java similarity index 100% rename from main/java/gregtech/common/gui/GT_Container_TypeFilter.java rename to src/main/java/gregtech/common/gui/GT_Container_TypeFilter.java diff --git a/main/java/gregtech/common/gui/GT_GUIContainer_Boiler.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_Boiler.java similarity index 100% rename from main/java/gregtech/common/gui/GT_GUIContainer_Boiler.java rename to src/main/java/gregtech/common/gui/GT_GUIContainer_Boiler.java diff --git a/main/java/gregtech/common/gui/GT_GUIContainer_BronzeBlastFurnace.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_BronzeBlastFurnace.java similarity index 100% rename from main/java/gregtech/common/gui/GT_GUIContainer_BronzeBlastFurnace.java rename to src/main/java/gregtech/common/gui/GT_GUIContainer_BronzeBlastFurnace.java diff --git a/main/java/gregtech/common/gui/GT_GUIContainer_ChestBuffer.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_ChestBuffer.java similarity index 100% rename from main/java/gregtech/common/gui/GT_GUIContainer_ChestBuffer.java rename to src/main/java/gregtech/common/gui/GT_GUIContainer_ChestBuffer.java diff --git a/main/java/gregtech/common/gui/GT_GUIContainer_Filter.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_Filter.java similarity index 100% rename from main/java/gregtech/common/gui/GT_GUIContainer_Filter.java rename to src/main/java/gregtech/common/gui/GT_GUIContainer_Filter.java diff --git a/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java similarity index 100% rename from main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java rename to src/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java diff --git a/main/java/gregtech/common/gui/GT_GUIContainer_QuantumChest.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_QuantumChest.java similarity index 100% rename from main/java/gregtech/common/gui/GT_GUIContainer_QuantumChest.java rename to src/main/java/gregtech/common/gui/GT_GUIContainer_QuantumChest.java diff --git a/main/java/gregtech/common/gui/GT_GUIContainer_Regulator.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_Regulator.java similarity index 100% rename from main/java/gregtech/common/gui/GT_GUIContainer_Regulator.java rename to src/main/java/gregtech/common/gui/GT_GUIContainer_Regulator.java diff --git a/main/java/gregtech/common/gui/GT_GUIContainer_SuperBuffer.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_SuperBuffer.java similarity index 100% rename from main/java/gregtech/common/gui/GT_GUIContainer_SuperBuffer.java rename to src/main/java/gregtech/common/gui/GT_GUIContainer_SuperBuffer.java diff --git a/main/java/gregtech/common/gui/GT_GUIContainer_Teleporter.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_Teleporter.java similarity index 100% rename from main/java/gregtech/common/gui/GT_GUIContainer_Teleporter.java rename to src/main/java/gregtech/common/gui/GT_GUIContainer_Teleporter.java diff --git a/main/java/gregtech/common/gui/GT_GUIContainer_TypeFilter.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_TypeFilter.java similarity index 100% rename from main/java/gregtech/common/gui/GT_GUIContainer_TypeFilter.java rename to src/main/java/gregtech/common/gui/GT_GUIContainer_TypeFilter.java diff --git a/main/java/gregtech/common/items/GT_DepletetCell_Item.java b/src/main/java/gregtech/common/items/GT_DepletetCell_Item.java similarity index 100% rename from main/java/gregtech/common/items/GT_DepletetCell_Item.java rename to src/main/java/gregtech/common/items/GT_DepletetCell_Item.java diff --git a/main/java/gregtech/common/items/GT_FluidDisplayItem.java b/src/main/java/gregtech/common/items/GT_FluidDisplayItem.java similarity index 100% rename from main/java/gregtech/common/items/GT_FluidDisplayItem.java rename to src/main/java/gregtech/common/items/GT_FluidDisplayItem.java diff --git a/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java b/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java similarity index 100% rename from main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java rename to src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java diff --git a/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java similarity index 100% rename from main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java rename to src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java diff --git a/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java similarity index 100% rename from main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java rename to src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java diff --git a/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java similarity index 100% rename from main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java rename to src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java diff --git a/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java similarity index 100% rename from main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java rename to src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java diff --git a/main/java/gregtech/common/items/GT_NeutronReflector_Item.java b/src/main/java/gregtech/common/items/GT_NeutronReflector_Item.java similarity index 100% rename from main/java/gregtech/common/items/GT_NeutronReflector_Item.java rename to src/main/java/gregtech/common/items/GT_NeutronReflector_Item.java diff --git a/main/java/gregtech/common/items/GT_SensorCard_Item.java b/src/main/java/gregtech/common/items/GT_SensorCard_Item.java similarity index 100% rename from main/java/gregtech/common/items/GT_SensorCard_Item.java rename to src/main/java/gregtech/common/items/GT_SensorCard_Item.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Arrow.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Arrow.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_Arrow.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_Arrow.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Arrow_Potion.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Arrow_Potion.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_Arrow_Potion.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_Arrow_Potion.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Crowbar.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Crowbar.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_Crowbar.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_Crowbar.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_DataOrb.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_DataOrb.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_DataOrb.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_DataOrb.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_DataStick.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_DataStick.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_DataStick.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_DataStick.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Hoe.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Hoe.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_Hoe.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_Hoe.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Lighter.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Lighter.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_Lighter.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_Lighter.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_None.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_None.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_None.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_None.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Essentia.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Essentia.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Essentia.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Essentia.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Item.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Item.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Item.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Item.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_PrintedPages.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_PrintedPages.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_PrintedPages.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_PrintedPages.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Scanner.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Scanner.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_Scanner.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_Scanner.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Scoop.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Scoop.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_Scoop.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_Scoop.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Screwdriver.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Screwdriver.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_Screwdriver.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_Screwdriver.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Sense.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Sense.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_Sense.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_Sense.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_SensorKit.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_SensorKit.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_SensorKit.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_SensorKit.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_SoftHammer.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_SoftHammer.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_SoftHammer.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_SoftHammer.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Sonictron.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Sonictron.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_Sonictron.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_Sonictron.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_Wrench.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Wrench.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_Wrench.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_Wrench.java diff --git a/main/java/gregtech/common/items/behaviors/Behaviour_WrittenBook.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_WrittenBook.java similarity index 100% rename from main/java/gregtech/common/items/behaviors/Behaviour_WrittenBook.java rename to src/main/java/gregtech/common/items/behaviors/Behaviour_WrittenBook.java diff --git a/main/java/gregtech/common/redstonecircuits/GT_Circuit_BasicLogic.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BasicLogic.java similarity index 100% rename from main/java/gregtech/common/redstonecircuits/GT_Circuit_BasicLogic.java rename to src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BasicLogic.java diff --git a/main/java/gregtech/common/redstonecircuits/GT_Circuit_BitAnd.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BitAnd.java similarity index 100% rename from main/java/gregtech/common/redstonecircuits/GT_Circuit_BitAnd.java rename to src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BitAnd.java diff --git a/main/java/gregtech/common/redstonecircuits/GT_Circuit_CombinationLock.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_CombinationLock.java similarity index 100% rename from main/java/gregtech/common/redstonecircuits/GT_Circuit_CombinationLock.java rename to src/main/java/gregtech/common/redstonecircuits/GT_Circuit_CombinationLock.java diff --git a/main/java/gregtech/common/redstonecircuits/GT_Circuit_Equals.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Equals.java similarity index 100% rename from main/java/gregtech/common/redstonecircuits/GT_Circuit_Equals.java rename to src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Equals.java diff --git a/main/java/gregtech/common/redstonecircuits/GT_Circuit_Pulser.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Pulser.java similarity index 100% rename from main/java/gregtech/common/redstonecircuits/GT_Circuit_Pulser.java rename to src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Pulser.java diff --git a/main/java/gregtech/common/redstonecircuits/GT_Circuit_Randomizer.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Randomizer.java similarity index 100% rename from main/java/gregtech/common/redstonecircuits/GT_Circuit_Randomizer.java rename to src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Randomizer.java diff --git a/main/java/gregtech/common/redstonecircuits/GT_Circuit_RedstoneMeter.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_RedstoneMeter.java similarity index 100% rename from main/java/gregtech/common/redstonecircuits/GT_Circuit_RedstoneMeter.java rename to src/main/java/gregtech/common/redstonecircuits/GT_Circuit_RedstoneMeter.java diff --git a/main/java/gregtech/common/redstonecircuits/GT_Circuit_Repeater.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Repeater.java similarity index 100% rename from main/java/gregtech/common/redstonecircuits/GT_Circuit_Repeater.java rename to src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Repeater.java diff --git a/main/java/gregtech/common/redstonecircuits/GT_Circuit_Timer.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Timer.java similarity index 100% rename from main/java/gregtech/common/redstonecircuits/GT_Circuit_Timer.java rename to src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Timer.java diff --git a/main/java/gregtech/common/render/GT_CapeRenderer.java b/src/main/java/gregtech/common/render/GT_CapeRenderer.java similarity index 100% rename from main/java/gregtech/common/render/GT_CapeRenderer.java rename to src/main/java/gregtech/common/render/GT_CapeRenderer.java diff --git a/main/java/gregtech/common/render/GT_MetaGenerated_Item_Renderer.java b/src/main/java/gregtech/common/render/GT_MetaGenerated_Item_Renderer.java similarity index 100% rename from main/java/gregtech/common/render/GT_MetaGenerated_Item_Renderer.java rename to src/main/java/gregtech/common/render/GT_MetaGenerated_Item_Renderer.java diff --git a/main/java/gregtech/common/render/GT_MetaGenerated_Tool_Renderer.java b/src/main/java/gregtech/common/render/GT_MetaGenerated_Tool_Renderer.java similarity index 100% rename from main/java/gregtech/common/render/GT_MetaGenerated_Tool_Renderer.java rename to src/main/java/gregtech/common/render/GT_MetaGenerated_Tool_Renderer.java diff --git a/main/java/gregtech/common/render/GT_RenderUtil.java b/src/main/java/gregtech/common/render/GT_RenderUtil.java similarity index 100% rename from main/java/gregtech/common/render/GT_RenderUtil.java rename to src/main/java/gregtech/common/render/GT_RenderUtil.java diff --git a/main/java/gregtech/common/render/GT_Renderer_Block.java b/src/main/java/gregtech/common/render/GT_Renderer_Block.java similarity index 100% rename from main/java/gregtech/common/render/GT_Renderer_Block.java rename to src/main/java/gregtech/common/render/GT_Renderer_Block.java diff --git a/main/java/gregtech/common/render/GT_Renderer_Entity_Arrow.java b/src/main/java/gregtech/common/render/GT_Renderer_Entity_Arrow.java similarity index 100% rename from main/java/gregtech/common/render/GT_Renderer_Entity_Arrow.java rename to src/main/java/gregtech/common/render/GT_Renderer_Entity_Arrow.java diff --git a/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java similarity index 100% rename from main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java rename to src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java diff --git a/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Filter.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Filter.java similarity index 100% rename from main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Filter.java rename to src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Filter.java diff --git a/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java similarity index 100% rename from main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java rename to src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java diff --git a/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_SuperBuffer.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_SuperBuffer.java similarity index 100% rename from main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_SuperBuffer.java rename to src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_SuperBuffer.java diff --git a/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java similarity index 100% rename from main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java rename to src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java diff --git a/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler.java similarity index 100% rename from main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler.java rename to src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler.java diff --git a/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Bronze.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Bronze.java similarity index 100% rename from main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Bronze.java rename to src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Bronze.java diff --git a/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java similarity index 100% rename from main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java rename to src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java diff --git a/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java similarity index 100% rename from main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java rename to src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java diff --git a/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Steel.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Steel.java similarity index 100% rename from main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Steel.java rename to src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Steel.java diff --git a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java similarity index 100% rename from main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java rename to src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java diff --git a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_FluidNaquadahReactor.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_FluidNaquadahReactor.java similarity index 100% rename from main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_FluidNaquadahReactor.java rename to src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_FluidNaquadahReactor.java diff --git a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java similarity index 100% rename from main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java rename to src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java diff --git a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java similarity index 100% rename from main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java rename to src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java diff --git a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java similarity index 100% rename from main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java rename to src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java diff --git a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java similarity index 100% rename from main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java rename to src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java diff --git a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SolidNaquadahReactor.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SolidNaquadahReactor.java similarity index 100% rename from main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SolidNaquadahReactor.java rename to src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SolidNaquadahReactor.java diff --git a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java similarity index 100% rename from main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java rename to src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java diff --git a/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Bronze.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Bronze.java rename to src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Bronze.java diff --git a/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_BronzeBricks.java b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_BronzeBricks.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_BronzeBricks.java rename to src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_BronzeBricks.java diff --git a/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Steel.java b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Steel.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Steel.java rename to src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Steel.java diff --git a/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_SteelBricks.java b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_SteelBricks.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_SteelBricks.java rename to src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_SteelBricks.java diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Boxinator.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Boxinator.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Boxinator.java rename to src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Boxinator.java diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java rename to src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java rename to src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MonsterRepellent.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MonsterRepellent.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MonsterRepellent.java rename to src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MonsterRepellent.java diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_PotionBrewer.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_PotionBrewer.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_PotionBrewer.java rename to src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_PotionBrewer.java diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Printer.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Printer.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Printer.java rename to src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Printer.java diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java rename to src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Replicator.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Replicator.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Replicator.java rename to src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Replicator.java diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_RockBreaker.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_RockBreaker.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_RockBreaker.java rename to src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_RockBreaker.java diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java rename to src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java rename to src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java rename to src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java rename to src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java rename to src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java rename to src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer1.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer1.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer1.java rename to src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer1.java diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer2.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer2.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer2.java rename to src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer2.java diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer3.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer3.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer3.java rename to src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer3.java diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java rename to src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java rename to src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java rename to src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Bronze.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Bronze.java rename to src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Bronze.java diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Steel.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Steel.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Steel.java rename to src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Steel.java diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Titanium.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Titanium.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Titanium.java rename to src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Titanium.java diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_TungstenSteel.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_TungstenSteel.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_TungstenSteel.java rename to src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_TungstenSteel.java diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java rename to src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java rename to src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java rename to src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java rename to src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java rename to src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java rename to src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java rename to src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java rename to src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Bronze.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Bronze.java rename to src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Bronze.java diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Steel.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Steel.java rename to src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Steel.java diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java rename to src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java rename to src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java rename to src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java rename to src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java rename to src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java rename to src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Bronze.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Bronze.java rename to src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Bronze.java diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Steel.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Steel.java rename to src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Steel.java diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Bronze.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Bronze.java rename to src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Bronze.java diff --git a/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java similarity index 100% rename from main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java rename to src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java diff --git a/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_Locker.java b/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_Locker.java similarity index 100% rename from main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_Locker.java rename to src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_Locker.java diff --git a/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumChest.java b/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumChest.java similarity index 100% rename from main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumChest.java rename to src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumChest.java diff --git a/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumTank.java b/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumTank.java similarity index 100% rename from main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumTank.java rename to src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumTank.java diff --git a/main/java/gregtech/common/tools/GT_Tool.java b/src/main/java/gregtech/common/tools/GT_Tool.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool.java rename to src/main/java/gregtech/common/tools/GT_Tool.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Axe.java b/src/main/java/gregtech/common/tools/GT_Tool_Axe.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Axe.java rename to src/main/java/gregtech/common/tools/GT_Tool_Axe.java diff --git a/main/java/gregtech/common/tools/GT_Tool_BranchCutter.java b/src/main/java/gregtech/common/tools/GT_Tool_BranchCutter.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_BranchCutter.java rename to src/main/java/gregtech/common/tools/GT_Tool_BranchCutter.java diff --git a/main/java/gregtech/common/tools/GT_Tool_ButcheryKnife.java b/src/main/java/gregtech/common/tools/GT_Tool_ButcheryKnife.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_ButcheryKnife.java rename to src/main/java/gregtech/common/tools/GT_Tool_ButcheryKnife.java diff --git a/main/java/gregtech/common/tools/GT_Tool_BuzzSaw.java b/src/main/java/gregtech/common/tools/GT_Tool_BuzzSaw.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_BuzzSaw.java rename to src/main/java/gregtech/common/tools/GT_Tool_BuzzSaw.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Chainsaw_HV.java b/src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_HV.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Chainsaw_HV.java rename to src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_HV.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Chainsaw_LV.java b/src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_LV.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Chainsaw_LV.java rename to src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_LV.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Chainsaw_MV.java b/src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_MV.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Chainsaw_MV.java rename to src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_MV.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Crowbar.java b/src/main/java/gregtech/common/tools/GT_Tool_Crowbar.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Crowbar.java rename to src/main/java/gregtech/common/tools/GT_Tool_Crowbar.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Drill_HV.java b/src/main/java/gregtech/common/tools/GT_Tool_Drill_HV.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Drill_HV.java rename to src/main/java/gregtech/common/tools/GT_Tool_Drill_HV.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Drill_LV.java b/src/main/java/gregtech/common/tools/GT_Tool_Drill_LV.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Drill_LV.java rename to src/main/java/gregtech/common/tools/GT_Tool_Drill_LV.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Drill_MV.java b/src/main/java/gregtech/common/tools/GT_Tool_Drill_MV.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Drill_MV.java rename to src/main/java/gregtech/common/tools/GT_Tool_Drill_MV.java diff --git a/main/java/gregtech/common/tools/GT_Tool_File.java b/src/main/java/gregtech/common/tools/GT_Tool_File.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_File.java rename to src/main/java/gregtech/common/tools/GT_Tool_File.java diff --git a/main/java/gregtech/common/tools/GT_Tool_HardHammer.java b/src/main/java/gregtech/common/tools/GT_Tool_HardHammer.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_HardHammer.java rename to src/main/java/gregtech/common/tools/GT_Tool_HardHammer.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Hoe.java b/src/main/java/gregtech/common/tools/GT_Tool_Hoe.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Hoe.java rename to src/main/java/gregtech/common/tools/GT_Tool_Hoe.java diff --git a/main/java/gregtech/common/tools/GT_Tool_JackHammer.java b/src/main/java/gregtech/common/tools/GT_Tool_JackHammer.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_JackHammer.java rename to src/main/java/gregtech/common/tools/GT_Tool_JackHammer.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Knife.java b/src/main/java/gregtech/common/tools/GT_Tool_Knife.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Knife.java rename to src/main/java/gregtech/common/tools/GT_Tool_Knife.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Mortar.java b/src/main/java/gregtech/common/tools/GT_Tool_Mortar.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Mortar.java rename to src/main/java/gregtech/common/tools/GT_Tool_Mortar.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Pickaxe.java b/src/main/java/gregtech/common/tools/GT_Tool_Pickaxe.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Pickaxe.java rename to src/main/java/gregtech/common/tools/GT_Tool_Pickaxe.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Plow.java b/src/main/java/gregtech/common/tools/GT_Tool_Plow.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Plow.java rename to src/main/java/gregtech/common/tools/GT_Tool_Plow.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Plunger.java b/src/main/java/gregtech/common/tools/GT_Tool_Plunger.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Plunger.java rename to src/main/java/gregtech/common/tools/GT_Tool_Plunger.java diff --git a/main/java/gregtech/common/tools/GT_Tool_RollingPin.java b/src/main/java/gregtech/common/tools/GT_Tool_RollingPin.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_RollingPin.java rename to src/main/java/gregtech/common/tools/GT_Tool_RollingPin.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Saw.java b/src/main/java/gregtech/common/tools/GT_Tool_Saw.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Saw.java rename to src/main/java/gregtech/common/tools/GT_Tool_Saw.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Scoop.java b/src/main/java/gregtech/common/tools/GT_Tool_Scoop.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Scoop.java rename to src/main/java/gregtech/common/tools/GT_Tool_Scoop.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Screwdriver.java b/src/main/java/gregtech/common/tools/GT_Tool_Screwdriver.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Screwdriver.java rename to src/main/java/gregtech/common/tools/GT_Tool_Screwdriver.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Screwdriver_LV.java b/src/main/java/gregtech/common/tools/GT_Tool_Screwdriver_LV.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Screwdriver_LV.java rename to src/main/java/gregtech/common/tools/GT_Tool_Screwdriver_LV.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Sense.java b/src/main/java/gregtech/common/tools/GT_Tool_Sense.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Sense.java rename to src/main/java/gregtech/common/tools/GT_Tool_Sense.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Shovel.java b/src/main/java/gregtech/common/tools/GT_Tool_Shovel.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Shovel.java rename to src/main/java/gregtech/common/tools/GT_Tool_Shovel.java diff --git a/main/java/gregtech/common/tools/GT_Tool_SoftHammer.java b/src/main/java/gregtech/common/tools/GT_Tool_SoftHammer.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_SoftHammer.java rename to src/main/java/gregtech/common/tools/GT_Tool_SoftHammer.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Soldering_Iron.java b/src/main/java/gregtech/common/tools/GT_Tool_Soldering_Iron.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Soldering_Iron.java rename to src/main/java/gregtech/common/tools/GT_Tool_Soldering_Iron.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Sword.java b/src/main/java/gregtech/common/tools/GT_Tool_Sword.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Sword.java rename to src/main/java/gregtech/common/tools/GT_Tool_Sword.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Turbine.java b/src/main/java/gregtech/common/tools/GT_Tool_Turbine.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Turbine.java rename to src/main/java/gregtech/common/tools/GT_Tool_Turbine.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Turbine_Huge.java b/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Huge.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Turbine_Huge.java rename to src/main/java/gregtech/common/tools/GT_Tool_Turbine_Huge.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Turbine_Large.java b/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Large.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Turbine_Large.java rename to src/main/java/gregtech/common/tools/GT_Tool_Turbine_Large.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Turbine_Normal.java b/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Normal.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Turbine_Normal.java rename to src/main/java/gregtech/common/tools/GT_Tool_Turbine_Normal.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Turbine_Small.java b/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Small.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Turbine_Small.java rename to src/main/java/gregtech/common/tools/GT_Tool_Turbine_Small.java diff --git a/main/java/gregtech/common/tools/GT_Tool_UniversalSpade.java b/src/main/java/gregtech/common/tools/GT_Tool_UniversalSpade.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_UniversalSpade.java rename to src/main/java/gregtech/common/tools/GT_Tool_UniversalSpade.java diff --git a/main/java/gregtech/common/tools/GT_Tool_WireCutter.java b/src/main/java/gregtech/common/tools/GT_Tool_WireCutter.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_WireCutter.java rename to src/main/java/gregtech/common/tools/GT_Tool_WireCutter.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Wrench.java b/src/main/java/gregtech/common/tools/GT_Tool_Wrench.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Wrench.java rename to src/main/java/gregtech/common/tools/GT_Tool_Wrench.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Wrench_HV.java b/src/main/java/gregtech/common/tools/GT_Tool_Wrench_HV.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Wrench_HV.java rename to src/main/java/gregtech/common/tools/GT_Tool_Wrench_HV.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Wrench_LV.java b/src/main/java/gregtech/common/tools/GT_Tool_Wrench_LV.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Wrench_LV.java rename to src/main/java/gregtech/common/tools/GT_Tool_Wrench_LV.java diff --git a/main/java/gregtech/common/tools/GT_Tool_Wrench_MV.java b/src/main/java/gregtech/common/tools/GT_Tool_Wrench_MV.java similarity index 100% rename from main/java/gregtech/common/tools/GT_Tool_Wrench_MV.java rename to src/main/java/gregtech/common/tools/GT_Tool_Wrench_MV.java diff --git a/main/java/gregtech/loaders/load/GT_CoverBehaviorLoader.java b/src/main/java/gregtech/loaders/load/GT_CoverBehaviorLoader.java similarity index 100% rename from main/java/gregtech/loaders/load/GT_CoverBehaviorLoader.java rename to src/main/java/gregtech/loaders/load/GT_CoverBehaviorLoader.java diff --git a/main/java/gregtech/loaders/load/GT_FuelLoader.java b/src/main/java/gregtech/loaders/load/GT_FuelLoader.java similarity index 100% rename from main/java/gregtech/loaders/load/GT_FuelLoader.java rename to src/main/java/gregtech/loaders/load/GT_FuelLoader.java diff --git a/main/java/gregtech/loaders/load/GT_ItemIterator.java b/src/main/java/gregtech/loaders/load/GT_ItemIterator.java similarity index 100% rename from main/java/gregtech/loaders/load/GT_ItemIterator.java rename to src/main/java/gregtech/loaders/load/GT_ItemIterator.java diff --git a/main/java/gregtech/loaders/load/GT_SonictronLoader.java b/src/main/java/gregtech/loaders/load/GT_SonictronLoader.java similarity index 100% rename from main/java/gregtech/loaders/load/GT_SonictronLoader.java rename to src/main/java/gregtech/loaders/load/GT_SonictronLoader.java diff --git a/main/java/gregtech/loaders/misc/GT_Achievements.java b/src/main/java/gregtech/loaders/misc/GT_Achievements.java similarity index 100% rename from main/java/gregtech/loaders/misc/GT_Achievements.java rename to src/main/java/gregtech/loaders/misc/GT_Achievements.java diff --git a/main/java/gregtech/loaders/misc/GT_CoverLoader.java b/src/main/java/gregtech/loaders/misc/GT_CoverLoader.java similarity index 100% rename from main/java/gregtech/loaders/misc/GT_CoverLoader.java rename to src/main/java/gregtech/loaders/misc/GT_CoverLoader.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingAll.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingAll.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingAll.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingAll.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingBattery.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBattery.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingBattery.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingBattery.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingBolt.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBolt.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingBolt.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingBolt.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingCell.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingCellPlasma.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCellPlasma.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingCellPlasma.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingCellPlasma.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingCircuit.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCircuit.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingCircuit.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingCircuit.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingCompressed.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCompressed.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingCompressed.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingCompressed.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedCentrifuged.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedCentrifuged.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingCrushedCentrifuged.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedCentrifuged.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedPurified.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedPurified.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingCrushedPurified.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedPurified.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingDust.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingDustImpure.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDustImpure.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingDustImpure.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingDustImpure.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingDustSmall.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDustSmall.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingDustSmall.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingDustSmall.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingDustTiny.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDustTiny.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingDustTiny.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingDustTiny.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingDye.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingFood.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingGear.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGear.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingGear.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingGear.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingGearSmall.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGearSmall.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingGearSmall.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingGearSmall.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingGem.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingGemChipped.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGemChipped.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingGemChipped.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingGemChipped.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingGemExquisite.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGemExquisite.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingGemExquisite.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingGemExquisite.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawed.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawed.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawed.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawed.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawless.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawless.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawless.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawless.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingIngot1.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot1.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingIngot1.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot1.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingIngot2.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot2.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingIngot2.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot2.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingIngot3.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot3.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingIngot3.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot3.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingIngot4.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot4.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingIngot4.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot4.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingIngot5.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot5.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingIngot5.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot5.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingIngotHot.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngotHot.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingIngotHot.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingIngotHot.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingItem.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingItem.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingItem.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingItem.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingLeaves.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLeaves.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingLeaves.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingLeaves.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingLens.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingLog.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingOre.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingOreSmelting.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOreSmelting.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingOreSmelting.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingOreSmelting.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPipeLarge.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeLarge.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingPipeLarge.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeLarge.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPipeMedium.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeMedium.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingPipeMedium.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeMedium.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPipeRestrictive.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeRestrictive.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingPipeRestrictive.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeRestrictive.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPipeSmall.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeSmall.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingPipeSmall.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeSmall.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPlate1.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate1.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingPlate1.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate1.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPlate2.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate2.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingPlate2.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate2.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPlate3.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate3.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingPlate3.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate3.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPlate4.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate4.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingPlate4.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate4.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPlate5.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate5.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingPlate5.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate5.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPlate9.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate9.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingPlate9.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate9.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPlateAlloy.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlateAlloy.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingPlateAlloy.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingPlateAlloy.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingPure.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPure.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingPure.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingPure.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingSand.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSand.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingSand.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingSand.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingStick.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStick.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingStick.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingStick.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingStone.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStone.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingStone.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingStone.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingStoneCobble.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStoneCobble.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingStoneCobble.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingStoneCobble.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingStoneVarious.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStoneVarious.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingStoneVarious.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingStoneVarious.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadArrow.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadArrow.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadArrow.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadArrow.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadAxe.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadAxe.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadAxe.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadAxe.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadBuzzSaw.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadBuzzSaw.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadBuzzSaw.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadBuzzSaw.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadChainsaw.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadChainsaw.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadChainsaw.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadChainsaw.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadDrill.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadDrill.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadDrill.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadDrill.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadFile.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadFile.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadFile.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadFile.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHammer.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHammer.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHammer.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHammer.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHoe.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHoe.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHoe.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHoe.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPickaxe.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPickaxe.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPickaxe.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPickaxe.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPlow.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPlow.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPlow.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPlow.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSaw.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSaw.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSaw.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSaw.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSense.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSense.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSense.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSense.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadShovel.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadShovel.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadShovel.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadShovel.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSword.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSword.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSword.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSword.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadUniversalSpade.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadUniversalSpade.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadUniversalSpade.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadUniversalSpade.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadWrench.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadWrench.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadWrench.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadWrench.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingWax.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWax.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingWax.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingWax.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingWire01.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire01.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingWire01.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingWire01.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingWire02.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire02.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingWire02.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingWire02.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingWire04.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire04.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingWire04.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingWire04.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingWire08.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire08.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingWire08.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingWire08.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingWire12.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire12.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingWire12.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingWire12.java diff --git a/main/java/gregtech/loaders/oreprocessing/ProcessingWire16.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire16.java similarity index 100% rename from main/java/gregtech/loaders/oreprocessing/ProcessingWire16.java rename to src/main/java/gregtech/loaders/oreprocessing/ProcessingWire16.java diff --git a/main/java/gregtech/loaders/postload/GT_BlockResistanceLoader.java b/src/main/java/gregtech/loaders/postload/GT_BlockResistanceLoader.java similarity index 100% rename from main/java/gregtech/loaders/postload/GT_BlockResistanceLoader.java rename to src/main/java/gregtech/loaders/postload/GT_BlockResistanceLoader.java diff --git a/main/java/gregtech/loaders/postload/GT_BookAndLootLoader.java b/src/main/java/gregtech/loaders/postload/GT_BookAndLootLoader.java similarity index 100% rename from main/java/gregtech/loaders/postload/GT_BookAndLootLoader.java rename to src/main/java/gregtech/loaders/postload/GT_BookAndLootLoader.java diff --git a/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java similarity index 100% rename from main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java rename to src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java diff --git a/main/java/gregtech/loaders/postload/GT_CropLoader.java b/src/main/java/gregtech/loaders/postload/GT_CropLoader.java similarity index 100% rename from main/java/gregtech/loaders/postload/GT_CropLoader.java rename to src/main/java/gregtech/loaders/postload/GT_CropLoader.java diff --git a/main/java/gregtech/loaders/postload/GT_ItemMaxStacksizeLoader.java b/src/main/java/gregtech/loaders/postload/GT_ItemMaxStacksizeLoader.java similarity index 100% rename from main/java/gregtech/loaders/postload/GT_ItemMaxStacksizeLoader.java rename to src/main/java/gregtech/loaders/postload/GT_ItemMaxStacksizeLoader.java diff --git a/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java similarity index 100% rename from main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java rename to src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java diff --git a/main/java/gregtech/loaders/postload/GT_MinableRegistrator.java b/src/main/java/gregtech/loaders/postload/GT_MinableRegistrator.java similarity index 100% rename from main/java/gregtech/loaders/postload/GT_MinableRegistrator.java rename to src/main/java/gregtech/loaders/postload/GT_MinableRegistrator.java diff --git a/main/java/gregtech/loaders/postload/GT_RecyclerBlacklistLoader.java b/src/main/java/gregtech/loaders/postload/GT_RecyclerBlacklistLoader.java similarity index 100% rename from main/java/gregtech/loaders/postload/GT_RecyclerBlacklistLoader.java rename to src/main/java/gregtech/loaders/postload/GT_RecyclerBlacklistLoader.java diff --git a/main/java/gregtech/loaders/postload/GT_ScrapboxDropLoader.java b/src/main/java/gregtech/loaders/postload/GT_ScrapboxDropLoader.java similarity index 100% rename from main/java/gregtech/loaders/postload/GT_ScrapboxDropLoader.java rename to src/main/java/gregtech/loaders/postload/GT_ScrapboxDropLoader.java diff --git a/main/java/gregtech/loaders/postload/GT_UUMRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_UUMRecipeLoader.java similarity index 100% rename from main/java/gregtech/loaders/postload/GT_UUMRecipeLoader.java rename to src/main/java/gregtech/loaders/postload/GT_UUMRecipeLoader.java diff --git a/main/java/gregtech/loaders/postload/GT_Worldgenloader.java b/src/main/java/gregtech/loaders/postload/GT_Worldgenloader.java similarity index 100% rename from main/java/gregtech/loaders/postload/GT_Worldgenloader.java rename to src/main/java/gregtech/loaders/postload/GT_Worldgenloader.java diff --git a/main/java/gregtech/loaders/preload/GT_Loader_CircuitBehaviors.java b/src/main/java/gregtech/loaders/preload/GT_Loader_CircuitBehaviors.java similarity index 100% rename from main/java/gregtech/loaders/preload/GT_Loader_CircuitBehaviors.java rename to src/main/java/gregtech/loaders/preload/GT_Loader_CircuitBehaviors.java diff --git a/main/java/gregtech/loaders/preload/GT_Loader_ItemData.java b/src/main/java/gregtech/loaders/preload/GT_Loader_ItemData.java similarity index 100% rename from main/java/gregtech/loaders/preload/GT_Loader_ItemData.java rename to src/main/java/gregtech/loaders/preload/GT_Loader_ItemData.java diff --git a/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java similarity index 100% rename from main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java rename to src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java diff --git a/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java similarity index 100% rename from main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java rename to src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java diff --git a/main/java/gregtech/loaders/preload/GT_Loader_OreDictionary.java b/src/main/java/gregtech/loaders/preload/GT_Loader_OreDictionary.java similarity index 100% rename from main/java/gregtech/loaders/preload/GT_Loader_OreDictionary.java rename to src/main/java/gregtech/loaders/preload/GT_Loader_OreDictionary.java diff --git a/main/java/gregtech/loaders/preload/GT_Loader_OreProcessing.java b/src/main/java/gregtech/loaders/preload/GT_Loader_OreProcessing.java similarity index 100% rename from main/java/gregtech/loaders/preload/GT_Loader_OreProcessing.java rename to src/main/java/gregtech/loaders/preload/GT_Loader_OreProcessing.java diff --git a/main/java/gregtech/nei/GT_NEI_DefaultHandler.java b/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java similarity index 100% rename from main/java/gregtech/nei/GT_NEI_DefaultHandler.java rename to src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java diff --git a/main/java/gregtech/nei/NEI_GT_Config.java b/src/main/java/gregtech/nei/NEI_GT_Config.java similarity index 100% rename from main/java/gregtech/nei/NEI_GT_Config.java rename to src/main/java/gregtech/nei/NEI_GT_Config.java diff --git a/main/pack.mcmeta b/src/main/pack.mcmeta similarity index 100% rename from main/pack.mcmeta rename to src/main/pack.mcmeta diff --git a/main/resources/assets/gregtech/lang/en_US.lang b/src/main/resources/assets/gregtech/lang/en_US.lang similarity index 100% rename from main/resources/assets/gregtech/lang/en_US.lang rename to src/main/resources/assets/gregtech/lang/en_US.lang diff --git a/main/resources/assets/gregtech/lang/zh_CN.lang b/src/main/resources/assets/gregtech/lang/zh_CN.lang similarity index 100% rename from main/resources/assets/gregtech/lang/zh_CN.lang rename to src/main/resources/assets/gregtech/lang/zh_CN.lang diff --git a/main/resources/assets/gregtech/textures/BrainTechCape.png b/src/main/resources/assets/gregtech/textures/BrainTechCape.png similarity index 100% rename from main/resources/assets/gregtech/textures/BrainTechCape.png rename to src/main/resources/assets/gregtech/textures/BrainTechCape.png diff --git a/main/resources/assets/gregtech/textures/GregTechCape.png b/src/main/resources/assets/gregtech/textures/GregTechCape.png similarity index 100% rename from main/resources/assets/gregtech/textures/GregTechCape.png rename to src/main/resources/assets/gregtech/textures/GregTechCape.png diff --git a/main/resources/assets/gregtech/textures/GregoriusCape.png b/src/main/resources/assets/gregtech/textures/GregoriusCape.png similarity index 100% rename from main/resources/assets/gregtech/textures/GregoriusCape.png rename to src/main/resources/assets/gregtech/textures/GregoriusCape.png diff --git a/main/resources/assets/gregtech/textures/LogoGTI_Long.png b/src/main/resources/assets/gregtech/textures/LogoGTI_Long.png similarity index 100% rename from main/resources/assets/gregtech/textures/LogoGTI_Long.png rename to src/main/resources/assets/gregtech/textures/LogoGTI_Long.png diff --git a/main/resources/assets/gregtech/textures/MrBrainCape.png b/src/main/resources/assets/gregtech/textures/MrBrainCape.png similarity index 100% rename from main/resources/assets/gregtech/textures/MrBrainCape.png rename to src/main/resources/assets/gregtech/textures/MrBrainCape.png diff --git a/main/resources/assets/gregtech/textures/aspects/ELECTRUM.png b/src/main/resources/assets/gregtech/textures/aspects/ELECTRUM.png similarity index 100% rename from main/resources/assets/gregtech/textures/aspects/ELECTRUM.png rename to src/main/resources/assets/gregtech/textures/aspects/ELECTRUM.png diff --git a/main/resources/assets/gregtech/textures/aspects/MAGNETO.png b/src/main/resources/assets/gregtech/textures/aspects/MAGNETO.png similarity index 100% rename from main/resources/assets/gregtech/textures/aspects/MAGNETO.png rename to src/main/resources/assets/gregtech/textures/aspects/MAGNETO.png diff --git a/main/resources/assets/gregtech/textures/aspects/NEBRISUM.png b/src/main/resources/assets/gregtech/textures/aspects/NEBRISUM.png similarity index 100% rename from main/resources/assets/gregtech/textures/aspects/NEBRISUM.png rename to src/main/resources/assets/gregtech/textures/aspects/NEBRISUM.png diff --git a/main/resources/assets/gregtech/textures/aspects/RADIO.png b/src/main/resources/assets/gregtech/textures/aspects/RADIO.png similarity index 100% rename from main/resources/assets/gregtech/textures/aspects/RADIO.png rename to src/main/resources/assets/gregtech/textures/aspects/RADIO.png diff --git a/main/resources/assets/gregtech/textures/aspects/STRONTIO.png b/src/main/resources/assets/gregtech/textures/aspects/STRONTIO.png similarity index 100% rename from main/resources/assets/gregtech/textures/aspects/STRONTIO.png rename to src/main/resources/assets/gregtech/textures/aspects/STRONTIO.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/alloy_smelter/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/amplifab/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/arc_furnace/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/assembler/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/autoclave/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/bender/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/canner/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_FRONT_ACTIVE.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_FRONT_ACTIVE.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_FRONT_ACTIVE.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_FRONT_ACTIVE.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_SIDE_ACTIVE.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_SIDE_ACTIVE.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_SIDE_ACTIVE.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_SIDE_ACTIVE.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_TOP_ACTIVE.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_TOP_ACTIVE.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_TOP_ACTIVE.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/centrifuge/OVERLAY_TOP_ACTIVE.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_bath/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/chemical_reactor/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/compressor/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/cutter/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/distillery/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_furnace/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electric_oven/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electrolyzer/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_FRONT_ACTIVE.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_FRONT_ACTIVE.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_FRONT_ACTIVE.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_FRONT_ACTIVE.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/electromagnetic_separator/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/extractor/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/extruder/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fermenter/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_canner/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_extractor/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_heater/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/fluid_solidifier/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/hammer/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_FRONT_ACTIVE.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_FRONT_ACTIVE.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_FRONT_ACTIVE.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_FRONT_ACTIVE.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/laser_engraver/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/lathe/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_TOP_ACTIVE.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_TOP_ACTIVE.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_TOP_ACTIVE.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/macerator/OVERLAY_TOP_ACTIVE.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/microwave/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_FRONT_ACTIVE.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_FRONT_ACTIVE.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_FRONT_ACTIVE.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_FRONT_ACTIVE.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_SIDE_ACTIVE.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_SIDE_ACTIVE.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_SIDE_ACTIVE.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_SIDE_ACTIVE.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_TOP_ACTIVE.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_TOP_ACTIVE.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_TOP_ACTIVE.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/mixer/OVERLAY_TOP_ACTIVE.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/ore_washer/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/plasma_arc_furnace/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/polarizer/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/press/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/printer/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_TOP_ACTIVE.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_TOP_ACTIVE.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_TOP_ACTIVE.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/pulverizer/OVERLAY_TOP_ACTIVE.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/recycler/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_FRONT_ACTIVE.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_FRONT_ACTIVE.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_FRONT_ACTIVE.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_FRONT_ACTIVE.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/sifter/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/slicer/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/thermal_centrifuge/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/unboxinator/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/basicmachines/wiremill/OVERLAY_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.air.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.air.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.air.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.air.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.berylium.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.berylium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.berylium.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.berylium.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.berylium.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.berylium.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.berylium.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.berylium.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.bioethanol.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.bioethanol.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.bioethanol.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.bioethanol.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.bioethanol.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.bioethanol.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.bioethanol.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.bioethanol.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.biomass.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.biomass.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.biomass.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.biomass.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.biomass.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.biomass.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.biomass.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.biomass.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.calcium.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.calcium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.calcium.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.calcium.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.calcium.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.calcium.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.calcium.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.calcium.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.calciumcarbonate.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.calciumcarbonate.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.calciumcarbonate.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.calciumcarbonate.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.calciumcarbonate.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.calciumcarbonate.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.calciumcarbonate.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.calciumcarbonate.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.chlorine.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.chlorine.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.chlorine.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.chlorine.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.chlorine.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.chlorine.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.chlorine.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.chlorine.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.creosote.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.creosote.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.creosote.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.creosote.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.creosote.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.creosote.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.creosote.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.creosote.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.deuterium.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.deuterium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.deuterium.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.deuterium.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.dyes.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.dyes.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.dyes.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.dyes.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.dyes.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.dyes.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.dyes.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.dyes.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fieryblood.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fieryblood.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.fieryblood.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fieryblood.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fieryblood.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fieryblood.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.fieryblood.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fieryblood.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fishoil.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fishoil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.fishoil.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fishoil.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fishoil.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fishoil.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.fishoil.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fishoil.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fluorine.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fluorine.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.fluorine.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fluorine.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fluorine.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fluorine.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.fluorine.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fluorine.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.for.honey.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.for.honey.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.for.honey.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.for.honey.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.for.honey.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.for.honey.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.for.honey.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.for.honey.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fuel.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fuel.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.fuel.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fuel.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fuel.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fuel.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.fuel.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fuel.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.gas_natural_gas.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.gas_natural_gas.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.gas_natural_gas.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.gas_natural_gas.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.glue.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.glue.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.glue.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.glue.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.glue.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.glue.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.glue.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.glue.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.glyceryl.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.glyceryl.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.glyceryl.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.glyceryl.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.glyceryl.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.glyceryl.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.glyceryl.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.glyceryl.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.helium-3.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.helium-3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.helium-3.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.helium-3.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.helium.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.helium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.helium.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.helium.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.heliumplasma.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.heliumplasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.heliumplasma.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.heliumplasma.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.heliumplasma.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.heliumplasma.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.heliumplasma.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.heliumplasma.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.holywater.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.holywater.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.holywater.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.holywater.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.holywater.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.holywater.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.holywater.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.holywater.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.hotfryingoil.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.hotfryingoil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.hotfryingoil.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.hotfryingoil.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.hotfryingoil.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.hotfryingoil.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.hotfryingoil.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.hotfryingoil.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.hydrogen.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.hydrogen.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.hydrogen.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.hydrogen.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.ice.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.ice.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.ice.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.ice.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.ice.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.ice.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.ice.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.ice.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.indigo.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.indigo.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.indigo.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.indigo.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.indigo.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.indigo.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.indigo.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.indigo.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_extra_heavy_oil.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_extra_heavy_oil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_extra_heavy_oil.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_extra_heavy_oil.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_extra_heavy_oil.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_extra_heavy_oil.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_extra_heavy_oil.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_extra_heavy_oil.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_heavy_oil.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_heavy_oil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_heavy_oil.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_heavy_oil.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_heavy_oil.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_heavy_oil.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_heavy_oil.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_heavy_oil.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_light_oil.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_light_oil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_light_oil.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_light_oil.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_light_oil.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_light_oil.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_light_oil.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_light_oil.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_medium_oil.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_medium_oil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_medium_oil.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_medium_oil.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_medium_oil.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_medium_oil.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_medium_oil.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.liquid_medium_oil.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.lithium.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.lithium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.lithium.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.lithium.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.lithium.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.lithium.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.lithium.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.lithium.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.lubricant.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.lubricant.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.lubricant.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.lubricant.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.lubricant.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.lubricant.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.lubricant.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.lubricant.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.mcguffium.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.mcguffium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.mcguffium.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.mcguffium.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.mcguffium.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.mcguffium.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.mcguffium.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.mcguffium.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.mercury.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.mercury.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.mercury.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.mercury.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.mercury.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.mercury.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.mercury.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.mercury.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.methane.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.methane.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.methane.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.methane.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.milk.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.milk.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.milk.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.milk.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.milk.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.milk.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.milk.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.milk.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.autogenerated.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.autogenerated.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.autogenerated.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.autogenerated.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.autogenerated.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.autogenerated.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.autogenerated.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.autogenerated.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.blaze.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.blaze.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.blaze.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.blaze.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.blaze.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.blaze.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.blaze.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.blaze.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.concrete.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.concrete.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.concrete.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.concrete.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.concrete.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.concrete.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.concrete.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.concrete.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.glass.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.glass.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.glass.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.glass.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.glass.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.glass.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.glass.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.glass.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.redstone.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.redstone.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.redstone.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.redstone.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.redstone.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.redstone.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.redstone.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.molten.redstone.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrocoalfuel.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrocoalfuel.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrocoalfuel.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrocoalfuel.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrocoalfuel.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrocoalfuel.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrocoalfuel.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrocoalfuel.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrofuel.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrofuel.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrofuel.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrofuel.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrofuel.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrofuel.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrofuel.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrofuel.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrogen.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrogen.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrogen.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrogen.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrogendioxide.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrogendioxide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrogendioxide.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrogendioxide.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrogenplasma.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrogenplasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrogenplasma.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrogenplasma.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrogenplasma.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrogenplasma.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrogenplasma.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrogenplasma.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.oil.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.oil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.oil.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.oil.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.oil.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.oil.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.oil.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.oil.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.oxygen.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.oxygen.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.oxygen.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.oxygen.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.plasma.autogenerated.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.plasma.autogenerated.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.plasma.autogenerated.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.plasma.autogenerated.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.plasma.autogenerated.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.plasma.autogenerated.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.plasma.autogenerated.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.plasma.autogenerated.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potassium.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potassium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potassium.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potassium.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potassium.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potassium.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potassium.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potassium.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.alcopops.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.alcopops.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.alcopops.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.alcopops.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.alcopops.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.alcopops.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.alcopops.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.alcopops.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.applejuice.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.applejuice.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.applejuice.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.applejuice.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.applejuice.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.applejuice.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.applejuice.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.applejuice.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.awkward.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.awkward.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.awkward.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.awkward.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.awkward.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.awkward.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.awkward.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.awkward.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.beer.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.beer.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.beer.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.beer.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.beer.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.beer.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.beer.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.beer.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cafeaulait.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cafeaulait.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cafeaulait.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cafeaulait.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cafeaulait.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cafeaulait.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cafeaulait.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cafeaulait.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cavejohnsonsgrenadejuice.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cavejohnsonsgrenadejuice.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cavejohnsonsgrenadejuice.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cavejohnsonsgrenadejuice.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cavejohnsonsgrenadejuice.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cavejohnsonsgrenadejuice.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cavejohnsonsgrenadejuice.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cavejohnsonsgrenadejuice.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.chillysauce.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.chillysauce.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.chillysauce.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.chillysauce.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.chillysauce.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.chillysauce.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.chillysauce.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.chillysauce.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.chocolatemilk.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.chocolatemilk.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.chocolatemilk.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.chocolatemilk.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.chocolatemilk.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.chocolatemilk.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.chocolatemilk.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.chocolatemilk.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cider.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cider.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cider.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cider.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cider.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cider.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cider.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.cider.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.coffee.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.coffee.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.coffee.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.coffee.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.coffee.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.coffee.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.coffee.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.coffee.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.strong.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.strong.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.strong.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.strong.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.strong.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.strong.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.strong.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.strong.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.strong.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.strong.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.strong.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.strong.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.strong.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.strong.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.strong.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.damage.strong.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkbeer.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkbeer.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkbeer.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkbeer.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkbeer.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkbeer.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkbeer.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkbeer.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkcafeaulait.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkcafeaulait.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkcafeaulait.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkcafeaulait.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkcafeaulait.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkcafeaulait.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkcafeaulait.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkcafeaulait.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkchocolatemilk.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkchocolatemilk.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkchocolatemilk.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkchocolatemilk.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkchocolatemilk.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkchocolatemilk.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkchocolatemilk.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkchocolatemilk.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkcoffee.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkcoffee.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkcoffee.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkcoffee.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkcoffee.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkcoffee.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkcoffee.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.darkcoffee.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diablosauce.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diablosauce.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diablosauce.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diablosauce.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diablosauce.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diablosauce.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diablosauce.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diablosauce.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diablosauce.strong.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diablosauce.strong.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diablosauce.strong.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diablosauce.strong.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diablosauce.strong.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diablosauce.strong.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diablosauce.strong.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diablosauce.strong.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diabolosauce.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diabolosauce.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diabolosauce.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diabolosauce.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diabolosauce.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diabolosauce.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diabolosauce.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.diabolosauce.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.dragonblood.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.dragonblood.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.dragonblood.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.dragonblood.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.dragonblood.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.dragonblood.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.dragonblood.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.dragonblood.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.long.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.long.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.long.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.long.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.long.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.long.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.long.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.long.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.long.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.long.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.long.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.long.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.long.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.long.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.long.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.long.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.fireresistance.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.glenmckenner.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.glenmckenner.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.glenmckenner.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.glenmckenner.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.glenmckenner.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.glenmckenner.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.glenmckenner.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.glenmckenner.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.goldenapplejuice.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.goldenapplejuice.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.goldenapplejuice.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.goldenapplejuice.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.goldenapplejuice.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.goldenapplejuice.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.goldenapplejuice.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.goldenapplejuice.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.goldencider.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.goldencider.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.goldencider.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.goldencider.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.goldencider.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.goldencider.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.goldencider.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.goldencider.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.grapejuice.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.grapejuice.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.grapejuice.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.grapejuice.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.grapejuice.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.grapejuice.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.grapejuice.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.grapejuice.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.strong.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.strong.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.strong.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.strong.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.strong.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.strong.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.strong.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.strong.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.strong.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.strong.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.strong.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.strong.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.strong.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.strong.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.strong.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.health.strong.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.hopsjuice.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.hopsjuice.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.hopsjuice.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.hopsjuice.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.hopsjuice.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.hopsjuice.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.hopsjuice.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.hopsjuice.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.hotsauce.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.hotsauce.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.hotsauce.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.hotsauce.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.hotsauce.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.hotsauce.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.hotsauce.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.hotsauce.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.icetea.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.icetea.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.icetea.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.icetea.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.icetea.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.icetea.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.icetea.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.icetea.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.idunsapplejuice.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.idunsapplejuice.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.idunsapplejuice.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.idunsapplejuice.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.idunsapplejuice.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.idunsapplejuice.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.idunsapplejuice.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.idunsapplejuice.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.long.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.long.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.long.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.long.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.long.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.long.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.long.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.long.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.long.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.long.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.long.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.long.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.long.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.long.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.long.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.long.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.invisibility.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.laitaucafe.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.laitaucafe.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.laitaucafe.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.laitaucafe.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.laitaucafe.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.laitaucafe.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.laitaucafe.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.laitaucafe.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.lemonade.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.lemonade.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.lemonade.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.lemonade.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.lemonade.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.lemonade.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.lemonade.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.lemonade.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.lemonjuice.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.lemonjuice.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.lemonjuice.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.lemonjuice.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.lemonjuice.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.lemonjuice.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.lemonjuice.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.lemonjuice.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.leninade.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.leninade.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.leninade.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.leninade.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.leninade.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.leninade.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.leninade.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.leninade.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.limoncello.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.limoncello.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.limoncello.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.limoncello.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.limoncello.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.limoncello.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.limoncello.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.limoncello.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.mineralwater.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.mineralwater.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.mineralwater.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.mineralwater.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.mineralwater.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.mineralwater.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.mineralwater.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.mineralwater.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.mundane.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.mundane.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.mundane.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.mundane.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.mundane.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.mundane.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.mundane.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.mundane.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.long.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.long.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.long.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.long.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.long.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.long.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.long.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.long.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.long.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.long.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.long.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.long.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.long.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.long.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.long.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.long.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.nightvision.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.notchesbrew.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.notchesbrew.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.notchesbrew.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.notchesbrew.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.notchesbrew.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.notchesbrew.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.notchesbrew.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.notchesbrew.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.piratebrew.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.piratebrew.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.piratebrew.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.piratebrew.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.piratebrew.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.piratebrew.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.piratebrew.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.piratebrew.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.long.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.long.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.long.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.long.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.long.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.long.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.long.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.long.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.long.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.long.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.long.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.long.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.long.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.long.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.long.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.long.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.strong.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.strong.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.strong.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.strong.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.strong.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.strong.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.strong.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.strong.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.strong.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.strong.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.strong.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.strong.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.strong.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.strong.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.strong.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.poison.strong.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.potatojuice.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.potatojuice.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.potatojuice.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.potatojuice.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.potatojuice.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.potatojuice.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.potatojuice.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.potatojuice.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.purpledrink.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.purpledrink.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.purpledrink.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.purpledrink.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.purpledrink.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.purpledrink.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.purpledrink.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.purpledrink.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.reedwater.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.reedwater.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.reedwater.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.reedwater.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.reedwater.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.reedwater.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.reedwater.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.reedwater.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.long.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.long.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.long.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.long.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.long.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.long.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.long.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.long.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.long.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.long.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.long.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.long.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.long.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.long.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.long.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.long.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.strong.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.strong.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.strong.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.strong.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.strong.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.strong.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.strong.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.strong.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.strong.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.strong.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.strong.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.strong.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.strong.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.strong.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.strong.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.regen.strong.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.rum.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.rum.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.rum.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.rum.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.rum.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.rum.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.rum.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.rum.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.saltywater.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.saltywater.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.saltywater.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.saltywater.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.saltywater.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.saltywater.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.saltywater.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.saltywater.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.scotch.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.scotch.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.scotch.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.scotch.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.scotch.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.scotch.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.scotch.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.scotch.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.long.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.long.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.long.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.long.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.long.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.long.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.long.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.long.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.long.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.long.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.long.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.long.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.long.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.long.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.long.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.long.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.slowness.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.long.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.long.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.long.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.long.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.long.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.long.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.long.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.long.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.long.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.long.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.long.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.long.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.long.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.long.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.long.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.long.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.strong.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.strong.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.strong.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.strong.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.strong.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.strong.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.strong.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.strong.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.strong.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.strong.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.strong.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.strong.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.strong.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.strong.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.strong.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.speed.strong.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.long.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.long.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.long.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.long.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.long.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.long.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.long.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.long.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.long.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.long.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.long.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.long.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.long.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.long.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.long.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.long.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.strong.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.strong.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.strong.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.strong.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.strong.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.strong.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.strong.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.strong.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.strong.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.strong.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.strong.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.strong.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.strong.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.strong.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.strong.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.strength.strong.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.sweettea.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.sweettea.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.sweettea.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.sweettea.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.sweettea.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.sweettea.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.sweettea.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.sweettea.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.tea.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.tea.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.tea.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.tea.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.tea.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.tea.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.tea.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.tea.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.thick.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.thick.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.thick.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.thick.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.thick.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.thick.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.thick.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.thick.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.vinegar.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.vinegar.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.vinegar.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.vinegar.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.vinegar.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.vinegar.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.vinegar.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.vinegar.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.vodka.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.vodka.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.vodka.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.vodka.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.vodka.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.vodka.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.vodka.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.vodka.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.long.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.long.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.long.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.long.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.long.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.long.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.long.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.long.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.long.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.long.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.long.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.long.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.long.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.long.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.long.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.long.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.waterbreathing.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.long.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.long.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.long.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.long.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.long.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.long.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.long.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.long.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.long.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.long.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.long.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.long.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.long.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.long.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.long.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.long.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.splash.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.splash.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.splash.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.splash.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.splash.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.splash.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.splash.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.weakness.splash.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wheatyhopsjuice.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wheatyhopsjuice.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wheatyhopsjuice.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wheatyhopsjuice.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wheatyhopsjuice.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wheatyhopsjuice.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wheatyhopsjuice.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wheatyhopsjuice.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wheatyjuice.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wheatyjuice.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wheatyjuice.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wheatyjuice.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wheatyjuice.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wheatyjuice.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wheatyjuice.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wheatyjuice.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wine.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wine.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wine.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wine.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wine.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wine.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wine.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.potion.wine.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.seedoil.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.seedoil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.seedoil.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.seedoil.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.seedoil.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.seedoil.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.seedoil.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.seedoil.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.silicon.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.silicon.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.silicon.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.silicon.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.silicon.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.silicon.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.silicon.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.silicon.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.sodium.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.sodium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.sodium.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.sodium.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.sodium.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.sodium.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.sodium.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.sodium.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.sodiumpersulfate.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.sodiumpersulfate.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.sodiumpersulfate.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.sodiumpersulfate.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.sodiumpersulfate.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.sodiumpersulfate.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.sodiumpersulfate.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.sodiumpersulfate.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.squidink.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.squidink.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.squidink.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.squidink.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.squidink.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.squidink.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.squidink.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.squidink.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.steam.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.steam.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.steam.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.steam.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.steam.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.steam.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.steam.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.steam.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.sulfuricacid.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.sulfuricacid.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.sulfuricacid.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.sulfuricacid.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.sulfuricacid.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.sulfuricacid.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.sulfuricacid.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.sulfuricacid.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.tritium.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.tritium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.tritium.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.tritium.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.uuamplifier.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.uuamplifier.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.uuamplifier.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.uuamplifier.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.uuamplifier.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.uuamplifier.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.uuamplifier.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.uuamplifier.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.wolframium.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.wolframium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.wolframium.png rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.wolframium.png diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.wolframium.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.wolframium.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/fluids/fluid.wolframium.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.wolframium.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/ARROW_DOWN.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/ARROW_DOWN.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/ARROW_DOWN.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/ARROW_DOWN.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/ARROW_LEFT.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/ARROW_LEFT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/ARROW_LEFT.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/ARROW_LEFT.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/ARROW_RIGHT.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/ARROW_RIGHT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/ARROW_RIGHT.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/ARROW_RIGHT.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/ARROW_UP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/ARROW_UP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/ARROW_UP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/ARROW_UP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_CHESTBUFFER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_CHESTBUFFER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_CHESTBUFFER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_CHESTBUFFER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_FILTER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_FILTER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_FILTER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_FILTER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_REGULATOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_REGULATOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_REGULATOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_REGULATOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_SUPERBUFFER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_SUPERBUFFER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_SUPERBUFFER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_SUPERBUFFER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_TYPEFILTER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_TYPEFILTER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_TYPEFILTER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/AUTOMATION_TYPEFILTER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_BRICKS.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_BRICKS.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_BRICKS.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_BRICKS.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_BRICKS_CHISELED.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_BRICKS_CHISELED.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_BRICKS_CHISELED.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_BRICKS_CHISELED.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_BRICKS_CRACKED.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_BRICKS_CRACKED.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_BRICKS_CRACKED.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_BRICKS_CRACKED.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_BRICKS_MOSSY.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_BRICKS_MOSSY.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_BRICKS_MOSSY.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_BRICKS_MOSSY.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_COBBLE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_COBBLE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_COBBLE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_COBBLE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_COBBLE_MOSSY.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_COBBLE_MOSSY.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_COBBLE_MOSSY.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_COBBLE_MOSSY.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_SMOOTH.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_SMOOTH.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_SMOOTH.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_SMOOTH.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_STONE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_STONE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_STONE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/BASALT_STONE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_FRONT_ACTIVE.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_FRONT_ACTIVE.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_FRONT_ACTIVE.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_FRONT_ACTIVE.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_LAVA_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_LAVA_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_LAVA_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_LAVA_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_LAVA_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_LAVA_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_LAVA_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_LAVA_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_LAVA_FRONT_ACTIVE.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_LAVA_FRONT_ACTIVE.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_LAVA_FRONT_ACTIVE.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_LAVA_FRONT_ACTIVE.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_SOLAR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_SOLAR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_SOLAR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/BOILER_SOLAR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/CFOAM_FRESH.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/CFOAM_FRESH.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/CFOAM_FRESH.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/CFOAM_FRESH.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/CFOAM_HARDENED.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/CFOAM_HARDENED.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/CFOAM_HARDENED.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/CFOAM_HARDENED.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_BRICKS.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_BRICKS.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_BRICKS.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_BRICKS.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_BRICKS_CHISELED.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_BRICKS_CHISELED.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_BRICKS_CHISELED.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_BRICKS_CHISELED.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_BRICKS_CRACKED.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_BRICKS_CRACKED.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_BRICKS_CRACKED.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_BRICKS_CRACKED.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_BRICKS_MOSSY.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_BRICKS_MOSSY.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_BRICKS_MOSSY.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_BRICKS_MOSSY.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_COBBLE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_COBBLE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_COBBLE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_COBBLE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_COBBLE_MOSSY.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_COBBLE_MOSSY.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_COBBLE_MOSSY.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_COBBLE_MOSSY.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_SMOOTH.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_SMOOTH.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_SMOOTH.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_SMOOTH.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_STONE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_STONE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_STONE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_DARK_STONE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_BRICKS.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_BRICKS.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_BRICKS.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_BRICKS.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_BRICKS_CHISELED.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_BRICKS_CHISELED.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_BRICKS_CHISELED.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_BRICKS_CHISELED.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_BRICKS_CRACKED.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_BRICKS_CRACKED.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_BRICKS_CRACKED.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_BRICKS_CRACKED.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_BRICKS_MOSSY.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_BRICKS_MOSSY.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_BRICKS_MOSSY.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_BRICKS_MOSSY.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_COBBLE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_COBBLE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_COBBLE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_COBBLE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_COBBLE_MOSSY.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_COBBLE_MOSSY.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_COBBLE_MOSSY.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_COBBLE_MOSSY.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_SMOOTH.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_SMOOTH.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_SMOOTH.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_SMOOTH.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_STONE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_STONE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_STONE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/CONCRETE_LIGHT_STONE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/COVER_WOOD_PLATE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/COVER_WOOD_PLATE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/COVER_WOOD_PLATE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/COVER_WOOD_PLATE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_BACK.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_BACK.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_BACK.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_BACK.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_BACK_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_BACK_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_BACK_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_BACK_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_TOP_ACTIVE.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_TOP_ACTIVE.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_TOP_ACTIVE.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/DIESEL_GENERATOR_TOP_ACTIVE.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_1.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_1.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_1.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_10.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_10.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_10.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_10.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_11.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_11.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_11.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_11.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_12.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_12.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_12.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_12.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_2.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_2.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_2.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_3.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_3.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_3.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_4.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_4.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_4.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_5.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_5.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_5.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_6.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_6.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_6.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_7.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_7.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_7.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_7.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_8.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_8.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_8.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_8.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_9.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_9.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_9.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_9.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_1.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_1.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_1.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_10.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_10.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_10.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_10.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_11.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_11.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_11.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_11.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_12.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_12.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_12.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_12.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_2.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_2.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_2.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_3.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_3.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_3.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_4.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_4.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_4.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_5.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_5.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_5.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_6.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_6.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_6.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_7.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_7.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_7.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_7.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_8.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_8.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_8.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_8.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_9.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_9.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_9.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_9.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_BACK.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_BACK.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_BACK.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_BACK.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_BACK_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_BACK_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_BACK_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_BACK_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_BRICKS.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_BRICKS.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_BRICKS.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_BRICKS.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_BRICKS_CHISELED.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_BRICKS_CHISELED.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_BRICKS_CHISELED.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_BRICKS_CHISELED.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_BRICKS_CRACKED.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_BRICKS_CRACKED.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_BRICKS_CRACKED.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_BRICKS_CRACKED.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_BRICKS_MOSSY.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_BRICKS_MOSSY.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_BRICKS_MOSSY.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_BRICKS_MOSSY.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_COBBLE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_COBBLE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_COBBLE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_COBBLE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_COBBLE_MOSSY.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_COBBLE_MOSSY.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_COBBLE_MOSSY.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_COBBLE_MOSSY.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_SMOOTH.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_SMOOTH.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_SMOOTH.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_SMOOTH.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_STONE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_STONE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_STONE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_BLACK_STONE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_BRICKS.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_BRICKS.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_BRICKS.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_BRICKS.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_BRICKS_CHISELED.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_BRICKS_CHISELED.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_BRICKS_CHISELED.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_BRICKS_CHISELED.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_BRICKS_CRACKED.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_BRICKS_CRACKED.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_BRICKS_CRACKED.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_BRICKS_CRACKED.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_BRICKS_MOSSY.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_BRICKS_MOSSY.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_BRICKS_MOSSY.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_BRICKS_MOSSY.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_COBBLE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_COBBLE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_COBBLE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_COBBLE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_COBBLE_MOSSY.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_COBBLE_MOSSY.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_COBBLE_MOSSY.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_COBBLE_MOSSY.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_SMOOTH.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_SMOOTH.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_SMOOTH.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_SMOOTH.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_STONE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_STONE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_STONE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/GRANITE_RED_STONE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_FULL.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_FULL.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_FULL.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_FULL.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_HUGE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_HUGE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_HUGE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_HUGE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_LARGE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_LARGE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_LARGE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_LARGE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_MEDIUM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_MEDIUM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_MEDIUM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_MEDIUM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_SMALL.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_SMALL.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_SMALL.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_SMALL.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_TINY.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_TINY.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_TINY.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/INSULATION_TINY.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE1.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE1.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE1.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE2.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE2.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE2.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE3.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE3.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE3.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE4.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE4.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE4.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE5.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE5.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE5.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE6.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE6.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE6.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE7.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE7.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE7.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE7.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE8.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE8.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE8.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE8.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE9.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE9.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE9.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE9.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE1.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE1.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE1.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE1.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE1.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE1.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE1.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE2.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE2.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE2.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE2.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE2.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE2.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE2.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE3.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE3.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE3.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE3.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE3.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE3.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE3.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE4.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE4.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE4.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE4.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE4.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE4.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE4.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE5.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE5.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE5.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE5.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE5.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE5.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE5.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE6.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE6.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE6.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE6.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE6.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE6.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE6.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE7.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE7.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE7.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE7.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE7.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE7.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE7.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE7.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE8.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE8.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE8.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE8.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE8.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE8.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE8.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE8.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE9.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE9.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE9.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE9.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE9.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE9.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE9.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE9.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_8V_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_8V_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_8V_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_8V_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_8V_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_8V_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_8V_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_8V_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_8V_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_8V_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_8V_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_8V_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBLASTFURNACE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBLASTFURNACE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBLASTFURNACE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBLASTFURNACE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBLASTFURNACE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBLASTFURNACE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBLASTFURNACE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBLASTFURNACE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBRICKS_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBRICKS_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBRICKS_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBRICKS_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBRICKS_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBRICKS_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBRICKS_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBRICKS_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBRICKS_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBRICKS_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBRICKS_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEBRICKS_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEPLATEDBRICKS.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEPLATEDBRICKS.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEPLATEDBRICKS.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZEPLATEDBRICKS.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZE_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZE_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZE_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZE_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZE_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZE_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZE_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZE_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZE_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZE_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZE_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_BRONZE_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_ACIDHAZARD.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_ACIDHAZARD.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_ACIDHAZARD.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_ACIDHAZARD.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_ASSEMBLER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_ASSEMBLER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_ASSEMBLER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_ASSEMBLER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_BIOHAZARD.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_BIOHAZARD.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_BIOHAZARD.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_BIOHAZARD.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_CLEAN_STAINLESSSTEEL.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_CLEAN_STAINLESSSTEEL.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_CLEAN_STAINLESSSTEEL.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_CLEAN_STAINLESSSTEEL.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_CONTAINMENT_FIELD.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_CONTAINMENT_FIELD.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_CONTAINMENT_FIELD.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_CONTAINMENT_FIELD.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_DATA_DRIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_DATA_DRIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_DATA_DRIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_DATA_DRIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_DRAGONEGG.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_DRAGONEGG.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_DRAGONEGG.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_DRAGONEGG.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_EXPLOSIONHAZARD.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_EXPLOSIONHAZARD.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_EXPLOSIONHAZARD.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_EXPLOSIONHAZARD.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREBOX_BRONZE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREBOX_BRONZE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREBOX_BRONZE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREBOX_BRONZE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREBOX_STEEL.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREBOX_STEEL.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREBOX_STEEL.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREBOX_STEEL.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREBOX_TITANIUM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREBOX_TITANIUM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREBOX_TITANIUM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREBOX_TITANIUM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREBOX_TUNGSTENSTEEL.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREBOX_TUNGSTENSTEEL.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREBOX_TUNGSTENSTEEL.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREBOX_TUNGSTENSTEEL.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREHAZARD.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREHAZARD.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREHAZARD.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FIREHAZARD.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FROSTHAZARD.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FROSTHAZARD.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FROSTHAZARD.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FROSTHAZARD.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FROST_PROOF.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FROST_PROOF.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FROST_PROOF.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FROST_PROOF.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION_2.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION_2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION_2.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION_2.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION_COIL.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION_COIL.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION_COIL.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION_COIL.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION_GLASS.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION_GLASS.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION_GLASS.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION_GLASS.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION_GLASS_YELLOW.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION_GLASS_YELLOW.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION_GLASS_YELLOW.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION_GLASS_YELLOW.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GEARBOX_BRONZE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GEARBOX_BRONZE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GEARBOX_BRONZE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GEARBOX_BRONZE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GEARBOX_STEEL.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GEARBOX_STEEL.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GEARBOX_STEEL.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GEARBOX_STEEL.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GEARBOX_TITANIUM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GEARBOX_TITANIUM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GEARBOX_TITANIUM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GEARBOX_TITANIUM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GEARBOX_TUNGSTENSTEEL.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GEARBOX_TUNGSTENSTEEL.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GEARBOX_TUNGSTENSTEEL.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GEARBOX_TUNGSTENSTEEL.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GRATE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GRATE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GRATE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_GRATE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGIC.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGIC.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGIC.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGIC.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGICHAZARD.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGICHAZARD.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGICHAZARD.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGICHAZARD.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGIC_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGIC_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGIC_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGIC_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGIC_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGIC_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGIC_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGIC_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGIC_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGIC_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGIC_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGIC_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MOTOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MOTOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MOTOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MOTOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_NOISEHAZARD.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_NOISEHAZARD.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_NOISEHAZARD.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_NOISEHAZARD.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PIPE_BRONZE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PIPE_BRONZE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PIPE_BRONZE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PIPE_BRONZE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PIPE_STEEL.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PIPE_STEEL.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PIPE_STEEL.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PIPE_STEEL.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PIPE_TITANIUM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PIPE_TITANIUM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PIPE_TITANIUM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PIPE_TITANIUM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PIPE_TUNGSTENSTEEL.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PIPE_TUNGSTENSTEEL.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PIPE_TUNGSTENSTEEL.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PIPE_TUNGSTENSTEEL.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PROCESSOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PROCESSOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PROCESSOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PROCESSOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PUMP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PUMP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PUMP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_PUMP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_RADIATIONPROOF.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_RADIATIONPROOF.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_RADIATIONPROOF.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_RADIATIONPROOF.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_RADIOACTIVEHAZARD.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_RADIOACTIVEHAZARD.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_RADIOACTIVEHAZARD.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_RADIOACTIVEHAZARD.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_ROBUST_TUNGSTENSTEEL.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_ROBUST_TUNGSTENSTEEL.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_ROBUST_TUNGSTENSTEEL.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_ROBUST_TUNGSTENSTEEL.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_SOLID_STEEL.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_SOLID_STEEL.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_SOLID_STEEL.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_SOLID_STEEL.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_STABLE_TITANIUM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_STABLE_TITANIUM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_STABLE_TITANIUM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_STABLE_TITANIUM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_STRIPES_A.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_STRIPES_A.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_STRIPES_A.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_STRIPES_A.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_STRIPES_B.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_STRIPES_B.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_STRIPES_B.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_STRIPES_B.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_TURBINE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_TURBINE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_TURBINE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_TURBINE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_VENT.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_VENT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_VENT.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_VENT.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_COIL_CUPRONICKEL.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_COIL_CUPRONICKEL.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_COIL_CUPRONICKEL.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_COIL_CUPRONICKEL.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_COIL_KANTHAL.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_COIL_KANTHAL.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_COIL_KANTHAL.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_COIL_KANTHAL.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_COIL_NICHROME.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_COIL_NICHROME.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_COIL_NICHROME.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_COIL_NICHROME.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_COIL_SUPERCONDUCTOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_COIL_SUPERCONDUCTOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_COIL_SUPERCONDUCTOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_COIL_SUPERCONDUCTOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_EV_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_EV_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_EV_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_EV_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_EV_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_EV_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_EV_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_EV_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_EV_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_EV_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_EV_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_EV_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_HEATPROOFCASING.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_HEATPROOFCASING.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_HEATPROOFCASING.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_HEATPROOFCASING.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_HV_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_HV_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_HV_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_HV_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_HV_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_HV_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_HV_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_HV_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_HV_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_HV_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_HV_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_HV_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_IV_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_IV_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_IV_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_IV_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_IV_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_IV_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_IV_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_IV_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_IV_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_IV_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_IV_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_IV_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LV_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LV_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LV_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LV_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LV_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LV_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LV_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LV_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LV_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LV_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LV_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LV_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LuV_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LuV_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LuV_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LuV_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LuV_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LuV_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LuV_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LuV_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LuV_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LuV_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LuV_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_LuV_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MAX_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MAX_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MAX_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MAX_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MAX_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MAX_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MAX_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MAX_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MAX_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MAX_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MAX_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MAX_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MV_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MV_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MV_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MV_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MV_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MV_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MV_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MV_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MV_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MV_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MV_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_MV_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEELBRICKS_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEELBRICKS_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEELBRICKS_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEELBRICKS_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEELBRICKS_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEELBRICKS_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEELBRICKS_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEELBRICKS_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEELBRICKS_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEELBRICKS_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEELBRICKS_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEELBRICKS_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEEL_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEEL_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEEL_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEEL_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEEL_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEEL_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEEL_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEEL_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEEL_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEEL_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEEL_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_STEEL_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_UV_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_UV_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_UV_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_UV_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_UV_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_UV_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_UV_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_UV_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_UV_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_UV_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_UV_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_UV_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_ZPM_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_ZPM_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_ZPM_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_ZPM_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_ZPM_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_ZPM_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_ZPM_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_ZPM_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_ZPM_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_ZPM_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_ZPM_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_ZPM_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_BRICKS.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_BRICKS.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_BRICKS.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_BRICKS.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_BRICKS_CHISELED.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_BRICKS_CHISELED.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_BRICKS_CHISELED.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_BRICKS_CHISELED.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_BRICKS_CRACKED.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_BRICKS_CRACKED.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_BRICKS_CRACKED.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_BRICKS_CRACKED.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_BRICKS_MOSSY.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_BRICKS_MOSSY.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_BRICKS_MOSSY.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_BRICKS_MOSSY.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_COBBLE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_COBBLE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_COBBLE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_COBBLE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_COBBLE_MOSSY.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_COBBLE_MOSSY.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_COBBLE_MOSSY.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_COBBLE_MOSSY.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_SMOOTH.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_SMOOTH.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_SMOOTH.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_SMOOTH.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_STONE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_STONE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_STONE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/MARBLE_STONE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_BACK.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_BACK.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_BACK.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_BACK.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_BACK_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_BACK_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_BACK_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_BACK_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_FLUID_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_BACK.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_BACK.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_BACK.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_BACK.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_BACK_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_BACK_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_BACK_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_BACK_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/NAQUADAH_REACTOR_SOLID_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ACTIVITYDETECTOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ACTIVITYDETECTOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ACTIVITYDETECTOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ACTIVITYDETECTOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ADV_PUMP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ADV_PUMP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ADV_PUMP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ADV_PUMP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ARM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ARM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ARM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ARM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ARM.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ARM.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ARM.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ARM.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_BOXINATOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_BOXINATOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_BOXINATOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_BOXINATOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_BOXINATOR_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_BOXINATOR_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_BOXINATOR_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_BOXINATOR_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_DISASSEMBLER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_DISASSEMBLER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_DISASSEMBLER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_DISASSEMBLER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_DISASSEMBLER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_DISASSEMBLER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_DISASSEMBLER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_DISASSEMBLER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_MASSFAB.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_MASSFAB.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_MASSFAB.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_MASSFAB.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_MASSFAB_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_MASSFAB_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_MASSFAB_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_MASSFAB_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_POTIONBREWER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_POTIONBREWER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_POTIONBREWER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_POTIONBREWER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_POTIONBREWER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_POTIONBREWER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_POTIONBREWER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_POTIONBREWER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_REPLICATOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_REPLICATOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_REPLICATOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_REPLICATOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_REPLICATOR_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_REPLICATOR_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_REPLICATOR_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_REPLICATOR_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_ROCK_BREAKER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_ROCK_BREAKER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_ROCK_BREAKER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_ROCK_BREAKER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_ROCK_BREAKER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_ROCK_BREAKER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_ROCK_BREAKER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_ROCK_BREAKER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_SCANNER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_SCANNER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_SCANNER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_SCANNER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_SCANNER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_SCANNER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_SCANNER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_SCANNER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_COMPRESSOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_COMPRESSOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_COMPRESSOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_COMPRESSOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_COMPRESSOR_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_COMPRESSOR_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_COMPRESSOR_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_COMPRESSOR_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_EXTRACTOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_EXTRACTOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_EXTRACTOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_EXTRACTOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_EXTRACTOR_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_EXTRACTOR_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_EXTRACTOR_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_EXTRACTOR_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_FURNACE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_FURNACE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_FURNACE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_FURNACE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_FURNACE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_FURNACE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_FURNACE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_FURNACE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_HAMMER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_HAMMER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_HAMMER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_HAMMER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_HAMMER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_HAMMER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_HAMMER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_HAMMER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_MACERATOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_MACERATOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_MACERATOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_MACERATOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_MACERATOR_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_MACERATOR_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_MACERATOR_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_BOTTOM_STEAM_MACERATOR_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CLOSET.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CLOSET.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CLOSET.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CLOSET.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CONTROLLER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CONTROLLER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CONTROLLER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CONTROLLER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CONVEYOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CONVEYOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CONVEYOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CONVEYOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CONVEYOR.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CONVEYOR.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CONVEYOR.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CONVEYOR.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CRAFTING.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CRAFTING.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CRAFTING.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CRAFTING.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_DRAIN.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_DRAIN.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_DRAIN.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_DRAIN.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_DUCTTAPE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_DUCTTAPE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_DUCTTAPE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_DUCTTAPE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGYDETECTOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGYDETECTOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGYDETECTOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGYDETECTOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_IN.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_IN.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_IN.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_IN.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_IN_MULTI.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_IN_MULTI.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_IN_MULTI.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_IN_MULTI.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_OUT.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_OUT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_OUT.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_OUT.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_OUT_MULTI.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_OUT_MULTI.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_OUT_MULTI.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_OUT_MULTI.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FLUIDDETECTOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FLUIDDETECTOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FLUIDDETECTOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FLUIDDETECTOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_BOXINATOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_BOXINATOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_BOXINATOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_BOXINATOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_BOXINATOR_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_BOXINATOR_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_BOXINATOR_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_BOXINATOR_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_DISASSEMBLER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_DISASSEMBLER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_DISASSEMBLER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_DISASSEMBLER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_DISASSEMBLER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_DISASSEMBLER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_DISASSEMBLER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_DISASSEMBLER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_IMPLOSION_COMPRESSOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_IMPLOSION_COMPRESSOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_IMPLOSION_COMPRESSOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_IMPLOSION_COMPRESSOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_IMPLOSION_COMPRESSOR_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_IMPLOSION_COMPRESSOR_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_IMPLOSION_COMPRESSOR_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_IMPLOSION_COMPRESSOR_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_LARGE_BOILER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_LARGE_BOILER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_LARGE_BOILER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_LARGE_BOILER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_LARGE_BOILER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_LARGE_BOILER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_LARGE_BOILER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_LARGE_BOILER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_MASSFAB.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_MASSFAB.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_MASSFAB.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_MASSFAB.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_MASSFAB_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_MASSFAB_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_MASSFAB_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_MASSFAB_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_MULTI_SMELTER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_MULTI_SMELTER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_MULTI_SMELTER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_MULTI_SMELTER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_MULTI_SMELTER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_MULTI_SMELTER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_MULTI_SMELTER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_MULTI_SMELTER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_POTIONBREWER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_POTIONBREWER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_POTIONBREWER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_POTIONBREWER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_POTIONBREWER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_POTIONBREWER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_POTIONBREWER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_POTIONBREWER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_REPLICATOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_REPLICATOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_REPLICATOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_REPLICATOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_REPLICATOR_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_REPLICATOR_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_REPLICATOR_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_REPLICATOR_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_REPLICATOR_ACTIVE.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_REPLICATOR_ACTIVE.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_REPLICATOR_ACTIVE.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_REPLICATOR_ACTIVE.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ROCK_BREAKER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ROCK_BREAKER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ROCK_BREAKER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ROCK_BREAKER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ROCK_BREAKER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ROCK_BREAKER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ROCK_BREAKER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ROCK_BREAKER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ROCK_BREAKER_ACTIVE.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ROCK_BREAKER_ACTIVE.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ROCK_BREAKER_ACTIVE.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_ROCK_BREAKER_ACTIVE.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_SCANNER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_SCANNER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_SCANNER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_SCANNER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_SCANNER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_SCANNER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_SCANNER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_SCANNER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_ALLOY_SMELTER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_ALLOY_SMELTER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_ALLOY_SMELTER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_ALLOY_SMELTER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_ALLOY_SMELTER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_ALLOY_SMELTER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_ALLOY_SMELTER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_ALLOY_SMELTER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_COMPRESSOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_COMPRESSOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_COMPRESSOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_COMPRESSOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_COMPRESSOR_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_COMPRESSOR_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_COMPRESSOR_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_COMPRESSOR_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_EXTRACTOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_EXTRACTOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_EXTRACTOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_EXTRACTOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_EXTRACTOR_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_EXTRACTOR_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_EXTRACTOR_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_EXTRACTOR_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_FURNACE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_FURNACE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_FURNACE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_FURNACE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_FURNACE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_FURNACE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_FURNACE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_FURNACE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_HAMMER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_HAMMER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_HAMMER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_HAMMER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_HAMMER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_HAMMER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_HAMMER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_HAMMER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_MACERATOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_MACERATOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_MACERATOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_MACERATOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_MACERATOR_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_MACERATOR_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_MACERATOR_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_STEAM_MACERATOR_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_VACUUM_FREEZER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_VACUUM_FREEZER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_VACUUM_FREEZER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_VACUUM_FREEZER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION1.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION1.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION1.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION1.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION1.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION1.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION1.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION2.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION2.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION2.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION2.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION2.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION2.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION2.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION3.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION3.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION3.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION3.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION3.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION3.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_FUSION3.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ITEMDETECTOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ITEMDETECTOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ITEMDETECTOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ITEMDETECTOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LENS.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LENS.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LENS.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LENS.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_000.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_000.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_000.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_000.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_001.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_001.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_001.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_001.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_002.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_002.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_002.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_002.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_003.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_003.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_003.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_003.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_004.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_004.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_004.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_004.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_005.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_005.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_005.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_005.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_006.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_006.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_006.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_006.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_007.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_007.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_007.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_007.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_008.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_008.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_008.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_008.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_009.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_009.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_009.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_009.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_010.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_010.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_010.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_010.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_011.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_011.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_011.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_011.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_012.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_012.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_012.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_012.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_013.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_013.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_013.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_LOCKER_013.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MAINTENANCE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MAINTENANCE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MAINTENANCE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MAINTENANCE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MUFFLER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MUFFLER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MUFFLER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MUFFLER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PIPE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PIPE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PIPE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PIPE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PIPE_IN.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PIPE_IN.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PIPE_IN.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PIPE_IN.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PIPE_OUT.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PIPE_OUT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PIPE_OUT.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PIPE_OUT.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PUMP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PUMP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PUMP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PUMP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PUMP.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PUMP.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PUMP.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_PUMP.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_QCHEST.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_QCHEST.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_QCHEST.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_QCHEST.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_QCHEST.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_QCHEST.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_QCHEST.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_QCHEST.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_QTANK.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_QTANK.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_QTANK.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_QTANK.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_QTANK.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_QTANK.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_QTANK.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_QTANK.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SCREEN.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SCREEN.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SCREEN.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SCREEN.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SCREEN.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SCREEN.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SCREEN.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SCREEN.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SHUTTER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SHUTTER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SHUTTER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SHUTTER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_BOXINATOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_BOXINATOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_BOXINATOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_BOXINATOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_BOXINATOR_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_BOXINATOR_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_BOXINATOR_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_BOXINATOR_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_DISASSEMBLER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_DISASSEMBLER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_DISASSEMBLER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_DISASSEMBLER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_DISASSEMBLER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_DISASSEMBLER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_DISASSEMBLER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_DISASSEMBLER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_MASSFAB.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_MASSFAB.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_MASSFAB.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_MASSFAB.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_MASSFAB_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_MASSFAB_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_MASSFAB_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_MASSFAB_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_POTIONBREWER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_POTIONBREWER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_POTIONBREWER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_POTIONBREWER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_POTIONBREWER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_POTIONBREWER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_POTIONBREWER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_POTIONBREWER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_REPLICATOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_REPLICATOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_REPLICATOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_REPLICATOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_REPLICATOR_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_REPLICATOR_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_REPLICATOR_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_REPLICATOR_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_ROCK_BREAKER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_ROCK_BREAKER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_ROCK_BREAKER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_ROCK_BREAKER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_ROCK_BREAKER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_ROCK_BREAKER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_ROCK_BREAKER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_ROCK_BREAKER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_SCANNER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_SCANNER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_SCANNER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_SCANNER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_SCANNER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_SCANNER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_SCANNER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_SCANNER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_ALLOY_SMELTER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_ALLOY_SMELTER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_ALLOY_SMELTER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_ALLOY_SMELTER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_ALLOY_SMELTER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_ALLOY_SMELTER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_ALLOY_SMELTER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_ALLOY_SMELTER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_COMPRESSOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_COMPRESSOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_COMPRESSOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_COMPRESSOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_COMPRESSOR_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_COMPRESSOR_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_COMPRESSOR_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_COMPRESSOR_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_EXTRACTOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_EXTRACTOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_EXTRACTOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_EXTRACTOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_EXTRACTOR_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_EXTRACTOR_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_EXTRACTOR_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_EXTRACTOR_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_FURNACE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_FURNACE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_FURNACE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_FURNACE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_FURNACE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_FURNACE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_FURNACE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_FURNACE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_HAMMER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_HAMMER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_HAMMER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_HAMMER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_HAMMER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_HAMMER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_HAMMER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_HAMMER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_MACERATOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_MACERATOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_MACERATOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_MACERATOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_MACERATOR_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_MACERATOR_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_MACERATOR_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_SIDE_STEAM_MACERATOR_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TELEPORTER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TELEPORTER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TELEPORTER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TELEPORTER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TELEPORTER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TELEPORTER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TELEPORTER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TELEPORTER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_BOXINATOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_BOXINATOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_BOXINATOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_BOXINATOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_BOXINATOR_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_BOXINATOR_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_BOXINATOR_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_BOXINATOR_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_DISASSEMBLER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_DISASSEMBLER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_DISASSEMBLER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_DISASSEMBLER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_DISASSEMBLER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_DISASSEMBLER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_DISASSEMBLER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_DISASSEMBLER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_MASSFAB.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_MASSFAB.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_MASSFAB.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_MASSFAB.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_MASSFAB_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_MASSFAB_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_MASSFAB_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_MASSFAB_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_POTIONBREWER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_POTIONBREWER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_POTIONBREWER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_POTIONBREWER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_POTIONBREWER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_POTIONBREWER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_POTIONBREWER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_POTIONBREWER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_REPLICATOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_REPLICATOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_REPLICATOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_REPLICATOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_REPLICATOR_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_REPLICATOR_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_REPLICATOR_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_REPLICATOR_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_ROCK_BREAKER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_ROCK_BREAKER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_ROCK_BREAKER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_ROCK_BREAKER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_ROCK_BREAKER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_ROCK_BREAKER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_ROCK_BREAKER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_ROCK_BREAKER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_SCANNER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_SCANNER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_SCANNER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_SCANNER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_SCANNER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_SCANNER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_SCANNER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_SCANNER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_ALLOY_SMELTER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_ALLOY_SMELTER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_ALLOY_SMELTER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_ALLOY_SMELTER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_ALLOY_SMELTER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_ALLOY_SMELTER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_ALLOY_SMELTER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_ALLOY_SMELTER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_COMPRESSOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_COMPRESSOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_COMPRESSOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_COMPRESSOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_COMPRESSOR_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_COMPRESSOR_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_COMPRESSOR_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_COMPRESSOR_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_EXTRACTOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_EXTRACTOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_EXTRACTOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_EXTRACTOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_EXTRACTOR_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_EXTRACTOR_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_EXTRACTOR_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_EXTRACTOR_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_FURNACE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_FURNACE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_FURNACE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_FURNACE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_FURNACE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_FURNACE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_FURNACE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_FURNACE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_HAMMER.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_HAMMER.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_HAMMER.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_HAMMER.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_HAMMER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_HAMMER_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_HAMMER_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_HAMMER_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_MACERATOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_MACERATOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_MACERATOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_MACERATOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_MACERATOR_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_MACERATOR_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_MACERATOR_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_MACERATOR_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_MACERATOR_ACTIVE.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_MACERATOR_ACTIVE.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_MACERATOR_ACTIVE.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TOP_STEAM_MACERATOR_ACTIVE.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/RENDERING_ERROR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/RENDERING_ERROR.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/RENDERING_ERROR.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/RENDERING_ERROR.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_8V.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_8V.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_8V.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_8V.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_EV.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_EV.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_EV.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_EV.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_HV.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_HV.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_HV.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_HV.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_IV.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_IV.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_IV.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_IV.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_LV.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_LV.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_LV.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_LV.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_LuV.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_LuV.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_LuV.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_LuV.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_MV.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_MV.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_MV.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_MV.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_UV.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_UV.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_UV.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_UV.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_ZPM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_ZPM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_ZPM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/SOLARPANEL_ZPM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_BACK.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_BACK.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_BACK.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_BACK.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_BACK_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_BACK_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_BACK_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_BACK_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_BOTTOM.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_BOTTOM.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_BOTTOM.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_BOTTOM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_BOTTOM_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_BOTTOM_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_BOTTOM_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_FRONT.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_FRONT.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_FRONT.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_FRONT.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_FRONT_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_FRONT_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_FRONT_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_FRONT_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_SIDE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_SIDE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_SIDE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_SIDE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_SIDE_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_SIDE_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_SIDE_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_TOP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_TOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_TOP.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_TOP.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_TOP_ACTIVE.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_TOP_ACTIVE.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_TOP_ACTIVE.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/VENT_ADVANCED.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/VENT_ADVANCED.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/VENT_ADVANCED.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/VENT_ADVANCED.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/VENT_ADVANCED.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/VENT_ADVANCED.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/VENT_ADVANCED.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/VENT_ADVANCED.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/VENT_NORMAL.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/VENT_NORMAL.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/VENT_NORMAL.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/VENT_NORMAL.png diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/VENT_NORMAL.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/VENT_NORMAL.png.mcmeta similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/VENT_NORMAL.png.mcmeta rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/VENT_NORMAL.png.mcmeta diff --git a/main/resources/assets/gregtech/textures/blocks/iconsets/VOID.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/VOID.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/iconsets/VOID.png rename to src/main/resources/assets/gregtech/textures/blocks/iconsets/VOID.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DULL/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DULL/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DULL/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DULL/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DULL/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/DULL/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FINE/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FINE/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FINE/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FINE/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FINE/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FINE/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NONE/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NONE/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NONE/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NONE/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NONE/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/NONE/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SAND/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SAND/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SAND/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SAND/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SAND/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SAND/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block1.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block1.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block1.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block1.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block2.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block2.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block2.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block2.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block3.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block3.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block3.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block3.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block4.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block4.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block4.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block4.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block5.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block5.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block5.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block5.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block6.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block6.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block6.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/block6.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/foil.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/foil.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/foil.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/frameGt.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/frameGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/frameGt.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/frameGt.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/ore.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/ore.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/ore.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/ore.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/oreSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/oreSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/oreSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/oreSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeHuge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeHuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeHuge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeHuge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeLarge.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeLarge.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeLarge.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeLarge.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeMedium.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeMedium.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeMedium.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeMedium.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeSide.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeSide.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeSide.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeSide.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeSmall.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeSmall.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeSmall.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeTiny.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeTiny.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeTiny.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/void.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/void.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/void.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/wire.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/wire.png similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/wire.png rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/wire.png diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/copy_into_all.bat b/src/main/resources/assets/gregtech/textures/blocks/materialicons/copy_into_all.bat similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/copy_into_all.bat rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/copy_into_all.bat diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/copy_into_dull.bat b/src/main/resources/assets/gregtech/textures/blocks/materialicons/copy_into_dull.bat similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/copy_into_dull.bat rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/copy_into_dull.bat diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/copy_into_gems.bat b/src/main/resources/assets/gregtech/textures/blocks/materialicons/copy_into_gems.bat similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/copy_into_gems.bat rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/copy_into_gems.bat diff --git a/main/resources/assets/gregtech/textures/blocks/materialicons/copy_into_shiny.bat b/src/main/resources/assets/gregtech/textures/blocks/materialicons/copy_into_shiny.bat similarity index 100% rename from main/resources/assets/gregtech/textures/blocks/materialicons/copy_into_shiny.bat rename to src/main/resources/assets/gregtech/textures/blocks/materialicons/copy_into_shiny.bat diff --git a/main/resources/assets/gregtech/textures/entity/arrow.png b/src/main/resources/assets/gregtech/textures/entity/arrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/entity/arrow.png rename to src/main/resources/assets/gregtech/textures/entity/arrow.png diff --git a/main/resources/assets/gregtech/textures/entity/arrow_potions.png b/src/main/resources/assets/gregtech/textures/entity/arrow_potions.png similarity index 100% rename from main/resources/assets/gregtech/textures/entity/arrow_potions.png rename to src/main/resources/assets/gregtech/textures/entity/arrow_potions.png diff --git a/main/resources/assets/gregtech/textures/gui/1by1.png b/src/main/resources/assets/gregtech/textures/gui/1by1.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/1by1.png rename to src/main/resources/assets/gregtech/textures/gui/1by1.png diff --git a/main/resources/assets/gregtech/textures/gui/2by2.png b/src/main/resources/assets/gregtech/textures/gui/2by2.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/2by2.png rename to src/main/resources/assets/gregtech/textures/gui/2by2.png diff --git a/main/resources/assets/gregtech/textures/gui/3by3.png b/src/main/resources/assets/gregtech/textures/gui/3by3.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/3by3.png rename to src/main/resources/assets/gregtech/textures/gui/3by3.png diff --git a/main/resources/assets/gregtech/textures/gui/4by4.png b/src/main/resources/assets/gregtech/textures/gui/4by4.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/4by4.png rename to src/main/resources/assets/gregtech/textures/gui/4by4.png diff --git a/main/resources/assets/gregtech/textures/gui/AdvancedCraftingTable.png b/src/main/resources/assets/gregtech/textures/gui/AdvancedCraftingTable.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/AdvancedCraftingTable.png rename to src/main/resources/assets/gregtech/textures/gui/AdvancedCraftingTable.png diff --git a/main/resources/assets/gregtech/textures/gui/BasicTank.png b/src/main/resources/assets/gregtech/textures/gui/BasicTank.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/BasicTank.png rename to src/main/resources/assets/gregtech/textures/gui/BasicTank.png diff --git a/main/resources/assets/gregtech/textures/gui/BronzeBlastFurnace.png b/src/main/resources/assets/gregtech/textures/gui/BronzeBlastFurnace.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/BronzeBlastFurnace.png rename to src/main/resources/assets/gregtech/textures/gui/BronzeBlastFurnace.png diff --git a/main/resources/assets/gregtech/textures/gui/BronzeBoiler.png b/src/main/resources/assets/gregtech/textures/gui/BronzeBoiler.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/BronzeBoiler.png rename to src/main/resources/assets/gregtech/textures/gui/BronzeBoiler.png diff --git a/main/resources/assets/gregtech/textures/gui/BronzeCraftingTable.png b/src/main/resources/assets/gregtech/textures/gui/BronzeCraftingTable.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/BronzeCraftingTable.png rename to src/main/resources/assets/gregtech/textures/gui/BronzeCraftingTable.png diff --git a/main/resources/assets/gregtech/textures/gui/ChestBuffer.png b/src/main/resources/assets/gregtech/textures/gui/ChestBuffer.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/ChestBuffer.png rename to src/main/resources/assets/gregtech/textures/gui/ChestBuffer.png diff --git a/main/resources/assets/gregtech/textures/gui/ComputerCubeRedstone.png b/src/main/resources/assets/gregtech/textures/gui/ComputerCubeRedstone.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/ComputerCubeRedstone.png rename to src/main/resources/assets/gregtech/textures/gui/ComputerCubeRedstone.png diff --git a/main/resources/assets/gregtech/textures/gui/CropHarvestor.png b/src/main/resources/assets/gregtech/textures/gui/CropHarvestor.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/CropHarvestor.png rename to src/main/resources/assets/gregtech/textures/gui/CropHarvestor.png diff --git a/main/resources/assets/gregtech/textures/gui/ElectricAutoWorkbench.png b/src/main/resources/assets/gregtech/textures/gui/ElectricAutoWorkbench.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/ElectricAutoWorkbench.png rename to src/main/resources/assets/gregtech/textures/gui/ElectricAutoWorkbench.png diff --git a/main/resources/assets/gregtech/textures/gui/ElectricBufferSmall.png b/src/main/resources/assets/gregtech/textures/gui/ElectricBufferSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/ElectricBufferSmall.png rename to src/main/resources/assets/gregtech/textures/gui/ElectricBufferSmall.png diff --git a/main/resources/assets/gregtech/textures/gui/ElectricItemCleaner.png b/src/main/resources/assets/gregtech/textures/gui/ElectricItemCleaner.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/ElectricItemCleaner.png rename to src/main/resources/assets/gregtech/textures/gui/ElectricItemCleaner.png diff --git a/main/resources/assets/gregtech/textures/gui/Filter.png b/src/main/resources/assets/gregtech/textures/gui/Filter.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/Filter.png rename to src/main/resources/assets/gregtech/textures/gui/Filter.png diff --git a/main/resources/assets/gregtech/textures/gui/FusionComputer.png b/src/main/resources/assets/gregtech/textures/gui/FusionComputer.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/FusionComputer.png rename to src/main/resources/assets/gregtech/textures/gui/FusionComputer.png diff --git a/main/resources/assets/gregtech/textures/gui/Implosion.png b/src/main/resources/assets/gregtech/textures/gui/Implosion.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/Implosion.png rename to src/main/resources/assets/gregtech/textures/gui/Implosion.png diff --git a/main/resources/assets/gregtech/textures/gui/InventoryManager.png b/src/main/resources/assets/gregtech/textures/gui/InventoryManager.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/InventoryManager.png rename to src/main/resources/assets/gregtech/textures/gui/InventoryManager.png diff --git a/main/resources/assets/gregtech/textures/gui/MagicAbsorber.png b/src/main/resources/assets/gregtech/textures/gui/MagicAbsorber.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/MagicAbsorber.png rename to src/main/resources/assets/gregtech/textures/gui/MagicAbsorber.png diff --git a/main/resources/assets/gregtech/textures/gui/Maintenance.png b/src/main/resources/assets/gregtech/textures/gui/Maintenance.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/Maintenance.png rename to src/main/resources/assets/gregtech/textures/gui/Maintenance.png diff --git a/main/resources/assets/gregtech/textures/gui/RedstoneCircuitBlock.png b/src/main/resources/assets/gregtech/textures/gui/RedstoneCircuitBlock.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/RedstoneCircuitBlock.png rename to src/main/resources/assets/gregtech/textures/gui/RedstoneCircuitBlock.png diff --git a/main/resources/assets/gregtech/textures/gui/Regulator.png b/src/main/resources/assets/gregtech/textures/gui/Regulator.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/Regulator.png rename to src/main/resources/assets/gregtech/textures/gui/Regulator.png diff --git a/main/resources/assets/gregtech/textures/gui/Retriever.png b/src/main/resources/assets/gregtech/textures/gui/Retriever.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/Retriever.png rename to src/main/resources/assets/gregtech/textures/gui/Retriever.png diff --git a/main/resources/assets/gregtech/textures/gui/Safe.png b/src/main/resources/assets/gregtech/textures/gui/Safe.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/Safe.png rename to src/main/resources/assets/gregtech/textures/gui/Safe.png diff --git a/main/resources/assets/gregtech/textures/gui/SolarBoiler.png b/src/main/resources/assets/gregtech/textures/gui/SolarBoiler.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/SolarBoiler.png rename to src/main/resources/assets/gregtech/textures/gui/SolarBoiler.png diff --git a/main/resources/assets/gregtech/textures/gui/Sonictron.png b/src/main/resources/assets/gregtech/textures/gui/Sonictron.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/Sonictron.png rename to src/main/resources/assets/gregtech/textures/gui/Sonictron.png diff --git a/main/resources/assets/gregtech/textures/gui/SteelBoiler.png b/src/main/resources/assets/gregtech/textures/gui/SteelBoiler.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/SteelBoiler.png rename to src/main/resources/assets/gregtech/textures/gui/SteelBoiler.png diff --git a/main/resources/assets/gregtech/textures/gui/SuperBuffer.png b/src/main/resources/assets/gregtech/textures/gui/SuperBuffer.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/SuperBuffer.png rename to src/main/resources/assets/gregtech/textures/gui/SuperBuffer.png diff --git a/main/resources/assets/gregtech/textures/gui/Teleporter.png b/src/main/resources/assets/gregtech/textures/gui/Teleporter.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/Teleporter.png rename to src/main/resources/assets/gregtech/textures/gui/Teleporter.png diff --git a/main/resources/assets/gregtech/textures/gui/Tradeomat_Inventory.png b/src/main/resources/assets/gregtech/textures/gui/Tradeomat_Inventory.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/Tradeomat_Inventory.png rename to src/main/resources/assets/gregtech/textures/gui/Tradeomat_Inventory.png diff --git a/main/resources/assets/gregtech/textures/gui/Tradeomat_Main.png b/src/main/resources/assets/gregtech/textures/gui/Tradeomat_Main.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/Tradeomat_Main.png rename to src/main/resources/assets/gregtech/textures/gui/Tradeomat_Main.png diff --git a/main/resources/assets/gregtech/textures/gui/Tradeomat_Settings.png b/src/main/resources/assets/gregtech/textures/gui/Tradeomat_Settings.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/Tradeomat_Settings.png rename to src/main/resources/assets/gregtech/textures/gui/Tradeomat_Settings.png diff --git a/main/resources/assets/gregtech/textures/gui/TypeFilter.png b/src/main/resources/assets/gregtech/textures/gui/TypeFilter.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/TypeFilter.png rename to src/main/resources/assets/gregtech/textures/gui/TypeFilter.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/AlloySmelter.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/AlloySmelter.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/AlloySmelter.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/AlloySmelter.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Amplifabricator.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Amplifabricator.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Amplifabricator.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Amplifabricator.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/ArcFurnace.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/ArcFurnace.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/ArcFurnace.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/ArcFurnace.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Assembler.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Assembler.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Assembler.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Assembler.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Autoclave.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Autoclave.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Autoclave.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Autoclave.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Bender.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Bender.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Bender.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Bender.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/BronzeAlloySmelter.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/BronzeAlloySmelter.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/BronzeAlloySmelter.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/BronzeAlloySmelter.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/BronzeCompressor.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/BronzeCompressor.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/BronzeCompressor.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/BronzeCompressor.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/BronzeExtractor.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/BronzeExtractor.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/BronzeExtractor.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/BronzeExtractor.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/BronzeFurnace.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/BronzeFurnace.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/BronzeFurnace.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/BronzeFurnace.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/BronzeHammer.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/BronzeHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/BronzeHammer.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/BronzeHammer.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/BronzeMacerator.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/BronzeMacerator.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/BronzeMacerator.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/BronzeMacerator.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Canner.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Canner.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Canner.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Canner.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Centrifuge.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Centrifuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Centrifuge.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Centrifuge.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/ChemicalBath.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/ChemicalBath.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/ChemicalBath.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/ChemicalBath.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/ChemicalReactor.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/ChemicalReactor.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/ChemicalReactor.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/ChemicalReactor.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Compressor.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Compressor.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Compressor.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Compressor.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Cutter.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Cutter.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Cutter.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Cutter.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Default.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Default.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Default.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Default.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Disassembler.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Disassembler.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Disassembler.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Disassembler.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Distillery.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Distillery.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Distillery.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Distillery.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/E_Furnace.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/E_Furnace.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/E_Furnace.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/E_Furnace.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/E_Oven.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/E_Oven.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/E_Oven.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/E_Oven.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Electrolyzer.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Electrolyzer.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Electrolyzer.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Electrolyzer.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/ElectromagneticSeparator.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/ElectromagneticSeparator.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/ElectromagneticSeparator.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/ElectromagneticSeparator.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Extractor.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Extractor.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Extractor.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Extractor.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Extruder.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Extruder.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Extruder.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Extruder.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Fermenter.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Fermenter.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Fermenter.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Fermenter.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/FluidCanner.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/FluidCanner.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/FluidCanner.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/FluidCanner.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/FluidCannerNEI.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/FluidCannerNEI.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/FluidCannerNEI.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/FluidCannerNEI.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/FluidExtractor.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/FluidExtractor.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/FluidExtractor.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/FluidExtractor.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/FluidHeater.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/FluidHeater.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/FluidHeater.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/FluidHeater.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/FluidSolidifier.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/FluidSolidifier.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/FluidSolidifier.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/FluidSolidifier.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Hammer.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Hammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Hammer.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Hammer.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/LaserEngraver.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/LaserEngraver.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/LaserEngraver.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/LaserEngraver.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Lathe.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Lathe.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Lathe.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Lathe.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Macerator1.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Macerator1.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Macerator1.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Macerator1.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Macerator2.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Macerator2.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Macerator2.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Macerator2.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Macerator3.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Macerator3.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Macerator3.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Macerator3.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Macerator4.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Macerator4.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Macerator4.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Macerator4.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Massfabricator.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Massfabricator.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Massfabricator.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Massfabricator.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Mixer.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Mixer.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Mixer.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Mixer.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/OreWasher.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/OreWasher.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/OreWasher.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/OreWasher.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Packager.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Packager.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Packager.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Packager.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/PlasmaArcFurnace.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/PlasmaArcFurnace.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/PlasmaArcFurnace.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/PlasmaArcFurnace.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Polarizer.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Polarizer.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Polarizer.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Polarizer.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/PotionBrewer.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/PotionBrewer.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/PotionBrewer.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/PotionBrewer.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Press.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Press.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Press.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Press.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Printer.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Printer.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Printer.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Printer.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Recycler.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Recycler.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Recycler.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Recycler.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Replicator.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Replicator.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Replicator.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Replicator.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/RockBreaker.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/RockBreaker.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/RockBreaker.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/RockBreaker.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Scanner.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Scanner.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Scanner.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Scanner.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Sifter.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Sifter.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Sifter.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Sifter.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Slicer.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Slicer.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Slicer.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Slicer.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/SteelAlloySmelter.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/SteelAlloySmelter.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/SteelAlloySmelter.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/SteelAlloySmelter.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/SteelCompressor.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/SteelCompressor.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/SteelCompressor.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/SteelCompressor.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/SteelExtractor.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/SteelExtractor.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/SteelExtractor.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/SteelExtractor.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/SteelFurnace.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/SteelFurnace.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/SteelFurnace.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/SteelFurnace.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/SteelHammer.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/SteelHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/SteelHammer.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/SteelHammer.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/SteelMacerator.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/SteelMacerator.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/SteelMacerator.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/SteelMacerator.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/ThermalCentrifuge.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/ThermalCentrifuge.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/ThermalCentrifuge.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/ThermalCentrifuge.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Unpackager.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Unpackager.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Unpackager.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Unpackager.png diff --git a/main/resources/assets/gregtech/textures/gui/basicmachines/Wiremill.png b/src/main/resources/assets/gregtech/textures/gui/basicmachines/Wiremill.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/basicmachines/Wiremill.png rename to src/main/resources/assets/gregtech/textures/gui/basicmachines/Wiremill.png diff --git a/main/resources/assets/gregtech/textures/gui/multimachines/ElectricBlastFurnace.png b/src/main/resources/assets/gregtech/textures/gui/multimachines/ElectricBlastFurnace.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/multimachines/ElectricBlastFurnace.png rename to src/main/resources/assets/gregtech/textures/gui/multimachines/ElectricBlastFurnace.png diff --git a/main/resources/assets/gregtech/textures/gui/multimachines/FusionComputer.png b/src/main/resources/assets/gregtech/textures/gui/multimachines/FusionComputer.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/multimachines/FusionComputer.png rename to src/main/resources/assets/gregtech/textures/gui/multimachines/FusionComputer.png diff --git a/main/resources/assets/gregtech/textures/gui/multimachines/ImplosionCompressor.png b/src/main/resources/assets/gregtech/textures/gui/multimachines/ImplosionCompressor.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/multimachines/ImplosionCompressor.png rename to src/main/resources/assets/gregtech/textures/gui/multimachines/ImplosionCompressor.png diff --git a/main/resources/assets/gregtech/textures/gui/multimachines/LargeBoiler.png b/src/main/resources/assets/gregtech/textures/gui/multimachines/LargeBoiler.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/multimachines/LargeBoiler.png rename to src/main/resources/assets/gregtech/textures/gui/multimachines/LargeBoiler.png diff --git a/main/resources/assets/gregtech/textures/gui/multimachines/MultiFurnace.png b/src/main/resources/assets/gregtech/textures/gui/multimachines/MultiFurnace.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/multimachines/MultiFurnace.png rename to src/main/resources/assets/gregtech/textures/gui/multimachines/MultiFurnace.png diff --git a/main/resources/assets/gregtech/textures/gui/multimachines/MultiblockDisplay.png b/src/main/resources/assets/gregtech/textures/gui/multimachines/MultiblockDisplay.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/multimachines/MultiblockDisplay.png rename to src/main/resources/assets/gregtech/textures/gui/multimachines/MultiblockDisplay.png diff --git a/main/resources/assets/gregtech/textures/gui/multimachines/VacuumFreezer.png b/src/main/resources/assets/gregtech/textures/gui/multimachines/VacuumFreezer.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/multimachines/VacuumFreezer.png rename to src/main/resources/assets/gregtech/textures/gui/multimachines/VacuumFreezer.png diff --git a/main/resources/assets/gregtech/textures/gui/void.png b/src/main/resources/assets/gregtech/textures/gui/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/gui/void.png rename to src/main/resources/assets/gregtech/textures/gui/void.png diff --git a/main/resources/assets/gregtech/textures/items/gt.180k_Helium_Coolantcell.png b/src/main/resources/assets/gregtech/textures/items/gt.180k_Helium_Coolantcell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.180k_Helium_Coolantcell.png rename to src/main/resources/assets/gregtech/textures/items/gt.180k_Helium_Coolantcell.png diff --git a/main/resources/assets/gregtech/textures/items/gt.180k_NaK_Coolantcell.png b/src/main/resources/assets/gregtech/textures/items/gt.180k_NaK_Coolantcell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.180k_NaK_Coolantcell.png rename to src/main/resources/assets/gregtech/textures/items/gt.180k_NaK_Coolantcell.png diff --git a/main/resources/assets/gregtech/textures/items/gt.360k_Helium_Coolantcell.png b/src/main/resources/assets/gregtech/textures/items/gt.360k_Helium_Coolantcell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.360k_Helium_Coolantcell.png rename to src/main/resources/assets/gregtech/textures/items/gt.360k_Helium_Coolantcell.png diff --git a/main/resources/assets/gregtech/textures/items/gt.360k_NaK_Coolantcell.png b/src/main/resources/assets/gregtech/textures/items/gt.360k_NaK_Coolantcell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.360k_NaK_Coolantcell.png rename to src/main/resources/assets/gregtech/textures/items/gt.360k_NaK_Coolantcell.png diff --git a/main/resources/assets/gregtech/textures/items/gt.60k_Helium_Coolantcell.png b/src/main/resources/assets/gregtech/textures/items/gt.60k_Helium_Coolantcell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.60k_Helium_Coolantcell.png rename to src/main/resources/assets/gregtech/textures/items/gt.60k_Helium_Coolantcell.png diff --git a/main/resources/assets/gregtech/textures/items/gt.60k_NaK_Coolantcell.png b/src/main/resources/assets/gregtech/textures/items/gt.60k_NaK_Coolantcell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.60k_NaK_Coolantcell.png rename to src/main/resources/assets/gregtech/textures/items/gt.60k_NaK_Coolantcell.png diff --git a/main/resources/assets/gregtech/textures/items/gt.Double_Thoriumcell.png b/src/main/resources/assets/gregtech/textures/items/gt.Double_Thoriumcell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.Double_Thoriumcell.png rename to src/main/resources/assets/gregtech/textures/items/gt.Double_Thoriumcell.png diff --git a/main/resources/assets/gregtech/textures/items/gt.Double_ThoriumcellDep.png b/src/main/resources/assets/gregtech/textures/items/gt.Double_ThoriumcellDep.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.Double_ThoriumcellDep.png rename to src/main/resources/assets/gregtech/textures/items/gt.Double_ThoriumcellDep.png diff --git a/main/resources/assets/gregtech/textures/items/gt.Quad_Thoriumcell.png b/src/main/resources/assets/gregtech/textures/items/gt.Quad_Thoriumcell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.Quad_Thoriumcell.png rename to src/main/resources/assets/gregtech/textures/items/gt.Quad_Thoriumcell.png diff --git a/main/resources/assets/gregtech/textures/items/gt.Quad_ThoriumcellDep.png b/src/main/resources/assets/gregtech/textures/items/gt.Quad_ThoriumcellDep.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.Quad_ThoriumcellDep.png rename to src/main/resources/assets/gregtech/textures/items/gt.Quad_ThoriumcellDep.png diff --git a/main/resources/assets/gregtech/textures/items/gt.Thoriumcell.png b/src/main/resources/assets/gregtech/textures/items/gt.Thoriumcell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.Thoriumcell.png rename to src/main/resources/assets/gregtech/textures/items/gt.Thoriumcell.png diff --git a/main/resources/assets/gregtech/textures/items/gt.ThoriumcellDep.png b/src/main/resources/assets/gregtech/textures/items/gt.ThoriumcellDep.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.ThoriumcellDep.png rename to src/main/resources/assets/gregtech/textures/items/gt.ThoriumcellDep.png diff --git a/main/resources/assets/gregtech/textures/items/gt.integrated_circuit.png b/src/main/resources/assets/gregtech/textures/items/gt.integrated_circuit.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.integrated_circuit.png rename to src/main/resources/assets/gregtech/textures/items/gt.integrated_circuit.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/0.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/0.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/0.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/0.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/1.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/1.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/1.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/10.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/10.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/10.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/10.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/100.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/100.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/100.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/100.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/101.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/101.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/101.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/101.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/11.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/11.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/11.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/11.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/13.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/13.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/13.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/13.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/14.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/14.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/14.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/14.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/15.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/15.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/15.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/15.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/16.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/16.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/16.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/16.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/2.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/2.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/2.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/200.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/200.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/200.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/200.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/201.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/201.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/201.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/201.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/202.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/202.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/202.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/202.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/203.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/203.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/203.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/203.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/204.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/204.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/204.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/204.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/205.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/205.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/205.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/205.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/206.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/206.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/206.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/206.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/207.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/207.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/207.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/207.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/208.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/208.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/208.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/208.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/225.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/225.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/225.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/225.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/226.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/226.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/226.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/226.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/227.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/227.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/227.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/227.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/228.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/228.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/228.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/228.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/229.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/229.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/229.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/229.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/230.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/230.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/230.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/230.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/231.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/231.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/231.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/231.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/232.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/232.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/232.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/232.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/233.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/233.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/233.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/233.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/250.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/250.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/250.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/250.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/251.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/251.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/251.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/251.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/252.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/252.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/252.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/252.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/253.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/253.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/253.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/253.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/254.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/254.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/254.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/254.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/255.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/255.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/255.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/255.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/256.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/256.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/256.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/256.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/257.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/257.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/257.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/257.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/258.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/258.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/258.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/258.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/3.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/3.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/3.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/300.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/300.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/300.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/300.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/301.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/301.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/301.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/301.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/302.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/302.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/302.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/302.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/303.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/303.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/303.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/303.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/304.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/304.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/304.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/304.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/305.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/305.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/305.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/305.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/306.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/306.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/306.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/306.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/307.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/307.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/307.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/307.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/308.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/308.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/308.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/308.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/309.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/309.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/309.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/309.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/310.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/310.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/310.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/310.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/311.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/311.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/311.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/311.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/312.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/312.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/312.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/312.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/313.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/313.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/313.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/313.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/314.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/314.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/314.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/314.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/315.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/315.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/315.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/315.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/316.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/316.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/316.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/316.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/317.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/317.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/317.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/317.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/350.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/350.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/350.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/350.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/351.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/351.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/351.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/351.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/352.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/352.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/352.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/352.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/353.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/353.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/353.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/353.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/354.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/354.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/354.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/354.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/355.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/355.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/355.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/355.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/356.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/356.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/356.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/356.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/357.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/357.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/357.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/357.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/358.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/358.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/358.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/358.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/359.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/359.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/359.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/359.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/360.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/360.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/360.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/360.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/361.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/361.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/361.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/361.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/362.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/362.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/362.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/362.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/363.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/363.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/363.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/363.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/364.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/364.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/364.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/364.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/365.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/365.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/365.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/365.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/366.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/366.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/366.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/366.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/367.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/367.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/367.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/367.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/368.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/368.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/368.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/368.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/369.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/369.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/369.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/369.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/370.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/370.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/370.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/370.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/371.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/371.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/371.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/371.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/372.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/372.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/372.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/372.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/373.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/373.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/373.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/373.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/398.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/398.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/398.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/398.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/399.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/399.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/399.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/399.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/4.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/4.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/4.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/400.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/400.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/400.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/400.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/401.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/401.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/401.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/401.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/402.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/402.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/402.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/402.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/403.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/403.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/403.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/403.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/404.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/404.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/404.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/404.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/405.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/405.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/405.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/405.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/406.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/406.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/406.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/406.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/430.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/430.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/430.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/430.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/431.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/431.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/431.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/431.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/432.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/432.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/432.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/432.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/433.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/433.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/433.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/433.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/434.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/434.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/434.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/434.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/435.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/435.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/435.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/435.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/436.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/436.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/436.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/436.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/437.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/437.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/437.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/437.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/438.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/438.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/438.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/438.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/439.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/439.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/439.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/439.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/440.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/440.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/440.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/440.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/441.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/441.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/441.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/441.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/442.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/442.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/442.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/442.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/443.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/443.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/443.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/443.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/444.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/444.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/444.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/444.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/445.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/445.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/445.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/445.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/446.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/446.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/446.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/446.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/447.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/447.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/447.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/447.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/448.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/448.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/448.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/448.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/449.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/449.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/449.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/449.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/450.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/450.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/450.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/450.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/451.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/451.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/451.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/451.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/452.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/452.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/452.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/452.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/453.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/453.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/453.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/453.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/454.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/454.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/454.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/454.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/455.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/455.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/455.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/455.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/456.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/456.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/456.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/456.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/457.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/457.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/457.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/457.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/458.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/458.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/458.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/458.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/459.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/459.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/459.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/459.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/460.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/460.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/460.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/460.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/461.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/461.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/461.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/461.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/462.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/462.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/462.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/462.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/463.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/463.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/463.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/463.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/464.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/464.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/464.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/464.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/471.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/471.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/471.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/471.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/472.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/472.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/472.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/472.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/473.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/473.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/473.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/473.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/474.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/474.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/474.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/474.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/475.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/475.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/475.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/475.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/476.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/476.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/476.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/476.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/477.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/477.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/477.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/477.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/478.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/478.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/478.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/478.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/479.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/479.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/479.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/479.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/480.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/480.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/480.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/480.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/481.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/481.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/481.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/481.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/482.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/482.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/482.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/482.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/483.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/483.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/483.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/483.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/484.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/484.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/484.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/484.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/485.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/485.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/485.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/485.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/486.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/486.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/486.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/486.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/487.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/487.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/487.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/487.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/488.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/488.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/488.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/488.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/489.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/489.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/489.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/489.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/490.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/490.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/490.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/490.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/491.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/491.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/491.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/491.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/495.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/495.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/495.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/495.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/496.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/496.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/496.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/496.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/497.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/497.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/497.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/497.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/498.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/498.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/498.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/498.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/499.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/499.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/499.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/499.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/5.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/5.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/5.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/500.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/500.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/500.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/500.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/501.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/501.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/501.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/501.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/502.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/502.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/502.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/502.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/510.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/1.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/1.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/1.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/2.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/2.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/2.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/3.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/3.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/3.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/4.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/4.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/4.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/5.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/5.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/5.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/6.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/6.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/6.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/7.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/7.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/7.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/8.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/8.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/510/8.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/511.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/1.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/1.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/1.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/2.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/2.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/2.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/3.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/3.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/3.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/4.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/4.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/4.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/5.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/5.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/5.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/6.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/6.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/6.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/7.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/7.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/7.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/8.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/8.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/511/8.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/517.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/1.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/1.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/1.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/2.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/2.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/2.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/3.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/3.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/3.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/4.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/4.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/4.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/5.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/5.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/5.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/6.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/6.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/6.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/7.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/7.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/7.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/8.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/8.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/517/8.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/518.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/1.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/1.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/1.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/2.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/2.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/2.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/3.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/3.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/3.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/4.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/4.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/4.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/5.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/5.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/5.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/6.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/6.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/6.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/7.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/7.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/7.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/8.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/8.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/518/8.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/519.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/1.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/1.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/1.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/2.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/2.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/2.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/3.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/3.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/3.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/4.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/4.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/4.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/5.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/5.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/5.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/6.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/6.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/6.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/7.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/7.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/7.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/8.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/8.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/519/8.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/520.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/1.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/1.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/1.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/2.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/2.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/2.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/3.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/3.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/3.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/4.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/4.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/4.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/5.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/5.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/5.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/6.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/6.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/6.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/7.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/7.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/7.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/8.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/8.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/520/8.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/521.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/1.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/1.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/1.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/2.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/2.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/2.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/3.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/3.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/3.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/4.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/4.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/4.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/5.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/5.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/5.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/6.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/6.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/6.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/7.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/7.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/7.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/8.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/8.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/521/8.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/527.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/1.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/1.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/1.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/2.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/2.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/2.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/3.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/3.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/3.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/4.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/4.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/4.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/5.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/5.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/5.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/6.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/6.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/6.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/7.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/7.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/7.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/8.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/8.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/527/8.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/528.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/1.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/1.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/1.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/2.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/2.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/2.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/3.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/3.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/3.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/4.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/4.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/4.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/5.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/5.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/5.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/6.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/6.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/6.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/7.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/7.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/7.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/8.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/8.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/528/8.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/529.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/1.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/1.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/1.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/2.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/2.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/2.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/3.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/3.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/3.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/4.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/4.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/4.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/5.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/5.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/5.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/6.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/6.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/6.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/7.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/7.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/7.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/8.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/8.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/529/8.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/530.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/1.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/1.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/1.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/2.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/2.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/2.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/3.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/3.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/3.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/4.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/4.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/4.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/5.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/5.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/5.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/6.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/6.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/6.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/7.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/7.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/7.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/8.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/8.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/530/8.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/531.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/1.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/1.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/1.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/2.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/2.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/2.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/3.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/3.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/3.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/4.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/4.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/4.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/5.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/5.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/5.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/6.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/6.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/6.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/7.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/7.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/7.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/8.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/8.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/531/8.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/537.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/1.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/1.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/1.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/2.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/2.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/2.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/3.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/3.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/3.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/4.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/4.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/4.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/5.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/5.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/5.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/6.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/6.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/6.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/7.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/7.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/7.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/8.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/8.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/537/8.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/538.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/1.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/1.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/1.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/2.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/2.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/2.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/3.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/3.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/3.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/4.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/4.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/4.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/5.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/5.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/5.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/6.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/6.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/6.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/7.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/7.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/7.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/8.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/8.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/538/8.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/539.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/1.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/1.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/1.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/2.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/2.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/2.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/3.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/3.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/3.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/4.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/4.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/4.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/5.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/5.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/5.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/6.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/6.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/6.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/7.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/7.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/7.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/8.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/8.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/539/8.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/597.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/1.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/1.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/1.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/2.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/2.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/2.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/3.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/3.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/3.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/4.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/4.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/4.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/5.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/5.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/5.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/6.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/6.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/6.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/7.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/7.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/7.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/8.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/8.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/597/8.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/598.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/1.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/1.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/1.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/2.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/2.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/2.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/3.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/3.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/3.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/4.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/4.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/4.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/5.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/5.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/5.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/6.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/6.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/6.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/7.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/7.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/7.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/8.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/8.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/598/8.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/599.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/1.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/1.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/1.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/2.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/2.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/2.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/3.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/3.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/3.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/4.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/4.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/4.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/5.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/5.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/5.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/6.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/6.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/6.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/7.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/7.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/7.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/8.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/8.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/599/8.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/6.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/6.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/6.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/600.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/600.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/600.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/600.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/601.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/601.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/601.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/601.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/602.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/602.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/602.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/602.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/603.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/603.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/603.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/603.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/604.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/604.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/604.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/604.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/605.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/1.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/1.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/1.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/2.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/2.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/2.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/3.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/3.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/3.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/4.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/4.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/4.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/5.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/5.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/5.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/6.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/6.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/6.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/7.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/7.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/7.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/8.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/8.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/605/8.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/610.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/610.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/610.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/610.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/611.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/611.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/611.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/611.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/612.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/612.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/612.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/612.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/613.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/613.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/613.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/613.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/614.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/614.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/614.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/614.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/630.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/630.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/630.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/630.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/631.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/631.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/631.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/631.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/632.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/632.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/632.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/632.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/633.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/633.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/633.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/633.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/634.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/634.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/634.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/634.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/640.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/640.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/640.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/640.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/641.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/641.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/641.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/641.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/642.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/642.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/642.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/642.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/643.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/643.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/643.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/643.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/644.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/644.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/644.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/644.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/650.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/650.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/650.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/650.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/651.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/651.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/651.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/651.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/652.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/652.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/652.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/652.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/653.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/653.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/653.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/653.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/654.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/654.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/654.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/654.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/660.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/660.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/660.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/660.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/661.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/661.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/661.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/661.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/662.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/662.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/662.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/662.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/663.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/663.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/663.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/663.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/664.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/664.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/664.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/664.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/670.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/670.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/670.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/670.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/671.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/671.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/671.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/671.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/672.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/672.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/672.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/672.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/673.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/673.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/673.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/673.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/674.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/674.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/674.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/674.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/680.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/680.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/680.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/680.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/681.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/681.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/681.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/681.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/682.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/682.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/682.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/682.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/683.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/683.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/683.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/683.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/684.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/684.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/684.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/684.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/690.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/690.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/690.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/690.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/691.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/691.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/691.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/691.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/692.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/692.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/692.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/692.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/693.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/693.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/693.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/693.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/694.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/694.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/694.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/694.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/7.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/7.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/7.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/700.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/700.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/700.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/700.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/701.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/701.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/701.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/701.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/702.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/702.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/702.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/702.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/703.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/703.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/703.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/703.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/704.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/704.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/704.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/704.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/705.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/705.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/705.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/705.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/706.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/706.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/706.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/706.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/707.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/707.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/707.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/707.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/708.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/708.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/708.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/708.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/710.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/710.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/710.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/710.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/711.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/711.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/711.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/711.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/712.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/712.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/712.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/712.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/713.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/713.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/713.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/713.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/714.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/714.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/714.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/714.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/715.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/715.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/715.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/715.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/716.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/716.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/716.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/716.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/717.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/717.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/717.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/717.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/718.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/718.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/718.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/718.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/721.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/721.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/721.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/721.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/722.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/722.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/722.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/722.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/723.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/723.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/723.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/723.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/727.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/727.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/727.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/727.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/728.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/728.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/728.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/728.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/729.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/729.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/729.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/729.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/730.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/730.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/730.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/730.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/731.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/731.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/731.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/731.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/732.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/732.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/732.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/732.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/733.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/733.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/733.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/733.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/734.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/734.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/734.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/734.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/735.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/735.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/735.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/735.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/740.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/740.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/740.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/740.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/741.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/741.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/741.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/741.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/742.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/742.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/742.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/742.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/744.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/744.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/744.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/744.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/745.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/745.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/745.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/745.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/746.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/746.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/746.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/746.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/747.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/747.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/747.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/747.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/748.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/748.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/748.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/748.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/749.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/749.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/749.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/749.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/750.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/750.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/750.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/750.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/751.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/751.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/751.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/751.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/752.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/752.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/752.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/752.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/753.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/753.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/753.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/753.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/754.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/754.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/754.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/754.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/755.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/755.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/755.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/755.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/756.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/756.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/756.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/756.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/757.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/757.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/757.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/757.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/758.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/758.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/758.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/758.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/759.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/759.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/759.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/759.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/760.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/760.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/760.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/760.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/761.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/761.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/761.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/761.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/762.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/762.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/762.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/762.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/763.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/763.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/763.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/763.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/764.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/764.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/764.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/764.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/765.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/765.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/765.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/765.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/8.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/8.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/8.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.01/9.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/9.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.01/9.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/9.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/0.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/0.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/0.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/0.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/1.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/1.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/1.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/100.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/100.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/100.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/100.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/101.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/101.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/101.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/101.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/102.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/102.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/102.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/102.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/103.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/103.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/103.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/103.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/104.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/104.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/104.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/104.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/105.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/105.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/105.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/105.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/106.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/106.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/106.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/106.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/107.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/107.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/107.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/107.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/108.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/108.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/108.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/108.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/109.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/109.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/109.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/109.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/110.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/110.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/110.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/110.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/111.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/111.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/111.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/111.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/112.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/112.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/112.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/112.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/113.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/113.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/113.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/113.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/114.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/114.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/114.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/114.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/115.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/115.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/115.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/115.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/116.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/116.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/116.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/116.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/117.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/117.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/117.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/117.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/118.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/118.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/118.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/118.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/119.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/119.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/119.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/119.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/120.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/120.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/120.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/120.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/121.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/121.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/121.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/121.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/122.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/122.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/122.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/122.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/123.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/123.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/123.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/123.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/124.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/124.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/124.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/124.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/125.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/125.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/125.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/125.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/126.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/126.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/126.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/126.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/127.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/127.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/127.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/127.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/128.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/128.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/128.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/128.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/129.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/129.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/129.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/129.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/130.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/130.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/130.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/130.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/131.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/131.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/131.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/131.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/132.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/132.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/132.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/132.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/133.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/133.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/133.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/133.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/134.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/134.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/134.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/134.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/135.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/135.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/135.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/135.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/136.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/136.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/136.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/136.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/137.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/137.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/137.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/137.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/2.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/2.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/2.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/200.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/200.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/200.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/200.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/201.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/201.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/201.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/201.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/202.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/202.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/202.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/202.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/203.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/203.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/203.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/203.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/204.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/204.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/204.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/204.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/205.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/205.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/205.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/205.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/206.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/206.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/206.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/206.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/207.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/207.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/207.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/207.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/208.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/208.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/208.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/208.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/209.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/209.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/209.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/209.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/210.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/210.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/210.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/210.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/211.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/211.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/211.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/211.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/212.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/212.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/212.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/212.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/213.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/213.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/213.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/213.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/214.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/214.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/214.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/214.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/220.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/220.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/220.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/220.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/221.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/221.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/221.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/221.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/222.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/222.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/222.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/222.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/223.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/223.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/223.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/223.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/224.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/224.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/224.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/224.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/230.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/230.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/230.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/230.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/231.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/231.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/231.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/231.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/232.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/232.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/232.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/232.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/233.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/233.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/233.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/233.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/234.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/234.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/234.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/234.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/240.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/240.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/240.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/240.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/241.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/241.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/241.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/241.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/242.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/242.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/242.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/242.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/243.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/243.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/243.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/243.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/244.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/244.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/244.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/244.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/250.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/250.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/250.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/250.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/251.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/251.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/251.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/251.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/252.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/252.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/252.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/252.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/260.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/260.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/260.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/260.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/261.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/261.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/261.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/261.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/262.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/262.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/262.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/262.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/3.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/3.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/3.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/4.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/4.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/4.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/410.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/410.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/410.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/410.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/414.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/414.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/414.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/414.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/415.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/415.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/415.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/415.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/416.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/416.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/416.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/416.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/417.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/417.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/417.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/417.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/418.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/418.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/418.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/418.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/419.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/419.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/419.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/419.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/420.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/420.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/420.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/420.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/421.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/421.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/421.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/421.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/422.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/422.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/422.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/422.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/423.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/423.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/423.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/423.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/424.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/424.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/424.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/424.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/425.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/425.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/425.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/425.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/426.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/426.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/426.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/426.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/427.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/427.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/427.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/427.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/428.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/428.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/428.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/428.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/429.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/429.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/429.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/429.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/470.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/470.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/470.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/470.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/471.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/471.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/471.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/471.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/472.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/472.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/472.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/472.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/473.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/473.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/473.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/473.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/474.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/474.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/474.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/474.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/475.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/475.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/475.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/475.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/476.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/476.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/476.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/476.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/477.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/477.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/477.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/477.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/478.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/478.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/478.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/478.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/479.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/479.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/479.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/479.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/480.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/480.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/480.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/480.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/481.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/481.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/481.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/481.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/482.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/482.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/482.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/482.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/483.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/483.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/483.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/483.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/484.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/484.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/484.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/484.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/485.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/485.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/485.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/485.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/486.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/486.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/486.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/486.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/487.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/487.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/487.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/487.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/488.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/488.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/488.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/488.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/489.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/489.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/489.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/489.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/490.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/490.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/490.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/490.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/491.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/491.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/491.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/491.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/492.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/492.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/492.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/492.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/493.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/493.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/493.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/493.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/494.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/494.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/494.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/494.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/495.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/495.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/495.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/495.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/496.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/496.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/496.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/496.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/497.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/497.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/497.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/497.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/498.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/498.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/498.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/498.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/499.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/499.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/499.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/499.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/5.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/5.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/5.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/500.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/500.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/500.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/500.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/501.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/501.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/501.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/501.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/502.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/502.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/502.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/502.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/503.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/503.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/503.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/503.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/504.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/504.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/504.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/504.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/505.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/505.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/505.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/505.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/510.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/510.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/510.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/510.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/511.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/511.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/511.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/511.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/520.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/520.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/520.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/520.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/530.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/530.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/530.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/530.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/540.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/540.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/540.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/540.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/550.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/550.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/550.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/550.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/551.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/551.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/551.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/551.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/552.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/552.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/552.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/552.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/553.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/553.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/553.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/553.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/554.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/554.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/554.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/554.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/555.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/555.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/555.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/555.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/556.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/556.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/556.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/556.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/558.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/558.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/558.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/558.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/559.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/559.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/559.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/559.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/560.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/560.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/560.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/560.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/561.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/561.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/561.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/561.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/562.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/562.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/562.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/562.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/563.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/563.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/563.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/563.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/564.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/564.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/564.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/564.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/565.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/565.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/565.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/565.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/566.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/566.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/566.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/566.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/567.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/567.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/567.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/567.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/568.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/568.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/568.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/568.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/569.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/569.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/569.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/569.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/570.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/570.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/570.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/570.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/571.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/571.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/571.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/571.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/572.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/572.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/572.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/572.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/573.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/573.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/573.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/573.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/574.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/574.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/574.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/574.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/576.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/576.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/576.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/576.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/6.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/6.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/6.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/7.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/7.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/7.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/766.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/766.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/766.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/766.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/8.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/8.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/8.png diff --git a/main/resources/assets/gregtech/textures/items/gt.metaitem.02/9.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/9.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.metaitem.02/9.png rename to src/main/resources/assets/gregtech/textures/items/gt.metaitem.02/9.png diff --git a/main/resources/assets/gregtech/textures/items/gt.neutronreflector.png b/src/main/resources/assets/gregtech/textures/items/gt.neutronreflector.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.neutronreflector.png rename to src/main/resources/assets/gregtech/textures/items/gt.neutronreflector.png diff --git a/main/resources/assets/gregtech/textures/items/gt.sensorcard.png b/src/main/resources/assets/gregtech/textures/items/gt.sensorcard.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/gt.sensorcard.png rename to src/main/resources/assets/gregtech/textures/items/gt.sensorcard.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/BUTCHERYKNIFE.png b/src/main/resources/assets/gregtech/textures/items/iconsets/BUTCHERYKNIFE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/BUTCHERYKNIFE.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/BUTCHERYKNIFE.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/BUTCHERYKNIFE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/BUTCHERYKNIFE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/BUTCHERYKNIFE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/BUTCHERYKNIFE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/CROWBAR.png b/src/main/resources/assets/gregtech/textures/items/iconsets/CROWBAR.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/CROWBAR.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/CROWBAR.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/CROWBAR_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/CROWBAR_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/CROWBAR_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/CROWBAR_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_0.png b/src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_0.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_0.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_0.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_0_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_0_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_0_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_0_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_1.png b/src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_1.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_1.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_1_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_1_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_1_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_1_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_2.png b/src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_2.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_2.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_2_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_2_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_2_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_2_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_3.png b/src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_3.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_3.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_3_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_3_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_3_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_3_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_4.png b/src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_4.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_4.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_4_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_4_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_4_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_4_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_5.png b/src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_5.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_5.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_5_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_5_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_5_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_5_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_6.png b/src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_6.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_6.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_6_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_6_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_6_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_6_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_7.png b/src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_7.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_7.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_7_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_7_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_7_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_7_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_8.png b/src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_8.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_8.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_8_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_8_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_8_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/DURABILITY_BAR_8_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_0.png b/src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_0.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_0.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_0.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_0_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_0_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_0_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_0_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_1.png b/src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_1.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_1.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_1.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_1_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_1_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_1_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_1_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_2.png b/src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_2.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_2.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_2.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_2_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_2_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_2_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_2_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_3.png b/src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_3.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_3.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_3.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_3_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_3_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_3_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_3_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_4.png b/src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_4.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_4.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_4.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_4_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_4_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_4_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_4_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_5.png b/src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_5.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_5.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_5.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_5_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_5_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_5_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_5_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_6.png b/src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_6.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_6.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_6.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_6_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_6_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_6_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_6_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_7.png b/src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_7.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_7.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_7.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_7_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_7_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_7_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_7_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_8.png b/src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_8.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_8.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_8.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_8_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_8_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_8_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/ENERGY_BAR_8_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/GRAFTER.png b/src/main/resources/assets/gregtech/textures/items/iconsets/GRAFTER.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/GRAFTER.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/GRAFTER.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/GRAFTER_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/GRAFTER_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/GRAFTER_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/GRAFTER_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_BUZZSAW.png b/src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_BUZZSAW.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/HANDLE_BUZZSAW.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_BUZZSAW.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_BUZZSAW_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_BUZZSAW_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/HANDLE_BUZZSAW_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_BUZZSAW_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_ELECTRIC_SCREWDRIVER.png b/src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_ELECTRIC_SCREWDRIVER.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/HANDLE_ELECTRIC_SCREWDRIVER.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_ELECTRIC_SCREWDRIVER.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_ELECTRIC_SCREWDRIVER_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_ELECTRIC_SCREWDRIVER_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/HANDLE_ELECTRIC_SCREWDRIVER_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_ELECTRIC_SCREWDRIVER_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_FILE.png b/src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_FILE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/HANDLE_FILE.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_FILE.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_FILE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_FILE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/HANDLE_FILE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_FILE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SAW.png b/src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SAW.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SAW.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SAW.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SAW_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SAW_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SAW_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SAW_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SCREWDRIVER.png b/src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SCREWDRIVER.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SCREWDRIVER.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SCREWDRIVER.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SCREWDRIVER_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SCREWDRIVER_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SCREWDRIVER_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SCREWDRIVER_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SOLDERING.png b/src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SOLDERING.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SOLDERING.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SOLDERING.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SOLDERING_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SOLDERING_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SOLDERING_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SOLDERING_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SWORD.png b/src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SWORD.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SWORD.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SWORD.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SWORD_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SWORD_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SWORD_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/HANDLE_SWORD_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/JACKHAMMER.png b/src/main/resources/assets/gregtech/textures/items/iconsets/JACKHAMMER.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/JACKHAMMER.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/JACKHAMMER.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/JACKHAMMER_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/JACKHAMMER_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/JACKHAMMER_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/JACKHAMMER_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/KNIFE.png b/src/main/resources/assets/gregtech/textures/items/iconsets/KNIFE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/KNIFE.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/KNIFE.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/KNIFE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/KNIFE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/KNIFE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/KNIFE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/MORTAR.png b/src/main/resources/assets/gregtech/textures/items/iconsets/MORTAR.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/MORTAR.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/MORTAR.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/MORTAR_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/MORTAR_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/MORTAR_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/MORTAR_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/PLUNGER.png b/src/main/resources/assets/gregtech/textures/items/iconsets/PLUNGER.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/PLUNGER.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/PLUNGER.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/PLUNGER_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/PLUNGER_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/PLUNGER_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/PLUNGER_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_HV.png b/src/main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_HV.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_HV.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_HV.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_HV_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_HV_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_HV_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_HV_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_LV.png b/src/main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_LV.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_LV.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_LV.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_LV_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_LV_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_LV_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_LV_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_MV.png b/src/main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_MV.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_MV.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_MV.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_MV_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_MV_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_MV_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/POWER_UNIT_MV_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/RENDERING_ERROR.png b/src/main/resources/assets/gregtech/textures/items/iconsets/RENDERING_ERROR.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/RENDERING_ERROR.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/RENDERING_ERROR.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/RENDERING_ERROR_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/RENDERING_ERROR_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/RENDERING_ERROR_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/RENDERING_ERROR_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/ROLLING_PIN.png b/src/main/resources/assets/gregtech/textures/items/iconsets/ROLLING_PIN.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/ROLLING_PIN.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/ROLLING_PIN.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/ROLLING_PIN_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/ROLLING_PIN_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/ROLLING_PIN_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/ROLLING_PIN_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/SCOOP.png b/src/main/resources/assets/gregtech/textures/items/iconsets/SCOOP.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/SCOOP.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/SCOOP.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/SCOOP_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/SCOOP_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/SCOOP_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/SCOOP_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/SICKLE.png b/src/main/resources/assets/gregtech/textures/items/iconsets/SICKLE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/SICKLE.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/SICKLE.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/SICKLE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/SICKLE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/SICKLE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/SICKLE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/TURBINE.png b/src/main/resources/assets/gregtech/textures/items/iconsets/TURBINE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/TURBINE.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/TURBINE.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/TURBINE_HUGE.png b/src/main/resources/assets/gregtech/textures/items/iconsets/TURBINE_HUGE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/TURBINE_HUGE.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/TURBINE_HUGE.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/TURBINE_HUGE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/TURBINE_HUGE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/TURBINE_HUGE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/TURBINE_HUGE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/TURBINE_LARGE.png b/src/main/resources/assets/gregtech/textures/items/iconsets/TURBINE_LARGE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/TURBINE_LARGE.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/TURBINE_LARGE.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/TURBINE_LARGE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/TURBINE_LARGE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/TURBINE_LARGE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/TURBINE_LARGE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/TURBINE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/TURBINE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/TURBINE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/TURBINE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/TURBINE_SMALL.png b/src/main/resources/assets/gregtech/textures/items/iconsets/TURBINE_SMALL.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/TURBINE_SMALL.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/TURBINE_SMALL.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/TURBINE_SMALL_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/TURBINE_SMALL_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/TURBINE_SMALL_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/TURBINE_SMALL_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/VOID.png b/src/main/resources/assets/gregtech/textures/items/iconsets/VOID.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/VOID.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/VOID.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/VOID_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/VOID_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/VOID_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/VOID_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/WIRE_CUTTER.png b/src/main/resources/assets/gregtech/textures/items/iconsets/WIRE_CUTTER.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/WIRE_CUTTER.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/WIRE_CUTTER.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/WIRE_CUTTER_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/WIRE_CUTTER_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/WIRE_CUTTER_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/WIRE_CUTTER_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/WRENCH.png b/src/main/resources/assets/gregtech/textures/items/iconsets/WRENCH.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/WRENCH.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/WRENCH.png diff --git a/main/resources/assets/gregtech/textures/items/iconsets/WRENCH_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/iconsets/WRENCH_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/iconsets/WRENCH_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/iconsets/WRENCH_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/DULL/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/DULL/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/DULL/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/EMERALD/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FIERY/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FIERY/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FINE/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FINE/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FINE/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLINT/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLINT/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/FLUID/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/FLUID/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/GLASS/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/GLASS/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LAPIS/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LEAF/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LEAF/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/METALLIC/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/NONE/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/NONE/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/NONE/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/OPAL/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/OPAL/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/PAPER/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/PAPER/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/POWDER/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/POWDER/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/ROUGH/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/RUBY/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/RUBY/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SAND/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SAND/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SAND/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHARDS/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/SHINY/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/SHINY/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/TURBINE_BLADE.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/TURBINE_BLADE.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/TURBINE_BLADE.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/TURBINE_BLADE.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/TURBINE_BLADE_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/TURBINE_BLADE_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/TURBINE_BLADE_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/TURBINE_BLADE_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/arrowGtPlastic.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/arrowGtPlastic.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/arrowGtPlastic.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/arrowGtPlastic.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/arrowGtPlastic_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/arrowGtPlastic_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/arrowGtPlastic_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/arrowGtPlastic_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/arrowGtWood.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/arrowGtWood.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/arrowGtWood.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/arrowGtWood.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/arrowGtWood_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/arrowGtWood_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/arrowGtWood_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/arrowGtWood_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/bolt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/bolt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/bolt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/bolt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/bolt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/bolt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/bolt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/bolt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/cell.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/cell.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/cell.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/cell.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/cellPlasma.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/cellPlasma.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/cellPlasma.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/cellPlasma.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/cellPlasma_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/cellPlasma_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/cellPlasma_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/cellPlasma_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/cell_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/cell_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/cell_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/cell_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtDust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtDust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtDust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtDust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtDust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtDust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtDust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtDust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtGem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtGem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtGem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtGem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtGem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtGem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtGem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtGem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtIngot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtIngot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtIngot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtIngot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtIngot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtIngot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtIngot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtIngot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtPlate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtPlate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtPlate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtPlate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtPlate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtPlate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtPlate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crateGtPlate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushedCentrifuged.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushedCentrifuged.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushedCentrifuged.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushedCentrifuged.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushedCentrifuged_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushedCentrifuged_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushedCentrifuged_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushedCentrifuged_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushedPurified.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushedPurified.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushedPurified.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushedPurified.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushedPurified_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushedPurified_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushedPurified_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushedPurified_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/crushed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dust.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dust.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/dust.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dust.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustImpure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustImpure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustImpure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustImpure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustImpure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustImpure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustImpure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustImpure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustPure.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustPure.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustPure.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustPure.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustPure_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustPure_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustPure_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustPure_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustTiny.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustTiny.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustTiny.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustTiny.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustTiny_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustTiny_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustTiny_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dustTiny_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dust_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dust_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/dust_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/dust_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/foil.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/foil.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/foil.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/foil.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/foil_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/foil_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/foil_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/foil_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gearGt.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gearGt.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/gearGt.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gearGt.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gearGtSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gearGtSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/gearGtSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gearGtSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gearGtSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gearGtSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/gearGtSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gearGtSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gearGt_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gearGt_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/gearGt_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gearGt_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gem.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gem.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/gem.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gem.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemChipped.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemChipped.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemChipped.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemChipped.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemChipped_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemChipped_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemChipped_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemChipped_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemExquisite.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemExquisite.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemExquisite.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemExquisite.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemExquisite_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemExquisite_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemExquisite_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemExquisite_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemFlawed.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemFlawed.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemFlawed.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemFlawed.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemFlawed_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemFlawed_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemFlawed_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemFlawed_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemFlawless.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemFlawless.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemFlawless.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemFlawless.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemFlawless_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemFlawless_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemFlawless_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gemFlawless_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gem_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gem_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/gem_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/gem_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotHot.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotHot.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotHot.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotHot.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotHot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotHot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotHot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotHot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingotTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingot_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingot_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingot_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ingot_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/lens.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/lens.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/lens.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/lens.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/lens_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/lens_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/lens_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/lens_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/nugget.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/nugget.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/nugget.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/nugget.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/nugget_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/nugget_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/nugget_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/nugget_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plate.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plate.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/plate.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plate.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateDense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateDense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateDense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateDense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateDense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateDense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateDense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateDense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateDouble.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateDouble.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateDouble.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateDouble.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateDouble_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateDouble_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateDouble_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateDouble_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateQuadruple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateQuadruple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateQuadruple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateQuadruple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateQuadruple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateQuadruple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateQuadruple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateQuadruple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateQuintuple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateQuintuple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateQuintuple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateQuintuple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateQuintuple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateQuintuple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateQuintuple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateQuintuple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateTriple.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateTriple.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateTriple.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateTriple.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateTriple_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateTriple_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateTriple_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plateTriple_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plate_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plate_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/plate_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/plate_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/ring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/ring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/ring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/rotor.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/rotor.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/rotor.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/rotor.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/rotor_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/rotor_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/rotor_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/rotor_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/round.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/round.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/round.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/round.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/round_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/round_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/round_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/round_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/screw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/screw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/screw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/screw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/screw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/screw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/screw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/screw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/spring.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/spring.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/spring.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/spring.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/springSmall.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/springSmall.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/springSmall.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/springSmall.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/springSmall_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/springSmall_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/springSmall_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/springSmall_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/spring_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/spring_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/spring_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/spring_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/stick.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/stick.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/stick.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/stick.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/stickLong.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/stickLong.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/stickLong.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/stickLong.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/stickLong_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/stickLong_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/stickLong_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/stickLong_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/stick_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/stick_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/stick_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/stick_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadArrow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadArrow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadArrow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadArrow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadArrow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadArrow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadArrow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadArrow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadAxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadAxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadAxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadAxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadAxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadAxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadAxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadAxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadBuzzSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadBuzzSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadBuzzSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadBuzzSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadBuzzSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadBuzzSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadBuzzSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadBuzzSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadChainsaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadChainsaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadChainsaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadChainsaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadChainsaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadChainsaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadChainsaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadChainsaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadDrill.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadDrill.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadDrill.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadDrill.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadDrill_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadDrill_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadDrill_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadDrill_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadFile.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadFile.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadFile.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadFile.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadFile_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadFile_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadFile_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadFile_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadHammer.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadHammer.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadHammer.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadHammer.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadHammer_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadHammer_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadHammer_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadHammer_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadHoe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadHoe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadHoe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadHoe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadHoe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadHoe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadHoe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadHoe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadPickaxe.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadPickaxe.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadPickaxe.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadPickaxe.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadPickaxe_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadPickaxe_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadPickaxe_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadPickaxe_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadPlow.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadPlow.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadPlow.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadPlow.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadPlow_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadPlow_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadPlow_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadPlow_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSaw.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSaw.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSaw.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSaw.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSaw_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSaw_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSaw_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSaw_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadScrewdriver.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadScrewdriver.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadScrewdriver.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadScrewdriver.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadScrewdriver_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadScrewdriver_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadScrewdriver_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadScrewdriver_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSense.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSense.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSense.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSense.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSense_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSense_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSense_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSense_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadShovel.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadShovel.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadShovel.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadShovel.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadShovel_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadShovel_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadShovel_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadShovel_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSoldering.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSoldering.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSoldering.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSoldering.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSoldering_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSoldering_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSoldering_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSoldering_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSword.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSword.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSword.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSword.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSword_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSword_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSword_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadSword_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadUniversalSpade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadUniversalSpade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadUniversalSpade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadUniversalSpade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadUniversalSpade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadUniversalSpade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadUniversalSpade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadUniversalSpade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadWrench.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadWrench.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadWrench.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadWrench.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadWrench_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadWrench_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadWrench_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/toolHeadWrench_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/turbineBlade.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/turbineBlade.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/turbineBlade.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/turbineBlade.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/turbineBlade_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/turbineBlade_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/turbineBlade_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/turbineBlade_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/void.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/void.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/void.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/void.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/void_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/void_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/void_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/void_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/wireFine.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/wireFine.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/wireFine.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/wireFine.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/WOOD/wireFine_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/wireFine_OVERLAY.png similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/WOOD/wireFine_OVERLAY.png rename to src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/wireFine_OVERLAY.png diff --git a/main/resources/assets/gregtech/textures/items/materialicons/copy_into_all.bat b/src/main/resources/assets/gregtech/textures/items/materialicons/copy_into_all.bat similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/copy_into_all.bat rename to src/main/resources/assets/gregtech/textures/items/materialicons/copy_into_all.bat diff --git a/main/resources/assets/gregtech/textures/items/materialicons/copy_into_dull.bat b/src/main/resources/assets/gregtech/textures/items/materialicons/copy_into_dull.bat similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/copy_into_dull.bat rename to src/main/resources/assets/gregtech/textures/items/materialicons/copy_into_dull.bat diff --git a/main/resources/assets/gregtech/textures/items/materialicons/copy_into_gems.bat b/src/main/resources/assets/gregtech/textures/items/materialicons/copy_into_gems.bat similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/copy_into_gems.bat rename to src/main/resources/assets/gregtech/textures/items/materialicons/copy_into_gems.bat diff --git a/main/resources/assets/gregtech/textures/items/materialicons/copy_into_shiny.bat b/src/main/resources/assets/gregtech/textures/items/materialicons/copy_into_shiny.bat similarity index 100% rename from main/resources/assets/gregtech/textures/items/materialicons/copy_into_shiny.bat rename to src/main/resources/assets/gregtech/textures/items/materialicons/copy_into_shiny.bat diff --git a/main/resources/assets/ic2/sounds.json b/src/main/resources/assets/ic2/sounds.json similarity index 100% rename from main/resources/assets/ic2/sounds.json rename to src/main/resources/assets/ic2/sounds.json diff --git a/main/resources/assets/ic2/sounds/BatteryUse.ogg b/src/main/resources/assets/ic2/sounds/BatteryUse.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/BatteryUse.ogg rename to src/main/resources/assets/ic2/sounds/BatteryUse.ogg diff --git a/main/resources/assets/ic2/sounds/ChainsawIdle.ogg b/src/main/resources/assets/ic2/sounds/ChainsawIdle.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/ChainsawIdle.ogg rename to src/main/resources/assets/ic2/sounds/ChainsawIdle.ogg diff --git a/main/resources/assets/ic2/sounds/ChainsawStop.ogg b/src/main/resources/assets/ic2/sounds/ChainsawStop.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/ChainsawStop.ogg rename to src/main/resources/assets/ic2/sounds/ChainsawStop.ogg diff --git a/main/resources/assets/ic2/sounds/ChainsawUseOne.ogg b/src/main/resources/assets/ic2/sounds/ChainsawUseOne.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/ChainsawUseOne.ogg rename to src/main/resources/assets/ic2/sounds/ChainsawUseOne.ogg diff --git a/main/resources/assets/ic2/sounds/ChainsawUseTwo.ogg b/src/main/resources/assets/ic2/sounds/ChainsawUseTwo.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/ChainsawUseTwo.ogg rename to src/main/resources/assets/ic2/sounds/ChainsawUseTwo.ogg diff --git a/main/resources/assets/ic2/sounds/CompressorOp.ogg b/src/main/resources/assets/ic2/sounds/CompressorOp.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/CompressorOp.ogg rename to src/main/resources/assets/ic2/sounds/CompressorOp.ogg diff --git a/main/resources/assets/ic2/sounds/DrillHard.ogg b/src/main/resources/assets/ic2/sounds/DrillHard.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/DrillHard.ogg rename to src/main/resources/assets/ic2/sounds/DrillHard.ogg diff --git a/main/resources/assets/ic2/sounds/DrillSoft.ogg b/src/main/resources/assets/ic2/sounds/DrillSoft.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/DrillSoft.ogg rename to src/main/resources/assets/ic2/sounds/DrillSoft.ogg diff --git a/main/resources/assets/ic2/sounds/DrillUseLoop.ogg b/src/main/resources/assets/ic2/sounds/DrillUseLoop.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/DrillUseLoop.ogg rename to src/main/resources/assets/ic2/sounds/DrillUseLoop.ogg diff --git a/main/resources/assets/ic2/sounds/Dynamiteomote.ogg b/src/main/resources/assets/ic2/sounds/Dynamiteomote.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/Dynamiteomote.ogg rename to src/main/resources/assets/ic2/sounds/Dynamiteomote.ogg diff --git a/main/resources/assets/ic2/sounds/ElectroFurnaceLoop.ogg b/src/main/resources/assets/ic2/sounds/ElectroFurnaceLoop.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/ElectroFurnaceLoop.ogg rename to src/main/resources/assets/ic2/sounds/ElectroFurnaceLoop.ogg diff --git a/main/resources/assets/ic2/sounds/ExtractorOp.ogg b/src/main/resources/assets/ic2/sounds/ExtractorOp.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/ExtractorOp.ogg rename to src/main/resources/assets/ic2/sounds/ExtractorOp.ogg diff --git a/main/resources/assets/ic2/sounds/HelmetLoop.ogg b/src/main/resources/assets/ic2/sounds/HelmetLoop.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/HelmetLoop.ogg rename to src/main/resources/assets/ic2/sounds/HelmetLoop.ogg diff --git a/main/resources/assets/ic2/sounds/InductionLoop.ogg b/src/main/resources/assets/ic2/sounds/InductionLoop.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/InductionLoop.ogg rename to src/main/resources/assets/ic2/sounds/InductionLoop.ogg diff --git a/main/resources/assets/ic2/sounds/InsulationCutters.ogg b/src/main/resources/assets/ic2/sounds/InsulationCutters.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/InsulationCutters.ogg rename to src/main/resources/assets/ic2/sounds/InsulationCutters.ogg diff --git a/main/resources/assets/ic2/sounds/InterruptOne.ogg b/src/main/resources/assets/ic2/sounds/InterruptOne.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/InterruptOne.ogg rename to src/main/resources/assets/ic2/sounds/InterruptOne.ogg diff --git a/main/resources/assets/ic2/sounds/IronFurnaceOp.ogg b/src/main/resources/assets/ic2/sounds/IronFurnaceOp.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/IronFurnaceOp.ogg rename to src/main/resources/assets/ic2/sounds/IronFurnaceOp.ogg diff --git a/main/resources/assets/ic2/sounds/JetpackFire.ogg b/src/main/resources/assets/ic2/sounds/JetpackFire.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/JetpackFire.ogg rename to src/main/resources/assets/ic2/sounds/JetpackFire.ogg diff --git a/main/resources/assets/ic2/sounds/JetpackLoop.ogg b/src/main/resources/assets/ic2/sounds/JetpackLoop.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/JetpackLoop.ogg rename to src/main/resources/assets/ic2/sounds/JetpackLoop.ogg diff --git a/main/resources/assets/ic2/sounds/KaChing.ogg b/src/main/resources/assets/ic2/sounds/KaChing.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/KaChing.ogg rename to src/main/resources/assets/ic2/sounds/KaChing.ogg diff --git a/main/resources/assets/ic2/sounds/MaceratorOp.ogg b/src/main/resources/assets/ic2/sounds/MaceratorOp.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/MaceratorOp.ogg rename to src/main/resources/assets/ic2/sounds/MaceratorOp.ogg diff --git a/main/resources/assets/ic2/sounds/MachineOverload.ogg b/src/main/resources/assets/ic2/sounds/MachineOverload.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/MachineOverload.ogg rename to src/main/resources/assets/ic2/sounds/MachineOverload.ogg diff --git a/main/resources/assets/ic2/sounds/MagnetizerLoop.ogg b/src/main/resources/assets/ic2/sounds/MagnetizerLoop.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/MagnetizerLoop.ogg rename to src/main/resources/assets/ic2/sounds/MagnetizerLoop.ogg diff --git a/main/resources/assets/ic2/sounds/MinerOp.ogg b/src/main/resources/assets/ic2/sounds/MinerOp.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/MinerOp.ogg rename to src/main/resources/assets/ic2/sounds/MinerOp.ogg diff --git a/main/resources/assets/ic2/sounds/MiningLaser.ogg b/src/main/resources/assets/ic2/sounds/MiningLaser.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/MiningLaser.ogg rename to src/main/resources/assets/ic2/sounds/MiningLaser.ogg diff --git a/main/resources/assets/ic2/sounds/MiningLaserExplosive.ogg b/src/main/resources/assets/ic2/sounds/MiningLaserExplosive.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/MiningLaserExplosive.ogg rename to src/main/resources/assets/ic2/sounds/MiningLaserExplosive.ogg diff --git a/main/resources/assets/ic2/sounds/MiningLaserLongRange.ogg b/src/main/resources/assets/ic2/sounds/MiningLaserLongRange.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/MiningLaserLongRange.ogg rename to src/main/resources/assets/ic2/sounds/MiningLaserLongRange.ogg diff --git a/main/resources/assets/ic2/sounds/MiningLaserLowFocus.ogg b/src/main/resources/assets/ic2/sounds/MiningLaserLowFocus.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/MiningLaserLowFocus.ogg rename to src/main/resources/assets/ic2/sounds/MiningLaserLowFocus.ogg diff --git a/main/resources/assets/ic2/sounds/MiningLaserScatter.ogg b/src/main/resources/assets/ic2/sounds/MiningLaserScatter.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/MiningLaserScatter.ogg rename to src/main/resources/assets/ic2/sounds/MiningLaserScatter.ogg diff --git a/main/resources/assets/ic2/sounds/NanosabreIdle.ogg b/src/main/resources/assets/ic2/sounds/NanosabreIdle.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/NanosabreIdle.ogg rename to src/main/resources/assets/ic2/sounds/NanosabreIdle.ogg diff --git a/main/resources/assets/ic2/sounds/NanosabrePowerup.ogg b/src/main/resources/assets/ic2/sounds/NanosabrePowerup.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/NanosabrePowerup.ogg rename to src/main/resources/assets/ic2/sounds/NanosabrePowerup.ogg diff --git a/main/resources/assets/ic2/sounds/NanosabreSwing1.ogg b/src/main/resources/assets/ic2/sounds/NanosabreSwing1.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/NanosabreSwing1.ogg rename to src/main/resources/assets/ic2/sounds/NanosabreSwing1.ogg diff --git a/main/resources/assets/ic2/sounds/NanosabreSwing2.ogg b/src/main/resources/assets/ic2/sounds/NanosabreSwing2.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/NanosabreSwing2.ogg rename to src/main/resources/assets/ic2/sounds/NanosabreSwing2.ogg diff --git a/main/resources/assets/ic2/sounds/NanosabreSwing3.ogg b/src/main/resources/assets/ic2/sounds/NanosabreSwing3.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/NanosabreSwing3.ogg rename to src/main/resources/assets/ic2/sounds/NanosabreSwing3.ogg diff --git a/main/resources/assets/ic2/sounds/NukeExplosion.ogg b/src/main/resources/assets/ic2/sounds/NukeExplosion.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/NukeExplosion.ogg rename to src/main/resources/assets/ic2/sounds/NukeExplosion.ogg diff --git a/main/resources/assets/ic2/sounds/ODScanner.ogg b/src/main/resources/assets/ic2/sounds/ODScanner.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/ODScanner.ogg rename to src/main/resources/assets/ic2/sounds/ODScanner.ogg diff --git a/main/resources/assets/ic2/sounds/Painter.ogg b/src/main/resources/assets/ic2/sounds/Painter.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/Painter.ogg rename to src/main/resources/assets/ic2/sounds/Painter.ogg diff --git a/main/resources/assets/ic2/sounds/PumpOp.ogg b/src/main/resources/assets/ic2/sounds/PumpOp.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/PumpOp.ogg rename to src/main/resources/assets/ic2/sounds/PumpOp.ogg diff --git a/main/resources/assets/ic2/sounds/QuantumsuitBoots.ogg b/src/main/resources/assets/ic2/sounds/QuantumsuitBoots.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/QuantumsuitBoots.ogg rename to src/main/resources/assets/ic2/sounds/QuantumsuitBoots.ogg diff --git a/main/resources/assets/ic2/sounds/RecyclerOp.ogg b/src/main/resources/assets/ic2/sounds/RecyclerOp.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/RecyclerOp.ogg rename to src/main/resources/assets/ic2/sounds/RecyclerOp.ogg diff --git a/main/resources/assets/ic2/sounds/RubberTrampoline.ogg b/src/main/resources/assets/ic2/sounds/RubberTrampoline.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/RubberTrampoline.ogg rename to src/main/resources/assets/ic2/sounds/RubberTrampoline.ogg diff --git a/main/resources/assets/ic2/sounds/Treetap.ogg b/src/main/resources/assets/ic2/sounds/Treetap.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/Treetap.ogg rename to src/main/resources/assets/ic2/sounds/Treetap.ogg diff --git a/main/resources/assets/ic2/sounds/Wrench.ogg b/src/main/resources/assets/ic2/sounds/Wrench.ogg similarity index 100% rename from main/resources/assets/ic2/sounds/Wrench.ogg rename to src/main/resources/assets/ic2/sounds/Wrench.ogg diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Argentia.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Argentia.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Argentia.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Argentia.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Argentia.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Argentia.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Argentia.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Argentia.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Argentia.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Argentia.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Argentia.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Argentia.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Argentia.4.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Argentia.4.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Argentia.4.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Argentia.4.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Blazereed.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Blazereed.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Blazereed.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Blazereed.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Blazereed.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Blazereed.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Blazereed.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Blazereed.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Blazereed.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Blazereed.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Blazereed.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Blazereed.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Blazereed.4.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Blazereed.4.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Blazereed.4.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Blazereed.4.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Bobsyeruncleranks.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Bobsyeruncleranks.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Bobsyeruncleranks.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Bobsyeruncleranks.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Bobsyeruncleranks.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Bobsyeruncleranks.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Bobsyeruncleranks.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Bobsyeruncleranks.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Bobsyeruncleranks.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Bobsyeruncleranks.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Bobsyeruncleranks.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Bobsyeruncleranks.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Bobsyeruncleranks.4.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Bobsyeruncleranks.4.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Bobsyeruncleranks.4.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Bobsyeruncleranks.4.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Brown Mushrooms.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Brown Mushrooms.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Brown Mushrooms.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Brown Mushrooms.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Brown Mushrooms.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Brown Mushrooms.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Brown Mushrooms.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Brown Mushrooms.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Brown Mushrooms.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Brown Mushrooms.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Brown Mushrooms.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Brown Mushrooms.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Coppon.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Coppon.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Coppon.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Coppon.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Coppon.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Coppon.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Coppon.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Coppon.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Coppon.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Coppon.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Coppon.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Coppon.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.4.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.4.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.4.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.4.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corpseplant.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corpseplant.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corpseplant.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corpseplant.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corpseplant.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corpseplant.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corpseplant.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corpseplant.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corpseplant.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corpseplant.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corpseplant.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corpseplant.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corpseplant.4.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corpseplant.4.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corpseplant.4.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corpseplant.4.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Creeperweed.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Creeperweed.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Creeperweed.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Creeperweed.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Creeperweed.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Creeperweed.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Creeperweed.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Creeperweed.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Creeperweed.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Creeperweed.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Creeperweed.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Creeperweed.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Creeperweed.4.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Creeperweed.4.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Creeperweed.4.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Creeperweed.4.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Diareed.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Diareed.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Diareed.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Diareed.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Diareed.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Diareed.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Diareed.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Diareed.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Diareed.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Diareed.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Diareed.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Diareed.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Diareed.4.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Diareed.4.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Diareed.4.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Diareed.4.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Eggplant.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Eggplant.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Eggplant.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Eggplant.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Eggplant.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Eggplant.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Eggplant.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Eggplant.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Eggplant.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Eggplant.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Eggplant.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Eggplant.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Enderbloom.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Enderbloom.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Enderbloom.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Enderbloom.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Enderbloom.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Enderbloom.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Enderbloom.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Enderbloom.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Enderbloom.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Enderbloom.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Enderbloom.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Enderbloom.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Enderbloom.4.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Enderbloom.4.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Enderbloom.4.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Enderbloom.4.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Flax.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Flax.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Flax.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Flax.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Flax.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Flax.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Flax.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Flax.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Flax.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Flax.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Flax.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Flax.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Flax.4.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Flax.4.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Flax.4.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Flax.4.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Indigo.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Indigo.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Indigo.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Indigo.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Indigo.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Indigo.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Indigo.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Indigo.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Indigo.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Indigo.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Indigo.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Indigo.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Indigo.4.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Indigo.4.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Indigo.4.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Indigo.4.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Liveroots.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Liveroots.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Liveroots.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Liveroots.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Liveroots.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Liveroots.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Liveroots.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Liveroots.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Liveroots.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Liveroots.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Liveroots.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Liveroots.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Liveroots.4.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Liveroots.4.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Liveroots.4.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Liveroots.4.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Meatrose.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Meatrose.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Meatrose.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Meatrose.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Meatrose.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Meatrose.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Meatrose.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Meatrose.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Meatrose.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Meatrose.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Meatrose.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Meatrose.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Meatrose.4.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Meatrose.4.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Meatrose.4.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Meatrose.4.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Milkwart.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Milkwart.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Milkwart.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Milkwart.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Milkwart.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Milkwart.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Milkwart.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Milkwart.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Milkwart.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Milkwart.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Milkwart.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Milkwart.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Oilberries.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Oilberries.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Oilberries.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Oilberries.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Oilberries.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Oilberries.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Oilberries.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Oilberries.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Oilberries.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Oilberries.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Oilberries.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Oilberries.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Oilberries.4.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Oilberries.4.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Oilberries.4.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Oilberries.4.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Plumbilia.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Plumbilia.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Plumbilia.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Plumbilia.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Plumbilia.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Plumbilia.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Plumbilia.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Plumbilia.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Plumbilia.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Plumbilia.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Plumbilia.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Plumbilia.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Plumbilia.4.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Plumbilia.4.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Plumbilia.4.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Plumbilia.4.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Red Mushrooms.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Red Mushrooms.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Red Mushrooms.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Red Mushrooms.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Red Mushrooms.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Red Mushrooms.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Red Mushrooms.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Red Mushrooms.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Red Mushrooms.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Red Mushrooms.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Red Mushrooms.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Red Mushrooms.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Slimeplant.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Slimeplant.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Slimeplant.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Slimeplant.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Slimeplant.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Slimeplant.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Slimeplant.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Slimeplant.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Slimeplant.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Slimeplant.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Slimeplant.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Slimeplant.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Slimeplant.4.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Slimeplant.4.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Slimeplant.4.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Slimeplant.4.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Spidernip.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Spidernip.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Spidernip.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Spidernip.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Spidernip.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Spidernip.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Spidernip.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Spidernip.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Spidernip.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Spidernip.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Spidernip.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Spidernip.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Spidernip.4.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Spidernip.4.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Spidernip.4.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Spidernip.4.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Steeleafranks.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Steeleafranks.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Steeleafranks.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Steeleafranks.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Steeleafranks.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Steeleafranks.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Steeleafranks.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Steeleafranks.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Steeleafranks.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Steeleafranks.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Steeleafranks.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Steeleafranks.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Steeleafranks.4.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Steeleafranks.4.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Steeleafranks.4.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Steeleafranks.4.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tearstalks.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tearstalks.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tearstalks.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tearstalks.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tearstalks.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tearstalks.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tearstalks.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tearstalks.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tearstalks.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tearstalks.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tearstalks.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tearstalks.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tearstalks.4.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tearstalks.4.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tearstalks.4.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tearstalks.4.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tine.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tine.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tine.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tine.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tine.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tine.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tine.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tine.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tine.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tine.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tine.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Tine.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Withereed.1.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Withereed.1.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Withereed.1.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Withereed.1.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Withereed.2.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Withereed.2.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Withereed.2.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Withereed.2.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Withereed.3.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Withereed.3.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Withereed.3.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Withereed.3.png diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Withereed.4.png b/src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Withereed.4.png similarity index 100% rename from main/resources/assets/ic2/textures/blocks/crop/blockCrop.Withereed.4.png rename to src/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Withereed.4.png diff --git a/main/resources/assets/minecraft/textures/models/armor/cloakingdevice_layer_1.png b/src/main/resources/assets/minecraft/textures/models/armor/cloakingdevice_layer_1.png similarity index 100% rename from main/resources/assets/minecraft/textures/models/armor/cloakingdevice_layer_1.png rename to src/main/resources/assets/minecraft/textures/models/armor/cloakingdevice_layer_1.png diff --git a/main/resources/assets/minecraft/textures/models/armor/lapotronpack_layer_1.png b/src/main/resources/assets/minecraft/textures/models/armor/lapotronpack_layer_1.png similarity index 100% rename from main/resources/assets/minecraft/textures/models/armor/lapotronpack_layer_1.png rename to src/main/resources/assets/minecraft/textures/models/armor/lapotronpack_layer_1.png diff --git a/main/resources/assets/minecraft/textures/models/armor/lithiumbatpack_layer_1.png b/src/main/resources/assets/minecraft/textures/models/armor/lithiumbatpack_layer_1.png similarity index 100% rename from main/resources/assets/minecraft/textures/models/armor/lithiumbatpack_layer_1.png rename to src/main/resources/assets/minecraft/textures/models/armor/lithiumbatpack_layer_1.png diff --git a/main/resources/mcmod.info b/src/main/resources/mcmod.info similarity index 100% rename from main/resources/mcmod.info rename to src/main/resources/mcmod.info From d510437b8aaf0f8904998bb44a0613ff55c61922 Mon Sep 17 00:00:00 2001 From: Shawn Buckley Date: Sun, 18 Oct 2015 23:12:23 -0400 Subject: [PATCH 08/17] Add to .gitignore --- .gitignore | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index bafe0f4f..3187928d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,72 @@ +### Windows ### + thumbs.db -*.db \ No newline at end of file +*.db + +### Java ### + +*.class + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.ear + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +### Eclipse ### + +*.pydevproject +.metadata +.gradle +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath + +# Eclipse Core +.project + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# JDT-specific (Eclipse Java Development Tools) +.classpath + +# Java annotation processor (APT) +.factorypath + +# PDT-specific +.buildpath + +# sbteclipse plugin +.target + +# TeXlipse plugin +.texlipse + +### Intellij IDEA ### + +*.iml +*.ipr +*.iws + +.idea/ +.idea_modules/ + +/out/ From 16997a455fe0028d0f1997a8b74e66a419079caa Mon Sep 17 00:00:00 2001 From: Shawn Buckley Date: Mon, 19 Oct 2015 10:42:00 -0400 Subject: [PATCH 09/17] Correct build.properties to use Forge 1481 --- build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.properties b/build.properties index aa25dd25..2aa2463e 100644 --- a/build.properties +++ b/build.properties @@ -1,5 +1,5 @@ minecraft.version=1.7.10 -forge.version=10.13.4.1448-1.7.10 +forge.version=10.13.4.1481-1.7.10 gt.version=5.08.31 gt.subversion=dev From ab0559cba0ef2eaca2dc9810bfa9a9e160566189 Mon Sep 17 00:00:00 2001 From: Shawn Buckley Date: Mon, 19 Oct 2015 17:41:42 -0400 Subject: [PATCH 10/17] Remove unused subversion property --- build.properties | 1 - 1 file changed, 1 deletion(-) diff --git a/build.properties b/build.properties index 2aa2463e..1a6e24f1 100644 --- a/build.properties +++ b/build.properties @@ -2,7 +2,6 @@ minecraft.version=1.7.10 forge.version=10.13.4.1481-1.7.10 gt.version=5.08.31 -gt.subversion=dev ae2.version=rv2-beta-33 applecore.version=1.7.10-1.2.1+107.59407 From 71501031505f8f107b4511b7e7650f4eb3953fd4 Mon Sep 17 00:00:00 2001 From: Shawn Buckley Date: Mon, 19 Oct 2015 19:48:03 -0400 Subject: [PATCH 11/17] Replace homegrown character comparision for builtin ones --- src/main/java/gregtech/api/enums/GT_Values.java | 7 ------- src/main/java/gregtech/common/GT_Proxy.java | 6 +++--- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/main/java/gregtech/api/enums/GT_Values.java b/src/main/java/gregtech/api/enums/GT_Values.java index e04b2be9..8fe1f87c 100644 --- a/src/main/java/gregtech/api/enums/GT_Values.java +++ b/src/main/java/gregtech/api/enums/GT_Values.java @@ -32,13 +32,6 @@ public class GT_Values { /** Empty String for an easier Call Hierarchy */ public static final String E = ""; - /** Character Set with all Numbers */ - public static final HashSet CN = new HashSet(Arrays.asList('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')); - /** Character Set with all lowercased Characters */ - public static final HashSet CL = new HashSet(Arrays.asList('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z')); - /** Character Set with all uppercased Characters */ - public static final HashSet CU = new HashSet(Arrays.asList('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z')); - /** The first 32 Bits */ public static final int[] B = new int[] {1<<0,1<<1,1<<2,1<<3,1<<4,1<<5,1<<6,1<<7,1<<8,1<<9,1<<10,1<<11,1<<12,1<<13,1<<14,1<<15,1<<16,1<<17,1<<18,1<<19,1<<20,1<<21,1<<22,1<<23,1<<24,1<<25,1<<26,1<<27,1<<28,1<<29,1<<30,1<<31}; diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java index 5e6e2498..6d99de65 100644 --- a/src/main/java/gregtech/common/GT_Proxy.java +++ b/src/main/java/gregtech/common/GT_Proxy.java @@ -1124,7 +1124,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { GT_Log.ore.println(tModToName + " is invalid due to being solely uppercased."); return; } - if (GT_Values.CU.contains(Character.valueOf(aEvent.Name.charAt(0)))) { + if (Character.isUpperCase(aEvent.Name.charAt(0))) { GT_Log.ore.println(tModToName + " is invalid due to the first character being uppercased."); } } else { @@ -1141,8 +1141,8 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { } String tName = aEvent.Name.replaceFirst(aPrefix.toString(), ""); if (tName.length() > 0) { - if ((GT_Values.CU.contains(Character.valueOf(tName.charAt(0)))) || (GT_Values.CN.contains(Character.valueOf(tName.charAt(0)))) - || (tName.charAt(0) == '_')) { + char firstChar = tName.charAt(0); + if (Character.isUpperCase(firstChar) || Character.isLowerCase(firstChar) || firstChar == '_') { if (aPrefix.mIsMaterialBased) { aMaterial = Materials.get(tName); if (aMaterial != aMaterial.mMaterialInto) { From 49e6015068d67147993c688bd4e42be7c96a4f6b Mon Sep 17 00:00:00 2001 From: Shawn Buckley Date: Mon, 19 Oct 2015 20:15:50 -0400 Subject: [PATCH 12/17] Replace GT_Values.T/F with java primitive boolean values --- src/main/java/gregtech/api/GregTech_API.java | 46 +- .../java/gregtech/api/enums/GT_Values.java | 3 - .../java/gregtech/api/enums/Materials.java | 1288 ++++++++--------- .../java/gregtech/api/enums/OrePrefixes.java | 546 +++---- .../IExperimentalEnergyTileEntity.java | 12 +- .../java/gregtech/api/util/GT_Config.java | 3 +- .../java/gregtech/api/util/GT_FoodStat.java | 3 +- .../gregtech/api/util/GT_IBoxableWrapper.java | 3 +- .../java/gregtech/api/util/GT_ModHandler.java | 344 +++-- .../java/gregtech/api/util/GT_Recipe.java | 364 ++--- .../java/gregtech/api/util/GT_Utility.java | 227 ++- 11 files changed, 1413 insertions(+), 1426 deletions(-) diff --git a/src/main/java/gregtech/api/GregTech_API.java b/src/main/java/gregtech/api/GregTech_API.java index 15140242..25583dab 100644 --- a/src/main/java/gregtech/api/GregTech_API.java +++ b/src/main/java/gregtech/api/GregTech_API.java @@ -115,7 +115,7 @@ public class GregTech_API { public static Block sBlockCasings1, sBlockCasings2, sBlockCasings3, sBlockCasings4; /** Getting assigned by the Config */ - public static boolean sTimber = F, sDrinksAlwaysDrinkable = F, sMultiThreadedSounds = F, sDoShowAllItemsInCreative = F, sColoredGUI = T, sConstantEnergy = T, sMachineExplosions = T, sMachineFlammable = T, sMachineNonWrenchExplosions = T, sMachineRainExplosions = T, sMachineThunderExplosions = T, sMachineFireExplosions = T, sMachineWireFire = true; + public static boolean sTimber = false, sDrinksAlwaysDrinkable = false, sMultiThreadedSounds = false, sDoShowAllItemsInCreative = false, sColoredGUI = true, sConstantEnergy = true, sMachineExplosions = true, sMachineFlammable = true, sMachineNonWrenchExplosions = true, sMachineRainExplosions = true, sMachineThunderExplosions = true, sMachineFireExplosions = true, sMachineWireFire = true; public static boolean mOutputRF =false; public static boolean mInputRF =false; public static boolean meIOLoaded =false; @@ -124,7 +124,7 @@ public class GregTech_API { public static boolean mRFExplosions = true; /** Getting assigned by the Mod loading */ - public static boolean sUnificationEntriesRegistered = F, sPreloadStarted = F, sPreloadFinished = F, sLoadStarted = F, sLoadFinished = F, sPostloadStarted = F, sPostloadFinished = F; + public static boolean sUnificationEntriesRegistered = false, sPreloadStarted = false, sPreloadFinished = false, sLoadStarted = false, sLoadFinished = false, sPostloadStarted = false, sPostloadFinished = false; /** The Icon List for Covers */ public static final Map sCovers = new HashMap(); @@ -186,7 +186,7 @@ public class GregTech_API { */ public static ItemStack getUnificatedOreDictStack(ItemStack aOreStack) { if (!GregTech_API.sPreloadFinished) GT_Log.err.println("GregTech_API ERROR: " + aOreStack.getItem() + "." + aOreStack.getItemDamage() + " - OreDict Unification Entries are not registered now, please call it in the postload phase."); - return GT_OreDictUnificator.get(T, aOreStack); + return GT_OreDictUnificator.get(true, aOreStack); } /** @@ -200,7 +200,7 @@ public class GregTech_API { */ public static boolean causeMachineUpdate(World aWorld, int aX, int aY, int aZ) { if (!aWorld.isRemote) new Thread(new GT_Runnable_MachineBlockUpdate(aWorld, aX, aY, aZ), "Machine Block Updating").start(); - return T; + return true; } /** @@ -211,29 +211,29 @@ public class GregTech_API { * @param aMeta the Metadata of the Blocks as Bitmask! -1 or ~0 for all Metavalues */ public static boolean registerMachineBlock(Block aBlock, int aMeta) { - if (GT_Utility.isBlockInvalid(aBlock)) return F; + if (GT_Utility.isBlockInvalid(aBlock)) return false; if (GregTech_API.sThaumcraftCompat != null) GregTech_API.sThaumcraftCompat.registerPortholeBlacklistedBlock(aBlock); sMachineIDs.put(aBlock, aMeta); - return T; + return true; } /** * Like above but with boolean Parameters instead of a BitMask */ public static boolean registerMachineBlock(Block aBlock, boolean... aMeta) { - if (GT_Utility.isBlockInvalid(aBlock) || aMeta == null || aMeta.length == 0) return F; + if (GT_Utility.isBlockInvalid(aBlock) || aMeta == null || aMeta.length == 0) return false; if (GregTech_API.sThaumcraftCompat != null) GregTech_API.sThaumcraftCompat.registerPortholeBlacklistedBlock(aBlock); int rMeta = 0; for (byte i = 0; i < aMeta.length && i < 16; i++) if (aMeta[i]) rMeta |= B[i]; sMachineIDs.put(aBlock, rMeta); - return T; + return true; } /** * if this Block is a Machine Update Conducting Block */ public static boolean isMachineBlock(Block aBlock, int aMeta) { - if (GT_Utility.isBlockInvalid(aBlock)) return F; + if (GT_Utility.isBlockInvalid(aBlock)) return false; return (sMachineIDs.containsKey(aBlock) && (sMachineIDs.get(aBlock) & B[aMeta]) != 0); } @@ -249,7 +249,7 @@ public class GregTech_API { return new GT_CoolantCell_Item(aUnlocalized, aEnglish, aMaxStore); // return (Item)Class.forName("gregtech.api.items.GT_CoolantCell_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxStore); } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Generic_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", F); + return new gregtech.api.items.GT_Generic_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", false); } /** @@ -262,7 +262,7 @@ public class GregTech_API { try { return (Item)Class.forName("gregtechmod.api.items.GT_EnergyArmor_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aCharge, aTransfer, aTier, aDamageEnergyCost, aSpecials, aArmorAbsorbtionPercentage, aChargeProvider, aType, aArmorIndex); } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Generic_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", F); + return new gregtech.api.items.GT_Generic_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", false); } /** @@ -275,7 +275,7 @@ public class GregTech_API { try { return (Item)Class.forName("gregtechmod.api.items.GT_EnergyStore_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aCharge, aTransfer, aTier, aEmptyID, aFullID); } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Generic_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", F); + return new gregtech.api.items.GT_Generic_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", false); } /** @@ -285,7 +285,7 @@ public class GregTech_API { try { return (GT_Tool_Item)Class.forName("gregtechmod.api.items.GT_HardHammer_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage); } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, F); + return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); } /** @@ -298,7 +298,7 @@ public class GregTech_API { try { return (GT_Tool_Item)Class.forName("gregtechmod.api.items.GT_Crowbar_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage); } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, F); + return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); } /** @@ -308,7 +308,7 @@ public class GregTech_API { try { return (GT_Tool_Item)Class.forName("gregtechmod.api.items.GT_Wrench_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aDisChargedGTID); } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, F); + return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); } /** @@ -318,7 +318,7 @@ public class GregTech_API { try { return (GT_Tool_Item)Class.forName("gregtechmod.api.items.GT_ScrewdriverIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aDisChargedGTID); } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, F); + return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); } /** @@ -328,7 +328,7 @@ public class GregTech_API { try { return (GT_Tool_Item)Class.forName("gregtechmod.api.items.GT_WrenchIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aDisChargedGTID); } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, F); + return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); } /** @@ -338,7 +338,7 @@ public class GregTech_API { try { return (GT_Tool_Item)Class.forName("gregtechmod.api.items.GT_SawIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aToolQuality, aToolStrength, aEnergyConsumptionPerBlockBreak, aDisChargedGTID); } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, F); + return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); } /** @@ -348,7 +348,7 @@ public class GregTech_API { try { return (GT_Tool_Item)Class.forName("gregtechmod.api.items.GT_DrillIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aToolQuality, aToolStrength, aEnergyConsumptionPerBlockBreak, aDisChargedGTID); } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, F); + return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); } /** @@ -358,7 +358,7 @@ public class GregTech_API { try { return (GT_Tool_Item)Class.forName("gregtechmod.api.items.GT_SolderingToolIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aDisChargedGTID); } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, F); + return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); } /** @@ -368,7 +368,7 @@ public class GregTech_API { try { return (GT_Tool_Item)Class.forName("gregtechmod.api.items.GT_EmptyToolIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aChargedGTID); } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, 0, F); + return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, 0, false); } private static Class sBaseMetaTileEntityClass = null; @@ -514,10 +514,10 @@ public class GregTech_API { * Contains all sanity Checks for Tools, like preventing one Tool from being registered for multiple purposes as controls would override each other. */ public static boolean registerTool(ItemStack aTool, Collection aToolList) { - if (aTool == null || GT_Utility.isStackInList(aTool, sToolList) || (!aTool.getItem().isDamageable() && !GT_ModHandler.isElectricItem(aTool) && !(aTool.getItem() instanceof IDamagableItem))) return F; + if (aTool == null || GT_Utility.isStackInList(aTool, sToolList) || (!aTool.getItem().isDamageable() && !GT_ModHandler.isElectricItem(aTool) && !(aTool.getItem() instanceof IDamagableItem))) return false; aToolList.add(new GT_ItemStack(GT_Utility.copyAmount(1, aTool))); sToolList.add(new GT_ItemStack(GT_Utility.copyAmount(1, aTool))); - return T; + return true; } /** diff --git a/src/main/java/gregtech/api/enums/GT_Values.java b/src/main/java/gregtech/api/enums/GT_Values.java index e04b2be9..60616fe5 100644 --- a/src/main/java/gregtech/api/enums/GT_Values.java +++ b/src/main/java/gregtech/api/enums/GT_Values.java @@ -26,9 +26,6 @@ public class GT_Values { // TODO: Rename OrePrefixes Class to 'P' // TODO: Rename Materials Class to 'M' - /** Because "true" and "false" are too long. Some Programmers might wanna kill me for that, but this looks much better than true and false, and also it is better to have something that is not 4 and 5 Characters long, because of symmetry */ - public static final boolean T = true, F = false; - /** Empty String for an easier Call Hierarchy */ public static final String E = ""; diff --git a/src/main/java/gregtech/api/enums/Materials.java b/src/main/java/gregtech/api/enums/Materials.java index 2efef3ac..2817031c 100644 --- a/src/main/java/gregtech/api/enums/Materials.java +++ b/src/main/java/gregtech/api/enums/Materials.java @@ -1,9 +1,7 @@ package gregtech.api.enums; -import static gregtech.api.enums.GT_Values.F; import static gregtech.api.enums.GT_Values.M; import static gregtech.api.enums.GT_Values.MOD_ID_TC; -import static gregtech.api.enums.GT_Values.T; import gregtech.api.GregTech_API; import gregtech.api.enums.TC_Aspects.TC_AspectStack; import gregtech.api.interfaces.IColorModulationContainer; @@ -31,676 +29,676 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { * * Mainly for preventing NullPointer Exceptions and providing Default Values. */ - _NULL ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "NULL" , 0, 0, 0, 0, F, F, 1, 1, 1, Dyes._NULL , Element._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 1))), + _NULL ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "NULL" , 0, 0, 0, 0, false, false, 1, 1, 1, Dyes._NULL , Element._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 1))), /** * Direct Elements */ - Aluminium ( 19, TextureSet.SET_DULL , 10.0F, 128, 2, 1|2 |8 |32|64|128 , 128, 200, 240, 0, "Aluminium" , 0, 0, 933, 1700, T, F, 3, 1, 1, Dyes.dyeLightBlue , Element.Al , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VOLATUS, 1))), - Americium ( 103, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1|2 |8 |32 , 200, 200, 200, 0, "Americium" , 0, 0, 1449, 0, F, F, 3, 1, 1, Dyes.dyeLightGray , Element.Am , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Antimony ( 58, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |8 |32 , 220, 220, 240, 0, "Antimony" , 0, 0, 903, 0, F, F, 2, 1, 1, Dyes.dyeLightGray , Element.Sb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.AQUA, 1))), - Argon ( 24, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 255, 0, 240, "Argon" , 0, 0, 83, 0, F, T, 5, 1, 1, Dyes.dyeGreen , Element.Ar , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 2))), - Arsenic ( 39, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8|16|32 , 255, 255, 255, 0, "Arsenic" , 0, 0, 1090, 0, F, F, 3, 1, 1, Dyes.dyeOrange , Element.As , Arrays.asList(new TC_AspectStack(TC_Aspects.VENENUM, 3))), - Barium ( 63, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 |32 , 255, 255, 255, 0, "Barium" , 0, 0, 1000, 0, F, F, 1, 1, 1, Dyes._NULL , Element.Ba , Arrays.asList(new TC_AspectStack(TC_Aspects.VINCULUM, 3))), - Beryllium ( 8, TextureSet.SET_METALLIC , 14.0F, 64, 2, 1|2 |8 |32|64 , 100, 180, 100, 0, "Beryllium" , 0, 0, 1560, 0, F, F, 6, 1, 1, Dyes.dyeGreen , Element.Be , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.LUCRUM, 1))), - Bismuth ( 90, TextureSet.SET_METALLIC , 6.0F, 64, 1, 1|2 |8 |32|64|128 , 100, 160, 160, 0, "Bismuth" , 0, 0, 544, 0, F, F, 2, 1, 1, Dyes.dyeCyan , Element.Bi , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), - Boron ( 9, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 |32 , 250, 250, 250, 0, "Boron" , 0, 0, 2349, 0, F, F, 1, 1, 1, Dyes.dyeWhite , Element.B , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Caesium ( 62, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Caesium" , 0, 0, 301, 0, F, F, 4, 1, 1, Dyes._NULL , Element.Cs , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Calcium ( 26, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |32 , 255, 245, 245, 0, "Calcium" , 0, 0, 1115, 0, F, F, 4, 1, 1, Dyes.dyePink , Element.Ca , Arrays.asList(new TC_AspectStack(TC_Aspects.SANO, 1), new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), - Carbon ( 10, TextureSet.SET_DULL , 1.0F, 64, 2, 1|2 |32|64|128 , 20, 20, 20, 0, "Carbon" , 0, 0, 3800, 0, F, F, 2, 1, 1, Dyes.dyeBlack , Element.C , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.IGNIS, 1))), - Cadmium ( 55, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 |8 |32 , 50, 50, 60, 0, "Cadmium" , 0, 0, 594, 0, F, F, 3, 1, 1, Dyes.dyeGray , Element.Cd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VENENUM, 1))), - Cerium ( 65, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Cerium" , 0, 0, 1068, 1068, T, F, 4, 1, 1, Dyes._NULL , Element.Ce , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Chlorine ( 23, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 255, 0, "Chlorine" , 0, 0, 171, 0, F, F, 2, 1, 1, Dyes.dyeCyan , Element.Cl , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2), new TC_AspectStack(TC_Aspects.PANNUS, 1))), - Chrome ( 30, TextureSet.SET_SHINY , 11.0F, 256, 3, 1|2 |8 |32|64|128 , 255, 230, 230, 0, "Chrome" , 0, 0, 2180, 1700, T, F, 5, 1, 1, Dyes.dyePink , Element.Cr , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), - Cobalt ( 33, TextureSet.SET_METALLIC , 8.0F, 512, 3, 1|2 |8 |32|64 , 80, 80, 250, 0, "Cobalt" , 0, 0, 1768, 0, F, F, 3, 1, 1, Dyes.dyeBlue , Element.Co , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), - Copper ( 35, TextureSet.SET_SHINY , 1.0F, 0, 1, 1|2 |8 |32 |128 , 255, 100, 0, 0, "Copper" , 0, 0, 1357, 0, F, F, 3, 1, 1, Dyes.dyeOrange , Element.Cu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.PERMUTATIO, 1))), - Deuterium ( 2, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 0, 240, "Deuterium" , 0, 0, 14, 0, F, T, 10, 1, 1, Dyes.dyeYellow , Element.D , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 3))), - Dysprosium ( 73, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Dysprosium" , 0, 0, 1680, 1680, T, F, 4, 1, 1, Dyes._NULL , Element.Dy , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), - Empty ( 0, TextureSet.SET_NONE , 1.0F, 0, 2, 256/*Only for Prefixes which need it*/, 255, 255, 255, 255, "Empty" , 0, 0, -1, 0, F, T, 1, 1, 1, Dyes._NULL , Element._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 2))), - Erbium ( 75, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Erbium" , 0, 0, 1802, 1802, T, F, 4, 1, 1, Dyes._NULL , Element.Er , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Europium ( 70, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Europium" , 0, 0, 1099, 1099, T, F, 4, 1, 1, Dyes._NULL , Element.Eu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Fluorine ( 14, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 255, 127, "Fluorine" , 0, 0, 53, 0, F, T, 2, 1, 1, Dyes.dyeGreen , Element.F , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 2))), - Gadolinium ( 71, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Gadolinium" , 0, 0, 1585, 1585, T, F, 4, 1, 1, Dyes._NULL , Element.Gd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Gallium ( 37, TextureSet.SET_SHINY , 1.0F, 64, 2, 1|2 |8 |32 , 220, 220, 255, 0, "Gallium" , 0, 0, 302, 0, F, F, 5, 1, 1, Dyes.dyeLightGray , Element.Ga , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1))), - Gold ( 86, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |32|64|128 , 255, 255, 30, 0, "Gold" , 0, 0, 1337, 0, F, F, 4, 1, 1, Dyes.dyeYellow , Element.Au , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.LUCRUM, 2))), - Holmium ( 74, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Holmium" , 0, 0, 1734, 1734, T, F, 4, 1, 1, Dyes._NULL , Element.Ho , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Hydrogen ( 1, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 0, 255, 240, "Hydrogen" , 1, 15, 14, 0, F, T, 2, 1, 1, Dyes.dyeBlue , Element.H , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 1))), - Helium ( 4, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 0, 240, "Helium" , 0, 0, 1, 0, F, T, 5, 1, 1, Dyes.dyeYellow , Element.He , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 2))), - Helium_3 ( 5, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 0, 240, "Helium-3" , 0, 0, 1, 0, F, T, 10, 1, 1, Dyes.dyeYellow , Element.He_3 , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 3))), - Indium ( 56, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 64, 0, 128, 0, "Indium" , 0, 0, 429, 0, F, F, 4, 1, 1, Dyes.dyeGray , Element.In , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Iridium ( 84, TextureSet.SET_DULL , 6.0F, 5120, 4, 1|2 |8 |32|64|128 , 240, 240, 245, 0, "Iridium" , 0, 0, 2719, 0, F, F, 10, 1, 1, Dyes.dyeWhite , Element.Ir , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), - Iron ( 32, TextureSet.SET_METALLIC , 6.0F, 256, 2, 1|2 |8 |32|64|128 , 200, 200, 200, 0, "Iron" , 0, 0, 1811, 0, F, F, 3, 1, 1, Dyes.dyeLightGray , Element.Fe , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), - Lanthanum ( 64, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Lanthanum" , 0, 0, 1193, 1193, T, F, 4, 1, 1, Dyes._NULL , Element.La , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Lead ( 89, TextureSet.SET_DULL , 8.0F, 64, 1, 1|2 |8 |32|64|128 , 140, 100, 140, 0, "Lead" , 0, 0, 600, 0, F, F, 3, 1, 1, Dyes.dyePurple , Element.Pb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 1))), - Lithium ( 6, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8 |32 , 225, 220, 255, 0, "Lithium" , 0, 0, 454, 0, F, F, 4, 1, 1, Dyes.dyeLightBlue , Element.Li , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 2))), - Lutetium ( 78, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Lutetium" , 0, 0, 1925, 1925, T, F, 4, 1, 1, Dyes._NULL , Element.Lu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Magic (-128, TextureSet.SET_SHINY , 8.0F, 5120, 5, 1|2|4|8|16|32|64|128 , 100, 0, 200, 0, "Magic" , 5, 32, 5000, 0, F, F, 7, 1, 1, Dyes.dyePurple , Element.Ma , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 4))), - Magnesium ( 18, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 200, 200, 0, "Magnesium" , 0, 0, 923, 0, F, F, 3, 1, 1, Dyes.dyePink , Element.Mg , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.SANO, 1))), - Manganese ( 31, TextureSet.SET_DULL , 7.0F, 512, 2, 1|2 |8 |32|64 , 250, 250, 250, 0, "Manganese" , 0, 0, 1519, 0, F, F, 3, 1, 1, Dyes.dyeWhite , Element.Mn , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), - Mercury ( 87, TextureSet.SET_SHINY , 1.0F, 0, 0, 16|32 , 255, 220, 220, 0, "Mercury" , 5, 32, 234, 0, F, F, 3, 1, 1, Dyes.dyeLightGray , Element.Hg , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.VENENUM, 1))), - Molybdenum ( 48, TextureSet.SET_SHINY , 7.0F, 512, 2, 1|2 |8 |32|64 , 180, 180, 220, 0, "Molybdenum" , 0, 0, 2896, 0, F, F, 1, 1, 1, Dyes.dyeBlue , Element.Mo , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), - Neodymium ( 67, TextureSet.SET_METALLIC , 7.0F, 512, 2, 1|2 |8 |32|64|128 , 100, 100, 100, 0, "Neodymium" , 0, 0, 1297, 1297, T, F, 4, 1, 1, Dyes._NULL , Element.Nd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 2))), - Neutronium ( 129, TextureSet.SET_DULL , 6.0F, 81920, 6, 1|2 |8 |32|64|128 , 250, 250, 250, 0, "Neutronium" , 0, 0, 10000, 0, F, F, 20, 1, 1, Dyes.dyeWhite , Element.Nt , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 3), new TC_AspectStack(TC_Aspects.ALIENIS, 2))), - Nickel ( 34, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8 |32|64|128 , 200, 200, 250, 0, "Nickel" , 0, 0, 1728, 0, F, F, 4, 1, 1, Dyes.dyeLightBlue , Element.Ni , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.IGNIS, 1))), - Niobium ( 47, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 190, 180, 200, 0, "Niobium" , 0, 0, 2750, 2750, T, F, 5, 1, 1, Dyes._NULL , Element.Nb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1))), - Nitrogen ( 12, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 150, 200, 240, "Nitrogen" , 0, 0, 63, 0, F, T, 2, 1, 1, Dyes.dyeCyan , Element.N , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 2))), - Osmium ( 83, TextureSet.SET_METALLIC , 16.0F, 1280, 4, 1|2 |8 |32|64|128 , 50, 50, 255, 0, "Osmium" , 0, 0, 3306, 0, F, F, 10, 1, 1, Dyes.dyeBlue , Element.Os , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), - Oxygen ( 13, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 100, 200, 240, "Oxygen" , 0, 0, 54, 0, F, T, 1, 1, 1, Dyes.dyeWhite , Element.O , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 1))), - Palladium ( 52, TextureSet.SET_SHINY , 8.0F, 512, 2, 1|2 |8 |32|64|128 , 128, 128, 128, 0, "Palladium" , 0, 0, 1828, 1828, F, F, 4, 1, 1, Dyes.dyeGray , Element.Pd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), - Phosphor ( 21, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 |32 , 255, 255, 0, 0, "Phosphor" , 0, 0, 317, 0, F, F, 2, 1, 1, Dyes.dyeYellow , Element.P , Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 2), new TC_AspectStack(TC_Aspects.POTENTIA, 1))), - Platinum ( 85, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |32|64|128 , 255, 255, 200, 0, "Platinum" , 0, 0, 2041, 0, F, F, 6, 1, 1, Dyes.dyeOrange , Element.Pt , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), - Plutonium ( 100, TextureSet.SET_METALLIC , 6.0F, 512, 3, 1|2 |8 |32|64 , 240, 50, 50, 0, "Plutonium 244" , 0, 0, 912, 0, F, F, 6, 1, 1, Dyes.dyeLime , Element.Pu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 2))), - Plutonium241 ( 101, TextureSet.SET_SHINY , 6.0F, 512, 3, 1|2 |8 |32|64 , 250, 70, 70, 0, "Plutonium 241" , 0, 0, 912, 0, F, F, 6, 1, 1, Dyes.dyeLime , Element.Pu_241 , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 3))), - Potassium ( 25, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 |32 , 250, 250, 250, 0, "Potassium" , 0, 0, 336, 0, F, F, 2, 1, 1, Dyes.dyeWhite , Element.K , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 1))), - Praseodymium ( 66, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Praseodymium" , 0, 0, 1208, 1208, T, F, 4, 1, 1, Dyes._NULL , Element.Pr , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Promethium ( 68, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Promethium" , 0, 0, 1315, 1315, T, F, 4, 1, 1, Dyes._NULL , Element.Pm , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Radon ( 93, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 0, 255, 240, "Radon" , 0, 0, 202, 0, F, T, 5, 1, 1, Dyes.dyePurple , Element.Rn , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 1), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Rubidium ( 43, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 240, 30, 30, 0, "Rubidium" , 0, 0, 312, 0, F, F, 4, 1, 1, Dyes.dyeRed , Element.Rb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), - Samarium ( 69, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Samarium" , 0, 0, 1345, 1345, T, F, 4, 1, 1, Dyes._NULL , Element.Sm , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Scandium ( 27, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Scandium" , 0, 0, 1814, 1814, T, F, 2, 1, 1, Dyes.dyeYellow , Element.Sc , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Silicon ( 20, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 60, 60, 80, 0, "Silicon" , 0, 0, 1687, 1687, T, F, 1, 1, 1, Dyes.dyeBlack , Element.Si , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.TENEBRAE, 1))), - Silver ( 54, TextureSet.SET_SHINY , 10.0F, 64, 2, 1|2 |8 |32|64|128 , 220, 220, 255, 0, "Silver" , 0, 0, 1234, 0, F, F, 3, 1, 1, Dyes.dyeLightGray , Element.Ag , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.LUCRUM, 1))), - Sodium ( 17, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |32 , 0, 0, 150, 0, "Sodium" , 0, 0, 370, 0, F, F, 1, 1, 1, Dyes.dyeBlue , Element.Na , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.LUX, 1))), - Strontium ( 44, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 |32 , 200, 200, 200, 0, "Strontium" , 0, 0, 1050, 0, F, F, 1, 1, 1, Dyes.dyeLightGray , Element.Sr , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.STRONTIO, 1))), - Sulfur ( 22, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 |32 , 200, 200, 0, 0, "Sulfur" , 0, 0, 388, 0, F, F, 2, 1, 1, Dyes.dyeYellow , Element.S , Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1))), - Tantalum ( 80, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Tantalum" , 0, 0, 3290, 0, F, F, 4, 1, 1, Dyes._NULL , Element.Ta , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VINCULUM, 1))), - Tellurium ( 59, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Tellurium" , 0, 0, 722, 0, F, F, 4, 1, 1, Dyes.dyeGray , Element.Te , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Terbium ( 72, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Terbium" , 0, 0, 1629, 1629, T, F, 4, 1, 1, Dyes._NULL , Element.Tb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Thorium ( 96, TextureSet.SET_SHINY , 6.0F, 512, 2, 1|2 |8 |32|64 , 0, 30, 0, 0, "Thorium" , 0, 0, 2115, 0, F, F, 4, 1, 1, Dyes.dyeBlack , Element.Th , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Thulium ( 76, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Thulium" , 0, 0, 1818, 1818, T, F, 4, 1, 1, Dyes._NULL , Element.Tm , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Tin ( 57, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 |8 |32 |128 , 220, 220, 220, 0, "Tin" , 0, 0, 505, 505, F, F, 3, 1, 1, Dyes.dyeWhite , Element.Sn , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), - Titanium ( 28, TextureSet.SET_METALLIC , 8.0F, 2560, 3, 1|2 |8 |32|64|128 , 220, 160, 240, 0, "Titanium" , 0, 0, 1941, 1500, T, F, 5, 1, 1, Dyes.dyePurple , Element.Ti , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), - Tritium ( 3, TextureSet.SET_METALLIC , 1.0F, 0, 2, 16|32 , 255, 0, 0, 240, "Tritium" , 0, 0, 14, 0, F, T, 10, 1, 1, Dyes.dyeRed , Element.T , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 4))), - Tungsten ( 81, TextureSet.SET_METALLIC , 8.0F, 5120, 3, 1|2 |8 |32|64|128 , 50, 50, 50, 0, "Tungsten" , 0, 0, 3695, 2500, T, F, 4, 1, 1, Dyes.dyeBlack , Element.W , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), - Uranium ( 98, TextureSet.SET_METALLIC , 6.0F, 512, 3, 1|2 |8 |32|64 , 50, 240, 50, 0, "Uranium 238" , 0, 0, 1405, 0, F, F, 4, 1, 1, Dyes.dyeGreen , Element.U , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Uranium235 ( 97, TextureSet.SET_SHINY , 6.0F, 512, 3, 1|2 |8 |32|64 , 70, 250, 70, 0, "Uranium 235" , 0, 0, 1405, 0, F, F, 4, 1, 1, Dyes.dyeGreen , Element.U_235 , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 2))), - Vanadium ( 29, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 50, 50, 50, 0, "Vanadium" , 0, 0, 2183, 2183, T, F, 2, 1, 1, Dyes.dyeBlack , Element.V , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Ytterbium ( 77, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Ytterbium" , 0, 0, 1097, 1097, T, F, 4, 1, 1, Dyes._NULL , Element.Yb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Yttrium ( 45, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 220, 250, 220, 0, "Yttrium" , 0, 0, 1799, 1799, T, F, 4, 1, 1, Dyes._NULL , Element.Y , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Zinc ( 36, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 |8 |32 , 250, 240, 240, 0, "Zinc" , 0, 0, 692, 0, F, F, 2, 1, 1, Dyes.dyeWhite , Element.Zn , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.SANO, 1))), + Aluminium ( 19, TextureSet.SET_DULL , 10.0F, 128, 2, 1|2 |8 |32|64|128 , 128, 200, 240, 0, "Aluminium" , 0, 0, 933, 1700, true , false, 3, 1, 1, Dyes.dyeLightBlue , Element.Al , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VOLATUS, 1))), + Americium ( 103, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1|2 |8 |32 , 200, 200, 200, 0, "Americium" , 0, 0, 1449, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Element.Am , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Antimony ( 58, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |8 |32 , 220, 220, 240, 0, "Antimony" , 0, 0, 903, 0, false, false, 2, 1, 1, Dyes.dyeLightGray , Element.Sb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.AQUA, 1))), + Argon ( 24, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 255, 0, 240, "Argon" , 0, 0, 83, 0, false, true , 5, 1, 1, Dyes.dyeGreen , Element.Ar , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 2))), + Arsenic ( 39, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8|16|32 , 255, 255, 255, 0, "Arsenic" , 0, 0, 1090, 0, false, false, 3, 1, 1, Dyes.dyeOrange , Element.As , Arrays.asList(new TC_AspectStack(TC_Aspects.VENENUM, 3))), + Barium ( 63, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 |32 , 255, 255, 255, 0, "Barium" , 0, 0, 1000, 0, false, false, 1, 1, 1, Dyes._NULL , Element.Ba , Arrays.asList(new TC_AspectStack(TC_Aspects.VINCULUM, 3))), + Beryllium ( 8, TextureSet.SET_METALLIC , 14.0F, 64, 2, 1|2 |8 |32|64 , 100, 180, 100, 0, "Beryllium" , 0, 0, 1560, 0, false, false, 6, 1, 1, Dyes.dyeGreen , Element.Be , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.LUCRUM, 1))), + Bismuth ( 90, TextureSet.SET_METALLIC , 6.0F, 64, 1, 1|2 |8 |32|64|128 , 100, 160, 160, 0, "Bismuth" , 0, 0, 544, 0, false, false, 2, 1, 1, Dyes.dyeCyan , Element.Bi , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), + Boron ( 9, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 |32 , 250, 250, 250, 0, "Boron" , 0, 0, 2349, 0, false, false, 1, 1, 1, Dyes.dyeWhite , Element.B , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))), + Caesium ( 62, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Caesium" , 0, 0, 301, 0, false, false, 4, 1, 1, Dyes._NULL , Element.Cs , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Calcium ( 26, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |32 , 255, 245, 245, 0, "Calcium" , 0, 0, 1115, 0, false, false, 4, 1, 1, Dyes.dyePink , Element.Ca , Arrays.asList(new TC_AspectStack(TC_Aspects.SANO, 1), new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), + Carbon ( 10, TextureSet.SET_DULL , 1.0F, 64, 2, 1|2 |32|64|128 , 20, 20, 20, 0, "Carbon" , 0, 0, 3800, 0, false, false, 2, 1, 1, Dyes.dyeBlack , Element.C , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.IGNIS, 1))), + Cadmium ( 55, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 |8 |32 , 50, 50, 60, 0, "Cadmium" , 0, 0, 594, 0, false, false, 3, 1, 1, Dyes.dyeGray , Element.Cd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VENENUM, 1))), + Cerium ( 65, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Cerium" , 0, 0, 1068, 1068, true , false, 4, 1, 1, Dyes._NULL , Element.Ce , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Chlorine ( 23, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 255, 0, "Chlorine" , 0, 0, 171, 0, false, false, 2, 1, 1, Dyes.dyeCyan , Element.Cl , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2), new TC_AspectStack(TC_Aspects.PANNUS, 1))), + Chrome ( 30, TextureSet.SET_SHINY , 11.0F, 256, 3, 1|2 |8 |32|64|128 , 255, 230, 230, 0, "Chrome" , 0, 0, 2180, 1700, true , false, 5, 1, 1, Dyes.dyePink , Element.Cr , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), + Cobalt ( 33, TextureSet.SET_METALLIC , 8.0F, 512, 3, 1|2 |8 |32|64 , 80, 80, 250, 0, "Cobalt" , 0, 0, 1768, 0, false, false, 3, 1, 1, Dyes.dyeBlue , Element.Co , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), + Copper ( 35, TextureSet.SET_SHINY , 1.0F, 0, 1, 1|2 |8 |32 |128 , 255, 100, 0, 0, "Copper" , 0, 0, 1357, 0, false, false, 3, 1, 1, Dyes.dyeOrange , Element.Cu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.PERMUTATIO, 1))), + Deuterium ( 2, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 0, 240, "Deuterium" , 0, 0, 14, 0, false, true , 10, 1, 1, Dyes.dyeYellow , Element.D , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 3))), + Dysprosium ( 73, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Dysprosium" , 0, 0, 1680, 1680, true , false, 4, 1, 1, Dyes._NULL , Element.Dy , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), + Empty ( 0, TextureSet.SET_NONE , 1.0F, 0, 2, 256/*Only for Prefixes which need it*/, 255, 255, 255, 255, "Empty" , 0, 0, -1, 0, false, true , 1, 1, 1, Dyes._NULL , Element._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 2))), + Erbium ( 75, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Erbium" , 0, 0, 1802, 1802, true , false, 4, 1, 1, Dyes._NULL , Element.Er , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Europium ( 70, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Europium" , 0, 0, 1099, 1099, true , false, 4, 1, 1, Dyes._NULL , Element.Eu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Fluorine ( 14, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 255, 127, "Fluorine" , 0, 0, 53, 0, false, true , 2, 1, 1, Dyes.dyeGreen , Element.F , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 2))), + Gadolinium ( 71, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Gadolinium" , 0, 0, 1585, 1585, true , false, 4, 1, 1, Dyes._NULL , Element.Gd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Gallium ( 37, TextureSet.SET_SHINY , 1.0F, 64, 2, 1|2 |8 |32 , 220, 220, 255, 0, "Gallium" , 0, 0, 302, 0, false, false, 5, 1, 1, Dyes.dyeLightGray , Element.Ga , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1))), + Gold ( 86, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |32|64|128 , 255, 255, 30, 0, "Gold" , 0, 0, 1337, 0, false, false, 4, 1, 1, Dyes.dyeYellow , Element.Au , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.LUCRUM, 2))), + Holmium ( 74, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Holmium" , 0, 0, 1734, 1734, true , false, 4, 1, 1, Dyes._NULL , Element.Ho , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Hydrogen ( 1, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 0, 255, 240, "Hydrogen" , 1, 15, 14, 0, false, true , 2, 1, 1, Dyes.dyeBlue , Element.H , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 1))), + Helium ( 4, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 0, 240, "Helium" , 0, 0, 1, 0, false, true , 5, 1, 1, Dyes.dyeYellow , Element.He , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 2))), + Helium_3 ( 5, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 0, 240, "Helium-3" , 0, 0, 1, 0, false, true , 10, 1, 1, Dyes.dyeYellow , Element.He_3 , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 3))), + Indium ( 56, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 64, 0, 128, 0, "Indium" , 0, 0, 429, 0, false, false, 4, 1, 1, Dyes.dyeGray , Element.In , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Iridium ( 84, TextureSet.SET_DULL , 6.0F, 5120, 4, 1|2 |8 |32|64|128 , 240, 240, 245, 0, "Iridium" , 0, 0, 2719, 0, false, false, 10, 1, 1, Dyes.dyeWhite , Element.Ir , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), + Iron ( 32, TextureSet.SET_METALLIC , 6.0F, 256, 2, 1|2 |8 |32|64|128 , 200, 200, 200, 0, "Iron" , 0, 0, 1811, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Element.Fe , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), + Lanthanum ( 64, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Lanthanum" , 0, 0, 1193, 1193, true , false, 4, 1, 1, Dyes._NULL , Element.La , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Lead ( 89, TextureSet.SET_DULL , 8.0F, 64, 1, 1|2 |8 |32|64|128 , 140, 100, 140, 0, "Lead" , 0, 0, 600, 0, false, false, 3, 1, 1, Dyes.dyePurple , Element.Pb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 1))), + Lithium ( 6, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8 |32 , 225, 220, 255, 0, "Lithium" , 0, 0, 454, 0, false, false, 4, 1, 1, Dyes.dyeLightBlue , Element.Li , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 2))), + Lutetium ( 78, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Lutetium" , 0, 0, 1925, 1925, true , false, 4, 1, 1, Dyes._NULL , Element.Lu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Magic (-128, TextureSet.SET_SHINY , 8.0F, 5120, 5, 1|2|4|8|16|32|64|128 , 100, 0, 200, 0, "Magic" , 5, 32, 5000, 0, false, false, 7, 1, 1, Dyes.dyePurple , Element.Ma , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 4))), + Magnesium ( 18, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 200, 200, 0, "Magnesium" , 0, 0, 923, 0, false, false, 3, 1, 1, Dyes.dyePink , Element.Mg , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.SANO, 1))), + Manganese ( 31, TextureSet.SET_DULL , 7.0F, 512, 2, 1|2 |8 |32|64 , 250, 250, 250, 0, "Manganese" , 0, 0, 1519, 0, false, false, 3, 1, 1, Dyes.dyeWhite , Element.Mn , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), + Mercury ( 87, TextureSet.SET_SHINY , 1.0F, 0, 0, 16|32 , 255, 220, 220, 0, "Mercury" , 5, 32, 234, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Element.Hg , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.VENENUM, 1))), + Molybdenum ( 48, TextureSet.SET_SHINY , 7.0F, 512, 2, 1|2 |8 |32|64 , 180, 180, 220, 0, "Molybdenum" , 0, 0, 2896, 0, false, false, 1, 1, 1, Dyes.dyeBlue , Element.Mo , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), + Neodymium ( 67, TextureSet.SET_METALLIC , 7.0F, 512, 2, 1|2 |8 |32|64|128 , 100, 100, 100, 0, "Neodymium" , 0, 0, 1297, 1297, true , false, 4, 1, 1, Dyes._NULL , Element.Nd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 2))), + Neutronium ( 129, TextureSet.SET_DULL , 6.0F, 81920, 6, 1|2 |8 |32|64|128 , 250, 250, 250, 0, "Neutronium" , 0, 0, 10000, 0, false, false, 20, 1, 1, Dyes.dyeWhite , Element.Nt , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 3), new TC_AspectStack(TC_Aspects.ALIENIS, 2))), + Nickel ( 34, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8 |32|64|128 , 200, 200, 250, 0, "Nickel" , 0, 0, 1728, 0, false, false, 4, 1, 1, Dyes.dyeLightBlue , Element.Ni , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.IGNIS, 1))), + Niobium ( 47, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 190, 180, 200, 0, "Niobium" , 0, 0, 2750, 2750, true , false, 5, 1, 1, Dyes._NULL , Element.Nb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1))), + Nitrogen ( 12, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 150, 200, 240, "Nitrogen" , 0, 0, 63, 0, false, true , 2, 1, 1, Dyes.dyeCyan , Element.N , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 2))), + Osmium ( 83, TextureSet.SET_METALLIC , 16.0F, 1280, 4, 1|2 |8 |32|64|128 , 50, 50, 255, 0, "Osmium" , 0, 0, 3306, 0, false, false, 10, 1, 1, Dyes.dyeBlue , Element.Os , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), + Oxygen ( 13, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 100, 200, 240, "Oxygen" , 0, 0, 54, 0, false, true , 1, 1, 1, Dyes.dyeWhite , Element.O , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 1))), + Palladium ( 52, TextureSet.SET_SHINY , 8.0F, 512, 2, 1|2 |8 |32|64|128 , 128, 128, 128, 0, "Palladium" , 0, 0, 1828, 1828, false, false, 4, 1, 1, Dyes.dyeGray , Element.Pd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), + Phosphor ( 21, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 |32 , 255, 255, 0, 0, "Phosphor" , 0, 0, 317, 0, false, false, 2, 1, 1, Dyes.dyeYellow , Element.P , Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 2), new TC_AspectStack(TC_Aspects.POTENTIA, 1))), + Platinum ( 85, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |32|64|128 , 255, 255, 200, 0, "Platinum" , 0, 0, 2041, 0, false, false, 6, 1, 1, Dyes.dyeOrange , Element.Pt , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), + Plutonium ( 100, TextureSet.SET_METALLIC , 6.0F, 512, 3, 1|2 |8 |32|64 , 240, 50, 50, 0, "Plutonium 244" , 0, 0, 912, 0, false, false, 6, 1, 1, Dyes.dyeLime , Element.Pu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 2))), + Plutonium241 ( 101, TextureSet.SET_SHINY , 6.0F, 512, 3, 1|2 |8 |32|64 , 250, 70, 70, 0, "Plutonium 241" , 0, 0, 912, 0, false, false, 6, 1, 1, Dyes.dyeLime , Element.Pu_241 , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 3))), + Potassium ( 25, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 |32 , 250, 250, 250, 0, "Potassium" , 0, 0, 336, 0, false, false, 2, 1, 1, Dyes.dyeWhite , Element.K , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 1))), + Praseodymium ( 66, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Praseodymium" , 0, 0, 1208, 1208, true , false, 4, 1, 1, Dyes._NULL , Element.Pr , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Promethium ( 68, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Promethium" , 0, 0, 1315, 1315, true , false, 4, 1, 1, Dyes._NULL , Element.Pm , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Radon ( 93, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 0, 255, 240, "Radon" , 0, 0, 202, 0, false, true , 5, 1, 1, Dyes.dyePurple , Element.Rn , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 1), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Rubidium ( 43, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 240, 30, 30, 0, "Rubidium" , 0, 0, 312, 0, false, false, 4, 1, 1, Dyes.dyeRed , Element.Rb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), + Samarium ( 69, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Samarium" , 0, 0, 1345, 1345, true , false, 4, 1, 1, Dyes._NULL , Element.Sm , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Scandium ( 27, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Scandium" , 0, 0, 1814, 1814, true , false, 2, 1, 1, Dyes.dyeYellow , Element.Sc , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Silicon ( 20, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 60, 60, 80, 0, "Silicon" , 0, 0, 1687, 1687, true , false, 1, 1, 1, Dyes.dyeBlack , Element.Si , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.TENEBRAE, 1))), + Silver ( 54, TextureSet.SET_SHINY , 10.0F, 64, 2, 1|2 |8 |32|64|128 , 220, 220, 255, 0, "Silver" , 0, 0, 1234, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Element.Ag , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.LUCRUM, 1))), + Sodium ( 17, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |32 , 0, 0, 150, 0, "Sodium" , 0, 0, 370, 0, false, false, 1, 1, 1, Dyes.dyeBlue , Element.Na , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.LUX, 1))), + Strontium ( 44, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 |32 , 200, 200, 200, 0, "Strontium" , 0, 0, 1050, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Element.Sr , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.STRONTIO, 1))), + Sulfur ( 22, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 |32 , 200, 200, 0, 0, "Sulfur" , 0, 0, 388, 0, false, false, 2, 1, 1, Dyes.dyeYellow , Element.S , Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1))), + Tantalum ( 80, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Tantalum" , 0, 0, 3290, 0, false, false, 4, 1, 1, Dyes._NULL , Element.Ta , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VINCULUM, 1))), + Tellurium ( 59, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Tellurium" , 0, 0, 722, 0, false, false, 4, 1, 1, Dyes.dyeGray , Element.Te , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Terbium ( 72, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Terbium" , 0, 0, 1629, 1629, true , false, 4, 1, 1, Dyes._NULL , Element.Tb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Thorium ( 96, TextureSet.SET_SHINY , 6.0F, 512, 2, 1|2 |8 |32|64 , 0, 30, 0, 0, "Thorium" , 0, 0, 2115, 0, false, false, 4, 1, 1, Dyes.dyeBlack , Element.Th , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Thulium ( 76, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Thulium" , 0, 0, 1818, 1818, true , false, 4, 1, 1, Dyes._NULL , Element.Tm , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Tin ( 57, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 |8 |32 |128 , 220, 220, 220, 0, "Tin" , 0, 0, 505, 505, false, false, 3, 1, 1, Dyes.dyeWhite , Element.Sn , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), + Titanium ( 28, TextureSet.SET_METALLIC , 8.0F, 2560, 3, 1|2 |8 |32|64|128 , 220, 160, 240, 0, "Titanium" , 0, 0, 1941, 1500, true , false, 5, 1, 1, Dyes.dyePurple , Element.Ti , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), + Tritium ( 3, TextureSet.SET_METALLIC , 1.0F, 0, 2, 16|32 , 255, 0, 0, 240, "Tritium" , 0, 0, 14, 0, false, true , 10, 1, 1, Dyes.dyeRed , Element.T , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 4))), + Tungsten ( 81, TextureSet.SET_METALLIC , 8.0F, 5120, 3, 1|2 |8 |32|64|128 , 50, 50, 50, 0, "Tungsten" , 0, 0, 3695, 2500, true , false, 4, 1, 1, Dyes.dyeBlack , Element.W , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), + Uranium ( 98, TextureSet.SET_METALLIC , 6.0F, 512, 3, 1|2 |8 |32|64 , 50, 240, 50, 0, "Uranium 238" , 0, 0, 1405, 0, false, false, 4, 1, 1, Dyes.dyeGreen , Element.U , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Uranium235 ( 97, TextureSet.SET_SHINY , 6.0F, 512, 3, 1|2 |8 |32|64 , 70, 250, 70, 0, "Uranium 235" , 0, 0, 1405, 0, false, false, 4, 1, 1, Dyes.dyeGreen , Element.U_235 , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 2))), + Vanadium ( 29, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 50, 50, 50, 0, "Vanadium" , 0, 0, 2183, 2183, true , false, 2, 1, 1, Dyes.dyeBlack , Element.V , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Ytterbium ( 77, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Ytterbium" , 0, 0, 1097, 1097, true , false, 4, 1, 1, Dyes._NULL , Element.Yb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Yttrium ( 45, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 220, 250, 220, 0, "Yttrium" , 0, 0, 1799, 1799, true , false, 4, 1, 1, Dyes._NULL , Element.Y , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Zinc ( 36, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 |8 |32 , 250, 240, 240, 0, "Zinc" , 0, 0, 692, 0, false, false, 2, 1, 1, Dyes.dyeWhite , Element.Zn , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.SANO, 1))), /** * The "Random Material" ones. */ - Organic ( -1, TextureSet.SET_LEAF , 1.0F, 0, 1, F), - AnyCopper ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, F), - AnyBronze ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, F), - AnyIron ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, F), - Crystal ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, F), - Quartz ( -1, TextureSet.SET_QUARTZ , 1.0F, 0, 2, F), - Metal ( -1, TextureSet.SET_METALLIC , 1.0F, 0, 2, F), - Unknown ( -1, TextureSet.SET_DULL , 1.0F, 0, 2, F), - Cobblestone ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, F), - Brick ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, F), - BrickNether ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, F), + Organic ( -1, TextureSet.SET_LEAF , 1.0F, 0, 1, false), + AnyCopper ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false), + AnyBronze ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false), + AnyIron ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false), + Crystal ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false), + Quartz ( -1, TextureSet.SET_QUARTZ , 1.0F, 0, 2, false), + Metal ( -1, TextureSet.SET_METALLIC , 1.0F, 0, 2, false), + Unknown ( -1, TextureSet.SET_DULL , 1.0F, 0, 2, false), + Cobblestone ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, false), + Brick ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, false), + BrickNether ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, false), /** * The "I don't care" Section, everything I don't want to do anything with right now, is right here. Just to make the Material Finder shut up about them. * But I do see potential uses in some of these Materials. */ - TarPitch ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Tar Pitch" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Carborundum ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Carborundum" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Satinspar ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Satinspar" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Selenite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Selenite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - PetrifiedWood ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Petrified Wood" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Jet ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |4|8 , 255, 255, 255, 0, "Jet" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Microcline ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Microcline" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Serpentine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Serpentine" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Sylvite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Sylvite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Flux ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Flux" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Goshen ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Goshen" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Joshen ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Joshen" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Itarius ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Itarius" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Legendary ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Legendary" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - MutatedIron ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Mutated Iron" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Witheria ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Witheria" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - RedstoneAlloy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Redstone Alloy" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - OsmiumTetroxide ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Osmium Tetroxide" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - NitricAcid ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Nitric Acid" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - RubberTreeSap ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Rubber Tree Sap" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - AquaRegia ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Aqua Regia" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - SolutionBlueVitriol ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Blue Vitriol Solution" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - SolutionNickelSulfate( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Nickel Sulfate Solution" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Signalum ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Signalum" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Lumium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Lumium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - PhasedIron ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Phased Iron" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - PhasedGold ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Phased Gold" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Soularium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Soularium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Endium ( 770, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8 , 165, 220, 250, 0, "Endium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeYellow ), - Prismarine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |4 , 255, 255, 255, 0, "Prismarine" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - GraveyardDirt ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Graveyard Dirt" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - DarkSteel ( 364, TextureSet.SET_DULL , 8.0F, 512, 3, 1|2 |8 |64 , 80, 70, 80, 0, "Dark Steel" , 0, 0, 1811, 0, F, F, 5, 1, 1, Dyes.dyePurple ), - Terrasteel ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Terrasteel" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - TerrasteelAlloyRaw ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Raw Terrasteel Alloy" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - TerrasteelAlloyStrengthened ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Strengthened Terrasteel Alloy" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - ConductiveIron ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Conductive Iron" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - ElectricalSteel ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Electrical Steel" , 0, 0, 1811, 1000, T, F, 3, 1, 1, Dyes._NULL ), - EnergeticAlloy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Energetic Alloy" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - VibrantAlloy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Vibrant Alloy" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - PulsatingIron ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Pulsating Iron" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Rutile ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Rutile" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), // TiO2 - Teslatite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 60, 180, 200, 0, "Teslatite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Fluix ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |4 , 255, 255, 255, 0, "Fluix" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Manasteel ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Manasteel" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Tennantite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Tennantite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - DarkThaumium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Dark Thaumium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Alfium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Alfium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Ryu ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Ryu" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Mutation ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Mutation" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Aquamarine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |4 , 255, 255, 255, 0, "Aquamarine" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Ender ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Ender" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - ElvenElementium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Elven Elementium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - EnrichedCopper ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Enriched Copper" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - DiamondCopper ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Diamond Copper" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - SodiumPeroxide ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Sodium Peroxide" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - IridiumSodiumOxide ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Iridium Sodium Oxide" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - PlatinumGroupSludge ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Platinum Group Sluge" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Fairy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Fairy" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Ludicrite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Ludicrite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Pokefennium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Pokefennium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Draconium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Draconium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - DraconiumAwakened ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Awakened Draconium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - PurpleAlloy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 100, 180, 255, 0, "Purple Alloy" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - InfusedTeslatite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 100, 180, 255, 0, "Infused Teslatite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), + TarPitch ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Tar Pitch" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Carborundum ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Carborundum" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Satinspar ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Satinspar" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Selenite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Selenite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + PetrifiedWood ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Petrified Wood" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Jet ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |4|8 , 255, 255, 255, 0, "Jet" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Microcline ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Microcline" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Serpentine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Serpentine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Sylvite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Sylvite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Flux ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Flux" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Goshen ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Goshen" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Joshen ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Joshen" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Itarius ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Itarius" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Legendary ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Legendary" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + MutatedIron ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Mutated Iron" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Witheria ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Witheria" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + RedstoneAlloy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Redstone Alloy" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + OsmiumTetroxide ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Osmium Tetroxide" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + NitricAcid ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Nitric Acid" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + RubberTreeSap ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Rubber Tree Sap" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + AquaRegia ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Aqua Regia" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + SolutionBlueVitriol ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Blue Vitriol Solution" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + SolutionNickelSulfate( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Nickel Sulfate Solution" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Signalum ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Signalum" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Lumium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Lumium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + PhasedIron ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Phased Iron" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + PhasedGold ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Phased Gold" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Soularium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Soularium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Endium ( 770, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8 , 165, 220, 250, 0, "Endium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow ), + Prismarine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |4 , 255, 255, 255, 0, "Prismarine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + GraveyardDirt ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Graveyard Dirt" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + DarkSteel ( 364, TextureSet.SET_DULL , 8.0F, 512, 3, 1|2 |8 |64 , 80, 70, 80, 0, "Dark Steel" , 0, 0, 1811, 0, false, false, 5, 1, 1, Dyes.dyePurple ), + Terrasteel ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Terrasteel" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + TerrasteelAlloyRaw ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Raw Terrasteel Alloy" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + TerrasteelAlloyStrengthened ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Strengthened Terrasteel Alloy" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + ConductiveIron ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Conductive Iron" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + ElectricalSteel ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Electrical Steel" , 0, 0, 1811, 1000, true , false, 3, 1, 1, Dyes._NULL ), + EnergeticAlloy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Energetic Alloy" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + VibrantAlloy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Vibrant Alloy" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + PulsatingIron ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Pulsating Iron" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Rutile ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Rutile" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), // TiO2 + Teslatite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 60, 180, 200, 0, "Teslatite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Fluix ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |4 , 255, 255, 255, 0, "Fluix" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Manasteel ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Manasteel" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Tennantite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Tennantite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + DarkThaumium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Dark Thaumium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Alfium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Alfium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Ryu ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Ryu" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Mutation ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Mutation" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Aquamarine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |4 , 255, 255, 255, 0, "Aquamarine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Ender ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Ender" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + ElvenElementium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Elven Elementium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + EnrichedCopper ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Enriched Copper" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + DiamondCopper ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Diamond Copper" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + SodiumPeroxide ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Sodium Peroxide" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + IridiumSodiumOxide ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Iridium Sodium Oxide" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + PlatinumGroupSludge ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Platinum Group Sluge" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Fairy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Fairy" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Ludicrite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Ludicrite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Pokefennium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Pokefennium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Draconium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Draconium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + DraconiumAwakened ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Awakened Draconium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + PurpleAlloy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 100, 180, 255, 0, "Purple Alloy" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + InfusedTeslatite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 100, 180, 255, 0, "Infused Teslatite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), /** * Unknown Material Components. Dead End Section. */ - Adamantium ( 319, TextureSet.SET_SHINY , 10.0F, 5120, 5, 1|2 |8 |64|128 , 255, 255, 255, 0, "Adamantium" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLightGray ), - Adamite ( -1, TextureSet.SET_NONE , 1.0F, 0, 3, 1 |8 , 255, 255, 255, 0, "Adamite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLightGray ), - Adluorite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Adluorite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Agate ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Agate" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Alduorite ( 485, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 |8|16 , 159, 180, 180, 0, "Alduorite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Amber ( 514, TextureSet.SET_RUBY , 4.0F, 128, 2, 1 |4|8 |64 , 255, 128, 0, 127, "Amber" , 5, 3, -1, 0, F, T, 1, 1, 1, Dyes.dyeOrange , Arrays.asList(new TC_AspectStack(TC_Aspects.VINCULUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), - Ammonium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Ammonium" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Amordrine ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8|16 |64 , 255, 255, 255, 0, "Amordrine" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Andesite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Andesite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Angmallen ( 958, TextureSet.SET_METALLIC , 10.0F, 128, 2, 1|2 |8|16 |64 , 215, 225, 138, 0, "Angmallen" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Ardite ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8 |64 , 255, 0, 0, 0, "Ardite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeYellow ), - Aredrite ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8 |64 , 255, 0, 0, 0, "Aredrite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeYellow ), - Atlarus ( 965, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8 |64 , 255, 255, 255, 0, "Atlarus" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Bitumen ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Bitumen" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Black ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 0, 0, 0, 0, "Black" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeBlack ), - Blizz ( 851, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 , 220, 233, 255, 0, "Blizz" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Blueschist ( 852, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Blueschist" , 0, 0, -1, 0, F, F, 0, 1, 1, Dyes.dyeLightBlue ), - Bluestone ( 813, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Bluestone" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlue ), - Bloodstone ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Bloodstone" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeRed ), - Blutonium ( -1, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |8 , 0, 0, 255, 0, "Blutonium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeBlue ), - Carmot ( 962, TextureSet.SET_METALLIC , 16.0F, 128, 1, 1|2 |8 |64 , 217, 205, 140, 0, "Carmot" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Celenegil ( 964, TextureSet.SET_METALLIC , 10.0F, 4096, 2, 1|2 |8|16 |64 , 148, 204, 72, 0, "Celenegil" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - CertusQuartz ( 516, TextureSet.SET_QUARTZ , 5.0F, 32, 1, 1 |4|8 |64 , 210, 210, 230, 0, "Certus Quartz" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VITREUS, 1))), - Ceruclase ( 952, TextureSet.SET_METALLIC , 6.0F, 1280, 2, 1|2 |8 , 140, 189, 208, 0, "Ceruclase" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Citrine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Citrine" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), + Adamantium ( 319, TextureSet.SET_SHINY , 10.0F, 5120, 5, 1|2 |8 |64|128 , 255, 255, 255, 0, "Adamantium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray ), + Adamite ( -1, TextureSet.SET_NONE , 1.0F, 0, 3, 1 |8 , 255, 255, 255, 0, "Adamite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray ), + Adluorite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Adluorite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Agate ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Agate" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Alduorite ( 485, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 |8|16 , 159, 180, 180, 0, "Alduorite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Amber ( 514, TextureSet.SET_RUBY , 4.0F, 128, 2, 1 |4|8 |64 , 255, 128, 0, 127, "Amber" , 5, 3, -1, 0, false, true , 1, 1, 1, Dyes.dyeOrange , Arrays.asList(new TC_AspectStack(TC_Aspects.VINCULUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), + Ammonium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Ammonium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Amordrine ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8|16 |64 , 255, 255, 255, 0, "Amordrine" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Andesite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Andesite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Angmallen ( 958, TextureSet.SET_METALLIC , 10.0F, 128, 2, 1|2 |8|16 |64 , 215, 225, 138, 0, "Angmallen" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Ardite ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8 |64 , 255, 0, 0, 0, "Ardite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + Aredrite ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8 |64 , 255, 0, 0, 0, "Aredrite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + Atlarus ( 965, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8 |64 , 255, 255, 255, 0, "Atlarus" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Bitumen ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Bitumen" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Black ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 0, 0, 0, 0, "Black" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlack ), + Blizz ( 851, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 , 220, 233, 255, 0, "Blizz" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Blueschist ( 852, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Blueschist" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeLightBlue ), + Bluestone ( 813, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Bluestone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue ), + Bloodstone ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Bloodstone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed ), + Blutonium ( -1, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |8 , 0, 0, 255, 0, "Blutonium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue ), + Carmot ( 962, TextureSet.SET_METALLIC , 16.0F, 128, 1, 1|2 |8 |64 , 217, 205, 140, 0, "Carmot" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Celenegil ( 964, TextureSet.SET_METALLIC , 10.0F, 4096, 2, 1|2 |8|16 |64 , 148, 204, 72, 0, "Celenegil" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + CertusQuartz ( 516, TextureSet.SET_QUARTZ , 5.0F, 32, 1, 1 |4|8 |64 , 210, 210, 230, 0, "Certus Quartz" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VITREUS, 1))), + Ceruclase ( 952, TextureSet.SET_METALLIC , 6.0F, 1280, 2, 1|2 |8 , 140, 189, 208, 0, "Ceruclase" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Citrine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Citrine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), //ChargedCertusQuartz ( 517, TextureSet.SET_QUARTZ , 5.0F, 32, 1, 1 |4|8 |64 , 210, 210, 230, 0, "Charged Certus Quartz" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), - CobaltHexahydrate ( 853, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |16 , 80, 80, 250, 0, "Cobalt Hexahydrate" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlue ), - ConstructionFoam ( 854, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |16 , 128, 128, 128, 0, "Construction Foam" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeGray ), - Chert ( 857, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Chert" , 0, 0, -1, 0, F, F, 0, 1, 1, Dyes._NULL ), - Chimerite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Chimerite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Coral ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 128, 255, 0, "Coral" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - CrudeOil ( 858, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 10, 10, 10, 0, "Crude Oil" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlack ), - Chrysocolla ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Chrysocolla" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - CrystalFlux ( -1, TextureSet.SET_QUARTZ , 1.0F, 0, 3, 1 |4 , 100, 50, 100, 0, "Flux Crystal" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Cyanite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Cyanite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeCyan ), - Dacite ( 859, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Dacite" , 0, 0, -1, 0, F, F, 0, 1, 1, Dyes.dyeLightGray ), - DarkIron ( 342, TextureSet.SET_DULL , 7.0F, 384, 3, 1|2 |8 |64 , 55, 40, 60, 0, "Dark Iron" , 0, 0, -1, 0, F, F, 5, 1, 1, Dyes.dyePurple ), - DarkStone ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Dark Stone" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeBlack ), - Demonite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Demonite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeRed ), - Desh ( 884, TextureSet.SET_DULL , 1.0F, 1280, 3, 1|2 |8 |64|128 , 40, 40, 40, 0, "Desh" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlack ), - Desichalkos ( -1, TextureSet.SET_NONE , 6.0F, 1280, 3, 1|2 |8|16 |64 , 255, 255, 255, 0, "Desichalkos" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Dilithium ( 515, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8|16 , 255, 250, 250, 127, "Dilithium" , 0, 0, -1, 0, F, T, 1, 1, 1, Dyes.dyeWhite ), - Draconic ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Draconic" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeRed ), - Drulloy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|16 , 255, 255, 255, 0, "Drulloy" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeRed ), - Duranium ( 328, TextureSet.SET_METALLIC , 8.0F, 1280, 4, 1|2 |64 , 255, 255, 255, 0, "Duranium" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLightGray ), - Eclogite ( 860, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Eclogite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - ElectrumFlux ( 320, TextureSet.SET_SHINY , 16.0F, 512, 3, 1|2 |64 , 255, 255, 120, 0, "Fluxed Electrum" , 0, 0, 3000, 3000, T, F, 1, 1, 1, Dyes.dyeYellow ), - Emery ( 861, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Emery" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Enderium ( 321, TextureSet.SET_DULL , 8.0F, 256, 3, 1|2 |64 , 89, 145, 135, 0, "Enderium" , 0, 0, 3000, 3000, T, F, 1, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), - EnderiumBase ( -1, TextureSet.SET_DULL , 8.0F, 256, 3, 1|2 |64 , 89, 145, 135, 0, "Enderium Base" , 0, 0, 3000, 3000, T, F, 1, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), - Energized ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Energized" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Epidote ( 862, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Epidote" , 0, 0, -1, 0, F, F, 0, 1, 1, Dyes._NULL ), - Eximite ( 959, TextureSet.SET_METALLIC , 5.0F, 2560, 3, 1|2 |8 |64 , 124, 90, 150, 0, "Eximite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - FierySteel ( 346, TextureSet.SET_FIERY , 8.0F, 256, 3, 1|2 |16 |64|128 , 64, 0, 0, 0, "Fiery Steel" , 5, 2048, 1811, 1000, T, F, 1, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 3), new TC_AspectStack(TC_Aspects.IGNIS, 3), new TC_AspectStack(TC_Aspects.CORPUS, 3))), - Firestone ( 347, TextureSet.SET_QUARTZ , 6.0F, 1280, 3, 1 |4|8 |64 , 200, 20, 0, 0, "Firestone" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeRed ), - Fluorite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Fluorite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeGreen ), - FoolsRuby ( 512, TextureSet.SET_RUBY , 1.0F, 0, 2, 1 |4|8 , 255, 100, 100, 127, "Ruby" , 0, 0, -1, 0, F, T, 3, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 2))), - Force ( 521, TextureSet.SET_DIAMOND , 10.0F, 128, 3, 1|2|4|8 |64|128 , 255, 255, 0, 0, "Force" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 5))), - Forcicium ( 518, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8|16 , 50, 50, 70, 0, "Forcicium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2))), - Forcillium ( 519, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8|16 , 50, 50, 70, 0, "Forcillium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2))), - Gabbro ( 863, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Gabbro" , 0, 0, -1, 0, F, F, 0, 1, 1, Dyes._NULL ), - Glowstone ( 811, TextureSet.SET_SHINY , 1.0F, 0, 1, 1 |16 , 255, 255, 0, 0, "Glowstone" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.LUX, 2), new TC_AspectStack(TC_Aspects.SENSUS, 1))), - Gneiss ( 864, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Gneiss" , 0, 0, -1, 0, F, F, 0, 1, 1, Dyes._NULL ), - Graphite ( 865, TextureSet.SET_DULL , 5.0F, 32, 2, 1 |8|16 |64 , 128, 128, 128, 0, "Graphite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.IGNIS, 1))), - Graphene ( 819, TextureSet.SET_DULL , 6.0F, 32, 1, 1 |64 , 128, 128, 128, 0, "Graphene" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1))), - Greenschist ( 866, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Green Schist" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeGreen ), - Greenstone ( 867, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Greenstone" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeGreen ), - Greywacke ( 868, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Greywacke" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeGray ), - Haderoth ( 963, TextureSet.SET_METALLIC , 10.0F, 3200, 3, 1|2 |8|16 |64 , 119, 52, 30, 0, "Haderoth" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Hematite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Hematite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Hepatizon ( 957, TextureSet.SET_METALLIC , 12.0F, 128, 2, 1|2 |8|16 |64 , 117, 94, 117, 0, "Hepatizon" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - HSLA ( 322, TextureSet.SET_METALLIC , 6.0F, 500, 2, 1|2 |64|128 , 128, 128, 128, 0, "HSLA Steel" , 0, 0, 1811, 1000, T, F, 3, 1, 1, Dyes._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.ORDO, 1))), - Ignatius ( 950, TextureSet.SET_METALLIC , 12.0F, 512, 2, 1|2 |16 , 255, 169, 83, 0, "Ignatius" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Infernal ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Infernal" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Infuscolium ( 490, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8|16 |64 , 146, 33, 86, 0, "Infuscolium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - InfusedGold ( 323, TextureSet.SET_SHINY , 12.0F, 64, 3, 1|2 |8 |64|128 , 255, 200, 60, 0, "Infused Gold" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeYellow ), - InfusedAir ( 540, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 255, 255, 0, 0, "Aer" , 5, 160, -1, 0, F, T, 3, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.AER, 2))), - InfusedFire ( 541, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 255, 0, 0, 0, "Ignis" , 5, 320, -1, 0, F, T, 3, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.IGNIS, 2))), - InfusedEarth ( 542, TextureSet.SET_SHARDS , 8.0F, 256, 3, 1 |4|8 |64|128 , 0, 255, 0, 0, "Terra" , 5, 160, -1, 0, F, T, 3, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.TERRA, 2))), - InfusedWater ( 543, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 0, 0, 255, 0, "Aqua" , 5, 160, -1, 0, F, T, 3, 1, 1, Dyes.dyeBlue , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.AQUA, 2))), - InfusedEntropy ( 544, TextureSet.SET_SHARDS , 32.0F, 64, 4, 1 |4|8 |64|128 , 62, 62, 62, 0, "Perditio" , 5, 320, -1, 0, F, T, 3, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.PERDITIO, 2))), - InfusedOrder ( 545, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 252, 252, 252, 0, "Ordo" , 5, 240, -1, 0, F, T, 3, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.ORDO, 2))), - InfusedVis ( -1, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 255, 0, 255, 0, "Auram" , 5, 240, -1, 0, F, T, 3, 1, 1, Dyes.dyePurple , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.AURAM, 2))), - InfusedDull ( -1, TextureSet.SET_SHARDS , 32.0F, 64, 3, 1 |4|8 |64|128 , 100, 100, 100, 0, "Vacuus" , 5, 160, -1, 0, F, T, 3, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.VACUOS, 2))), - Inolashite ( 954, TextureSet.SET_NONE , 8.0F, 2304, 3, 1|2 |8|16 |64 , 148, 216, 187, 0, "Inolashite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Invisium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Invisium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Jade ( 537, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 |8 , 0, 100, 0, 0, "Jade" , 0, 0, -1, 0, F, F, 5, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Jasper ( 511, TextureSet.SET_EMERALD , 1.0F, 0, 2, 1 |4|8 , 200, 80, 80, 100, "Jasper" , 0, 0, -1, 0, F, T, 3, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 2))), - Kalendrite ( 953, TextureSet.SET_METALLIC , 5.0F, 2560, 3, 1|2 |16 , 170, 91, 189, 0, "Kalendrite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Komatiite ( 869, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Komatiite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeYellow ), - Lava ( 700, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 255, 64, 0, 0, "Lava" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeOrange ), - Lemurite ( 486, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |16 , 219, 219, 219, 0, "Lemurite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Limestone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Limestone" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Lodestone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Lodestone" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Luminite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 250, 250, 250, 0, "Luminite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeWhite ), - Magma ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 64, 0, 0, "Magma" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeOrange ), - Mawsitsit ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Mawsitsit" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Mercassium ( -1, TextureSet.SET_NONE , 6.0F, 64, 1, 1|2 |8 |64 , 255, 255, 255, 0, "Mercassium" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - MeteoricIron ( 340, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |8 |64 , 100, 50, 80, 0, "Meteoric Iron" , 0, 0, 1811, 0, F, F, 1, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - MeteoricSteel ( 341, TextureSet.SET_METALLIC , 6.0F, 768, 2, 1|2 |64 , 50, 25, 40, 0, "Meteoric Steel" , 0, 0, 1811, 1000, T, F, 1, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1), new TC_AspectStack(TC_Aspects.ORDO, 1))), - Meteorite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 80, 35, 60, 0, "Meteorite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyePurple ), - Meutoite ( 487, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8|16 , 95, 82, 105, 0, "Meutoite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Migmatite ( 872, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Migmatite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Mimichite ( -1, TextureSet.SET_GEM_VERTICAL , 1.0F, 0, 1, 1 |4|8 , 255, 255, 255, 0, "Mimichite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Moonstone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Moonstone" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), - Naquadah ( 324, TextureSet.SET_METALLIC , 6.0F, 1280, 4, 1|2 |8|16 |64 , 50, 50, 50, 0, "Naquadah" , 0, 0, 3000, 3000, T, F, 10, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.RADIO, 1), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), - NaquadahAlloy ( 325, TextureSet.SET_METALLIC , 8.0F, 5120, 5, 1|2 |64|128 , 40, 40, 40, 0, "Naquadah Alloy" , 0, 0, 3000, 3000, T, F, 10, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), - NaquadahEnriched ( 326, TextureSet.SET_METALLIC , 6.0F, 1280, 4, 1|2 |8|16 |64 , 50, 50, 50, 0, "Enriched Naquadah" , 0, 0, 3000, 3000, T, F, 15, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.RADIO, 2), new TC_AspectStack(TC_Aspects.NEBRISUM, 2))), - Naquadria ( 327, TextureSet.SET_SHINY , 1.0F, 512, 4, 1|2 |8 |64 , 30, 30, 30, 0, "Naquadria" , 0, 0, 3000, 3000, T, F, 20, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.RADIO, 3), new TC_AspectStack(TC_Aspects.NEBRISUM, 3))), - Nether ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Nether" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - NetherBrick ( 814, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 100, 0, 0, 0, "Nether Brick" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1))), - NetherQuartz ( 522, TextureSet.SET_QUARTZ , 1.0F, 32, 1, 1 |4|8 |64 , 230, 210, 210, 0, "Nether Quartz" , 0, 0, -1, 0, F, F, 2, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VITREUS, 1))), - NetherStar ( 506, TextureSet.SET_NETHERSTAR , 1.0F, 5120, 4, 1 |4 |64 , 255, 255, 255, 0, "Nether Star" , 5, 50000, -1, 0, F, F, 15, 1, 1, Dyes.dyeWhite ), - Nikolite ( 812, TextureSet.SET_SHINY , 1.0F, 0, 1, 1 |8 , 60, 180, 200, 0, "Nikolite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeCyan , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 2))), - ObsidianFlux ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 , 80, 50, 100, 0, "Fluxed Obsidian" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyePurple ), - Oilsands ( 878, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 10, 10, 10, 0, "Oilsands" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Onyx ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Onyx" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Orichalcum ( 966, TextureSet.SET_METALLIC , 4.5F, 3456, 3, 1|2 |8 |64 , 84, 122, 56, 0, "Orichalcum" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Osmonium ( -1, TextureSet.SET_NONE , 6.0F, 64, 1, 1|2 |8 |64 , 255, 255, 255, 0, "Osmonium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeBlue ), - Oureclase ( 961, TextureSet.SET_METALLIC , 6.0F, 1920, 3, 1|2 |8 |64 , 183, 98, 21, 0, "Oureclase" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Painite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Painite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Peanutwood ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Peanut Wood" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Petroleum ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Petroleum" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Pewter ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Pewter" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Phoenixite ( -1, TextureSet.SET_NONE , 6.0F, 64, 1, 1|2 |8 |64 , 255, 255, 255, 0, "Phoenixite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Potash ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Potash" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Prometheum ( 960, TextureSet.SET_METALLIC , 8.0F, 512, 1, 1|2 |8 |64 , 90, 129, 86, 0, "Prometheum" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Quartzite ( 523, TextureSet.SET_QUARTZ , 1.0F, 0, 1, 1 |4|8 , 210, 230, 210, 0, "Quartzite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeWhite ), - Quicklime ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Quicklime" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Randomite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Randomite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - RefinedGlowstone (-326, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 , 255, 255, 0, 0, "Refined Glowstone" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeYellow ), - RefinedObsidian (-327, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 , 80, 50, 100, 0, "Refined Obsidian" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyePurple ), - Rhyolite ( 875, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Rhyolite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Rubracium ( 488, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8|16 , 151, 45, 45, 0, "Rubracium" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - RyuDragonRyder ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Ryu Dragon Ryder" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Sand ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Sand" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeYellow ), - Sanguinite ( 955, TextureSet.SET_METALLIC , 3.0F, 4480, 4, 1|2 |8 , 185, 0, 0, 0, "Sanguinite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Siltstone ( 876, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Siltstone" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Spinel ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Spinel" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Starconium ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1|2 |8 , 255, 255, 255, 0, "Starconium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Sugilite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Sugilite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Sunstone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Sunstone" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), - Tar ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 10, 10, 10, 0, "Tar" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlack ), - Tartarite ( 956, TextureSet.SET_METALLIC , 20.0F, 7680, 5, 1|2 |8|16 , 255, 118, 60, 0, "Tartarite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Tapazite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Tapazite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeGreen ), - Thyrium ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1|2 |8 , 255, 255, 255, 0, "Thyrium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Tourmaline ( -1, TextureSet.SET_RUBY , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Tourmaline" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Tritanium ( 329, TextureSet.SET_METALLIC , 6.0F, 2560, 4, 1|2 |64 , 255, 255, 255, 0, "Tritanium" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 2))), - Turquoise ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Turquoise" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - UUAmplifier ( 721, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 96, 0, 128, 0, "UU-Amplifier" , 0, 0, -1, 0, F, F, 10, 1, 1, Dyes.dyePink ), - UUMatter ( 703, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 128, 0, 196, 0, "UU-Matter" , 0, 0, -1, 0, F, F, 10, 1, 1, Dyes.dyePink ), - Void ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 200, "Void" , 0, 0, -1, 0, F, T, 1, 1, 1, Dyes._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 1))), - Voidstone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 200, "Voidstone" , 0, 0, -1, 0, F, T, 1, 1, 1, Dyes._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.VACUOS, 1))), - Vulcanite ( 489, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8|16 |64 , 255, 132, 72, 0, "Vulcanite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Vyroxeres ( 951, TextureSet.SET_METALLIC , 9.0F, 768, 3, 1|2 |8 |64 , 85, 224, 1, 0, "Vyroxeres" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ), - Wimalite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 8 , 255, 255, 255, 0, "Wimalite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeYellow ), - Yellorite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 8 , 255, 255, 255, 0, "Yellorite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeYellow ), - Yellorium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Yellorium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeYellow ), - Zectium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Zectium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeBlack ), + CobaltHexahydrate ( 853, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |16 , 80, 80, 250, 0, "Cobalt Hexahydrate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue ), + ConstructionFoam ( 854, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |16 , 128, 128, 128, 0, "Construction Foam" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray ), + Chert ( 857, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Chert" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL ), + Chimerite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Chimerite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Coral ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 128, 255, 0, "Coral" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + CrudeOil ( 858, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 10, 10, 10, 0, "Crude Oil" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), + Chrysocolla ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Chrysocolla" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + CrystalFlux ( -1, TextureSet.SET_QUARTZ , 1.0F, 0, 3, 1 |4 , 100, 50, 100, 0, "Flux Crystal" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Cyanite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Cyanite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeCyan ), + Dacite ( 859, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Dacite" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeLightGray ), + DarkIron ( 342, TextureSet.SET_DULL , 7.0F, 384, 3, 1|2 |8 |64 , 55, 40, 60, 0, "Dark Iron" , 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyePurple ), + DarkStone ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Dark Stone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlack ), + Demonite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Demonite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed ), + Desh ( 884, TextureSet.SET_DULL , 1.0F, 1280, 3, 1|2 |8 |64|128 , 40, 40, 40, 0, "Desh" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), + Desichalkos ( -1, TextureSet.SET_NONE , 6.0F, 1280, 3, 1|2 |8|16 |64 , 255, 255, 255, 0, "Desichalkos" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Dilithium ( 515, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8|16 , 255, 250, 250, 127, "Dilithium" , 0, 0, -1, 0, false, true , 1, 1, 1, Dyes.dyeWhite ), + Draconic ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Draconic" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed ), + Drulloy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|16 , 255, 255, 255, 0, "Drulloy" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed ), + Duranium ( 328, TextureSet.SET_METALLIC , 8.0F, 1280, 4, 1|2 |64 , 255, 255, 255, 0, "Duranium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray ), + Eclogite ( 860, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Eclogite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + ElectrumFlux ( 320, TextureSet.SET_SHINY , 16.0F, 512, 3, 1|2 |64 , 255, 255, 120, 0, "Fluxed Electrum" , 0, 0, 3000, 3000, true , false, 1, 1, 1, Dyes.dyeYellow ), + Emery ( 861, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Emery" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Enderium ( 321, TextureSet.SET_DULL , 8.0F, 256, 3, 1|2 |64 , 89, 145, 135, 0, "Enderium" , 0, 0, 3000, 3000, true , false, 1, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), + EnderiumBase ( -1, TextureSet.SET_DULL , 8.0F, 256, 3, 1|2 |64 , 89, 145, 135, 0, "Enderium Base" , 0, 0, 3000, 3000, true , false, 1, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), + Energized ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Energized" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Epidote ( 862, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Epidote" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL ), + Eximite ( 959, TextureSet.SET_METALLIC , 5.0F, 2560, 3, 1|2 |8 |64 , 124, 90, 150, 0, "Eximite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + FierySteel ( 346, TextureSet.SET_FIERY , 8.0F, 256, 3, 1|2 |16 |64|128 , 64, 0, 0, 0, "Fiery Steel" , 5, 2048, 1811, 1000, true , false, 1, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 3), new TC_AspectStack(TC_Aspects.IGNIS, 3), new TC_AspectStack(TC_Aspects.CORPUS, 3))), + Firestone ( 347, TextureSet.SET_QUARTZ , 6.0F, 1280, 3, 1 |4|8 |64 , 200, 20, 0, 0, "Firestone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed ), + Fluorite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Fluorite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen ), + FoolsRuby ( 512, TextureSet.SET_RUBY , 1.0F, 0, 2, 1 |4|8 , 255, 100, 100, 127, "Ruby" , 0, 0, -1, 0, false, true , 3, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 2))), + Force ( 521, TextureSet.SET_DIAMOND , 10.0F, 128, 3, 1|2|4|8 |64|128 , 255, 255, 0, 0, "Force" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 5))), + Forcicium ( 518, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8|16 , 50, 50, 70, 0, "Forcicium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2))), + Forcillium ( 519, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8|16 , 50, 50, 70, 0, "Forcillium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2))), + Gabbro ( 863, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Gabbro" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL ), + Glowstone ( 811, TextureSet.SET_SHINY , 1.0F, 0, 1, 1 |16 , 255, 255, 0, 0, "Glowstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.LUX, 2), new TC_AspectStack(TC_Aspects.SENSUS, 1))), + Gneiss ( 864, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Gneiss" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL ), + Graphite ( 865, TextureSet.SET_DULL , 5.0F, 32, 2, 1 |8|16 |64 , 128, 128, 128, 0, "Graphite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.IGNIS, 1))), + Graphene ( 819, TextureSet.SET_DULL , 6.0F, 32, 1, 1 |64 , 128, 128, 128, 0, "Graphene" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1))), + Greenschist ( 866, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Green Schist" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen ), + Greenstone ( 867, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Greenstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen ), + Greywacke ( 868, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Greywacke" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray ), + Haderoth ( 963, TextureSet.SET_METALLIC , 10.0F, 3200, 3, 1|2 |8|16 |64 , 119, 52, 30, 0, "Haderoth" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Hematite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Hematite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Hepatizon ( 957, TextureSet.SET_METALLIC , 12.0F, 128, 2, 1|2 |8|16 |64 , 117, 94, 117, 0, "Hepatizon" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + HSLA ( 322, TextureSet.SET_METALLIC , 6.0F, 500, 2, 1|2 |64|128 , 128, 128, 128, 0, "HSLA Steel" , 0, 0, 1811, 1000, true , false, 3, 1, 1, Dyes._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.ORDO, 1))), + Ignatius ( 950, TextureSet.SET_METALLIC , 12.0F, 512, 2, 1|2 |16 , 255, 169, 83, 0, "Ignatius" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Infernal ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Infernal" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Infuscolium ( 490, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8|16 |64 , 146, 33, 86, 0, "Infuscolium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + InfusedGold ( 323, TextureSet.SET_SHINY , 12.0F, 64, 3, 1|2 |8 |64|128 , 255, 200, 60, 0, "Infused Gold" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow ), + InfusedAir ( 540, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 255, 255, 0, 0, "Aer" , 5, 160, -1, 0, false, true , 3, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.AER, 2))), + InfusedFire ( 541, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 255, 0, 0, 0, "Ignis" , 5, 320, -1, 0, false, true , 3, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.IGNIS, 2))), + InfusedEarth ( 542, TextureSet.SET_SHARDS , 8.0F, 256, 3, 1 |4|8 |64|128 , 0, 255, 0, 0, "Terra" , 5, 160, -1, 0, false, true , 3, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.TERRA, 2))), + InfusedWater ( 543, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 0, 0, 255, 0, "Aqua" , 5, 160, -1, 0, false, true , 3, 1, 1, Dyes.dyeBlue , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.AQUA, 2))), + InfusedEntropy ( 544, TextureSet.SET_SHARDS , 32.0F, 64, 4, 1 |4|8 |64|128 , 62, 62, 62, 0, "Perditio" , 5, 320, -1, 0, false, true , 3, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.PERDITIO, 2))), + InfusedOrder ( 545, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 252, 252, 252, 0, "Ordo" , 5, 240, -1, 0, false, true , 3, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.ORDO, 2))), + InfusedVis ( -1, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 255, 0, 255, 0, "Auram" , 5, 240, -1, 0, false, true , 3, 1, 1, Dyes.dyePurple , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.AURAM, 2))), + InfusedDull ( -1, TextureSet.SET_SHARDS , 32.0F, 64, 3, 1 |4|8 |64|128 , 100, 100, 100, 0, "Vacuus" , 5, 160, -1, 0, false, true , 3, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.VACUOS, 2))), + Inolashite ( 954, TextureSet.SET_NONE , 8.0F, 2304, 3, 1|2 |8|16 |64 , 148, 216, 187, 0, "Inolashite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Invisium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Invisium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Jade ( 537, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 |8 , 0, 100, 0, 0, "Jade" , 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 3))), + Jasper ( 511, TextureSet.SET_EMERALD , 1.0F, 0, 2, 1 |4|8 , 200, 80, 80, 100, "Jasper" , 0, 0, -1, 0, false, true , 3, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 2))), + Kalendrite ( 953, TextureSet.SET_METALLIC , 5.0F, 2560, 3, 1|2 |16 , 170, 91, 189, 0, "Kalendrite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Komatiite ( 869, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Komatiite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + Lava ( 700, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 255, 64, 0, 0, "Lava" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange ), + Lemurite ( 486, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |16 , 219, 219, 219, 0, "Lemurite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Limestone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Limestone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Lodestone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Lodestone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Luminite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 250, 250, 250, 0, "Luminite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite ), + Magma ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 64, 0, 0, "Magma" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange ), + Mawsitsit ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Mawsitsit" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Mercassium ( -1, TextureSet.SET_NONE , 6.0F, 64, 1, 1|2 |8 |64 , 255, 255, 255, 0, "Mercassium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + MeteoricIron ( 340, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |8 |64 , 100, 50, 80, 0, "Meteoric Iron" , 0, 0, 1811, 0, false, false, 1, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), + MeteoricSteel ( 341, TextureSet.SET_METALLIC , 6.0F, 768, 2, 1|2 |64 , 50, 25, 40, 0, "Meteoric Steel" , 0, 0, 1811, 1000, true , false, 1, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1), new TC_AspectStack(TC_Aspects.ORDO, 1))), + Meteorite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 80, 35, 60, 0, "Meteorite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple ), + Meutoite ( 487, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8|16 , 95, 82, 105, 0, "Meutoite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Migmatite ( 872, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Migmatite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Mimichite ( -1, TextureSet.SET_GEM_VERTICAL , 1.0F, 0, 1, 1 |4|8 , 255, 255, 255, 0, "Mimichite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Moonstone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Moonstone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), + Naquadah ( 324, TextureSet.SET_METALLIC , 6.0F, 1280, 4, 1|2 |8|16 |64 , 50, 50, 50, 0, "Naquadah" , 0, 0, 3000, 3000, true , false, 10, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.RADIO, 1), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), + NaquadahAlloy ( 325, TextureSet.SET_METALLIC , 8.0F, 5120, 5, 1|2 |64|128 , 40, 40, 40, 0, "Naquadah Alloy" , 0, 0, 3000, 3000, true , false, 10, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), + NaquadahEnriched ( 326, TextureSet.SET_METALLIC , 6.0F, 1280, 4, 1|2 |8|16 |64 , 50, 50, 50, 0, "Enriched Naquadah" , 0, 0, 3000, 3000, true , false, 15, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.RADIO, 2), new TC_AspectStack(TC_Aspects.NEBRISUM, 2))), + Naquadria ( 327, TextureSet.SET_SHINY , 1.0F, 512, 4, 1|2 |8 |64 , 30, 30, 30, 0, "Naquadria" , 0, 0, 3000, 3000, true , false, 20, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.RADIO, 3), new TC_AspectStack(TC_Aspects.NEBRISUM, 3))), + Nether ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Nether" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + NetherBrick ( 814, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 100, 0, 0, 0, "Nether Brick" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1))), + NetherQuartz ( 522, TextureSet.SET_QUARTZ , 1.0F, 32, 1, 1 |4|8 |64 , 230, 210, 210, 0, "Nether Quartz" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VITREUS, 1))), + NetherStar ( 506, TextureSet.SET_NETHERSTAR , 1.0F, 5120, 4, 1 |4 |64 , 255, 255, 255, 0, "Nether Star" , 5, 50000, -1, 0, false, false, 15, 1, 1, Dyes.dyeWhite ), + Nikolite ( 812, TextureSet.SET_SHINY , 1.0F, 0, 1, 1 |8 , 60, 180, 200, 0, "Nikolite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeCyan , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 2))), + ObsidianFlux ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 , 80, 50, 100, 0, "Fluxed Obsidian" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple ), + Oilsands ( 878, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 10, 10, 10, 0, "Oilsands" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Onyx ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Onyx" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Orichalcum ( 966, TextureSet.SET_METALLIC , 4.5F, 3456, 3, 1|2 |8 |64 , 84, 122, 56, 0, "Orichalcum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Osmonium ( -1, TextureSet.SET_NONE , 6.0F, 64, 1, 1|2 |8 |64 , 255, 255, 255, 0, "Osmonium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue ), + Oureclase ( 961, TextureSet.SET_METALLIC , 6.0F, 1920, 3, 1|2 |8 |64 , 183, 98, 21, 0, "Oureclase" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Painite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Painite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Peanutwood ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Peanut Wood" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Petroleum ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Petroleum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Pewter ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Pewter" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Phoenixite ( -1, TextureSet.SET_NONE , 6.0F, 64, 1, 1|2 |8 |64 , 255, 255, 255, 0, "Phoenixite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Potash ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Potash" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Prometheum ( 960, TextureSet.SET_METALLIC , 8.0F, 512, 1, 1|2 |8 |64 , 90, 129, 86, 0, "Prometheum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Quartzite ( 523, TextureSet.SET_QUARTZ , 1.0F, 0, 1, 1 |4|8 , 210, 230, 210, 0, "Quartzite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite ), + Quicklime ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Quicklime" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Randomite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Randomite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + RefinedGlowstone (-326, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 , 255, 255, 0, 0, "Refined Glowstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + RefinedObsidian (-327, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 , 80, 50, 100, 0, "Refined Obsidian" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple ), + Rhyolite ( 875, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Rhyolite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Rubracium ( 488, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8|16 , 151, 45, 45, 0, "Rubracium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + RyuDragonRyder ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Ryu Dragon Ryder" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Sand ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + Sanguinite ( 955, TextureSet.SET_METALLIC , 3.0F, 4480, 4, 1|2 |8 , 185, 0, 0, 0, "Sanguinite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Siltstone ( 876, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Siltstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Spinel ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Spinel" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Starconium ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1|2 |8 , 255, 255, 255, 0, "Starconium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Sugilite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Sugilite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Sunstone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Sunstone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), + Tar ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 10, 10, 10, 0, "Tar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), + Tartarite ( 956, TextureSet.SET_METALLIC , 20.0F, 7680, 5, 1|2 |8|16 , 255, 118, 60, 0, "Tartarite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Tapazite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Tapazite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen ), + Thyrium ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1|2 |8 , 255, 255, 255, 0, "Thyrium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Tourmaline ( -1, TextureSet.SET_RUBY , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Tourmaline" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Tritanium ( 329, TextureSet.SET_METALLIC , 6.0F, 2560, 4, 1|2 |64 , 255, 255, 255, 0, "Tritanium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 2))), + Turquoise ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Turquoise" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + UUAmplifier ( 721, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 96, 0, 128, 0, "UU-Amplifier" , 0, 0, -1, 0, false, false, 10, 1, 1, Dyes.dyePink ), + UUMatter ( 703, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 128, 0, 196, 0, "UU-Matter" , 0, 0, -1, 0, false, false, 10, 1, 1, Dyes.dyePink ), + Void ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 200, "Void" , 0, 0, -1, 0, false, true , 1, 1, 1, Dyes._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 1))), + Voidstone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 200, "Voidstone" , 0, 0, -1, 0, false, true , 1, 1, 1, Dyes._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.VACUOS, 1))), + Vulcanite ( 489, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8|16 |64 , 255, 132, 72, 0, "Vulcanite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Vyroxeres ( 951, TextureSet.SET_METALLIC , 9.0F, 768, 3, 1|2 |8 |64 , 85, 224, 1, 0, "Vyroxeres" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Wimalite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 8 , 255, 255, 255, 0, "Wimalite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow ), + Yellorite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 8 , 255, 255, 255, 0, "Yellorite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow ), + Yellorium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Yellorium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow ), + Zectium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Zectium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlack ), /** * Circuitry, Batteries and other Technical things */ - Primitive ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Primitive" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 1))), - Basic ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Basic" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 2))), - Good ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Good" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 3))), - Advanced ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Advanced" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 4))), - Data ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Data" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 5))), - Elite ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Elite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 6))), - Master ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Master" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 7))), - Ultimate ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Ultimate" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 8))), - Superconductor ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Superconductor" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 8))), - Infinite ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Infinite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLightGray ), + Primitive ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Primitive" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 1))), + Basic ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Basic" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 2))), + Good ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Good" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 3))), + Advanced ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Advanced" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 4))), + Data ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Data" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 5))), + Elite ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Elite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 6))), + Master ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Master" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 7))), + Ultimate ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Ultimate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 8))), + Superconductor ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Superconductor" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 8))), + Infinite ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Infinite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray ), /** * Not possible to determine exact Components */ - Antimatter ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Antimatter" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyePink , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 9), new TC_AspectStack(TC_Aspects.PERFODIO, 8))), - BioFuel ( 705, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 128, 0, 0, "Biofuel" , 0, 6, -1, 0, F, F, 1, 1, 1, Dyes.dyeOrange ), - Biomass ( 704, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 255, 0, 0, "Biomass" , 3, 8, -1, 0, F, F, 1, 1, 1, Dyes.dyeGreen ), - Cheese ( 894, TextureSet.SET_FINE , 1.0F, 0, 0, 1 |8 , 255, 255, 0, 0, "Cheese" , 0, 0, 320, 0, F, F, 1, 1, 1, Dyes.dyeYellow ), - Chili ( 895, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 200, 0, 0, 0, "Chili" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeRed ), - Chocolate ( 886, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 190, 95, 0, 0, "Chocolate" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBrown ), - Cluster ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 127, "Cluster" , 0, 0, -1, 0, F, T, 1, 1, 1, Dyes.dyeWhite ), - CoalFuel ( 710, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 50, 50, 70, 0, "Coalfuel" , 0, 16, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlack ), - Cocoa ( 887, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 190, 95, 0, 0, "Cocoa" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBrown ), - Coffee ( 888, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 150, 75, 0, 0, "Coffee" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBrown ), - Creosote ( 712, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 128, 64, 0, 0, "Creosote" , 3, 8, -1, 0, F, F, 1, 1, 1, Dyes.dyeBrown ), - Ethanol ( 706, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 128, 0, 0, "Ethanol" , 0, 128, -1, 0, F, F, 1, 1, 1, Dyes.dyePurple ), - FishOil ( 711, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 196, 0, 0, "Fish Oil" , 3, 2, -1, 0, F, F, 1, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.CORPUS, 2))), - Fuel ( 708, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Diesel" , 0, 128, -1, 0, F, F, 1, 1, 1, Dyes.dyeYellow ), - Glue ( 726, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 200, 196, 0, 0, "Glue" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeOrange , Arrays.asList(new TC_AspectStack(TC_Aspects.LIMUS, 2))), - Gunpowder ( 800, TextureSet.SET_DULL , 1.0F, 0, 0, 1 , 128, 128, 128, 0, "Gunpowder" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 3), new TC_AspectStack(TC_Aspects.IGNIS, 4))), - FryingOilHot ( 727, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 200, 196, 0, 0, "Hot Frying Oil" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeOrange , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.IGNIS, 1))), - Honey ( 725, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 210, 200, 0, 0, "Honey" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeYellow ), - Leather ( -1, TextureSet.SET_ROUGH , 1.0F, 0, 0, 1 , 150, 150, 80, 127, "Leather" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeOrange ), - LimePure ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Pure Lime" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLime ), - Lubricant ( 724, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 196, 0, 0, "Lubricant" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeOrange , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), - McGuffium239 ( 999, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 200, 50, 150, 0, "Mc Guffium 239" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyePink , Arrays.asList(new TC_AspectStack(TC_Aspects.ALIENIS, 8), new TC_AspectStack(TC_Aspects.PERMUTATIO, 8), new TC_AspectStack(TC_Aspects.SPIRITUS, 8), new TC_AspectStack(TC_Aspects.AURAM, 8), new TC_AspectStack(TC_Aspects.VITIUM, 8), new TC_AspectStack(TC_Aspects.RADIO, 8), new TC_AspectStack(TC_Aspects.MAGNETO, 8), new TC_AspectStack(TC_Aspects.ELECTRUM, 8), new TC_AspectStack(TC_Aspects.NEBRISUM, 8), new TC_AspectStack(TC_Aspects.STRONTIO, 8))), - MeatRaw ( 892, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 255, 100, 100, 0, "Raw Meat" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyePink ), - MeatCooked ( 893, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 150, 60, 20, 0, "Cooked Meat" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyePink ), - Milk ( 885, TextureSet.SET_FINE , 1.0F, 0, 0, 1 |16 , 254, 254, 254, 0, "Milk" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.SANO, 2))), - Mud ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Mud" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBrown ), - Oil ( 707, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 10, 10, 10, 0, "Oil" , 3, 16, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlack ), - Paper ( 879, TextureSet.SET_PAPER , 1.0F, 0, 0, 1 , 250, 250, 250, 0, "Paper" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.COGNITO, 1))), - Peat ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Peat" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBrown , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2))), - Quantum ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Quantum" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeWhite ), - RareEarth ( 891, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 128, 128, 100, 0, "Rare Earth" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.LUCRUM, 1))), - Red ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 0, 0, 0, "Red" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeRed ), - Reinforced ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Reinforced" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeGray ), - SeedOil ( 713, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 196, 255, 0, 0, "Seed Oil" , 3, 2, -1, 0, F, F, 1, 1, 1, Dyes.dyeLime , Arrays.asList(new TC_AspectStack(TC_Aspects.GRANUM, 2))), - SeedOilHemp ( 722, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 196, 255, 0, 0, "Hemp Seed Oil" , 3, 2, -1, 0, F, F, 1, 1, 1, Dyes.dyeLime , Arrays.asList(new TC_AspectStack(TC_Aspects.GRANUM, 2))), - SeedOilLin ( 723, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 196, 255, 0, 0, "Lin Seed Oil" , 3, 2, -1, 0, F, F, 1, 1, 1, Dyes.dyeLime , Arrays.asList(new TC_AspectStack(TC_Aspects.GRANUM, 2))), - Stone ( 299, TextureSet.SET_ROUGH , 4.0F, 32, 1, 1 |64|128 , 205, 205, 205, 0, "Stone" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1))), - TNT ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "TNT" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 7), new TC_AspectStack(TC_Aspects.IGNIS, 4))), - Unstable ( -1, TextureSet.SET_NONE , 1.0F, 0, 4, 0 , 255, 255, 255, 127, "Unstable" , 0, 0, -1, 0, F, T, 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 4))), - Unstableingot ( -1, TextureSet.SET_NONE , 1.0F, 0, 4, 0 , 255, 255, 255, 127, "Unstable" , 0, 0, -1, 0, F, T, 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 4))), - Wheat ( 881, TextureSet.SET_POWDER , 1.0F, 0, 0, 1 , 255, 255, 196, 0, "Wheat" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.MESSIS, 2))), + Antimatter ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Antimatter" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 9), new TC_AspectStack(TC_Aspects.PERFODIO, 8))), + BioFuel ( 705, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 128, 0, 0, "Biofuel" , 0, 6, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange ), + Biomass ( 704, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 255, 0, 0, "Biomass" , 3, 8, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen ), + Cheese ( 894, TextureSet.SET_FINE , 1.0F, 0, 0, 1 |8 , 255, 255, 0, 0, "Cheese" , 0, 0, 320, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + Chili ( 895, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 200, 0, 0, 0, "Chili" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed ), + Chocolate ( 886, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 190, 95, 0, 0, "Chocolate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown ), + Cluster ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 127, "Cluster" , 0, 0, -1, 0, false, true , 1, 1, 1, Dyes.dyeWhite ), + CoalFuel ( 710, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 50, 50, 70, 0, "Coalfuel" , 0, 16, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), + Cocoa ( 887, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 190, 95, 0, 0, "Cocoa" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown ), + Coffee ( 888, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 150, 75, 0, 0, "Coffee" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown ), + Creosote ( 712, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 128, 64, 0, 0, "Creosote" , 3, 8, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown ), + Ethanol ( 706, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 128, 0, 0, "Ethanol" , 0, 128, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple ), + FishOil ( 711, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 196, 0, 0, "Fish Oil" , 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.CORPUS, 2))), + Fuel ( 708, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Diesel" , 0, 128, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + Glue ( 726, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 200, 196, 0, 0, "Glue" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , Arrays.asList(new TC_AspectStack(TC_Aspects.LIMUS, 2))), + Gunpowder ( 800, TextureSet.SET_DULL , 1.0F, 0, 0, 1 , 128, 128, 128, 0, "Gunpowder" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 3), new TC_AspectStack(TC_Aspects.IGNIS, 4))), + FryingOilHot ( 727, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 200, 196, 0, 0, "Hot Frying Oil" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.IGNIS, 1))), + Honey ( 725, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 210, 200, 0, 0, "Honey" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + Leather ( -1, TextureSet.SET_ROUGH , 1.0F, 0, 0, 1 , 150, 150, 80, 127, "Leather" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange ), + LimePure ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Pure Lime" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime ), + Lubricant ( 724, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 196, 0, 0, "Lubricant" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), + McGuffium239 ( 999, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 200, 50, 150, 0, "Mc Guffium 239" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , Arrays.asList(new TC_AspectStack(TC_Aspects.ALIENIS, 8), new TC_AspectStack(TC_Aspects.PERMUTATIO, 8), new TC_AspectStack(TC_Aspects.SPIRITUS, 8), new TC_AspectStack(TC_Aspects.AURAM, 8), new TC_AspectStack(TC_Aspects.VITIUM, 8), new TC_AspectStack(TC_Aspects.RADIO, 8), new TC_AspectStack(TC_Aspects.MAGNETO, 8), new TC_AspectStack(TC_Aspects.ELECTRUM, 8), new TC_AspectStack(TC_Aspects.NEBRISUM, 8), new TC_AspectStack(TC_Aspects.STRONTIO, 8))), + MeatRaw ( 892, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 255, 100, 100, 0, "Raw Meat" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink ), + MeatCooked ( 893, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 150, 60, 20, 0, "Cooked Meat" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink ), + Milk ( 885, TextureSet.SET_FINE , 1.0F, 0, 0, 1 |16 , 254, 254, 254, 0, "Milk" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.SANO, 2))), + Mud ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Mud" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown ), + Oil ( 707, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 10, 10, 10, 0, "Oil" , 3, 16, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), + Paper ( 879, TextureSet.SET_PAPER , 1.0F, 0, 0, 1 , 250, 250, 250, 0, "Paper" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.COGNITO, 1))), + Peat ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Peat" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2))), + Quantum ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Quantum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite ), + RareEarth ( 891, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 128, 128, 100, 0, "Rare Earth" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.LUCRUM, 1))), + Red ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 0, 0, 0, "Red" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed ), + Reinforced ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Reinforced" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray ), + SeedOil ( 713, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 196, 255, 0, 0, "Seed Oil" , 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , Arrays.asList(new TC_AspectStack(TC_Aspects.GRANUM, 2))), + SeedOilHemp ( 722, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 196, 255, 0, 0, "Hemp Seed Oil" , 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , Arrays.asList(new TC_AspectStack(TC_Aspects.GRANUM, 2))), + SeedOilLin ( 723, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 196, 255, 0, 0, "Lin Seed Oil" , 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , Arrays.asList(new TC_AspectStack(TC_Aspects.GRANUM, 2))), + Stone ( 299, TextureSet.SET_ROUGH , 4.0F, 32, 1, 1 |64|128 , 205, 205, 205, 0, "Stone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1))), + TNT ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "TNT" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 7), new TC_AspectStack(TC_Aspects.IGNIS, 4))), + Unstable ( -1, TextureSet.SET_NONE , 1.0F, 0, 4, 0 , 255, 255, 255, 127, "Unstable" , 0, 0, -1, 0, false, true , 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 4))), + Unstableingot ( -1, TextureSet.SET_NONE , 1.0F, 0, 4, 0 , 255, 255, 255, 127, "Unstable" , 0, 0, -1, 0, false, true , 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 4))), + Wheat ( 881, TextureSet.SET_POWDER , 1.0F, 0, 0, 1 , 255, 255, 196, 0, "Wheat" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.MESSIS, 2))), /** * TODO: This */ - AluminiumBrass ( -1, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |64 , 255, 255, 255, 0, "Aluminium Brass" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeYellow ), - Osmiridium ( 317, TextureSet.SET_METALLIC , 8.0F, 3000, 4, 1|2 |64|128 , 100, 100, 255, 0, "Osmiridium" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLightBlue ), - Sunnarium ( 318, TextureSet.SET_SHINY , 1.0F, 0, 1, 1|2 , 255, 255, 0, 0, "Sunnarium" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeYellow ), - Endstone ( 808, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Endstone" , 0, 0, -1, 0, F, F, 0, 1, 1, Dyes.dyeYellow ), - Netherrack ( 807, TextureSet.SET_DULL , 1.0F, 0, 0, 1 , 200, 0, 0, 0, "Netherrack" , 0, 0, -1, 0, F, F, 0, 1, 1, Dyes.dyeRed ), - SoulSand ( -1, TextureSet.SET_DULL , 1.0F, 0, 0, 1 , 255, 255, 255, 0, "Soulsand" , 0, 0, -1, 0, F, F, 0, 1, 1, Dyes.dyeBrown ), + AluminiumBrass ( -1, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |64 , 255, 255, 255, 0, "Aluminium Brass" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + Osmiridium ( 317, TextureSet.SET_METALLIC , 8.0F, 3000, 4, 1|2 |64|128 , 100, 100, 255, 0, "Osmiridium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightBlue ), + Sunnarium ( 318, TextureSet.SET_SHINY , 1.0F, 0, 1, 1|2 , 255, 255, 0, 0, "Sunnarium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + Endstone ( 808, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Endstone" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeYellow ), + Netherrack ( 807, TextureSet.SET_DULL , 1.0F, 0, 0, 1 , 200, 0, 0, 0, "Netherrack" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeRed ), + SoulSand ( -1, TextureSet.SET_DULL , 1.0F, 0, 0, 1 , 255, 255, 255, 0, "Soulsand" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeBrown ), /** * First Degree Compounds */ - Air ( -1, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 169, 208, 245, 240, "Air" , 0, 0, -1, 0, F, T, 1, 1, 1, Dyes.dyeLightBlue , 0, Arrays.asList(new MaterialStack(Nitrogen, 40), new MaterialStack(Oxygen, 11), new MaterialStack(Argon, 1))), - Almandine ( 820, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 255, 0, 0, 0, "Almandine" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Iron, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), - Andradite ( 821, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 150, 120, 0, 0, "Andradite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Iron, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), - AnnealedCopper ( 345, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |128 , 255, 120, 20, 0, "Annealed Copper" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Copper, 1))), - Asbestos ( 946, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 230, 230, 230, 0, "Asbestos" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 9))), // Mg3Si2O5(OH)4 - Ash ( 815, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 150, 150, 150, 0, "Ashes" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLightGray , 2, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 1))), - BandedIron ( 917, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 145, 90, 90, 0, "Banded Iron" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBrown , 1, Arrays.asList(new MaterialStack(Iron, 2), new MaterialStack(Oxygen, 3))), - BatteryAlloy ( 315, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 , 156, 124, 160, 0, "Battery Alloy" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Lead, 4), new MaterialStack(Antimony, 1))), - Bauxite ( 822, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "Bauxite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeBrown , 1, Arrays.asList(new MaterialStack(Titanium, 1), new MaterialStack(Aluminium, 16), new MaterialStack(Hydrogen, 10), new MaterialStack(Oxygen, 12))), - BlueTopaz ( 513, TextureSet.SET_GEM_HORIZONTAL , 7.0F, 256, 3, 1 |4|8 |64 , 0, 0, 255, 127, "Blue Topaz" , 0, 0, -1, 0, F, T, 3, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Fluorine, 2), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 6)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), - Bone ( 806, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 250, 250, 250, 0, "Bone" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Calcium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.MORTUUS, 2), new TC_AspectStack(TC_Aspects.CORPUS, 1))), - Brass ( 301, TextureSet.SET_METALLIC , 7.0F, 96, 1, 1|2 |64|128 , 255, 180, 0, 0, "Brass" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Zinc, 1), new MaterialStack(Copper, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), - Bronze ( 300, TextureSet.SET_METALLIC , 6.0F, 192, 2, 1|2 |64|128 , 255, 128, 0, 0, "Bronze" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Copper, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), - BrownLimonite ( 930, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "Brown Limonite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Oxygen, 2))), // FeO(OH) - Calcite ( 823, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 250, 230, 220, 0, "Calcite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3))), - Cassiterite ( 824, TextureSet.SET_METALLIC , 1.0F, 0, 1, 8 , 220, 220, 220, 0, "Cassiterite" , 0, 0, -1, 0, F, F, 4, 3, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Oxygen, 2))), - CassiteriteSand ( 937, TextureSet.SET_SAND , 1.0F, 0, 1, 8 , 220, 220, 220, 0, "Cassiterite Sand" , 0, 0, -1, 0, F, F, 4, 3, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Oxygen, 2))), - Celestine ( 913, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 200, 205, 240, 0, "Celestine" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLightGray , 1, Arrays.asList(new MaterialStack(Strontium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), - Chalcopyrite ( 855, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 160, 120, 40, 0, "Chalcopyrite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Iron, 1), new MaterialStack(Sulfur, 2))), - Chalk ( 856, TextureSet.SET_FINE , 1.0F, 0, 2, 1 , 250, 250, 250, 0, "Chalk" , 0, 0, -1, 0, F, F, 0, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3))), - Charcoal ( 536, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |4 , 100, 70, 70, 0, "Charcoal" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2))), - Chromite ( 825, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 35, 20, 15, 0, "Chromite" , 0, 0, 1700, 1700, T, F, 6, 1, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Chrome, 2), new MaterialStack(Oxygen, 4))), - ChromiumDioxide ( 361, TextureSet.SET_DULL , 11.0F, 256, 3, 1|2 , 230, 200, 200, 0, "Chromium Dioxide" , 0, 0, 650, 650, F, F, 5, 3, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(Chrome, 1), new MaterialStack(Oxygen, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), - Cinnabar ( 826, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 150, 0, 0, 0, "Cinnabar" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Mercury, 1), new MaterialStack(Sulfur, 1))), - Clay ( 805, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 200, 200, 220, 0, "Clay" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Lithium, 1), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 2))), - Coal ( 535, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |4|8 , 70, 70, 70, 0, "Coal" , 0, 0, -1, 0, F, F, 2, 2, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2))), - Cobaltite ( 827, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 80, 80, 250, 0, "Cobaltite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Cobalt, 1), new MaterialStack(Arsenic, 1), new MaterialStack(Sulfur, 1))), - Cooperite ( 828, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 255, 255, 200, 0, "Sheldonite" , 0, 0, -1, 0, F, F, 5, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Platinum, 3), new MaterialStack(Nickel, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Palladium, 1))), - Cupronickel ( 310, TextureSet.SET_METALLIC , 6.0F, 64, 1, 1|2 |64 , 227, 150, 128, 0, "Cupronickel" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Nickel, 1))), - DarkAsh ( 816, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 50, 50, 50, 0, "Dark Ashes" , 0, 0, -1, 0, F, F, 1, 2, 1, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1), new TC_AspectStack(TC_Aspects.PERDITIO, 1))), - DeepIron ( 829, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |8 |64 , 150, 140, 140, 0, "Deep Iron" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - Diamond ( 500, TextureSet.SET_DIAMOND , 8.0F, 1280, 3, 1 |4|8 |64|128 , 200, 255, 255, 127, "Diamond" , 0, 0, -1, 0, F, T, 5, 64, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3), new TC_AspectStack(TC_Aspects.LUCRUM, 4))), - Electrum ( 303, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |64|128 , 255, 255, 100, 0, "Electrum" , 0, 0, -1, 0, F, F, 4, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Silver, 1), new MaterialStack(Gold, 1))), - Emerald ( 501, TextureSet.SET_EMERALD , 7.0F, 256, 2, 1 |4|8 |64 , 80, 255, 80, 127, "Emerald" , 0, 0, -1, 0, F, T, 5, 1, 1, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(Beryllium, 3), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 6), new MaterialStack(Oxygen, 18)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3), new TC_AspectStack(TC_Aspects.LUCRUM, 5))), - FreshWater ( -1, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "Fresh Water" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2))), - Galena ( 830, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 100, 60, 100, 0, "Galena" , 0, 0, -1, 0, F, F, 4, 1, 1, Dyes.dyePurple , 1, Arrays.asList(new MaterialStack(Lead, 3), new MaterialStack(Silver, 3), new MaterialStack(Sulfur, 2))), - Garnierite ( 906, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 50, 200, 70, 0, "Garnierite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Nickel, 1), new MaterialStack(Oxygen, 1))), - Glyceryl ( 714, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 0, 150, 150, 0, "Glyceryl Trinitrate" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 5), new MaterialStack(Nitrogen, 3), new MaterialStack(Oxygen, 9))), - GreenSapphire ( 504, TextureSet.SET_GEM_HORIZONTAL , 7.0F, 256, 2, 1 |4|8 |64 , 100, 200, 130, 127, "Green Sapphire" , 0, 0, -1, 0, F, T, 5, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Grossular ( 831, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "Grossular" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), - HolyWater ( 729, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "Holy Water" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2), new TC_AspectStack(TC_Aspects.AURAM, 1))), - Ice ( 702, TextureSet.SET_SHINY , 1.0F, 0, 0, 1| 16 , 200, 200, 255, 0, "Ice" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.GELUM, 2))), - Ilmenite ( 918, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 70, 55, 50, 0, "Ilmenite" , 0, 0, -1, 0, F, F, 1, 2, 1, Dyes.dyePurple , 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Titanium, 1), new MaterialStack(Oxygen, 3))), - Invar ( 302, TextureSet.SET_METALLIC , 6.0F, 256, 2, 1|2 |64|128 , 180, 180, 120, 0, "Invar" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Iron, 2), new MaterialStack(Nickel, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.GELUM, 1))), - IronCompressed ( -1, TextureSet.SET_METALLIC , 7.0F, 96, 1, 1|2 |64|128 , 128, 128, 128, 0, "Compressed Iron" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Iron, 1))), - Kanthal ( 312, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |64 , 194, 210, 223, 0, "Kanthal" , 0, 0, 1800, 1800, T, F, 1, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Chrome, 1))), - Lazurite ( 524, TextureSet.SET_LAPIS , 1.0F, 0, 1, 1 |4|8 , 100, 120, 255, 0, "Lazurite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Aluminium, 6), new MaterialStack(Silicon, 6), new MaterialStack(Calcium, 8), new MaterialStack(Sodium, 8))), - Magnalium ( 313, TextureSet.SET_DULL , 6.0F, 256, 2, 1|2 |64|128 , 200, 190, 255, 0, "Magnalium" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Aluminium, 2))), - Magnesite ( 908, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 250, 250, 180, 0, "Magnesite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3))), - Magnetite ( 870, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 30, 30, 30, 0, "Magnetite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Iron, 3), new MaterialStack(Oxygen, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - Methane ( 715, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 255, 255, 255, 0, "Methane" , 1, 45, -1, 0, F, F, 3, 1, 1, Dyes.dyeMagenta , 1, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 4))), - Molybdenite ( 942, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 25, 25, 25, 0, "Molybdenite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Molybdenum, 1), new MaterialStack(Sulfur, 2))), // MoS2 (also source of Re) - Nichrome ( 311, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |64 , 205, 206, 246, 0, "Nichrome" , 0, 0, 2700, 2700, T, F, 1, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Nickel, 4), new MaterialStack(Chrome, 1))), - NiobiumNitride ( 359, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 , 29, 41, 29, 0, "Niobium Nitride" , 0, 0, 2573, 2573, T, F, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Niobium, 1), new MaterialStack(Nitrogen, 1))), // Anti-Reflective Material - NiobiumTitanium ( 360, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 , 29, 29, 41, 0, "Niobium-Titanium" , 0, 0, 2800, 2800, T, F, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Niobium, 1), new MaterialStack(Titanium, 1))), - NitroCarbon ( 716, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 0, 75, 100, 0, "Nitro-Carbon" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Nitrogen, 1), new MaterialStack(Carbon, 1))), - NitrogenDioxide ( 717, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 100, 175, 255, 0, "Nitrogen Dioxide" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 2))), - Obsidian ( 804, TextureSet.SET_DULL , 1.0F, 0, 3, 1 , 80, 50, 100, 0, "Obsidian" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Iron, 1), new MaterialStack(Silicon, 2), new MaterialStack(Oxygen, 8))), - Phosphate ( 833, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8|16 , 255, 255, 0, 0, "Phosphate" , 0, 0, -1, 0, F, F, 2, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Phosphor, 1), new MaterialStack(Oxygen, 4))), - PigIron ( 307, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |8 |64 , 200, 180, 180, 0, "Pig Iron" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Iron, 1))), - Plastic ( 874, TextureSet.SET_DULL , 3.0F, 32, 1, 1|2 |64|128 , 200, 200, 200, 0, "Plastic" , 0, 0, 400, 0, F, F, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), - Powellite ( 883, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 255, 255, 0, 0, "Powellite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Molybdenum, 1), new MaterialStack(Oxygen, 4))), - Pumice ( 926, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 230, 185, 185, 0, "Pumice" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Stone, 1))), - Pyrite ( 834, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 150, 120, 40, 0, "Pyrite" , 0, 0, -1, 0, F, F, 2, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Sulfur, 2))), - Pyrolusite ( 943, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 150, 150, 170, 0, "Pyrolusite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLightGray , 1, Arrays.asList(new MaterialStack(Manganese, 1), new MaterialStack(Oxygen, 2))), - Pyrope ( 835, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 120, 50, 100, 0, "Pyrope" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyePurple , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), - RockSalt ( 944, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 240, 200, 200, 0, "Rock Salt" , 0, 0, -1, 0, F, F, 2, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Chlorine, 1))), - Rubber ( 880, TextureSet.SET_SHINY , 1.5F, 16, 0, 1|2 |64|128 , 0, 0, 0, 0, "Rubber" , 0, 0, 400, 0, F, F, 1, 1, 1, Dyes.dyeBlack , 0, Arrays.asList(new MaterialStack(Carbon, 5), new MaterialStack(Hydrogen, 8)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), - Ruby ( 502, TextureSet.SET_RUBY , 7.0F, 256, 2, 1 |4|8 |64 , 255, 100, 100, 127, "Ruby" , 0, 0, -1, 0, F, T, 5, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(Chrome, 1), new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), - Salt ( 817, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 250, 250, 250, 0, "Salt" , 0, 0, -1, 0, F, F, 2, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Chlorine, 1))), - Saltpeter ( 836, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 230, 230, 230, 0, "Saltpeter" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 3))), - SaltWater ( -1, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "Salt Water" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2))), - Sapphire ( 503, TextureSet.SET_GEM_VERTICAL , 7.0F, 256, 2, 1 |4|8 |64 , 100, 100, 200, 127, "Sapphire" , 0, 0, -1, 0, F, T, 5, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Scheelite ( 910, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 200, 140, 20, 0, "Scheelite" , 0, 0, 2500, 2500, F, F, 4, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Tungsten, 1), new MaterialStack(Calcium, 2), new MaterialStack(Oxygen, 4))), - SiliconDioxide ( 837, TextureSet.SET_QUARTZ , 1.0F, 0, 1, 1 |16 , 200, 200, 200, 0, "Silicon Dioxide" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLightGray , 1, Arrays.asList(new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 2))), - Snow ( 728, TextureSet.SET_FINE , 1.0F, 0, 0, 1| 16 , 250, 250, 250, 0, "Snow" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.GELUM, 1))), - Sodalite ( 525, TextureSet.SET_LAPIS , 1.0F, 0, 1, 1 |4|8 , 20, 20, 255, 0, "Sodalite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Sodium, 4), new MaterialStack(Chlorine, 1))), - SodiumPersulfate ( 718, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 255, 255, 255, 0, "Sodium Persulfate" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), - SodiumSulfide ( 719, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 255, 255, 255, 0, "Sodium Sulfide" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Sulfur, 1))), - SolderingAlloy ( 314, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 , 220, 220, 230, 0, "Soldering Alloy" , 0, 0, 400, 400, F, F, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Tin, 9), new MaterialStack(Antimony, 1))), - Spessartine ( 838, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 255, 100, 100, 0, "Spessartine" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Manganese, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), - Sphalerite ( 839, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Sphalerite" , 0, 0, -1, 0, F, F, 2, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Zinc, 1), new MaterialStack(Sulfur, 1))), - StainlessSteel ( 306, TextureSet.SET_SHINY , 7.0F, 480, 2, 1|2 |64|128 , 200, 200, 220, 0, "Stainless Steel" , 0, 0, -1, 1700, T, F, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Iron, 6), new MaterialStack(Chrome, 1), new MaterialStack(Manganese, 1), new MaterialStack(Nickel, 1))), - Steel ( 305, TextureSet.SET_METALLIC , 6.0F, 512, 2, 1|2 |64|128 , 128, 128, 128, 0, "Steel" , 0, 0, 1811, 1000, T, F, 4, 51, 50, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Iron, 50), new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 1))), - Stibnite ( 945, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 70, 70, 70, 0, "Stibnite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Antimony, 2), new MaterialStack(Sulfur, 3))), - SulfuricAcid ( 720, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 255, 128, 0, 0, "Sulfuric Acid" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), - Tanzanite ( 508, TextureSet.SET_GEM_VERTICAL , 7.0F, 256, 2, 1 |4|8 |64 , 64, 0, 200, 127, "Tanzanite" , 0, 0, -1, 0, F, T, 5, 1, 1, Dyes.dyePurple , 1, Arrays.asList(new MaterialStack(Calcium, 2), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Hydrogen, 1), new MaterialStack(Oxygen, 13)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Tetrahedrite ( 840, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 200, 32, 0, 0, "Tetrahedrite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Copper, 3), new MaterialStack(Antimony, 1), new MaterialStack(Sulfur, 3), new MaterialStack(Iron, 1))), //Cu3SbS3 + x(Fe,Zn)6Sb2S9 - TinAlloy ( 363, TextureSet.SET_METALLIC , 6.5F, 96, 2, 1|2 |64|128 , 200, 200, 200, 0, "Tin Alloy" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), - Topaz ( 507, TextureSet.SET_GEM_HORIZONTAL , 7.0F, 256, 3, 1 |4|8 |64 , 255, 128, 0, 127, "Topaz" , 0, 0, -1, 0, F, T, 5, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Fluorine, 2), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 6)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), - Tungstate ( 841, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 55, 50, 35, 0, "Tungstate" , 0, 0, 2500, 2500, T, F, 4, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Tungsten, 1), new MaterialStack(Lithium, 2), new MaterialStack(Oxygen, 4))), - Ultimet ( 344, TextureSet.SET_SHINY , 6.0F, 512, 3, 1|2 |64|128 , 180, 180, 230, 0, "Ultimet" , 0, 0, 2700, 2700, T, F, 1, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Cobalt, 5), new MaterialStack(Chrome, 2), new MaterialStack(Nickel, 1), new MaterialStack(Molybdenum, 1))), // 54% Cobalt, 26% Chromium, 9% Nickel, 5% Molybdenum, 3% Iron, 2% Tungsten, 0.8% Manganese, 0.3% Silicon, 0.08% Nitrogen and 0.06% Carbon - Uraninite ( 922, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 35, 35, 35, 0, "Uraninite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeLime , 2, Arrays.asList(new MaterialStack(Uranium, 1), new MaterialStack(Oxygen, 2))), - Uvarovite ( 842, TextureSet.SET_DIAMOND , 1.0F, 0, 2, 1 |8 , 180, 255, 180, 0, "Uvarovite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Chrome, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), - VanadiumGallium ( 357, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 , 128, 128, 140, 0, "Vanadium-Gallium" , 0, 0, 3000, 3000, T, F, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Vanadium, 3), new MaterialStack(Gallium, 1))), - Water ( 701, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "Water" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2))), - Wood ( 809, TextureSet.SET_WOOD , 2.0F, 16, 0, 1|2 |64|128 , 100, 50, 0, 0, "Wood" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBrown , 0, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 1), new MaterialStack(Hydrogen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2))), - WroughtIron ( 304, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |64|128 , 200, 180, 180, 0, "Wrought Iron" , 0, 0, 1811, 0, F, F, 3, 1, 1, Dyes.dyeLightGray , 2, Arrays.asList(new MaterialStack(Iron, 1))), - Wulfenite ( 882, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 255, 128, 0, 0, "Wulfenite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Lead, 1), new MaterialStack(Molybdenum, 1), new MaterialStack(Oxygen, 4))), - YellowLimonite ( 931, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 200, 200, 0, 0, "Yellow Limonite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Oxygen, 2))), // FeO(OH) + a bit Ni and Co - YttriumBariumCuprate( 358, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 , 80, 64, 70, 0, "Yttrium Barium Cuprate" , 0, 0, 1200, 1200, T, F, 1, 1, 1, Dyes.dyeGray , 0, Arrays.asList(new MaterialStack(Yttrium, 1), new MaterialStack(Barium, 2), new MaterialStack(Copper, 3), new MaterialStack(Oxygen, 7))), + Air ( -1, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 169, 208, 245, 240, "Air" , 0, 0, -1, 0, false, true , 1, 1, 1, Dyes.dyeLightBlue , 0, Arrays.asList(new MaterialStack(Nitrogen, 40), new MaterialStack(Oxygen, 11), new MaterialStack(Argon, 1))), + Almandine ( 820, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 255, 0, 0, 0, "Almandine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Iron, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), + Andradite ( 821, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 150, 120, 0, 0, "Andradite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Iron, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), + AnnealedCopper ( 345, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |128 , 255, 120, 20, 0, "Annealed Copper" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Copper, 1))), + Asbestos ( 946, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 230, 230, 230, 0, "Asbestos" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 9))), // Mg3Si2O5(OH)4 + Ash ( 815, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 150, 150, 150, 0, "Ashes" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , 2, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 1))), + BandedIron ( 917, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 145, 90, 90, 0, "Banded Iron" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 1, Arrays.asList(new MaterialStack(Iron, 2), new MaterialStack(Oxygen, 3))), + BatteryAlloy ( 315, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 , 156, 124, 160, 0, "Battery Alloy" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Lead, 4), new MaterialStack(Antimony, 1))), + Bauxite ( 822, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "Bauxite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBrown , 1, Arrays.asList(new MaterialStack(Titanium, 1), new MaterialStack(Aluminium, 16), new MaterialStack(Hydrogen, 10), new MaterialStack(Oxygen, 12))), + BlueTopaz ( 513, TextureSet.SET_GEM_HORIZONTAL , 7.0F, 256, 3, 1 |4|8 |64 , 0, 0, 255, 127, "Blue Topaz" , 0, 0, -1, 0, false, true , 3, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Fluorine, 2), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 6)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), + Bone ( 806, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 250, 250, 250, 0, "Bone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Calcium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.MORTUUS, 2), new TC_AspectStack(TC_Aspects.CORPUS, 1))), + Brass ( 301, TextureSet.SET_METALLIC , 7.0F, 96, 1, 1|2 |64|128 , 255, 180, 0, 0, "Brass" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Zinc, 1), new MaterialStack(Copper, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), + Bronze ( 300, TextureSet.SET_METALLIC , 6.0F, 192, 2, 1|2 |64|128 , 255, 128, 0, 0, "Bronze" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Copper, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), + BrownLimonite ( 930, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "Brown Limonite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Oxygen, 2))), // FeO(OH) + Calcite ( 823, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 250, 230, 220, 0, "Calcite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3))), + Cassiterite ( 824, TextureSet.SET_METALLIC , 1.0F, 0, 1, 8 , 220, 220, 220, 0, "Cassiterite" , 0, 0, -1, 0, false, false, 4, 3, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Oxygen, 2))), + CassiteriteSand ( 937, TextureSet.SET_SAND , 1.0F, 0, 1, 8 , 220, 220, 220, 0, "Cassiterite Sand" , 0, 0, -1, 0, false, false, 4, 3, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Oxygen, 2))), + Celestine ( 913, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 200, 205, 240, 0, "Celestine" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , 1, Arrays.asList(new MaterialStack(Strontium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), + Chalcopyrite ( 855, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 160, 120, 40, 0, "Chalcopyrite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Iron, 1), new MaterialStack(Sulfur, 2))), + Chalk ( 856, TextureSet.SET_FINE , 1.0F, 0, 2, 1 , 250, 250, 250, 0, "Chalk" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3))), + Charcoal ( 536, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |4 , 100, 70, 70, 0, "Charcoal" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2))), + Chromite ( 825, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 35, 20, 15, 0, "Chromite" , 0, 0, 1700, 1700, true , false, 6, 1, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Chrome, 2), new MaterialStack(Oxygen, 4))), + ChromiumDioxide ( 361, TextureSet.SET_DULL , 11.0F, 256, 3, 1|2 , 230, 200, 200, 0, "Chromium Dioxide" , 0, 0, 650, 650, false, false, 5, 3, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(Chrome, 1), new MaterialStack(Oxygen, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), + Cinnabar ( 826, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 150, 0, 0, 0, "Cinnabar" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Mercury, 1), new MaterialStack(Sulfur, 1))), + Clay ( 805, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 200, 200, 220, 0, "Clay" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Lithium, 1), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 2))), + Coal ( 535, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |4|8 , 70, 70, 70, 0, "Coal" , 0, 0, -1, 0, false, false, 2, 2, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2))), + Cobaltite ( 827, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 80, 80, 250, 0, "Cobaltite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Cobalt, 1), new MaterialStack(Arsenic, 1), new MaterialStack(Sulfur, 1))), + Cooperite ( 828, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 255, 255, 200, 0, "Sheldonite" , 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Platinum, 3), new MaterialStack(Nickel, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Palladium, 1))), + Cupronickel ( 310, TextureSet.SET_METALLIC , 6.0F, 64, 1, 1|2 |64 , 227, 150, 128, 0, "Cupronickel" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Nickel, 1))), + DarkAsh ( 816, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 50, 50, 50, 0, "Dark Ashes" , 0, 0, -1, 0, false, false, 1, 2, 1, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1), new TC_AspectStack(TC_Aspects.PERDITIO, 1))), + DeepIron ( 829, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |8 |64 , 150, 140, 140, 0, "Deep Iron" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), + Diamond ( 500, TextureSet.SET_DIAMOND , 8.0F, 1280, 3, 1 |4|8 |64|128 , 200, 255, 255, 127, "Diamond" , 0, 0, -1, 0, false, true , 5, 64, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3), new TC_AspectStack(TC_Aspects.LUCRUM, 4))), + Electrum ( 303, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |64|128 , 255, 255, 100, 0, "Electrum" , 0, 0, -1, 0, false, false, 4, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Silver, 1), new MaterialStack(Gold, 1))), + Emerald ( 501, TextureSet.SET_EMERALD , 7.0F, 256, 2, 1 |4|8 |64 , 80, 255, 80, 127, "Emerald" , 0, 0, -1, 0, false, true , 5, 1, 1, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(Beryllium, 3), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 6), new MaterialStack(Oxygen, 18)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3), new TC_AspectStack(TC_Aspects.LUCRUM, 5))), + FreshWater ( -1, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "Fresh Water" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2))), + Galena ( 830, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 100, 60, 100, 0, "Galena" , 0, 0, -1, 0, false, false, 4, 1, 1, Dyes.dyePurple , 1, Arrays.asList(new MaterialStack(Lead, 3), new MaterialStack(Silver, 3), new MaterialStack(Sulfur, 2))), + Garnierite ( 906, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 50, 200, 70, 0, "Garnierite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Nickel, 1), new MaterialStack(Oxygen, 1))), + Glyceryl ( 714, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 0, 150, 150, 0, "Glyceryl Trinitrate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 5), new MaterialStack(Nitrogen, 3), new MaterialStack(Oxygen, 9))), + GreenSapphire ( 504, TextureSet.SET_GEM_HORIZONTAL , 7.0F, 256, 2, 1 |4|8 |64 , 100, 200, 130, 127, "Green Sapphire" , 0, 0, -1, 0, false, true , 5, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), + Grossular ( 831, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "Grossular" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), + HolyWater ( 729, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "Holy Water" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2), new TC_AspectStack(TC_Aspects.AURAM, 1))), + Ice ( 702, TextureSet.SET_SHINY , 1.0F, 0, 0, 1| 16 , 200, 200, 255, 0, "Ice" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.GELUM, 2))), + Ilmenite ( 918, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 70, 55, 50, 0, "Ilmenite" , 0, 0, -1, 0, false, false, 1, 2, 1, Dyes.dyePurple , 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Titanium, 1), new MaterialStack(Oxygen, 3))), + Invar ( 302, TextureSet.SET_METALLIC , 6.0F, 256, 2, 1|2 |64|128 , 180, 180, 120, 0, "Invar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Iron, 2), new MaterialStack(Nickel, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.GELUM, 1))), + IronCompressed ( -1, TextureSet.SET_METALLIC , 7.0F, 96, 1, 1|2 |64|128 , 128, 128, 128, 0, "Compressed Iron" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Iron, 1))), + Kanthal ( 312, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |64 , 194, 210, 223, 0, "Kanthal" , 0, 0, 1800, 1800, true , false, 1, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Chrome, 1))), + Lazurite ( 524, TextureSet.SET_LAPIS , 1.0F, 0, 1, 1 |4|8 , 100, 120, 255, 0, "Lazurite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Aluminium, 6), new MaterialStack(Silicon, 6), new MaterialStack(Calcium, 8), new MaterialStack(Sodium, 8))), + Magnalium ( 313, TextureSet.SET_DULL , 6.0F, 256, 2, 1|2 |64|128 , 200, 190, 255, 0, "Magnalium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Aluminium, 2))), + Magnesite ( 908, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 250, 250, 180, 0, "Magnesite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3))), + Magnetite ( 870, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 30, 30, 30, 0, "Magnetite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Iron, 3), new MaterialStack(Oxygen, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), + Methane ( 715, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 255, 255, 255, 0, "Methane" , 1, 45, -1, 0, false, false, 3, 1, 1, Dyes.dyeMagenta , 1, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 4))), + Molybdenite ( 942, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 25, 25, 25, 0, "Molybdenite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Molybdenum, 1), new MaterialStack(Sulfur, 2))), // MoS2 (also source of Re) + Nichrome ( 311, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |64 , 205, 206, 246, 0, "Nichrome" , 0, 0, 2700, 2700, true , false, 1, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Nickel, 4), new MaterialStack(Chrome, 1))), + NiobiumNitride ( 359, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 , 29, 41, 29, 0, "Niobium Nitride" , 0, 0, 2573, 2573, true , false, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Niobium, 1), new MaterialStack(Nitrogen, 1))), // Anti-Reflective Material + NiobiumTitanium ( 360, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 , 29, 29, 41, 0, "Niobium-Titanium" , 0, 0, 2800, 2800, true , false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Niobium, 1), new MaterialStack(Titanium, 1))), + NitroCarbon ( 716, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 0, 75, 100, 0, "Nitro-Carbon" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Nitrogen, 1), new MaterialStack(Carbon, 1))), + NitrogenDioxide ( 717, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 100, 175, 255, 0, "Nitrogen Dioxide" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 2))), + Obsidian ( 804, TextureSet.SET_DULL , 1.0F, 0, 3, 1 , 80, 50, 100, 0, "Obsidian" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Iron, 1), new MaterialStack(Silicon, 2), new MaterialStack(Oxygen, 8))), + Phosphate ( 833, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8|16 , 255, 255, 0, 0, "Phosphate" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Phosphor, 1), new MaterialStack(Oxygen, 4))), + PigIron ( 307, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |8 |64 , 200, 180, 180, 0, "Pig Iron" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Iron, 1))), + Plastic ( 874, TextureSet.SET_DULL , 3.0F, 32, 1, 1|2 |64|128 , 200, 200, 200, 0, "Plastic" , 0, 0, 400, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), + Powellite ( 883, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 255, 255, 0, 0, "Powellite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Molybdenum, 1), new MaterialStack(Oxygen, 4))), + Pumice ( 926, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 230, 185, 185, 0, "Pumice" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Stone, 1))), + Pyrite ( 834, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 150, 120, 40, 0, "Pyrite" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Sulfur, 2))), + Pyrolusite ( 943, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 150, 150, 170, 0, "Pyrolusite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , 1, Arrays.asList(new MaterialStack(Manganese, 1), new MaterialStack(Oxygen, 2))), + Pyrope ( 835, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 120, 50, 100, 0, "Pyrope" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyePurple , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), + RockSalt ( 944, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 240, 200, 200, 0, "Rock Salt" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Chlorine, 1))), + Rubber ( 880, TextureSet.SET_SHINY , 1.5F, 16, 0, 1|2 |64|128 , 0, 0, 0, 0, "Rubber" , 0, 0, 400, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 0, Arrays.asList(new MaterialStack(Carbon, 5), new MaterialStack(Hydrogen, 8)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), + Ruby ( 502, TextureSet.SET_RUBY , 7.0F, 256, 2, 1 |4|8 |64 , 255, 100, 100, 127, "Ruby" , 0, 0, -1, 0, false, true , 5, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(Chrome, 1), new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), + Salt ( 817, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 250, 250, 250, 0, "Salt" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Chlorine, 1))), + Saltpeter ( 836, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 230, 230, 230, 0, "Saltpeter" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 3))), + SaltWater ( -1, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "Salt Water" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2))), + Sapphire ( 503, TextureSet.SET_GEM_VERTICAL , 7.0F, 256, 2, 1 |4|8 |64 , 100, 100, 200, 127, "Sapphire" , 0, 0, -1, 0, false, true , 5, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), + Scheelite ( 910, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 200, 140, 20, 0, "Scheelite" , 0, 0, 2500, 2500, false, false, 4, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Tungsten, 1), new MaterialStack(Calcium, 2), new MaterialStack(Oxygen, 4))), + SiliconDioxide ( 837, TextureSet.SET_QUARTZ , 1.0F, 0, 1, 1 |16 , 200, 200, 200, 0, "Silicon Dioxide" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , 1, Arrays.asList(new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 2))), + Snow ( 728, TextureSet.SET_FINE , 1.0F, 0, 0, 1| 16 , 250, 250, 250, 0, "Snow" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.GELUM, 1))), + Sodalite ( 525, TextureSet.SET_LAPIS , 1.0F, 0, 1, 1 |4|8 , 20, 20, 255, 0, "Sodalite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Sodium, 4), new MaterialStack(Chlorine, 1))), + SodiumPersulfate ( 718, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 255, 255, 255, 0, "Sodium Persulfate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), + SodiumSulfide ( 719, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 255, 255, 255, 0, "Sodium Sulfide" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Sulfur, 1))), + SolderingAlloy ( 314, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 , 220, 220, 230, 0, "Soldering Alloy" , 0, 0, 400, 400, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Tin, 9), new MaterialStack(Antimony, 1))), + Spessartine ( 838, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 255, 100, 100, 0, "Spessartine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Manganese, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), + Sphalerite ( 839, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Sphalerite" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Zinc, 1), new MaterialStack(Sulfur, 1))), + StainlessSteel ( 306, TextureSet.SET_SHINY , 7.0F, 480, 2, 1|2 |64|128 , 200, 200, 220, 0, "Stainless Steel" , 0, 0, -1, 1700, true , false, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Iron, 6), new MaterialStack(Chrome, 1), new MaterialStack(Manganese, 1), new MaterialStack(Nickel, 1))), + Steel ( 305, TextureSet.SET_METALLIC , 6.0F, 512, 2, 1|2 |64|128 , 128, 128, 128, 0, "Steel" , 0, 0, 1811, 1000, true , false, 4, 51, 50, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Iron, 50), new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 1))), + Stibnite ( 945, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 70, 70, 70, 0, "Stibnite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Antimony, 2), new MaterialStack(Sulfur, 3))), + SulfuricAcid ( 720, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 255, 128, 0, 0, "Sulfuric Acid" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), + Tanzanite ( 508, TextureSet.SET_GEM_VERTICAL , 7.0F, 256, 2, 1 |4|8 |64 , 64, 0, 200, 127, "Tanzanite" , 0, 0, -1, 0, false, true , 5, 1, 1, Dyes.dyePurple , 1, Arrays.asList(new MaterialStack(Calcium, 2), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Hydrogen, 1), new MaterialStack(Oxygen, 13)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), + Tetrahedrite ( 840, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 200, 32, 0, 0, "Tetrahedrite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Copper, 3), new MaterialStack(Antimony, 1), new MaterialStack(Sulfur, 3), new MaterialStack(Iron, 1))), //Cu3SbS3 + x(Fe,Zn)6Sb2S9 + TinAlloy ( 363, TextureSet.SET_METALLIC , 6.5F, 96, 2, 1|2 |64|128 , 200, 200, 200, 0, "Tin Alloy" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), + Topaz ( 507, TextureSet.SET_GEM_HORIZONTAL , 7.0F, 256, 3, 1 |4|8 |64 , 255, 128, 0, 127, "Topaz" , 0, 0, -1, 0, false, true , 5, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Fluorine, 2), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 6)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), + Tungstate ( 841, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 55, 50, 35, 0, "Tungstate" , 0, 0, 2500, 2500, true , false, 4, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Tungsten, 1), new MaterialStack(Lithium, 2), new MaterialStack(Oxygen, 4))), + Ultimet ( 344, TextureSet.SET_SHINY , 6.0F, 512, 3, 1|2 |64|128 , 180, 180, 230, 0, "Ultimet" , 0, 0, 2700, 2700, true , false, 1, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Cobalt, 5), new MaterialStack(Chrome, 2), new MaterialStack(Nickel, 1), new MaterialStack(Molybdenum, 1))), // 54% Cobalt, 26% Chromium, 9% Nickel, 5% Molybdenum, 3% Iron, 2% Tungsten, 0.8% Manganese, 0.3% Silicon, 0.08% Nitrogen and 0.06% Carbon + Uraninite ( 922, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 35, 35, 35, 0, "Uraninite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , 2, Arrays.asList(new MaterialStack(Uranium, 1), new MaterialStack(Oxygen, 2))), + Uvarovite ( 842, TextureSet.SET_DIAMOND , 1.0F, 0, 2, 1 |8 , 180, 255, 180, 0, "Uvarovite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Chrome, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), + VanadiumGallium ( 357, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 , 128, 128, 140, 0, "Vanadium-Gallium" , 0, 0, 3000, 3000, true , false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Vanadium, 3), new MaterialStack(Gallium, 1))), + Water ( 701, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "Water" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2))), + Wood ( 809, TextureSet.SET_WOOD , 2.0F, 16, 0, 1|2 |64|128 , 100, 50, 0, 0, "Wood" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 0, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 1), new MaterialStack(Hydrogen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2))), + WroughtIron ( 304, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |64|128 , 200, 180, 180, 0, "Wrought Iron" , 0, 0, 1811, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , 2, Arrays.asList(new MaterialStack(Iron, 1))), + Wulfenite ( 882, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 255, 128, 0, 0, "Wulfenite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Lead, 1), new MaterialStack(Molybdenum, 1), new MaterialStack(Oxygen, 4))), + YellowLimonite ( 931, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 200, 200, 0, 0, "Yellow Limonite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Oxygen, 2))), // FeO(OH) + a bit Ni and Co + YttriumBariumCuprate( 358, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 , 80, 64, 70, 0, "Yttrium Barium Cuprate" , 0, 0, 1200, 1200, true , false, 1, 1, 1, Dyes.dyeGray , 0, Arrays.asList(new MaterialStack(Yttrium, 1), new MaterialStack(Barium, 2), new MaterialStack(Copper, 3), new MaterialStack(Oxygen, 7))), /** * Second Degree Compounds */ - WoodSealed ( 889, TextureSet.SET_WOOD , 3.0F, 24, 0, 1|2 |64|128 , 80, 40, 0, 0, "Sealed Wood" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBrown , 0, Arrays.asList(new MaterialStack(Wood, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2), new TC_AspectStack(TC_Aspects.FABRICO, 1))), - LiveRoot ( 832, TextureSet.SET_WOOD , 1.0F, 0, 1, 1 , 220, 200, 0, 0, "Liveroot" , 5, 16, -1, 0, F, F, 2, 4, 3, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Wood, 3), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2), new TC_AspectStack(TC_Aspects.VICTUS, 2), new TC_AspectStack(TC_Aspects.PRAECANTIO, 1))), - IronWood ( 338, TextureSet.SET_WOOD , 6.0F, 384, 2, 1|2 |64|128 , 150, 140, 110, 0, "Ironwood" , 5, 8, -1, 0, F, F, 2, 19, 18, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Iron, 9), new MaterialStack(LiveRoot, 9), new MaterialStack(Gold, 1))), - Glass ( 890, TextureSet.SET_GLASS , 1.0F, 4, 0, 1 |4 , 250, 250, 250, 220, "Glass" , 0, 0, 1500, 0, F, T, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2))), - Perlite ( 925, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 30, 20, 30, 0, "Perlite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Obsidian, 2), new MaterialStack(Water, 1))), - Borax ( 941, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 250, 250, 250, 0, "Borax" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Boron, 4), new MaterialStack(Water, 10), new MaterialStack(Oxygen, 7))), - Lignite ( 538, TextureSet.SET_LIGNITE , 1.0F, 0, 0, 1 |4|8 , 100, 70, 70, 0, "Lignite Coal" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Carbon, 2), new MaterialStack(Water, 4), new MaterialStack(DarkAsh, 1))), - Olivine ( 505, TextureSet.SET_RUBY , 7.0F, 256, 2, 1 |4|8 |64 , 150, 255, 150, 127, "Olivine" , 0, 0, -1, 0, F, T, 5, 1, 1, Dyes.dyeLime , 1, Arrays.asList(new MaterialStack(Magnesium, 2), new MaterialStack(Iron, 1), new MaterialStack(SiliconDioxide, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 2))), - Opal ( 510, TextureSet.SET_OPAL , 7.0F, 256, 2, 1 |4|8 |64 , 0, 0, 255, 0, "Opal" , 0, 0, -1, 0, F, T, 3, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Amethyst ( 509, TextureSet.SET_FLINT , 7.0F, 256, 3, 1 |4|8 |64 , 210, 50, 210, 127, "Amethyst" , 0, 0, -1, 0, F, T, 3, 1, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(SiliconDioxide, 4), new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), - Redstone ( 810, TextureSet.SET_ROUGH , 1.0F, 0, 2, 1 |8 , 200, 0, 0, 0, "Redstone" , 0, 0, 500, 0, F, F, 3, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Silicon, 1), new MaterialStack(Pyrite, 5), new MaterialStack(Ruby, 1), new MaterialStack(Mercury, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 2))), - Lapis ( 526, TextureSet.SET_LAPIS , 1.0F, 0, 1, 1 |4|8 , 70, 70, 220, 0, "Lapis" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeBlue , 2, Arrays.asList(new MaterialStack(Lazurite, 12), new MaterialStack(Sodalite, 2), new MaterialStack(Pyrite, 1), new MaterialStack(Calcite, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.SENSUS, 1))), - Blaze ( 801, TextureSet.SET_POWDER , 2.0F, 16, 1, 1 |64 , 255, 200, 0, 0, "Blaze" , 0, 0, 6400, 0, F, F, 2, 3, 2, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(DarkAsh, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 2), new TC_AspectStack(TC_Aspects.IGNIS, 4))), - EnderPearl ( 532, TextureSet.SET_SHINY , 1.0F, 16, 1, 1 |4 , 108, 220, 200, 0, "Enderpearl" , 0, 0, -1, 0, F, F, 1, 16, 10, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(Beryllium, 1), new MaterialStack(Potassium, 4), new MaterialStack(Nitrogen, 5), new MaterialStack(Magic, 6)), Arrays.asList(new TC_AspectStack(TC_Aspects.ALIENIS, 4), new TC_AspectStack(TC_Aspects.ITER, 4), new TC_AspectStack(TC_Aspects.PRAECANTIO, 2))), - EnderEye ( 533, TextureSet.SET_SHINY , 1.0F, 16, 1, 1 |4 , 160, 250, 230, 0, "Endereye" , 5, 10, -1, 0, F, F, 1, 2, 1, Dyes.dyeGreen , 2, Arrays.asList(new MaterialStack(EnderPearl, 1), new MaterialStack(Blaze, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.SENSUS, 4), new TC_AspectStack(TC_Aspects.ALIENIS, 4), new TC_AspectStack(TC_Aspects.ITER, 4), new TC_AspectStack(TC_Aspects.PRAECANTIO, 3), new TC_AspectStack(TC_Aspects.IGNIS, 2))), - Flint ( 802, TextureSet.SET_FLINT , 2.5F, 64, 1, 1 |64 , 0, 32, 64, 0, "Flint" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), - Diatomite ( 948, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 225, 225, 225, 0, "Diatomite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Flint, 8), new MaterialStack(BandedIron, 1), new MaterialStack(Sapphire, 1))), - VolcanicAsh ( 940, TextureSet.SET_FLINT , 1.0F, 0, 0, 1 , 60, 50, 50, 0, "Volcanic Ashes" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Flint, 6), new MaterialStack(Iron, 1), new MaterialStack(Magnesium, 1))), - Niter ( 531, TextureSet.SET_FLINT , 1.0F, 0, 1, 1 |4|8 , 255, 200, 200, 0, "Niter" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Saltpeter, 1))), - Pyrotheum ( 843, TextureSet.SET_FIERY , 1.0F, 0, 1, 1 , 255, 128, 0, 0, "Pyrotheum" , 2, 62, -1, 0, F, F, 2, 3, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Coal, 1), new MaterialStack(Redstone, 1), new MaterialStack(Blaze, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 2), new TC_AspectStack(TC_Aspects.IGNIS, 1))), - HydratedCoal ( 818, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 70, 70, 100, 0, "Hydrated Coal" , 0, 0, -1, 0, F, F, 1, 9, 8, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Coal, 8), new MaterialStack(Water, 1))), - Apatite ( 530, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8 , 200, 200, 255, 0, "Apatite" , 0, 0, -1, 0, F, F, 2, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Calcium, 5), new MaterialStack(Phosphate, 3), new MaterialStack(Chlorine, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.MESSIS, 2))), - Alumite ( -1, TextureSet.SET_METALLIC , 1.5F, 64, 0, 1|2 |64 , 255, 255, 255, 0, "Alumite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Aluminium, 5), new MaterialStack(Iron, 2), new MaterialStack(Obsidian, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.STRONTIO, 2))), - Manyullyn ( -1, TextureSet.SET_METALLIC , 1.5F, 64, 0, 1|2 |64 , 255, 255, 255, 0, "Manyullyn" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Cobalt, 1), new MaterialStack(Aredrite, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.STRONTIO, 2))), - ShadowIron ( 336, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |8 |64 , 120, 120, 120, 0, "Shadowiron" , 0, 0, -1, 0, F, F, 3, 4, 3, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Iron, 3), new MaterialStack(Magic, 1))), - ShadowSteel ( 337, TextureSet.SET_METALLIC , 6.0F, 768, 2, 1|2 |64 , 90, 90, 90, 0, "Shadowsteel" , 0, 0, -1, 1700, T, F, 4, 4, 3, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Steel, 3), new MaterialStack(Magic, 1))), - Steeleaf ( 339, TextureSet.SET_LEAF , 8.0F, 768, 3, 1|2 |64|128 , 50, 127, 50, 0, "Steeleaf" , 5, 24, -1, 0, F, F, 4, 1, 1, Dyes.dyeGreen , 2, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.HERBA, 2), new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.PRAECANTIO, 1))), - Knightmetal ( 362, TextureSet.SET_METALLIC , 8.0F, 1024, 3, 1|2 |64|128 , 210, 240, 200, 0, "Knightmetal" , 5, 24, -1, 0, F, F, 4, 1, 1, Dyes.dyeLime , 2, Arrays.asList(new MaterialStack(Steel, 2), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 1), new TC_AspectStack(TC_Aspects.METALLUM, 2))), - SterlingSilver ( 350, TextureSet.SET_SHINY , 13.0F, 128, 2, 1|2 |64|128 , 250, 220, 225, 0, "Sterling Silver" , 0, 0, -1, 1700, T, F, 4, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Silver, 4))), - RoseGold ( 351, TextureSet.SET_SHINY , 14.0F, 128, 2, 1|2 |64|128 , 255, 230, 30, 0, "Rose Gold" , 0, 0, -1, 1600, T, F, 4, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Gold, 4))), - BlackBronze ( 352, TextureSet.SET_DULL , 12.0F, 256, 2, 1|2 |64|128 , 100, 50, 125, 0, "Black Bronze" , 0, 0, -1, 2000, T, F, 4, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Gold, 1), new MaterialStack(Silver, 1), new MaterialStack(Copper, 3))), - BismuthBronze ( 353, TextureSet.SET_DULL , 8.0F, 256, 2, 1|2 |64|128 , 100, 125, 125, 0, "Bismuth Bronze" , 0, 0, -1, 1100, T, F, 4, 1, 1, Dyes.dyeCyan , 2, Arrays.asList(new MaterialStack(Bismuth, 1), new MaterialStack(Zinc, 1), new MaterialStack(Copper, 3))), - BlackSteel ( 334, TextureSet.SET_METALLIC , 6.5F, 768, 2, 1|2 |64 , 100, 100, 100, 0, "Black Steel" , 0, 0, -1, 1200, T, F, 4, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Nickel, 1), new MaterialStack(BlackBronze, 1), new MaterialStack(Steel, 3))), - RedSteel ( 348, TextureSet.SET_METALLIC , 7.0F, 896, 2, 1|2 |64 , 140, 100, 100, 0, "Red Steel" , 0, 0, -1, 1300, T, F, 4, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(SterlingSilver, 1), new MaterialStack(BismuthBronze, 1), new MaterialStack(Steel, 2), new MaterialStack(BlackSteel, 4))), - BlueSteel ( 349, TextureSet.SET_METALLIC , 7.5F, 1024, 2, 1|2 |64 , 100, 100, 140, 0, "Blue Steel" , 0, 0, -1, 1400, T, F, 4, 1, 1, Dyes.dyeBlue , 2, Arrays.asList(new MaterialStack(RoseGold, 1), new MaterialStack(Brass, 1), new MaterialStack(Steel, 2), new MaterialStack(BlackSteel, 4))), - DamascusSteel ( 335, TextureSet.SET_METALLIC , 8.0F, 1280, 2, 1|2 |64 , 110, 110, 110, 0, "Damascus Steel" , 0, 0, 2000, 1500, T, F, 4, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Steel, 1))), - TungstenSteel ( 316, TextureSet.SET_METALLIC , 10.0F, 5120, 4, 1|2 |64|128 , 100, 100, 160, 0, "Tungstensteel" , 0, 0, -1, 3000, T, F, 4, 1, 1, Dyes.dyeBlue , 2, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Tungsten, 1))), - NitroCoalFuel ( -1, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 50, 70, 50, 0, "Nitro-Coalfuel" , 0, 48, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlack , 0, Arrays.asList(new MaterialStack(Glyceryl, 1), new MaterialStack(CoalFuel, 4))), - NitroFuel ( 709, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 200, 255, 0, 0, "Nitro-Diesel" , 0, 384, -1, 0, F, F, 1, 1, 1, Dyes.dyeLime , 0, Arrays.asList(new MaterialStack(Glyceryl, 1), new MaterialStack(Fuel, 4))), - AstralSilver ( 333, TextureSet.SET_SHINY , 10.0F, 64, 2, 1|2 |8 |64 , 230, 230, 255, 0, "Astral Silver" , 0, 0, -1, 0, F, F, 4, 3, 2, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Silver, 2), new MaterialStack(Magic, 1))), - Midasium ( 332, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |64 , 255, 200, 40, 0, "Midasium" , 0, 0, -1, 0, F, F, 4, 3, 2, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Gold, 2), new MaterialStack(Magic, 1))), - Mithril ( 331, TextureSet.SET_SHINY , 14.0F, 64, 3, 1|2 |8 |64 , 255, 255, 210, 0, "Mithril" , 0, 0, -1, 0, F, F, 4, 3, 2, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Platinum, 2), new MaterialStack(Magic, 1))), - BlueAlloy ( 309, TextureSet.SET_DULL , 1.0F, 0, 0, 1|2 , 100, 180, 255, 0, "Blue Alloy" , 0, 0, -1, 0, F, F, 3, 5, 1, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Silver, 1), new MaterialStack(Nikolite, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 3))), - RedAlloy ( 308, TextureSet.SET_DULL , 1.0F, 0, 0, 1|2 , 200, 0, 0, 0, "Red Alloy" , 0, 0, -1, 0, F, F, 3, 5, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Metal, 1), new MaterialStack(Redstone, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 3))), - CobaltBrass ( 343, TextureSet.SET_METALLIC , 8.0F, 256, 2, 1|2 |64|128 , 180, 180, 160, 0, "Cobalt Brass" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Brass, 7), new MaterialStack(Aluminium, 1), new MaterialStack(Cobalt, 1))), - Phosphorus ( 534, TextureSet.SET_FLINT , 1.0F, 0, 2, 1 |4|8|16 , 255, 255, 0, 0, "Phosphorus" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Phosphate, 2))), - Basalt ( 844, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 30, 20, 20, 0, "Basalt" , 0, 0, -1, 0, F, F, 2, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Olivine, 1), new MaterialStack(Calcite, 3), new MaterialStack(Flint, 8), new MaterialStack(DarkAsh, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.TENEBRAE, 1))), - GarnetRed ( 527, TextureSet.SET_RUBY , 7.0F, 128, 2, 1 |4|8 |64 , 200, 80, 80, 127, "Red Garnet" , 0, 0, -1, 0, F, T, 4, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Pyrope, 3), new MaterialStack(Almandine, 5), new MaterialStack(Spessartine, 8)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))), - GarnetYellow ( 528, TextureSet.SET_RUBY , 7.0F, 128, 2, 1 |4|8 |64 , 200, 200, 80, 127, "Yellow Garnet" , 0, 0, -1, 0, F, T, 4, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Andradite, 5), new MaterialStack(Grossular, 8), new MaterialStack(Uvarovite, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Marble ( 845, TextureSet.SET_FINE , 1.0F, 0, 1, 1 , 200, 200, 200, 0, "Marble" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Calcite, 7)), Arrays.asList(new TC_AspectStack(TC_Aspects.PERFODIO, 1))), - Sugar ( 803, TextureSet.SET_FINE , 1.0F, 0, 1, 1 , 250, 250, 250, 0, "Sugar" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Carbon, 2), new MaterialStack(Water, 5), new MaterialStack(Oxygen, 25)), Arrays.asList(new TC_AspectStack(TC_Aspects.HERBA, 1), new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.AER, 1))), - Thaumium ( 330, TextureSet.SET_METALLIC , 12.0F, 256, 3, 1|2 |64|128 , 150, 100, 200, 0, "Thaumium" , 0, 0, -1, 0, F, F, 5, 2, 1, Dyes.dyePurple , 0, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.PRAECANTIO, 1))), - Vinteum ( 529, TextureSet.SET_EMERALD , 10.0F, 128, 3, 1 |4|8 |64 , 100, 200, 255, 0, "Vinteum" , 5, 32, -1, 0, F, F, 4, 1, 1, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.PRAECANTIO, 1))), - Vis ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, 0 , 128, 0, 255, 0, "Vis" , 5, 32, -1, 0, F, F, 1, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AURAM, 2), new TC_AspectStack(TC_Aspects.PRAECANTIO, 1))), - Redrock ( 846, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 255, 80, 50, 0, "Redrock" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Calcite, 2), new MaterialStack(Flint, 1), new MaterialStack(Clay, 1))), - PotassiumFeldspar ( 847, TextureSet.SET_FINE , 1.0F, 0, 1, 1 , 120, 40, 40, 0, "Potassium Feldspar" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 8))), - Biotite ( 848, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 , 20, 30, 20, 0, "Biotite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 3), new MaterialStack(Aluminium, 3), new MaterialStack(Fluorine, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 10))), - GraniteBlack ( 849, TextureSet.SET_ROUGH , 4.0F, 64, 3, 1 |64|128 , 10, 10, 10, 0, "Black Granite" , 0, 0, -1, 0, F, F, 0, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(SiliconDioxide, 4), new MaterialStack(Biotite, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), - GraniteRed ( 850, TextureSet.SET_ROUGH , 4.0F, 64, 3, 1 |64|128 , 255, 0, 128, 0, "Red Granite" , 0, 0, -1, 0, F, F, 0, 1, 1, Dyes.dyeMagenta , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(PotassiumFeldspar, 1), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), - Chrysotile ( 912, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 110, 140, 110, 0, "Chrysotile" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Asbestos, 1))), - Realgar ( 555, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 140, 100, 100, 0, "Realgar" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Arsenic, 4), new MaterialStack(Sulfur,4))), - VanadiumMagnetite ( 923, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 35, 35, 60, 0, "Vanadium Magnetite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(Vanadium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), // Mixture of Fe3O4 and V2O5 - BasalticMineralSand ( 935, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 40, 50, 40, 0, "Basaltic Mineral Sand" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(Basalt, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - GraniticMineralSand ( 936, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 40, 60, 60, 0, "Granitic Mineral Sand" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(GraniteBlack, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - GarnetSand ( 938, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "Garnet Sand" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(GarnetRed, 1), new MaterialStack(GarnetYellow, 1))), - QuartzSand ( 939, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 200, 200, 200, 0, "Quartz Sand" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(CertusQuartz, 1), new MaterialStack(Quartzite, 1))), - Bastnasite ( 905, TextureSet.SET_FINE , 1.0F, 0, 2, 1 |8 , 200, 110, 45, 0, "Bastnasite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Cerium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Fluorine, 1), new MaterialStack(Oxygen, 3))), // (Ce, La, Y)CO3F - Pentlandite ( 909, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 165, 150, 5, 0, "Pentlandite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Nickel, 9), new MaterialStack(Sulfur, 8))), // (Fe,Ni)9S8 - Spodumene ( 920, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 190, 170, 170, 0, "Spodumene" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Lithium, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Silicon, 2), new MaterialStack(Oxygen, 6))), // LiAl(SiO3)2 - Pollucite ( 919, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 210, 210, 0, "Pollucite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Caesium, 2), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 4), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 12))), // (Cs,Na)2Al2Si4O12 2H2O (also a source of Rb) - Tantalite ( 921, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 145, 80, 40, 0, "Tantalite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Manganese, 1), new MaterialStack(Tantalum, 2), new MaterialStack(Oxygen, 6))), // (Fe, Mn)Ta2O6 (also source of Nb) - Lepidolite ( 907, TextureSet.SET_FINE , 1.0F, 0, 2, 1 |8 , 240, 50, 140, 0, "Lepidolite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Lithium, 3), new MaterialStack(Aluminium, 4), new MaterialStack(Fluorine, 2), new MaterialStack(Oxygen, 10))), // K(Li,Al,Rb)3(Al,Si)4O10(F,OH)2 - Glauconite ( 933, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 130, 180, 60, 0, "Glauconite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 2), new MaterialStack(Aluminium, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // (K,Na)(Fe3+,Al,Mg)2(Si,Al)4O10(OH)2 - GlauconiteSand ( 949, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 130, 180, 60, 0, "Glauconite Sand" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 2), new MaterialStack(Aluminium, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // (K,Na)(Fe3+,Al,Mg)2(Si,Al)4O10(OH)2 - Vermiculite ( 932, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 200, 180, 15, 0, "Vermiculite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Iron, 3), new MaterialStack(Aluminium, 4), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Water, 4), new MaterialStack(Oxygen, 12))), // (Mg+2, Fe+2, Fe+3)3 [(AlSi)4O10] (OH)2 4H2O) - Bentonite ( 927, TextureSet.SET_ROUGH , 1.0F, 0, 2, 1 |8 , 245, 215, 210, 0, "Bentonite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Magnesium, 6), new MaterialStack(Silicon, 12), new MaterialStack(Hydrogen, 6), new MaterialStack(Water, 5), new MaterialStack(Oxygen, 36))), // (Na,Ca)0.33(Al,Mg)2(Si4O10)(OH)2 nH2O - FullersEarth ( 928, TextureSet.SET_FINE , 1.0F, 0, 2, 1 |8 , 160, 160, 120, 0, "Fullers Earth" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 1), new MaterialStack(Water, 4), new MaterialStack(Oxygen, 11))), // (Mg,Al)2Si4O10(OH) 4(H2O) - Pitchblende ( 873, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 200, 210, 0, 0, "Pitchblende" , 0, 0, -1, 0, F, F, 5, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Uraninite, 3), new MaterialStack(Thorium, 1), new MaterialStack(Lead, 1))), - Monazite ( 520, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8 , 50, 70, 50, 0, "Monazite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(RareEarth, 1), new MaterialStack(Phosphate, 1))), // Wikipedia: (Ce, La, Nd, Th, Sm, Gd)PO4 Monazite also smelt-extract to Helium, it is brown like the rare earth Item Monazite sand deposits are inevitably of the monazite-(Ce) composition. Typically, the lanthanides in such monazites contain about 4548% cerium, about 24% lanthanum, about 17% neodymium, about 5% praseodymium, and minor quantities of samarium, gadolinium, and yttrium. Europium concentrations tend to be low, about 0.05% Thorium content of monazite is variable and sometimes can be up to 2030% - Malachite ( 871, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 5, 95, 5, 0, "Malachite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(Copper, 2), new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 5))), // Cu2CO3(OH)2 - Mirabilite ( 900, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 250, 210, 0, "Mirabilite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Sulfur, 1), new MaterialStack(Water, 10), new MaterialStack(Oxygen, 4))), // Na2SO4 10H2O - Mica ( 901, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 195, 195, 205, 0, "Mica" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Fluorine, 2), new MaterialStack(Oxygen, 10))), // KAl2(AlSi3O10)(F,OH)2 - Trona ( 903, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 135, 135, 95, 0, "Trona" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Sodium, 3), new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 1), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 6))), // Na3(CO3)(HCO3) 2H2O - Barite ( 904, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 230, 235, 255, 0, "Barite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Barium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), - Gypsum ( 934, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 230, 230, 250, 0, "Gypsum" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 4))), // CaSO4 2H2O - Alunite ( 911, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 225, 180, 65, 0, "Alunite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 14))), // KAl3(SO4)2(OH)6 - Dolomite ( 914, TextureSet.SET_FLINT , 1.0F, 0, 1, 1 |8 , 225, 205, 205, 0, "Dolomite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Magnesium, 1), new MaterialStack(Carbon, 2), new MaterialStack(Oxygen, 6))), // CaMg(CO3)2 - Wollastonite ( 915, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 240, 240, 0, "Wollastonite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 3))), // CaSiO3 - Zeolite ( 916, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 230, 230, 0, "Zeolite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Calcium, 4), new MaterialStack(Silicon, 27), new MaterialStack(Aluminium, 9), new MaterialStack(Water, 28), new MaterialStack(Oxygen, 72))), // NaCa4(Si27Al9)O72 28(H2O) - Kyanite ( 924, TextureSet.SET_FLINT , 1.0F, 0, 2, 1 |8 , 110, 110, 250, 0, "Kyanite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 5))), // Al2SiO5 - Kaolinite ( 929, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 245, 235, 235, 0, "Kaolinite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 9))), // Al2Si2O5(OH)4 - Talc ( 902, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 90, 180, 90, 0, "Talc" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // H2Mg3(SiO3)4 - Soapstone ( 877, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 95, 145, 95, 0, "Soapstone" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // H2Mg3(SiO3)4 - Concrete ( 947, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 100, 100, 100, 0, "Concrete" , 0, 0, 300, 0, F, F, 0, 1, 1, Dyes.dyeGray , 0, Arrays.asList(new MaterialStack(Stone, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1))), - IronMagnetic ( 354, TextureSet.SET_MAGNETIC , 6.0F, 256, 2, 1|2 |64|128 , 200, 200, 200, 0, "Magnetic Iron" , 0, 0, -1, 0, F, F, 4, 51, 50, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - SteelMagnetic ( 355, TextureSet.SET_MAGNETIC , 6.0F, 512, 2, 1|2 |64|128 , 128, 128, 128, 0, "Magnetic Steel" , 0, 0, 1000, 1000, T, F, 4, 51, 50, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Steel, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.ORDO, 1), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - NeodymiumMagnetic ( 356, TextureSet.SET_MAGNETIC , 7.0F, 512, 2, 1|2 |64|128 , 100, 100, 100, 0, "Magnetic Neodymium" , 0, 0, 1297, 1297, T, F, 4, 51, 50, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Neodymium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.MAGNETO, 3))), + WoodSealed ( 889, TextureSet.SET_WOOD , 3.0F, 24, 0, 1|2 |64|128 , 80, 40, 0, 0, "Sealed Wood" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 0, Arrays.asList(new MaterialStack(Wood, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2), new TC_AspectStack(TC_Aspects.FABRICO, 1))), + LiveRoot ( 832, TextureSet.SET_WOOD , 1.0F, 0, 1, 1 , 220, 200, 0, 0, "Liveroot" , 5, 16, -1, 0, false, false, 2, 4, 3, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Wood, 3), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2), new TC_AspectStack(TC_Aspects.VICTUS, 2), new TC_AspectStack(TC_Aspects.PRAECANTIO, 1))), + IronWood ( 338, TextureSet.SET_WOOD , 6.0F, 384, 2, 1|2 |64|128 , 150, 140, 110, 0, "Ironwood" , 5, 8, -1, 0, false, false, 2, 19, 18, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Iron, 9), new MaterialStack(LiveRoot, 9), new MaterialStack(Gold, 1))), + Glass ( 890, TextureSet.SET_GLASS , 1.0F, 4, 0, 1 |4 , 250, 250, 250, 220, "Glass" , 0, 0, 1500, 0, false, true , 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2))), + Perlite ( 925, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 30, 20, 30, 0, "Perlite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Obsidian, 2), new MaterialStack(Water, 1))), + Borax ( 941, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 250, 250, 250, 0, "Borax" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Boron, 4), new MaterialStack(Water, 10), new MaterialStack(Oxygen, 7))), + Lignite ( 538, TextureSet.SET_LIGNITE , 1.0F, 0, 0, 1 |4|8 , 100, 70, 70, 0, "Lignite Coal" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Carbon, 2), new MaterialStack(Water, 4), new MaterialStack(DarkAsh, 1))), + Olivine ( 505, TextureSet.SET_RUBY , 7.0F, 256, 2, 1 |4|8 |64 , 150, 255, 150, 127, "Olivine" , 0, 0, -1, 0, false, true , 5, 1, 1, Dyes.dyeLime , 1, Arrays.asList(new MaterialStack(Magnesium, 2), new MaterialStack(Iron, 1), new MaterialStack(SiliconDioxide, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 2))), + Opal ( 510, TextureSet.SET_OPAL , 7.0F, 256, 2, 1 |4|8 |64 , 0, 0, 255, 0, "Opal" , 0, 0, -1, 0, false, true , 3, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), + Amethyst ( 509, TextureSet.SET_FLINT , 7.0F, 256, 3, 1 |4|8 |64 , 210, 50, 210, 127, "Amethyst" , 0, 0, -1, 0, false, true , 3, 1, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(SiliconDioxide, 4), new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), + Redstone ( 810, TextureSet.SET_ROUGH , 1.0F, 0, 2, 1 |8 , 200, 0, 0, 0, "Redstone" , 0, 0, 500, 0, false, false, 3, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Silicon, 1), new MaterialStack(Pyrite, 5), new MaterialStack(Ruby, 1), new MaterialStack(Mercury, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 2))), + Lapis ( 526, TextureSet.SET_LAPIS , 1.0F, 0, 1, 1 |4|8 , 70, 70, 220, 0, "Lapis" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue , 2, Arrays.asList(new MaterialStack(Lazurite, 12), new MaterialStack(Sodalite, 2), new MaterialStack(Pyrite, 1), new MaterialStack(Calcite, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.SENSUS, 1))), + Blaze ( 801, TextureSet.SET_POWDER , 2.0F, 16, 1, 1 |64 , 255, 200, 0, 0, "Blaze" , 0, 0, 6400, 0, false, false, 2, 3, 2, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(DarkAsh, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 2), new TC_AspectStack(TC_Aspects.IGNIS, 4))), + EnderPearl ( 532, TextureSet.SET_SHINY , 1.0F, 16, 1, 1 |4 , 108, 220, 200, 0, "Enderpearl" , 0, 0, -1, 0, false, false, 1, 16, 10, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(Beryllium, 1), new MaterialStack(Potassium, 4), new MaterialStack(Nitrogen, 5), new MaterialStack(Magic, 6)), Arrays.asList(new TC_AspectStack(TC_Aspects.ALIENIS, 4), new TC_AspectStack(TC_Aspects.ITER, 4), new TC_AspectStack(TC_Aspects.PRAECANTIO, 2))), + EnderEye ( 533, TextureSet.SET_SHINY , 1.0F, 16, 1, 1 |4 , 160, 250, 230, 0, "Endereye" , 5, 10, -1, 0, false, false, 1, 2, 1, Dyes.dyeGreen , 2, Arrays.asList(new MaterialStack(EnderPearl, 1), new MaterialStack(Blaze, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.SENSUS, 4), new TC_AspectStack(TC_Aspects.ALIENIS, 4), new TC_AspectStack(TC_Aspects.ITER, 4), new TC_AspectStack(TC_Aspects.PRAECANTIO, 3), new TC_AspectStack(TC_Aspects.IGNIS, 2))), + Flint ( 802, TextureSet.SET_FLINT , 2.5F, 64, 1, 1 |64 , 0, 32, 64, 0, "Flint" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), + Diatomite ( 948, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 225, 225, 225, 0, "Diatomite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Flint, 8), new MaterialStack(BandedIron, 1), new MaterialStack(Sapphire, 1))), + VolcanicAsh ( 940, TextureSet.SET_FLINT , 1.0F, 0, 0, 1 , 60, 50, 50, 0, "Volcanic Ashes" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Flint, 6), new MaterialStack(Iron, 1), new MaterialStack(Magnesium, 1))), + Niter ( 531, TextureSet.SET_FLINT , 1.0F, 0, 1, 1 |4|8 , 255, 200, 200, 0, "Niter" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Saltpeter, 1))), + Pyrotheum ( 843, TextureSet.SET_FIERY , 1.0F, 0, 1, 1 , 255, 128, 0, 0, "Pyrotheum" , 2, 62, -1, 0, false, false, 2, 3, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Coal, 1), new MaterialStack(Redstone, 1), new MaterialStack(Blaze, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 2), new TC_AspectStack(TC_Aspects.IGNIS, 1))), + HydratedCoal ( 818, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 70, 70, 100, 0, "Hydrated Coal" , 0, 0, -1, 0, false, false, 1, 9, 8, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Coal, 8), new MaterialStack(Water, 1))), + Apatite ( 530, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8 , 200, 200, 255, 0, "Apatite" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Calcium, 5), new MaterialStack(Phosphate, 3), new MaterialStack(Chlorine, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.MESSIS, 2))), + Alumite ( -1, TextureSet.SET_METALLIC , 1.5F, 64, 0, 1|2 |64 , 255, 255, 255, 0, "Alumite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Aluminium, 5), new MaterialStack(Iron, 2), new MaterialStack(Obsidian, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.STRONTIO, 2))), + Manyullyn ( -1, TextureSet.SET_METALLIC , 1.5F, 64, 0, 1|2 |64 , 255, 255, 255, 0, "Manyullyn" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Cobalt, 1), new MaterialStack(Aredrite, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.STRONTIO, 2))), + ShadowIron ( 336, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |8 |64 , 120, 120, 120, 0, "Shadowiron" , 0, 0, -1, 0, false, false, 3, 4, 3, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Iron, 3), new MaterialStack(Magic, 1))), + ShadowSteel ( 337, TextureSet.SET_METALLIC , 6.0F, 768, 2, 1|2 |64 , 90, 90, 90, 0, "Shadowsteel" , 0, 0, -1, 1700, true , false, 4, 4, 3, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Steel, 3), new MaterialStack(Magic, 1))), + Steeleaf ( 339, TextureSet.SET_LEAF , 8.0F, 768, 3, 1|2 |64|128 , 50, 127, 50, 0, "Steeleaf" , 5, 24, -1, 0, false, false, 4, 1, 1, Dyes.dyeGreen , 2, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.HERBA, 2), new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.PRAECANTIO, 1))), + Knightmetal ( 362, TextureSet.SET_METALLIC , 8.0F, 1024, 3, 1|2 |64|128 , 210, 240, 200, 0, "Knightmetal" , 5, 24, -1, 0, false, false, 4, 1, 1, Dyes.dyeLime , 2, Arrays.asList(new MaterialStack(Steel, 2), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 1), new TC_AspectStack(TC_Aspects.METALLUM, 2))), + SterlingSilver ( 350, TextureSet.SET_SHINY , 13.0F, 128, 2, 1|2 |64|128 , 250, 220, 225, 0, "Sterling Silver" , 0, 0, -1, 1700, true , false, 4, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Silver, 4))), + RoseGold ( 351, TextureSet.SET_SHINY , 14.0F, 128, 2, 1|2 |64|128 , 255, 230, 30, 0, "Rose Gold" , 0, 0, -1, 1600, true , false, 4, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Gold, 4))), + BlackBronze ( 352, TextureSet.SET_DULL , 12.0F, 256, 2, 1|2 |64|128 , 100, 50, 125, 0, "Black Bronze" , 0, 0, -1, 2000, true , false, 4, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Gold, 1), new MaterialStack(Silver, 1), new MaterialStack(Copper, 3))), + BismuthBronze ( 353, TextureSet.SET_DULL , 8.0F, 256, 2, 1|2 |64|128 , 100, 125, 125, 0, "Bismuth Bronze" , 0, 0, -1, 1100, true , false, 4, 1, 1, Dyes.dyeCyan , 2, Arrays.asList(new MaterialStack(Bismuth, 1), new MaterialStack(Zinc, 1), new MaterialStack(Copper, 3))), + BlackSteel ( 334, TextureSet.SET_METALLIC , 6.5F, 768, 2, 1|2 |64 , 100, 100, 100, 0, "Black Steel" , 0, 0, -1, 1200, true , false, 4, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Nickel, 1), new MaterialStack(BlackBronze, 1), new MaterialStack(Steel, 3))), + RedSteel ( 348, TextureSet.SET_METALLIC , 7.0F, 896, 2, 1|2 |64 , 140, 100, 100, 0, "Red Steel" , 0, 0, -1, 1300, true , false, 4, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(SterlingSilver, 1), new MaterialStack(BismuthBronze, 1), new MaterialStack(Steel, 2), new MaterialStack(BlackSteel, 4))), + BlueSteel ( 349, TextureSet.SET_METALLIC , 7.5F, 1024, 2, 1|2 |64 , 100, 100, 140, 0, "Blue Steel" , 0, 0, -1, 1400, true , false, 4, 1, 1, Dyes.dyeBlue , 2, Arrays.asList(new MaterialStack(RoseGold, 1), new MaterialStack(Brass, 1), new MaterialStack(Steel, 2), new MaterialStack(BlackSteel, 4))), + DamascusSteel ( 335, TextureSet.SET_METALLIC , 8.0F, 1280, 2, 1|2 |64 , 110, 110, 110, 0, "Damascus Steel" , 0, 0, 2000, 1500, true , false, 4, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Steel, 1))), + TungstenSteel ( 316, TextureSet.SET_METALLIC , 10.0F, 5120, 4, 1|2 |64|128 , 100, 100, 160, 0, "Tungstensteel" , 0, 0, -1, 3000, true , false, 4, 1, 1, Dyes.dyeBlue , 2, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Tungsten, 1))), + NitroCoalFuel ( -1, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 50, 70, 50, 0, "Nitro-Coalfuel" , 0, 48, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 0, Arrays.asList(new MaterialStack(Glyceryl, 1), new MaterialStack(CoalFuel, 4))), + NitroFuel ( 709, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 200, 255, 0, 0, "Nitro-Diesel" , 0, 384, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , 0, Arrays.asList(new MaterialStack(Glyceryl, 1), new MaterialStack(Fuel, 4))), + AstralSilver ( 333, TextureSet.SET_SHINY , 10.0F, 64, 2, 1|2 |8 |64 , 230, 230, 255, 0, "Astral Silver" , 0, 0, -1, 0, false, false, 4, 3, 2, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Silver, 2), new MaterialStack(Magic, 1))), + Midasium ( 332, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |64 , 255, 200, 40, 0, "Midasium" , 0, 0, -1, 0, false, false, 4, 3, 2, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Gold, 2), new MaterialStack(Magic, 1))), + Mithril ( 331, TextureSet.SET_SHINY , 14.0F, 64, 3, 1|2 |8 |64 , 255, 255, 210, 0, "Mithril" , 0, 0, -1, 0, false, false, 4, 3, 2, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Platinum, 2), new MaterialStack(Magic, 1))), + BlueAlloy ( 309, TextureSet.SET_DULL , 1.0F, 0, 0, 1|2 , 100, 180, 255, 0, "Blue Alloy" , 0, 0, -1, 0, false, false, 3, 5, 1, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Silver, 1), new MaterialStack(Nikolite, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 3))), + RedAlloy ( 308, TextureSet.SET_DULL , 1.0F, 0, 0, 1|2 , 200, 0, 0, 0, "Red Alloy" , 0, 0, -1, 0, false, false, 3, 5, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Metal, 1), new MaterialStack(Redstone, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 3))), + CobaltBrass ( 343, TextureSet.SET_METALLIC , 8.0F, 256, 2, 1|2 |64|128 , 180, 180, 160, 0, "Cobalt Brass" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Brass, 7), new MaterialStack(Aluminium, 1), new MaterialStack(Cobalt, 1))), + Phosphorus ( 534, TextureSet.SET_FLINT , 1.0F, 0, 2, 1 |4|8|16 , 255, 255, 0, 0, "Phosphorus" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Phosphate, 2))), + Basalt ( 844, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 30, 20, 20, 0, "Basalt" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Olivine, 1), new MaterialStack(Calcite, 3), new MaterialStack(Flint, 8), new MaterialStack(DarkAsh, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.TENEBRAE, 1))), + GarnetRed ( 527, TextureSet.SET_RUBY , 7.0F, 128, 2, 1 |4|8 |64 , 200, 80, 80, 127, "Red Garnet" , 0, 0, -1, 0, false, true , 4, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Pyrope, 3), new MaterialStack(Almandine, 5), new MaterialStack(Spessartine, 8)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))), + GarnetYellow ( 528, TextureSet.SET_RUBY , 7.0F, 128, 2, 1 |4|8 |64 , 200, 200, 80, 127, "Yellow Garnet" , 0, 0, -1, 0, false, true , 4, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Andradite, 5), new MaterialStack(Grossular, 8), new MaterialStack(Uvarovite, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))), + Marble ( 845, TextureSet.SET_FINE , 1.0F, 0, 1, 1 , 200, 200, 200, 0, "Marble" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Calcite, 7)), Arrays.asList(new TC_AspectStack(TC_Aspects.PERFODIO, 1))), + Sugar ( 803, TextureSet.SET_FINE , 1.0F, 0, 1, 1 , 250, 250, 250, 0, "Sugar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Carbon, 2), new MaterialStack(Water, 5), new MaterialStack(Oxygen, 25)), Arrays.asList(new TC_AspectStack(TC_Aspects.HERBA, 1), new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.AER, 1))), + Thaumium ( 330, TextureSet.SET_METALLIC , 12.0F, 256, 3, 1|2 |64|128 , 150, 100, 200, 0, "Thaumium" , 0, 0, -1, 0, false, false, 5, 2, 1, Dyes.dyePurple , 0, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.PRAECANTIO, 1))), + Vinteum ( 529, TextureSet.SET_EMERALD , 10.0F, 128, 3, 1 |4|8 |64 , 100, 200, 255, 0, "Vinteum" , 5, 32, -1, 0, false, false, 4, 1, 1, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.PRAECANTIO, 1))), + Vis ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, 0 , 128, 0, 255, 0, "Vis" , 5, 32, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AURAM, 2), new TC_AspectStack(TC_Aspects.PRAECANTIO, 1))), + Redrock ( 846, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 255, 80, 50, 0, "Redrock" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Calcite, 2), new MaterialStack(Flint, 1), new MaterialStack(Clay, 1))), + PotassiumFeldspar ( 847, TextureSet.SET_FINE , 1.0F, 0, 1, 1 , 120, 40, 40, 0, "Potassium Feldspar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 8))), + Biotite ( 848, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 , 20, 30, 20, 0, "Biotite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 3), new MaterialStack(Aluminium, 3), new MaterialStack(Fluorine, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 10))), + GraniteBlack ( 849, TextureSet.SET_ROUGH , 4.0F, 64, 3, 1 |64|128 , 10, 10, 10, 0, "Black Granite" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(SiliconDioxide, 4), new MaterialStack(Biotite, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), + GraniteRed ( 850, TextureSet.SET_ROUGH , 4.0F, 64, 3, 1 |64|128 , 255, 0, 128, 0, "Red Granite" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeMagenta , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(PotassiumFeldspar, 1), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), + Chrysotile ( 912, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 110, 140, 110, 0, "Chrysotile" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Asbestos, 1))), + Realgar ( 555, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 140, 100, 100, 0, "Realgar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Arsenic, 4), new MaterialStack(Sulfur,4))), + VanadiumMagnetite ( 923, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 35, 35, 60, 0, "Vanadium Magnetite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(Vanadium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), // Mixture of Fe3O4 and V2O5 + BasalticMineralSand ( 935, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 40, 50, 40, 0, "Basaltic Mineral Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(Basalt, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), + GraniticMineralSand ( 936, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 40, 60, 60, 0, "Granitic Mineral Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(GraniteBlack, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), + GarnetSand ( 938, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "Garnet Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(GarnetRed, 1), new MaterialStack(GarnetYellow, 1))), + QuartzSand ( 939, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 200, 200, 200, 0, "Quartz Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(CertusQuartz, 1), new MaterialStack(Quartzite, 1))), + Bastnasite ( 905, TextureSet.SET_FINE , 1.0F, 0, 2, 1 |8 , 200, 110, 45, 0, "Bastnasite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Cerium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Fluorine, 1), new MaterialStack(Oxygen, 3))), // (Ce, La, Y)CO3F + Pentlandite ( 909, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 165, 150, 5, 0, "Pentlandite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Nickel, 9), new MaterialStack(Sulfur, 8))), // (Fe,Ni)9S8 + Spodumene ( 920, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 190, 170, 170, 0, "Spodumene" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Lithium, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Silicon, 2), new MaterialStack(Oxygen, 6))), // LiAl(SiO3)2 + Pollucite ( 919, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 210, 210, 0, "Pollucite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Caesium, 2), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 4), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 12))), // (Cs,Na)2Al2Si4O12 2H2O (also a source of Rb) + Tantalite ( 921, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 145, 80, 40, 0, "Tantalite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Manganese, 1), new MaterialStack(Tantalum, 2), new MaterialStack(Oxygen, 6))), // (Fe, Mn)Ta2O6 (also source of Nb) + Lepidolite ( 907, TextureSet.SET_FINE , 1.0F, 0, 2, 1 |8 , 240, 50, 140, 0, "Lepidolite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Lithium, 3), new MaterialStack(Aluminium, 4), new MaterialStack(Fluorine, 2), new MaterialStack(Oxygen, 10))), // K(Li,Al,Rb)3(Al,Si)4O10(F,OH)2 + Glauconite ( 933, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 130, 180, 60, 0, "Glauconite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 2), new MaterialStack(Aluminium, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // (K,Na)(Fe3+,Al,Mg)2(Si,Al)4O10(OH)2 + GlauconiteSand ( 949, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 130, 180, 60, 0, "Glauconite Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 2), new MaterialStack(Aluminium, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // (K,Na)(Fe3+,Al,Mg)2(Si,Al)4O10(OH)2 + Vermiculite ( 932, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 200, 180, 15, 0, "Vermiculite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Iron, 3), new MaterialStack(Aluminium, 4), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Water, 4), new MaterialStack(Oxygen, 12))), // (Mg+2, Fe+2, Fe+3)3 [(AlSi)4O10] (OH)2 4H2O) + Bentonite ( 927, TextureSet.SET_ROUGH , 1.0F, 0, 2, 1 |8 , 245, 215, 210, 0, "Bentonite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Magnesium, 6), new MaterialStack(Silicon, 12), new MaterialStack(Hydrogen, 6), new MaterialStack(Water, 5), new MaterialStack(Oxygen, 36))), // (Na,Ca)0.33(Al,Mg)2(Si4O10)(OH)2 nH2O + FullersEarth ( 928, TextureSet.SET_FINE , 1.0F, 0, 2, 1 |8 , 160, 160, 120, 0, "Fullers Earth" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 1), new MaterialStack(Water, 4), new MaterialStack(Oxygen, 11))), // (Mg,Al)2Si4O10(OH) 4(H2O) + Pitchblende ( 873, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 200, 210, 0, 0, "Pitchblende" , 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Uraninite, 3), new MaterialStack(Thorium, 1), new MaterialStack(Lead, 1))), + Monazite ( 520, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8 , 50, 70, 50, 0, "Monazite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(RareEarth, 1), new MaterialStack(Phosphate, 1))), // Wikipedia: (Ce, La, Nd, Th, Sm, Gd)PO4 Monazite also smelt-extract to Helium, it is brown like the rare earth Item Monazite sand deposits are inevitably of the monazite-(Ce) composition. Typically, the lanthanides in such monazites contain about 45�48% cerium, about 24% lanthanum, about 17% neodymium, about 5% praseodymium, and minor quantities of samarium, gadolinium, and yttrium. Europium concentrations tend to be low, about 0.05% Thorium content of monazite is variable and sometimes can be up to 20�30% + Malachite ( 871, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 5, 95, 5, 0, "Malachite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(Copper, 2), new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 5))), // Cu2CO3(OH)2 + Mirabilite ( 900, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 250, 210, 0, "Mirabilite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Sulfur, 1), new MaterialStack(Water, 10), new MaterialStack(Oxygen, 4))), // Na2SO4 10H2O + Mica ( 901, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 195, 195, 205, 0, "Mica" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Fluorine, 2), new MaterialStack(Oxygen, 10))), // KAl2(AlSi3O10)(F,OH)2 + Trona ( 903, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 135, 135, 95, 0, "Trona" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Sodium, 3), new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 1), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 6))), // Na3(CO3)(HCO3) 2H2O + Barite ( 904, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 230, 235, 255, 0, "Barite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Barium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), + Gypsum ( 934, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 230, 230, 250, 0, "Gypsum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 4))), // CaSO4 2H2O + Alunite ( 911, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 225, 180, 65, 0, "Alunite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 14))), // KAl3(SO4)2(OH)6 + Dolomite ( 914, TextureSet.SET_FLINT , 1.0F, 0, 1, 1 |8 , 225, 205, 205, 0, "Dolomite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Magnesium, 1), new MaterialStack(Carbon, 2), new MaterialStack(Oxygen, 6))), // CaMg(CO3)2 + Wollastonite ( 915, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 240, 240, 0, "Wollastonite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 3))), // CaSiO3 + Zeolite ( 916, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 230, 230, 0, "Zeolite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Calcium, 4), new MaterialStack(Silicon, 27), new MaterialStack(Aluminium, 9), new MaterialStack(Water, 28), new MaterialStack(Oxygen, 72))), // NaCa4(Si27Al9)O72 28(H2O) + Kyanite ( 924, TextureSet.SET_FLINT , 1.0F, 0, 2, 1 |8 , 110, 110, 250, 0, "Kyanite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 5))), // Al2SiO5 + Kaolinite ( 929, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 245, 235, 235, 0, "Kaolinite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 9))), // Al2Si2O5(OH)4 + Talc ( 902, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 90, 180, 90, 0, "Talc" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // H2Mg3(SiO3)4 + Soapstone ( 877, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 95, 145, 95, 0, "Soapstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // H2Mg3(SiO3)4 + Concrete ( 947, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 100, 100, 100, 0, "Concrete" , 0, 0, 300, 0, false, false, 0, 1, 1, Dyes.dyeGray , 0, Arrays.asList(new MaterialStack(Stone, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1))), + IronMagnetic ( 354, TextureSet.SET_MAGNETIC , 6.0F, 256, 2, 1|2 |64|128 , 200, 200, 200, 0, "Magnetic Iron" , 0, 0, -1, 0, false, false, 4, 51, 50, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), + SteelMagnetic ( 355, TextureSet.SET_MAGNETIC , 6.0F, 512, 2, 1|2 |64|128 , 128, 128, 128, 0, "Magnetic Steel" , 0, 0, 1000, 1000, true , false, 4, 51, 50, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Steel, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.ORDO, 1), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), + NeodymiumMagnetic ( 356, TextureSet.SET_MAGNETIC , 7.0F, 512, 2, 1|2 |64|128 , 100, 100, 100, 0, "Magnetic Neodymium" , 0, 0, 1297, 1297, true , false, 4, 51, 50, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Neodymium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.MAGNETO, 3))), /** * Materials which are renamed automatically */ - @Deprecated IridiumAndSodiumOxide(IridiumSodiumOxide, F), - @Deprecated Palygorskite (FullersEarth, F), - @Deprecated Adamantine (Adamantium, T), - @Deprecated FzDarkIron (DarkIron, T), - @Deprecated FZDarkIron (DarkIron, T), - @Deprecated Ashes (Ash, F), - @Deprecated DarkAshes (DarkAsh, F), - @Deprecated Abyssal (Basalt, F), - @Deprecated Adamant (Adamantium, T), - @Deprecated AluminumBrass (AluminiumBrass, F), - @Deprecated Aluminum (Aluminium, F), - @Deprecated NaturalAluminum (Aluminium, F), - @Deprecated NaturalAluminium (Aluminium, F), - @Deprecated Americum (Americium, F), - @Deprecated Beryl (Emerald, F), // 30,200,200 - @Deprecated BlackGranite (GraniteBlack, F), - @Deprecated CalciumCarbonate (Calcite, F), - @Deprecated CreosoteOil (Creosote, F), - @Deprecated Chromium (Chrome, F), - @Deprecated Diesel (Fuel, F), - @Deprecated Enderpearl (EnderPearl, F), - @Deprecated Endereye (EnderEye, F), - @Deprecated EyeOfEnder (EnderEye, F), - @Deprecated Eyeofender (EnderEye, F), - @Deprecated RawTerrasteelAlloy (TerrasteelAlloyRaw, F), - @Deprecated StrengthenedTerrasteelAlloy(TerrasteelAlloyStrengthened, F), - @Deprecated Flour (Wheat, F), - @Deprecated Meat (MeatRaw, F), - @Deprecated Garnet (GarnetRed, T), - @Deprecated Granite (GraniteBlack, F), - @Deprecated Goethite (BrownLimonite, F), - @Deprecated Kalium (Potassium, F), - @Deprecated Lapislazuli (Lapis, F), - @Deprecated LapisLazuli (Lapis, F), - @Deprecated Monazit (Monazite, F), - @Deprecated Natrium (Sodium, F), - @Deprecated Mythril (Mithril, F), - @Deprecated NitroDiesel (NitroFuel, F), - @Deprecated Naquadriah (Naquadria, F), - @Deprecated Obby (Obsidian, F), - @Deprecated Peridot (Olivine, T), - @Deprecated Phosphorite (Phosphorus, T), - @Deprecated Quarried (Marble, F), - @Deprecated Quicksilver (Mercury, T), - @Deprecated QuickSilver (Mercury, F), - @Deprecated RedRock (Redrock, F), - @Deprecated RefinedIron (Iron, F), - @Deprecated RedGranite (GraniteRed, F), - @Deprecated Sheldonite (Cooperite, F), - @Deprecated Soulsand (SoulSand, F), - @Deprecated SilverLead (Galena, F), - @Deprecated Titan (Titanium, F), - @Deprecated Uran (Uranium, F), - @Deprecated Wolframite (Tungstate, F), - @Deprecated Wolframium (Tungsten, F), - @Deprecated Wolfram (Tungsten, F), - @Deprecated WrougtIron (WroughtIron, F); + @Deprecated IridiumAndSodiumOxide(IridiumSodiumOxide, false), + @Deprecated Palygorskite (FullersEarth, false), + @Deprecated Adamantine (Adamantium, true), + @Deprecated FzDarkIron (DarkIron, true), + @Deprecated FZDarkIron (DarkIron, true), + @Deprecated Ashes (Ash, false), + @Deprecated DarkAshes (DarkAsh, false), + @Deprecated Abyssal (Basalt, false), + @Deprecated Adamant (Adamantium, true), + @Deprecated AluminumBrass (AluminiumBrass, false), + @Deprecated Aluminum (Aluminium, false), + @Deprecated NaturalAluminum (Aluminium, false), + @Deprecated NaturalAluminium (Aluminium, false), + @Deprecated Americum (Americium, false), + @Deprecated Beryl (Emerald, false), // 30,200,200 + @Deprecated BlackGranite (GraniteBlack, false), + @Deprecated CalciumCarbonate (Calcite, false), + @Deprecated CreosoteOil (Creosote, false), + @Deprecated Chromium (Chrome, false), + @Deprecated Diesel (Fuel, false), + @Deprecated Enderpearl (EnderPearl, false), + @Deprecated Endereye (EnderEye, false), + @Deprecated EyeOfEnder (EnderEye, false), + @Deprecated Eyeofender (EnderEye, false), + @Deprecated RawTerrasteelAlloy (TerrasteelAlloyRaw, false), + @Deprecated StrengthenedTerrasteelAlloy(TerrasteelAlloyStrengthened, false), + @Deprecated Flour (Wheat, false), + @Deprecated Meat (MeatRaw, false), + @Deprecated Garnet (GarnetRed, true), + @Deprecated Granite (GraniteBlack, false), + @Deprecated Goethite (BrownLimonite, false), + @Deprecated Kalium (Potassium, false), + @Deprecated Lapislazuli (Lapis, false), + @Deprecated LapisLazuli (Lapis, false), + @Deprecated Monazit (Monazite, false), + @Deprecated Natrium (Sodium, false), + @Deprecated Mythril (Mithril, false), + @Deprecated NitroDiesel (NitroFuel, false), + @Deprecated Naquadriah (Naquadria, false), + @Deprecated Obby (Obsidian, false), + @Deprecated Peridot (Olivine, true), + @Deprecated Phosphorite (Phosphorus, true), + @Deprecated Quarried (Marble, false), + @Deprecated Quicksilver (Mercury, true), + @Deprecated QuickSilver (Mercury, false), + @Deprecated RedRock (Redrock, false), + @Deprecated RefinedIron (Iron, false), + @Deprecated RedGranite (GraniteRed, false), + @Deprecated Sheldonite (Cooperite, false), + @Deprecated Soulsand (SoulSand, false), + @Deprecated SilverLead (Galena, false), + @Deprecated Titan (Titanium, false), + @Deprecated Uran (Uranium, false), + @Deprecated Wolframite (Tungstate, false), + @Deprecated Wolframium (Tungsten, false), + @Deprecated Wolfram (Tungsten, false), + @Deprecated WrougtIron (WroughtIron, false); /** List of all Materials. */ public static final Collection VALUES = new HashSet(Arrays.asList(values())); @@ -1237,7 +1235,7 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { } public static Materials get(String aMaterialName) { - Object tObject = GT_Utility.getFieldContent(Materials.class, aMaterialName, F, F); + Object tObject = GT_Utility.getFieldContent(Materials.class, aMaterialName, false, false); if (tObject != null && tObject instanceof Materials) return (Materials)tObject; return _NULL; } @@ -1254,7 +1252,7 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { for (Materials tMaterial : VALUES) { String tString = tMaterial.toString().toLowerCase(); tMaterial.mHeatDamage = (float)aConfiguration.get(ConfigCategories.Materials.heatdamage, tString, tMaterial.mHeatDamage); - if (tMaterial.mBlastFurnaceRequired) tMaterial.mBlastFurnaceRequired = aConfiguration.get(ConfigCategories.Materials.blastfurnacerequirements, tString, T); + if (tMaterial.mBlastFurnaceRequired) tMaterial.mBlastFurnaceRequired = aConfiguration.get(ConfigCategories.Materials.blastfurnacerequirements, tString, true); if (tMaterial.mBlastFurnaceRequired && aConfiguration.get(ConfigCategories.Materials.blastinductionsmelter, tString, tMaterial.mBlastFurnaceTemp < 1500)) GT_ModHandler.ThermalExpansion.addSmelterBlastOre(tMaterial); tMaterial.mHandleMaterial = (tMaterial==Desh?tMaterial.mHandleMaterial:tMaterial==Diamond||tMaterial==Thaumium?Wood:tMaterial.contains(SubTag.BURNING)?Blaze:tMaterial.contains(SubTag.MAGICAL)&&tMaterial.contains(SubTag.CRYSTAL)&&Loader.isModLoaded(MOD_ID_TC)?Thaumium:tMaterial.getMass()>Element.Tc.getMass()*2?TungstenSteel:tMaterial.getMass()>Element.Tc.getMass()?Steel:Wood); } @@ -1262,8 +1260,8 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { public boolean isRadioactive() { if (mElement != null) return mElement.mHalfLifeSeconds >= 0; - for (MaterialStack tMaterial : mMaterialList) if (tMaterial.mMaterial.isRadioactive()) return T; - return F; + for (MaterialStack tMaterial : mMaterialList) if (tMaterial.mMaterial.isRadioactive()) return true; + return false; } public long getProtons() { @@ -1304,7 +1302,7 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { } public String getToolTip() { - return getToolTip(1, F); + return getToolTip(1, false); } public String getToolTip(boolean aShowQuestionMarks) { @@ -1312,7 +1310,7 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { } public String getToolTip(long aMultiplier) { - return getToolTip(aMultiplier, F); + return getToolTip(aMultiplier, false); } public String getToolTip(long aMultiplier, boolean aShowQuestionMarks) { @@ -1337,20 +1335,20 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { * This is used to determine if any of the ItemStacks belongs to this Material. */ public boolean contains(ItemStack... aStacks) { - if (aStacks == null || aStacks.length <= 0) return F; - for (ItemStack tStack : mMaterialItems) for (ItemStack aStack : aStacks) if (GT_Utility.areStacksEqual(aStack, tStack, !tStack.hasTagCompound())) return T; - return F; + if (aStacks == null || aStacks.length <= 0) return false; + for (ItemStack tStack : mMaterialItems) for (ItemStack aStack : aStacks) if (GT_Utility.areStacksEqual(aStack, tStack, !tStack.hasTagCompound())) return true; + return false; } /** * This is used to determine if an ItemStack belongs to this Material. */ public boolean remove(ItemStack aStack) { - if (aStack == null) return F; - boolean temp = F; + if (aStack == null) return false; + boolean temp = false; for (int i = 0; i < mMaterialItems.size(); i++) if (GT_Utility.areStacksEqual(aStack, mMaterialItems.get(i))) { mMaterialItems.remove(i--); - temp = T; + temp = true; } return temp; } @@ -1498,7 +1496,7 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { public Enchantment mEnchantmentTools = null, mEnchantmentArmors = null; public byte mEnchantmentToolsLevel = 0, mEnchantmentArmorsLevel = 0; public final TextureSet mIconSet; - public boolean mBlastFurnaceRequired = F; + public boolean mBlastFurnaceRequired = false; public float mToolSpeed = 1.0F, mHeatDamage = 0.0F; public String mChemicalFormula = "?", mDefaultLocalName = "null"; public Dyes mColor = Dyes._NULL; @@ -1561,7 +1559,7 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { } private Materials(Materials aMaterialInto, boolean aReRegisterIntoThis) { - mUnificatable = F; + mUnificatable = false; mDefaultLocalName = aMaterialInto.mDefaultLocalName; mMaterialInto = aMaterialInto.mMaterialInto; if (aReRegisterIntoThis) mMaterialInto.mOreReRegistrations.add(this); @@ -1594,7 +1592,7 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { * @param aColor Vanilla MC Wool Color which comes the closest to this. */ private Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aToolDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor) { - this(aMetaItemSubID, aIconSet, aToolSpeed, aToolDurability, aToolQuality, T); + this(aMetaItemSubID, aIconSet, aToolSpeed, aToolDurability, aToolQuality, true); mDefaultLocalName = aLocalName; mMeltingPoint = (short)aMeltingPoint; mBlastFurnaceTemp = (short)aBlastFurnaceTemp; diff --git a/src/main/java/gregtech/api/enums/OrePrefixes.java b/src/main/java/gregtech/api/enums/OrePrefixes.java index fb7510dd..8652ae0f 100644 --- a/src/main/java/gregtech/api/enums/OrePrefixes.java +++ b/src/main/java/gregtech/api/enums/OrePrefixes.java @@ -18,190 +18,190 @@ import java.util.List; import net.minecraft.item.ItemStack; public enum OrePrefixes { - @Deprecated pulp ("Pulps" , "" , "" ,F,F,F,F,F,F,F,F,F,F, B[0]|B[1]|B[2]|B[3] , -1, 64, -1), - @Deprecated leaves ("Leaves" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - @Deprecated sapling ("Saplings" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - @Deprecated itemDust ("Dusts" , "" , "" ,F,F,F,F,F,F,F,F,F,F, B[0]|B[1]|B[2]|B[3] , -1, 64, -1), - oreBlackgranite ("Black Granite Ores" , "Granite " , " Ore" ,T,T,F,F,F,T,F,F,F,T, B[3] , -1, 64, -1), // In case of an End-Ores Mod. Ore -> Material is a Oneway Operation! - oreRedgranite ("Red Granite Ores" , "Granite " , " Ore" ,T,T,F,F,F,T,F,F,F,T, B[3] , -1, 64, -1), // In case of an End-Ores Mod. Ore -> Material is a Oneway Operation! - oreNetherrack ("Netherrack Ores" , "Nether " , " Ore" ,T,T,F,F,F,T,F,F,F,T, B[3] , -1, 64, -1), // Prefix of the Nether-Ores Mod. Causes Ores to double. Ore -> Material is a Oneway Operation! - oreNether ("Nether Ores" , "Nether " , " Ore" ,T,T,F,F,F,T,F,F,F,T, B[3] , -1, 64, -1), // Prefix of the Nether-Ores Mod. Causes Ores to double. Ore -> Material is a Oneway Operation! - @Deprecated denseore ("Dense Ores" , "" , "" ,F,F,F,F,F,T,F,F,F,T, B[3] , -1, 64, -1), - oreDense ("Dense Ores" , "Dense " , " Ore" ,T,T,F,F,F,T,F,F,F,T, B[3] , -1, 64, -1), // Prefix of the Dense-Ores Mod. Causes Ores to double. Ore -> Material is a Oneway Operation! - oreRich ("Rich Ores" , "Rich " , " Ore" ,T,T,F,F,F,T,F,F,F,T, B[3] , -1, 64, -1), // Prefix of TFC - oreNormal ("Normal Ores" , "Normal " , " Ore" ,T,T,F,F,F,T,F,F,F,T, B[3] , -1, 64, -1), // Prefix of TFC - oreSmall ("Small Ores" , "Small " , " Ore" ,T,T,F,F,F,T,F,F,F,T, B[3] , -1, 64, 67), // Prefix of Railcraft. - orePoor ("Poor Ores" , "Poor " , " Ore" ,T,T,F,F,F,T,F,F,F,T, B[3] , -1, 64, -1), // Prefix of Railcraft. - oreEndstone ("Endstone Ores" , "End " , " Ore" ,T,T,F,F,F,T,F,F,F,T, B[3] , -1, 64, -1), // In case of an End-Ores Mod. Ore -> Material is a Oneway Operation! - oreEnd ("End Ores" , "End " , " Ore" ,T,T,F,F,F,T,F,F,F,T, B[3] , -1, 64, -1), // In case of an End-Ores Mod. Ore -> Material is a Oneway Operation! - @Deprecated oreGem ("Ores" , "" , "" ,F,F,F,F,F,T,F,F,F,T, B[3] , -1, 64, -1), - ore ("Ores" , "" , " Ore" ,T,T,F,F,F,T,F,F,F,T, B[3] , -1, 64, 68), // Regular Ore Prefix. Ore -> Material is a Oneway Operation! Introduced by Eloraam - crushedCentrifuged ("Centrifuged Ores" , "Centrifuged " , " Ore" ,T,T,F,F,F,F,F,T,F,T, B[3] , -1, 64, 7), - crushedPurified ("Purified Ores" , "Purified " , " Ore" ,T,T,F,F,F,F,F,T,F,T, B[3] , -1, 64, 6), - crushed ("Crushed Ores" , "Crushed " , " Ore" ,T,T,F,F,F,F,F,T,F,T, B[3] , -1, 64, 5), - shard ("Crystallised Shards" , "" , "" ,T,T,F,F,F,F,F,F,F,T, B[3] , -1, 64, -1), // Introduced by Mekanism - clump ("Clumps" , "" , "" ,T,T,F,F,F,F,F,F,F,T, B[3] , -1, 64, -1), - reduced ("Reduced Gravels" , "" , "" ,T,T,F,F,F,F,F,F,F,T, B[3] , -1, 64, -1), - crystalline ("Crystallised Metals" , "" , "" ,T,T,F,F,F,F,F,F,F,T, B[3] , -1, 64, -1), - cleanGravel ("Clean Gravels" , "" , "" ,T,T,F,F,F,F,F,F,F,T, B[3] , -1, 64, -1), - dirtyGravel ("Dirty Gravels" , "" , "" ,T,T,F,F,F,F,F,F,F,T, B[3] , -1, 64, -1), - ingotQuintuple ("5x Ingots" , "Quintuple " , " Ingot" ,T,T,F,F,F,F,T,T,F,F, B[1] , M * 5 , 12, 16), // A quintuple Ingot. - ingotQuadruple ("4x Ingots" , "Quadruple " , " Ingot" ,T,T,F,F,F,F,T,T,F,F, B[1] , M * 4 , 16, 15), // A quadruple Ingot. - @Deprecated ingotQuad ("4x Ingots" , "Quadruple " , " Ingot" ,F,F,F,F,F,F,F,F,F,F, B[1] , -1, 16, 15), - ingotTriple ("3x Ingots" , "Triple " , " Ingot" ,T,T,F,F,F,F,T,F,F,F, B[1] , M * 3 , 21, 14), // A triple Ingot. - ingotDouble ("2x Ingots" , "Double " , " Ingot" ,T,T,F,F,F,F,T,T,F,F, B[1] , M * 2 , 32, 13), // A double Ingot. Introduced by TerraFirmaCraft - ingotHot ("Hot Ingots" , "Hot " , " Ingot" ,T,T,F,F,F,F,F,T,F,F, B[1] , M * 1 , 16, 12), // A hot Ingot, which has to be cooled down by a Vacuum Freezer. - ingot ("Ingots" , "" , " Ingot" ,T,T,F,F,F,F,F,T,F,F, B[1] , M * 1 , 64, 11), // A regular Ingot. Introduced by Eloraam - gemChipped ("Chipped Gemstones" , "Chipped " , "" ,T,T,T,F,F,F,T,T,F,F, B[2] , M / 4 , 64, 59), // A regular Gem worth one small Dust. Introduced by TerraFirmaCraft - gemFlawed ("Flawed Gemstones" , "Flawed " , "" ,T,T,T,F,F,F,T,T,F,F, B[2] , M / 2 , 64, 60), // A regular Gem worth two small Dusts. Introduced by TerraFirmaCraft - gemFlawless ("Flawless Gemstones" , "Flawless " , "" ,T,T,T,F,F,F,T,T,F,F, B[2] , M * 2 , 32, 61), // A regular Gem worth two Dusts. Introduced by TerraFirmaCraft - gemExquisite ("Exquisite Gemstones" , "Exquisite " , "" ,T,T,T,F,F,F,T,T,F,F, B[2] , M * 4 , 16, 62), // A regular Gem worth four Dusts. Introduced by TerraFirmaCraft - gem ("Gemstones" , "" , "" ,T,T,T,F,F,F,T,T,F,F, B[2] , M * 1 , 64, 8), // A regular Gem worth one Dust. Introduced by Eloraam - @Deprecated dustDirty ("Impure Dusts" , "" , "" ,F,F,F,F,F,F,F,F,F,T, B[3] , -1, 64, 3), - dustTiny ("Tiny Dusts" , "Tiny Pile of " , " Dust" ,T,T,F,F,F,F,F,T,F,F, B[0]|B[1]|B[2]|B[3] , M / 9 , 64, 0), // 1/9th of a Dust. - dustSmall ("Small Dusts" , "Small Pile of " , " Dust" ,T,T,F,F,F,F,F,T,F,F, B[0]|B[1]|B[2]|B[3] , M / 4 , 64, 1), // 1/4th of a Dust. - dustImpure ("Impure Dusts" , "Impure Pile of " , " Dust" ,T,T,F,F,F,F,F,T,F,T, B[3] , M * 1 , 64, 3), // Dust with impurities. 1 Unit of Main Material and 1/9 - 1/4 Unit of secondary Material - dustRefined ("Refined Dusts" , "Refined Pile of " , " Dust" ,T,T,F,F,F,F,F,T,F,T, B[3] , M * 1 , 64, 2), - dustPure ("Purified Dusts" , "Purified Pile of " , " Dust" ,T,T,F,F,F,F,F,T,F,T, B[3] , M * 1 , 64, 4), - dust ("Dusts" , "" , " Dust" ,T,T,F,F,F,F,F,T,F,F, B[0]|B[1]|B[2]|B[3] , M * 1 , 64, 2), // Pure Dust worth of one Ingot or Gem. Introduced by Alblaka. - nugget ("Nuggets" , "" , " Nugget" ,T,T,F,F,F,F,F,T,F,F, B[1] , M / 9 , 64, 9), // A Nugget. Introduced by Eloraam - plateAlloy ("Alloy Plates" , "" , "" ,T,F,F,F,F,F,F,F,F,F, B[1] , -1, 64, 17), // Special Alloys have this prefix. - plateSteamcraft ("Steamcraft Plates" , "" , "" ,F,F,F,F,F,F,F,F,F,F, B[1] , -1, 64, 17), - plateDense ("Dense Plates" , "Dense " , " Plate" ,T,T,F,F,F,F,T,T,F,F, B[1] , M * 9 , 8, 22), // 9 Plates combined in one Item. - plateQuintuple ("5x Plates" , "Quintuple " , " Plate" ,T,T,F,F,F,F,T,T,F,F, B[1] , M * 5 , 12, 21), - plateQuadruple ("4x Plates" , "Quadruple " , " Plate" ,T,T,F,F,F,F,T,T,F,F, B[1] , M * 4 , 16, 20), - @Deprecated plateQuad ("4x Plates" , "" , "" ,F,F,F,F,F,F,F,F,F,F, B[1] , -1, 16, 20), - plateTriple ("3x Plates" , "Triple " , " Plate" ,T,T,F,F,F,F,T,T,F,F, B[1] , M * 3 , 21, 19), - plateDouble ("2x Plates" , "Double " , " Plate" ,T,T,F,F,F,F,T,T,F,F, B[1] , M * 2 , 32, 18), - plate ("Plates" , "" , " Plate" ,T,T,F,F,F,F,T,T,F,F, B[1]|B[2] , M * 1 , 64, 17), // Regular Plate made of one Ingot/Dust. Introduced by Calclavia - foil ("Foils" , "" , " Foil" ,T,T,F,F,F,F,T,T,F,F, B[1] , M / 4 , 64, 29), // Foil made of 1/4 Ingot/Dust. - stickLong ("Long Sticks/Rods" , "Long " , " Rod" ,T,T,F,F,F,F,T,T,F,F, B[1]|B[2] , M * 1 , 64, 54), // Stick made of an Ingot. - stick ("Sticks/Rods" , "" , " Rod" ,T,T,F,F,F,F,T,T,F,F, B[1]|B[2] , M / 2 , 64, 23), // Stick made of half an Ingot. Introduced by Eloraam - round ("Rounds" , "" , " Round" ,T,T,F,F,F,F,T,T,F,F, B[1] , M / 9 , 64, 25), // consisting out of one Nugget. - bolt ("Bolts" , "" , " Bolt" ,T,T,F,F,F,F,T,T,F,F, B[1]|B[2] , M / 8 , 64, 26), // consisting out of 1/8 Ingot or 1/4 Stick. - screw ("Screws" , "" , " Screw" ,T,T,F,F,F,F,T,T,F,F, B[1]|B[2] , M / 9 , 64, 27), // consisting out of a Bolt. - ring ("Rings" , "" , " Ring" ,T,T,F,F,F,F,T,T,F,F, B[1] , M / 4 , 64, 28), // consisting out of 1/2 Stick. - springSmall ("Small Springs" , "Small " , " Spring" ,T,T,F,F,F,F,T,T,F,F, B[1] , M / 4 , 64, 55), // consisting out of 1 Fine Wire. - spring ("Springs" , "" , " Spring" ,T,T,F,F,F,F,T,T,F,F, B[1] , M * 1 , 64, 56), // consisting out of 2 Sticks. - wireFine ("Fine Wires" , "Fine " , " Wire" ,T,T,F,F,F,F,T,T,F,F, B[1] , M / 8 , 64, 51), // consisting out of 1/8 Ingot or 1/4 Wire. - rotor ("Rotors" , "" , " Rotor" ,T,T,F,F,F,F,T,T,F,F, B[7] ,M*4+M/4+M/9,16, 53), // consisting out of 4 Plates, 1 Ring and 1 Screw. - gearGtSmall ("Small Gears" , "Small " , " Gear" ,T,T,F,F,F,F,T,T,F,F, B[7] , M * 1 , 64, 52), - gearGt ("Gears" , "" , " Gear" ,T,T,F,F,F,F,T,T,F,F, B[7] , M * 4 , 16, 63), // Introduced by me because BuildCraft has ruined the gear Prefix... - lens ("Lenses" , "" , " Lens" ,T,T,F,F,F,F,T,T,F,F, B[2] ,(M * 3)/ 4, 64, 24), // 3/4 of a Plate or Gem used to shape a Lense. Normally only used on Transparent Materials. - crateGtDust ("Crates of Dust" , "Crate of " , " Dust" ,T,T,F,T,F,F,F,T,F,F, B[0]|B[1]|B[2]|B[3] , -1, 64, 96), // consisting out of 16 Dusts. - crateGtPlate ("Crates of Plates" , "Crate of " , " Plate" ,T,T,F,T,F,F,F,T,F,F, B[1]|B[2] , -1, 64, 99), // consisting out of 16 Plates. - crateGtIngot ("Crates of Ingots" , "Crate of " , " Ingot" ,T,T,F,T,F,F,F,T,F,F, B[1] , -1, 64, 97), // consisting out of 16 Ingots. - crateGtGem ("Crates of Gems" , "Crate of " , " Gem" ,T,T,F,T,F,F,F,T,F,F, B[2] , -1, 64, 98), // consisting out of 16 Gems. - cellPlasma ("Cells of Plasma" , "" , " Plasma Cell" ,T,T,T,T,F,F,F,T,F,F, B[5] , M * 1 , 64, 31), // Hot Cell full of Plasma, which can be used in the Plasma Generator. - cell ("Cells" , "" , " Cell" ,T,T,T,T,F,F,T,T,F,F, B[4]|B[8] , M * 1 , 64, 30), // Regular Gas/Fluid Cell. Introduced by Calclavia - bucket ("Buckets" , "" , " Bucket" ,T,T,T,T,F,F,T,F,F,F, B[4]|B[8] , M * 1 , 16, -1), // A vanilla Iron Bucket filled with the Material. - bottle ("Bottles" , "" , " Bottle" ,T,T,T,T,F,F,F,F,F,F, B[4]|B[8] , -1, 16, -1), // Glass Bottle containing a Fluid. - capsule ("Capsules" , "" , " Capsule" ,F,T,T,T,F,F,F,F,F,F, B[4]|B[8] , M * 1 , 16, -1), - crystal ("Crystals" , "" , " Crystal" ,F,T,F,F,F,F,T,F,F,F, B[2] , M * 1 , 64, -1), - bulletGtSmall ("Small Bullets" , "Small " , " Bullet" ,T,T,F,F,T,F,T,F,T,F, B[6]|B[8] , M / 9 , 64, -1), - bulletGtMedium ("Medium Bullets" , "Medium " , " Bullet" ,T,T,F,F,T,F,T,F,T,F, B[6]|B[8] , M / 6 , 64, -1), - bulletGtLarge ("Large Bullets" , "Large " , " Bullet" ,T,T,F,F,T,F,T,F,T,F, B[6]|B[8] , M / 3 , 64, -1), - arrowGtWood ("Regular Arrows" , "" , " Arrow" ,T,T,F,F,T,F,T,F,T,F, B[6] , M / 4 , 64, 57), // Arrow made of 1/4 Ingot/Dust + Wooden Stick. - arrowGtPlastic ("Light Arrows" , "Light " , " Arrow" ,T,T,F,F,T,F,T,F,T,F, B[6] , M / 4 , 64, 58), // Arrow made of 1/4 Ingot/Dust + Plastic Stick. - arrow ("Arrows" , "" , "" ,F,F,T,F,F,F,F,F,T,F, B[6] , -1, 64, 57), - toolHeadArrow ("Arrow Heads" , "" , " Arrow Head" ,T,T,F,F,F,F,T,T,F,F, B[6] , M / 4 , 64, 46), // consisting out of 1/4 Ingot. - toolHeadSword ("Sword Blades" , "" , " Sword Blade" ,T,T,F,F,F,F,T,T,F,F, B[6] , M * 2 , 16, 32), // consisting out of 2 Ingots. - toolHeadPickaxe ("Pickaxe Heads" , "" , " Pickaxe Head" ,T,T,F,F,F,F,T,T,F,F, B[6] , M * 3 , 16, 33), // consisting out of 3 Ingots. - toolHeadShovel ("Shovel Heads" , "" , " Shovel Head" ,T,T,F,F,F,F,T,T,F,F, B[6] , M * 1 , 16, 34), // consisting out of 1 Ingots. - toolHeadUniversalSpade ("Universal Spade Heads" , "" , " Universal Spade Head" ,T,T,F,F,F,F,T,T,F,F, B[6] , M * 1 , 16, 43), // consisting out of 1 Ingots. - toolHeadAxe ("Axe Heads" , "" , " Axe Head" ,T,T,F,F,F,F,T,T,F,F, B[6] , M * 3 , 16, 35), // consisting out of 3 Ingots. - toolHeadHoe ("Hoe Heads" , "" , " Hoe Head" ,T,T,F,F,F,F,T,T,F,F, B[6] , M * 2 , 16, 36), // consisting out of 2 Ingots. - toolHeadSense ("Sense Blades" , "" , " Sense Blade" ,T,T,F,F,F,F,T,T,F,F, B[6] , M * 3 , 16, 44), // consisting out of 3 Ingots. - toolHeadFile ("File Heads" , "" , " File Head" ,T,T,F,F,F,F,T,T,F,F, B[6] , M * 2 , 16, 38), // consisting out of 2 Ingots. - toolHeadHammer ("Hammer Heads" , "" , " Hammer Head" ,T,T,F,F,F,F,T,T,F,F, B[6] , M * 6 , 16, 37), // consisting out of 6 Ingots. - toolHeadPlow ("Plow Heads" , "" , " Plow Head" ,T,T,F,F,F,F,T,T,F,F, B[6] , M * 4 , 16, 45), // consisting out of 4 Ingots. - toolHeadSaw ("Saw Blades" , "" , " Saw Blade" ,T,T,F,F,F,F,T,T,F,F, B[6] , M * 2 , 16, 39), // consisting out of 2 Ingots. - toolHeadBuzzSaw ("Buzzsaw Blades" , "" , " Buzzsaw Blade" ,T,T,F,F,F,F,T,T,F,F, B[6] , M * 4 , 16, 48), // consisting out of 4 Ingots. - toolHeadScrewdriver ("Screwdriver Tips" , "" , " Screwdriver Tip" ,T,T,F,F,F,F,T,F,F,F, B[6] , M * 1 , 16, 47), // consisting out of 1 Ingots. - toolHeadDrill ("Drill Tips" , "" , " Drill Tip" ,T,T,F,F,F,F,T,T,F,F, B[6] , M * 4 , 16, 40), // consisting out of 4 Ingots. - toolHeadChainsaw ("Chainsaw Tips" , "" , " Chainsaw Tip" ,T,T,F,F,F,F,T,T,F,F, B[6] , M * 2 , 16, 41), // consisting out of 2 Ingots. - toolHeadWrench ("Wrench Tips" , "" , " Wrench Tip" ,T,T,F,F,F,F,T,T,F,F, B[6] , M * 4 , 16, 42), // consisting out of 4 Ingots. - turbineBlade ("Turbine Blades" , "" , " Turbine Blade" ,T,T,F,F,F,F,T,T,F,F, B[6] , M * 6 , 64, 100), // consisting out of 6 Ingots. - toolSword ("Swords" , "" , "" ,F,T,F,F,F,F,T,F,T,F, B[6] , M * 2 , 1, -1), // vanilly Sword - toolPickaxe ("Pickaxes" , "" , "" ,F,T,F,F,F,F,T,F,T,F, B[6] , M * 3 , 1, -1), // vanilly Pickaxe - toolShovel ("Shovels" , "" , "" ,F,T,F,F,F,F,T,F,T,F, B[6] , M * 1 , 1, -1), // vanilly Shovel - toolAxe ("Axes" , "" , "" ,F,T,F,F,F,F,T,F,T,F, B[6] , M * 3 , 1, -1), // vanilly Axe - toolHoe ("Hoes" , "" , "" ,F,T,F,F,F,F,T,F,T,F, B[6] , M * 2 , 1, -1), // vanilly Hoe - toolShears ("Shears" , "" , "" ,F,T,F,F,F,F,T,F,T,F, B[6] , M * 2 , 1, -1), // vanilly Shears - tool ("Tools" , "" , "" ,F,F,F,F,F,F,F,F,T,F, B[6] , -1, 1, -1), // toolPot, toolSkillet, toolSaucepan, toolBakeware, toolCuttingboard, toolMortarandpestle, toolMixingbowl, toolJuicer - compressedCobblestone ("9^X Compressed Cobblestones" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - compressedStone ("9^X Compressed Stones" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - compressedDirt ("9^X Compressed Dirt" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - compressedGravel ("9^X Compressed Gravel" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - compressedSand ("9^X Compressed Sand" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - compressed ("Compressed Materials" , "Compressed " , "" ,T,T,F,F,F,F,T,F,F,F, 0 , M * 2 , 64, -1), // Compressed Material, worth 1 Unit. Introduced by Galacticraft - glass ("Glasses" , "" , "" ,F,F,T,F,T,F,F,F,F,F, 0 , -1, 64, -1), - paneGlass ("Glass Panes" , "" , "" ,F,F,T,F,F,T,F,F,F,F, 0 , -1, 64, -1), - blockGlass ("Glass Blocks" , "" , "" ,F,F,T,F,F,T,F,F,F,F, 0 , -1, 64, -1), - blockWool ("Wool Blocks" , "" , "" ,F,F,T,F,F,T,F,F,F,F, 0 , -1, 64, -1), - block_ ("Random Blocks" , "" , "" ,F,F,F,F,F,T,F,F,F,F, 0 , -1, 64, -1), // IGNORE - block ("Storage Blocks" , "Block of " , "" ,T,T,F,F,F,T,T,F,F,F, 0 , M * 9 , 64, 71), // Storage Block consisting out of 9 Ingots/Gems/Dusts. Introduced by CovertJaguar - craftingTool ("Crafting Tools" , "" , "" ,F,F,F,F,F,F,F,F,T,F, 0 , -1, 64, -1), // Special Prefix used mainly for the Crafting Handler. - crafting ("Crafting Ingredients" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), // Special Prefix used mainly for the Crafting Handler. - craft ("Crafting Stuff?" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), // Special Prefix used mainly for the Crafting Handler. - log ("Logs" , "" , "" ,F,F,F,F,F,T,F,F,F,F, 0 , -1, 64, -1), // Prefix used for Logs. Usually as "logWood". Introduced by Eloraam - slab ("Slabs" , "" , "" ,F,F,F,F,F,T,F,F,F,F, 0 , -1, 64, -1), // Prefix used for Slabs. Usually as "slabWood" or "slabStone". Introduced by SirSengir - stair ("Stairs" , "" , "" ,F,F,F,F,F,T,F,F,F,F, 0 , -1, 64, -1), // Prefix used for Stairs. Usually as "stairWood" or "stairStone". Introduced by SirSengir - fence ("Fences" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), // Prefix used for Fences. Usually as "fenceWood". Introduced by Forge - plank ("Planks" , "" , "" ,F,F,F,F,F,T,F,F,F,F, 0 , -1, 64, -1), // Prefix for Planks. Usually "plankWood". Introduced by Eloraam - treeSapling ("Saplings" , "" , "" ,F,F,T,F,F,T,F,F,F,F, 0 , -1, 64, -1), // Prefix for Saplings. - treeLeaves ("Leaves" , "" , "" ,F,F,T,F,F,T,F,F,F,F, 0 , -1, 64, -1), // Prefix for Leaves. - tree ("Tree Parts" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), // Prefix for Tree Parts. - stoneCobble ("Cobblestones" , "" , "" ,F,F,T,F,F,T,F,F,F,F, 0 , -1, 64, -1), // Cobblestone Prefix for all Cobblestones. - stoneSmooth ("Smoothstones" , "" , "" ,F,F,T,F,F,T,F,F,F,F, 0 , -1, 64, -1), // Smoothstone Prefix. - stoneMossyBricks ("mossy Stone Bricks" , "" , "" ,F,F,T,F,F,T,F,F,F,F, 0 , -1, 64, -1), // Mossy Stone Bricks. - stoneMossy ("Mossy Stones" , "" , "" ,F,F,T,F,F,T,F,F,F,F, 0 , -1, 64, -1), // Mossy Cobble. - @Deprecated stoneBricksMossy("Mossy Stone Bricks" , "" , "" ,F,F,F,F,F,T,F,F,F,F, 0 , -1, 64, -1), - stoneBricks ("Stone Bricks" , "" , "" ,F,F,T,F,F,T,F,F,F,F, 0 , -1, 64, -1), // Stone Bricks. - @Deprecated stoneBrick ("Stone Bricks" , "" , "" ,F,F,F,F,F,T,F,F,F,F, 0 , -1, 64, -1), - stoneCracked ("Cracked Stones" , "" , "" ,F,F,T,F,F,T,F,F,F,F, 0 , -1, 64, -1), // Cracked Bricks. - stoneChiseled ("Chiseled Stones" , "" , "" ,F,F,T,F,F,T,F,F,F,F, 0 , -1, 64, -1), // Chiseled Stone. - stone ("Stones" , "" , "" ,F,T,T,F,T,T,F,F,F,F, 0 , -1, 64, -1), // Prefix to determine which kind of Rock this is. - cobblestone ("Cobblestones" , "" , "" ,F,T,T,F,F,T,F,F,F,F, 0 , -1, 64, -1), - rock ("Rocks" , "" , "" ,F,T,T,F,T,T,F,F,F,F, 0 , -1, 64, -1), // Prefix to determine which kind of Rock this is. - record ("Records" , "" , "" ,F,F,T,F,F,F,F,F,F,F, 0 , -1, 1, -1), - rubble ("Rubbles" , "" , "" ,T,T,T,F,F,F,F,F,F,F, 0 , -1, 64, -1), - scraps ("Scraps" , "" , "" ,T,T,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - scrap ("Scraps" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - item_ ("Items" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), // IGNORE - item ("Items" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), // Random Item. Introduced by Alblaka - book ("Books" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), // Used for Books of any kind. - paper ("Papers" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), // Used for Papers of any kind. - dye ("Dyes" , "" , "" ,F,F,T,F,F,F,F,F,F,F, 0 , -1, 64, -1), // Used for the 16 dyes. Introduced by Eloraam - stainedClay ("Stained Clays" , "" , "" ,F,F,T,F,F,T,F,F,F,F, 0 , -1, 64, -1), // Used for the 16 colors of Stained Clay. Introduced by Forge - armorHelmet ("Helmets" , "" , "" ,F,T,F,F,F,F,T,F,T,F, B[6] , M * 5 , 1, -1), // vanilly Helmet - armorChestplate ("Chestplates" , "" , "" ,F,T,F,F,F,F,T,F,T,F, B[6] , M * 8 , 1, -1), // vanilly Chestplate - armorLeggings ("Leggings" , "" , "" ,F,T,F,F,F,F,T,F,T,F, B[6] , M * 7 , 1, -1), // vanilly Pants - armorBoots ("Boots" , "" , "" ,F,T,F,F,F,F,T,F,T,F, B[6] , M * 4 , 1, -1), // vanilly Boots - armor ("Armor Parts" , "" , "" ,F,F,F,F,F,F,F,F,T,F, B[6] , -1, 1, -1), - frameGt ("Frame Boxes" , "" , "" ,T,T,F,F,T,F,T,F,F,F, 0 , M * 2 , 64, 83), - pipeTiny ("Tiny Pipes" , "Tiny " , " Pipe" ,T,T,F,F,T,F,T,F,F,F, 0 , M / 2 , 64, 78), - pipeSmall ("Small Pipes" , "Small " , " Pipe" ,T,T,F,F,T,F,T,F,F,F, 0 , M * 1 , 64, 79), - pipeMedium ("Medium Pipes" , "Medium " , " Pipe" ,T,T,F,F,T,F,T,F,F,F, 0 , M * 3 , 64, 80), - pipeLarge ("Large pipes" , "Large " , " Pipe" ,T,T,F,F,T,F,T,F,F,F, 0 , M * 6 , 64, 81), - pipeHuge ("Huge Pipes" , "Huge " , " Pipe" ,T,T,F,F,T,F,T,F,F,F, 0 , M *12 , 64, 82), - pipeRestrictiveTiny ("Tiny Restrictive Pipes" , "Tiny Restrictive " , " Pipe" ,T,T,F,F,T,F,T,F,F,F, 0 , M / 2 , 64, 78), - pipeRestrictiveSmall ("Small Restrictive Pipes" , "Small Restrictive " , " Pipe" ,T,T,F,F,T,F,T,F,F,F, 0 , M * 1 , 64, 79), - pipeRestrictiveMedium ("Medium Restrictive Pipes" , "Medium Restrictive " , " Pipe" ,T,T,F,F,T,F,T,F,F,F, 0 , M * 3 , 64, 80), - pipeRestrictiveLarge ("Large Restrictive Pipes" , "Large Restrictive " , " Pipe" ,T,T,F,F,T,F,T,F,F,F, 0 , M * 6 , 64, 81), - pipeRestrictiveHuge ("Huge Restrictive Pipes" , "Huge Restrictive " , " Pipe" ,T,T,F,F,T,F,T,F,F,F, 0 , M *12 , 64, 82), - pipe ("Pipes" , "" , " Pipe" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, 77), - wireGt16 ("16x Wires" , "16x " , " Wire" ,T,T,F,F,F,F,T,F,F,F, 0 , M * 8 , 64, -1), - wireGt12 ("12x Wires" , "12x " , " Wire" ,T,T,F,F,F,F,T,F,F,F, 0 , M * 6 , 64, -1), - wireGt08 ("8x Wires" , "8x " , " Wire" ,T,T,F,F,F,F,T,F,F,F, 0 , M * 4 , 64, -1), - wireGt04 ("4x Wires" , "4x " , " Wire" ,T,T,F,F,F,F,T,F,F,F, 0 , M * 2 , 64, -1), - wireGt02 ("2x Wires" , "2x " , " Wire" ,T,T,F,F,F,F,T,F,F,F, 0 , M * 1 , 64, -1), - wireGt01 ("1x Wires" , "1x " , " Wire" ,T,T,F,F,F,F,T,F,F,F, 0 , M / 2 , 64, -1), - cableGt12 ("12x Cables" , "12x " , " Cable" ,T,T,F,F,F,F,T,F,F,F, 0 , M * 6 , 64, -1), - cableGt08 ("8x Cables" , "8x " , " Cable" ,T,T,F,F,F,F,T,F,F,F, 0 , M * 4 , 64, -1), - cableGt04 ("4x Cables" , "4x " , " Cable" ,T,T,F,F,F,F,T,F,F,F, 0 , M * 2 , 64, -1), - cableGt02 ("2x Cables" , "2x " , " Cable" ,T,T,F,F,F,F,T,F,F,F, 0 , M * 1 , 64, -1), - cableGt01 ("1x Cables" , "1x " , " Cable" ,T,T,F,F,F,F,T,F,F,F, 0 , M / 2 , 64, -1), + @Deprecated pulp ("Pulps" , "" , "" , false, false, false, false, false, false, false, false, false, false, B[0]|B[1]|B[2]|B[3] , -1, 64, -1), + @Deprecated leaves ("Leaves" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + @Deprecated sapling ("Saplings" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + @Deprecated itemDust ("Dusts" , "" , "" , false, false, false, false, false, false, false, false, false, false, B[0]|B[1]|B[2]|B[3] , -1, 64, -1), + oreBlackgranite ("Black Granite Ores" , "Granite " , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), // In case of an End-Ores Mod. Ore -> Material is a Oneway Operation! + oreRedgranite ("Red Granite Ores" , "Granite " , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), // In case of an End-Ores Mod. Ore -> Material is a Oneway Operation! + oreNetherrack ("Netherrack Ores" , "Nether " , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), // Prefix of the Nether-Ores Mod. Causes Ores to double. Ore -> Material is a Oneway Operation! + oreNether ("Nether Ores" , "Nether " , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), // Prefix of the Nether-Ores Mod. Causes Ores to double. Ore -> Material is a Oneway Operation! + @Deprecated denseore ("Dense Ores" , "" , "" , false, false, false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), + oreDense ("Dense Ores" , "Dense " , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), // Prefix of the Dense-Ores Mod. Causes Ores to double. Ore -> Material is a Oneway Operation! + oreRich ("Rich Ores" , "Rich " , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), // Prefix of TFC + oreNormal ("Normal Ores" , "Normal " , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), // Prefix of TFC + oreSmall ("Small Ores" , "Small " , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, 67), // Prefix of Railcraft. + orePoor ("Poor Ores" , "Poor " , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), // Prefix of Railcraft. + oreEndstone ("Endstone Ores" , "End " , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), // In case of an End-Ores Mod. Ore -> Material is a Oneway Operation! + oreEnd ("End Ores" , "End " , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), // In case of an End-Ores Mod. Ore -> Material is a Oneway Operation! + @Deprecated oreGem ("Ores" , "" , "" , false, false, false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), + ore ("Ores" , "" , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, 68), // Regular Ore Prefix. Ore -> Material is a Oneway Operation! Introduced by Eloraam + crushedCentrifuged ("Centrifuged Ores" , "Centrifuged " , " Ore" , true , true , false, false, false, false, false, true , false, true , B[3] , -1, 64, 7), + crushedPurified ("Purified Ores" , "Purified " , " Ore" , true , true , false, false, false, false, false, true , false, true , B[3] , -1, 64, 6), + crushed ("Crushed Ores" , "Crushed " , " Ore" , true , true , false, false, false, false, false, true , false, true , B[3] , -1, 64, 5), + shard ("Crystallised Shards" , "" , "" , true , true , false, false, false, false, false, false, false, true , B[3] , -1, 64, -1), // Introduced by Mekanism + clump ("Clumps" , "" , "" , true , true , false, false, false, false, false, false, false, true , B[3] , -1, 64, -1), + reduced ("Reduced Gravels" , "" , "" , true , true , false, false, false, false, false, false, false, true , B[3] , -1, 64, -1), + crystalline ("Crystallised Metals" , "" , "" , true , true , false, false, false, false, false, false, false, true , B[3] , -1, 64, -1), + cleanGravel ("Clean Gravels" , "" , "" , true , true , false, false, false, false, false, false, false, true , B[3] , -1, 64, -1), + dirtyGravel ("Dirty Gravels" , "" , "" , true , true , false, false, false, false, false, false, false, true , B[3] , -1, 64, -1), + ingotQuintuple ("5x Ingots" , "Quintuple " , " Ingot" , true , true , false, false, false, false, true , true , false, false, B[1] , M * 5 , 12, 16), // A quintuple Ingot. + ingotQuadruple ("4x Ingots" , "Quadruple " , " Ingot" , true , true , false, false, false, false, true , true , false, false, B[1] , M * 4 , 16, 15), // A quadruple Ingot. + @Deprecated ingotQuad ("4x Ingots" , "Quadruple " , " Ingot" , false, false, false, false, false, false, false, false, false, false, B[1] , -1, 16, 15), + ingotTriple ("3x Ingots" , "Triple " , " Ingot" , true , true , false, false, false, false, true , false, false, false, B[1] , M * 3 , 21, 14), // A triple Ingot. + ingotDouble ("2x Ingots" , "Double " , " Ingot" , true , true , false, false, false, false, true , true , false, false, B[1] , M * 2 , 32, 13), // A double Ingot. Introduced by TerraFirmaCraft + ingotHot ("Hot Ingots" , "Hot " , " Ingot" , true , true , false, false, false, false, false, true , false, false, B[1] , M * 1 , 16, 12), // A hot Ingot, which has to be cooled down by a Vacuum Freezer. + ingot ("Ingots" , "" , " Ingot" , true , true , false, false, false, false, false, true , false, false, B[1] , M * 1 , 64, 11), // A regular Ingot. Introduced by Eloraam + gemChipped ("Chipped Gemstones" , "Chipped " , "" , true , true , true , false, false, false, true , true , false, false, B[2] , M / 4 , 64, 59), // A regular Gem worth one small Dust. Introduced by TerraFirmaCraft + gemFlawed ("Flawed Gemstones" , "Flawed " , "" , true , true , true , false, false, false, true , true , false, false, B[2] , M / 2 , 64, 60), // A regular Gem worth two small Dusts. Introduced by TerraFirmaCraft + gemFlawless ("Flawless Gemstones" , "Flawless " , "" , true , true , true , false, false, false, true , true , false, false, B[2] , M * 2 , 32, 61), // A regular Gem worth two Dusts. Introduced by TerraFirmaCraft + gemExquisite ("Exquisite Gemstones" , "Exquisite " , "" , true , true , true , false, false, false, true , true , false, false, B[2] , M * 4 , 16, 62), // A regular Gem worth four Dusts. Introduced by TerraFirmaCraft + gem ("Gemstones" , "" , "" , true , true , true , false, false, false, true , true , false, false, B[2] , M * 1 , 64, 8), // A regular Gem worth one Dust. Introduced by Eloraam + @Deprecated dustDirty ("Impure Dusts" , "" , "" , false, false, false, false, false, false, false, false, false, true , B[3] , -1, 64, 3), + dustTiny ("Tiny Dusts" , "Tiny Pile of " , " Dust" , true , true , false, false, false, false, false, true , false, false, B[0]|B[1]|B[2]|B[3] , M / 9 , 64, 0), // 1/9th of a Dust. + dustSmall ("Small Dusts" , "Small Pile of " , " Dust" , true , true , false, false, false, false, false, true , false, false, B[0]|B[1]|B[2]|B[3] , M / 4 , 64, 1), // 1/4th of a Dust. + dustImpure ("Impure Dusts" , "Impure Pile of " , " Dust" , true , true , false, false, false, false, false, true , false, true , B[3] , M * 1 , 64, 3), // Dust with impurities. 1 Unit of Main Material and 1/9 - 1/4 Unit of secondary Material + dustRefined ("Refined Dusts" , "Refined Pile of " , " Dust" , true , true , false, false, false, false, false, true , false, true , B[3] , M * 1 , 64, 2), + dustPure ("Purified Dusts" , "Purified Pile of " , " Dust" , true , true , false, false, false, false, false, true , false, true , B[3] , M * 1 , 64, 4), + dust ("Dusts" , "" , " Dust" , true , true , false, false, false, false, false, true , false, false, B[0]|B[1]|B[2]|B[3] , M * 1 , 64, 2), // Pure Dust worth of one Ingot or Gem. Introduced by Alblaka. + nugget ("Nuggets" , "" , " Nugget" , true , true , false, false, false, false, false, true , false, false, B[1] , M / 9 , 64, 9), // A Nugget. Introduced by Eloraam + plateAlloy ("Alloy Plates" , "" , "" , true , false, false, false, false, false, false, false, false, false, B[1] , -1, 64, 17), // Special Alloys have this prefix. + plateSteamcraft ("Steamcraft Plates" , "" , "" , false, false, false, false, false, false, false, false, false, false, B[1] , -1, 64, 17), + plateDense ("Dense Plates" , "Dense " , " Plate" , true , true , false, false, false, false, true , true , false, false, B[1] , M * 9 , 8, 22), // 9 Plates combined in one Item. + plateQuintuple ("5x Plates" , "Quintuple " , " Plate" , true , true , false, false, false, false, true , true , false, false, B[1] , M * 5 , 12, 21), + plateQuadruple ("4x Plates" , "Quadruple " , " Plate" , true , true , false, false, false, false, true , true , false, false, B[1] , M * 4 , 16, 20), + @Deprecated plateQuad ("4x Plates" , "" , "" , false, false, false, false, false, false, false, false, false, false, B[1] , -1, 16, 20), + plateTriple ("3x Plates" , "Triple " , " Plate" , true , true , false, false, false, false, true , true , false, false, B[1] , M * 3 , 21, 19), + plateDouble ("2x Plates" , "Double " , " Plate" , true , true , false, false, false, false, true , true , false, false, B[1] , M * 2 , 32, 18), + plate ("Plates" , "" , " Plate" , true , true , false, false, false, false, true , true , false, false, B[1]|B[2] , M * 1 , 64, 17), // Regular Plate made of one Ingot/Dust. Introduced by Calclavia + foil ("Foils" , "" , " Foil" , true , true , false, false, false, false, true , true , false, false, B[1] , M / 4 , 64, 29), // Foil made of 1/4 Ingot/Dust. + stickLong ("Long Sticks/Rods" , "Long " , " Rod" , true , true , false, false, false, false, true , true , false, false, B[1]|B[2] , M * 1 , 64, 54), // Stick made of an Ingot. + stick ("Sticks/Rods" , "" , " Rod" , true , true , false, false, false, false, true , true , false, false, B[1]|B[2] , M / 2 , 64, 23), // Stick made of half an Ingot. Introduced by Eloraam + round ("Rounds" , "" , " Round" , true , true , false, false, false, false, true , true , false, false, B[1] , M / 9 , 64, 25), // consisting out of one Nugget. + bolt ("Bolts" , "" , " Bolt" , true , true , false, false, false, false, true , true , false, false, B[1]|B[2] , M / 8 , 64, 26), // consisting out of 1/8 Ingot or 1/4 Stick. + screw ("Screws" , "" , " Screw" , true , true , false, false, false, false, true , true , false, false, B[1]|B[2] , M / 9 , 64, 27), // consisting out of a Bolt. + ring ("Rings" , "" , " Ring" , true , true , false, false, false, false, true , true , false, false, B[1] , M / 4 , 64, 28), // consisting out of 1/2 Stick. + springSmall ("Small Springs" , "Small " , " Spring" , true , true , false, false, false, false, true , true , false, false, B[1] , M / 4 , 64, 55), // consisting out of 1 Fine Wire. + spring ("Springs" , "" , " Spring" , true , true , false, false, false, false, true , true , false, false, B[1] , M * 1 , 64, 56), // consisting out of 2 Sticks. + wireFine ("Fine Wires" , "Fine " , " Wire" , true , true , false, false, false, false, true , true , false, false, B[1] , M / 8 , 64, 51), // consisting out of 1/8 Ingot or 1/4 Wire. + rotor ("Rotors" , "" , " Rotor" , true , true , false, false, false, false, true , true , false, false, B[7] ,M*4+M/4+M/9,16, 53), // consisting out of 4 Plates, 1 Ring and 1 Screw. + gearGtSmall ("Small Gears" , "Small " , " Gear" , true , true , false, false, false, false, true , true , false, false, B[7] , M * 1 , 64, 52), + gearGt ("Gears" , "" , " Gear" , true , true , false, false, false, false, true , true , false, false, B[7] , M * 4 , 16, 63), // Introduced by me because BuildCraft has ruined the gear Prefix... + lens ("Lenses" , "" , " Lens" , true , true , false, false, false, false, true , true , false, false, B[2] ,(M * 3)/ 4, 64, 24), // 3/4 of a Plate or Gem used to shape a Lense. Normally only used on Transparent Materials. + crateGtDust ("Crates of Dust" , "Crate of " , " Dust" , true , true , false, true , false, false, false, true , false, false, B[0]|B[1]|B[2]|B[3] , -1, 64, 96), // consisting out of 16 Dusts. + crateGtPlate ("Crates of Plates" , "Crate of " , " Plate" , true , true , false, true , false, false, false, true , false, false, B[1]|B[2] , -1, 64, 99), // consisting out of 16 Plates. + crateGtIngot ("Crates of Ingots" , "Crate of " , " Ingot" , true , true , false, true , false, false, false, true , false, false, B[1] , -1, 64, 97), // consisting out of 16 Ingots. + crateGtGem ("Crates of Gems" , "Crate of " , " Gem" , true , true , false, true , false, false, false, true , false, false, B[2] , -1, 64, 98), // consisting out of 16 Gems. + cellPlasma ("Cells of Plasma" , "" , " Plasma Cell" , true , true , true , true , false, false, false, true , false, false, B[5] , M * 1 , 64, 31), // Hot Cell full of Plasma, which can be used in the Plasma Generator. + cell ("Cells" , "" , " Cell" , true , true , true , true , false, false, true , true , false, false, B[4]|B[8] , M * 1 , 64, 30), // Regular Gas/Fluid Cell. Introduced by Calclavia + bucket ("Buckets" , "" , " Bucket" , true , true , true , true , false, false, true , false, false, false, B[4]|B[8] , M * 1 , 16, -1), // A vanilla Iron Bucket filled with the Material. + bottle ("Bottles" , "" , " Bottle" , true , true , true , true , false, false, false, false, false, false, B[4]|B[8] , -1, 16, -1), // Glass Bottle containing a Fluid. + capsule ("Capsules" , "" , " Capsule" , false, true , true , true , false, false, false, false, false, false, B[4]|B[8] , M * 1 , 16, -1), + crystal ("Crystals" , "" , " Crystal" , false, true , false, false, false, false, true , false, false, false, B[2] , M * 1 , 64, -1), + bulletGtSmall ("Small Bullets" , "Small " , " Bullet" , true , true , false, false, true , false, true , false, true , false, B[6]|B[8] , M / 9 , 64, -1), + bulletGtMedium ("Medium Bullets" , "Medium " , " Bullet" , true , true , false, false, true , false, true , false, true , false, B[6]|B[8] , M / 6 , 64, -1), + bulletGtLarge ("Large Bullets" , "Large " , " Bullet" , true , true , false, false, true , false, true , false, true , false, B[6]|B[8] , M / 3 , 64, -1), + arrowGtWood ("Regular Arrows" , "" , " Arrow" , true , true , false, false, true , false, true , false, true , false, B[6] , M / 4 , 64, 57), // Arrow made of 1/4 Ingot/Dust + Wooden Stick. + arrowGtPlastic ("Light Arrows" , "Light " , " Arrow" , true , true , false, false, true , false, true , false, true , false, B[6] , M / 4 , 64, 58), // Arrow made of 1/4 Ingot/Dust + Plastic Stick. + arrow ("Arrows" , "" , "" , false, false, true , false, false, false, false, false, true , false, B[6] , -1, 64, 57), + toolHeadArrow ("Arrow Heads" , "" , " Arrow Head" , true , true , false, false, false, false, true , true , false, false, B[6] , M / 4 , 64, 46), // consisting out of 1/4 Ingot. + toolHeadSword ("Sword Blades" , "" , " Sword Blade" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 2 , 16, 32), // consisting out of 2 Ingots. + toolHeadPickaxe ("Pickaxe Heads" , "" , " Pickaxe Head" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 3 , 16, 33), // consisting out of 3 Ingots. + toolHeadShovel ("Shovel Heads" , "" , " Shovel Head" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 1 , 16, 34), // consisting out of 1 Ingots. + toolHeadUniversalSpade ("Universal Spade Heads" , "" , " Universal Spade Head" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 1 , 16, 43), // consisting out of 1 Ingots. + toolHeadAxe ("Axe Heads" , "" , " Axe Head" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 3 , 16, 35), // consisting out of 3 Ingots. + toolHeadHoe ("Hoe Heads" , "" , " Hoe Head" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 2 , 16, 36), // consisting out of 2 Ingots. + toolHeadSense ("Sense Blades" , "" , " Sense Blade" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 3 , 16, 44), // consisting out of 3 Ingots. + toolHeadFile ("File Heads" , "" , " File Head" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 2 , 16, 38), // consisting out of 2 Ingots. + toolHeadHammer ("Hammer Heads" , "" , " Hammer Head" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 6 , 16, 37), // consisting out of 6 Ingots. + toolHeadPlow ("Plow Heads" , "" , " Plow Head" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 4 , 16, 45), // consisting out of 4 Ingots. + toolHeadSaw ("Saw Blades" , "" , " Saw Blade" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 2 , 16, 39), // consisting out of 2 Ingots. + toolHeadBuzzSaw ("Buzzsaw Blades" , "" , " Buzzsaw Blade" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 4 , 16, 48), // consisting out of 4 Ingots. + toolHeadScrewdriver ("Screwdriver Tips" , "" , " Screwdriver Tip" , true , true , false, false, false, false, true , false, false, false, B[6] , M * 1 , 16, 47), // consisting out of 1 Ingots. + toolHeadDrill ("Drill Tips" , "" , " Drill Tip" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 4 , 16, 40), // consisting out of 4 Ingots. + toolHeadChainsaw ("Chainsaw Tips" , "" , " Chainsaw Tip" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 2 , 16, 41), // consisting out of 2 Ingots. + toolHeadWrench ("Wrench Tips" , "" , " Wrench Tip" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 4 , 16, 42), // consisting out of 4 Ingots. + turbineBlade ("Turbine Blades" , "" , " Turbine Blade" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 6 , 64, 100), // consisting out of 6 Ingots. + toolSword ("Swords" , "" , "" , false, true , false, false, false, false, true , false, true , false, B[6] , M * 2 , 1, -1), // vanilly Sword + toolPickaxe ("Pickaxes" , "" , "" , false, true , false, false, false, false, true , false, true , false, B[6] , M * 3 , 1, -1), // vanilly Pickaxe + toolShovel ("Shovels" , "" , "" , false, true , false, false, false, false, true , false, true , false, B[6] , M * 1 , 1, -1), // vanilly Shovel + toolAxe ("Axes" , "" , "" , false, true , false, false, false, false, true , false, true , false, B[6] , M * 3 , 1, -1), // vanilly Axe + toolHoe ("Hoes" , "" , "" , false, true , false, false, false, false, true , false, true , false, B[6] , M * 2 , 1, -1), // vanilly Hoe + toolShears ("Shears" , "" , "" , false, true , false, false, false, false, true , false, true , false, B[6] , M * 2 , 1, -1), // vanilly Shears + tool ("Tools" , "" , "" , false, false, false, false, false, false, false, false, true , false, B[6] , -1, 1, -1), // toolPot, toolSkillet, toolSaucepan, toolBakeware, toolCuttingboard, toolMortarandpestle, toolMixingbowl, toolJuicer + compressedCobblestone ("9^X Compressed Cobblestones" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + compressedStone ("9^X Compressed Stones" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + compressedDirt ("9^X Compressed Dirt" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + compressedGravel ("9^X Compressed Gravel" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + compressedSand ("9^X Compressed Sand" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + compressed ("Compressed Materials" , "Compressed " , "" , true , true , false, false, false, false, true , false, false, false, 0 , M * 2 , 64, -1), // Compressed Material, worth 1 Unit. Introduced by Galacticraft + glass ("Glasses" , "" , "" , false, false, true , false, true , false, false, false, false, false, 0 , -1, 64, -1), + paneGlass ("Glass Panes" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), + blockGlass ("Glass Blocks" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), + blockWool ("Wool Blocks" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), + block_ ("Random Blocks" , "" , "" , false, false, false, false, false, true , false, false, false, false, 0 , -1, 64, -1), // IGNORE + block ("Storage Blocks" , "Block of " , "" , true , true , false, false, false, true , true , false, false, false, 0 , M * 9 , 64, 71), // Storage Block consisting out of 9 Ingots/Gems/Dusts. Introduced by CovertJaguar + craftingTool ("Crafting Tools" , "" , "" , false, false, false, false, false, false, false, false, true , false, 0 , -1, 64, -1), // Special Prefix used mainly for the Crafting Handler. + crafting ("Crafting Ingredients" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Special Prefix used mainly for the Crafting Handler. + craft ("Crafting Stuff?" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Special Prefix used mainly for the Crafting Handler. + log ("Logs" , "" , "" , false, false, false, false, false, true , false, false, false, false, 0 , -1, 64, -1), // Prefix used for Logs. Usually as "logWood". Introduced by Eloraam + slab ("Slabs" , "" , "" , false, false, false, false, false, true , false, false, false, false, 0 , -1, 64, -1), // Prefix used for Slabs. Usually as "slabWood" or "slabStone". Introduced by SirSengir + stair ("Stairs" , "" , "" , false, false, false, false, false, true , false, false, false, false, 0 , -1, 64, -1), // Prefix used for Stairs. Usually as "stairWood" or "stairStone". Introduced by SirSengir + fence ("Fences" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Prefix used for Fences. Usually as "fenceWood". Introduced by Forge + plank ("Planks" , "" , "" , false, false, false, false, false, true , false, false, false, false, 0 , -1, 64, -1), // Prefix for Planks. Usually "plankWood". Introduced by Eloraam + treeSapling ("Saplings" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), // Prefix for Saplings. + treeLeaves ("Leaves" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), // Prefix for Leaves. + tree ("Tree Parts" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Prefix for Tree Parts. + stoneCobble ("Cobblestones" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), // Cobblestone Prefix for all Cobblestones. + stoneSmooth ("Smoothstones" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), // Smoothstone Prefix. + stoneMossyBricks ("mossy Stone Bricks" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), // Mossy Stone Bricks. + stoneMossy ("Mossy Stones" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), // Mossy Cobble. + @Deprecated stoneBricksMossy("Mossy Stone Bricks" , "" , "" , false, false, false, false, false, true , false, false, false, false, 0 , -1, 64, -1), + stoneBricks ("Stone Bricks" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), // Stone Bricks. + @Deprecated stoneBrick ("Stone Bricks" , "" , "" , false, false, false, false, false, true , false, false, false, false, 0 , -1, 64, -1), + stoneCracked ("Cracked Stones" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), // Cracked Bricks. + stoneChiseled ("Chiseled Stones" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), // Chiseled Stone. + stone ("Stones" , "" , "" , false, true , true , false, true , true , false, false, false, false, 0 , -1, 64, -1), // Prefix to determine which kind of Rock this is. + cobblestone ("Cobblestones" , "" , "" , false, true , true , false, false, true , false, false, false, false, 0 , -1, 64, -1), + rock ("Rocks" , "" , "" , false, true , true , false, true , true , false, false, false, false, 0 , -1, 64, -1), // Prefix to determine which kind of Rock this is. + record ("Records" , "" , "" , false, false, true , false, false, false, false, false, false, false, 0 , -1, 1, -1), + rubble ("Rubbles" , "" , "" , true , true , true , false, false, false, false, false, false, false, 0 , -1, 64, -1), + scraps ("Scraps" , "" , "" , true , true , false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + scrap ("Scraps" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + item_ ("Items" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // IGNORE + item ("Items" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Random Item. Introduced by Alblaka + book ("Books" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Used for Books of any kind. + paper ("Papers" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Used for Papers of any kind. + dye ("Dyes" , "" , "" , false, false, true , false, false, false, false, false, false, false, 0 , -1, 64, -1), // Used for the 16 dyes. Introduced by Eloraam + stainedClay ("Stained Clays" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), // Used for the 16 colors of Stained Clay. Introduced by Forge + armorHelmet ("Helmets" , "" , "" , false, true , false, false, false, false, true , false, true , false, B[6] , M * 5 , 1, -1), // vanilly Helmet + armorChestplate ("Chestplates" , "" , "" , false, true , false, false, false, false, true , false, true , false, B[6] , M * 8 , 1, -1), // vanilly Chestplate + armorLeggings ("Leggings" , "" , "" , false, true , false, false, false, false, true , false, true , false, B[6] , M * 7 , 1, -1), // vanilly Pants + armorBoots ("Boots" , "" , "" , false, true , false, false, false, false, true , false, true , false, B[6] , M * 4 , 1, -1), // vanilly Boots + armor ("Armor Parts" , "" , "" , false, false, false, false, false, false, false, false, true , false, B[6] , -1, 1, -1), + frameGt ("Frame Boxes" , "" , "" , true , true , false, false, true , false, true , false, false, false, 0 , M * 2 , 64, 83), + pipeTiny ("Tiny Pipes" , "Tiny " , " Pipe" , true , true , false, false, true , false, true , false, false, false, 0 , M / 2 , 64, 78), + pipeSmall ("Small Pipes" , "Small " , " Pipe" , true , true , false, false, true , false, true , false, false, false, 0 , M * 1 , 64, 79), + pipeMedium ("Medium Pipes" , "Medium " , " Pipe" , true , true , false, false, true , false, true , false, false, false, 0 , M * 3 , 64, 80), + pipeLarge ("Large pipes" , "Large " , " Pipe" , true , true , false, false, true , false, true , false, false, false, 0 , M * 6 , 64, 81), + pipeHuge ("Huge Pipes" , "Huge " , " Pipe" , true , true , false, false, true , false, true , false, false, false, 0 , M *12 , 64, 82), + pipeRestrictiveTiny ("Tiny Restrictive Pipes" , "Tiny Restrictive " , " Pipe" , true , true , false, false, true , false, true , false, false, false, 0 , M / 2 , 64, 78), + pipeRestrictiveSmall ("Small Restrictive Pipes" , "Small Restrictive " , " Pipe" , true , true , false, false, true , false, true , false, false, false, 0 , M * 1 , 64, 79), + pipeRestrictiveMedium ("Medium Restrictive Pipes" , "Medium Restrictive " , " Pipe" , true , true , false, false, true , false, true , false, false, false, 0 , M * 3 , 64, 80), + pipeRestrictiveLarge ("Large Restrictive Pipes" , "Large Restrictive " , " Pipe" , true , true , false, false, true , false, true , false, false, false, 0 , M * 6 , 64, 81), + pipeRestrictiveHuge ("Huge Restrictive Pipes" , "Huge Restrictive " , " Pipe" , true , true , false, false, true , false, true , false, false, false, 0 , M *12 , 64, 82), + pipe ("Pipes" , "" , " Pipe" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, 77), + wireGt16 ("16x Wires" , "16x " , " Wire" , true , true , false, false, false, false, true , false, false, false, 0 , M * 8 , 64, -1), + wireGt12 ("12x Wires" , "12x " , " Wire" , true , true , false, false, false, false, true , false, false, false, 0 , M * 6 , 64, -1), + wireGt08 ("8x Wires" , "8x " , " Wire" , true , true , false, false, false, false, true , false, false, false, 0 , M * 4 , 64, -1), + wireGt04 ("4x Wires" , "4x " , " Wire" , true , true , false, false, false, false, true , false, false, false, 0 , M * 2 , 64, -1), + wireGt02 ("2x Wires" , "2x " , " Wire" , true , true , false, false, false, false, true , false, false, false, 0 , M * 1 , 64, -1), + wireGt01 ("1x Wires" , "1x " , " Wire" , true , true , false, false, false, false, true , false, false, false, 0 , M / 2 , 64, -1), + cableGt12 ("12x Cables" , "12x " , " Cable" , true , true , false, false, false, false, true , false, false, false, 0 , M * 6 , 64, -1), + cableGt08 ("8x Cables" , "8x " , " Cable" , true , true , false, false, false, false, true , false, false, false, 0 , M * 4 , 64, -1), + cableGt04 ("4x Cables" , "4x " , " Cable" , true , true , false, false, false, false, true , false, false, false, 0 , M * 2 , 64, -1), + cableGt02 ("2x Cables" , "2x " , " Cable" , true , true , false, false, false, false, true , false, false, false, 0 , M * 1 , 64, -1), + cableGt01 ("1x Cables" , "1x " , " Cable" , true , true , false, false, false, false, true , false, false, false, 0 , M / 2 , 64, -1), /* Electric Components. * @@ -216,97 +216,97 @@ public enum OrePrefixes { * Ultimate (Tier 8) : Data Orb and Lapotronic Energy Orb * Infinite (Cheaty) */ - batterySingleuse ("Single Use Batteries" , "" , "" ,F,T,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - battery ("Reusable Batteries" , "" , "" ,F,T,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), // Introduced by Calclavia - circuit ("Circuits" , "" , "" ,T,T,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), // Introduced by Calclavia - chipset ("Chipsets" , "" , "" ,T,T,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), // Introduced by Buildcraft - computer ("Computers" , "" , "" ,T,T,F,F,T,F,F,F,F,F, 0 , -1, 64, -1), // A whole Computer. "computerMaster" = ComputerCube + batterySingleuse ("Single Use Batteries" , "" , "" , false, true , false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + battery ("Reusable Batteries" , "" , "" , false, true , false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Introduced by Calclavia + circuit ("Circuits" , "" , "" , true , true , false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Introduced by Calclavia + chipset ("Chipsets" , "" , "" , true , true , false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Introduced by Buildcraft + computer ("Computers" , "" , "" , true , true , false, false, true , false, false, false, false, false, 0 , -1, 64, -1), // A whole Computer. "computerMaster" = ComputerCube // random known prefixes without special abilities. - skull ("Skulls" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - plating ("Platings" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - dinosaur ("Dinosaurs" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - travelgear ("Travel Gear" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - bauble ("Baubles" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - cluster ("Clusters" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - grafter ("Grafters" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - scoop ("Scoops" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - frame ("Frames" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - tome ("Tomes" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - junk ("Junk" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - bee ("Bees" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - rod ("Rods" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - dirt ("Dirts" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - sand ("Sands" , "" , "" ,F,F,T,F,F,T,F,F,F,F, 0 , -1, 64, -1), - grass ("Grasses" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - gravel ("Gravels" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - mushroom ("Mushrooms" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - wood ("Woods" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), // Introduced by Eloraam - drop ("Drops" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - fuel ("Fuels" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - panel ("Panels" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - brick ("Bricks" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - chunk ("Chunks" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - wire ("Wires" , "" , "" ,F,F,F,F,T,F,F,F,F,F, 0 , -1, 64, -1), - seed ("Seeds" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - reed ("Reeds" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - sheetDouble ("2x Sheets" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - sheet ("Sheets" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - crop ("Crops" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - plant ("Plants" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - coin ("Coins" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - lumar ("Lumars" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - ground ("Grounded Stuff" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - cable ("Cables" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - component ("Components" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - wax ("Waxes" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - wall ("Walls" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - tube ("Tubes" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - list ("Lists" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - food ("Foods" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - gear ("Gears" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), // Introduced by SirSengir - coral ("Corals" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - flower ("Flowers" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - storage ("Storages" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - material ("Materials" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - plasma ("Plasmas" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - element ("Elements" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - molecule ("Molecules" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - wafer ("Wafers" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - orb ("Orbs" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - handle ("Handles" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - blade ("Blades" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - head ("Heads" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - motor ("Motors" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - bit ("Bits" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - shears ("Shears" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - turbine ("Turbines" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - fertilizer ("Fertilizers" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - chest ("Chests" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - raw ("Raw Things" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - stainedGlass ("Stained Glasses" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - mystic ("Mystic Stuff" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - mana ("Mana Stuff" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - rune ("Runes" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - petal ("Petals" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - pearl ("Pearls" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - powder ("Powders" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - soulsand ("Soulsands" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - obsidian ("Obsidians" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - glowstone ("Glowstones" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - beans ("Beans" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - br ("br" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - essence ("Essences" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - alloy ("Alloys" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - cooking ("Cooked Things" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - elven ("Elven Stuff" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - reactor ("Reactors" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - mffs ("MFFS" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - projred ("Project Red" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - ganys ("Ganys Stuff" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - liquid ("Liquids" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - bars ("Bars" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1), - bar ("Bars" , "" , "" ,F,F,F,F,F,F,F,F,F,F, 0 , -1, 64, -1); + skull ("Skulls" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + plating ("Platings" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + dinosaur ("Dinosaurs" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + travelgear ("Travel Gear" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + bauble ("Baubles" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + cluster ("Clusters" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + grafter ("Grafters" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + scoop ("Scoops" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + frame ("Frames" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + tome ("Tomes" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + junk ("Junk" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + bee ("Bees" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + rod ("Rods" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + dirt ("Dirts" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + sand ("Sands" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), + grass ("Grasses" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + gravel ("Gravels" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + mushroom ("Mushrooms" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + wood ("Woods" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Introduced by Eloraam + drop ("Drops" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + fuel ("Fuels" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + panel ("Panels" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + brick ("Bricks" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + chunk ("Chunks" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + wire ("Wires" , "" , "" , false, false, false, false, true , false, false, false, false, false, 0 , -1, 64, -1), + seed ("Seeds" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + reed ("Reeds" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + sheetDouble ("2x Sheets" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + sheet ("Sheets" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + crop ("Crops" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + plant ("Plants" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + coin ("Coins" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + lumar ("Lumars" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + ground ("Grounded Stuff" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + cable ("Cables" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + component ("Components" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + wax ("Waxes" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + wall ("Walls" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + tube ("Tubes" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + list ("Lists" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + food ("Foods" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + gear ("Gears" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Introduced by SirSengir + coral ("Corals" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + flower ("Flowers" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + storage ("Storages" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + material ("Materials" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + plasma ("Plasmas" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + element ("Elements" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + molecule ("Molecules" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + wafer ("Wafers" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + orb ("Orbs" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + handle ("Handles" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + blade ("Blades" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + head ("Heads" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + motor ("Motors" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + bit ("Bits" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + shears ("Shears" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + turbine ("Turbines" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + fertilizer ("Fertilizers" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + chest ("Chests" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + raw ("Raw Things" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + stainedGlass ("Stained Glasses" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + mystic ("Mystic Stuff" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + mana ("Mana Stuff" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + rune ("Runes" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + petal ("Petals" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + pearl ("Pearls" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + powder ("Powders" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + soulsand ("Soulsands" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + obsidian ("Obsidians" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + glowstone ("Glowstones" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + beans ("Beans" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + br ("br" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + essence ("Essences" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + alloy ("Alloys" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + cooking ("Cooked Things" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + elven ("Elven Stuff" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + reactor ("Reactors" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + mffs ("MFFS" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + projred ("Project Red" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + ganys ("Ganys Stuff" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + liquid ("Liquids" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + bars ("Bars" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), + bar ("Bars" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1); static { pulp.mPrefixInto = dust; diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java index 9bb3fec1..f6758f2c 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java @@ -1,7 +1,5 @@ package gregtech.api.interfaces.tileentity; -import static gregtech.api.enums.GT_Values.F; -import static gregtech.api.enums.GT_Values.T; import gregtech.api.enums.SubTag; import gregtech.api.util.GT_Utility; import ic2.api.energy.tile.IEnergySink; @@ -37,7 +35,7 @@ public interface IExperimentalEnergyTileEntity extends IColoredTileEntity, IHasW /** Utility for the Network */ public static class Util { - private static boolean RF_ENERGY = F, IC_ENERGY = F, CHECK_ALL = T; + private static boolean RF_ENERGY = false, IC_ENERGY = false, CHECK_ALL = true; public static int RF_PER_EU = 4; private static void checkAvailabilities() { @@ -45,14 +43,14 @@ public interface IExperimentalEnergyTileEntity extends IColoredTileEntity, IHasW try { Class tClass = cofh.api.energy.IEnergyReceiver.class; tClass.getCanonicalName(); - RF_ENERGY = T; + RF_ENERGY = true; } catch(Throwable e) {/**/} try { Class tClass = ic2.api.energy.tile.IEnergySink.class; tClass.getCanonicalName(); - IC_ENERGY = T; + IC_ENERGY = true; } catch(Throwable e) {/**/} - CHECK_ALL = F; + CHECK_ALL = false; } } @@ -77,7 +75,7 @@ public interface IExperimentalEnergyTileEntity extends IColoredTileEntity, IHasW while (aSecondary > rUsedSecondary && ((IEnergySink)tTileEntity).getDemandedEnergy() > 0 && ((IEnergySink)tTileEntity).injectEnergy(ForgeDirection.getOrientation(j), aPrimary, aPrimary) < aPrimary) rUsedSecondary++; } } else if (RF_ENERGY && aEnergyType == SubTag.ENERGY_REDSTONE_FLUX && tTileEntity instanceof IEnergyReceiver && ((IEnergyReceiver)tTileEntity).canConnectEnergy(ForgeDirection.getOrientation(j))) { - rUsedSecondary+=((IEnergyReceiver)tTileEntity).receiveEnergy(ForgeDirection.getOrientation(j), (int)aSecondary, F); + rUsedSecondary+=((IEnergyReceiver)tTileEntity).receiveEnergy(ForgeDirection.getOrientation(j), (int)aSecondary, false); } } return rUsedSecondary; diff --git a/src/main/java/gregtech/api/util/GT_Config.java b/src/main/java/gregtech/api/util/GT_Config.java index 9ad2ebab..3ba96031 100644 --- a/src/main/java/gregtech/api/util/GT_Config.java +++ b/src/main/java/gregtech/api/util/GT_Config.java @@ -1,14 +1,13 @@ package gregtech.api.util; import static gregtech.api.enums.GT_Values.E; -import static gregtech.api.enums.GT_Values.F; import gregtech.api.GregTech_API; import net.minecraft.item.ItemStack; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Property; public class GT_Config implements Runnable { - public static boolean troll = F; + public static boolean troll = false; public static Configuration sConfigFileIDs; diff --git a/src/main/java/gregtech/api/util/GT_FoodStat.java b/src/main/java/gregtech/api/util/GT_FoodStat.java index a2134290..336aeeab 100644 --- a/src/main/java/gregtech/api/util/GT_FoodStat.java +++ b/src/main/java/gregtech/api/util/GT_FoodStat.java @@ -1,6 +1,5 @@ package gregtech.api.util; -import static gregtech.api.enums.GT_Values.F; import gregtech.api.damagesources.GT_DamageSources; import gregtech.api.interfaces.IFoodStat; import gregtech.api.items.GT_MetaBase_Item; @@ -17,7 +16,7 @@ public class GT_FoodStat implements IFoodStat { private final EnumAction mAction; private final ItemStack mEmptyContainer; private final boolean mAlwaysEdible, mInvisibleParticles, mIsRotten; - private boolean mExplosive = F, mMilk = F; + private boolean mExplosive = false, mMilk = false; /** * @param aFoodLevel Amount of Food in Half Bacon [0 - 20] diff --git a/src/main/java/gregtech/api/util/GT_IBoxableWrapper.java b/src/main/java/gregtech/api/util/GT_IBoxableWrapper.java index 8511f76c..03ffc675 100644 --- a/src/main/java/gregtech/api/util/GT_IBoxableWrapper.java +++ b/src/main/java/gregtech/api/util/GT_IBoxableWrapper.java @@ -1,12 +1,11 @@ package gregtech.api.util; -import static gregtech.api.enums.GT_Values.T; import ic2.api.item.IBoxable; import net.minecraft.item.ItemStack; public class GT_IBoxableWrapper implements IBoxable { @Override public boolean canBeStoredInToolbox(ItemStack itemstack) { - return T; + return true; } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/util/GT_ModHandler.java b/src/main/java/gregtech/api/util/GT_ModHandler.java index b657c8ee..e7c95e59 100644 --- a/src/main/java/gregtech/api/util/GT_ModHandler.java +++ b/src/main/java/gregtech/api/util/GT_ModHandler.java @@ -16,7 +16,6 @@ import ic2.api.reactor.IReactorComponent; import ic2.api.recipe.IRecipeInput; import ic2.api.recipe.RecipeInputItemStack; import ic2.api.recipe.RecipeOutput; -import ic2.core.AdvRecipe; import java.util.*; import java.util.Map.Entry; @@ -38,7 +37,6 @@ import net.minecraft.tileentity.TileEntityFurnace; import net.minecraft.world.World; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.ShapedOreRecipe; import net.minecraftforge.oredict.ShapelessOreRecipe; import cpw.mods.fml.common.event.FMLInterModComms; @@ -58,7 +56,7 @@ public class GT_ModHandler { * Returns if that Liquid is Water or Distilled Water */ public static boolean isWater(FluidStack aFluid) { - if (aFluid == null) return F; + if (aFluid == null) return false; return aFluid.isFluidEqual(getWater(1)) || aFluid.isFluidEqual(getDistilledWater(1)); } @@ -80,7 +78,7 @@ public class GT_ModHandler { * Returns if that Liquid is Lava */ public static boolean isLava(FluidStack aFluid) { - if (aFluid == null) return F; + if (aFluid == null) return false; return aFluid.isFluidEqual(getLava(1)); } @@ -95,7 +93,7 @@ public class GT_ModHandler { * Returns if that Liquid is Steam */ public static boolean isSteam(FluidStack aFluid) { - if (aFluid == null) return F; + if (aFluid == null) return false; return aFluid.isFluidEqual(getSteam(1)); } @@ -110,7 +108,7 @@ public class GT_ModHandler { * Returns if that Liquid is Milk */ public static boolean isMilk(FluidStack aFluid) { - if (aFluid == null) return F; + if (aFluid == null) return false; return aFluid.isFluidEqual(getMilk(1)); } @@ -174,7 +172,7 @@ public class GT_ModHandler { * @return the exact Value in EU the Fuel Can is worth if its even a Fuel Can. */ public static int getFuelCanValue(ItemStack aFuelCan) { - if (GT_Utility.isStackInvalid(aFuelCan) || !ItemList.IC2_Fuel_Can_Filled.isStackEqual(aFuelCan, F, T)) return 0; + if (GT_Utility.isStackInvalid(aFuelCan) || !ItemList.IC2_Fuel_Can_Filled.isStackEqual(aFuelCan, false, true)) return 0; NBTTagCompound tNBT = aFuelCan.getTagCompound(); return tNBT==null?0:tNBT.getInteger("value")*5; } @@ -254,82 +252,82 @@ public class GT_ModHandler { * OUT OF ORDER */ public static boolean getModeKeyDown(EntityPlayer aPlayer) { - return F; + return false; } /** * OUT OF ORDER */ public static boolean getBoostKeyDown(EntityPlayer aPlayer) { - return F; + return false; } /** * OUT OF ORDER */ public static boolean getJumpKeyDown(EntityPlayer aPlayer) { - return F; + return false; } /** * Adds a Valuable Ore to the Miner */ public static boolean addValuableOre(Block aBlock, int aMeta, int aValue) { - if (aValue <= 0) return F; + if (aValue <= 0) return false; try { Class.forName("ic2.core.IC2").getMethod("addValuableOre", IRecipeInput.class, int.class).invoke(null, new RecipeInputItemStack(new ItemStack(aBlock, 1, aMeta)), aValue); } catch (Throwable e) {/*Do nothing*/} - return T; + return true; } /** * Adds a Scrapbox Drop. Fails at April first for the "suddenly Hoes"-Feature of IC2 */ public static boolean addScrapboxDrop(float aChance, ItemStack aOutput) { - aOutput = GT_OreDictUnificator.get(T, aOutput); - if (aOutput == null || aChance <= 0) return F; + aOutput = GT_OreDictUnificator.get(true, aOutput); + if (aOutput == null || aChance <= 0) return false; aOutput.stackSize = 1; - if (GT_Config.troll && !GT_Utility.areStacksEqual(aOutput, new ItemStack(Items.wooden_hoe, 1, 0))) return F; + if (GT_Config.troll && !GT_Utility.areStacksEqual(aOutput, new ItemStack(Items.wooden_hoe, 1, 0))) return false; aChance = (float)GregTech_API.sRecipeFile.get(ConfigCategories.Machines.scrapboxdrops, aOutput, aChance); - if (aChance <= 0) return F; + if (aChance <= 0) return false; try { - GT_Utility.callMethod(GT_Utility.getFieldContent("ic2.api.recipe.Recipes", "scrapboxDrops", T, T), "addDrop", T, F, T, GT_Utility.copy(aOutput), aChance); - GT_Utility.callMethod(GT_Utility.getFieldContent("ic2.api.recipe.Recipes", "scrapboxDrops", T, T), "addRecipe", T, T, F, GT_Utility.copy(aOutput), aChance); + GT_Utility.callMethod(GT_Utility.getFieldContent("ic2.api.recipe.Recipes", "scrapboxDrops", true , true), "addDrop", true , false, true , GT_Utility.copy(aOutput), aChance); + GT_Utility.callMethod(GT_Utility.getFieldContent("ic2.api.recipe.Recipes", "scrapboxDrops", true , true), "addRecipe", true , true , false, GT_Utility.copy(aOutput), aChance); } catch (Throwable e) {/*Do nothing*/} - return T; + return true; } /** * Adds an Item to the Recycler Blacklist */ public static boolean addToRecyclerBlackList(ItemStack aRecycledStack) { - if (aRecycledStack == null) return F; + if (aRecycledStack == null) return false; try { ic2.api.recipe.Recipes.recyclerBlacklist.add(new RecipeInputItemStack(aRecycledStack)); } catch (Throwable e) {/*Do nothing*/} - return T; + return true; } /** * Just simple Furnace smelting. Unbelievable how Minecraft fails at making a simple ItemStack->ItemStack mapping... */ public static boolean addSmeltingRecipe(ItemStack aInput, ItemStack aOutput) { - aOutput = GT_OreDictUnificator.get(T, aOutput); - if (aInput == null || aOutput == null || GT_Utility.getContainerItem(aInput, F) != null) return F; - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.smelting, aInput, T)) return F; + aOutput = GT_OreDictUnificator.get(true, aOutput); + if (aInput == null || aOutput == null || GT_Utility.getContainerItem(aInput, false) != null) return false; + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.smelting, aInput, true)) return false; FurnaceRecipes.smelting().func_151394_a(aInput, GT_Utility.copy(aOutput), 0.0F); - return T; + return true; } /** * Adds to Furnace AND Alloysmelter AND Induction Smelter */ public static boolean addSmeltingAndAlloySmeltingRecipe(ItemStack aInput, ItemStack aOutput) { - if (aInput == null || aOutput == null) return F; - boolean temp = F; - if (aInput.stackSize == 1 && addSmeltingRecipe(aInput, aOutput)) temp = T; - if (RA.addAlloySmelterRecipe(aInput, OrePrefixes.ingot.contains(aOutput)?ItemList.Shape_Mold_Ingot.get(0):OrePrefixes.block.contains(aOutput)?ItemList.Shape_Mold_Block.get(0):OrePrefixes.nugget.contains(aOutput)?ItemList.Shape_Mold_Nugget.get(0):null, aOutput, 130, 3)) temp = T; - if (addInductionSmelterRecipe(aInput, null, aOutput, null, aOutput.stackSize*1600, 0)) temp = T; + if (aInput == null || aOutput == null) return false; + boolean temp = false; + if (aInput.stackSize == 1 && addSmeltingRecipe(aInput, aOutput)) temp = true; + if (RA.addAlloySmelterRecipe(aInput, OrePrefixes.ingot.contains(aOutput)?ItemList.Shape_Mold_Ingot.get(0):OrePrefixes.block.contains(aOutput)?ItemList.Shape_Mold_Block.get(0):OrePrefixes.nugget.contains(aOutput)?ItemList.Shape_Mold_Nugget.get(0):null, aOutput, 130, 3)) temp = true; + if (addInductionSmelterRecipe(aInput, null, aOutput, null, aOutput.stackSize*1600, 0)) temp = true; return temp; } @@ -337,80 +335,80 @@ public class GT_ModHandler { * LiquidTransposer Recipe for both directions */ public static boolean addLiquidTransposerRecipe(ItemStack aEmptyContainer, FluidStack aLiquid, ItemStack aFullContainer, int aMJ) { - aFullContainer = GT_OreDictUnificator.get(T, aFullContainer); - if (aEmptyContainer == null || aFullContainer == null || aLiquid == null) return F; - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.liquidtransposer, aFullContainer, T)) return F; + aFullContainer = GT_OreDictUnificator.get(true, aFullContainer); + if (aEmptyContainer == null || aFullContainer == null || aLiquid == null) return false; + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.liquidtransposer, aFullContainer, true)) return false; try { - ThermalExpansion.addTransposerFill(aMJ*10, aEmptyContainer, aFullContainer, aLiquid, T); + ThermalExpansion.addTransposerFill(aMJ*10, aEmptyContainer, aFullContainer, aLiquid, true); } catch(Throwable e) {/*Do nothing*/} - return T; + return true; } /** * LiquidTransposer Recipe for filling Containers */ public static boolean addLiquidTransposerFillRecipe(ItemStack aEmptyContainer, FluidStack aLiquid, ItemStack aFullContainer, int aMJ) { - aFullContainer = GT_OreDictUnificator.get(T, aFullContainer); - if (aEmptyContainer == null || aFullContainer == null || aLiquid == null) return F; - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.liquidtransposerfilling, aFullContainer, T)) return F; + aFullContainer = GT_OreDictUnificator.get(true, aFullContainer); + if (aEmptyContainer == null || aFullContainer == null || aLiquid == null) return false; + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.liquidtransposerfilling, aFullContainer, true)) return false; try { - ThermalExpansion.addTransposerFill(aMJ*10, aEmptyContainer, aFullContainer, aLiquid, F); + ThermalExpansion.addTransposerFill(aMJ*10, aEmptyContainer, aFullContainer, aLiquid, false); } catch(Throwable e) {/*Do nothing*/} - return T; + return true; } /** * LiquidTransposer Recipe for emptying Containers */ public static boolean addLiquidTransposerEmptyRecipe(ItemStack aFullContainer, FluidStack aLiquid, ItemStack aEmptyContainer, int aMJ) { - aEmptyContainer = GT_OreDictUnificator.get(T, aEmptyContainer); - if (aFullContainer == null || aEmptyContainer == null || aLiquid == null) return F; - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.liquidtransposeremptying, aFullContainer, T)) return F; + aEmptyContainer = GT_OreDictUnificator.get(true, aEmptyContainer); + if (aFullContainer == null || aEmptyContainer == null || aLiquid == null) return false; + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.liquidtransposeremptying, aFullContainer, true)) return false; try { - ThermalExpansion.addTransposerExtract(aMJ*10, aFullContainer, aEmptyContainer, aLiquid, 100, F); + ThermalExpansion.addTransposerExtract(aMJ*10, aFullContainer, aEmptyContainer, aLiquid, 100, false); } catch(Throwable e) {/*Do nothing*/} - return T; + return true; } /** * IC2-Extractor Recipe. Overloads old Recipes automatically */ public static boolean addExtractionRecipe(ItemStack aInput, ItemStack aOutput) { - aOutput = GT_OreDictUnificator.get(T, aOutput); - if (aInput == null || aOutput == null) return F; + aOutput = GT_OreDictUnificator.get(true, aOutput); + if (aInput == null || aOutput == null) return false; GT_Utility.removeSimpleIC2MachineRecipe(aInput, getExtractorRecipeList(), null); - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.extractor, aInput, T)) return F; + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.extractor, aInput, true)) return false; GT_Utility.addSimpleIC2MachineRecipe(aInput, getExtractorRecipeList(), null, aOutput); - return T; + return true; } /** * RC-BlastFurnace Recipes */ public static boolean addRCBlastFurnaceRecipe(ItemStack aInput, ItemStack aOutput, int aTime) { - aOutput = GT_OreDictUnificator.get(T, aOutput); - if (aInput == null || aOutput == null || aTime <= 0) return F; - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.rcblastfurnace, aInput, T)) return F; + aOutput = GT_OreDictUnificator.get(true, aOutput); + if (aInput == null || aOutput == null || aTime <= 0) return false; + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.rcblastfurnace, aInput, true)) return false; aInput = GT_Utility.copy(aInput); aOutput = GT_Utility.copy(aOutput); try { - mods.railcraft.api.crafting.RailcraftCraftingManager.blastFurnace.addRecipe(aInput, T, F, aTime, aOutput); + mods.railcraft.api.crafting.RailcraftCraftingManager.blastFurnace.addRecipe(aInput, true , false, aTime, aOutput); } catch (Throwable e) { - return F; + return false; } - return T; + return true; } public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1) { - return addPulverisationRecipe(aInput, aOutput1, null, 0, F); + return addPulverisationRecipe(aInput, aOutput1, null, 0, false); } public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2) { - return addPulverisationRecipe(aInput, aOutput1, aOutput2, 100, F); + return addPulverisationRecipe(aInput, aOutput1, aOutput2, 100, false); } public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aChance) { - return addPulverisationRecipe(aInput, aOutput1, aOutput2, aChance, F); + return addPulverisationRecipe(aInput, aOutput1, aOutput2, aChance, false); } public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, boolean aOverwrite) { @@ -429,13 +427,13 @@ public class GT_ModHandler { * Adds Several Pulverizer-Type Recipes. */ public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aChance2, ItemStack aOutput3, int aChance3, boolean aOverwrite) { - aOutput1 = GT_OreDictUnificator.get(T, aOutput1); - aOutput2 = GT_OreDictUnificator.get(T, aOutput2); - if (GT_Utility.isStackInvalid(aInput) || GT_Utility.isStackInvalid(aOutput1)) return F; + aOutput1 = GT_OreDictUnificator.get(true, aOutput1); + aOutput2 = GT_OreDictUnificator.get(true, aOutput2); + if (GT_Utility.isStackInvalid(aInput) || GT_Utility.isStackInvalid(aOutput1)) return false; GT_Utility.removeSimpleIC2MachineRecipe(aInput, getMaceratorRecipeList(), null); - if (GT_Utility.getContainerItem(aInput, F) == null) { - if (GregTech_API.sRecipeFile.get(ConfigCategories.Machines.maceration, aInput, T)) { + if (GT_Utility.getContainerItem(aInput, false) == null) { + if (GregTech_API.sRecipeFile.get(ConfigCategories.Machines.maceration, aInput, true)) { GT_Utility.addSimpleIC2MachineRecipe(aInput, getMaceratorRecipeList(), null, aOutput1); } @@ -443,24 +441,24 @@ public class GT_ModHandler { if (!OrePrefixes.log.contains(aInput)) { if (Materials.Wood.contains(aOutput1)) { - if (GregTech_API.sRecipeFile.get(ConfigCategories.Machines.pulverization, aInput, T)) { + if (GregTech_API.sRecipeFile.get(ConfigCategories.Machines.pulverization, aInput, true)) { if (aOutput2 == null) ThermalExpansion.addSawmillRecipe(32000, GT_Utility.copy(aInput), GT_Utility.copy(aOutput1)); else ThermalExpansion.addSawmillRecipe(32000, GT_Utility.copy(aInput), GT_Utility.copy(aOutput1), GT_Utility.copy(aOutput2), aChance2<=0?10:aChance2); } } else { - if (GregTech_API.sRecipeFile.get(ConfigCategories.Machines.rockcrushing, aInput, T)) { + if (GregTech_API.sRecipeFile.get(ConfigCategories.Machines.rockcrushing, aInput, true)) { try { if (GT_Utility.getBlockFromStack(aInput) != Blocks.obsidian && GT_Utility.getBlockFromStack(aInput) != Blocks.gravel) { - mods.railcraft.api.crafting.IRockCrusherRecipe tRecipe = mods.railcraft.api.crafting.RailcraftCraftingManager.rockCrusher.createNewRecipe(GT_Utility.copyAmount(1, aInput), aInput.getItemDamage() != W, F); + mods.railcraft.api.crafting.IRockCrusherRecipe tRecipe = mods.railcraft.api.crafting.RailcraftCraftingManager.rockCrusher.createNewRecipe(GT_Utility.copyAmount(1, aInput), aInput.getItemDamage() != W, false); tRecipe.addOutput(GT_Utility.copy(aOutput1), 1.0F/aInput.stackSize); if (aOutput2 != null) tRecipe.addOutput(GT_Utility.copy(aOutput2), (0.01F*(aChance2<=0?10:aChance2))/aInput.stackSize); if (aOutput3 != null) tRecipe.addOutput(GT_Utility.copy(aOutput3), (0.01F*(aChance3<=0?10:aChance3))/aInput.stackSize); } } catch(Throwable e) {/*Do nothing*/} } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Machines.pulverization, aInput, T)) { + if (GregTech_API.sRecipeFile.get(ConfigCategories.Machines.pulverization, aInput, true)) { if (aOutput2 == null) ThermalExpansion.addPulverizerRecipe(32000, GT_Utility.copy(aInput), GT_Utility.copy(aOutput1)); else @@ -469,32 +467,32 @@ public class GT_ModHandler { } } } - return T; + return true; } /** * Adds a Recipe to the Sawmills of GregTech and ThermalCraft */ public static boolean addSawmillRecipe(ItemStack aInput1, ItemStack aOutput1, ItemStack aOutput2) { - aOutput1 = GT_OreDictUnificator.get(T, aOutput1); - aOutput2 = GT_OreDictUnificator.get(T, aOutput2); - if (aInput1 == null || aOutput1 == null) return F; - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.sawmill, aInput1, T)) return F; + aOutput1 = GT_OreDictUnificator.get(true, aOutput1); + aOutput2 = GT_OreDictUnificator.get(true, aOutput2); + if (aInput1 == null || aOutput1 == null) return false; + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.sawmill, aInput1, true)) return false; try { ThermalExpansion.addSawmillRecipe(1600, aInput1, aOutput1, aOutput2, 100); } catch(Throwable e) {/*Do nothing*/} - return T; + return true; } /** * Induction Smelter Recipes and Alloy Smelter Recipes */ public static boolean addAlloySmelterRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt, boolean aAllowSecondaryInputEmpty) { - if (aInput1 == null || (aInput2 == null && !aAllowSecondaryInputEmpty) || aOutput1 == null) return F; - aOutput1 = GT_OreDictUnificator.get(T, aOutput1); - boolean temp = F; - if (RA.addAlloySmelterRecipe(aInput1, aInput2, aOutput1, aDuration, aEUt)) temp = T; - if (addInductionSmelterRecipe(aInput1, aInput2, aOutput1, null, aDuration * aEUt * 2, 0)) temp = T; + if (aInput1 == null || (aInput2 == null && !aAllowSecondaryInputEmpty) || aOutput1 == null) return false; + aOutput1 = GT_OreDictUnificator.get(true, aOutput1); + boolean temp = false; + if (RA.addAlloySmelterRecipe(aInput1, aInput2, aOutput1, aDuration, aEUt)) temp = true; + if (addInductionSmelterRecipe(aInput1, aInput2, aOutput1, null, aDuration * aEUt * 2, 0)) temp = true; return temp; } @@ -502,24 +500,24 @@ public class GT_ModHandler { * Induction Smelter Recipes for TE */ public static boolean addInductionSmelterRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, ItemStack aOutput2, int aEnergy, int aChance) { - aOutput1 = GT_OreDictUnificator.get(T, aOutput1); - aOutput2 = GT_OreDictUnificator.get(T, aOutput2); - if (aInput1 == null || aOutput1 == null || GT_Utility.getContainerItem(aInput1, F) != null) return F; - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.inductionsmelter, aInput2==null?aInput1:aOutput1, T)) return F; + aOutput1 = GT_OreDictUnificator.get(true, aOutput1); + aOutput2 = GT_OreDictUnificator.get(true, aOutput2); + if (aInput1 == null || aOutput1 == null || GT_Utility.getContainerItem(aInput1, false) != null) return false; + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.inductionsmelter, aInput2==null?aInput1:aOutput1, true)) return false; try { ThermalExpansion.addSmelterRecipe(aEnergy*10, GT_Utility.copy(aInput1), aInput2==null?new ItemStack(Blocks.sand, 1, 0):aInput2, aOutput1, aOutput2, aChance); } catch(Throwable e) {/*Do nothing*/} - return T; + return true; } /** * Smelts Ores to Ingots */ public static boolean addOreToIngotSmeltingRecipe(ItemStack aInput, ItemStack aOutput) { - aOutput = GT_OreDictUnificator.get(T, aOutput); - if (aInput == null || aOutput == null) return F; + aOutput = GT_OreDictUnificator.get(true, aOutput); + if (aInput == null || aOutput == null) return false; FurnaceRecipes.smelting().func_151394_a(aInput, GT_Utility.copy(aOutput), 0.0F); - return T; + return true; } private static Map sExtractorRecipes = new HashMap(); @@ -575,74 +573,74 @@ public class GT_ModHandler { * IC2-ThermalCentrifuge Recipe. Overloads old Recipes automatically */ public static boolean addThermalCentrifugeRecipe(ItemStack aInput, int aHeat, Object... aOutput) { - if (aInput == null || aOutput == null || aOutput.length <= 0 || aOutput[0] == null) return F; + if (aInput == null || aOutput == null || aOutput.length <= 0 || aOutput[0] == null) return false; GT_Utility.removeSimpleIC2MachineRecipe(aInput, getThermalCentrifugeRecipeList(), null); - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.thermalcentrifuge, aInput, T)) return F; + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.thermalcentrifuge, aInput, true)) return false; NBTTagCompound tNBT = new NBTTagCompound(); tNBT.setInteger("minHeat", aHeat); GT_Utility.addSimpleIC2MachineRecipe(aInput, getThermalCentrifugeRecipeList(), tNBT, aOutput); - return T; + return true; } /** * IC2-OreWasher Recipe. Overloads old Recipes automatically */ public static boolean addOreWasherRecipe(ItemStack aInput, int aWaterAmount, Object... aOutput) { - if (aInput == null || aOutput == null || aOutput.length <= 0 || aOutput[0] == null) return F; + if (aInput == null || aOutput == null || aOutput.length <= 0 || aOutput[0] == null) return false; GT_Utility.removeSimpleIC2MachineRecipe(aInput, getOreWashingRecipeList(), null); - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.orewashing, aInput, T)) return F; + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.orewashing, aInput, true)) return false; NBTTagCompound tNBT = new NBTTagCompound(); tNBT.setInteger("amount", aWaterAmount); GT_Utility.addSimpleIC2MachineRecipe(aInput, getOreWashingRecipeList(), tNBT, aOutput); - return T; + return true; } /** * IC2-Compressor Recipe. Overloads old Recipes automatically */ public static boolean addCompressionRecipe(ItemStack aInput, ItemStack aOutput) { - aOutput = GT_OreDictUnificator.get(T, aOutput); - if (aInput == null || aOutput == null) return F; + aOutput = GT_OreDictUnificator.get(true, aOutput); + if (aInput == null || aOutput == null) return false; GT_Utility.removeSimpleIC2MachineRecipe(aInput, getCompressorRecipeList(), null); - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.compression, aInput, T)) return F; + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.compression, aInput, true)) return false; GT_Utility.addSimpleIC2MachineRecipe(aInput, getCompressorRecipeList(), null, aOutput); - return T; + return true; } /** * @param aValue Scrap = 5000, Scrapbox = 45000, Diamond Dust 125000 */ public static boolean addIC2MatterAmplifier(ItemStack aAmplifier, int aValue) { - if (aAmplifier == null || aValue <= 0) return F; - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.massfabamplifier, aAmplifier, T)) return F; + if (aAmplifier == null || aValue <= 0) return false; + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.massfabamplifier, aAmplifier, true)) return false; try { NBTTagCompound tNBT = new NBTTagCompound(); tNBT.setInteger("amplification", aValue); - GT_Utility.callMethod(ic2.api.recipe.Recipes.matterAmplifier, "addRecipe", F, F, F, aAmplifier, tNBT); + GT_Utility.callMethod(ic2.api.recipe.Recipes.matterAmplifier, "addRecipe", false, false, false, aAmplifier, tNBT); } catch(Throwable e) {/*Do nothing*/} - return T; + return true; } /** * Rolling Machine Crafting Recipe */ public static boolean addRollingMachineRecipe(ItemStack aResult, Object[] aRecipe) { - aResult = GT_OreDictUnificator.get(T, aResult); - if (aResult == null || aRecipe == null || aResult.stackSize <= 0) return F; + aResult = GT_OreDictUnificator.get(true, aResult); + if (aResult == null || aRecipe == null || aResult.stackSize <= 0) return false; try { mods.railcraft.api.crafting.RailcraftCraftingManager.rollingMachine.getRecipeList().add(new ShapedOreRecipe(GT_Utility.copy(aResult), aRecipe)); } catch(Throwable e) { return addCraftingRecipe(GT_Utility.copy(aResult), aRecipe); } - return T; + return true; } - private static boolean sBufferCraftingRecipes = T; + private static boolean sBufferCraftingRecipes = true; private static final List sAllRecipeList = Collections.synchronizedList(new ArrayList(5000)), sBufferRecipeList = new ArrayList(1000); public static final List sSingleNonBlockDamagableRecipeList = new ArrayList(1000); public static void stopBufferingCraftingRecipes() { - sBufferCraftingRecipes = F; + sBufferCraftingRecipes = false; for (IRecipe tRecipe : sBufferRecipeList) GameRegistry.addRecipe(tRecipe); sBufferRecipeList.clear(); } @@ -680,7 +678,7 @@ public class GT_ModHandler { * Shapeless Crafting Recipes. Deletes conflicting Recipes too. */ public static boolean addCraftingRecipe(ItemStack aResult, Enchantment[] aEnchantmentsAdded, int[] aEnchantmentLevelsAdded, Object[] aRecipe) { - return addCraftingRecipe(aResult, aEnchantmentsAdded, aEnchantmentLevelsAdded, F, T, F, F, F, F, F, F, F, F, F, F, T, aRecipe); + return addCraftingRecipe(aResult, aEnchantmentsAdded, aEnchantmentLevelsAdded, false, true , false, false, false, false, false, false, false, false, false, false, true, aRecipe); } /** @@ -743,12 +741,12 @@ public class GT_ModHandler { * Internal realisation of the Crafting Recipe adding Process. */ private static boolean addCraftingRecipe(ItemStack aResult, Enchantment[] aEnchantmentsAdded, int[] aEnchantmentLevelsAdded, boolean aMirrored, boolean aBuffered, boolean aKeepNBT, boolean aDismantleable, boolean aRemovable, boolean aReversible, boolean aRemoveAllOthersWithSameOutput, boolean aRemoveAllOthersWithSameOutputIfTheyHaveSameNBT, boolean aRemoveAllOtherShapedsWithSameOutput, boolean aRemoveAllOtherNativeRecipes, boolean aCheckForCollisions, boolean aOnlyAddIfThereIsAnyRecipeOutputtingThis, boolean aOnlyAddIfResultIsNotNull, Object[] aRecipe) { - aResult = GT_OreDictUnificator.get(T, aResult); - if (aOnlyAddIfResultIsNotNull && aResult == null) return F; + aResult = GT_OreDictUnificator.get(true, aResult); + if (aOnlyAddIfResultIsNotNull && aResult == null) return false; if (aResult != null && Items.feather.getDamage(aResult) == W) Items.feather.setDamage(aResult, 0); - if (aRecipe == null || aRecipe.length <= 0) return F; + if (aRecipe == null || aRecipe.length <= 0) return false; - boolean tThereWasARecipe = F; + boolean tThereWasARecipe = false; for (byte i = 0; i < aRecipe.length; i++) { if (aRecipe[i] instanceof IItemContainer) @@ -803,7 +801,7 @@ public class GT_ModHandler { HashMap tItemDataMap = new HashMap(); tItemStackMap.put(' ', null); - boolean tRemoveRecipe = T; + boolean tRemoveRecipe = true; for (; idx < aRecipe.length; idx += 2) { if (aRecipe[idx] == null || aRecipe[idx + 1] == null) { @@ -811,7 +809,7 @@ public class GT_ModHandler { GT_Log.err.println("WARNING: Missing Item for shaped Recipe: " + (aResult==null?"null":aResult.getDisplayName())); for (Object tContent : aRecipe) GT_Log.err.println(tContent); } - return F; + return false; } Character chr = (Character)aRecipe[idx]; Object in = aRecipe[idx + 1]; @@ -832,7 +830,7 @@ public class GT_ModHandler { tItemDataMap.put(chr, (ItemData)in); } ItemStack tStack = GT_OreDictUnificator.getFirstOre(in, 1); - if (tStack == null) tRemoveRecipe = F; else tItemStackMap.put(chr, tStack); + if (tStack == null) tRemoveRecipe = false; else tItemStackMap.put(chr, tStack); in = aRecipe[idx + 1] = in.toString(); } else if (in instanceof String) { if (in.equals(OreDictNames.craftingChest .toString())) tItemDataMap.put(chr, new ItemData(Materials.Wood, M * 8)); @@ -842,7 +840,7 @@ public class GT_ModHandler { else if (in.equals(OreDictNames.craftingIndustrialDiamond .toString())) tItemDataMap.put(chr, new ItemData(Materials.Diamond, M)); else if (in.equals(OreDictNames.craftingAnvil .toString())) tItemDataMap.put(chr, new ItemData(Materials.Iron, M * 10)); ItemStack tStack = GT_OreDictUnificator.getFirstOre(in, 1); - if (tStack == null) tRemoveRecipe = F; else tItemStackMap.put(chr, tStack); + if (tStack == null) tRemoveRecipe = false; else tItemStackMap.put(chr, tStack); } else { throw new IllegalArgumentException(); } @@ -866,7 +864,7 @@ public class GT_ModHandler { } } catch(Throwable e) {e.printStackTrace(GT_Log.err);} - if (aResult == null || aResult.stackSize <= 0) return F; + if (aResult == null || aResult.stackSize <= 0) return false; if (aRemoveAllOthersWithSameOutput || aRemoveAllOthersWithSameOutputIfTheyHaveSameNBT || aRemoveAllOtherShapedsWithSameOutput || aRemoveAllOtherNativeRecipes) tThereWasARecipe = removeRecipeByOutput(aResult, !aRemoveAllOthersWithSameOutputIfTheyHaveSameNBT, aRemoveAllOtherShapedsWithSameOutput, aRemoveAllOtherNativeRecipes) || tThereWasARecipe; @@ -876,9 +874,9 @@ public class GT_ModHandler { for (int i = 0; i < tList.size() && !tThereWasARecipe; i++) { IRecipe tRecipe = tList.get(i); if (sSpecialRecipeClasses.contains(tRecipe.getClass().getName())) continue; - if (GT_Utility.areStacksEqual(GT_OreDictUnificator.get(tRecipe.getRecipeOutput()), aResult, T)) { + if (GT_Utility.areStacksEqual(GT_OreDictUnificator.get(tRecipe.getRecipeOutput()), aResult, true)) { tList.remove(i--); - tThereWasARecipe = T; + tThereWasARecipe = true; } } } @@ -893,14 +891,14 @@ public class GT_ModHandler { else GameRegistry.addRecipe(new GT_Shaped_Recipe(GT_Utility.copy(aResult), aDismantleable, aRemovable, aKeepNBT, aEnchantmentsAdded, aEnchantmentLevelsAdded, aRecipe).setMirrored(aMirrored)); } - return T; + return true; } /** * Shapeless Crafting Recipes. Deletes conflicting Recipes too. */ public static boolean addShapelessEnchantingRecipe(ItemStack aResult, Enchantment[] aEnchantmentsAdded, int[] aEnchantmentLevelsAdded, Object[] aRecipe) { - return addShapelessCraftingRecipe(aResult, aEnchantmentsAdded, aEnchantmentLevelsAdded, T, F, F, F, aRecipe); + return addShapelessCraftingRecipe(aResult, aEnchantmentsAdded, aEnchantmentLevelsAdded, true , false, false, false, aRecipe); } /** @@ -921,8 +919,8 @@ public class GT_ModHandler { * Shapeless Crafting Recipes. Deletes conflicting Recipes too. */ private static boolean addShapelessCraftingRecipe(ItemStack aResult, Enchantment[] aEnchantmentsAdded, int[] aEnchantmentLevelsAdded, boolean aBuffered, boolean aKeepNBT, boolean aDismantleable, boolean aRemovable, Object[] aRecipe) { - aResult = GT_OreDictUnificator.get(T, aResult); - if (aRecipe == null || aRecipe.length <= 0) return F; + aResult = GT_OreDictUnificator.get(true, aResult); + if (aRecipe == null || aRecipe.length <= 0) return false; for (byte i = 0; i < aRecipe.length; i++) { if (aRecipe[i] instanceof IItemContainer) aRecipe[i] = ((IItemContainer)aRecipe[i]).get(1); @@ -938,7 +936,7 @@ public class GT_ModHandler { if (tObject == null) { if (D1) GT_Log.err.println("WARNING: Missing Item for shapeless Recipe: " + (aResult==null?"null":aResult.getDisplayName())); for (Object tContent : aRecipe) GT_Log.err.println(tContent); - return F; + return false; } if (tObject instanceof ItemStack) { tRecipe[i] = (ItemStack)tObject; @@ -955,7 +953,7 @@ public class GT_ModHandler { removeRecipe(tRecipe); } catch(Throwable e) {e.printStackTrace(GT_Log.err);} - if (aResult == null || aResult.stackSize <= 0) return F; + if (aResult == null || aResult.stackSize <= 0) return false; if (Items.feather.getDamage(aResult) == W || Items.feather.getDamage(aResult) < 0) Items.feather.setDamage(aResult, 0); @@ -965,7 +963,7 @@ public class GT_ModHandler { sBufferRecipeList.add(new GT_Shapeless_Recipe(GT_Utility.copy(aResult), aDismantleable, aRemovable, aKeepNBT, aEnchantmentsAdded, aEnchantmentLevelsAdded, aRecipe)); else GameRegistry.addRecipe(new GT_Shapeless_Recipe(GT_Utility.copy(aResult), aDismantleable, aRemovable, aKeepNBT, aEnchantmentsAdded, aEnchantmentLevelsAdded, aRecipe)); - return T; + return true; } /** @@ -974,13 +972,13 @@ public class GT_ModHandler { public static boolean removeFurnaceSmelting(ItemStack aInput) { if (aInput != null) { for (Object tInput : FurnaceRecipes.smelting().getSmeltingList().keySet()) { - if (GT_Utility.isStackValid(tInput) && GT_Utility.areStacksEqual(aInput, (ItemStack)tInput, T)) { + if (GT_Utility.isStackValid(tInput) && GT_Utility.areStacksEqual(aInput, (ItemStack)tInput, true)) { FurnaceRecipes.smelting().getSmeltingList().remove(tInput); - return T; + return true; } } } - return F; + return false; } /** @@ -990,16 +988,16 @@ public class GT_ModHandler { */ public static ItemStack removeRecipe(ItemStack... aRecipe) { if (aRecipe == null) return null; - boolean temp = F; + boolean temp = false; for (byte i = 0; i < aRecipe.length; i++) { if (aRecipe[i] != null) { - temp = T; + temp = true; break; } } if (!temp) return null; ItemStack rReturn = null; - InventoryCrafting aCrafting = new InventoryCrafting(new Container() {@Override public boolean canInteractWith(EntityPlayer var1) {return F;}}, 3, 3); + InventoryCrafting aCrafting = new InventoryCrafting(new Container() {@Override public boolean canInteractWith(EntityPlayer var1) {return false;}}, 3, 3); for (int i = 0; i < aRecipe.length && i < 9; i++) aCrafting.setInventorySlotContents(i, aRecipe[i]); ArrayList tList = (ArrayList)CraftingManager.getInstance().getRecipeList(); for (int i = 0; i < tList.size(); i++) {try {for (; i < tList.size(); i++) { @@ -1012,7 +1010,7 @@ public class GT_ModHandler { } public static boolean removeRecipeByOutput(ItemStack aOutput) { - return removeRecipeByOutput(aOutput, T, F, F); + return removeRecipeByOutput(aOutput, true , false, false); } public static Collection sNativeRecipeClasses = new HashSet(), sSpecialRecipeClasses = new HashSet(); @@ -1066,8 +1064,8 @@ public class GT_ModHandler { * @return if it has removed at least one Recipe. */ public static boolean removeRecipeByOutput(ItemStack aOutput, boolean aIgnoreNBT, boolean aNotRemoveShapelessRecipes, boolean aOnlyRemoveNativeHandlers) { - if (aOutput == null) return F; - boolean rReturn = F; + if (aOutput == null) return false; + boolean rReturn = false; ArrayList tList = (ArrayList)CraftingManager.getInstance().getRecipeList(); aOutput = GT_OreDictUnificator.get(aOutput); for (int i = 0; i < tList.size(); i++) { @@ -1081,7 +1079,7 @@ public class GT_ModHandler { ItemStack tStack = tRecipe.getRecipeOutput(); if ((!(tRecipe instanceof IGT_CraftingRecipe) || ((IGT_CraftingRecipe)tRecipe).isRemovable()) && GT_Utility.areStacksEqual(GT_OreDictUnificator.get(tStack), aOutput, aIgnoreNBT)) { tList.remove(i--); - rReturn = T; + rReturn = true; } } return rReturn; @@ -1096,15 +1094,15 @@ public class GT_ModHandler { if (aWorld == null) aWorld = DW; - boolean temp = F; + boolean temp = false; for (byte i = 0; i < aRecipe.length; i++) { if (aRecipe[i] != null) { - temp = T; + temp = true; break; } } if (!temp) return null; - InventoryCrafting aCrafting = new InventoryCrafting(new Container() {@Override public boolean canInteractWith(EntityPlayer var1) {return F;}}, 3, 3); + InventoryCrafting aCrafting = new InventoryCrafting(new Container() {@Override public boolean canInteractWith(EntityPlayer var1) {return false;}}, 3, 3); for (int i = 0; i < 9 && i < aRecipe.length; i++) aCrafting.setInventorySlotContents(i, aRecipe[i]); List tList = CraftingManager.getInstance().getRecipeList(); synchronized(sAllRecipeList) { @@ -1151,7 +1149,7 @@ public class GT_ModHandler { * Used for Recipe Detection. */ public static ItemStack getRecipeOutput(ItemStack... aRecipe) { - return getRecipeOutput(F, aRecipe); + return getRecipeOutput(false, aRecipe); } /** @@ -1160,18 +1158,18 @@ public class GT_ModHandler { */ public static ItemStack getRecipeOutput(boolean aUncopiedStack, ItemStack... aRecipe) { if (aRecipe == null) return null; - boolean temp = F; + boolean temp = false; for (byte i = 0; i < aRecipe.length; i++) { if (aRecipe[i] != null) { - temp = T; + temp = true; break; } } if (!temp) return null; - InventoryCrafting aCrafting = new InventoryCrafting(new Container() {@Override public boolean canInteractWith(EntityPlayer var1) {return F;}}, 3, 3); + InventoryCrafting aCrafting = new InventoryCrafting(new Container() {@Override public boolean canInteractWith(EntityPlayer var1) {return false;}}, 3, 3); for (int i = 0; i < 9 && i < aRecipe.length; i++) aCrafting.setInventorySlotContents(i, aRecipe[i]); ArrayList tList = (ArrayList)CraftingManager.getInstance().getRecipeList(); - for (int i = 0; i < tList.size(); i++) {temp = F; + for (int i = 0; i < tList.size(); i++) {temp = false; try { temp = tList.get(i).matches(aCrafting, DW); } catch(Throwable e) {e.printStackTrace(GT_Log.err);} @@ -1204,23 +1202,23 @@ public class GT_ModHandler { if (GT_Utility.isStackValid(tStack) && tStack.getMaxStackSize() == 1 && tStack.getMaxDamage() > 0 && !(tStack.getItem() instanceof ItemBlock) && !(tStack.getItem() instanceof IReactorComponent) && !isElectricItem(tStack) && !GT_Utility.isStackInList(tStack, sNonReplaceableItems)) { if (!(tRecipe instanceof ShapelessRecipes || tRecipe instanceof ShapelessOreRecipe)) { if (tRecipe instanceof ShapedOreRecipe) { - boolean temp = T; + boolean temp = true; for (Object tObject : ((ShapedOreRecipe)tRecipe).getInput()) if (tObject != null) { if (tObject instanceof ItemStack && (((ItemStack)tObject).getItem() == null || ((ItemStack)tObject).getMaxStackSize() < 2 || ((ItemStack)tObject).getMaxDamage() > 0 || ((ItemStack)tObject).getItem() instanceof ItemBlock)) { - temp = F; + temp = false; break; } if (tObject instanceof List && ((List)tObject).isEmpty()) { - temp = F; + temp = false; break; } } if (temp) sSingleNonBlockDamagableRecipeList.add(tRecipe); } else if (tRecipe instanceof ShapedRecipes) { - boolean temp = T; + boolean temp = true; for (ItemStack tObject : ((ShapedRecipes)tRecipe).recipeItems) { if (tObject != null && (tObject.getItem() == null || tObject.getMaxStackSize() < 2 || tObject.getMaxDamage() > 0 || tObject.getItem() instanceof ItemBlock)) { - temp = F; + temp = false; break; } } @@ -1233,7 +1231,7 @@ public class GT_ModHandler { } GT_Log.out.println("GT_Mod: Created a List of Tool Recipes containing " + sSingleNonBlockDamagableRecipeList.size() + " Recipes for recycling." + (sSingleNonBlockDamagableRecipeList.size()>1024?" Scanning all these Recipes is the reason for the startup Lag you receive right now.":E)); } - ArrayList rList = getRecipeOutputs(sSingleNonBlockDamagableRecipeList, T, aRecipe); + ArrayList rList = getRecipeOutputs(sSingleNonBlockDamagableRecipeList, true, aRecipe); if (!GregTech_API.sPostloadStarted || GregTech_API.sPostloadFinished) sSingleNonBlockDamagableRecipeList.clear(); return rList; } @@ -1243,7 +1241,7 @@ public class GT_ModHandler { * If you have multiple Mods, which add Bronze Armor for example */ public static ArrayList getRecipeOutputs(ItemStack... aRecipe) { - return getRecipeOutputs(CraftingManager.getInstance().getRecipeList(), F, aRecipe); + return getRecipeOutputs(CraftingManager.getInstance().getRecipeList(), false, aRecipe); } /** @@ -1253,19 +1251,19 @@ public class GT_ModHandler { public static ArrayList getRecipeOutputs(List aList, boolean aDeleteFromList, ItemStack... aRecipe) { ArrayList rList = new ArrayList(); if (aRecipe == null) return rList; - boolean temp = F; + boolean temp = false; for (byte i = 0; i < aRecipe.length; i++) { if (aRecipe[i] != null) { - temp = T; + temp = true; break; } } if (!temp) return rList; InventoryCrafting aCrafting = new InventoryCrafting(new Container() {@Override - public boolean canInteractWith(EntityPlayer var1) {return F;}}, 3, 3); + public boolean canInteractWith(EntityPlayer var1) {return false;}}, 3, 3); for (int i = 0; i < 9 && i < aRecipe.length; i++) aCrafting.setInventorySlotContents(i, aRecipe[i]); for (int i = 0; i < aList.size(); i++) { - temp = F; + temp = false; try { temp = aList.get(i).matches(aCrafting, DW); } catch(Throwable e) {e.printStackTrace(GT_Log.err);} @@ -1377,7 +1375,7 @@ public class GT_ModHandler { * For the Scrapboxinator */ public static ItemStack getRandomScrapboxDrop() { - return ic2.api.recipe.Recipes.scrapboxDrops.getDrop(ItemList.IC2_Scrapbox.get(1), F); + return ic2.api.recipe.Recipes.scrapboxDrops.getDrop(ItemList.IC2_Scrapbox.get(1), false); } /** @@ -1393,7 +1391,7 @@ public class GT_ModHandler { if (tTier < 0 || tTier == aTier || aTier == Integer.MAX_VALUE) { if (!aIgnoreLimit && tTier >= 0) aCharge = (int)Math.min(aCharge, V[Math.max(0, Math.min(V.length-1, tTier))]); if (aCharge > 0) { - int rCharge = (int)Math.max(0.0, ic2.api.item.ElectricItem.manager.charge(aStack, aCharge, tTier, T, aSimulate)); + int rCharge = (int)Math.max(0.0, ic2.api.item.ElectricItem.manager.charge(aStack, aCharge, tTier, true, aSimulate)); return rCharge + (rCharge * 4 > aTier ? aTier : 0); } } @@ -1417,7 +1415,7 @@ public class GT_ModHandler { if (!aIgnoreLimit && tTier >= 0) aCharge = (int)Math.min(aCharge, V[Math.max(0, Math.min(V.length-1, tTier))]); if (aCharge > 0) { // int rCharge = Math.max(0, ic2.api.item.ElectricItem.manager.discharge(aStack, aCharge + (aCharge * 4 > aTier ? aTier : 0), tTier, T, aSimulate)); - int rCharge = (int)Math.max(0, ic2.api.item.ElectricItem.manager.discharge(aStack, aCharge + (aCharge * 4 > aTier ? aTier : 0), tTier, T, !aIgnoreDischargability, aSimulate)); + int rCharge = (int)Math.max(0, ic2.api.item.ElectricItem.manager.discharge(aStack, aCharge + (aCharge * 4 > aTier ? aTier : 0), tTier, true , !aIgnoreDischargability, aSimulate)); return rCharge - (rCharge * 4 > aTier ? aTier : 0); } } @@ -1436,7 +1434,7 @@ public class GT_ModHandler { return ic2.api.item.ElectricItem.manager.canUse(aStack, aCharge); } } catch (Throwable e) {/*Do nothing*/} - return F; + return false; } /** @@ -1452,15 +1450,15 @@ public class GT_ModHandler { } } } catch (Throwable e) {/*Do nothing*/} - return F; + return false; } /** * Uses an Item. Tries to discharge in case of Electric Items */ public static boolean damageOrDechargeItem(ItemStack aStack, int aDamage, int aDecharge, EntityLivingBase aPlayer) { - if (GT_Utility.isStackInvalid(aStack) || (aStack.getMaxStackSize() <= 1 && aStack.stackSize > 1)) return F; - if (aPlayer != null && aPlayer instanceof EntityPlayer && ((EntityPlayer)aPlayer).capabilities.isCreativeMode) return T; + if (GT_Utility.isStackInvalid(aStack) || (aStack.getMaxStackSize() <= 1 && aStack.stackSize > 1)) return false; + if (aPlayer != null && aPlayer instanceof EntityPlayer && ((EntityPlayer)aPlayer).capabilities.isCreativeMode) return true; if (aStack.getItem() instanceof IDamagableItem) { return ((IDamagableItem)aStack.getItem()).doDamageToItem(aStack, aDamage); } else if (GT_ModHandler.isElectricItem(aStack)) { @@ -1468,7 +1466,7 @@ public class GT_ModHandler { if (aPlayer != null && aPlayer instanceof EntityPlayer) { return GT_ModHandler.useElectricItem(aStack, aDecharge, (EntityPlayer)aPlayer); } - return GT_ModHandler.dischargeElectricItem(aStack, aDecharge, Integer.MAX_VALUE, T, F, T) >= aDecharge; + return GT_ModHandler.dischargeElectricItem(aStack, aDecharge, Integer.MAX_VALUE, true , false, true) >= aDecharge; } } else if (aStack.getItem().isDamageable()) { if (aPlayer == null) { @@ -1478,7 +1476,7 @@ public class GT_ModHandler { } if (aStack.getItemDamage() >= aStack.getMaxDamage()) { aStack.setItemDamage(aStack.getMaxDamage()+1); - ItemStack tStack = GT_Utility.getContainerItem(aStack, T); + ItemStack tStack = GT_Utility.getContainerItem(aStack, true); if (tStack != null) { aStack.func_150996_a(tStack.getItem()); aStack.setItemDamage(tStack.getItemDamage()); @@ -1486,20 +1484,20 @@ public class GT_ModHandler { aStack.setTagCompound(tStack.getTagCompound()); } } - return T; + return true; } - return F; + return false; } /** * Uses a Soldering Iron */ public static boolean useSolderingIron(ItemStack aStack, EntityLivingBase aPlayer) { - if (aPlayer == null || aStack == null) return F; + if (aPlayer == null || aStack == null) return false; if (GT_Utility.isStackInList(aStack, GregTech_API.sSolderingToolList)) { if (aPlayer instanceof EntityPlayer) { EntityPlayer tPlayer = (EntityPlayer)aPlayer; - if (tPlayer.capabilities.isCreativeMode) return T; + if (tPlayer.capabilities.isCreativeMode) return true; if(isElectricItem(aStack)&&ic2.api.item.ElectricItem.manager.getCharge(aStack)>1000.0d){ for (int i = 0; i < tPlayer.inventory.mainInventory.length; i++) { if (GT_Utility.isStackInList(tPlayer.inventory.mainInventory[i], GregTech_API.sSolderingMetalList)) { @@ -1518,10 +1516,10 @@ public class GT_ModHandler { } } else { damageOrDechargeItem(aStack, 1, 1000, aPlayer); - return T; + return true; } } - return F; + return false; } /** @@ -1533,7 +1531,7 @@ public class GT_ModHandler { return ((ic2.api.item.IElectricItem)aStack.getItem()).canProvideEnergy(aStack); } } catch (Throwable e) {/*Do nothing*/} - return F; + return false; } /** @@ -1543,17 +1541,17 @@ public class GT_ModHandler { try { return aStack != null && aStack.getItem() instanceof ic2.api.item.IElectricItem && ((IElectricItem)aStack.getItem()).getTier(aStack) < Integer.MAX_VALUE; } catch (Throwable e) {/*Do nothing*/} - return F; + return false; } public static boolean isElectricItem(ItemStack aStack, byte aTier) { try { return aStack != null && aStack.getItem() instanceof ic2.api.item.IElectricItem && ((IElectricItem)aStack.getItem()).getTier(aStack) == aTier; } catch (Throwable e) {/*Do nothing*/} - return F; + return false; } - public static Object sBoxableWrapper = GT_Utility.callConstructor("gregtechmod.api.util.GT_IBoxableWrapper", 0, null, F); + public static Object sBoxableWrapper = GT_Utility.callConstructor("gregtechmod.api.util.GT_IBoxableWrapper", 0, null, false); public static void registerBoxableItemToToolBox(ItemStack aStack) { if (aStack != null) registerBoxableItemToToolBox(aStack.getItem()); @@ -1575,7 +1573,7 @@ public class GT_ModHandler { public static int getCapsuleCellContainerCount(ItemStack aStack) { if (aStack == null) return 0; - return GT_Utility.areStacksEqual(GT_Utility.getContainerForFilledItem(aStack, T), ItemList.Cell_Empty.get(1)) || OrePrefixes.cell.contains(aStack) || OrePrefixes.cellPlasma.contains(aStack) || GT_Utility.areStacksEqual(aStack, getIC2Item("waterCell", 1, W)) ? 1 : 0; + return GT_Utility.areStacksEqual(GT_Utility.getContainerForFilledItem(aStack, true), ItemList.Cell_Empty.get(1)) || OrePrefixes.cell.contains(aStack) || OrePrefixes.cellPlasma.contains(aStack) || GT_Utility.areStacksEqual(aStack, getIC2Item("waterCell", 1, W)) ? 1 : 0; } /** diff --git a/src/main/java/gregtech/api/util/GT_Recipe.java b/src/main/java/gregtech/api/util/GT_Recipe.java index 130a63d7..6c1af65f 100644 --- a/src/main/java/gregtech/api/util/GT_Recipe.java +++ b/src/main/java/gregtech/api/util/GT_Recipe.java @@ -40,69 +40,69 @@ public class GT_Recipe { /** Contains all Recipe Maps */ public static final Collection sMappings = new ArrayList(); - public static final GT_Recipe_Map sOreWasherRecipes = new GT_Recipe_Map_OreWasher (new HashSet( 0), "ic.recipe.orewasher" , "Ore Washer" , "ic2.blockOreWashingPlant" , RES_PATH_GUI+"basicmachines/OreWasher" , 1, 3, 1, 1, 1, E , 1, E , T, F); - public static final GT_Recipe_Map sThermalCentrifugeRecipes = new GT_Recipe_Map_ThermalCentrifuge (new HashSet( 0), "ic.recipe.thermalcentrifuge" , "Thermal Centrifuge" , "ic2.blockCentrifuge" , RES_PATH_GUI+"basicmachines/ThermalCentrifuge" , 1, 3, 1, 0, 2, E , 1, E , T, F); - public static final GT_Recipe_Map sCompressorRecipes = new GT_Recipe_Map_Compressor (new HashSet( 0), "ic.recipe.compressor" , "Compressor" , "ic2.compressor" , RES_PATH_GUI+"basicmachines/Compressor" , 1, 1, 1, 0, 1, E , 1, E , T, F); - public static final GT_Recipe_Map sExtractorRecipes = new GT_Recipe_Map_Extractor (new HashSet( 0), "ic.recipe.extractor" , "Extractor" , "ic2.extractor" , RES_PATH_GUI+"basicmachines/Extractor" , 1, 1, 1, 0, 1, E , 1, E , T, F); - public static final GT_Recipe_Map sRecyclerRecipes = new GT_Recipe_Map_Recycler (new HashSet( 0), "ic.recipe.recycler" , "Recycler" , "ic2.recycler" , RES_PATH_GUI+"basicmachines/Recycler" , 1, 1, 1, 0, 1, E , 1, E , T, F); - public static final GT_Recipe_Map sFurnaceRecipes = new GT_Recipe_Map_Furnace (new HashSet( 0), "mc.recipe.furnace" , "Furnace" , "smelting" , RES_PATH_GUI+"basicmachines/E_Furnace" , 1, 1, 1, 0, 1, E , 1, E , T, F); - public static final GT_Recipe_Map sMicrowaveRecipes = new GT_Recipe_Map_Microwave (new HashSet( 0), "gt.recipe.microwave" , "Microwave" , "smelting" , RES_PATH_GUI+"basicmachines/E_Furnace" , 1, 1, 1, 0, 1, E , 1, E , T, F); + public static final GT_Recipe_Map sOreWasherRecipes = new GT_Recipe_Map_OreWasher (new HashSet( 0), "ic.recipe.orewasher" , "Ore Washer" , "ic2.blockOreWashingPlant" , RES_PATH_GUI+"basicmachines/OreWasher" , 1, 3, 1, 1, 1, E , 1, E , true , false); + public static final GT_Recipe_Map sThermalCentrifugeRecipes = new GT_Recipe_Map_ThermalCentrifuge (new HashSet( 0), "ic.recipe.thermalcentrifuge" , "Thermal Centrifuge" , "ic2.blockCentrifuge" , RES_PATH_GUI+"basicmachines/ThermalCentrifuge" , 1, 3, 1, 0, 2, E , 1, E , true , false); + public static final GT_Recipe_Map sCompressorRecipes = new GT_Recipe_Map_Compressor (new HashSet( 0), "ic.recipe.compressor" , "Compressor" , "ic2.compressor" , RES_PATH_GUI+"basicmachines/Compressor" , 1, 1, 1, 0, 1, E , 1, E , true , false); + public static final GT_Recipe_Map sExtractorRecipes = new GT_Recipe_Map_Extractor (new HashSet( 0), "ic.recipe.extractor" , "Extractor" , "ic2.extractor" , RES_PATH_GUI+"basicmachines/Extractor" , 1, 1, 1, 0, 1, E , 1, E , true , false); + public static final GT_Recipe_Map sRecyclerRecipes = new GT_Recipe_Map_Recycler (new HashSet( 0), "ic.recipe.recycler" , "Recycler" , "ic2.recycler" , RES_PATH_GUI+"basicmachines/Recycler" , 1, 1, 1, 0, 1, E , 1, E , true , false); + public static final GT_Recipe_Map sFurnaceRecipes = new GT_Recipe_Map_Furnace (new HashSet( 0), "mc.recipe.furnace" , "Furnace" , "smelting" , RES_PATH_GUI+"basicmachines/E_Furnace" , 1, 1, 1, 0, 1, E , 1, E , true , false); + public static final GT_Recipe_Map sMicrowaveRecipes = new GT_Recipe_Map_Microwave (new HashSet( 0), "gt.recipe.microwave" , "Microwave" , "smelting" , RES_PATH_GUI+"basicmachines/E_Furnace" , 1, 1, 1, 0, 1, E , 1, E , true , false); - public static final GT_Recipe_Map sScannerFakeRecipes = new GT_Recipe_Map (new HashSet( 3), "gt.recipe.scanner" , "Scanner" , null , RES_PATH_GUI+"basicmachines/Scanner" , 1, 1, 1, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sRockBreakerFakeRecipes = new GT_Recipe_Map (new HashSet( 3), "gt.recipe.rockbreaker" , "Rock Breaker" , null , RES_PATH_GUI+"basicmachines/RockBreaker" , 1, 1, 0, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sByProductList = new GT_Recipe_Map (new HashSet( 1000), "gt.recipe.byproductlist" , "Ore Byproduct List" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 6, 1, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sRepicatorFakeRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.replicator" , "Replicator" , null , RES_PATH_GUI+"basicmachines/Replicator" , 0, 1, 0, 1, 1, E , 1, E , T, T); + public static final GT_Recipe_Map sScannerFakeRecipes = new GT_Recipe_Map (new HashSet( 3), "gt.recipe.scanner" , "Scanner" , null , RES_PATH_GUI+"basicmachines/Scanner" , 1, 1, 1, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sRockBreakerFakeRecipes = new GT_Recipe_Map (new HashSet( 3), "gt.recipe.rockbreaker" , "Rock Breaker" , null , RES_PATH_GUI+"basicmachines/RockBreaker" , 1, 1, 0, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sByProductList = new GT_Recipe_Map (new HashSet( 1000), "gt.recipe.byproductlist" , "Ore Byproduct List" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 6, 1, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sRepicatorFakeRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.replicator" , "Replicator" , null , RES_PATH_GUI+"basicmachines/Replicator" , 0, 1, 0, 1, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sPlasmaArcFurnaceRecipes = new GT_Recipe_Map (new HashSet(10000), "gt.recipe.plasmaarcfurnace" , "Plasma Arc Furnace" , null , RES_PATH_GUI+"basicmachines/PlasmaArcFurnace" , 1, 4, 1, 1, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sArcFurnaceRecipes = new GT_Recipe_Map (new HashSet(10000), "gt.recipe.arcfurnace" , "Arc Furnace" , null , RES_PATH_GUI+"basicmachines/ArcFurnace" , 1, 4, 1, 1, 3, E , 1, E , T, T); - public static final GT_Recipe_Map sPrinterRecipes = new GT_Recipe_Map_Printer (new HashSet( 100), "gt.recipe.printer" , "Printer" , null , RES_PATH_GUI+"basicmachines/Printer" , 1, 1, 1, 1, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sSifterRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.sifter" , "Sifter" , null , RES_PATH_GUI+"basicmachines/Sifter" , 1, 9, 1, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sPressRecipes = new GT_Recipe_Map_FormingPress (new HashSet( 100), "gt.recipe.press" , "Forming Press" , null , RES_PATH_GUI+"basicmachines/Press" , 2, 1, 2, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sLaserEngraverRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.laserengraver" , "Precision Laser Engraver" , null , RES_PATH_GUI+"basicmachines/LaserEngraver" , 2, 1, 2, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sMixerRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.mixer" , "Mixer" , null , RES_PATH_GUI+"basicmachines/Mixer" , 4, 1, 1, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sAutoclaveRecipes = new GT_Recipe_Map (new HashSet( 200), "gt.recipe.autoclave" , "Autoclave" , null , RES_PATH_GUI+"basicmachines/Autoclave" , 1, 1, 1, 1, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sElectroMagneticSeparatorRecipes = new GT_Recipe_Map (new HashSet( 50), "gt.recipe.electromagneticseparator" , "Electromagnetic Separator" , null , RES_PATH_GUI+"basicmachines/ElectromagneticSeparator" , 1, 3, 1, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sPolarizerRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.polarizer" , "Electromagnetic Polarizer" , null , RES_PATH_GUI+"basicmachines/Polarizer" , 1, 1, 1, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sMaceratorRecipes = new GT_Recipe_Map_Macerator (new HashSet(10000), "gt.recipe.macerator" , "Pulverization" , null , RES_PATH_GUI+"basicmachines/Macerator4" , 1, 4, 1, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sChemicalBathRecipes = new GT_Recipe_Map (new HashSet( 200), "gt.recipe.chemicalbath" , "Chemical Bath" , null , RES_PATH_GUI+"basicmachines/ChemicalBath" , 1, 3, 1, 1, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sFluidCannerRecipes = new GT_Recipe_Map_FluidCanner (new HashSet( 100), "gt.recipe.fluidcanner" , "Fluid Canning Machine" , null , RES_PATH_GUI+"basicmachines/FluidCannerNEI" , 1, 1, 1, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sBrewingRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.brewer" , "Brewing Machine" , null , RES_PATH_GUI+"basicmachines/PotionBrewer" , 1, 0, 1, 1, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sFluidHeaterRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.fluidheater" , "Fluid Heater" , null , RES_PATH_GUI+"basicmachines/FluidHeater" , 1, 0, 1, 1, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sDistilleryRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.distillery" , "Distillery" , null , RES_PATH_GUI+"basicmachines/Distillery" , 1, 0, 1, 1, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sFermentingRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.fermenter" , "Fermenter" , null , RES_PATH_GUI+"basicmachines/Fermenter" , 0, 0, 0, 1, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sFluidSolidficationRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.fluidsolidifier" , "Fluid Solidifier" , null , RES_PATH_GUI+"basicmachines/FluidSolidifier" , 1, 1, 1, 1, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sFluidExtractionRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.fluidextractor" , "Fluid Extractor" , null , RES_PATH_GUI+"basicmachines/FluidExtractor" , 1, 1, 1, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sBoxinatorRecipes = new GT_Recipe_Map (new HashSet( 2500), "gt.recipe.packager" , "Packager" , null , RES_PATH_GUI+"basicmachines/Packager" , 2, 1, 2, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sUnboxinatorRecipes = new GT_Recipe_Map_Unboxinator (new HashSet( 2500), "gt.recipe.unpackager" , "Unpackager" , null , RES_PATH_GUI+"basicmachines/Unpackager" , 1, 2, 1, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sFusionRecipes = new GT_Recipe_Map (new HashSet( 50), "gt.recipe.fusionreactor" , "Fusion Reactor" , null , RES_PATH_GUI+"basicmachines/Default" , 0, 0, 0, 2, 1, "Start: " , 1, " EU" , T, T); - public static final GT_Recipe_Map sCentrifugeRecipes = new GT_Recipe_Map (new HashSet( 1000), "gt.recipe.centrifuge" , "Centrifuge" , null , RES_PATH_GUI+"basicmachines/Centrifuge" , 2, 6, 0, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sElectrolyzerRecipes = new GT_Recipe_Map (new HashSet( 200), "gt.recipe.electrolyzer" , "Electrolyzer" , null , RES_PATH_GUI+"basicmachines/Electrolyzer" , 2, 6, 0, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sBlastRecipes = new GT_Recipe_Map (new HashSet( 500), "gt.recipe.blastfurnace" , "Blast Furnace" , null , RES_PATH_GUI+"basicmachines/Default" , 2, 2, 1, 0, 1, "Heat Capacity: " , 1, " K" , F, T); - public static final GT_Recipe_Map sImplosionRecipes = new GT_Recipe_Map (new HashSet( 50), "gt.recipe.implosioncompressor" , "Implosion Compressor" , null , RES_PATH_GUI+"basicmachines/Default" , 2, 2, 2, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sVacuumRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.vacuumfreezer" , "Vacuum Freezer" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 1, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sChemicalRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.chemicalreactor" , "Chemical Reactor" , null , RES_PATH_GUI+"basicmachines/ChemicalReactor" , 2, 1, 1, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sDistillationRecipes = new GT_Recipe_Map (new HashSet( 50), "gt.recipe.distillationtower" , "Distillation Tower" , null , RES_PATH_GUI+"basicmachines/Default" , 2, 4, 0, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sWiremillRecipes = new GT_Recipe_Map (new HashSet( 50), "gt.recipe.wiremill" , "Wiremill" , null , RES_PATH_GUI+"basicmachines/Wiremill" , 1, 1, 1, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sBenderRecipes = new GT_Recipe_Map (new HashSet( 400), "gt.recipe.metalbender" , "Metal Bender" , null , RES_PATH_GUI+"basicmachines/Bender" , 2, 1, 2, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sAlloySmelterRecipes = new GT_Recipe_Map (new HashSet( 3000), "gt.recipe.alloysmelter" , "Alloy Smelter" , null , RES_PATH_GUI+"basicmachines/AlloySmelter" , 2, 1, 2, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sAssemblerRecipes = new GT_Recipe_Map_Assembler (new HashSet( 300), "gt.recipe.assembler" , "Assembler" , null , RES_PATH_GUI+"basicmachines/Assembler" , 2, 1, 1, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sCannerRecipes = new GT_Recipe_Map (new HashSet( 300), "gt.recipe.canner" , "Canning Machine" , null , RES_PATH_GUI+"basicmachines/Canner" , 2, 2, 1, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sCNCRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.cncmachine" , "CNC Machine" , null , RES_PATH_GUI+"basicmachines/Default" , 2, 1, 2, 1, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sLatheRecipes = new GT_Recipe_Map (new HashSet( 400), "gt.recipe.lathe" , "Lathe" , null , RES_PATH_GUI+"basicmachines/Lathe" , 1, 2, 1, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sCutterRecipes = new GT_Recipe_Map (new HashSet( 200), "gt.recipe.cuttingsaw" , "Cutting Saw" , null , RES_PATH_GUI+"basicmachines/Cutter" , 1, 2, 1, 1, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sSlicerRecipes = new GT_Recipe_Map (new HashSet( 200), "gt.recipe.slicer" , "Slicer" , null , RES_PATH_GUI+"basicmachines/Slicer" , 2, 1, 2, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sExtruderRecipes = new GT_Recipe_Map (new HashSet( 1000), "gt.recipe.extruder" , "Extruder" , null , RES_PATH_GUI+"basicmachines/Extruder" , 2, 1, 2, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sHammerRecipes = new GT_Recipe_Map (new HashSet( 200), "gt.recipe.hammer" , "Hammer" , null , RES_PATH_GUI+"basicmachines/Hammer" , 1, 1, 1, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map sAmplifiers = new GT_Recipe_Map (new HashSet( 10), "gt.recipe.uuamplifier" , "UU Amplifier" , null , RES_PATH_GUI+"basicmachines/Amplifabricator" , 1, 0, 1, 0, 1, E , 1, E , T, T); - public static final GT_Recipe_Map_Fuel sDieselFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.dieselgeneratorfuel" , "Diesel Generator Fuel" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , T, T); - public static final GT_Recipe_Map_Fuel sTurbineFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.gasturbinefuel" , "Gas Turbine Fuel" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , T, T); - public static final GT_Recipe_Map_Fuel sHotFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.thermalgeneratorfuel" , "Thermal Generator Fuel" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , T, F); - public static final GT_Recipe_Map_Fuel sDenseLiquidFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.semifluidboilerfuels" , "Semifluid Boiler Fuels" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , T, T); - public static final GT_Recipe_Map_Fuel sPlasmaFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.plasmageneratorfuels" , "Plasma generator Fuels" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , T, T); - public static final GT_Recipe_Map_Fuel sMagicFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.magicfuels" , "Magic Fuels" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , T, T); - public static final GT_Recipe_Map_Fuel sSmallNaquadahReactorFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.smallnaquadahreactor" , "Small Naquadah Reactor" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , T, T); - public static final GT_Recipe_Map_Fuel sLargeNaquadahReactorFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.largenaquadahreactor" , "Large Naquadah Reactor" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , T, T); - public static final GT_Recipe_Map_Fuel sFluidNaquadahReactorFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.fluidnaquadahreactor" , "Fluid Naquadah Reactor" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , T, T); + public static final GT_Recipe_Map sPlasmaArcFurnaceRecipes = new GT_Recipe_Map (new HashSet(10000), "gt.recipe.plasmaarcfurnace" , "Plasma Arc Furnace" , null , RES_PATH_GUI+"basicmachines/PlasmaArcFurnace" , 1, 4, 1, 1, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sArcFurnaceRecipes = new GT_Recipe_Map (new HashSet(10000), "gt.recipe.arcfurnace" , "Arc Furnace" , null , RES_PATH_GUI+"basicmachines/ArcFurnace" , 1, 4, 1, 1, 3, E , 1, E , true , true); + public static final GT_Recipe_Map sPrinterRecipes = new GT_Recipe_Map_Printer (new HashSet( 100), "gt.recipe.printer" , "Printer" , null , RES_PATH_GUI+"basicmachines/Printer" , 1, 1, 1, 1, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sSifterRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.sifter" , "Sifter" , null , RES_PATH_GUI+"basicmachines/Sifter" , 1, 9, 1, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sPressRecipes = new GT_Recipe_Map_FormingPress (new HashSet( 100), "gt.recipe.press" , "Forming Press" , null , RES_PATH_GUI+"basicmachines/Press" , 2, 1, 2, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sLaserEngraverRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.laserengraver" , "Precision Laser Engraver" , null , RES_PATH_GUI+"basicmachines/LaserEngraver" , 2, 1, 2, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sMixerRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.mixer" , "Mixer" , null , RES_PATH_GUI+"basicmachines/Mixer" , 4, 1, 1, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sAutoclaveRecipes = new GT_Recipe_Map (new HashSet( 200), "gt.recipe.autoclave" , "Autoclave" , null , RES_PATH_GUI+"basicmachines/Autoclave" , 1, 1, 1, 1, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sElectroMagneticSeparatorRecipes = new GT_Recipe_Map (new HashSet( 50), "gt.recipe.electromagneticseparator" , "Electromagnetic Separator" , null , RES_PATH_GUI+"basicmachines/ElectromagneticSeparator" , 1, 3, 1, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sPolarizerRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.polarizer" , "Electromagnetic Polarizer" , null , RES_PATH_GUI+"basicmachines/Polarizer" , 1, 1, 1, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sMaceratorRecipes = new GT_Recipe_Map_Macerator (new HashSet(10000), "gt.recipe.macerator" , "Pulverization" , null , RES_PATH_GUI+"basicmachines/Macerator4" , 1, 4, 1, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sChemicalBathRecipes = new GT_Recipe_Map (new HashSet( 200), "gt.recipe.chemicalbath" , "Chemical Bath" , null , RES_PATH_GUI+"basicmachines/ChemicalBath" , 1, 3, 1, 1, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sFluidCannerRecipes = new GT_Recipe_Map_FluidCanner (new HashSet( 100), "gt.recipe.fluidcanner" , "Fluid Canning Machine" , null , RES_PATH_GUI+"basicmachines/FluidCannerNEI" , 1, 1, 1, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sBrewingRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.brewer" , "Brewing Machine" , null , RES_PATH_GUI+"basicmachines/PotionBrewer" , 1, 0, 1, 1, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sFluidHeaterRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.fluidheater" , "Fluid Heater" , null , RES_PATH_GUI+"basicmachines/FluidHeater" , 1, 0, 1, 1, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sDistilleryRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.distillery" , "Distillery" , null , RES_PATH_GUI+"basicmachines/Distillery" , 1, 0, 1, 1, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sFermentingRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.fermenter" , "Fermenter" , null , RES_PATH_GUI+"basicmachines/Fermenter" , 0, 0, 0, 1, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sFluidSolidficationRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.fluidsolidifier" , "Fluid Solidifier" , null , RES_PATH_GUI+"basicmachines/FluidSolidifier" , 1, 1, 1, 1, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sFluidExtractionRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.fluidextractor" , "Fluid Extractor" , null , RES_PATH_GUI+"basicmachines/FluidExtractor" , 1, 1, 1, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sBoxinatorRecipes = new GT_Recipe_Map (new HashSet( 2500), "gt.recipe.packager" , "Packager" , null , RES_PATH_GUI+"basicmachines/Packager" , 2, 1, 2, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sUnboxinatorRecipes = new GT_Recipe_Map_Unboxinator (new HashSet( 2500), "gt.recipe.unpackager" , "Unpackager" , null , RES_PATH_GUI+"basicmachines/Unpackager" , 1, 2, 1, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sFusionRecipes = new GT_Recipe_Map (new HashSet( 50), "gt.recipe.fusionreactor" , "Fusion Reactor" , null , RES_PATH_GUI+"basicmachines/Default" , 0, 0, 0, 2, 1, "Start: " , 1, " EU" , true , true); + public static final GT_Recipe_Map sCentrifugeRecipes = new GT_Recipe_Map (new HashSet( 1000), "gt.recipe.centrifuge" , "Centrifuge" , null , RES_PATH_GUI+"basicmachines/Centrifuge" , 2, 6, 0, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sElectrolyzerRecipes = new GT_Recipe_Map (new HashSet( 200), "gt.recipe.electrolyzer" , "Electrolyzer" , null , RES_PATH_GUI+"basicmachines/Electrolyzer" , 2, 6, 0, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sBlastRecipes = new GT_Recipe_Map (new HashSet( 500), "gt.recipe.blastfurnace" , "Blast Furnace" , null , RES_PATH_GUI+"basicmachines/Default" , 2, 2, 1, 0, 1, "Heat Capacity: " , 1, " K" , false, true); + public static final GT_Recipe_Map sImplosionRecipes = new GT_Recipe_Map (new HashSet( 50), "gt.recipe.implosioncompressor" , "Implosion Compressor" , null , RES_PATH_GUI+"basicmachines/Default" , 2, 2, 2, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sVacuumRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.vacuumfreezer" , "Vacuum Freezer" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 1, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sChemicalRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.chemicalreactor" , "Chemical Reactor" , null , RES_PATH_GUI+"basicmachines/ChemicalReactor" , 2, 1, 1, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sDistillationRecipes = new GT_Recipe_Map (new HashSet( 50), "gt.recipe.distillationtower" , "Distillation Tower" , null , RES_PATH_GUI+"basicmachines/Default" , 2, 4, 0, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sWiremillRecipes = new GT_Recipe_Map (new HashSet( 50), "gt.recipe.wiremill" , "Wiremill" , null , RES_PATH_GUI+"basicmachines/Wiremill" , 1, 1, 1, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sBenderRecipes = new GT_Recipe_Map (new HashSet( 400), "gt.recipe.metalbender" , "Metal Bender" , null , RES_PATH_GUI+"basicmachines/Bender" , 2, 1, 2, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sAlloySmelterRecipes = new GT_Recipe_Map (new HashSet( 3000), "gt.recipe.alloysmelter" , "Alloy Smelter" , null , RES_PATH_GUI+"basicmachines/AlloySmelter" , 2, 1, 2, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sAssemblerRecipes = new GT_Recipe_Map_Assembler (new HashSet( 300), "gt.recipe.assembler" , "Assembler" , null , RES_PATH_GUI+"basicmachines/Assembler" , 2, 1, 1, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sCannerRecipes = new GT_Recipe_Map (new HashSet( 300), "gt.recipe.canner" , "Canning Machine" , null , RES_PATH_GUI+"basicmachines/Canner" , 2, 2, 1, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sCNCRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.cncmachine" , "CNC Machine" , null , RES_PATH_GUI+"basicmachines/Default" , 2, 1, 2, 1, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sLatheRecipes = new GT_Recipe_Map (new HashSet( 400), "gt.recipe.lathe" , "Lathe" , null , RES_PATH_GUI+"basicmachines/Lathe" , 1, 2, 1, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sCutterRecipes = new GT_Recipe_Map (new HashSet( 200), "gt.recipe.cuttingsaw" , "Cutting Saw" , null , RES_PATH_GUI+"basicmachines/Cutter" , 1, 2, 1, 1, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sSlicerRecipes = new GT_Recipe_Map (new HashSet( 200), "gt.recipe.slicer" , "Slicer" , null , RES_PATH_GUI+"basicmachines/Slicer" , 2, 1, 2, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sExtruderRecipes = new GT_Recipe_Map (new HashSet( 1000), "gt.recipe.extruder" , "Extruder" , null , RES_PATH_GUI+"basicmachines/Extruder" , 2, 1, 2, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sHammerRecipes = new GT_Recipe_Map (new HashSet( 200), "gt.recipe.hammer" , "Hammer" , null , RES_PATH_GUI+"basicmachines/Hammer" , 1, 1, 1, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map sAmplifiers = new GT_Recipe_Map (new HashSet( 10), "gt.recipe.uuamplifier" , "UU Amplifier" , null , RES_PATH_GUI+"basicmachines/Amplifabricator" , 1, 0, 1, 0, 1, E , 1, E , true , true); + public static final GT_Recipe_Map_Fuel sDieselFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.dieselgeneratorfuel" , "Diesel Generator Fuel" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , true , true); + public static final GT_Recipe_Map_Fuel sTurbineFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.gasturbinefuel" , "Gas Turbine Fuel" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , true , true); + public static final GT_Recipe_Map_Fuel sHotFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.thermalgeneratorfuel" , "Thermal Generator Fuel" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , true , false); + public static final GT_Recipe_Map_Fuel sDenseLiquidFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.semifluidboilerfuels" , "Semifluid Boiler Fuels" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , true , true); + public static final GT_Recipe_Map_Fuel sPlasmaFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.plasmageneratorfuels" , "Plasma generator Fuels" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , true , true); + public static final GT_Recipe_Map_Fuel sMagicFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.magicfuels" , "Magic Fuels" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , true , true); + public static final GT_Recipe_Map_Fuel sSmallNaquadahReactorFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.smallnaquadahreactor" , "Small Naquadah Reactor" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , true , true); + public static final GT_Recipe_Map_Fuel sLargeNaquadahReactorFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.largenaquadahreactor" , "Large Naquadah Reactor" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , true , true); + public static final GT_Recipe_Map_Fuel sFluidNaquadahReactorFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.fluidnaquadahreactor" , "Fluid Naquadah Reactor" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , true , true); /** HashMap of Recipes based on their Items */ public final Map> mRecipeItemMap = new HashMap>(); @@ -158,7 +158,7 @@ public class GT_Recipe { } public GT_Recipe addRecipe(int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { - return addRecipe(new GT_Recipe(false, null, null, null, aOutputChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue),F,F,F); + return addRecipe(new GT_Recipe(false, null, null, null, aOutputChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue), false, false, false); } public GT_Recipe addRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { @@ -166,30 +166,30 @@ public class GT_Recipe { } public GT_Recipe addRecipe(GT_Recipe aRecipe) { - return addRecipe(aRecipe, T, F, F); + return addRecipe(aRecipe, true , false, false); } protected GT_Recipe addRecipe(GT_Recipe aRecipe, boolean aCheckForCollisions, boolean aFakeRecipe, boolean aHidden) { aRecipe.mHidden = aHidden; aRecipe.mFakeRecipe = aFakeRecipe; if (aRecipe.mFluidInputs.length < mMinimalInputFluids && aRecipe.mInputs.length < mMinimalInputItems) return null; - if (aCheckForCollisions && findRecipe(null, F, Long.MAX_VALUE, aRecipe.mFluidInputs, aRecipe.mInputs) != null) return null; + if (aCheckForCollisions && findRecipe(null, false, Long.MAX_VALUE, aRecipe.mFluidInputs, aRecipe.mInputs) != null) return null; return add(aRecipe); } /** Only used for fake Recipe Handlers to show something in NEI, do not use this for adding actual Recipes! findRecipe wont find fake Recipes, containsInput WILL find fake Recipes */ public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { - return addFakeRecipe(aCheckForCollisions, new GT_Recipe(F, aInputs, aOutputs, aSpecial, aOutputChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue)); + return addFakeRecipe(aCheckForCollisions, new GT_Recipe(false, aInputs, aOutputs, aSpecial, aOutputChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue)); } /** Only used for fake Recipe Handlers to show something in NEI, do not use this for adding actual Recipes! findRecipe wont find fake Recipes, containsInput WILL find fake Recipes */ public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { - return addFakeRecipe(aCheckForCollisions, new GT_Recipe(F, aInputs, aOutputs, aSpecial, null, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue)); + return addFakeRecipe(aCheckForCollisions, new GT_Recipe(false, aInputs, aOutputs, aSpecial, null, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue)); } /** Only used for fake Recipe Handlers to show something in NEI, do not use this for adding actual Recipes! findRecipe wont find fake Recipes, containsInput WILL find fake Recipes */ public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, GT_Recipe aRecipe) { - return addRecipe(aRecipe, aCheckForCollisions, T, F); + return addRecipe(aRecipe, aCheckForCollisions, true , false); } public GT_Recipe add(GT_Recipe aRecipe) { @@ -206,8 +206,8 @@ public class GT_Recipe { Map> tMap = mRecipeItemMap; if (tMap != null) tMap.clear(); for (GT_Recipe tRecipe : mRecipeList) { - GT_OreDictUnificator.setStackArray(T, tRecipe.mInputs); - GT_OreDictUnificator.setStackArray(T, tRecipe.mOutputs); + GT_OreDictUnificator.setStackArray(true , tRecipe.mInputs); + GT_OreDictUnificator.setStackArray(true , tRecipe.mOutputs); if (tMap != null) addToItemMap(tRecipe); } } @@ -268,25 +268,25 @@ public class GT_Recipe { } // Unification happens here in case the Input isn't already unificated. - if (aNotUnificated) aInputs = GT_OreDictUnificator.getStackArray(T, (Object[])aInputs); + if (aNotUnificated) aInputs = GT_OreDictUnificator.getStackArray(true , (Object[])aInputs); // Check the Recipe which has been used last time in order to not have to search for it again, if possible. - if (aRecipe != null) if (!aRecipe.mFakeRecipe && aRecipe.mCanBeBuffered && aRecipe.isRecipeInputEqual(F, T, aFluids, aInputs)) return aRecipe.mEnabled&&aVoltage*mAmperage>=aRecipe.mEUt?aRecipe:null; + if (aRecipe != null) if (!aRecipe.mFakeRecipe && aRecipe.mCanBeBuffered && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe.mEnabled&&aVoltage*mAmperage>=aRecipe.mEUt?aRecipe:null; // Now look for the Recipes inside the Item HashMaps, but only when the Recipes usually have Items. if (mUsualInputCount > 0 && aInputs != null) for (ItemStack tStack : aInputs) if (tStack != null) { Collection tRecipes = mRecipeItemMap.get(new GT_ItemStack(tStack)); - if (tRecipes != null) for (GT_Recipe tRecipe : tRecipes) if (!tRecipe.mFakeRecipe && tRecipe.isRecipeInputEqual(F, T, aFluids, aInputs)) return tRecipe.mEnabled&&aVoltage*mAmperage>=tRecipe.mEUt?tRecipe:null; + if (tRecipes != null) for (GT_Recipe tRecipe : tRecipes) if (!tRecipe.mFakeRecipe && tRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return tRecipe.mEnabled&&aVoltage*mAmperage>=tRecipe.mEUt?tRecipe:null; tRecipes = mRecipeItemMap.get(new GT_ItemStack(GT_Utility.copyMetaData(W, tStack))); - if (tRecipes != null) for (GT_Recipe tRecipe : tRecipes) if (!tRecipe.mFakeRecipe && tRecipe.isRecipeInputEqual(F, T, aFluids, aInputs)) return tRecipe.mEnabled&&aVoltage*mAmperage>=tRecipe.mEUt?tRecipe:null; + if (tRecipes != null) for (GT_Recipe tRecipe : tRecipes) if (!tRecipe.mFakeRecipe && tRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return tRecipe.mEnabled&&aVoltage*mAmperage>=tRecipe.mEUt?tRecipe:null; } // If the minimal Amount of Items for the Recipe is 0, then it could be a Fluid-Only Recipe, so check that Map too. if (mMinimalInputItems == 0 && aFluids != null) for (FluidStack aFluid : aFluids) if (aFluid != null) { Collection tRecipes = mRecipeFluidMap.get(aFluid.getFluid()); - if (tRecipes != null) for (GT_Recipe tRecipe : tRecipes) if (!tRecipe.mFakeRecipe && tRecipe.isRecipeInputEqual(F, T, aFluids, aInputs)) return tRecipe.mEnabled&&aVoltage*mAmperage>=tRecipe.mEUt?tRecipe:null; + if (tRecipes != null) for (GT_Recipe tRecipe : tRecipes) if (!tRecipe.mFakeRecipe && tRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return tRecipe.mEnabled&&aVoltage*mAmperage>=tRecipe.mEUt?tRecipe:null; } // And nothing has been found. @@ -321,15 +321,15 @@ public class GT_Recipe { public int mDuration, mEUt, mSpecialValue; /** Use this to just disable a specific Recipe, but the Configuration enables that already for every single Recipe. */ - public boolean mEnabled = T; + public boolean mEnabled = true; /** If this Recipe is hidden from NEI */ - public boolean mHidden = F; + public boolean mHidden = false; /** If this Recipe is Fake and therefore doesn't get found by the findRecipe Function (It is still in the HashMaps, so that containsInput does return T on those fake Inputs) */ - public boolean mFakeRecipe = F; + public boolean mFakeRecipe = false; /** If this Recipe can be stored inside a Machine in order to make Recipe searching more Efficient by trying the previously used Recipe first. In case you have a Recipe Map overriding things and returning one time use Recipes, you have to set this to F. */ - public boolean mCanBeBuffered = T; + public boolean mCanBeBuffered = true; /** If this Recipe needs the Output Slots to be completely empty. Needed in case you have randomised Outputs */ - public boolean mNeedsEmptyOutput = F; + public boolean mNeedsEmptyOutput = false; public ItemStack getRepresentativeInput(int aIndex) {if (aIndex < 0 || aIndex >= mInputs.length) return null; return GT_Utility.copy(mInputs[aIndex]);} public ItemStack getOutput(int aIndex) {if (aIndex < 0 || aIndex >= mOutputs.length) return null; return GT_Utility.copy(mOutputs[aIndex]);} @@ -363,23 +363,23 @@ public class GT_Recipe { } public boolean isRecipeInputEqual(boolean aDecreaseStacksizeBySuccess, FluidStack[] aFluidInputs, ItemStack... aInputs) { - return isRecipeInputEqual(aDecreaseStacksizeBySuccess, F, aFluidInputs, aInputs); + return isRecipeInputEqual(aDecreaseStacksizeBySuccess, false, aFluidInputs, aInputs); } public boolean isRecipeInputEqual(boolean aDecreaseStacksizeBySuccess, boolean aDontCheckStackSizes, FluidStack[] aFluidInputs, ItemStack... aInputs) { - if (mFluidInputs.length > 0 && aFluidInputs == null) return F; + if (mFluidInputs.length > 0 && aFluidInputs == null) return false; for (FluidStack tFluid : mFluidInputs) if (tFluid != null) { - boolean temp = T; - for (FluidStack aFluid : aFluidInputs) if (aFluid != null && aFluid.isFluidEqual(tFluid) && (aDontCheckStackSizes || aFluid.amount >= tFluid.amount)) {temp = F; break;} - if (temp) return F; + boolean temp = true; + for (FluidStack aFluid : aFluidInputs) if (aFluid != null && aFluid.isFluidEqual(tFluid) && (aDontCheckStackSizes || aFluid.amount >= tFluid.amount)) {temp = false; break;} + if (temp) return false; } - if (mInputs.length > 0 && aInputs == null) return F; + if (mInputs.length > 0 && aInputs == null) return false; for (ItemStack tStack : mInputs) if (tStack != null) { - boolean temp = T; - for (ItemStack aStack : aInputs) if ((GT_Utility.areUnificationsEqual(aStack, tStack, T) || GT_Utility.areUnificationsEqual(GT_OreDictUnificator.get(F, aStack), tStack, T)) && (aDontCheckStackSizes || aStack.stackSize >= tStack.stackSize)) {temp = F; break;} - if (temp) return F; + boolean temp = true; + for (ItemStack aStack : aInputs) if ((GT_Utility.areUnificationsEqual(aStack, tStack, true) || GT_Utility.areUnificationsEqual(GT_OreDictUnificator.get(false, aStack), tStack, true)) && (aDontCheckStackSizes || aStack.stackSize >= tStack.stackSize)) {temp = false; break;} + if (temp) return false; } if (aDecreaseStacksizeBySuccess) { @@ -391,12 +391,12 @@ public class GT_Recipe { if (aInputs != null) { for (ItemStack tStack : mInputs) if (tStack != null) { - for (ItemStack aStack : aInputs) if ((GT_Utility.areUnificationsEqual(aStack, tStack, T) || GT_Utility.areUnificationsEqual(GT_OreDictUnificator.get(F, aStack), tStack, T)) && (aDontCheckStackSizes || aStack.stackSize >= tStack.stackSize)) {aStack.stackSize -= tStack.stackSize; break;} + for (ItemStack aStack : aInputs) if ((GT_Utility.areUnificationsEqual(aStack, tStack, true) || GT_Utility.areUnificationsEqual(GT_OreDictUnificator.get(false, aStack), tStack, true)) && (aDontCheckStackSizes || aStack.stackSize >= tStack.stackSize)) {aStack.stackSize -= tStack.stackSize; break;} } } } - return T; + return true; } private GT_Recipe(GT_Recipe aRecipe) { @@ -429,8 +429,8 @@ public class GT_Recipe { aFluidInputs = GT_Utility.getArrayListWithoutNulls(aFluidInputs ).toArray(new FluidStack[0]); aFluidOutputs = GT_Utility.getArrayListWithoutNulls(aFluidOutputs ).toArray(new FluidStack[0]); - GT_OreDictUnificator.setStackArray(T, aInputs); - GT_OreDictUnificator.setStackArray(T, aOutputs); + GT_OreDictUnificator.setStackArray(true, aInputs); + GT_OreDictUnificator.setStackArray(true, aOutputs); for (ItemStack tStack : aOutputs) GT_Utility.updateItemStack(tStack); @@ -456,10 +456,10 @@ public class GT_Recipe { for (int i = 0; i < tList.size(); i++) if (tList.get(i) == null) tList.remove(i--); for (byte i = (byte)Math.min(64, aDuration / 16); i > 1; i--) if (aDuration / i >= 16) { - boolean temp = T; - for (int j = 0, k = tList.size(); temp && j < k; j++) if (tList.get(j).stackSize % i != 0) temp = F; - for (int j = 0; temp && j < aFluidInputs .length; j++) if (aFluidInputs [j].amount % i != 0) temp = F; - for (int j = 0; temp && j < aFluidOutputs.length; j++) if (aFluidOutputs[j].amount % i != 0) temp = F; + boolean temp = true; + for (int j = 0, k = tList.size(); temp && j < k; j++) if (tList.get(j).stackSize % i != 0) temp = false; + for (int j = 0; temp && j < aFluidInputs .length; j++) if (aFluidInputs [j].amount % i != 0) temp = false; + for (int j = 0; temp && j < aFluidOutputs.length; j++) if (aFluidOutputs[j].amount % i != 0) temp = false; if (temp) { for (int j = 0, k = tList.size(); j < k; j++) tList.get(j).stackSize /= i; for (int j = 0; j < aFluidInputs .length; j++) aFluidInputs [j].amount /= i; @@ -492,7 +492,7 @@ public class GT_Recipe { // aSpecialValue = EU per Liter! If there is no Liquid for this Object, then it gets multiplied with 1000! public GT_Recipe(ItemStack aInput1, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, int aSpecialValue, int aType) { - this(T, new ItemStack[] {aInput1}, new ItemStack[] {aOutput1, aOutput2, aOutput3, aOutput4}, null, null, null, null, 0, 0, Math.max(1, aSpecialValue)); + this(true , new ItemStack[] {aInput1}, new ItemStack[] {aOutput1, aOutput2, aOutput3, aOutput4}, null, null, null, null, 0, 0, Math.max(1, aSpecialValue)); if (mInputs.length > 0 && aSpecialValue > 0) { switch (aType) { @@ -525,56 +525,56 @@ public class GT_Recipe { } public GT_Recipe(FluidStack aInput1, FluidStack aInput2, FluidStack aOutput1, int aDuration, int aEUt, int aSpecialValue) { - this(T, null, null, null, null,new FluidStack[] {aInput1, aInput2}, new FluidStack[] {aOutput1}, Math.max(aDuration, 1), aEUt, Math.max(Math.min(aSpecialValue, 160000000), 0)); + this(true , null, null, null, null,new FluidStack[] {aInput1, aInput2}, new FluidStack[] {aOutput1}, Math.max(aDuration, 1), aEUt, Math.max(Math.min(aSpecialValue, 160000000), 0)); if (mInputs.length > 1) { GT_Recipe_Map.sFusionRecipes.addRecipe(this); } } public GT_Recipe(ItemStack aInput1, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt) { - this(T, new ItemStack[] {aInput1}, new ItemStack[] {aOutput1, aOutput2}, null, null, null, null, aDuration, aEUt, 0); + this(true , new ItemStack[] {aInput1}, new ItemStack[] {aOutput1, aOutput2}, null, null, null, null, aDuration, aEUt, 0); if (mInputs.length > 0 && mOutputs[0] != null) { GT_Recipe_Map.sLatheRecipes.addRecipe(this); } } public GT_Recipe(ItemStack aInput1, int aCellAmount, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, int aDuration, int aEUt) { - this(T, new ItemStack[] {aInput1, aCellAmount>0?ItemList.Cell_Empty.get(Math.min(64, Math.max(1, aCellAmount))):null}, new ItemStack[] {aOutput1, aOutput2, aOutput3, aOutput4}, null, null, null, null, Math.max(aDuration, 1), Math.max(aEUt, 1), 0); + this(true , new ItemStack[] {aInput1, aCellAmount>0?ItemList.Cell_Empty.get(Math.min(64, Math.max(1, aCellAmount))):null}, new ItemStack[] {aOutput1, aOutput2, aOutput3, aOutput4}, null, null, null, null, Math.max(aDuration, 1), Math.max(aEUt, 1), 0); if (mInputs.length > 0 && mOutputs[0] != null) { GT_Recipe_Map.sDistillationRecipes.addRecipe(this); } } public GT_Recipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2) { - this(T, new ItemStack[] {aInput1, GT_ModHandler.getIC2Item("industrialTnt", aInput2>0?aInput2<64?aInput2:64:1, new ItemStack(Blocks.tnt, aInput2>0?aInput2<64?aInput2:64:1))}, new ItemStack[] {aOutput1, aOutput2}, null, null, null, null, 20, 30, 0); + this(true , new ItemStack[] {aInput1, GT_ModHandler.getIC2Item("industrialTnt", aInput2>0?aInput2<64?aInput2:64:1, new ItemStack(Blocks.tnt, aInput2>0?aInput2<64?aInput2:64:1))}, new ItemStack[] {aOutput1, aOutput2}, null, null, null, null, 20, 30, 0); if (mInputs.length > 0 && mOutputs[0] != null) { GT_Recipe_Map.sImplosionRecipes.addRecipe(this); } } public GT_Recipe(int aEUt, int aDuration, ItemStack aInput1, ItemStack aOutput1) { - this(T, new ItemStack[] {aInput1, ItemList.Circuit_Integrated.getWithDamage(0, aInput1.stackSize)}, new ItemStack[] {aOutput1}, null, null, null, null, Math.max(aDuration, 1), Math.max(aEUt, 1), 0); + this(true , new ItemStack[] {aInput1, ItemList.Circuit_Integrated.getWithDamage(0, aInput1.stackSize)}, new ItemStack[] {aOutput1}, null, null, null, null, Math.max(aDuration, 1), Math.max(aEUt, 1), 0); if (mInputs.length > 0 && mOutputs[0] != null) { GT_Recipe_Map.sBenderRecipes.addRecipe(this); } } public GT_Recipe(ItemStack aInput1, ItemStack aInput2, int aEUt, int aDuration, ItemStack aOutput1) { - this(T, aInput2==null ? new ItemStack[] {aInput1} : new ItemStack[] {aInput1, aInput2}, new ItemStack[] {aOutput1}, null, null, null, null, Math.max(aDuration, 1), Math.max(aEUt, 1), 0); + this(true, aInput2==null ? new ItemStack[] {aInput1} : new ItemStack[] {aInput1, aInput2}, new ItemStack[] {aOutput1}, null, null, null, null, Math.max(aDuration, 1), Math.max(aEUt, 1), 0); if (mInputs.length > 0 && mOutputs[0] != null) { GT_Recipe_Map.sAlloySmelterRecipes.addRecipe(this); } } public GT_Recipe(ItemStack aInput1, int aEUt, ItemStack aInput2, int aDuration, ItemStack aOutput1, ItemStack aOutput2) { - this(T, aInput2==null?new ItemStack[] {aInput1}:new ItemStack[] {aInput1, aInput2}, new ItemStack[] {aOutput1, aOutput2}, null, null, null, null, Math.max(aDuration, 1), Math.max(aEUt, 1), 0); + this(true, aInput2==null?new ItemStack[] {aInput1}:new ItemStack[] {aInput1, aInput2}, new ItemStack[] {aOutput1, aOutput2}, null, null, null, null, Math.max(aDuration, 1), Math.max(aEUt, 1), 0); if (mInputs.length > 0 && mOutputs[0] != null) { GT_Recipe_Map.sCannerRecipes.addRecipe(this); } } public GT_Recipe(ItemStack aInput1, ItemStack aOutput1, int aDuration) { - this(T, new ItemStack[] {aInput1}, new ItemStack[] {aOutput1}, null, null, null, null, Math.max(aDuration, 1), 120, 0); + this(true , new ItemStack[] {aInput1}, new ItemStack[] {aOutput1}, null, null, null, null, Math.max(aDuration, 1), 120, 0); if (mInputs.length > 0 && mOutputs[0] != null) { GT_Recipe_Map.sVacuumRecipes.addRecipe(this); } @@ -592,9 +592,9 @@ public class GT_Recipe { super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); } - @Override public boolean containsInput(ItemStack aStack) {return F;} - @Override public boolean containsInput(FluidStack aFluid) {return F;} - @Override public boolean containsInput(Fluid aFluid) {return F;} + @Override public boolean containsInput(ItemStack aStack) {return false;} + @Override public boolean containsInput(FluidStack aFluid) {return false;} + @Override public boolean containsInput(Fluid aFluid) {return false;} @Override public GT_Recipe addRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) {return null;} @Override public GT_Recipe addRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) {return null;} @@ -632,7 +632,7 @@ public class GT_Recipe { } public GT_Recipe addFuel(ItemStack aInput, ItemStack aOutput, FluidStack aFluidInput, FluidStack aFluidOutput, int aChance, int aFuelValueInEU) { - return addRecipe(T, new ItemStack[] {aInput}, new ItemStack[] {aOutput}, null, new int[] {aChance}, new FluidStack[] {aFluidInput}, new FluidStack[] {aFluidOutput}, 0, 0, aFuelValueInEU); + return addRecipe(true , new ItemStack[] {aInput}, new ItemStack[] {aOutput}, null, new int[] {aChance}, new FluidStack[] {aFluidInput}, new FluidStack[] {aFluidOutput}, 0, 0, aFuelValueInEU); } } @@ -647,12 +647,12 @@ public class GT_Recipe { @Override public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null) return null; - if (aRecipe != null && aRecipe.isRecipeInputEqual(F, T, aFluids, aInputs)) return aRecipe; - ItemStack tOutput = GT_ModHandler.getSmeltingOutput(aInputs[0], F, null); - return tOutput == null ? null : new GT_Recipe(F, new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[] {tOutput}, null, null, null, null, 128, 4, 0); + if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe; + ItemStack tOutput = GT_ModHandler.getSmeltingOutput(aInputs[0], false, null); + return tOutput == null ? null : new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[] {tOutput}, null, null, null, null, 128, 4, 0); } - @Override public boolean containsInput(ItemStack aStack) {return GT_ModHandler.getSmeltingOutput(aStack, F, null) != null;} + @Override public boolean containsInput(ItemStack aStack) {return GT_ModHandler.getSmeltingOutput(aStack, false, null) != null;} } /** @@ -666,21 +666,21 @@ public class GT_Recipe { @Override public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null) return null; - if (aRecipe != null && aRecipe.isRecipeInputEqual(F, T, aFluids, aInputs)) return aRecipe; - ItemStack tOutput = GT_ModHandler.getSmeltingOutput(aInputs[0], F, null); + if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe; + ItemStack tOutput = GT_ModHandler.getSmeltingOutput(aInputs[0], false, null); if (GT_Utility.areStacksEqual(aInputs[0], new ItemStack(Items.book, 1, W))) { - return new GT_Recipe(F, new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[] {GT_Utility.getWrittenBook("Manual_Microwave", ItemList.Book_Written_03.get(1))}, null, null, null, null, 32, 4, 0); + return new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[] {GT_Utility.getWrittenBook("Manual_Microwave", ItemList.Book_Written_03.get(1))}, null, null, null, null, 32, 4, 0); } // Check Container Item of Input since it is around the Input, then the Input itself, then Container Item of Output and last check the Output itself - for (ItemStack tStack : new ItemStack[] {GT_Utility.getContainerItem(aInputs[0], T), aInputs[0], GT_Utility.getContainerItem(tOutput, T), tOutput}) if (tStack != null) { - if (GT_Utility.areStacksEqual(tStack, new ItemStack(Blocks.netherrack, 1, W), T) - || GT_Utility.areStacksEqual(tStack, new ItemStack(Blocks.tnt, 1, W), T) - || GT_Utility.areStacksEqual(tStack, new ItemStack(Items.egg, 1, W), T) - || GT_Utility.areStacksEqual(tStack, new ItemStack(Items.firework_charge, 1, W), T) - || GT_Utility.areStacksEqual(tStack, new ItemStack(Items.fireworks, 1, W), T) - || GT_Utility.areStacksEqual(tStack, new ItemStack(Items.fire_charge, 1, W), T) + for (ItemStack tStack : new ItemStack[] {GT_Utility.getContainerItem(aInputs[0], true), aInputs[0], GT_Utility.getContainerItem(tOutput, true), tOutput}) if (tStack != null) { + if (GT_Utility.areStacksEqual(tStack, new ItemStack(Blocks.netherrack, 1, W), true) + || GT_Utility.areStacksEqual(tStack, new ItemStack(Blocks.tnt, 1, W), true) + || GT_Utility.areStacksEqual(tStack, new ItemStack(Items.egg, 1, W), true) + || GT_Utility.areStacksEqual(tStack, new ItemStack(Items.firework_charge, 1, W), true) + || GT_Utility.areStacksEqual(tStack, new ItemStack(Items.fireworks, 1, W), true) + || GT_Utility.areStacksEqual(tStack, new ItemStack(Items.fire_charge, 1, W), true) ) { if (aTileEntity instanceof IGregTechTileEntity) ((IGregTechTileEntity)aTileEntity).doExplosion(aVoltage * 4); return null; @@ -718,10 +718,10 @@ public class GT_Recipe { } - return tOutput == null ? null : new GT_Recipe(F, new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[] {tOutput}, null, null, null, null, 32, 4, 0); + return tOutput == null ? null : new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[] {tOutput}, null, null, null, null, 32, 4, 0); } - @Override public boolean containsInput(ItemStack aStack) {return GT_ModHandler.getSmeltingOutput(aStack, F, null) != null;} + @Override public boolean containsInput(ItemStack aStack) {return GT_ModHandler.getSmeltingOutput(aStack, false, null) != null;} } /** @@ -734,18 +734,18 @@ public class GT_Recipe { @Override public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { - if (aInputs == null || aInputs.length <= 0 || !ItemList.IC2_Scrapbox.isStackEqual(aInputs[0], F, T)) return super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs); + if (aInputs == null || aInputs.length <= 0 || !ItemList.IC2_Scrapbox.isStackEqual(aInputs[0], false, true)) return super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs); ItemStack tOutput = GT_ModHandler.getRandomScrapboxDrop(); if (tOutput == null) return super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs); - GT_Recipe rRecipe = new GT_Recipe(F, new ItemStack[] {ItemList.IC2_Scrapbox.get(1)}, new ItemStack[] {tOutput}, null, null, null, null, 16, 1, 0); + GT_Recipe rRecipe = new GT_Recipe(false, new ItemStack[] {ItemList.IC2_Scrapbox.get(1)}, new ItemStack[] {tOutput}, null, null, null, null, 16, 1, 0); // It is not allowed to be buffered due to the random Output - rRecipe.mCanBeBuffered = F; + rRecipe.mCanBeBuffered = false; // Due to its randomness it is not good if there are Items in the Output Slot, because those Items could manipulate the outcome. - rRecipe.mNeedsEmptyOutput = T; + rRecipe.mNeedsEmptyOutput = true; return rRecipe; } - @Override public boolean containsInput(ItemStack aStack) {return ItemList.IC2_Scrapbox.isStackEqual(aStack, F, T) || super.containsInput(aStack);} + @Override public boolean containsInput(ItemStack aStack) {return ItemList.IC2_Scrapbox.isStackEqual(aStack, false, true) || super.containsInput(aStack);} } /** @@ -761,21 +761,21 @@ public class GT_Recipe { GT_Recipe rRecipe = super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs); if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null || rRecipe != null || !GregTech_API.sPostloadFinished) return rRecipe; if (aFluids != null && aFluids.length > 0 && aFluids[0] != null) { - ItemStack tOutput = GT_Utility.fillFluidContainer(aFluids[0], aInputs[0], F, T); - FluidStack tFluid = GT_Utility.getFluidForFilledItem(tOutput, T); - if (tFluid != null) rRecipe = new GT_Recipe(F, new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[] {tOutput}, null, null, new FluidStack[] {tFluid}, null, Math.max(tFluid.amount / 64, 16), 1, 0); + ItemStack tOutput = GT_Utility.fillFluidContainer(aFluids[0], aInputs[0], false, true); + FluidStack tFluid = GT_Utility.getFluidForFilledItem(tOutput, true); + if (tFluid != null) rRecipe = new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[] {tOutput}, null, null, new FluidStack[] {tFluid}, null, Math.max(tFluid.amount / 64, 16), 1, 0); } if (rRecipe == null) { - FluidStack tFluid = GT_Utility.getFluidForFilledItem(aInputs[0], T); - if (tFluid != null) rRecipe = new GT_Recipe(F, new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[] {GT_Utility.getContainerItem(aInputs[0], T)}, null, null, null, new FluidStack[] {tFluid}, Math.max(tFluid.amount / 64, 16), 1, 0); + FluidStack tFluid = GT_Utility.getFluidForFilledItem(aInputs[0], true); + if (tFluid != null) rRecipe = new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[] {GT_Utility.getContainerItem(aInputs[0], true)}, null, null, null, new FluidStack[] {tFluid}, Math.max(tFluid.amount / 64, 16), 1, 0); } - if (rRecipe != null) rRecipe.mCanBeBuffered = F; + if (rRecipe != null) rRecipe.mCanBeBuffered = false; return rRecipe; } @Override public boolean containsInput(ItemStack aStack) {return aStack != null && (super.containsInput(aStack) || (aStack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem)aStack.getItem()).getCapacity(aStack) > 0));} - @Override public boolean containsInput(FluidStack aFluid) {return T;} - @Override public boolean containsInput(Fluid aFluid) {return T;} + @Override public boolean containsInput(FluidStack aFluid) {return true;} + @Override public boolean containsInput(Fluid aFluid) {return true;} } /** @@ -789,8 +789,8 @@ public class GT_Recipe { @Override public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null) return null; - if (aRecipe != null && aRecipe.isRecipeInputEqual(F, T, aFluids, aInputs)) return aRecipe; - return new GT_Recipe(F, new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, GT_ModHandler.getRecyclerOutput(GT_Utility.copyAmount(64, aInputs[0]), 0) == null ? null : new ItemStack[] {ItemList.IC2_Scrap.get(1)}, null, new int[] {1250}, null, null, 45, 1, 0); + if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe; + return new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, GT_ModHandler.getRecyclerOutput(GT_Utility.copyAmount(64, aInputs[0]), 0) == null ? null : new ItemStack[] {ItemList.IC2_Scrap.get(1)}, null, new int[] {1250}, null, null, 45, 1, 0); } @Override public boolean containsInput(ItemStack aStack) {return GT_ModHandler.getRecyclerOutput(GT_Utility.copyAmount(64, aStack), 0) != null;} @@ -807,13 +807,13 @@ public class GT_Recipe { @Override public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null) return null; - if (aRecipe != null && aRecipe.isRecipeInputEqual(F, T, aFluids, aInputs)) return aRecipe; + if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe; ItemStack tComparedInput = GT_Utility.copy(aInputs[0]); - ItemStack[] tOutputItems = GT_ModHandler.getMachineOutput(tComparedInput, ic2.api.recipe.Recipes.compressor.getRecipes(), T, new NBTTagCompound(), null, null, null); - return GT_Utility.arrayContainsNonNull(tOutputItems) ? new GT_Recipe(F, new ItemStack[] {GT_Utility.copyAmount(aInputs[0].stackSize - tComparedInput.stackSize, aInputs[0])}, tOutputItems, null, null, null, null, 400, 2, 0) : null; + ItemStack[] tOutputItems = GT_ModHandler.getMachineOutput(tComparedInput, ic2.api.recipe.Recipes.compressor.getRecipes(), true , new NBTTagCompound(), null, null, null); + return GT_Utility.arrayContainsNonNull(tOutputItems) ? new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(aInputs[0].stackSize - tComparedInput.stackSize, aInputs[0])}, tOutputItems, null, null, null, null, 400, 2, 0) : null; } - @Override public boolean containsInput(ItemStack aStack) {return GT_Utility.arrayContainsNonNull(GT_ModHandler.getMachineOutput(GT_Utility.copyAmount(64, aStack), ic2.api.recipe.Recipes.compressor.getRecipes(), F, new NBTTagCompound(), null, null, null));} + @Override public boolean containsInput(ItemStack aStack) {return GT_Utility.arrayContainsNonNull(GT_ModHandler.getMachineOutput(GT_Utility.copyAmount(64, aStack), ic2.api.recipe.Recipes.compressor.getRecipes(), false, new NBTTagCompound(), null, null, null));} } /** @@ -827,13 +827,13 @@ public class GT_Recipe { @Override public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null) return null; - if (aRecipe != null && aRecipe.isRecipeInputEqual(F, T, aFluids, aInputs)) return aRecipe; + if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe; ItemStack tComparedInput = GT_Utility.copy(aInputs[0]); - ItemStack[] tOutputItems = GT_ModHandler.getMachineOutput(tComparedInput, ic2.api.recipe.Recipes.extractor.getRecipes(), T, new NBTTagCompound(), null, null, null); - return GT_Utility.arrayContainsNonNull(tOutputItems) ? new GT_Recipe(F, new ItemStack[] {GT_Utility.copyAmount(aInputs[0].stackSize - tComparedInput.stackSize, aInputs[0])}, tOutputItems, null, null, null, null, 400, 2, 0) : null; + ItemStack[] tOutputItems = GT_ModHandler.getMachineOutput(tComparedInput, ic2.api.recipe.Recipes.extractor.getRecipes(), true , new NBTTagCompound(), null, null, null); + return GT_Utility.arrayContainsNonNull(tOutputItems) ? new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(aInputs[0].stackSize - tComparedInput.stackSize, aInputs[0])}, tOutputItems, null, null, null, null, 400, 2, 0) : null; } - @Override public boolean containsInput(ItemStack aStack) {return GT_Utility.arrayContainsNonNull(GT_ModHandler.getMachineOutput(GT_Utility.copyAmount(64, aStack), ic2.api.recipe.Recipes.extractor.getRecipes(), F, new NBTTagCompound(), null, null, null));} + @Override public boolean containsInput(ItemStack aStack) {return GT_Utility.arrayContainsNonNull(GT_ModHandler.getMachineOutput(GT_Utility.copyAmount(64, aStack), ic2.api.recipe.Recipes.extractor.getRecipes(), false, new NBTTagCompound(), null, null, null));} } /** @@ -847,13 +847,13 @@ public class GT_Recipe { @Override public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null) return null; - if (aRecipe != null && aRecipe.isRecipeInputEqual(F, T, aFluids, aInputs)) return aRecipe; + if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe; ItemStack tComparedInput = GT_Utility.copy(aInputs[0]); - ItemStack[] tOutputItems = GT_ModHandler.getMachineOutput(tComparedInput, ic2.api.recipe.Recipes.centrifuge.getRecipes(), T, new NBTTagCompound(), null, null, null); - return GT_Utility.arrayContainsNonNull(tOutputItems) ? new GT_Recipe(F, new ItemStack[] {GT_Utility.copyAmount(aInputs[0].stackSize - tComparedInput.stackSize, aInputs[0])}, tOutputItems, null, null, null, null, 400, 48, 0) : null; + ItemStack[] tOutputItems = GT_ModHandler.getMachineOutput(tComparedInput, ic2.api.recipe.Recipes.centrifuge.getRecipes(), true , new NBTTagCompound(), null, null, null); + return GT_Utility.arrayContainsNonNull(tOutputItems) ? new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(aInputs[0].stackSize - tComparedInput.stackSize, aInputs[0])}, tOutputItems, null, null, null, null, 400, 48, 0) : null; } - @Override public boolean containsInput(ItemStack aStack) {return GT_Utility.arrayContainsNonNull(GT_ModHandler.getMachineOutput(GT_Utility.copyAmount(64, aStack), ic2.api.recipe.Recipes.centrifuge.getRecipes(), F, new NBTTagCompound(), null, null, null));} + @Override public boolean containsInput(ItemStack aStack) {return GT_Utility.arrayContainsNonNull(GT_ModHandler.getMachineOutput(GT_Utility.copyAmount(64, aStack), ic2.api.recipe.Recipes.centrifuge.getRecipes(), false, new NBTTagCompound(), null, null, null));} } /** @@ -867,14 +867,14 @@ public class GT_Recipe { @Override public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null || aFluids == null || aFluids.length < 1 || !GT_ModHandler.isWater(aFluids[0])) return null; - if (aRecipe != null && aRecipe.isRecipeInputEqual(F, T, aFluids, aInputs)) return aRecipe; + if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe; ItemStack tComparedInput = GT_Utility.copy(aInputs[0]); NBTTagCompound aRecipeMetaData = new NBTTagCompound(); - ItemStack[] tOutputItems = GT_ModHandler.getMachineOutput(tComparedInput, ic2.api.recipe.Recipes.oreWashing.getRecipes(), T, aRecipeMetaData, null, null, null); - return GT_Utility.arrayContainsNonNull(tOutputItems) ? new GT_Recipe(F, new ItemStack[] {GT_Utility.copyAmount(aInputs[0].stackSize - tComparedInput.stackSize, aInputs[0])}, tOutputItems, null, null, new FluidStack[] {new FluidStack(aFluids[0].getFluid(), ((NBTTagCompound)aRecipeMetaData.getTag("return")).getInteger("amount"))}, null, 400, 16, 0) : null; + ItemStack[] tOutputItems = GT_ModHandler.getMachineOutput(tComparedInput, ic2.api.recipe.Recipes.oreWashing.getRecipes(), true, aRecipeMetaData, null, null, null); + return GT_Utility.arrayContainsNonNull(tOutputItems) ? new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(aInputs[0].stackSize - tComparedInput.stackSize, aInputs[0])}, tOutputItems, null, null, new FluidStack[] {new FluidStack(aFluids[0].getFluid(), ((NBTTagCompound)aRecipeMetaData.getTag("return")).getInteger("amount"))}, null, 400, 16, 0) : null; } - @Override public boolean containsInput(ItemStack aStack) {return GT_Utility.arrayContainsNonNull(GT_ModHandler.getMachineOutput(GT_Utility.copyAmount(64, aStack), ic2.api.recipe.Recipes.oreWashing.getRecipes(), F, new NBTTagCompound(), null, null, null));} + @Override public boolean containsInput(ItemStack aStack) {return GT_Utility.arrayContainsNonNull(GT_ModHandler.getMachineOutput(GT_Utility.copyAmount(64, aStack), ic2.api.recipe.Recipes.oreWashing.getRecipes(), false, new NBTTagCompound(), null, null, null));} @Override public boolean containsInput(FluidStack aFluid) {return GT_ModHandler.isWater(aFluid);} @Override public boolean containsInput(Fluid aFluid) {return GT_ModHandler.isWater(new FluidStack(aFluid, 0));} } @@ -896,19 +896,19 @@ public class GT_Recipe { try { List tRecipeOutputs = mods.railcraft.api.crafting.RailcraftCraftingManager.rockCrusher.getRecipe(GT_Utility.copyAmount(1, aInputs[0])).getRandomizedOuputs(); if (tRecipeOutputs != null) { - aRecipe = new GT_Recipe(F, new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, tRecipeOutputs.toArray(new ItemStack[tRecipeOutputs.size()]), null, null, null, null, 800, 2, 0); - aRecipe.mCanBeBuffered = F; - aRecipe.mNeedsEmptyOutput = T; + aRecipe = new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, tRecipeOutputs.toArray(new ItemStack[tRecipeOutputs.size()]), null, null, null, null, 800, 2, 0); + aRecipe.mCanBeBuffered = false; + aRecipe.mNeedsEmptyOutput = true; return aRecipe; } } catch(NoClassDefFoundError e) {if (D1) GT_Log.err.println("Railcraft Not loaded");} catch(NullPointerException e) {/**/} ItemStack tComparedInput = GT_Utility.copy(aInputs[0]); - ItemStack[] tOutputItems = GT_ModHandler.getMachineOutput(tComparedInput, ic2.api.recipe.Recipes.macerator.getRecipes(), T, new NBTTagCompound(), null, null, null); - return GT_Utility.arrayContainsNonNull(tOutputItems) ? new GT_Recipe(F, new ItemStack[] {GT_Utility.copyAmount(aInputs[0].stackSize - tComparedInput.stackSize, aInputs[0])}, tOutputItems, null, null, null, null, 400, 2, 0) : null; + ItemStack[] tOutputItems = GT_ModHandler.getMachineOutput(tComparedInput, ic2.api.recipe.Recipes.macerator.getRecipes(), true , new NBTTagCompound(), null, null, null); + return GT_Utility.arrayContainsNonNull(tOutputItems) ? new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(aInputs[0].stackSize - tComparedInput.stackSize, aInputs[0])}, tOutputItems, null, null, null, null, 400, 2, 0) : null; } - @Override public boolean containsInput(ItemStack aStack) {return super.containsInput(aStack) || GT_Utility.arrayContainsNonNull(GT_ModHandler.getMachineOutput(GT_Utility.copyAmount(64, aStack), ic2.api.recipe.Recipes.macerator.getRecipes(), F, new NBTTagCompound(), null, null, null));} + @Override public boolean containsInput(ItemStack aStack) {return super.containsInput(aStack) || GT_Utility.arrayContainsNonNull(GT_ModHandler.getMachineOutput(GT_Utility.copyAmount(64, aStack), ic2.api.recipe.Recipes.macerator.getRecipes(), false, new NBTTagCompound(), null, null, null));} } /** @@ -924,9 +924,9 @@ public class GT_Recipe { GT_Recipe rRecipe = super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs); if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null || rRecipe == null || !GregTech_API.sPostloadFinished) return rRecipe; for (ItemStack aInput : aInputs) { - if (ItemList.Paper_Printed_Pages.isStackEqual(aInput, F, T)) { + if (ItemList.Paper_Printed_Pages.isStackEqual(aInput, false, true)) { rRecipe = rRecipe.copy(); - rRecipe.mCanBeBuffered = F; + rRecipe.mCanBeBuffered = false; rRecipe.mOutputs[0].setTagCompound(aInput.getTagCompound()); } } @@ -947,31 +947,31 @@ public class GT_Recipe { GT_Recipe rRecipe = super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs); if (aInputs == null || aInputs.length < 2 || aInputs[0] == null || aInputs[1] == null || !GregTech_API.sPostloadFinished) return rRecipe; if (rRecipe == null) { - if (ItemList.Shape_Mold_Name.isStackEqual(aInputs[0], F, T)) { + if (ItemList.Shape_Mold_Name.isStackEqual(aInputs[0], false, true)) { ItemStack tOutput = GT_Utility.copyAmount(1, aInputs[1]); tOutput.setStackDisplayName(aInputs[0].getDisplayName()); - rRecipe = new GT_Recipe(F, new ItemStack[] {ItemList.Shape_Mold_Name.get(0), GT_Utility.copyAmount(1, aInputs[1])}, new ItemStack[] {tOutput}, null, null, null, null, 128, 8, 0); - rRecipe.mCanBeBuffered = F; + rRecipe = new GT_Recipe(false, new ItemStack[] {ItemList.Shape_Mold_Name.get(0), GT_Utility.copyAmount(1, aInputs[1])}, new ItemStack[] {tOutput}, null, null, null, null, 128, 8, 0); + rRecipe.mCanBeBuffered = false; return rRecipe; } - if (ItemList.Shape_Mold_Name.isStackEqual(aInputs[1], F, T)) { + if (ItemList.Shape_Mold_Name.isStackEqual(aInputs[1], false, true)) { ItemStack tOutput = GT_Utility.copyAmount(1, aInputs[0]); tOutput.setStackDisplayName(aInputs[1].getDisplayName()); - rRecipe = new GT_Recipe(F, new ItemStack[] {ItemList.Shape_Mold_Name.get(0), GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[] {tOutput}, null, null, null, null, 128, 8, 0); - rRecipe.mCanBeBuffered = F; + rRecipe = new GT_Recipe(false, new ItemStack[] {ItemList.Shape_Mold_Name.get(0), GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[] {tOutput}, null, null, null, null, 128, 8, 0); + rRecipe.mCanBeBuffered = false; return rRecipe; } return null; } for (ItemStack aMold : aInputs) { - if (ItemList.Shape_Mold_Credit.isStackEqual(aMold, F, T)) { + if (ItemList.Shape_Mold_Credit.isStackEqual(aMold, false, true)) { NBTTagCompound tNBT = aMold.getTagCompound(); if (tNBT == null) tNBT = new NBTTagCompound(); if (!tNBT.hasKey("credit_security_id")) tNBT.setLong("credit_security_id", System.nanoTime()); aMold.setTagCompound(tNBT); rRecipe = rRecipe.copy(); - rRecipe.mCanBeBuffered = F; + rRecipe.mCanBeBuffered = false; rRecipe.mOutputs[0].setTagCompound(tNBT); return rRecipe; } @@ -1000,38 +1000,38 @@ public class GT_Recipe { if (rRecipe == null) { ItemStack tOutput = GT_ModHandler.getAllRecipeOutput(aTileEntity==null?null:aTileEntity.getWorld(), aInputs[0], aInputs[0], aInputs[0], aInputs[0], ItemList.DYE_ONLY_ITEMS[aDye.mIndex].get(1), aInputs[0], aInputs[0], aInputs[0], aInputs[0]); - if (tOutput != null) return addRecipe(new GT_Recipe(T, new ItemStack[] {GT_Utility.copyAmount(8, aInputs[0])}, new ItemStack[] {tOutput}, null, null, new FluidStack[] {new FluidStack(aFluids[0].getFluid(), (int)L)}, null, 256, 2, 0), F, F, T); + if (tOutput != null) return addRecipe(new GT_Recipe(true , new ItemStack[] {GT_Utility.copyAmount(8, aInputs[0])}, new ItemStack[] {tOutput}, null, null, new FluidStack[] {new FluidStack(aFluids[0].getFluid(), (int)L)}, null, 256, 2, 0), false, false, true); tOutput = GT_ModHandler.getAllRecipeOutput(aTileEntity==null?null:aTileEntity.getWorld(), aInputs[0], ItemList.DYE_ONLY_ITEMS[aDye.mIndex].get(1)); - if (tOutput != null) return addRecipe(new GT_Recipe(T, new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[] {tOutput}, null, null, new FluidStack[] {new FluidStack(aFluids[0].getFluid(), (int)L)}, null, 32, 2, 0), F, F, T); + if (tOutput != null) return addRecipe(new GT_Recipe(true , new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[] {tOutput}, null, null, new FluidStack[] {new FluidStack(aFluids[0].getFluid(), (int)L)}, null, 32, 2, 0), false, false, true); } else { if (aInputs[0].getItem() == Items.paper) { - if (!ItemList.Tool_DataStick.isStackEqual(aSpecialSlot, F, T)) return null; + if (!ItemList.Tool_DataStick.isStackEqual(aSpecialSlot, false, true)) return null; NBTTagCompound tNBT = aSpecialSlot.getTagCompound(); if (tNBT == null || GT_Utility.isStringInvalid(tNBT.getString("title")) || GT_Utility.isStringInvalid(tNBT.getString("author"))) return null; rRecipe = rRecipe.copy(); - rRecipe.mCanBeBuffered = F; + rRecipe.mCanBeBuffered = false; rRecipe.mOutputs[0].setTagCompound(tNBT); return rRecipe; } if (aInputs[0].getItem() == Items.map) { - if (!ItemList.Tool_DataStick.isStackEqual(aSpecialSlot, F, T)) return null; + if (!ItemList.Tool_DataStick.isStackEqual(aSpecialSlot, false, true)) return null; NBTTagCompound tNBT = aSpecialSlot.getTagCompound(); if (tNBT == null || !tNBT.hasKey("map_id")) return null; rRecipe = rRecipe.copy(); - rRecipe.mCanBeBuffered = F; + rRecipe.mCanBeBuffered = false; rRecipe.mOutputs[0].setItemDamage(tNBT.getShort("map_id")); return rRecipe; } - if (ItemList.Paper_Punch_Card_Empty.isStackEqual(aInputs[0], F, T)) { - if (!ItemList.Tool_DataStick.isStackEqual(aSpecialSlot, F, T)) return null; + if (ItemList.Paper_Punch_Card_Empty.isStackEqual(aInputs[0], false, true)) { + if (!ItemList.Tool_DataStick.isStackEqual(aSpecialSlot, false, true)) return null; NBTTagCompound tNBT = aSpecialSlot.getTagCompound(); if (tNBT == null || !tNBT.hasKey("GT.PunchCardData")) return null; rRecipe = rRecipe.copy(); - rRecipe.mCanBeBuffered = F; + rRecipe.mCanBeBuffered = false; rRecipe.mOutputs[0].setTagCompound(GT_Utility.getNBTContainingString(new NBTTagCompound(), "GT.PunchCardData", tNBT.getString("GT.PunchCardData"))); return rRecipe; } @@ -1039,7 +1039,7 @@ public class GT_Recipe { return rRecipe; } - @Override public boolean containsInput(ItemStack aStack) {return T;} + @Override public boolean containsInput(ItemStack aStack) {return true;} @Override public boolean containsInput(FluidStack aFluid) {return super.containsInput(aFluid) || Dyes.isAnyFluidDye(aFluid);} @Override public boolean containsInput(Fluid aFluid) {return super.containsInput(aFluid) || Dyes.isAnyFluidDye(aFluid);} } diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java index 0ae3da39..9ee95b36 100644 --- a/src/main/java/gregtech/api/util/GT_Utility.java +++ b/src/main/java/gregtech/api/util/GT_Utility.java @@ -4,7 +4,6 @@ import static gregtech.api.enums.GT_Values.*; import gregtech.api.GregTech_API; import gregtech.api.damagesources.GT_DamageSources; import gregtech.api.enchants.Enchantment_Radioactivity; -import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.SubTag; import gregtech.api.events.BlockScanningEvent; @@ -147,14 +146,14 @@ public class GT_Utility { if (!tNBT.hasKey("ench", 9)) tNBT.setTag("ench", new NBTTagList()); NBTTagList tList = tNBT.getTagList("ench", 10); - boolean temp = T; + boolean temp = true; for (int i = 0; i < tList.tagCount(); i++) { tEnchantmentTag = tList.getCompoundTagAt(i); if (tEnchantmentTag.getShort("id") == aEnchantment.effectId) { tEnchantmentTag.setShort("id", (short)aEnchantment.effectId); tEnchantmentTag.setShort("lvl", (byte)aLevel); - temp = F; + temp = false; break; } } @@ -255,7 +254,7 @@ public class GT_Utility { Field rField = null; try { rField = aObject.getClass().getDeclaredField(aField); - rField.setAccessible(T); + rField.setAccessible(true); } catch (Throwable e) {/*Do nothing*/} return rField; } @@ -264,7 +263,7 @@ public class GT_Utility { Field rField = null; try { rField = aObject.getDeclaredField(aField); - rField.setAccessible(T); + rField.setAccessible(true); } catch (Throwable e) {/*Do nothing*/} return rField; } @@ -273,7 +272,7 @@ public class GT_Utility { Method rMethod = null; try { rMethod = aObject.getMethod(aMethod, aParameterTypes); - rMethod.setAccessible(T); + rMethod.setAccessible(true); } catch (Throwable e) {/*Do nothing*/} return rMethod; } @@ -282,7 +281,7 @@ public class GT_Utility { Method rMethod = null; try { rMethod = aObject.getClass().getMethod(aMethod, aParameterTypes); - rMethod.setAccessible(T); + rMethod.setAccessible(true); } catch (Throwable e) {/*Do nothing*/} return rMethod; } @@ -290,7 +289,7 @@ public class GT_Utility { public static Field getField(Object aObject, String aField, boolean aPrivate, boolean aLogErrors) { try { Field tField = (aObject instanceof Class)?((Class)aObject).getDeclaredField(aField):(aObject instanceof String)?Class.forName((String)aObject).getDeclaredField(aField):aObject.getClass().getDeclaredField(aField); - if (aPrivate) tField.setAccessible(T); + if (aPrivate) tField.setAccessible(true); return tField; } catch (Throwable e) { if (aLogErrors) e.printStackTrace(GT_Log.err); @@ -301,7 +300,7 @@ public class GT_Utility { public static Object getFieldContent(Object aObject, String aField, boolean aPrivate, boolean aLogErrors) { try { Field tField = (aObject instanceof Class)?((Class)aObject).getDeclaredField(aField):(aObject instanceof String)?Class.forName((String)aObject).getDeclaredField(aField):aObject.getClass().getDeclaredField(aField); - if (aPrivate) tField.setAccessible(T); + if (aPrivate) tField.setAccessible(true); return tField.get(aObject instanceof Class || aObject instanceof String ? null : aObject); } catch (Throwable e) { if (aLogErrors) e.printStackTrace(GT_Log.err); @@ -310,11 +309,11 @@ public class GT_Utility { } public static Object callPublicMethod(Object aObject, String aMethod, Object... aParameters) { - return callMethod(aObject, aMethod, F, F, T, aParameters); + return callMethod(aObject, aMethod, false, false, true, aParameters); } public static Object callPrivateMethod(Object aObject, String aMethod, Object... aParameters) { - return callMethod(aObject, aMethod, T, F, T, aParameters); + return callMethod(aObject, aMethod, true , false, true, aParameters); } public static Object callMethod(Object aObject, String aMethod, boolean aPrivate, boolean aUseUpperCasedDataTypes, boolean aLogErrors, Object... aParameters) { @@ -339,7 +338,7 @@ public class GT_Utility { } Method tMethod = (aObject instanceof Class)?((Class)aObject).getMethod(aMethod, tParameterTypes):aObject.getClass().getMethod(aMethod, tParameterTypes); - if (aPrivate) tMethod.setAccessible(T); + if (aPrivate) tMethod.setAccessible(true); return tMethod.invoke(aObject, aParameters); } catch (Throwable e) { if (aLogErrors) e.printStackTrace(GT_Log.err); @@ -384,7 +383,7 @@ public class GT_Utility { Field var6 = var3[var5]; if (var6.getType() == HashMap.class) { tPotionHashmap = var6; - tPotionHashmap.setAccessible(T); + tPotionHashmap.setAccessible(true); break; } } @@ -393,7 +392,7 @@ public class GT_Utility { } catch (Throwable e) { if (D1) e.printStackTrace(GT_Log.err); } - return F; + return false; } public static String getClassName(Object aObject) { @@ -412,7 +411,7 @@ public class GT_Utility { Field var6 = var3[var5]; if (var6.getType() == HashMap.class) { tPotionHashmap = var6; - tPotionHashmap.setAccessible(T); + tPotionHashmap.setAccessible(true); break; } } @@ -431,7 +430,7 @@ public class GT_Utility { if (aPlayer.inventory.armorInventory[i].getItem() instanceof GT_EnergyArmor_Item) { if ((((GT_EnergyArmor_Item)aPlayer.inventory.armorInventory[i].getItem()).mSpecials & 512) != 0) { if (GT_ModHandler.canUseElectricItem(aPlayer.inventory.armorInventory[i], 10000)) { - return T; + return true; } } } @@ -439,7 +438,7 @@ public class GT_Utility { } } } catch(Throwable e) {if (D1) e.printStackTrace(GT_Log.err);} - return F; + return false; } public static ItemStack suckOneItemStackAt(World aWorld, double aX, double aY, double aZ, double aL, double aH, double aW) { @@ -469,30 +468,30 @@ public class GT_Utility { } } - public static boolean TE_CHECK = F, BC_CHECK = F, CHECK_ALL = T; + public static boolean TE_CHECK = false, BC_CHECK = false, CHECK_ALL = true; public static void checkAvailabilities() { if (CHECK_ALL) { try { Class tClass = IItemDuct.class; tClass.getCanonicalName(); - TE_CHECK = T; + TE_CHECK = true; } catch(Throwable e) {/**/} try { Class tClass = buildcraft.api.transport.IPipeTile.class; tClass.getCanonicalName(); - BC_CHECK = T; + BC_CHECK = true; } catch(Throwable e) {/**/} - CHECK_ALL = F; + CHECK_ALL = false; } } public static boolean isConnectableNonInventoryPipe(Object aTileEntity, int aSide) { - if (aTileEntity == null) return F; + if (aTileEntity == null) return false; checkAvailabilities(); - if (TE_CHECK) if (aTileEntity instanceof IItemDuct) return T; + if (TE_CHECK) if (aTileEntity instanceof IItemDuct) return true; if (BC_CHECK) if (aTileEntity instanceof buildcraft.api.transport.IPipeTile) return ((buildcraft.api.transport.IPipeTile)aTileEntity).isPipeConnected(ForgeDirection.getOrientation(aSide)); - return F; + return false; } /** @@ -505,7 +504,7 @@ public class GT_Utility { checkAvailabilities(); if (TE_CHECK && aTileEntity2 instanceof IItemDuct) { for (int i = 0; i < aGrabSlots.length; i++) { - if (listContainsItem(aFilter, aTileEntity1.getStackInSlot(aGrabSlots[i]), T, aInvertFilter)) { + if (listContainsItem(aFilter, aTileEntity1.getStackInSlot(aGrabSlots[i]), true, aInvertFilter)) { if (isAllowedToTakeFromSlot(aTileEntity1, aGrabSlots[i], (byte)aGrabFrom, aTileEntity1.getStackInSlot(aGrabSlots[i]))) { if (Math.max(aMinMoveAtOnce, aMinTargetStackSize) <= aTileEntity1.getStackInSlot(aGrabSlots[i]).stackSize) { ItemStack tStack = copyAmount(Math.min(aTileEntity1.getStackInSlot(aGrabSlots[i]).stackSize, Math.min(aMaxMoveAtOnce, aMaxTargetStackSize)), aTileEntity1.getStackInSlot(aGrabSlots[i])); @@ -525,13 +524,13 @@ public class GT_Utility { } if (BC_CHECK && aTileEntity2 instanceof buildcraft.api.transport.IPipeTile) { for (int i = 0; i < aGrabSlots.length; i++) { - if (listContainsItem(aFilter, aTileEntity1.getStackInSlot(aGrabSlots[i]), T, aInvertFilter)) { + if (listContainsItem(aFilter, aTileEntity1.getStackInSlot(aGrabSlots[i]), true, aInvertFilter)) { if (isAllowedToTakeFromSlot(aTileEntity1, aGrabSlots[i], (byte)aGrabFrom, aTileEntity1.getStackInSlot(aGrabSlots[i]))) { if (Math.max(aMinMoveAtOnce, aMinTargetStackSize) <= aTileEntity1.getStackInSlot(aGrabSlots[i]).stackSize) { ItemStack tStack = copyAmount(Math.min(aTileEntity1.getStackInSlot(aGrabSlots[i]).stackSize, Math.min(aMaxMoveAtOnce, aMaxTargetStackSize)), aTileEntity1.getStackInSlot(aGrabSlots[i])); - byte tMovedItemCount = (byte)((buildcraft.api.transport.IPipeTile)aTileEntity2).injectItem(copy(tStack), F, ForgeDirection.getOrientation(aPutTo)); + byte tMovedItemCount = (byte)((buildcraft.api.transport.IPipeTile)aTileEntity2).injectItem(copy(tStack), false, ForgeDirection.getOrientation(aPutTo)); if (tMovedItemCount >= Math.max(aMinMoveAtOnce, aMinTargetStackSize)) { - tMovedItemCount = (byte)(((buildcraft.api.transport.IPipeTile)aTileEntity2).injectItem(copyAmount(tMovedItemCount, tStack), T, ForgeDirection.getOrientation(aPutTo))); + tMovedItemCount = (byte)(((buildcraft.api.transport.IPipeTile)aTileEntity2).injectItem(copyAmount(tMovedItemCount, tStack), true , ForgeDirection.getOrientation(aPutTo))); aTileEntity1.decrStackSize(aGrabSlots[i], tMovedItemCount); aTileEntity1.markDirty(); return tMovedItemCount; @@ -549,7 +548,7 @@ public class GT_Utility { int tX = ((TileEntity)aTileEntity1).xCoord + tDirection.offsetX, tY = ((TileEntity)aTileEntity1).yCoord + tDirection.offsetY, tZ = ((TileEntity)aTileEntity1).zCoord + tDirection.offsetZ; if (!hasBlockHitBox(((TileEntity)aTileEntity1).getWorldObj(), tX, tY, tZ)) { for (int i = 0; i < aGrabSlots.length; i++) { - if (listContainsItem(aFilter, aTileEntity1.getStackInSlot(aGrabSlots[i]), T, aInvertFilter)) { + if (listContainsItem(aFilter, aTileEntity1.getStackInSlot(aGrabSlots[i]), true, aInvertFilter)) { if (isAllowedToTakeFromSlot(aTileEntity1, aGrabSlots[i], (byte)aGrabFrom, aTileEntity1.getStackInSlot(aGrabSlots[i]))) { if (Math.max(aMinMoveAtOnce, aMinTargetStackSize) <= aTileEntity1.getStackInSlot(aGrabSlots[i]).stackSize) { ItemStack tStack = copyAmount(Math.min(aTileEntity1.getStackInSlot(aGrabSlots[i]).stackSize, Math.min(aMaxMoveAtOnce, aMaxTargetStackSize)), aTileEntity1.getStackInSlot(aGrabSlots[i])); @@ -610,12 +609,12 @@ public class GT_Utility { || isAllowedToTakeFromSlot(aTileEntity, aSlot, (byte)5, aStack); } if (aTileEntity instanceof ISidedInventory) return ((ISidedInventory)aTileEntity).canExtractItem(aSlot, aStack, aSide); - return T; + return true; } public static boolean isAllowedToPutIntoSlot(IInventory aTileEntity, int aSlot, byte aSide, ItemStack aStack, byte aMaxStackSize) { ItemStack tStack = aTileEntity.getStackInSlot(aSlot); - if (tStack != null && (!areStacksEqual(tStack, aStack) || tStack.stackSize >= tStack.getMaxStackSize())) return F; + if (tStack != null && (!areStacksEqual(tStack, aStack) || tStack.stackSize >= tStack.getMaxStackSize())) return false; if (ForgeDirection.getOrientation(aSide) == ForgeDirection.UNKNOWN) { return isAllowedToPutIntoSlot(aTileEntity, aSlot, (byte)0, aStack, aMaxStackSize) || isAllowedToPutIntoSlot(aTileEntity, aSlot, (byte)1, aStack, aMaxStackSize) @@ -624,7 +623,7 @@ public class GT_Utility { || isAllowedToPutIntoSlot(aTileEntity, aSlot, (byte)4, aStack, aMaxStackSize) || isAllowedToPutIntoSlot(aTileEntity, aSlot, (byte)5, aStack, aMaxStackSize); } - if (aTileEntity instanceof ISidedInventory && !((ISidedInventory)aTileEntity).canInsertItem(aSlot, aStack, aSide)) return F; + if (aTileEntity instanceof ISidedInventory && !((ISidedInventory)aTileEntity).canInsertItem(aSlot, aStack, aSide)) return false; return aTileEntity.isItemValidForSlot(aSlot, aStack); } @@ -633,7 +632,7 @@ public class GT_Utility { * @return the Amount of moved Items */ public static byte moveOneItemStack(Object aTileEntity1, Object aTileEntity2, byte aGrabFrom, byte aPutTo, List aFilter, boolean aInvertFilter, byte aMaxTargetStackSize, byte aMinTargetStackSize, byte aMaxMoveAtOnce, byte aMinMoveAtOnce) { - if (aTileEntity1 != null && aTileEntity1 instanceof IInventory) return moveOneItemStack((IInventory)aTileEntity1, aTileEntity2, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, T); + if (aTileEntity1 != null && aTileEntity1 instanceof IInventory) return moveOneItemStack((IInventory)aTileEntity1, aTileEntity2, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, true); return 0; } @@ -661,7 +660,7 @@ public class GT_Utility { for (int i = 0; i < tGrabSlots.length; i++) { for (int j = 0; j < tPutSlots.length; j++) { - if (listContainsItem(aFilter, aTileEntity1.getStackInSlot(tGrabSlots[i]), T, aInvertFilter)) { + if (listContainsItem(aFilter, aTileEntity1.getStackInSlot(tGrabSlots[i]), true, aInvertFilter)) { if (isAllowedToTakeFromSlot(aTileEntity1, tGrabSlots[i], aGrabFrom, aTileEntity1.getStackInSlot(tGrabSlots[i]))) { if (isAllowedToPutIntoSlot((IInventory)aTileEntity2, tPutSlots[j], aPutTo, aTileEntity1.getStackInSlot(tGrabSlots[i]), aMaxTargetStackSize)) { byte tMovedItemCount = moveStackFromSlotAToSlotB(aTileEntity1, (IInventory)aTileEntity2, tGrabSlots[i], tPutSlots[j], aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce); @@ -677,13 +676,13 @@ public class GT_Utility { if (tTileEntity1.adjacentChestChecked) { byte tAmount = 0; if (tTileEntity1.adjacentChestXNeg != null) { - tAmount = moveOneItemStack(tTileEntity1.adjacentChestXNeg, aTileEntity2, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, F); + tAmount = moveOneItemStack(tTileEntity1.adjacentChestXNeg, aTileEntity2, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); } else if (tTileEntity1.adjacentChestZNeg != null) { - tAmount = moveOneItemStack(tTileEntity1.adjacentChestZNeg, aTileEntity2, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, F); + tAmount = moveOneItemStack(tTileEntity1.adjacentChestZNeg, aTileEntity2, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); } else if (tTileEntity1.adjacentChestXPos != null) { - tAmount = moveOneItemStack(tTileEntity1.adjacentChestXPos, aTileEntity2, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, F); + tAmount = moveOneItemStack(tTileEntity1.adjacentChestXPos, aTileEntity2, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); } else if (tTileEntity1.adjacentChestZPos != null) { - tAmount = moveOneItemStack(tTileEntity1.adjacentChestZPos, aTileEntity2, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, F); + tAmount = moveOneItemStack(tTileEntity1.adjacentChestZPos, aTileEntity2, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); } if (tAmount != 0) return tAmount; } @@ -693,13 +692,13 @@ public class GT_Utility { if (tTileEntity2.adjacentChestChecked) { byte tAmount = 0; if (tTileEntity2.adjacentChestXNeg != null) { - tAmount = moveOneItemStack(aTileEntity1, tTileEntity2.adjacentChestXNeg, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, F); + tAmount = moveOneItemStack(aTileEntity1, tTileEntity2.adjacentChestXNeg, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); } else if (tTileEntity2.adjacentChestZNeg != null) { - tAmount = moveOneItemStack(aTileEntity1, tTileEntity2.adjacentChestZNeg, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, F); + tAmount = moveOneItemStack(aTileEntity1, tTileEntity2.adjacentChestZNeg, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); } else if (tTileEntity2.adjacentChestXPos != null) { - tAmount = moveOneItemStack(aTileEntity1, tTileEntity2.adjacentChestXPos, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, F); + tAmount = moveOneItemStack(aTileEntity1, tTileEntity2.adjacentChestXPos, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); } else if (tTileEntity2.adjacentChestZPos != null) { - tAmount = moveOneItemStack(aTileEntity1, tTileEntity2.adjacentChestZPos, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, F); + tAmount = moveOneItemStack(aTileEntity1, tTileEntity2.adjacentChestZPos, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); } if (tAmount != 0) return tAmount; } @@ -725,7 +724,7 @@ public class GT_Utility { if (aTileEntity2 != null && aTileEntity2 instanceof IInventory) { for (int i = 0; i < tGrabSlots.length; i++) { - if (listContainsItem(aFilter, ((IInventory)aTileEntity1).getStackInSlot(tGrabSlots[i]), T, aInvertFilter)) { + if (listContainsItem(aFilter, ((IInventory)aTileEntity1).getStackInSlot(tGrabSlots[i]), true, aInvertFilter)) { if (isAllowedToTakeFromSlot((IInventory)aTileEntity1, tGrabSlots[i], aGrabFrom, ((IInventory)aTileEntity1).getStackInSlot(tGrabSlots[i]))) { if (isAllowedToPutIntoSlot((IInventory)aTileEntity2, aPutTo, (byte)6, ((IInventory)aTileEntity1).getStackInSlot(tGrabSlots[i]), aMaxTargetStackSize)) { byte tMovedItemCount = moveStackFromSlotAToSlotB((IInventory)aTileEntity1, (IInventory)aTileEntity2, tGrabSlots[i], aPutTo, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce); @@ -746,7 +745,7 @@ public class GT_Utility { */ public static byte moveFromSlotToSlot(IInventory aTileEntity1, IInventory aTileEntity2, int aGrabFrom, int aPutTo, List aFilter, boolean aInvertFilter, byte aMaxTargetStackSize, byte aMinTargetStackSize, byte aMaxMoveAtOnce, byte aMinMoveAtOnce) { if (aTileEntity1 == null || aTileEntity2 == null || aGrabFrom < 0 || aPutTo < 0 || aMaxTargetStackSize <= 0 || aMinTargetStackSize <= 0 || aMaxMoveAtOnce <= 0 || aMinTargetStackSize > aMaxTargetStackSize || aMinMoveAtOnce > aMaxMoveAtOnce) return 0; - if (listContainsItem(aFilter, aTileEntity1.getStackInSlot(aGrabFrom), T, aInvertFilter)) { + if (listContainsItem(aFilter, aTileEntity1.getStackInSlot(aGrabFrom), true, aInvertFilter)) { if (isAllowedToTakeFromSlot(aTileEntity1, aGrabFrom, (byte)6, aTileEntity1.getStackInSlot(aGrabFrom))) { if (isAllowedToPutIntoSlot(aTileEntity2, aPutTo, (byte)6, aTileEntity1.getStackInSlot(aGrabFrom), aMaxTargetStackSize)) { byte tMovedItemCount = moveStackFromSlotAToSlotB(aTileEntity1, aTileEntity2, aGrabFrom, aPutTo, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce); @@ -758,7 +757,7 @@ public class GT_Utility { } public static boolean listContainsItem(Collection aList, ItemStack aStack, boolean aTIfListEmpty, boolean aInvertFilter) { - if (aStack == null || aStack.stackSize < 1) return F; + if (aStack == null || aStack.stackSize < 1) return false; if (aList == null) return aTIfListEmpty; while (aList.contains(null)) aList.remove(null); if (aList.size() < 1) return aTIfListEmpty; @@ -770,14 +769,14 @@ public class GT_Utility { public static boolean areStacksOrToolsEqual(ItemStack aStack1, ItemStack aStack2) { if (aStack1 != null && aStack2 != null && aStack1.getItem() == aStack2.getItem()) { - if (aStack1.getItem().isDamageable()) return T; + if (aStack1.getItem().isDamageable()) return true; return ((aStack1.getTagCompound() == null) == (aStack2.getTagCompound() == null)) && (aStack1.getTagCompound() == null || aStack1.getTagCompound().equals(aStack2.getTagCompound())) && (Items.feather.getDamage(aStack1) == Items.feather.getDamage(aStack2) || Items.feather.getDamage(aStack1) == W || Items.feather.getDamage(aStack2) == W); } - return F; + return false; } public static boolean areFluidsEqual(FluidStack aFluid1, FluidStack aFluid2) { - return areFluidsEqual(aFluid1, aFluid2, F); + return areFluidsEqual(aFluid1, aFluid2, false); } public static boolean areFluidsEqual(FluidStack aFluid1, FluidStack aFluid2, boolean aIgnoreNBT) { @@ -785,7 +784,7 @@ public class GT_Utility { } public static boolean areStacksEqual(ItemStack aStack1, ItemStack aStack2) { - return areStacksEqual(aStack1, aStack2, F); + return areStacksEqual(aStack1, aStack2, false); } public static boolean areStacksEqual(ItemStack aStack1, ItemStack aStack2, boolean aIgnoreNBT) { @@ -793,7 +792,7 @@ public class GT_Utility { } public static boolean areUnificationsEqual(ItemStack aStack1, ItemStack aStack2) { - return areUnificationsEqual(aStack1, aStack2, F); + return areUnificationsEqual(aStack1, aStack2, false); } public static boolean areUnificationsEqual(ItemStack aStack1, ItemStack aStack2, boolean aIgnoreNBT) { @@ -860,9 +859,9 @@ public class GT_Utility { } if (aCheckIFluidContainerItems && aStack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem)aStack.getItem()).getFluid(aStack) == null && ((IFluidContainerItem)aStack.getItem()).getCapacity(aStack) <= aFluid.amount) { if (aRemoveFluidDirectly) - aFluid.amount -= ((IFluidContainerItem)aStack.getItem()).fill(aStack = copyAmount(1, aStack), aFluid, T); + aFluid.amount -= ((IFluidContainerItem)aStack.getItem()).fill(aStack = copyAmount(1, aStack), aFluid, true); else - ((IFluidContainerItem)aStack.getItem()).fill(aStack = copyAmount(1, aStack), aFluid, T); + ((IFluidContainerItem)aStack.getItem()).fill(aStack = copyAmount(1, aStack), aFluid, true); return aStack; } Map tFluidToContainer = sEmptyContainerToFluidToData.get(new GT_ItemStack(aStack)); @@ -874,7 +873,7 @@ public class GT_Utility { } public static ItemStack getFluidDisplayStack(Fluid aFluid) { - return aFluid==null?null:getFluidDisplayStack(new FluidStack(aFluid, 0), F); + return aFluid==null?null:getFluidDisplayStack(new FluidStack(aFluid, 0), false); } public static ItemStack getFluidDisplayStack(FluidStack aFluid, boolean aUseStackSize) { @@ -895,15 +894,15 @@ public class GT_Utility { } public static boolean containsFluid(ItemStack aStack, FluidStack aFluid, boolean aCheckIFluidContainerItems) { - if (isStackInvalid(aStack) || aFluid == null) return F; + if (isStackInvalid(aStack) || aFluid == null) return false; if (aCheckIFluidContainerItems && aStack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem)aStack.getItem()).getCapacity(aStack) > 0) return aFluid.isFluidEqual(((IFluidContainerItem)aStack.getItem()).getFluid(aStack = copyAmount(1, aStack))); FluidContainerData tData = sFilledContainerToData.get(new GT_ItemStack(aStack)); - return tData==null?F:tData.fluid.isFluidEqual(aFluid); + return tData==null? false :tData.fluid.isFluidEqual(aFluid); } public static FluidStack getFluidForFilledItem(ItemStack aStack, boolean aCheckIFluidContainerItems) { if (isStackInvalid(aStack)) return null; - if (aCheckIFluidContainerItems && aStack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem)aStack.getItem()).getCapacity(aStack) > 0) return ((IFluidContainerItem)aStack.getItem()).drain(copyAmount(1, aStack), Integer.MAX_VALUE, T); + if (aCheckIFluidContainerItems && aStack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem)aStack.getItem()).getCapacity(aStack) > 0) return ((IFluidContainerItem)aStack.getItem()).drain(copyAmount(1, aStack), Integer.MAX_VALUE, true); FluidContainerData tData = sFilledContainerToData.get(new GT_ItemStack(aStack)); return tData==null?null:tData.fluid.copy(); } @@ -913,7 +912,7 @@ public class GT_Utility { FluidContainerData tData = sFilledContainerToData.get(new GT_ItemStack(aStack)); if (tData != null) return copyAmount(1, tData.emptyContainer); if (aCheckIFluidContainerItems && aStack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem)aStack.getItem()).getCapacity(aStack) > 0) { - ((IFluidContainerItem)aStack.getItem()).drain(aStack = copyAmount(1, aStack), Integer.MAX_VALUE, T); + ((IFluidContainerItem)aStack.getItem()).drain(aStack = copyAmount(1, aStack), Integer.MAX_VALUE, true); return aStack; } return null; @@ -923,13 +922,13 @@ public class GT_Utility { if (isStackInvalid(aStack)) return null; if (aStack.getItem().hasContainerItem(aStack)) return aStack.getItem().getContainerItem(aStack); /** These are all special Cases, in which it is intended to have only GT Blocks outputting those Container Items */ - if (ItemList.Cell_Empty.isStackEqual(aStack, F, T)) return null; - if (ItemList.IC2_Fuel_Can_Filled.isStackEqual(aStack, F, T)) return ItemList.IC2_Fuel_Can_Empty.get(1); + if (ItemList.Cell_Empty.isStackEqual(aStack, false, true)) return null; + if (ItemList.IC2_Fuel_Can_Filled.isStackEqual(aStack, false, true)) return ItemList.IC2_Fuel_Can_Empty.get(1); if (aStack.getItem() == Items.potionitem || aStack.getItem() == Items.experience_bottle || ItemList.TF_Vial_FieryBlood.isStackEqual(aStack) || ItemList.TF_Vial_FieryTears.isStackEqual(aStack)) return ItemList.Bottle_Empty.get(1); if (aCheckIFluidContainerItems && aStack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem)aStack.getItem()).getCapacity(aStack) > 0) { ItemStack tStack = copyAmount(1, aStack); - ((IFluidContainerItem)aStack.getItem()).drain(tStack, Integer.MAX_VALUE, T); + ((IFluidContainerItem)aStack.getItem()).drain(tStack, Integer.MAX_VALUE, true); if (!areStacksEqual(aStack, tStack)) return tStack; return null; } @@ -942,8 +941,8 @@ public class GT_Utility { } public static synchronized boolean removeSimpleIC2MachineRecipe(ItemStack aInput, Map aRecipeList, ItemStack aOutput) { - if ((isStackInvalid(aInput) && isStackInvalid(aOutput)) || aRecipeList == null) return F; - boolean rReturn = F; + if ((isStackInvalid(aInput) && isStackInvalid(aOutput)) || aRecipeList == null) return false; + boolean rReturn = false; Iterator> tIterator = aRecipeList.entrySet().iterator(); aOutput = GT_OreDictUnificator.get(aOutput); while (tIterator.hasNext()) { @@ -952,7 +951,7 @@ public class GT_Utility { List tList = tEntry.getValue().items; if (tList != null) for (ItemStack tOutput : tList) if (aOutput == null || areStacksEqual(GT_OreDictUnificator.get(tOutput), aOutput)) { tIterator.remove(); - rReturn = T; + rReturn = true; break; } } @@ -961,15 +960,15 @@ public class GT_Utility { } public static boolean addSimpleIC2MachineRecipe(ItemStack aInput, Map aRecipeList, NBTTagCompound aNBT, Object... aOutput) { - if (isStackInvalid(aInput) || aOutput.length == 0 || aRecipeList == null) return F; + if (isStackInvalid(aInput) || aOutput.length == 0 || aRecipeList == null) return false; ItemData tOreName = GT_OreDictUnificator.getAssociation(aInput); - for(int i = 0;i boolean arrayContainsNonNull(T... aArray) { - if (aArray != null) for (Object tObject : aArray) if (tObject != null) return T; - return F; + if (aArray != null) for (Object tObject : aArray) if (tObject != null) return true; + return false; } public static ArrayList getArrayListWithoutNulls(T... aArray) { @@ -1141,7 +1140,7 @@ public class GT_Utility { } public static boolean isDebugItem(ItemStack aStack) { - return /*ItemList.Armor_Cheat.isStackEqual(aStack, T, T) || */areStacksEqual(GT_ModHandler.getIC2Item("debug", 1), aStack, T); + return /*ItemList.Armor_Cheat.isStackEqual(aStack, T, T) || */areStacksEqual(GT_ModHandler.getIC2Item("debug", 1), aStack, true); } public static ItemStack updateItemStack(ItemStack aStack) { @@ -1192,16 +1191,16 @@ public class GT_Utility { */ public static String parseNumberToString(int aNumber) { String tString = E; - boolean temp = T, negative = F; + boolean temp = true , negative = false; if (aNumber<0) { aNumber *= -1; - negative = T; + negative = true; } for (int i = 1000000000; i > 0; i /= 10) { int tDigit = (aNumber/i)%10; - if ( temp && tDigit != 0) temp = F; + if ( temp && tDigit != 0) temp = false; if (!temp) { tString += tDigit; if (i != 1) for (int j = i; j > 0; j /= 1000) if (j == 1) tString += ","; @@ -1257,33 +1256,33 @@ public class GT_Utility { } public static boolean isWearingFullFrostHazmat(EntityLivingBase aEntity) { - for (byte i = 1; i < 5; i++) if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sFrostHazmatList)) return F; - return T; + for (byte i = 1; i < 5; i++) if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sFrostHazmatList)) return false; + return true; } public static boolean isWearingFullHeatHazmat(EntityLivingBase aEntity) { - for (byte i = 1; i < 5; i++) if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sHeatHazmatList)) return F; - return T; + for (byte i = 1; i < 5; i++) if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sHeatHazmatList)) return false; + return true; } public static boolean isWearingFullBioHazmat(EntityLivingBase aEntity) { - for (byte i = 1; i < 5; i++) if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sBioHazmatList)) return F; - return T; + for (byte i = 1; i < 5; i++) if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sBioHazmatList)) return false; + return true; } public static boolean isWearingFullRadioHazmat(EntityLivingBase aEntity) { - for (byte i = 1; i < 5; i++) if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sRadioHazmatList)) return F; - return T; + for (byte i = 1; i < 5; i++) if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sRadioHazmatList)) return false; + return true; } public static boolean isWearingFullElectroHazmat(EntityLivingBase aEntity) { - for (byte i = 1; i < 5; i++) if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sElectroHazmatList)) return F; - return T; + for (byte i = 1; i < 5; i++) if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sElectroHazmatList)) return false; + return true; } public static boolean isWearingFullGasHazmat(EntityLivingBase aEntity) { - for (byte i = 1; i < 5; i++) if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sGasHazmatList)) return F; - return T; + for (byte i = 1; i < 5; i++) if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sGasHazmatList)) return false; + return true; } public static float getHeatDamageFromItem(ItemStack aStack) { @@ -1307,26 +1306,26 @@ public class GT_Utility { public static boolean applyHeatDamage(EntityLivingBase aEntity, float aDamage) { if (aDamage > 0 && aEntity != null && aEntity.getActivePotionEffect(Potion.fireResistance) == null && !isWearingFullHeatHazmat(aEntity)) { aEntity.attackEntityFrom(GT_DamageSources.getHeatDamage(), aDamage); - return T; + return true; } - return F; + return false; } public static boolean applyFrostDamage(EntityLivingBase aEntity, float aDamage) { if (aDamage > 0 && aEntity != null && !isWearingFullFrostHazmat(aEntity)) { aEntity.attackEntityFrom(GT_DamageSources.getFrostDamage(), aDamage); - return T; + return true; } - return F; + return false; } public static boolean applyElectricityDamage(EntityLivingBase aEntity, long aVoltage, long aAmperage) { long aDamage = getTier(aVoltage) * aAmperage * 4; if (aDamage > 0 && aEntity != null && !isWearingFullElectroHazmat(aEntity)) { aEntity.attackEntityFrom(GT_DamageSources.getElectricDamage(), aDamage); - return T; + return true; } - return F; + return false; } public static boolean applyRadioactivity(EntityLivingBase aEntity, int aLevel, int aAmountOfItems) { @@ -1338,9 +1337,9 @@ public class GT_Utility { aEntity.addPotionEffect(new PotionEffect(Potion.weakness.id , aLevel * 150 * aAmountOfItems + Math.max(0, ((tEffect = aEntity.getActivePotionEffect(Potion.weakness ))==null?0:tEffect.getDuration())), Math.max(0, (5*aLevel) / 7))); aEntity.addPotionEffect(new PotionEffect(Potion.hunger.id , aLevel * 130 * aAmountOfItems + Math.max(0, ((tEffect = aEntity.getActivePotionEffect(Potion.hunger ))==null?0:tEffect.getDuration())), Math.max(0, (5*aLevel) / 7))); aEntity.addPotionEffect(new PotionEffect(24 /* IC2 Radiation */ , aLevel * 180 * aAmountOfItems + Math.max(0, ((tEffect = aEntity.getActivePotionEffect(Potion.potionTypes[24] ))==null?0:tEffect.getDuration())), Math.max(0, (5*aLevel) / 7))); - return T; + return true; } - return F; + return false; } public static ItemStack setStack(Object aSetStack, Object aToStack) { @@ -1423,12 +1422,12 @@ public class GT_Utility { ItemStack rStack = ItemStack.loadItemStackFromNBT(aNBT); try { if (rStack != null && (rStack.getItem().getClass().getName().startsWith("ic2.core.migration"))) { - rStack.getItem().onUpdate(rStack, DW, null, 0, F); + rStack.getItem().onUpdate(rStack, DW, null, 0, false); } } catch(Throwable e) { e.printStackTrace(GT_Log.err); } - return GT_OreDictUnificator.get(T, rStack); + return GT_OreDictUnificator.get(true , rStack); } /** @@ -1454,7 +1453,7 @@ public class GT_Utility { } public static boolean isStackInList(ItemStack aStack, Collection aList) { - if (aStack == null) {return F;} + if (aStack == null) {return false;} return isStackInList(new GT_ItemStack(aStack), aList); } @@ -1515,10 +1514,10 @@ public class GT_Utility { */ public static boolean isRealDimension(int aDimensionID) { try { - if (DimensionManager.getProvider(aDimensionID).getClass().getName().contains("com.xcompwiz.mystcraft")) return T; + if (DimensionManager.getProvider(aDimensionID).getClass().getName().contains("com.xcompwiz.mystcraft")) return true; } catch (Throwable e) {/*Do nothing*/} try { - if (DimensionManager.getProvider(aDimensionID).getClass().getName().contains("TwilightForest")) return T; + if (DimensionManager.getProvider(aDimensionID).getClass().getName().contains("TwilightForest")) return true; } catch (Throwable e) {/*Do nothing*/} return GregTech_API.sDimensionalList.contains(aDimensionID); } @@ -1534,7 +1533,7 @@ public class GT_Utility { aPlayer.dimension = aDimension; aPlayer.playerNetServerHandler.sendPacket(new S07PacketRespawn(aPlayer.dimension, aPlayer.worldObj.difficultySetting, aPlayer.worldObj.getWorldInfo().getTerrainType(), aPlayer.theItemInWorldManager.getGameType())); tOriginalWorld.removePlayerEntityDangerously(aPlayer); - aPlayer.isDead = F; + aPlayer.isDead = false; aPlayer.setWorld(tTargetWorld); MinecraftServer.getServer().getConfigurationManager().func_72375_a(aPlayer, tOriginalWorld); aPlayer.playerNetServerHandler.setPlayerLocation(aX+0.5, aY+0.5, aZ+0.5, aPlayer.rotationYaw, aPlayer.rotationPitch); @@ -1552,17 +1551,17 @@ public class GT_Utility { aEntity.setPosition(aX+0.5, aY+0.5, aZ+0.5); aEntity.worldObj.removeEntity(aEntity); aEntity.dimension = aDimension; - aEntity.isDead = F; + aEntity.isDead = false; Entity tNewEntity = EntityList.createEntityByName(EntityList.getEntityString(aEntity), tTargetWorld); if (tNewEntity != null) { - tNewEntity.copyDataFrom(aEntity, T); + tNewEntity.copyDataFrom(aEntity, true); aEntity.setDead(); - tNewEntity.isDead = F; + tNewEntity.isDead = false; boolean temp = tNewEntity.forceSpawn; - tNewEntity.forceSpawn = T; + tNewEntity.forceSpawn = true; tTargetWorld.spawnEntityInWorld(tNewEntity); tNewEntity.forceSpawn = temp; - tNewEntity.isDead = F; + tNewEntity.isDead = false; aEntity = tNewEntity; } } @@ -1575,9 +1574,9 @@ public class GT_Utility { tOriginalWorld.resetUpdateEntityTick(); tTargetWorld.resetUpdateEntityTick(); - return T; + return true; } - return F; + return false; } public static int getCoordinateScan(ArrayList aList, EntityPlayer aPlayer, World aWorld, int aScanLevel, int aX, int aY, int aZ, int aSide, float aClickX, float aClickY, float aClickZ) { @@ -1605,7 +1604,7 @@ public class GT_Utility { rEUAmount+=500; FluidTankInfo[] tTanks = ((IFluidHandler)tTileEntity).getTankInfo(ForgeDirection.getOrientation(aSide)); if (tTanks != null) for (byte i = 0; i < tTanks.length; i++) { - tList.add("Tank " + i + ": " + GT_Utility.formatNumbers((tTanks[i].fluid==null?0:tTanks[i].fluid.amount)) + " / " + GT_Utility.formatNumbers(tTanks[i].capacity) + " " + getFluidName(tTanks[i].fluid, T)); + tList.add("Tank " + i + ": " + GT_Utility.formatNumbers((tTanks[i].fluid==null?0:tTanks[i].fluid.amount)) + " / " + GT_Utility.formatNumbers(tTanks[i].capacity) + " " + getFluidName(tTanks[i].fluid, true)); } }} catch(Throwable e) {if (D1) e.printStackTrace(GT_Log.err);} try {if (tTileEntity instanceof ic2.api.reactor.IReactorChamber) { From 70c116c3dfb14f77680155a02dbd53d763987703 Mon Sep 17 00:00:00 2001 From: Blood-Asp Date: Tue, 20 Oct 2015 22:45:59 +0200 Subject: [PATCH 13/17] update to forestry 4.0 --- src/main/java/gregtech/GT_Mod.java | 51 ++++++++++++++---------------- 1 file changed, 24 insertions(+), 27 deletions(-) diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java index 6579445b..c20c8a55 100644 --- a/src/main/java/gregtech/GT_Mod.java +++ b/src/main/java/gregtech/GT_Mod.java @@ -15,14 +15,17 @@ import cpw.mods.fml.common.event.FMLServerStartedEvent; import cpw.mods.fml.common.event.FMLServerStartingEvent; import cpw.mods.fml.common.event.FMLServerStoppingEvent; import cpw.mods.fml.common.registry.EntityRegistry; - import forestry.factory.gadgets.MachineCentrifuge; -import forestry.factory.gadgets.MachineCentrifuge.RecipeManager; - import forestry.factory.gadgets.MachineSqueezer; +import forestry.factory.recipes.ISqueezerRecipe; +import forestry.factory.tiles.TileCentrifuge; +import forestry.factory.tiles.TileSqueezer; +//import forestry.factory.gadgets.MachineCentrifuge; +//import forestry.factory.gadgets.MachineCentrifuge.RecipeManager; +//import forestry.factory.gadgets.MachineSqueezer; import gregtech.api.GregTech_API; import gregtech.api.enchants.Enchantment_EnderDamage; import gregtech.api.enchants.Enchantment_Radioactivity; import gregtech.api.enums.ConfigCategories.Recipes; - import gregtech.api.enums.*; +import gregtech.api.enums.*; import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.internal.IGT_Mod; @@ -40,7 +43,7 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_RecipeRegistrator; - import gregtech.api.util.GT_SpawnEventHandler; +import gregtech.api.util.GT_SpawnEventHandler; import gregtech.api.util.GT_Utility; import gregtech.common.GT_DummyWorld; import gregtech.common.GT_Network; @@ -53,7 +56,7 @@ import gregtech.loaders.load.GT_CoverBehaviorLoader; import gregtech.loaders.load.GT_FuelLoader; import gregtech.loaders.load.GT_ItemIterator; import gregtech.loaders.load.GT_SonictronLoader; - import gregtech.loaders.misc.GT_Achievements; +import gregtech.loaders.misc.GT_Achievements; import gregtech.loaders.misc.GT_CoverLoader; import gregtech.loaders.postload.GT_BlockResistanceLoader; import gregtech.loaders.postload.GT_BookAndLootLoader; @@ -102,12 +105,12 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.item.crafting.IRecipe; - import net.minecraft.stats.Achievement; +import net.minecraft.stats.Achievement; import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.ChestGenHooks; - import net.minecraftforge.common.ForgeVersion; +import net.minecraftforge.common.ForgeVersion; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Property; import net.minecraftforge.fluids.FluidContainerRegistry; @@ -564,24 +567,18 @@ public class GT_Mod } try { - for (Object tRecipe : MachineCentrifuge.RecipeManager.recipes) - { - - - Map outputs = ((MachineCentrifuge.CentrifugeRecipe)tRecipe).getAllProducts(); + for (Object tRecipe : TileCentrifuge.RecipeManager.recipes) + { + Map outputs = ((TileCentrifuge.CentrifugeRecipe)tRecipe).getAllProducts(); ItemStack[] tOutputs = new ItemStack[outputs.size()]; int[] tChances = new int[outputs.size()]; -int i =0; -for (Map.Entry entry : outputs.entrySet()) { - tChances[i] = (int) (entry.getValue()*10000); - tOutputs[i] = entry.getKey().copy(); - i++; -} -// for (int i = 0; i < outputs.size(); i++) { -// tOutputs[i] = outputs.entrySet(). -// tChances[i] = (tOriginalChances[i].intValue() * 100); -// } - GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.addRecipe(true, new ItemStack[] { ((MachineCentrifuge.CentrifugeRecipe)tRecipe).getInput() }, tOutputs, null, tChances, null, null, 128, 5, 0); + int i =0; + for (Map.Entry entry : outputs.entrySet()) { + tChances[i] = (int) (entry.getValue()*10000); + tOutputs[i] = entry.getKey().copy(); + i++; + } + GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.addRecipe(true, new ItemStack[] { ((TileCentrifuge.CentrifugeRecipe)tRecipe).getInput() }, tOutputs, null, tChances, null, null, 128, 5, 0); } } catch (Throwable e) @@ -592,9 +589,9 @@ for (Map.Entry entry : outputs.entrySet()) { } try { - for (Object tRecipe : MachineSqueezer.RecipeManager.recipes) { - if ((((MachineSqueezer.Recipe)tRecipe).resources.length == 1) && (GT_Utility.getFluidForFilledItem(((MachineSqueezer.Recipe)tRecipe).resources[0], true) == null)) { - GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes.addRecipe(true, new ItemStack[] { ((MachineSqueezer.Recipe)tRecipe).resources[0] }, new ItemStack[] { ((MachineSqueezer.Recipe)tRecipe).remnants }, null, new int[] { ((MachineSqueezer.Recipe)tRecipe).chance * 100 }, null, new FluidStack[] { ((MachineSqueezer.Recipe)tRecipe).liquid }, 400, 2, 0); + for (Object tRecipe : TileSqueezer.RecipeManager.recipes) { + if ((((ISqueezerRecipe)tRecipe).getResources().length == 1) && (((ISqueezerRecipe)tRecipe).getFluidOutput() != null)) { + GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes.addRecipe(true, new ItemStack[] { ((ISqueezerRecipe)tRecipe).getResources()[0] }, new ItemStack[] { ((ISqueezerRecipe)tRecipe).getRemnants() }, null, new int[] { (int) (((ISqueezerRecipe)tRecipe).getRemnantsChance() * 10000) }, null, new FluidStack[] { ((ISqueezerRecipe)tRecipe).getFluidOutput() }, 400, 2, 0); } } } From 58d3a1c5ddf36d8bea39bb1abef7f472170d1e7c Mon Sep 17 00:00:00 2001 From: Blood-Asp Date: Tue, 20 Oct 2015 22:56:14 +0200 Subject: [PATCH 14/17] update api --- API.jar | Bin 1269085 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 API.jar diff --git a/API.jar b/API.jar deleted file mode 100644 index af0fbfcbd19868ea95964136ff6a561fe2f69aa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1269085 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 z

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

mcai@ha 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 z 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 z zL()9cp)hkx4W6Hf53MFwmZ*1lDz{bay*E>bJnev338+7wJm(lq5_*aaIoC^^;u7Q$m$$BBI5j%Gi$(M_RSnARucGbh>yC7Q^e23B3;BY z-rA{@;vlEI%-j@Aivv92`nl2RK35kQYq+l2UfScR1O>Bp*qtK;y`WckadFXz$eNv} zk*4TDWj*0Ng@?YOuR0!F(=gq0xQa)>?BwK>-ddHhaDl<#b$NdM2|0i5ASEJ9y%BT6 ze5KU2!+7O}#4EkQ%^iD=M;p25>5RF`DJo;tl%#HdakLTU+V8vnKrCQM-LZ#EzZ|Pn;Dkl>IwCvl@ zjQs1|pN8fIWvwqbCfNcxpbqXk-|)Kq>a-}jkA7#QZv@!WD8ZH~`6617?YLfpO&W`T zxh!t`dM!MO*5i=+0riH(4BNB5&qz;m-x?1bXqgp$27&v+9z+aM5}_qzv;SwC1OBGZMT)9UNOUCOBDkgB)e zlyx&pF^&BwTc#V2F{vApfHRe<8(;hN*lXNP*)H9pnz|pWWh9$@W>YlL1I~p13J2c! zAlxJ4>1)UKb&r~j6kt+{QG((bQ;Pe$o-Nao^+6ic$r}n={Uc;h!qU=LOI}vW~hiRXL z{Vs)b{W!FOYo$uL4ypf11BAZKtPHy= zb13#eu-O9_(2}uET_s@|tJ(7OrN_i&-aoS=SvQHOp{sOsqpNy!MKa3b|7o+5AmX!VDoke ze0l9X4F3mq|AQX3?Rbpl9|(2pUNAA(yRWv?S#qS?aZryjkwXOQ4biRT>l4b`qDBYN z>Lxy6V6LeLcc$lhd_##vuWOkLls724jV8SBml^jR zQI^5kvyg++aYFl;w`UpEy_6H*B+QXU(lwJqKz3*y``29e%RBZX)}|Pu$u3H-z&q6y zGM&AwJC5k4mO?_I*Z1aWoZKOA&%weUoyBsKio*{DxfD~1HS45r(*Z%|c`>u-iD3AO zFlBQdCGsJdWk@J2pdWu}h_wG%EIAM8TS5jzM~wfEzSTdysZ9AX8^8=IPkah{K`ByU zJ8&WQiv)=hbdp@6#vrqbv?hlND7ED-j6T(nh~d{zzHRhvcr_w4F@hTXAyLB1lwb{K zW3i!&vJ>MfI$DxoY& z740S?p`sIgs}Ct^E|lbWxL}VhrE$h6>-adH+K^$k+~pLsZX;o_0~v!Y-!?%;w>#mc zYOZieEp+RdGw6@!P-e@p5-2)QeDMEmMWZx4)LJn}pZ-gYo7Th1-JB{R{+b(|L%SZ> zf6*i-9E{og$})gTjbxqEcP)TR?IoNp=NA`Ymj%7nAZnZ*N}EJ1XQh5>%GrJul4@5V zotoPtWD~E!gP_|c?91Y?Us0J}9STn{-U^&sk&NY1F1dBi>tA}?Jb<^meE@xJjQ~6y z@&5-M`4b15o_{vk~Wu=L(LG35(iGHD=KPD(ISzSOWpkUoAAiYXUFYIgJ73Dc_bpKAy_)wC*t_^LSK62jJn`K^3f-SvSYz zbdUDoUll_5*yG(`A_j=3A zw;wdt(JFt-8CiG>lyEoZ7PRB7kNQ1mMskM9Z=m|kM_suDrlo5^4$&Cn6xjeG3>?Ex z)5P3Aml=Tzqu0dPGGEO=Zen6|a1^^nLREEClQdrcp)aQv$G*w131gA*MUR<9OOz1` zj7^yYQy^*WemFBW!uxVlsqslXw7DrJOdn=%KBK&#c1&(8!!Rvj>etZ&bi=!4*VLpX zy7s2UL6yX!4`S&gX@Ttm6^VFm4$0S{d6ix=3|y% zr)UyQ6FSQ9@d8AU!Tv@;5FrdSdbS9{5&|EH2q+|MC=r>_1f0{ zT4i~qxn0w!m+1DU$-Lt!-VYZ~jiGUqp{8?XQ5>_gEYsIn*f!-9(hG!l7Qes*3Sf!? zgsTZi2J*oHax@qrI}l<$HG=yXlbilljQ4;wKKjR41a%ohwJhUMK3^`L4`7rQY)LA` zY`f2|C_Spz86p?wpzva-UQl7x2w_So!asHRGe>1Ic5iM1ZBb?EJqbPK?Hz?;d^f54 zi$wbCZc!z^aiFpbKZ4F7jf0X7i_>Gr>G8fr%H@Qc*P)#gnJx-wkEfGk@O;euP>?tr z?h=mJV?m7*&PnF}iEa zcBuYVRa(ORT-P_j8|UUH?}w_Cr(pu&G!ybG5&q%?lLMS*<}hq{$Poc^wUZt^SWs~i zSD>C&VZK1pa1ysn8jelCAYCuHT4e4Zb0_)a@Irp?$U$CAZr!!T6|FxlK66TWbba|m zyLI5*xt8hj@$ixkq_V@~3oB^CjayT1L}gC!xGhx@WcpRNIxn$2c9=5iDQv(nbIqtsIht}GYGD^KcCGwcY@nGKngZZso;W#L1OmmWl(iKrS!E)Q=cmL}BH$$kge{F-FZHb!9VjwsMzTC~t$8njmi#c$ECfwDbfM!|G_+@Uue`&z`XIzxir z<*q}*zAcZ|yrzV~K7%R(N~!{Ein3761|UXOMRzT6O0;9Q`rkcD32h>ma1fNj*qs`& zNuFKqA+emM7(aKic#9n`=}w%4e(HV-ibxZtGu1waT~m_ z$i?6yw2ca5%@U*^nJ4Mz)XTJMw2YwacvXj~&=k@|#k|+p%*{Ju2cq>e26S`I^S)6z zGHoSBt!nuBP0cp2a|z@nuoQMyMnmnSaTf)cBvtH6w-118kH$6^4B3NVwBkK%v;Dz$ySD|{M`o+IqNPfWLH^w}(QGp7Y zTb$TX8SC&d-D%%jkBqgunV7)(y-Fsj8>M2)ObwUMv4vT~-4XgNj1e&DE!^XWgOAx3 zuWZ9jIYrOLz3E^ILD$)6iA9wXsq==Nz}csU@7AQ?D1B*~=MZh($nlDI4jNhbI%0=r zcit^C6a-5VBl8sWtLP++*uOV@;UF=U(B97>pa4HFak9MJ#I=CNr#YEc5p|4sIve%4 zOJW-l>nd^UH6OA@i3--n$L|dIenJ!6X z!B}}oze!13yySeOXdOv{b(*OV0$whKPfUy_K-e`!hQ|*9Z{Wfe=1L;f08#6W*SVZ| zCw8*p@R*vz87a{UUUqm_v$tb1Ad)vw!2A%C(iDJhg}YYN{z$TNgHm`hrxs*7e5V`R zx?%gx0eNUs{9qRX>fra2x@_jF4K4WIvr&qF3ycfw>@qU7U^YkCM0sm4+Ka3K8vd2b zkm!sL6gj)=lzzE!&^pm*;$^lb7VKn=wB zI)yJzSdw-@W#=4mPIzbZVQr;*a0VGhIs_cZ1qV(V9U(3^;G2D#&n&c(+aR`8uL#&E z(}EYrd@~QeG+0A+y`jEc-Ne+!M9{`tBnhB~s%V2HAbahIMxJpQTG?UI3)B@3O;>wXjt=h?LC7h{> zIt3FX6}AS>&0{~YN8`8R0=59GP~@pTIZ*GS=Y84L_&!MlCAMB6UQiOyyafDUoxxXJ zOVNGb9LjfzbWU)GeqFG9Nlh?hSH;Ds!0hW+A{;g{6kcqF@_Qp1p(KgfA{ZsLh8pI2 zOH}z3x!)?~cn1OI8@5>Ao38*G!S6eGq&LUulf|*JX925C1CAmC`@oSV^^`ynKom~- z=2>uaVP!!VNUc~-OC<30a>7BwN9>a-n|P0a`@2x-q^D}%2`WTIOsb{a@}tO}YP691 z^Dm>4vgty=Sgy4IuT$eB3Bu=i!k6}%p9^QDu zwp7&Y?Nqr}!vUz&03VgB4i0acQbDnOj408#Xly+0qF@2C6B20&6b7E{~H%PdObbrx%OXv zo5i2hj!P3oGPZKt&XDCi=y!#yulDaU-?8oBVjpz}@1Ki22l-Tuem+kYMy z!up#y05I_F_*VeQH(|4+a=`z;0^WZ^0b~5nb$`(8NCD<`jefY;2>x|gWMo0r>=Mx8)k0Xw8pBC-BCgKR|vTwbQYmPaI+j`cU=9_ z3wX%yiMz*t37!rNCcIPtdNv106a3u){JV$$Llpl!fPb*^_3|TlX+jP7`B6N3(KEzG znNjpd=l&$UGEG4X@K-pFS;Ku5AQdSIpN=e z@(HlWWyTBn!hUDkKgT=vD+N&5y>P4OFuUW3PVMkVKRTNFGB`3;)9hnl`3wfbdyZmC z@ffiW8|*Fn4al)4<|>&w3d}(V+5=;TaingFu{abU`7(*!1a8L4OgU{V#_W(`4~*?s zE@36r{EUM|Hg1*M7z@ZfGk%}r*|qozbMe_`tVf4JI}ov($ow*+Mn5kW_bP}d>3tS% znTbJ#cSB3wQxW1r{;13xD!Qw6T67+i8}iC4ixjJe4z69mhg1Y&Jqmlu4mGU!t$}Ne z%PGFY@Fr3N#4H70Fy?TrMz2ghALMp>@+~C9Jz6BgLi=}H&TfqTDpt{ zqcjmXmBK=DVfQbl(polXTMMvL>wul&_+Qogf2yehz+UJ({0Rv4ugwApH2D4<<&8JR z6(L0ByDSDBXgt}1KUSrQFH7ZPUp?4>&%sFlA7iz~8E8Lr`pKB?OiZ@U*52RTKY^zE z!E+B@`lew5?7@ATBc*Oiq&SjvP||P_g&O%>F6nlFrFGhwP6UmE>c=Pi@ONma>HbAq7xE9Sdla$X8 zZA|i)nOZED+`+~PfA9IR-x?Zu)86pR~Y{4QQr}pip*tS=T4B_7rC;!Ip zJqhIx?If<+6QWohZ^LNu!hDm8p!Pw5*-s5i_d9T7JZ2|?F%GdVcviR>>h%=$cSz*& zrD4>%dl)=a5zc2D@3K$tg*wVVfr6$Wo9C8L10^kqAT2S$k5Wy>*-Odn3 zT0y}q9p&Y_IL@l{>SmaGXc!8mEl>jWDkt{BcJ!!o7yC^zyHFzgHORAk$Vvm)SEW)8 zzyaGxb^EdS@$fn%3-o%-w)8P?0ELt+&4+1Vo2t}Jn&z>(=#C&7|qv<5tAPRGyW+mn< z_?VdcwhG;GpOR32#b?5f<2(p6;B0EO$B^_5!_{C95sjKcZ$Jci{l+%V^sns?hrDOhBh& zrcD4JS`E33*Kc`_paDckZx_UjQFgu>ULo`v>Md8QnqYm3Jzu&wA+kYmaVDVJGe3p3H_TlR!tn`ql z#TXbOQB=PZ52(zG-C!=yHA{I1)+#Gii+D-5TF;EQqZXJ@t1=0Tt7^zJtyo|*x!y#- zv$y>ov(YCvZMtSOZJM53`R2&nCIHt;VUBC8ty`>7d6YCgcN#{o?Bn$1l&*ew4Fx~% z_Am3^3f65_f6RMR0Bi%z|7sWhqoeQ#XlKALz0_fb*;2#J7o^7u`9 zJ5%@6R4ZEE)UN=pE~FvQ@2}HNCDCOsf7k%qV8z~scwwdQYpbBzq=neOnvJvbEb84B zBs*(5}?8Llke-p%AN_5%@u^}CQAYxYV} zwWEU$!}@buq?q1JNGa1l{OX;1Vr_4xHZR6Q>1yGE$Qvi`ZCf8lII{q31uW4W$pwnE z;i~*!J(jh<4y|qVi7!ebJkAIs&J2C;2MR_M-TK3|`p-VX-;fpj!4vqGY2pz}d`uBQ z4m}9)LzMqn#Q#_&0$BQQAV-SD*>xWw7aG<-0J+uH`K*+v7(ws3nNVObs0S%nYE9|ThOtW?? z%MgGxB94l?j3ms&iJA7EcfimeNv`LAUVrE5T>xjtT|=2CWgn+s%+XcyRdqZ;vh^fk zEUE$k;ME@)P< zRv-;O(@4s)Ky3GO74|i;t!<*rHETU@sT;xSYL8gM)=A*Q*5!yU|NA4`jgZKptHm)GO z=G)9QLys##A<2_&5%b1Jm!vc<8SB>sffWi&q~xlci|?q&hXAf>tVE+HPj&*|e@(oaoa(@QXOZNBBRk!}sQhuG?s0kcEkA!oOOA3c=}nG_ z^0M$n@ZH`P@-WEDlJrBig4mLHIV*Ly` zES=6>XUu}1vBxC8+Uz@-uQZORAVBU_E;a2Z)39_`oG5*D zc77+Xpi*G<#Fuoj`F!^{hQl<2Tb~|Q!~f!reHFI@XOVQZ^ZxTJo@I%*Y9PPt0WJ;L z#hrq)+dB?!7YK=6hJH?Hw1Pif>sU@s>_dE2-}9P%9pwI-k2T-+;XH`vJ+90aY^@PX zKZC+=BC!B8PjLt4ZDv0+%YFQRkB;TecKx;iMwkR}-%{-=m9f@Z43BD@z&8|l>`~JafL5wlR1_$CQ*Iqn&zACQZoi~ZyM%OK zD=%TUz*lA@rezw^4aFyu`+C!+$cF@V@E_&kB<7d5-=Nqp-&Yg&Wv78a-k)|`*5y2J zZB~rCU9E#kPYs$lvs-&IMwyVMwG`GoWhjj*-=LZ8fch-;4t%)K54(f-{t*tlvqv89 z(d@qcg8=G3Uv=33Sx#ogR<_3We~pJB-3Vv@ps}z82$tM97^p#BPiOR>b z*FEHJ)S`er>6Y?@xxqsjK99mCk&0!T73I^;JqV$c@`qn4D(G~l44Mv?#P^URllCib zNV}tLoKFpVVYaa!h&-Px&R>=SY)zo{en7m>)d~CYz!-vtK>F%phH{C2ZYde~t=W$R zm}?xa($+I^*1gRG>1U+*;h#zm+7$QS)jD%*VUDp2$bth05DExc3s2zr5uYfnf%xCK zoOg-O^r_LG2e@DjLDLe5spkZ?5TC5sH*{U)|DS3 z5bs}6RSfoQ$`MC3&oVK1H@1-64~Ckb8vv=A9K87@()Uq2n%WuNMBpw;{M2dK8M=oA z9|I~h7U*&F{;*Z!$$9r4i zM4nG8@-^mBP*p&UDPpw{Hqx9l;nlu;1n4nPtS)$YyAGiCEJ3lr$0(9m1q667qGvXu z#bNtRDRbo4DXdnq^2oH|#m#h6Wm7O};4&1>oTs#U1yGanh&;eDn>;~w_=NywJXWW?pehmx;xFw(`(mfPD$WOq}=7Jtv`LG5Ue zWptw-(+^Ur$LE344|5*K)RY0;3iqyuR*zwsl>18$H9C*)(&P_4x8o|#Ps%LVcecqN zA1hBdbbel;s7)f(XhcOm|7cx=B76KR)4in?M2itrm%oPG~B;EY=18NZs6bu zAb4;D5S;%DDZN4sQccUW#rsn~$ajYXAuVP$AR&ef6MUG2hA<{U0-|OPxQ9QK`SjlC zkc4BxHfR#3cK)04S?5Awn#IDRg;w4mnwYu8LhHO&m+DogMb(qel1GJx<=N}!k* zae=I%VAILpQ(c~0uNPZWY*}9W3_ueGZQX-4j*Qq7$0k&MkOL4(nw9y=L={_|C|ZxYD@1zX^2GGiKRTuD!}(9-o-Q|^ZOgk<`TN6$ zD^#|_dM=kYU8f#8c-RIFLHas8L|b3?XT`txh&06kCwhhT1y~p5d2qzz5exBk!T3IS zCFzR}NsZY8X!ZJPrC)^{Q~GpR_8)hJI5Wjfz)oMGhLglhBaS;A$r8_F*Q6wyU`P69 zhhU<+;%tW}Qx*v;6C+QC3eDb#7D!E;i+gf27$DTwY2+9$ztN4w>m}Q*1(0+aeym3c z6QAwg*w1m66^|Ri3AzEC=f1Ji%EHj8bPt+gEVu8 zS-50d+Q4gl&`$LfWBsS1pkcia#8{Pss|ar;$ZA>s8>Skf5k~lKU+ttJ&g6@8p{ONy z`b17ynr_^AJW?3JvLa4172fWMEi+YHfYehD=<6On|_ zoG#O6@w?qufwim_h-x%f^DDHUFWrGMbqWqLE=kCzJxL0lfOb>Qg~-bjbhlp&1CHDg z#um4z^vr?>s|i<#$>|QW-FoX@*YT+f+Hm#8bhqQFF_~C{g=NbTmRYB$zK_v=I$GBd z?3xdN2dQ@)#E`@Bk{$!hSSAF*$fL%%3a zL_}|FU>?mu2L2GA@CfmodO+GWm;as-{%a3~b`}dwp||M?+0qGiUwC8A{RaBZfbnv4 zG6d-CqdsL=k{G7@VBJ|9M=VCaFC$3-tN^Wx&206$U9Epc62nqFBkV~c^`XEzHEd=B zOA6ea=EjAf$YDwBjND%H0mg>5F~n$motXxBD*T?5Y>~B*BUdJ3Nm@f`FS^4~=^9M! zY#FP=cJBj06r(fT*~*u_W@N7W$~|`ZAj4*DGFcf**Hp&{Lsz$*JcZ#Je^=5v7;X8y zOR|HWv5-(GsOGlJ@4Go1vm@nCGup0$2eh_nz;g?DhIh+|y z#pIb1n2>8ynpDS|0c?`Oox%!<-nl#0YSh}>7fSlO^n&6=i*Z7$wN7(H5iXqaFSJQ< z$XJ(2WIUlyX45moJDIz0cCc3thg(xsYb>7Kzh82?TZPRCLtZJ~dmyP1w`NxxD~u)I zQuw7^JHeyHVY%FkHhCky3N+*6=hmaIqxGA&b`h;_wpZj6Pufz!4H+<$hD7fn6MDjA zkJs4zuwFrvg%+Am5?;Mhe6AdXr(*1CJx zmttnA@zUunsF|M52@VSjetb9akb$SM}inzoUGOjgDunDWHb{4-{1Ef%Y3{RO*_3WFn$=Nmv(v8%A~y1RbAbl6*Y!bNLwo_(F3+N({rU@r zHZV(cwPW+Oj-+dnFRSItuTrnq2Mf+BMKPc``1bQSoJsnfcrx(kMk`u;TVoX<&I#1( z8}WG9va)L83%K(-7ODt*&^zKQ_F#1{^8Vpi-ci}3&CfqzKYg!8Wk_#I3{_$ z?+V*^l9yz7EK7iYOTJ0izp$JELnE2bYiocmqG%Rlsp^^)&!K(L1{BMw`q_iq&f+kY z(@2-@M9Z*xa^ic13w6~3y}XZhW%p#04x8RZ)l>N{1<=vr-Bl4l?NEP59fFidC1S-p zZ^LlLB*zq#y__r$Nys)-YNvHseS=80|kw$?^2t_n%wxpyXE72B4I$CK^n(Vg5 z%H~o(5ZX`(l&6fOCtZxFuvrkBSLm4(V+iFy4 z3<{hp)z*goY0Qsml$c{*SY?ren0E$P$HEn4b<16TE<$rm{4^rNHc;;t?pV_wclImG zcK4w5VRM-VXS2u?Z}i4TPEUbxAyGJ0A-y7ST3_j-F+EG-+1;j8&MfDN-C5p>mnnm` z;LI%+xsMq2>ANMY@>ja;?qB{wyf;aMS-Zmjc(!-xG6iOTaj=2>>q$n9wa=!1JdI?{ zTHRbzwKNqAQ$p4VY0&0S>{Fu%iSOz`(iSz0@Y7*>oDN^&Sv&0sx7WhWaL+Zh-LjM; zN%djEBgy^lu<&q&{_Y}~O(5%syn|{l-Ie#|6V-=G+pFdJ6P8mYxF2an5|`$0C;Tv! z&ZuFI^6-qIml=m;`at?%L^$lCX%shv8S{GST%O(R-N8XhtLS;DomB|cs@HOoZ>!G{ z>;c!@jvy8!zR)ajM8D_7pyWv!?c05!fUsOGc!W3jud(f5Pk%3kNSg^jXRjd~yvW=) z+sgJ9A2W-RA=;#T9}o7jXZPoQRG3@71ER{fBJ}kt&VF6-$A}y!xb*K=FR)eNK;h1q zXbucRgHl8VwkV2NSItG$w<_do40kTH)m^a|&G#^KZZTu7wX#V09%p9%V*6}{hyN{F zR;o{CQ8YK)wQ6rwKe|_%Hjv8Tls(WmPA)h< zkodQTErrT~e7Vx&n)vIztrL2taZ_9ygaH^^F*n+teb`me@G%L^=QqXb{Sxh{)se-r zk`DMpoO-&xksA+$0)3nGsTRuUy8H(W<5u5EFXDzxQT*fVgH16#^XOM>%A7Y@b$`Pn zNMGKvk3!&Lxq%*P(6-+A_t-)6_8_=x61Ohep|&JZ%aWm`{9f2rwwRoleY9=N{Yi8^ z+{anA;Ny)xC|OL;DFT%Kn&J}zK*--rre&%|XD1$<(xd6Myc2PWq~-**3f5uQaYibM zIeXO|##3y5qbgBR+tbtRS9W@n>|XvaOO@whI}zLzCZ|Rwgi<&u!&{WFUm&L1R9QgU zaFSCK$Pz6yY{yA#EWhcf&tqIT$~qx654=X~M09klM?z zB-K3BN)4gd9Y-3+x@(9-4 z=p&>voGeDr;NOwq_4$cR8+g=)LWK+ELwv0J{nPw8d~#e-@&H)khukSdx9SbI`2LR@ z!&)2Vl|@1gqEOxlpR}s@IIx1vT@;R*NZro}AIhBci)58^ZO;!&-~KaQrCl#J%FT&} z19thJ@41rchbY;fK|U_!;{3*&Y_ndyl?{QS4}1InEm-C$I9o1XcQ4ljT|r()@yhUEa6laDpuOj`D%x!$zVhzmne+^W=N~ z?sSl z#=Q&a+K)_67$!W8S{=33J@oqxl+rWqev*F7GmPV8Zd^25|B~aErz@qWkBBjXY$;Xs z*D;~c;(+w^Q>Dsz?r+Scj`F;^O9yxf_UICnVRw!fMsdOHTq8FqZw8@5yP_2G?szd8 zB@oi#)Gy(!7Q=<7-sfiJsc5QB3W13}DQK3Qg-k)lVZY!|tjpk@e?woZwueGaoMc(N zHLWi=y|fG+mD!^bK}BXim{dT7{3=y~-N;iZR~`oEegmQXKyW@NwU4ymz&|{P5!^?d z<&u?%zD1+&vwBQX$R}GUk&oOpS3u5_DR*G|wfbyLb!f0gJ{%7{g z&<9Wv9e09^F9Rz~5J;zH zhx{-5x#FBao_z2kb@0OdmrhN$t5v53dzw$IKGX&R;Iqb^@-yMBx{L>_o}Ese8XP>K zhi~Z)LrrhVFO0CJ`}FA=`okZ(N1hhKJzsDlh@k>^JkvQ1j&ou5p?(McZYWGO2g4_H z2I@FgoF)~)WiQX+!oW2Sd5NyT^4D2j@|Lg7GuC0kMB-Wq%^~sEZ~m4EGo)oY>f|}q zV0{TjRfMO=4`nC2;ql4pRcHO9aXIy}OdqnBq>D~Yo;>J<*+=C_9jut1!rn10*JaHB z#*|_}c`|!aLno5zASBH~ywBhy^rswsgu_=mv?G@-?zx9%@1=+H+k`WB<1q%$undFg z$6R*s$dYmg-9ZAQyI!qWiWJlG*K*c)Qo=eJTf{4 zA*rQYm8~T-!~{fEwPMO<`ueF9LKP;~X91hkGRX}U9hs3ObK@1YY+)+LilfK61MjxCS7}Q*667Qba?L<%F zcTaaXaFydB2L32;TO6q<-a*LPvN?7_hG=9NBpxG=gvAv02!VQ+5V7!<`zeeUSgO8k zF}jF$!TX7j#qMI*2%l(QmE70)F{e%DY*A|5|%&gv?ZmWUSOqsmbz6n40NX9x>)B@VYt&ggXOxV ztCL8ga^ux-2H9)cgqWbexz0$pYo6%VNTtAf@{rY%b{+ax?R#I-B5$Jhjv;L-YqSI_ zJBqdE(Gcb6LI<+Q%?cK|d>$F>RQGwBmS z6huK})6@KJ;DkY>tG@u(HT{$p?18D6wE6O@8}hEie+23TrPkXDT*YsMz8YeQ)b#e= z(ZxyT@`A=*d!TOGjb+>{n}1P?7?!Po{sq4?(&6B)%|188Ft z{sig?Cw^1+T7%mxyNp5=IicfF{I{JI-LNyv9fvplfpmY3mXEy#lp3A)CiP(U zw*C|CStCJ=%Cf;iM)-Q!NM*tQe02dsc;Akl?Z>w!O zb&-sP-wuXKc`3o|H4Go!C1x|IM=8oOP5i% zV(ZG1gp9D`p3A18egXCHRZ!_#T5!Qx zHyeF>dnZZvtE4CuX((j!6 z+)4N@5U}-f(sjbe1Yd;OnoAmjJJ|yyS77Tu|Dr^3=qgT402u)TWX1A-k<~wa6gdES zu(6|nleyJ@QE_@j*8HJGLZ&^-{itA+&;CMT?4e0eP$UInIRvwGM_`#P%ZHcaLxsa% z_w(iKbHf6b4N`^NMalP0ODdPIG@se8q2L5u-`=|)eOev)8{+P6-2cwJ ze(pMumZ^B=A7*nptEY)bOql-e$DSDwLj>Zz5)HaT_;URI7fD2y>a6YqB=En~v;NeY z|5VTVZzK|QUlg)_hB4(9N+3f*LZTGhN9}QOJhziq#WQnbg28tS5=sFUY+Yp&ld2 z{F6muGu=7AaYcDAai?e}XE55ODd78M$_hmkNG=g<x3W*Tv}D{5pWd-lzaBWj%G`FLo$2N#@gyiAKU?N2!8YcE_J8y|R4^{Ma6 z!svlH(L6msuYUfr|6b6l*7ugz{0ang0r!8cNc>Z8zB||g%+J5N{8V2ZuoqAPNswQO z`wfX!25k(G;_(P$w}ON}*T}$exN7r-l1dLS5=8qnbU4z>RWC0`zi3F{=kkkdLIv{A zqN9l6+YGS}j3k%`rGCVuehll*rA{VfdAN{{Mdd`9v>#=)9eD!&vK(CAsy;v7S$~2& z|N1%EavPCu?>I-r={_QPa%VEiVrso%ujob#-*zW5qeuY3p1@N@cT6eSWU6T1#>f`4 zk@J*01P5uRepb$pRNb;!7L5rJBT7DdlJT<=HXm9pxHfhDrY_KtmFuJ6r>zs>!xQRc_hW)I`Ub!FC&Ui-9jsxPSAA6Dg(A) z_av>XQ8~NRX3<0e{~u-F7-Z?vtlPHjp0;gI+qP}nc2C=O_q45P+qP|M+PJ+x-1F@n zXP*;c&Y|f+g)zBn{iyr#G!OWl} z5T5k<#H-HaZk)%bzNG7hU=+ZT3-Cc5wx?n2jUT|s;t~1LwV!#$rr|s!EaRvVmY)oy znWfPhOA(^0*2G)JYao>HLj)UxwBkmO=iHbi=dLk66RW>^rMI zXJuxh-Zy;2X{%Pj3WhgIyXFMS{Et`L60=)XCA<}<`r@CvmQNm$E@3*%*SO8fFfVPP z%4W;G+##S=j2EDNH>uK%H~k=ct4a=|j(d}l;s>VI@h7dJtmb!X#03Js9l2zr<*EV( zjz+84^jnm=^G#{xhL4c3!M194I`+9jLe-43bD@%@hKjI4wF}gmOwHs@oa)Ygx>^q{ z9kT5vy*Eb4Wa@=ENkfTH@2tCz720J*9q!I=cv4PoYcgaGsso1k*)-6= zR-mAOHdJrnm8C95?vT@~^+or~0m(z2-Q9r^t!6ykifaH1gr~AkeWR6&`ITgz(q&8( zKjOqP>Iug>)<&JnawCkkWr8NtsDe7xpwNCF0#p_kKN)4h^jy$5RzK;tj&8>g0cBQ^ z-tN%kHDedzoZ?}ryK8e6a+A~Ns`hp@8+Q@0?MYd@jG27x&Ds;q@pCuSYLD4R2#t9v z{*v8OTrEVJ(5Nm{l8i8!D$&{~*X)Lh6iB#xQUm*8LS>wH{o^sVw^{D4xk0<}#TsNn*GQQ*38?&0$x0C1@RfJNw$FI&x6@jNK@Mcuv7LK}5Vz&3 zNEIWSHG9HKgK>?c=@45H7wKH!1bL3Ji|6g7rI#by+=fa!eeo2yOs&_iU6d%qIYu!2 zLTaOzin72pwH?6tneT%@D=1`ID3e5E_dGF5Cn@l5cWZH2ponqD;@8o9`RhfBDxM4_Y4odN`kAPaZH}EOqC9( zmR2OuRdFD#6cX?YB`FWD*JRN*rV*Y1@Sq$&zg=_h?{7^vx6o>HK-8t%@bTbRao|Hj zu#u(Ad=l(W@0xfGe(&duJ>*0fM03k5V};m~2@}xM9ROfJ|7H>7b`9Jw27^%3KwcHP zaH^-t{th!@s1&e=qajcdEbrM6;?3A?16_xToD z;2UqiEgYp(G8jI{o@bGH!M`Rp#$MM_rC&V47!}uD$5#`XaG*>+>nyeli*qyO(Wpa; z$Tbx>0x`cA4eBqi$P1Ghd77Z-vT8kyb7krYLV z)U)r$ zjzF+f5EQBMcInyoF*qO63FtlLjSp>t&ox`vIp36~X@BHD)MvO|fax5)V8<7BjQkGN z@|8?(X#VAsbhgx6_h4BCZ}-j?QSlyqre4*B4QbhR;sLz-d!7G;aH!MLL@^|7hKipaz5m(RFx&(A753d3U9elVgtjgH??4vl`Hq5TjX z+WD~M^lR1U$Or;aJ+(qvEiE&X!}H44_jS$l4=wF?-0%24C}9(;D+0YU2rsmHA23p?m%gJZU&+R)P-#{L!3}Z7XTcV5G3erdVc>S9eXdkp^t1N(ii%O3< z#X#SO&N-09Emde4tUF6lE#)-9urXL_h*0=h9>VrHNW1dJ?KsHMyeh_pBb*{a^u~Yz zc5xY^fq2ZZ6wb*qNoKHsXyAboXfvjF&nfpHnx!vPjkKFfeIq29&SY9=5M&!K4@qzW zCGEA$o3kDglUkMG<(y}t>I6yYia_-nZ2%)lKHzikykMcL6ijm&T zyf#7B9+QtHg(Ms%wGutGmD%b@8atm3a(K~FPO*Ih2%2R==%y4Yr3p6xM1Sk1##ua) zP+%r2sHUD^JLyVg9-St8n453;$Eap@qaI&GjDY?c5YY?sZ2V|E1qUMYFlMl#i|Ii8 z9hpkN*+nH2y+O%r^>tgz2s>pS7kzjY|qlX%xla+w&aK2j{N?8@VCgz$~Of!dA&W#D?k|Nrv_^5_R8B*dz;hQ zy6Y+Z21p{e@ViGWzPmRq^yP-k3yJL4UKR)vMgsE$4Lv*Ce$RbXao)RDzaMpB)z|v< zFs4P?AP-B6IikSW;ugtDua^|0N9+9m{w4Px$f z$7bRi#^PV}0gpIU%spW8EUEj7jt9p!x|fDUnTgG^7_<=zI5-b9F`Mvy0g&Tn!H9e5 z*uBmt?s&FiY#=rj*>KtW0$-f$BaT;dDw9aRdu!OVE&_iGdJ&(w2qxcvwXG?;C$l49 zRM|8sIg2fRDteKwylCZ4u1`cR8iYT?Evx?)F*?)m5pa~UrnEKM55`S1NsZe*Puy|i zn%Ju<*2P;qY~SihQYV;ZP%*k!H|(WOZO>?+UR%(bYbxX&y2vlU77RMRA_eyu?h=7` zmKi!*dQ0-xy1a4?OBpoco{oN9P>rJ4E()CFtoCh!D?3$uYC7ghJwk@c5)65I-^{v^v zc??1VvpE^DfiMqYc)o(g8w>HO&%9*>LYn>k*{Mc#- zmf@!DV7>#-fI?L+IYnuGWWM4|x2o#k%uG~k#3}CHZ+6-2Zxm#uKZ%2Ic6H`SWZ4R4 zJcr*SS4c8Hb<22=Ic@bJ-5(7#Sn}X4VUhJ=cc-8ySdEf4@ zbY1ah*9nT4ODWX@vY>Y0k`E-kidwKMV@2STKw)Mr!d5bi2QXKE+M$@n9e#4iY-LC& zb%HM=c6+_qdLTdX*Vgaw{W;|mK=k`cDggjYzce1`{^wf3KZD7?i!1+1`c$-4zbMZ) zQXoO%#feaA<>X%crFivf1|%SZ2|<5=L4oGwDu<3(V?Z!{0Ul3fchH|^!CRAOgW+kt zc6u7$AU_aQQ#>xS2tcsSZW$d9eKI?yc#pEVeBbWQYyoWYhGUl<9E3MmDgsWhrnonj zo9^?Inxh2dbz`rF*7p}_UHkN4I?$={b*Vh6^gSFygnyuhjG5xz+hVkV2_{UqSFu}b z;sI+Kn_<)r;~5W|sn-h7VYuk%UTcj_n%1#C-qVa7@@AT%vN!XLy~^tnJ1V57o%F{? zh%gHy2nY!S_ez%pjw0MH(nK&MRdNo)Sl30-OitgjV(!GsVS1G14OioVG0o`B z!Q5~^lH#m6W(oMW?Gg7NS0ZuE+5hT1ZwX!x+H2t$W97~kZ|90u+ydDW(gV`z9$x@b zly;)5%HU>T8*lvyDI~ z-7QB8;AgQU=1TulHw)7nP$v!QC_Q7&F-?& zLvG_Zm!ZaX&Mn@Vzp#I{@x%KObB0yJPMsN=FjrftpX|MdZpV}I(ttfeK2rXZv9Q?@ zs+^GC89n8wGJj~}){x%LCKGi}iW+i*Vh52Z1$tG=dZpm$=XEf7M(F-P{rCjv$NB9KHq1f8RcraekfYeWri4AB z6e;k%eFH?@FIGm9*~5!x`fU23rKnwM-yLxmCAab?(g;*9Dvc%_UQcHHN^6KpWv|ey zfmVFVEuEx9NJD91Y+i&>xgog|xtFvIBm(NiT)PF5yj{#&!kjZ8r$~d<%)*Lj$bq=w`6*QAMDGrlrDgzps=e)LW0t16EBI#vn@K=ba%eVLYtxPLLzj zujwlHTJ=fa$Hsv5eyABh6{3w)WQlMg^eFF62OlxdLOg&~>aXWM>zDz$;HMf@HV{8b z_LP3e0T5@h4#%C{OA+8&IRmX`m2S;6hBnPZ9;G?m0sw=z+$p%bhj=lSzG8+HvS$_1 za~A1UM0(MU6waK21jokjqt?LD&jbKnyOSevXTM<*iDF0>!Q1Qhm(?vf<3i!&1! zgc;)GfEx%Cqi3nWBHV)Dfm{yBlbNOqNsz+Rd!M#UgA_^Tz(KT z{tj@yWibh}w}OXHfI>xCxeHY@87_vqNz{i2Hkzi}LmW>tdI9iiy27~d?#x}ZE8%g9 z6sxP|aq^4G`FOum7T@9r!U&}_ghmX86PL^baWzEd*{ue3mFrHP*XyKieh-^<40G8a zu}qDi5Ns0}9^$!WkiZ)%G2I-3IbjMFPlHDt#dZp+bvU!V9p9F4KmGg*SD{eQsu|{2 zNp=X3XeXmLi#_sIMKEvEu44EXi}tOMg=w?H)*D1w|&CIsHv`<`;M|6>P(I7|B;7%L<4NSsp{L>E2D%FAS+n&u>h^dT$ z%lV5zZSHZ>-C0qsy}o_tj6q|sUWYKZMG7gybCN)jE4NMWP&7QeG$@@fLz)2H)7IX= zXq&j9$}yO^kc-r$oSD0lp8yvY&K^xy7ez7F_O;+tWu7PBTK#f1vse^@{CXk%m zfJ^{xsgpYJLIQll=2!?%&tXJA?P`1*Qe%7^e2-6Q*~ecLhho@al?K03o8qswXtw_? z8d=*}8UI~^WBDb-f#D+)kA%hg&3`sIS%Pj^E0-cz!dfEH{|GbO}mlokJ^`JIoe?5M$9J%L%49V275k~vAXui49NH8$^T zxoxs6kA2=v;>>ScqIk!V-GnJn`U(U;TJY5*SNsJsB=4Kiljs(5UP%2Rvz%-)KA-^B zT%bO&O@g60$H8Vb(TSHuY_AqkJB=cE-bG0!s0eksbJr6H7V>^Zd>Ndh@5r5m!^7fe z;wHwA+@3KL297chIT8#IIF!9~3*%i1YZ|({J96!nPEfN-2Pg$c?^HP^xXUqg!B55# zw=EK1kjNq`^+TUgO_I%8gWF@W;a;kjxiZqEgf+&xU&32vA;=V^{4l-^)PaPvzZ%6& zs)v@F9B6f9TB-450B=@Caan2N+XW3(xt`TSydQj)Y7M+L?DCJ$gEY-V$w{#l$ z@C$-_mR$7rL{mZ9W-!6>cZF+uu>M~}jpa?rWI8y;*NQSJIGDuurJpRNlEeL17}2lf zw)3lb&gJem?0u|rYBs?NNyLXE&Xmt5dKSP;R85zJD2m^rgWv-(@)3%htFZQDlqoUz zh1?thR!xBsbKm3}Y3N%Tyc7F14){CLbT20^w?m#nBr66>0&Y)%@S|jB#UNBBKnxe7 zXD16eQ|RkC>h+8YFB8~_NH>LePQ^MB^|aCS6nao5pQpoqVsKu89}c*uBcVf!c$nn+ z>gD>1pjOs+m<$BZ{Je>TN58JXuql%!dsK?A6i!|~DNfH*2CXNVWkx+iQ|joxBQ(l` zKKp{9MgQon|CN;KX*#Q%(6@sVK{ahBF4rkle^e&C!CO^K=jbU`cV*|q%tVPc2<1|x zmq4ppe=B35zA7CJt1EezS(z4sPP*`@VWFdy7ZDq>yJSu2Dl4}s>%PpZMo!;QZ5>~X z@@}faxUN1zZ?1&2-a1%}J~bv@Y9c|s&W{-JMd$-hw{0A9VVNJFZk^n#%F{HOvb1>G z=*Bd7Rfz7@@6x%HUsbPIkl8XAApe0WKxHPF^9;+ttx9d$dfVXbXR|>cP zS?ty!z9XHANqecrRC%gcR#aNgnS%m9>KZZX&=8w-kX*l;Q$x}8b0PEYlFBp*YKBc8 zt%4ap&lA0^l#1uxTqKLG6HM$jPAg{O{w;NLa<(etBcnIYW{NQJy4malkH*z}Bv|wQ zoZ7koRTF@sQJ*R`u}PmR>m_Jk#NC1m(~Rg>*27wD9|Iz2!Vz0=m*7|yV~v7_lOL#9 zmext`k&F}j=$zB4@MmRVJC_6etM(I8#&Q-3b#uQ3RTf2pl`sN94eIXh{P|*#UZ<2 zK|RhkzL$CeA5RD-yca|*a`V0C7l=Xj2vDh~-;O^Pl!;9Y6Ko9&woodHEJHX|245h1 z6q)uzeo7>UuRJ<-gE>3IkFumF7$XLKtA$^;8UP9{jR&V46a zPu1zy^mmPT%H8h^B}ToGcjjuWw)n~5;X^8G{qmO!V21u`4W6$=h4c$~^S@kbDw_XS zX!vuwlBH~|iY<)dLn;nw#g>bpQv{_fq2q@NHH)M{@|}ehlsGX$*?t8^|ICEVw4VQ! z=?&3GH3k-s=OUBjnZDFcPUopotzSbh z`4SvQw5Jmk7|*eGyuwI^xBJadZ_t{9PO)4lklH%RQf06{>T}QSu0Kd!{b~~2ZAD=k z(GD5^WSJy!Rdy1PN9b`58IeSaAsn1enmA&`yR@yYEivF-D9qpfNbB!pk?|`)6ZL8jSbmrxq-JLsW=_>%0HN}9$cv~=a78*(yxM!) z+^Mc0MJ3B&pmas}$0MEtRlE?ziD-h}1yK!U4(3#Ug7pFY z2p#?C@q`Dq!Thwsu58B;lqnU}JKxjk?r^{;JnP_Cc(zRKTHIHl`bw?YqMhR80j{TulopU@dmVS_?Z^7 z^+eOkgnf0C-n1DBhx>>=LKG$oXxtQ0CQQl7K(Ys{Ghg3>mNLyfI)^vJjc~;V4kmlS z*s@p|#nD5xH9qjd5>&QkD7PJtR?;xbjnc%qsP}@9C(Z?QEC*OR=@V`Xde|G4%Z=LO zJG$nmywL)M14A8-V6%(!(mXtMClOkid$xvSfeP=oO>Q_U_vjT-2hw?xh;b=qQh=f( z?1$eV#-Mq!$T5C20kH^`xHhrtXrox$kP}w1tt=%EDu;ji3-DFv_pPf!DE~RmLwurW zpYIaD7$6C=2q7nn1S1=_iwGRYWbUbxqSs#{t-uM7)kPmdTeh%z3#wqu`u>0&byMiOswBApEkE0bba-_BdA>#Kl4V29gsWi z(WSblsa)7H^>b^f;FhBo%)v~8Hp~LLW&$yp`E2P98aa=#jSml%jp6iN0T>U@)i=CtKR?r zdAk09>{wDq~w$4uGHl|8{{LDYgE!L5LC@!M}PyJ@| zVcjLEndx8579$3!t!XPeJ}z5?r346(YVo-1mB(^zOWb2M}z4*ciWb+)=|m zdD;fmZM=>?;6R@%qG|8MS*j)dCct%o4c(Vgkb0#+;vK-4cSi)5FKD(uTHVM^C7XJ0 zvb8hXmK*(nV9pe`!c0i}HgcSmYFCUliPs=s@R2+nFH-yZM)UZBE#PPjO}4Nx-qUq%3MLm(|!`9&!72X2=8>y!Vcm*?M8py+Du zWN0R2>|$Obq)u*fMg@nE%A;c~dJT}Chx*al` zzQ}kl5|;^@Zma?nO53CpZu@oM6N?eC0W+4)YhL8hCQC>j-S|uX=ZDAC^OmEGt?$Rn z3vf60B4)DX?+%gG1)4Rx-`;eUUCp!E<=9tPC(;-Fw~>9Ycgu|9Gwo-KvaHlg%-rRd zVtO#u5uz`(*-g$z-?Z)08?9=&>c=%g@~Y<~1;Pks;#m5KFi1Zfks*Ha{w)o}mWK^UcSJ8%&&So6~Ks!cT1y1|SM zlV((AiH*7x8%F4djf6BGuD^tvkjIzSdQTzQCW<0c%f?WshtM}4u-x7-B`2j5G0(l^ z0LNH**{0EI)ogPXC32|yk!2bvf!%`(s=saw!Qm05A@-If!ZfB4eNf2&^Hy*=p(H#Y z80nD1aC-wslU|j{V#P<1Dy3{h4i#l76&!%a+ak)Sgld63%jlte-=wc2k`vL%N<9)* z8rG;UETSdc4y&YM*3l_SG8B<)Xv1RJR;;<`YCR*gF?|tnsge1fB0s@t=Tv<%Tc5v> zQKjEm^Ayl}!d^@jV#4a+xQ|=hr7;S7qXDR}u%x5=>J{~jb%cd~7#hGR7`Ds#(sP}7 z3`o(Hhz7>Hw+ITxhsaPd!$Y_@NbUpD{Qe{i(yvK^nEDpri4Jl71du(WZC$<1`zybX zpt}nIs8=73AH*FzL6PVPgRdi=Rv(B*b=HxP6ckgu@J)bMf#~h!8rI*!fYB|wlt~IY z6%sNPl^z|f=9?Y^p`LoTp?G(hA6cEB758lx{c>-E3Tz{NxpE&3wb_Cg^q7XSg}!q6 zD2-7g6HMku8VVnGH+xgba;~lof_ok!H#%Zuwy}_-VAo&n@f2ymf5Ls$5+J`^;eXi) z{?iTqweIC=W%}q5ylsFf2oie-qlH@a!u?60OF&B%5Rd>vY)CmuBzM29Sr1e*TmyQc z^osXSgXVd(9JP5qzD??G;pYHM+I8D0sQlW|7$%(CU2(V}{k1^o$>J4XRXAZ{s4*Jp zMIX|mMGZ<9o{5wL)*85b<=Q2pZTfy_@r=V!IHdMIwJABY;s(^gdxCGjwZZ0 z$-pf%f`9tR(lpO5Z{$va+Q_V+vg%4plk`^hYiph-&zd`v@t*ScYY@70Xv}0dfu|@X zS(b)=c#qJC$&Z1I$pzMc294v$D&rmMAmk#k7$|)h%tuXJw-VVU!)1N|_I2UqZM>JN zxgH(K9ka7?C8CoE{M$7M;D4 z85fZP3#VaX64#b40aF+oZA%Iu8XM^?PDdITZ9`4c(MZTRkBy5P8ye{u=;;FhilB*r zv4XiE{O|`BV`QiS`b$fjm~Y=y)7QY>zU*%lGyXIUd8L-6K(O?jrKOP558Wpb3K%xcd7Bih?}>1?Ay0*$D|Yx}V?IoEBIY2rUmsrCI+2Y!z26##9GC_5F$V}AT#nFKE=!I4OiL>W3AscSjT0f&)6@S??LZrT4MS| zRQ(fsQsuF^(#M~nY3%rgigC64>~F!my7G`i!Ei)Pi*9|i2df8zs1$TVs40pjlI$lr zIvlt{=9xO>r+O6_v{CpPitJfGPyFmq_|uwdvnR1Rz)wXTsdQDXnRoKGf;yK@9j=e^ zYbRLf@@>7dDLj$$Ns~{FwNxcyq879Tpm7meZxAow^pQ2ck8ir#7?RmQwAnYsdi`ZX z`koCLnEAD={%EiMUpAzF_>Hi&xs%hsyN-h=dEf%RqkwF?2UHjsM5Z8Mv)#a@%jxH% zyH!yEK9Ai_x2d}Uz#9k6j+&U1(cOJ;>jE^TBB~gBn>X%N&_`G2{~BpvXKhv)`kCiy zOlpt?gowtmrH-yu#L02A7#1KJ_JL@>0Hr!e83{Rt@4^%o@T+ z`1sqR>JJaJN+c1t@d=k4-Y<+ium2$HsDZ7W|=}3Xti2H;L$! z$(;751~8;|rG5zz6=;4AU95%C0u=eILd2l@)kU`vUW<#FU0=jAUI%TE*5eFQp@B?Ra{gSzsl4n+x$B(7PE7qRj}QqJCx1TMi4X-2*~Y_} z2KS1RhRM4$%fVEOW96Xj-j|LCc`-?nH!y$Z=)qqsp5Oly%F95moAa&P42(+0oILUL z_nacN+iico$lSSVI?Q57{c-Z1+bqfj?p&0#Y-k~`aS?>&q7#J$A;ODcWRwJ0fzAol zWV5J=3OWZv$#R6$v^zTc!chJ7ZT7BMrg(;{^LG&r-5Q5WGDs7*rW#J z$GA;Lhi`S(<L99#dSD)p?SiNea0wr>WIVjJd72hj!d6Rls$#9ht)}u6JnNw%Ey-D!*I}3W-t8;0t&Zi62gXAr= zJI`Kbi}LseH;6tDAJNqHd%BsEB3oxE3_Xxuc3b>Nh*x$12O0W_AUieovcFI|?e)33 zb$m?={MWSnzijGqwys}Ll7Al+Vx%L!mO`*@npvbTkq1P=1hX3i0aY*}`sHX7Y-L)5 z(_^Ho;|?Hq;&KE;eY&*w_2yn+>*gdnfT9-y>6Xb^kg>M-7#H1BNpLeYybQ`1IQn5> z#VYByUc0F-YRW1}hOP6Ydq_fohn)P9tRsyw5b56In1?%k;=e}hE+p8FpB_nwrz38HVU3z*meANrnP^2x7R6B( zh!$pk(`6zSumae)xdu3D&ou#@qAz7F`!3@8BD&htK+uaHm~j@xF2Xp z&`FULmb|0NaJsCBT@s{XJvSR+gyx`no)?0C=3SI<4=3uHVO8PH4uVLR#U@yjWYTks z7+XlAQjj`=&Bwdf8HxTZdDeM(P*lX2avX&l=Wn;a5W;Ff4t8u-gxQM!uNP<<^%X5!o17z z@?a7MzDPZo~rSib@uITRWW6fP{NLEe*|-cdIJk(Ebmd2YA72Hk!GI@@@6oY{KKIBY-C zPM<%`?yovF2Ar7tEDT0&JF00@<@;?wP#sZC|27V+m~j_fW0kzCfLTdT#41#PsLUXa-O1b5-{iG)D zxu(<#n&^=fYCGlau6kG!a+E5Rim_w_aSzPgVZC0|eGw}}^>=p&$iCk!`U!hZqm*H> zu>z#L#HT7C42mw=0BH3E%d%QZ1J3{UM_79rE@D8 zTris$6Hf;Ijy_m@SzQH-OLV}WbI0FPE}0YrV6mV&BgOTy7WCGZu2H17gKHpz!InP? zM*od@v%oqJNf(jY=oI`reZ|p02epEyD3jl=oJ?iIHWzg8L&kAdv* z5EGT;VeVI)x+F91LG_O=!M7PJALauDt-_ex9EIhA+05p+uJIh*a3}ZdRXRGx2vhNM>vlZl$tu2=$2Z7cE z4|`;YSdEBzo~ja}TTj!a3De4|JL)6_`2^e{48B?V!}jRIB967hCCe$`a+m2($K#AA z&Z~lkGUN2h5O7dGajHuN-1cC8&uVHjXAfv0FA*{suv$jhZ_`y8pO+5d$6~ecKG(>N z>)8@ihz&>4;CQ9AzA!V$2Jag`%GK9E2}`iJq3_cfduiEv6SuDNfEl{8M9O&m~C((WdWC|4~f29w8r3dyB|JL9O4)t#Nj5*f0G+$ ztw1ea@BfE53e)ThrKI8?;Fq21P;Y{Y3WPbKwRV#krOWG zGwCsWI~=HM#|9_dGKKp3#kCc`e{;i1yT3>C7O#pqCsNPLRdM*seWv&NNEX=W_c|$+ z8Y2sMa*Wf@3tn>L{zeuwiK6u4pG9ud!_23|dS}hdS&;c5TYLH6KY92~+$prUopl^_ zbNWqpm;<@B>pQZPoXHB^i(`PHpnlS2)}pHu1Seuxys*myWD1&__eN zKS3;=JT40LBm5xl&0EfvW5mJ=!}Q)IaFB3vfx*Y5kAE2Ec5k(Yhh4e)QU4PWNOSul z3T{yF&@TSH_s;FNL`W3euV-`Zo0hml zP7w(j(+{PvE-&)k9|2R?UeGnl%dKxq@^(pCI9}sFO<)ap(Q4j<_?mGj4vlRHpejcs zaADoqJvKj0TO8O`g+d>kNK_jc(K&pcX)=-$q!vwagT?k=EFt ztQF;7Vhx3Gy4HH4z*Iz(iQzsA$}UBPae^p*Ok%)S4RRE_1V@q72yvO4L*J&Ix2t z#tNR^E5sW48d_6ryaI~?tACz+i|oPM5Ecb?=t{}ysWlGn0G4(~Z~iBT(uxLfuy;odq#-^+QYFLCe~7 zxYorw@)gjPdI8i9Cf2E@<-EguWrr!Kg)gkcD+gyc6iodl47I7=0lV0u@JLhNzGkH3 zE~60Le6@TD3JOX$mCZL7IU+gZiB};A#tA~rA}__)xvO;Fcrf#&_eJg@=bXLPm@3Vx zSF5EtBPj{f^%q=5xB3}Ccctr7xWg0bcWgH@a8I(E zY;gmAzJfwulklo&d+h~%0&lx~#;g)4GRnE=QOU5afohKWuy8lbE`5-km0+_GA7ire zxC2<7jt+L24dm&Ob|`}`yeT^>w`ARlsRCrW8arKLNm+&>x*P06<}Tz(DH}Lf`JEn3 zJe&n*T($$!H;(pQAQRKuD>;(1)^|myc`9h9afuV^fMF>hV=E}xHe9vVe?Lt|iG>4m zsvI84KYKZnS1sMbxQcU1s|{{5t~r}-vsZ)Jj7!{y-?1dsf+SNMCT(xHGVt2AtOuX!EeSs2Xtp^vU#-qjzlBUrAn-a1A)4HFnw z8aO)dVd3oeUr(d|sAy%-P}$Fcrex31-UCg9?>LSD9XEei#AQAZlv?CIg%MFjU%m4JGWPL z>xMfGNG}T!)w+S^RM;W*x1m=YcO*;mrcLQIul~yQv+NW!ynzS+AonGe@IP0W|B*)g zyGSVTe+6n9HK4t;l+!+Q(zs%zY-Xn!i_GI^!4u7AO z7!xL?UcQ66P@wXw$m@wKfA?20FG-~F2Qp|Y=hsp*c3v8aD6eWgeNo$B(Lg)?nEJ)W zmJq~!+M4*w@$z}{G3)Mq>hpEd^)RKn^X^R&04)N|zwW_^8CM3g){WTsd?Y9;T8%w{ zk??hP$K-h-_KPA_s9(#vP#Qnzdyn)WAQ285lJ(A+rY$28CjL55UfcvTOx<3fsNOC8 z+`(*F_jynnWb+VGv2hVgcH}v9b@J2%GYz;72{!K&s7WNpVyK@V=@tmL1g+dWd;Tht z|94U}wk2Z5+HrmV@=%y0M#YidiAj1&_mn}T+HnU!SF=eK+!TES04!4b)A3C;4LzMb z5N4w{CK-4ZX6DFC zam+(7xd?Zl&W5zOr+B42`wKr1Zy+dQ1Zd)8iKV4Q+k^D!OnaNc{unq`t#IoV&x%-Pihn7DF1l5| zPS3`u{0?|VO`@rE=7bsfxnYJ%j%Qu(olDkQq^YghQ4$O#OjMsFv=P_@Aa(BT8cH~l zSQ;YvGk(NPo6@~zVH?TT;8-NGzo{c+JPn%;ux)09G67BSTl9n0xnRJMAhk81xrp*& zVGZ!B;}^KuU+b_EuoP{T;!Xi9OTo(z#gi3dYc?4(8FRw zR4s6=PzL8u<8>XLsytpVr9rvzNKwtQBf63*n_p=hPL7|5E+(5NfS!^K7y#vI=go|FJ`x&@8Qm_^u~E!FKC z@$e+~?q!Qu$}<_)62OU@kmpPYEfAYI)X`%~y*oyC`-X+$OP4~2oVi27f3Zg+H(2=- z+}R!kB!@*$@u`6GBHbp&*uW=sJl%g;Q3mUmTqolOR25ZsyxgODUc$&GVb&_0#(su zfb>SC6b|=4a_bEDsJE9Sub})$mlkjQ3VlN)8VTwrBwq5Z-qC=*)09v@L~c^7xclK( z=!T^#Hxf;&kNkoYzajJ(85CezuC1j@QHac67$+{Dh`JldO))2sIe@h^OYo2z%*TIuUDg`w$Qnso@HgeDOrls@U zhd>VB0_QHi!6?$X6nlaWc(|uJGqS#>xGev`1h=d9+q*3I?C7&{Qc~USV~|VP-IePT zUFpkK;X-yx&u}J7G%AC5RFaYsDVzJ+6OsJ4Z>QeKk_rVAvGTcl(o$0cpl|T9I%L01 zVG-2$2BRa(-I_~&vu?&w{~9(VO>Rmlh9-~=dzIC=EmONB9!U$Us{B1)e9;(8+~{BjG&fq&ix7IKs75;Lobhd zDkYtrJ`D!ukk%FJG?pwhSrJyI0E?OvxQpoUGF=ojqQ=UajAazb`A}uj>o`n`)d1wR z)%&$ZYA#w^X(z|y%*My|ZN26ST@5=gETM!Zp_Bss9{#07XE$L9VaBqG+-~V1{oCqL zqKR;=B6MaPB|oBWQ;JCKc}Uj7VF!8ZDYDP$A)i3xCdpt;TQLX8g)=lZE zVwNfOg|Rp}`9TkhkLmeWdX60YXikq3#TRe;x_YsxaoS{P#uS2AYM{B4%G!Zim^lu{ zpqFRW!6<4~LBlyFHICYeQTY<%PmLeP#d0CQ5@;c!8vLM?p&Z^|&^cIhCs4fQas%RFQo^z3CwawU<>F1BXL?b(m$X1unavpY^(|aE5wg zA0yod@k3od z)U?M=<4Z960R4z(KMmVApQPo$sI9Q>$K9!8%33 zv-jEWw)5=LrGWP1WuCdkT!EDA!Qrsm&!AgE$4>S{*ZUcdRNezkD=;z+W*V#GGqPIk zh_qY*FJ!#-^8?+o8%`W}k=!96oz2wo-_YH9^(uH6QO@QAAh`ps-XXD2zm4MnCGX5X zMtQJtiY)67#v4%l@b+*q_Ssz zEfc$iPi9@0?8A0yZm?7^=2Q+w=FGm$VsttJH*|ZxW@2+ii*N*ZWARlGUIrg{b^93h ztvjB8fktgpyD|TFp$MO~R<;JdcSZ?#aoMV6K=s_9kw)a@5oWPHQoaKQCnI`Ou4gnT{ivHm zd?;*zsHUOg2zKG#>>|Ax4<*{Xzriv9}6w{!m} zwdtyzjh9f2c1iz2agAzBhWlM^_eX5?l)o5iB&~J;5wxhAYF1nPHN1i&`rfXs<}hR4|KYkZ&z7zWBi7^`n0Bu`RF0 zzr7Gh5kGvmDcz6|K7d9}wmeu3E73N{D_t^n2$Dns{HXdgy)TLGti@gQY5#yFik3gV z8%O=jmE}uLUM1Zz{Gm4%o?EjjDx_!jcPsa~=M!y>>`A%C-Bxa(-U4uLgj*Maqfk=W z?IohML1cDomzEW29EV!3U;H6c(L}a8RnX>)Ja!3jPzmZjWZQ+>5|rQ-r((=nRf^Bb zQew!TIM+lZaom08!g89$E;}B~H+%WftEd}e(g}8RAKlc+*&iP`{-0-TKsCAPLm1Ni zlZw=Z1RQ**9{CXX!UeaVBJZ^0`AtG6|4GC|I$bT{3n5kAjrycYMQ^f3^<5q73v^mZ zD{6Het>~|$L=z9QN9+7+dYqg3v~I#zUw=k|8u6AI!IoKKW@|*efgp6K zqB^cXe0&s+7CF!v8pl-sn@bXfoF*?`N7^_iWaUN8vbk-^+%Datk5@~@VJbB~4eh}^ zzL8BjbOSCD+J5rartwHsNA>BLD{Sb622=V|hn7;86{Hp?s#3fm3& zn+0Q~oHCXMBx}d&$W-eOR4X}a$FRsw2h+}PghsMSm%?4_b)d_Z;RG8MJJe_dLcx8j zkfV}Kt^20xE@?8Fu!4mggT6?#A#oL7gk{$-eS;F#M)FOkU5z*x>Qm7HJe~BP3|*b*uc=|Hv^FYj%!hqA7rkj zQs4D0#}n({|KKI1Q|fY~2lQ7E0J_S=|F-7*k6e+WiJ1jpo{tCdKfY4}Q0M^|dQ7b? zjGRT>jZEzSyScqkPDbhz1A@=V@KV*HWh0L}GH7=XSd6M?4JG8Dkd~+1ymQorsZ?C} zJGGoY#Mf_pk{K2L;gJ3u6CJ5+basaacPE%V1e&m97Ob_gJCumQaykQMl#am>*w~+a zPRG?X%r2U*E$QR)(oZb%0=e3e9S@a@sPtj6mtT{_pq3pLvaO00pMvNZnY-Rxw~H~G zKFoCm_~E+kdJu4^Dz!s$TjyUkjJG4_9K76=g-{JbkOkxE8qNB!fAbVGu~A z&VTpEQ1DqRbDl8(n;{F*f9ibsH>v!y`JqzH$_;rK(^nO#f+Rv8TiPG$%O_c4qkMi? z;ByexuCS5s>fq1?evJ)D%i`^0mL^{cW#$5P=e*`#I+ z(d&1h7$VOkh|X5jl*ysfOdB+4GUg_X9|!g$@!XVKP#dU`Hb{(7U>7XhLNW#!Jzq;q zWD6r(n4CGP%y9Y{RVq|x?yp`Vhbe4KLu{yUF_mjrDUBvLL@Bw8OgvE|sdY~xRQU&r zXx2}nd<9GTe18!D&W4`b3QAF8==8Q3VVlxfh~E z)YLbP!5J0g{-i2F^+)lH65U|TPfD7xIb~Kk5%y3m-g?g)tufOwW zvG8%pHo%%90K3pXPQb^$%z?+_F6h~l#=b=lUrJ?YSTr2B+l)>iQmtW9w`1@7;H-G) z3!*9TVIW5Z9x5S0g4PU}Erj}k&3QJ=YHcUX51+e!$T_e#VY^b&O$3M#}2VZ0N{xnA&*NlLZObv}Hyr7&HJDm?AviC;!6 zVJl_y;|v{=O-Cp-0-b9dzo47BsGKtxBZbcRDKHH~{5Yo{mFiTIq9~*OD4ke-3zJM( zhLAq6mE;tbeL`xb31gc?Ut2(95Nf!uv^K0SWItg8Vv=r{+p5wMgjFLsUN3_Kk{qSE zeMMgxzL8-q{&2Ffl|re!h1^rlt_9y~P+%xUXkx~u8m%nlC1;}Y&k`yn)JLgpDNH=5 z#nO|aB7ZS|7t(PKZlbsYCSUGvjs9Ub5pi*u3SiY$;9;}$^}Yilg>wF8XSj4=^FX98 zXydYslr+4RAxf%@5_N+sOvurv^`4T0%-HKE?+#f~U)t)ZKc)AI(7_g<+-5M-r7e*# zeK7zBo#Hp9Ux|fu0kf7|him*4jY?0$RapoUmjHfAYh48tof4gelA5hhBT%DJPjWVQ zzr#`U&@jl9+!uFQ>Ky)=DzjHgfT$H-Zl01nb^1y>&S9iWdE2%``!Re z4ULC^w8%zBs^pPcjv}kxX44s3N{XtWMp8Pv|H!8$9KEDxB9w!0SmOJX5M=O_iiL7h zu%c&LaOo>j*LME(IQK@Ph>EsSjitT$_I@b79wp9ZGOD$vfY@L;ueXZwiTNdO+`Wsy z8k=zNHLW7-yU0p^y-JHp@xr7I_}4TmEarJ;s_}~+#v?5|Tvinw9aU|q6G~t4A40=o zd9f?xcFo6%z}Ig^uLBYIJH;e-l*5$1Q(4FA3TJV)_$EwcC?1VbChhxl4x1r*+iJed z=;5!+(D$@TD%QTe(dT0(cS$V)QrqyPw-hwVhHoFL&fAX7wxv=2ZYC~r@iDE3`Xz@J zYsxe#?qw{ugGz%TicTWl%Hy)*TsKAV9^A_HWLnF5-tJoGmF4Gm>rJkOmu0O#`#VF@ShZwqYE)t>!xKaPM~L{-5QP$otE zb6@Tm`OsiDyWLvohN$SO;IRoMzYZ{`22jwXFV=hCwr=lq%a+fOW~s?v!kN)BJ6=?$ zRSTrI7>(VKPNkP0(wHOD&0KdRE}>kJ9{vJR!#gU0n*c zE)%;}s5+Ej;`Q>Hu33%3Q0EO?mdlP0puwE?TjDSn?J@0rS+Q1}M}Zdgbo*t7L-S;R z*yP@mM+bX|TC~@_hbGUaTXlZt;{1MRbQ5>i+~(;jQ%H3y1z(I^*RI0W^D!To*N@$> z7R$Fy^8Ql;`A^3^%~x0fyb~Wwdc!O&A~}z6y79x8AYBo^5QjKd9(i}#iC=xB`MwOj zL0x1RD`xh&&edllg+RSh2rjdeUcur6Ody&?##`sd3#ruHtODE8^%ui8&uZi0@ySn#DF7fo=IJZCBO{uB9B!9MUQ_ zxzy`h6JegMY0IRf2fj7yizA5Q({z`!mwsOyRgczBCmxRyS|J%l;_yN39>!;HBBY?8 zG`_?${cMl;S=@mvDvDmBagcCK{)I!>K+2JHN8S)^datg)43`^!S3EYw%bbkHN_-su zs(8)+L|2oZ4i)Cm$MV&KBPy&As~U~veTd&KA-$giDpJM}*h6)=QtO!Zs|@wFjql`U zU(oe(I!wyZa;DabXZ?AOJdu|AmDXwq$g8E(62wau~Uqh zvPHpxfUM#FQv=w4IcNWL2qsn60YlI+K5!vH`#_LT!^wBSqzN(jQRF32g>^o=Llq9{ z9>-DFq?`v&iq=#%HdZd_{v2FeyU(r81gw^lwlki!|hFxgGfXf zsgT$4)k6}P=c?k~H8gIWLe+_c)GU$ZS7`}S%rey$BOPLS7>_! z>J%B3vr9$RqYxDg%dkHylYSB^7Ib`cZYolR#7V5d_L8iH@nSlqs=5$G7D_b zSBs+*il_S#%*SVn>RF;V&Q7`1=0muI}j zhX$7|D}KgLNc)UkXfz=%HPwt83Kk_Uh3%yb*5*7jMYT##&HC z*wjVUJp;5;K3xMIlEIfqgXmWe|M-T1oN_%n+#us{gNNsP3Fo0UNhdkelIWB&!_w3% z`#I*_4i=0wpZ6$u)Zoc+1B{f25-2GqXSN{>N~h=L&(OxHRa2%3PUG`gugdg@!aNud zP>-z81E0(8ZN{5ui=3q*%Bc`6V7>O;`p2wCq_c%0BI$Av zSTvMpWD}yv#aY5@My$QVlhkLObsD~8AE2m5TUJ+@|6=ckU48DEJ>m7_AWz)k$HwE1 zyNsck?Ht(dka=j}x@1iEb)z|#pp&%1%|0L2Zcpb~${vJE+RHoTmqYb*cK4_hb-ygJ zkc_SEi=w7<&s$Hxx;H|?+THBjy1ajkxfNwtV3`tpbA=-M`;5^9;)vWOMe}27pq6*l z=FpKbSB1=Jcp_tIht9qCO*krjUJ4dnnZbL`yLW;IODsnTtb%Z`;+4aqGdo-MRG&{> zHcZ#k*JnPU)e$;u2rb&7qntSVyp{bMyK}o~WL8B|8EKlLyr`r^m>gWSu?HLl-LA61 zbYF^r^du&XF5)&I)XQry+Q){j`qxQfnHvPHu=j9wi8@u`Uv>OCPEwT-G`p#K$Mpzq zC#wedxoGP^0uE}@@*5t0IW6ged1HY@=v}0mjs;~SxiAl*_mC%Wp7@SA-bCM&x%lUd z^Ha8D{6x+n7ijd&a-M*(=2yDECGn4g`1@%tgRFrxiome9MAj}ZjTu`1*VB>SF+8MP zJg3sNz`EgH11uc$!V~cvc>w>571>iCnO<=%G9#A5Q0sWJ{%bOb^acqeDFOabIwU8e6P-bH2h**|aa91yd4z;OxM3Xnxyy=NR ztE&QAx;+trIkALX;ZlU3bXKKZc1Sv4n+V4guB+p=KrN&dzZ8)dVFevBUcii>(}#8Y ztKqi9+lLJ-B1ASZlfL&Yc$-7b=WngNi(q^W$G*07pA;Cpp`LXEVcM-Q72&1?Z3E4m z`W_kf;u;CydP|>mn{(jobC_w5&H(@Ly9IIz3bN>6neP77z0(Oo9nuTurIVGe(RP88 zxW70t$Qrx-(h}z1fyCb8`=;#_e#!ORmPpgLCrhzFy~BENCiH9AVxv~cgDi^9adK%t zwNqgFSCI1T*WbPB00I-h12{TWsG1u%~1JJ zP+o!G$sO)tB`j>XTT;_kk339|Onu+p-;sM@tm!N8FsZ<&;D~%F-_j4p4pfD!1CQ+| zz4}ypFwo>4F=J4cJCB7t2^rOTsr&mt8_$4Y7nw>?2A%2k&Ala{buS9Sbv4IB!f;y9 zgkGlu*jrCnZRWg)8crgX@Mez+c_)|*N(Zh zXJgik+oH|%v_=bhn_T@lDJfMH33##gj^$)JGlmhki642VGirr`qe>$YBgI_^T^xrq znLVX_c@w?Cwyr;oDM>6(lis=6Cb_$TNrN1yTb|rwn6fp)SpsNE2qewv6E1gB4J_XMPY=K5gV6R+Ez+S_E#6E0*-W4tAx< zo$Z`{DXqzuUSVl1L@Pj2C#XfDaY;=W&q*9)3OA*X=~>1aRtdLk5%~dZYm|E#p-$0|Eq&tmqhC&eZYtNOSdY@eJUraH#=!H;u_x~zPWE#&z_z8 zDai_nVEnl!0oTJHhpOKR5SnrTCnoJ+|49`3zv+mGt&0snPlU`J?QHCv>}>uzHkqkn z;Wn>|(CLUa8oi5QVqhnwZb5%ZYggko&YLq>We8H}YUzY}$u8krdBf-z$(Cru7Xmb6?+>S(Pr zXEufd;cHb$^|O;DY5YhbQ$mYE)bOIZEWgiei883QhNAey3?*vW&avbV{%KF62rO`> zj8;XXhlBi4hvHg@X`8b8sAT5+v67@Mdt)YP%=Vgfczj)?+H`PbX6kq-a~QFth3u>} zBaw8&2SYue%oVwyYwr_G;Nm_h!g^N?HnSI^^s+a1ca@K&IPI?F(llCO5OaRE$=(G? z<;J=+(M-%4nN2*DnMTpvFqKpyk2Q5G5z%W#&#SultD4B4D?83V$q$<7ju#%bsp~fd z9C3jwcSf+*1q*5tR5cfOhYuv14tU4iKa+h*2*}7y^dr_#s>T&_4!!W6(;Ol5)T3z~u1L6U1>azX{Kwo${Z zB`hl%FO|1Y_ss`84ykDJ5gXljg!X4fpeg1gt-G4w_q6t0(J4lC4WC<5Siwt_HsJ<*XUIth7Wa@v&S8Or=cFjOcT#x-qw3Bi~7 zvM}r^(R^U)5py>Se97bQvpfDVB-W@kWGz+f3#-Zq4pAl$?l9Duya77-=LnjY};p z!V{g=5_;|6%1bakDl52FoLs5hXea1sGa&hf4=%K+hx=oXp0yy2D=k|`cH4S`;pSi1 zzD<1*6k5+@0{U)qU2(o@It|XVzN@i@HP8)pbo1EOvdF_`ATaSxqZ4+Qo8r2?dQmk(n= z_m1Jcfi3U7`8Dr|z`MEio#r`l6BTEGKtI)gx)pnS586y2#FMP8-E7$h=Y;nbB6^cR zdzgiDdrxw>({1~Kqw?)i{m0e0FzzyZ9GGK*S;lk5!`7WxIG3MVhqn&`dv)%M8;+KS zbwKj5M6DT5Y&K+Pc>Is@?`Jh=mR;wLeCB#*E z_Z~Ti^#aoptJ%8{q2Fb)+OQZ`K^n~owaiO)yqjj!`;D8vEYWAuh_f883WjQvVqWVI z3(2NOb_b6en;d?hdns__W`2F9lfsfO&Z0J?AFBhKa9P(@}USAz!|s#7<@qg z>wh~Ye>enx8GB`qf6*#LDcL9?8KCe?_tlNpmBy-f-4bh^*-x}fUz{rU#HO)4E+JL%bP>lw8f zc{jAvZ8?6Y`I#%ey3sYs=H=-ETMO7Ig{28lx*uu;OciX_cShvsW}lvMVwM+3$*m4x z9(;qn?w|8yn5N%Kqz`y*P$oaTCS@Vu^NO8D$0QVOQl5$vZ6PlpJgB%LlnV??)(H=` zT8f@T_+`FyizRCl;XRfp)HEPs`4dJ#2I2fOX}|XMN1CFJE6Y4)x>Kd8(>rl(zE>V+u!C+uB+SAUfVHbb zB-jsmjJ#lslXi#kD0_mLC7I1K1wcq@n)>zq?k}o@u1#qT|U@+=5G2izUiL zV|T>y7kPKAc!dJ{pY$C<+Px@36Xn=wv^_h`*^E0 zpWt;Y!~N7)t?SHdfpy6}1H2EfaDWV1mkk%YeVH za?I(BUvUz;2fOT1u$Sc|Yk5RQI+Ajil-qoGe2OL) zf35lg6{He)3`0B@Pn6A&B#XaoiM2 zDBzk=pHNoz>%hd-*ghOXcO7t_8v{CMx0w2b;SqL$04Cqm;d>!UAC3{-C#^Ykch~~OUuglVr0ge(OUbUnoAO+ohZ?s zg^!_$InU_V>>T~ZTV1P&!@O+LnAYrK-+^euasRP|<9_a?u{Lsl-n?2inYrCb@cou; z_IE)t&#e5LDsx8?pX{*`j^gAa=E$V6@hM29#2|&XH0nqGl%^S2qSA_CG*XNqMnG>{ zRDqYI2$W{a5Phn}eSS@4K#mYPd)6tf4w~t4sPv0$BL-z@cu!wcR|T)|*o{b%N({|L zktd^y5SSTke<>*`%)|5b`vTgAu?LyCL07Q^%dY_OW=0u*G(1Mw#lkq#h}@cnjS54k zaa5GrK6z#v%=a7h4=Yj6PvsZSC%W-!4f0T~U{>m-hLDAf;5D+z@hs3ntpq%SdzF}` z@I)rYV$3GwF+R1G%K9y_etD6it|J&#((x~d77<(mQUgASEgN=@G#ny0gD{)lglN1F zT%vfu|8;KBs-Ex%59rAZMyGQ5J`o$O}ij?v!RW z8rb8gLXJ5kQi|)u3p$r-yR%P{wQM`#Ugc|MT zu@<3+j8)^&fDt#r3n>juLRZk@__l}Qu+byg60hF&i5quBvwrJ0Oii|U8;Fm8a5De@ zN1u3qqrc{WA;*7`-8E}AbV36H%Q3+9d%D2?7Bu|xz2bo1@NfDb71Jx(&yNuNQEM?b zU~Y8>)}b*7-l5q6iA6wJa@!SV)J8&T5|85jyZVja6M{shkV|%A(6#yW^pUzbUHt$L zM7BZ{nFZZ%VxkMuI3q*iqPiFykgDs58Q5o)Se_8|i4gYCveaMtz``DTnxhoQSy-nw z3LB!=?%FNm)Rc9H{rT&(N{b;MNejghff)>I;1%cUIA3?*&#);M7tv#!$Rb{DYtNc( zN6<~ zfRqhjR(=y){XMJ_zi|~daWZnW_#eFmQS!eT$x$-E3Lrys^2p$a1{%_8!qjX__>rR^ zqDZ$SJ$ek+ZPsXl^=`Hy9u4Huhs+KHBQr^Fx<;`e`oPRVQz3UTwwI8kx&UlF0Na z97ERT=oufkv1wd>c1riln^~~X&j|4=dEtGsE#WH#S$iR?(!xTv0_XO;pDnN~v2X=A z4}q{@I}^H0-6O;pHwsgZ`LmzBbR~6;!g6b`;p*ihgESd&*7?lt?*jBhG#*J9nwG{~ zjC9+p&N$&cr`;H(yiX&( zjlqH?e9x8)%Y}uRQSUA4rL+V;TVY)3Y3e1_1b3^kvWK^M`_$i61!nF22Z=d}={e~b zKq@c*3H|0=_&-QT%;YaRL!angNg)OVkzWms)x4-LP;IfUMm?1;mO1j~xgu^xoRt&| z6doR^UnheAyh34NGnJnn@KRF8CmyDc(7$nIAltGMNXGAm>~_*HR!Z5R+*!iUk-w!} zedz*04CdmkaXfFfystx!r*wuwAI@B7B+alP;gJ!f*6CX`KP4$;I~x?b5}NLD2{R03-m<`uCBt{{smBY8Cot4Js;5%5I(?Kw38GgcV1cAO_XY zz)jgGSVrQCFi=EdSuQRvJQlpjoRt=q;lPZ?W;pue)E|EaU&X;jEKDKdxG(GJg5zOA zdwiKqtsA&w7;k4~D0TuyGv`8hIvhD6na@3t_!a~@f@tCYVui8BH1k4KCC*O5iR{oUl?KTA;yMzkM43OdgRx~#Ke3HQ^aa} zK3g@hY{=F(yR0WovDmOoW?SO^z+rXl)1DFL@Amf}k#Y|$Q%C1HL-dm8>USc+`ZYs43Pkp<Ur$@nsz4Z)+0?TmwKm(C8MpCF7x@dw5GV>_?yRsxo%|@|8%i8?I~7DO#gt z(z@)hc)ANJoNUe5^>(49fJV+`fvMl<$UBbWWf$RCAEJA{cjxflKH&y7P{&z8__h|E zp~rWi_Ycg1qIW`u09aW9F#FBd^uJ*yApjWSZEXU`DgJZV^h}pI-qBB1kNr= z_Qlaz#20!xx_C~hl~niw<58i*+F$j>R9^&{kRW!%5h11=k$E-tzgn}mMdRB0dpjAKYjIf|c#z4Vbfo*pteNVcHR@bZ13jKPS z{qobJLg=atpP)Gr^=gvYR)+@@(Z}=K9vM)FA1?UM*hzY~)szTjR4vb+-oe}(i&!kK z2>B?5eI4MD0yokbFjYZePqW*wh2;W4z2)8FhRnwa6Lb_+yU7^VuRmK{k;$HQXn??)MLXUO5@P#g;p#Kgt)rfo;4L%`zM!Vi_RH9|qOrL|-Ecs7&ug z*9TF3@HBX+na+`*Y#*XvyV!dWL<+bYzfWX}(N@(Mh#s z4)826BqANiTy5>hq)_LOb{7}h4}8UvCgGk@ZP~^(S?9hdX6vP+RQnXwKBP{TQCEa< z)JO~d!e;tXZJq0YVWfI!CA?&Y1fMWO833jZdWz>$_)HkUB@dC)4m^I)3F0>T64?QB znX&a?y7iE&v8%cRyxI&T`GNJ*B`~B$pi1mArDt8f0z{tV$Q1K7uqP2_I`DcBcK5^^ zG?Pxs>gOLjEn1{&kPNWPHUPTyn>znL@3g=4>Yv=9|J1Hb#otUp2pJ;V6nS}$m)j8E zAkvRxL+{pUpFUV_JZ+ z+*Xf>7AddUxBI~PGVAsj7mK>urT z`-?AUHXkqBFCbfbL&(E5dD}_O{nUzRawIJbX#8JsaV;7#E@>7bW1jl30jP8yDfW$! z**{c?wVNjG8zB(e>ZXkam8_r@X1Q_bwciDG)tG}}gkVy&7$1b?IFp;3y}mp{6+{|cbc-T-+2{uW|yVc-bpx&B8_&%ZoMm+#Y(fbQy{?gkgN z@jN5UzRy2vW>{?pCfWd z#J2b89x8;OrBj@(k@&y~u~P>(`4+~OOf62oq(`huF#K1;{E-W_@uueh7;Fk9s^?J&mc0rr-iK-0Ny*``nxbiLcr0+&Qahm1pjFabfSAL z`{V)6xH^lC0KzLoZ91HDdSV0`r~m;MdfyGhSpBFJ2AQC5WrQz3Us=kr;F_OTtJ@*< z;nBkxb`N$I#t}}pC~^ZXEl~zqL6mA+JL*|~7Hyqhuf8^H>~CV=@&4$QCWo(PZ5>}@ zQ-j^b+32wQoK%-i4~X^|iEn4b*cQlOW1XR5Dj(=u{&38TpI4~!0LHNp&=^MecLoyR zg#2XnAS#MH@u`h0fhC3Vlf`kxpLK4wnE=USuhAO*ycXf<%(wnrV( zNG=M1-{>~Z%JJQ38Oj%k;J4(Gki>fL@AnXa2k5#a3y=^APe#elX`I1|A~D}7E&DfX zZJOG1D4$iL9rW;f=wX@de{ZdD=udtQZqA(xRMajzG|0mcRC$qR0M%wS@+HPhptxnz zz99GM*-m`OR+p;{=89Pe9kI(J*qT$zS|D@@O!G^Q54^YWA4o5y_onMp5qQaA=DZAz@i!>M>LcQdGm(z|Xg3+EFtd<#q75f=GQ(5yc-(cg zPt4q|9T5#H*Bram5+;Rid(%lWsg>0al4*m|{=Nw%|-!rObH&>x764IaG?2d*C>z2Cb!vxcV}}>;w8h&^`L0 z;LpZ>MKB3KkmEWy!H6NK7%uGKdvIji;r-=08RySB0ThN_lGdMU#DC4(Z?2kc581WL z{bDm%TD5bzV%>0XM?b^?P{hLF_XvgD)NIcLl=TDLfs`!2&a8PJ;d41i%r_d1sNFw0 zJPfcd8rA`t-2$+be^=0v0BE?VfswPFqsL!PWsJ=4$RtQ_Fy#upBOu+_C}6!JgJ1v4 zuA%G2SRSLRdApEX%=dUG+TY}tW(W!j2GHUDF>05c%gsmVK*@mEq*`bpVQ=bk>7J@` z+(ua`u}mrnXSWInaf6-s)Y>0}Jk;7&{2-Xw&g20PJZbPA$=t&U!Ez$F5Sd(>FAi1KWfBdR6AyIXw zV~4<#70x5@n}Uj2CyWgxfrC0<+HA+K$l;f>hkl}O(~snr7UsB7o#~>CN`uM!Ye&&} z7ixL<#@3Q9kbX;<86)CSOyRy;TMD~pDd;QN3Na(!)kfJ*d7;oj)4oQ@Lc{wFg}x># zl{zc=?YSQ94kF4nlFC&4GD#rE`iiJ-;t+#m1uoE~9Edr~uiv#92BymHkQ>ZARRGm$ zTN*a%QJ82Z6VczbxL+VqB48-@Se=NlNz;JNRYOPfJA)E`D%mqLZ>y|&wU_pSLoz}ZeEAAhiz&(Y~5z5oPR`hQS$aXS|$ zz=V~5s(R4(Nq|29$gccs$khBe{h^AYGhq$e;-V&uQxb}z-4bzN$U-S zFFCQI>8ynQkcH3%5BIQl^Aop+0}hg`)kWLmfpWjzR&=qj8aKjv#M|afGMx|{5nSns zP=rE;z!tx_!aFk5zD=^b7CF<(m4Wl)JCTkD>t{@4xR385j}MwEgj!7+FgCu6Tvlm_ zo?tKSX{!j)an2~z4D-Q>@vZ1QII;fGw??j4N%xCpn|qEj@SXeHZ=BW??EJ1;M;@l{xBAw zH+3`S00=Sx5d2%W3Scb$f9RuSf5V9IUbJMZ0!r7_e?Rw)%)kyTD9Ar=muKiCF3xoP zykJG`X8Y5lyrCcuDh>vC*VB8~?;)2P+y3&^o;w02cIQjUE)?cStUvu*U3|O~e2;!; z0C2d;Z!YD^A^xf-fjYG2|kLJm_K zGK}GeoD;e~BeT`32`<*6eXl7={!r1;F;X1~o((>$ln8!2aD(Vik4zjZO$Mdvl==vE>A}l2L%-t&#L)UiJDXr$BHJJfwNw8`wjbgv4L`N)d?e+}vxyoy3 z%>1dg@1Q+F90sS6E1=tx550u(Wvu{e98C6oXF7~}U4Qk!ePaHu-~caXJ@d%KLOiYF z8o9Z9yLRTP(3km&8GlzI2PY-ldBlPfrr>}=Ghh(Qi#cNS$niT%#|Y^CFC`m~(_BfE z>MKF3tq>JaGHGvmi}U%!@Dgfyekki{Jxz+M=o)Bx)uWc+I~=x}RHM&#IL$SgdvI7B zte7w>BChxBW9O@e`?8O;Jx_m7;m!z+`uxtY5&<%-zsauu*GLzjxqrz<#?JUJpRQ0* z#|ltwrYG3+Uyc9zwV2|GWt(q!a(cjNTZ6(Ct&gh#VSk>y6*&?Mg@!XT9i+sNGwo(X>n*jH#3zCkm3-yVEH}@bSrC}}H~>n4rHd4oe!jHXRgLw7$Mrh4hRD}qqP(GVMy;Jh>J^(g*VGFB_atJ|<72F^{a5wYyb0+mQ=sc(o!P6~)uKw;U5pFF6eA zf||_isi&tOM-QjdJKamEaOf&~jIss$Hhtht{3}cF+$)3|LqPI4yU}&<37b7aJioSW zr(5Jf-*SY4t#2E#2qtiAN*+@RejhCi18xV$AIZh ziJ9~mZ>FQZmn)7crwUKu zEu%PKdx7-pYY}A*PlmqR01~kTVZ3&Ic2gCsDH~k$%!UtjH@Kee7-T{$9s4 zJa1OahKY%09_?>Ax89}`zpG+%zdriIw6%2-W=jWKwUU{{NzR%j5d}v2qvn}I<~5`u zUl80c%%#+*cy83N1L1hzG>tfS?uu{f=J|r#jWrKDQ&B3%kF?C31x(ZYQx?SW!uf8E zsogklv?ZR=HruOO7i-POAJ%M|fFBJDfGZNfn*Aqi0b9kw)Z$;*CIYYpjFAcc0IB;% z_~j8CZ+n+iw-dA8vQ8M8+oOE^oUy=KqPcu$k^2#dH=&lqswZNW^k?!DXKMG`qqi4? zyZxw99sI7UtA9~ zAb>&WM40`m>5~tcJ?=OkXs$x7y0a$CVW7dbeGLtBbyIGicKJR(s)x-+k$FpPl!{d!7L2NllfJlQ$}%UsoRBA(K;QB zV^&L&G&fBS(ohTz3g$4)7fO&Dipcn3VO^HbBbXBc;b@uLt(Lm0KjnvSh7TXxtX8v^ zxbH$ept&vCU;cq`LNdwK7XZS&{}+T^oDKf__;+R8UkM5etL3HcPROhdcXK*g_n)Pd zi-IENy~xwyKvt&nS4@o`58UhNd}>dLc$iAbq#pBPl?Im)U@h%n@Yqea1Az z^$b~9M2;ir*^j#+eFMO z(732h5%L22dtSbvrB%LjqJu4xE(qH{6=az9RkW%)?A=VX6l{LTSo! zRJY+UHQmjPY=3;C?6j<2g(O+>O+Jx;S`Bi&1lVz@mMGN+<%~a%a^ixpp3E&(U{xx# z>yIFQ^1;q60bm_|*J1vy2J<__k@*Yf|C!+Y?}<;gqTrPcuXzi*ae0z&1OCzovb2*F z6o9z;!C6w~j)q2pdURsiiI#?TblSvB-`E&oM3P!+VOnBBYWYEKOj3r{z)auNSe{@A z#T8st6kG)*@ubwFlq7X@@Hy*PwU&u7)QD36-k6K%lbXG+g@R+5mZ>ZyHqj^KPcR7e z4EFTjfaK8tqo3^m9Q~xg&&2$Dbl`9A& zXZO+jr5PANqY{;;DWT$ja5C5*|6}Z(qx0Oh z_Tk318{4)T+qP||VcXcY8>6vp+qSJnjrx1C&pz+_wcYPIU&gre{F7<a-0B*IaX5 z@CTM0^po_5&S@38Re+(`_^rUVtC{4R0xYI8NPrvcf7uQc?d<+G^eR*R+qVa>6PyRT zZEce(7%Sj=@l&FJO3&q(D{2NHa4k8{`>bWmp3K^F)Wp?jCEJcdapzJrN4pNb$eRV}#0)?GE@bP@V_(L; z=k09XkkqverH27B+YMDFSQQxAS$Xd5(>2JrASvCmnFIN8l0Mh4GP-JLV4CsWKjCnQ2ToOMjzgRtd*P$E*_H*L&2j5U|+fgbyCZx9P zWoVZIrj-5aCaCoLbYBZUW~hldP_r#fUnlU29ymoE!a2N3b8i&e7mbQ(4?OhnHN&_y zVomxko0<;LkFe_jp5V;UtZw*tnA(9syFG`uWOq0Zzuh#bx9kJx4e#C^03P!Hv?%@p z13B8+|J}!o?s_|{1^%3^v(hT_2D7^}>&3K2D$I>#XjB)6%(sNj+oQHz3XJ|3cuVxXZwU3VGx1_z1NK(7 zM6||T#o>}2;h?f?NOll0ykv!qbkMgMCaq1g3(WMYTf)>v6N)54)y6mx+JAw6cz<3$X|}dD&5Pqm zYu|cw`WfWcVw2tJUalPwKtVtt|6?EMEs&y)2LC3wct>-?1KdOW55&Om12VhR&3DM^ zozX>+!@;iJom?BKx+j}3R^6(<R3ZE=02~!R=x?0FKD9v7K)g3Wlb>da}ml3 z%fpqB^^g77#LRd6{zDq;dEzFYke_x^5^g66M_a22 zcq=zcdc$ar99YMF+5T$`h-r-WIsq}@0mR@xURz1J7+P4rd87Th%|vj&84L#gysG=~ zUf>dT8MCqu1qoGP3dMM*RCpnxU-;7UuRSKDEP#W7`SOY{v*HP)6OmSsk2#TkeBGbt zsB!pUTnoLXNzR21rcbFjy{Z9J*!*HoCG^Wj!<2K4CQuW>dnuk^Eiv=iYcYRW`-&f@E|;Z03|m#Clkd^NxE*G}sHvIBr&o*oFbB9(Uo@sxy%Y<% z4&G<`LvP1Z`M*adcz!dhHQ6m{|82X07QmY-0|WyH5RCs=SNu;feznu`9tT8202X|c z?}O{y@Hll*08G8A=7XSoWz7n1Zg@C16GGp&H)}l7ao>zmAOC2t=+^Zp@-Kv`{;vYq z_2a8?H$-8mx}0_#8Z_QyDycB*m;kE|Hpbw|5BUo$P~VNJ$7N}>!>O{re}e!csm*&S z$Jv_KNyx;e?h7R!U4elaa#fZENp&cnc-|PTYhdDw^k}*4SM?-zqe2t&hqk2fwe*K{ zn94@71p6J;`h3>pr?T-K5zeg$y#!4L;na$O+mBj{ED33JnO(+YjNt zKK}lV4fy=E^WbP`=lFkcFE9D8X5Xk5h=9ANKa09wzWBzr5HoSKu?Do1{+Du*plqcy zBag_-?o9%R#0VT}r%**Jh}MUJR;-Q)NBjO%dO*%1f>k!vc^Z8{Z+l}hr~B~mVF`b) z@t%yx+zjWDaK-841!s%d%iPPL~_ z*pkk^9&za!y~vCtc43~suPBA1KG4(^Lfwt0h8}v`5Nqa~?N^#6Y#=+>KmUc0Zo}*E^KF6~JoeTLh zBpemSP{wKW&^-*;fSZmslRM76Q`<<91DWb7< z>*uy-sFJsL%~WzmEuypSuc@IGm6e=cTvzO<8Vd-~Ov|a|Eou`ln(GTU6Tw-fM=3E0 zibZ#GeBI$d3@inF`t`6ibA3hNG~KjkzwR(#=+4^{X#aqoqkWvPNc0QbS<1JqF@-o$ z9Ydo}*K1e}MdQE`3!S9jF~rngvd*H<&e-9beUPFdmG z1%ePIm89wwju%|yiljzb}Dh-Eg-|-@5iURA++fevfjPDPq>i^;=V^Y z$v&TVtQou5#F6~toSFD%;(N=OEb?MP9!Gqj#)R)c$X;z}k)~cPY?AHKCNZC!pPgI@6$D>c6-HU69-^>MY zLf8iYss04K{JEw8w&Kp_01Y-{i?_q~-*Bo7r8j4BOx^}h3pJ`ue$-wJL}#!(TVFe3 ze-l}f;?c>b#)o2Tllb^~XWagYS3;~1%!t5=SBjmPmVRsFkS>7llapuW_jJ$Y*TcIy$?y)T3+^=?*mxGQ-ZNPQVmZ$Z8f z&f?72I8LX25=eOFioiR^KteK0#_83C4}sktsa9B;mV#Y^nJ^M>r#no@c)w={cQH#Y2nc$it#Vka)iY>_uisf3OXkVJC|@Qo7Kl4pWusxbF!~yW1Wbm@W*{ zRGbB8q7Jj4*-~zG@6l%tGMGD(nyH^bpy0>sHJ%XVOb-k2hHIMpE#F<$@;4>tQB`U_ z@y4GoF@;viu`!)4!}F{NL!MmQH?<0qR`pg8C$K0Wr?$l^U=8-%vnhlb`Wpp2`E`LP ztbI(DD!vp-vdqxJ;s%CTP?TWBbn5X0)PN>{Mt8JtHr=44JSv4wrQorMU6OX>VZD`2 z1Hwt79^(o8{TZutq2;4%aBg3`0lN)1TT>i+;zd&e=mKVhB}e`VaO=hLaSS6g|B zHe-e;*#3pwS*2Od9)#To;OHxj0jxGiBuY*|M)63iVvUdOkW?%tf%<7K>y zVnf1{xa4QSA70ZWACSH*Lh;+V6tT0lQ zGh-~6jWwQ2FGgyVYTC{*ZWlYckX>MkIu2Kvordxn1tWq=n-tuRc&tv3keW^>X~c=z zeZCM3idA6Ku2B#9HW7a9R3lpPWj`QBcot^yR&bo?Jy@yU`vt8M(U-Y>WM!sRO>V55Uwv`@>vlkMOF_A@zG({%Pj7h}ARS{Es zKL+-_SX*|?%qdfdDnpiZh=3)1FlrCkot0Zq*Uxf13`zQ1)2umNnhZ=4y=Fq_mwESF zIZcmzK~7vRfRRsY zumje~Rj68%5b8<>Q}OEWr_}P@<=2+*9S-yy%nGPr z8a7mc0)vI|MKxIRVl`N-3eS1(!+WJE(})}kWykt6=tbNJ-U@_+rI_u=y|QN)xD%5$ zV-6x&MaT@ez3|wh6eR~W+Z*!0TC2inXd|0R1a;-271jBjUGfD6 z+P7sxC{pQ@zr6?tmWJV13&Z! zy1SZ|$Wg>{=^cvQg4E?$?i3dk#B09EPKl=_GTH|x&b{NRn`El&I*jtri z1Tz3Rpc)B1z!rIiv*2)giFi4#8u|mS4Xl!|da5P=P$%yp?TTv5OR6+(@+rV_(F30w z-(UsT5V$?pj5y7T{7GkV>@13)Q&dRu>xo=19-)2E(Pufir7QuAJ75@8;Pr)wcS;;# zT(h3@I-cx&on7TGpT9oQU2zpm`Mgu&8eQnLg-m_gDsE@526B<^NI}Fb;2>5WqtQEw zGX4n4%cF|}{N3vC5qB*t&Sujmlk}TIOja;%A7lHeEgg}|+Ca#Yn^9F{t?&UXFGTd_ zD{rgy)_ZWYTl#R&N_C=E;ceg{Q^sQ{NIKFJ8<`tBQ0UPMOqRitAqsI*79kUw;p4*Z(bBG@!nu)RCR)PPh+`cCt~mQEM16%8~>*vi~Uu5 z{i_+}9aZ&aIO~6KuO{^6rA$(Y1Q}Vbvf-1NiP2tzSZiuGh#Q5#Zm1PY9HnXd zD9@V#D`T_2^+CXdfURU!>2$1TRe^Ihs%luV)2SQX>-#&X;7RVoFjZN6n7UyEYe8Q! z19>A#e0-mQI=L4OE}N}rOvmq<4khTU0ls|) z!+YrN_Fqw{tTlRzf~tB;LBj?1l+&Tg{be5xbXG%s?q3MV*L0vEA6;D0O z9~>b{??T7qYI9AgF4o?3>PLWj1vbTnvctMZWUw@IgieaZr=X3igV#UmMcpdUKd-9K zZDoad@xquueY4++*Vb>PNa#23OuA{gx)tL{yyJ%rjMcWAeI++t+ z-`)6eTxn*=ja_9m2e~P-BYQ9AbhAp;8+a@oDq)7fS{sIJ)0!9-p05^@M#qu2Xntko z5uQ$zghgUk_&MXTTI0rq1^b9$4`_`ikY`kcX{vn%_HH0(0%1d!W9$31&0zkA;!4|DGMeNGd6O$spBz)%jSG&sO*%!ZyyjjoG^&vjRk{fS*bIMuo}Q$8YL`wj z$k#g9`)4i$7*ub8DaysX`=`pod+JJ-)s38ch|1G@wasij{4T0KJz%%j_c|w#QCm;} zncX!K*>G;ME3ox#wnx7qoPwhIWn%z~wi)pJm!=B<{`}Uw`3*a+GYW76XTa>cx>vE8 z8|tHOgamK(ffpo)Xybp+CuAwHCk05)5D1&u!Y2fW*sqs~8$0eTAnJy~$@p4Zhwjdyb#}4 zd=+OAY{+fkCKk|Mq`Z`jDaYHVi3z=Tm++BT!rmtg_qN@A@(x?g^OPFqdK|kBBWS}} zoZO1M&S?6u_2qry_O#N&axDuK-eBlhr|Tx|v=XqYN;kAIl)MI)1$cEA9Qo#x)F~6v z1+D$c&W3fgIDQqkciuM9cfb`@4@|e{Jx;&967+g#c`S$L#XlBgX8< zLl67T6TBCtP#9=5P+pmaC70oIX$do}M@!x}>8bpX&&N&B~3Crlm4lG-vVvB_7c3;)t zM1q-Y(!jQ|lWb8u(Dy%RsX4@I-jy&VGEX(B!I1B%x3O?yu^@FIk3-+_`Ld5kMzD{M zLyml&4sOV3s&T2K%s`Cn5o_QX>6K1Xu+PIN>`;Yk!_)$$gI?|2kF=i(+ju2v7E+Vy zzc1K*+ZI#J8=!E7vk6ZPKI^n_s4ocNfDt_-I>NMU{2EWj$$P#UKq`8x6#rW~daE9k zEsU(h4Q!3A|Bc1*j;I0z6i_+w?PN$K^na8G#jvhm!{mTW2H9#J+vi(qY@q&phkR{G z`379A)>>5O=wlf5V%Xq2pnoTqjEwh4&>H2a_&7sFn?^7nP8Zp2xm0W~y23*9zzmz*8HQTVzlfo*#DfO>v*;zHV z!|i$EGhc_^#yfk2B*+FC)lclWgC7NT*)>RSraVj>D>w%rZX>Exzd)*S|JeImj>$^I`~BJ`KSxEbgA!YIVB# z@@CuE5X5B)p|qB#JZVRr<6xiK-y*{kt~GWL#UCj=8*~5?rAX2*3`ETScl{+!q(ppo zK>nTqG=KhtIQ+W6-fE?P)z1;iT5obOA3(&L!n9kd3BJ-&spu|X_LvNjNeL$w8Ds_C zoiZ)D&L5#xe;#|Yix_q@UDi*m)Jm<@`s3+@{hf7}C-?|$F~eNR$@j?1 zCawfYP>nq1fKO-Ygj}7NqnY1f&c%2vp0ea77$@OjnbnV~Y>a$0L5uaik!Cj{8uSxG zoHM8&XX{9!1vH&_OS?Ah!*jrroemd-^yri9zsD+Vxn*)eyP)=~l0UE0%nS9gPrLn4 z;us30UObbE9|j82r_~&NGsZ*B+T6PGK#-7K`pJx8T~sDzFd5aZQ5S#cC+UH9^~b@> zPBJbTyC7v9@6|K?Vf~oZ#ZWU%;aA<*KDb$9Mu}GN3t=J)6srZ?bg?EH^B>? zT#HKP3lg&nYWE?1RK1*!`81>*M`rHr^HrCk99GWrR1pE604~sK-qW-hV8&j z$(HgnYqO_EBeaDmEV4cNgd3%(56>Ze^J1aGW>NxD74gr74b=BPSHR50-|2=t>n3@( zg(|I;PI*Z;s@bZxi8Bh~CsX|%IIA5)f2w>V2m&1+{Q(kB%L`bJ_JiL6dXoOqwxkce z{@nKaQY|m23Yz9kjnyv;=o_6{p+lP)5j?L5zpmwKO{~ULz&d^bOyEC>Wq(fIU)dBB zvH&(k{{SHg2^`DhG#|fbX{?aL5o?jJP^_q=O5RvN?$W3&_}Mab1xCEuNjAb{P)V{& z{iL|c){Vt!%7z#7UBw39C*V#qH~LK>W19VOy8K~rDo+!d0FiCzFh{1EV53>GJ~Bw4 zH7l1~;~Zz24m};C!_-Q`&9(Q0q7jkZ+On^xwvJnRc{|8NUvYC=D&whIQ0=ErFi+#~U2L8>B=SB%4xfb+(Oy-(3y82xo1N{fhM@%lpiaK{8+yYwoR%w{Hm^=;H1 zVYzf033AyW%BK|zFa(HJ%;c9Mpe&O1QXf- zVjupi_^>^?(~ZW<`vRD5~SKK|%0k$Z;w8Qge*;prG6piq%|v zr789?^REI@TivB{iB(5}?`UL`IHFhS@gS37a!!^|2(Sg>zP3Al{@5EJ6Is1zIliEH z{bf=J-{0ru+XA_@0i-&v!OCogY+t#{&cwL)Z_vcG%5=;nK(xLBqV?a}B5%?94QLw) zAXEq-`hPQuoqO=RI>03g2GMP+0Eguy!H9~JF*~a~r)gvM{TGJ0S3_OnCg(02rk$?& z_+{r7u9GzqGA=@?ysaHmE2OH~kxGNYOP*~epJ`%MldU`T3*>;-leLV&$m*z?*0`51 zZub!Tj>-;UxYON7njg78xe)2d?>qX|9FH;|$lAn>G`+3}v`bqM%#diURV0R7*0#O} zo6SSi>1r=s%>+XH^rQQ!y`$$M27|$}qYRCQ>~WZzB9O%(3@p56<5DrF@a>5sShm|> zl^6EIZ#WAkwDaCAK#(&3{|4z7tZat7)LW3e(Tw_q!LER9$+2OoGZG+U0+9&8wLdNo z=Lr>Raq)%*T@n37RP$7g4FIh!_Psy$F1pB?pnr#wjxuZ#TrG2zaT{iWi$SP4(>yC` zz#2t#Z!xnF{C9!;~>&Lb7R>i)u=JKCFdp6K5x|dDC(aR!vaIN zhqu?bu9n|Y3fV)`tYcy4f2lCf8Nogu7UGfeKr4JdDz{b|uXxKhXPb^fKIe0j@ld%W z6;NQ>;XiUVk{>0xI{ErIh;u&t|=|f1x0S-1;^}Rj9&imz~{&IJ8yrkZn&-)U%Z+ zsC%Onj|Bky)nhL|?hgo7<4=;fI;p&)o6C_etgs3&?2gd+;LX6fWou$s>E^Lx@A1F~ zglj_uz|j1Tq+{wieITb)T1#-V8SSBOl%`j8CdNw{F-x-7bvvT#+mq3i69wAiNJ`BQ z)&!eIt-_eh2RUvYiMeE&;j*koMFJ*Ku)D*WCiE%4=Pweob8d*?KN;OCTEGjNmZJ4S z2Qu-4+aVBqp{3id_!-2IYPh3J4a2e(QmLw{j8tHLoN@mmL$%@bA#KBYD!~V3u$j^p z@1&x=h=ZD^6G2i{q{I!NP@Q2u1yz7LZw{=2UD6EB2AVhQf~R5MJ$mhH}IJr}QhdSDa|hifO^9>rvO8 zGdgrYdr5gcwnWGMTGBKm+Q%ZPRs&yy&2uS^I&JCa{u&}r2W;_$fEVg|$&Nkp7x8ke zu_42ef~3mq$^3%5(wOJ(Aeb-Aw8R?ECB_8A&AEe%HkN+(+LJ^%93{oV5F{*;4M}QM zlQ8Yh3oSQ_8>}_?R!!AE=<`XGP$cNfh}nuL)bh=)S?Y4joFuQth&Uy-EpbmGBrY6_ zZpO`bhyt_=%G@M1r{Z{>STZVh6iU9kls1gBg=3?sC} zquK7MGkQT;D9ZTMAnbbYSOJ@Vu`&K#b(Iv08sqye4hSrK7m_{$|3%(G)MOeVED$1m z&lRW`O=NcnsGKH_pAuB0R{ED2^oh>AK1vR$Qn}z;M4tRBP7b>R`p!O3dW}|CH5%Oj z3(X&}qX(Sc5a#!FyF<5la<-jgpmrLqa9Cl?_JzeSzWpD!GBY}0?rFz;jU3?d)V&t# zUr8hIyLR?Dq<-$7b#(o9h})##=05=BFFHW}`Y%VAKk-s3vMsUz9A>%LFVt@S(8|8?Qdbt{zX)Od9OT*yIL^{r zDuexySXA($b!>G4VWK4%P1EfC3)){Gd+Juj4f6Fu1}w|o1c0aX$VuCJm zZ(@R|>1H!|5yfR?d<4PD2y|{Lt)QTURO(0Gapgye$?;>Nmo+?4c+cV29o~bJMS$kC9zkMvG>!pCnEV1`m=)Y?ASI@)TS? z|5lqIy+Xo?0)mMMsMbmT&zB$}^sm?P_d!!$Mh=(}H68ex653Y}qk;}2&8^Q3Nrr97 zoanGiO9R@yv3Bt+_Hu#e0pwYsUvVM%uus>N%bWS4t^IRrI}pbJW6zK>c8X@rzM%vU z8H$;)5}vMi6*Q)h6`iUtx!~Btnj4)_Av#v-2CG?`S>Uzwa*%!JB%H@ol#w}Hu|`(5 z&90Pa`O=qZ^@=mj*6rnjzV$JAV!9jV4?lN`p1^?;RFii4uJkXffM0)X|#o*$- zL}bbY(w2Qq%a zG4mn$q(bBmnygM1JUO$EUzVdyB^O51#&4LY*2+7;Cr0)eW5VrFOkf~KxY52CbpbP)1C*(YT?wp_bnyB%1jvvT21Dr7pI6&<2M=@OiaNX4y2SZa2P@Q&jQ+462p^n@`!u ziM091AzMx(=Bkh;`D>NQ-P{<>eSxak`;>xG-^{9Jtuk8-Y2w(cNmHTQzbgI6UAX+| z6fr~*o3dTc0=#uie=5`1W@sFty!0^dP)n?nD!huK17d)1%#V4KYl@op7##{igr55QpQfZGM~NQv$rccnxHsZO_whJkoZ;cBVYQVweOx|96)8_sftraJO^$ z``-2!7E!|gmqqllJDRgQJsNB1EoTNfLSDtxQR|=K6B8pqKwU+nz(>wVud~5NNzIBy zF+4g*5MH8)kQW@|L(5x7GCLCxBOoj^1CdSNm`A}(zm^)~gG+Idl$^VNMgN+5|2tS$QSiC{Fj(edimIa6e;REQAOHeugq#1tmKqZ*j6y?{E$H!>XqQe?B@C!8WTVEg*pW|8W(n75LO$~k6iW`PwtgzP zDu-&r8wwwkin8c>R9I=9)3$~kge)G~pz{kwdM*dVAzVIXL?(1p#5!11EzuV==HQYR zlgC{=T^M5yztnFaX`)>BdR45vL_loh9{xl=6lW6#IA-A-EX?(lN7acRa`iY=gbfdR zev%ZLgS;rWGlHND9CSy+UoTOmDbBwAG>Sc~mVgf(XP$C5>9l;eYFZ)iGCug>*8c9Z z?7p%jwQ{bo=e01HqrbsBA@Qtk#2(1Q5`z#^5cPr|6xZ+ifcvd+2K*!9vYe?|=naSW zrIPC%z-!pX4c7a?Xkrr$=2T&S7bY^n3!JO~OhzEU+x-uVPsz^O_&2@mfQUCyKve&O zzO15zO*EQXhc32!0!XB;FE38tkyVXU=OZ@fXx@ZMP)ccfDL)iEB)hktBfN9Ef!Z16 zYI6Ii*PQf%)oP*pweYh&i3SIj-Mlf>77<1N_4|1(~vW! z0r`XE^{VQjHrcNJT0uKhja(_zHQn8$HGQ^3bXx;Imk)c&Sqzh;-cd8LAexSlA6uqK z=8(wxy$36Z^KU=`lp*oXZNRWe0K@)+c=A6J`X5Tif42uvcKRPM1Ol|%06xCA@lyPV zr~#|waZ3yiW*#Y-GKgMG2p_&6kVdBZ-DQ9K%GZ4Smt+NKq5rqg+yqp;c-wR)I)JIC zLIm4{he?G_QR6$LK&!T?l6iyta||mhMIXAYQ+l;e#Qswm7WKp56_xj_Ocp)iEg$VY zg)jkvK@r;=h#ql{+L1NaY>VQUd z7nKtI(v7Bx`pGx#fzo|}MK>o~`Ur(B%-JdvWWO8Aa!W)tTP zEgR<&pPrwu;W`;I8E=en)!f=!3a?s=v1+FZWXQ?)0}?RGf%_+G$38ZiI(RBcnbiku zQA5Vv`7cG+>SI<1RP0G>VbV=Jg0@mZGA22l6737kT*?gWpX>e{*43pbG7VNc&HWlk zNQ8@}DRV*5YT}{Ayt+talZ$7pc_|~MwfTd@Pq$p+$YiQkXP}O)He8rWGz|q{G9;|X zN9VrmK+|=$OVXuMD7|t+j@4cDP!bBxB8nt{lD}t{g4aX(l4Xr7*w%GMYP)Rlamm#c z3*4ws@li_hiZ#$@*cz>txoFAPrZg%lA}X>BTcF>Hita0M==Vb&2Og%X_UxP%w@D$0 z6clk-w1a_3`E^t@7kMkBZZxWvQaI>GtYg@LyAY_0;zc74jG3S5)p^ox?-q{j(HN=p zl^%LKHCzi-sE{$^BNwnzo_*#1HmH3R-?k_E1S9m70}^twGq`O1;n?pLg2H zCJ=|FJ|0SWiSqb+*P?F#T2Hvk5U}_p>jtMN=LLD~Cn#imMqJ?sIs*ptR_uH8LMJ9%XZdg<*bPieXB?;wkwLYpw~8Gqt=2LaU$)D;<5 zV^*pKICrARkj|lI96$UYPcG-ioRaLAB6y7p?l@si~Op%*{OXAlIvDf5R@ z0LUlBw$hyVPUs>%#c6`~e*82lORpUSvk#{yA)?yoym8z%)=p~(*k{+eSTVf#Ratmls9MhR>o*oPy9HF9Q7u)GtmLO;+NsQ2N8>}WpG>4>3p6H=JN z5sYrqFYX~PnMd_mh0|2nq<|$go*hn32107YiX^gQ_8WfIip;vWcC}dsBmmd`lcV$u zZjHt-ba0=vb3Q1k4mpxz8oJ=n%p#323m+@&xZ@@{s0`}POhM|55=*LWw^y2n`^e1b zZ1;5(IC}7MAu-7|C1VgH8BL_GbZ|8_{}c@h{92SCPksjmXoG)^&363nqJ+YHo>re?o?X*~ZS( z^jbeJF}B7(D)s4{bpefa+w%gEqq|dJwz276l_m&2l7R-*n>ADiv#Y2OGX`TyXaSMb z)7!W<>&`GaUk6Pxw=q%+^SdP)33l=mw8>oK8T0w4?iV9isRw>mMPzu1henvs2e z`M#3%F0%(Wa15nB7emL4tyl(o2uCLNMYWhA2cy76%tRg6A#w>9xutBPN6t=>uyLlkxJ&3gdd2gg11t%=sD5w+na+m(JLPyQ@i39Xwn#j1z*Z9s8g;9^eNupOme&| zmr1iS0b-fV2+h(x)^$+*EJCw5@H}21BvShLyi!#?kp+K{S-voNW$hKNv-D7-; zY}I&(bu@2SZK#qoAuUq^{nU$*Q-L8a($MIu`cIao^I*;|l`I zDB0)WEl8b0C-eku@mcbdF-~u`<;|C2T9olGMi`=P+SYQgwW_lx4&tqD1A=1J4YniE zZ5E#oFWcHYO_V)n1h5$GoE1f9v8N;=IhJ9?jPya|Fmafzbsw{Pk++%ajrQYqyjUr% zWe?{W%Zk+8SX7Hr__1ckEHX!!m6>xNvW8hgm0-E45A1dOA;asia$w!JO|s268(UdrtEtE%6q17mHkoMnVn~ToUw7 zGjmQv+O|%OQz~Z(CwSJ=uz7!S?X&i|xUvT)dpe~?xx%DaM2-MMTcQaHTu=SsafF#R z?MHXWT zKZ=9w=xgwrKWMWcvUwf_HU)-E?R2;n@D5v_H+qZLIN*Xjx8w|iByqaz+K(r@C8T{N z=H|%t2|IGai0?j{_FhNE1FU+^~+ zr_ilXTvslK>7&ec<1Ss5Uq^vfp;(Wiz^B58>H8w@MMRlJsRt>NCGVwyt=g_?3oTR6 zb`5dl`yC*aA*8$@T^~x7J`{M6ZCc$5#-tJAK@?X;s>0@kaB@zUE=9j{tGvzHNF|%J za4YakV*KzMTyNCrx!Me{qp-vO(}DW09mUbn&QS@VJ!JB0qa;K1#~XX>RTmmAk5bBH ziim-KF0TwU8o0iS2CNn_6qzFI#QAy|mW0{FRIm%~-h0Dg<3(i`C)+XdvF3B|Xa9lR zPZuWBEHe3X__6Fx8!h*r?$dGXwqe4 z0C5+OT(qQzCagTnbMKc%lQtu9u|LeK^`&?Znz)dqTLBNv@+f%-Q#zz>%gDOjObjN0 z(3f*!Pl;+yR5$WLKk^RJ*o-S~TzSpxdpX99@o~((TG!3Zw57BVCPNr>e|L3&qCSSA zNnwj6DJvcDgsZ6Oj#2v^qxndcCWZ!<{YRlP5?&a;2#b{}KV6?dVMm6@0Cm(J92)dw zlwF&C2PacD(%fuxIX|!&Z2a+u%M;#7u`9Wm~2@>OR_3hklJ9E&fQ%sl$x$|Iyu;yr_2<(j{lYvnvH^;oH?aPP+10VFv$$J@1c->=8*<% zSi{fE{7LvpZC15ddfqe22&TS7(HbQVrN#0%Mv-CkSvr=1-1deFr8so|kLKR~v0>gu39kPS^ zqeoNl4roRjnj!&d+uo^CN9R~(4VlSL)%^>&2ZIDEwYV1U`}Wb*(Dlx~@#GolH+f0W zyGvj5wB@@vQJMVx&ET2l57k5GE|q%vfLWnUhpMh;hn6|rCn<|4xz%Pg_2*a-zBR2U z9c?h%Cp*_4b;4@P>1)VP-vl`p4Et5Mji1)fUWhpa#y&9Qk(`k!YEG#FF_yAQX^BU z1d88oCrR@2X>B*~GMCf*iLLC^nL|?=7l&R;qhVLWkzS0hV;gC73#|sI?3fA2XW{|9 zi>J0kf$ggNp}#)EO|MfYyPW6wXL>BET9=FMlS!@itXTWz=T@3t7xnI2sn_>)yTJed`@+#q5E`)TZ29ODB@d(;*M-CQ$-LRJqTVavhgJ?vD|6e}f4#yy1UO3$O{c7a=q@LM2lK8)JzK^*!N zkk^*mzf)Z;c&NZ@V*gI?|1tK}QB|ky+9DlFmo!L+beE)bhm>r(LqbACWYgW!CEeZK zDc#*AU6S7qXXZVx%*;98AJ5ur0eda(c;c?>y0#kL)(+{A9!9XxUBjdOq{i4ZkNznc z`PR{)9RCK@hxQJpFN|mxr>kN796G_{;Yv1%s#XY^1+0MvaW~gnBqMZ%}qhB7*j(*^N*t$d9T3HTUUmQMOK9E++g}M zpI>F?*TjNDy*xbC3dqWMFwnRYAW6J|UIIpWYqM(7TkE897|NwNLp{ycmJFsoqo{MK zv5*Iq=I|yZD6QaqH9m#;A*>5WXQt_7h>o@;@*%(xI-1w*BqLqeP(@N!m-g!ZY81ZFW}3SSIz>T zpHRm*9K^4c_2#mw72HW(oS2EfgR8GAGO~%mKBvf|@Xn;nl>RC5v`=l4x`CZJ(vWyuEuknEWFkrh*wZpH?bRy4O=aXYtPN!N$xs`>1&%1 zZa2@&(H5OBs<2Gts4Sn)6~9Z&KwtM`)?c?**Tqo&s-wwGQwCpS{ta_8L&_xO83^5u z7hPT$-GOz=TrW&?iS0UMx>B7Gbq1fc1ibEF`enS=@en*}J(b+1bS^R#?f}eUcFbMf zBG=#OC``PqDiX|J#+)UTY7lbC=b%yj@hD46!eo$}0%T_&nhO7hU-c{M{mba0jsQQ# zOQt^z?lSZf_eXfk5;*XN1@_decpM8F!B(FlLWpOFl#+Sx+3HC4@r3??! zA4QVWCf1GR6N|M`*Y%IVecrB(SNM(;#7O!o;hqH= zdon3gew*rMQSKB9d3DKV{1uP3vl!^EHf%F0R>ntn&Epe0@O$%(`OQuGDlO`puzIoy ze$PZ2LM?<2`FqXQ@9eT-(vt6C{Nzy&5WO{ce6K$VG%hK8-}F4?jnuwpb92dCVZlYv z!%pgZllcl~<%*S0hKAEJKIpk{{5szFj8QEa>Fg5lBtO&hjaDUO(= zK5&cm{b;mltDO7ub0XOIDIIfnR)?H7b_Gmp{Jg`N83Re|a=7eS*+LxeQIbc(X@77o zfqZCt>QXs}y+MuiWJg9r2MAH3{#{3c&@1w0U3~tesn3OyUXqrWjroZdQH3y@z=M0Q zRt6;UQdoQvtZ+{^!?BHSL=RvP7Y0$J7WPp-)Ni0%@Z+5emoE5vUaLbOja07w10~Hh$kS ze}P_#nA+)EI~u+>{Ih}JFPDm_c0e2X_AGflk7&oE@*9?l^=o`83>9X$;oOTL7MUu} zx^WkDKX;EyN_-SF*iTOc5SVO7gjGbnAxl}Wjm`)9<4bOLFG7-^IF`sx@l^z~9Po?o z2#Nb~4!5u#yR>&&*Auv`SFjb?M^B;h?0XRl)lnT}=)^|)%a&qIcsEfgB$S6eePkb zdHPz_+NdhxkO6E^>bdE`UNn-`5^y)MgK(}#P3~sL2u~^XQP}T{)P)Sc0-&8lpb8Uv zp)JZ$RHMD)D?*W>#vc+tRV~n?lBlv&IM!E7NLckPFXwHB3^{_vg7=2VKc;la-VWh7 zUgz{O4;EAG!mkOuqzkHwA`^m?DG6yG{TcylVr40y{d|i@L-U7q^_hwgIWJZnM@^^Y z9K?Hj>0dl@SMK|(Ktehw`vXK4f;{NF?ws`>putkUe)u3 zRkvS9FVXK^qAd8y7K4C?2m>C%@&Dl=e~#Qfc8~(4d08MmeK8wV7L1@dH}6K7mLYl%{^)E=jz-^Tk)PfgajK5y$S}I)2|`9gOo4rVka{ z>v18>sSdr%!(lIIT7_N{5=DSx1zd=w6KMq1Y0OO8#DkV7)0M$dhaW_+hV|QWg2Q#M zMe*(WSHmq^*H|p=uM!TA?wm>VH$O~d{$KlNHS?e2L5*SM9G zZaUw_xqQ#r;;TFNbZhmwpPzh3>+K~XrR2cMsO{+!%f0h8Hx1ke^@?w-^(Nvl`Gf2y z&rJh_)?-m4a%C8J90W$Gm6?q?Ef^A`Sx}SBlkInnC1w@2 zbTS?~D8|z?t8-i;T^NZ~Tx9p2H_8tOqtn6jB-M+*Jq^sqM}1-9Ur!#_3H~T(ceXrJ zFaB;wL;F5(T27BIWJ>tgzi zPbpDRTk0uL#YxZ1(abbVM#el%!J>yUR5%T#f|G)Z8(OUnX3xm$FKoTbCw#e;N;DMW zzn_1u3nfA4dQfvQ$aS&T)wMax^BH}QF`@EWvO4KlhCeh@#_MgYV=vjV6D-?eiRi8v z{BXEzR$=umoib7&=mOac3FO@`y?f~w!YO>Nrr`bcBIx}@pp!UfYec2Fs=EyXZki{< z1zVQxFi9CD0f=_tTzZC*Z!sZo;Jy4jw3m^#gt*Hj(uG}7+&lh7UAWETXOI$f4LLPz?ro)+bh;v_0|K3X>irhGFBgpd#wA z@`&s+pI$7?9K`e;PNAsUIR~!*H)f1fcT#YLWKR?v z#(*DGa)l<(LA5W_sVAm~L9j~G*_Nnns1t_*RT`ClP}kcl*;rzO-LrCNp|i=80@rZ`@OlCR?d)?HxH{+3 z0LoQ682a6p&XqBv8NVp*`@)|o36T=cK@3hfxFUl+DT_#0wJ_2s^a z+cuY4vYe|pW#p?)lDsqWW}F%G{ysa*HcPmw({8zICv5!s=NL|Mn#v^X^F7nPQyw8uaQ=2r{CRe*)|f%W$mkB3CuA7opy4|N@o1u%5}hq1K%d90qk zMiI&T8Q%@n_?e6+m3$-!Ul$&J`b~ToTRP0M{=t0j&Jmpf2-qe0=nwEYDau8sR_;w| zPY`)gbuOrPr{A|Jx;oMy?vSZbyZdRELb+Em`5u0ZBw8juYF?~MuRZ^Pu0uHQoP}y6 ztCv$NL2^m8q4Y9;aY7-8mT25?8qb{7`q|{`7X$V6qZ`jVJhx?Nbt+Wis+CII7SS>d zYYnoJ`L}$B+MZ~e2;zX|=%r`&L6?ul!j6)@cPjyI3iGdForLIr(vW}1?ItfH1$0Fx zo+{;yU%`KIIULhLazb-K(=3tK*fKjX1?Z5c_u>)@&WoH6VK39$rz=x@ao}FDoGkRm zfBe|k0NIR*kH{G>LWq8hn4?F=23tCM&VLL+-O3CHQ4t$QYZ?{bduQSu*BiRIhdg80 zi6Wms>Y(xT_)LsArFS@;P5!iSSKH^M@T$Bk8%a*VYw?kEymawb@b9Px*t?-TE2^h)5URI!E=9eE zIm04`N?UWswkao|i~`+^u`Mz<)z}TQHt)k@)oXt^&NTQ$OOgb6UMMJHnJej7(bb1~Mfy1F|=NH9hRbY#k+f0O5 z+)mI~2gf$GI>L{C^LC{RmC{cBF)i~*jssCE;EYIsUH;x`^~)judP4&6cy{(6EBimu z@hpP{0$K%8Iu>!*?q~}+d5bFCY8g7?h#jm|+3$#K>w0WJGI! z=lY*~gm&&))=wz5P`!QT-Y@Toc1NK3aggdX%AU+&$i7em6St~Sd4*?u7%1U-qU~9&FVhjl<(%`B>muB$=egJLq31@ z1M$j1nh06=L`$6+aEzo~guF1pIFy4BI>}PS*$6v#5=!l-$swmlkbz{KxUaVXO#}g& zAOSv&{!B5v0@;|p`W2cRWJVrN;@QZ+C>D{75n zL0NvUzYvrgR5aE$>Rn*KNfP*c%ke@MN0rWHKu2qv6Rj|_Z2iE1WccS!Fr&mCKR7Pv zmHJCI_{q_x_vh7BGl**VA(}Ecl<|`--L|m@h9sT*L~Az!HK%mBwn>((8B~;WREd&2 zaagz*%k&z9+5>Jvu-bdFMN(U2kcvqw`2!Gxv-Qoz1E`%6nISS2o(ovNzZb@XwIZz}h;60$Ydai@r?mUdR-)QrI8Ga=1LEo%&@ zG1j?(NbU*kCD=6g*}ME2#J8KIR-RJ?>>w%@+^9WZVp2#agDRu9or#9ClJJWDHlDr? z8f2kP;W4Z-i(+)rphuglWouzz=H;J%=~h{r>yRFPwjzCKO;LrvbI>EO-Pw-6MqURd z#JAt!g2E;ox+=Cq5hLhYdW5j;_C0?5fzIU;Sby(y|8?m63PeB_5>^knp8s&sMTPxI z&}C^ZuIXNjHn)=rxY2BsJc7rUsV|7y8QYc;i9JZMvwH6aydL1naYb@fp&;L`edOBQ z2>r!Jr?!Q{u;IL<*eVv=N{xpsDTh!w_-&?WT8fYz0E&7WSD}z|gy_JcT^a@D&{|`x z5PM?b85{6E87rfy`T{PCCpAVz2P)li|8qd|1l;#4aC^Uz1}E8^qqsn($XgW)(oX*K zgQit=la>;R=yjcf_6#$1YDny|j`haHQ82rJ1fwcHMPS|iz)*uv6OpKi+VJ4_-3hUee^&`O&?&I~Ig2KtWdGhl|DkQqF$8(ys9=P=& z_54KoNLsqC8g`nes57w6VWbh_^s3t)Q2{7uF7BOurr~esM+3{V;3HLiY8XV!bFyMCM0px1n0+b!+D~5e*`bDb z8zp#yNBs2B0iGd}Qu@$3+X1Y95nb8P=|S+{rh?o;rGO^}hL_yci+AHRR$5e43^Ov2 zR&_M|DU2Gnk{6~f#?n0ok`y`TMK!7oW1 zYQEAkw0ROC@c@ zX^ynw{gjTTG?NrgkKyya5;BoPGR9ke!d|%A@}rH)qAW6JB#fZDm3KxDbt8JYl;A#M znPYS}5H~GwF1N>KMwYvTq|46mjYb&ve&WbtQn3wXC`Tkh5rJ?O!M%uFf(pg1r6Z+R zRrr47^JUqjdRv;T5}I)lrNytU@L32->^L;pAcx$FrB((Md*p$N{Z(RV8j}KZ0-x9M zaLK4vB2%sBkHU?m*9+9_fRf>WcN_)aXa8_hDw|pu{>RV$iZ}WIwjc~X=ryLaFKK=} z*bLrZr`qYIIt$@(Ehfok#Y|!<=av-)p<2G$?oh+fYK1fM7Iyh=dda3u|?r3N?6Uo~} zdiB}#x+}|>EHaH@=~IWqLaB>>H4nQ)7;oxQe>+^tCjM4D3Pik-hWK0>c_HYZX39{x z*$~fnO)$0!Y={P)BHO4hp=v-^s@>`*U`+L(?t59i0v$XmjF`NE?Oy>jo(^dL<-cei zz($cbwK24}|En!53RDbmm^-G{wsG2-vc@r{G^c;CG;wP3 zZRHG*yc7EL^9_H~g20oxl|Y-fYznF`IJ`BDEzG2k=2-7~D$;1Ud~F(+IM|bfEi+#s zmc*@owmFKa+eT^4#%kD%E*O2bymQ6m8<&BoN2X?$&^v-bJrMb0cfOh!iQea32p^WD zkSf;!JTlMF{phIyede(_$GcbwN&)5R#GzzyM^KfaLhyy1%)5a&hjM0H9T+envwfH$ z7~)tN<+*M7IEk1hU#A2qTo(1k(EX#y9hr4ER1-iqAAm*r?>bV_xBiO)%bo@bV=EnoKov z8y)Uk?6fp83VKt&C()8PE?!4FzrBM4jmp^rQHQRtU8@6T#Cn2G6wv7}q?|qwpfiJq zovRLDLPjl^sO%Oihnz&Q)d{B9J!53_67K(G#UWP*V2ei+v>#SCe@h5wxO7gsrk|s!atc`=`>nqby z^d{auy+klse$q7By8V5BN%{~CEL^U@Sj(w*YSYj8n8;84NfYtIGcyoa`2T1|Wsu%q zp@FNdY1q>$8W->3pcUB4&q)YQl_J8;xej+2tS44~TK$7wU6ul$0iPZT+bar z)O23YFUcbi<{i&C|9~{S_C87Pa~nkM8{FDEl}V({pZ5a90sH+7tuu3ypp8~jg|E8S zZ}2zl*YwM%BWGznjb}M?2+I|!1%0GH!@=vF`jK-^>5q^?B38-cD|F7{Z)rD>xsr{v zFm;@&wWE52^<8Z93^3$o3KxC_-~T)`f%#aUMxghWK$YoHMNaygJf8ueeiPuF|C@*Y z^%XJTs}B#-KTYAL&ptsYj{S!z?o%$y}- zzkn}a04Me1C@JugWLZn939;K)h%Gv}kb9!Wsmr-{B^d~Lrgs!pUaR#iW3uc8xPH~Y z1g29S=g`=yCIRh3qKD1XXSUvRXee+V3@ zrfePdDk{u>(B_uA(iy+28s4b)lMKQVW|wAd5X@%y0M)krVkRxnDJS>TKwjTBIk5`p z;e7FixGxm$Dtv>hbaD}0;#*!Y4?1;WU{0z*N?^Vp1}g!R#fV#l!S~e`5rt&G+ItcC zQa7JE%R+-}7or#5_4ItUJh+bFIMKjp0fk_bH)=~?+tE(rn6^^caVp7P$uvGEn<=v) zF6CK!3l3y-W)j_JlROA#bNB2{7pxX{r|~y$S?ottKRA}%~U8&QjDH` z@zS10DgIE}l*$KAusvWA|C?bYg#SbM;}HBXBK3ePi;a#abp$n2txHbD{)HG0i>n2P z-PU2i+kxy)U|FUHB_wO3M(6sA&7V&hyFN1xCQeo@5&6@mzdu(~!ZNEmD)biwFUKC_ z)Ab$O@b1!yn4pKle7&^-Z?)es5Q2vdYOOE1aq`#)HJlj>wa`|^Fvxvo%v)EGD`#T3 zso+yszB|iPY~{^JNI@FMtZP_=kB#$>YU(?L3<<$Dr9DrD?Fndko;hY2@BQ@L@4WxmCuuBq@&C|7+>-Rh|CT^s-EY04X^4lU~I2HmnhCUyU!pOV!L*!v@nYuyWOn70o|LtrwQL zSE^kTR2TQMw{E{+Unv>butd8R*u8uOmiTF=m_+j{mcN|bMZ1D~(v^i%j;}X$JdK>J zzZMBb^dUHP{9T7K5K_b60grijH2*CO`)hyy(xI@mrH!=}5Q+VvNC&w-vxjTQah%QU zr65ftxl6B(N`Ie*tE)A9BDp*I20k{a-y3uyJcQ;{^ z5@s=G%lHJXmo5v!EdGp6Whx4=F&~k@7VL{#Sj!DXXnnaY%|g}51$RwHRXjVsQ7{aV@0|JWHckR>f0g5(520>hbcUatM<^@NBO223;r7w3_u#SE z-Hd`!rufxjB%}THyRtSTuPLITXPORXku{+vI@gecO2{aO-qcdY3P!|SMei)xDsUb@ z&Es{qw%|gWlB)HDckWq;)KqbD#(c``?fR6KtZfw0WBuE;M_B?j#}JWmT*kbCPS1Lv z1Qt1LqBNwp&N_BO%51T6tdxfORd9yI&*+5M>4fTHwVoa#*oh>X*drVL$=XWIH=U~S zN>*j=GLTm;sH(}KVF_bV?P1NwH|?{Qh?h8sexctx6-O_1!VViS1E$+; zQW|fLr6XdwYwHqn#b_fCxUJRXhw>|#(#sghxEn{CCvFW83B@n> zB=vvp?S-jU1_C z4nFUF7Hy|wDq6jFavxwkdY-vDNbWlfX*!sO6H;0sHS1ZNgIUFmnZc1TWU;+K~5x*jPSIC@v&={>I2Ddr(jy{n0$P7 z3Le8v7@zA9i&kkeiSXFM9kY{}WaDs<2|RXYId&^mQBZ$Jeb%4CiE zcorpHA*o7x6cp#Hyq8f~Ibe&=A<_mfo?}X9wnY}BfFiOi=N~P)ADKj9o39j=z{}Na zwW9yw{Mi?oHtWbQuV4Gir`=Pnph8;T7B`(1^CVs<3t&(TcQ2V9IaQsMYT+VP3v+yj zW@wK`IS}Oxa{u^SDzHs!EY` zfH*fgLmd~T%BXka{JPww9FrfQU<7X<`b4ip&xrp&*L-XJsEgz-F-w*w@0i|3PPc_3TMf%X3d3zTM*E{lEalqa+(IX164Y)9~rWa8yPZsVqIJ zYAj_gUM|sXvabfkmw0F85RB@(>2gEP8ROXY1m?LwcDvNO#b8brHy>pw{ZP%U03h(` z%bkfqlM0z9%eVOPl6lIX#WM+=7C`XjRU<@98X>z7`ZQxn^iJavMmyE?DNIp!ZpiH~dCa+A;2i*Q{4Oh08Vn|6{rg1t}Vl$^za({2nl`CLttx`Ue(_Bv>ho+Yoxn+}Bkck$ z>xXPn%e5y2-&L@YgZRmY#^kr+BB$%Iq?@;8qZ|31zUz8iZDx>#97B*&AFq99Ww;s0 z$4EED+ks6>am>U1zO7DBHz!WO_NqFT+y-x5}%Jj=*yY^+LtvTrL}o%7O0dRch8GglJU_*RQ;rhb=e zQRAHi1nDWZONL58*#)n5u>|xCIKZv&MikDIax_0G;;nL2UKHwPd){#0Dr9O53k7}} zrrZ`%AILdIWg-bORbYXwXRmWDe#r7m{$3#2^83a4@qXk*16-sK%f#)L-4V)NC%yE< z3EpF!a9J)|9Y}ioC3g+Z+gXAH!-l8JD3%zg+W4ZUHu$#3zw*@o95elG(A>z{+Tc;Z zw5e>~APcBe2iU8BSL?&y3mF1!S0LlxGmu_D%mid0`L@luS51f}E^=wo81QY(ZBwZ* z#I&jAt0l8yC6qCiT_}iIrX| zqp5nw`%07GK+2rs&mdWvCL(w~X}zhhM&@^DVFjcrY5~C*G=w}=nLL#C1`Mp{xv((%Ib<`qV&!A^9qhu=y2JiLj@FMv?disM&0IuXeZ1UfX4B7yD;R96En)ysMr#R*hV5FhV(*VWjUjfkFcQg&zd2k-mqp>qny^J7yF{J_3{K$>=?tTPAXL8aQJ=%!P;nNWKLg#@_ z>fo||=OFJ7UI}DAtqe$GrM~jT+-+ZXQ;llIo ziS&^ejv7;s!f5icCx=R4M$gGoc%;skPj;2;_)}H-H^cBUCh354aj=vYG(Dl3u_gay^cJ|bO*>@6hw0gj7z2U0w_juVuTzN z0^m=may`8qNMlmP*9>I7d?9xU#nRf`lZpJlKX#A5~H6H|2Lk=GgEMYPU|mE1V+%z)Y;F_P+UR)p=KN zQYKL%mua>V!}iPgs`93CFm$aus7||}!?kT&2lY4Z?7`o%cXz5%+|})KZ&=HfKA(}c zj2IqXouS2G(Hpjl6Gg0L_4N#0(%biJ?%Kf?#R*(->g+M+NugW89G)l&ZX zia`ey^;<2)$idL!G5lRWE=5-WpiMns%l?g;^~wd4F4UwuaL;{tI=o_pQgsBk`4cnQ(2UKD#D=4a*3#e@9)RL`CF7|f#?h0c zu43M1S+D*HEINaCSRa{ZS^(-=P@JQ}R$h3(aATalO}Hj5i^bUek=|IO9a=?pOpXhN z&G?eWaV8oE1*7y>k6YLRhZkW#Mq#=#Y#L3JpqJD0+YryR8vLBJnz#Y4*Mt?ZN&YWz z)2l_sX@B6Q)o(TEkIZg^dTB2hSLrVpccT&rHx^CUJefOg8_^M2b)!g_@{nltqf!kE zn0aCQASvZ5RS0Qux@a;>#3)rv?)}M;ZXX4p#ptH-Ai$z{|CdFDt!;pb|NpY6ycBRr z;Uripnwy&uO^Cny;yWb9xTJEVh>0NTC3z5EJzij{Sc%t>yq*e2cmr`qbu>E_0ei%} zxW~xDbM5vJka3CyfZXwEnI?BSR#~=#&`}2)0=9I-(y+f932BFiL+Vq>U7}wI5zf0# z-ibhQ!v=s(sxG>xa4aI)i+Oy(=b3A87)0iBW=v;SP{ISAUFhB`bf2(x#IhHpP!M1y zjBRd2L^u6bG&)h+dUFE5@u%k|HjQ50?)$dv*o!}(kf&?zto6iPJMK=|)5Uad%YBX@ zkT1q}=9$2Pk91c8lWTsl!ejQ9pdA8PTuWl#XJz7vu&LmFp1}@cg)%}Lr-DayWNI^E zgYoDHy|Og99;OmiqL=;1W=^GWwQ!crc2SKrRgDj#^4!EzJS$g^0ksj9Z1h?ILJJVy zo7f&B0MjEjGWH|lvlY#5w25t1&vJ^1;Z~R#`}9~NqsORJ4MjMl4`|mIfSvwU_WWb3 ziUHibz>)snM)HyewjGcw>ltllv)0$~50NVUf~bS}Dol_#8>PpsRMvil-+-BRt&A6{ z<)LWf#}}_vzm-v2yH%Kz^atqV79;+k5IL3xJ;5Dm;@g+?UMwiR*dADBf|gi;sjQnt zb4N~xTXV9Tt>bTB;?gw1eD6mRmNZ*t!4G_zO7IS*RpnzQK{~hamy(VB6KG-EN}WdZ z+$MXzmS%6H30B1xhi}!%F%M-P&Znn8aCx79)Ph-Stz+_#Gc)j1p!9?R}Z*@Q*uwu8{UUzKZiAcgop8;Y2=R z?>huto{FEU`+wr`EA0`^w-{+>BT}nPVAcdb+o>P;IPgh)m|r{9;)81T%r)&^V_1@4 z#E{PSlwdw$qt5t_{%T4+qnij5)FLvOsgwc=Q+kXcF-(FPldh!gM``f}`{z&eaT zjQsbT=GVFSuycO9Z3`k~h<3}(vqQqg4u-~r;LKcmU_ik@D0TzuZFE$8sTdVBijk@;6 za9asek`PWu1$`l-r{K@$Y@dW<(`45+593IAAkq`gdL45SAPT-pi_L`RB*A}0o{P^= z$+_|EP{FI0Wyzps#?j27GdxE3N$S|jMCYxNAR3=GUYw>=^CFkoi1e># zMSa%t!hhV2@vh4ZSGiWrTg&%+oHMI2XSG~7Vpo%U4E`F)`|3;-gNO3vYPoU@Z$21Mk@R1X)@0lpZm4`Qs)W<>_2(BBSvo&UwmtH>=SD}p<_cO-ITS%+}tsa`L4Ptny;{IKpsuCKOfun}J7uSzQsy17~1Rk~}_P=jS zfM4JNDaHD?v-4L%i*FPwRKq#oSaQtEBYdj8pz|5L_qSna?_2pyb-IG>w)XGuUrTFU z0x%#)vY=H-j?E-jyNx-Pi(fY(c`Xv96^X z_vPsCo*51T@8Bt^1r4)r(RAKC^CaOD1EFM@m*{dm?>^m%KbRP$Sj8Q*ax_&QUkbMPSYZsH$FYO+`5g{P#gg3X#Bf% zWUPTU=LZY@&&}o)CL;&bsJs`wNZ&=t9cg07$p^^G?k&wLR)2)8x(9$sy?r6R; z(6r|9)#;%vC$J0}S?92r<@?^?AWzx#+3gYh62>(Wtgrw|DuRv$f7Cf6nw81oC9`rX z`s?^sRvcl|{^Xh;@2w3MpLMn>m;xuKJDQyRb5D|}uZ&}LN%H3+F0JsF^3yJp`=Q&^ z`@D%P-?BXJQMmk58Gq7`Zd$#>QTHLiq~RyksR>O|jzLlzSjUV>cH}PL7cQONiDy*k zZV?=AM;LkgQl335R%u*>kV}RQeVWU1NP0)X8_8$>o-km8x$qWtr*7noVE^2i_-8Zb z#S9}x-PocfE3U6@NyP3?g(crgd*~N0jfR?VsCEZ^d%Nj)&(N+v?rr;-_^XuiU^I+0 zVEnY)B_Q85@%DG%ZHuemXscCWF`D|AJ__a7lQh6mB8tdlN{$sVA=&;-C7j7r8`3pE zT9+fZG&}vXo3gE7)C>D2LfUVS4R;^sLb41zNC^Ss{XOUS>pcDY(_QAj6GXfwtv!@B z;x#TSLPC0J!{BSi{_vLA?SWH<_IAo&abYJa-;htCUa`7w+X# zuG30ecEbRDwY%*0pr&?`+;$J5<`AKNt9(J^(7t}2)#-~^?faXvTiDOWTc{dkoMEQX zACEesj*V-Olpg;Ex z>%Xb-Hwg88yRlm+u*BFaa`+P(WEXcrjVTWG0;P95DpF~}O^7^fl39XWZ4(?6L!&rN zE3~TGPp^ST(c=EiqIv7HIzeh!|2@O^FQ(8wuLZ&DyZuHD^LKR=R2q^$<7 z@WLCs^FkB1&^;llcpca2&)R1|5!;VHh?PfgVaL0&L)N>YHO^yxo{u-yWUC+)pI&wI z*|i!OCj-C*w$x^pjMv;Mc9b?wZen|;S0z{v0#}HrYhPofLGLERS!!MNU4{l}c2=w6 zxUYYTwQH+uAv>^WNvjbY-KDo#`Z0r8eixebic;-cr~jC`cBX=s811bpJ9o#+A$Ao^ z?Tw46bsSfx*3CL^`MY1q`hSk-{)TC844iZJruvVAIy*6SrcS_-7y(E6TTu6(@4U9K zFtqqRbr_`hE6L9X*~dVyjfI7Z(G>b*#}nOc{uw+8iG?Do?EnS;;Gj2!J=k6@>lcEyxVux^}$hy4sJkIXiS?b*;8 z*1S)?)*qqB6wxKm|A=Uu&#U-zyW|Cnr49NIZ#o+Nh|s|?zlcr+I#>KF+3k?TS=k{e zv5mPv1VbKIwVUy&xR<@qaWir1T->BQnbNwO?5Uo4ysBoh-Zt6gQhm64H?A;Bgd7uf z6iilfy64j;uRoL1U1z7#%iCpn%as${by4ak{w%Ci%2>x6HPapF;+}!nSa$x}a{B}^ zV#nk2B!@zpRv2m>;WskbAB^L@&y|hFhDNTL;mU;wFXBlF71>2^K4}=lJr5$cC{+)- zFXM8`PH%})t9`wMI>~ZaqjRZGl=Ain3&8DFSV&&gUyv9~8*{bwh9Yt$$^wvu9XVRL|U_>`}qz3wCY5 z5jtT0H)r@o_ihdFzkz^pygwuS2sb+btH;MZelmVQrc`Ejj5OugNHH{&wL(aeK2p`6 z1fud8n8pFG(l*w9bu_-q6U0bM8*3A;8%Y{9{Hqi;v2xCVh2YXL4WDYBpGSv{=Ix)KKoP-S^{g zwqgb&YWytM`_ur0kNRxduRQOQxA&U{g~bsY+uTI9b}J6Y1H#D8*UtEKA)dXQ>ZuJE zg!qvdy$F2>n9!1b^QOFoME~>al(kE*je?nl=$z$|yYkz{@>(+26q4ju(rRQ!5LoDN z%l7yIFVcQkeXn5aUq_^To^E^DYK2UFLH03!m5x7k<1*rf_>00#IfJ;i##P5$FY0S; zuD5m56)>JV*X;4U+B>Vf3_HFnXwN1pf^!!4>I_+f*t#6NcVE0eFtyDZid1hkbWf%& z|99Y&?9K3 zmLn)jnzg3s0qqA(zBn8+zsHxAYG@X0J}KViVHr)BdhgjGC=&nbXWBrtyO2JWv|>sAz;Qptxtm!QXuN zzMLL{LywE)-ncr6bvqUJPja5@G?jfnDv%k{mQIuXp1g&1H$a*5oGg&cXz$(cc}?2U zFYjuA*U=`h$R4Nd{&Qge$z}YNR3|QRm@Cl)$McCK2k0+bgh8sU?1)c;BlOP4Z9rPL~5=x5noi0{UAi+{9cw2@{ zYLD(5CM1O(aK^vfeU*(iBLMJWq3tlu{?HTK@@ZQqnwrvzbrOP8X6jQk{8j=sc_(S*8o)fu7rfK1m&)@ zF%d@?F)<`D1Hnjxa`IFmLPQrg7ChUW7@HK;pJ`H-{x@phbUG ziUW}F(^7GN^mGF~2JbW?6Lz9wBYHc#o7`BNF<=G%9eLI?=U&i80J*tE- zbdzsJ0V1^k>u)Lh$6^TqJ=TUGtACK}cf9|{l4af8B#gE5{;$Ga0m9+pf)$>PLdLfJ zCS86iZpXg~M*#@O^smD0c)?>f0)kNiPmF(mUi|5;|6K+P3N3kP^zyzR4#+b8qGxTm z%J#On0%2H}SQli>@nMj_)xyfqnrv;H?)Zr_RgW1>092kwNbJFV?7`>}VlxslSOS#D zy5L5$V6Gxbud^BC;>Ii%NEaaVp2!of%^x`*X);5@c-*TJe%1ZE{v4{9T47h2w@p#J z@paO6919uvoOK=z2A18WONV`dn*s8j%;Fu~Wd;4z32y_)C)8rkr*B;pZyQC!S8xmb zs+?2^n~%63>Q+#wjz#?Dk>j2OP0Bp*#+(C@=>KV9F_8ZMOdTbL|2cJ3U@5M-i`@7H z@nPslMH>mqA7S1hweyJk8`#f4F9V<(ta+$=Go3(sA|^7wor7Fn`?N{%^Vjf#pML9h znL~nW73z*?KqSjKcaK*BZkxA$l+!Lds;^DCqB(hBuOd+JT4{gas=aa4!Jug6w9V)3 z>ZFmY=85Mp#$MQ_OSCFOfAxLyzKixs4n7@$12M{GF^nR^VioiA=Xhn#SZCR3RKi-c zStqvC*E(;_)eXVB1)+WHg7ZZXU_3Yd81x06!BgxavyZ!b8UkK^GhfEJ{HwI5)M9M% zpCQBZohsx%P_;op&3EYJkOfN3cYPa!#D_7ytWG^=ynM7}G7AQiA5MaX2hRf5Z>5XJ zTSm;n8uU*D85#fUQBaj|(+=$Vzn=vLDO4Psv%h+vx9crE4VOmRdz7-M zqB==T2IScR*8lA&7S^2N;vu82dJCS;yw)F{*tLUuhPeyt>m(gUm^Z^425D+EUbJ~D>A%{efgnXfRG~Fh zj_n(0TG-6McY)+Q6RpKgE2+HTMfG8sxFU3MWG#Vu9%RN|Ni&LGeBGVX(N6dlc7s%a6!A z)Tq*RVn4NaM4iRUVU<#C48YWwdBb?GNqlaP-hhO!JO!_IgeQ7rS#08a8vbIQF7QI% z<$m7sZo*K*DSyzpj%xT8aV&ZL{NB3=uPnQxb}KTHiA6m}@Me6tyE@3EzcfgS6RV9) z2p%&bQ;TE_1>$GHYHIZ}))Vkh?+5sCvfpoYzuDB~2tXzOUzfl`H=yxf1jKH^B@gp+ z-~(&(bO+Rgd3<1g4zC(679Z+D{mwfwR1)B=iThQp+}>JwKWDSp)gbU4`!nAL*kKfU zU*GACTiHnQrpc~OuBY9e`p<4}&nKu@1&!w02 z1vo;Y9}lRa=Gt+9<3c8ECA#H5%V)+be`7Mz7mi}~ynHkq*Ob7#I1Gr!0$7_4`21ft ztGop;=B?~(^JiS)_Q2Hn06w7KA7|1W(52-GOc1?*-$)^b!eAF*#N}=SPfs(>;&m4} zcLTjCdUZbdBK0bm9eJ4oP5i-62pK7)IUF{`j$5X*8I#bZY=WG%+q=US(`8Dz_kh$+ zVU?qGkk~?f0Z@i*#swX}N^Ry^-r(53^AW*ujaHg4IXJhPwk$_WbC$JKDeZ@AW4<)V z7?5_l$~&nZ`+tmmV{{(cwssrawr#tOZQHgQ+qTizw%yoCW800BHu~On?{m)GJ@@YY zWsG;cV{|k>GUr-r>Y2}@tQa&vw;FXMoE=qOUM8cx&%%^JZKJec{plHr2p)p>mLKCt zutc_{M{ZqA8$PA1ic8t^x4=NTYK{*DsJ9HE{ulY1-`}ynvZEHNtSbDJQsigxU$X_u z88X?%B#b>CSthmlagcGb)VNm>U(&?dd45{!GRqK!r62Fea(KZi6(L zX3sNw^kkXM1ziFolBXgR(2;O?C3W3KDtABWv*p9gzpPH2A@VQKh9b*DaDKHsVB*`v zyj76S<7{8-6hsaTjYP1hTA-m(5~auio5xnWV@Q=g(`FTDv`+82uQ?;05W%GhF$VN$ za;PC)s-ivkF<{R*v#fU?>A1QkU0$gA<@@y*P|HO;XTx69vb;P)dKCBhXzeh%1{4f&!t96aZaSi9 zOdu-@@lJalpU@0O^?o7 zBG-1jbInGk`|upZ&>#>kg~;uqaPNB(Ds?@%d8si+ry=gLz#F;OhA+9VaomqzAHw}N zdcU|-5Mmui>=#qfg6Aqt#AHrYdwJuYUFWx7=j}OQ{!qHJI+Y!|U$$r@Ucu~pu@|{) zPMO##WXdpqb2nFfE4$!q zX%P1QMex{Hro@ws3v(?1?_FKzG&qb-d^0fH*S78h{F3F~!B@1(5Iwc;qIycpwPLT- z8k-^Z`=8COWcz^kKl_J_@`ayu7u~V&sJvpPDu04INYV}+z-;gaiWsft*H|W1Q~3m% zP1O$NPVAkrFtycsUESMOhkYq<4k+cD2?d)nm=vZ#*T0dy{&uC_m1?fD0rD&oz%cF~ zW6PhMQ-5UBUW#J?7(GhoML=wqq-5?#Xs>vyngOB@rd`^kMGQ0-0MVQvVy5TQa~?rl~`%==@c;$o($HaAgQPlUmn zhRR+Y#1!x$d=iaWq-SQPU@oXXD;NW0r1n<}X_wlYKEy3FR5k?}GJF-2ctbBYbnwLz zYFlb$wPupY>sZC*>>#1`$TkHix;IjokxXADVvviZe390L(3X44aET9dtzH+8-uTR@ z_My;0IT}AnRXYlNa0vl?m^oFv)Glo3Hur)t)t8ch@Fh4xah_%VJ%p(q+m2Sy4Juua z!2qdR^y51fqN=|BP|Hh-9RO?pBS^N0r^>cSP{t+C4)jvq*;Ardwp~UxZlLy3eoBfH z$NR?LKu4TG%_et%7zYkGfeil?>;61_g3gXkw$^`~!K^rGNdbP8;7!95TGmG6C$xn= zzosgIND%qGd+;KFuUd7-MYnVSFG znLP+4X`3?Z=SIW7Yo|Mm+K))oXStt-(*Pj`bAP81rn;$A<2_evg&+qgJJTR)1de?k z-<6O!()<*YnPgRP6AXDevy-6~Brxvq*-Koy3Vp~&U*IU144!We`}{s|-ximT*yrm5 zRcAvz31mHCr0ARL#@b*7Ovq_Kn+BSV#^c&m@N^ioEz0I;;%XpRIzdA}lcsbZ<)m*9 zTpOzgNA>dCR*u0ieE;%Cr{8kmIN5{QpE>X`;Pa2^g3@2xkX}>2xCB5hpDe5!=;)%W zUe#e*xHu^w`~zlrgQsSZ6vY*LRULm;O10WJLR!(97vK+`>-g^uju1tP`|OX`rOPDA z6r0YNwMQprG1xpQV7QH0p%HRFmzT$jEGu0^b6V0*6T!Se0a^ELWn{1-Pi0XfkP;H>=3 zANs%2oh8MM0XSz-g5Q7>--#1giyvDr=Zyf-IIk+t`J+&36-27lFlYDcr7jW2kSpj^ zM)19ZSN_TvrXep3ME^W;|A7BA{Lt<53UmpI5BapXV86evG^`Mj3F}cw#dyShAeF)6 ztgv2d=?jsi$r+ayONMT$+FaoYTpoB~_+VFrn9lixoN-l(!>rGK4Er`Hx&iuT8C&L4 zXmi~?*G^y+qL3e-bU?M1gs76R;XC~)^K`WS)bh|)fPTbIoEAC)vZ)2TS)#w72%Q)yhs?S00nK!v=47+If7(6gFpVNzSqoz zbX40!a(+FvNX2+#-Y}*?f~;G^ik*;|~GE`szo4RI(dKzt(DelU!-( zP(5J^di9$ilRk=K$xl9z0Dx8gOW*N73GRQa@}Jb-Id&BQO$Ri9%onTf*sTj+s;-88+4+%w50Q?xdwiJCiTXxnk*x6Y7 zyxV3hUE0tq{fP+BpNb{WrmA_MWmJXRu8mj^(_aD_{p_gLg0p?>qE^~WwJ8OUq6e7; zKFkRh_VtYzro3gea;+9#kTy=S&BYu-WKP6lovCgP25C`D) z^R5uD5u;Gr+PmL&Z;-f_ZBYPe%twfK@3;U){67jOK`VVnM{^T%LwzT6TN{#})0toY zBn1GM{|Ug%QnFUWRz~r*VWZD*BGeamqn<`DCF^Bt5~%eTgLt0|Hd{y1hEgfnRuG}z zPvRH73+@y4)&p-{^QF|VnA!Uj{z{i3+rvdN*JKdxd(D&=fG?4g{-Nj8N2deC4p})E zuo19s!E*YcU_zT)yB4S1JO$gFR+AMQ)?{ zs}q&^MfT`tVG9TM_}rTY1qkopNA8EJ8;s!cZ%HJ92&LJR0|=SaG^P!x0R9K+Btj=q zO?3j)*|v7Gy$Gk+!-n`GOVD^&qZ>?Za+-?CeHBU*zWR!N*x(wSOfN^cib{)m&c2{E zi8%j&eT~K@RZ~5ze$IAA)#~$$^bF+)n$tx4g2WMYM-&eGw+dzOhl!KyuX-(6Vok_y z@Q9!<7!ds-xd>n-j}DCoazR%@*8^xMY|WJp2?q4r4j}0EL8IuU(3&ukVaRdr^)}o| zBYW!HSRW|KcoNR%Wvfw9+5F*&A-0IYx(zSnfKPm?XF7_khHPY*Z<|Wh=i*6&yPC4^ zjKq5>s)Wtt7AZw<;-nS7nWLYIY;1j9Q?kS3^=vVOa-SKJZ8kHfQei$l4^9-b*pb90 zluatv@iL+q2^DjFo{RH`n7k_29hDotK17tgWTYo8|7h>UiHW<%?Ov7B-)P3fh3eEs zLQhP!J(NELl~=W26`2~CvWDbHYsu6`g7YGsOt*O52&3$G692^1hU(P5r-^AF?!{kg zzgQ=(II@5@yO-~_TB~yZiLLTSdi#Y%mkL`sX}yi(1!jMnw*B~lPS)gWV5%2EFZcw) zj5(XJ<;H=1_yLECc7^}f)K>mdpj-MX!=leIpae=hXO}f|{Usrc@a;TGyl3|elZbq; zDnQ4DzDw`k`U&s^FwhwwfGIw@~T$2nY3M*eN{a!|{8S>Ahk2^rK3; z=556~{J(__*9z-?xg!Wev6JW>!pGptjm`Cb3EZAP+KP1wy`3}k!+UH2{u~PS7}iVx zSsHqI$6v%owKGUe=rNJ7p40L!SE4TDk%jdZX1Da_)il+$+y@dVhGRjM*UNiH@H#@O zjN%&*>IX4aF{){imz*szxoqBaIH|M*Q7F{g=1q&zx2Mm!K`Kpm|&KNA*#M ze1(2Lu~1+nbOcbPQW^yibQv42D6K*nqvE7TRyY8(J1A96UXvpS0{{6e&Fxzh@2|~l zJ3z^>k}sDV{WYVXc>9rp5iR?Z`{MgWjmW?uLqrK^jDW$^sTO3rWA2y$M)z9Ka+vgP z3E6lmFw-=r7@IvO0|Bp0eLenc{&Ukv{@x)D-fWk%SD!$7j6L!F*2ThLal6uUyvSa}}kjm1KVV$3CqTX^KaN-k8HBI&*ML*5e$7@S`p?OKFn zmoQuJp#kvC3lTBx`1Y5OCuIaZUvtVd_Jae-TdTc+PO%GFt(i@X)p1+86VU3tV8#9I zN{FL+YFsy|7CxOM$cjt2Ksp=o(-T z@jRSo8D6k(5RxDBi#50Feh&zS_vs=!04Je>{%vh5Xk~5!&Q;Yn(X~MhO@^jiXZrrL zE;ri^hNt_hYp5-Rc9Due2a8kj!(SpuKdRZi# zEHWuZo{`jiG)r`KT%;CP zgXM?do<$MM8r*5WT#L!LmIj?+l-2VMWov3!zU~mM8Z4az~U^_os6on zH3VA?W6l1DlA|+5TD9DymNNI2Ee7(cE z(++u?N}!pXoH;|&d3_RBthRHd6j+ne!+Nt_A$&zr0)y~9;a6KRWa}Qp9L`?*apcTF zo_@D+N;(6b9SPXJ#!1Aw-zw!z5iR4NEE+#KFaKtY4H(`4h8%x3XaJ0?KM(OL{2YCw z1+Tj-9i3~G>$C!d5DFC32HO~mjdViYvdXjNuZ08qI*9Pl6tA-k_HPs8zc_=LaiBA4 zs3aTf=@lxY#!E>|ooEx(<#`ie2|(hVN}D9m%EtGl0eSBZ{`iTy{T50hO%FyKXMFd`H2|&p@3A;s~ zFi3&CUN;j)@Uu*d#^*Ps$TLM;fCLpcuQ94d9_ql8C!}?#nrp{l4!#arq^J42wxG3b z5%3wOq#POgnxqkm;JMTu+T$C>fO8lbLyNvz8}8IT{I*KVJAhBn4>)K)agwzEcYgSX z2}K=jU7XAmod3n&2pAjK05Kv6nflogDpPsCH#49-zY|K92?r4-;c{%|5E&HV+ssnf z8&cQ32ST>3JCnEXp`!)6(ZD)B4Lv2+8D{Xf<4D|| zA$lz5le`n(l7uJ8gzZaW6;ov?ma!w{zQJ6I`V(1V2TSr$;Cm4~R|cJLw2zxd** zg4Cj*q0yZ2Pb;QpX)DZ0k4!eX-Zu06L}aI~Yfz!0vV^2Ty1BW1i~Ggy$Pqvnkg%jS zKFsI9sL0ccB0duNBxsFhCb}@L9M}XG$?rjQ;BOg6_H4q#FYdf#Fum@ZjYa{kvYeF2 zK^&QU2m{vHQ+rb?A+Ldmtcy`j?5(Lp|0ojjS!DF;K)|Ex+ru{uoa!`D5z8bfB*Q3} zs<*zkv_9&ij4;-Sq&*dXmL4e$R$^m?!=^>}1;#)l<#bm#@|`8n9i~tRam;|?H;>Lu zJ-I-|i*}^=Sa_Ycl$$=t+1XI!d3DGsadW(qNSr*xvH`cLO381}&|5^0SGKMxU$ApW zDhG0B)ePnQs8GsPjO7Bjd{4QjDLifryP-XdH$zmG;d5YN;MOaloYtI_WLCfZ)h96x z20l3epUnJyR`G{V{yN_XQv9_bkyYr);s+Fj0%S@>s_>=kct#$v!IwrIh!ldvePt=2 z-RVl?lvO_ZMHA=o{WHaUtu#a`$DRJ>2SeJom%e(_3kv*psIvWt`jy`e|&ns!B~P?(oPu>E!gnX72`$i4&^8@ zu2;MrrQEhKOyQLNUEZK@2hW@XrYv_RU@ffoI|zQv^&UHuz-B1*82CzwuWmv4Zj#cT zh+jt%KT+ato6Su;RJ?sQ5m>&Ob3&3|Q7U&pb(Fw#_UtRZcWl*UHKcJCvzhdby=3Ns z2q(^*Y)v-kmDAs59-Tj*9X^9yO30%bH*(7}uD+4=+=bgmHH{=&?b8kw>MQ`fQ zv*p@Z82B*-eQsdP4A94_X~qojxBhwo6_`sTPrOR+Aj&acgM`)G``|I@`Xz$PFBx|$ zd)IUVY)SD!=G#eBBGo&V!!=2nw$LNys_>{=ySMf!w85TN)0V%qa?s4cmyIz~HNeOe! ze2562)^$9*wq2I|0t@LfqO5YhTwwU8xf=+t$9IeGgR7z$z}~oBxKpp6Acmr4?fN3^ z4!An$|9XGmqIxA70WbRr;PX#r716ggxB64lS~^M+zz+i$o3diPQMdxBw%PYoYC=Nf zMQi~!VPI+Pi4x>5E$DcBLy*V`%;-;)=ag?xUtEFIazs;cpoa=wTng#)n3~SMBwA#( zls^i6ChZ;~=({Yi)!1J#v2fw2y<$8Gobj>I5r&wEeDUriiY%_5s7`VxXVXO5vD-Xh zM*h)TD6-_v8BPe(*R?at(dtS`lbe91YRVCpnGuLZq=YQI4Y{KSQAxk5`-#eb8dgJa z_qTr9-1w?2G2k?@0G{)|$qz)0ZT{U$3yS+Qg9`K|4CHZ5WI-7=uMx_iB7lfPAc%)5 zn_xZ`Kjztg5%FI8ESS&)` zn==)cQ3p=cKxUB(RG!Dsf-9?5jJNO_ph4HWbzsG!kc*}Hei8Dn&*7SuU|vAxn*p=( zRs7ad)@l3#ujTT!-QbGdENYaU-~yfd=y0&sl&%50b65*@9>6$iU#qcT-zR*cbmwvprj@uQNYO^&+d=zhOZ3V6n4+n^AFJ~GiD zYsu5X`5JE9WJ89GXrJy)Fa8!lC;d|hO)M+-$Zf+zwxhep>IWa67cgJoCBvGp%xI3L z)vXv5**PM`Mw6PwMZ-xlWjz=)4_{<^6?2ijH_r2&lv7O**6nnjSOUI)tbb1ud6G98 z)+^rNNFduyJNC$>STinbdk&2MTyb2Ak^yrdcJpp{((&ffL z0~+gR#$027BjTA}>+<%hRzGzz_C{CLR3d4Adfj?W+mMRwz6-%i>d|{~%*`6T6xc7z z*x{~>LhhQHuhm#ZQP}}^4?qP|WB`7RFu_pDf%?b+e)Hb42End&pk#p56~PWu1qd+O z@{QTD?_qTXg3*aRMd>KGQ&fY$f^`*%JFnSMmLN;46Kxg|fkUvnKn-T>=>ZZ4m3ks^$ zlt;nuCyOf`Ekew7*cUnBgf>uKkmi!`RO1T!$usJ2;Mx5U0hJLnS1jK^pg{~L@Y>mz zZ+9O7_oT z>Hnhf)!K@+W2?rtk-j0@i$DUkWTUbajz7|JrqUf{YMd8-M5yb*nolSftZa2_Y#X%PN^dsHaJR7o~K>`9f#plI(w683> ze_lkmki|4A6T7x7g9#npE6Q|+x3_$4a*jdU!)I*@ysVQ(dC2CRSl?5XJ|oh!%;+b%-61C1Ouva+(lWa4!nF z1rIYvI-r~zLOq661K1+=q+9SsE{D?=I#<@?xFNWWi zQI=QoqbqarUACRWz(0sUOe zs-E9Eyawf?MVtTEc}_^hoiqk!ki(uUcKO%sD5R6&~P z-wCx)O}_**>*j#mbE=!H$eqk{FqjE2HL9CL@l3PjcgaLx?H|a>959F5N$WL#k`65T zm`{OX<^~mp?|=wuGSD8N;q?FlXb1&o%drs`3tXhKhx&jQ;0zNdm>$---$`5Ht`%~9 zLbL81XXc&Nr;B~IMv6!zz5JnD5%27#a~h#C`tsJgX}jwZun)KRhHowk(-?fuutJ-VH>ozsySP2y~vbt6%^&x!9g&FSJ$zl%vItRl;vgOlPv)j{r zR$}cA2$)@H$cR1CDRx)__k2Fs=Qi*V)fyJy2K(YWtgV<%D*??C%#?ov5_w zoq;owKB<4$MYBn{!d;_vE-!0WJ@(?ExFf`4bOT-8$IuUH9PwV95qSE(0RPv^kzFio z3kL9f7vS?Zht?Ct2dftlA3q8}8)PxuRh~kLrh>v% za?V_8#AJ+3^GNq*3;t3xtlk3w1ayKF=7vXqW8_zZ4H^eY=D@ADT+J#`hs&7L&dH=u zBw@`1-DzHNiWXs8FLzPH4Y#80Gu_evS`&omX3tGH;VsQjSnQR4y-}aN4@1>H6IZp3 zKw2SANT5tm*aTq2I!>Pu**9LfUNNteSv9jQBkJvN6=b*Y7Qo_4)==-m6~m-+Qn5z` z9cK5U7&um&O6BM$oqH&+(^w&uZR}POSB(l&ZFHT*LJ!^FJn5J){n7t~1Tq&=o#DQ~ zLQnUEjcXPGc>TwPzN-5*Fl+70Z!I=8+e8-wKz0la^S1@qpGY1BTiZW@=8Y=WiU6h5 zjT=}5RI1P&Y=7IZ68V8ee+?*OE;MJWub8R!2kAOv`the)bQ~`yQ`bMqy!KmKgNx84 z^2|QmrU7=ZrY_DmNI!UcKf%3otP#*F0>~32S*bUSRD#{4?ljq=j!Bz19&{rMz`i47 zXcKNO-IuG@?<}=p#O@4%G-}(u2qpxHW=(b1)goiCNiB3$Ru{iutpkzSzF|F3NgL;$ ze}Ig9K`YL}VDr~UbkhOJCbC;%hyVd=-PDoRTcOZzOCIAjkxP$+=yw#`<1tszn5 zs@urtx6h)CI`L9YV29_cmaFVqp=_UgM>0C%Zpt8P z&uu207Xb%cFJJ>AloE2J7vkKRmU!iZ+?bCS-!f*3K5C>7+uKFSk6^8-N~z=_L1;IfnkEajAd=G1p+phu!-t<-@KKX*r42J;?!(RE2m_?jo7mAaIg|K^W;I) zaYY0!A%%6ij^*aJyt-X~WbOZ8p5(zj6B89!_T&Idw5VCe7PqH}Bz~P%){y>W78Sy4 z#Fsz2F|H__m0T_7(igM7?@O(*52sqWx2Uaex~U_-j0DvPxyCdemFU*QURQsQDkwh3 zpjeGZbp!T^AeQ3E>A})RpY4nF4<77|H{Sf_OLFpt_4HU%`){RESwjZhahj>pnOk-* zBD2ppp)aRCS(Az4H0L&7yO3AD4*L_A%#sX^5yi4mZ!PvS0)=cr1a_AaKQ=-FzY7gu z00BXp_JBZ};e+d6@d1(%ai!`*jLMGL|HF(u%f| z*hNi^wiDS^ZYjFrTAOx7hKV9uJK6h=bFSX9UaOnq1%7eD0e#{8Oh3~F?}*DCau1yP zZAsGX!`aS6{tE=2Wj6Vx(k}Dx4l|(3hbZdvTew35Z_nNZWCB0=r2p?m$^Xh4@DpDi zSdP3q_=wIQq}AC@d@`X(_nu!4#o@D*drBDh+}Jn?|K$kJPX!u|SN;N`!52><;4;|mw?^_SGi%Gl1_$kq-(B4lf2YwGq}Gpf=hW;F+p zPMiSV!vBJ!{Qj#yQ78h=03{Fy6Dzm>z)w*zN*I<`daVpu`Uv<)efD-d2tCtq zh;!L+?7Hzj&2;!v9Sy~-O60FdL1qIht*P4)1n_H zI6J!wR!(_FvdhLEqbP(BHOL8r#`$wh;ch028EO$qQ*qfrhu0=EPEf55rq8YN?w?l9 z5aqh3b3-lOuj-!EglfD$rw*(cNNkB$8C!1D`ovoY{O9}-5M zh2Qj;B!UCtKu`m!i$x8?Dw2^9BEN_e6&~C3(&i8*i)GI!k!^gtShT23MJuHB z(U2_MIW`JkQ$4J3Q2)5wp(8?@uT^B!hE{!dp;4-cIL1WVoTT){I!(-AsdA^+(UR8i z+_*oTk+Pyc_YzCk$m(M|KA#oJj12CG`llI`X&k7jF)B_r^8=i^b^pruR)cI%pIc?3 zp*b+qO-s281sFGxbu2~Jb4fvUWW2UL74^6gpmM80^;Y>jq=u9yuhnJ#c7I(3kbb7g(eV>M#ndNhA<`1QZPFdy z%XrbN_Les4Bl|f}2=Hy8+EOn2#w>V}9-NB*!Xaa;AJ)N# z4GAS6;JHt2nHwFd2n0tvSCk^5Bmx4=Px8?vW9jxd;Xk?Ddku_u;%rbF4(g}!_rZS<9lhi^wBc}64 zZ3NPZ@w^8KeJ;O9fG8O$1q*UHRFU-<4dxddFYF>CiVc2Ef&563m_(8idZ_X#GR%Am z1Cihp+;*Z|aghYkDsi*qnX|YD(uNK(29wqsnZj2&kqDPFL&!=e+_&mz^W9yi#;`{v zk@Di})|DB%ZN?Y=2pzp(OtuhCKe=3Q{4UcjOA z#j?RMWeH8-0lh?TPSDE7f8rq&@-g_;a#;s?`CE^SO*cMY6PBD8Zg>7Jq~}BGYx6C= z2lrCYq8}&}--B>)3}s{v)YmHKp{je)rPbOecBgf6oi8jJ+lCTPZg6K~A3ZiFj@zkE z<-gpXLi!P2JEoVV@3eZ$ep=_~d2trdJG9{P7GB)Zvuw#f>@{f_h97|2L6G&pM~~ye z%R3~Drd^0jKFZ90gZT0I-A1QL50rd9!H3|u-ym!YDGZu~J8&*L&@RQ_S<~@W_OZ^Q zOhWpDz`^@Tru0gcDMt6~85awV&Ylwa@&gQ3Ok8x%EWHK-d-pJT$x`KrNLl9BDk29R zlQnsgJEmP#%+JctnYyOWyrezfVFy3R`JaeJZW=u!3#)uEd`8>VrEoq;iQJSwdCN;G zgPJ^9K7pD%T~3FhJ6c|WlH#RSVaPQtgrYlE4@xeAG^>>Q7@-RJjH*SRqu#~;v9U{> zK-DfHr^=uE2e4J!2lfroBVpi`BOl;SIBavF=DZZJ7Zlh_h^PsYHoGX3EjIT{=I9-C zp(~7`t3;YteZg~S2~=+*ikIKIN8!skm7aj6#~J{N$n;MkC>}GOpKT}bGeLf z%+s6!H4MH;#{1Cvka@^+*m@lES+@%~RX9%HogN}f1O*TC(>g0p@x=w$-7q9DeF-im zX}4R=2`ll+5?2{F5=MVst1bRYu<29dV~5!%L3uR_hP9S)0>TjnJ5u}LLk5bmRZY#p z3FZ1ehBHShjd9d)AUX3L`1hLKpUO*MMP(0x+Jb|XfNZ*MUV^wli)?J7JC zokeqc!-uzY<}7O;V}RbXlitQIl%YSueUF`^$LOf7|E5GdirYhr`hrn#U_Tbc8@#_3 zBt;FS-K{d+o@M+>G!kygjumvOM!$&x*%nX{j&c$Ixy$QgAM;ys+y~)BmweFRUdx86 zV`EtO%h;Pp1likOQu2L+ucs)a4({r~1@Ypywee9md6R9M1f>cZh8`kHVJ~Jy;DFiY zbN(ALVQ|X3fyc;T(((|l?~VvN+N{J<+4_$-KvU?K;awU}AP;ul*JqM)KF`K)K5Xun8&lWzF*-J*A;*m3BtpskZO{Po#K?% z4lCs5)A6lsnroyNmQ9^zvoHBfJFpB&CowEJh)0dJ@n*kJ<&p%d~v$Z^q^$*t>u~>_XlF^$CEB*qaeyHqf7tTa7*JJ;e*c zc^F{=wKZt;QbJAb$@8E5Fhw%0Fr5lRCC0S(Kv)CRIfwb`h0k1{;8#V%ZvxMQtSb5# zG$ent5VW^wp%A^t%wGk;L_2P(%T0-DrL{FEC4>KHpKTybd16$&B-np1)cY)R7~p>} zP#l)0toj3LMd6rxRL1qQ1lvaVGg6Xm04nuHOKEr7p}yDfJ?grkV(0;2H4zZ#93}@S zYtj@BCT`_yy-n}GT)w@^KNO1HRgLKy&J3iU`gJI<-B);+r+A^mERs~RMCO0tXC*0p{G`Rm20=HC$Z1Dp~vz$y8!5yJ1uzxcne z%pduFQvAfv&AOnN)#+Ty!rX@Eb2UapB$f7w@c1GuO5Xtj!ba-dR?Ic7`{CV!bUrL- zJl_z3H7O!gXTi4C&(_O_Ylcq`pFelM!`V&h$q0j28k!bU#xyTw3aTaowe?yaJ~Kjd zW2%(~BAjklawM&ED13f?iFcB!aZ}AB5uG{GFiE2xUqfLw9+FZeb0w&8q5f`@OID+; zz(agkOk$UKKV-?)z{7+f_V_G{YR)-20UN_M_bRrPt3p>j--zs*72Qh9$r|k>mq1bN zRTK2wR1&alxAXyhY5!dJD{52)rH_!Gpknu8`cemnvmpdS_Ks89$^VI3QFmi^b-%W*&J$YvsOA=-Z50%#!v?r@8 z*}OtU?{7+{YR(PSSbojNUR606PwLYwOvz0kY}0-{Xm8s#A)hf<-_^J8z~MEnec4U+ zpuSh}^nXc~wV%F5n9|@If>uFs9dQO8`Rx(x32rR^>B~hxP-p(fNATai{GX%tr1&wJ zeg*{Lp$54Xg^hh!%@t4~17IZTSgaByyu6B~))5ki{eie$z+#KxFSw#P5>+?|QbuOv zE@#)L=hv$rVDHH7dbWlY0eUQo5u$zZ7?7&MV2$ykvXvLc1|^q9?m@XwH9(QQ*Re4z zq;5x=E&+sGML?urPl`nNf-HSul^3eJGyw;)>sLzyIS2Wzi$q&o#&!!953iF>grpLg zB|i|kfOZ|hp!bgR^99(Ml?Mx5`N05N(kjVfciB$9ZhG!N?-$Y8Aa7>YCA3>p?b16u8fc9YUn$+t!s7t8pITcuHj!q@1-86QKtADjJ?*dq$3 z$V*Rg0Eg;bRw+CFUYDn?CWbNpGe9 zYE6PY`n{QOoBM61-zfQCZ|BZkRM8N?lRf~ivi|>j^k3coKdbWCTAQDs5mVe6U=}Az z^W5!%1|>)&#CT+=t}TYsvE1EBu1(=<)fvT~+zRq%RN;9Pp(YLaGhNyfLx|$kv@QBSpNSlBjfA-_Q$|T-+>!`9#ks`VswfF zX;6|(#L!})g+dr@-!eT}Wu`8p#6Mr+`ya7q(2f#BC2q1)G{Qo!Ke;VPH zN~=G$$#7F(29&5`3$c$-`fGMVp}y1m~XA>Y|UEUAh<_nWJn7O@(XZ(TQbxb@yT|vxw@SKB|h?S$ePZe2m6;NMKm?SX^cY!Ysnak zN;K#PCzMkqXOkUj7%wh*kP}j$K0dcH;z=QL;{S<(M;F0--d)WEm`1=dM(^ z7eziDEuLv!0preyJ=AdzDm-b2v+)`sz8N{GN^SSz(}fPek<1K>Ak{mvvK&zsi+t2M zHC|z^SUla08cRZLl6}B^Tq>p#!sd))xy+GwMRqZn@2TVmCjn`aFy7>4E=7%3iPBHa zR+G{hsZz2?L)FmV`gHvGZJ0MI1jXo$2^Yrt&hV@t|ILH=UKtBlOx0{KWd3^*1ZsUL z|Mg0DXIF;%?gnx0htlX$b2|1fGqmi^7C_#<6Lms*@6r5vkh&g&ggq?@;eA_RT)(Y&1AzW4ox$Rm=3UQ+jto5Kf4HsnS-^FzQP2iYay zoWK6I8tnKrF#RVc>;drk=fEXw<7DpS_V4iZ$0HXNxBhbxLZrL4v9|H+k2%qjqEI^5 z(|dFHb;LtvZvPhX2#vO;Q_0rPP$RnmJ=kwS z_T~DpBY6I1^Dx~-yRA-U^_dH~3Dag~y&Z5k~qRu}$=)I%%;~x%@m%T1t-exod`|7$(>6nzLBLU3Q*f+uAL$%;eda{5I0v@=N2Cf%802JLk zVD}`YRKzUr&dDrAga7(BYoM1(SpQs1X8>4({-3Pz-{Xd#`XYji2tiY~8n%@hrvkZ; zAaqtGnyTw4ApG)2d=nF$1qUVq@l7b6Oz2(!4UEVS5j!*{U5R0tf zxQa_q$5Aya8R1^DezfeG+lB5)QC*Bx2S`E~bo&}m)Y`;&=#rHRVg7bqQ&HUju44Z0 zQD&{-c{Y`DYfWbZx5uy1(^EQ*xOw`b6lA-QxntPH!1^3dV+kYdNiG6Y;5r!+qJ3Xq z?{t@Fp8CpjZpW9NS>1J7jWl@KXJ{(2xrW4x&M@fx;NUJbaWh|U>A>7{eCGD84SL=4bD!uZ{4QsRQbGK#`MFGfvEv3s z=dW4f<9e(EafZQlFkyrMA_ObN0UN%8lc9-}@y6Vn5|oi^ugnz1Bb6wb-ie#JP0)lX zSs$AOBa;e;jch+98gV8^4$aO}-nEA2%e%1`UQehY_L9cRuPt-;bmCOT4=bG3BGYj0 z#$OL$xK|@}oGGm;74({>@1xdBQ9Argc>4L(L!eD|v3XDI!C@PQ(a5}F7$&V=N^7A) zxXm(|D{TG;NB(#JR2A z`r55|z{IU`?aOIK8wau)9HE>~6vcJ6d;QxH2=NNud1xZlg%cQYL}a(psUT^j?F2)r zV$DK&?Obo%Q#J{b=EUH$%5+!Pr5TSzrx*l0g0Pm(-HL-(zzX{bR_cjB#{@Sw+cb9! zd^O`!KyBPNpNz+$Va}lRsl9LrsES~TOVQ*x9I}GJCz2r41jnvKUu6G82Ut(A0^G@&q+DXuv+gll|b{=42@N2998&wP#z@ca`hfHiA(knAgbje7v5X(3$qPTr`7q7 zI72a$jrnp4$^oGw#v70MLzE=v?XU{}z|ogfnFOhu2BqD{tuuftPRI*YG738p zo=>^5pk3dQpu{IZjn$HYW?6a*!045}Z2;!sBb&thXQglKpLlm=b34Yaa3f_9u3=n{YwpQr1JEgTxv=zkeyxMn1Brm~vW&J=;(2gR?q;Yr zw$WJj*QPyGRXuk8!hpgMEdPSJxuqVldir`%;4P+XLp3zr)-A>#O4tg|MuGrC`*8Q{ zu>HROSnvtyaXa9-;vF@xq}z*p?(p>6p3ezei!v(}3~=e~wks@^fxMWRGJ+vQ3e6B3 z#){%GugaRHn@J*1UlU;|kzYQ^sA+5SAVc;_0F8T-ZSQbxdO!hl%&~)t?{mr#V%LaEDZFQ$=rL00X=0PsdrzEglC#dez^FOUB#68M? z*C^BwpeKIJ{VLM!P}ob;jQ?bR*u9zFE}LEvcLEY!3z8nO2|M;gwboPop%3vAcf|$J z$kfW;JYJCMmY>#VI-nyfgpI*$%$_?{8i+}lsjy^~uGDsj9Qe-Bzm;A~xk-rZSd;~U z;%v;SQepxSrZU(k951UgYyK?eplRxGTt$#g!`I-*&aR6=>ZDqWmTC>ydl4jWal zHy}0S!&d?|2}`*eETaTzyzf#=s-=l4ur~zSRgZTeHFP%LQC-d$)tJ9qoG59k;ZwM_ z{(PkMLOL!MDm+XKSN{T#L{PY-f9l^kpyh*=4G&G;M`ufOR6|5-_tDL)_6*&WYd~BR zesCgYrO;PBi_w!IafgU}cgrAJ*C0j#oP}Q_fNJ$$`dRkw)-wIgwL^6858rJk%s@$e z-a**w69{mi5)}S^TB>jlJ9&N(tlaj$kpd5O}0{EmR zBo9Cq=p%?DQVU+H*}el!&^@S>oGX%Afg7joHDiTnozhE;DtenI(48%xfT|JrFQ%I~ zAH!KvCdBUGBq3-l<224;JpyXeM~1l?@1SZt{r=$m=MKtR+1UdZBL3+Z2E2{0V z-(=)ud|<4#{PL9HmU+^YcFM!!4ldhk;WG(QR{#B=J_~*Mo2TyVm0vf1O+)kYq5Vpr z5ig{q()%WvW&U+m9CudDJ1a?-FVxXm_$_UbAT znCZeWnlie4o%PtC<_7c}Dfftk0PKEJ+cv)!Oc;<&pjUh(h|3K{hZRNh;wLmA!0M)e zn)b!&{u~k?pa{7~Obw$9S%VCQ4*mgcL?WLiU!akg!C05xUkGZ+7mq*SKHX}ia2K4) zbGl_xUGsdgVI{%4aOP_Z->k($D3SiuIgV7rlG*g9%$?$7>5}i|Zb^@wX&JfcoKMs8 zHAIJ$Z%i2FnWhx;mGi-3z7XMs&nSn6V^ipyD&pf+N#E7$VuG>-_lwPrAM1Zp5BKaE zfFblDQA2ST_RB}mvD)?m#a15;PxOj9r<;iH2n48=oxOdqd83-dr-1M_f=Po9)@COo zYyJto>2V)NvUMAm@*6$#n7zN73fHVhcuj#AUxU;Htx!Yjpj<;yzZ`DZJr%FD)W;WW zl<^l+si>)E6B+@HP6O0OKM@4?2gtI-l+eD_ja#btWa<7b$-ZBZVbk^C;rSrNGo$sWdH6RPqVbqS1mxXBvJ=1kprL zMdCw&%i6la6Lf7~Cxxzx^UhZqwe$Yye4*{GPnioGdn04SJYF6zAnR!EK4mqnA1p$x z+HuKw5-898;IRY(zz8Nq$SgT!At-V*=f5|uZ;~w-ER%2odTRHKS9{vM>GSvW8Y zA-N(&cALONDu#FT<9Xz}#Q03nv6fXR396^e3KdS68I}}U01_H#i{&1^0J#}LUhw68 zc6{kKec`1mL%GHpyJ8->BJfZ$MpJu2^Inu3+O)I#8kX;5pEVVVsL|)QE&I)|0Zntd zJ?}jL6^U+7t*x;=rg@=4SVC>wGU3>e=88K4J#hB%to6y?RA_faDKqy?`LqMSX78Vt zJNNr^V!xmo(`Tl-;HN1avG)PGFRFNMB)UN2f#yjn?!F2W(RpQMSBR0B9 zrD@gY4eU7@OPy)GlA*P)7Y#PwHqlSiT7w?Y8%l0L-t(`&YZ=`j`4&a_48Mr(bUwcs z_cf|;zGlC>=C<^!o7V1UlQqg&uiu8bzQxnZb_0zE4H!0&{$ED)3)!nhM2k3>9FPHM z&>}+htvkr@JbScb33F^GcmS&Jih+}!w5=msI$naejNt~@c1~|il{{nLH;wiz4o@#n zkYpXv#?RmRa9|)3+qUG>_guahVjIe%X$gQ5hSy(^9v8T71kEbjNlcJvys(_Ag;>{d zM0AjKe`7D1X|zw+<(un2bvS#+Qzu!&w1yEgog4f>`h?-|g=Cy4k@Sw%qy1x&S1Aq( zKHPM?byKOfK>5wsk@o~2f`wcZJ@1rbWAJhI%WqQP?;AOI?aY16(*9%I>W^1RObX~v z{^c6}d7l8$GOsi5eQUKWllOE=6|NH!ZZ=&dh0v7m$^yUSfS|F8^2xOf5@Tzy=jEv3bAlsOK{?xV zljMR|_j6VfwM0oxBg6jYXKXyA`>jD3U3Cl?A~V3!Tmz%2S`xx1UmrpTPp@J2<8g!Q#DQ+%d*SpC zxHdn!p1^;7-7z2`30`S1q=2yWU##hmr`=pY*VfkLZ)EcLYZSxCY{|Gztqy}v@aL44 z##yQY1sZ4-ngVL8MV#15^FsXSmxA%lH0M8tF>>EksbM%8ro8AII{uOVc|)5sxXvsM zXE;aQm@J+NS={IpXQ*6MPA{Bm_h{br<+liHjNBd=9 zy><55tMK%I`#=yWfJyKs>@>{(mh^lr0Mso1Jsk+0B#WOuD6?9oXhaTD)lL%)HmxG) z_@g!Fo)|WOTN;(ENU*#|gqb@U3BFbhQ85K7L7^(nOBb|6bM5FV2=)+(l0#rCug(~g zyFocMxlmZ>vAwdq!!Xm2J(1vw}yw*YeKCdsUKLGNK%b&saM>)>GGMyru^2sA`i z!nhH$=wx-*dQ_7X{hl=1w+xUf1>W=5A&viH>3?cS!TvwHiKN22pnZ8U{r6O+tNne) zGOnihzn}OZVmcqyA5fa5^*6t3Qww^Z9TYkvF{-;uzc%u4=?*gg;X`StaM;{F#Fok+ ztp+7Je(Icc0=A_;1mOsk=bq$wv%z37a>}_53i``(vj}9Qc^p$0d>#=2c|eGr9L{Ia z9H?RX#g|O^JbM)=wv3Pr#cmQ+>xp4UNLudfVFprx`(#Hr-MOZK zKNqQ@0?!5s{1Lp#^8hv11KJ}e(Bu4fZ&U2`v@(W3j;_DF%>wz?xo5=8ve{>oGBvl$ zY-dqkjWcW{H(AJh#UgT5Ix|Knb+!c{o5j89``2x#%l^2bz34Uwm!o52?w1XJQs#hs z1Qp3qOg62{HXkw>Y0N&!ki4RYZHi*~@Rk#W)kv|DIJYMW>b@Bqr@wjIG1CRn_(2}> zGV^04BviVpJ{_Nwer9%sY7xbEOoi{kF^112`aFonP*{TdIdesj-0D1ptNF+v9wYfR zsmFuYo+g1%TRD>qgM>3r2D;_v@tsvWizOUT8tNpaY=hLa&GvH&Kg-TLIGUk}GE3*y}%}VPa-)U zztH?Bun+ir2S)V3r*m9fQ{P4v*Txacw6jHn(I}J+sx%#~1k0jsxrOI%(EBsJ^NIin7x@1*DE~u6zfuqs0BaXOUnYa5 zz(in?l!9bg!iR7#AOX>;oU%@dFF}LER5m)AcX58JvMb57jrOcN=x=W(fSA}u=xLoO zYA>CGiR*e?d(G=jCyaBy&TteOshY>mrsRd}fH!`_mSC2iw&4acJ@~8-I|etRTvmfC zn7sp3IYUtt$)|B!%+hN)qm9H<2@I@bHEI9UAVz)_DDBJfDroL!)|MqHBjGE8CBsT# zTQbzu8*Xt)OkCASoFMLSh!mWd!ziEQ^Y4Vc^`RbE>-LjKaPl4|99~?9#w2;q0OMgs z8(A|&*m|<1SZo1L$%aVu6S9`ONWMNLa%L^rRdp1!=VIBPo?rWNxSP~-zE4~mnp|I{V8-=gs=T1R1=TOrS=R4{kK?Ij{TJb?WkbL;`M2e zW!mG`wlwcwoEh8RL+J4&v9yiem72msp}fW91tAb*CLj4IL;w3cnV6W476K6CN`b$B z&uWPQ)BOg3S3v*Iq@6`{hcs}9M}G&%_FFlmms)HXu!yvIwFOMNE>#`!{kay7>g{jJj-C>Jis`2&HNh z8s7)$T( zJ`!Q~I{tMtA#$@_Vhgj9WN}%q}enb5LH2w5*OpLw6mEQi(xI z^9QOl6t$kuI}RFmW>=_cr^pYbA2clbo;B;gD%d;8m-2Vt&;nP4`6OntI$jkn(RlQ| z&tB~DEQ4S#t&7T2gTQ&gBwOTTpPlF3!}--*yn8@=*MO$-ulvdW@CN_2ejv^NT0ii1 zMtZT%fx=nqRL_-AF&7n;{19D9SCE9dG$y6~f%H?#YxRl|T~{}~FFkG~iDU1Nt)WEa zP&a76@_{o-HEXw+z7Wl9iN*oM78Nb8|B0GqLFH6MuXEKLC7Lm^<+JV1dxD=@ift&7 zNpgx~(0yZ77=DBMDHDSruXO_%MY4VVQxMvV$JtFyDz2$(lS`$6}+B&D0)lvwIR!Xh6e8Fmp zu4}z4E7hZkqsnJSF38-sV2^T}=09Z-xsTIQqS&nVE{~qTI-!L9pU93Bw^qWUsb~`A zaTw|%Iuh$j<0W|gH~2qE=o)B-Ea~NlXJrrD_c-F>`kVLdODl11BlX{{9hV#g?!+Tz z9jHCn@!wc84p#BLTdEG8Vv;{-5pK4S3h6A4c_qDt$m?1nvPTvM^(!K&8a4>$xJMQbm|R@Q%S zcKr>1HnsMAe1LD<1~5|p#|+FL2KB#hsFNq-S+ns3*oa|BDikSAGp^RRB}nFs)F0dsROQp{TN{1hkWlo7n--u zRF2BWu_MOnfBso+h69FChfT9&P&w>nCA(PA=y5o2ASz3xiV0{fr?zO4QjK~ zN0y+wc0NRRRtISPG^x`g@bfI2qgEX--BE4y2PrFO%HI@-g7(N+ev-)D6#F5_LRqt6 zyAA!qOD?16(NqD}!<&NaJO%w#K7|eTb593V6qHyP%1FWWCI!QF?#$7gCn| z6e)?`FC<#i$TW4~nS6%~%ekuv#3t{p^PGJr6J(P0oTH90wzJ^I({)bNZ3-gvZ0aIr zH`Q>C`ZT^qnDuEiM?^$1(}XOcHb^IB?~&@n3+oD-B>T%@lbOVWi(?hUOf?F)4)R7# zJjh|=<=LiXhh^ozwPR)tP?DVPpp0tSP6dAu>iLKZ6=@Smg&T$|f%`6Q?PDlZ{-3#m zf3LTo0k8ir6H2xKeG_ZI?>j6{RdU-lfPV@Cw0`RU_K6rU8npgnL;5d}Q5VA?0h|B} zSR-aI%Jog);nUmlwh$+PE8K}L^jn(m}Jnz2W$=Tk`+9`sF4I(RvlcJ~@S zm?a`e%ZJFeyeU3MFR+y>vsk?-tvP)LF^sBl{Sh%{ULe4a0EQTNUiQ>Q70CeV`04pP zE*Vie?>hSTQfwJ{x}Gr*P)~ue%0K!z|CX+p08mc0CWa11zpnf&Q22wAIit3&?n>DT z&5M`Hm#?c3O^&iJfJPj~VKyzn7_~ea1 zBCS#>#5bzT$g_4cI==KUO!X$c%g1|b27;P`TS5sFOEwKuA|-rMj@~3;qg2{~7ZQ_t zHZE4VNpkfQwVVP(Dk!{{w~Puq$P$+PW@zYJT%q$Bg283>8NLEyI9*y4Ry+B78)BV- z{g!o>!~&azwm~^wrce}+r}3fODMe`ZkS|x5XjoK6Lp1K6LfPc?t!SbQTlFVDe$i5E zF+|9dI*y>koXJQVq4)~w)cV|Te|HL_S$Q^lW9Vi5<>*1WR7ElD=WaVRHd()(Ixm=7 zrE6KDH>>^p2A4p?v)crOR!Rxn{GKy}W5*_lThHRs{cp`3C)K|1s$OB_{}!~ZuAx1U z9pzUFK?~_F;EF}mbQL8v4BAh8jq|-yl(fhp{)itr%Un|}QtLmfhiC&A4}21*wsbCZ zVY=KMeX?l-!ORib$AcLq%cJ8@6gQ4k8YHVqHgRF5lwoaVF9ACO51x?T`5Y>_8=`uu z5Ge)5!hiFP+x-rbuiNkeirD_%Z|9+vkrIXKbKqMZc`;h4f)x7aIkJ|Wo0c;KmO2hT zMMcitrlENvcI$I&Td4QuHq1YEI~&NI^X^f8^|d0+xi5BsM=t^%{lCM4u&$o%E6uo- z?Jp2o7V}XWj1M*-OJE@OEitEMr;H!TV!SAoGBlwc2{xtCTuW*t&*U+&Z;71s8~A|a z9HRXEssf{j%bLf#t7njPa5Dd}YP&_ZoBrzh-2(Z`?=uL<+fV+VxZ$SonRhd zWVMPR`E23{YUv|EH}818gn+`Q(%Vms<76 z0-0WG>#Al0sCaVr`#~CL19*Ams2j7|CA-byk{DfRZp~igwn3mBRV!nts zvJ~ecT;(~qX_Iy%Z9GEUQZhg>Q4AOMP~@~U!eBRD@oD;2MlIShgac3;nkX(#A96aB z%TqJx+{WVEcb*fQ-APejW|CDe0S!!rO;+~en7W|d_P5u@{OtX(?ECK4kYs}**T2yw zig7) z)nmFmV2IY58US%7tEWe`$PNDfvdgXg1mO))EmWJwF7eIDms|6A6pOLg662VZf5Ur?S+~ z4-HE9k>&b_#e{^+xsSGPy>Q^_{pUzq*lC#J#QkLX;QWOdQcV3xyD#`l2B3Y}e!Wd| zi!F@vz~cu2kN*$ymH#}l3N{V^fa`CkFN^-m9qCPGn(Xe+%I@t4QI{a7%qD-IUzK`1 zngMi2Y^>dh}2 zq^|^e+MJ7-4L)=q$g_6W-G<_$OVly+fNbdTth0(@WmLQusId_u#6=!+Y*K*|!<3NY zwxENeQ@C{BW4Rb|sSD|*Jq(rNxgfv3+O=Bzt}+BzY0BOC9P6Rp0&B-XmhAOayi{z} zzUy#gmXi>c{;lo|j|)99t}d*(!xWeQ);7_@Z)+jC!O8d`5yt>C>ZCy2>ki> zrSOU)|7a%sj}(-3ZB1TDTK>Y4|KV$~2yKA|3Pb3$S7c^Ln)-+2mT#E{uPpW3hfz)_ zl(>k}y!DFDuWYr(&|FqF>>6W#P(131ie8YO3H7YZ*CcmJkGV4(`N8Scget(ZxLL4( zBlQ=weOCCaovf)`J&lRi{ZqTcSfM*#=c$b{VvSW~FaS)KbAh1#g&5L>@ee;HGF9L&o`$QZbEtLr zLjRIio`%%~%Tj1_^By^t#nuB3ZFOxi5W=4rt_4bEPZ}SkFwEtBSU1d*sJxK6*C(0H zb_~#!c1!`i9OtG#AL)sI+V=Yk)NVp$JY3Yb4pN$p`%K_lr5QNtSCiSNeW2pn5@la& zvozZcs;Gty{8m2(G`)j32kxp#X|wk(bYg|+Xmmd4*JnI5xGz88rK`2PE2CILgK6Oj zUD?Cg?|(Cm>F!PZJfMsUfNuIfNPPa5ll&i!-d`8wudHH3>=JM>5MrR09VD@o7(1$( zF-INb{yVBGR!F5#)Z!^yL}1A(aRG>|5EU3ut6xr z<8!w+*49l-kMkLes~`@=tbCTk3X(doo$o{uyH+aI76M=|vHlQ-^RN+y@i0m2V2NiP zW=Qh`SS}Ry}&*H-m?~j8zH_m}V=*UC}6B{KRxg zw(64f{cEV!k8e*tu`#NTJ8vHl-2yOgdzB=q51sAW_q+zqu)4dFqCpB`t< zR{7tsNUr;J`nSkFO4oNIX%XKPJ1XTC4AU?yvhGpa<%Afxl9t7`#e1UrkfBmaiMVu# zT<6Fir7jE4$WiEm>AQ2%M^I9(2Sv)HN8GiBVpo(n`!#=WNIqZWoj#)8Z5`9^I^v?P zh7R5=WG}Zxzr{^{yvG^ta6e*+ym}ETT_-x?^g`1%v0gqaA9Q&6nxcd+E{QDDrVDI(oMG|rZIv{@q1Aj3wPWOLh`J`6Yju9Fh5e3o^ z8g}o^kHmN2nJVqTJQ#1HM&X$dM%Z`;_DFs%ZT=2l2g+`5*=_uz9qHg}NZ<`t%3#i1 z8&fuK-(*a=8d`_M7MtYnwU+NN7bC|F-Cw!GhVNW-M6(JBc5*~NgOpV7L6z(J0q)dp z8urd=>%l3P2$OM?*S7D%wso~rI#TIly?l<=z?&OcrW^vzCPBu-5+y7@khd*WUw?@>>SBTiKUDs>s*p0dg7uOgBwl|G$i-1np*FpFJ~w!@Qpa&_Np zS4b&W-xsa=`Qx}Qq5u}LoQ~)sl~5dY%gY@RF|+LXW4Yq_w`7xWfGj^j5VbA*J$=`@ zqLKp45<_kAwxw(#{V{mv**H+syTdgD46seLH(Syrq*54zihhyj+wB)5=%UnO4P+n? z6ceMJr~nVl>}9^d)r=w|gz>nl{p9UJs0~!CzUMj-)KmQ-*t=zjVBK)pbP|a^(M*34 zx4y96$joCVaf~QTuTBHvu69((n5;0s!`g3{&I8!r^9CyVEfCZHu^aGrMau*19IUO) zUHhg-e zWvzd&nD1l0+vdSE(%S0P+780rNhwfgq?a=9+$od~9HgSQB<4YS_7Jp^Ablc-1~)>G zUjoJK+3mROX`=4A&q981+T^1@cJcfED&HVI{r zLEu$XTP*@Bvy_>b7$h#igZ^TOQpclEQy8QV**4i=U_m{Bex~)jVNcI}A-^Ch%U3t&a=1zXlMAosQFMa~zGsd- zhr+nWp2X!WoX)pCIN^cl`-x8SRj|h-0vF?ZM{$)e_zxEvO?qXsg&%UvO9Ur>RL%86 z?~!+bGuDdS(9<_4b7B-X3)B9GO83bx+;mHh*!`;nob6hn55o~7MtWo zj}{8Brud;K>XtHL`<2ND?S3~T0pind+B86LGVKIv^8l#Le}p){Yg57A%ISY;vQI%% z0*4RvBU`zg{$o+u+)o%aLFQR_)HQkNG9^gr0_ND8K|{SSD;ZENC?r3Vej5GEf&BCn z;-^T6lkhYIO)MM!^;nbB$v2Lqg$|58;2O9-yKckr-LKYnq60qY0X0qB%A0wT?FhGK z9B!`Gx#4LbNLni?ZW(Mssx3;-yJ_4p{wwTQ>7gTzFq6abG4s?l!sJ<#Nng^wY8*?% z6)8H(&wd!eh-|_AycTpu$T}1viIcEhz31;pi6X^Hlht>yL zjC&sLx9$NYP4rw*w5!@pHhU>m#}bjY6|ra0RJnlL)4zh+u;h<_({ItD*@wGJ6)an( z2VP@Gt{a2c)J_Yjer_PsMRy-co%5*)y<2<_-D*u&FTx*U3;snAiIp^FjPS-ng&}C3 zl+j{XQ@PpIMqdjBSuIky<=mr+%O6@0(L!MIH0^d!zw`xW{4t0|J8tr+Ke;1+$f;Ts??(&al?{7=^ zgAePkC;5MfQ6dyIt)}TwKT7k&239%%aLi%BAF}cFsqoIc)ugDVNtM205*Ek@I9m%S zGfw4;Pm4XMl*VC#`dp7h@oTi8nU;KT0pD|3 zwYgZCKyV%&!*^}FHna3Nm{8|Bou|a?DLJIz*>Xv8qY)!lDx5;U358|al1GyZ3=rFm z{J>zm(~xk{68c$RRHo^jpFCBtWfI>?QBuh%f>hv0Q1LeZd!8-J@e{^v#sw24aLX=H z-mX$;KLW$1b|a<{qiUi6PRq+3Oby22}xn0Ov zG$9$r3nff3*Yx|U;GhgwG$ELgX)KB<3d^hPXUU82T^PUB`68%gSQ2T}aZs1$D7z)4 z(tJsCGUu`m$(=5lEIquXOP5_`dEeGq9fkXSl}@%A(_?A!iKL2(mw_R?Id~9YW9G|u z*}wo6h{tb+Dm48d>e1+MEMC}@$Tnb9 zBA;YHkYqrt5-m=L>p4s|KdN>i_&SCOr|MJvs01 zc@sMyoV{Zl12x%70jaH zP#ClvRYlDGZq0PDAax@~k~rwgKNC@sB3*<+4AJStdp35L*UuNwI>7?IJj3BbWfcAz zl>-)r2Bp2X{DCqsY!x%%Eb3#m5QO%77oS4~4^@{xjwu;`RD=@2*(ReR$$3xZmIuwh zhA-JZ>cdjHh16yDSSE?4yDw8)O$aFCCo)p5R4T@7A*rNwshwPPxOVF)X6^$d8b}Bf z-TN`*>;>}%q(sgY)raR6OR}pKAV6d}*G#PL- z&_uc4a{1oXQih$}s{Ye&L2NiUSMzJ0__ZJ6AIZ{x$X(3xl>|@s@6Ioeh}ZNMs{ft| z^E0#Kdp-+|N+~kRw{KzEI_*4SW(`p0BGzZAUsp54b&K2R1p3_RWL7+Yb;4?PlMiNS zw6;*thBpJ(>&hu|8+p)Dewz!EP?dlrgq3y&BvgO=I{Hk!7-Wnbxc0La9LnPp?k5}q zyo#4B8e)by=eVVPwx(LZwU1K+f9~L7s7gvzE*_Z{7F|kcNibxag%&3bRh)R*1h2Om zD&ivKQJ{1JT%~TH3eRVCr=g89UKV4P9ReT9CR|b}i)*)`?^t2%3p%;2!xoT=!csjJ#-dI{oHmc52 zMjVi}G;~JH9zt&{v~k9fQSjHwBW~FL_=KBOPU&2w5!Qg}=3lciD27XzZu~vWkyO`~ z1K84lLV13u+}~x;Q-l8H^2g#bvtr-R!vO0io=R%7mmw!42*L(GHd{Nt;>!$~tTbiq zBJQ_V{?rv~v%~u2Bn08~!lee1qS2su_&?p}ZRUR9YS4jqs z`?pgjEC?%>N1!)sUz)>G@Y~NBvAG-_w7@HdqthEu$Sl>C;Q8BzET;1#%F3=_ z1m9k*gH?nk`N{@EE4zAyn7Nbe4i1-0j9(BtzlN_iajuowK^Y5pfhkXqt}kz_Lm6~m zx;V>Q)hV8U&Gu!}93=~>74{VSzz(X~2|6{j=8;*c=JgQ~V-!cW46?cq`hoOo_u;1E zI4Fq0ESl*-t0gP~ZnlDR4FBtm$<`=ZR|e2t|4yFN!?pBLd}6ZXc{kE^R}U>ZrREX z^Z!#!>8x< zF;ijMH_NxrN80dShc|{`%TAjwHM(WfV$S_p?E>R05#wx#kQ9pUW=co#FBfk-I`-6I zs5(d)($a8PkQDe*bC!R=VWmfZ%T&hdIl%ukcMy`384VR&L9W~Q_(KTs>p;W|;R~$H zs77ej(RuJmZ7Q^wP&Gv0Sico-&eU=++Cr;_cmjz)2DBZC(rr4bi^WSl-iGmD&F#?% zKGA^R9!j37(A;zB5{&1u-%-^Rp=5y=i^VmNCn~UCw16`|2Tl_}p5yyCLkX+I?hSyu z@`W?USnjgyYGb*Xq@L$*(Sd-N^Vyh~L$3clVwgh*l+Ob7_7SL(fB1=isYB&ejX-_; z_Gm=N02h?;!Fm(}3-7sP9i6$5@Xng&gyaGI2f+sU4aHqDi& zof(o^iRtL*O0FItykU+}B8Sxq7(DDAahJ`?X7g~ym+Yx*aHVRu`R_k;clm11E8(`K zeWK2<{NxBJ;OVQStwO>EH)&LO101FfO(P|Oy;vt&k`J)H zsVEq(5ks|;ArQ~eSiE7<%B2G2ZF{DBE)14WW$0?r)kUYtibYNEVOYo}O$gj$yA>bm zL{C`zIr97l3cRcu;2S{cya!6>zZmPkBIhsta8y~H>NZEAa8My3f+*Jo4S)8-H8Pw7 z2MB@my;X!Th75bemw>Um=etMHGjEA*i%~vcUO2!!+?ZotoLRnYFrl5PeHT;^vwTMx zn(9fMo9??>0jOs8EP={1f&XNjsoF+kXs)9&xnpEo@`zECKcBSfJ|dhOzm-Ph@I&dc zD;{LeLA!_{kK(nzCyKKfC7#{PhJy-Yhue;ntgETHp$HvLR`@gw%IMT#$W6Mzkk~o+ z{yOB#bl08bjdjcww!gl;oZwFzWQIfMyOL`%D1B#e=|l39z$>ZUKyX@N7R9x%VnJ^b+x{_~N*pI`r(l}%7SQbtiheU`>V zhD0JHL=_5~)q_k5PSScS2dgtJTr135l>i?nU~A8aLdH}-ujb|!^2x{RKJN#m>QdeP z8;`v5*|`%Yjwaak0y99y=}2Z;C0FYvCk}-lD}?}iAlb4w zrRIuYC+4Qp&j;6`nKJ&vp+!8)=-Pq>dAhJb-7l64Lx>6pTd_VleJC!0C+2>1dz{^r zl8na=w;yE?H%f~zuRTu8=_}C!l@;RsB_3b}5E>d4=98Hy-ilxziI6TRNgp_ltujPutG7)ZiX6UsWnH_)=4qh zCZ9^hS+5B_G{v3$od_V&+NtR=y6s?-gsQ#MjH5W>61b7FY#O}Po?FJYAY5R)S_9o& zoI9*~v|MG+Wb80_o$fBHh%g^lf6m*gl~K;2p}n|(Y9Ua@p{l(YTqlp>zydK9oo~@I zXNKHiu7aCa#C7*(mc_~{*uT1l#pDx^(+dR?{s{Ct4joiKeLW#tAV^(Y8*pr zK*N#^_$fVXTdLGsqrrkL9vhK11NM8ytT@Iyiu9vS;v(@>b<~8;l*KEpY^GV^1H+Oa z1qlNKf*xk%u$0fK)4gYwMy*yY$GK!9t)+ABs7drg6Iz#?tKghxx^0q1390P$5~qPR z<2iYU9^Rz}t&(!hj#mI!6?(D&6*1MKAnDQZTdEZnBxJgM5@~2kZD_xX(8Ie&hb2}` zxi3}9InL$u3ZLbQ(XHidgDR`H_!CUg(AEfl5ZwmvOD#=EoqKb`waFXCPg#@-pEG>Y z-G{x8(uqLMM#Q=%t6r)&9Nb92yjaJhuNBA4u^?`M&HcX(B*26s^t5sb-sF)EWP1~rwk zqG8A6M{1${$#tlTK08`b>;?S^(u;Vz}y(G3QTK#42sEV`i^P(g*O=q$K_106-l z{pCz5Kma<5O7d3Ji+um9)YLu4$Ax$!n2nrmlyH(dsr*=?v}93u^UaxYXSO@kJ%QUn zx^Eb@@X84`AWYsJaYFjf(up+wLA5-*@7@&@=ZwqL#K|v(76T*@q z#BK#9t$wXNAvtdFy<3)hSwX6mzlW_!R?uLAytDcF6e+=$wcd7e(@+`x_zvZ*`t8{_ zPM6ZJUk32+f66lo9bsDan(#D)bh$a9rkndz%rw~O2| zL`KZ`+K82DmjucK?rD49^DM=WPCr&k$F(304d%@?==hTU`1FGri@zqAaK)rc`3TzbpC6f48yydsjwKez?bPH6% z+!T!PJY{09YY%dGa{zb%UJ4S6MQ}5b9MpRGeRQauSWx}&+3D?CTv6N2L9rZmG*W2* zN?~PF&ZdFFZnE7nC?5PC-14piXU5pWOh=ayLe%AxH2+j$BD!FMT z^9~hSP~+YXl93}8NgCZ0uy#Z!ZBaG>u@&*##pzyX0hS&{Vkia2qNlHPx&8O^_ z<7LtQZq{Hz1%)2GFGxEnzR)A~)63LQecKH)?XrO?{5!Yz#F8h|r4C=-D~%eoT~-Y)4&SprwXnf?a-2P+A1N~Z zj2bsNAh}Y*S}EV{+vzWuNNL=i5pWA+Wu%;S)hX^`C&Oah5kHM%&;k^e6{oGe{?Os+NNNV1-%fz*mQQMESyy68u;Glzt3V(e^|>o@&}!-Ydx4lG4N@SYBE!iqoZ=WVwB}Hv6oj@iprr z%=Slh{YeU4@i87UH+3uMEmFf$L64p+u`}$37_O%Es}pV6>(le6yPbEiPe+uUMhCOb zU<&T-Ym^SFxnqFa?pp|bPMrDPx6(zdp?tk0 z_YM5IS!qfLMVyTyKS815hf7RjtkG{FD+AD(U2I`zaJc#uvOD5sDpJDLsUI_;j$Gi^ zkX_qpx@K4B*6BJgktw;Kk7Rl}aPe|%SHBOIIs=(Ck1-z1546J&u9#;Ppa%0bCc=G0)M8T7cJRcNTC^^@Z5 z48)q#Hx=x-Ul{fi;TNkyCod}|$Ag><=v6VR zrt-$;5P4Qoe*SHr;x|v5BXvRlWPrQ2)?FwlMtwqMPKHn3YjYljbgALAU zO5${a9$w2j!8z^aGUnAF#YTM1zJ~ph<+ImUDooOrHA((+dx`5x!>m8H0!Ld*^lasA zP;}BYV%o?GN<3Z5+lm`dbW4sPgbaQ=XoQmWH)aW4S$ZDvJD}S^gQNv3_0zTohIC;UFvg#^1xGQgupMfD}y~3aO6KV1m*ED zwXI`<$`Y*0SVmdcPVX$NL`aWupW&7q^64;AARoIn9KY_?4Jz-V9WY!}hs95fH7(cy zm=EmC3v>FT?HAU0s0Lu%@;^f~83|l_bP^6FZA4csKEqt7a1OnMwIVk_ywuuVy^m1R zC}W_2PlCI)|KY;DNpq(G4T1A{b2avx0{bJgxS7mG@YDEri1Sjg+_RLtVcABW;H{~% z5e?s?e7ig9J4|1d9`y^nep_W|I>t;zm$!G{s$|LWuF{pY9JBkBPMY63X*N*>#HHPE zrHmw*9v#ZFUs1AtiFSqSlDsUqoD#%<=dZfl>^2oX!2SAzlpWYBe<0~s+tusR8awC{ zyMi?$*bb)91U@fl#^A?L(FLy6$4A{oYPc9VfQ#7aot=m~%{%F)CBIR+l^^kKEK;F=4w?YmHE`T}1aq>^K4dboTT z9+g~(DXa2fw66T{BRlT$xcxuMzA?J9 zecQ4sHY>Jm+qP}nRz?3fso1t{+qRulP_fxL@7_1wIHzy-=>D+B*kAUi{o8x3HRoJ& zUR%A920pvGlC4OItPJPA(%-gZw>-`zi&;mC*z5QUrBxNwcDf+1__|rGz#;VK4?LjP z;t)3h4?H}XuWWTeTKl!IScin|LK=F-tz;24^$)ljGh1J7fHd)KVm9R?$gQ57*I}@W zT8oAKX`QXg`R z$^V{rCH~!f1^@c5L|DM5#hj|urDo%)pw3^BuqXn2mgZEO_n87W+%A23g{)9< zGp@?ZPBkG&2X`jF^MPI@tP8Y^!rWVXSoRWumcy_>ZIPOxHi|+E*JC${MMhIDI6Q~f zv{dKFw5CPwYGi#QWJ#1TjhpMsZs7mk4Ck~e5WRi94Dc@=`foy_|JV#m8+h2c{9727 z7`yq`qI>W(sl_>ZGb{n0d`>QcV4Nb>m%+BJBcjA&AV^IR zB>0{$*`QG~fdy4!L}n&W{q5w$#h3Gy@As7fCcw}u{*Qff?m8VuYc+r^b$)GUCOaG- z)Sfu75jpNv%*I0tU&Hnte2|po!?rhX-2B~z_6LxVg=pQ6C<3hU@4*=qUUX1}d>e)% ze92vry7bDL$NhhB51ZC_kin#ZIjGZS6v*)dO#s?=0?`<0QzZS9&UuosA`ROFtPftUbdb3+sp zk|hjgOXp-fD8QjJ`nXh<(y$Kzbi6nx8m#~H{I>&fr-P;qUtAV|H1P^3+3N;*H%;v{ z9@9G4W(Scop%T|-A|xTR+3@i9N>1}O9GIX_so|qLxyLrLU1Dw#&Pl}PQw?38GQ&dv zyYpc59mvw}TSt7%%D5L9eMeUNs0x{4oVM89&EFaNrS%`MgLKYgJCLiENWCs&g9Az+ zfZ_u>0;wkH1}F;^MZ25~Mm<6yT>00q({|(q$>wN>=35kzwP=USTaE8btx2fzD{sOY z1nsVXv!a$4ii_SKYMv?d-9|pRT6`gu@jl)x758{6V5^g(G=KhqFjnhw^x1x$p_;D` z`fnKZe?CJNhK>gR?UG&i6(1=m@B^^Tz&A!s^@Se_2pEIHikj%Rj6eiLU==1YK60)N z-0NZ-W4>3Y3Pkww^HFlD6)vEH+H83oPjF0UaNPdo3%`So1=CKWH=Z>sw?WX4Q<%x0 zidzj6RcK9frvwyfFdPqXOCZCc(FE|ltl8YO%Uk8qrK|OYf|w4)=9PDavCWU53z;&y z-r>Il5cuYDn~cG%cA$v1P<60YV^nsyT70qwYfO+Jio_9EUZ}(vOux)CNy3Cx&43Cr zRJ<886=?b&Gl!c6-^PQv)TK9*;{90#sL`Fd%vL>RR^hqJScb0sMouKX^Lltf83f1_ zqI6UA+j@(&Gz(H0wAbN639S(-v;1CBj3FFN!!sAtrBXA*Lc|1$iuiB@qt1Y`NOCpd z44c8^WB2ZTV`_zPENC_OK|%cuxH*)0u_9IuZmKR+0kt0~NvvXCfTgF1;T&3MlZdHr zzyg$2LhUnTg-{3Yfb5^t0!sz`7mobxn;zmn#7O_~wf&u#tyFte!dgc8r~=U?0BJ(8 ze}jN)a-ja+q&W<^B2Ol|lcuhZX{|k1;2ewU@n=y|qcUTrD2CZ4{x0**qS=F422Wxh z&PCHp+m!Q}hUq<>Gt<}W@znoUY|#n5_C=Q0g2jSI>R{nQ>L7G7EfPZ`i?O8MWby`sKb+t8L@I~>ABxecgEUn`Q964U z&wLYZl|sHt&Z0~lE1D?_x;T>KAVdf%vFBfJ1p>rxO%C&{oAW@u>fQtaI4c;USb0E? zUl#X8K9eIE^AT$3VnTB0ouQ&L!BcP`_I@CnAJ#Ga>0X1>Py>pUI<%1I6PUKo3rBVN zT;)K}wFx#YVHp-!7Gio1$kT^7RPin6QAX+07p zV*UQ~aGp>$+bvcULEleH(VzgCi0qhF!gshiMu^-&M7Xxn_yhc13>D%W&#!IclQd;`HE(!kaS^BpUjT zm9uoB5ZT~vKbA6Tc0X=t6bwrf^3*?Ce*xM{F-PYG;#_L=aRMbt+W+2&y(xPjrE%B>cr{Z$T!r>Rnu+WFiG#MDrT=1=TAK(>b*Vo|6n$PyzokAbg3QWF~cL zy~=iN@OH>DbHSGkJAx0T*UX^`*^FV5k(BA7R@66L1~EfyY@MBmeg?_|7L7bbBV!C@ zLuHi-{msdJu0O@>MsK+?uJ>hIXG+T>$#|;{eQIJo(j5{y>(PYNjR+n#qT<^;3-;zD z7f?GZz6=$YL)Xt@uInFJyOp-O%QXYK##qzs_bkdBtgk z2DxZsNtvFl)N#aSC+XcuDg>svc3*|}ug(e$*QJ!zFiS?^- zUI!FMCD8&uvh|yssBKdNk$r?HdD-dJr*s&ihU+Tel=x9GNIB__9UkfM_(TPZXScz{ zHLFcn?^Q5*c42l63aZs6-L}Q&+J`90JYE}i2PSh}*>v<(>7(+jFVvH4hVQhyQ%Ju) za#T+_&!l>>}Z3gJcFIB#_7L@OTbwe9Y_PPRxy7jD$;l1n9bd}F1*_vS_YJhlL(ZB`&S-F0 zYJkDkkFf#f!Wib!Ek5#t_v$#3TEFCg#}6QHJI!jh%4(h`?6}m7_RBE=6PWtx6X<5Y zy~F8=cB#L-UE9vN`Ks1>9fM8OMdgRPv;FwA9+lJ3uqz<==+p`SigNeb&~$xyAm8AJ z10Lo|?)k*J*ZKg15 zusJ*0?oRjNzF6!;0k$!cp~=PJ7(edTPLkIo)V?+y_8i?+E&@et>l!K&dll}8X3 zkE9)OfI)Jpn7E!5MXStK$^i`Gy30on2ZY ze6^P!RSC|;p7P=0rxb4pK8XlE?$K&gmQzfDv=fd#Ro+=X+P+-yYND8 zBO$YQM7yEpUvBkY@(zTb3gGQgBJ;e^o|RH|mq5-9M{G{_l*=D{uPfzrKK#2>lcCqzRMoOy zfnS{3+NLLdK@(`7j;AttUDiJ~e+AiOJ-=@AeSplwkim3D07jjXG`{>&kYz1QDXTSF z?H6WfROVY#>FX?PEj>jUV0D0u+>xre<43JXoCf#C!@I^@#_6H^uQ9iRRf6{~=GKRH zN5qXI_{Y?BrLL&uG)@JR#L$7-L5XtxbDhXykho!Rw9NcWC3I9U2&;c3fY_lNtichV z8?meZ3GQX8I7wsatN9UnwgE+lypm8#t7%X-Qz7V1QjXe!5xr_R{~&dc*oK%vw9^ht z(mOp|6hm(-AB`QyRL%jZTyCfsl*vlE;uJD>S{%Ph=po1Y&gpGFj0JOJs4GVj0`>|v zMHVJb)Yuss8mk}NCP}l8zIB%imkC4G6v&&{ta_6agv{#D zT=3>5#|c)gy7#A0Z4du>%$}+WHL^p*8U{paYXPNlLStc-Bgy%Ef%b%mC{&j&@h&oQ z{`YlnNIi@%OJ~_B#f3EF8;{B>+-2xQTu?hJ;+?VVI+nAD-)Skz955fLG!4aY(trJ2NS z(?O?gd|2!(odGX%qMdSP9w=z0AD`Y;DAEX*-!=n53h*!Z{^c|CBPWyLcLRzMhjLe(&WN2_G zRxy8*;P~&dL^g{{DRd8}!IM{My1Kl1H>xxhCyuOs2SQDv z-=_21RmoX2D{^PccMtHRrzg+&3r;VfYi}|iuV?NwcSwJ3dG5il>h*MoXIZej1@fw% zv%m=28l!F1gjJ(_SGP473By8&fl-jci1$(ANaHpfNv6qtak_FF=X(R<-JxsTiV?om zy9or1oNBFQ^CMS^%}PIH{_f+bi;g{nty>(q;MHKfUUhWB2C4TshwkKmqI+7Jd9-3E zI4{}w)z>+kbf=j6;xOgH@RL*P)S~(mR%n_v^I^wE+g>h$3-(T-^>ws=kcON2e5@be zgI(_RJ4_p{ZQd-c+`1IZG~aOIL$u2PY1V#c7E4EWE5N2osJ2~}D-TYE#vh{@K-07c z8mB8vMOctMn1S`1Y+-fH*YRyv2|IUKOwOT0o#!5{fwS%?j~a)w6R-{>;)4tkb7w9oueXlj9mk2`X&V_BzaSa1DAi8?w@*nS$DkS zzlEk-w|O49wx2y;-ye_dzL8!>8k`s6t=x;&BsPf3l& z%_sGK`5;wKvYBqNbh;=otMGye8MO7-*QN7|rVwnFduE_93Lk|7su(u7RmlMArFHTZ z=7nT1H;NXz)mPM2YDvk?l`YzY4HsHiuK80vFkmiB_LinKh0j%Z2nF$TZ8pzaYkKmy zm8j#>Qp!9Zd)=08i^AI}w(~{0$f@VoQ)TQ?#@GZfBjRy5NoQWHLVl!P2TIgcT}_o> zi*N*$`Uw5Rs?OTpqw*8jrOcTA`;};Q!wY_o z7YE(LBbgM#PMGt~h@Rq$usYMK7>b<_bt))o_KA-zMS_En7s{f85*d3MvLbnzoA{tn zYH&XOD+!0LYZ9r}EMOXfoS8}Tuh$XrQIyKQV!@HG4JqeMav#0?9ZMY|mk`sw-zn3H%&L6MQgH}maX zz+FHe2(Sx|2>Jg2VMGZ-x>3hx0!ob<3;F??H>w92r`cjx5u`n=Ieh)2cfsNM*N#l^q*qrA^STkYw$0(V}yUGe}Z|wJrDEQjeU&i7M|{Isu!*Y&SF4uIDbMW3JoDj+dhdy6>So zF8-S*+5&W%!K?OhQTB7>#8Lni7(7}GqgHE4I&@P~)sa-Fpq~9}%QNZGUx56?7@=#H zjHm-?DJJPo`9nv0n%k5@IW-Me>W2x8%?8Kd)!tnJ|4Fvs{2rQ_I&T7<;sy*E{VSaT z)f@;AE0>%evYCdt2>u3B7^0~e2Of(97tpevwlX=p;pBO)yi`q5I&yV6J(X+_ZXtk$ zdOuKcfP+$V-@LR=T~1*oeJs|JHGB4=>Am37ug&)Pi;i|<*Dacw*}2PR$vcDNT5~Ly z!^udrNubxQq`Dv0^0PsYPqm0&xH4MgctJ>gS}J6W#+;@7YG0%Wc?9k6{)X;uzF1TQ29)&LL2$GtT8xW77Z?dv`}k}=4&rIY!drC%mM7vwb$%f*j|wV z;qdH^PdWTVxsfy9j|-v;=S4Ehw`;<~jWU0%K-fMyt>s$AyoUvZ_eT%I#||?aL>|;} zKo$9DY)K`>(g4J$z(~Sw;JnpkBcY#K0ab=|IcG&^VxUbM-d`Eppr?#T_T!X4Nw)UU zZ}*8>r1Z^X3MlklbS2%eu0YYszWrZgd0AvBAk!RIh&iWJ{N_)Y$*7*iv3J z6ZtIRJr*OkBanA_x5wmcc$gu80-vk5_lzwi6x>nPS#N3i`{vetAjIXVPjRMvjq=G5 z7&rcYU{Ut8YhtHv4PzcqxJQ+e5GV)H0BXc$_Qwk8Fdhh&A`@$IL`!t)Akpa1F*RLK z#K`AT8AsZSz%9wy#KUsZJQ$Z%?8Kc@jq>zyf^BGZM0M<;YHfj9emb7AoX)!C-DlQ( z&suO0zM${ap{wlTK@3UTxJRQPL5SV<2gy5MU(Dgqdsxo{%Q$q*d?3kq99wWU(&sNU zKID}jk)zv^YuJgOeK8SFBn--8%2!m1d4-DOP+PU5N(&eI$DNeAJ=IuO+`j$d{kqz^ zj`pH2a3gWGTUvwbf}?K}CHRb)?VlHP(4t<$V6LG#da zbhy4b2K++f=G8Nu{t52lZ3oNJsNFww&Es`EGxpgePn6Xi>Dr~+9*ILYGZ5T;y?T+7 z56orbrd12wPH?V@klElF{D&0qot5Ax>rEYo*3)rPG8S3I6I=g_g#%GTzRfN6LojXb zF(+%%b=P;d@>fdnaef}Yu5J}xc(4xS+@%*$Zq=dRAbbNr-=8_>oGT)cO}y`neHP~T zc9X--u99LoV{R)iB%247h89qa!8r*O|RQvy(2TZxn|5fyY3F zslY0?q}=Z)yNKm$Ju+g(hO40xt{3(yQ006mXSh-BS3^;-9NGixjq(Q7VDAlLTCSEL zCCoEr%yD7e1O60WyO2LYKd5MGa0l4!U}U*e$Df-?;-?r_+}u<%;22Pgbesf@baMM~k+gGT2k~2)>=Y@Q9$Y z!bbkps(MVw(UlOR(=H}$bi2)zatPC>Fh49a%eyz+w9X(2n(UO;s;2pXkc#OcXuU{m znQRc0P(;A_vC}Uq>^%}obXyH%%93#VuWUT%KdJo@UbMSz7fx5pI$yz$`km)X*@1l* z*=Weky{R?705-&D)y|LMmENg&fyA$_j`k3f=p=(7tzL$#!L}`FSig@iSr0hh`hC5w z(s-JqB_5SfZ>aC~QM-V>+4}z3|Dr(MA2@tbxj|po|AhgP_zy*!>)vje7Yq!H2+UO! zY_Z`jZ(%PkPx9RuUx<&Rp1hU0zCeAOiJgy(q>-G7ZnK`8FDBDJHdX+is+L-TkBos% zXPb|LilsFu(?2y<09~aJR~(TDSk2zoLcy_2%T$&UiwGDQ7#bLap0Vb;1Sy#6Ken%e zsUcqKzetcX`2TCeA>nNDx6b`vg1|wwlfN*W&rV_lq&>wSv8X6)(klVV8p1XNU{SCR z1co9sH~<0|9L5vlfWp_V=B6b}D>j=ywp#ah!llLUD_Qg1rNzaMofw7?f>%l$A*qiS zK95`5I@<@AetxgO{8Uwp))9{(Kq8s`!{;MG> zoJN`FjVC@BlgjXtCk!`z35 zrlki0PPKhJ7~%MEj12ksaBK1WB6Q8e9K+5iy@=)@H=3dzuw`(iB_`mQ`s`0b+peNpnE8#HjF9&s7Uy z{GI@wWo;MsS&e@#HTL>44s`J2Q_U#UqAA$puDu=ckcAd?T6QmT*dV-^;O2D={5@); zKV@XUVM$iAIQp02Yd%XiKKfe(4Nl*%ibJ)yf&sxH%g{rm5XCH8Ak#qf(!&(0ZZFmw zv=}2&D1Cygq^2l=In77Ubvt#ftFt==X68Z)G=?J)yuF#$_)N<;>}vxwSFc)Rcmyt! z6681rlsT47ef@!RQTP~^#E-cK!n4s>j3#)4h()PUM4}L_Tu!|eoiUAYFho2!5I(vf zn?FK~LRPWnpf^xu+sq5b0nDl>bDoT4ta<3R10C!=WGj?aMX7sh)W`R#P8e_s=Y`6W z5{iwi&&QPT!pE~R{+D7I<$QuFhNr0U28Ew+2tMrLAs%tj3K)kfv9wZ{lgazaH@hoa z<^_IulRwROza#O5iE*?0=VDxQAKJ>tCZ>BT^A(~KP{=S;-cBz%h$%CQcAx|LHu23# zT%qiyUu`-9i5E8{?swwOyW1nD<)lea#K+!Nr9VB7RS3LaWe)?|1sC`i~T zCDtCdJ~AN5b^N|H3LR6M8h>yG5{GL(L%|&p@38N{m?}T9y3elNAc&@Fx9QAVV35?$ z4=~s#1leF8+$qe(Ty|+2SAwB>bE0F#E4nh~$m&s2UQz`@KSj&NJC&4~;9M>tRbXJ^ zojTCCu+vTOf;oc*q-0^MAor%iBjM7r=@z~6>T$^gN6qFr{%BXbP6MyraXH1>L|2H9 zJL*sO4zKLd3QBQI8VASgi4~t+Kga1fBZ(@$t!MChnVK4Ug(?2X_R{c9_1PK3$SCZR zlZp@Dq=4xZk#tfh-3Oc6dx{N|yPQcCoGtvJV-rn;=yj@4w?2fj&`@38xRRoDx_3V;A)!m&2HT58)=cn+e z)NX+pO{u1w-ab}nH}>O78Er3#v~XHgemIAp*u6|e>X0aSG*Y2090`5M9DBMWmUw63 z3Rs_-j5+EKAw(W1T*!?YKQu2h@qkK>cQ{7 z30QFVc!DIcT!Y!SWf$P61<3xiU)3kp`N{7VVGJOMWWyT4$i_ysVW9go+wZKvVpp(d z4DuVH1}Tp$07VGtUx(+oA~%M(Qx4gb7l-LeUY?$b zvq&4w`Qwl*lKACyv=vxj%5mA#9DmrJ=}*bKOubuj2bu-@TXK`t4XI754^m>aDG-kqrVd9Ly}zEuQd;!8@m}C=>;aMwt1|=$25& zC{7lwR3nRUSpX4?JRud(4bd(6@sEUyd(xfx_%Gb5>I=8x{y$5x{;Ga|E8WEZMzQ{7 zCibsl_!ZhMi>&ZNr?@%Sqyu%p7T83*n&cF#H1BB*_1{yMZ zY`GN7SqW#?t~PNH*>&p?pL9KVYAG-I!J=q#_ z5@Vc+ZuknRR|@sZp9;wBO!y2t<$=S<SujIW+{f>5QyNaWX*8bJ_o6#QDAh3AO? z8FDs`jbCkv{th#CjwD36<|GI}IWxpl>xw~*Ip+}|j`B8WC5rRiSWr5F4K~2 zA^TZwZs!h8YjsU-%HXnlucOcz>!a71KUuUl(getw@K5sYf@eC}3ccIoa@^#wam#_6 z(ZUNM8iuP3mJ{xI& z2;YNTC{_%iYxk<~o5ZD;O4pGolRn3*7kOh_gx@kZ@{7lxvPAB&%1G~Mimeux67xtc zeqq^zG5`$}Ir-xzIvh zM|up!Hb9gDEhuhkz2tak_o5YlS!1ZA=6-|=7S=+MFM=@N5xo9`v@4Oeoz;fgy7W&GIC?6NrboD_j-vw7hGOUSnNPqo=`hNPGm>d#c zAGZI1#DhLHjL9xwR?}*>tkMcatFbazvlNvIAB<3?RA31H5R zjkKs1%KMrP90)NY#gAPg>x(705pLuNKx9Q!GoE0uus%g=uc>9_*G2N`hqe*>*XkX# zNs%EcptAl9!{>ZXJ|#TFJJSogpc+8=(JY!d+(yaeles3A>Q?zWy8h?Pu{{&^6^#uX zs8-SP3KfkksE6I+!mwwB{!2>*xSD7RXUaY=eFdZ_ROqDiMD;9Cq7dXueYxs3U5i0^ zxu&iA=9-zLc}wCYL`e(CKx82Ei=-|zapXEhO~ZtL7SI-uJQI6X1E{C5xi{LQTK*=DbFZr4lX*9J27nM?J^+)=6o~)M+ zfKVs!!%k8)4uufIH_3$|3DQqK9m1L}-nizTfDZ8r2#O}!KV z@nItk1fa!?Zhvyc6%WT8EU3yS=VlBQC`)><>Bbn;@Ta#wv6;G5aGw~aLm1G{0I(nf z5Sp#xHc%u)s6Q|;`~*yM?ss9Re*x%zT+#0=j=E<+AdECd;%B8xC0A+5VZi{S8q_lD zhyDCgqyC%ozhbABgHT-Yl)tsYcS& zjwMslGKw1|dQs$4DC$qHxjKs)#)p%h9d}WPvrFpIM&4@;D(oB=uF$GOB6fm!fuYe9 zbeT*Wd{hP)pF6j^$q02jNYWE{K<}P;-C|lZJ!&}Hl3PQmN;x<=Fr$98w*WWpDSen= z{K)atS+6%5tN|HlB{wos?G>1c+!I2-J6oQ4e1Wy$-a(xPtg~kspS-;{`ZI!9Uw^of zI4QPWQGlzWa6K^{&qg229d?P{omtYNfI91~rxe%BNsq|yD|~P?Cc-63e~Q4B0TaER zLffY+5&sI)MecZzBbXy;m6~j6RTL2KCnVZrhc`y5$0y1k+6EUG3z{sOA=Ub&Xli?u zhKxT`$dXyv@z z#AoHuuOslD6QSMb#7lR;<1Ftuzu@-~Ti+C3I!$Y=sobS^3iiJ>SIa@+9*?3%mvaNC zpE)VeT1?D`WldMH7oG&9UW?gxdXd>zlF^Se2k715-jqw>bVNy5 zOmhNR+s(QX&GlO38q}wmsc{WsL{Thcta{?+C-ruc<5G2v9iws7t{5E_kR%t%&{BE8 zdq1c;P6w&nqkcswp7-0;NJIHb@e)nb!Bca#z1O9o0W6}2CMx^4|57J-6|q8hZ91|!n>W}q6Vtd?%AQ#?d7nsR4h ztYL+}ZlA)Yf7W^U=_oW3daLSJw8ad(c(dm2Is}>p3CD93(o2#C6HA8>Rd#(UP97_d zoHEAL^BoB*1D&M$6@gI9m$Z*PQVjPqXoO|!_L)0(`c;@$?(~*7bz14ALoPVkvv?Oo za!B5h;W1V(bqp#(v?cseUv!uEN$pSH1Z@W4Ot7RsPs%60EZs)bJgh?_KN)ZH{F6CL zQn%8?Jv;LE9(PV?Ga+<2fd%^|cHWphUVf~)nLZSU1j1g9Ms>?o1sH>hT8^e-=2z*k z($$$gMq;dIFE~_nD!E2g&%)r$lI<82u4u(w9??OPH=VFsYLxG7`um@;N%0~&>PAwJ zj*%P$hlk=BG1EfmlsrQ#Cg{CqQ9YpMH48~vNhYaDmFpe}8X84Syqv85kGRpn;9q%X zEz#vA`<5%lx8Ugu1gbMUB9_}B_vH`xidJ-P2b|%q`+b$>RL)17ORj_(ClgM%K~`9& zUi&G>8xc~JIv%t}Ih50lSjma!gQWYp&}z`uvB2}B8vtw}xhyNXs?8`YE{E|kBqLR_ zu2#n7U3D*~R-^UUGf7u;Jm$h@v$+BZ_26{~L^7`>CVQ?6eb)~2;bsW+5N39i3z;X@ zE+h61NVmOqXSxWEjeyHu+M5dfl(@Avn%M~vqsS>_-7%s+%QJp78D2*DL?gu0@XHSkVX zeL)2GXhs zDkDa=&nLYV;Fwl{N=r#Tz6xZzWi%&!)u8_FNO-n#cX^6~-QJ2-)``Ab%2IPXhRG`^CrUG_AiyaX{s;PQl?YYLcx^F})Xuex{ zI!`so*%i{c_UI%bg~nJ5KiWp19vsc8>Id)v-lz>umHzU}C~&c72`uLut_M-tAz@sn z2=p$}jXx!zPJkyCnnW`DvUHzr85YSM$)>XzzfR@C*VgrW5LpTR<{SohBQrw7Gf zKxdi%AslB{yP?))b>W6CW*Ijbyra(I+&S#^UmjhyLol~kgvmU`UShM!F9;fJ@js~aN_^Q`?Wt?>vOK*N?F6p zGVLT%Fis(>WE1%!@@d2aS&-|Ehr~kknW=I)c%$fo?7awa<*W=CY%xU`0%FfMj%*8_ zYj5y{-jbwxc1n<38`l29*Sfr!-y^y(jND& zLM@Ijxg<*kl>_WT_dDh>rC@q;tum>aNEFR~*by`G?}{hM$XQAWsa@)v2mtlyhUmn& zlTBt}fsaZs#Xgqce9^=+Aw~)y^kq9>MxlF*{b54JEWb!q$U|PAoXffsTGRPaThSRu z;v+N7(P{a#vM>lYAX&^AQZNCmLo)gjXypB$EUq`JHrK}PgPEj|} z#N2#aZjZfmA+-n78R9&-1^!&#lS{m_@_1U=A*1tAa!ZIy^U$U*aDvUH>Qv_Lt%vmy zZ>f;n;0oRBxB)MVZ>Vggp}-f~epgn$G~$eAG%W#bS@UMh-J20RDHzgt(N=Av9}vrg=_G|Mc$fEgw%Q{?a@szO-DyqU%(B<0&hJI^>(qQ z&g|X7DN0B9PhEvh!V-)qe8GK|HkBfTVu}Kc46D7G{YpwixcaC!qXbshl>$z1X7JyMdpU}jWT=<;IUK|+#~gKA!Z3IWTb65P zAm?<%FeSwzc9U+eC;=~T>JMt@9DfpSYQst`Kftxk+=HANT6(Xb^Xh}GZIPW~5NNHv zpQrJxjpVXK!vQV}b++42FTZ-qAa(ea?;O;|^ zz)e2&{{H8YrOEiz{&FkU`x52+%`Wusf}H;iA^f*Zk&2enyeh)S5(Bv_3dHW5<9MOA zVLC`Ge}>{bGz+oH8Gp|&eqCm=8wpSTB<{G3rRqOim+$aC=1e$lfRK-$A0@JCVzyXh z$jG=I<((OJkLQO^)!o}4kove-L4B$SW8`pLN#l4)<$}$Xdn0v5s}@W3UI`h#i%Jq4e6 z6x4#~noP`hfcwO=Pkn02N>56iRirT4d)0j?`>wsl)UJ<%as?eG2Ph&BV+Sn)S{EO5 z%p7XDyLXr&lA&B{kH%LlDfQZNSHfN3ohQP>>e-XU!0;|On&n*!!fs1d zy#?t5YI41IPZ(-syu&54Xda(PI4rSXuX19nDNa~22DO|HLCHvGfRXj~eBtzV%6ZRh zif#4;EIn4tQk`6-sf&}U<0mxdj)NfGpunk&;mrXy>!V9Pfp)hrDnti&{Yeu)ny+=3 z+@ysZHo=8=cE!(PlZaNkiQsuIty#=}cY#-3EeV$l6p>|<1liXOp~tLE%3wS&6LHp} z%$|-ud(Ob=v=$)sHu&fPROEzXBk2e21W`Ls-t6c>B)4#irqwk~p&9s8UVzOcS7~`Q z>0sR)9NyVfO|LRaQ#p5#Xqoi(x6uRrQ|2rVPGCe&s9z(E^1wNP=gb&a^&WDKA9Aqe zn4Pmuh>JYQ{08g;qV{Nu%-T}kG2-jnTRJ1!b-Y=bUb)KbQm9D=eCG$pqV(>g;=UE$ z>C^Gw+(X2;%n+(xgJ8Vh|8Rjhxgtvm9C`*qPAQ^Nm$PD;jHYug0@G#e?is_D@+cy` zMLZ%)jUjyeuRY%XXXi0H8yf>#<9|AjJyzvm9KnA3c8vcYY5V_vNa$ZT;wIMiCXWA( z3>j31^j3QG`TVFPhYO_ET6yZxS3)wfwvUwwfSs6`@=D6KA*n0i9{o9A zakg0it~GCDvrKA}Hl!n_nPxgf8)&T7#Iib@xjE~q^Z!8 z6(9j@L4}ET`MXkwc)ufIGlw~cwHy_qjZS#Nm@_T(Or5}fy-&c7+a@|aDLQe1*Fv2l zo(sqdD0t4&>%C-v63@2Z(jVtJPN~RcssZzb5exXVJ-QL-qqfxDxWz_JX?<&#)}KFz zRU67C1n*4Yu%FXqFY2LGX~UXO6W_o-G0s)_(0mLCt4r`F@MCAv36BA{rhtKZTulG7(7Cuu=Z zQ_pM#;(RQe(_}oKVh&)L64p`y*#{a=?8{tor!&ze=ht;mac+R9kS|%C-&koWHgUIB z*H_ZFV7m}mXKXOc=I3B~u1aB`iNd2|NeZT@51olD&ObQ;6c}#IRCcW@zFg!LYDGji z6kszd7DWT68m}xbY_$2Y?+pt$KV4yN5bV@rJYvOzxSKHOz0{c&8pkc8x;zQivA}O% zim}0sQ=cNL)9oV23P-Bn`8qXN^@%^GQgCIy=+(wd0nm~yi{kioc-u>znV0ZM;&d1h zi;2K#h_b>lTot@3E2v0rl2CZh`x$ETshbh!=GK zh?7ELF!v*7&ct88L-o>}dN{WqF~6jHnU?fWbP8$;eXt0RIk*d#C?vO!i;wSYSel z;0S8^VGAD4xl?>aD)D$^EsuqTl^!AnvIOQC@!NAKrg_h%ZmuJf8YKwZ#BCTEo0CjQ zw6HD=VBQuI~leqE9$HdHb-SkVRbI zfW2p8NY9wJ79sXjyB;BTm1j~{Df)Y@zxAQ+r#kSFkCG|3q3ecacga3pf3bH<=rE|Q zUYYNydtV5~Gp3@_fu@_crJ`$4zJ^LF zkv~%E0_`T)+Y>jflvEdfjcqL#oQ#N(rRHlMyquJlozc1L@$N>12CD{9Dzk|VL?Vb? z2#v|Kfv)2R(teAV^vU@k9fQFf;3&1wn&q^SXISjX>iUEFY=ftdck7<XmUBJT?oO{bRd-+B+GTY;ozG;)0B8j;qo)PjD3^TO9uAlg^YCxBA0*qoJH=Z??sJ z$9VFLTaF~>sz5P6Uv5|*{f__Phy8)EZJtQ4C?HPhc@xJ1(#ZnyIq^+wzSyh~HHD2> zBSzmMSNje2L#_UebEx22ci3Ms0-AJj`si}lU;2h|uN_V_3peVlL8bid+1^KC%Ui0= zY(ZA6qa_~qy?GZ|u*-h=I@8B9@{*{;c#S!iA3PNd zp+7%}=MWRF#s)_c(W7VG*XDUjiVzA%*K1kylHVo?`xsH0EG%<_60he?mxM@DwAnPw zj)GbJ>V#Em(IS(xiltTMQ{Lhtr1KRj6Xw(6V`U|e@#&N?r8z{)>%}X{?+17Ur}l$% z)uckUlSZWjTGaq7LU&*=yyapS%JMi<^~ruxPZ-!;AP6(?c~9D>f?w8ZDsw;*&2k8I~}@jsLPxS&_P zfhQ}j3|~c!NnaTgC=&Xp2>98JEfUV)XS2iEY}*p7q4)vLFg9Q$@cu~QqX`iXsOGn} zpdIsU-XQi1l;wZ3-B9&^XFf0AUSJDj_ip00)h(DbmT7Mvd&lEbyBue|ZnEiZ$xk-{9F?8qit!=+2DvbU_bqxr~}UpK1=0A6o#(xK#Y%0V77`dT#o=XsD?OY z(%o}dX|lAouBGOplZ=Pi^izqK2T%NhN(GI;>Nz{=#iQPb?_?m4PvGxJ32Yd?fDVzZ zr^_W>tfY8rD&h_?cMMmm!i)`rUp1WmU|n9@EA2_{a0Cn8!0(J>zUfGVi0{<;RgZ>9 zW|6-Ys68nQ7RsJ;U7i(K2>^b8r1LWo)9q?CE7t}r9{kEVj0o$x8gntb0qiWbd=8qg z(JXmr8&q?$2fjX{Tttnkk>JE8pxV3kyTnN%;c#ui5VB=tTaY=9h^q!un`Gm~L1g6# zOxoNS-ufklfc#IZCRwCGmv8#6^@lV=VKfD6?3NPYh76OUZ^X1r&xV|bnTf{k6`-5$rqZaxXHc#IaS`kAdZqsjEiR|Z0M$X6*9@~54?;lwAEiI?%|{l*tP}J!S`OQ zzU_qlH1xVi>!s(zwTtS_mAHp26`~rOd;(LqZkRL6O3t|9MuJvgBq?R6mEsxWpesyKbaruF`jR+J*1_?88rUW z6qQcXd$h^^iZ2pLU!fX*M4X5xHNYRemOKc0c|6~z&(Cc5oS)k|dOAU3KIWDrd6vy@ zmO<{GA%)^%z-d26w?5^~Kex*g^^2zWyTP*8=ruk`ujwxBpCFvIG(53|h8dN|##`O) z6w}|c(=#@eQm`(m^H?KRB~LV^+qN*x@S8`n zT*t24Z3%r0=EObP8*ZP_mUjr1&-E;(H;>>JP{eQ%j{;%Xs7E;z50}P2EgHjO_^f|E z?|R@>qi|1VZ}w!k#Jzou(}O>2dW)?4iDuuW@M_%It5C)*2JHv~bD=5K8%*@ZpoRTM zpoQeVoU}2bYHL}V3OM3ze)6_643isg44$U7fhE2D1LqNq6AG+~vLk=B?26(fX zDU8E1qA0LybMrABP5-S(nvR&{Kllfa^6CYUv%~owcvt4%J!@|JoGfwe4YBDrA5i*L z8NytK7i{GJUO+ERM#X@PN&j{m1-?03)?(i6xdnE44Nt*8#Aaju4bFoboS3w4WjHMI z#q}{p4cs+;DpwyG4O$@Oa8~#@8>N<9hhp9FRedm0?|*7w^$WNs9KeTjr4*Pj{yQ5@ zjm}w{QM|z*=P5bmK}CCFY3wZ|fyz5$>dvMVT-?F)TzaDR+dyXd9If5fZ;!c!Z109l z>6$B+`PX}I*2H`{+c18Nnl{JfrDC#Y~^v0W4I8|eJh;TWQUjLw{<1aX6pgQBO+qDx%Xriq`nB@$< zrSgSO14st$*-Wu<9i#5znaf4b(EiTY6_9OYO?~N^ZAKZ7k#KR z=>WNzdMmr!Q+XkK3t`aQe1tfay^_&W=<`9iLqDL^lUDJ2V&OBM>oechRN#@&<7n88 z*p`>Jm=Ea&qe-^(CT3=LSbeJ5eXfR9dw;|_vp6fAhQsH7aDD*&xo+B z^GSo36x9jnYpG?N^fSqlr=~^Cr1sy(hxac642Wl+)b!mU)3t%M9s(AgM9Wd_QW^wj z4z(ImUhNNyXdc$GNOWPRDGgt==^&)eMqSz#64j{JAd)I>4V5*8xti29ut6gNk?5cF ze~juf=r{Z(p?tlqGG#iA1<`1hR-h(Y4@P9q7ohG)4N#x;8W@EvK$lp_2VK(s0?+kmuT#(cN^O zQ%+WH8Nj+?0Ij!f2QGzzrES80EVV*g&Wr zXrp*tI6Z<93PfVMi}~J??>48-sWoQ%iXSaMdR~s#Yt`|+h`*x3@29Dd5frAJ$Ahd) z@2ifpJAtRpr{CTFZScPkwwYB2RpsX3FN~?AQE?Kal(6STE|v-v@Dsg~(`W*iZS}-C z5(p;4VW|wMvPAdpJou z@bZ(9$0PfDq^EfugBw97S}Rplj)>!m%y=VuEe6B6rK30+vWt|tTPZFE16t~qzx9g5`d!8QV|4CtMa2C{QYZ#O-M66wTUk3-{$j?l3f}5DYECFE0mat4HAadMjZ)_Xotvw zAAIqe8Hxyz4lR#)tDzK)bWrQc$hEn7K6&kIj*J7Okyx0h2?3yR;QD7Lcuu=S2rBv9 zY&^*>2{x`}+RAKj^B#~QMo)E9Q+`0b-42&hD!mi8d{q90NMkE<9_97g_UbOH5N(y; zoC>6iyUEHVgc1%(B`D^S2T_la7*}~1?;RMRa1{}4_z47y2T8;gE(4wJMs_vCR(qw` zAHiHhp165S?f2~gsBj4BHE_vZR}l6?k=V}m=DC$w10sW112b94;M?GEtWf*;Ta0>4 zvJhEL`$l}q(eqe&A9-o((51{C?Q{4FB$A#78l1iP?UIYdf?l)T;pt!HRqzDT3Hbd z)!c7orFX`->st1kdCeR+8;H(lP*4LwuaHabl!)S-f^v-@DI&O!=}Bz$^S-%6WXM#g zr-RwxTH|_l^Su&Qf6b>!=*}Rx%gMB_Pk&4#%pNmr)RsC=#WJ&bI;V{dx8Z8sP?v05 z+&d(pN3tgWgc}>#lHa+;r0AxB6q7qT!8-=+&tM{7%9W3m);70L8$c?s_&cC#ei1$5 zD8@F2Gb!;Q$fTVb*?5C#FDhrFR3;-Yd4E(t8wdfjvpX%A;rVpKdUb_!bUMx8QWVG5aEHlLH2;kl? z#_nS2MxWD^pQ5$2hm}4BZ;9#4H-X4KOoIQxB$8R#>WeO)>yOh*eXFXhqR1J=gZm2F zoj-B4YVwI4BLd!tn=VvA?gk4P2FUMR)i?kA-Z_85d&<}V2_xwMf#`r6sD=022&3dH zk!Bpm!V$PD0`?Leeha&n5%u;PiImhajxWYk3mJaiV}WJX>pge7ME2Puhac^bdrXY< zTa*I?{ESiBi=4T0u4sm78aJ=PEr)GiV#^O4aLZmMhCP(?udqT*k$w5O8j=n-WFCQp zD&oK2ae_;WER68qwH4zK&U?S%jNa<&Qh4d-!M@qdF@$zLE2u(S{)PSi9TGh2BUlvM zKf|1cCzOPB0Fe7hL2&oi{8}{^`jRe()Y7K-W{hnsqqlw1t@~Iy589E4MKr)E={@I( zenF}z(te}tm0;YKqy39SX$kQ zgDik3M;4W#nWC;02ce^XIaF6NY|}R7cwa}mcR2;Q_B9-B!7UCdSU)IS`P?}R8$-TO z>AOegn|HTa$64NhkJqOs&~J%UEYScpIl$@>r&SD?HVyhBmG)^gt!af=&T%u`5R*@k zb(ean&GIxtz_({IvM=|h9!^lC_GV;83AxKwg;N@~Sc;efZI@k7 zJw|zLvwLtx-H~)HOBH1d`g>|zkIvp9J|LmYU!K#&JBJvZKUmK;rq{-iH-G_nH@lx^ zY(wnws{~#k1iLWQd-V{nKg|h(0TAkda2)*8F_2iaH+JTh%8NpwZoY|HTad)=ddC>* z0t#HpD~@=Hg_4B?A4pt^jOgA5a@jdBeVkZB`!91EH_oCEokCU|;lY4pGg{|~jD zRPxy>a|O=tN)2wN2{H8G_0vdz!=&o(bCElUEk4dj)$SN`^n$5%;#rIr#UuJQl;l`a z;xw5YuTtG|I&5m-H^(M@_HnSk?HDH6D|t~5?`>WUZz(4B10D>f368Rj#4%F9 z+fVqT#-6LF9!_i$%JR{);sXD|-}U8Hb}H&{%Nh7x=KN3J&Bdmb_C=vRq}SCiRPmkv zFeN6Xky7(mQv)*8SOeDKHfwyUFmjw?DE7kO-ZA2Tsj@d!`j3ApAybOfRb{e>mudWm ze*mcLhn(7MzPp2qq%YUDP_PIX|D;dF0^XeHlmY|_FHNLo>L-xw12HO!BS02HXM^Z9iNUW*j4tU+Mw{YIp6^1W94R!u&8XPzW2`k!L?ZTWTAtL!rS^twl4pb zF@Y}GFS4Dww|luggZl~Y%g9_ypwQ7{$X6Ff3&+URcINRKv;q-e2Mq*w*X^?kHI0(=Ndh6&1eoBbAooYpJ{U6y3Xwq(cyz{HS%Q+Kzc z>tvIXIse{xG7yltd=rH-@JrGEw9a@0W$71xowaYj=4S%`UpK*jytou?T`jBt&Sd|L z(*F7T|DL|H)nA;^#Lzx?R!tK|9Zb0~kx*JWj;((Lf`yWi)z(7){Q2V>bmHcydEfa2 z3o9-I`jrl{{q;9=vB9X)%x~nksH!iCYH#2lsOnbef6mgO4^~D}z52ES3j=;$@u+S6b_6p8^oIFTr;5n7(nCivS9wlIqrp%#z4~2vM)KU9^ zEYek>klj>Xy@tqo05Q&k?L(tQ+v5V%>VJ?WM8YOaJVRmxYzQ%yR;iBbLY4vtLog0P? zL-@G^7Yswg|JEfK&4K~rY&RyW0w7PZQ!mQMi@jqZR$Lf5erTEoBC_A-P-posu< z<{_ZNHg1ea4xaJZ3RUTcYSIff&a6mcca_Tdomk4QVf4`_C}atswEXafxd%`OcvDZC z$iY3V@nYLg7`Ub#vMiv7IX0xArwf8%4Sp5$+mLR%MH$~1)9sS$&tvYJm1BXb)<;O8 z=(~o{z#_UFbRaEGfHh94 z)v0S~6x$X;BVD|vkmtNSCp6`Pdia1tJykW=zGMth_ry^{Z4x6cyZei;I=jB?R-`GI zb08dQu#P?XL`hbGB~%!je};szvu*`YI8i!Rc^infUE| z^lTN+MRyF9aatN@8=#^W0XX_$zoy@8-IS4xE<0k%QxKK2?4%Gk&CmU`TV4Wta+P(( zXpV_u9syYtLZ`^nVM6Ze-7FKN6Ik>5C8Llzk6%le*Lr;-a3!_bPk*qhg(@du4~k}! zhA{kPa4wc-lrsrOx&zvYOTw0P7-)AU5HS&jRwCjJkD^6 zFQ*6XpO9Ai33CTH&p6;i_s!oxCeWo;XPecoz^qiFg3?8boD;=zzm*5Mz~%?2fh=tZ zOYXd%`c7mMo|i6s4W1OKX4Mi#xks)?Sfp^~MiX2ww$XN!!%z+NUQ1z6X)nm^n=e{C&N! z&mGPE{P4rtCo5t#AA#QAbtAO^VWhNeOe1icyykek{bvd{m!czooX?o3=s!^g}KZyL7i@Z!(f2mzXyIS`rI2*HzfUepP zR*`}#g(x90wTTj}jldnO;GHy&x)dW{qS3PmG%|L=(X_Vwqk>*$LV`ep5XdSxg6hjb zFNm6?ad=F$(d)cy!uHyD+G=Ft9VH;U3tpx=40j0!&?NAn97!VB_2l`Qi{mCBJ1LI4 z3JZ>Zv<(NzOjBd7snQk;@r@Y{BB9(?JTj8T!qsXli!+W4FFCsM$duo!8G{GT4t$U) z8;UdoK+6htc0cz0a>z}8CRPpGTb3coG#d+-D16dNubr*h#`+^kD8?L159;OmCv9Fb zmg7NeTe1#RCrJ<#sw-ScBmP5Z-lL>f&f2^-C^v*hU6hfXK1X6kQlc}52)um%uPOtM zWMQ)Elql@g!e&InI4HtLWz1B3*cF8=Ravc6*%;-G+7XGq_{7BE@JOxzp~wz4%I|C# zABXB72(!OrWyH0+Y_)@(hr;^9*-fw{N+lOjeosm?@)6|nFMm!c?lYebdwB)To7A+{*{J9^=&e~if zIv9#F6)VMFScC+$qlG%KpXHtAc`7dESZlFP7y>76By)7+Aq8Kg7 z>>%%Rjns@)U`@SY_#z*)uQVf!-kPJWxYJq1$E8D=r8GQ_6>cGg5(|%t#s{Ue+{x&% zRmSusrN}K9%^T};k|of(Zpc;DmbiIt;$Gkl%gMZc1Of`;+Ff-3?Y8K{^ac;4#-Y}Os4LJKYNY@+LtgC}k-tQKwdIaY zGpXGI*}webyCGh)udn1chq_>LWS`!FT>Y+iMPfm_1Ovf24&bA>mfgW@YF=4x*q_v1 zst!DA`U~HIN&Kv>>O~xQLwyE$DR3bw(HCFjR1_6U8tw-=SUO+bOOE;poG7 zJ|O>H1T1lqM>Y2a$T=kaZy`DVao15Xax+tLF>?7wDcGb1?Sr=L`RU(Yk-fSZ{|%Z6 zmLsM2*J3La)6QY75C~aAxQUP`k_2{@_*|d0#uj#9h}<4+EGnVla2VA&-^xS&n>Mq2v4l$IDjc>SC|7*2d8nUwk5ybNlb5^CRz-?}OSm znNza7eA;YgSz1=C*t;Oc&Q7oLc{t9Ms5HNsaIH2o8lpbe#Bal|ym%hqfWFFzu(QWA zNY}pmsSs=hLN*q03)|Y?q}gOi;)4|q$_lPwCh8RNfAr9%kpLwK$N7{U7>UcK@fo!CYfNMaa~*Fv<^SCGfb!~8-h%c z>qE)j1?`!Asln`&+Zsw_F&ynirX==F^p=^~^buDqcA5N7 zg3n4qgTG!s@RXzSLdy4NZs>ioCzNFi#-ZQDuxp4D1g2=S>nh`9RU7)%u9zxk75}L$ zrI8vHVyy7CZ3Wd@=^{SJ zf-uS~3+Gh%NYfICgv2pXxLUkKWJ8w}w&JOV(0XT zf4!KDdX10b(wBg9SBqm4GPqpd=M*b>LX#B17ZfXKSy&muj&+$B-j92jC}(!&M&XYN zz&KcrTdou>`W1+jmE;bN3%!ilR}?fEV$8ddN~h%{;@y$W#G15BHrYZRKw(R)ip~%g zRHY@6)Y~YKI14EzO1&cP5O)67)E{@TGMYsG%M4C)SA3IYMYoejIF7LW=KJHUQaOllufE_TG|d(R^aKrz*zlKde^BR!II!OL_74~HFzrsG zCwxN(Z?f$0gXvx^bB3W^2hN^wF8&Fg#kL*(-x#i_jls9Om!S~qg|)s>5fMbdO#wLc zl*>Lm(Ff0g)nE?wZN2Hw2sI&W)O>i+0)6-e5|Pe?-mHnJt4c)!EQD z0PRsLD3PQgA}{;8x_9H=V1&>+2tG+wM9G@nK4R|)W*7K!A>ilUvH}~KTa2+M@9GLH zv&dT$NnF#e2X_0vbp}w-@%YRXJ0l`Y- zdzF#UrfD&8y8^q$gvZUrM6S5$vOEpCgOo!&)8%e@{h%a-ls7~r*L|h59%=ElGPZcN zEMCs#QN9+wR2kFW>XTI&!4l_^Q$aqM zcGty_y1A9MvUp)5HC*%QU+;5gp|ys9mLcaJ(q-u8F#Ge9&kfm_Oo@vjd=uG zGnZkyMmi$KX!|O;YxckReuu+R&n&y;5%!$-lnE?{xsUsBZr0br$ozZb6H!~s7U8i4 z&A(pH4UL^dxF~a_U2lZ|^D7`Xun;_up_T^<=PI1?6KNLd zLmg@}X=s>+`77e1;W1B0UAnj7z#SeWXcYHnb`qo7b`G4|{e!xTu*c?^wb@S^5LYuJ zpR#z3`7HDONkey)BBJyG4|B8<4dx>Qlrqjzw~sZ;nOAsLcm|E2>jm!-@;Og&d)uLY zq`4xKYn=L7r?2DYrU(DF$1rVvC&2XMYQ;Vjf1Wx=v>-8XOkd$Bkn;vn;En$y-r=I= zoBH*1h*g$;{rldOOGc9be}!w9#L!EP$9SB7Z``W+jY~Q0EWY~9)j9NPFwF<6&enyN zunQ>NhQdqFP|D=&k){gZ1Rt~~%^&#N_nGmHli0AR;8aAsSco%b7Qu_oMSt)E(T{j; z?31Oa_8wq<@fFaX2P^}9MF}GaY!@aLl)*l``Xdczd5~}cbHjI4CR5z5Mngge7o#yk zc1KO^r%Sdt)T%d)MIE6<+O4=P22)EO^WBY4rNG$7z&80>{VH%u6!^P%U5B;0G;*;* zb!dxTyvec|+-4_H$8%_|T`Qjcsy%LcnXSp1Ey~=vTb|DebC?xELN&^91cTKQmMImV zw7TTcluNX z<9FZ%O+t++WxJI7+Ra)gS8D^&)fhcaU6jSBhAi57>~l=yiE z;@`5M6r?xUapyV_nbt}=It?rC_KWAAu0d7Fkk+$)b1?1r4ms@FgHq}0C~Rs+2~JR@`7GFQ*PrR<@|TEnI0$MyqUy}WFu zW`~VjkIXdfIQDULmDdC75 zd3hq)nXy>7JmCtuTy$w8t%l9&96UZ-(?0`r@#a?CwO%Wsl=po!7sqZU?#>0$qe|=1 zrx2GD^Ee-`Znw#7(n=ZL;D1P;o%(8Z$R~z$X{iM*(GSX#z1dktVRoo)6x*0SvHy;! z^A|+{ayjdp3t&2c*$QYGJmN$Or`gUvQA}W9u#>jN11l~KD>Oc zrKg9gz_YzTdS#MS%6i!SorYgt^W9Gzh!;dz6B4Kde=rrrT~EAe75*X5MpWfRk>^ep zqqo<0LwPGH<8L1p@95@JC+aT!`<1l=@cH@oKtL)eoj<3nw~NkXu)fl6@o$!eKiy_- z1TINMeh#lIVgShm`aEgPk+AEffF~pRr_e|{(720sLn_4(Cp>4b#MftQ@(Ek5h;_=y zTVX>q#aIIFlP0gbzAD_Amo6aAB10NNH8>=T0XJdSCUNFH1_fk_qf?Ougd#H+P%K zik!r2H8n(|)6==b{_sXs4R{m10hPNytZC|c`}#c5@bUR79n}OvNkoLxCf@7Z10-8U zjoHHj`u+}3gt1gY_KV|b{2)rY`aL_p0w zmx$O~QLba!Eo`h0>2oF0v9s*8Dp}7lh*o`X50alV7Nc42^gdkFb22LzZ%F*y-QMjO z6T#kJq%J?~8BV7k+gW%g!U!i%jG$vuz6kzEvuXJB!)Y8jb##SDN8WT+jSM&r>Xg%=3iHM^pRjwDq`!N<+iX8W2LWni`fNUOFxfB z6vfBWDzrzp;eGIn!|x`t5N6kYx#wq;J6T&tCmmda$qeE1x}LJD^KJUTG?4n4+XnZi zA-V2bZLOSR@1F;mc#sX2rmz-A?uqG zQvLPk2o04hr!udJ8|jI@3?W4}>k5o}>m)zG$v_N$q70KBkj#TE-&=cz%~A?mZbLfV zwK)+Omt%6!u1N@WkH}f;AF~yn2L(YV&-(Nwl(f*HWbL8kbVj0hq{`o>(xQ9^*0MGWWdVx-{)F*}S-EAYMA8bM4hTq@L+-T<}DC z>kd2Qo=N#^Jb+xfXAgi@9zuTk7u)@!O>E;NHkS95+`$Q)mv_K)J{^~yQ7_p&<~j+6 zH*v3%yg75s2?A1;Dm$ZW(Aa2J?h!y>w72^AVOX4wPsmAs4)Nd^z_ZE zC&er1+YIrm%GSeeXO+vZqGGQQu2KB3J~AC?NRk{@7sxB$Bqm`(R7O>Evb|kSu@2v_ ztm2hcBL!!yv^SEgR0CHizd3)Hd2Esn=s`ue$MDFsaS_T*S;`UzoD{QYD| zBh^{b4w{5~)d)!w1K0g8jWuQq?K4S#SNI^_??sP@JOyV#2jKor<$YwjLw7KC<%2s? zl13d+W&$M^gg`jnR*z=vL}k8{1y{{Ez9OOteQ{{5Lr9@g4jN-{ZQ++jQoGV7=jyQ2 zo~q=MRP`6lt<`IQ*&3X@h|BmP4N0Opq^ZM1I~KY0-s;>zvt8@*yGH6P>N&JQ?v_h0>sRHxK=WhqjFeTvi0T^ z)yBDh{^Xw682F@wrKxGWfB*W?`<~SEyQ4UM7fNVyy2|!`^mF%xsP>!+dI*TNPG5x(9>3*O%3zym5Z(Kbr~o!Q&9 zcVh2yaQk&-n_4PV;i52YI}f^?HB#1*Vsyj+l$^YEMlC)wt(Q2(32RGwlbc__V&|Y5 zG-0e`Xz#QVHI}ilt~6xe&)v%9&HT&T{E|@i8G~}2(5lS&M3vtFdnF)-i5^5m1)*}#6xI->aF`8T z;Gir|C&j+_*#a`Kp>RSpum|-oI#R*rQ)JDtyGL&_lQ>Rt>-ti(5fO%91}1hc39)FV zAr@aLH+qjk``OB>bDR&>1#vfL0$Tab@`B?Q{j=Jd3)HSd)1Aq76HPHXrg?j|x8p(QIoRB#HUaPYYPL zpkv^*&&bS~x{f$@oG6FJHGMyJd_HKplv`$ctirB|Elgf_L2>EwK*g8M8hEY5Hd?U$ z=$i4x3>-+o_JY#}!@v3ljK2&I|KXOdzZpOp8MHeV76rU6vz{d-mu9V42j+0T0I?*I zggmPBN1fX{=WANMc1O$gZT!O;tv4C2!TS&HgYIYg8U6ST_wI{HdbYKzt1+Qa6(7|>kyFzIqC*sp+mevmghBk`^Mhas)40xvo~kYmA%rx2vIHQ z6{ymPhdzEI%0=*oy3cKZ8kur;Wz-g^MUQE@7rP`n=G-wquvaPg$DbATdJ>GZS8~UF zpx{H&!CD>1KL(vgc(dONR9n@WX#GcZ#FamMJ?7^-{mNgyM{MIH2{b{&sFgC8Ny0i& z5WXHVmwK?;Krom_7?`6Aok%t0jrJGkq>+NKJw6fa^=nU@=y;eOqzirWI3u22oEXxU zC?z@)@teKp^do~4Y<6hwZ=c=a(oiz?%;ZMtb^arLiZ?C@Z~viP*0N5tL;Vt$Q+$cb z8UOcs3aNh-6#u0z|Cb^8pNUfZq;&rew9x4)I}`s(K`|dtDUR5drWU0E;fkmL23@(t z^|S=pF;nfE#s3iw%_W72fwG{r;oRbLyajvr^6>F}2Sg-@bDHf~ygQ-?M`up8oC$OP zEGE;Oc-yhw^dbNX61FvkB%THZu>l-%s25?kP&yZ#D37p?I^&7uFw5cGYdSF(xofsA zk^#D(-j+u0+IT%g<@cDE>&=#W7STq8G3lJ9p$j&%PJ?)eIW~ zXwddI;N6d58B~kNoe#&ymD-eskc+)oLJ8@N-!bc+y4UzXz^NRx2RpQ#b@p8SVl#l-GLSv8X(+bBb8{iQNNlr zS-fL#w}W^s5izeYTb{a^ZgK2uk>dI3;R_l-%O%u;MF~{4(HHIcPUv`k#)KaH5&4u- z2p6uH`^;)UWgxL<#Fp2SLLBE%JQ}HK4HGTcYy-=@LKOuyEcniFtPV99ZY!u_EyizC z7>o5A@2O%r!41iJUly`|{Za0(*T~*b8%={Uv_^4?4bJ(qBt?o94eG^QG@5YNAskZq z+k$rr4O=0ye0N#rfF=xohR(TsYi=hcyO@La<>&UDWSA+>6zUltw$-*d5NYbS`5EBz zBsSC4pRnNUqYjG^w~B}H0G)AE_J?m-X~@rD5TYcH)X>ZJd#n>_iaoB}R05^y{3 zC)*FplduKYFRMUG3m^ohlrWy8X)eWyqrD+2csUl25zG$<((i}A>f$OzJ_@1oS^o;_ z-Jk56ySwEJ`~cq$;&TjvYdWA!@~DWgnpNub0#yvpl(O%r!HPV0qfp3}sDZUv6Yb)1 z1GGh53}%QsVv~1FbghaLpW~9nS_bY^=7%s=up{}doj=ouO-m_7h+OtD;W6_`JT2dD zZ8y^5tfuRERdU@>yQxoiOAd}&{k|p3>R&3Rw}iY z8~w9zbYgFJwcJTzu?x>qAT*_d2$sN+`?Z0g0AIiHbJl1c6&<727?V-vE05`hp$)Qn zZRAm96^gbcs8hEnWQc~co{++=tL?_|dV)QJtDdctTk#3qUiSZe zM*9C8e<<7AyZrOikTL)BR#F-N%1B4!UzRdK!NZaEOp+k9vb@VLR&y_-$@``p0*g}C zmdiE2kZeM_E_AJ6tEota5zbB++QRB6L!~NJnC^W%#eFO=^zw4{g+u0DAyJL(mmHG1 zpLJW^wc|n)5^UZE8qE<9(yUX2JM3gdKJ`6{G1YG0%NJ!f4#g|&y>OUpM@W(xH6H5{ zui`%_4=(vdDYnsBkjQAhFbdl$&WE&;1{;q$*$4V>fxFQk$?mX)fZFhNTbm9io_aXt>|&T{Bg;wM0#BesF2hR2 zzU7$u7K=KY;IKO_69w9Mkws-o3Qd==xvp8~4XBKqzJ+Etoo)vbLw?Y(c5yiTV|2Il zmmxSEo2{`ENU=`$8=PCHVZcbA&7k3*uI^ev8_xvKR zr79*Pjz|fL_)h3@)*?7{Lg;reZ*-RD-Bt(n5JU~BJ8 zYB8K5J1><2iG$T&OPsaR3<$3rMB$%a5&A~ zAKHJai?z68!d2f`TicPNo0gfG)7>c`$nPFToR&gW2f}$<7j1GXE-vf;Zh*s|N&zI^UWgi>9JlH!M-~=iF@&zI_;`dWpD41zr((6)?b12% zfQA{7B>`CTHZDSu9`{*D;DYH9r23(t72ZxAL|oJBYj0Fdvpt@TzG)zz^`iTX&77Kp z^uKU$3?r@3VXr=97VH;rE^}hV0{g01>dakjvYmWck^p+D)Zkgj;_{j|DVmfx$L7)l z8k%3J;LOA-k%K-zsfVM)h^J4bOR*`l1in!a^jM@NNajL1;P3m5C0i*Uo~KZu`ARC6 zahb1@2Jkxhf;6B_xKXPpH~wz&k{c>=ir`@PToB!mtBZofOL6LwIS4hgkxUE_8=rt# zpWRF? zx6aY=Tsz$<2%f)RT4};HIos$gS9Y;KDx(Q)s#8a{z1n}PYvUA&M`AEpyXg=*n$S!xiKjLtB{Y*|Sy$O<^j`9|}_$|fOkeYh_!}$cK z6E|V&{b{7${F>FJNVVQFeOxC`6A7WLQ89@g*?p~hNC2yK!y`g&vaR3T96ekAq!9y@6RIF%xofJ;e_Q|QNnu-EBR)`?(! zoTtSYNTj4I))<49eIc-(gJF=S?fHqX?foiQ zrCQ&`o0|Vbyia_9iChkxZ*=>PiGGB~cR3bsdBC0@FUXAN8>WP)Zeut+4gn+kIOG67 z5qeP|7nrjp?-dM*1d$jA4C(?on!ASZcE?TgJWES{LMwQL0MIOp4O&|wqT1LqVas+5 zVTw8cKZ1UjdB!lh<3b^*K_l!kC>y$-ESGhL{e^kg@z7g)pB)*|@p<6&nH|yL^EgCF z46qm|56|L1MQDH4j?_v@JU|1kEBL7GI-mT1}Na(!i2mu=g&ZQE9tZQHhO+qSxF zP0!4oH!(NnzL-DxBO`WXMx34Jti5yXwM_mU`z-%8T2`_*F|sgmlC^UdwR5pG7I8N+ zv3LIe+8fCV3UVj{zrIVl1(kk>2uA)PI|YT18UWWL>{7O3mht(`%D`)L(^7Y2+q%9D z`l-R29@mGsCk7~0ivoM<_eo3tI?23|GX3kTy$j+VZ5C{9SmnIq8*NC-Zk#?B9vP|x zpgM;bd6BM3Y*nkz@-%rQ`g5x&g>ND`xfT)r!-DE^`Uc!8?fy+y{N?082vsSoNxBf< z6w@zvv-|5z2>fAG7gkJ?%1_$-`q>Ocf%4IU`BC+JaZrs|u+-|F8M^syU-+EF*{Szd z@vYIGfDwR&-C)~xSfOq@xJ!vYddm15sZMzHE%GJx!;lQ0sxW8?54-{uz^4>rKld|B ziib?8`=*SX;kSW&p;MTRu@Nhr!9;PEQM8wl#zyL{cc`2*1(H91$_00CO?}Oyh@G)D z(om`xj`5o?jRsk+9*7r@^-WDMnab2K{18QS$Dwtoecoav2%DKV^(Az7{!=xsmA&QE zrplxuIZ!cqMHtf!0Ne@1YM|AF8f zj0~+UB|Ul-Gg@pFmzxYzE0AFbM2bw}D?Y-RWOO)K??LJ0?q)d^O-Q4eDNdD^40 zq@2uTbDd^=VE(*+eL?!$G(k;@IS?&Uza70@)d6Bfn5DaYdC#OjM^b=^uAXFvAooLv zusm)c$QNce62)`C^GDZSh>$e0t{!WYt#4YOXPUBrv+LZ`ivlPOzO#DE`Gbq8Pyl5} z73&UhtT|4VO36B^fI+vw-(#-Om4D%0pM+pn4VLo^a^xMB*GFVf{z11hN*04+w!t`# z=6wtrDM7cCt;VEP(k02|pfs_)XQFhELxKcfq8LUIMgCf^nL2yK7nwA7{<#AhlNM;J zzdt)ahQjqXdo|;S?h`|?+)w`luem(Qawoz3`XJ&)l^}q~=avuE>l`KhdwLikJt1C= zA4L>@Y{_lPH-nwu7Fg_BUW;l60fmTM}Es$x8WdB@s5TvkutM7m!8c%yMUL*Iv09VeV|crWQ5Uc zL$CNkohl8jZP*w7vg?vQQfnCx4Rr73KQ$-7%k?g-{%r+^|I+9G;_v&vDgdSboj&p= zjyBRJt|r$16SO5KUjKK0-;vx+SG(eYEP5Pk%0C?l>my*hqQ4l;v=zhZJB;s?*kDqe zv(I&rf2aToQKExpKfe##Q$teQhN}K)2%heoe$Ol}KECAM^a7#YCK-6tUTZ;ATRo>PdE@vEx&F_N@MAlOyQRI7aUQ_!T%n z?@}{!ZxkBxV<-g0AUv}Mx9?c}S<<6K!&DV@96?z3^{G-U*%o`su4({9v)mHxW|Bzw zv4e>SxYDwn{Y!te`0nn;B29=D5Nt&#Jg&89{Rm#X{)B7STNZon_eE5Aq?s-2fckhpO2X$PUI9fgoae3@={@@0ExNdF&t2L% zPR})9SzNG+c~B_(m=OxTb%LA1tldwNyQp)q{Ixe%HHahtNduQWiJ^kLy_#nj zIN4}mj@7hinEW?oqw~mV!k)Wx!-~cFr+V2wkCyceBoZyAef&4z4CiMxbN1#LL}l- z0W$47VhGxlS82FT)Ji^UI?)&5LFfyMq`q>bXo_u%Jz(ewdBtK`R?Z%!)n5uM91${s zpeq^cJ+-PgOsAq3yA3%&C5w|eFHQVN;G3O3eA0(Vfup{Jfi8L@54|r!9LiPVd z6n|Q4pvE^khT>2-PWCT@3CLBR06m)OVC3)T9(dee*Qy*4fRVVTLG&7Pr#Ad07aXX7 zCu&S}hw*>buF5+Zdtm>xJIPS~wSN9zHopHTGSuGOQ2vPo>nbwJa5_T^f>)x#FvI?m zq|lnw)G7;BlmLe{%q9~8h?6@o8aM!>x!La`z33>>%P!GN5_ z)YMk*m(I)1x6@s|ACNk%UM6bJtop|+o9qZu3&Fv)G}98tdSTz9&2%b#xF@mZLrv=H z^ul@`VzH;9>b}W2>VG-S)qNQ-)20YeVebg995a=ZKobU)3j%+ zBri07Vrj%VRKF`vaG(XwsVPxlejzkv(Wxk}F}pR|ncDWqdP7^WVM!&XEHyL9}bty7uX^%t2Q%(9fbcnZ3sKr_) zG>>wPgFAi@8|qG}A@5)4JQx``Czyd2jTF}iY^i=9VCsLKdYnri`~5^jJB_twH*-1P zcxW_fhhg|q%3yC(K_+nU;AsLn>~to7wl*9h-eL}#3iS8XsHP)W1eooy$Bm_G|-4UF@~w>Crp)6 zXjE}mnaxbLuql-Qf-y!|V}1r%k`FUe@FtCU;I3wr9E zZM=5GVRdp~_o)4dG^()Z70tx&XNgFpH3Ffp*0Wk zBAjB9XA=Xb#eRQR+;OU?aWU2ZknQqCwhD`HuP-@(yyE7N->meFa@3tzdh?&hq1x5* ziq|hOCa%fi`MrGo0KoBA_lRPP-xakeUY#>yLImH5z5i8|uYsJr(BpI5D7hB8yufY& z*dLqYI>p@lmgG?iN{tWb$>SA&r6rwn(~DAeN;N`R6ILMK__GDFf?rNYMV+N;oI?g$ z7u#uIL#Qq_!t4rZ)yNE3m#>cMw>4EQ(Z!ALRTXboUNM?ynO!Qms*lTFYBYsQsz68~ zO$o=m7~XA=k8FsmzxbUHvG(?T3euEf37=2%=eK(^pUW->L9qOal2L+>^JmqMu>MAG z4GrX5nfF8t$M4oXQfgX|ayz43{Ia3z4P8@d5-Cud_Z9K~5ppb!_tM z77C`{+!!YlDxby^bQ|v~R-2X(;4A^*z{g24uIX-ZMZ}Rg7Ly6Q^H<_(8hLXx`7e#i z#_7RZa5Zk1|JtUk`*u?UDAzuPQbTmvblwrdd0pYp<4F90rdOo#QYYhu4&Z4{2N08qIA`S( zXL$FEHu9q?1|gRfos ziNF8zyzedMCEMkF%+4W=jC=^`83k+pEiO@wN>Q;P+Lq#h0*{? zM~-K{h63GkzepYAwKuc!u+#fy)HVAgs`9WTF4i0z9+Y2n6~FmxTRznR$GK3>8+URo zjui#a4DiWqXJ_RrMHckM!ts}`p&*bvT4&76D`7?^3v+bh!P0UN>IdZr|G>wkxOBjCMjriwQCQPfl&0GZqv zVUDK|n#C4UdE4Jy$10!XqoU8Z1Vcx5%Wmjz#D0WMC^szQkWd*a|&$OOP#ND4fa}b&)WE>oN7wCbxrv zV}58=^atWq4O=FY&|XwkcH4F}Dtty?&gcDN+GvPbd-=d8$lv#I@^YE z<9Zn(BU{7Nl$6HTA2(tRl@L_~Dum&<;LjmDYDglcqO4%MVvLLeDtIu+CL!&pD~Rui z?79TbD9P?B57Wn-B)QK0Xg2eCxHIk_;Q7jI6XY zo>84mSC2I(433?xfB#6A9_>dCu;^jJ{2lgaXsJWXnQFG6IX_0w^!e58SUh$t)ZHFh;k;1Y2gJbJgAs9A73n}202cN5WPM*z&aUk z8ZT8~9a<;}o}y*Q$n_V8hgwWeZa>HCBEm=)_@)btP;npKN4}nFAbQ14)?>HBZfwbw z{|pm3PdH?95E{1)3Au&66(jqR8YQE=QD$O2U{nc|D=~mrF(nHefROT4fstP{2sdM! z9VJ(}pTpyMSA0p|$rCn*{b`v}LHZ*br6-KC_2U;prc_Q^&%Xjy!)f@vM=y&Ii1 z(dI-&NxS}f<*koFto%2=@5MHe*wP{2z?-vSGMOHikLsqAma`Q947$jgepCO~TC)Q= ziPLinwqAdk&VIFu@^u+*Qg|Wnz}P}`o9htOnEqBiN>=G8`4tDbU8hih9(3uQy|4f2 znqmvC+g!3hQp5&}nv3bx`gueVIcq3!M!!o8#y%^ygmKuJgZ=?rC-ci zz35zw6N~aMn3g-ue;%1`3}cUvIrRIMZDf$R{!O?Fy$ijnqrAhi8>SLC8Q{cqa5e~rg+Svh@r)MhuSn#2}5CWNjWqV3St4d(SZ7ev; zJ`T+=G`EB>SJq*$&@~UwqLAXtfQPW3B)H=eR*pE6^#E;Ku(_?NeGN*ByIF@ruPO87 zo*=pPVFkrLugo8f{J|$1)T0QO;x+0d$2}lR3s`GX(TB5L&Ks?!C4WZK2;;mz6x(L{ zl%!m~KV^p#)LRjyGHkffe&ZmVe*$cg*LCrVH+g%az}Tt>1j&W#{_F?6FC;|2+Xmb( zrVM4=iHhq6Z90m78$hH!Gtbhrb|NIko)GxQ=EshaPGRRmyY)$6y|YUSzYkbR+;A4f zm=D~@8#}Zq9hWJ?qfZ$3>9`jF88uRy$-`=C2@`zyA@hoC-RPb)C->=9JmHW2;D+mZ zA#w&?77FQb_aN)oY>}UKWBB%>_#*x_A|TJ=n79Pb2S>?|8bcC7dLyEg*dG^B5S9>j z+t%G4c!m*#)%mpzFLqI4vQ1-l)dJUs?_#@H_X@fH&+!QIR$hsx z;I#49zUsrsv0mZDhB+b&FJLx~2T!DRX&$Td*leCA5!i8ZR1>};Xd`&ES>Oi>K4Y%* z-{&k^eX*|6Q~|wV&XO+Pyg?sl{v@Y~m_7DV`tC0`7b4B(;@v}DP9l-p+$Oj0!k%oc znY-k*lAB2L0~blRp{S!w_8Fo&lsZS|TTqmST{7eRhdCF)&XyJGV$SZLOyHg7bX&Jc zaLR%Cq$H2#Y3bAa7#(1JhjC$|*1_3{6DyTxGXwIV*`*XmV`4I5CRooz--Gdjjw?sm z1y-~l$3z~PO`?cq{lO~9c+Ouh>~zduw*Ks>(pH&i@2$<9#^}zn4;GV=IB1a#a7z@* zd%_9v##-N)62Eh|2os(kF>E9ZcqaYVt@8@$pFCSXqG0L8g6e{gV1$~B7Z()})C6&J z)b3DQa{67Df}A+|0S3K89wQ?w0~hlWehE<;N)upWzaDc>T7M=?iuOAn4&9hw!d2$z z+Vb~sAd0Gu+EhEj!nnNB0nL%Ju{o(jXgo=U?!%1uc?S``c$AbuC6w|YxJD5r6k072 zvd*VU)E^crV%S;(4LPTUNaoMy{Y^}qfTaO- z7wEdXH-w;ami5~sPnl;O#`PD>E!0dnDmDqee;(q77UJ-}3gx`b20;;m`|d=hIVBH6 zgbMF|qJG6#;FBH}hr=&qI#IQQT4yC(7s#(#qPYgAszjC%zqSH+q?F4Ogx)*4}gL>G3M zvt@>3uzqrvXH$?Fug*K?nBq#Llau=EvUgP_ykwG7kE)o!a?1_*wxEUO!8;! z`YFWux_M}VTo}_NJj(vG6pE)%#j8Jpw%RLuP6$b<*zqoL6_79@cs(LXSSs`cQzAvO zo)iiSpvN&0B1D9t4Z&CTvofrm#m8s|Wt$A(Rfku@%~-&X603y4Oi^#<7;%+_Y%uG@ zHt-tMWsgnNC>Mz>J9mPZd4s2bl5wSGhiR|BrF|0f%}`tkwgo`Y8P>UbhRB-_OA3HP zS>8B%lQ%b!KH`#iyVzOCHYWLDQ^$xV+#TdyCq+a49TkmOy^(&xr2C4|+-vR6#VZn_SIc4qHuUUPnt~P9NSgWi%Vt z8#=fKh(k`b5 z7>pP&hTIb>3JfCCu4wj5>xUFosgRwMQS;Lb9;F=xl(a*BsJYz~WFFge2St|Qz z9l0WyhUfKfROj&fofl z-`#_{5$V9URU(54XjPSQ$c)((j4)@l@uPz3apzI@6ryu(pI30^ z3fMC3(|Hr3qvryAcKQrHTmA6A-GF|W)bU7Dr94_S^JMD&n1DhIg18B(_k+MjFVZSC z1E)!!)M+{1T7+i%8py=EU;JnXH82j7wLokW-$8@vP{_`Yk7CV*2vw*DsYtisyo=)l zo1QiC6FOfa;dci6w52@MamYJjWNA zn1>QJM#X`5B}3?>_IvQaUxqRFND#Q*NF;9e^X3?}Hp|l8Bt;|&A~F@ot<|9{tS_e% zQD!@)R{WPu5PLCO2~}2j92F5O<&1fpMMT7AU5pkLg_3W<n0>*9rc?q|w#<0U{@dNWXqdK&?O`^b`9Eeym>Dk+SS_Lj8_$&=vu}t=NWIgO&J%-aR0Zs zAhmf>siW)8laTezTCSD78#RR7sPr@GGqcDm69f+He%#7zD&Wd)DHh}?oY;b=#u`oQ ze3~O?BMI(ywamVpz!i>7`L&TuyBOdb(w`g+$AV^3F$PWHi+pkimcv_>(yZ}=Zg(O& zec4J1@jtJzpe(4zlrMJkf)kWu%qK(49Nz=5vC|#$HV->hpzwqY>gMm)^&>Z_ z!;oRuWAZ8Yg>IxnoqoA6h*$lA@B$x>8m3#YLJjJU;1KOq6X^Ar29s+1 zfd~>3D-TsL#%#^MK;OFJM%1&-2^n&PCquFH zRWlxpDWa}{#TmJUYl!t9sm(D)5o-{5)N`>-V&ToAaNE*fO}x|$(LpSP2rf80xz$g@ zXK&Vpe(-vAz=i@?hu6o{pz&-Lo)gTOOdHtNwVFO5-Q}9v(;BYC*pW(VX{zb<5=^)n z;Ga>Z*d)#^>ikUPv8hpo8R_Nxt1(h2JYzSQM zE%fsi2Zrh)koMxN^x{a0BGBQouFamqi3dd_=&mc z@#dQRghx=X?=!TcreF2$8Do5)4c4>|4hF1Xu#}_w4epR}T1U^~#<&nER)_!PF=#ch zzY1eRz1tG_NGOdSmQCXx+)6cyv>w(iuosBVsnT?QkiAFm8kOD=k-u1N zANQXue%v-;%3VM9xIRbRB*VtYsXl9F{>dGG(dE+FvZnR3xvUywy*dbVNWba@^vJl>O@B?$JP8HKZXSD7N^UFOo#4H#b;LW#DO)Cc|5dz9V8dJurXr~z_PuTVG^vT8m#z_cyS|K6fb-<$j}11Q0}a4}ncQ17KwUM#cJbkwxPLJmqk^qGMbmwV&hXBX zJ9>Tk#0)CDRCA~FY>bFyYBMKAyR40PMGZn(ypFpQZ9A5h$56?Wg9yj9@y>0nIU`(&J{M}Y{XRqReyy{338!m8Q>e*drwA&xHI>DsY4$N`C;`zPj+s> z5-lh1)qsFh-LOH!48_1oAGvm%Xd2VEkCs*oFm@03JWAGd4B8#oD^jXrl1^3hw;1kF zmsz7NUKYf+AWedXPM%nk-0OiZS&Z>sdSzV|? zq*fP|A6J+3->vM-Z>ec^6do-%pLEx|oOFwDf}?Awg_v!K-fw37Ww;_E?XXPo3x*+^ za5UPH6U1KZjK%3A4eYzbLO zm4la&bR-5BHwzPq$w+9GsyfBkS69TY0oIg|OT>&?amy13;EVXqf3*oCP`A(%wVTCHnT5|(a|jQ=bz^orgVshThPP3G@Cgjjc}Qbe)Mp8Xjm7E}*B_6@ zN@WfeDDA9?8ps#yi*~aH#LsN~NFVf4RX4wJ2lXw^v;RA2?$oM~gx!g`p|yDG1}!0iwWSRg{F-)Z}({nWkkVJ5wJa zepMgxhdZYp9%5ddr`U4$foAtF?$TviN{*$oo<9+Y3kvT*rO3L`D2u7~vQ>A<&-*oPI zu*7$&#<%qQU2O*QtDZq(YzO1pZke3!TjTj?X9T~GwB>EB{vhfp7fY6}tZtbSQbqnL z=M}-4OsNvz>> zb4(@(XY{DxhY>&!)PvioHl=*V@KAKh$uaFi3lbMg&S6|a@^)3#o;bQ7IR6%87_mmo+EkiWOz3F|?<6VSXk-na?zLUJ3u^y0_k~G|G!uXJs$0_bsp03Hvm-h{0QluSj zX?o&)zbt1)+s9H0!Ry{0-~Puj*fY~YJJaou4{=TN)Cm_o{BhpbRE^dN8t!QAn!YZI zKig4`wo%Oois`7*PPzaE%rHMzn#<`dSmix4F^2FU&3G_hf(e;hYZ5zDI33H+q&!D`(ci^Y7=bY7IAU1(BBD>C!bREOdLSKMfc$Sb#Ig zpI`L+f4D^nNUALV1k(Gr!7)O8`k&s*qarB~24M-|1zDq@AuaUF8mb=y#|nh*b3_G= z5&Vs4BPd|(?{ccNvvrHxo#K0ta#MSHo8f5As(4V@{&iK_yYVeqYJHh>oy9m!vH7os zEt_65>He|%_woi8*CSNP)p5cqtD#ZJ)#0jxbC<~lQ0Lct{Y<5Gw2jl%sq}0=VU^uL zUbARIH>&FzXtgVLgk+aIqI_@UHN0Y7G9AQ}QX0;ZI@(4~>U zU;~Z6!9)bMDhCYYO>x4RR0YqL1?TIcl}Fqe8)AA-bIYi%cYxcb(^)}*WBz5QvCk?A zl}`eUtodEAp+UEmr|(+G_|jazoJ_j3yz05QZjokpmwK2<*;gJmWrzM_7~i#EM=)d% zW}w)2R*uVLB(mxia7Z!x`EcYa(LQmgF_-GfI&BnZyhNU4%NU%L8Z(hb2u6Bt=_m$y zRWNL4F>GaNsK;uM5>6o=3OJd=__)%1>-QvG#`fzq+_m}B{la+q ziFieHx2hlC+LCs25@wVAm|(7SJT&T~#FmB{0!J>0sTfwE8Bnp^T9up`OVrUKc3`7d zyceUnAla#$Q<(g8hc8JP-bWEbkHyE)0MQ(a>dkMIkZpj2zM2@4FHviI@rF-=j$~dfioKt zebyJ8+={?Odnf+=VN(@REwQVY7D%Ap54)`I6;7B77|8RO<2J@aIJ_>PemJ{yXQPTj zS!TDGlmi%elN`tq9n3y7C}Wx}WVQLyI7CB#wYr|c10RBhzUk1+jOz1U9An>}u^cXP z;ynmDWkYnEgYIDB*1kD0;YR-IjI${Y_Mas}ug((*71{aq=8{Vj;l`;W;~RdN ztT6d2T{AyNGkHnALd0fZiFGeEmcH3dMmloA>5zyFS1`!|kk}?A&Db!oRIKhid0nJt zX&2`x#H~UkvJo|v-W23`mtmohVq8M+((2_|{VdR3!7x5Db@c0)J?QMRV;1T6YQZ<* z1guz{H^yY7evlyZTEDGxeLs@5`5zdZs<~kpFl>YQvR}~-b(z}MQTnaw%(9BrLE9U_ z23`7xG#%UaaS}Dl#*rl_BVv0N0q&81VHO|hzgAW{;;iH% zMIr|tgPHsqLGPNImgaxS$!RrF3m3~OQEin-nuKURYX6zQDccH}7^)g5P$AU3*0<8O zZq~n~-uP7@3F);yObNbeK40?720>|Tq(xLvNlPY^SY7AO1#ahcjgAl4CZJ#&p=ET~ z6}Dxy;ERxRPajg}%3nW>niHph7~#1k5*O*JOynl`EG-Dvt=%u!$?CW7-lus*V9O6FH)E%iHD++OfS6)q*5qo9h|E<;4~K4S3J z5WgWVOB_i9bNM=RFDzO+%@sQ%q-OBC*19{RIoTu#bbTZC`gZgcVraVv+Mm-qB3}?M zTt#=_@lTQk_VC1b{U`yD)}*AZfwNdRS%bwBr9*=jc{BWuD37fOrQ&1N5ogqI{jb=U|N$FG%%`C5dp;0OrAOdKCq zXxyt2cfw=}#vYEfuz%Lwk#}N%V}Ytst+hXc$N_v(?|ejje*F?S$&Wv3SxAiRk%xlz zHwr-Hzj4XSQFcl%?IU3BfTM@Qm=W+7uU~^p_LVv?a_6nRWfAwJGy|EMaP$-aJ^4?s zDXa(7A@(t@`(7Kd50B)Z;y3%`@4qn4V43G)+r*<^)4Lr3b|OPI;q9P+tsw5Lu&yjI zU)nr&JefQ07-SES=DqZ!p@%Y3x&me2K*d)HMh|d}PmtyVNz1|7MYOJHkgl+e``mKe zULgy|@!p8uBIoazniJS1g*OTz(#fpWk{QaNjxqul6&{MRdkQJ|d~24#j>@|wA(?!u zWgh4347u(lkc(=(Qr-)Vi%QBf&*qf(a+)Q*OL~P zil-KT;)R8xTbQTL_`yZxuxz991&u(^0Ey;B4s_9sCv)b9z*tt)d6~@1JK;sS3`1dG zyj?=@=2V~S{;v1uE|JWc26UX-TJr@8=A8ZLBGyEYn^|#G1P9&MbPJ8V?+aplI&n-g zU0-U|NQ%!pbg)ZwlbtS5i!^`rN1$3qLwR@~k_Jz_mtXgdsXE;?Bg%Wo!2K2FPAqarNFOmW91_p0}mE$ zHV%eu>rvDoBFcO{#_}vz9kQnm=?kZ{B@6?_OiDu3wTa@1J3-~@d0D06)mskbbEREQ z<#UmQeGJX2mK%hNG%}6>=_g1T$0!a<8oQ9M+&SlCrq7PJ5`j{Vvhdl$^S>Tj|8%m% z3$*4VY=yKk{AmR_w=IZjN+~e;l@$2h^c&*loI7Bd&TXgiz3TjZgBTMw(Wm)IztC&v zrI!|b)+8G1)c#!1WJDSAU!ZjXzgEpYlSvlw zQpUSh8MMg768czH=FIzB$Olu5s|Zx^hRmLgor{b6I zwp9AaHYhd0IVX|`TaQeHSpdQ!_Dl<2bO;uLrDDfF_=~PK{u@ZPv z8*gLHnWG4XgK>EM#p%Tn^PmH1oy!p}`B37i2+OMeH`nswqO61n@J+E?q@%Y$WUGZo zg&h9Jz^gZ@qPEFSIfmbziS)7SNGEa0w`s{RLrJVhS;O7;*d5Y*w|`ICnB4^Bvq8(1 zKab+WEo9mFj8Qzcn^+t=1w0Pj zi&7vCL&$fogEQ2clpuXQ4u1IjSo%QT5%+hv#&aj?B+zAK4(gQf8OnFfl^-@v)xkZx zB(kpf2Vn0{i1GOv;B(%nsZ@KHz+E0rbNQnJ{o_Tsvn6vrkjTFGfaCWP&>-vILT>JQ ze=cEyxFE{9np~~!MCq%|Y6vyT!bjfxedJh-zloG>$yiH0c-L@ZO&jmUm*CtkjJomO zF?11slxl|=bn%st=LqNZp93M$b(aH}{x$5fNlf)y5pX2_xSjQ_$Ck97_fg;$*^0+` za6m@(h}m(*&Od_MCZhb^eng~BKGv1MP!QphBH|3|mgZy^z>Gc^F^7r#;vY7;!6X0G z2fnpcM!u2r?c_d|{!P&mJvNe#1NSgrkd(4^GW%p4`eyeLr;lO4tD6NF8AyJ=grqW1 zUVad3D1ALd(qN6vr5$JRjXk>Z7b}Lz^wwE-??AqLzk|%JPS_`vcoCHtnH7wuB}QRZ z-oOQwBYD{5*}Hj+Xtp|aPI)n4_M1H&7P50b!haRhxb|pE@LQu`>-&XzqcK3-eca&^bSoRLT_p;A7!|LhJO#|-fwFHSoYB}oFv;F5E0z6*X69pvy_EFl-^9+4 zM-KaJEayw5GaEQ7&z@h4uFLOo1>8!8v1+vTWr_*Okxzv6q^#10=L0QF6v zal6nTYOxEWBIe_4!l&hXUi~o%-HGw1CjKrH9sidz}_|-!4cPShHC~7%h2*Y3Z4#c+n zzz{}YzN8;Mzis>NwH+i|#DYeFB#s#&)zG}Ws`S4JvzOx#GtEDYkaqYH)Oqp4ddYs7tgIE zKFIjhFL#mhL}Gk0%dVU(X#5zvl<#Ot#}&+NEG}nOoO?Diq_&vKel%8tJyAGIXq^C+ zqFqp_YlN&|*Viptu3$N>QYKA_IFV44&r#w!`jBqQn?IDRTJ6hoZa?q$73`)}vLG^l zs&YzDn9E*@sw&x-|MtY6xA{@|&0@1Ix-!Y+!+2u|hgv-exF||xpthNyLTjv;oOXQd@lV=tI5EW7ONw9tQVJBNk^Ls&)C#OXP!xk#28+F5Qs)@03wFEmQo9uVYH zzryVFN>t8=XK2aJOkjSYadJx!d09u*|EL&uTyv5S zw*Qo>sa`5Bz2@&l)nvu4`LgEkd<=@FYMLr^m*o}QRi*1d6E6`hx-wUh{OoO}qDt6i z%f^%c|QwTa3GEXD&+d zLumvG@-D_NGN(0ESCn9Xvx%uWuvS2rC3Jl`orp`Us?$fw!w}2X@wDf%i#UC) zV$1O^t3t=JE0E$KsfccR#jpWXO+(Fu!x*baJOK58%zA3RK<#dSVp9@oJGwuOC59Xw zS^*O(RtgnJr7FyzVUEo4Y|#nLYQ{mueSLF>R1sh`g$SOF;M;rI^=#*T9YNJN1TZsrMtBKI6!)Ri05y#GLRpH0N zUJ}|a*pwda!e%lyjb)&02XM_*BY#m9g1IF{Y*Fx)zgD+jrtGUQo_hIls|2+?e}x{i z=a_2zxr<3QuN>PXt$>2Ok6<)0J=Gv_@jxsuI}hbaSx-!MA1I5JYNrx}RoJjEjoX%& zheF3tG~aE+nmDtC?gSf^-aJ_g6zo)Oq8K0j=Y@OdFYAm_k@(`6g6nN*kW&5UJoGtq zaXJRCY#DJ_;|P@sJR;!mPSo+qwW@2TVQvpB#ZN>C!$iN)T3ZGrSwScDZZ@~Rz{X8AL`0Q`tnpLU9s`*SOP)oIE;9YJ*^dqD z)RF59?2d3?_kj8W{T&lg)*b9FD8&yNT)SlvjqOR_rBPiFebh_-RT{A^{`ou;6s>h~ zeuln6NNM_2Ho+as`gAB^^L$|$M#fpaSwC5tP29l!P(bM>?jV?(w$0rp0@0gh%gx|o z9+}Lr!g%5+=GZgTH%TuuCPn#MA@&vluZG2v#+&}-dP7HczVLC4{%O$-^};T@g62SJ z%zcH6qE{X-r&^44VDenCQdJK7p>eq*HxGZ0Gn8nEO}5905DlzGWd9u z8h0VR?e>Pq8mD0OYI;k99}UO#AT_PQr&jsV1PbvHzwX2=8x*X?^Od|CWbtRDz1AJS zba~*Fv@dlb13?$IOSbPafDOtW%)QWGEMOF@3))?~4~0JyyenkHqX>krMaq>9SHHs`FJ><$&PU-XFd?2As2=g&DF~ljA03cyzP}!v zw|HMzKrPCxl)oP39$X!nK13FZJ)SzoiUXLtWFLgRKwPVTq~cbLq(d|5&iTRUc=CaE z!qH^HXA_B^^n{ei#H7Rc4tzp4HmMg~;*lQhxL3j_Rnc4J!Y7lW&J@fmSRLJ7VxQB( zXKB%!)xRt08xwL3>?^gsP~SrzEQl|uy;5IfAB{y1X-9dG9Rx4=U90$KCD`|JUv2#J zVKs;^&8^MCw@QihGU!Ye3U_P)Lczf*k0eFC3YywL~z&tA0tF;2;a7p{pH2r(uFo3FXA$3)1pQ;f4zD@Zy7 zwfFZbNxxnd0A?L!P>?EVd>!R@kxPJY_8zt92Lq@7ya4a}6hF6TfG-At{a4n9(C+X) z>|^QP3*BjupP-Xl3%J=2)XaA_JL1cp^oA6f>;Sd{%nVrNyIEaYzz^_$%_}GPuW*^M ziM^wV(Z6{EDK6ejOS4KfyqQ?MUEj1moOJ(u^xk~r+U0op%^Crr!;0jU zFxi*`7SCWu+4uA+lx|=~oAHDq%S+G^*)*9ngjk-OB?Eq?btr6Cg`!wiPRl%^{m9^<|7$fe5gsX zoXDajEu@ra#llhpfEmkw?n|Qhjlu5C9SxF5GFH=+ua`FrUb2qbP?7^x%fxKcydm_t zZDf{;W?wAGv#g>=&@@25)KiwjkSapn@QOveT?jDM`*QpS>zaH_vZcka52?@uWd~FG zvOkm$5E|u|r=N~JXJ_^YB17|!5 z{b448*^|mxoi%%fAd;;a7Au}ImHtfND$dda9)IeYORLV$^9$N*@|7lB!0iKV9DRCM ztcX?X!f^$;_$tX5fk{YL!4yGE-nA)dA=2~5@42i)$$0XirzlKeyd>qqis4$pVRq4e zy~clxVl#EM%8jVk)|jALlhJp=!YYf7qFh@w36Hg6_#CeV!h*%5^Q-rZutt)J+1hZ* zuqz1_{x`>YNTbnJ9&b!^*4$2Pv4d(ZuG&Nz46 zZ`7!&-!-b%J7%qS&G|4xUpecY4Gmqv2BsIla+=+TxCge($BmisX=M3b?<9%;dAPHp z!J5suR$$Y_Rq6oOlJ);>afeWFyK`bZrTr(O*tEQ1yOH13{I=Yx@F2#Igb^jT?({m{ zMK2s5XU>8*V>2H&)m0LqVB8z&+2LAi_K&V zPK9Z$L%})d>r_4es1Z046U|YcS0oS1`}5Tt#_akVvXVp8Db$=9H1GbrVmeP@fsruEI`lV)Dk;J_-MJ6ojS*o@z=NSnfT4s{^4(}FY zyEycIwF8@yv!j5xGO0K*z1zpNl7kX=V*&VEKU?j4%@EdG zE9jS5C16?}mcEjkxv_`Q_wX%e2%hz)L17u1PWjkbQ#p|QXX;g*-cydSH|1J_^B*ZT z(S%*Z$5$_nsP4fzrRyC;?;)os_OS^6rp|&|T@D@KRD-&FJ<1!3P$J(}Aq|@V>;`>6 zUpa5da+y$%uFK`x4VK;U$hQE>*!aIw)~%%Y7#(E71)rm|P$T4~)IYbD2OgXGg;Jy~ ztwy%S@ShCc0y#>qeUW zs00u)5E9;GWGk~-6iftTNnaUpLRF=1g0N&XE}T5SHkL+@XAL*=J&V-YY@KE{q^0W& zM(XCu@!D1srWZ$qR>i_}Tsc?ra3{yj#<<_uoj2bZ{#ByRoi*(dJ(HXHMi#18I`(JH zST%01+KtX9=~U#*w7N>r{^De)FguQ6ZFzo|MY-V%pL%@O45RTwzj=-L6wA^^!j}3w ze*&hij%?zy_6=z*Hl44iK~MOv!O#wjXut}1onqjU9alHW_uo>yZ5~d8blvF{*!1H& zX}q4(@9Z5Sk025CCI;>o<8dNk_v{iMYzvppL+6m-8~|twA)K)dW%3&4Meh@M})C zqZY+7HZXuPAL&jCa4ZL(r-amI-f}sp%|{jSo?SpqKcNQ9D5+srGNxJNP9XB2282g} z!`0_rb%&mwN*fDUH*a{lJ? z2TFK@N7oEqi~JJXP9yz3xz{EOPLLLc<3BG^<`9tL2q0nhPy4$X`CgMhjZBA>LWDHjKe8!grmK7^C+{Uv{1QFefr6=nNx=(HA% z3us2!C*V$0OwH{$>1#&3U$t)BknoU9N`*wa_CU-yzLO}TH|XH)Jy7D(Qofr3eZ2zc zA`a)eb_@jA?HM99BW=s^-JH9HRZ$>6h{NaC5c@DpbBPXL+P<#WF_7y`4xW}3kMe2B zy*f{K_uwIr%6~T;+37-LKUvBdB!3>>5qWO&#b4)p_5%t+@7Ut^=QM>vJoyZ8L0y^M z59DpjpkLF&hB${-^_i)^?G&IpVqz326VM!)(33@46ZkM?mVVXYX>j9kgAuw zU&0Lvr;%Nrt~oDod}aflt+Ub830=1$$;`5#Fqd|7cMY=on9LepUQ}54^{;JhDUTC+ zCWai|6qk28{=!=RMmYK)(Ihf`7@=K zg1_$qjc`r>>So;kDGps%>pBH&8m%R?)|-xHvuAi6q_ZyZuf6q%FuyYuczN`Ue6>%& z?~1K7CNlKRam}{|H@F2SZWoF_Fmq&wlV9R(O8G?_ltUJLbPZ+jSJx{+>n?S8$K2#c zD767qiWcl1$IhWvFhVty{ARcgq_%`NQ9Z^J#+gQZjVK=rR}Jzl#@nn@23nkwgHvV^V@$@w9un}&ker}xV&FEER6p@ z6s@w0qm#LdoA>{AP{yiEF+qG8Zw;E;bQV+@q9Ca3BNg-_#Us>$i8Hwsn+uBD>RI`I z-A%cmLZVxryLmwVWa&ZV zryw`6)MI6@AMPeDMY?&>$3B~ZB zfNa5Lrj_&-2Wy(xj+a$39+Exb51xBeZF5S}Md5toH_G=y>$l=`D6B|CE^2G_*+TJd zTb0@JLIoKILZQED}2DIq%$NzM9ZL+x-6U0`|RxX)7;g&J2VB(`5RaGdz^g9_3YZ zL<)bheNvp}utdSX8H|h6Ze$Xt*FBOP5*4WLrq2#6DrrNNg92$kqO>SB2xDY3>{`wvfL zJ$vYe!#ht6r=(yA0-JN1UAzhvj?2-9ZB#;w8&5H(SJ^2B=6ykzXR;q_C;aAA{sJjl zH6lE$4>qHC!Ny0^+cNz(dZa&H)$xRG+v_|2dndw}kD?h}K3Gm{7d_7MWIUaJapFz{ zz>hfD&6FybOfuc@Bs(MHB**%2{~U1VTLXWjO5c}PxY^yYd4e8m@l6DoAE)qvJ)t2# zKe^oR@(#RgbCM;*cxJ^REV1CSxiEj^O1kv*&B%%!7bLN<+^4*Tj~os)mQ;IlU70%8 zpE9I6BJRbkPKZyt1wdYSw#GsfFLq0xtVtUzh4w|=0*_;L^A z>}X7=5|Y;%R^9?THvc}Wvn?K5QOlB5-A)=rCS`fJ=>3Ebt$$PoC9>SRoY2l1aBqf3 zhnx=}46tdY;$LFx>e1qzIa*y<+1sBWvp#`v=f^QeufhDLgXNrY&)Ji-$nCR^h_395 zZMl=3_QZBw(eZI3XB;$U*pmJQa?FOj1$@^s+v#gbG@fye*=Ui4`e0m4NXx2f84Rwt zW?60P8<`%)yFakavRTvM8>nS|c>d>dmmAMl1+n_457v0TlgV7gSi{TmMpW)+hx(kT z9&=_W{%@?zuC%JACQwuH2bgS2vkzr;@?U(X0_deZHgu}ivew@qx+*p(*R0kqSgz>S z4}b)k;&8Z+mwCOpVdaYM6(ll4Cevs^7zJln-3mG@%gF;K=?Q4%g-Sw?>(S9EoK*&VZCL~%E^90fq=BdrP_+i_6BKJ5xEO2Qqi=~f=bUo(OyVu{~*DK;a(M!9& zeBKhoANc1gB6Nb(H_HAU-Usu<6K+wDFYiOveb>x{s0X*DX?&l~zQfC@{KTT^6b{`V zyh4mA!;b^TbjgK&xRJ`LKfZQBN~G1(0ad|^DIX#;Q3m6iOuzQxu1ryN|8}I7*n{GNMoQ4$Odu@ao%a3`Ur>9aA5{~s{$kV9|nUo%_=aF;TMtX!FP5_ivo%;~)KA&Huz(8`2 zfEq`;?u+M!)&_>=21A%y##jJVDN z1_#5pQ67-6is`f*YhW`2We5SgskneyF$mUUrtLpv`c5#No{H8NgWAJ6>sjXsebT7* z1Dxj;FIi|o2ryaPpdrc3e7w2oJ9L9p-+bki{--?^PA&!rxcK8C!XB0_&$ zPzo~;R5}r7vJjI}H|RwjS^q{Y0GDAnKF9@&l4MO2FQRRTBmxx9aRhyFeiQYj{s~|6 zrpv-@jvQni1~*Sds)I2ctV$}jtv(xtlmdHyvD_su<@>jgy{|^)&EctLgS2zKB;Rf1xB1BTi=o~95kZLF(X)$Ypm%t(njwav_I(_|~JiF_+Yt%+R z`b&G&InRauG6y4xsy&Ua>QAmibs>fxhrzwJ*%QQ@@}oClr$^G^C@rf0LHiBc(A8W) zQJn#9q3@VNs;onsy31TqVuh^4W+YJW=EBk~mB)B{Nmb?zK!X`_3u%pPIf=^saubl? z4Ab2KuO#!-sMgDd7O=l37M? z`0EatO>WjU@x$DQyp!>t&>=v^QTC;Jgrbw;pFNu{N^q`sOu8$D1+`lS4;mY0n}V82 zifCLqT>{-W=PmgmHT#4&+AYQ;+mYP37SQNWj$RdLhb2v~(ejr*8CdL;piN#Yx?@rg zG%4yWvWV=b4K=7&H;L`laSiO}4ZS}UjikfiOfyHz#Nf<~CU2s(V;iIJpynT`j9)Ig zGIOo%SHt|no+_(kf>sr=-5BGk^8fi&=#!^ACoyZ*;1yj5?PG4v?S9c@a(D*YZU7!F$DcRz{i!22C>-=JEcU`ebcxIZKQ z6x0i=JwNub>zbF~wB@oF%e3WeL8{F03LW{~l|~{xes#ih^QU_v59cQN4(BH6NU`B0 zxvPDONTO-IJldRvHhC-O9=SK?7)iQiJ%8de=NQ#Uvo@+s;DoFUoV})`s#!f;qDiJk zV)AljRN=e@2RXc*rc~Xu1)cP$-J*EiutgR50p}@kS&cUKh)HI)Y+b)ag$%9zqC(xg z#i>ln${9i;ZKgf>_3D{?qD|&~;{385zD(6bQxbji3S%N~X11KFV?A-?l!aJed(Fe- z-OiB;`?nh_Eh(Z0AKp8TS?tP4kmAI01lC!h(kmfvRJPJk&Db%F2LVC1LtgANF+n?F z?&WyW-GW~j2%2dw?^K~OU%-ijt`|=;w6PL%qZ0oV$fRg0QfcY@v_iq1tsl&`JaKI7 zX#~+ugujBm+@CXO@qjjI=4b@}J`T?fH**RMs|PSFp8%unLEk1l5OSw#k=F>YO~dzW z&fL~R^g(ORpgloeAM@imHK=IW2{RUN=>o$Zx9s}5r_cX7GXvICSd;n{_A^ZXKc_1G zmmeG%H*@>{{0U8m_5%#8gn!o4awSSVNISF`jbXNqcJ5Jf;jW}GaP9c;Ru$GOc^=U< z9XOc!Ty|2qfg>0}6jLS(gBKpQ4*>ZtV#;9uh} zIB{K5_|2oA>pEmXvJZzrWN7QAEMnxO+hRt)h7(&dR>6=OvbQ5C#L+@2217zVeOYfC zrc4}fSpkp1@l+lz4gqyttN}Kc;%6Iwcx>82`l@m+qUx!Y-8;7@S3SWT| zl3>f&gJ;^7(P+-y61hLWti8?I+F7xZs|AZs0sf@2Ds9}3vW2X2Z_Eb<0DHyaw?QxN zy(O)Xx#Z%XvX*saFDaVm>llg)uh$Q^yoqpJX2(vjjj|Gb7(fa1`)YP#vwt&C!**@}Ta7piKg6;~*ywoem#B7{u?c9c^jb+e2oA$Fm; z()y;)t*vx3E=2d(Ci{rP(zGXWSV8Ap-oAcf#)~xbPZK214tq93=gtJX<6}1^wU4L?d;)--m-IJ-=?4R0NWKzc@YujgBhpmZV7Fc$`*$owcqmWtj;nRuN5nlW}Kv@T@e2PH*i%0KKHG%8E;O7o`PuE&|t_ zQ&GXrBGy8rJW2^oLNO7XcJd9r>JAK|@>oXh7>c|6DLoDtt>c5%02|Hk5{?vWL=^j$kQ!EjNzNdLwO3?yPB}=$$idD{H*LjoMnFt+PO{zuzJSqQ=2Pb-b{-0qfh_9p!7=L;iA+MaoV3weevv3aN;2Z3goiC-v zPMV$)5EeRdn=y7N*JUGD0#Z0&VJH$kgt}yV`He+w6Bxgggq}S0N@%Zx z_}~+ueU`>z=OksDcd0UGq{kx$3)0iU1q3O2MvW^lFM2vfvR;G24b|A~oBIc?oaD4t zBXRXTX49XO`L*WAwW`y)%UrAvWbr=AnQlI$uy0Wa8GrVZC5un1?x-+&#bC9ZlglAP z_#SWsP==6!8|3eV)Yk90RhH$;>lL1eU!>(%*=|Hv*-4YQQfU`qW8=PbfPfrXoOZcxz}`b zlT6?CXSjNsBJH^QsLY0LkaqAFDD(jz2aq-Dp#=V~->A<&BjXXTu#&i>27%6X3U#7)))bgtS*4_UK{w`GF z0z(9IC-Cf#Dc>9XRD;spBh~XL#Y>&t&4Axgh0JZurjwOW)v!x_XSo2ggM2Q=?SAuQ z1oN8gzxeYV_6K7>(RJ!J2b-xO;)}lr(r)*!)B z+{B~em$FFeBMmjii~>Pj0Q~~v#stf z;kbA@w&=IGXXphz1i26Ooe?hmj9MPmm^E4nbyhE{UVf@5Q;G^&C#Fw*Ou})&bhvqk zxM64)eG<8%2KO)Xa&e*10D3m^7rHykbPAPn{-8pHJgIi(S_a3<@tO+tEMQX=}L zLlfu`(F!mmYsD!f>0&G*Ws>QV>&eLnsbh>~WMVXM#u9(wlrV$LOZvS+uj$(R* zR;XB1j7i5tB4yx`fJk!knrY)MfBG>(Y3Q+~=l>+6y8!}j*PTF06?>_<@#*$*FtIA6X-sMxm6im?JkjQr zdx8^`s}&Cxg^=Tllnj+j$w5Q zFy$WY74xCqE|ELe>1UDRZf>s#mf>!EFG&hzWIe{D$qKDAaEDn=Z`UrgUb{&qtH23K zPI6Z-)K%Levl z)3^CiC;jn&KyuQZivdBpVI}jd(J}U z-9O*%&T8)vCLo+X&J22jF^D}p&UQ-)q6y>x?YthYXBW$TwIzErpiY1<-@_LW&a2#1 zXy^k}1cCrS^CGzb&ba%XOZTin=Ab@6I3LIf@Q-`cxxut`4`-+rvwB|6TqYqU`X<92-&PL3^u6N{!Jm)sUQG=({rDf>yWaRaa=VT; zY{=HwTHrk)2uQtpers*7z?de8eg2%jLiLZ^{g6_$BJ72rK3QIGpD-BAG(+B{V@$}@ zOXGnW+`guAI)ml+{BGC|CNXrSYCl3Jb-n7^C&dqP1aXIP*~IOxQEUkW5yce#CVQGe zeKU#esg?rtI0k=ru>&sx#G}_p^$f%MV(2AVCY>l)gH_KmzT%z7Y!&KXy07wV=IU=N zTs{zEeG%pE_}(_n+Y((KBQ~TuViI@aR79n&uJvIKHe=VbpjUk^dwzXgK;65J1Qxq| zoB@O#f9gZecP{^gAN&bNJIRYa-!a>fTkTEVCTeLDdurC{v&H|QeOn1-3a`Pu37V!- z^xUL6JSBK}|M65}%P)w7V$yT9zWe^k7xbBfle>)$79iXGxqxL<36Fx8lX*)sA=GNH z**Niel%Z5|m}9?LV(Lm5ue|m%MEvSUP#jVGqkZm=c45Tf`qKhSX1Ho%C4N7IAC-uO zN?Qe_k2~loDpO5=1$b%%M$vm23MQKt!;}9?v48Kj)#rtbCna)p`7Lot%oQ>H?~mz~ zO?%W==aYm8Gt@5Ir3$mweX_oICF-`y-TV}*ZZWv3q+v0-s`;?oUt4KGuUW{p>~Iu9 z8~Pu3g%~jWM6|-Zvd@jGf($5SWA4sw+satSo8q2zVdoBhD!wsrVzx-5qnka*tBu406x8uy6-E72Vjdp*S_!=(E8*McbG=VO_NGk6OU2(5S3% zcdW40wsj|}I0Y`9c4>0eIn0*mAl5Jb3(!2(_TSjDA+t?lY-|g4uOKvPOy~Fmt)o!q zFc(}|tj*?Avv6L?cZX8JP}zQ`T;U6RJejM!uoTE0t0XiLkVCHb;XLK>X<4`hPA!pD z8Vvg+5L$on5#;WvD^lwX@}zV-qwa0=9qx4&Pw#LlxN0^_hjcpA@390XPwXq3Pp>sE z&E6Apj21R9JWnGvFU>oZlqA7U$dx7PKqt-IEqtD=~R(+yzg;I|oik7iBvaPH-zVcrDy%PFXkX+<8vn z2%6gx-G3UQV6hnZxVz89Nh zy&_;9;HUuAGHu0G6zp^I_zF3=`p2+3aeSD_{NK-SLz~oIw zu!>TVNung97QjkK#!$F%nt zW8qwz_KK1PNCM6J+e2i@Hp%EYcOiOlCH=%pS$7{pC?ww^Yvv>3V8>#f`0`dGexRk` zUlaAh?FA~Eb^v;1_YTlCajSpUta?S&40`Fq*v4v!mU0+)_NEW=h1N`Z`NN#XF2&XK zctOD6$8x3BjChrxa^gF3lh}2rgz)agl8DD}*@SgY_OevTYIpbb=!DPAN|U1PoL-tu(zRpOYPuSct5s+FTHj5*T`)U#2E*FsUBk;fg zhOUFK^g7I_hzqQu1FrHx)2IqtvMRNo*HLKEH`OTEla13G*{I$V!T6FxyrWs=(*N7m zD<7WA%}m-HfdWr3>I7~a1CMJhhb4~*Pv%Tkk}$s|5gHFRS-LBF)4_V2`lOolQAd>g zByz&UGe^_W8zP^}Z4Fy9zQ+Ml@5Q?FauOf3uWLmulP5aT{-86nClk_vK}fxeWB<kA&T8DH zgY%wyZ|vQ$4tyum&CV8{OW5_qM>vNGU-;&O&hWKc!9jv&o+s4+*sd(0Z=MHnJsV$a zF{KaH^~`Rt$AclKA0H0<@jt)_$GZuU54M8CZ{v0o-cpTky5pp7e}oR*dLg8Nm5R z1P(j@SRB5-s2P8}X!s$38h_V5cV_U3{9k*!4|~|ub6+z?>`-6Sod4ULk(#;de_-r2 zja^*-v$dOS{~v&-p-)fz7yx2bEBBSJJv>t9Fl? zQIv%{1x(r(%>Huj3$3e@koSKc)<`9|ue@x)iK)Ue{rqw#KqB^{(c7m#pf z?ieLXlS}<(WWv19f8dd$J(4n_ZRKvdx$%H95oUA*jDRz;=Y|c_)-!wxw3IAGM&NS@ z0v@65-|;V!MZJ*_!cS^+PSQ?Q!#5dtWzLZi*6z1%#KPRL8(%Cj@!Uu#q*kbv@IM?m z)_e3(Tb5auNn33Poa0E$dDpKpLQ2|Uw+hQ{o&xTFR(LHF3z{6$Wq<%2&c)BN$@XJk zu^2Efq4Ab5AN@|R8FKaY9H zS?7TQ70Cr^HX8R6hgmVr&e1VIe8(SzA!U79Fu$UiCFNd4%gXEcTaP8j+D{YmE!%WB zY*Z6Ad!P|TfRXIyGVH8WLp>#`sd2w+R12uKCXqv&LXD@#%V7tBO;_u{438^qfI&vX zDRUE;ln860Fv}MH9RCQ0n$AGyWeI$WQr~0vM1PE1R?%%;L1B!iX#=w`>t!b~lr~JE z{6HfNc{_;zZKX`)*yt%VBW@QlK69j(Yx#V0J0Z&#{|1UwIs)f8U?H5rMCez5xJmgRf~U(*|Sw; z13KrGWvv(%QE}+RLbsT&=4H}l1ot6>2!t>-FMwyp9430O%*|5QwBuIK->sG|PTHMm znbulPOg5bR42hd#`bB##MMx*{QAihICgIFb!bdPb`Ct<`^gbBEF@?P>Yq?KN9d-@Ta%A zK{oc8)}Nz3avo~*JBOb|G1wA>X^qIqZ@4m)WGX561f7qOO03}^+;EkB=CF4V&3S zC``2ueHzFND0_rOOnKWh!eDx9j900B3Y}U&J?|MohC?5BLuh-zT8(a)t@9a^q+7)) z&gOJcYx!fi!@1U=DMG89EeT9e$h&hlRHOU0CIIk3Fs){*93b0(E>B>)4mL zK^*nlJnEs~-Ua0DZy1&rj=-8>26Ul7$lu+NGL_{lH1Cj)OvKJzAxG>sdkBQvBu)|{ zy9^=Z7%ni=@WcNa2VD7iIyD*5{ZDkBQ?@IGd(rNB2B{3;ouKa{+&o|p*-2x3&C0R3TA{xnpFM0K8%K`rJjQ;nuKf=RY=HW1|7Nn`wEu(H zVUPi=a;Pe%uYp#ALW9Be&o0wMI*(nKh_mtQGQEpV#Wz!SxDTagAE z4JHP|t=)bp#DO=!4wd<}YEP20LV~wfg@fHD&H5CWr%UiplkW25Z_O$$$fLp|p}Ro8 z_Ugfj9T3e?@rb5CH%l1n5a%JeW=ddFZG4JrOIx>Kt}M0_m}AV5BVDfBN3c^hV}HJu z`EG@2MSZNODx^wY`nY!2my)}#-FL7`9D)jKM3x`IuHnHtTnA*Z)`fh7r7MzYem^Fb zM{lc7eg3o78J42}zpetmGA1Kp*T+{hcn*HLuHP4R#%RIXR#lSpM-)=Nu=vE_cRCX< z#$uzM`>X!J9`-rRIxu#&Bci?M_F_=rrb8c`E7Ybgd5;L$i0Xma6FY76NaMj5VmZ(k zl9QexqQhQ6K`P=QIS(7-uC`EBlaUJDQf*hZa?Uw5bg&aY@}LFz9lY5fSi6TfwqWfY z>TCQOw?x$s+*XVuFaS9bY(0)7OwptG`#}&+LO;RsPzVEe#yN&0qU8;odykIKH`BV5 z2Q?|j0YM?ceQfmp8H9RaVXWvuDh^+1i`?{CeaOoJk+N-Lu$hCQmY>b>Q+SH!4R(Uc zV{z{HjLulv2Um^aSehn9EtCMA7?|ZX}5#=41z@;y$nF z=KPN~7QA%zk>6haMHI}K1)|h;5b~`48cO&^U!%LlOw>**4R^eo(Qodib$0B6;Vhpk z*r$lX1Tn%}S6b%ELL0mn4h-ICL_BH65-)Sd8!BSCL|3jJsM>x%kT>y=S--pUqii(n zc`Y!98YHV5^N5K_DYqbs3-})Q=P&e?NFc~|_+o}lhvif+U$iG2+)M9a^XfjU6L>`i zJ~ooFWaq!!Mjl;pd=Gie;^zk`7^UPSYE}iSxJ0LA(VIx~NRyRp{`~!QvF#9dVI`aO@>w7gjMsTAJZKDqXrFq6SAM5EYGm7wm|c1 z3rVcD6# z<5@J;=RDxx*v_+F8HG90$Xg7^2E2~{>i^}acZ0H)9i3GYxeB3YGm0jPWyz=!*-ocv zbnS}bBn{`l$;cYG)PKW~P}dy(C&!*easL~C-2=Z`M`h`fNePcLU6owPzaJjIE$~@! z`fhsUY5_421M4jgTGVvm00#FK!!fNc2rVQA5dGpBQ=GJH#Vldy)yk7`|G<~Qn( z(+4)eW;D2h1JT0TJNAhPPRrYWrWChPI>JIL8ooKI>Gz3ISd}n+ggcg@QMUOh2s*w3 zkYZK004_{<7iR!CwlvzEeja|xwCK1vXHzU9!Ehy?>3_C&0m>9&V_GCk8L~%TB znhsz%)m27&7bE{g+c+do@VAT_FsAL)!mOV}OuJg&eQ+6fm!1$s9(EPpu)0l^FZuwC z+Y}e~dpvJB?d~0<0>MI86Jze*nfBt|kSB(gyMly9j3Ngmc6Q@%26ZR~-xw8j!O2vW|Ztv%iu4KXmYa>Rv5aBVBWXPk;N>LK41V zt32kR;2!BX3Tr8?#mU+~a_yq4lLiIy1l1$9ufU9uM}syjObiqZ=b)d=@w#cE12ZyF z6~u({64&A#$X|ye|L5!1@ww&uupp)cR*K0O_$wGzjE%vRA7uwS zpdb1^Px$v2e3bMe1O*sS##;_$V&g|W&Er&tRhvbPab+g+cB5{zP}`rSu_sv>1n4Q7JLlL4vza(RDZ)hn*e4 zmVPegPG3JeTL9cWae~~C{V)zMa$neFoJc0-yK128R8@)f(E_xE7)Rw`cmvRcdb`&e z!G_!%M`wLhQsFOA0E5ae5?1yTyqR4U23|6AZShzH+nK{G*1+9ZAH8Ny7R|0GLFCE5 z=?>gAI)9B3Pbo=UICA?5&3ZU_)m4j}DJyT{5EclQZB7y3n z0p63Bm86N?gqiE)Lcc#o_-mlZg2fowVJjadO7sD>@{}1Hz_==Tf4zEeG9SHYoReIM zxv&OdNi#-#TvOFBo0aq2P({Y+goKufSj~poHc2*E*Bw#HRkL9|E6cNgslxru%ei|i zWiX$He9iSR?0tzdXZ;@5;+9f(+=k$|X%bS|?FX3)T&AxucTblxF-GFky!HS;MEY z7Ja?{uJ97&Gszn)GQ?<1mwuJdcuO83ptSRY1d8j76kAn-R02s;s(Q#{N0gI)O8S`j zPd2rv8cO6CTm}ZQrZ+aj(&Mtu2l4=p_Thhgc(b%)<3(GI$b)r>ZSRNn>#DY$VJhmK z4|3G?U{#EeLy**P{%*Qbd9r?NY*CEz!bUfxa53sI2)f4WklI$yR4cZ|A5wDEO8aNl z#+uT}wS;=WGnM7_JBC8Voy>vMF0Ji}ULf=UPd6ptAtr1+Mwfi6%Felyezs9TOlRF? zhcnR2ch^O;2(R=O8gmOt)5|1orSy)IcI8r5Dz0vm$WA>5<5LRX<_({l*v5u7Su=-!S4t?fxN*2Xjxx@n+0XW;IwXNXVop;Kzzq~Vbvc4hU(UzWN!h^geOHhPJD zyWc&hJVOiPPFq?PqPx*>~H7uw|VssR>9_q#isiPC|X+Kket#iwh){OyqYm z_GC%K9!U79DFnqC+Hmn?boL1SfJhZ`SEzw?dNU3(h)6bJSm$-WxUXR@iCgQNyjUrG zq%HJZcFkBo?JwtJ}~P()2y+s4)XLD-s8c7CvFl!x#XEt0i|}9z%o79 zLV5u#D^>(|{>sb_zkuFYF|-3l*_f~uCjO_wkmK(;7$_C`PZ%nuT7O!_n#1B|ZPfxM zGW(1|HwQ17xD+}IFx{)Giv5@IuYaj*_5!VLXnaZrLJMu{G3eoRtgN4h%(5Etl zbT4mw{UKR|jHS0TA*6_=*ugqWeapaY>o?O%^?DslG0yz_L5jl*x0Doc=iF2 z=Ft(YNgR|ltbTVE6yYhx5Fla1qiTd%Zj_iNY@C~); zeb49mo8AjB)mVqxJw^;PLqV>dhx9f8tKS9h@@qzQk6g<;R86;?H4AdJcqXi3lmFy0lL|Vfd z_D8a8AAeYS$d2;x;PB69O8#oQ$#07b#m& z?P|LzOfGEk?3z419hAC9{}#e^n5A>0x|bJ$xStD-{YC0P2BI-E|8f!XCIz^PQ{0e) zDo#88T%^$YKPf9t@C>AWD0TC{2tZN`EmryXmPow?<~#^vEsG4@af6>xEPf>QZhRi> z3FToA+U`p-XGr$h0E_)=SDoJkT{05pXQ2#hGHLgX zF@u{E5|?C%eJC5Kc;_ikF_l*mh7MyU9Zc%n0CGJp2cEE7Z5p5Gu!s8cV>GvqaE0#C zQ|L}lX_h+k{6TJ>>P5F#QlG^@VT}g){h`k?s*dh}*^i$2mGP17t4@-rcI>yevQET; zT7DfDEIWv|T_5r6oFS1f7J{U-w9LMJW%oQ`7LFodXkIaHIORdkZ#VO!-bt{g&vH97U?1WF~su*yG-EUAhJ%`wsgvpx+JI z>502zU_NW&_}b%4Ao1l5^i!mTPvDb(pT23s+#$DuLopFh0Jlh}Xad-@L)jit6bx7Ah44|<;az=*AWVu(O0K&BdB|?mln$ZL5?qi<_*!z zfUOxCZQs6$y}pMdVZ)D~E>vpFZzt#FK_^aLe$|^d^0eFR2f?1yXJ*#qnIB$j#aJZ4 zz<2_Oqe4@13gTY4<^g@ zxl(mkX9eWm%|bx|gQki^8UEdS=|Fy-c8-AZ89g>L;NKOkZ$N=YV+f|9LwrcT zbR1`=`C}()^+(fly&(5*(C$0qul<+_3iAF#P{YT!EYBSUmW2~k#`G4u^b|*>c z!iI}h+2wB?R^trnlQ{Guh~OV!YPFkn0_H6)GC!jo<>2h~`bFW&uzJWK3JsU=mE?C| z{#7r)fn2F)niCJfspj>4^tfJJw{#yYp6Sg4C>Z)2uD~q7jm6EIW0KaR-=r>e6Y3hwLRX@cM!{PGri=@)*?#K^B!r z%awpDR9P$*PHJ|uYT1cUNl97_IhJ_Uoe33hO#o0gc=DME6*Ld`^M z1Fq&WEoTQU5ut@fZ<$n`JoHAzy4pN+I-mRwGqO*yRJ*~95IzTSQq98d@E)BkJK%8d zPi`x)!WX4SAPOy zDeB)M0A4>xLqB0+*QNbp(ejmNxO{HNTXKX~HHaR=Mx8~^JWEEcP;Eafv~08#oZe<5hw zVf7gqR0JW&BziTw13;!=<+^YA&r=n7e@E7>*=pT zj)WI`yF|@^MnEgst%YRLVLr;EtovoYAh-*Wq>se>Imk!UF7Y6r#3=meg4S&O)fsWX z@LUBt!X~k3(8R*}=GXt=!brWs4eWS4$tX08cwHRZBl(?FMFE)8KN#K< zT~9%JDQQbi7+TU@N^xmvDnMajLj&5{TmZ(2ptL1b;Y_pr(v+zX-#gjsG5-B`cCP)_ z1mDA2*3*w3m`64UC)Y!nN(B}QZ%e#qAu&rHlXOnz*l~-b9xM@(_QlRJ`f{9nQe8sM z-bfeRWqgcs58aYL$!yB+nhyMcwfsv}|BT)ZRJpQ17>F^&XipmwIBM~{fZ3HLN-YjU z4LF@zK?r#93bK+zSwPehGi6fWEZ|duV+A)FJ_t)C2o>nZffN16ToOGLuPh?Uvc!%O zK4b9fKt7%WOAc-rd(Q~(WSPj zQ|U8!wE+XOR1RfXYs_RCBx36~SdmtPf7K*1JiAJcBaM}LRh^=S?>wbF+49qp9Owd= zsvR2gahd`)5m>ofg9s2TWunrjt;K=`o1X?GdB^C?)B|*zIu&UHvf+Y91c%q?j{>v7 zyms)kvqk+{LVp4>npuaDI1jKU7#bBj6&7UPunhc{++#RNPb;dhMQMScABKN08}B2? z+V|H{_ohtNs66Vtm%@WyIR5q~+4t&@CDzPe^pP}vG^o<3Rc=MEo~5zT+q?fITY)@Y z?$Jw)-C@zNzTOW?O&MJ@V(l(;38xJ%&1!JxmS0d9vmN|p+rGKzXeP$KKs##)y#@Yu zIo5&Z_T!%z+($<|dAh3Vwh0br$MTh~y9w!yaCPOEF9iPZc2@|!K5_}CA~fMZ6G!V> zzvG3|7JKXcCGiJ?cL5F`7@_F5Yvmp8sPj~~w=&%fQb>&%Ndt=>h!5%Q!zCS(EsSoK zYjVNp_y&iNQ!C$B(^)VrsQ|wC2;uWb7+!Ata@U~|jMe|e6oI)0%Nf)wCHr*IX&)!V znk z63(gU;|v$@9t0L8^dOB;FS(F1c{wkG&>e5kg!B0hzgCP8hI}d5#V@6 zY*p?6c*Ic^41`__tVtKE%=w1_UJZ z(4eU~oRI2A3yEZnBr&8fqBz4uDRVmKhWWH~=C{N@Wc&O6#<4ipvHrRm^L89U7Qp^uoajJ?aLsH4|b*8dDyJ95SdHX=s->H z*7(Cw$g&2MuM_pc5Uq|H7CK0p`&*(^prP16muDJhP@!G!nYRPGnLPzJ(-s}lG@;d? zRe2c8Z{su2@UtDV!ODYR^xPIhx>c}P2BpQ2$DJbdW`NP#J(FsekYLnppbHx3#O_`O zE*A?E1-8q+6GwAat`SyeY?ln>D6b{CYnUhjp4Sibg@aoOUKqPc!mJDhNBHN9&{mp0 zo@(n2c+;kw22DN9rK499KQhuU%p%WecHJmzI-iyQ;GjsFao{u}EOAnDbIc143dRJ~ z<5jrT^!AEDnscul7}N(i;n@HkssbtzrkrXfdtD)qxm$XA5g;+ST1I*Y5j^oPoNLbE znQI1SHO>s019%Z$@pK-8F_O7)Xz+AScc>xN*P+5cSjcpQPwEKSdPbJu8X6J4s+SEw zZ4xss5y4E>)oHr$6f6mq?iG7K%bR|=BlSHAo|tiCxOSmN+P1;uoCidIQad0wYXMz0 z5oX_dOwZd_z%E4VWF*R?DsalcC+maic-3a{$0Ll=Y%rWZ5D(PT#e#~G<;t< zXn@)lC#4AM9vWSp$f=k_`^<(cN=QR%p>n&_l_sym2wJQU?B(78!NmI=5xp7uSSr%k zKj;8mL&9dnP3|l5O{Evtna!<^FZ-vQ^!ar77v0b_b~dGn{Y%4;db z)*{V`b>hNG6Zx_WpRZ|qu*&BHoV(D}qyctAMKh&;xOQ)2Wt>lNxE7^-lVVr-d3JXy}H#VdnF(T^pcfg5P zXqS4GN|)rrhlro{w{Jj%U*h5Efco%FgkReuvmm&?qS+g(!>9R zBFtARJNG^Pq&V!eQm6bq`@}r-Ghe5eNBZGjubCCA-V)Jiw4P@|HWQ||H1V9bBAkQOpJWuCKusD?)4^;kir|Py zu5*WFq@EYn{|Mj|1{>URtY84OE6%S86b4YAGAv6fmqp{gemF=_#MRNT zV`@?za!KrD?4LiLMbI?dKO_mDNcCtP@1Kw~Q`B>0uN$Xrp^kIZc911jwd-{WQwaiR zCsRto*hrQD!d^)fn3!w^{O))|j(zzhlmw1QvUB)EDHH`BLn48}6UNZ*UyN)8aEHj9 z@;^p4fz=a8wd|FK3J0$ycBdUeGSjR8$=xzyg@VUOK*j;6#W1WJ0ia|tti>&wR)_;R zF|_?>jA{u2TQRi5W~^#iq3&s$e&$XZbwXWYoQtR0*FyDyL<}Nv(I$&%Sk$8R5l3W2 z)T|g;f>jR=A#nkczdsfl$kx2>;|q&+yW?OtovI<5#pv3)?2q~Xo~v*M*caKnGf8pS-tC71`pa$`9@a^(??VKDqr+W zL!c(teLO=ufIrln_YPkLn_eJ$7k`hQZ!rxE%kk7&ady$vDKgKrAgy(T9n#NrG|tER zxt0rSdR@S6oHwD0+pmITtA=~7J(qk%Lbb8pPRRn_|3}0^rgjf4?6(B>=3CkH|J56c zx|-TKOBmXj*qDAFvmF2Hm{q8zsg5R&_GzV&jx8oCf~uo{Yzh%5<}gediZje2jWswx zTXb6bXDRzi(hX7S(T6>3b$SBqUS?G?gIAjpt{n_SMEs&q5O!tSlp z#tpg(Lxo;Tv$BoxNkeP3nM?+5RraIgJD7UwN|~O64ozV;hJ2XqEFN#+-*h59CNV*H z;ldxug;b^TaeziJbdunzx!htK={cP#1^h^CS9%b3TIC&3DvB3T{^Pp>``00pU*;n2 zPGrJvFB;(GSkw|fghS#w|C(hc78fyN4ALe5FMhCNix5K@j#EB4V*FfYu%Us^+fl4z z=$YO5ZJF^YsDv94BU+1aPEs-e;rN%|(i1MD;f+F$URd`R-|qcHsAcA~DfX-J8ZW-Q z-+Yc*eKH?_aUDt>o4!~yJ5k1d9j#v{@yEp zB|4g6ZFaQADh?i|4a-UPIfvLRfBRbQLx3%0rIJF zaMK>11`AlPp3-VezoFyZ4@HuE=ETW}{6QnZXDAP}VX!;k-1SP3WNKuR++P+`Vq6ps z#Rxv0UWLVK%l=|)mC6b&vatXxn0;h8=0M)7=_Dh!3K_vXgPeg9iKzm(`VHaY3N@pJ z5+fmUGM|2u!RFdT)b0W#>$RIqL{!W0{pWeidf7+CqZmp`4?CF z@&s517`k%=TODzeCmJGhsI-MBN);(-1 zTIrSa2~RmS_(?QnC<1$lRXN;L^brp9$dFjzKnhg`Pb{xQKj+>CDokqoHqdlKjSL941u4vVE zZMLSt`cis;H26pz@EorRq=K>w~FrdpT~uJ5HQO-H>0&rq|+jY1Gi6`6=1; z2BI(KfUVEC0DUFyt~IUs2U^ja#9e2o*88+u4hkV?qAA9uC$;9Lh<2OoG==~es%M2axIJ|Rj}M3i>waN-nrz)?y@bhLL7!0)v)3WJ!c$^T_$dKnNKWYcY6U?UR8mseCM- z;n6a-3vq5;Yc2<*tmiOST4B>kTNRp>dEbbEk4(2g3{PgB0Q37toiT1|S5R}`o%+;xS} zV}Om0z`RfqPx>RRo({2WbLbIY-vvc_r^tOzfQ9GHcz#;O;2_ytCSBgDc&cxnN2&z^ zPw0`fJEuHzR4iKOpOy~Z07RPVJV7}7z50x2uGIG{x@OkiBM$=H(BULvf?-K}{~?N! z8J5v}5Sz}0ZWN-@FLaQOv0EIy;xK)aL)G1~hK}$H_=L+m-ViFFC=Fab!k&VCk5y>7 z3CYqU>*s%ZI=(e5|GEBSMEC!$@7SLI(Q##F<6>#z^gl98t#_+omcIWzi{G7Cfd9Wo z{xiGuzsUu$|9H*+Vi+1VVZD`?J-+)=N0aVN&7MZy@sKq1V- zT9T`x1d`Dt5y&l-lNC2yB-`wCmFrn;=jm3}ntsAF1p;LCtux5AGiWc@Y%kaT)i$1| zcdoHc`y6k48#dWiE}m$*a|)fNd5_<_kH6lc-9IbMv%zNshM{qT_a%9goTkO+9eAQQ!RLwf%PQ_%ftW7;4unM>zuz&Ofq$C2Sb5_=^c$pAs6| zs1ey{4o{Y|j2O<7E|~XyeO14^i|zRln?#M`9uWGpzH? z(Cjd6G~{ZEW5hK6rT2jF4jTb*rm}vi=wZgzymD2es~}~Pc&_oBlgrEQtQi_g{566v z(lxeM4f$k=!brGTr-9}ki@?y{C zb!{FA2*T%@aO8>i_r4yz9yKNJC{9K8__NiIG_GiX(X%06rRpDmXIq`@I`u|#2`%yz zQ)f;%)S9;c(~u%p_)|Pood-Qh$C4MMU*xD~clT@!0y}yr2Pmxfw_PEIYf}wE6&2-K zE6PI($GTM56{^L$+~dJ!GcwxjP}|{vvaG!-zzDm&<0*fU8%UU~u@~@edi(gqIf4wy z+@I-~QYwl9exg1AyG^jf&gR89fhpLAD2qlUU7yZOD7c1|R{{bfof*2kF)eQoaiJ2B z;9gLZ*{dM{TJS4pL;A-sXOktUC3aiORV6|bI-UL7H|r`{Woi{#lz1lf#0gS%@Q_p_ zrMNd2^Z*OGA;XQqu492;EkOyzWSh*+GKhsQHSNF{4NTIC4vYd2SprRgq=;!LGkENIwa6 zg#{!yB%JC-UP~?7!+Y~6cKji~aDLR|56)h!XEBBFu1Cpx%+D3D)4NWAch>%t&wULlm9l_2!R*$;yK%dG zk^#@+NTce#i061%zaaW!g1Ht^yt<|R99^0y0;%kNxi=U+qzwH`GJ`25aK8lYxwSQa z9RVvIR#>~2uHY1%XKKABrP9LOS~@JH+wi|E^j%Y>w6x2(QP!4{Zk^Ph2-|2yZ)&?! z>iS4u8Ut;dRNWNGM|`qu4W2FB*zy;P@uw1$Wlsc3HIpuc8iP+F z(@(nZ^|Myn=?ni-!wInx_)S9YOenU^RNf;PpQ-~hsxcWhH#a*wJ0XVO2ZFA5w%z+9 zy<)MuJKI5Z9i4GQpB=Hd776P0SS8n+G^_z@_=U!xzPf0&rH*L)O0V_sfPVEf;bg4ymHFuW)izB`4+D?}U_iNUsWygMW$$zJD zarwfx1*XDDY+)revqzeV0ACSCtPIeG=&U&2)~eDdFU{^^5urRh5xMr4^w`33sy=<&PvnF+EG|HBw76Df~i_qn|5zCCW zH(u}f_d2?Z7u1K^Macu%MIlA1+#-mhX1MDd&EWd=mw*E_s+DAJmXvS5W3#s9`pnW2 ztwt#~zm~HkF1eS45+Pni8griK5bCVE)Ig}z&ozMa`F^sdmf0gX&$7XUxy(?I%=73& z?#1tY8N+OxSwzy6P|wF3->!zc*DcKr6CJph>>1>!$bkn3^J1ZpqJP#l6{xQsyqkCW zvIbq76@$Mv5A*sTtXt)5Dq)#E0ogB4u!P&ff`%a^naskswHg{5*!%nSX%5ksI{mL6 zv*WA=@+dXmc=*$|tl-Q~5 z2#z+4`)w3_X^-5DkU~n(S%&V7!I0JG_0viKWolnItPx4n&9S2~0gWQU$Sifmk*>JM zMf|mvMxdHU`Z~`g9Y?|Mh|Wgrit>_!Y3-t&G`jnEGSXbfmITiRa88N~|pKeU-G2yfJM`dsY~$u1s}*XeVOaoR^$3=ONrDcVRM zJz>2%{{Y1M@?5C~sk6adZ_0FS`sCPTF{L;AKTi%nHcuD}*AU~e*xp)sR5F6B_IaD7 zRB-LSJHl@6O9Z0r#N)!WDAhNoa;z0hiCJz?CEa+Vy2elV?RQItI{qZo`yu*W4gYld z60VWV3|>rdsBZEDlYajDhh_(_&JRs`P`DQzuNKJ9?X1VMT1l~``YUb;he88~_16GX z0$xy%7)qx|)!K9u*Y6BQ0c7mvrbA*J7r1`%!xy#-CSsJWat_ZG#-RNa1_$)~km6X4 zX(vzxk4zFiozIfF=V@@gW4Fw|@c?i0F9f)H$`-)Eg$S8W@@DHjL z*eP(BDam{Lephcw@k*`gO~7={pu4STA@4<# z{?L5_#}p!h@5oLy^Yc1f7Z4+adMc5d>G>^Jya`QBE^(JotchdOHJkZJNBuUdzmW!3 zolCuKMF=0;`z!MHgXI2g*u3awzVgiUT^)ko52re*9J{ZfJA|`31IUfM$|2m8p8(^2 zZ~$jR#2us4lHxHh7^D!ip~jL~clVf>)LdNA!E1U@i4`X#$KhyXnwbTRXS_CVfOH?` z#@-dYb;@C>0)61xVlBoOwYEE~6y_=khd*l4Ct5@>WYFS)7VqV(&dkayJf>xZUn{K} zs1~9JB7=KTr5dlzR7;(U{6i|7;sAD$8R#^MlZJ`$j<8<|u5W~$Kj2Sa zyCY4jpFAT)9YPW!%Wv>HQRHYX-Y|wD$Smqm1GQefx-HSL|^?N-{-^LD!4)UNMB#`=O#`3sYsF(t)Bz`H?0WsCVG#E38xjARjQ74;z zoc4izZInWAU<@D3kNsRQbPpe!@&+pPC*#I?8w zOiR={4x@Q=V3!&GrnpUV6enV~kv0^J*i+jGlHbXOF&-n}tNU>N*?PHT9KoB>tetfz zH?_!98hwSCvzHS*smi_^?Kl>=Dfyqml80X3qCycOYlmf{p+gm`%zm+*4J$<>oD)Dh;%B?0QcG-~cHA3cFYs?P>C zngTC)XDS@)EoRvxKLfy>5;}c>O!MhwZB5<07%IlTWM26_o%b_mKkwGVj=j5w$uCa% zQ+mU~C(Zi)UME9;$JqnvU?^V|qzO{Df7<>@d$?)7Vi-T?5q48EG zrhA?KX>ULeRI{l&>t&`)TworNs||sF$_~=!!5`&o#6_qNIh-fIKMnORyGytI%5K5f^LOw^00t=Ix;`4+Ba*GTTb@GE(tBoN9%XwrJanz@e31jXG3% z$%y?*;3l~XO0i`;IdGn3Qj2~t_G|0ufdvH$I%9~iqxHJW>zeb4|4Z{~usX~83j7E2 zAy;n!z&1=moT;|BB`9hSP&;K|Ee?!&)g%aO6h|Q!Ves~HcWdFmh_(mlEq3tE#k1@h z*^kv=TLl_O^2F0_VMmE;q3i-At2!I6)1}w;Mj7}imPDGwl2)jE+EaoP3{eRLM_cJk zh;55NtUGhU7BKHs?H%uB`iBm=6w=6Yolf$2t`U%Q91SkIFF zw=mE4*0(=`OQR|dXq7(txxfl&wMK7$|W!q*I1p>9OvkxUDHN~}sy$0}0IEu*gcNwD*4mv3jOBh>KlOl8eO|Q} zi{nM-J13)}FjjvmVZ-7um(m&4)tM|GP-+Bwfq=D-!qR%0bgd5ym7iRQDXmr9E@z27 zn`JEz(3#~;z!5t?@bp9{TQe~w!QiQlkoL+KVQq_8SwyiSvj$54=IrFdeBL;f!37sv zTgJ9s3_&sL0$vPBu>~CemzNx+cQz59mGH}n)ZHxGtlI)Y#zVaG-o=pS?4w!Ksjgr7 zM&{yy8MijG?l2v+oO!hlPPD|SY%C(2+!&jK>PeOTK(kGMA_`r()6ga*wOdY<5TVLv z3Md3#bl8dHDG`4Xu+_`3req26kN}MFNY)qgD&~bIuJG1PcWaK>Haa~1Eb-1GH^(y_ zh+_B&C1IU8Fl%u?c@W*^;;b5-RQ?jbSakLsF~X{0S^uf~&Od^M>}+KMKmcF)hEY!4 zhXT4mt#~e+q3~?rMC8yqcY?LCZ9`UdCG%-VX6uF;v0Cu{ZYA}{_EG<3S-NwO_UK$+ zZa{%jPgaYx?3cfoTgd?5^vPEKOlQh&p#Er76OQiq0X$bu>q3!7)a8!vTc@YFSG-Fh zz2$BLYdluXnB1Ru*r7W}LYHjU>JIa}9qBZVm5je;Nh_^BH+?%q@3s)15QwmK&IcEm z&{Nf==m`Y9`D4*Br>_hc(n-s==EccMCqSNDwAXlldQmXcHdi*myXk3n>FR3A&TKRm z`1B=yA2C0vQO~tp1yfa1QRQ;J@VX-YaC7epsTgRcJbWv?e^pZsHaA)xH*yx!JhnG!Mu7EgUjGKFJD~6aGhJ8ii_IxRG6(QyczQ8Qx>E0G9;}& zMpFd-PsOxdS?>&N^1NiV&b5{3NENdQD=Umh+-C`yoloqqJgoaH=H+`I2M3XoQu5Em znC3-~{)p>YaPGvT4X1{D{o3>4_N5X+m^rUAaDLywQ*3w0FFGvd-;U(IeStIa)Xu-h ztPKEZKfSf_vS*kSJEaT+1i(lt@k{cUz~@bm4+KDORpN}@rHN7G#Fm=wpUb^Ip6Oi> zd{DblX!+@lF7`jF(R;o~QY98DrRyY!=RAvG>kePQQx>yABDn8Po1e3o9SopWZ=U`C@V-Hvo&gwyR1V0r3JHz77{DjlLC{kC5KQ``3*A`!kl`>2GAr-nq z_ijKWNrKQwz!#5Aopk6jC1iHxX;F^lwGt8C2FhH6#kpUD5N|EjC>p2 z-c^Db*%~s5a1vEn2H)c=?Yc2WLVH_X>56r+MXMwc5(0e6l+7g2ghzM9zL2ToTXZt%>BhR0ab(Y0FGmy0ms5SnJeeuRBLGINJ+!bZ5L8 zDy={21aT5Y>17Lr2QP{MyuvNxVy!apt?w0X$2bzl+rJNB(kl#S+s;^hS0f=i=16zD zv{MW73?dram%4JO(_NoUBMLcHS`bSAXmX{lLBvKA`R@BucpMSK6w7=Hof!#od3#`xAGu+MliY*Y9o_ z-y4HdzLcmgMZSA6Y!(Z2WYMM^1fMc*2D`$9PM}BY*CoWGJ7-bF4SI`i2yBee9-~aw zK0-^3v|i6>XbQY9YWIb|8b&fIVA;fp>|r#aB8 zd<`2Of1}34S1+{1A;twZu(=qL5-yO_;hMW2M9Q<^mM`^p3ZUM)asI$+E6r|85 z2;y?xml9~M>LUoXyBu7Un6DI4=_}M$uQB~4U9^W&b-cv(0V{JxbWZPS|7=UciVXBcF+J#ArtV#TKwge2KPa>jl5^Jz0&a$2q>ay|Kf~ z#>2k1(oG9v>~aWmzM;JnWWN;e$#;LGPa7di`-;nq@pD*sC7x5ZSCiMsu#=hWP0WF|l>4H=w z5peWT9jw}KkqfG?{h1I)V?fYfk7#WEi?>JP_1(8YqjwV58;2gOqsp#h;`tc%IXa(h z$Cwhv{ly*XJ`p%pDHu$!@Ha9U9fwfjdWc6kjz2mar{wbj0-gv0S16t{66eV;#~H?b!S?{Re9R}SeGiFyZJmT#|Gw$;x&drM!k3{J(I zuo5<2zE>p)+=|6yMGnxMqZc|(FX z*Wk3pfowr1+?wN*Ep8LwBFq4_n>&izYOI8-ytl2@>)ZX)Yx&`^>*^lY2OEN(qV476 z;L+cE2p{s(eg*DkFJo;D0`QXA)RfUeuoQX6z`0>hF?i^_;OB@{gS-FYomro=(?MTv zz&WvZAUVb3U+NAs4@`8*QN-+#(cR4a;OQSR!+Chi-e-&LN*480YDTw~z`l6Eiw4R!!Ve#>jDvgP1% zde5e|a-nIvti{>8KVnq(d^PTF&c89VYk=9c4V$Lwb;w}cwBESPAX{~P{{$I%%fFDP z8@sFXp=Q~izIS~I)^){@90H|1t(tj~bmH#7J(Zy!rdWC<_O63>5E%EdV8 z*Dy-YSI>0IjtNF2KgBy;V@)A)V`{Yi4zGli$Oq%(9ctMS*3^|vb(APyB`eTudBvWr4@ZAJ+e`e;L;{2tc{AaDjkzqY1dT| zlQUL`v}mYsBrXBnvw!|*e!t^Jd3;KIhCC{HqPhlM@*!l>>6B;ktx(K>nwCVf@Tc0q z7!&W2e3pH$mbita77Cv>?3vYr2=!Bdct!(7fD8M1{lp;90m>*amuh(0H(-f{JVwN3 z%<0Lrm_e52Nzdt!@Dq~@&f%ZJj;hEdJ`0hoc%Y3maEO}|1%@D@f+X5Czw#%kUprs! zvogzUW2}kO5|kAa3O19Lv>c=lQ-D8}4Z_h{Ul+JA#RaDzz#OmN=q41UqfUW@EzDnh z2@`wT0GK=3od*QtvmdL7;eQ9HU6p(adY3u$SqEdB13^Wnw?*D|Le zn=m0Xp@sbeycq#|HX(kmh^#*ps$vJ<*Q}LKwj4=06=BL@gZigJN$>=HpxtgYr2JUb zv`%Fe*;syD>uc;VP-JepG1iAP&D}|@jcpAV_4ZrMK9a3UX}Vt`LqrRvU{Iwx@N6yUSMIRCI|#ZkXuw!+AP*>=3p0GkVc{BN$0rXluOJhV?Q-teUSf`Od$&w8o$l-KI9 zB{tYzG=@emNp$9ZJP;4$818#UEsPtyTBHOMHNPK=Jvx{*y8Bqodz+KWCgtBb;onSM_E16L-hs9eoi?XR@Vf>IPHeRR=0}yUT z(^_H`<*h^vW9+>UAzz+IVhc3EJdy-qo%@3xKOnUl#p*~#N0O{~=0aw^C2(|+U=57W z30Xhz+@N6JLvGc)w`9?!0whfRN+Tqix11rqteYqj0Nv0^sX&8qmK@&oO@Y=#_*sVs zV!{bFQU?`l^r+nstJ@T-ebJI8UhhWmd%EtkguptJN>ICF+=*fGf1{q^5U+z>C?m~MIhk+A+#o5IcYC}(J591iYS>!yZ`#u&ea!x&5o2x2Ms zKa7RbYzg9Mpg(@(e+yr~bw~eqozj2K6rKJ%W3y0MTX|jq>9YwFq%bKW&)*+PQQ3~F zq+|hBsboHF4|XK-bYd1F< zhKw#fL(Rsm8tqXR5JS$Q;wp|xvo~uW`(c$C!4}|{19(1M;I?DM z4w2w|nc-p^ATziN!##PPQjIua1^yx4x?QhUY1AGmJ9Dbh)9BU6mm~tulSv{sB^IWM zHpk&`TJZ9h(4Ov}87~%XiySfqGL@s2%3$n@2#DRxWPUwbBISA=<`tA^Yqvd=+;Xa> zNwRg;CJ$te0Y=cyQFcrBJc5%(q!}_D9=7iqjId;5k)`q-7(*HE(tM*sQD=DdZyPGs zF75JWw$W-7R z1!>fsWgc;64@QGBccf+6KJuTa@lZ$Q@ta^@Kgovfo+vY4;xh!VXB54BHRa`W^ z5Rw`uBy^6Ey{j%GKLKy(6dR`=6_C9uE?$}ztJ3vs#;PIuSB~Zex6{A39%7rVCS1|R z7hK-ka(l7z$Tw(c~Lu?XSiSMb;>w~MK=xCp? z-P2A0QpXegqT=t*7=<&GuNE|q*!$v=P9qW&niXxBiCyN`;J>gC<8t4EPt%baFt(5+ zuIoY-`DqBFXMTg&T@f1O%<%C)KU?aj;F$3eGB;lvgCN}?lQ|=eMba^i;FWkx!KRse zruxHa7>WGQlD->IAzu~3nPBnN=#3zgkn*B)YjDP5i3}PATG$`U|7%b$V3EGD^EKC1 z>5EkV&rb6H8PtD~is`>%`eJ2W`*{O&KRp9EFn9*JF%()wncc7{sYJ2AUGugqAajyf>By<1VuM#n7Qkk?aG zSCzk>P(f>EBW};W*4kYNCi*kiuzth^1O&Jng9Fd1OAT}KE9|l3Cv=d%@}jDDBryRa z=b(t}e5KJGyJ~mFSgXu@KD`;j6cg(oAEVq|Mf?1a=_miD8M3DVz@P&(e-zWpMTQmg zq^rD?Ie@oz0bclco$Cn$GQ~Yfbx&3Gg0Fm>2~*ysz!X~Z`#_U2f+!6X(*UxKgzI5| z*{CZHeep>IJ-fwP1GTD6{Q;-Q)wIjS^w4NG*YW@eTpFd=tzFUvHC-^WXp~`+LhExD z>xQa8EY`=LdQ;S6CsX0tGSypni!C)AkyFDekFqrT<*MJ{P~>OjW-vu1nGr| z{hnKXw}`n`lN*B|lY~%lCZJ;uULQC^-$e67noGC3#QA{k{JRR~i;NTOf?cF3lig#? zBta`&s5V9G&Gm0avRb2QS>2#i?I1#A-wfWN=6i@he2AWet{Bl)!RP`$7cu#|rUyi$ zGlbF~D+tgwp-|RxL{_?yI2DBh^#7G1E8twG4qpuU0r4L&g!#W2qB3Fkb?@+@ zQMzW8*y|M|y)xO(&vV0|2ZNR=Srkc7XR4U?0kuaY5o&a8LR+-?Lsd^f$uNDs5rzP^ z(<;!Zqsxl1w|Sh8@Mf}UKi?kTp?;#~Ae(9D*hA#|8>MwIX~~V)L5ivNJQyiLppU3tA{zfeKTe*)L@U6BFbpIrZf4bbG^!mc;__)c8nWnH_;A<|=j1t0QHs20H( ze>xzWd9@T7-Bi?YsKBE@=B(D>_Ylz?o+%mwNjF;NpncbEQ>{1SIANnBjy?Rieo3#K zL1|o5Pw{F-8PElh4a1B%Y$HNDcSlB;3hlKC0=ntM(k!%h|NK$uehJ$;I{V}+a{5rJ zK5eJ(v{l(R5b5t{d>oF)&-lB(r|=oHOxnfJ{6L_E6`Jm$Jh8`6!Uk`gk>};N;1(jR z;N&?yxu*w7a|C^_?w1q+A+&~mWsRc6Z&)A8-!SW_KR}WKO)9?EMuHd=V=M`zbK2C& zaqd~X3&HmKkj&D)JR%SgPRdTIbv%$!y3LSb(R-HJy@1`u^p0spLQ8{w#~px@Q5IrRY9p0=gkc+Lp6nKCVoAPww=Wrvd>3O|voi#GT= z!rB~C^8K~(vj-gCfk7-7>V{wB`8akvC3L?zop514jedeKK#{L(_nF8%!oX-Mat}b0-0S^~gtLmz==c&b$;4+Gxr%;y+nfxV>l&aDL zh{gF&5X-M^i-pDACr?f<2^gN}YhEPi0W?Wl|MZvYa=$Ee^)g=e21ybzBYV z)UN+EhIQ}*jqnZRgKGc6kUT9qQHT(%zcx189J)+5H8_AI!TU~)UW|0&BqgT6!z&fqEypuP@&)Uutyhtcr3HuR<3u}iG{im+rQgEY4|)h&Vu!2Q(_fvt z@`YkgnlVLj1u_JcoWsTDVMKH_{)Eyz(IBJS^rFI_kTHPUR+@1+M6^9H*fE5p)gXt5 zlA}d-BMY*Vi4)$nss!jKa$6q?0LRHxS4|R_zZN&~pa;;#@E#Mf2X_tis%I~dQcAE0 zM@y{Od$!R~nBX>`t;kKO-tcWdnT&q*jfcmWCdO6%tx|au0dVhLu`5ZCekgU_0YD5R zyN^$l|4hCPZ(#cNy--3>*JrED!c#cNW0-L|6XM7`{cXo%8+U_UfKkPwR#og6d>b~W zOXja&0fbw09epEj^$2f{l&;dBg%Dq}_bRsTMrE&qQSvf&#E|XH`>OF_GueV{r=NeY zvPHwVB?%IaOA)1b3|eDbibiaL__1J{xR=ID@9hGarc_QaT-ibBy>sysBW1ko zAl-;#o7>Z(M1|~7uzFulraQY`ZCu3WZufwV?!y>%>_W)_AShF&;3{`pO!%6{&rGZA zPl) zgf!}H=ttVwT0+c6WyjWUX2BC*3O?*^BD##lHs%Qoy@d+VfQO6_DIT&IlFE}#KZVgN zRHa#!ImxPeOe6FM7o2Z4c66T&and(xo9o3O#j}w%BlVNM^~|_dEu^ zT~s#KiFC`!qI}~NCig?}(=>BXZI8p00dTlw3sNvJBqfbr62lt_JggzZ6{qYpBCy8n zaVHuFoPat~0Zz+OwYBolTX0p}kWWr~3hGx^3he6F76*4xqM@Agi@_Ks71N!{rM?_A z7ZR{$iIwY@jm4a}nm^UOZsSUQ(m9u}#QIaVlxxrD!7@X}#RatevoNhrUo!e4S%+W< z2*#_;DHI=4o}f*ve84cy#W2Z!$A^&J#k8yJM;E^m+W&-`ojA<9$REItVXC`i9WBrKkD)n#B9}ejrFg16~NMf z{0Cln{u8{i{S&WWI{E|sL$0;134MGB*D3x>NF`d)4n zN^NH`cOUI8FC6L19w*&iG@%Y@gt2oid}-)J4p-*;)BA+_HwYW#5}X`+sC<7jtuAI< zIq4;^#;T8~(rdp%b(Gu#>R0s((@p$!8EkTx_>j9JR$$ zOS>D5wZ$0?cY!YWzQMZ!Y|x3i+VgY%y36O>kkH-oMYIFv!GC1FTTQwIud`X_Gj5vI z&&!1;&eD0t9Ah>94bIN|R;gR9Ng2WhO#Irhgp7n_DwuX9r$viuRO;D3tIFDMv4F^U zU3%eKbD~=EIwMSDR_j1NV>?=+c|}Hw!oJ0BMaj~H=sr|`i)Jt4A?%6mf7`)5xiTRI z`^=ovOGE+PalBkiix-$O=41+slrYOIo7Vo6?=pF(LciM+H<{b{1B)8qk=BcM1OrC7 z*F+W*lw!;(5F*o=a2R3F;bRz*<6lA}eK}re;ZqU1=dZ&anbgG{8KuG}&H1-Kb+5Pn zxgaF2hULcd{G|7ZCp|!ms*1zs^h`!#sVl{P)wFzvr{>TD_DtvfnffOcDT7|irW$S@&RUg~Kc zUhOl}QoL7enh`n!Q~Lu9YdcZ|P-cX!A$=$9h>4-j!7o5G=Fpk@IO-|Ve0RR_C!Wj_ zW0@9`cTI1es)wCYllHquhE@xh-oV@${5sA_({Qd9}MXyQdK zB(bvmo_}k)%IopEV*kP`-q+N(|FxF;{$F^_R`&nDTRH4;&)Fm3MF0XKN#pGP3bTSn zW?_vkV?wRzwg&M2uA4y^otW#0o0NC<-~am<#qT@Kxc_bV5#nR=IN3s(+D~R{2V($#iuNv(O25gUVqJ}9_X1h~zYjL= zRX0}mLWmFI2*gr{DVgca(J3iQCk!j%Y^lv;cPC%Gat$q86*vS%g5xyLjLl@Z?mVuSrKw%EhmK0$UKdXIC=4&2PXbXQ(@FIYd zOwcny#%r}*>%h>frQ2gj2@<|WQHxMTd4`&V8dQm}$N8H8IU2OTI9>sIsL#B^s=r@-m4>nbJm z3RgxbJ;v!W0lF-*(~YoR?!!Lw$YuVZTX)eM`p2KjQ;a(XG3DO*^j;~25O9k4lDFVl zhyoRmV!|}O&*WF&d*Pt68z?RoTk3N^-||I8?yEA4GH*UHFlL_Xq2b z6xNN8WIG760riQdvnAXD3|-2d6l1TuiUpgd>zpgQbkq*)8a!rQA*6v@Fq}{qHridl zfP?rr0*of`iYLVw0uDZ+AT+w1-JSin)Q;vfP%S3r#Vrq0cm1)+iR;&}!>5JHJL6M) zcZ&W*9^uG>#2&aX%Sw|EFg`{SBAU3Kbs+BVCOz-hpxHwQWrGvjn~rvyPOwC%SS zdepB1zxcF1T6G3ot(Jft`c_mzvel!>wzN#_gtzpbxs0JcnjT~RHwm9NDdc)7tZ|Oz zSiWtOMD2QuPHj`O#Ro8oaq`0b-~%W5qLOJwqct4S9oTf*c0qsHu5U@%68qSG>*+us z@Y_02%1!4XAcVd8X^J%ak7o$=9dc+cz`beAr90A>R?p7DL-ErL|jNolGDCy2UR8(Bce#k5hp$%-Swq1%X-D69^Z07m@;Ln$!(0~D@F zF06=7&QOrdoH=Ykh$NDg6Swf#BDJ4y%{`HhD)9rrjIKRNOfJW&&-CU)qAu&#Z&7&} z7hborTRMzdZ48M0zJizpjs{J?ix&bC_R{CaJZOQ_n7>xxUt!Db8KM5P?y#O;vL2wW3eqDjT zVt$mYHlGN~HqDEea3+y!+JT2M11aByn-jdnN*C9YNrka!x}ESJkYUHoF#SHEh;f z=xnKEOb61pm-Eld7E6N36h{KBBIz^AjmExfS8+m-2&BB)ja~-l9&Ms+rTp{+idZS^ zEA5J^Um8KfNianzdw2hx%)CnOk;C}>QqZhP_nGbJdDc!(%XO_kMzFA#o@7+S+nqpJxYr1GJR2EVv`?Qh3M z$+><LMW6-4|{$Nl1sThV74Zv4R{O?(uFtmqPwsdOT3hn5@sfJ6LGdG6{6tM+({ zv6N(rshQ1CDYFr!-(ADI-oS!PTQ6j&icO|U`1rsd$xbo6&E1`lNInjJG5EvKfR<5j zDOR{yoT;iobxPkvKew1$dGwndhE@1bapnNY9K0d)n!btd^E5Yk`?%u~zB@1xxTLXZ zqN|kAz}qtW-|nyVBY3C7I!D{>Go#Z+(^H#)x#9!*^*6lxkJ-kj51^uLv3nS+WOg0s z2twW#vRTC4ci63sgl(u+ga%jsd+@lWlZH=DN9A^6@@}A+ZD7OJgKa+P2herRr zlW*@1G<=d-C(vm9pi zt&=}}7w_7I>w(70Q^1cDi*G{Y^yQ2A3moj~FDC%_fSgs$HPOvymFz`lM zKO8p@7LG85MJD1+QI#dB(#+a!^ps#N#=*|%jiq1QgP56hF7lJmyPqmyCXHf%!XWhW&+2z^Qf9u-4#B^e<*|pfV2A)&XPWty!0p@dV2s@@* z9DJ2$O>-|i8~*I9Quk%2u-RF*BM~JCp-4-T)yZ6&I5vCOx2N>uqocBAbtUh|` zSJ}?6p^#Yfy0KCKhnJJ6T6&06U?TNwx?YDDoAVKI!;y^uR9P*d6OHuFxq)Rp5k~K0 z6k`cCWa2H@q;W0E?K!;-XH_PhiwAgzT)-(k>@rvHvrt9v1LFHEvwFqDMmI+|v9;vq z7=SdFe_=40Ecv2Y4I`+T%A-xDFWrAC+p0pp*_Vl)dqx5C)luTt1_=Rwo!&6`x!~hC zL2sg#q}%X7--Nb&AF>5{2M4837JiMfFo8*2|NNv1mnw*tA=p{_0I5klki>ji?J2@G z;hhsZdoUtsRs5FNEEg&t-w8ta-ue=`Kc*dp4)E)={P!sBq%ufVWfH)}EltL;#-&B>I2KZgmMBxZ6 zfmwtc57x0DNwC2Iwfu$`;DIpm`ELm(UqS)3D9E>OVqcfy|3?1*E@VO!`=ka0(X*C| zWNiu;H7X1ChJ-6ER8GoCLX7f}yPF{J^7=nBTMCv+(>e}$VB>NMVxSX7>FAhx7H9!oNeG?Grjbr4WP7#(W zl~hbx1*O^}zK3f!z(#l`bVoh5f1(#@Ott9yX*NTgHy%_-C6Ba-=vFt8PKe3T15;r3 zq5eHb4skW!!~K%rjQ_xvu>W`bq5NMlvYd8DQ;Uv>f*okbS&I%PvO+ml(N9YyUl7SC zMuL{ox`xf6&FbD-CW@XHqo}Wfk}wWR^1uB_DV$hX@(Bei56_oBNp*hu8_T%;Ey_42 zzxAT6|9;bUlSr6RTeb1v6z;BAj@kfz)0GIe0G`t7Y1H^5iB;z>zTIoV-YLYq=sir| zUCgEP0%i@jy*e$FzVte-(2uO$dFBNSHkKxW-IoawV^}$+tZKM)l{m97eGc0%hU8fe z88B_`JyrCabe42y(Eir(Sy;Z0Ic#eeB5s^?IQEz|+PrI@bb_6-kR<^o!ZZ6%Jpf+M zC}a--B-(}W^r4jyAIy+y&{2-S64hPC@Nu9+yS}UC*8~yadXbRYNX-f6CCdP<5(_x} z+F3b-)Kp(za_AG5EFLEzLrRtoWHA$M*jK=7vsZLzBO=*ctTVjr?~Oi72F~38{`rVc zpJJzU;dY>L>XfSQueqPWVj0R<9J1RQof90teY)~8e?!bN(RvxmUYnJ zPi1?Ok8$-DQNP9;M(X5;(T+24_>63(#9KFyx;We($h3cI@W&ryqsC{^aYMGIv|Ha{ zNYg$p_Z5M#=~ABJQi(9|Grt|-A3dix!Xwljp zR}`Jkm}j-B(ewAwVo7Y1?wYG!W)F0DChFeGj+=4>Dr^{|4Ew&xm>0)IjO0D-*XFn% z5=AIdia*}Lg@kTWk=;kM7fKSW=aR1;C$o5tH@wY<{XgzsV18D}@*${~QnSQD@ZaQeJ!LD}Oy~kUfKQrZ6;ijhAlHe^xm>! zdUdKbt*I|LO|G%YAenmCOg*&YWjT_0%Ohr zg$>jOXNhJezEVc|WB=_Wr_&WZ4tSicly|nd;9w~&=H(~eQ@h$b-FwTf^ubK2i3`cd zj=!Rty`DO=%u$i>S^!%wkZ0@$weYxBM`|R5RP5n^qqTb^>MLz8a17%uL^hHQn{tgf)>e4N5R@@e z^mnNMKqKO7(cPM`BFd81)_Cq{F)(+ zwSO_tKcJ%2!9pl50(zzYwe+H``hwR)?|0K zEw=?sAkH6-Qn|uUNHeKl!-FdV9KY~ zg;{!desW|?h9%PG44D-wv`xq@+ve&gdBm!Dg8m8Fub=MBNF`13@!U6Pj(CQ!0%)Jc zIwQ5{x8Rk*7AK7j4~j3KQC>Ba z8uA6f^DPGSLqUp6k;q;Bdj%3i+?=81Po?>IeQp@iY$Qs>La^?UqZ!1I23!!O7#qxC$< zxg>&jTe?>PYp-e8f1yAbr(Nu$iYFPi(bnSKroIt|iQxso2W6%hkI_TQR)YWNn95Gk zOU^lLia4x^_?6%_)~s8r!EkH^ANx7eJkR0HtS)T`Jw|2(Fbf+Ko-j|l#BEYE3G31` z1$3v;&*H*Y;Xy+HMKTE^@z=k{TEc48>_L~e(u=1N*h_U209;H%%$-fBk+ zCpo#pF8kJX5SlY0PgO0pJn)_e0))66V&te-7eFncdwNJ0B9N9ma0tcJbHWWQ`P#>3 zx7=oa+d-cL5!_L(z$edh*>NKzTVU0U$G}4{7Lo&Er}i3M+a?Mor?wem9-%9}E8rxv z{&;Ga3+;Kr4p1@;ZBcG$zlQVo#z5&9-wB`R2nGkJNq8Z?nunF%ODj*TYPkK(CV5Oj zM>!F>r=gO)CdbGch8DvR!AXsWsaBW3>7^M90*CXV@WNPS8p0`%%H$ka@%unu-hK;~ zcSRt6l%2Y#;m-q_d%gs2YW&Q-cc*yTT9{e>h3YC zzH|Fx&x-~=wS-#WMg03F21Ke;T$ryr#_&JzZ(RTMZ<}(z1p$1G7fKp#5TXi-KkBSf ze}P88K0@jC+BBRDk%W8g&t`{6wGOq=-k|q{s*i?HWW0Ri{~69P3^4YA-CwrUBqc(% zy_?$Ra-R0Nm)-vKxJT>-lwixL>&U+ZwB~2B&Ci7P2pFn9Z>e_6|h$Dm}KF(4AXW9EuZaZwfJh|XRJzPVbbQ%dkLEXK)jxRkrpe2 z)dF-p7e~>Kvasnj;?cJCefc*g=FOw&1U*>Z2~8H*IaGbPhc4^R97U=FOu!Xhl-662 zuZjHuCX2<;E?WX;e;j-YeQv(_wk#T?u#sP=+9P5MS-|Sf`-l+LA$wFLnz*?$^0^>#% z?($W=+S~E6@qydLcimDW`qOoB1W~GT%jPCCh@(3^ebv@KR-@|0sU4xI9V4{Tyfh|x zdpfL$ySzbrUZxYf?7~4Qq$0u$2oUe^-Tr(@fj@v3MpHT{KP1B%tm7wF!N?N(m>$gF z17LI6+tKWL%vZ6aL?^ILp)~i;J$ufUZ4|{vNFP}8bILq6;C1W^WAvhD!*349WTHQ* zV8RbJS;FzCJ1APQzBnPOJsFB1Y#krwZoMeFJ4Cyx)H{ViBg-qFx{+ZXp(#CYjogcb;thfyDJ|}6hPKr8&H5@YtSZF_*W%N?5yz}tQ5$dfKUB|bIE8) z9Dw`#X+l;LPc(EROO!H3GMp}EUnI(Hjw&RR&5lfS2dtUWk){P8E>+XgCHfrnp>p@# zi{l(J9XbNRPtvET1ZYSzqFlmSGon@tvmxS}|@O=Y+Ienk<-_Ic>;=`mwGU8~k@y(+Y^?4-ATmL0KKF18l$h$*H8kE1`IXNY6hPOyVl zqy!E8=@Sl0llN8FV8durV2FqwDJUxZ5FJALU9OCbq8Q+L<=bkR=_c!E<^SI8eBFNh zHq(Bb<2^mKaLxP5`4h4w&QQ#r4Ksq$=r121+s%U*sd) zdk-kczsoNaa~3-5qdS1gyxw62lN!b&Y4}EpfU+9>8o@F0MwuUm4C%$N5l&-lR8-UC z%C!bk4C&;sS@5isiJH}UWTB%p5XD>~YBXsn!X_bscX%Y|d)QneRQ;^ZVG2Jhox&7+ zjt`LYZ>Ehk_|(XgMS z0q_y6mDQfgrLkGrY<-eWy58pEjoUK@+dHh5+Q$_3KYu)XawHpWMyOr$Mx5HxQ0hw?6sr0 z1rdSVg}K3{iJ3j;7TWjYryL719AhS#=AEA4(h%o1C0F-G`^r>Mr8*7(Hher% z=D6wO4S2UWQASs|#hy5fBO!S#LR$h11pa8&QSc(m#qFD-dCci8OfmTvgj}pFx}2X3 zd*TcQ+zqF!V0=v>xSzAJ=Wt~_=(s*AbZ!q_ZxE(>bhQzUi@eH1L$3@9cNpA{d;%wR ziFdp6uColP-P}%*j8X(G+KTKE3a+!(@I`M6jKq#WRn&LUr&>ad3Ke4)z%dr8B{^Ak zfPr-Bf|KRNcRSZWVk8`LVKc@jBzI{_E9_3X^34}fFY|Y&!jyp@9!*))6)xB6UFEI* zj#EV_XOvB`Ny=3heY7m$Lx4B`m!j~$mt(V zY00C9HQ4%*bZ?NVoz5hSSu;Ud`U-6}uKWqG{Q0|yyr5dwWnk&K*OHha`vaTdp`;Uh za~mS|xQ^COr{}ubR1KNW-7^ZnhqN-s^tW>-qGJ?3{O3J>gxsNb7jkc)cE!d`)!6PS zdQg3w`-}loe;xC)=Apk-wr7sTN0`?Ne8!F12$mzIz%HYrf6*~rA)FEks?yc3?=<=t z>zh5Fuez)?k%}JP1HL(GV+TahUE0vn(Vs!Y9l{5`=0@sNDVkxi9U5kTN;3A@P1q{SV1lUDE|mG~+8-#qJ>u5Z}x z^tj1cQY6(m?0taorq*Mu$S0`E7%Sdn_yLHe9c-=PK1nZR8O}_ zjacMX%S=?lFhAp5$dXb2f!{EfHK|Z9HiF~KB0ZwHM?PtGf9&f*xp_*>FSRKf^v-jV z1L-az^d>t@sJPjukv2o#I7@hi8&{i$`ux&LuB-JdaxK;oThQwY?k-&fbmZ`xIv~&b z+*p2_>(h`g`#y>C@C4FfyC;bs!7-ITx(*^^PjmbS6j_(*ltdCs`Yhfhyy!83U7|x} z-ZX(B)g`2emRy(o)Jk$DsY!AEdsab~cxG9o04GGTcu5|8!u&lN6V1ytT84TaGVUzo z@X@>t1K=e$WpJ4E#0S)zumIcm{zRK-=_u~aEQ|CowU4ANV?xOrU01%h|B${aqo<=i zuzDkw85;8=BUF^A>L-F)ft9T;x%B>9Xyb#b&QI?0890b{yP$sd2G%yb92AXX$ttx5 z1JX01Dp9#}m{mgOaa zAM&WXq+tZZIcuV!D7Ey>_`?RaS(JNIL1XD9BS@vt_q<$<%Gy=GtH-&-PhM9`J z(|sx}5QmeoG)p0@D{809pb->hjg$zJJ0~4bjc{OuGE9^A*-}?( zymcS3e1rJ;Vkc&46KUw_o6S;?rd>=A4yj#+M=IR%Mcs+4jNmqPekYlW<)*R&%nRwu z?^C)YGrFWbh7G>qeh|9=Z7LMZtG-go289t>ydg061H;`PK6X(dwBp)SgU7cJmWHKG z3X+%+)>8;8woulw`DIrtmhh?($UmaQTK0C_Gj+kTb>W~oN!Je{@Fnh{pjbGy*J=J>}FuGfIOiOR~Qu1ntp^k3Pmg0=2%M<+aoPV*%6L1 zUuI^n1gQYgs2*zRwwO{Am}SSPR0rl)%$Pz0mjSe=+>|FCLkye<3$pF$D|D&hrUd3{ z6B$~QSI(;a-e07BGnDY17bTIyE(@j<0zoxqvy1Q@8LMehxIBpKX*Jb*ogTwY#)rxA z!rMH-XFt!qmxy_B9rlt?noDklOPgg}wg`)F`jL+ybp%>&U5!i8)N#J+{M0;br)~& z_|NlJDV$%@yMxFypfv(zB@e=KU1Hq*P8H9yaD#qz1| zBhcJ&DuYL1N-q^~KBac6i2)$X>%d`Ao$DfOX;$e7#X7tIR5OkU&R@Y8VG!g)&{C!C zW+z8N@fx$rlg!}JN6Jw~&V9&m)9AF=fgwlA2vDY45y|Nbmc!`G^c zq8PZz!dwUI)5}FsRe`9=vVrZu%{4Bx(Ra0O)~SR32G8r z)TeZk=F;5i^H!3_1JM~JcmG~sw}1!X27NtKC4GfLRR3Q;5>>u7Jjxo{8Je3q{qtL5 zv|^{6F*7n>A{3U;%8j1hkQE4uVE<2%0Ks)4 z;9F@=`jGe*(hqh<)eF)Cn2FrgH9gvMw5=tawK6o@E+>=-8A62(SfyZn{Y^Z>G$xm_ z>L-8bKWDF^*yK?u3WDhhH@exVYG?WaJ3o;hi()$?U>2=5X&AlMDptl?uyV2+tS{|F zn0&K}q0T>HtaEYxruZ;zcL_#A&iW$vrAUk9?Sf(nMT7SCQAG1*4;* z-u~&|s0(0-n-%1NDU!`FT@gxDLM1MSKwYzhE(*Aa9s{Q^NiYOX!&{c=>YP34)jl=e_oGAI8HYzCdB{m_2D)q@F}tD=0jTF-T`gU*vRk-J_I zZbH3(4YgiGNt0JKswXC7|J^m;gIj3tfnfX9f;Ynsvn?ojU6!s-NuaAu#i4KTBgKS; z*XFi$BNn6W_n;8ncqrTtG>oOP@xh^`GO-;=!if2#V*JKGh!|xES7X@qM_QWY`D9_&Gn-CF>W(-X2ZjB3Y`K&(K`x7?U%wf?$8c=jR-3s0tKl3h@_2%EQ4<9!aD4F*Mk; z6}X_V9uhX7TVb2;#pnmgM3ABSN7%)csDXwOl5(QEay&-7bnwJt2Hhe`PB|exE zRSd1f{HjPoiAtLdv@3gQcz6ono-eo1gt?Y!aa<80b+W-muvEKP8Ou7C4E%1H(g6kL zpH;-~Ocx_lZEQ&3bG)4B*PE>^ewS;nzJ?)|z?&;N-ttJRg9 z$mm8!=3Cem4uXPn$ zYaat`er4C^q4l=zpOZd8RhM8lt%q&HWEElKTQLw>(Rh z8j3zU^-$=AXN@1n)ng&_b3LrdHiv@%F+aMTt5{62>zV97a|@q(c}Roi>sL2Y=G-H^DS|fO3!ClFNUtz zVkuY%uR%7v8|_EQ#55Wz07v}1LWm82D{vxNOr~vjuaANakx4eZ(iam#J;<* zE^h3j7^LbLn}gWMZ4|C6A9qM&MUsE;DLah@=e^a_bfY@8ZeEUx>d}5+q`9WePNK{c zeC8}9TCN(#iL!^3!<-Ba;APT-;DSF%qD0n54r5_v@4kW$hiEeE6*T7H{)KV=@NqmY zczfqTyt^_=QNf^fc-|mMkFwQ z18<+w?+x%d!B!x*H25Y{{{i;K+i4?DN@CLd@k{0Ek@har>9sUVv-s!sPAkpD=ggTd z+E|OjHE|32FLl3#Z~+CLZh2SSt)P?_^2Q1ZDg`8}Wq47H`Gte>aPjsQ5nlWwp9afe z@_hF1`Odp;i+UR)U8}isG8rCyXUiWXZCBSW36RftKLVtKr{{Qj(j9XLV4`~aG(2A3 zCMe}dOBxwi1|80Z&K4_O%~2+Y*5VpO?}qe=Jp0W**2XkbLG7f-Vt;GSwUMWv9B-;v zbGF;o#m)!<(R0Lkj?sl9AVQ!D<2AN>n$@d%jHY_@l#dp|O>%CSx3SW04?i{m?^UO?KFiXiYcQ?zjR1! z8sJ=*norPccqOILe!EVFb9t%m#u0EiuEa(DlJVV9{o{TaxmxzlK&46ptVqv$n3iB6 zx0v>tiRZEHa2<^tURYlwO`~?Dc^Ys^*TA=;n2G*Id8S@~{T(V~xI<+HXp z3AC8^yP2VHyskMI*yB|#(e_gPOl+VXSlZCXI?xbu%XDgPqKeRlSnN}neoddJ!~NY8 ztyxP;$CMrbB|rHBk3bs?N@SoTSM0`6CzEt=BJx84E@i3wtcfU>83U{wYUvhO!C_WB9T zk0cwUO*|v&lrmPZ6)g@vLEPg>n=552D}|bqno-m|rnPI&N+H)-Etl#qEYybx!Lhb= zliy!apUPzRix?@uFzSDDm-)4|)0)dUhnV_N(7nb`hteYnkhEPAV$`;mZ0w&Sa8>AE9noyX8J}fa zQa!snQUDLkLS81q+PpXykX4{)o%t7%v=7-2Yg!vYAEJZ$yHFPktOA{XhHkEB<#8M! zR&-Z8E1NIJ$SLcQE+0=+9yXU0kyS@|bw`U`9jikMbA>8_SUYN`UBc0pQrpkhdL2%! zHC9RTudnA6>sgk?atG2YYa?i3)LYkU8Di{}jAscPmSfdv-Q8t@!yS>VL2Ey%@;x0Q ztCn;LZtVZ$^J(%ql`uVxKBJB~ur%Bb=R45-9UI}= zUS$bQ_#kNCW_%uV3^-pgJ-h!|gMb7p)!M*pN zUo5$RF4vuZlp&eE=(Whm)dfD`%EF&Fi$Kch!czL7{F(_re9OVcn-d#>Fs#0TP{9Y& zeKu)2KL9Mgh|k%y?#}+TPM!S^purGs3-Gr7>#!_KtBiOHkD%%BHG5h4A+HB(&Sa+E zSxwjCfY3kc%I$r#scaa)yU!Wmy0< zd3ftZ#8lpK{e`s<)iSUH=9q~x(ph*U9K|RKt7d`;M-08b1%^iX&hXOqmsW<-g^CLK zLPPXu9*P+H#un|7vpFFGa;<=no7+~?2+(Ssb;wv)=5Y^^|3le121yofYr4Ct%eJe! zY};M7m1WzuZQHhO+qP|X8B^!nGcj||+_@9;XXlQL+`qmRI~U&dyw?bo9nEL9idh+Y zv8??B*;%ba{L;9?9)C+0Q0IPr;|NrgxWme2PGnAzAYZXTJQYhKA$fK)a*WjQF-RR& zNF(?aVQXvMg5tQ|-81FuU!kiUcg5XTcKPic2g#c5+R~1#y)lC#da8r+SMryyb~@Fh zFE}GZnB{nK4HJo1XYV+$1$kv?e`^QBAC4N94C`Y1asscNyLwYzJIrUhg$%N2gkRc) zIaBOnD)7U!Kpz?GNo3>r)9MF#-@#lQ;L~3;N?G_w0PDOa=o_JDh-VkwMasPy)cY~Ce-ZQH5Qq5=Gp>7S7 z?c&;ja1pT`j>7zV?1+-}VQqcGTefn((}re!$YJED_m|}zN@FcTX#l~6-1vz;=}AF6#U708TSD`+iz!%>`qUH~ zjs?F6j@JJH^bRV2XWWpbFAo1+?%#WD3GF1iDRNsi-(t+z=p|!(iSeGkBi&$g8%=$~T|_W{3b(F?MPYjMaezdQ`R zYkdiThrc44?APq2cN=h`1Z>Xx$2V1yi~))oN}4=j(ObK5v9;M!F)pFf0zW;VMI2g^ zI4P194!xWG>jl9^3ih*6CvuM8ChxIC^A!d#M5bytM)TJT3OC!}nK5>_4wB9>2K4uK{Brqpe(9 ztFAmiDOlbMJLG>ehGdjbT_7ph@54d2RWCMBZjxT5cb6lDEql-huN84W29aE%s1_I` zzO4FUD!GcY!aRS9IOx&Nu~9m2ou)L*Gl)eGrK(=j&HM1$P5FygeR{t`Xj!@e%Yi+i zFi3`>pB}n!E_eBtZ;7>D^LK`sZ4B15V`;VoyLF`RI%NkHhj@H|SW;YKJ}(&bP3=xQ zO|^jGUh*}f3Qj|1ILPs2(WKCpmzgKPMMZ|08(aj(Z(7qsW?VEcgnp?F->BJ!i(qL{ zYTfoG_MX{ZdC^X~`pkajD7XKq9fNj$$HoGc(?+3^GNkWFo5Z55TX8^ahb2+*U*6nN zz*nluKhdH>kFEf%&N97OR8)C}r5_GG?NudTQ~GGp=)suwLZmT_9Lkr+r8CP)7|gG; zV3<_wsl5;$uEU}pUl5HyFS6FQ2EnpdEhbS}43(rI9oKFE*+^^@v z@-%bO_Rnq0yj{I1sjwO;pFLtd0=u*P;e|2M3?DNX`RS9)9dG;#*SUw4$L%n4<-m;0 zhBbu(hYH-qa+@67CGk4tXSY+9pPVY=s-xr~N8p$vB(N996u6ZFVi0gwamlb8Qcd21Y-Vm(mW|JT%COmT*=ExZ)_sc0rn7AB=f-tZ@honNn6+Dk^n`0V z=%qQ`wOjW~hL^Bz+vM2(eHy}G>SQ@WPK_|b=u0cZxqRT^@WVQ}rCs&1)fgjJh-D0u zBuvu-GV8w01Dl|B;#9(3NPr|5S^x0ri?<)mlh`+ti$r_6la^i0uo-H|73_3-iP zkcaQfeR#u_gu?=@{i4bZvj+-q-}0?GmwZ&Glx4Ty4^uZ6j#rJTgX>4^($BU3gB!^`G_P zEH;JWk%!VhE1SiO)s>`&3h!RFBXw#Yxy^;ddelFEbusz9`vm(RlNhhyD4wLJJvvd< zh2eAV5Ui7zl*Rj7B~qS3<{fX9NtA*0HwjSp!XycpHk%X)_yoA!=uZsG$ogg54NluK zdyOi14OV?Db3L(M40(^!yu)!_vpeN_56I0qh4)-_c24IDW{FVGb{hC5gR_h)IpKV; zakV{J*)vp)DLRcofO1LC{Z$6(U@k7Wlx7j4_!+UN7$N=^8e3bLNFZ*_d>-LFQ!{3-NS6 zh7_%GF0AIMUpMKxa;3RU-G&8)YUp4mJUM^UCR36s6mM5&(JiqF?ven*DJ^L#yUhMt zHUCcL`H#=~2g6Rv(H%)%OK}A8LUc5SA1Wgt0AeVcRE?6xr+!Uw78(Mq1-IghI!Euh zqC7_q3T5fsy@ZV&IyvcYkO(%0dyr(wt#7^ z5=x0)0_zB|ODI+9gka*}fHa0Tn^*UwAa`m?Ga2EZPCGkH)YofyRv_HMuiSVAK#8+M zrSm_p%?^WerT{?HOC1neO)p>!NRxO`al zAOcv0!=d3rk@+ooucim7&8hq&tQ*dGrV)bT@bac-Jq(7Y}uAlpUn zU&9D^HO$w3>Wt=!varHR--Ul1Du{v(pXJ&k;VTx6+m`)w$J5ke zNZzD}UG`J!amVqwtMP@hG?*~7BjjiUX)8;<@^)H1C)i#}E zni~{V4gqS9#OY;MLsoGYjME0V?Zi_5rxF$HeCwMOjPrnvf;h@j(S+Nr`$&rIFiNM? zmOlf)b|03VUd0rSs@4)Vg!q4cFBwu_TEJr?lz6&e?{Jz6%x-o2a`+6(;i{BqLLM#! z+F?&Ox?E9o^t-TXQXVtWs@2Zg!ZdzXf)~5z4%F}!WgiJuw)5^W@E2e6DI8Cn}CAFl1Ak^V)$JLH%^PtDuBNtJmA-RXqVy=B&CnruD%JM zLUO$&&K>Ht)UupD!9C|*XeEQX(ojJDHo)P5T|hdx3!zHJCn99EOrW=SD=_brMQBuP zSd@^L&#opnt=EOZvvO>r!{C0$ie0OZvVhxnUG+>C-ya{`8^`A?T#k?HMY4Z7l_$%o3 z{rcdQL9=?YV3WaAg@pYgk~B$dr^l3NqTOZ(dV{O{jW|{_H*$r#&tL`9AOQR4l)C@K zTlRCS&7G_O>=4EQwSPyWkXIu0kxsZs&7giwc}^cU3aXf$d}OQDJsymvSG&@yl))e& zQ{KbWmy6ixX$q%Gk{8XE^2)es* zSO}*Nc}lHl=mXF76u6raPoy-7EZ0~HLM!PQ^pom^0N*SaLTUK|g5k?|L{35F^Peb= z|JtJ#>;E=sarmCJ{JT@FJk;I_+O#YXbN z_X3Z3xW47}Q6F#9Puky91c-j&n1W9-3EnjtVkh`W0c!(eF5HL<61->4F>xJeP8E#{ z*&CNLDVlO<`>&k8&hOmDWSp1M&9gi%lQoND^tREtGi)4Y*o+q02fs|D+g(RwIZX$> zjNtlLoE2~le(|LHrV)g^Nn;ZQkY5GcrgZAaN|lQs7wP|nMo(GJ)%C?(UAGa$2hR^F znf#KAN4V0dwq_?vb&?(`J&zCYpi>)`NV7vckN>GP)(?<$d{x#8x{L94VeX|@%R3;R zFYCA#mM@QCEf(kn1{O-7NT|dh%a`}{3x3G7Z&T?bxy^n_B|~?TqHMkfZK@?yrh_?Y zApu<;Iq)AKtVdN39nZ&=5%9u%(X^$bY6xlK#?5*?ZOC^nXf;TVE*8w0g{#b?Ad*u? z@iQRu3d2Ok$AXS7ag#>L2UM7%wR{FLfJC1%k!WuGhRulm3iZM{ML>h9O$7wn!pLY148L~XSKsKSY`j1>`>a7zsJ{g~FiPHYK z2TRz8s>ssUd=o2uMLEy3w~(zR4!5o;*+O|uHAqipOwJkiOfEGacMa_R&mwRH+GP6M z@1+d`#Q(u)G=9A}Fthl<41$N}~cNg{h;0<7AG zhfs@xX;C#dVHxP#Y@pk|K7SA5h6u_Fgc9*xv1A(%jhvDM?$+!*Xk-dk{+IrxQ+#A;ztRCG0eP%J@hAV#24Kc$Qk zHKQA~>9?{YRGqo4F;uLMzz26e#*mcWTeQWE&hfo1X;9E&|26NAlcRg(ZP{=8(b1As+CV{xY=L3|UR61?+Cl9jypfX! z8J4ZJNz*9~0&S^^3jW+E*k@bU^QfaLR%mkD!eePTzD`$05MhLIhx!w)5kdn;gYcYe zIVhyS9*NPRkJ(fmFS%!2`=g@-6JQDZLh%M27+ z#EG!_f;#tine!O-Ml5z<*+ElQtioW!lZs=K;~H&oCl=Av{NY!9n_e5C`atRu;FLP$ z)hu=X3PS;o<*pQ!1T>xuu&*QO%vbZ4Dnd${((-#l%s&2AsrJ()6$W?I6L+_idZN}=~_}cPgrw| z_DL)CR9*x-Q6aba)&xTSXVnd~9%wCUn-8ckik58Dgn)J^xYyesS`tM}27e?@DMMk@ zFbKKDW|w#W%HLzTm?i&q0%S88Frjc!*(~aLt`HN>AZWng!X&EnQfvjVg57{`_2toK z4$|+DyI@5dt-&+ytHq_p*@!kJuX`=o4X)q9o`yNcZ3g6$A`L%YZ8p1K)AwCzM4cHV zJh)6J82wF6O)yeL6c}v3#XWs_g1pe~Cp7F6%#1(%_{kLpH$q^@+igU=;+qjGc`|X# zD4*2mfr_`6tCR!^f~Tt_65OUgi;IF6&*F_7J!(Gr(2!;Hx3S8xYoJO8$kZD!gMbS$gSaW@67biG$~QvFpfO z{e-%;YHbQeG?PvD%&RjLH-85?!#nZQnjXY3X07Y2WXwi0yiE9;T208B#6z0Av8F+9 zs5P{T7HXw?oeyDpqFAj>%u{%kr9Day+@HOEOz(mfte~4d?1}&_63y>x5h%S6=-w%u zjkmy9``iB|vx3`d(9G%uxE@XlboT8?S?sI9WNkXmq)3`8(+G%KN2h*6#jJjbnEJA0 zEd(FkVB~|T)<;Xx&=*p-s)xM#gx?**goZd1MdtuC-3`WHh}mpsEZ#}JK`{bxSzu7*%vR!c=z>zE=r zA7=$ZCKkg{$f%-z()v&ms}svs>V@&p54_b2M>sI@+cI@3|1b2yjS!RVbKEYm#2HSg zA93SK;3m8fhg0mQ)!e#&_e#4UOh5-tyZDvwFlu?M_+zH5FEJ#T=++D*cA&wY6H@%<#1(fe{%Pm36P=xa~qaovEYFfdTEAJrNmSvBb(sEPkyU z%@TbYMS=TzaM70Wl81@b7CE%G6)_l)6VT+IxYf>yAs#O|yoSlgJU_exE!R+|gwWv> zS|trvo{Zt#dC6hdjyo<#oKgJ;psP^VH zxyYZj9#qsH7N(rE& z?f&16bDPs6;1wNbNDyF$zxX555ggEU{6Q^F0nZ|>_9>Kv?~#b^(8Ykyr+upo|DbOD z4cN&>*#)VufV`e}v?huaxtktd_^KG@dlk-PiZ7`DoI7X+ARn84>xDAE6H?m$J{eW` zP9Y3*?f#iN{4d$i_&-+MxtlAcB2W9DumpcKqT~};A+rkcl~`f6MNc;1M2d|P`F#;P*#|MW_5VRXu^!c1|W&d9Jo-b$UWeuDeq4j{2`>Ju$tYpY*}zKF^em07LD(x7Y~ z9knN%-rZcQ`bkjnndppUI;?v#Tvu%o>`V9tS{HD;y>&_Xv_xD1=bGTlg^%}CptimX ziY2fHyXrs$jDd&L#1iCW*+hj*#}Nko-6SX6Oeaen$(0-_w1hW{%&iVxrz4ovb&Qt9 z{C#{JMI~972qS5K=yn3pCrD_~?lm4+;C>243KL)_0J=xe+KN2uL!YjT*f?0a&@JQF zghzqlFfFtJ#qH;a`ir3KtxBF>H_&+W7FeM$E^3IZe|!KPyguSF_C>d>5e>QAx`fMg z5?chSpm9HChijU$I@LWYo(zTp+lNWLgeU(wEcNTNkG8vX+HI#4FLuyRIZ7wiK8jsO z%v`km`3>|xpPIW6;q0&P6D#;$rTYIlwSS?mG8NXp3ki7cbT(T=jk5qCQ*!tce28RB zAquWv__AUJC9S`S$>BWLR@R3qYiHMJZg@qxfD!q@|Nf(vSTR+={X-$T#cpq89BpiL ziO1WG^V3A()X&S44)fTG{W;D|2--C^~qOnG(CoBM>KlAj0&#HNKnd(2< zRl|>B8nk!)J=lX3_#4qjQ3nk-r6y$I)@3A`U@JX@m2as zo72RMEKl(dE*evYf076!8pgtLvykL@5C3v{^V zFw)1#qTtB>2+*Ph&I}07ecw!U0r8r2+}0h{G90#bHECa|HKPg6G?Lx?A>VJHPX2kh zlXOEjc3kBP{9up_(h5ZPXeQU5{AvKltJZUbME0KXAygH)Kb&k6qT9E3dIF|kJ;aCT z@I4^!_LNK?rWvCA!T%e=C`Y&pshfI(diis)^~vUH(bO=WfM5e(UGT9`{Mg-I0MXf$ zFcA6*fkJk4t5_)yKw;z-H6|})cA@qLoBp5x!P=WrTd2A=o4 zJ_ijMe-~uLnTJ~E?^`M(an%JC- zqjOWP^f7&n+uvR$9IfisXd4bwy0W_^Up&h1F-hnP34%DG<(9dK?n}MrOQg-4%)!o~ z_miKg4bL!fb<)l!Vx(`Tioz(&rAQ^i3K$(h%ESZHW^?p>k}b4+i}=ocNg+X*p&xtV z{0f2$;3{HvlAa@i#+uBPID*@gRG6J{bQ?FBGTTm9v4d%mf;z9$_=fWv%^Enh<|)=Z z1Sngp4nyYvpTbEE`VVh|EF>+2K6$7^y>uk5*jWcsBu2;(5x+som~&0TJW4bpyoLra zhIkP4T*U1)E;b22iL8R(v59V#rNr*FZJwYJk0o4$>zCGZBi?%0K|+^N;$%k%_~Cv} z(@JLQJwEfdMFgX_#C&Sl9OdjF9Ptz4oe+2^cJrAP%*84gNZ0)C*)RDK4s=5Qvkr)A z7-VF08$zfJK!-U?gBmGZ5neGH;vCB;P3QLB{HtR*=lozqi0A>K7YbqDg&aL%2@(+t z>EG!fMB{?KiV#13w4(e!3*rC$&+I>fw@@Wq1$i0g^NJ_M5C>V7DFiM-C>caUU(z#2 zS!iYvBoCfCZ7HH1xZ=wH0+zxwjY;ae5XLi2ZyI75B9gK|oGU}AsTJE^E4nVY{F<}3 z)9ZFO2I%DKav$0lU2VLzZ$G(jw_kg|Pr3hK+1Um%e`8Q(G&T(Gr-$wH9L*KvLTie6 zDAj05uWpHre7ceFhcA&xS7u8TO|Pw(HMTYO_7Z9LSoO2=4J%b&&Sa9t0)i1@0AVp9 zLjY)3w0Jle>=l7#`&jRt!#-av(M5AszE8o-avoYCkgd-zb)A2jOy4e5nJnY~M6lg| zyj%zR1dybTHeuHOe3wti6BbFuZmrP}As#z4Dg2{Q1DIE{@Kf?S0aWTE zlo1K~Y%KjD5V=N$5nLXM;3G_`2?F8oJ;7!l=&V(sZkUEkW|~a?hP?fmB4CwR#F{1g znFi9~`FO=VXqm(mdzz<98Ot=;AOzLNjonm=Z(6|mOf9Ru0Gdhc9PO|#>{~@(Nv?&G z8FiLALW2W!nPXi9jOf&L`l0aa*G6wph$LRy$Z(=^YGG51=6Jt9Qw7ZmU2+!F`TPob zW~YSCA$A|8nk5HmL9dR0t=G(Kkds*56YSmZJbf^e1KbN^zDJ0Pw0ZO;d4lC6%!Z)E z;HWyb@ZC8Zyz_Zc!=SmOD1o^ru-VB{!75L(ROA#=&5H!zsQwiaOZGnL(H8-uF&)F= zxAs=6Gw`)s!l!o#nM=DEyc$+7i9%aq=6kEhj_-5 zM0XIBBciuQ@Ckh63Zdo{sLcJB(Pa%#l|HmFGFl=GH`7|gyx6MC*Af$_p^ycW|8 z@u;GQ%}YziX=dm9yRR*9+VEuA$QK;8a}lbTxbp}@ZWwpNVm&d=nB*L<5L^TbPot*p z7B(>22mlu#0=9zDvpUgD4gvf=XV##>3gmOOOw3=btDV2tBZRWboOH7iRm=Y z4f+{9^W0w+pl6=FWU26BVU}U zHp^?gf==%O0?&9bJ2BoEpN9Xd-?J62RH=<0I`bsgvWJY_yVA$P_N)Q^qmJoZ{ z5KzMXxixmX>`#2!BC`(JPP9>Vl5HjUJG1fQ?H3fnu<+}|+%#Lo;3~aUGUWgYN?|#y zwx6A>Oi^ue3)*sjzINAM<+$iY1kO9cL{sJ!FSW=H^ zC~7PbvIVvv$M~JbM|oV2tcwkJGa^%sFr%(GGm=S;X9VRN=V_nn*c++*mZ$g~%gw_O z=V8+uEO2kQT~>-`8TK37;mgCO$H@R%I(&obWA?Fok_1kYkyrzJ$|iB*?of;L(WXGY z4e?W{mmilt--I}b#RxqKU2O3?F5;E6Xn*ZWOVT6QsRo^N|L=u2=G&ku-EmP|@n%w- z5;)|Pj8zbP+SjQg&nN=75?k!`OJs6Ik?Hb$P9qtPhD>Pp(-Y5(%~%!kqa5YHp&HIL z7bxOH6vD{&71khNd7&rdX9}<_35om@pOn2`;Ec$-tU10j8jleSyaACJ<|crzv;%tp zP83{{XjD2`e6{(BD?-{aBG;9e_&TM8kxQYvZ*q_3?iP9O)wIAiSaMuRZEiWXNf(d( zt#{Azgb#1tPN$91HFCzuq`O(Z|CRAg6vDmzZ6Elnu@8=aOgAoez(>?6RB;MV5Ljt) zi$>0JABOC3q86qG3a4cAg`rM_r*&W$c)UB^<`Ka3ha|h-mxAP}7Kx2+jyNwqB}oUFg9>S(tvOM?1ci zvAZqG{+fCIag%{kQ|brPK3;)rp7N3n__@yPVM5q>5SL39g%^|2_Gi87bWpETlB6*- zq+^n?%vtm<4~VTX<92s$hU@Bm_03K#RV6zIoNa2!EltL_C-y==X0F0r zjL-0O_{R)qyC}jbFSzaOLi;7{ta^JMnepjEe-n?JBGE5CFA;|_KnJ7+caBI5&^aMI%knpj&pA| z0wz)+GOg_=L97h{;-zpY{ST{!Wd7u;aaM4C>IA=r!aDFUJdjWp#B^jP9ntsJO|7%RORM@#0#C$j z0m+Kk0kE6g2z%#sHRKsQcjK##R7QIvBk%Y3N1PtaCiFa!sB!bG^%*Johs-5vV+bpE zNc8>(6kH;d0Q4c6p$cp)QqX>#+S?7giKlkyQ1ur?;PLobri-}2r&i6qDyAsZb`Px; zLtXozo1&V)rv&^2NgOj-TLB?jrXa2B%o6$m$mPWhVqT1Cx>%|aHHYz<@z?S_de+X0 zU)Vz-zpxEcTEP_^Gv|Xo)1-UNA%{wlmuVC6wOYm+5o$)wT0%#`N$3XY-r$Tu=Ajh~ zuP$#Du2)0xsq$AgQ3@i<~Ewu!QW>C@R(CR^m&%K_2MRk+4 zUn7eLoE51?wW?AU;oJtv7a#J&3e&yL$r`9Ua-=uB#`C_3<+vU8%fnWD3>KvKffBQ8 zCNIEprE2eUVeg?-g!u%K?TX65;c_TOn|Ej4bYqT|F$ekOfJBdkJh^=ok*kGm1!Ht@ zIu2%I$ggcC$m?njW?C8bLR~_@aBzbW`S>$(^(>cvpVYE zp3-)bZ3I-24A5l>Zyj(1cJ(;|yE^%?)>m3d8lKGP)1r6-qPICIXb*xyFqxADAVN@j zK?Vu!mF9?9_J~;J8xbI=*bQ-7R(hu(b#1ygjN7I-6Uy*ofZMvD-4pcfgi1vQzHO9J z-A4ZSb%Fg)0A=aIQjK(JT*K?r?GJ7*{QCj05P4hryNp4i!O2+W&|kHxJtU~)M*00V zo#DIr=jde*Km{e9rf%yG+;3k0hJd_+EVfeo?v+J<$1w5#J$|jN?7ur@4)*^M!htcG z5>jdEaF-bgh9od^CIIB*EPT#u#j&dq|XdgaaiVhl; ze?VxDJg3?1vl#KTxAC%nM9CShxI-s^H)5*NfGC@%F$421Y%J@7M)YFe7+bk+T&uE9 z{b}I<_SgM_I}~8=U59!`7I3ZdV9FYa;YsXTFoqWHoSh^LPsENJp(k?G4uWQOAN?zh zPQjf!9XuDwg+o4@m^JLq-$=WcYZ;Vz+hqsTSW+mN-tAg1Q%@V{O)Lyu=+^(~?I=Qd z`gBs`H*Nas$)IHak&5NCZgPi@4*9a@P%D{o6h~$wI`D`3>mG-jT|k<$UFL83Dibl8 zoS`qC`nE^AQhf%AhC`v$Dz$8 za*5^bf4VheSH@Z8u!W;aR7=ci&Rw=p{yVDrtez1S`Fk$^fcoRd@Bijl?EclIXaqpG zV2Pl7iZl_LcZzuoPI7Y);3tPrT(@YEy#UakW*^*(A<@kZB}Ho7o?=592gw|3ZlM8bIecU z8yjb&S}8nDYYfiqTep)HhB1Ih1dPaqO-UNNY|w8p3fng zxtkcBTvCH!C?7VElUD-tMXYBcL4(YsWYoiOiI2}D5=Q`jBygCs6E#LG%h({OLhX`$ zcDRz8HaD2*YqCN{VQEcsVSsY`IxnYGAQ2l+l7uZZ6P(fDF=!ERGPGCe*vJ zs2fI#Fqh{7po56F>`LQi!zvM*cJzW!2BigIJOSZv?^EM2c)G;8Wb_#8Y%VmtkBFf@ zR;0j1rYT;8!aUmIh}ez{S);^GJF0=cMTkxrzjw|Zw{(S6_R3C&3^z>Gqf3%9<7THo zXoqR|8KoW};m1}8i?SzW1p5Xq7pf=3bnW_So`Qm-b>v!RD zk^O=26iNp}_oYRyJ47;K1hRlM+-%>&5W_hGcL~`cW?3_vUjopScSia8vjJ%|by)VV zD;ei#&|y66RJ%V$3^XB-H)cvQi!98-IL8;1Q_U!skD~DLcgf;_JTc%nnFWII?XvYu zvRZ@WVDlT4V9L%5iDQpS4pf!qqyCQB&vCI7q{%v zhhfnYxihkr{KkPbV_TL3fi*WHa57krvP`yEw=D?PU9}jOtnCJ8b+O^LBC4-9%GWH| zC4nfuiMx}9H3mkM?OHvBbRuA3q06I4ibxJ!vDQ6l`7?J67Md)<7O5iJr)Q>!L3m+! z(ILL#$}C{HAX=!%n4@5<(5k|qMVR#5xPYVp`*aTSgasaEsE3&6B@zjKE`>N{_nQWD zjw;=Q>B6Bp|74PXR(<3m#`J`Ak-y#=$!J?^t~?m2Nw{4!`QC0nbAgi6pL;h7{8F!+ z-~L8^Yb)}}<%XssS&bQ`m~j%Sj9AfVn<{~LcKy~XRFIcWWg$}Qj5zb?x+Sh^NCX{~6Bj*<+1dUi&KB+JXi_&rxBkg53$%Xpvm}7?hMuCpH|q0G zc7zzh8}cDNHnb-3J}y1I6cjqduc{M>AOjDLiA@o`H}^JRe+C|MBOW0}6nC~CcGJMFsFq}{>>!&_VqtQ4$~ax2|>kUDky*pY9l#yPt|N;K~L%LzkqJLbg8z!U97IROl$yQylo#n z;^h-6HcUVSBV)5p=yzG&UfD}CAEjVz6GMZx6Mo=qe*Wkm%>Cj|;rih5+Ub3|5!ez6 zXXRBN$L`*Et_>J|nJwpWPZ~qQcuY8dw`WI~kl?JmEPhTEq~YSb$wi7{+j`f)w)Wzy zy%nZ`-C}F=63Qo~(My6~?dKV*_mAGwh)-|YoIQkzn=6c{BZ=UV(Dx02>? zf_9}L#hGbIy`z48tgqi|XEr5;ytq!h)2JlD=Wq=SkHxhmkP(+~QS%QAwXr1>{!I_d zlEx@f`g5tE-#K(EDW_78(h&NRiR8)MEkF!QQ8cuFbqu$rCXi5W#mQcfmYQ0m*Ho*R zw1_mj*QU2xG?wG`^#yUzO)rXY{4i$i25l!>O#DE4;*e8xDt*aM{G6RW1{uNTxApHdXLJdaM*&B^ zScK#sJe!v4Nn7poUFqYNOT;TA_A4Z`J+EFSX@u=?(%U)H4BQFt$bIFw$`XBb(%UiU z>XdyCJ*Ftehl&b&9Et<>_M8ymc`GYYG*+YT#iYX_Gp*f6&e)c zlBU`!_C&&NeeCP>9a)w&T88bxKnDSbgqn{X;?q#oGfv{?|_S z*G|8#)~1lpQ0&ZTGnHl6E84lQ(|_D!8PDO3%;LenLY-z~4Wng<;^86_)@gkeig_@L zcoocX`-*`0qc3}#BW@!+;5AC`+XCImklY*~d!-Ir$M>kBc2^0&nx*=$SuxGn!|giJ z!XlMf^P!Q{;6>wy6eExnJl1HQ=-WQjr`yJCMhRT-X-sDI=q6(=x3K7rEP^a9Mz@&% zAPl(CJ{@LO2xoAc}1|0@+ORE6+BUUvQRc85`;{tf#xJOCPK ze-W})^aOQC7||S+h>ysZfSnKbGHPIFv8t^dDB!Y4YM!lhy+O)Nkf|1DojjL>y2Z$M zMcP(#wQ`+FI+}>s)V{%VAKP-C(pLP!<9gEMF(wA}cvz<1dg~VF>)NBg+}i7?{>Pap z@dgW~jLE2?9tHdnpN?c?glVZk4mT#;_I4EsGl<|yM^8~sYeA1Rz$kOwOM|=jAe?Zm z1b1G+jVp;L!69_D$3Q$9wC%y5EOI7^wXxjXOKa2YIR$r~gWArr{iVT9QtI*g@|<`E zzPC}L;*#XqQ3(;#u9d|EDF91YLiRRall`X%CSGl z@R!J0$`ps?nc6QtRQpjX`aT>G2BZuwE4G@n8VcaqEJ6NEL^g7OK+PL;>{4qjsurAv zY#5-00WNF@H6JFR(2OXKFLLIZ5`DMK&$&(u#7e0q^j6f2JQOZh&+FmPEPcj`v8hEa zbbYnej$5b~$0DG>OD+CS09T1$H#(2v{X_ zDD36F(xx(eI5Rm?*y{sNDjdoKsL6WUs{}9@6J*kK@GDW&nP$JOx!F;GOG{H%VQsAy z8`WQou`Ej~>?nioWmf2D_%S;SNus^tBB0>sQgbm7XWKsk`}_O1D;lJe7MW);>VQaY z6WYGblazR*BMar4vnY`U6SBQt?wfXm0Up#umHN&r*{)QXA*5N+-$c{b z5W$TGb=1g^n~+9WXoMv>;XAP@%!|y|Cg`~Of*yWQ?Lu&{sQFmI;OidEJxl%{Cnyj( z(K`uL5Q*XCLsc$eUq#Q?OzO^(Y=BZ)rfN=@U9DZ|YeZB3PPV+F1#B==Y-K~_V}?bA zHJ9H5(M=tJHv9?-uMkB{h$nQzA7`QrytiW-fK`+%HVpJ=kvQMkTa(|pLP|&Ok`ljO zA3~hyP&4(EGDsIrh`=-l{nB0Y%kwE4nv1hhbWah@D6)Q6+$tH;!=~O>GzH1!vaFjN zZa9Lp#a_5KD3HTl4Oi)5gB2@?M391)d*1V72xwfS>#*vKypf0$NX6k2*<_1SWOP}+ zqVn)$i%M$vh~I1>o3Rl0i{GGxvCl^^ECnF83Y{fUk`M`aW|a*ca1Sp4h{}kG@!@!UH2KTm+-|(MsDz_K@}9xnfrBl~ zz8p?TA68NM+m>Yz#?az4dhq~@1*L_i#Z*0AW$8zta8vv9R$P(1849w4MFks+^INn9 zvNrhPPM(`K8~(-t`@E67Q$}lC6Qvg8*hRImihpF~hg*1L21xZ0j=UgDZ9nZm2ZN3> z=cbz9PL2~j4;;?x? zE3!3b(5%@DwGH+<{ld~JF&&p1%fT^0#mqUxqLttS33ak>w5L%u5ia9?MmdOnzpU5K z>QMAAEE>ANIE5SM`aYJ+mDxIb0M6f?@V>-PTx~r?tE!6cH4U(+(G6|_XCmO>L4{tG zmh1WW;P^C-K2pi704?p^S5)Lqg8mP}&(X;0J@X`a&k!+j$0!UrC8 zx8y^X*G>hL4TC-`)IN^hd|-mDe}PxGM12`@*;8AcnUs_Wkp=|u8o)&MZInmjNH_{Q zA{fBEwLuP)T%s1zVz=hv`)*=A*JAPZec2zuZ}vPJC`ye^$koc`gvImrrteMNCAE-C zAmPq7#(OLX5MA=I$aRo5tZ>I~_&aTf71Lr{5DdrpXZQt&%VtWb_|4f$N{uF9>$7}7 zFegQb2g{m3Y~!W8Khj;VRE;hDA%df>3)rwId)ETsPiO3~0|p}#$mkyKv#HGkZu~L(!WOsf!s@mpkR!`PuFlkH= zD`6@(VqP5gXlKTA&R3cKDGJn14=~<9K!^I>WP*Q+76%Ap@<;5RvVE5r02#yxjV4<%%A+#xxyLKU5Q|s#D@Q69h zc2VGFbywosyByzVtNKdPg(Hu{td6ir>9Dhuu6FBL+joVLgTvp?36TzUV?*fgG@xGr zC{qb1Qn;|eZBu{TX&`M+v?@iqI@|HU8OyRNL7AVlrwNmbJ$O084mW`aA{%U86+~QpX;F=YeKOK?y0x7)AFQ(oAXVn ztPDH>zz%c+*9N{mtQ8=zUQq-KHb?z(nlgz z{5UWnR=&-3zFnbSHcREpBx+h9a>7HZ53m0`8z=kA8{FuhT>FVQ_Hmdj8=KoXyJ9%| zy^fefh+iOOr%H}u>Vw4GQ4djQa>U)Nn?HKlS#u0=HXbvmP6XS^_p@SFfXdG4CctN4t>Z>Og50%(D-#B{12b&I}@@~Q(>L-2*S8!J7}Huh90|)co8Rd%!61$i9-C*s%3+x-xha* z`l*KZqy_SahAOvKSX%TE*2%QXvaa~`MBm!BZ4u35(#eIhV?Q3z@{T1(y;bdlopuk46i>X}-{ls2_^ZkdbgW^S z21w!s`|Ru)WptrPMfcN?%Rb+>>AfaB$kGzCST{cgyr&?1mnHb37&G5$QRIpc_J2e& zJ|M|IqttBwsrB1ut>NQ4#Il)}JLMTTB8)HrC+zbFyN!XkC!LU-lg)y&Z-uCz_cA_8 zT)ZgVWpC?w{m=t7{K6K3-R~?S5GlO;AWJGUreqlHCY6mM*W#XR$L)dTB0{n4@5-{$ zL80tb^cqEU{?=@=#U>Wtj-%bhNjVXuqx?bm3jC#>lpp%?w6D8DG+OKu+}F+gDNp)l zkJ-%-$vgz$a4W4}NF1uxx>2`IzBR{~e8LE(9%4q_#~eR5r>d@|@6d|+MI+7r3LmYZ ziu>|2YWCau#lwIF(VFp&6NYhDd)PWfhYR1HcZX51Jp!(|t)nV=_ix)lz;f!)b+9~rd;bV|AVo&42m>b(u5lt zXrR%?-3oVicXxMpcc+oU-QC@xad&rjYuw#onY;JyH+R0Bn2pMaSN>H+*2z5Qk+f2l zBUhZucNT?TGG`aWB;jOFe7LC-x1Q)T|P?@@Fe+$^1VGP z{P6H7+VybtI*9?edw#nlGOzg{!d^C7!~GCF&x?c`2TW9Gl>6 zWT?zhGN)962pCx#ojlZrvPxoWtN@PK4dGp_=|HF5-`dv)l+>=~Us#(sDs@^nvYwR2 zX3m^4XIKfCZoLc+WK8OR=lY|22Z69PCah^RR$1!g*UG1!*%$pZjOVTDmv3K+UPSh~qv_#x$|4nxKZwD0rg5v+l>Q&WLMN&onfCHo=_^Tm1BPXWE{A3W82fcSFl%lpyrId((A+DMnWTvdV14Jx$_;^Zy8kWeKC&kSx zYK$u#QW*njhiOik6_O;7iUJjYW!9RSX!8-H+pPt~PN&d<-Dn%Iq@@~ZrR7k@(=5Fo zP_$YxTwkL(np;8Wl*XwG4d$%RGjXh~=jefooj$%!QzgAR34N#hP!#AVjrC{D%nP%O zt0^4y1GRCv>#LZ0%NQ2pU&qxqh_io>QIryQ@Zt8s-D^7x(^4K$A{A03nWOAzL@}@z z+p|pAkf;eA^&uXM8et}cEvDqmEyRiPCmt$bNas-|jG9~GhwAi6OcKR?;4f2V6_RW! z$-)iFXGu5f*mlGKyV(XYkNt6W9+Lf054XAI0jjWDO?}~oq)cmb=&98M`)y?+&CQ7!{$wba{z?mEgo(>4QngOXoj=UJ$;0S$VCs>zF9{8-&A{C;umhQT z2{Rpy^*7rQGwomtRcuc{fhfiwv&-|#a?(S!-uOP?X`}~#6gDlqFt)iKyNg<*5NJmoDW8l~5 ziLw@DABq!W#-?d)pw5?l3hqL@Bov2EDVr?{c=MIieePDkl3nJ@`o&OK^0G=be&qi7 zX_DBKjUz!t)n?vL)B-mu#&wh&ERA^LtflLChz^^-lvCi>l; zZzAM-!q_NKdpd#kp-cM!a+7`V-f1Su%KaGl78?$i|fj0R`67n~3_b8r=06DdbKPK0M`kh9GIZ^|3V~oP4 z@yAZo)53%v^=-ch|Dvtk>$I03vn4YX^B3x*m~^&gqBXZBe|)kZrY&4`T}cQ?51{Pm zlL>YNwVGs`V;0O23O2;H79L-JjR_t1p&g$yuuc|i!CC!@WL^~~e4k18M84T3D-_Ab z914@<9-l+wHcGb_)><-nz#Q~2C{Fodr7M@GAtEW3b8&Qrg@J*oUlNI`Bh`Jm^Uly7 z4lhQ{U*{5UT$!U@UTh(}91zIwq~U6OcH4H1*w;hd12jSXlR~_M6jzJD43#bK42XDI zZa1g8^_j3+YSLYvc^gk*!ixF}yPwnRn#W1>>%{jrE%y_)Zmb+8>Bv28f~C)-XQVoG zC51)*e1D+D3AQg4maTC@U`sAV_)p$2aQs3?y2DOcIKoJM50Z-L^E1q%{<&yR8PhD3{V-AQ@L^itYxf zp2R{oy`QvUaKZ{RcHtZW-k*L};le$5TF%a6`%90A;u@l8`(T>gWaBIRWkYK?tiG<% zf@-di1LPG=X5+%-<^)l$1W-}Zgnu2cVtDqMbfwWr&0UEq&54O8kvc4!+eg~o*wcum zV)o42t#5rsKb3P#?a($e$^o3&`UeCQMs+N7^-(R*z%>U@5cxJ?;*>4&8+U(svfKUKnKMNP7Nj12^cZ=l4u%4q6^-v2Gx{o^ z`&1TCCE$XHkvi&dteSD;P^oVWi>Ko4HBHne@!4H``lR9V-a;Wz-DAE!MRdfU7_%;% z=nJ;Bt%;~bCd!dOgfmLam>_9FmOLJlDJ4^*1Ia41+!yGR?j;kmB!5FE62v3ZMhY&^ zDq-mXSm%{^;th2?d4vD=Qbbp7HZAofScmyKFaQ5LApBb?QZRP3b#^fPm%v2z)e%b- z<)f;7)&gZkI+Lsvi<5S!77#z|U`1X!tG5)o22KpIRvVW@SXtQ69{NW?m6DXE`i5p& zfLsng;a85F-b=t7xkN7G8_1jZc(>if#=VGx)ezFu*~wYU;dSOx$I|D=7Vjsx9*nOc zx>l9CM_=ROFJZ!8#+6Eo=OVi;5|wU_GPd(+D)Pxa=r2+mGD@(Dv>K~*nQFVBQ7I8L zz)iTwIo3bQk^0f{6{(8O6D(GlJI7YVp+(k8zse*CF@Sq32Jb3)8kEex#ug-cXDK!2 zsH%=s3^vJ*>rIR!1K-Lu3dNJ)F3F_)e;-$P9FKwuh7hGxEu6Lv;NM1r_Z8gV0?n7v z&|C9rg@L)12IUrwHW(Vj_AA6jXU0eBEO!#**%@Lo1&Z#y3>h1V4kQseXNp&V2gd&V zHl;9X;7q`G0x>o+X&F$MjWJ{k9(Es^OsRwLgzzINsy1uu;qy5*WPkYg*}oey@1eDC z3h1I4`}r_K9Gd#8v!!>thT(eWQQBSV%wIL1#3JIcAN{F*>=RTAWr04}NYImC)U}#{968yF_8irc zSmO+1$e;bkN;gtr-+9ozm-EU7=jpQeNdg_&ws8LnrMXUCi-L~`w);)pB*@HOg&G3| zInC&6*6vE~DrRme1ZyOOsmxjQ6Hd~EdulO)rRE4x_VSd=6$@vhLGuS!2{Y=btf?)T ztZtfZe>O%?df8<`>Z9uFEw{0=G8~w3(%r8$TC9SRQYbX|l@p8`Ugyf^SR1a8k+QVv zG&tAUMN*kzd9LX_#9}J#pk2rLpFaIcj3zuBch{uc1o(pKDZUvsrd2H`uaN7ExEB?(Vz@9Zw+MX%%#ubr=(DSbb6LdRz&q#kE(kQz$Tj| z-nv79a_(!t2KwvM4ZhGqQ#sN6ZHmr>fs$j z>J0U7&pGX$88Irhn`CB1%G-(KHYcI03l^+K6VzuYj7VeGTyg3T?{?hY$E)uY1j(|^ zdnoeM^`rAh1lzl0yS4nYn+ub4TDcN2~J{2>pH}V~X;jmo^#Qv#X zNKVPF9DxwxHM)Q&WAqKU&!zq?zsaFJdp%dCijv)(lCq0$nJ(&>YAyjD=1~v}B`4t` zeQIS#ibd-6(jPnI)U5Wt1Nm7jwtyo;?^0Lo*_!%ri`sQRn~WiV|k~* zn&70~HCkuerhah_v7`4N8to!^5kBxkyaIoDvceu88t7ueA8~DV)S^=Qs3ZPf#0J9q z7Pv0Q4w~A9`D_&*etWya1-Oz9Umy^&g@V8YT#p5w?hD>v7HsW2iGA`3g+0MT5Z-tL zh(0(&*xF;GW0U^MURnKAd=&b-zLAlC(7HG8n1YG`v`0+dMw*9_*Y@|wA`_RRMc7A6 z2%93nFPTD;Ma}UHnujdhL4H7*jz=HJ4peoC8#lGb;EBqJjI{_sh0Zp3c=7hS#z-~H z+BG8r@y!j&P?7*A>TyLpk^q0tzyp{N{7QhPBqz>m4<>#68-3*t@d$9*`ct3LbSMV1BZG0C9^b^T%Si&Ih5`;oK7@aSVr+<%?tLRm>*{< zb360v{TW4YAlmE5H|qgR1nl8^PHULG?z>#!FdNxQQVL%q*%@fU3hwz{Xn{uKb)S0E zO=x%_HqSp-e87{|Kxp}Yu_4Q!p{nrSX;`eQU->JxZzI#P4g8d`57^WDE+A3(NUi0J zQ`j8{yqx|H{{uVfuqSxUD4=1bS>Ten{bbb*2PC%hT2UsmwM6Q(d&z6K1;(7Q?~)!j zLSnsk#~o*A=^A#&8oOFvz}x@p5I3l*F{@qTQ;u3;)X}L*m+07bk5h)y06cCwbda|P zUesgDY^Sno&-!rhaCZ;qa8Gr2Z?Z%BT9g|g{|0gC-{8Jro~%~nTQSN+OsRQ}3DY&; zNfWcQja0}s>-(eUX~@m9L${T(#C7rY9nRS_v(i)1Yaa3O4X@`?=!4x^Rq4sQwsiQe z>KAT&nO1&dnc{7ie{o4DgkHGHZN8*@LM6zDa{uWk@4uI1BS>-d$uC}Z)fWoR{NF;} z|A4RmRgx8*Y#qKvNc`j7KX;1Cnu=>G2p>_@R)%0;8juLP5N6#h1Z5zOp>qk6`1Te# z;AmoLi?RELM1+#K>P3aTg^Zaanz}F3MjEqYQpHp6(wQ=wv$h?=Z1RGfnXOM5(!g$}rw7gqmdo7(j-JwFN5W_*ruYary|8gi%$6 zFT?Ue1NC^Rsu5;w_U)oS`KV7xRXFjAYq1pzX2runlYi0GCJL5V>S6S;ddlQW?cxc{ zDAko8lT@VyKY=bk*Oi?YT8Fly2VF31vQ(Ya8=Ff<)Bfy0@!!!op(t0OID{Gzvh&7M zGDsQGpk(~IhTF6jrF}u)osonXa1nOevp@%h2rMM_%dHo4KKxZ5ej6$zlRGH1WSE*H znEz*q4jTx+6jX>daXoUZrPB|)#MMhTJD#i@KZhLcrZQRW3B(^X>s?F-2i7N&=^(Q+ zU&s;Tv(j%yJ<{*!*U*noOdf_XStf7p?~z7S61l0!n^FXf!CW90E11S`9}Y)FtWGLv-YQpZ#^Z(_9?Er+~eu3$#kl4Bi=C*~R2+ zX0vvc3n?-*=WqgVk@7atI~K_{>U~guf(K_xJVnKE>gbl{I6(beElXYR;BIseRj{8s z{;PHyu>nbb`eHlGvCkCX#y4KLQhZ-Vd+rXj; zgk4>{o0h{5xN!+$8aEqaQ0_OT;rOK+yg`q%Rn|Zv$j}$f6WR**f&E@-#c!8h z4M2=k`ZeaX8q&JPyrD4WrCM3$9!Y!Jsz2igli5sBfe8+MGJzgeaX#u)9VfczGsDH0 zU|6p*={To(>@>Lr)VjXAigFaKD90RvWERTlD*u+f;nFGvFMe8J8Bz ziUx*;*yTvdJ0F=rZwKSM$bQ}2PiBa{4nfk8vjNX7&YmNkHekJa zUh9{n<73hETew{cVjMm^2zwmCzoa|gX~$e4*%GUyzZ5`2_C24NBf7DKgzi6kSArVr zfBt^y#iFx!RfLbA-WUjm>tWAlo-LrmJX^}`f~-#E)h<_-{FAEFLZ8w~s53^yKn ztNogrRlKELdU&m$xSLXM+C5^5)(Uif%HWR5j0GKeq8*lcu*uSUH8s*UUXp*%-Ve>^ za!#bh*^akBR)JFz?{G!+Lu|ZL#qcGo-&Ym3nAkQ35{FF%RMR$>l+^RBs*;5 z6FsB96O?}zKg+s)Kp`s*HS@S~FdvP)?TWx%K;9Iul~;}T?rdH`GqdR2uE=J$Y9vW< zvF5Ar#KqeNlox=)jN&^-GyldtzsP?RE=M_Z?bnXSPZ|venMd{kOAxaA42~%?wfX`6 z?+fH8+^PBZFXF%bm*v72#pl1_1pQ+%RJ1j>`j2Aq_aCI~2Uqs#%;JJ|+hi5v7{^4Y}8ncY5gOfJq9Q1}28paMWly?bSBWKn4 zF$>Kk1ZCLwXP-_cr9((s&|j|oYdSV%Sh+WM2Xc4a~b9s&T51 zQutURk*ki-e`g7RsX|>>ZoE{9tG(gno(>nPnT6$$S6jFB9zW_V*nel-L1cw0Z5TW_ z9X*k8lpH!!_sK%=R9Ck?Y4&cUpCXF6gkt;}G2!NxFFY1IF^w>2 z*+|*sX{$MlbrzBKy9VxA6vk~;iF+yz%Z0aNS0n1ix=AsaU$p_sW5Kzw=>l>q*@t9G zG4%R-ffNn4!Vy8Jd;~peiZ@>Z_x1>@RMv->Z%@P24(mHglR;#3NXO9}d(rhz3p(k$ zV^SJf{kR_~{BXC;eQMiFA0hN%gg*~493y^We}@*lyq>1KmI#!dhD2S-=G#piyuZ)Y z4{gH^!H@Ecpf|Hhb~ART{Z%Iww>BN)!*h@I?|FoJWbUE*l}8z0#g^v(A&>qenUvh^ z{<#58RJ4>u;z#DL_dau30Yw!GCkuo0R?|Sf6T}iAP!=mgZ?c|6H%u}v4PVo)--x@a zE&v!XVe-7@N4Nqd+=zRv>Ri8a$#k+K{`vjzmG+zLRR%%B`Lhb?)#D9`^bNIPxiNU= zTi9M|w$qeL(Q|d<<4Rl)y2JvG;nFZCaBWm|-KI^c!@|S9bePVKMN=eYQKs3^D_Q@B zH;%ywVn3Tk(5UjGtcua7>LQ4svF`dtu<)(1aS*{rk$egL@3BaWMs$uzhF(ZHCF)RtIluI-6xY`3Ld}G4Jsn+ouB=f2fhdq7di$a|?r6sD2j-@r_QX0i zIk)Uwqq^-}daN2FJ<9Gd6*x!dmA?03Al0N8KGfJ)AX`GThdB z@!uZj>meGyi)=3zcq04so0l2~!o_m%iTGKm`DJ`_LpZ-pzRX8uuY1Bxrc|JMHs|ahs1z_{6#jHXTWre0B<61(!+VnD9xvh2;3|`DQe$8FZ?uqmcpO}Np?12?{^AM#; zT#OJqVEkt8V04`_j%1@Q;%nn{b3ORm_zph7i z$d2lFoNu<_*N67t@bqkbfQ5W2{D_)2Qw3yl^DFM3f^f$b4!aPU8)1l;*1XhoSF+Y~ zA?7lR0B|qraha6pD28CUaj~i_%PcJ{F>#TW*V_sP&V4F|An+FT^ZCe{`-K;R-_^oL zL7U}><(x8ra7)aM%uP(N@d&5>qGg_ku$au7zzJ|W{G--*kP*!-1yxq;#8X$=_D+bV zv3t#;iG$UoMtzRk#ZBUxAk9Ge(>+vY#_1)=JDeV3>sq>A2&S*a(6KI`ae@!4`2P3s zu#KgFU^t(?i-%tegXL{WLzuubr%_2M?3$OEuxBShB=u}e74czrvrH2#TqF77>wKhL&$DptaiQ>VKJmXv(&%eG4 z9d&%Eb zKhZ}R&L-b!JqvJJgiNwW8^JPd#LeU!E;OzJ2M>1A?TkotMeTco_vmZ{TD|z|fteJ1 zF!r;yQ@Ndj?>+$Op<*`)r?X4ki&bYky=c5kI#Kr!vr?yVF_GOep?C)MztC)s8ZR~= z#@yURt&9pdNLm>?vYS(}b5OsiP-6je=p9xx;^~>@nLAdk7y(VR*m*ccZhE)}ZFMJh zifzD>ArlfVSkHMysijc@^0E4Rnz$u5p_gN zRQWX1-X1ZAB#A#`ME2)WKGB7WrjtPUD~lt**lP)Ungl>$q(#|6CFOdfpr3#qQy;Q@8_`26q%rh{(VJwfm%e4cTSI4r}!dk`WI31(a$uCT|^ zmn+2ID07aA(!cTW7>jvj!eWMZ0lqK^q?KGf%#Iy>M6~u+v{fZ9f##PJ=-sH1VvM2PsJeC*FZR7bufON@IritkCqPr(1 zEDcPoRR9(XSua(}lI$Lacws08cy5b5+xbwv$tW*ty-G}|PrIJXJ5O5+xMcpqN2geK z>abb{$i>C4k`rw VJ&-K!n=tKbSE=z2b3JAK0sbX}_LFj{e0vVLmV2Iu>};`b+L zp8fn(T@%*s? z$62-qq6IDDs4Ef}vEWv8Ew{;T>Ja$PQw`Fofmp0JjLs#u1V&cM_~SyhR1p}^fA`xal@qQ2Psd)tfD>s5jCrG1Yd=l$l0 zDvP}c$~O0E1Y&~t@eqo)S|us3R;-mrH{i``KVdzje(t1KLc3F1+IhBUksXi7UQpKL zIW;5V*xUzTs=nZGQVm;C`{Q2TJ+1)dVl|5;-I>FG184_(S(8kSn*tfZ0__ldo9>|7Fo?_%!;p-W-?eeBt(U zriXShq~Vuz3m#={*j9-Fj(4S9WPwPBK>(id!4rwQ(un=ai>GiRp5=JxTC*N>^BKVw z^wAq+<3g&gonzV1cvljW(*2gHQ9kJlp`o&3RCQcbbsdj$*@4dqB-@utJbY~c70=6n zvL%Jy=w27&taS1=y#j51n@v$tE0Y{$?@a&plE(Ol<48s9G&~kY07esKs+2L&mjzKB za^YVaN)N>uu{S$_^>7Au4BFy{PFgK(GWyKiqS&z%eQ!NUn3Ab_Gn@Li;ZB}-6J60qm>bN#OMx&r7qOr_d?tfGg*%V z()PVy!Cc^U5>td2t9=|1U2?x8Px6cW=I!!#Q~W1;)^brP%PJq*;uCA(}jgt3?AlvO^>hfcn~g#>k!NbRyC^mW$9AP(Y)QI4%rbi)4f$kr^UoB4UbIK4z`9zJY1K%`6IBhcizdE6nXF5r0+j|Uty zvW(kcnXuy4>$&XN|1@FEs_C7Ml-*TiqWAOAlG88Y6JzJyS`Z}5NrtwMa3D$unc3jL zTy|_UOz?o&KM`R2S#4OKQ*2zuW1;zuuuefBA$_!Tl`6WO?eURmPUMoJ(1=+0pQ8v7 z+O9S&Jf0cKUz%J`CgdBM?>NMr%}+T#eK%Cqo2$1?D=rW$+3rE4nrpCs-0Hz)F=fW< zV+@C~AWc!Q{cZXhard;Na?N>S=JI3xg4Aw!<_ya1siv)nYnw-9hXd6PoNI{0Zo+8j z7EOxB>jE@v|2>-IYCl{J!;Tl)w)+;6X^FTwBYDcRzc8EIcXQ%YadM1tSRn}0rzBIa z@i~=0x_p}R+Qm3oQ=qo;>w9_6o4m=VUyI(NcZp-zCnc~CjlRg7G~>DM@|*0jWA8q7 zxJB1>fp&@uq#F6l=II2C9j=pae%tg*|J;tz-ApoVpPnxgWR~44+;?*W-Esr)njX`NiKQ&GP8|(+@PhsY!9DkwB$*WdKkrDr0Rszgiu

$`!e~Wh;AIRBv($%=j@&rrW9x>h;O>w=9Fbt8pGWT(T}3ZoR4#51VpkpgqAG zHT0{65UMAkUm4qF=47nZW7&s?A z-L&Ra+n=2peX`boY!#d}k=@rZq;rte^7oxC)#~69a<2S^PPWrL*n-RTW6wx7ZP0;3 z^4TnXwbps9nbLT!u^|8LY{?D3Uc2aRBieFGpP)pi{x{Ymi2IkXp{iAJpp^L<`Dp^X z0CNF6d9j=MZaK@+QmN4!++o*P>LvZ+mMLzBKq{WyK=~*eE%uT;#StL^mq2}tu~Pa^ zB^&xRDpJmhL!sZ_0~Y4rt5c;(h~Em1eCal7By|L7Bma*UCKSyyqs0?H4ML(BJ#^yGnY{U z#0)4%LdV2oV(d06K+p&Q7F1Mdm2?e3qv9*xdxY&l+=q*#`-=-FpG5-db-=FsH|3x# z)YIxK1#;T->W~#gtNPf6P>phphEg?&UKTP7j^a{sudAAAh~s{0Cmrt0c|sM9%1Fy! z{0_7G4jcUuaoR^n&MH#I-wJfOavPZTMyYJwt)y_}Y3cWCT_}m0D0wV*;etlVEkWdV zi9vt7agL!&p(XV^e*XJejbv=H7Yd{%wn{L8{o8 z<#NWZo*%?jNK)iPO8uBle%@P?kC~LkW>xkz5G6uCy^zx(?tw`&)9EjiOak$Flk>el zhyDqV8^$87{+72+raVSk63R4J#;96oY>RoE++>Zpx&WREz0%(jj8PbB<3fxRnIY&@ zhA92fFo9xuf84nu(|sd~*d)^UBCFG)wAw$8t<>;XQ12?_bw8p7t-Q_an@>z@+grRaWP?YFr9tGN|GORyL1e?)m~Me;y#%$^v|TYawd#_lpZ5rBRCYKX9FIaO2oZ zq<(CN2_=XuhvAE&8!T(2Tz*ezilWbtE6)h-4#?!BWRPa zT3v)1gkzYKj-KZDVB`h@Rqbd64MS^0P>9o$>g)>U-CD9@E`#M)x@QTR+c&mJ2H-gc}kOm<+X|1y}H zrVhpoNu0K}z>D&k8Cmvdq|BTy7K^a?8Evgq<@!vA%ts8`&J{(^gfhrMsg64`ilad7 zEYalc7RHd`z*jpPWnn%)qY;q149!N~0i@p@g5sK}(YIGTo&5C_IO2Xqpp(%#fzp z&jBrcE*;VkjArm?B?hR}o`+y|a1gHh?gAdVoPtY&=95zmIm$*;MUHvTC}q&rizWJF(~qWKbWP9U2@6b+GX#`z{~9EI zGojNAg`t7aBN)(JC2sv41mmO4i-42JEF35AX_5@xT4`pLo4Cr_*}XQ`Qk;Ct0`bg0 zLh{Bz<9KEZc15AHmwc!hs2wvcSO8|qk3H~CBHu{)oNQyNs-Vg~!k%eV z{^fa+lyxv>W*I#d#u}S(yO#t3wKdt9^gwjs3k60%;2q$5NiSvGjHN2^=Sj0K&snU$fa{!`dq8 zLQk@}NFR4?u(xT3A(}3G?O=xefk@unE_0AC>AUt((KCeisl13G(wiB{%33WHHCR#N zkq3f3vo^nb(&!rXf`qd2R<6ww_gyCR+!oGRTQ~^(AdTeNfv>Nb}&nHsk;_>=NZAU zFAbkfLCY^ra3eU1xB%?mp#Zh4Awsa?WUfWg>NuU7g-!5~L@;~N+9!IQ3z`$6E9iM2 zxH=1K@4UTWtpv<^QucEnDI`J?l_@AIY|)lwb~UZo$Uo&|;(_~2s==0HF7vjfi5CVk zy|VsXjgeLI+4j*x=MS-8twxpD69nwpsMP)X?+7Ta>aHtUXp=4X_{JO zwh~8_TS~YexDEQX%9<`eY;}WWTcJigDbdo1)T^-jlm1hn?$j_yyiK_MxQu(i>W$3s z32})It9f=`PV+8d>kh-Z!rgSW%+*XFbFaEkne;ua=VZ6T%}v;UHclCYzuGat*i>NP z=}iR1AT@tO&u(UL@ekFGcCwUr_SC}onPF=FhOCO_=z%xR&cD|Xyqn=4IAwQFFrD`2 zF_DeDZ;6mC!e5u)ap1ocIf*$sgEg~J5(%9Gc?xG^@FB|>qQ4_jA6&3mP&(uc zs}1Hf$Wcn6X+x#OEuiz@^SI%U^3c`$jWU$SCwLikxI8$01ig^9VYbJx7F>R*vegnC zDh9BctWCwL%q>Jzi&T`OM>PE)y(C2j9hn?C9f}Nkg0fhEA1_;r9z;3F13HT&Mj@61 z9Mim_(X}MWX~U&b#MF1~h9%NkRB4F?w%FW_WoXAl;R~kdDelQRI*&5dsJ6b4v#hdo zH^5BlVv<~?Z_Sx0q@o4IF9)&=oOeU=s!a0z`rZrqI#> zkk|@yrq9RIzq+c>^#OLHlaLt$q%eEhYwX(*U_?&A;v`qP{=GXB#X!78{_4(DV84B% z_oPzq67ZdQ)|9lxZf4mRo5R@gx zVuoKG$oOQrIL1B4F)3MDpF-fVT}g6{&1Ft%l$IS+Z!~9ni71w~FVu)KVNc3h0FDXx zdMWTD*G1sF&?`+LTNBNt9-SYbjibX18H_w7g#|{wLzmTRil98ufpxHt8Jmf#?ke#L z8V#TV<55;y7dxY(#_VO`*mHpWcYSc_l8qn{CM1FF!}dm3fHc4;flA+OeFYj=($;D! z7U;h-%yMn47k!kRw*~r+J4b=IJyE_mn0do$>cJsvxSG8qB)p@Q?qTZTb`sgCev+t+ zTKD3AY(`vZxLe4ZC`ID#FhrqEpszQ8TNbrh6~U9QhtR-Kg)d&yR3&*aaU#zwWZvkb z6U*h=fYqLOMN{a%ziB7!O<}1+b2(pt-klcFz=V(|EG*IE4lqm6VQ=Zz1&UMPjNvpn3{+gGKTz=^G=hZP`;Y{1GbC#?QFw+()OKoE*xI(*x6|Um6e>~$})MszB_So zqC=1jGeBj>fY(#>?q`YK61V+R<28k1l=5WOU^Vps5L#*MpVhn)ulx>BYQA#gMj=0j z-aoUgloK_25X=_+p+I~|jGon)V?WE{1(Y85YstN7dVug#R%f>1kw|on4b0&*C0Rsn zbb(*Yi#Rm&F&7O!pdfr6jbuZ-JyP=T0Md?T!Ya!Nw=|ChTNK>MDL~qE7)XyC570I;Aq)E>tF~B3SnJQzZKaL>bk}LMe3_ zk|yufblps|H&fWDjA1EGUC3FS!ABqy^9A;xGHqr1vc?9yx$f;3h&pZc|) z2E^4#*UA_(ieTBV?r17~f$^@T`aO=?sIZAnPeQ+VVgqFXJ4oVRw@(^IQrvJMTu?t{ zvA}~gg`QcIXK>2$J(-9C(6veI(G$q$ddtbmEOc{$q~a)@X#2>$@P1^bp__!s^Pk`T zy|yek3Wv&lHAQz{Y#+dXTU&%}Oush$|DyT?DO%gk$|3vE&_P!?va$BClS0E?8M8Ti zrK;CiWfFlB%Pj|crzATBO;%~IGTfs*t4l}FoA7q?{$<@G&y0Cuh~K>Bnrb=B*mSgc zJs(PD{1z=|qUK}H*?XVSM4TyBI_2rT(?UFOf|WE}DXs@ILgX_lNz(K}+~5gtk`+kN z=Lk{1XT?aODI+2nl^bu+!OG$(xsG42-p;_wnCrg|wQFW|5*pjf(u2fNLN}0go~wbe zjVI6|b3sQXJuF$P%;i~T4qQ>h9&!N;``+DnszW8C=M}GGLnjkxlHn@R$}Gpk_V0t4 z(327Y-LMJ98HE~^8%ATEeIJwyb`vs9Vyucy)z+~a6k=;bPJK3rflnVQ^+jjcjaUpx z0Z-{LKP?2!ZOjv2>IJ1sBi-6chnrD^){CxL*X~=px{56r9DaYoJugJft}BYPFx>p^ z;v+2~U+8vaz1qm94`+39T=0!{?z>#Pn28)$w$4n)xj=8Xgq~o9saI}Yf4OR=%y687 zX{hSTqvTl%P2zTPsI z@L#y|oC4ho=mMDP)Ck7sc|MNxb}&>z?T;qf;47 zR#WZ=ts+&N=8s%G@M3Pl^}-fa#cqxB+ZA&B6|Y8NNwP!Q-68}j}a^I4F+ zQE0+1z0AfJDTDBT$jJZQ<@|@w>3=XXqM2sJ@_(2aqUeEviWBJpSO@|T@FS=F8pS{{ z&NL!SviehIu#8OrF-`N7QJG+*a4tga#4-Y>Y%B=qTAcQ?&C+S}Hs?j5bBpG)i{_}D zk{dtELTX-)$6__MCvdw4MJQezPh(QaNk3yY#uV=(=K zh-0BJy*Hr+0xIhf56|CC#`o3+%YpCqzP2gk98m0-JttUieIMZl)0Prt8Fq*a?*hGm zX`W5o@YmOg2RSO-TDN}DVJs!Q%zz?{Gp77LlY}8GC`M4hnG*AXHQ;W5puNC@-)9Yk z?6B-ZNAR9}ku3yN)c2z7C3g2J@p}`xW$A>?zgG;20g1&LKWT)RygTgYOU~MntfZFysAH$JER* z;ataw=)+5flrZB9r=u|AGln+b!CRYV`EoBRNvK)@08)xMddpW8{+j6^iV9{ryq`vw z9=+o!7?*V4NlrT^prg@CP*aqbhb_YJAZsB|S#?L9sO}7%IAcwrX?q&(bnz0=nCq0rZju)tJB8B~QGEWoiBPiF+aGWbJ&TVGjzP>JJ zynx4E2b?f7`9=D93N!)FFatvPNrfW!3rhVgjoZ}} zTWq{Uo>F>x!1mW@M<8djDK8+=(N$#bA;{L&uI3r2cZp~!tMJS$p?h?Vr2K#&Ofn_I zh4#cWE+9Z&V9(gc>xuL~C+RISw|3q|Z8RvTj&5*?{0$FPrg=St^sRbrxo>u>3S=u* zt8=Ma+v9lyDS7Fx#&(hEgV>dgcm=~Z3Ld8cHi27*KW^l>ZdCX!ZJZoabLQ(@knG<#dm)&$4H+pQ=`lVG8rZwOowh ziagUwWW}+{uNWzNvcePmWT+F7v2uHve?gl?T2d!AVxQ-G^p3swQT9m1>oxizwtYcQ zj~Eqz!Apm0SH+9q9$(&u*2*yJd`E11+vbAfnlwXDfF5>*hbiyVc6tRis~=7KNs&u9 zWgvukYtjusfvUl%UG)VkT}K@40!Xb`j#%2(?Gn!8sk|_CQ8lyZr-3fV#4uibk6Fyq zxrQ(7-?di{boIF*@;_nm+SC^KmZ`F@=Hx-z$g>|LHas0@S?IX%^@d+MJLE6&CGrh<-O{Z3?vJO88%dy<>D{QM9gEm84?ZsW|y!+qP}nwo$Qd+qP}n#uuxSN;-YdJ$=VLw@>#N zd+#6n-`ZoXwby*-obQu*>&W_v?I)z3oq-1`WFWDLFGcs*^bQI!x>P|t^hfO#lcrM~ zicpbtgDKNF`q7QHE8^y!(t$%+)?2RFp2{4-{3Q5(d~0Mb+F=0(t#|bn6r(5BFK!D3 zE|l7Dt&i`|xZUujb|2jPppdDwclF1H1^I^GNNn&-tV=Wtp`F~W8`fp-!S2xYPFmcf zrRPUgB@Ah|E|eBt7wpOIosxtLpVW3&Pf3_hd7HH*O-hHF`WJ}Z1h7@nO>OlN7V|YZ zDM{?kN>x=@Li|=*iB)A|sJOy{HEgE6kcRzl+yA1`I! z(e%(IRPgu;5ek|{;8W_+3!~8G&dU6O&Dr|4t$az2tLaKN11nEw_4a1HOhk4LtzG2B z4e%B_sW25g-Nmj(g-;e0uTx9Q#6U?aRiNEd06(_%`p%Wv0}Uw%`q4cf7faGy2L#!w zysPLzo&ukJ?tp+A>)|i*-QR?A6`hS{-k_8D59^~j5R6r|S}xYFXB;uS=1E;A4$DkE z&vgYZl3cM`Dz_!xy9}$XjY~F5F)iNqqE^qtoRw=GozKs|V}1I@W6%-3bBuufN_ZMG zfr1jgHOy$(TY%udcjhU$GRj3Z!P1voeZtaT{1fZK6!O%9NU^okUhMkt6$NQ&5*XL$ z%esl4?7B!Ar602f6#AR%bke;hb1vG!bIn6+CDbhYjR)XQ`l+x$0w!G}_5!NeB#c7SqzYjjw3>=P8-qMdWy5 z&o~20L+G3QA9|@CiIF$w17??b(jHGN`Fa|)d;i^rFT+I(;FltRz}7s^)$fVNZHHd%;{$Pea-P3$#q{V+DP$niP>W3_%7w%o-$Z#8Ozm}!X*+xvNK zx5ik%E?zr3o^ZxJx?+jN`x{-#dlfr8l~$OBpaa2|J|+miD+W6y|B{fNR=lBoQ6tIoH@zAKEMd24&?&5U)?_sG&@Xaf7GlW}_#I7T0%0jlQ^ek$ zwreeksH~URuE9nFDDw1Ymv{zpXUB~BwNTTzSA&|2jQ~>GBUY;ou9nq0 z3u1OR_eFS=HlsAPVj%rE+NbTw>s)X}6Y-@7#`;)yq$||y2FLh=`s8`&UT`Z`!|}%C zyUAYT%K1B%{^E5N{K?H;Ghw&Vc!+VKLX5qY0281@n6LCY12(bB|6Rz8Pb#_i_( zW67W?!Vw|XbI=><(Of5>rSa<8A?6y0&LIxex7JL+No%0l?X^ZEN`YhzT2CejTXX=4 zc`QxfhT|#s0LZ3W7HKKW@@vkhI>v1spl)xg8!z$@Rkc@}c1()a3mRXYeBSRgR$Q~j z@I-`2)SmMOXmD$CM^Lv0jmpXh%4Y}aQ*v>(9XJ+*>GaQ1dwEdz%@{Sjz1RJOK;?vo zZUq}+G0IzbCKRd?lCcI}W>Co%zQBxOWb;Mf8ff`~I0+*ZLQ78)k1hC88#oZDU3BLs&VIp zhs*+nyIOIPR!|X(eh?pqKa8C2#vS7Ugq_D8jfvAq?laTy^12F<<9@WbQpQ&4;0f3W zDO4wiL1C}I(D0V9Hn5Y~TPhq=`RmGs%fvS4Zv)P9!=;H2lZMLJf(AqobA2}S`L-&iw$FI)e>sPYRgv3Z8jR#xQ2d=4i z2zF;0Sw^HJBg9H1BTFINw!y0=;;t{U9SYe!EJbWP_DCm% zu_G0U@<%w zq!f7m@WC5Rx0xxX%nBiC;xvC~pOwI^NlohtzRMfawfMSudUv5K+wGUz$0s|3P(1!2 zUl9Y6O@K~MRaet+DkZ$8B7m<*4m7fq?hUhOxfA zHT6$!Z^rD7PNY3O$Vzi0%kMbtv=-OtJ(-f159kL6OosX}woZjcgNm2fh5FzQ(38dc zHw|UHE8%?L?XB&|!5V=y?6+sLA^^H!Etk0IT(q5fm4)0J zVf$R9b<469TYLC3hhR8Tk_&ucHzabWpT|%Cf#Wv!m2OiVXHR~KluR>5e1aF*!!)5k zniBjgCFrQ5O7X<+&`maN$$zNg+Z*JX zDcX76-MDUfBLO%{BKLTMmCVg>WS){mvMu3+?;X8<;YjkMcm08OJMc2^8?a{H?rr@M zx9e3;r{Ttq8khsJmL zR!*5GB8M?&=v#AO2E{l0LG8nNdM@F*&T-uLfmis!Lw@0gdF~bU$lZdRAFwblj0J7O znw5NhF-o7R@CWYOr@Bp-?WitF@ z`Pq3h=Xq(96ekQ3zoH7l6{w9-6A(Jh*%nZtVJsphpatq%1r?nGYij2pKNe`^;w%a; zGpD>n5?-J$N4T25WhU#xXUmV3B?(m9)5~y3*al$oAv@ETA&!IhSZk`{ z^Mn)?%~8YXq798fBA`X<6BMcpQ7f@R!W5Ka3hfcM#n~h%CD;~e4yqhA8fcWQ3MX2y zc3C-onUG_dEnd5GvHVhi^V=41)BP=B&F;}oA~2N>R7t1F1S%Pfs_7e~XFmOxd`eie zY_`j{vJm}!|DRCd|EzYA_;Kja3kC%aW%aBy&9a92_A>86i@rGtb5 z$$!Sbh4^?FNO_uz)OVTMiprSVi<&5wDarXbHXBJ;QnLf%;{|?G)l)0*ku%Wg?DA1k zv9t$g2c*XffJ8d-#7T;R*X(^P6dWnHPGu>xih`4Yqk}{08|#B6NW)hB7uBxA=Ol~d zTea){f5jsI=LlpBjLg4fJ7E*kZ#Bx{F{hhwtBs69qOL*LNn!WZp?b>N6 z?d{3^u{LBB>bR@4fUpFiByR}sZuc8>*V>VxNk=2zXR{e}(Ti!YqksafgS!*UX3$!H&ws6;)l)rsNSFG!&Hcr?;?mB~oFM zR4-qXjId`Dx~iLr^QFy_zxgH9rMzRN-oZMQx6b$ zP@Z*dN8xeP86~m}VU;4$-LB{41WIe(Fp^Y1U(QJ3y^tlpD_b<{g`gQJdhib>-C(6) zf8p=2Lfv@sjMJ~)g1J4nH+ZbZXVcS9v7S+C9xA9+G)_dJ+24ikTw={??x;g)G!{Nr zP~pzDZVM=Z3)PP1t?H;%=!CuZJUUG>mxB4!P^&?XqMHV5XcJPSaEW9w<~_r$%J~}i z?v0$@cD$jrqFl#{Ux_%Uo8Jf4Aj;^>sT61m^Tn%yKdAS?LaX-!4B~y0OM|u61VZRz zSnjn7XFv>)iYY$FTV@(BJf7oJ0i4Hj+y!Z3fBA`vPn>@ryL8|PA>#x?nWM^RYHZ-Z zXwd%qFU@@Q^tI^T-|0u_Z&8lszZK>Fj|um`^f}aJysz$V(?+b{VCYdKn3hS?;0>fi zzZI|{g>I`7}`lH;&%YFKGS3X3|;O!%(M(`=*{jHK|H;nuLVL`KvN_ zHj3u|re|Xr7pHN7)>iCswa@~Xp`!?qB)3Ed7#5hD$S|ojMHK$I24kbFbJ8g-$eOa3 z%IgW1)SGW{4BCQ!HhVa?`h}j1q&)ct?q0I0FHWOKk%$tpWm%Y; z?CTpmL7pH1yq`-{Jl_ZXlkZ&;hlx2sX3b<3b+qs<%{6akGPR@astoAf9g9f=iIj_! z9+Gzhv|CKNf}~3NRimuoO3AVvGN-DP8eYN&{8O2)+?ZQtT$vAkAiB*@pP>OZLN9i6 z7>zB^ex?Z(kOuysonwG-VIgTz7Nc>7YQBIh6cx1LJSor>oOGEQ^oAmJ7Ov+Pq$(jv zDeMW21UpGe=N}wiM0OQrGFPuQ;5}S6>_VS904E>87?njiQq0##qY3Gd7J184p_rhk z&HX`+A|;lpydCz0>Sx%w+1wCgYvx33f1F+x0ieo7PbC$c6@!14R8Ln`xYZ^v>6s^P3`n4g8p@^bs$LcteXDluI z_eZ1o&BZc?UV|fDr6|!#1}6-%vNKl>z5s!1Qo_aBrkq|}5;Sb`1Er;_*{wqf2XynV}s`PJkJu+}IXkTi(PyD!p}QNNZL4;k4P^0%vhn z(SwlCoA$sRNVIP|gR!j>0W)j^@<<7}rw1d2o^yYMK0ysqT5^j_p?L?bk?4?Sc)c!UkSu|==&IH9Kj=4^~UntRWA zQyF#yNHfO+e}a@KZFSO`Qa{&Xs`J%o0HmnB{N4wkY2_9-z=?d^8fX7LPNU%S0SrAw z%X=_9S%va35VB_QSJW4N5DC-tuy>N5+KHvQHz-IKP zpqae2?m&7C`w*Vr0CiaCVc(ooZ)>J4p)!jtO6%GEW(#-clr`T}I*8 z#Y9MHz%y36^a{0g)5GAeWdsf1fu@Ykx{j>LfUfLm64wbUGsRCyn03!hR#Baa2LQEI z8%^NLggPvMb8)m;@&3xoxf=60_l_W?P-`UaFmvRu9&WseQHsjhq*=AJoh&>jwRZBb zOUK1u=M7^hdBK|$loc!mi}t_*t<>4}%O*f#Xu?ZQKch*fts;V1v_g!Dtgf93LiTu0 z4nC#)*g9&snqLYTX4}O2*^H(mJL1(yPk_$7V8-9zz4Rzl&vC5alzHw^*0B5c=_&Bk zu)alEw+c@UozB(LXxvK*1k~2_bU_9>JPoVU$fioJJ!>ASP57g00jC0~a{tSCDjXVD zK{MDjn$9f&4qURC`!XiCr?GYElzyJ^#&lXK@&N^SdLe9HN_nF(XYtc8thGDnYi8EH|8(`3Wxri{4ev$&z5O4$N)eCn9Bl82P~X`U*}H4dik zNb}dgm=Ja`_#{2U-i(SKA&&a({7X1Fy?il?l!cYGjEVyioPpKbC&-=%yE%Cjh>gM5 zlphdxH)St$BPk^94iiiDvvu!NX0d5UD;$fS!{CoR-h6?{ul>QDSr=(?I2uZWv19g& zDU(X$JycyUGss~0Ur@f9K?H|p%57iuYe=OsSrqq1z-W z+&*^yvah0hQ#qIzFecH{d<}bQ=XA|{X_oKAJ|sL(XF)JZ9p(J-CV_eH_=lc7qcaHO z2i?4>>sKnT!wl={rb&b8R3sF0Iws?MJl!Wu^K-X!8dk@sy@tmZ$r#n^nW^Vm0k+5e zDx-z3ax|aOqvnAVq{4vo{UWA+auS&j2^NC|Tt$J$kj)#Un ztCh@K25Tt-QP=lGb@~?vXSYKmS*XQpjEqZm8^8&1mR$CV&jOWyrO6tWF-5i79JYUR zC+_&ZNQmnm{=h}2&M@Bt{w<63iR<|e$!78Z)E|v$%{C;p8vRMHV^Br3%;liI)hnKs@WuDNntDfrC_kbnpVCX^N$dom!5;~e%nWXbUgUTVXxVk3 zll5YMIB-5kk>Xd-qrZr95Oi{etaK*NlH9Sr?u^=87gl089+7!tzKg~A`Cb|@9nZUP ze>OLYF5L0?s~l3?qGOJp3AqE~mmIkLRvolkFDZ1@zYZL<>E=i7Bn1!Mrxm(B1%@Ta z9Cn(AL6WDWZo#`0uB$2I4Ox~5;-JsY?hoBBYg&G^ zkHj3{#oUoEM{$YkiiyZtFdl{F#neq5BGwxKQh)$_?ao8H{K9K;O7R}(vMz*R|k*vHJT3*?n9D-kZixc`fU z>t=ERii*a7g(*vnm?J)bBH>O1^3@( zSK_!2vFg65ik12$dY0HZZ`f=nlsDUeWFpmiDM25`=&i|@NpypZ-R}oFHvB=h&8>U# zNb7&Cm%Usu1Ur$rv4^Ww0Z+Xyl7?bN@9dv_5$rL&k9ha>99e1B@YBZfkunwEjMLgj z;ogL5U@anP^d3Fe!}ZmvTOHEQOpHq^awmAts5}+^@Q5U6LL41U4QJ+_(uKL=UlF{- zP~3#}tB-Gc{j`$V7*0X9g@sjQ9a+w?Xb!t6_FxIlT6|ug znVEJd9{idx3mc=qdEZNF`d%Lah2^7WfqOIO@&2JGm5IDNi{t!wN`jmZ%{dj|&$)Yl8qWFG zn6iiPgt2g7g0Aumt`7Es+Ur5%HA9^tg)y;}@v??|h01&Z;!Z*^_uz@?l?mTK-do_; zY>4_RW(G6&3xl&cks`6*rHK9k(CH@G8;BAOXbvinaFOegkukZi%Ku9`_>V}gTGd8LNetB&{a$dv%E!Ve69BDBA3TO8{AVaa5KJjh zg`Z|EV`s~HVEJh0aR-Ol`%Iee4d-J)Z!guAb8jhKmhXklg_EbVeF)J!oQW*)_zK8j zmiv(9qPeO$y|^NGP$xBBVBv0FK+RmU-H zuSC>XwsjRq#xE^TF|I}fA`ezDD4+b z*y{-jwo>*mYnl(cc{f5=Sthc$v21m8Nbg!umDt86?_9O^*HiA|PWOQzW@}dwBdh?} z#bZ~6#r8r|)5(-i>-5ZDwodQeuQ8B4a*U7bIV^+Xs}KwnI2jrgPUJRPDiLjLtPL~v zODAYni5RArFB6(NZQ4=I0-m<($AN#vqsm)oV$Um>Rd9^iK8hIAqizYFV4vTi4`2-d zE7Ck{Eb(2=q-q6*(NK+1fj?nG9neoPWv}7tEVbw^E_krvfM5q1FE;V9gL8VrEu2C{~J`w|ou;!9}cHp~%<5zG&de%^k&#<0Bv>)x3!~(vWOU?C z=-V<0Pc_&Q{mhC)OsiNkcw0b0uboY(K-!!$-EM3T*Chx;*aNbBN_igBDH+bGhD+F1 zqxC_&Qce;JBUecRWG^)Weurwtm@@NBx?!VX0GFp6Uc_ z+f-`)fiAUNmae!GS=U{#q>Q2l_7MM*badoSHN%WBL3kkE{KN-_F$5i()=KM0$sR#N zs}7HV;LB^^3)g+aKHrdpgd4hW9%)MB00EE(H+)4IlH!~~u;NA zOXiU#+l}1ntYPac!XO>ND_Fv0~hRf_A^7SlMU?NAxN8o+<5>gB(*g?pOV;xX=6gfjt&XO0%Uz57j zBviSpjo4+q_#`#Vb44NlIg^>6h~pw5jLMNf1e<`0E%gS??hv-muUQc(WQZq`As7D< z?mrEmFh~0{z8fg99%kY14eyzzz3>K7+DB3XmezEB*PYU-x+oPJChQJ1mTZ76SJ-PX zJ~AhU-M3=yH-vF#cQ{!YuuIR_0r!NKGvqgVEKE`tZB=XUr*>G`OV5NC1&;H;*7gq_ z#!7Gz1L|t;^1P>Ytmb+z^IV=86VAqnbc6hpJL)<5xi{)nSM-B!cdt{&j<3tsQH_Ko z)gA@=KIusWRzNJ^wi;Piwv#ZRar_EhaxD(YroT^Vd=5PaX|r1qka(1+7(&9Qp}~mp zb6iAQG&^rOl0A%pQ%wZ=(D?!^+YKwWyyX57Of6oxx__Im3_694wDR-67EQ`A_Ivh! zORpT?*3Q5G`)$<1`hQvmB`ZtG;e3MyYIvUe=t)??*#d&O#Wk7W*?%sG*%R{Hb3w(D zktydZZua-MlrXfg^pIUwT+%jJS5`nvc3u{U$AgILJVG2H7-#A!K4ql`APN^4j=#9f zy!CkXc+GHsz1;Zyh}w(czhQHcV@-bXsS%FU9;Q?)vOGE2wp0m2JmcHyIr^qwFD7vo zfLvekd{j3AA%~=1@M?*E1=Ao}u@+G;cJx^t-+E{bR;ocZNc4ELo>V{un48+K2mg@; z#g0i27qSxrgF+FlyI8mfrGrJWF+a75^)CT-f;m_Mr(Xy##G9~9#KzMrsH`f^QvUGa z<01)~hG=-rn;{;R^PCnut`uXixAHw|liIOIFyc((?o~)U)d6|N>OJa^Vs_4)T=m8UxAFQ32jx zeW;hgIh-49zq@}^Ufe!yo>jO_Gz^vDRfUJ!TA(F)(HiF~847t~!3;{?6@nMzT~uc&n)jZo9fB77nBAtXaA@&hJ=-u5W&eyw_5 zMqU1!dS=$O(GkZu97&beEdB7GTHCjWr9xZjuZ93tsu4L^h!Z)SvnI~9DV5ttec=lR z4y$}8%xkGKp8h^sNyhxIfSew^_@mpRXBM;W=mA=R8>+y*cegX+R*gSryrirzNozwg zThPg`39K+|3?+jj)C_y6MRj?-@CQTe^} zuaJKHVE%8HzpTM`1DS!fg_E6D3-4naup)TCgUq? z3*j0%qE^yoee@t63kdG-w!I?f_z}Zt%haoyy6h4e&*B%Kgc32&AsflfwHOB3jGWm; zg1=(R|4dzJf)U4PX9uUQrr37heMh~S{?7XGy;AwJenjp+qAeb@7;T4>S|CbQmNUCu zt)*QU)2OUkn+Z?fiq1=?M{ddYVY=$6q%Nn`V4ttOeyHR)qrPHYIA$!7PA{VqT;^sd zE?#uapd~RZ*?}{)IZZdA8{J8a9$1c`DPca_it^FyVPX@6lm{XTiNw$fxqEw>6V093RlpPvyP!unHJ45D)XUY10%^p!LbBm)_Bg##zjJjp@^_2&B5g~FVM(KIJi+F zm55g@yyP3hRAf#m!C9&J=rm8dUSTbs!Sqflw5j+?u`(7X_hMOP!s-#;g&_C%F_EsS z{Sm?j${fVxzU{hVV(7uLeodR2%W&%!g{%2Eo1Fv>+g>5D%Q528C9$4lr{VPdWNI`v zjYhrJFDp_n4y9odvNFi(yFDkrZL&f}5BQ!8 z%IgDAI1*}vJoIIpMQuD86uS09_wFki6P&ikSkFbqzBkFn%uMJ61RXg?QZc5A>zP}M z04YkPTaa|X`D5nyhBdLluk87O%!@R@Y^(N!ppw1}drFwhcPQ<`xad{I&R2ZQlg2n2k3?)Gz_q|?A$f@_uBYWs|sija(x z)K8UtOBGp}+a|IhELpM$yXY4iWRl1R^&0;mD`g7;i%1YfJ(0&lQAw>8MU7<3CI0e+ z9=vQgQsLu8_h#hUJ*GFdd)EVKUE)~eXe8S-ELz)S8v$)3kXKw@y+5mWAp>dx`DKB0 z3iCwA7&J76(0-z=tH2I3$3NsOwkTt%cgd1n0ktQ5aIS0ldzU$UiKetTAoFeFVRi>v z$*^-N104U8Nz9K6dSRZr9jh}x7O1~YJYdqTF zn@=V!#$pr9@&U`;JAK90JOQdQ69v|?1g(9ixCHH6ltspLXF|tOvBtfQ(C{hG7P4(u zc58d5igk~?p_9e(&0&pvx9Cr{>|e4PsNAVb-K{z-t<;MRMh%DMzj^aWaOjm#W5or7 zO*NaD?-sHZO?)F!@yC7$t&w_>>3S|f3|T2Xv*_wky#wg)h>D--9$7>^F`rnbU+nAF z{V>8rl*ls*Tg`XEV$0w<8QDeG{9h&N5lrsGMErLQ(87@%sVr{dI&iqR0oTt8es$r% zlax;LtsiTr(4IdGNuu+sK&h0=+tZ0IB=4iT|K* zw6X1_YI0_35f%M20;wfkAQN+8woEN7q=}DVajw;OYsAgg5z94e=Zlpzi;+A<2h9Es z{;mh%i_u3UXAri<@82x~C*$79J$z)9c`Lsmm7Kmgyu}XvgB*QvRF*9&W+AL|*z52r zl$FsQ7O!ykwuGJ2DGXaqu>0FB>aP-NM5K8NvzHUI*Mm8$JU+-Q(lppSE@{T$&>7LS zcg_H-0J-@E;r2t*u}8+eM8{U7dbgNs%WyH^y-;_zEi@IHSS|NZAy&>1o|=x_EPR^U zp+_3YEB;7#VAtfC$*}*HvMgkeh;4zXrnR@IJ(|H_uCo4NL;^fQE6o}W3)8D%cf6vi}{%OD26mKE=v3$nf&frynmwg)?@n&@ex!L{9 zNr(e84-y5bthC^y1(0=?_r2hYE#{J)a{{K@v(eUtA zUhe+-H0?}GhYIck8$mQ?!vO;UgG5|+um%xV2h-eVY!8kfm(EK6t*`Sv(sC6oHbl0f zl4j+8$shG=!^Imtv>VSnHhR}RJ+?P4iD3&j9Bz#1!NLBypYiEjr&+t7|7cE6nqP9b zpz<`~VMc6aNvf4O+Y12$VHKv0JQNgzTWk8|>)xR6Uj#esd4B1Un=lMXRtG4E8ZpHiqvKuqOg9R~CVz=CH&g5wE96z7yt0vQ9Gv4l zt*}y&-A=`f6rOViG&Whg{2iL#Zn;)Qbdfn22{nqU+N`QVv%rBWftjte@*s0T#nl>vL{rm3 zWU;DYSr_$}d~kk*P>8;<9|<@aBuM7wK|I`IscbH*4``6KvgYnD+5sYLyPRg(_Cn}H z@3io7U04`>OmGT9C8sef(?=0})gzX)nlUqX29hvyPZvGmRH_1vwCeB^F!}I)$-Uyo z$e3#oG1(PmqA#&nB?3v7>qXF6%%z{&@T9~3z`!(-Dm^7??!2iB+#YHxG>7 zPif4M@SB3&5^XhiIUz@8m^8-JF7BZB0dae^=i;UOwm+y_*ixyeoY861y7sA9O!_O_ z_3hJr;fMfK$$W94x_wBHa1xv71HFPUt3*}wi&uRC8$~*N=Yl+PzdATeZ3aK^6HN8YnW~9b19L7G zP62N=!OFQXg!}F{Kho_5NWgh>%h@zg*`-uC-avBh_kZV@hN*Q9@&5=@5yc;3!Xj0< z0(Do-|NI?Or(ZE_yN{WeX$Hg2S>zdcuYjwB8^gq1ekM!hkJ2_0D|X9mQi_7j7r3BH zxHzf#gZwU#=sV=<53GQ3CPYz%qfrpGCXYNV%jpgew=+i{e@F+zn#x3i?3Ky;$(zy;IN7JZm2P;;;H$_*B*jo2%jr!Xib7u>Nwx~Ee1^qZ&o@v2gI{jU>OM#Vokzn8<>*D!r?&Os|(07guttNqRS|fTzQMVNJ!EP&7Y&Fz#tkKu8JKKidHLwaoJQozFX15p zKbYDW-Fxwjb795kfp!+UER9?=#MW;nt1be}><$}AtpA!}Ns8v?;?KK7%HCHJ{-vRI z{@j$5C&hPTe^}*H=o#$8&P`)+16PU+UMI_G@K7UT3qRjDLgdGBeM-fLd8w>en3S7ah_Qhuvmnn~-fR^Tr`J;6dCj=g_m@{?HJhs|}2g+aP=stWg zCwVk>N(0iYEEg3($qQ;6FJ2B&oFvsN)5QxfiTd@^6&02@eLLrf8`Fkj?9d2v*D+{_ zB1N)SdO|=AOBZj;`iW>+hGkW0cHA{hg?}XsE?tP;Ss(#iqvCG77=UwdzHC}G4L!!a zFs7X@*VtN~Y?7%G8a#P1TR^gdK0)N-&LGlo1kh_=EE!4kYSazR%~apyu!V2W)VFknGPwf@7ZF{$$Ljqn?Dd;%XL zR9mYqnpdtCCS?2_-9qKDjkDeRLr4|ExMT?sLDlFnwK;F>a*n66VJDF2(y&8kbrf`A zi`Hx?Qvp47G|cl`&43?Y$y*3x^CJDP$k5q>{g=1QdeQ5BL~<#AH+u^GqGy3NE}|4G zmGa`gNX581<)pM|3v-Le;z@~l6xSc8`34qRB%sIwNuqJaWhLT=E5?~py^58;x44Y>XBY|LE2EsZIXS>%8Lce^-EA{NiVc+WXYDOPE zb1yE*fQxN2%Ppd%g^f^pa<9tq9F&vOo^od~B`aiTo_S>-qG4aJ*p5&3BV84hr^SC; z#?#`~Mh!rNOtZrsshkad9T8Y7FOroN;mXuU-SC|-nHhAaPTJNE8g8OkNBN}DBv6*I zbAGyX;~j801rNV|7d}4$BH1;w3nrYtz~F}bI$k6OqsnPxWu0Ty3Ivee9IU1$nQ683 zWbf=$I8&<=HwCu_yz1A*u8v||x-w4lZnF-g= zilD^afWZ4gOkH0P;uZYiVKMrPx`MdbdnWxGBj%AG_Z++^ULUwZI<8K3)FUSDD*gGh z9h14kqg0lH{iPP`u#? z7H(Uno29um2ORS$x-SS~XpR=L_7RLE-frpo{lJ_od;@Ah{}j()tIe_GgO>lJ$VDvj ztEqMg+X_i_+3UcLz1Nv@0{Ltvd{NNeZQB%C?N;!GB_Lg;4bu@NO(816I~l<)FvGw* z>Bq(H!2xYTDK%d$_d{$p(OEU^jG@(xiM`7b;;L6Ye5QQ8WzKdFm-P-M?-4J|9X7_@ z=LL;2N^;L?$Pr@lYuzJRa2MdBA&7aQ7fV{*5kOntjfx%2C+sAUtsXdn#&L2}T?>DA z4vB7kPwubn+cU`ZFoodH{QW`r37+kNdmeTa_TRL zK0$PiX?umgx~955IOVz|5xPs7S@$p-*ZPPZ<^K@9Re!wW=1iIUQWSdFc!)s2pR>E| zMRHEyoy{>kyY01yPNX6MYOALrNL2+~oPkkS87{|Ek*L-3YzcsKy=6i6L%~=ny3L%IsNC5yAriaJd~ry;~VDw$TGRdFz=(A57#qb`L^cw8&!Pq z6260&cqeZE2jzA!+jLAfb;&os>sLJ0J0H_~IQk0V_BmdvbTDdh@vkPTABz&h++StD z4I31$%KraeMe^vVYRss^ zN6DfzWl`RvL3VXB;a^)B<5`7j@v}yH2S&~|QAgWn#jCz*80Yr$KiC&$ozqcqIPk6ydUQPF62DbH^}iHQ3(NWaV$RnLPW0MfZ(px}p&K=dG2HUQ)z@6%B zJ5nH7;4qC^VI7k>O~DKwvON%(XSQz3mhGlA=2E8BFoab&N$-!Z6~dT|S;f;>FDbUH zkC8)XAUZXZDM_qF37q8I9vq)hGB8eJE8s9&A&x?+Owe<&xw| zCz)hyb~h)hv0K-fbx~&-=J}XeF%6OHc2HI=lRfA3|G00y$d^!AyNB06bLN51^)wIT zI^zUbS@FzZ2hGEI2G#sqQ_w(uwB@EHaO4m9Yhn$3%tM7kpg6dJ-F?bQD=L>5#U-x(AE?v)tShH|rvd{MYHiRwz((%;}!N1z^{j%HQ@@g(Q-1 z0FzOayfbsi?+`x&2#LIO>FS<9SaKEFiQBPX7e=L(IGBFa1$CH_#1L%3sw66>H_-M)qdsuhjal zle6C-_UPyKfh=!|21Si+*;4uSshXi3xiKJi!bOT4Hx&mAp^?0w~DtU;k??+MTEsi^lW1jQy$@6wp`Yk4Lx7g zc2r&m_husWnf5JM_Bh^r8PVR}S%cVZEZg1`Wli^uB#Q$I*8njSb7-3SWtzHJjmcjt zy^ldz0#~UBjp-O0J&6Pzi2_NGgv{oua8q5gg(;4!PRaE^v>m_md{OI2bc>ShTpuoM zl?$;HiFwZtfi%?D=>TW4h)1L>Vk^13TPLHv`#2Q_A`@5aXs7Gmi8Fbm@+wfvmH0OS zac1Y8a_G9ZcxXC&nLuo3md^C4wdr4M@>cWg_1_;(Xg&%ldT1nGcvakMyDo7Gh;OJh z=OONzUqf#3SBo0sR7^u6lJ~l8*${sc-=Cii6z4TQ+r#p^Qws+{H<%H!Ja{)w@eL92`}IANFgJEN7{NYJRkB%3 z32-~!qSOq^YuP!%Ft+#K8LA43G<7VWn)qR!NS|A4g0^X^h4vQHRMjpcpX%~5=Iwc? z%j)-uu#zba4rdo`m@tXt^x0i7`%mldJ*o-hDv|TSgZiJnHM3(o0OLzmL_R0`%qkSk+UrD_VvsqMtEDVdK3cdZLfisIhaEdZAj)hTLM z%)^+By8=HXn}M2xmv-MrsW^z$v-XRgiJE##CY6r=i?MeK4lRnZMPu8xd15Cgwr$&X za$?)IZQHhO+kWZl`|hjms_uG!>woXP=GbEn00}xZO%2c_URYcVG1DY_Ycc(Sx@aum zuEaCHq96yWTbEgpc7)JqEKuThF|N3$a~CT%578MJ*UWYVZBoUXhEa6xwEWvW&iP4{ zaUxmSMPHzyGsFy6raH=2tJ57;aj3aUvJ*^Nb70{f!0DC4turWkD1CL04ma{`O{;RAkLZq;HO*w7>09Ab_#U} zU?3kYr^=QWk3fLNHgHXXS)Ufw(V%Bmp)6mfq9JU_ufd{mtCCo`&!5-aJiol&(eymu zygs4x{7nA6GikC$68M*vkMZHybLZ=8=cSwH@p|C{aI&ulq}X+E-=jbLMe z+*DE<=sRyXAsMmg%r0fSKz;oYjA<Y9zMJ#xj9iDh3HeCL*`QutsEQHexwC#Wchyt{*19V#_B_a9PNK zM#z!rWV?+<@X|>N4D55fLz_6U0KUJdgm6{xnmWC=SP2E8-8*TYA!*zusm3ZJ>uCTA z;G7hyh=H(_h!A$ZbZ)6=OXHDA1zM5{Ij2eyRgaWF!Lp>VrHH}|Y_{IoMZ-R1YVvm3 z$OXEB>vvnQxf-;(=FMp6h)hFG66C|XhO&}gIyRk@sy&qqwGf<1ImL)k+dY&N2BM$8 zgrE4DNQzLCQ2zED%S04aW|0AuObXT~l}!Jb1B<3GCE56rmY?~EygVoi6nz7F&Nz3EYIW@3kQAc+{Up_^(Wt{Pyn(V?p+WsULjM*{g#7q`im7{oN z30pEVvCH}}tcs;Ow?V2#Bftry6t1LF9}!>^v3and^OAGZQl2wVc0uCwO0fZCa(f*H z>>3bD-Y5mo6cukMbm8B>f5ihD0nm*lSAwKaqoUWzh%&#`HB8yBGPqL>-{=+F8En)% zBqyg;L|nDCLq!h@3*44z2%M&ZE)kX~tCujcO=F#o$C+ zodBmh;}oaZ5=<$72N|*l#yamdIhOn9b%Z!^C!yL)r+gJ65OC~nwDD(;8cL{?jaAT}tOr}sem*svNm)?H1!Z1IUb z_g?X#j$gg}8cJa_MRi3s7roG~st2&&znj)zKvY@%9BkQrbJQnx)&4Ve^=s1*DF>Ma z`CH*-tsa^(VdMeMN~ZHQ+Bbsk!(l*fSx^S1fMV44tdbh`P;Wod(*(98p5|7MrdDC7 z5&AlvT!J`E^5RIAf33voX4KfI7Ti$`9SRjp6|8_P424hbT_Z^h?q=N)H)DUgWe<@- zBWO4@{~TF&BWJ5CeIoG1&%QCxuh~sDG7m^;6~2_chD{ox>KIq#!fv04PP~Z4hv)2_ zDBPk45Q{(mE!<^UtCx;gP>bLFOd7npcy&IWPGjp0W2hvR6?cG@EG3wq^Ow*XX4Z3mX)OKJ@L;`qkfaW6huI*Hkv zmedA(tIQiv&QcU4yMGCosi@BKk0Yr8Oir8Q0>A?Nk8MoVg{_y2b0GshG=L{*7vi(T zds;wC8*hM$A7-PnpMX!29+r2e_!*P<(>~2B!J)W}=TS(l^P%$fQ055Zuu@1WD;es^ zMqTfaRU5rh*j7M0lh;k9A`vUXD9>xVe0_f?1JpwHIY0ESq{ZgF0{j zA&^Qt9x}$Vxf;8f15hB2EKb6{bNqel9odrV4KTLstU4kumz=^A(5CXo-`*Q{oUN#~ zCc2o251x;YIoch(l}r>5R{~!)6_sMhHcGXqHfU3x=%|j}2|I6+hW34#L^#F{k_Jge z-KGeo7|RT)TccwaHYm1^!RrAw#~M#`El(Ug+hk9cX^)0~RWirn=Pj2a?!o3yY60CB3Plt-pt8%zLYWIz<{lh zu`sdJqf~7B+|2q6&h)0{^v71%g1;a)sTHV#!?7}Nh;{oXWmo0?<}cTEaIlY%Tc3;m zKb2=g9-aNuM<~-mw%Rc|Egq;H{viLR8zNo8N8vU7`FoVZSP_4MK=^?K;kevyww?+Z zKS>!znLbCElV1%qUbzE+v!$UjR15u~p=cFNl`WUVVMyVo&c%4u)WhM_dIZ-;9dQfm zPJ*n1FJJTFG8JCXBmJWxaMAJAkau?H^Vn4r==4fJ_NPld@4SxYDZ;Z`qDxFg*D@`i zBE~I>8x+qqO18S3l8O_8r8UeH1vTftCg?>*XZ-BnuB_FZ{*)`)mO^i3y#@g(tsah? znZsjl-T_gG_O!Sv5wYpNm#AP9w=C6AX~PePlLP)+y@uaJ3rfFTY|JmBKGZNaz~oc)I$*`u_ru}SLEH87iE^tSsJ)HZ~tHV2O6&3pR(hYXw3 z&?eB?1(Oen-iWTNv1*Vn9jRq{B?vbJA-=-TJNiU2P4aR^Hyl4G&p4d{ieXU$ku`c0 zz_<8^96y-7O_;TtLd!^hr8x9!JCi_@RU3L8PJh6YyXX2G%+sj20B+K}U-{w6x!tq9 zV)h4b$NdfHrYWgq_DVM7c?SD;hw0&WpHO@fQu=RHU>)~pvHv+*1E{P5;JAYP{##Wo zxe)>Pe!~E?7z4N|gZ-;x2GBJK_(uMgx~1!%z@+F-_S@eGkV8rP5SGFW%)f;ZkdMR< z%(pY;pF2}=osZ}^-P#H?;G=v&2!BBe?|>ZofEfCK90EW62zY!aeE)#p@kVJu@M>Ym z&RUhEfV;h*bSd#}{ABJ}V0xtwIU?Ge;X2~AXY^&38t!|6oN6}wyKofW!*CVxiT|wF z$9L617t)8y&(jkL7(EjBFtH8%Uj+)Xv5@~te#Oby5C8!D|D!rl$=u4A-$vic-NV>{ z-~i(kNDvGn-#U z(8S16v7&-z&0HC?^kU2!OcRfJ;+sq2(sn8cDLCyv7zg!58R4QgC&`{)G(=;1+4{J4 z?fJ00zhC+lEvxmCBF-)+ z2}%~CjsH}puyfX9Rz9aeZx?5;5X!oTu&4P8Rz}?+?xEQlJ=^Gxl`fS%24_zLU#Kx@ zDG^7xEl>H0`)rIwrV#Vx8Yuv>YCTpORrf@MBcx+}$uFXaX1h-bEX6*^?n{jhtQxUC zy>neTD*6^e^?m>ryn(2&`+eC9o!U!0kNnuo~@tNpep7e z9vYKafT`DUsti~%MDT1z?*w}me!9Wt2Yj7XzCV>OT4NNsNhv-d^8Nf7E@AAHsk5AV z|4{+;jAX~w-BwAzGFEe=OJ`GAEp!fya)4)CWz+sj;etcZiyDZ8mAlq) zRjcd)9C4MaOS94JLZo>v%iMJqlk?J}@FJud>qWb8Mf;HY#>rcmI}wa=D5Z@d)Ezxw zcPR3w*1>`|$r@1V5H|AKSe-7z9deFH?et88Hnfbsf@eB=6w~EPS@N1lOI#jTr8~5# zryC!mPy9}jmW9D1D4kD41mD5=rR`|UE>~&;z1;&n#u$FA)a6P1&H;|4O$~a^!F7%p zpQ!sa`sR-8rDZll2vNb5J`Rglpitz7sbU|L3crTOzYvVMPCC6r_pJc&h)+mLLRn*- zUeZK!%$U_|k#hxuw4adGh2asNXWGf04V-{-2(slu{UWzx@j(@ z@$}Gqtkq|-6J|g{t`SeLj*GAghT3Ne4Pw`2?t%fjCn))2acP*Z29Y zGVY!n0mhahW&~NlUMb@Mf?J5rzHGWR?3ms}w)38lCy5xUyFX-FbY=@zD;os`{@Rgy z8NGP`wLsr#A~;u21&Wp!y)sm;0yDS|JWp?8(u=5YIZdGYa-atiA^ zn`)I}7olHAUOQbZLkItpU~I()HMNDZrozK#(^Hh+@lg2;A;sirMWtmWZ0R=+zu$F@ zB}^gt2_sTk*4dg2zt8MF8G;Q{Sx8=(^Pr{_swcm_^N!wCq@5;GHwid$_tT!3!c}Lw zh75msOYppgGRZMaH{&c^NKUcQ+&Q1Gs-qLoHGcq zv%KdDHL?CQ>f|MT^yzI8p#VPzdSJocAr^mfi5qkVUeAth=TH<%$(e(;%iVh3ALLYmCSBTd7OH$j_MMzSE zLUVs#5!2QBYaR7VRJt0%9Un8WV}mw`^r!ks2E!BXA;5wjxIk2hOJrXy6=d3GC|~rG zEw(YhKP0KAK%v1lt$pnGJ-aZ;G)p)yox%ab4$55Qu2Mdr!~k;JFdIbpPpjbR%$Q9p zK|M>;fz(b#fvS~mwr;}4JYCIzOdnR;31rR5<3RW!TCx>jbN2hEf1}Bnvb*<|$dqHg zD4(fx*(Aaff9&h^)2Nm>iFnA=@>or2+P)|)e!vDY7m>7z(jL}_Ers8D$LTdLskRul zti>C-x#Y9JlexgMgEKqn(sYlA4t#M_bcmZ#=CCrqgJ%cxK2WmzH*;U|E4|^v2em0V zM(jknXdUfCh|e*tn_&=ypkBgc#K}E`3rDEZSlE>Geff(&#l_lIycd3Vt)_&)U78lx zEz|0_e2+h%v$eF^vp_A0=q#9;t&JbYVy|cjt~}vtELpYNcds}4{{jF_cTwcbz z2-V1R;JTJG@-@BDsh~-X=-5iNcK4-!iXj>AO-W^Mf}~EaQtPfy6CO^SjAbD?*fX^Wi&;Gb6_eZ#k8`nV<~mwj7RnEuXR#(oQ)Et zeZiY(v=L_#*XfiZyT9)3iA)wu|VGT=VA+5F?T=%@@lqqgqr?0}D z-ERfrO`ewF7EC`MS-RW_Ny#JFwcL%u(IaR!k?l@}w>zo@^aO@{s&{O1V^9tVwv*Z} z2>H2=M6oNz@XZZ=hp=ZIwE`Po%^Sb`Q@K3$g8^NAWSmppH=1iPut&`HC|sF3g<|`o z8|Z=ZQx5=*=^xS-cIXgMW!Sd_Y75m!a3i$;Q^9!UfT(i@&`!*)A^JBK-&xRlymAG~ z;<4N30KKZ#J=<$q|N0J;1o({fQ>Hl?_;%!XG{_P-$k}_^-ECy(o$fwz(aQ~}^1#w) z*`gM2Jvr&CD7ufIFIH^Q#zEZ|xYyGsOvYxI?t_s+>i$69F>Yy7W=U4h5Z}oj+iMD7 z2De?apYIVarM`%uO9(2bwh%1dMxyJo(A7}S0iV_@+vf=YeR)2vwep=CjSePs8rb(= zn3ZLgMO7sg*h=d6$s**O{TTOG`p*_tdh-~&gZMo)rKF9G_iP#3ftnJAPVokjK;xIo@^_KX3^9!AO=s7 zC1qUwV|;IXEheH7*cf+A`XD+?a%37$=khW$!|kFj)3SG)A}OMm#bxVii&D!?Ephk~ zH9VQ4API6t6+XP5W<*<2${=Bf=6KF5C}eM-!u#1!atV`BDbztnsTBFAoIuC64`v}6$vy&E!mxDfBs;3$})HZZeCAqSu%_iacRZ?E{{*94d zd%@%~=iZ)v^|bhT)6Li=7*In^%WLv?Iz6~VhqhRTsQQ2x zG1)r;bo@54<#Kn_!+&=9t~nxp#nv`uiOy2j3dUOs;FUQO{^BOBMS_SGSj{@W_W(?-rrqR8O~v|-K{GWPbKx@WlEMIx(mCWq zT^NfI(_I;?t#pD~w;9G6U2T^dxttr7) zZFje~f9NH|G^~MauRulI13lDf{YC0-;uOIt=(y&Huft}Exn?QV%?l13Mh&7SeN7VD zV{}-6#>9rT$}V+A33fZs*ZIe|Hfsgf-Ef4d5y72FSV&i0gm+|(Cd zXo};DFCZzG`gC=0=@x&!o&`J%|I}6V8JTQY76oiOWysO!YE4CC)UcpgMy0|SYiiPr zgG2xBKxcNAm*bR-X7$Py+jQYd110XM?u|0jBrI9`tdm6VIZ`eYES!r zi&8Gmlx{e!7o!RXTi4JwHhzjt9sQt=r|yHi+Qhp{Q`sjKG;D^H%MVzkOCHJc2zEqo zL5WeYEFnVgyi;mTfd&QyDw3#?VQGybVx93HnW_RkckF8~d3xLvG_Mof-8W)1dIoa0mo=p5!EugP!@_O|u&fwdQ_>=yzjR~T(Wh9oBw|-N92_|^F`*TcY)hRfi zYBDy>;Mu1W>PqAP8;U@umq+a~Wkx$iC%;eiqSeJq8VMUrUW}D!C$3RlmBwV)4A%*v z0RU&z-J1Cw&BsSwj;8GW$ScgJS(_qVVErCT4RkmyfIRI$W}0<7v@@e@OT)Ysi9?3g z;rYYGk`2{Q0l|8Gr_2u^fd&^%wku!0Z>;Y`x5B9Zh`C?$RyixeaU6R`l$`Js-`g?R z@EA1n=8z&a?#y0$qC<}J@!ZuZdHNozM%?;Ev_yf;lUQeIYczqjYpFPb6nvdbrE0w^ zkI`aY6@?_&4WEiTiyFJ7kt!n3Ql`gf`@}-1Y?hX!yL_YLZks_4^oL#mE81~%rT3a} zt+^&!w-j>&bdjxEHmaTU1>v&iRfqka6LC}nM4mjp!WXY%?jKb}{KEp%daZPxGJoTg z9rpU!QS`Z?2ptr@tU@8JWGBsXhMq~JWLipUc~}Z~qOS5IpVzFUXUuX2o+BflrJ84^ z%x3m?tj>X1X8N>v$;)#j9vuPE&Pzo3aLdv59I1r5X7U0Rt#FIc`%M?Q2rX6eO#9Va zTn0{f{QSvm*^-^~IeKcW(rasH->6jBjB)$c=_)Nxhl34o9nBPxKP=PhJ4N?QZNC_- zOl)(EAYF6Q?k8X4Ij; z-V*=2G84jXw)=)_TwT^3Yda5FP9qgX;PqESMz<@;3SFL$vh{!_ciwvoppfJ2oIY?fub7WdsuNtGp~b96{=EDP_$>bn z=&m~zLSctH#2_iYOd>OOln>pdu6t?P8>IngPgk3 zI0K9HLCJrijv^ZS5F;FzJ5B-ExX6&0=5Lyq_k()H}1Dw<= zj43v|@ora`qilg1E0$fR{Etw8Y=!P3dWcu}=7Jq|e1nRNVW(GcnaAs*`Q%AqlLOe> zXcM}4bZJPJmQ`FpjKvo|2`3Q_Z~QBKuv5=4V+c%UrTZ=c~qUFNXQ2H<9bVs|7+CeKKoF7-2)VTa9n-vk|I()t(Grtg4Q>Ck)C?{d5 z8z<=lo=DYtRX@uO?ge_?NYW~}ucxG(55X*_xY>aFh?hXOxkxvPhR3?kDT$!tQ2!(; z54xDolw8{^@4Tm>^CWi3(_U}Sn}7W`Y!v-{gMSL7E0n$9`wAPr9Qc7$GlTzdN+Hxs zsM}y;4yq)Zi^Y04eLfzO%8Tbd5V@=OMPp$;ykvakNW99e+)FUqpjL}wcG&1ig#RAH z1icudfJAnJP_t}iSif1pqg8h=c?;h+-z5xP($hY`+P=G5N5a%;%rWb$a#B_^jXvwX z6D@93Tm}=WSk5V~lfBSC1ujOuZ_Wp**b;OEOxX?&)hR}%&mILXPY+G_ zWptw1KZ>mG(*CWAs>k zsI=3ubth~}5_+m3&?NNU{uun7D4rhQ0@#hq&=N=M=fAPgm7?@oUx2?hxnCywf9@6g z4;ETL-|_!+ss<@Y+b;Y?@V;Po#zF#uganl^&jTk1RoT~2$^$COMIkJLLdtBu9#%i+ zjO*fu;tQrmha>QdWq%y?!w*W`N(GS41E0C}>STKu{`eYMAqH@*?XO+LCShFqt)y|< z%Ugvnl6k8RKP(n20w1>f+F{XD9~O+(f4bpBwM=^yB2fHx%gCJ8O9UBAHKq93@A;DG zM1y(bJyHx_pJ;}>6&obHITae(;~d!3My2lRi+#x0LJDVB42(busQ3t%o4ERkAPCRb zmm^ZJB?(}|7=N7;W4L_1QnTB-^(FbprF?C!GohyaMmqUcP7jPy6|}z1Z{f(|0t|j z#{(fc4;KpS61&D4kTXwcEh!k_Ni&Lb5RKT?6NO>wVSi)LBpKAsd!{oxdgL&{^B{i& zo17k_iyt{Nayr)3mHQS$2Ui_SCgaZ(4w@!?KejsLUUO8u#nLOdWRIN!z@{U%TROIA zjYZs?Z0Blw8NtZJ3>L0;W@bDDQ)VYy(fEiA+WEpxFbig7D@a$*&Y#*MP_IB~W6s(a zXBF;xf`s0YV;Gs!bi3wib*bIN4_Gn89$9XL!ACDY6Z__I!j$b!3-5|5!Ofa4!Qj)9DESL*s zNRkh8jdqu-{}zV;H5&>IB_x@rrICjN|KKd7U*a68i>mqj3GO@eqQ4K0yLY^Zdp4qE z*x+2pX#Pa+@p;8inS7~#V$a!yi7FC$9GI!K*i*tB-zXx?f(tGdGv{E2WlSW+iK_#K zV7gSlRCDzyp^bCmA91oNG^8Af7fJsNMC^}87_Uw2JBgIc$YXlrvlImh5z)`UN5l5cNBLn4P&fjePI zSb|rE(w$g3?9cfeLO*AvsT!kdkKiWeiy`pZuf;V;jA(D&Mt~$R%FF;F<_N~x&D2Y? z(>OIy17Dn(R>l}3qmEQ)k(sGdXL3FUW8hstft%XUoFBZp#5uTH3=xzT#B>^x ze=Uj!brm$;%v;`(?^+)MDH2aV6?4y_M=w?#8S1x{i)z+SCYU86{e4b&ob<#ydD1Rr zX0(6X^i141h%88&A1=28=q3NeM4HZ_KL$jQW#}Bec{iCgdt5vuMogPC!A3L&_P(S_k4uVprh)RY$(x<&l>Bpfx z6Oyf9XynOPR51ctDe_d|i=1nu#_!y;njK}Zb8s-_|9Ds9r1<+oAU zv}9f^uKnmk?uY~%zM>HaYeW(sb_rX`w6U|zJkw|+Wc9%|&2-32C_-?B-u8`UwwlZ} zB0d=}Gcq0zw5E$n8APzj&LO`94vs!&4>(ND@UTubK_4X9pj(h^myY|^_+}@Pm8A_i zd`g|uliSV@ht9vwD9KZ}{Z|)^+G{kj=~ye^ZKQ9ZbYPo)`sVSOPsfbJ{o^%CRJtK< ztUtI?V~u;=n#}M;lbJ9QEDpJf1S5?Zf?ui&(^7a++k)h zzECQviR?g~7t9KCPU~Ff@SbE0Eo~oKC>~_A`?sc;%wF_jYKC25omsjuFHKYX_}@$H zz`F31I-giSyP)B;BGaRq`+Cg}y>7>J0He zfJ;eYL>UsvcVRli)0fvBZ5*iNB^KC(mE@j3e<@|sqg8j;pJFYOFk9MPo2dhrIo8=I zU^+z;Rk`SyIuPAlC|!NjY6I$S5u6>0LgU+H@Rj*IL^F3Y@88NOpr-C}2Y*K8QYR;u zE`&dF1XTazg%i1u8;_L<#+SC8|Fqa2b@`^e@S;?0Ibg=m%WC_pi!EjkAF5v#tW!!T zeNE@dcxwqZy?6PWdSuiPVmz_R9;|UhFCH`NbgJo%f^PB?d5J4$_@m{*qvpaN<;~PR z^8o$;THX>bJ(F|(Fpd47;|$g)_3WVh=2m@%1x$>dT!iD$Z_D)@xhaNa&vF0tfc*Mz zprp%YyFdI_>1l}hzbQTc1C;!KqvSu=Vp(eLdjFyH?BZb@GYQy3LPUZT+9c^EBh2I{ z4f}no2QCxFkp?f5)}lyl%UGci(s>IHKcm0q4eXV3dP935ur=hw=#^`$|O*qcEMp zSJ)TvU@|Bvs=^8b8J14Uu2GSP4UgGH6{mg^Dk~BNbL+h;TdU1UWmSU+SSW>o(N&YS zVxHGymZz6t06PeYzXNZe(3WF3_-d^YiMk;3K_Uq%e?wbqWgCc5=%;2?eTMVg*G}4b z69%i87Mp8p<~s<~J~L{i{bcrGL)pN-G&wbcczSGLs*Q@vfDORZ^;GdJ;=+WyW4+R~ zIkN7+7PV|NySN6w$1c(4lG^D(3P#bZh1zD&+N*lX z1sB0M#)o6>A}$`ft*5|HJETPo$W>2(isD;v7mCul_it8_J$Mp{VuOjxQfP=u7_aU_ zn*gT_mL7-lA*P6;4D8UUXdBGoWOBlakq3t}M`g;WRs<0JrahkA|ziH$i9rbLQ&rKz}6Tii|0?{V^) zI5<-9jq647R%J%b4{ekCSbNRFT&2-bo<}bbCMaPg04}<6TzOF3_t&a1If z;#N1rd2VEOFYRQZ2NeY52LQeR<>W3_kwGaq?)31%;!1Y&IlxJVNu;2h}BB^|Y9B zgy@+zcxb^9uSQl;P`3xYgNCCp&6K_<5@|UoHIy{CRl-OUab8+8~Ujp+1YBretnF?;mnj z^Er*{inhS=qo6R98ubAsF6eGDeSBvy#3Gg_>I-akvvM!L^vqp_(%?@(EP-MiOcM1E zdre9aJ1+i80#DM;@L7V($npUT<{@gq3|k8ZmN&07eSvbE-U>;3a2=-ZgcITvyV$%y zL#a8Z=z1z$9YQon$lqXl-EgkE;7zDZNvgf5Kud#d<5EG!m|S{3*9o4yKqUDj5=eKZ zZG~{Qz3a8IIDKG}P%O$v6;?_d3tK+?Rcx_Nlppknzd?#>;LLFjHU)(tY;BMfl*7g6GwS zV>)|f56t~jIO%+oQFh%ukjBAGXKMoY+tW4+kqGit=z(c*c>iaMxytbw0@XSkmuBGVx`mci|A(pf})SAD4F6I1<9N{^CI9W=TJ=|$ZF2N zdzYWR5lQvS+sXDGbiB}V4z4aB>CPa-jg%nDdXzBx3mg^|>g<1gxa&q(9(O3y_QKh} zTkfgd9wD^DLK1K2rt^BlBk$td5wWRfNLf*V!EQu8LaUt8KRdZL5|^*Qg!o%xB}Mqg zUoE#+NM6W0dEn27WKM`MC<%P_G}t6wF)K?rQE$Lw%NpFHLyOR&CmR!po##;uaJ% zmI3~i?p_TOq9l7MiM3an?fpFJO+@sH^gcnlDZ3n>!{$^2%;lHavDu77<79I_oq*Dck!MK7p_tKO{NmrLGg z)-^++uzn;ftVt5)Zu-{~TFalA%ROWa?ubi^&DG(rw3&k25Bvurm_2AUe&N^p0GV3JS+kWa=Bo!IWrerY9_pECI@ckso9$ea#WIKUU^ne7EevoQ%xeW^91 z7n*>YSd|c4^8jJty$#s=YgI4jpKk_Z$qqy~d&Yw1YZ8wzcjqk(o$NiIHs|zXUf`O) z_**>m$6EK!c80{`rx$VhD~Dbm*4^Vpx7Os{xPz`tS8xO-4@Wxt&21bLh8#97F^-OL ztB~`p*yYY??x6ztTRfll7{PFT&YvLhO@^x%+(D|Gc2G6WdK2~J=Dur`n?q&?c<)Gf zL*C94m0UOMLEu}bT0SOC6K(4}D?BUC7^o8`?bs{m_N)&PT1UdwqIci8;9HlYk~0ng zSpox7ByAZ|9{{{!?M=NQ@Oy-umZB`tv3Yd)rTro1$H!R3xDDX=eWKz&67@%h>=q%8 zloDo_`L)}T3W36<=!&%|xgjQ9k8SIMDmR0m`RTx_XA!C7d(+UR$+tGc+2phAuh=6l z=LdFBa?M<9YASftypfEa9w62GmJ>x6RO3ZK9dL%cYz+c#7c}8;j4rd{!MrVcdjqjr zLKocWtZm7ubR}EF3LqshDjlanWFwD?*+R2I4^N?M z!(v9z8>7<$W2>F$yL8*5hz#k|vbZ*g?__w*^4u;E6O4eol9ZlEIX(cYb{C8vO-BlM z70fokyj4H_M?0s(c^99h+VYNT`upbSIec$3kh&S00&7gfS7niGh#^}{#b2?yZMf{1wERWiAiZ9gv-eo8LP!oy z+8DcHM=BzOwc1S(ZNMoYAuHaM`aPYbmqB^dI8@q9<=|uYO|F%jE`<_tLCerc6{75;x zbpz2QL?z1*&HY z--SZ|snCn^H&!Dtfipj)`BXC?JQWR<2xK)+ZQmlNhd8OW%BOhXy-Oo(Omu7_#R-({_j51fMUifoUE8C84!5fIJNS% z=+!O)i&>}Qw6}IG?_N$b26y1RS3+H1n#{+iN6~-fJ$z_SO+$(@G`|Hk@8ESddQ|p@ z#ed6}e)CRb%9jL-fDq)k^ot!^AmkDNSg!ANQv&?>M-KH$vd$xdVADsOzSW>%(`S^< zt4%a`8OmTdbIQ0sMwK#a^8tP%VXj{1?dWv5L=3)Sd$=v(i_3fEu1uwqniLFI!-4Dm z7H7^bN!K|s4-NX{#;m)rubp!msdB?;>lx55B&ziT){=TLz5#)L1B7=y=hCD%RWZ(A zl3d0Dv<4EnB%q!HccTibp@bIJFn9s@izsFVKm#ftlYGg8>%f6oUG*E_s+o9XV{u-h zB&(oDTTRX({46_t(yF6ivxaR9!U+!{qk;8uS~>KFKfhNxmDBG#eb6<$TeC~TxAx5| zNZK-~b0OW(&N=mTAR1qZfOFd#P~EFsvYOK_d6cG}i>#stB(GU$Tf?(N^FI;!qI_eZ zeyDm<110$F=qUheU*j{#sx~?~r8g#Y9--u_B&dvLrgu>J8f>*!#EA2&HgL$Jr4$Vva+QteyJU-RZU8lUw?o6S6ga{kxbPf6<2vQ`zmohtd)U zCm)7;dzqWaabZDM7MH7Pw6OzAN$;ElVhgoNz@;VHJooLs*VBXb#tRFsC!1~u)i$Gb zl3jL<1Tm*qIq>SDS0QsO&$ZwAA9T-UcDYm8aTYFxq=*C!;aTCq1m6+#&M_r$;uw&g zwF!H$KYe~iNwhWrPjZp3whTzGU* zxx)dvmI`C$X^)(kyer)vV1Oi7X)2rwf`7cYI>fqCS1F`T;VfGORkqSe=6n;bB!7DyPWVi)qrCk z@Wxu1C-&M+lHLM{ximUMj)iQ-&FBeH`?mfZZGfEr(`ASj2)2+?jX|vX%i%$0LKiC$ zZd|K5+>BEy1jXG=w>okdhum97G%eryg+5q>$^+XB-D1Oy$mKN{B6wVDNNmRqJmZ`c z1jF!WeV$m_1JeJ!!6`qpTWqEeshSVstNmQBMV$OhK8&>_l@1F$hQB0_gnVu9v4mJf zg8Hn#POICXMto)g8jn-Z6p?D4Q}nbJ89Z*8u#WMJy1JF#ggk?2pZNMv^7>E}(KW$^ zSu55o^^wK(`9giRxpev;oCe|xw*ZlW#BeQ66@7VBg zIXzP)O300(d4W^kg6~{;j|GhPM}3Pcpm`_G#C?%9775>R-{P^~Obefgs;++a0pBc^ zW9{kdoYrHf^S7sAqx zqJJWFxj$VWJt?xq8+B7^ww;%NRu}=FqD!=6_lW3%ecDK3>Yi8xay>wXMaasCt9Kb& zrPS!qK?UcDCecf)SyyAGj&P4%)85_Df$FP&_jlJ({qEv%n*tlVXL#BC+NCnF#%&E! zPrZB!QLLfDDGjxewimz8rx3HAY-Zo_UyP|FSUmqRtW;zYEKwBz4Ia;}sXr-1*2Dwi zn>%14!?s1h41Hu%fPqTn@Vegp8Qr2wTP*$kEodh~`26;IC9dz48HQ0iZB}@RVzpfW zhI6`OvliM2smu7UK)r%KEjZXFLEmXD8I=crp(XLj4 zOMjLMN)tU15I3d%tprYCytScI32KuEX@C|d&CYcg0OQ$&CTKvV$qtIn(9!@5qgPWO z3xzJrPIa)hvCb|m43$ag;5tZ?*2!K|C!9V_(#-Du-CDxBTYRv<5#>ncgvOMb%d@B` z>qEJ?ABLBBaG|B-U?(k^?sx`IXBf722aGt&7it3R*5=?;D9t92mjIRS*9m(04nFPT zw{fR*<4wx+$e|OU#`<#m)9!q_#%$>yH*zmF$~2;uxevwGBv;sMC|vJ4q47hPl_IV} zd;t9B*m$wcn$ZilSEhs5`UqF(c(t(waF_Qcd||OP(7Rcl?{2e$O|FTg0V- zhAve1x{j(3040b?{%(oou$JgGEd~rwAxNoX+hr0?spd9Qs1VGtBJ!0Heiu%e6p?Z1 zz~D7vaVX(%)CUwzr0`Xh{zHnTa4>^V_ys_QFgagnZJN zouTdMaCC6IC&5g#?PW-# z^2jZD%*n-SLvAIKE>(S{*s5;i^G>ro$ls+Qw#S;i8L^jo)n}hQh-Vo9I3RWxB7NCYhY{sPojPDIUTmQU+_y-g(Ewwo(!r(W?JR}Hw zlu2PGC~NWAq73n5LH768jLkqGXS_ztCc1vOtWe89XqK|Ws)H$z<)FN0ye86h1((_j zk^MVrwDSVHzI0LE08`Z728tTWzjFDV2(BlgL5ycA#lG;ky2r4QchC8Tx4fS9wxeve ziZn=LtVJoHWV5>|$IfO5DL4QL#McsY4sN9=abv8KWXm@=(n^_s^u^;rq(E{Y7;CRd zHm>X#Q6tu)dYxwHt6o1{2GaFL4{gt<|MY15QSRWyV109TJ&)=y3nq~1VB0FQg{^>j zSce7cNus5(ST2y`4L@AJc=;gx=abQMu-AggGL3a()Bt!HN8++v+k#8xE6Yas`oU@K zQovV<>9RR!80LDz4*rjsQUZCu|L-#}+wjlqQy%{>-9?9jM}4p-B*MaG%f_-{4?(m% z>QoLgA(dhV2cyG^D*AOu;rCG=*+Go(wR-eJZUd$AuYLYPWv8o7&6cF%BKE?G*VosV zlhl@RtA%NTym@{%=bTLKQ%n?hLqde8M0J^w+B#DyX)iZ;Q5>IQeY zBOu%(Q%5(U8zWNS|Do(1gG33UEaA3o+qP}nwr%%oyZg0m+qP}ncE2{acV;#==8N5p z_$n$=RhjiCZ&YU9bIP9_uv;T$L z_OuaB7z|3b;0}12KiqosMt|{fr!b)Y^Ttqy^2RoHR7Rcb!wd=Z38i*27Ack48#{8} zUN+VAy>hz}hAZf1+DfNn__6b!M2*n~qAkg&*wrtyT%)~t(3Qh!mteWj0%}N-G`r~$ z)4r<4_z~68Wa`}ER{X-YY6*sKg{`xbecCX1VN;$~ZRD|v&0wFP#za?fPhIlS7?pJU z6VGFomeF;1&us^6Qd>TweCoXfVUSy{rhr7K6>n4}xdQ55v3g2u z?jj@96=K4w8P0Jc3g$IkqQMhvY2>(pk9-~Ngc(*Rh;|kgxE8C^{L;wD6kqM z2w!=*f{U=jPNQvB+pO$~a|rfnVS#md__Ix%wX8pNY=K-uw?u(KDSe`6bV`~DX1NSG z$wQ=1giSl^%2f$+mv{`LsaA=S$ci+8(fy-w37Cek>%q4V zwHGgR@2^8+sfr{6sVMB{PE+I9+zo@)a=6Z>*rP-Hu|51--s18a)m6yHu%kv~856xk z*=eH+c)UMab`Hso#@{l!cUDtdBF#+B&V1Ug{dmg1lsrCFd&Lgf3|%Ss=(xKn@CBJ` z|HLCdk^UuycIbkC)fCZ|KBN!_f!chK%zQzbjyr+*C~coBx|emz96QF%cgjAAf98b$ zJKvgDZS|Y>st)w_?3LMOr;r!6ZSF!#3kR&jEgg_PhNj{)KcH0REyF`dfKR_j^Afn@ z%VLZHiw_8UOl1MIF~XkzVSEpT;mawcyY(4VI(eghe*4$S{Z=m5xNTfaOlk2fNhU9z zSKUawwy_fVr|kJn_Q~@p#OW!?YeOYhc@*^LcTc3Ys-nIc)t(YfjTBt6lCQG?7`Np&?Edq0(6$Ox$vtg#Ts&p`yL`we3d4 z%%qCEZ8^+5n`5IRV3hdXTh7D|HuAGz$1ryumvGW*JjwO-Y)5|nr&0`3LM^n^_$Q9_ zPz1xCGi$VsTs?{5I?ch6As)V&=O#5u+jYh4JwBNvgGi0Zk~|7MzQBlTSRd1Ktms#D zWEJ!w8yWEgZQjUNS4jHF6_a*#74>M?wZ#W1*t*^aA^4K!?I=tmd)`{@us5#a=?kl( zzd7QU(rF;_^!^cG?{CQ5%*0|-%>#@rk7y=UZs9a@I+(>J<%XK3OJs|2(KU*$o@WZz zv%&t2@*^PTZdAaRx7=cKDTT&(>DWL=j`EVb&{#S8ops09cs?)&SJa18xY!a*!=?q) z+qurK=IvgFG zm;;T7vt|UjkX$W{8iOHQ$Th06Mm6ZbBAS1YUF!`dk$*6#jta*10K=!*Y0?} z1i^c_E2YrO*f&!0^TS3vUWUt-v+Krl&a%d-t32^D#pxlqcN!dl^UhHR^`cw6QQi6;??66r()Sw< zUdWMCL4SF}l`&^Z@Ivr2pSCF^jUJ$u+7gcHLhCamjV8$FO}Vh8)cS_3NPlVRH5SeAXu8|H6Gxy~H{Eq#BJ=hB-sUKrt45%q>3(pbUH$Cr- zO;GSl4+=^f2Re4xc&+!&A7!<)_H17)9Hk^=x2J|_a#1ZiY8R|AvFsJ=#TL{xT{Ct7 z@?}+L7qufR%zVB7^!W2ni$%W&_`QB$iDVoejSpp2X#V7(Pn9jX|2TzyAEIcgHtviE zehKkItR2&(1veoJr`=96?TY_M-Xfi@UojheB0@ZAf>e+08Orw!#wr8zI8l>W7M9l2 z=jQ8i<%h786&1M5_{4v7S9zG1OK`hqhQCZkd;C-n4+`%Be9Zzd-&Cnv^lQG~p-=u!PSAwr}hdl6GU&p-k}H_6=^^`s!qQsX$+flr#Ac>fmCP@tw)7Z?z$|ojJ(a4DHm}2XBrJ3v1TQY(C{U-&Od~8p9VC z{0w`jD=qc!LYX~Dv3aVxX|kH?o2s5G|8%uaggWo6b=vn_dNY`~Ys&tMuREj-8>J*0 zWIGa_C61dgWqhy%VX+2sv8eW?g%Ks8GChh-`GR8Qvr*IroU0Ws2rzEl8d+>8A`tI5 zTgV)mq05LhcZ>37fkBiOil|xA*zjrRRjc_d8QIe)+38izt!M6SH{b3}?1W+vr(cJpMs&9NrGpp@NO`pTH|4C4NsV%*f_B&g|By$2;O{ANX5nn z4f6#1V1m84v`e>P%JIsyj&dM$g|DzzWPF)FH&|a9x5dbo6^?sDl&SWI%?undW_MiQ z(PZ0K66_ycnibk#nMv~YhTD=wqq!D@Uz*6V30b9><(vK|U`;q@-MvaG!u)T zy?x zI(a}Rh#A@S<=|Tu_N~5!7UAp_3$G(kNug2^vgaFVhB*wsgt9qLb$EiwJVFPR3I6-r z{)MqK{R`~AjO?ImB?q_6m6~So=QiX0i8<7MGGWRRtV*GHo=R%X4z~2@_mY>n|)7 zi&!7IP8V5RM#Sjq7BglK$$~B$e@0)AG0^b#f(TNVOrpb4;aW5ugG1o&oxdX{k532) zz)dw);r}s|Ump zCPzo!p62d9Id}OT-`jrxeN)UlfH#5krt0Gzi#Qy%kptxf^=eyG>UM2drKf3So#o%{ zcnCG?#p%PA*iLa0l*H-u&<#5?2Gj`n>PC>H$%}6NwW>rsx~HZ)ftFyY#3?391qaSG zhAA>9W+!URm;>+|t7xZL}?6z``!YJDwo-C0iYUUK@0Qqce7 zwWJvLUY0ra_7_aL*ddct^XTLtmWI$~49)a-PnPmcyAFlmlP$Law(6Hv9@y%XAQ!Ua zUlL83o3_Jj&=&t&6>00vjf)QSGJQ<@+6v=c$CYWgL4jYaASCZ8^q6}x1_9fNY*3XHF4w zXJsY%!b{o^Z|kDYsG!yDp3$Un=EKJ5K=~*ZKN^IzZuTa9@3cDagem637#-M)y{fqY zmN>NS7fEOdxNU3Xp`M1pO-_)g^#>{mq2PAb3z`I*SHRLlK8oG2rQCl4|gn4*Hk(LvF^&}Ts+)F%Eh~L!9;>y zwH;QC5s)%1sqFL5yHK$nI$3f%%OhGBjr_7w?%^)>vR$D4^>00)ByT|987lwuX680w z>sv2t1HaNfnmEd688s{=u3Uy4ec=K>0NU7#_M_%({Qo!9H85C#}UNMJ7 zB2XbaZWQt!!6SKSpR(sC$kq62GVM>%md!2guSj@!LjWC4wJ*S8@qGe)GEIknDJ6It zW|Z_h&yN2Dz3HLRcieq@m0Te|-a)v|Mi~D%11ISj@#1SzZ*H+?M8Kdb+#7D7v zBX*@wl_~oVs9Z#;1!MYvKFsR$<)Vtr6Y6xlS7;$yZoD0cwX*eLV%~R`7jZWibbxK$ z4)LZwT~XT~gaVjpv97x6#U!k~3G-j~-?;YiG_BFD6;qjNo_(f~@Jr{hG{lKhXq5@{ za+$T*4uvFV!DB~pQ%?p-_mDDsA;}E3@>Yu1Nkv*%YC*sN#(*rY7-cEn#;BiP`*vtG>rlU_|y= z4(8z*>fsS;txSBk#)&k#pmnE-)CmO!rs_eZ?4;5`6cdGg3>6MA z)L21Lv>;3a24ons4-6T^S=4_vNXW5-TA}&ub#W;bR?q&B+faSzkK-*0aF>8Y3bCjv zn&^V0s&kJW;e1jk2$!=)*n8xzNniB;-Hqwd<$=Ts1OR~c3;CA%f5N^0x3G?|#jih; z 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

k;Ox@K=Y+(6Nb{X zNy#7O!-*?LlA^~U)~?g#0&@&-(R&+r9q-C+Umfw6-r(pSug-OzQA#A3hv{m8Q8NNy&OWUko8rfa2_kD8*s7pIy6_{OyW zn)V)f4`-4DO6H6ii&`odf;*>_ZIH(=QP~S=JFH6%c)@vFWTHuj zUs|H;4&5ql9P%Xo?4fE3=yh#e_aoJh+0)^6A%%ysbXq~dnUUj``-wA&6*YnKjSL2F zthO3|nD?nCCJ5}=IYAaDqRAHVcJEWJPPdIt$@tiK2dsJaH!Iw5^ao4}_&kJ}O+b*+L}Y=~xh;(S5=Am;)rFP7W7qz153 zxFtpcS0BE^?w~a~KRDmsm$67!q|JUa0ZkRPF^0+Pj{3L(>DlmVN=?HWKF4~Il{E{W zPLiXnE_oP8C()g~T1DALI9HcJAy?<9fwaB$VRz@&{`PEDs$<@y!+s<`Q&LPnSsqEo zZnLOaPQY}0Rv`ay%>zcxNATlBdO1Nq7Lm7cBY{Nf-YMeqPIr8>x3IuqK&08^)d9hF zp`An{wDgTqeh`8Z%Om<*+_;HWiDRDE2I+^K*XT8Ih+KY9K3zxHm|S~%F9Nh5-917f z00Nn%{V{b99TD#LlGp+R>0mGT$)Nt!) zVICQ;U0wQxTfJcas~Gx5N5mmNA4@GbRR+}~4l;;t9huRtO_5jD6Vg|S?>#8?8IAIa%weBu zb9mM(aP$#+;}IDN?+5ng%*qz?x8w%Ki}(bhzKWBcfWKX7jth5bfP*mU69|)d|07IN zFm`iyF?O?d{6{8j&KG-EjK5H+aoi!b&?!r=5O3J(_sP+f)ClhK%b<# zkEd5UFiU0g^sX1fjqj=dCyi!d7>3!k?3U}81aoYa)9)aG3ujcFUyPhvYWI-mjR;3Gs+GMS`D zeUD~lG=9B_9G3;!T@EM24iiW7W`uQc>792F6$?`i5nTw?yf)czLVp5-IqzUf#i2cf z9+@C=^QR90+Q%(YbAhY%TkCE%y^%8x zR9UW57OovQFEc4c1F;98k+24(*X>8VaMJwvl5Z31wdd1wE`Q3u&zag(po{s$^`xlD zh~ZJG+Z;hI@A+9RngM+zUUKVhB9&~p!$kxGSJ@HwP=#_z%qz4F#&=5l%_@HhR(RZ+ zcoq$et4R#u~nonxv2-69qU|J!*4K*f7jL_HB&(VQjp6JrLq%Y?0@fc_th!8XR zW>bByE&v5AQit1yzogm1yCHQ1cA8{(Jga-oyXuh-^{ce-7?Xv1z z5w-POwxQ3eicL4|w&A5{GQRx^HiFoBbkow{_4L8gCN{n;Ryc$EN2ADQdLvtouDx~{ zwaS9SQt1m1+MJJA4&hM;c%xrX42%YfU4Rir5aBL1oS=%ab#9=4`p58b?PuViSJ0Z{ zf_*amM}<9sU-wxs^}{?E=gcsduV;W>hQ*_+B=h%l6V)Bl@fGw z+ZfZpPxN!jnPMs;BUS-wfxac|57>c162f=!z8&jCa#jj)?_SmG-aRn?vio;5vsbWa zCeOJ@#PoO^nE>E;Stlx7qMiGm(sS-8zCdu9;1b2j@K<9RH%A&(G}g6PCU`}#Og~9o zdOo-$-+}GSYGKI@9ar!7on8HHkv5{0 z42cT@mI4sr`p<@)FUC%GAc_8;%GnovSB(FnTuEDuwn+{J%8=D>bL0{bEl?cR^7Jyg z5s;k}9QIgkC!F+6TULpz2gFxGyWO4!!jA-mxV5-l9&c#bLhs*CaS9@a!j`9c(i1&6OOu6Td-c%)*OWjTBYZ4 zx9ZwX7$N52)Mczr7lSYbEs61hkUB+1fXQ}UjwWj+Gi6(?ad&AN`zM>5!?_r6h`9?! z4c8br)^wrh%nyA0C?zWj5z+oNgvywDbTdLfcE6 zP80kqxOY-?@0;i<4;r*azGUiYRjX|W1M4putNLs@gBg58Q-rS$Qq36HyF;gX^gT?l zNK$hfL13}t$0Zh3id!WXC?oq>_u4ug7V5f~FX+!|*?p5s9n^X{#_5svk?cB1!3x6< zqZW2-OQEKmSruFLZQGbF9DyWQBweDmPSff(hC3OOO|l!cTNBI#+a(7lqFqx?W~*sW zUfN<1RO)z(wrWN0%cT(yXV|9_xkp>s^G>K?k5-1Ob0LFz_(d4y+BJ=yXj=`Bv2nm! zzbv_tEMMYpIStufvctO4Y~>!euOs$Qrq|v`zpkJ!x#c(()klB*MYS@Mi5?A>^Y@^( zHAFn@^9P_MGWP@c#RHo1g0vSzHjwZ`;HCVSY<)-dzD&fY(G&Dm=zaKy4w$irr zM1LV*Ca%DU$K5!7vx6e!j>Lg`Gi`j9xyf4}x&C?_5Q@PyZo+&bM8EA{{0NTtd|dF^06gy%y&Y z7rr(b+RGuIOQ#m`&~CSpJrTKZ<)z8fDPJK|z8(^fO$HeHhX_ju5ii}MpYL%}eiNWL zS!VyTwQi5)GQtfv{h!R>E*K=cv;d4;j{Hp?Dn=!Dlx8nxpD z*NagjbVW0d_*?~VA|VaM;mjZHh6U5u{r9Nby6ivnf9(Vj|Kpt?2yUFL9n4+-i8t!@ zUobTPdyE;7O_V5C$;Y&o2~GzM*hZg+!73`6>4DHK?r?H?mOs|IxEE*N=5~w%#Dtde z_nQ}E^Y|X+o{4z{9xULDSVI&94>$cTctB_~Ng43*@?r>9J7Ch@`lU8~S?A}dSpxES z;z>G3m6ifttNpqKM~3t7PHShP#TY6j`q63)kie7Y8W&S0xxks7=#)9>-p`(uDZoI# z5j~FYv6ao2>N?Jd&k<>PEI=a;LYr$LE%QfQQK=h7S3%(8*HtpIK2$5L;oaF92eUhO z;7M)f!0rL0Euujqq6=@Hwj7fspg8612L9T0@Y39QH^W!Sn+7qV6`O^64OE%u8 zjpF@Wj_beGlpPA6lSCVfidTp8A(gL1}{81YUz!s9}&_AoM|P0tej zYXqV@I4pTI7>1d*MO<3#jjs8{&bs-z4!p78^x##Asbs{?6C~Jhk1;pyUX!c33-{@t zy)Wx30DUm8>*^$_q{cjO!sY&Ou zo=$U(l^6!ysa8Gqvo4i}$0h`5x2i)xi;o1oVNQm77$M}dJl1hlWcjv!6tHWNIOs4+i1xtxTawzR{jO_Fcz6nq-w5@lEAUf|t zhJ>{d{j~gM|hy2cQ;$RIK{8yCEZH? zf}ri-#et2<4Mi#X+k)H_!F6089iGcr-S^ipg+y`6m`PKdV?$$90XtYU&NGWm@B_Nb zR#G@h_J8KTs!x zUIO~Q%pG;F57?TKXATmjLN$|G|G;+B73RsiS4Ysnnp^ch&%!Q7u+m?-Xw63g_p7pk z3ch!CL_vYP(O;`0B1IXz$qV(y*IGeP{nYj+xGqS&d)HBT6~W~bzK@9YZjb>i#+~xc z;N0zsPpqo8(cSMxwmVQ)50RkxUuOCHzP)V(QH76T~!WfGmy>sZ8Kzvs8PUv5? zdkwvT*Cb5=W8DTrXPc{j|D8Xc7mK$_Kk0lWF&|OUu3l*^($EDhmf^@pO^kzTD;z_YWGRE*yhx! zxs&OVS`An22)#yyc#H;~0ydI6R?Z~_CO{-{hBaG&WTV6cG|pTMWyN@DOF&?d*vy+p z&ik9Gl!Ylax-*n{aW2v-9w0iNVquAKPbz6zpSd^bd$bubV_*6xS@p+Nm~DdcyF4~- z1{O(tBM`;LY#7cilZ3E$l&_&`Z=-)vTa?=9#+K*QPQa_tyc~`*@h_8e(Nrp5qbXg{ zLA|NoZ*}&n-*sjt2G=JSImSiSS3OCJh)+m-4;WgmrUAsexNchXE&G-UC%LrfD11Az zxu656u^a~zmq*>kF#Hy2H{&_V$vIbO`fg#jZsHMBX`B{QI^0lpwpi0)+U%L>mTF?6 z5dU4HXcp|!(ZX;5-(@v z8!5Vg7&PYn-iWF(7k2xYzJ?@PME=CI)IXdC@Qd0j3k7hV;2wI?%iO0iAN`mepyC(J zWV(jW>-`qD@uG|sgUtn+X$Xw3u7moi05@tG;*CrRUCb9dgNIFi!6c85P^yJs{`(Y< zP*}uVYwpx%(5<0iG*(pH40|tTIJ+R?L}Y<}z{H%zP1fDl^64GzQ9^9{)|Tkwg;Itz zab(fd`q{$LDROHFY|;nK*2tHqTVpCPA~7mpI1L02$R|z2)Jys{PcWES3CrwCynj#G2 z`A4=s#J!u;Q+b|F76#=`HdGDe&#(4Jy8sj^8t;0z&>!ZAO)}5PCC8I2-!|;<@S{Ik zqz5iz#^O5S;fW$jjNOp;mh}D(GQst4&wmXxaUhW4_>Y7c&@tx!bj7IYx-M#5%vboXsx-?vuUhh&sxQ19xiHbFa0^Rx_eJw!<3k8<7Ez4qeT_(f?R&91anTuP0d zl63o!cwNM#>!I-j^=z?f7;wFKv?A6jkHG>~rBMu+Qmu6_I}QDtH!v|Yy@4>b<}sah zld(}0uip-fE;c7ad{^zxsFovtp^S51*lM^{}j21(VTwNr3^4b z^yR{iM8$&J^K4qSu$nZ24(<0mRq~*pnMxf@-0dI!x@(&e_3RPc?bTCSXy?>Chq*)B zQr&xOsA=?Hx%xF@g1SdEzQoTwC4%t z(@()FUsy__0+laZ6ERig=W9-kw3n+eZ_Lz^CgU39!W&}v=mvrldSLowZPzjv3?F|_p{`4h&;E@<)CJ5o|s z%wjjkH+8v2@MJg=ekl|Y7#?mFbV%p>iuc!YDrLLUGlUzxk0ccAQV0TqL~4pWQDD3Q zp{QS9RIUKB4SQd4cN|A&*|M9LbwV)oJQzDecs18=kDCYGq-gIF?%JU47G|skw zu(>%(EUL_Yh}3g*(EFD-W8KByD*JK9k!^B%Y>Dz3tqa1KHx2nfxB=N49!kT#$)XtL zSN@lnwfqOnMt|RlI24uF>AX0|u#RBcc>)UJ-|+qsn~QDGvnm{h#v>^2S=FykCz_D7 z>oxhQX;#R5?F@Hy6!t5Nzd{WVt#5M;(4TYaJEDdO>EX_Et5do+%nLLz?IrZ;;M@i9 zR)}EVjMd&_==+f!PO&ONc)HPl=ND@Z5YnGueGf73E_ACe)hsmgDZkv^Z|c@3poB1z z5dXmsT!W}>KrdY*q_6MPvWzOn7|s_e{cIyj>qU+oHqR6MWwGJ!2B&Oxp|S~(;aLxa zGyj>HQqA1O#rl6+cyiR{T|ihPu-Zz#p<=QeKNs3w!d{ZPI0BW384kzNuiV0DU6a3Z zl4KG}7ylDidj{3(SWYM(#TOdI2>v9QX3$lra%+wb&%ZfIp*0sgftPG(WjUw#K(;px%kx8&GWXedN^K*mg;k`-oR;0GXhW>yL*DAhB(O zVYTfoK4{*aj!omcPn8KP{kvP>Tqjy$Te}(|5W)M+NUH>a__yNxAcnL8;Xb9`&4L@OMQeyHeo1l3T{~Gg`({*griO{=zMW4W5ZkU zn8qys>(58#_vVf7oar5220O~mxRbA_<~Cn!yb{Qp%_$08cKLU@Yek2t!(M13Sg=gr zhPhYOp9wAU~4mG)sy4p zD_pabxuer$_q{9)7cW~kzNTFm|ArFujY(3n8m?D#%(!g$nj8R6Eb(+39ueursqy%U z4Rq@8#Ijk~w!YI(#r^5*6!jpJl#+KTqFdghnVByKUnyGdns7>xke%jpKi72zH{^rh zD8c>!oeAUmTQI+j@KqMXsi?Vby?B}gc$t(F3Y@< z%KEpwu%RTFtMA~x4q$mvyWdA!QlJv(cT68nvbq)W5@6CTP{>4u0TI_OGd-6KPpq;cs%nTp=ya@ed8p}u~rNBr9>tAzD8&X=tkJm zD6FXRwO=CwVf}LEB%6ylNk!Gso;4OEIn?p73OLZ76<1g>r^1yLo}x^yi4dD|j|*&8 zN{CjbIyS|oeSsBaAu8FsE^H{HS_qcuaZ%MVv@Fq5=%d#~^)gGt^2|4j0PT!doPT9I zQ-W01xF83l2gm{W9|FYR?%yNpNfm(EEemLX|EEt2BHv695)F?2ozFlTpP}l8Ur1o2T=4qd%w9CWD64hX+ zA}*Ch;VF!mv&iPpQMKNaIS^>BN)%ZNz)Rx;M3r*$&S4ePx_=41iO`ejI>sdNWV6!| zd3eizOps9UnJRa(8;}#Z3wHT~6Pd)$?hWlp&O0<8=ASS|6pQ2~%kB_(V9iff?8k2M zGg$VkHA2p$6G316*o%5*zcbPx;vDlpK9l;NgU?V*nQY!-XD5AyGuh0MGPh>KnB#)K z-x}w4#970+m}N68rd?#uXIrJ+zTsm|r9fX?qAr_8lYJW$>EJt0TFDycLnM9XspT)%D)ts7vvThBt!z; z2~IJ2N(zFCL=sTg*m^K(=4)nk@;I@~&#Pojf9v40}8-`U?Y;prX7y{ z&O|ly6mOm(@!i^@qAo_%OT=DE->``qUs&tZXiQ|QzXcgcSnXQB-S3Xf$-Q=LloT?J z+{)d)-LDY@8}*bby@+(oupbiX75L6&%x35BTBtMDR`oLdZu#dUuV^lRsKVhXqd{@BLBzDF;|n3;2(Tgc)DMd1_BUN`EsT475?&v&~RBn-E z*EiFN^c+$o795z5KsrMItY=Ptd>}an5sLdYCnW`2_YF1OI9wk2m&C5qG&3D^xg;~m z#H0?T@6<9nD=A0SW|t?jf11rMPr=7$r0)xelFzEmh)->kvs@GXD_y<43>s(u;Ef-V zcjm9kddM_R`bam@b-YtKw;_>b+^?m}mv(bDjyKPasIi{6vE<0xa#|!>Z&?a)+LDsNzsQno!n7a1E#IkdOyb`SW0C;sgR)KYzvbiLdi z{xj=)0b_fPirWEx1fIj#un{>-LuuX9-_#|#fb{df7H3KSG4a#3Hn%hTpX;-K62C@g zQ>h?f>i;Eve3TCL7&tg>D$MHb&5=a_b4>3Moc|(z#4pm;S=`^u^4*T*h%F2P0`2I6&Uxuz_tuI(#j!_=nTrc%}IOA$9X?VBB(u)$ekJG1)c+4nlH4MPTxa(^=A>fG8tXswJCX8)$I#d!%&2*MY=(Lx zZcjJB-mb0@iXlPgs+g}3k+bl281NgxG^D9eXFT8to0Pp^Wpedd0Hs*|5%HV!J3yM} z70ezElJ~bdpU1jP@(6iarZ|C;oqIL{4FCosH07`^eQn_IU6R@$ zH%IbSzam1Q208H_#6S*4eA4TQst()Y(G8x^S6c#@bCUXd^1(lw-z;u+-5pK@k0WuKnKb5Vvr8$QK0^h;` zUqS9&495Dr6RvB72|FauAG`$n#}7w`qXHyYS|+Z5oI!3@jw|ASo$bJsQs2Np8SPe} z`R?CnEB{|5`yV29vcBUYGvHfXo5yxXW6ZU756q_(q|6$^9atm<`OjGG$LtYuT<&~I z2C6(XRt1*~N06S>lm-58U_Twl66k?=NpK!Weaszu)Fgs6D81XZ!Gv zg-1u?_|0otd2hC%iVoVW=}90{W0y34YGWaG&2EvMkD@O^L|GQ$je~(RwVnUQDY92G zk<8BqLe#t_J&0B1!24QoQ89BR49hpWQX+3fh;y)vn-!S50d*e8vA;*NV_IRR+x56Y zO+u8A((6pk}kB+>*;zhYmu;1V=4YeHI#H1uh_pM2$fEhTI-Q5VjQ6s2O#9Yjj@8pFsK zGoc(gDL@$P8S*hn95D-N1mlKh2fi2VmO6qs+Mt+h(o2Sy zURZVdVrfC;_K?RVNRMdWt4n>99IRQp`pp3MI@nfnqLc-_7e+b z-^@OX2?=m8wUD!Y*Ail(qT--x(b`!=o4S&orjceau{1I>LmiW)ms^^ZnUY(5P@0fc zU^KQgvM@sxRVjy29USY^%hnkfLoG%-|I|j&@EOAxPA#qlWk7nhYeCNzVuE83fQwGe zj9I5Ni0&#&qLChNCxPj`&M&gg9m2MFi!LV{rHYHYZYNqjhxsEkRBJ<9caQZ4PZ6~c zS1-2^7e{g9=jHX-e0)*SaJZi|ZXU1+EJ-3bmJ;)`v`+B5@H0#dvWo7LQ!?hJW=1AP z#$e#s*pkqk&_*++yU;i30Ixn@WbQnisb8VDPkp|O+3V89u@;yq&tn@fJC3vb*i_6ekcj7dA;urP2MTgc(P8HWFWoHc5-cv_`ci zL$RtRK``t!YmQ^=4gI%NN*v-BGE0Z+XG64+0R3>ry(iC~%@L@i<~xx|tP9+tREi#< z1~auWs0RCoDt-Y~E@b-ZD`-NBf{W`C8-=uN{+gMef?(H{Ey)N$!lzA9FQSvNXvgxee@N2yL-DJ)<#*4 zD^7eiQMzCjHHPe*$3Gdr994`KZ>x`Ad=$_W-`=_8dR;= z?+v-t29+jqD2r6x-o|g^W`Cr|rc@6cWFq?W^aHKj&13ARUS2y1Wqb2&?v0n}G9(Mi-+D5}4P?e{q=bCeyl=NJU*BuFyx&_! zb0O(dB6iqLzz4i5j8J`m!+80uv`3 zwmfA>agkm;CUycFm5|zKI`)NSYURz9CnL`Y$ePrQbo!4XyC(!CjMQ^s2b+;?%lz{2 zR!`ro_2*l}yA5mtoiYMudR8BfxgYHU>u(^40*Ab%sYa%NnrP!L^1-I23cuZuRWS2wG4($w*%!d7j`%9rq& zK6<R*bhh_teuRhd-G_bSDbSoPI4_4|Jr9^GS@@(ov)Mqy0|Ue`NHl_2NC&e&cOg zs0t^iR2Bx zoBFQaqwC8z5kf8*UjcNboO|wi1*7+qaNd)HC;6+I^R127^SA!<>6%|Hj+Z<0iz@_n zX~UjA7CIQh^$;5kV)M#9tF!( z8JztZ#j^p4Gs=)uQl)G3wIXPE+cAAR{d&gm*sVdE}s%R#9_1>baTXEB3;Z*ZDiW zt!{n|fhKF|#BM%qkUjl`GRR5Rjdz(?Sc{f^dciNS_mzCFC0oH~fZuJ;=kf3eDcb3s z*?qTL+z>7dw1nZT*F-vjUg6q%OYtIhpmemT*U|Eek9|5>1CNCXW?D0l6}t%!>6#OT zalmo1s<>av7c`5eo9Ouj`f^y$pCitGLQI^KBSDt0^IlvR2`cSruH+!+=_!N; z*}cpkh^H(~7?9d-^iM#KLh`)brq}7tvBV0|$BJv=B(VH=6QD;!o<-)Cq_kuboUX z(HmM~E6w%Bc+9}SdgKW+-|i|351-g0ilW#T{5W<9+jQSegTOlPKHutpPbCBgcht1H zLf0WseDWAAERwH$rCu)@8dTw_{3$2LE5Yp_v!k}F`B)J z|KsZ%yEAROEu9J~uGqG1+qP}nwv9Wkif!ArZQD*Iopj#`#YtD7d zKEH_{4|;-!ygpr8qL{#EQMt}L$|SleI+F>Ql_!ORrz7RDsQry)v$`{RB#%5pCdR-D z*|#-Ka?r&oCAX_;Y!vB2E9o}MEh;f&hG!OBof2~gh$ejs6p|vZ1KC@|E)d15OJ0eZ z(g{9;m$u};zyS6UWs(XMMK?zrXI(DtKX1=mA}kqFF69^K4T!5c6o&d621$z2p^D~( zX@bBrO%Yb0us^z=GQ8=gN_N9FWTg@6F&6w$Bd9z%NB^ic-q{vXIdrN;6usKo$ppuA zYZD7fHmFHhj`1tQj^TaJuDC8_$HJCKSQS(LQ3}w*XxPdQ5az^C;w$1a{L3aw!sYnJ8N%F zo-HHwQ;eaEiU_8Or059QiWE}Jx+3(W>imyKYyzwc*Vkd79$Ub&d=7-Qa8lvEZ8D~9 z#jSf-?P|9-s2%dj6Z5b9S7J>_xpmQYvs52+JKo5vq?1#w$SsYh{SzV&zoo3jqWEYI zs~c8wQFb46{_r8yUYp>`VD?E-bjpi4^@*^c?&HKe?m1_MlFfn@(E=~>NAIzfm|x>7 zG^qF{bLy4w(RI;Jj6z+Iq4VtLg+5#q&WW3Qw z*A)&KRNswP>L8CRSNWpHSpnARY|r%E6XAthNiA7nY75#d(QeaNLoWR-3D!g}{;*ut z6bNt~pNg`no>sP_$8KgXaIzzGJXE6t<`|uAD9sE|2@{d7W*t2Gp5xK7J3=j!V-Jnd zFzC}zLv^XQX>wO2D?+%izPupeyMzOy>HNq+*fEeBfypIIkqr$`Dhp7zj2*@DRCvkV zY(Y5pJvF-`8U)h@Mcy#`{bBMV5R-uZt&BL&P>1f?H97~Z-eIuoQ@9lCoJ*L%-)ZSovES&2c?!D%zX8Ad`GR65)8p?V} zg?24!Ml;)jV;}__BlB7ke_g!$>#lf>egesCA-$yP1-5TYn5_cE?Y%Q1iQXt>T8p9h z#1P-O^98oNlPwZZ}oa{*i-oQW8mjPG! zhuIfbZnbWkGHYJqE_6iBX^fvCep;kUZlEx+*pg(Fh%+^7z{qnyq(w$J_`U`G*kOptudhRZT~UOiH|BP@zdq6ZW3L z9jpq55-TRF4L$of2q?_rS%YT?jp@r6LskYxI`Iq+0cjLdQ<>`h?9juIACM3puXV^g z!Hh&kO{naC5a*6=#-RtMVPC{W4>ZknLKCN^j?A$~qD{0uX%@oULmu+B!g`o>EJg=Q z*w|+C@H-BqH%RKi#Ut;`tvLo{UP~qIis5Pp6R1(qUg1L2taY11O&SvNR3|1RJQXkh zXdXdG?Qw5>H>n*_fPlVJ%YaPn98La{Mn-4!{X=JFVr$}TVdO+7WbSBZW9MXN^S?2e zYVT^w%P60}m>B7!A;JrI!G)1cXAq=G6r>{6QJ8os#RH320K1&p*{y($))M8(@J?{-JwEWB8~32;Lp7w3?O;EmQjrB846B`C8428pNq(p)iSkK9zV&snrI`inyH0l zYE_eyIdKJ20k%3qgTyD7=hBk>b2idbH8~vi_5{H^a8KKk*#!M^=!ufr!qvW!?O0b1 z1q&Pixh`(?l+4fm38D6`NWoL6q~anfr+$>SrqkL_4_mC(v%JNC-G}rd3GYi?Y-zSJ z0?{xuE}D(G+ywZM(w13Mfr+AyB$&@-N!n4g1ok#&K@N>CZ*;!4Vw>Tje;m)R<(1`S zXwkob)a2S1k)AIbO(mpRw=F5Bo^+I!Xh~DKve>T2)L0;W?pZX^_*j#}eBc@Yd%vE% z*}@a->a1)8LI^y0Xbts83E$apP8$2#qptY)bU(D`?Wr~TB#jHDk8~h#C4BP1SD*-N zMuwBvrFdGZKQ&SOK8!b*>~;~;x>t25{1=BN<1UAgX|h}(|4p}Omky}!@gn;Fm<{B-*j{ z9D^c*n}wIh`CW6-=k=4e zOe;&?w)Y`2lR<6!BO=3l!pk9)Gh-_Er@#Df0+=#v6s7-kg3`sM*e4D!+cSncWFdxg zn`uF_lGD^soC{X{1tip-G)2|QM*!S8IXpcH3po zSe*`5j4VssWnR5rGWxaFm_PT6@n+^cA+|-TjUS#1G*h0g>-nZKhbTYf@l`pk?)CKy zRSKzXsQt>0r)GJeImFQHr6BGG^ljU_*mA&%1fKrxS6ra*GL^{)gYaG%MK z4h~W43XOhv3BLSvUH*f39ab}p^H+N-MYE6$pfM8RFfM+g)2h(i5pU6C%c)aeB_Ag| za(SJKa-ak2k;N&}Jn*SlN%yI)rtEpI<&7*1TZOpDwOV$=#VTSG-O64^U&hCJ!ty~7 zZuyab7Q4}^9wI0B5<~34!b|e^oo4YM+kl2;wBr4}l0hejQ&mt3)~YEtrs#p-Ro^Kh zDIT13KELg9k{Z{!VW9NyTJZBGvzE0bA(bYNIkC)SdUA-*fx~nOm^1aNW>eGG@4#LG zt2x<|c32Aw^B!gwt%!4shIkv_8mik?;3$Rh+utweCBQBpRdg@9V_%}wO8cabx`9yN z&VyJBUz=U6n@(~^a4KH4^#i5@Swj-lTc4z_#2x$^Jge3xP*pFeoDjWA>I5jlgp=8I zh;30RU6rKvi_*mW#s(qs!p581)>z6lcHL^^X3t15^5b!eSVgmfq_+FW%v~zQjS}SX z1m{LU0cLp)_sggJpoK_yQYZqiIPiRrr)CjbLQI>IOo3&d2W9@f()7aDbo*L08;%=R z?vP?LkH+*F9niC*ize(1hL>dHH2DNA^VYCx=m~u^hZl?~UsR9~C;nXyeyvkGxFvht zk*k9rgN_j-V-MUBmC8(9FB?jV?Ap35anqd~yHPpzal)U#0;T&u{1oNdKZn3*^CdM% z)SyWF<~6i@!0dUz?5*H;oY-)-g^J+peeozTjvu}G_PrteR7qd0M09XWo{yzD57Qe6 z!rTjiYW4dXOILzn!AO~B{dOSKLN&~%>wk%gpP(T#rz_J1!0r42=Z49>Q^U*dojFW| zw+%dZf~+dO+tq;dP0+Ohl_rPB3vM{$FjNzVagb>Iv6EZ99OJH3>^;4+4p1NxyR}j$ zVCe2qY(-S18vEO#?dzYKiEhPSds2N9_d*y%^m(!aqgZzE(YZX6pyCE*bs$>*AX+-D z#G+s*#$HUBrDg)yYIzHVDvFjJaG^oV4jXY7`KE-+GJ&GJkWKAS?>kZf=v!G&S^V>( z>D>*=@S!mi@^YB{a568v>1t_hNU4GZuKaQkAuYN4yYCmC8K)A)jz=e@5*iG#d5MBemLZj2j9z}I2vjCp;$;othf&hI}+TbFnEOH1yY2TruEma)S z4y@u8qSS>9Yi;w$ZS(8+Cr(x8xZc8bZN-*Zr(aKv&X9zvEEJxpRCR7+*J4y3&eQsL zS=s88*T)0#85o(s?ji^sHJSf(3ZL-WhAarhT?c?$-{u z65+?VfkvDj*4^o+tCgO;`$MTxG8;x5A)l}3q}&VAG@NuYWGN@uR+lpbvRrzPl=@b@ z@yy}%CWH7F)om;H-mMn;S%v$&w&YVv`DaZ~wZFH(h*aY7EA1-ui!MTIR2-J?wd1L0 zKP&)u+3ZHc;avCIiT0I!?zUJ3bX97U(@f~d8GQKl4^AboDvI{ow~|i{`yHqAFApSZ z11Bd7QwyX2dzfC;N()I0*_SNTx~{@ep=PcOB3uG~uB=fL`H*yu);vZZ!J<8wph}1J z^h&h6bDOTa=#iopQ0(*8%2y^gJyAsf08`|>Fh07-dhR%$;4-_P?(Y5q+kx>lW^dKC zZ#n0PW8%m#zS}s;Nq1sOO5JTcYD;J0uGgp1hq;7{4ig<>yzo96Is?hMN4_ZkNgsKX z`en_-58dCZxgOqQ#J-H&)6<}{7EhYZcaR#$-XEZeB@}h|m9zXD$T3z^ZCu6Re5RFd z$}`+>{~+n&MB2==I{{CH`HKc!mIW>1BL%jrb_@rQJ03>oQIvw=hP_{F+lG7Df^FK} zpyTf_zK1%E$}#IGHaxIPLv2!{Ty$L}IdGDkAc+Q|@_aCB|08B& z6vTurS%kT2E>2iT81UefD~0MwV5Y9!Yr)xb`ikMh>eZPCS4*(Me?>GxOdk#S-L4iu z#oj-2hVsxybR~^R>wqrJY8YI{8K$O^HR!>KoUeYsI_kuZp(yQ>c>%cxOdAQ@G1Viw z*D?VA4E2c%YeaY|pgmiI2QEx7%+l~$FA@5A)Bjw^X0{@#o9vchn@1qi?7oG(?$&~~ z&w>@P2~$O84_m+PmZ*saX2{imJFy`i<%mOjR?~^ z4PdB9!D}lk6$*GPMtL*2P|&XO-Vn0BWabT&#Hd{apYppdGp|BS0XhJbx^2}Z6AW{` zT<5`e0^NlnmNR`#~djK%}1`MkQ(+ z6{J**&4yPGaRE3ggC;o(yW2D}gw<+YKx>CqcIGfVP+`#M1bG|kZGE0XGyB6PsT;u| z>L8VydQS6ARJaH z)C1B7@Ci%_gS_5i_q+oZ7b3|GOQA+5xgT*!E{K0yVt@2;NNj0r{Bj)emuN_RphJHt zMO=cLMGQviVX%;xZShwQzaO}oB4Vc9lMTP0yP7iV9hij78ir3O9TpA%G>t7@YEd0V zjs}?^iltoB!as@BQHPl_G;$@3GjEl%|Ax%k&jal?Y~148+Tjy0s@mfV32%4;#YCVN z#Mw|2g)o!@*@KBW9{~?n10J9aJVTPhxc-Vz#|Y`Z72r`<14)z3S1P^NmOuXWL-@_d z-7FmW%>eX~8b>q~BQpA>4=oRd4lnx84v4S;I%qn$si;oN z%v`HrZ9~Dlz-IahIQ?vh6q3ZoTO`8}Jd#E$V*;E$AzqL0CgztLtqp-;-snTlJy$DF zXZHHjeswc6P@8=~?qQqBeV);Ftd;Rz(#An-70N!O&~F7C-o6+O+hI;2eVADb7uguB zG7gMsS!t(9$lSnO+sTDr3}FOMbd3bcjLrj&Y%XG%lI8VV5)3Y?ajnM#iKZ5$b{HF~ zGT-*Hs%S>#M~nX?$MXq^XuXq!W`C|Rs#X=qz@BfA6Wgrkjg!O3Yz3CA>rH1|!Lu?d zPnC*Bpkb`7tyLF%?pEl6DOgATL3M#Dga1Y3PqV<3HW{aVX=?siZ@igkvw~Zc=ouPs zg66EmGWN_`rcdS?@wRDu$^ZuIc&E$8S*HIx`l($35SSL7v00)dP#(R89*8zv?MlUt z9~8v+=d7RcB>o2qUV=a|OvzITOzfz?q?fUMRuxlnXBI*unThjQOi7EJXz^xv+4RUs z1(w3=pJ+r|;YSG!*!it{EtqyCzwL8fO{G4{86!nN9rI#K!CD)q!A%D`x}{RvC{tlN zq-`}Z3y0XE?M#1jUqY5j9Sd&-pqNZ%vL>>PBmHP9Sw&x7R3>R1QiulCgJDfv3#WiB zLgajK3R(h|1!;m;#J(arCK$`xny})bHiZ7b zh|3@)E({{S+;kYMI%A8(eeuJ#*WkAtMC{83Rm*u~VSc_(xU~ zbu`UNEapN!Buzo(!|W;PWiL>ucoMo;EOVUIj5u_fNWwxd&IUvjZzFYPCQrOMVmx&Eh z?FCY6oEF*6Iu`9DmrEuZiF-{!1($Djli&Kqvd+{HZ?jah%36bj5PlH>zadf*s|==L z3WSNI6dC0JIRATau)m%6k4r3Xpn>85_pRrtr@{LDV3)eB_GjN`-s$VF_Z+^@>q{=6 zr@ajRX=zfkqs@&z{>Y>Njd=zgsuVo*rb>@~mSJfwt0QNKfK;g=6Qds1tknRddB8++ zIT7*zmPR=YUUd%}gta>98NeEtOEtgiSO6ymIDuficB3CS*ZsN_J-T3)|1h0g|IpSaRvoaFBL_JENM*?WLuLN4Pz7~Ph@?AMYyqiS07TxvUgi)mz{ zkEO=Y5hYopDi4de=QLEqbVe1K!=!T$OhD9ayNR`(qKZgw<3#{bYgTQ1!`+oW3|0*T z6znsUbwwS&SSG&_<$g=(A^m6Nt+9#2Y!EuDffMp&i`>rEAG$$#h^)BnZ1cq%L+B<+ zx+^qu*Pz>TU6GfQ9qrMnDo<0#$A*M&703U|)Y`7eN972bS)zuJ2x0bfLBlJDPmH4G z;Akl=?yJ4cM5E?jNR$(&-?myB5%@0;k{UG|i`&FVDr*rg;v;f|XDR}u`SFkudQT21 z^R57?E6SP+_W<%YCw-j3x)CE`Z+r!BkQW=i#m@xXg&TX2$kE`S&HznX)z7WtS-Z1l zfIe6Vapba^A(P2$B5M?styQF4(n)O$PMPW?*HiM>x9_dIDX^!hO(oBWIFhW;jLVV> zS-sjDGb!F7Ky1m-KK|h5&)o+k)$c}F*R_DfWN$nD_H=uvR3@p^C&|@)uyNV({&RO^ zvIPz%t(rHiTa}}!5mTA40NDXPsm08SUg0=0dWuomGS)|3N2e$?2J+B(cTLe_>Dv>P zUI|mh&`I^*MzFEicrvka(YNL@sAP1Z^p5$)24Z?@9{qYePdxtB+R89LEcTeYLYsL-f+;=P@6u6o}F8r}2 z?0Foj=ypvsBg%U@knR<9TLgmhTI(G#vtP=5voSc9Z5F<5tGU&{$rv)bouXw5j6j6@ zh~_Ecup(*+lEn*XQ*u=GK^|4H{&FRtCgbv8{U=M55~_k|rCK?s`?g>br-R5T0?k;T z?sgw!FtUi#_EoUm&SPS}&sKRN&m@UgMhZ$sh6I(Mq>*svxhm9K8Rbbu@y-u0Kz(*s z|75rt`3fWf-@(fgNkRcx6#EOp+VsXi)js6e37-#$7sf`=Up`WP=TYcC4cL|F%j~=r z=-vA-?{@@*1vu7eZ6RXU9Z|55TRgqGr7|+}c3=mmiQL)|kN}2Ve9{X8#HdH+MMG)o zDswRvod}UPG+HwuY--b>`r!_1d)Hu&nU~)-aJa)r6GKkEcFbQ zAZdGM3*1lpVAuoY?rDGNgWc>QqTG@B$lmQD{-&9Hkwxz#5#P#TBVo#h(@)R4u#+^| zk8j7;8{$nx{cS0cbSE>h&PxlIK_qg77-a&;Qn z7e8npw2u^dz3(2`f8-vs&l9WX_>sQ9Jy3PL((91ckRKyGs=!Ag#v{ORlOJ>141A|3 zDEcTFtvhrg@cj{{WJq8nMH~ChQ1 zPpPOjF)?%)Y*~)9seD<=BQ%e}KE2f(_d!@7jPx}f;=+`mxi4s5GW{@x>*4F(L7b`Uo0s<570 z?ZI~uB)$}}N7zL$chQ*MgpTZU?U{JXb;MprHQ$2V{@6lpz7@K~>Y(`ycN@^Vsd@q5 zLi*}^-{X5pKV!Pk67<=!Lk7fUIs(qvbuNR1tRN8JoqN$yMZ>@7`gU7j) znFPR3J!LvZj{;Wq+keGkej{667pm8cz56ryktG_xAXdNA4$UoViBSPSMvHLz(&krn zHd5L~uGEy^2z{qQ!KGGoQ6(~3jE1Z@9Q7$Cm-J9scQK`78mxEouGVuG)VQ zMnp_aO^lp{4V(@B>xwN*)RIFIKpy^@M{S};snPGWPHArvQ3w5zglPnnSz&=68VVi_ zH}9$mXlOTX-#KK$Ktha&An*p_OTL}BXak!A4W~1kdUTsgPv7?Q&Hka@2OT;ZdL9vb z?ZaSIkS4PWv0ddd!4?x*@|wAEjEUYq!ppa38pS2!)ZQkC0DF5s_|bEy-jpvLy5bdO@MqT1q4nw+D+YR;8G~_Rc(lx}kqxUQ_Zew$H+l%yN zoI4dnrBdEbY=*U*?2x&3r$-fOLj9fUPE=xHbtW2fUW&1qVd{YmxuJw@sgb;`GJaD> zhG{ZB#R0|xXf=SlxwBE%AZ;?mg0J3&EAQw#MS@dhyFfgIjcwy8!0Tio%5jR|?!7|; z+6P8SZFzR!H}^Ukidv(jb&Crow~nh-N8>n8rkYkBAy}tJI=@!fW!a5jT-QFXCyPRz z7I0F79PmR`I1wpcT$hnFZJDg6Ag4q-Ta^kRxI;i#UcwN>Yqwr--&gVhA2OQ{6h?bu|3< zK!5!2f&B35dB{4JXeDcGB%T%wBCS?hw>x0Bj20&3%s%H48p0yNj10G3t>8(}D~R$C zb;xtI7wl1ti6M2-WmjrlBw`>VF+ zhlf6%%DH4K3q8O{Iy1^FMRxQvVQcTFZ_{yzzLDatxd>%z!9R->uZ0f`!{tbv^so8&fkcg5fgPI5=l)OCXwoQ@utemU{^07iq8hx9Mu z$;}kfBz{~)zL%|fuj@^xsj9!v>p{yvrn4q3p9Od=LG&+Od-95_jy`M`96^$scvls$ zLR`*(oVBifN_`kpr*&UbHSYCoM6mlwCD+U-QlTsNdf@ck4?ik1cZ8q~%jPqfLM6PO zc*`cdFs`H6O)3(Rn=S>*p}vyrduiAhqY>2Tbl3o87|eZ@*X_O}dVs`$R%( zk<3{!3x5gi7Gx`m4TrUi$+Z;i!`yA;6K13EUM37{+LH%hb$NUCI$o;ri~XYf%}%uJ z$}u5&ld4_r_??y%tDU(=kJQ`lsPbTm@F6Y6Id*i)>$=(F@HakZhB1iq+P&7cRQ;?( zo;X^Ri1sv66jtvdg)@bMY#TCkn75E+Nr!b zTq5xkVr~&S3!R?7NhoUmHh%Vy7H+O`}6pVQjQ z$?)&oi~Kq^8*l8w`sA(HISxs_h&iuhU(CXzEnd_X{L^rJq^K8eRAwRYAm0n9mdkzN zBSNUY9En69ND*yPN~IQ=6WR!0=|!kSj2Pa6l1R;od;Sf|oAKY`&N1(awGU8_0Cfa= z6;@1OT8I~uxfe-(r5;nt&}UF>B|~;HeJPeT;3=pV{NIeYP}-wZezTDcaVX_fNwVdc z#Dl7ABB<&*R}qUUqr~Nz#f6cNh#_cUb^=JxiTzD2lOrCGdQoX_{}|{s!S89!x$y2|J+YJ^$phT)L>AGC6RZw<3=dk-^4Hig3`3` z_!kHDBA1amndXxB!o(@~Do^+xOc^L8~Kkm^mML7DcW z@aA(YO(u3Zq4us+yRD5U?5W)y(JA)1K1@*92U0Wkm1;%vdsyF-%R@uGhm3A~Gv|tf zVe^l1$%x!y0yy-!Lg-DL?Ihd65&Z=l3T?gA!pWI-N}bbchKb|6S_R^6vANcdoCw|r ztZ)Jo!T@7L%%3voGIW#lJ|2hXu|(Lnq3s=n+&Dxq6uA7?!Xjn%W%^`xl}T_?wA~o zt5k?pp3&uCxcihcU?e*T&YH-qx+>ZhZk888a!oZ$uN>s=e8f7`LJj^9>(p+tuc7IN zqjN2WnnlT+LP*ca5ApLT^_L!{beUm_)(k;j2T3%Ew=;@7%y6o*_wyUZ~4#S>V=P(&vI3R@_o!#I|6!8#`F zCVbiZwK?4)2m9P$W*woLU$=nL@x7`^%mTp7vxr06M{glCX0Mt@uncHc z?=^9q7w$l&+feEe2C-LEmL-Aek&9u^j58 zq5h~R#Lg{HVQPkOpYt3{ai(k}M;E$F{_Qk>Bs=J>!HJR@NjMSTb(y{_3zNWdD&9B+ zKP7`VfFQseii!?Hb0)lmUgY{&enlx1Hk?8ZH7Hd@W2F+Bv+?vW1)IWim_Wwyq+>SW zw2s;|@_S?qk^;t=-k73OBPF(mTUXUoMxhU5plfNjlRg=sOI5X5!1tXcp!TtHfp-?*Bv9DQn#j(LkKT7ZDmDbkY zXxd}dr*MD{v)1>fBz$Fg{b|gfnhhE}Eke2K-ANrEx4 zl1Xp&DV-l8&LV~_IXpM}fb%b5R}r+0u@rMqH~xWDRJ!pS&zfSk+R1CO1S!jv)lTpb z2rTxzdrd$-Cfxf&W25*dfpsATf!-U72Rek@58(qCp_BJpsVqUJoUomx&5wo1Tc0LKmNcZFT;fm=oVXF@f z&K7&BJc+lkXQ)}P)9^4uz6$jfRrO+ zI;A#Wvt*N`X>4*;X~{-ehqvpNl!Y@fOm#W)|{SH)cr$&h-ZNjI~0EG8r@ZopuDl=%&0vRo?C&4cUn!{f8f7OnhZHq&NCgFw$JR!lK> zn$SBTIMQu`dm<|-m?fO^^p2vLE9T%PAdP{kQ9|FNB@;QsDVRv{+pt3m`N9T@8TVsI{;?Ymcr6Rtz@`zklM&qnWK{(9uF>HeRBhxw94*Xp`nV* zV?7lRXh|aJsU{re&I~>Mp3Y8&>^z18idxli==l^(xbriFHI;M*m_fP9+{gwnN}}R$ zu;qV(TV%}#?+zko;8DUJ)JLLm=JJp9$-&Fz$ENJ-!OO#OLifk2Xn+@Y+wOBuhbl2mhv~lqIxeti)IZCT=LyBq-j*x1y07*=6;v%+ zs_1V%Rw8Y9t$%RfE1Nfk(uyttw}Au9)U36dZDstF^)HOk=9j(N0;D>O?(f$YLDCEa**bjh3Wg`+;?xfa5R3>-V?zM!BacY-&TGR6KP16+oiQoTLH_>7-kHjPi#<4c)t|N>H_VNBNto%@N?K zEnf{Y!tlcEvoB

mwr_b^4`18{7?NqE8hX2~O_zO}tx37|@r4;A9aX&SWJ8BWJiES1-3|o1qcP#0Lr+8M9K|2yaLYL4jHbRF zD0WFQPnW2%)C+E+kHl!{T%|PS0#F;F>n254@M&m##>9w6e+;zDA<0nurgc@0ODpsF zuKU_a^g6>#d~^au7SYt&>z~IqHDI^ME|Mt%!36CWtklSDk2{9#$Jr65to;d)0 z^v4^==-73qp_SS4l5Rli)iJTmGH&1Z+;~iwPsfIOBvE*>p|~x)R9H;MzR@Wwl+QoDoh_w~@@TVL3)($Y6RMX$$4CMjjSgOcf8q6sG7 zFjHVZ3C!X@|2kTL1SpbiOsI3a%!nT>CrHIi)Dca7zU-u<=Z}|C@I5=ru2bjC+sR;k z^wEuZlcO9GL%N1F5G3J2xXHNrqoU*~woTO63gH>&w>xs;f8kk|q5i<@2z)#nZ1Go; zBewL2!erQzoX}jA%gL0zx@=vQEP7D4tbRybp;CRqz8DOzHan=@i9ML+*G#V=CbbAPso0_x!trCRIIm zq)G%kHfE~TuV8NZS7mN2RB3F23xP8t<-J@p8?Lu?+u&4}YKALTDt3P^>>TSP#JMNo zxTmZFq+FSu8vLkt(25Di+`wJc@m5t=EvgVZ8^j?Nge2pmU0S0911D7{5BQhnPiLn` zoK4ucK9VcDlC!CuNS&Co!dgqY5W1kw_RIyVB%+|>X0D(qhmMj>6lW9qm8)NEd_lQf z2giTj5nwidvv`CRVv$zuZiZa8s19YBHWQ5%BT^Td5QWc1no^5q8Oc`kdPnaKX8A$Z zC-5WM9v+ak0b9%O>skv_be87P-JeVXTNhT@OzgTI*^xEs$nvzaJFzwW3DbKj(GT9? z4pM~Wn(nEtI>da+9yH{&Dw!3x(p~*^S-~R#z1dNnI-4Hu9~lc1;0eo#HOxRNWYF1$ zDZ6tBT-l0mU8lSv5HDBVLxu9qC{uA~0odnifDH-s1ly~F8DP{?-JdH~E%z7yx$0A4 zw#Son@OSzx*R0pW=z(B%?(7BRLZ6(uXfNHO!RycoqwB%is7=KI1z4bQvV zIp}2EY*fj#V?D9sGHhSLu#-$t9HfGR(P2=@wc|?`3%Vgw9J_lc02l~ZLbeBQ+ycKz zU9TNeM6z#g@_Kps_2>?Kjcoq>v+)nv$>h$|`YyC3BKL6M+JOXy_l;|?++NOKGKcHW z{TKU1F~%2m8IKyuesGF={hws9`$}+lu95B2IOd)}amF|4s_F6bD>%+MJ!W9xeXeRk zGcLftk=O&oq-L&MD;9w>8ro=2ewi~@M=XmWKzPdL2TqeI)bpKi#L_+DE|t8l%P@w> zru40ccYsiLkVS~VDY2mG4XI&F(TGzOSRO=ap?K<0k7wSncxOxeo@VN0yOANi$6y?7 zPQJjKDHvk*#slnq2ilPMjw|{g#z~}wLo4g>^GMi3D0-)q#Um<1%Lw!Z4A+8h4?df3 zGG+!)XLbQs2adC-msIJ-swr^_ztUf7iD&3`wN8E~C8E z(@M6fsH~nv#b!Bq=!jtqp5qSUvl80}%j)>@!!?s}1H|E{33GT|uC>%ERM_5H-P=!z zv3>OV2=?xzWRr*%>guGIh302^GB?FTuX@UE=&-z#oTL>o^)GXPk&?{cAaz0Zs-)+P zrFq0BuGeou#+V8UOS9<>(|Ho;@-C&Or}Hw z^nfgv@m#Ag#GgB5zvHvqf2{a-=2)2fU$~rFuj60sTpQ9ZW}vPVVOXn6I)RNV7wRCN=czP<40nIbV}>Dax$Po#~Z&%sAdSMECE5hx0Gy z;uNm;7hXWQF3=npTFZl|YeOp7__weMuGA7Pe>q(#c*_ZxGH{#G0}B0q3UWu8ME;0% zA58qxj|j=#H?K!}WbqQK>+;o}ICZs7-d*2xwyd15T|%)3%NmxSN49TlYR5vwp+(p? zw4KRDxUc5C$ot~68VLtWYQ`f-E{AV{?5u&He5>HER4)nlpiNCQ?=F>e>coLTTWi_X zD+rt|6Ep!c%9VVId;LrHafi(EmCSO74ExpU==ei&N+DP4vc5x5k$~Zz`8XvUdJ$C> zsWFmJ{EWPir}v*}3CvhR5EI{(A>TJV;a|8f694I+d=K#mo0wYITKrGclS_<%RUbcm z$aV=!OzDi)G*rmJT!=0YqzD2O?#1MMMzn#+X0S2QL-pef-cDR%ER-hvG5vL~x82s~ z%{}xEj*nm+EoGI@W2GVkrP=USL1Tu@^i|OE5QZHTnm@!eR_FYfC7}G(vcD8=hO}d2 z&Q2^I{_vvPT}$&aojyA0@VHPOaHO}rqS?ev7>tZ9G%nG^bw_!8n>a9VpPzEyrbldv8 zU)~0~@@Fb=m6lqGU7WOP7-0)0z}Bh1C&{n6K7IUU_bq2csCma7XKt7uEH~>xPAb4( zz#Z9i(lzn1Pr&o7Z6~tBC~WG|yVt)*l`z%Fgw}d&&ScAB1g2Zdh#=RJ3(Bhq)APmx zk)jJuRoOCWQ@~BSPlXUDhjnhxWiaCkY2%A;%I-oebPrpiS$eg_v$Ms*y&iF&qr9DpU z<*^3nNx`JdLQANyjvyoN&ZJ-r=2uacYBkuC`f-|KVo6YGIILTl(j(iMaf@WE7j3l| z=XMgwp)>NYA?1`qi;2SEXvtOXoV*FDl~OMmM^t(>Vb1H!k4?rgJLm{drg@UTsZLsF}ou7z`BYsEr+Xm?0p8>=hl^(&ynM)GcoO!S_VF|O!j zejuD*cOOVC&iMh|kSA0fFR1v$=B-M)1_FBX_-$^{bj3%wMCJ4+IMeVBSO`*;9v);x=j z14AtQxbg421EQsmyF#ACV?X=9DgVsU1I3R2 z8~^S1pZspR{fjpGKZl3(_aS0y_TNW{s+1Cz82qPbJ3g_hzX(1n+&w*GVvjDh^+3NX zJv(C^Ng`0MKob$F1qo|{Yw05J6h}7!N1^xQ;9;5aYF?u9VVaPyfUnq8DKSrdR1c^S zEl=nCyq@2DT!Qb{`?1~+VtIXZ8jU7hrwh9UUHk3L`mGb>Y!k}ekKPF!4cubh0PQt+X}PcF)gNNjZxfImCE<3idpb z6?iTmlza<$B`b2lci(}RRM|2b!P1UJlg26P$k{6)n|iNZ98V#2q_hmB3G%z&*yx2~B!`xr=45w;s(B&5P6=Ew+nT6a)DJ?o zZnj-VCGyAsa4KDC<9@eU$zwzvtw0i3*6J17I^pFuY8q%8c4*_5BIQEm=Tk}1j|QZFpQzLtPinKwnD307HGwHn%_GP~TOZ$1rwcW3J& z)!dmqQ zp~;5N)AD25uh*_|*N$7W?~_5N+5N=HU7o|k;G|$g zdhi#iC7piv&`jV*cwnxO%&F2x!EOYQT3%*i#AD!Ty&0e*IsRy;G28QP-_m zmByR4D{b4hZQHgg^`>oC+N!i|+nJTN?asf?IURkzh&~ z@_~X+wJ2scRd2rNO}1p(efu}C6@&*T1v*p{dN9q2l?0Fmt>Wc!x1_KcN1IZxa* z`Xv_@1^z4aGjRXRf_x@4x@=qsS+LIzP3Q(r>wu`cCtN9**Gha|DgU1-j8)i=;C^yP zX_DzL`u}}^z;jYacl$kS8wdO!2MCfbrncgu|6@bTR?}Ah4$}IRLmmlnprn#2iYSFr z#1uqCj4%Sr#123n@Uq;C%L*n=Om{I097@@;f4l{~FSGA@&bLOhZdW6Co7vtk-*hG; z3&>Z{jATCgOTYa&we_}tC5LG-stSrLe%Q|g>r|(AEAupBOo5xs#W0rHqrDBIuQY@oi~s}xht=EY;$&fA z;X%>*%m>Cj7L-Ut3f!3C#jdfF>DfLtYFE$EB3>mQ^npO@}{-IoB z?IbkcG9>LbV#T36qb#yK8qjMZ2jQN~7Q#AwSI)2~8m&GGcqF|8^pY-SOqh6#nH{fy zh*xGFZ-=BH&VHfy=Ux1{HTK8!t}B7R;1IaPO-wP4Hr%f0oc%adjXXAV5%xO+*UbLP zjQR{9Azgi-4P18^bJboEC9NqFwWCUOVx`6?a3r@*4y0uvrK9n_w|W8*UMCwGANt_X z>Sbn{$z|y~?#)4r$zzYgTRCCy%G&8kDcck0CylKob5W(<+Bso>z_pV%h%>x;Wg5vG zy2xjeF6aOfme(i6k7IGYgm=p{U?vk47)Je5LG1rU^kh$XKD@3n+b2a69_2gLQWWaA z25pCH4posMH;n@{gOzH+)5U3ZKK-D{mjgR0l{+XaKGh^O%oLi=p@pKIl;tlL;<$1N z?mx3k0g^ok(X|z>DFf4$Z8I0%|0I<~Ps$G%D*}mcY$+8dFc1-Tb#+KgS#yuPGV)5O z^?tI}dnCeyoZgUfj1B>XReX!A^3zjFheC7DO5XTlFaQUSQpAV%uYgQ z9_df$%y~Sn-LiLDQu9Ju(!_ZQVdc?#INNQmp`P-y79F5)GW_VX~4V ztc=_8RrQM~!|O(dt}xdYe~Wz&rOhd2MA!modyeR{dWMY6RSZ2I|Ie%zx6R41$IiqY zt|!K9rf8j)*+>`Ln)u-?$TbYsxd9pH4asxxMbs&6wktl1Xh#rE-4R-+`UYisMm?3g zBG)sWfCSQEj9^j=W1(d@?Z%KilqiM3-$l~=swtcq>Z^Xj|C7RefdJke|JsZj%NYsm+zAjNE&(1 zDLuI$$SyoP5ZFDgRXj_RxnZKKJn$xeVsF3K6x&-*B4Iz}R~2efd?N@r+kn3Fy#9G* zN0eNcm%UfsKXQY2lOc$!4MzVkbB77fnNY(QBmx$ZX~kzmZ{11r@Ue$2pIH1HmZxji zV;`B}SL{S|plC#H8(q4jppxFMd7b{;XO~-6c}66{#~m9-RT=K$V{2JMZ4^QxFf89e zPU(9Fy5k#r!8uRfS+{KX9I%sQ*GTnaKP%ICJG}hl(jRG4YMm^^PwvNc@BMbJ(uTIe z-~jf<7 zY|Db>7tI6{Cc_Y>7t zB&eoDlp_%#wVMRS28nCt*jl&zmG5cQT5$uk;23AKvrhSnv5 zgHuwti~YM;n_nbbaWE!>1<8K%&hTD)a)FMz?6jr5u-ydt3OJ1UI5peb!AZ8R#7x}r zACUoQVf7wL9Kc1u8q!fo?ezM9qJikM#LLY-W)dfJ#&6HNZ$y~2vPFps(hSh52oZE1 zl^VE{n47vU#gx2eQrRywJ+$^|A)ArSC&|B>P$<@swy;7Gq%c}hGE0I|Rd0&<+lH6y zu2u!Uc)Hlt@F4cVY~<}%7G|B-aqw!-+MBK`&ALoPxWb!F+VEr}4-lg~ri0$#-nBti zT5OD+OPAEk;$>CJ4=JlHu*I64Df_OzR$uV)n)yp}amL}x3}#TlhGTI@aBb)KOF9!7 zl2*zwn?7nc1y~)XmX$neemFK}NvcSA-4%x1>(QP{DF%57N;(gp{#b%anJnxGXq-qZ z2r4^{k3M6w`#xjRX<()EXF%~_bcj#P_4B5HT`(M;BSA@+X%xTvrifxmjTNBnc zJ;z#c-o|P%OwzT@f0PA$Oe9)|U~)+0aG063RX&-4lOi2t>ETlK^Kw)oC(jdZgo;}2 z@u|P%J^FS>it*>3Nj;N21lebr{YzXfQ%pbftQPW6t^BR;w$e1-Z+Lq z&^Arx1x6iVNQ95;I-jzYo}P-y7Am90{L1X%>0Kiq?7qb37Nf*m_&j7)LHv8@ULo%0^zcFE*?Zv>-@h@1uSo_c`{kuk zqb;GAN1XvBSY;wyR%E*f+Jx_wMx*k3Sf}t3k*ykw@Q2O+Y#;; zd+gwC)5rww3lCq(?d~0bsM)P94R{?X2jLU%+%!lM$uz1(u6k-*ygA8Yuu@elbmy6P zM$=X3v^Q?7#SV78s8h8Ze9bCeP=mpinK>mtCP)4P&_Se0^E!U)^&l#?I%E%gCc`%k zluf|qHB(w``vELV;AAi;%PO0UOaMu+T!hk7>k|jBw-|L}Hg2@2!>-~M@&K=)O6<~Y znOF6VHUn`l3Alm^e0Rou5LzaM{2{^bYVEfs7!AJawH0c^>5Z)7|=xj$9- zu^+H)+_K*0=GNeTg?&}xgsyN{v-hCnL(ok~F<#6)M^4ioQY?4>v$f(*>>oXV)L0y9W6f0fyMz_J{xR!gjmNn+exA-924o zr?Tmej3uX8N#cnN7w3||7vrah>IOgU#)Qn4(ZA`F)doD{R(T7NhS2NO=L)8G@Xrhf z+yV;b*#x=4T|4nw2Bq5lFWOJJyptFsXw?%!x zK3#6i&z83h6p|Es#l+Bh_8Q%GZVVII2ydzCKEoAfsZ!6o&_4BYm20J7fqZ^A zxqhPeyiTN}#*h4LT94b8rTSUSOxjbyY!vsX(Wc#2b0Y5(e?5xtPllMamigqb&Og1% zF?rZ%OsUZH?DO)27mOx++xWZbOO6c4SMgXlJ!8UzniM-sn!h5!7F(NIJ2YX%YyPpyy*|rTFE>kReTFw?gF7%5^W0cXQj`sGlqRHK5DdH zKkOZM2t~4WmCS<(r5jDQL^&JAnrJEa6bD2e9#;0}-Ry-mwoX_^>R(#9vKea>na^rO z+!iy?neyIq4H>k8g%tiHbe8I$E3!oCm%oI$TJmeNW31Z)=P1306#qKj6$6Ru;x=e6 zPJ8*(^csT(+yCG`^a}L*_D35gubu~om$kZhE!QErrnFV=6|O?ofM(Attwf(p!;1!% z%NkZ=r8912`A6r|-SVk$5M8BUG51`>;i_E|V}Lb@puF~5|EOQ^z8(892AYP_HE6L_Y6fY$H9be} zo&kDU|B}ca2fYEAJ!sP7+Th%KdH)Bm(QP34TEUyjboF({<=K+zaIqNGCuF35xaH3&Mu@P?FzXF6UYLA~2gZTLaDc0sor z9-kMd@>)fAz&7=t;u&wkF6%x|-o$!r9f9x=kAEPm&o71mVPz*J3KV7mBS+;RQb(Y1_$-ryy(#g{QqbUOmZzhpFt!@M~3(H?b& z<{S*bK759)Fn=ZzozL?Ndt9>w?g$io(Y%{)W5K^ACrULWKPjD&EcJ;&{KOT3{EHc! zN8?Dd?2fP#-1Gt1icD;1$DRIX*b&RN9Wi|4x8V*@z11G&3R0s3T8ZFX_Pu4coI=XoE-iW|Jc6BVXCv5^7yS87E| z2*15?OaLgvWov}lRtNZ(Ha09lpFCImgN~2@7Lk1HuF4ey{#j*Ll))l6j~_%=#$CtD zF_xyxu(~==9^Mx-K>fn{Rnzu?fp7JAF`%4NU-_mi@_7Q$@6$kbu)d?>x$^cEBe;&U zpyMq$!r5v!BpllOB63UpTFHKtqHA<7l!^|1N84(Xv{zIIzt5fiAA9IEcNSjXm6FYq z==;p-v-s3dtvX~P$1^kOt34Rp>+iad(-(dyx`OpioL+v|9O1KP1;JsA$JUuL=r^5X z5}Xg#YAuZG0>XFqm8;UcfgIl>NOMR2kGmnPd#kUg{ukux7P^e{W?c2ogEWW564^hO z_R2eY_7`CWLU-8U0#}$nO!3jf8KgfvAgx({_?Dsz_g8~u-V_59)!U$=LkESAhZIV3 zy;OaMe^bd@dnEimkfcN+aJ>GLIWiT6fe$B%6X|(D#P^sGa!K}f?_kDX?)c+DCXkh5 zKp6q0?Fl(eeC2v`dS0gEH{UxV<2w|(D<9PZ;2S~lH$=2NGQ9}_`b02dt%x+{r{@o> zy7=T02ciBJ_}+>%>wif>JDci^nKPXc>d<@C7S}q1N}%f1<^Gu)A7pA=BErx_evCT# zp74CxIW^02e_Hpm#F+KWRIF;kVRC_;jW9F8f%qtpN@S(gSP7Y8CVJ4=ABNo-9ioh* zff5)DtKm#7YMN%r|`t(7UYXlRwW3OO%cRsC^!S9j;mv zocDYhB8RGaG}&9uuA|^PV|!nJSLW4!jNLn$dFd{VaZSq9jC*|pDE-O>6!JkkV~fD| z3z?i2Xq5UVNkY+{89d)mgFY}1{DTAhvSjWVbFRVqKS_|EIh3Bk)cq5dORimgVER3< zw+BmZe0{_qnE?J+#w{YlwK~JKy>Z~`EE%hzZHp(?*C%UE9;jztp{CB}vV$m#YY)V8 z68UjeG-!)-$vpq$Y$}%QvePW8rVd=>qVp@&!8^<}GRVg^nT{w{>1fy3Ls?5uUXR^0 zw7pH@AOF>7`NpXEq{zJURDI!AeetN;C$p(P%u~!#Q&(8ijZM)l|5&Q2b(grrPM+E- zH(aeiEFx>`?}8R>;=(Bsf3y~*YLudqNY)}n$la!c-2W9zF-%mIm0Cnd@gza-!)cYX z^FXug6OQ$2TKx>8wp&4=T9s09_@;}%F7tTZsmw$3bij2P?Gs~->8=yhAWs++~FV1bL9SI%BvI ztLIYDBMn%WU|6Tuw>NcMsvgUC8ujYybr1YPgO?s*DRj)QZeJG1aO(~R#~}So;JM!Q z2x8Ob{)?|l(uTgM(VDFkZgO9v|935ZEdPhpDssvVd+^+U`Vq7*?n;8cEpd1V|Gj4S z|K0iik89H^HEW0eO3Aa+m+V)P`V)d)$pcd;X}Purxf0P(B*01=k|HEnwQjO*w`y`` z28z0U^#rPdincvQ;4dK#G7_~%uOjAxiRYSi!+081gOz>LT#(~kUucPKam;aHGu7!m z<=*9d>3+4v{MGS>|Jw@JuoPv##2@56xl)7b|bl(zAG;re>A1{xG6F@x|)zCZjixfD| zFdNWos3AOPps{~KfbNl-Q?jdt4=J3+avsM%#<~UyAca}5uVw_dAVaqBjTK&mQdWMK5f^cy~ zrFbBUGv0_$02nm0b9{g&@-0K8wkYx~W2QE&M<{UNy2ypXQ9zX5xo9+E=0ZcHf-Sin z?%VnfNkr(c?~3$Kk7*m=Q+;@$pII@3uBgpu-jRy1IXkW`h)4mCoY5b7Rh=3f!BrN@2?!-cIc@jEnyQc( zFMTb+0nJ_kIuOi415Xo?omb71TT=h{sZ^eHa=}u}Llt+$@#co=M8qgTphQwJzOz}{ zSq4C`j<{u1uuDuy?d)T)K7+?P_)k@=;yHC0CeThrWvwnW&t%u{Ko?3|pzh8%iNmT* zf5}1>Go?f{z-c>58+RpCoAYOW4!fcX+lFA(uT4_hv%9LoyIZ;qUQqYloQ3_0^Oo2e z@n18AvuYGlDz=f;mcjX_gg@_p;O`3{#Q$ZHnpDUrydD~TU!FN4;`byD8$|a0-6cc` z?)S4WFex*@FeML=P=x8iAjXoYz)ogg#oP96e_DTLehE_$Dz=L85@+#LVeF_fTA+kb zVe7yC0!i!1eOH)%*V>PuGyCYC! zzEY*sH75+r8#jTv=g{vHFfp~<`X;}7*Z-SZOP)56app6RG%T>8LqR$x(j_|7v`F%lwypVy1Ibj!Kp1|#hqTQHiROL>ejggkii zl%HP8B-jYTeEh-~&k4)Tm-ixH7JgKVo0|ubTL7&;bMz?Put#k(yzC*`z;vd+Wr_2p z4`YIcfvhFn(GZlxp6GYBd1dfviK?BoHvaMq#-`wVpr|8#FeBoKn)xU`D~dL2K{y$U zqA${2e_Vr8FADu|gM5l2MUmGD;Uhe4Kl;Qy(f`Eq1Uhy@e0rVuCkt9l=u&$&2+(_z zHR#A(f+*clkgf56H$*i}IU>^H4-i(gFrF!Z60citeFC#9*ru@K5BFxSo!sllH8Xlt zlz)-rnScYCjHoXGbDYY&fx;(7M%KFFctnX;-;3;r1jhDLu!LYV6-I@gCF(A#{=Q409e1avttr z@lYpahYEX4?Zy+EeU3Hnd3G2OdiM_4u<0)}@BLP?K@J7~=W+dZ{|UE~9L*jAWGZdZ z;aEbCPnM>d_(1sIFLL=tg3eaIYg^WLZTmmT8vf%V_kWbLA~j2AoM9wi&^R3@a49xX zMIh~b8*V@<`X7lvRLfyxl2wUc5`>mx3E96Q2Y={z)kU7uQS`O$k+{hba9(VL?$N*e zDa9QzRlj9beIb2;lq^r;-~~kl5r8Q~RWWpTD=v9^$h^$?eDmjjrv5G2G44Qg)v|H7 z8DTafK<$wER=i^=nTvtZI_$cvA43kNsoYGG1K+*4S=g=mbsW) zxKV581>_y3dn>qX(P0c4v?>va`WBXY0`ts!8)UyEf!{$>q``=yYN@!v5+l)==_%bOO zabp|ajLm&%ece1Y=}EGTMk&`hoz4w;@`<8^0kPt4DK(6|l|sG7fO0#`jk_4}0!82v zQQ2EK((RH%gx0Jk%H^r4{~}ZU+Pqi1zFT&OrDLB5n0Uyb@pshY23?vRJ-#{SWrut( zG(=I)2g@WQK&&Z`H5e(XJj@_!C*V;P90dTmZa$qNOFgU$o)KXo-7-1AEEa}*_XjFT zIarlGxh2~;EzG8|15HMk(J*5uN~&!Sut{zUvK`3@)Y~o_4Pl^X5U-mFd{J_X#_0l) z3foz7rg$qpSd8Y8HU^hR!b>qePI*D*H$E!;f$Hk7*geJ247YHke4%#OTy#r=Of~fn zw_mT>uVHxC@_N^adP72y zdP_xis($Lhu+JoOZ(Rx#um9)TNQ6X`j@_yw&32*427zTNl4jBnDbjo@rJR)&mYBPJ zGE|++bP1HjvMjZyG(AJD^<;>-oX5v)r>F0xV^x-$D9=?uTzq!SZTu23P3x4HXhGp7 zLu<)zg(n3g47|)8iBr4$ z@#>JckUSyr7{lCg*y1DSRH6!-7Z-3Il$UPk#NhaJ9vC8QH7ug`%@TuXCR+P%P;B^c z{*4BicAnP!tlgYm3H0zL3tnJ|5rJOtB!e3Q4w{0_)3U92iJ1{r5C|PsAZ!gnZqPPV z=kfkVB~)iYyopoj2$Uh-vg%r=pgWi3TycA@f5zKD)5<+EA3exFSZ%JXsyUc05xkhz z6KSL5Q=}3Q!$a!7QdcQn={@?r>Z(3i`UO<9)7c>H!W@W%tiG(SneP*FLr3|neq4!( zxRMYzv;13x8Ovwxbg_(oL#_$D3zus)zYf?#N`lIU-b^e4R4Qi)McrWVSJy zir3H*Z8r+yX>W)lb2h|w5gMz*w-n~YNe{%6IvO>iWrvLtMOMLq4xwgO{qpzjKU(>JhGt)i!7C&>;@w@oPSXAzefUQ5VTMWTssN`<7lbY`vExhJXQ z-iq{#-TmJ(-#8+DM&3lSsTG$4#dIedD%R5kWj8p#Uev(6LR)8c!;_q0UaJ_8g{KID z#+Q7!;-i|AGw2NS`z>ZK*f%jvw6~h~a6ZsyI9}mKQo!zyPJijIPN=!N+`?0Rg&TV< zg1+9ia)cRL*{nCjvBf$n{LYYmjN$F!o9;aOf5s>7b>coMj5(i(vlY#VIHY-HRA!KJ z^92#)ZJ&X$`fzeIow0Z967mX0X+%}REM31#iY}a8S&Z%h33KV1J|MXy6XFh)bmX=0 zvvU9V8$OX96NwGQkSk%k6aB#Kh${tJ;Y52S=Mwq`+X!$Px58$J zXn=ht+kscg^p`O@PrwX?W?TtUSp6Y%{-cgVg!WO;O1Gb55?+$+4H0T{D459j46Q@U zeFu={!pCu4#n0x!t&?f>3z{ts?8epuN}__-2#A+=_CvNe9sS2q z>(S5i9)7G0IWlD_E$PYNe34+Xq~QFrS(j4!g3*i&83_XbYsvoGzJiRLOfYW# z4;+DuI*AxeN}H=|@#K!rK+cUA#m=+i&`YUf%XtuIVyt!|lEsgPN;P9)MUN=8jDEb( zV`}79n(Efs8rMF1cGXpl+o%Gxyi)bQKL|?v&JdgzW zpB4?NmJ^GA;*1e8H)u^((!>T6Qs+=MSCcOwu>&2GdWCOv@7qHI+n<|wa4;RuPlh*Y zuRQjXv&&M18W+o%gTbK5G2J$U$@=b>+Z^fjh86N=ag(PmYA{24vz4Yy7Lw+O6LW>s zl1nx-#uf=m>U-JCE1c)xzK;)jpnvtV(-xevwuO(re&H4FzpwimzSix^pP5G9hkqyT zDG!kjV3Ozt&(Q3M;Yu>GRgF?s(WlRld3yKh2X7`z8EvGwB2ylg!%;&dyD%m0e$3$O zcXlavV z8v3n>W={urdvgaQ@#fh$zQ%>0PvpvVH#3ZUZVI*IF7oWHJ_3>?d#0%$Z=Us)H~l2( zMjGkMgTc|Bf6sM2*q=7`77oy>r9J3LFAK9S)r(nYPvUE~L+|i;0>~+Kpc%8Tn2D+M ze0~t@ztMTzz;`5iUkL-)T$wNEi=m6cuJsHf_PLVVJ}qAhrUMj}B>!HkR7fhC)5}7= zN$WxZ5YoMy@9Nnz@mJd+TBl|6F2|%S9$&_{P|&fUoUl626X&JSHM3P(xItr z7EcjIf83;^*%Enlg!LPY>rj1y7OMD>DAQVgofy-}8lpVk5NzP$ z{Z`yv7X(h2UZg9_XSx|(Zw!pr7E+qHat~kRVGpYfcKYz4ri~_vZ@@nqkbo4;2C$|n zBkez1jFC&`VEg(O8%03|+-^{4SHBM20-?)eC^G-F1iA@2D&sy=&uah6XOys?6nU|T zC6Kk~HM1eL!ubF~btc!kA?3mON2MFW(|Qb_C+Mo4 zf0D+Y3>f4Ogh5KX6%GvZZtHHTy2XAuS%C$yE4(o9LS8e}qyh`Q4KOs7ec_&Bz>aQS zy9A_j{=mKdr7Xo}8VXxA?OAvF7dvyVs1=#v>Ckfx)k{qr<0&Hs(#zwq$*lQILoxo7 zSFWDiLW~yPs+&>)i_Q={TLr=b=*D@X=?`}k-*|?7Cb?er7$G1mitkd=HR>YHJM~BE zxf7o<-zHEB#S|lntZR@;LMS8x7mduq4LK@zF+?#JAG$ho81$gv6QW}_>@`!tHK=s> zB>j&r?=dS$bPt&t_6g25vQCe-4aX3_I}w2~!&d5R{VeKw+MfL83=5CRsTR{v@4AI9 zpn|wpPYdtY`I56O9i8pZD?}cz*iPkM@fZT!t#V;2ENGYUeZc^`Xw_99%(P0 z-*hk|f-s|mJQAuqgdH*!;|5>sR<_7FEob`qG=BK0y)ag`e|)NZlZNO~P3ib?IrN;G|7aiNr_ThxR3os!Q8o8MjNF51PZd zf#U9|iZQnjVM0iguuIup0QHpf{rEJ&Y}9sbZ^*SkpdHSe}KBR z^2^imDHg4TKTsdFt()|l@^<(sIR6m@ei{2Obx`Ha)p8L6R>ivCKBBy-y}>HG*eV;m zym6=b`<1WdA{VSmd%Z=%`>asH%uC%LR|hxYz%SpiI%lY-Z>q(oXJK**hOPaB`3Lrvxf5BGB(!%2FFTm;{P?cw zncvp8`9DAmz#svjnbqbm0q%d&Ni00a>p<4;8wZsPz?#k`+NOY$Az16QTF99FgSN)g zGvBdg%PG$5DOeIvjHRmLL)9O-1Rqhv&`3b(#t#IiWk8TgC7SIp6R$DzuVK%~IcjuW zaTF`(rcqhI)gSKzgVeuPMiSZUVu2Hghd=-kAVj*gBW%thgitd6LNj35T^C}X=ld7 z&A_3h@X2LWUHL^Cis3v8P@yezz;=Gj{U3EP_G-oko=sY4N+20`Ef28+FVOA5g#TfT z%ky~n0rU0yKFGVP6qyD1tf`L-#44oi*Z=znD%kr5V`so3WJ)<5?d~)LUsrpzQ_I6-1}bGAB?v??DSi6wb`hsu%>eKZl)d5ko-Qt>X1J9^opH z?@?*=55K3q1{0RON&W<5om`WEuv0?aCx?BEVU0h($*ld{cj4I)2JsD#4mOZP9Bt1pKj!^wiHp2yF!xY8&8CtXdT#k@&TX#L} zJLaiK!(;vsnzusBf#uDEE;?FE7-^vT-z9*rNRbm^z@n)gn6}x}6-vSU6cR4$CMaj7p zL0N}7>AWGyR~-q|@<1s`mbm3|#XX>eciP`B!L|aTE5tOZR$j!-lv?=$8Tfp#zfRmY z|KS_ye)eN@{pPgIes6fJ|BcN~#L&~l^8ZN;R6djYCboSRW1y$d4n{x`ncf7h=hGNO zF=C=9D_JVtLqeb!2>~x=;O*Q;-O88PX9otzf2DayzVCoOD-6}oYsttEz8af#GaqGL z={yZj+i(A@G)nH>L?E73QXGDOYH>w^BJE6RUscl?WuOQVlpQk2c2BZ_0gWO zT3^;b>s6>wE&d$jyZ7CRZ2VH;M;2V+QP!nkmO+@9>H&wa?#Af0$DLl)>~ z`3Iu64EV_X!OEpMm76IMCJN-SKH-pVn9q3J_Z@B~%WHLgYH)`0Ahd7=Jq8F(&?cRE zBUbU~C8$dl*R58^j{ceA30E(>mOhLo6$|;p7l%1vUi9g-gPjBATxt zcMai`GjnsJgB6ne+6lGcif#7sDrAvhzLUG^QE29T#_z^frAkatVywCuvu8+a>?*BuxCnZ zw66|M7F&Hu^Scy(oHj5^;hC=y%;?YY&&o}ALXT>Y&LVhE)gNu#c}?^Bf4rT_|Dg8h zscpD=$wzyZmyP_ridYS0Q( z3_1f0PB6?HzMjJib0lsuA`Yj;Kn=k~5upo1mB1b2B^iW)LApg67TtEq7VR6uA)z9) zSVIE|n9=?+l=&IH`0z6jcy}qYcgHs<(4|t7v%CWLpu|z-R1nm*(W{qn%coK>6Ufa< zc7!2}yDzl7&!}G--@l6ubE2;`Cu`=r>qG>k?Nht$L{>2|M$7w6IJlFS)#sZd+eEl*m5uCsLY*P8J4$`{Wacib71@oi&Z)u@;$vN^7KK zpaDyzvItoX{!r|Y-zT3GnD_hr^4F0aL+&3WtY6@6mnqF7Gl^4m2YQ*0Qk7>&jqmB& zhrd=8ex&lrZMIWtrPvdUi4Qu&kX3i*l?T|j!~K=U%Ph1e@}LRM%&{$M)h2J^h|sR7 zYK)18Xq!T!Djo#|`W(vEY^!~C!@$~y+y057ciHGo1)y}&P_)tGH`?kiP=2yq#OAA) zsF6_R3})k9u6G=UK_)O{l`B|ZHf6HzxRV+${?=xB58d?dJZyT z1=z7Z;1ObxyyqEJ!W>4;P9K2WWbjW+<+zF7K;p~D2*WirV@`?U6@Mh1kmW5S*cp3w z&LVt7K_2cl5C4d=cu&8PA*H+HJbykps1H!BEc0P=Ks$q?Y!IZVRLD^f$&*DzR6WMd zLki&=bhUu-6|+FS)%13n-a7x>|mR<9@4s>|LF{ zCwj*J75SE}qOCkHfclxz6b$^W5gDOEqqiOi%v7S-1s5$4H5a*g>?u4^DzH?VUs&hA z={4WR&A#b7K1R4++%DK#B~=5bVdgs@P2F_fyvq7`-P^%c-r?azKpwAd$uO!(wSNT(Qt&t zH-q)9S=u;A9-I-_uMOlP%V%&&#+~*;#81J3h}hStS)*(AaVDL)_^s|5G+<<)g#ZJ% zU~aO8tOvX?ov9R&e^kbS6Sof_j+&&hl+LJ#%nrs`9ccBk<*k?HL$0&B{K6N*W$7U34l#Fz8@p*DmN?&u3@^)9w{1Y(@Q`kueYX?9bZ^fE;4 z@~3g`act~_eDQSk=+?9yIJ)KJUFEJ)u1EuFSahsCU5uQJe5}&Pq|GUgY$79PY7s2a zKru~b3UBr`{Pv%nLPk=XfIv_V3Kn?9{&!hv;@a#sI;>8@KY_$1Vo_=E@g9ForyJ}# z&+*_i_fTd^dKi*dF^}vVKZ2B3NO0hsIZAeErsn@lc$#8I ziOkl^n2+Au*6&}R2{G7E&zb65sz`4jxVMq`!$2xhY1f^*h|%Mc_wgm2+4ns$gr?=v90>QLe=Fx-M97eaXp zO%X3sw7eW9K6) z()>3&By45LX+*#*Q@O<@^is6OuTB zTBWL+PV-`@pGzrV@heUH0fsC zPejevw2QMTDd(|XfB1f5ldz_$b;)QTexX)T z_}I0Boo8H&?zhrq`u5#!ng zs7>S9dwFkVJ#CywFv#Gen<_#WNU(N%C;?CA0x+pAy#3nit`r0_ZpUTsDgDk>ouo$*x+?V<)m=htHn%0i3^j6^38*&T(Ff zHqc!cI}SKPMfKyU8MSw41p}DVSR8&TFZ}hz5grzW5pQn7hJZT=-N|FMpbi9{d;tH(fG^OpO&?8#=U=CgnY z%2Tb?Ke|iitj$~~Qp5;yTY6MgsQ@}5Y6w-MWIAxV8vE;+z2r6z5)7a*Y5A;IyCRaI zx>EzLV`^8V+0!NkHxo?iH=mb}pRbV%W^T z#Qc&}Zepr?U{qfcRXBV}Mm$;>^CxP;Wtz~OA;5a9RqTvYYgmFU29@l1!ZPaw_>#%e z-*9x~#>mK*e_`as$(ezhi#e-D*lrVr-L8@L0Y`4}hIHbuFF*HPtNZCEFsPi<73%j& zQx)*l9aKq^O1A$Y8^P$3qpDMgODG>h*b(K;kO#+5Bn>mUguny?OX*-+Lgd2-uw-`F zE`UTHTAFeRei1Afqi2AZmMGVRjIfWOEO_lLio(`OM$ZS|VwQho}sAW=_6rBMM=PcVhyEq78Ve-WOKOj!! zz|!c(@3kNDeOUi*t^MzgQ^wNP(#6!|e^qE(=Wi{ppIsu$s9OM=kfp7b7U~Arx~QHC z)a~5D?kRd)645i$23hmT;N&-8+_;M1oxsllsNZu8D2|zU27Q-}*=uzd#?+QHmmnjb z&heh&J@TB|d|T%Ce~12u+hxenjWn2FwTss**JB%@K%r^hPK`I19Mxxq%2o(b@t4$R zH9?ByuK}PS_Qibz&SS;JzJ?#&HCZ&G_r!j+63c}Vs{HjtUZ>^G{P-Mjbvx`W$teVLLFP5)}Rm(xjnoZ1MLEZshuO!7qZSy$T)0?l!>n_!FD!Jr%rqdQ2yw``9~Fd6D52v;-47N` zzl~bnHrn52@Vt6c7Pg*{S32w?+`6ua%d+vdrp7aUr_Tt)5&Q+B=s9_iNff08Ntc?^ zXjbSfh%hs9rsgTY;*m9|4Ima7fL*7`W4cUw{|G?CDREfqTlWb4zZm<*C`;C5+b(z6 zwrzCTw%uiP*;aR9m8~w@wr#t*Y}>|L=iYtCJ7U8h#hNiAVg{rn zG+EPbA}=m^Lc=Ru3$FLjAa9sQX_KIemBoN{x*YH247MhwrA|o9b}H-B6PzABU%dkX zCRQKl86T1N<+sx&$gt4)JBH`LsucYmMkl9CLmq$6$qfgWG*mgo0trDgcGfvq! z`cPNCB%PN%W;`F_IuBzjnk2*co2bisdRLQaB(~ycdb(5U0}NDnbEl_3dD6`lmdoY# zI={BK&#?6$saZR$9XVZ;tS#IK!|esEcJWtryw-|@S#vyRs!)gX&XY6^RkPxY&z?l;4ThXMbAom*+NUHJ9taC)Reo)~O`cQg^e6o;HFRLV zxLRRmiM}6oW!piwYQR>H`-Q!cR*&#!7ZJwhFf!?E48-0zMetF{pYI&mVSPg!nw>ka z*wF~X?iH!UjB}UWk?YQ;M(cq~rC>9ehRaD1qWoHLU2se!=Ne`m8+FE3F|N2lcMzwy zL}sdqM(ncxJ-t2s6JNeE+-+=%=>zTpRW^oHBhb=9Azvkhl1M(uY8{vHhX#xpRj*rD23D;x|pWqJN&os8WrPtDRh~R*!6*! z<8cpQ1<|ot^^)9H@c!I>`l97Kv#oD?OFUuE{OO)l+jy&gXQIH0~~DW|!faHU~I z;eBPH;iaI9q|B!EazQhW9+yk&94hi6z2z~zV`}+vEk)q-a6;^h&r?8mrNtPBW0Vh9 z(jF0qu?gIe?19m)7O4eJ3u@B-4&Jxob%VMfQ&OZEa>r3UOB1FaGD?UV+EAms zQ9O+)DaToo<*~szs-u$FG$s>2Q_+At)}t}6DIzJ@mS1!;SYyEg7a2%vf+UJa0uqR9Dpl(tu_Z`VqrCT?m}Fl-9nujp zqPw8g;_B=_=^A6tH`D9lk)NF^~V>N=W4+UmHtgF8*&ILmlE^B za_7*8PDeR(f`{O;wo)Z!1Bxa(R2QW_Y!v(+!S_7gN~NPU0Bard7U7&w zwRz^6R9!+u z)=SHF`O0!6vMO^OdmNGpUWLd&9veGYZn!!;e+;@t1?jRnF_Vq8_2fI~tB9IpWe!#* z7A+OoI37#1rkMV5`FI?e)!dDk`(*J3fC)2W}KsY zDjaQ=6_AGez2Ia#ABZx&OvE1%J-@5vo!~i4b$ipHC%ZRv4b64Q^$XuB-y}2!KwG=8 zA9dOoA3L(4#va~(P3_%EFty9tU!b6rR8ckpxaAL?8YA=l^(@&2(&B`o##BQ>5HBG$ zW@&+Xr88MB+L~8d7%*ZA$`zwoFbSqMGtAoM(oj(UM;Uj>#XMJ383hhSp|( zPs)MI3p4QoMs0mih&MFZ#I%!sx}s1WwrIO8A;naIS+0brlaXis@e0h=fMK$Tss?_< z6c+rUJpLIKGo$S@bgf%c1f6cZFrMuY@y%r2yCOCcg9|ZvY5J_3+WQe*bR_*gM$k>XOk8JZjS@rsQed-~gWbRbDiPZ*}&^>v20g}?_Z+B4Y1$AK!PBO>Ea93UUxMyfEP z>~2Kn0={sJT*mMCfL#W@LGHL@CMmgdfi^y@^%rL9{NQ&&rT;cPxQ&6ZYG-hIYPk(s z)zho$Y=HZ@xn~EK47Q5xP5J#||Mq;TXZiMoR-^d2fzK}6hG6}V##0IXtx6uWF| zdmE+~n&=j1JIyHMF=ee6L5Gw3)Gz9PB1gzwNH9&w!?wf<1<)2jJ8W{V$t$L!Ovd%)gSS z2YM(WN(4S*s@5^Jy3P6OA#=|=xxBCM7MeaW60v+>cKJP5`+n>9CR{HhI(m|qUQ?sX(lKkKhm1Ds;bFgdzA2)w2#w=V} zKk8gHpFH8?`@k}`f`5WUJ394~bE=b2EjOc)o_CT+__g_gY$As+Yz2e*#A+ZN**szv ze>60Sy2SW;O;;Ab%=q(*sZo4N#-1R*Nh&4gC0`pGl??PfK}&g!Ny?1DUM0oy%bo7t z`2tL)YC{wh_YbA>bzt%zlO#8D^0Ic&H8dD=#X+DYFzj|$irwsWOs-9xMH}zmkt1hp zn(WWvhQ3{gU(@P2+@Jf2%aELI_iEct>+fikT5ppiSGU<&P6wU3yJ*E0y0bUe6{ZAZ zHR+mQT;s@+MAO$d6|6f1izs~=CLIIx4?10psv!e&2G4O)X+{J?N|9wBs zzrEkc#o5`;*6F{V`@ch5cuO!`DuDvM8o*G7=|4Uv{9n(jn!5jkwoozs3&KPy$tkP~ zqNOJ9|fYY~O`+V?t zYS*qd4nI{(G%~;OYZv~TyU-0|DAVd~^K-M{w=+gvD>|vXkjb|4O?%rwa`Ykg@)4`< z8iQRh-xfqD;3nH^N`13#f?lpTZw%l{2&-0fWeN}m!B)jXLv1`V;4qXyNDrh(rCUfQ z?Ug_Mtm>Mo%v3a|s86w;goa=soD(wt?I&f{5Y-1OR9xR{%k%>(7LFUtq4bxcxK$J`eF z_4dA}mGn`8FaHW#=eMJLPl2#i7ibRuMxYsJWB+3_5-t|Prq0f$j{j{0e+91U%Ruys z{TbO1L5GNimo|u{>pJLI-JVuq9R;GathoBSqJ(bM*h4T0&jOr7YNgO-Hi<#%QSh52 z<_{SiA_L*sLLW=7muaUL!mFj=&ZOi_m6tX*apMu#r6arvZ>P)m&dp05U>E7;=VOn= z7a+p~;gWY85!=9`vTX>nEjkH@xKBr$F$zH39|r@NVyA#P3I^pGh>TYE?wXBaP4-Jv zT-ndEDJRXNlx4UOK-@b`XdgSzvQXA;O9~YDI_+pu_-x=Yv(R|M(3t12r$=T*qcU>y zIuP?_5{v*OhT^v)Vj~Wf`;5gY)+844O7`X%AUbcaO(qo;U;77ik1iv`TRmUUi{HOf zzD7T~QZM1rKTw&cjM!Jj${n)wiL>$HHH|xmm6n>yYPY~CHHu*(X!TQU+Etyi(v?`W zl^LkqK`S}<3kTKeE@lUz9)z$L3UbM9v`r*foGV?m6NHN9lCW)?@Fso*N$>Ic_c=oVVKZaSR4>zaTg)&pRIS}3B*api zPc?BE2aqm@&IPwZcduY(9V-oEXw}9ZLU9V*4!;r@`9wPzNdLNAXrxD#~Uv)C`7aWj3R}I&wjVzjx1pBeqtl)&>>FaOA@a#EitDxzeQ$m@YTu z8V#Bs)jgGguf8G?WT`D?b6%orq!s+agAQH?Sjb|$ntPd*Wu&GalaM3jLb0;6v9q*| zh_qY^fbT8q7*LU`2?V@9%!8OkyhWMALoF<0uih01LDfcm!r#i3ai=Uq?mrcdj znnwwFos|Pfmq_s5$-Wu)%8QzFr%YB~+|Rkh8U-zCD)%Y1QAK$W=y!N71Pnz#yFXnK z!`kvrTsYjd3+*SGHS&C#8rQ{Xak&(Q)7wVZkjSsp@T>7QkeXR?8Y}o{pADSv^z7Wr zq{n;wvP2g#D{W@B@3WoHyCuL{e+JR|-JqbC=l|-SGEtgW($K({q(05x1+VwpNb@RYAf}!J zjuRG6MFHFCy<*6d8f4kHJ;5Q}Yv7UbcY;kWLLCnHsNA-MS ziPKkQ@d^d{qXUl#VdqqbHAr_kJe-{q-a}?p^_2VNeuctC6|}5+$m>||3C+mfBuCTV zx{h)EL4>ERR#qKwIaHP8dC|EaC=Tbo4MT>Y9WQ6)HZYsW$tR8$e8{Zz@9dv!_2N8U zv*m47+-wek&)?x-zx4)nkJcbHPd0;1v+EP3LGI=o@s&@<GXizdgZDt6GhJ=ys|=T=eq46QLQsOmwr1( zuq^F(RPxfX^d2@Z z4*A@07juPbt=yKrJI?07x-M)$EeYA`N!1wrffHk-20Z;p$)H%@FKOd-NiMp$nJ4Gr zkt@qLLwzncPe^Ua4JxrLxUlu^-FAT_pB0uX))V|AWAs?9APFyg0=Mp1QeKzGgV8(YgT|?T%&i`}TkA1CKmH|yPpCd#GfKsp#r#TQ*h5;2T7A zgtaj|h=RVzI!>p4E8zZyhb?jnt}|SkYd9K9K=snaosU&_aruQISsacVnEY)nzrfaq zB8MfE#(Aju45JMa$(xfh)O!E^+s)n1E?nQqv zMZ$#N17c&9?d?R~uGkkRYvIX@P`}pc&UAy_r_nt$cXL9w%`$vV?)=wuYQx- zsWXmUL-<>x?qF*S9E!2Ze%Xx%MA>{zPpM!ccjTq+P>lzLnA~%mqmXaXX24|bPgVhz z%^T02E&K;e1o7LJk<(IIP*P!xvr5@r%BJ-**(D`=STsR1K~JV}wtCtAw{DF|SKy<(4eFZSw@s@)g|L8)+>ijccbU2vhZ_>Xa`Oe=_$= z$>^h<)WV<)QX46M+?%e9O)DpH&{-Z{pGKacp#`_J>K0)aX_+6!z|JHT~jV@6s z%oPpFp`z(58YaBb7d@V0yc+Z1xQf(KSnsa7eWra|QQFv@&(W`s!>yBEpu5o)UhejIaZ;wM!X#K)?2tki?I?IN?*91ssT`1*^iKG%xJi_OHvSrj znMZ+`nc+WT=6~R(|ANgbHip)Jjd93`ld=P5C8CMs|UtC1t?IHA&5clnW}~=G=T-*KB6~oylw|KJN-UDx1b4_ z>*bZ{S@I-&WqS$tW-s>#^J#AN_Z>G!e+$S4CSZZG_U&LQ@jGynLgvTH0F}tsQqesF$(7P3+9Gd67g!*zK!!GTF zA1DMs3gR4toh=V3XHE%DG4pc8`9>TPEk2I)rcD$mQyE9tka=34sS zBybzWPU~t=32c}5a4@RBnk}G|#Ho$to0XUDau{C3S88vv=+4tmcYqcaBcWWu7_2`B zE|@)|;0naH89#y_%f)Q`VxLhH{~PG; z!p+>x1?G&tBL9CFkDQCO^IsP9-`PMKy!f!M@ov+3zat8Ki zSTKR2zn73!9nwOCaC%}4Me~sX3{uJU$DMZ5@I`X#i?&up92^!3K-KHR&ies{bK|LF zohhkPUpKSvuRK578g9qxp_AcL~@N zCxuB(aj2dg+}8Pb#AE5FC|5wCRXxn5t{f%^8P6TCjv@*01e3wqI&76}>W>Y>O6a1Y z#BcX>6F*iLxHhVP4R+%s8tT;DSEAk_OIoT=1)4>&GCIWO5PqZU<0qa*CfKSwFFu`u zu5WLet*+3brcZOc7r)cu$yx|@;VIfe24VL-vG%jeeSMCN&6xwWxqdV(mKm_+#Sw%M z2BjK+0)OFYD>L~W(HD=Rx7uL`-{$B(|hge-_$stT?|QSuJT@6|gD zExMx<#5ksJlCSv);%oMtLORHRP3`6X%2K(ia60%DNUw-jSrlm0whhf@ON)+vA2N)D z3y#y6Q=F|dKpZ$`53cmp=nsh^!GYg~=%7KXs!bMejziJABSZnF0)Z^c*To(dj%yKSg)ZR&@7IMC5DFt5 zEM6>T6sxHR3_-6?k_)zX;0`c^C?U3Wp=ftCw&2~VW(A4%?~ScG19Mnka|x%c+b>Vi z(fhSrJ-ZNty&^HN*h`7thZhQ;n9rsObM5~vpFsbe^#Moocu5GA11P14n`y_ly^s`<KTwjWge>(L_c9;F`A5$Kts}`n4$4Dio+@-+#Gw2M%hg0cyRjqUlQ(NoZ(i>qE zD%JaJc;hiX%*F_Prah(B?NlJ@M_!e}h6z)pM2M3%A20eMhECWw6!1jFuXI$+ZdmF* zalWL0v8ki0s~hhX?u3*MXIDc`2)A0cWPa6JK4u>7aJgZ`e6i6n7FM}}>h4`9pU6CN zam{;;HqpX2*IW^WOm%=gMv#dwUF3xFFuDdqPVr>u;$xwLi}_XF#O$s-PrZ7oM$|D} zf>h=M-&;eEa+8)*7tV@XVMdmJNIuemK#XzvC3%Gw8^2Gy9XWzZKSC!NMFN792reU8SUm4y z=rrrq-;-i|TqIA)Pl=*$Y6!+@W3*2Vbn9v@rn6(eDxQc+0g(T38m9g%$KUUs`RA(t4Xq=_Fo#Vta%%(geLfwZAR#}Ei= z;oM(?xdlsyb25q4&J>}fp7Er`cZTR^ODPG-_J>f8VI&HZY8LFx%0$(j%cO*JDwSjr7fo6Y%XF#3kp#sHVZD6m~e>8_y%IoJF zLQ|^oyG_f;PoQL;-)X!gJBVl3<=2{EzY&rYO78H6&W@rCdC?I;Bb?S4pfBjPM~E!E z;deyf9A;$g9i>T(-jg zng0YDg3tHFa0gy(LFRYVaJPr@MlW4T9lBTY)d{E``Fjb(yabJpqf5trcjYYFahL+* zwv&cEg(^o^$q{bUQIA|cze36DlgD~RXOm3a3ux!pZAAj#!2NCWV61^;`-r7t)Ty1Z zCzu&WP3PUR5PQ4TerE4TM;PS1$!K8_Hr!|-n{z1Znu zkSN0vUlJo8Yos(}b>TZI*zLYDYwezR1OkJr`H_lri3R+(A0Rxs?F^Y+{w&FF$ImgB zE0zN~-+9XLS8J3Vlm%|N8^P?j&=HBkvg%Oyi-cd(^`f0zkks%;LC)4C!X$x>iAi)8YKy(*gSr_zt|Ef7iC> z9*3`&4|^M5Wx9D&dYd=?H=@OK8b-%^a$bLMR}rTjh9Gy$HuN_@>m}#L`%_0AeR?rk z2Fb5a(0_%B`rwhi7C@NT4J_vTUnw?KJ9Beu(|@MeDiSyCR#nl4y1soRLN@8Jv{@~3 zI0xBCwbIvHeN#LpU98rjaXgOd0xOsgoJ{~OZpM^ zK^)@feb!=BPK1Qm`RHXAHTCEeRh6Od_jzpoMaEq}y9QU>F+caPf*^E}=s}04MtR$Q zekJ7HmJK2S~JB~d(!TU`9>zCfhXVor4&ewSUBQ)PL(aJ>gl;_ zTfAsJs2%4Io6=!I1obAIXmH!~i?)(>!_DxQ5)lo46$i3!1vpw%&`TN71h#AIdY|>H zKKA+s1-FDK6)V-u{D3AV;_6t%#!m{l*ZWtEP0jd7lF1}RK`lWIg}2!5UTUq)D<*Xa z7~d?MrNUF}?^6&F-K(*`1ox|aK`~Fx=i0n3KZ~j9EegT$>o{aJjaAoH0~;aLH8twSYz) zsfLcZRM#5?sVNlsVji0Y@Ia5mDu=sZEl2gXJ=tC$%H(NDtjr#t)}0O$M3;CUir!0zZQgz zp0@E_rj(JJsA;MNxWSZwTvwy@?t2p)Prg4q? z9M1CGxQ_4Apo{9mzU<>P83(z=7kXYipi9H8n75*7UH>#U^1ieBZ|A=O* zbSq#01ExJ9s~4~HHXr$SVq635Xqz0^P(%c5C}R8H0=$3Twf_|6B`WIJp$K8|&GnK< z_AFMSdCn~2W*_53D*UFf$#aRPm($(LVKn*OD^g(e>0Gc> ziP`0w`N6n%veUuq!}~4fm+0#l!&|DaV)?zX3*<)k#uhF{1)u`84@S!{FFp!qN3d?) ze2id&ifztvkackTUF<8sKDf#1ZRgDl?SO1dEeSB-1jQlaE-yOau|z(HEw4OC5zpZc zO{Vg9))bV;??b*D*2o?dJ|&HkZI-Kz@jtW(9$%BngpVI_gBv(R3M>_14`N05gR#e% z^XF?Kun4$5zfsrrk@ZldBW<7*PxNMank2g=;?2S?6Zgd*b64*8MhAD)$jYRbaH3Tz zDnXh8+S|I$Iqh8anzW(h07a9gxbL&Yu|q8CwZ#UBhIYK!$2Mo1r?@Ib9<0G=w);xG z%1H;ULUw$l5nqegcGt5h)SUo?17c?_Xem>5!V&tguvPa|*dQ5-@#ETJ=+I8t?m z`H(~9(vwQf*lZ%AX~dlwW&|orc48}{SI&B7$%C*k{a{>7)=)pZZb)aDJEZcS4pq}` z8Z>;VI=&$}sQFU3>|(^4N{^DZFy0SOuPU1v%x2l|#BGHP@mrf$0NF2^mJBfg#ewx6 z*=oPuBHg&d7AMR8wJ0=sw;mR?02Y;eE#)`W_C>!a^kYZ?o6K20yUZEZioB3Hy;2p6 z7_I8}KhhSw**;M(IDrvFZp(k;75p2Mwex`Hwgfzw|D)MS{r8{5-;;5sVSEVwf=J?B zztF+y%XtF^`{j83gJMTPQ5(SVo}qu4XhrBv^n$rl?dCemGha^Zb!v92mQd0r|H# z)-ia#UIf0WJdjQKU*7niLSYqWL+8H=r+uPjq``!c0H0yT;=2KKWD-bX)jc+@41t1V z;Uf^9fYIrk3+{j zqJQR%g%_6)Db}bs4;%7_Az*u`-luH*(hxxL*^Vdzw+?N^ngysaZNhaL%%)sQN%A$X z({9%&?_zT5=t%Ekt#TR9cF7^z+=Hyh?~LyG(*KSjYFUH~uz?st8OR#^XAB{0XKeKs z-}HY!QKIUq@|+^tcgo`qkQ@xOeq0icAQVBxdh}^fJsrUD?A8Su{CNG2|Er%|Bi_t}_^_k`9 zfzgK9&|yTNaMzI7BIyal^=~9yzrX*^AReXgH28|w4LUINyuS?Ew^dg7)xYs!vQmQ` zFyHlNFC=4YD^$l-dzo!wpu&El9cf5K+_o^K@m&~KyBEoxIRpdJZ@F3)1w~<88J`E9)SRWYWHlacnKkerl|`3<#W{0;1e1KNpT4qCL70}oUgA|M`CYsyC6FdH zLqjHY=Eqr%WFWBHTG&HkA1gsLAokOTm?XWYHiFzIAm>xIS6g%&>l$*dUJG)doC(oO8Sfz3*-$ZoO2DMrAn%0++AJ*09elf)%7ZK&Y3$lQiw7= zdMl^a9Jy#kAAw@jr=qrIqn{5{n==Ctvjn?+5G$=S2WtUeZz;aAi!|x2Jfkj)zp=J< z=Iw&5W0_gNbJk$(yX}T03y7m*PentI@aeuH{5pjFou}qV+8l-34GsD06{g4Vckoxj zDS3puvmIBKduX>t1TJo3PFd(8DBqnEvET~y+&PV(ccM}=Dp2eS>?UMv)ZQ2stZ$^mRbCns{OL&g!75A=EV=?}m`;seK&t z&^4#$QI@^GEo{_Or5}moB*6>Vzan)>`vtpb;PAO6_jJ3C92>$%5b>@eIvw?@RaV3xqUJ` z8P^KVg@`tUC*g=Lg|iksyR!PPP%ls~m@m^&9pxQ$TnC`s*Tm+R9g7>AFN^G5@2|J8 zU;2ib$vDE2lxi!^1Lf01E7KLqlWp35B%yp8h2Y6T2~Nqi&>0Z!srEL2(=n0d&@m1bw7rz+3ib3IkgeB9*H;fg1D0m| z!>1ViMvIt=8LpgTAY4dGuE^qAet)8!Z-S|Ok{t?J$IQO0W}nFa2W)r11CjTS>%Jfn zp(o_6HUt(Ezc@<&yjwYO@31F1)V>@u!r3&zk;U?LgUDhzQu|HNRwoL|yPZXjJ`eUq zHjL=0nJ)u7oFY1t)yZXZ9L0mFa=JPj^Yq5IYRrl##dzAXyRm5XrjaYS=j45vCDcS> z8Nkvd>BQaa73UMJOuBHC6TkOWNT?O3duw;i(hEhm(i#dOu;}u3oBVLt5;hU#jBoHf zH7VbykyZd1On=V7EoQZC3!7Wi=+c%)N(XgoE80`i_6pXbK{88;0UH!&ulAY3mX>Lv z9V(IR!cYz%c@dB|HXL^St01}Zn04WA=bNg zE;Q$b#UB&^9At}eO+ZpcLs%L~EkZ>Nu{>=JRK?N;q>A=PHm7cnn!FvbVBEKzhLc~n zEUNbjXJK`jZ{i&J{LvvpC#5Q-p{*H~?LGp^v_kM5Qymw|`OFpR+qKY_@TVB!R>FyS z4h3%)**Fm^Py9WG5mltI<^e8KtT&nG^pa)M@NYY^%vM*^m@XC7K{p4jhEh_na+l89YzNIp`v;WtemsSP8?Lfm7IC2t_CK|SKkopI^>AUE$-gtYHdsxWxdeWkkN zlioBYI~T^yjT^^7;~yhWgz{%Y!cg_}6AY=#X{ZAz4yY~>qfspNi5}TTGVC0Y7^tzy zPd}1jpNmtcDl(z(ZX1~*hU88?wPdL6D!xyjriq2E0&}y=N$r+i`v0zSGEl^HyBO$qP({ ze^lIh*0@8kY<`rin1;*&=sIq}iF7X5u4*J|)v&WYi@CjeTnqJxd(i$1$_+R9-ard? z*#=D+h=W(EwLZ#G>G;8)S{KhX%)H(KJBNg-neC0st!Rmsks*eMy)J=Fu8$jAMvNh?yZz6}6b1;Dr1P)KS$eY_fy8d=G13WFBey zhOw3>tr;uD-}k3ld3&xapnwrMA{brz5%r0XHsNYBYpXi&DTMafHz+wk1&Y+92-PPS z0S%9&h>?iAeS~wv1ka8Ie#4}+Jv3gRo4zyzj<{kvq)iUKRr=i_*wZ+OX|Y;Rj4w0j8~qp`*#) zQMS`xUS4HW1@|B7`M$QjLDnQa7{8RQtx)P?K^t&Hec1#}VCiv%jTa_S8Vz}fQ=~W= ze6A+^dOn5Ct!Wl#W{&fApU&bD`Cs;)4$^>qJIP2)^rSp>k8PW7Q(TYfb>@B_hi!x) zx;;a1@sE}+b%uWk3uNl0lGD^Z+bmWaEJ-U?#a)JqFX<#RzY(rXw3ei~l71aDuzHMy z5^pt99XqyeX!(|xL85HNaSPhC=I{z9vN@v@aK#+)8I2?ajwPO%Hf@TW`OE4ScWk*0 zHtqTC1*h+>#4?ZRCDKFAD)@L|5mTe?&njvJMOs&i_$1ZNmexeA@IcGa9DQiEs z9D?XW%m!XZG!|%Eq1r|R_FI-F&jW+Vm9U}S>i7wq#$|hT`C&4;yMbz|S-`e7iAO6I z9^IaDnZg3QMkd zUQ@ogj2aAD@x0h$jJKmbB|YP2Bmf~Mwzryb^iA~ppU75rV>NoOB*SW%QLbw;SU9kC zgm{Q3vcUoJDyROdxF5@=QNHGn6cTI8-?y>sT~!hyI;>`ft`p^6IRd`Lj&tP?Bavu2 zKndr(C$XZA%9iX$X;*kekG=SiZ6Wsiebew-xFe{Hqmgf(Wo_ryNbR%r#(`P7ST%H zObc)>(`E0c%ukWTyJITWd>$nm!3}=NuW&QmvV8bC{26%! z5hy&-JS-o<37b022a8FN@y{XdbFB(B>u z3M9g4mB%4+pH3BZ6LT>lb})$n1`z80vRM*+FU@Sk{Jej5PFXv*9#S9-y<0ca&J3Ync}^UmHG? z$SUgCM7ZUq7$$~`?uxwS{YH`;rvka5HlP^mzY$^udJ++9 z3magNDr;(D{y*3-QtedzA6`SgnT!l9@|PYs3^f{Fuc>FxtS}=eIR(2QdRU{jsU(8o z%7|?Gc)cRy{lk}!2Wn9pZD)GIZp!Pb_jAXVDcLv*Bxzq0$Afe`{Z6|}pM$DT;H2Vi zh_~+PE(`5;105deR1E3GnFNpTVu}Pe0gw?C7+$6}LH- z{6eZFV4^~feF9c`mURw>m$h%&Q;n7FmAj9g%SE$ZY(eqZu8=v4)C%sSK3V&V5I_dr z9b<&H)zTypeRVd1&LbA-Cz>eh3VD6+CM01LbN&AOIryJi9pC_WX?HMWhgs_1b`}r- z))LYL^4X7c%qIR;4tB@%n)x9(dPf%O<_sHA2mwzl?%FlI{TALP)zz9}8j+jfGIvY8 zTV6UW`AQfL(rvaE;Uh7D7NnZP`MbVyQ*LqbUTkNm(916czJZkCuMSDg$|xiC7EE`_ z&H<~^@~rMF%HM1Ta?F%~<4pY#b}NVgM6BSVic^L9{A;4a#KZul*l8@0HuVsm*3P>0 zL&zy6wh_`tGFd_7!$T}#vJ24yW(KCa1sZByOzHbB5i0=-YRq-nvepODyL#OsIRsm& z=D-r7jX_gDwn5yMrTF}d3BFf!ADfwIlm>JiA@ku6PjR?4m*kk$#7l4ousXOQaN^g* z4Uq9U!4i)hg}WhK>88D`T0KGCCm#(o%a8l+{4X0M4%Tx#CP#6n(y_g{-3&@DfoQao zgGpt8z*U07M{Gzd9BP??x&~*Vlm(Z{+gYrq8es$2mO(EPYTa&LeO zvz@b#tMy5tTe`(bV-h91Mo}J!w~z>uS}t_WM_A>Q2dl^h2{rSuRcS#9F1J29Vrn+pcRCq) z+W?({j0f~I+cq(FeNV*7-w25$mB;B9{Di5;V53OL`rz8^Gu%HpJoyWnUhg(UKQn4( zB#*ebjf|&|qJmJTrW<5d`GGSQilKTO(!Z=NNTq{1Y4nyLZq9P=K%Nvn5=iDNgBL;H zQnYp`(nVunUb8&l_Iib|&<%KchGRuUVlvOpwQij1GaB)#_djP%x8sKEdjF#3+eSU@ z*#3gA8~*+a*DcGK!7=_JTr#jI+`THq6meE825~e-|7zxmfd5{oI~V*`*p{iio8nxp zJlCW^4Nsu_(A_%Acq(zE8p_J=%c0=UF_P{|+BQX&18PO38*+kJ`SI_3g^7qlZ;>`< z*&_?ipv0aCg5IXRF*6bb048a|Ola9{JoXchw~+8B^!TS>vr`^nsP2z}>MVOWg=$S2 z=S6y6`wH0y8RIm|8 zn?RVf3xr9O|CWXPN7QR*VQcCrWbNVkKkhA2ea03?0*w#sH#^!Y)~ejjG+AT3CrCWR z8I}s3b~45J;!?qYLxMEDcHfRIY@4&z>~xc~#}VWFiO51SZ&7W?ytL8=%{?W}J!@|9 zc?LxM)-V<+^LS>9(NY!mH1kKEp=*TD(=GK zV=47d=Cu*{ka+qAiql86b(ZnPmm10QA3`Vjrx1m#7C@4?9#j`@Zm9VCr*=yfQ}ZA8 z?{zG2Z9CHgPOX+w?9ys1iDBf(rCRhQdTQFG)a$ibHxDA*qTf-1BQdrNv8sMpHt5O@ z8jrX;R1F~EYgR~<>P!cJ+q&%zX9jpt(wcjyqFOoOGP4In70qrxxCFtSt6j8Fi1;}Hx z?Z`^k*8J^DQ!TbQh}z1T;&L`$o5f{i#4F5>?(`1jVQfs#kxq6Hi!$Av6qDv9KXUP_k)axWW6Fu^oC<4 zVPgcdbs^eq1A^gdq`d&V>L6CSO+I)v`0TGP+=f3qlC#V|JdmSG$kv-P!9P5a z!}vnFnk;_loxVaAv6S+PSFD8`n*K*xhv#=7#o22yNcE7o6d-5Q2 zgt5OmXfpu2e4CfU0Yu*jV^g^>IN_9Xw6FSSSw`j-A?LX?PZu#BSN}bSI>MIcSvxiy zA;~jb35V@RSi{y4qrHG|Gc4rl(o)pNNRE@YaeX9Wbdn}+8Y2GLjNeo5?05c2Ook%RKoo+Ge#of8LLQn>&m2IL2Z#t;wr6Z5b?u zer&+$7^Sem5vR)B60NC<;gzgYWEwPJTvA#^&LfhEOGJy=RE@PoEB23!v>5wdexnq^ zdNFU+%C%=0oH=$aX)=*{M*P$BJf~f{$D4eA_gZz2GDMJi<|hq0`X=|wi~fufu~f009XbwU zUhn4`LLuj;>7SEM`um%+hc0=;4gMjg{LXpj)*>H50(IjqV`wv{BEyh%Bo$=zlSIGE z+Q*p^N_Q!{A#HD`t$z^Rw{r_m9eD^h72c&QkJ3PDB*|C~V!+W;lVsE_ zCaLvZvlYmZYj~HI^SBzPVzLd?!_E3wtg|@MOlS|#pOoW1NVpXddrC#cTth~xecF;? zB(~3v@##8|3uoHMwiO0uZ*2_z*rNr7Wp*3xXhlOyBC}JB(bh=L--zir&v|EUJ!k@d zxITJJ3g1Hn4x#MVRaOqW%o*b6n^4Tful z2x5|5(PnWO)%qG=_{hAdjS&fA9|CLJv#Bzs)8@OH`agd?D41Ll0jR{pxA}5Oz>(oe zQbp^LdO$=Q5j_Ymz~JhPt^Db7Ba|e;&^ff%`TYJ?%!$-@2Fn1YdP@ZbFTe>s9hzn z71z^|J3)NxT6LXFu(*|Xm*r+?lrCY^1q)l@`%#H7EZ2vHqht2oZUp-UI4d(|Ta~7d z)VZ8EC8|;nj#GvmwVGuF!XoB2>49z>HLo9K6N_oAY$?2|P?s4SHg1W^+usUmw%F|v zVu4CEu8IunrMH~HtI5VKw-oWhD`U6)1Rm~qrkZl1dXV_Irl&~ z!NX9Miy)QpgmdaAmpU6Mv8S3@jfn~>0_U@)J zscVKCtp06H!c%taedYqfuCWzW5mLvlQ**t93rAi^qaAk2ds>X0F@%L+vn>ng|38Gi zQ*>ofm@Znec5J(1+jg>JRBYQ$#WpIoZQHhOTNPGr`t-Ry#_7@bo|pBoAJpY#7{ z?@lAa+zIg7Mw%;wc&Z-XrMoysX~80q3gnRv52{Z|cSEz~Om8S$j7gSqV>_US&X8BP zIT7b7;m-7zOH5;$n$2_wQ7Ludsj5TIHiB-lR2~L~;Cn=0v^|$9d$(=ugRM^G7T z7QruQ1|LaKw67!g(ucGupvL{Vpr~tM&XEi{`8XA9L9|)DlHl>aS`Fa?NO1gISeA24 z$^V*2zqXG&F}^g4!*i5}t@{0N@FSpqKuG%DYE7|G)m}Q^pCv^j*nKthle6FcP?aNH zNb=q?WkZ^TeiC}ytBl(EdT|A?kaw7(S!ZAWYm`HkLhFz#Vizk0j`Djm*HVZ>Ha#U` zq>`AT|Jjsq%orpRe!RVmyd3IFNWwX`JEIRLJFtQQ2&TFx5yO>X(Ac3-P%9i1+(82u~8a?GGTIJPi)nvi^(TF}+!j21>o#n&_ z)T)^HWGhdC0jyUe0RHp%AtrI%Ud}wP74sZfXuPw2q(X-CwDYk{M zg?7Ph(=We7@-DC9rqapTsa@bfnSDoP`9Gk{5J=zThyjP#f`l4`YDW`4B^T6`+@#H3aG=qZUa;nNL@4(h!a{z!I}#;}X6 zy7M`BS6&q@G~nkr=+;S)dd1KlUB{kn<*nQ)QZP;WtmX6O^M)sTVQU(xbbErS+R}-N z4C>5l(Sm<8BT`Y`?7 z^Q_w}yF;LPl6emp&*>L`@Aa$&?$tlMvm37nH!!}emus%=$Va|`?NPf`Kbm{AP+kx= zB)=E}rY|sw3TP?S%yPrqVl&>>Po_7V1Q0Gx!c%}~pnvr~uZ458iUSbZ_rO42_n*lA z_DJg~c6@tL^GI02c4`F$#74x!*1R`GN(Xr!ZmS}P!}d~&*}Tm8`h14^t@|-*Z#nHS6>yTG5(w_nZC*wib9I(t({6M`2N9LG#m?sv zz8F$5<56xRz-Tk$AhU4{3krzt0Osh;et%|5>a-j8Ay}YygU(n>3c_*rVM6zgYW{n& zo`jN+*!iC9Jl~hf;tCrf{nO|YxBde737WEreuXNHHz+7Jy6-7|-yQYyA*LiZh8SDE zXGXl@h0HEJN0BVZ6VDWS2HnQ!*w9a2&oYFWFrwsd1Z(Q57f%$aIdmQ@Q;4SYzmNkH z=RbB#+MMRwpl6DB2mjJbDMJz&=+^+U1^unlup*!L8;7p=l#uAo$QA4NoQ^{Q_S zU1M^DC&y};j8|uVDxJw$H~Hf%e^jCg60>b-l`eDhHq_wZO{>P z~E1C+S^T&O zKQPJg&_-rRvUwx9&5S`~i@`tphp>*(z&j!jsal^iiiLB6;*0udkjcVzxp2F58jWuz z56IhiXiT@iL!Lz#er*3G7#7{tux{DszwO_R#&A6a))@ZW2g$qN)~=JvqLVjk?FYOW z*}2Y*#bk-fkaV)OV`4><<>3+1T*z<~Z*4l8CnMXp)2TkRA9BE4s=|1P1^g`Dx%}*w zVOeABK8)54t|?_kTU`p53K@3aj}B_A&(4+Iv)W!iq-gij>*D}O0~w++Ds-{_GAaai zw92~$$-xQ}`kl0Thu*Yp0Ytoe3aN5CiagAwC#oAXl_*Xv(jXupr{bqd8c9F-JLX&E zQ4JWGFhwyQ02BhoRlWHH2f?Y1KgZ#D+h#y7duU$xy2HGo;c^w#06oj1@3xTG<&_JA z*B#Wup|U}yoE-vTDpkl7R`-%Ic_$?_l#Kv)YKY&phO-fMYN%ogXOKtU z5{b zUqvQWC_wDYyQGcH_h(&lCdfI#wIXN{s3dsknsWc63u0^nxxP#Eg0U+$AFRazmb>b~ zIiosZNm0daer4sSk9?Q#4b5mqDM=YT%2ypjLprHDbCqIFFotw{<}Le>Pq!F^aU&>m zL=5vNB@iY~o11Qa-(JL!A!b1G_nk~P-V?)UKAvX1)Vkn3vhj1_D+Q%Be*9q#=gtS7 zkE*->+k|7{2TBhV#QIr3KRjEyamS#qw*~_I=eVUBC!G#+JgS*Tob9`>ALuK0F_ z=l(&Aiwz89uZ?)EEg5^JwBZPQxJ5Dh(T1857aZYdA+o=t*x;U8Ag3s%M_7JM!~-pv z)JKOX*3Pgf*DWcyD2t17>)1)F$d2Mk_JLLiTPBe~ib3ZEIkQ#iJ4D-bHRh;wudd(c zjBCZuvk!;zoIsQLpi*6dUi2Ur_1~@qKM-Ymtbvq)%GTAy*4fVSe=ks3YFbVk zDoFogNH>})SS`{ATOD96)(8I-j(;BS>I#cM0CDXlrGAf5)+>qPQISq$y$SRp?qc5d zgH8VC0b}94@3lK;yyQ|s+sNxX?mMY`zVz*Qzd9fF`~2J>{BeAXF7h_&8dZL=h@J(0 zBsQhOZauLiJ7KS~!l_vGC*)`y$Ok)I+f`kSuEjUW0#-D{t4FCD(0NAq{o;8TBZUpI zUjKGp`xJC7Vi^h%021+wM`s%f=5c;;&@Iq0UKa5@(rSiOWGc|N7vQ(STFA9jXR0-} z?@{`%HM>t&SepJ3E@J6m-j6$gE>IUoQ#XXpi!~6W`NOCD)EUy|yuxIxJtCONXvZjd zy<(ayMCH1^?P8cOsBO&iOmxt_@Z4C^F`h2uDaH+1oS=be$WV7T=!(czqEe?5@@gB7 zWPQ?p8@{gt`C4jv1~tL*z|sK43N*4{TfkT;+#kY9(v}mLp1>No;@lqK9N3B}{u$8$ z5HWSpa*~{L90b!Ppl@I>LOJ978E4SyQzxZrSW#|29ntJ-om4QY$ia}CUE;bexs;L3 zS$vS%-}O6cXf2o=D86?^$*arn^ja5%J$c`jX(XwmW{d`hNvBzxuMuICRzj&dk^ZcCmhB?18dud*qFBtu4nJjNe=MhZ(wBuR5~@84s&&T7OL8Ub zq;DrL1|$Q@?pQGKE_FaoKM{eKW2S=Z67*(FExmo&Bl8Q-6rJ!c^2{iI9)s3aMfS5* z#??Hm`8Mg~D~j_NU#Y5Ih%N$eS$m}!t2%SlLd-nC3jJKI(zv^pwdELVaT&ft zcH_rXt=ifWo-$7*7LT_9maXct{0zcdMAFv6`dHrHOZw1b%$pzmnXb@CitG8opp5I( zT(n$+p`_8`5u*<~HstG(+`HK$ns8L3ad-vUO~SF3WWO!ZJI+ddo8DYb77l&_4%SCn zBcD6)BEZa_nCu6!N0_!JlvGfVGb-sRvQh*YOim*2We&Un=WSH{Np>8$W@6(unN9>h zRDo~Idm-)+9b^1n&LL`^58EHh-DyqEceuC2J;?eU()dq&Wv@0g@(&zou!kAHUZS&< z8D|>p5x96!VhBV^N@LZ+nV?2#snDRtW6b)9PD(QAFTUkF{{DQjwU)oq>!@Omp2MTI zcpUbj^xZI(M9~bAGK5ncsZoY?Id2NRK0U=G!Xz4G8CJVZ*Pz=06*(V%jU@Lv>rEv z9_q6IUuZ%1VLYn?dQVa_*=@rC;12krkqSRiZhot|#2Vqk0azeOI&>aSY3E9iWPFpw}F z{)0bZ2k!#HktTjXq6Qu;_6aVIrh;Ry#NeC6L1Jk|p;;Jf*`!~4&9mDquv=sl%i(sM zVRTeeN~Lq_WG?G`1^!#_$;;_!Jc))R?)|;{j@9LHv;F=J8hF^*c7Gl7{Aj;p@INjy z)|}Be%fvYl%$mkI*Pm}>9avm2I4G+`jx|4SivlISo$QnJb5HBU$XTw6!eK&rt8HMe z)gEP}G`%Adn$_J zk%_cOD}_Im(eUIYH(gMIsImB!_)BE1efA_mvt zGc_#^sFJ;c^2@W^NX`IO4L(FfqyV{IlO7u4JMysvz=s_B?Beq5B1YlFe<_#+^>SrXE6#09JLnU03Ea^vLH=3&2dBuGwdr$1X&^sMG)+|g_Q+=(fn8>mrInqh#8MU zn%kxnq%~XHW~r@?WO0#<&gpY5>O1%|eKI>7$vGDOeAS)keEouikR8?NMp(!`>>D_H zbntKpN&I(T6WaFz${aP#OnBF~s}&NS6Mt8T z;rRdzyn%oPmcS62r5!t#Y~<QlQaw&|M!ceoD3T0IPcCHRmvdhF?51+*iyNbcy zAU3{MkX|Myvz@LXC^IEXUYe#TQ<%zy%BdK5@G={LRg6;4 z8Nq#mim;ebClFz>_HKBAEVd6W2uOFq8pNp+WO~yxJ2SnXxyjW>o5hUs;o+XeH^Jg9 z?P)?nl~)vzRa;SErT3V5#R^9j9rY(o1jTZ6JU3o6@D>|VUa1vn?f71{mO+v(tL|@MLJBQgw1N4C$b|TNy%l- z>jCwn{R4O1+!SmkN8ZE6ebV%z*IO4}iiL|benG%WgEB*JUB6poL3 zhIp7&eMi{IdIU08-*4&fnS*-%NZ3y*BCRTisJ8Fn=>UfGnX6^&5}4?i@`~VXnDZnK z1MBp-(`4vqtzj1anY+3w$@8#eI~c7mR$8YYYzvar-_;QQY}vApv7{O){$j!?XR46L z!VW|Ym1D86NQq~CH8{kVH(g-zNnN41G_+9>{&y#$>??Bj$=A&nE$y|9Yi-kEmf?l4 zP2=sfH{<<`rlt@m*IcZ=eL{4pNO!Ja5PRL5WxrNngV%P48PmdJ#deF%)}ruG%$H&% zcdO6vZ(I@L-*EC(sT)#P2(>22`bM>Z8NpP+6-R9uUu?76+#SlMdUgH@-KBsBI#l3_ zeW?LL=mS=K?iTy0zEB%w(}4t1$VAAw(=x1r-TH3P23-=IONj}o^d{>X_#0wIKl=zGP7s>kU&x}V8AZxn22*tX61#A#A&;=gju6+dl{ z$!B$^ExoJk5oO!Uzb_Td9-Eo`b14$fDD8*&i{FNLw%C%bT<<6Nmm_cVrTdrEjqDb5 z3~br>$c4v~gBNfv#?wQJvD{Fd9*~^+lT+3Boe42thQuBDjgRjATQ4ZxUbEX@>stdm zGkXt*h2N4q5Iy5KL=t}nMRlt1fujUYS;oBIK8-5_ZMxTP0(1mK5x%VZAnUw?Yfu&^ zjBZ}gvG@7D=^UfywM$A`kd$%A^qRu_UEB-u=S zJZ%$0?)kpvi&pm7omTrZzc1aWHt@}<{Opko@Rp3DSB&lEy=YD#EhqsMh&M-GKxKzR zNboJVjVN|7#aOrLgEr}fNlU=W*MvRHS~0%7bL%C)0-<%*z!Q0O=CYpteghlcfpsq)LT zhEn^tRJgB3zl#4ZZEcjPVdehTY_xq_g#Ks4;(x7E!2hV7FtE08a{g~iRkG?gHTxe0 zXn%AxBhl=I6zM@Nwc=C{^Xc;;g*em#lJvb9+nd4gf4OE{sg=!qpy+wCGo_m6^S|%* z+y!GjUH)bhs=OMQ<}y3}EFuu&BiOinERjQA^+@`l2*dUPWB&Nh<8Z9zAxq%*kz&`W7 ztek-h`24ynCFy6p6(B-~9XRuRjpl2})&h)2*#`+s+)^gHwAR=qcy2c=duJ^M=`G1L zs~%< z38I}p55U_Ucw>-&jJ4E0KYg?S$UT(f0L=O+9q4p9lbRI3NyfSIZi2KlyrrS#XsK~k zqN0qT<34$v=A0ue`wp(t9=8)26gAD0nVYV3C?fq@mwgw!&)B$~eUEEsl)iB&ZrUn1 zWPF5T@&dpNr(cb!e^y*lCVRE9v-}K=vxz)YIs+ziL<6s2mg3-U8Lo;lO1_B-$2&)P5gKh)MO>zEcRqG;?IdQ6c!{Gz7?+_QUEVymN$nz9?jKn zr;rKN^!}zVObT)eFd?mF)LZ<0^b~>qQlCVUhzu2Lm8S+GqcBSf+ZshVRa_Dhf3gZPKE z%FaF2x7|My;s1(bD}Vd-O#Z6~B3aGq8^^}-MX(NoQPdQ*ipbp!ws#V0LleG3p|2JX zBNJ?@a*#@?MX5i#hLmgKxauluv9q!H0*e{aG~@nUPWx8~+&J@cO@ua(1Rb#6cAEC` z*`DC~2GllgegMCb9izzfYOLaHbR*HQ@F;4?#w4l=DltT>I+G!leIVnv(7~8fV~}

ghtdWFv=!n2@cUqirX<|*QA`C^Ln=O6{2V;Erb|CCRkdh5uYYXQxmkPaaD|5TfDrRQBGxp`pv*z&9=2v657>%51vigT6emlEw`&4*2 z@S*fX)!skP2{Zb55R0oZRcfeo{cRc`j#*mobM!VC2qW9h6cY&umAT_~D9iP=FSR2| zCyVpGDthul8bs%yH#+yA03g6WiJ2e@o7>Ngsp5zxM|o281L)H+o-xQ5DUuOwF`Syh z^nFp8eLfYZ0J;jlcK~~^G_Gz6v_eM; zoB7xoDOc7_5H#tWi^>RrX0gY>vrF3^Vz=S69U;iH-G7ImH>JEJ)I7F4C(8uN6Y9If z?-+1aW3BlM;3>{@$sH3o{R@3{ci0w|%+yn|@@r0Wfg7&2H*w>G57M@GQYP=GHk(Jm z-gX>OVMI6k5~RA872ReOoWn9_!oDN$o2@7ZD;6vMo8c8 z8D&>Iw_AI+4P)RrwUDzAJ6eS(|Dc37y|*kClOrQE2pups@hul4G0~~M`o1~#7O`ux z+17O7HL#s1En~crmeSL91YHf4YHjjV^zS=K{8rDfyS$@9_2^lc^_g>MQxt*n&(fM% zVYg(kj~bk)o(=O)?5gWNgR2f6?v8W>X!%{;7I*#L$TGie1T}BAdmn3e(S!6D2iE=x7S7S| z4p}X^SD$&wI{L$R@?YL^SMv==AyN3&1eWF~WT=aecd#S*K&C|vw>48p0#@uZ*qm!8 znNVn>Orgh2g-OHF*V|wOlx8UdZYaCS=1ceD(U82uTA)cy6}bU$;h~ID`8c1FL|}BG zxfCNNq@xZQL^QcA%evzxESe4|Bd1)BcqHqR%MvLY4&mDf52qvo?RByx-*JXw4A%z$ zkHt_zrr$MEGWg{~ehzCEpI>q<>;sm>AWrrgwly|D!NjcJm(SppCw;yVZsol!w-iAx zHNACczC(c?HG;eU0C~Nmm4(i5L5CDuTK){en|;xo%_P3@9N@AX`nK?N$)Z zD~_iKNc1_Hr~JP+#-of-r>!>Z2}rUAj7Q`-W0CsJqz1S&vr3k*eui76cM}VLK*9%c zc44JB1Y3tleyPs080~4pkiPT08^=@_e3e-n16(|I>`{ z|LS#BEUf=a3$yhfoaxsV84@anBAF%)a?dQ%q8NCSprYv9Xnvz;WplDFJBNcw11<-y zjqba^V_)}U9YZ&#vcvaTbM>A1@@M_*akFDWxDl)_F|F%w_RRy&Np^<7*Xt9F2Rs< zJ46EoCS*HBW19b1o=c>^gl{0+mBcU%GxBju{b5jf!e+6?EBk`(brUnmdzx{pT-RYM zf^Jl@>72W9wVBbUOQDM0yW297d@s>oI3r&eZghN=`;15Mxhb`M2>9k|rpIoiPCK zL2QcxUB#UuGCZEyF2_LIJ`?1Y$V0B>F149YA5Xr@&2;LkfJ_1>eD{cf+`ru`jCt&k zLEKSgjuHvz@ct`4K+V~mjtl{xV?-4_qhO4+iJ+kb8$~X3P}E@!(?Paj?(ICZcq_)J z`|WEu42Yi%WLRhotugkZ0RzvSGd(IL1Y+Ajh$L*~qu2T4-x{vcZ0C&Y7+PJpwE+(U zjzxjdi_U9K6(FuS)RZ!d1ZD5!Ln-F{VJLEmSn z?+0pol2mrXItD_&U|HW6^emtmOSlW3 zXPK<}84pHS9$_d*6RyJb;dL0S$aPG7Wa~P9i4G{j?@!_y!Zk@2vGnSFsfu3-yfTdg zg-$`{5(BwbNsBOmfHH-NFe;g}y_VCduPCsAi%|gy<~vlBJIq1JT%5KEQGZj$s0Dp$ zG&zV&7?F4oXXLJ=wzt;3*6G8?Fa32+E6;n6DD&-{!Ax7mn6XWg@<`~?Kb%p z!1MSO`{Gv8AUggL_K%~Lf{oBv@8BX_^q;;kwOQFP18HM1RXwlR9TH8Fd>Z#LaX0Zc zFEGF;**sDOfrYjL)3hSqSjuI^)W3^y<9A6gM79DShcw1Wn5%yyLqdc-#hU;)gnkvKhW$77m=h`LVRib|GSQUr~b zTD+-dGj^UDsi_~QAyzOSgJJxuJD*pX=|&tp3bjWvE7qEuOs%XI3LTUDM0T}*eh~v2 zQj8qZu(VBe%Zw=INElsPCF0f_=}N5WU$Py?QE37vAk*j4h4E}ar!tn8qg0OI$H^Qa z=Q-D-u+|~=|AmxaAE?XoGD}*AjDf!)43WlFO8XHfRSP(Ux#C!&qTtL*cvWcJID&2k zDW&|2YNP?hPwNZZgn!I!fhhUT;WHChOs~1LbhZnB2Y(A+a*a%>>ZVxspX{@DVaXhL zMVmJ4?S*l+JjAwi52J-Kb|Ft9jm&PkhRYn|ndfjroXoE(JjiI^ftqwe9+<-FCue@W z>45R3oo%l!)X~K6@cxeKO}^JI%@HKcaK-o28;yxq$o92%+5i zn!Wxq`tov~?!VC+MB`;KG_^p4uWN z>&X)N@D*prJXG~~4gn5b>owAG;>5o40+sWZ#sZMGes%u~E~2!2qP(1Q3p{QRvWc{^ zqh9k-MND1*On#u|Hm$eJBch7k8% z=(}!q_8`?@Kre%Z)ggB>zGrlGo*NdvXC%MBp1lEkM|7V}>P9O&hc}asdti7=D>)<1 z3_g6!--&wH!zhS>BgHXi&7@G2lP!rdy4ZxiJ6 zQ9x$<1nY=*2J+McBr)oRca-?&oL=!(XhgRyqW`qxju%fqPb-tlZVPiR30i zSkH(0;WS_TfOxw+HOu8B6c5{+oF+VX-Q9n4h|#e!fggUOjkMo@$NxO@zH_ht(;G&{ z^q(5NM<->>XMgWM0JRa;ZmFR0_i`4ev-Kkp`(2M_+LM3A>E9X#VWIw%SnH9_E6O1ynH+` ze0|(P3qs-oplUd)=WaJIEV3dVH5X)OIHoKv-Y`Ql@YH*;_Al1i=xi*WHQO88ZBMfU zkVI;%aSwV}0GA1cxsk+)w0@?Zo?W>%KR>t0Zse-5oA=T@NzV3G_7=AG*kYjkCj7z6+^^^tot_AeFSY8g2Qh z5(P~owrpLdsg13ES6mzOhA|WiLvy8tCO}^qWvBSzU?BH`G1Nm^i3-?*J8^&M=;x#Y zMEJ^Ml>`g*5kebjVxjSnM*T8SIL%}{#t!*vfY>;x_xX<8mveC*0loGWu|l31z9qh= zCNV^gY(!}be${T)HjwNRoaf4nRhlP>J&0U}{iWg{^wOv`u&Lyri1nwmL_?EScEOJU z?!qWUp<6}uu51_Gl6X3WhMLu&YJQE0-;6Wv>#J&}#Amo{&VMb@&3Q_5URznKDGIiS z@$pD*gOZ&?4c=|zjLIwBH#ugHePkTCuoTVJu$0~8GGUSWtl4*a4vZGkskIr%s%sP< zFdsymD-1sCT0oY+Z0r(5L3 z8V(WF6*86V64pLd0meRw5oK2^=&t#?g{!5B@L+RUV2lgr7VSi%w}jIT>Vw~mZI>m} z3v}A?8lH2ct!4;O(LB1%`H$Z?qQc#XtOofd;Fh$%`iB6q3TUS+7K{SLCcy*#Wr4+x zOihw58Dkjnyn!*J5O=u6WP+(hMv4?oDeM2=OG&pW(E(r(wvTf`H!<(BTu#yi%l z@b4X}?@ym7y*u194BrvLLit;YeKp9-x0Ye@X(h-l=7bJtq(`0}HDAHSb^ z7m`Jh41lRm&~V+Z6A8Fl4Hxv#KLH^gYD=lU%8>jEdo~{9-|VaaS`<7lOw21SW6-EI z4o!wYTvRkWB5h!W?bWEY;kAmGjU;cyfN^ zmh;a1qY{mQWb(#o-gHdDE1VRY z;w5%E#f@*aAU&)onxDgZEwK2CI|w=aFoZ5c6A1(8o&d=o^lkRWLBI|icISjGtd;_U zH^2}HX{b(yw&PH8!EfHI#4(Vb3xH&UPIg2$7z!#}6w_u|yTYj(c&~KtIkRL$H&{=V z3R-%Vi%LSj=8yuY(W1sQQbfrPpEnqWSaGo~}oud;>rC%HWKbc#iu0LkW^4GZl+zS{nTbar;I70p1QDtk`+_at8ZU ztI6LRAnJlC4lyTzp%xPvu@%`ozWBUoDt5A^B$lgR>xLXE8XZ(+s*#L=sigm$qL>W} zGgu)l=ozP*>p`1VbQ9maB4-Vyg^MaK-G(Cv@g`v=T2|DOW9UFx5R-NB0RFwjA8&Jy z*pFRpl=Hs{f7*|cIb_}^e7xiq;&`g9CD%TEp-J#kGoR-U?wymx6hC$GQ-mphB-a8A zhPi}S^dW@B6#Rq1W`9I;YlFKi5$Th!ndO-L+~&G1WWV+jqaKwngqtP7zpZo1ej#(3+l{9_Zvf}KD9Gb{UW-JpKim?}l5FLPqYbQ+ z9dpz%T4*26M*B61wS>TRCd%6xD{$6HX3OzF-uGrcDHW19 zO?*5s+71R&!O@xQ?V`SZ)`0SJ?Q*Qkoj9bbnbuuLnaF=+0EblDW6YbiXNMC z2p5JGl0^OWlU6yIvynwFTiMKq8pQKWc;lY^8xx(Gf%BVunao6 zT5=nEA5EN`)#TJj33pHSBJhBL=-?-5Dg}6cL62m1yXZDDBy<;~W{8QyJm38|iKI<% z!g7Dae!?jEaL}b)jOqR~Iu9F#u$`KLD*HxAen86^5)_M|>jUz<8P$*|Co!O30{hq~ zi6g8m%m%HtXh0_-CANVjT|#3|;$^b4G}7Bl`w2ywmLV7>{~wlOyu~j9J~Y0y@pfgH z3Dx3dt%QQVtINm9yrSb*SiGZ-USVOfI1;7V&SQLRKkFy3g%_j7pVVa3mM4n!rJ@w)6*in(5)CY+|ArYHH{rECfCY?}CKEKre zYzsZR9kI{U*^fkvmw;C^P&ooz_DkU<+NZU7FXPFN-C&y?QHoQoIlC2A750TwVP%r_ zx<4i=0Q;$)uaLpBF31v53^Si+_kK0mhk)Zcp{y0kE$#nO{p%C1qySUgC3$bs98+^R zr*?j;8vJbNTP+n@Q`T0a+)oe8uL}}OW65N{YE3JS+9HSAm=ukmDYZk%sz=dm@swK# z$=1d19%{PG>7Pi7nK1Yjs4lrRc%D6qf&VW`ZeR7qDX1tIaCOONJiM9m=2XJT=ljR% zWCaOBcCp_4*3)6HvwUQJuLfDPrk2sCkf=%68j3~f^b(N>M2$?Xi`}yo{Q7hY$z-F{>(4H&-BBOD(U)-KqS;p zb^enh1%+$+u}*qrS1u+1k@0z>P;Vni>^H(!Ul^#b_#BbAH@DObXL8S!l9Pv%a)Tzd zS+C3li=Omt+9t*#9?b!cl49#mRrlQ_**!&WUicYCk1vs5yzKhJ2rV+6XqWR!!HQ+a zEyh(vYJX=n0(athjY8xgsbpx;neivZ>|XGXF?NrhD~ka z>sw-8=bU<)u=GU9ZPVFkZ5|!*d9QH0?mxEs;l|F5`SVHzL5S(6;4miwApW2|SJAB4 zowmimMJ9j*r|ogK$_%59x#R0jMllqPn^!8W*Q=3C1E9b(5Ti4R!G3_ba)AAEPBeYA!H_?zrVz4pXlRnL}0mipe z*-?Bq`>l}MmdB15tJ0oxlU*;#6i-KN9Qpb${&=;PHKNW8%L<5l*whRbUAsmM;*)(H zy)z43lQ7WMSS{8@w){kO*=J6>XvK|L(dW3%`)z2#oj~QLG2&yN6di8OB8Wfro5@^} zdJDS`|AkdAY44vdCV2 z1lJ>Q?Zp>#LUPR)$#+nn;|}VqfaIufIK{fnIFjRl4)AQia8wq#@N|?Qa6Fvy%oEYV z#MF{FrZAD@szg=rha0amaLVYXuS$HirV0MdVI?=}4avNX#VJHhhODBjaWcQlFHGD#=0>xk$u)5$hGiM0}1oe1Qa+ zxq0yXOetCTvf~wQSL2e=>R88drEOW*Ao^hWlJ*h)+q>qlI(&W1BPB^#@{~3b`}4lpdt(N? zQjq2*>nO&HFf<404)_uZ-zRSNPu%s!@Kk|;7WD!NMFzt)CRh2}s?;g>Ma9{s=F@e!XHbeeFvgHHZj5Q(S{MNC{uZ5Vjdf^xLZj|0XcdGM@X=)m%mdME?tS0_glSDb)%c5L&M-}GUJyUH`Cm+oE0 z<9ij{kjLJyb1{j@7P$fy?k+f9lMOlaqNgbht2T^#u?>HMO;dZ~OUb0CDw7_=s^}b{ zAJ@_!BO@XqH5GD9& zDm<3VKt!Lh=|s`ShG8|RxxB>PeUhI!ixCBU@y)!Ers%|vV}KKL`cVv%-_;+Mh^(h= zsl4QB+UXj9H&|qd`V?x|P>#1znw^^|z9zf<%lSNCwUMdn${5UAy<;9&GiRj;iDN6L ze7YnC<<=zZTyAOAk|tY5;3-x6FI|efPEOR_?VRU4Qt*r+MedeoopD9irkKlfuNdZB zIz?)od$(|h)v!)*2fqrCAwUI@qr5h@S#C+MA*eeotA?wu_8Sl@YK|BLCA(~i zq~IDc%HJoCf-LW@%Mcv+xoxlCfgghcKLgTDfU;K|;V zvpG%6Q(*!YdvheT`a00=Y;m09- zu=W84_4-Y4&$h(+g^AeDNVP^{L#6bSvpS`i>gGRDzjc$aHu#EF-LTRkW(9{-$crpc zX`rWr+++qcJw82Cts<3I@j}q$mE^gsVXso}qKOLUB_jRuMRBDk^uK1YcY%=8bqYX4 z(aWEav$W#;aRU}t5G;x^KG!r0CLDth0D|tg2*-3ghMcHNm0fa&a=Ty#r!wGac&23N zi8`eNDP$hVHjD6Q03$s%@Qmq^AIWjY;~};WjbtX>!yUYuhh74kU`{i*(6%~YLYV_m zdlYnBxkNgm8HMeehiu#3kyiTwEGmFB809&~E=>S5PnUWBNC`@zgRbHPyOAh;%JR>E z$n@Vp7T=9QZhe4ht#yCB&Obu!^zt9nd|++rr{E3$en`0p$6Wh+k^5BLQnkuUSE65s zR#McZIhs+ zoj02Lh;nqyY&eWmfH2?7f*~;M3-~i$;>z-Na@(Cg)ubwJi0$KEK~%-r)B;Q8t*9WO zCn9}-%-~n0C!G+0vp5czvGW)zR|MV|E z$Yu8ncLbGnO{;6$J6aM-n?6-doe5QSrbB1%7z~t{fCb=|!95IoAMXw!KePUcU-K4w z%*wn@cX@WDr`~4f1bIH@HeDnZ8aQ|aQr(KYGI)eOy6|^__ZG#2%Q>KbXYvjzDBFb? zAnCICWEVWuTB62ruY)e0u?Ve64LDPFltR+LRT6=Kpbp>@&w7H^P<-M*K78GB`~32S z<>*(~6S)Q7qWyj9bK4E0V0BCVHL4D`^A0Cls(>%`brR*mpehvsa-|eTa+|620bQQV z`{MuqFQDPy{v=z{pSZ;=zA!gl<}M%;$>ozdV!KSYi>c43{A}d13e&kPXkT?jl(K$7 zM{W>jxAnSdEB&K4blo6ceH2pJ=p7dQ1B+#$@&}JdSu81umTxE}`?|aePRwwpo_AK* zPS4epoKJ}^7krG#dib-Ub=+mw@%1 z&@XHGqiyQwNY)r(aL%1UHIR69o?O22+-}uN+ zr`b#}95T#jN$Rc>kLOp(VuaWKbUK!QNvP@V-)wcYGC=v;Yz;LKeX4PXOy`P1k}BfR zO49VIvw}s~K&j9|Ln~kW5*8JN(JqT>0u}9(q!kcbc$Msfc7ZnjH-{xYQeiAsp+>{< z$F?3ZZ@2sA_?jG4Jk-Q(ciVfG=Vi-#)_ul(huqAkjbg2S43gx2yD~hAmAJ5$oOvZ| zYu;aygq#iLZRc!Yu&s738LBz01maU?^JcBcaCB;P+=sy?p>36iT;0S?_eS9Zr__ts zY?0GnR$(vWn{YCY;l;~e58G!pY|Q!I_}ZHpwb3+0{?`bBS$xtT%jE&D12+(2j}%dJ z5~(S2-Y7cFu+#8fZrWiOkAVJ?94ccTmHynYMiQIsA^0q_U}Uqf*%A77tWHxx-$^ZO zQ&jyFM+eJU{Ppp$4xEpuRQCYgxNLZN?6Ha8PQ9mp)ET%9x%1qxAz;~k)ISDiZ#jH& zc_qWw3t^Cvy0kQ%VyL*IJ`2pgPCY{7580+Hi_p;98}cIfA}Q7U&Ta7*3d>y`s=PF* zOw~CHr_jlPG*Xs~m>DJ!2s??BL~JB515ATg9+tR+E*QEoB157MaCtDbW1mP^p(?-z2}K zn)s{0$3|bFXlYfyU^koUHPI$1aN+i&t`Zf>*OjQ&$p0}rU#KNkYTT?UI zs|NHvxy@M_atOl){ZEDApkRZDu|5wnn;~x@9sFqOT`C{eaSY#XPVviITu-HA*X0UKUw9h%zqc>h^S9v{~`Sqk2!#Ua*oq zBnE~?>nWAns&U4rns>}P23g)5g)p|((KJt~CDxEb?+!O8oM{TVS&^5j`P2tU+kwDp zRnmq4`#BAa$Lybs$Rz~CXnp@<@MC<-Pp9kU&S(<(>qTH_veh(=+SD;EpwL3~D;zme zzhiSSa^t3vUg1X0f!EWuan|qT@)Y*bNXMpVan@;U>>UQinA9Ks6YZPLyg-!?E))e*ecFzGO#XFFz^$DRRG^@R&GXr^>a)Z-D}b%X0t0# zELL*&-ko^9d`JtTmQubi#$Jk%IZH-r#s{?Sb1Y5W0yEr261C4NBqCZZvpYKc=gW`p z->CO1r&JyLY<;5VTbB<n`s)0dO{lOqzt5t+>_U(A}20uM5H)bvQBEL z-tLs->PoOrSncK5`V&*J8#_>Qo`9Rz2nFB-)Y!n^dRf#>=a1?|UpR}#@i2*hxZ5Kr z%kIWOs{3x~f9jc$b`uHmq{)p7WcRs-nAA#)xVau|oQ{T>2ML>5vS3sR^WzRVs|J<| zt-^afApn_-$>n@j>7G80Fgglng1Z@ROVA>9OVT2h#1~Y#r0ZCpmde)HOB-d!6|U8p z-GjR}dW5kTd#-*EwG^AZMxGlA)t25%A(~4wk!9wtc3JhzJKMZt9{?jC6^TO;l*3tf z)*T+Eo@5%I`fS0@#-u#zWZ5U{W;mnwuEs0UlnuKX<^c5Oz^*Z2Kd0!@yC-&YuEc~! z&2HX4O1@AeFM9P!pQ==_DlYT`viq3d_n6<*GIt?WeLM{bpNCRe3Au+|RSER>Of4ao@@4?Bq%42}GH_+?6&ckz1fhopA6CJrIZ})|O=ppn% zCe6bpn=vVSO>R#5Qiglzjtz!W98Qv>sSu+6WA#p@X=69$NI8IbTi4E~;jdavIkTFf zM6XZnbXc>NoM}gw7cw!-rBz4$>Q(CWF^2DFLh!BxVQsCaiZvZjo5mg}lUEn($dI1Y zZntVBU$zJcz66WxQdjjfdwD5=ovKmy_GzpPgw(n&ly1#%31XFL*Wabu+#7>mh|0#K z@5Fr27moNhEgivaSVQDG=VJ>XQnQ9BZNQxsJXORVOpyDTCmF4el}CO5kKDz3f9xjB z4|TKpCwoEme;uj*CvWq=k{8h`)(VS?Kdq8ZmrOD80$F=cb^LcCqxWInhlFe3R=&pu#r# zxuV3GX(nOUR`*?9jL@8?YDX+7V`{cAP|162v1XA(zqCy=I^{8&D=+AMufq_oPLC5A3M(g)Bj}rLhzh&^Ht07E&gpaQWMA0a76)h zMZwo;#TonKlpnKCU_uW3xO7KNQgESR11_8Cu;qLx)rL?@NN%tWw0|26P4_s(ye}oY zx@ut5&navhN!pcX>JS(C9N_rk!5hJhl#Yw9J~2Fi((vce3PIx8wR9rJ^p@@0l;|L zGD0anPOx+yT&h-ahqp}Lva}A-_@iWzs zTn;xFZ8bm9aj2&1d{HJVWcx+%>D#o=Js9brU8fScHC2hV$vpKrz|$A4Qf8m62l~RA z4ypla^&%n+A+p($kKw$2u4!atMV)DGSpJJ&ycB`nXJGEfeTG4^b>z8iglVJvOku8u z4typaTi4T%=w~qWWm>>+!)UIlRe}i7`B&L0ibxGxd`_(=-n>?mhOI`;pBiRf ze%HNkLPyq$h_JAmOY<^QV1d zo>zp2OQ%`d6IyA;B8#5M5x#V!d>GwvGhi-Y z9*}gkI4%1(GkH4%KmHSU(syeRpB#v0$?xc64w_Uc-T8A#(^s;LcNW?WLVf zPJ>ixe3wpb;(bvC5Gb^BtnJS{%ZN3Bi`k;Cx$hl~gNRHdEFU)4jtEi^SgP&W`z&rT7P#Ep;jms!YyjJ}IV8e`yMfYyx#K3rCJGmEruT z7A(v22m2hdOK5Xs=m-iGn?P*i?!o>n;xl501JW)`ZJc`hFA6NK@grM$TiznCBFiY| zK#X^?ojB-JJUOG3_9m%&pNKOD>SG=Z2cj4Q@4><{;1jYIgaIAvFHDYM#K81-@a97f zq*N}oOlA`;B?pH$uk<5k?tDVwvHO;Q&;?zJ=ClNe46MNc4TKD=rOUvvBn@dhloVtv zWbP?!kFWH|uWVSOlpLnivkh#1w`h5jg*i$ZM=7l+Z@>Olz8quT=xA@i8W-`O!CRU#6SnR}ul1&wqYiF<=A8`nXr`Ir(k(}hg};uHXBQBWx9KHlVg zcrruM(Vv83|$E~ftpg!zvj=}$kJukrVlo7RRl5~z~T zpC&O%`(brjb_+@D*Sd|OyTt~2*YO6qXCb3cqHj2=aLnkC*>B3j>~kYZ!z-UO@7XCn z^O>#eucwbqg%^bG&ZFpJ(aAVEN8=O$_ zai%SG%SAW@>ZhKz<0od3j#O%rnYc@;oI^BNlz;O{L@cC1j3Nv5@O0+>fDQ#3^Q7TM zlXF@vv$(H0R=V6D;Nqa0@N9uiL%ot;V>!#wu0Ho+t~oBY{MZ-TL$I$Fb`4Q#KoAbI zlZ(irWv9!xVvj@3B~Rx^3YOxvTvP>SKPDEc`Slf3(!(kBQ(xn@diz}KY4XEWhViTK z8+H56tfc&iql6eR3asNQC*f%OB+&9L>g zy9t*{tDZFv?^<)$>PQU<{X9EdDZqn$blyn1Ri_3i%sv0&dXA+!m3?=vMR)aHbdk1~ zTVVt0z5D2b@&#IPselu6*aekEY3e==@6i5Fnq!dzo`|7`_!++#{}Oyi@7@ZPI6sP! zW+@ld^S!D-%;wn&g9vh^l{~fY@V1I%m;QirM)P0zzwy*wsHERugiyg?Lx_hQlrvGe zd;9ZX9Z{CBx_KI6azN0>!DC|-9gqYBy&_g85%nljxW?*#+S`6T0Mn9!Y9bqQQT0{) ziZumV0rjYWR2(PwLyU4|tmHVvo4TA9g^=-LS?{mdN#fC5%#?;e`@$TQ@Z%XKKp5L# z$BGhjGhRbv3dbl2P^uwR!~6Ij62kzSTjcbgS6lR_3-*8Zss8uZThYnh=)VcalhxOM zx(S#+y)Z^ndDa3WAzd2G17^EwwWSIwLkB@CVtPFXNqT@uniK^Jp<8|B%5xSy!tb-^ zxt!-FzTcL7e{!C)_#f;2B>u&0-0WZxqoQ)39_`royrt~6Zrz;J`uTo<^a=Tl)p-v& zdj1q|v~wVpSB;sTSk%73v7id_?JHy-C#v_s#oBr*L$0!o*HeZ_5f0zL?H975v{Qv6N{L0vZ^te!le=u4HBf z9W&o3STfV+GC6c3^2)>*o)S3BH>STzp{DJ_53Kq0^w9SC7A1Lm$YiCbMrM?o#qPz< z=?`Bb=Z&Qw-W?X87qP3wgtdECsHu0rLelgUd>oYe5dcI678`8GlSvh^k_znXC#u9$ zG~L1nadJ$zv)F{n=MQ?wQO0{EOiJ2}&B$UjMTSaK`O=YbCwF1gl0&7v)0hf^AYP6_ zMq|nY?qp-#rIUMHq3lj+WM`4?9@1t^w{w~b476@X{doq&MM{-Pu{Tgx=^AZfuW4R? ze)E7xV=1|Lnhs)qEY1XpBCHmDHSDaqs5EZRz#Z0@o& zDM_>8Mg2^D(mH`Ca-Jwzev4Ci#F`$z-b)l^)Z6|op$q&w$sC=HsK=AXMhcD)CmD7b z$@xSmqA7Rj{dkg~ig!&{zRe<8^lY<(*dFRyF1iTIUV=Q$V)3S?-7aP=t!>j!-UOUb z5D82qHQy(qsmyvS`ImiOZsDFz+dgshr5@gWE(&4n!R-q2^B-w_Gkr zoaE(p1;WT?g|L?-9Z3S@;|g<;3Q)9X9ngGzP(f%xXMPHz{rDqmAaz{w*|YfyXZ`Dh zImU*}Bu~-ZFHE;GbnbHet>DG@vxmUrJMh%NKH}Es?R_(FOXF9~CB!V8PdwnYTf>q0 zw|ua8ky~K)F;hlY08{vn2DZ!Ux&T2PCVCLGBs%M+nD>4msCdtQKcRPnh1A-yfz_fH zX}D3zIf*;M?Q+I`&on?U*#X<=UB;ouv?Fef3++~Q3ffyp#5Wz=p*!;|fH7Hh;ubj9 zeawRI`ud24DOyVDb%<7CG>ya=T+^kP3=@{>|Oq| zjiKS~f~tY_Z+qH|f(Pp?AtC5jzMx76P8^y4E##Q>xbY-8DEqNxCv0Zsbe{?N)JzEI zwM;$#W#N<9Z`C{h*or@Z@VqsvYVFFE)+eQE^~*zqpXu1_UDkoSIk`@P9--V!`%7l} zjqmL4%eH;4=kbB*ujy9|k)quukChhjLQCR;^epu2F-zO^rsDMyv%3)e2S|>D4ojJz zc5vi+tmSVkJM%*CEInZ?k!4b(NrcKl>One=IZ~oNMA|ZAP5$FQ7Z>O1*IC6E+ADt* zAv^;$vqX>sVBr?INb(a{(cqaWv+ry-H#$_hd0JXsS!g9Ow_@O}z!h|?dhwQR_%Wjw z6PlJE=pmW! zY&9>%8QK{c8JQ|p5F*>n18w^K#I*26M0RA|`_>KZB|GHCKq-`I;h90@0PtQ&uEB+& zrh1wDRPb%YB>ANy%J_(Q{6y7PiR@}4!D%l=Dj11p6c1M8G@KU8Xyl`k4S_o<>{x}k zBS#i>a3a7m8`DPR`R9d|rX2es1dvLI17|`Se3R6?c2#0Mc(n;TlZRO?>?le2s=5NH z6^K5A2+)2r*Jnno%Huoj6Q-KXn%Fip>v&RMS^(S{Z5ew=ItuxS?DmwFyw4#t_Z*do z_!dDYf=M59mwXYwQbV|`bT(+kF0+?hRq_7(-)_Tk?JfXF_Gn%A7@p?K-Ewp$q86 ze5CzmBuiJSbQinmUBg5bGY<3>u>O#{;G;{<{#|L%U{#2ua4}(Z=rnbyNZYAwk2?y_Tg(!g6{UBCf4 zAm2-JCKm!C#b>51QNXuEcn1E1Gp~7IRqI2rT3(ICwW7f6Co!C-jZVO(_c@{u{3K_mnwjn4t^>S;Em&U(I^E22}Zh=2JWA z>&M31lcqCZ57n$i9jDJSUJXEc8Edx5Y-7^H$+r69`zAbe_wX;^qZICS4?whV39IJX zME{~@JjyC~mzAZ#1Abs?jE(flgHhS7*3M|t^%@q|;}B{)n}NeWNO>^}S-k69BD&F% z=Wea`E~IfB+*6m;Xw=Fno?n6x_!6fUNyg+2uRv~OMuZOc&&&Z?dNMD}Sm|9@ggStq z>uGa5_grG9udIDG=-V2(xPM67^?-tT&K4O2+w#SaZyY)v+_lgPc5(!c)`aFno#wjb zLfu}a{E02p;>n=%yieXS&$G>pM>p9Gz}k>|w=9U_1u9Hw=7@Ekh0p8na)xX$HSzkh zc~+H%zIobsVJG}!{WOi`p@%j`OF`X64!}BX`#_jRUEH4impHA!@Pc+bz{!R}_ ztl7FCZg-#S0MpR}@F$ZSgBe!hFc@wY-sTo}^TqP8uY?MZn(t3^BdFVQth`@}pw;px zuVRe-D!;}SS=bz@V~Fjv`f5II1~SF9ym{i?c_|YAOIUbp*;p2^tasGV@T9&G5`$NI#z!=LBdsuzw(K)L06vK<}bllzB zTu^gxe_^<8)vjFwpChcJC)T{Rr7d+ovwy_Jn=)$NWvntBa~SEG?CC=$>gSn7f<|HD z_C6sNo6XPX(h@g(h&t?72xc&dNqxubcEF1-4yG>%>=~ed$UqzeBRWpJp|1|gCV!JA z@;jT7K-dO~o|{m&?_>|T2S^}=32T?MBFk4_x8Jk?xQ)P*>6fsRlQn?9n(whGvFRDv z#CyJFeXD}E1x8(M}0E)A&?8FEgEhCm-n z4n5AXeDh3qka;=Gr>v^vI@o8!vLF2H>f6KX;Zh7^Yn}!D_fbi38Af&!p9G5Igc^^yJox@5K? z2N*WuxSRX0O$N5KJm*#O)iqa3SXZ`C50FcCU+OhmT`sS9HMis}t5>EN^>Q>4bpnu$ z{JxG`S?qgWwpTy&@p-)_ZGTl*umH?7SWAYZHFFt;U<}-aU#jKLqVE)CISRaF69t1L z`_LTX9WeovQ4&D@~91T zp=h#r>(O?o=_E5oS%?ORj>&)^PRNVy;BV)PZ44-h1Z2i}UnMf0iWbo+iA2g^N{q3m z206;+mDkU;EVWV~Mm)cE6wd#x8`1UhDnRlL9@HMY1$%6p&w|A9irtv}hKfdN=4T{t zz5pKh-BX8s{@jek#J6B8-j8RoHHQiLzKN3w#R7~pef#7fDZ=XSHKYuWe z@>Ff{SG2L{j0PpiOtBU@U%)wc%U@%+VNa(4bVL!$x*CI!= zcE&4xe)p5n(1A`nk>F6E> zE2^q0U@PQ;3gQd2DUA8ikBsmqv}(*nS!MR2IVKdTjETvi)G&}oN=4OHX|)-92Q^mLSzkgihdhc>vACyi3+57w*1m+a`o(@YZwaTb*{m%V7wma-%&`6#5{ zI#BK(KIkgd+qizw*m|3Q`v-vwr);c`znM_%FjM9bGwZE{k#oooS`B3UiyWYe{<1sr zpPaC?Sv-8MnKYS3vrxnA=XnN31#Vk|EHs@y7;|n`fEh#utkpjCpe@Dz_JiprCe)R6Mg!SM7b~V`kIHt< z!eDQ)5J#}_5(Mi?3^g@S5ptgAUG_6O7h`X)VKusPDCRt7#*RO#f9SZ%GY|?XQU{U7 zO*C+}gedFHS9u|Sq>EWJ2mRx$#xA;0A!AS~!gN0g-)H2L4H!hJ%^|rawqlOS^>Dp* zNkez;*ozFqBt>W7OqEmr+HEfc*SLpUss4MF^lD3hV(J}MCEIUyXKN`&@~WzZw?X(fxc>|Pu`xrky8gp?G`n9_zLD8ljC(V-BL%9 zXspY$;;354G7tk-`cqG38%yy-?1PIV_$S8ZKeX%AzpcMK;9rWc^C<-_M z2@SGGhtjc^n+UfNiw_4Z_hs2>lr5h&A~G-RmU3`}V7>|fV|CC?BlM+?ytNJ7tIp2> zz6|M%^FJ&F&W>EZL(x*#*QNr<=tTtg)~$A@^A$C;i~&7U2hzG^P2Cw^e7Trs;t;-N7`RiEv*HhtJhM~am<7DvBrd3MI@RZaxheXcq zufoM$T1kYun-0!#>;eE%PXeG?>6QMkwKNeaC;<73_zeOQg-c}8Ta`~2e?`+vmNXBh z)d2@HJ3Pq1iQtf5in6IOWAoUyZ97`W5#pncr6dDt$kI5_=J-ahO{Zw3)?)?GQf-M+ z9_1YziPsj}8DhA+g0lh_xr?gfOFjs3n@8vs_K>Q|LW6@kZ5%teGl78K$fAchF3fC0w%69IapsDpoo&J$ z#HW%C-{@i0t@8$IrNmlmcwD{&i6cf1LH}-w(4{BczSs#tOvq~yw*v02u{0a})8uO- z4#Pf!kLUa$P9YMOUvT--t_futA+7gMLqZ`)Seuug+TP{`9?O1jS~qG`r)p}gh820| zM8)Ii0F^xx)RoxtJ3iF?R$=nI+Ny|Ug9H?T33H&O`GfCMM)du6i(D*+llOJfUB2mC zFV@O1)hwL)h#xIYj8os>L0xSU6nU5hqAHn63YZgo0Qy9dv44?}VzX>Jde}`Wm(KJZ z(P2_0Y{T>MGlXEQgOZj0CT4Un500!yw(Ow=Z?0XELfSt^O0o<_QXhbrshY!SePs4I z*JLrRA+g*hOi3MgabOV9E(EOc8Gvc*x=youmX!k zNoI*kxCO#@!=cCwQb{7%qzbrJNw7izm(M;dleZqKwytb)ddKpnfp_wLIZ;E7@$6wp zB|oaXp5|$ERt=3YQ!@jJxh1~@3+m!jz>DVuFhO8iw~jnN2VEYtS%V53MG&37!um-) zI+ohJFh{8>+iaIHSwdMzH-FWx=#YAQBzhz9F;RRL{Q=Hq5D|ydBda4xffsyf`K5M_ z?rBcmY*Cr!qG{8XoQ!3#MIe%KpdsNRbr5Ks5Uwd)A-?I-m_+*7kXAR8aoU#Z%o=Nq z9CJ01fIIXZ0hIZW4WeBmE>2MNCjdJK`!L&zmOaw|KsUe;IupCa-pxa7_e=K7Cd@74 z-}euqI}m$uxf)Qd$NMUaJSrzsU|xwXBQ%mesL{BQ`JR&{wX(`1*|Elwa@1^TRP`H& zpqZ$8ysLivTT(QVEoj+8H_{lLqtym~J1dR)oij}PZPFhYHLSC%oqovVVVVN7x6yNo z#>l3CozR-wAgiYWco$|>Yw}_`V?1K`_3TcZIcR72LVHNoTZG3e$|QaWM0a zZ=vdVYpPNa<+Jwq1gN)qgEC{lc?0u&&X6K`w4f1X@XCxFF;RJTE}8l}(I2xu-DX3& zG2QCH^r+^XejcXmTn^`m-M(=j#K!qpPfS5HJOA8LnPiG!{;iqRWF8O1-o$@@2Uyx5 zZuayOJPm1wL7IROlp*j7F!4)dZXxxeCC=4(#T5=5ylxoU^BE)Ax5?uO3D{iLi^K4=#Zb;be(u(1S!xliw` zy%lfn-=Mmk#dGCtEw=l$k*Jn3$OgE5sV|)88L zHIfITA9stSH3|nIq;|Z^=W^F*Tv*C=xdagj`7-9n5LnK@HO9C30fSOo=|gCZi^pkNT#O-r%hEP}vbiLN#Ld9pl=)0^IRVE?T=L2JmhAZaDen zShN`RX=*B^Ae zuj#vu=$qEFHXTo_Wn=}M6bp4@krS}$F}{o#17%J1tVhzze`6!jCRG2*@aM{&1>e)- z$JjY^-UIRQB(CX4V!cE4VUHn>igh50?e><^y=!#f0qyz=exy9P@lB~gQnM$Ec zDoyCsG^2xQ^D}rX(D;XMVU(=FZK1Oy;u)0a=9N?>4+!vJUbzoo3`h|C)qorsGGiQ)93PFrNP0zQmZb+cuWkX-!>gou@k=Th6{OTh2F)7`+1EjIpi* zZ*sG(fphkkYV42IDTM~sT$6W(GmzIK+7@blYYtXAZj^zLiM90Y7}MbIHPk|wS57P+ z-A{#Lm^WB5;sQj!2?>dguVN6%Wmn;!LJl|7b~j*MnTmULm53ihce#Y@VjL!}uw*1L z@K&KxAvKyrnnLDzYyf)0Ol4G$L~@vCM@GX=)pVN_vfU#e;;ltR2b>|wagG6TtMJJ< zA&{JZ5}`>=REzS$=ClGx-4xm^p0{R=ighb6i;LGm%1^S+PH@yfYUBRadf_I(vTw#y zE&E*J6P3GijxrIQ$yahN*E?kq6EQure6{pUR2xGuo2~mTTeI@MEQ@RMs;boZWM@{H4XT~uGyUh*>+<=Jyt5!7M@5F925i~)CqF_e&sjy zk(IQ_&d^d-93UIeto50E4a&1?*}Aw6ehY?iZhgDZUx` zN5~K&?O>Alj%7QP$Z^!aU+8Y?RucFM(%$(4?ZwwfE#Y7K!6OJPdTHz3%-X96EQUl8 z1m+vtLamcdRF~;3{m7rOgU;}t|9FU+gi9jZ)l~-=eNq1FJ+YVc$QzYhAoyJ1>z8^@ zWJ^qokh+i**KZiM1z#V5^fMQ~aqxD#nt_M*rcK1#mPw&qloP#cNQ)_ZhHTISjo2&h zWt3I$v;#jq91{?U;63ph{NQ;V^9fp*4%O5~LR4_{5&tYj;d!-z$hH4TcS)B=k`OqL zWrZ>T8fIBT>H{u6IPdjvvEm)Qz|+6QGromFzK=t%1*-10nC6_1Oniu(sb2Dt@c_uX zqOU_OQLThu|AXhMyRMBB{R7Ss7yp0Iwf^fn{$F<$UD{9{xXbZ1R?)00Www(IbjGy1 zBT?cF;x7PixE9)VV^S?mU>gRLtqe;k+gPt5*~tV+U{GLxL<)aUbmtJkG1IkR!f;~| zVaR<=;Bk5=DL3ahI2%rOqIKO&lWFzt)kWtYUs~&~dF5_bjmFdJUByLr`l&qsJLj(@ z>KEdwtJsmpHZ+`

VeROs3CH@hCU%1-LMWmz9-iyb`;&P*@d&;U?cn`!osH#fXK9 zl`>09R)S6BHC{e7!Z=L3^%No02+T)uNcjbnAkxDaMb@fN@aQ?D?Z?cH{nZdSzr0F1 zLDfz+7F;51(0^17u7NOs?W?M7#XpK!Mu`=J8%l8fn@HIBPY7azj(-0XgQ_@KQQ5w{ zL+MDYtm5H-78i`av?VDl-oOzSiq+zqs1wwa>7&EKi;=`N=g^urrq0It4Eq*B4}t*YD@IeC^sjv@l(>gdd~vK62~+oWSe)9-7~&Aj=f@-G ze8^*rg`{!k0<}9OHWn6hB@*MFPlcm+Gh_`U6OllCGhIl)^&_AXfW5*V1k;U&JNg}F z2LI|^l?H&fNe_&0W-@qtGpXUC+y@61U;yNJ3dYS&1yfs>eEOhOMkTb+}h@MR?dA}rN%(zM>?tSB15I|=gU z&~jPT2&7sTBo`dio=iB^Fu64+UOvGCqex|x3b6rbg`V7ZIq9LGcxn1N3xP*)xz9jT z9I<|`Z~(VCns2AB3R2^}Py)bJ9nX70R+{Yy+O_=xh;dIl&~mf?y(#Gp!FL}7ittWP zX+RNAaOqNuvr*c&-yaa>gv2nlOcc8cAsirX(5s~60AjJTERlTLx!-cFVPO(-Vm*84 zBZ4GKLXO1eD+s0K+oJi}mD9q>ALYTxv^*NRdX4=639pVD3!^@pn+&WA5IbfmeV1gopd1=^(=)|(Uxf~il+o2&7(t)9PtW*ngDa;y9!|fT@Kr1Nj(Dqz2-ru_I*Se;_}C_#F4er zySfY(Lwa{LuH?qF|7wW#YKNc?L{L&;=hM;IrqS9)FbCsDtMWDO+oi_0Ys1dhE*@##rED?K%&&s_S5?Q%06Pg`6)iVAUJg0;X|(`^Nuc@1{I8;!?eH zyRWV5dP@gYIU!nWdq^P|`qt^)6B1y_%DxvHg^wThS~%Dt6|0BG#%7mRl+BNLjvtQT zW~C}Rs_K!JxPZzl9D^D57}ONDqX0IrxwA7d z5YtmWpkWg8f!=(j{dz08brDSt1Tj(0HF?7^!WnU@WZ|w@QtWla{-lK8(W2s-5>%8P z%G0vl!Ne%Jxm2AAP){I^xs?b-x$ULd|Hq;fWV~_Kb4EF^!u2G#&LS)XJQBq%+S)di z85vQ1``aV^>C+#2Rwmj{G{dn`*;c^%%Dmb}m};dWTPd2QptZQ&1oDf@u;L&;ttRtf zZ`X1&l4WuM_b3ZqKX|nb@(ZFB@Qz8rK5_A&m7KF529WwK{~%x33~fK4Q#In3@GY`| z`6RePSj?%vTj8vG0WixS*i87#@ngFs)t<9Ii+89i>8WpNC-Y$9__LV9->$MQQL|)B zjPVWcJL~umib^iGyzD9@5-czt_im4t<8Q8YU{Gc=6JCq+9a_-kHv|ionPH8C9hd=q zQ|BsATm)kUHKM8-L^vg*wYY?NmARt{g!WMXXT5zKlE||`s>XJ|dD6MoRHhIj(xcw$ zMY_fH<@sgQm1a4Ej*hP17Y#$&XLwNzx?k%LnF-O6v4yVeBH_L;j;5ZoF&`FiYX52( z(#T?26Kq7#4i;YcWi=9iNT?cbwt@Qr^o5BdSnz_Td(sBRYMTct9Mg3S(&WL8V~-(i zm;8ycWA#xNefH0p`LL<2<^bGxJH{N5wcpIoNbsXq@wBGf-6w6f{|l-`&Q&Oy9r`qz zuZsY^r0zNjpDZU?v!9ov{OnMP|DEeSn#d^7TUoQ2l?_y6DlQKmg1)?6FM82EeZiFs)EkH*~_nn7h!Ey<$ zlw5YWaesuE7pC>@7U1e*$ zgyw<YM_lgEYtljIftre`IcRz2s=$LF6aPSo4 zoc}pwKd==UTxpBI?%E9ujnn0w&Eu;Ir`EWjQ@C^Q%b~~(RWi4#s3BXw*_PB7`?eX4fuc>bVO$#S(&Hwt#1xYPVaz!o zCfVv0(u_D=$qCJI|CmS^uM9!6%iwhuS`GxW-1wVQDuy-_`=y~%?hjJH( zlhP9!e5sOQvgtVni3Is%%8`Y`O9=sgRHuPDJ1m*q*`&->v2ml2iJMZZX(hT6!#~5)2fCl* zAtq7BwiO@iWbF6Go#t;5TUW-SgGSu3**)hVBf^Houm>ga;Zw2?`$#RI)}CB<{Z3w+ zy~tNQ-+$Y@eG*lmmPBvLt>xY^1TXP@qXB|Bf`fn)Yw_PwbjhD1 zZ%HYh-52!qaah&B%40#ql#ol6y-BF(9jVpssTPX8itucgbcMGjx`>P8HUlEC?iKpv z1-I+ZlmaJ%m6K9$SaHWl=BcJi)|DpHS zID?W95T>IJC90gJJ}{l73rC+7VrKdvnXKZq?*fe7or`Rf{;yXU| zhgGnK{eOhLbBrj#zvewWW7}tJ+qP}nwr$&IY}>YN+qT|$_ufBtf4Q4Ys?%MaPAXmL zVn5&Kv+!>|?YkVGt&n2sURm-TqnLy3ABE;&MHM-W6g3Kv@)}77>JgPZq=#V!Myy%N zb`8bG&`@lBVB;3Ob<>18WPjR60hnN)`&dpXR^R? z1XH-h-|uM&Y=++~XDQf4>-FkuZ!?xsFygFlCE2VWd#dSaX`koV;Rf5ki*u}jQ(c)x z#Q?WcA)HiOSzB}9!%V1~En^;HiAnLMJStp9EU!HsFLkfc!h|0=<{b;-yE>Oo%5yRk@NZLNUOf8SFk%8s+1a_e zJ#~G29FExu-Y%JPnsYMosXcf4bvI!RXUr@cUdmrB=WNF3JSOx@h3D!yOlz z7>i+?uA=VLcRLkNu)rq~=Z?UTRP7AI`&utu!TvnfW`9DyUtV+z2P$d0JGYpeBe4@g84E({Q-N#e1LpY|b9&Fh3c^_2thx~9Pw#qjp9;*Q2ePSCqTSz9_8Pf8K<)89T zXpbN_tK4J)rG}d|%5i}DdJ+d(h1LWdJhj!s`iD+WBpiiqmE%Aey~39x-7{3I3w(iH zz9i&~70qpMY(*Awr9gb-0$4fr=a~^pEw#o0viU>8MXFb(f7Pd#71SSsEp#}W>pH{F zMt2D0^1(X8Pe=C%BulpD8P5%VTl9wnp9>;T(as1c#OqgkRji^NqoQ57B$B6`TA-|& z^1rgbcgQu~#AyApgSaJVtOJc_Wo*`^VOIr*dBH65kboNVk)GEzcKF$(@)Rp16) z#0WNMxn8m-0n{@XZSkITgj4@&3^Pf02kR6)Yd=nT$I;kMK0okJf&%l zIk~?qP{qCEV*Z4NtRmeJNG~-+ouYs5L9QHh>o@?B;06i`AEpO?Lig?p`No{wQ`EjSIZOQ-x559b>pH4?EBtLdXbHR;#G1KioQ# zGE{0F@{t9cpbJE_<|EsK8XQv?{K(oBO!;vBOPeCyM*4jsE!TMHlgecUvEu|s^vO?h zlI9ubua9b~S0+B*bw^BA%31!9`XrjEa6i4n(nzo$niU{gJODAd-q2DTh*$%a%Va&e z&Lo{=bLoZnA`H2Jlbpfp+(@ZD0S7lV5UCD-g z59tC$>#JdG-p!}ldx8Hq6Mx%cit@doi1Mx50Qmz1@skh#okIPoLk5q#CKB*7nsc(w)Z)Tzax0Mzm-Xp*W2%oMijp+X#+cN{a*=@JhnFOfE4thnQD@> zv~-7dpHROxcKuJqWH>w2{giuACwP`|xdZtW7_5d`89v}A2pTPb8g^l&V-L6!FfFEVNe0EP zk@%awqF+;*08&a;-to=4LGf&NppDP^q*M0zI`0!spkqlu1Eq}LOVeZdI@jFqFJ8Zk z7C*HHBzSTxGFiA#q=EH>5QZiKBt=zP$Vl-cVI$64!NPQ7b{(S{XO)cQTph(SMq%GC zjf$2wQ+g1?<^Flg^=8X+n)@Z|7fN+GoJMjDgTzVKgv7`fYL@lF)``@R)-IRIY>DHj z79H7UjqEgul{|mk@EX6f4#FwMnYL>Z}!a-AmAhiFB_Z+WG0W zhLAc4s^SNAg(GK-IN*Oxrypstj9- zM9(NdWH=$dX$`U@AL&9ViC4U7S&*m`A4?wfOi0TLwPG^Jno>S52Y2#_AqA&7FjU+o zeRnQrXL;3x2Vu%sVBpG+=|0`g8d6i%K$O$vOk~3RQaeQqJzOYZn=|-V@`x5|LeS(w zmew+$vJJb|r}ft~^oZU7D*eVyusNC0@w?QzOtS}~&+DvIox#GrpzqT!kH?@KgX*L5 zxOrPlK{j8<9?LmDVnbrdR<-z6D6vg>t7oH85&DRa<#=$>ZSzFTzH(=&-lYiVr7WXu z+dekf2WkAdfK+8Y`KwUAd875aGF|*MQHn$Sh6s&Q{D-I_i-LW~YFvg(e5quv`4TzD zVuX<N5P=XwM~oD9)>ctlb%YG%ne zr6s7QCAh%VXxJAdd>ak8>+jhXSOEA>5rUKau`kj58y>Sli{G~K7_KK79C!~^Rz@Q* zpas92TT{>kyfdU)t{|v3^0h+Pz6s!zdKgp-#Aa|IwgZZW@u53(pZe-68c*N@`ZypP z_7I&+e#nRci0mLUL7Ti*sHHos$b&%Co=DV^&xH*nXeBOtZ^e1M|T{&(O?lm*9r~)7@+HHqXVYeSI z5ut9Xt9U`dJ;kmp`DdG->iV4pq;GN$(DyYAvj4^q*8b@BWiKbrt6rZQ8eVo0eG}vu zhn>6H6gi2zUO`LIo*=K-vC^(y?jJN9yTlv6OfM(P`&nyTZ<*(JA6~FcrF>vV5Df4Y zMfd~qC@djMlDKFrb26KJgjX(YQgBx!n>_I}u?70{V|_^Kel)VsGAG*NIaH~Vsx*8K zI>lVcuvuwMDlf8s4q!Yq%cHe|uh11*>|0|f|0>VYa;kWD)7F<807>ma3S<-5j(j=% zX<|$QWoi|j{GE32mIA3Cs75#{ING!RLHf`fp=@Tn$+$p|2VqaZwsCF3HqFV6IJg^O z5ifcxRT)CK-8qYT;+`YzNa$N|Q6JB7i9p+vNFz0IlK&#TE#0!vWyFATnYAX&>0{xo zS4?cntzUs`k1yW-P%j?qG^8%8;oU{Zn>fnvZhQT@7v<;TyF>1=*mF8FK{gB_Oy%9B zNg~n9@_7SJA&2EsvvHuo5L^p4qDGn{rOXDJ6>7I;KkKEVzKKD)D2gGsWQJ&BUlb<| z&DltVMd%i4(ja((cH)g!lio(>P}s(KhZO$k)tE%kVQF=%BirUfrVytn+fAsq6_%STE9-8TZkhQNM=rQDbyO7)uY+n5|FN$f{F^e7j&KbxS}zf$-vlzw zju~1ri@ZtxC$5B}GVe`I@~Jfwb4a~%u&WVMx5#twu6pEaAHGMVqb^57xc{Rz{P_UT z14#3f+)MD#*HYZLM2#$hGIjSJ+xUxShMG2N5DZyl{|JG+8KPl>ytq>8OE0go9_eLp zL#AS$W`?rne9$|6*u9&AN;iH{2ER#C>?*|_>JPPw!3au3a_8+rM6y{ifCky*)2FfR z6DGH!l?s3s=-6o__8f&QOd!fmTxY~S*7KM^zj-|U?`6I@cZ^miK{uO?2i!uL-6KI z?WO$o*a1UMh~d2aNe2wUWF-sb?p=D!Y_YZC< zna+)%5X_K#7rzuK1M}x19SEuS1$brXtY17Xb#;Bc(aeqW`Q)@UpiwX!V#R; z9t>a=hH`!L9AVBhfyi9q`CrLLxLV_&EKjuOM%|4WkIb;a1Hh(}vh^+pBpIzy0W&BM z_>HB@HVTHP@&=zLe}w@gRLy``QD6z*C>B<7kvAwL2KIs&@!tOF#vBF9n7L{C=RZ^# zKz`Mv8o#QHrQc{h^8c4AL&@C9%Gl_?_2){~|39JA=NF$is0@fe6?RX7pJtVp(jsSt zg{7@6k3a8H%s82_S-7I^vN5Gy{Lc9<%5m`T0IVeUqktpFbBzxs{+f-5ajfkmC-o%j zVe?_8=jK;YCKRk+eht=19++y94AOuA`QSq~9$!yTIALi{_oq!qqk)@d%6sq5Vt28K zyc76ZJl9LIn-pgrOxSYDCh~LUPQk2!+gB3yB7bNVFoCn?XE!UYH)Up#Fz< z1C=+apSi_t0WOfD<*S@9_$K>=XolYKa!*Hb;7dT7T*e|K@@cl>nr2g7LtAHS%kXqu zBc-1QhqTC_fAdrrh!un6r-$5J3LZo3Yts?JpHk;;y|_UZ8e?)g`#8*>T*{O#93upa z;$7THS(>rlQ^oq`xSX=o zN&1Ze#x&BC8F$tT`cPgjnhxW=tQS#zPWVc^Yx^)^&w`XH#UGT)Wb}eE-#L3f*=wcb zgwDpbycruKh+=C+P2ntMEWQ`H(8Gya?MtXYMr+|;Iw?e+zpc`>^Q=H-xUv!EjzTQ6 zc8V%$YAUj3wR7o2J(cqM3z_jP&NW7B488C;L)EM|uho4ndfF1lrJJ2{G1mqb@(_?W~-WZF1wX<}&aF=%Px9h;OA1Fs`Fa53RTgPJ&E> z;G;y`n&T9Z0T$f8g<7UHN4th!cha~9t6EyS#7k%&+CK5GADt6Be+6t|9igv#Bb%pB ztgSmS?RHV^eqgms=Rmj#Nq@iCaPw#dtc6@fOHuj(arTOvGlxLBHpPhuD#fiXey;yR zZb2LXpoxnF0MPf_I%)oI4OB+o$=N~Q%G}XO+{VS&#>v*f{l8nOI)sayeG3EpiaT zs{E#PiLIBSrbz3nZrbaepY0chwN#%TIG^-Q*W)b58SbBktyEGTuU&oslzUbG8s_*$ z#k0d{zO+a_O%hDC_;41rGpYFqVZ}2&uS^_S(gaSJuzyuPa?c#8ZW7*`GGOZk_MBOb z8VmkrEq4D%5M(tANh`qS;H?_hFU4F+&KJr-6GOH}{Z#4f?F3J(nw!-F@|8kyV%E!; z!-X{Hs!TO22rxoj7|zV7YUd@aHH@9(id_CaA%`M2>|6U6J0)ONe0b7Zw}1tF&bBwXMsQTJ zbdV%U-H!r6Ktcv8ZiY`%;}M4Sw1D(DpxQ+MVXJq56kG7j2!rXuYT*rGtnR97SJW;FCpEj! zx?f=(N?;SAH9#aPdHne88KGCBvvI=R{-Ri77>}Q(hS3o>Bz@?lY!%1T6&YCPdeK*= zL(f7Cs1TK^xk;Ll&Y)^RPZXt$ceRi&?v5v+8Y&D)XDN31+_O2WmCf}GXVP_Ml6t{Q zHmoE_RdZ?5Z!l~narbzn`A+lq-%TseFbyAK>l31yt12F)62g)w4^*fD zi6Ve$y-3-^cIZ^L=)Pyt^2a5DXa!O^iBb|4i_98w@YmC1#xG&!B}DZ`#PklJ zC+12G`lyYXoQtmHzm)p#$O;NUC*7PH859pB&3Gjgm8Ifu^?EL(Xkn#&Q^-0PBxM!j ze8;47ui9AYYs>I^v+-oDi6(#Tq%h+C#|;`x$NOJ|+U(>fGLLrHgB?$FBL~N&n-HC+ zQhjxol080+0*UVAGAA)!DtOEbXz0mL<$h1pr@xn1j!Ov=Y-~8~zSPrJs>e%Igm9#w zCMe^3A6ks?m79j4g6QY+tP5uu>nlUGoc%{~_m;5_nZBwhUkHFRF+DHd}3Hx3Vo3eU1w4@v(YFSWsg5r z(rz@ek{F|vVUWiRyxdC|W^1@`we*@MM_AYRrly@GzRj?8z*)h4y8i}fG3tDYHrN~ZfZ|mq8_rhfpwT} zNx~`PSc!8klF7I`v+Jot1}>8>C4X)1(Q#?};cf?f)OoccJ3wViQC)-DIJ9(`Z;jw6 zu0#6RrYu^plLEUPMNE%wuQUZem~!NGd{RJ5VV9@Rt0d@MNDrZVECq&N{uEGG(tJ}K$tCk;QM5|57FPP9#7LXnsw%hm&L1D2b$R~m zq2O+N)yxIzY$Xt?{hdiTy2gBieV19R_JAA#a~eyMWXlXHmKV{sEKoI0F!%NPf;@zp zn2M2+3S(cJoR};cm7E2+syAO)UStSPtgx`w*nl%vX{hMZs;T|>&Wc>@jDUfQRfvrrtC6!%AlvMpTjCbZ`aoN*(kPO9s#I2!E!#2Fim$p(xm z<5WtEY&RNKw#?MvMc$eIV+yrypCv^V$H1N=5<6%;YDA(R@iw1jR-d?`B#;DW?DZ0f zasm%&nNC28Iu60043nQRZo$cMrgNY-ln-iwowbMMkt9EsZzz4^Q9r525)u22uHFyt zdsCUMDvz>mFitg1%AjbHX>h(x4rsb-C!pB{g&9okEwUb*SKB@Z5_lvCyC_`;G7&hL z3TiPD47?$QCnH#1pY5hU)HyCUm^7rOK^AEwenWd)7G3fx(hfCF?oghhAVZ|F@!T&btmx#%TY{Ywv5N!APPzYwFgC6>o3YR4mbv(p58h;nTqj`_ZVX zk}|`nuH4F%7+Nm%Fop=ZMw>cLv_Ln^eya4ZJ#Qw5-lHY z?uurOi=e=Ug~xc;c@CR6tmK$2ifAYGACf@IO<=@}^{|Lj-U%FKP>MvDmbAw+>j50m zE}Ao+DPFO@b1d8SUbSNGZXQf=M$U&U(wF^#jT9fr2B*VW%x_P{>x2$vvQ5UvstJAO z!)}7LP+d;S__m)!bgZSRL#zOH@Z~lUAQCu(; zD|XvVN1?E1qFnA@=TF7h_Bpndhe@~HzSr17mYTR5OhMgQIpe$)UQ?CF!CpZ>I6rSjV@g&6+YXG(u z&$(%-Gw|xO5T~Ih)(mbAS)}KhTaVJNs>Fq?oY@s`u9xey)u`z^)V*uDN-=lh|<|?Se@I`CZ5kggK5V@SIb)4;zNqrT3e~Lo=*f&RF3+T{{3$y&*(qe+sf+ea^ z=K_Wnn}hC4b_ud5e2WK>-FWi(-~Mp@F~LwX(hK)j6oOW`qhWSmveaE^NhOT^@o)Je z#o;~sJ0Dsb9kZoV|KOuF8$OeyH4fKqR_w-N)}~ zp=yEJL38qFuc04XN^{yD3B60&_pPRK#nUu&;0ggrRi zFa8bEa9Bi0M0vbTUyW&~g?eJcgK34Ru!qCElVsXsRja7WzlMurvYYK4f0>ORxcZ4W zz&3MwC38Ig0=sj~x!MW6o&Gbjrav+=Jna2?`p>PMXeaP#i>fWcnCscpy^w68Am(On zgcWCN`tC_z!ig?tV8)RiIQQRKu25ckVcT<7wANM9ydZ^fvk=Lj?7={-N0q)r%}ww;~0W3GXy|tE)?ilI{tO%uUjfhqPvK z=?P8Q!#}(uDY)w?jZ;@96KX9Q(>e2e)h7;+r5#1pI)G!dim!Gz8)D`$#Pocumbv#U zt}~jPT`no(f6BW+RJ}v*$ilbXvGgHS&NX5cR`j z4=FTnY5!FBWzP~~p|UP>SIO~xOBzq{?s=%dKi zhC@xRPDe5@d)GklrJu4ks|)bc-KR zTH$s3h+iqLdsooWRQHIrqE}Ysd?GFydmQm^;&NdAy{@$qtbCSEWR{eUvJ?LnS%l%-k`k|wEu7O_<17Gfhw!YIazVUMf47fqV z9YAp9$5RH%e8-_gXlryhGOK8*@L0HeRV)ll{-b)<`fTq}cnm2@na zA(K7{(?#muZA#os(y)`Y>UOsf)lk{ya(Q75>+DnG# z$5PC533~`6?n26_6q0s`Yt)L-lGn=SJl&+CaUMDUz%M5sr+7rZ)hKRX^1GsW4sulA zEVc?YRLB~usv4=X8ml_Vpnj}48-?jO8~(J5aDgqY67nvr?gX<}Tj5kE5dm9IZxY8a#UZm~@POVcg8O#>aP*lY6S^ zH8pjRJuz6fe+rIEqS9E~PH64os$Q8tB@TFD-0=*6Y1!wM`+f1qvz7peRWaQp(NX7% zu&{00Y{wyXfbO+R@G?QIL{eBNB`c=qQ%uZZ)HM`SOpMK|x`6at zSpZxnY&QW`sZHBpt}x%&Pb#tdnRk-6)^PwZpPjRC{C4_h6<2f39&+j98&<@zqfK^g z!FO+i`rPxsi?a`=HQjFv^G*AM z5)g|SdLG9&?loHmR0W)ZJRGhsSts4bD4FaiTy64s;A14r$+Aw|{{CPa77A z!xrw#KL7x2zg8>+|F@ksC1W=y0b95K+FgrQ`B21KLHVw36cC_dQK6zcMi8i_22mSs z^`j?l77tUNaIvyd&>AtAtJcdFCYT>zJtH(1Utl@wkk&Niz*$+q@DVr7!U)WCDPG9s zT=30%>X|zm_`2Q_P60H99Oyd9alCf-ddX_|eCqN2Wb`X&C7jKnO{uKcY|kE#7o%3X zT&zI(sCS;=*6u_JfoGGe-CRu2u5}d4jN_8Mq42R~Km zOLL`itUpDT1R}s0ED((a!IbX!6oMbTzh|g9i3EK~P^PO&P;RI572K6OPMWtaKeF}&niS>}@b40WL zvzY$YDf%0!My+O3oG}^f)on%JqnFQ0J*$_-8Z9uL;4qYlUt{!}T{~c=o+};yN;*JR zrBW=@CjMsPR3}d+XDMRz?+V|J@)}JtL`GFuuovQ){sfs9}Y&Mi|(n%~zirOcjxht;g zl-dOOqBWN+XpeK_&X*pC+rKikNcg334tFE}c+n$1vT>wO1rdZ6eeWJpToC5}2f5e00L6vOUIvGfbfP+_ ze$mnL!i8E#OB%2s1Ux^h&ZOL!yZywPt<5R4Oa%A6=KVWFmfQ6Ppj!lQZd=ha0Q zsdJ;TN!kowwGvrtXZ}(#*^?^Mw|qFX!S>8;rsCUnMM4Cup*iNpE#c-5-cFZiOUC!? z=xiMomw4F&* z0yXK6ahu)oD8Ey8J(F#+m&`$<<>5A$Db>fxaY@aV&UPneHi-+n<+uw~C*KU_Kt%4_j=O=gZGk8$ei!Hlaf>Yg4I%Df9Igvb zz#RgFw`_R-4d%5@Y{EIhG0u`U;d{y)1jSYN-v520CjDhLE$c`;)9{+1MK8L`oB7$L zj4ENW5{??Zmo}-|EYCo9sgHe!Uy9>(s@U8SY@yD&I2JyMzk6-A_>5cWa>UQ}z1_Aw zwRj^D?#&Kvw#z?$hK}a1JKXI&!Ap)OxTWQ6K(5u@Y6nb~{tE87SB0#_Gq=25-ByKk*(P`tSyUvqP6hFk6%i=4i)z%trO*shv(eUnVz=r|l~C}#-a{p3&G z@VVv%?|>$dtDUd{ihs{vM%3ugqmOODFHilt=hvINu-G51P;%W}*HTTv*uy4~je~eM zGvF3o-+U%)`ITiOaWje^;}E84=xvi~`D1q&-Junw=8C0j4P`NKVQZHai>3~himj%I znu_cBx&Yf(x(}*YTl?7ER3CLWjT^ZO!lk*6wj5&C0ZiVROf0>h3V z)m3iO*KnRlO0O~u^fcp5Rg4qnZQnqb2FN$ySzN|LGD4!)0A79UR7t>BR*%uhpF}vC zT8*m=-+wYi4>V90U$J@K<6oYxaU^=#8A6ScRoV6XCynf5ade4M-nU?%vuMuB%H@!C zc;fVyudoDlqnHA9r*88%+0$|Jik7acR-R$GTxWA8w77U)NLP?bd3@(2UVJg8iHkt^ znnt8+K|}Z@d~^|zVIF4jzW57v5;7IKWoO9m|ABge1qGY@`h{<-{K7Z>=dn`E+{Q`D z_&0Xn;lIa9Wy@dZZsaXA0g@m9bAUNS_fblS1ac+ZfF)EaVir9pv5IEmfk|m}9FzGm zA^wf^7sZeFRbBbz{!(XZUp`+Y)tT(QGQc-FM%QWXny#6)lkblm-WdSsec2GR<$CwN zx)tMOREO%)iG}vF!nTxyW{_dKPvPjREs2nK?W;qWqm+JlE&Q=g!wZub`~*~iHMz;G z%due$i=g2EV~m&_)7#ty=`HpdJMt7Bvc)I^ibo7z8UIZ?&Wh5`za>Jr4=QsiZ*E@k zeWV5;aszZ;AT6{+7`o7Tm`(hzawD_ONwtXm(Eix2L8ZO3$dS6fbN1i}OpCiHObkI= zTloc8_gMxO%jH3a(8=_)uXlel>;w22-ZByyaQcxYhZOM}|57x|Ffj4n_~e&jWt2*3 z!e8~T(wdPG0ka8P66c;256|LJ0<(Gh(T=x5ZS`xz2`VcbfHM1`<2zSg5wH&LANi5Y zl1|DnHX{0Zz9NM|X?m!dQR9n$LrW?{f5DobvMcx??=eGz;2Y9`@D^Gq?Lx;VIVEWU z4B&%st&s_CNMiE!qYFNj+c+$#)DJp&t{=v962>VDo)i<#SV56Jvv}g?9hb^%x{T%a8ZmG83x`}2ri-N+fEz~^w=*$t zurbsYCKzJ~DBeBVd=xze^fE;&!Qbp63T}OKLzo*h@2ZqAkYw1QrdrYkzPRK?!^XtW zP&3l4XAgKWvunUtQdll%%~Y}BQ$d=8^88huj*t;8WcFTt%oE42@&GkBbvwgH)o~VV zoT)z7R}5%(AL1;7S(%V74&nC1pSA_OqR| zU^HFmMioHi5=%Qva=M-wci9?)a%zoa*)bQ&9wwZMOH#K(RwQQXa%zpy6JP3pAPmD& zbJlG8H@*$hXhx7Y5Xn`63?sp&{%m(;OWkr^mSmBB_^i0vPko0BzZ;Y!qjaf<)F%Wk zyouNwo~hAAr_2=fG{NNEddxE01ix%AdbvY9U78{;y|P@jFTK!?(|ZCvw|cmTbe4lo zt;+x+EVH0BC#0V-q4!Y#hPe}Fwxht(ug7D18uK@|W5dvrv5l>`#R-l@BnENM6W-&xU4#ZI4)TyF zs{<&3LBbqGfZsi_)H@u)Rv&geq*44&fuyiN4igP|iU3i{dagb~7u6MiC zS2#%ztz*6glB!C7bb9Ek-GKC`s)wxS*d9eS;Pp8N50IlO-T~5l`2aT+zF=+sqAKJu zM4Zf$)-X}IU8-IM(Zd02{Tcr5zX=(FEsm^0SFCBpIYu^Nmh8f<;Ez+1AIw%!c-(|k ziFXFzOJI{pRmS==dJnCS(~kmu z;9AprW#oqEtqE^Lw-W#N`*MeKGlXkTMQCs9Mq>E%E3`uSiTD3pXjFmL(og;_FgO4K z07(AFg@*XAJ+`8;m9e3dzJZnTe|4bAGIbUL{P0=K=aF*+@be{1!LD>Hl0Ga{8vmM*pF0(2nhb?B|0I zGX09=jSi;$m&~GG+oS>x4jJ%;!MZ2V8T5dBZ-L6=2S=;}!fzdd;c^n_&SmQg;0O(V zP+05W(!9TlB}1E0P$hAMo?d~jx=I0n5R%?bF`X>#?l?;10+ zsW>G)HaHSOSaB3zCT{pS1WFXXucVnKnO=y&TyJ`p=3{M9{}i2|!{V*?CXs6RLHwuL1js3ki<3U4749H=KmNRdn3fLe6d<~bb-#E2e~=a;PSm5wBn ztORS+e4JH52$3|}vs1ITJK#AT|1<~c*tVh2j*%c$dg6`JIIBqdHN%5j7rMvB z(KnS9beqs1Q7vZw9mgGG!Vo8D6zazmo+l;C2B073C&|h#%aN4*fk{pqDI>1((^n`vyIN z{ia62;%Mg_nP*0EqQU$~a48Iq0K=1x>r$n{i_b-H?O}O=h$c^3w6JdP$GO4uXZjCOh@evSZqZDfGY2u=8i%y!5 z+`+vn1RvV74hKzPEk?XKw9+TJWt2)k)gr$wGBm4k2XzZZ+tjj^|hSgBlnS zo3N9_tev+#&97Z@;2Xv1&F*5B7Hx3-jUutY36K{*eu}gWc&<(fHcE8UE5BvVdPq@J z6slq*8-OSt)ST$4TvgS{>}FmR*9BtGR&*UMk{Z}k>h9zOXON;Q#ZF(<#?9R#oQQEva z39N)HC+yGUm1e$)-wrNQrOhwi?hZaShP>RD-nda?Nx*k=ihK29Xu!=#!3UaTUvR+x z>5Wo|_T&D9o4|lG!?mn@(uYEwovfg@;8sG84hNeoQI6!`H+1)TQT1~r8;t*4Jc&w4 zI0?b~718uMjpNEdoej)GgR0b-2IY>{xHNc{ENcQjf?$z^+Si}%F@7I+g#>wjMMVfF zSQ2Q-o68kv4{-0u%Vw72b{&ix zq4=0iHHJqP5Kj;0PeI5ZMruYg%oL-nX#>|{Sa}-9;$!4KU$~n@AB&M&DyYoohuhaO zTJ5$J8ja*O^5thNCUU-dJea_`(okb*N5Y2^EX6JVPCdO^~t9@xxV)ce>+`=vJ$922lEMN4$4o+8F z@v^%cMC)FgRpJmehi| z&H66XrtXEav~Q3C^ZSeP#fQ#}7&0%5<*Y|`b&Q~Pwx4eX$k|ypBiO%zTf+vV9d(BQ zwVDZqf_yTua zQKnoALL7G@kcOrW*2z;hz0I$O3h_r^yX3TF1qr{vT;``CvO3}~Y@AZW$H;y7=g!%n zq76|o+k!>fj@8Vt@p2i)k75mT!p1jT3S$N+pEbC12%IFZUbAS+t+s-;i)@xBCBWq46&1k;#=ZpG0b!!`m!Ym={)k!J8iSm8%z=)zd- z0k;E)4Oo%ZP;UCGIwMI^c~8L(VwF1xE_#iU?+E3iaP24*5-;X`_bi*$)?{{mLq6bq z{=P+?hW?P+aW}z>kggJWOqAT3mk83u3)8%$k)%J+ke+C_`oD1SZ;2&I%CYhXa}G=& zJ$^ykG(YJ;x17>F6&;#gX{)KVCn9|!U3Q(hBqbv#`=UV(o#G8uW!{98UxpB1+nX|# zd5pw+T-M{1jaYBSLqDj3pEm54Yxg0vb8C|-InwmW9jc1h6-}CwUOh|s)sO-6a?@OfLxOcv3kHPLfbi|WdNAK%o#1L0B%BSla(zwGxMoQq% zk&!ik?;-{?1O2*9kl9UT@GJa+H8#!#I03cB2WLA-f_>1udrrmvSdCF#-w5qhiub$z z`T}F`DL?B!TrJmHD%2L{e2RNq%Yd02L*`iM_CL7*UlbTU%`W3Bq)*QD)B@b-)-Sy1 zRSHjXPj|}iK}}Ox`qU|872))DcezEms6_3H=kWGfz4PEGnVVxgz0NZ@H+1;rk#XkR zs6^H;jgr9@y(~@{dr1~iyT(fh4(p_ERFxmNFHMFBEaN(i zpTueNygeqKS#}c32eyZw`U5;D#C-e~osRfHSQ9TqLjR4IT+;QpxM5 zYV`v#+2!VqywfzJt)i1H>s#=er}r^7NLe?{u8Z^kG4@W;wT4U9aFQL{wr$(CZQI5U zc5K_WogLe@ZCii3`*e^0oYDB!#kK)UC#cr2j zyhtC)SEHF4ZrNV`Fg4(qnVPW^=`l|$3uhJ zrHpP-5x>%Y*{oyb_L$A8b5H5U5mGa~?h zW%91#v-{5tr`0>4j&Dsn;`Tanq!EzPY;cduJ7PNyYBlgTHdTHD{Bt6>WB7}G>L&#V zMg5{5xoq z#KTyZ6pr+MZvsoaR12_7t4X9vumZJes2zm{BTU^&YtRzyvUtFP+_0$8+~L&-2Ie_q7ilp4XcO07`hdzG6n&OoD1Y*T$GAdpctuj3;q9S+a#g z6dxrr$ZJL;jV62XV8QMo7Tal6GGt4@tq}Ay0xRUk1Ah$+(I%}7hE(PhCP*8OsJ5Mq zxlMAwD2&4$Z5Cl6!2iZY7f9$UgR8lj@h|wDrj{PN4K{mk4#0Hv{AL8pg)o-b)q71*K7{p>-(*hv!-W1$*h}>;Z zNogR5?7^CrAek&e^9yz&<$Zik!&I@>O;75??=OC)usu{J>i`JVGo_kN0tGeE_!pAp z-{s$(GPrnWs+~>_9?6N9juq*qdZec7NsVM z4GszXkzYf{uL9&x#ZiG)!f6ebCo%1am(e8xn^=F#^&lSTNtkLXg#jzIm2H|gv=&u> zTrIYmu8h0^@LI%JADfyelD6?XRv9=v>k5zwTn@POUDDEu#?#J3nRlS{JO&gkwh9;z zC9(QhMTIWn_DmWUg62#e?qlAr(CWH{4Z}ccgIcNfng=Ps=pdqEZORhSRqVz19+;rH zudU-6lWn&*Y-{734+Itw(#6j-n?@t(l{4jQ99-jSbv`qeObRn&ueVcRLS-zl_$9MW zWLFvH?BJ`K4NVBEVD+PE_VE#nz2B1XUG@Kh&b+yd9rnlNCieE#=+z)o0aD@alaH0| zh&e9HMh0nY^e+)&w@jZ+Ed|W4y(dF8YVCW(!J&}CZjot+A2xF5hKt#wf-KJ2z($dK zxh0;sNH252WSx2wz^8-_9S^Y$%U9zor=NG16#v2p>FvWegW<6hyQi9ev%p4#^bqB~ zLV;5}T4rJu3g9b8aU{j9Sv_rsPfIGqMM;<*?EAQt|g^1 z7%12niFj!aU6-n)B;zGg@ea{2K?~=oL|&ZC+Ph;uBhFhUG2PHCLoydcW7+e1@umG6 zp;j7`kewxOX#xwXb^W;@unIGGMUG=dY_a3l6ohsQS{w=sQ7nx3Y@QBtosF$S|Z z&L{9Ccgv)3=bL@l?%7PA&K_>X5VGYLrU!A|Z3=WN8dtjn!W{eVA3`(lA98L`R$l%dDQfHIyS9w3WBuPO6D17Z31d zh}Z6iLMAoG8~ zd^{SJnNv^gKpxdJ-Fv9@AS`_@9iC61vE37`x`l+iyYHBIdSr2u&|!YK^4DzGW?n-@fSHqQ2L{AYbl%yZRO^vs^{A_BL7A>jK3Z*dGBx?y5a2@bfIKOt`Y-= z6#Lm2keaBVnY}UT_V{aN7-SF%U~tnZIUhqJoIG_etxL~Pt3llsvmj-JtChod!MnkIM*d2h2_%1&gyVgN?>vwlkG0AS-PAOqo6 z>b#|faSZ$QJ$ro4yy9iuas9}|GiaC3O1?gvrHEBVz;UhTU%C^i{qnAx$A@l=hopzS zwcMJS`3M{VJp~8MoV8z?7jzHc4Opi&CExHms<=Z_2;$K(xyI}PMHs*=tN|H}-~;P4 zak?9p`!A7E`wgq?u2R@tV_(wLTo`5J@X3X5wa92YtQ)czG9mt4g)gYN5IIKUfo$pn z*8@6@UJyUrNg?_=u{9nkJg*|0Fg$QHtsJu)LM^?KktP@cUaPdtW2Yj{>bg|&WPY*$ zS6`6<2Lwg)9v1cBOZ8rI;yeF#8 zeeb5a4Tp*pE?ci-uW%a{`SJG?47Bj&y)4=yI3Lyo>+ zksVMr*cIIFw{B?=9xK&{SJnl-NvX`qA{I~@n@UTNRcil~uaAYgA@#G~h6&WD&0a6I zMnkq{>mhiR1^9d@yT|gx7@>{#!?1^9-E!ORJsz2M251>qnhEfPGX&=O;th&1%=+dO z=RboBQd+)gsOu1pFb+-c6OaulsWUsSv=m4aPwfuf^{=Qh6KW8>0-7q^h9;W$6|Rl% z{N>&r-n#qcu2Q&RwOC$D@$f?UNB7GMauHSUXIUf0l@-SK+spF&i^x!Bfvy^+T_p}? zvW5AOow4O2y@2m{a!TXkp3FydzV?*jyBBrx@JY0E)`mY{DE!Eh79&4pbz>k^KcfzA zOUJ4gmQ>HB_CBm&p{*K6eJSXGG>MW(8JaG7Y zrNy_?JR=C**G~`Kq{?5__#;FR?TJ`vA}*gHZa{SBf`DJ+GUb)jhl&Nf6GBl;nEV}u z{MM97d6a*?Ih2cT{uUe}^TMmh+;WP=cJ+DPaBi){GpmkZjq!SR;_Z1=qQl*z`vwts zL?*w79Ygru@kxB*p(%V7kxsCy=cubBpU0`~w?{880mFSRz(7%1{W97F)qD7vVDM+LDgdywqg>A7rK)tA=E-i?oFrwmHscDeM z6kWv${DJcR)FPWp=M%#uqLTlqM;n8s@h0r{ugzp*ay1&4;x+#`>UzK8x&9Hz$LfCB zF3AC`1^GrU#bT7Eu}d?GLk5f64Z!8_rYuQ=py8=ZgAD4qQ%ne3Wc1&mIhuSfBU1sa zDKcaBX9+9Addw_J6S9;X7u(w?gf(sC0YY&*=h(DFU`LmnKrPjoEc<9UX2oX3MIvV- zE|h!$aoq@3g5Zo-aO#gMG&yTCcmvNx1mx>fN9PAY#^Y`k+L`jurf|>tO;>T;m{Ovga>E-VHaVJa1XGuS9A1?vn&~bN6rz+i84-7p&oW}fX7ZzA}Nr9 z7f|N`Qu*|C2{|TZTdkIwNUSJm?^cwSS{g+6SfqASy5Bz50WR072?>RO%H}#5wZTw*{>8J~$ z8iHBkps9~=oHi@CRF`MJ$KD9Q&>5zgwXQ0_HT|;dD#dVD`bNpLkh4a~Wq*)xJJqb|i!{SuvLVyAS(rVD!YmlU62G?iZT6Xdin~ zngWX);&OL@TljRJ2e$SuGyXU5KN5GBsLOe#5LRX0K^b5g?10{5y^f^6MT1Q2-W#Ra zJe(-=5Y0d=g=X6hzck7crWq9G?CR;+4VB<~j&Y9law9#!!}xyRNAGkKpO0V4>@oWp zMV?Eu18Hz{@L~(NVu%jSiGgr;U{T(>ppJy5OPMvguEuzf70a4eZbCLMwsw}W=4lwd zCi71!e~HTMKd2Wb$mtjvd4+o^in3ZANY>;nOAqHaL&)((U%%KRq^ztK10`>ZUtO*a z<~g}gl8;IKjg@+|+iLb%UYh)*j%c5Gc;hfhO>-{P;>FmbtbTO>kxTK;P25qq(Sa15 zCVR9dDA07>FN2%h)n>eh{(C+Ad_(O;2;-qL;d=%!P+(pPBfzLTasvd}a;@o}3SEB@D2W#9mz?NQ_!rJ9_rFL*Mu& zWI4*hybecD*HtdBoZaC^2bDKOhStjpsx{`yZdDmq%p(ijxWwxU%gc$8x@O0K7p?$r zpuhico;zKS*3$v;mrZnz#7Boc+AM@uV+Il2a*H9Hm`N$&R0qf18d;fO+NWNIc1@ov zRvTRQw|)q`*DB#HXk)8=i@*x)CooE9uqq%#kI^r1b}HK6Y8$}*y&z8nXYTNF^wJ<^ zc0pE_5$yP%+#xF()bRyo2pz#e{KFvR`|N8DD8n@cEys{s+M9a9mP!cy`y;4v$5IHY z2qkV_{ZySSD8HJ<_z~>j&~AG;-06ZV@Y=)S7JyS=7eJ}nZgy)Qd{J_oi&34<6gc{~ z&1?}yqVGr!%^Zvo=X-C2ADoxQBY8GeFy4^P%NJntEele#7In2-O@bCq&+- z_Zcoo;tb2>&YOM=8CToxjNAS^s9dX;_B@tpMWeKH+q>8UX|?51i;mH>MS^ zFzsVI_8R$wJ6t!$*Q?>gVnq<)?#>^eqi2oSxTN58kGfvz9#+$If$jQb5-Cnv!?GZ^ zT##Z$u>D}tGwy-8SsNFTjJXeD6+U5jwRN++xmjeODx@0e0m@SC+Ozcp+i2E!wV<|n zBdR6N;G*{H3qq+xwCVQRoJ!rc-MofxKU_Lzn47?%i}a$u!kd&NeL|ICjCe#(M8v2V*<~HQUT5FReR!w4XWKJ% zzYH4Wzx@6gn!u1Su*v)|{=R?U3DJK`SCF@J`xj`Ux~{q|ioDrBDH=N9Vvf%bbRZZ6 zL@uK#Ddf4Yx`8RkkSDVy4{AXVS${BwxbskiH$!(~<(pf%$ZpZ0y8SlSeWKN!Utvbv zU*Ai>?e1-An!|H^;beNz{r&za2jF(|tN)N@8m*{@4vQ2+l(#X;#7^!-!{G2w4uH`K z2L#84jj8xz&v4G2&eROzO0@n={bO`97PwzTM!vBzVF}2UX7o)7`r6fcHIDZ{>|%Wl zmrYzp=HKF}G0ys-8O=m0336y8GyUXUELgXDQQ8|DHaTp{czKk@TqO}K#7px&kKiYu zZ9RBbUoL%p3=}&88aLXJjh0Kqe*PzA9g0I?0^THplPG_Ls>6GpF|l!DW8LEe=kyFN zk8LO&DG@wR6v*71T}_@eI&GzG6|i;91D^Q$V-GCo)_mHfgJ-(fsObiXAPN?DTs zgK|LZnv~989t*|RLPVfkIe6-;^1i@AsS6YnnpOVy3}hp$#ZjR>4%K)!JS6^{DsIYnCS$f&G;^mI-qKsGis4hGM(M?LcF!ad%6df>xm1o?!7N%d6g(?@0V zvxaoidGb7%eDr4Qinw(5GI`&CD0rH_fONnbH-dOD!HmGShD7k|+h>2FYQ#4}yc?Gk z1h!jj{X$7G-;zp|I*E!gLF=Zl29qDb<&**~!Y8bSUj9eJeg!vKpBpr4p+*FoIztd;Wu@? zcYQkeEu19y40afgzbq!0_*Vt-vrE0Ld>XUh>4R*PA&$`t0%-O=>sLM>!S^1m(#bCM zFb=)=0)gWq=}0a``4KsVfjb>WmtwxaL=fCrhA%FbNzkLY) z%`k%PFOw zvqFvrrp^K`&UXJ`-^FjsA_*W5b(A?6etq$Cp3w$wPsG&7nerrCtbvX)@AK? z)f}R37hwr)p^d{d=vzWCvP^5i2$Y3)2d!NDde*PSj1E9G=V*R);3_E|& z2dD8875$ z1CATq_COaNm`e<}hQXyS5HSyNfl47>i9=?C=wD zVo7YVy99_J$B?R_eMM4Lr16-eiCZN^40~8Y2*l3S9fZN)ZP#F{sqbR56*qni-opIsFnvwhg^6mcxsOR0|q=}5@{m_edc)F26 zB5^A|=k!*~_M`aYeLuO8mf`pHc~1ur@e*xNeCFA?>qWCkD8OgF=2>v`2Gb>M)yq`D z`%I`0-2nUi*nVj*MeefhF@>}JsHr2g&Jl_~U|%%+_yl+4lt5tE)Ph{|V#>cx;Ii20 zF2weu2^nl)(QWjW?IWBQ@r|}lKPBvl*>1(v>=&~ua+dikZN*oLuQHA1>J-bdg^JB8 zkROhJl|J%;w|}-Hn)`PYbQJ+84JZl`W-xr1V6O>G3Ovf37j*e|*QUNWDp;$n!WgST z@WjrmJUrlF4>ahb`ErrFrPP=CVzE)uy&I~Nl*w5z)^UaLduKIPW1{!GXLGV|AHAcw zXIpf*!I@#o4>zUa5?$0&KV`$Qtq)$ZD960jKZBusRr=bY+L}SS{NW)<^;WtZs1 zxy$k_n_D;tg-x1l5$VW0jZS@5upK9=nfNS<^9SusLB$L7vtet*G{#VQ^YD7-RCXB* z0~hoa*SL8s2a1p<9vpB5Q2&64JA(BLu(FMAMdJPIqDnd@jGiHPxQz89YjJ04hR=`$ zFPxr%)`N7Mz0Vo2*}T&^2}kuhh0zV;1CD>li)Q0AElbj7mTuFI>dDuh$TFkVd$C!D zoRzm6HFQcu&{M63-&hwv6JeL@M87^BRh!K8UWRMbygTK?nEz6%`-ymXgjuxjsa`m4 zuYsmi<2wR^2WNKLxG9n)VJ7+;PC?qMT5J61U%?NyusX4G)pgkG{a^f&5ZWZj@x=9n zBnVW*MGSAs6h7j5>XLX85q2b44y^tN((&9POUn@Fn500ugc-E z6Qh|@p@6u5BLcfi9CG^mhI2tqAzi`D&}yXE!%BAs18yOvE(`&0QK+IvbE#{-6Zf1E zh6>JVVdHZL5H=+c&UZ6Bf!5`~EBN_SQemC}W_`e&q))IxAFj3QH-^jo@V3N;+~sL5OGGwu}bK+@=EAQh>i% zOTWmFxoo!x!XRNWbzx@MbX9h|$CYh$6Y&%63k8WcAMOjlFY$Ites4IC0*;A;>v@am zIh*Ny|G4EEAbrJX1v>~KCgCLE5TQ2M$Y9VnbwD-b$@Ks>zQq1F_PHjYe=T!R%^vC3w2>p&hZY!r1 z8HWK~bTdt~F*zD!W18p>7^i9MB!Xw@KCUBT68ceSQ$p)j8j)xKb1Bx-!bHrCIwM{D z@6oW(vX!(smpSg^O-u0t2onFy4BUR^vsjIQC5kGhdOv#D&aH}+$<1Y+saV!RM=SM| zF`JplU%j7yBiWukv!i7e4jw>-_F+-Y4CdaU0{Mo_6L5sKQe34?%B-!R)*H2@I zqNs(nvx(z>N`EFLZ2n*&^x*B&=EP(g8g+OIzdwpCH1)sXk@yh{2v!R*6IjjJ3C3MD zRmYO8OMq#6B5rWm2^1i3(POx8(j#v(@{o~9>>2N`p5G_f8u)yDULo}XrJ&O+`;TRI z@zP)+8kQU!1s`MiC3{Es%c+@Hx4x;jh|Fj)@Zrom$=PvxZ3IkQCuY_td z)KIkzG&rKw=?i7-WVsT3(o5|&aCR1oA^eRlB!AH=6Ks9U%Elier-Nru!WpPat0aBI zN(_y#+H*(w5$mrJoY_0#++^cD_-K_!v-xY`<>KAlosF%@tF4^vBzX!QuDkSYcjNQ= zXF-wZxEs5PL!m{Vz}qTD{2ix+h5lXm=vU}p*b&V9E;hZF;OxGU6aE|IE;35njD7 zJaIV$k^VCjxCc-+j$bDObkV$p;Wob^)d>4-M=8 zyaoSAGX62psH~;*Q{DJlLIW0seU1f?fR^Y%3x$O6M|LCt)+7m@NuLX9b_j|S5J*Os zFx@FBoKKO)qHTXcW2E9nER3O9p0MFrU}FId6Wmc-jo=vOPs7BF#%yKzvlsA@ z^2*ckaOvlgz&r6&)yA<%g8I-WO>y(ZNEMk(?;y>j>6d0OQ}=uI#LAj}*9fcd(32^v z$k2?Mi%LNwG>(Plq7E)pvWT$A_{cDoWHvd5;hQ!?y%n3SBnL@B z>!551hfzwaH>ar2BB`!2pU)1?#7*E59&!)YE|Gp*@Gxi(p^Q26nm{ZYkAynec0nW9 zZQ{GUH8eT<2Cy9fgi3k(a^m*+D_f~-7dx**u@*&Kgwh#W?Y!?me5L%!C{#_i62Pzqg#!Fqa1C|Hc%G7y}i_l+(v4r4_lY=PV5)LxCq-(c9C z>ge7HfcGyp5MZp87M>z8rAyM5SgN)%?m;^Uj;l;MQm}XB-F7_RITr*+ zR|xtrcH)@KFSt63r6K4+?HLh@u+g5qC6!pgRa^y)NKjTVX6px2agNW3o6xA*9`V;F zSB!#v0;Rie=O}J3Q-U*hjw;)vbgbG3#*p;0s7iOGpW6TJi4`xNx~h#lR^K7ILrF4d zb#h%@%&|L#g-B9Xp;hlRKRKcd!EVc1Hu2uyZYm-o>wnFUMEe?*@^q2JJ{HkGIS7+p zuMnYXT|La>cLVo${RC+oodW3gvE{@0friket;+D_; z)x_$VxB4py_A>AK*C*x>mFD$}L2ESD?^@e@JZbe`iS)#k#2N+$MI+((a!)GahBiGU z`OX+Nt--RyrK!Avt{n~oQb}4KN}N`w{d3n zP7MPj`DSr)8?;LJgUXgL@fm>`z=!l=01Pn*9OkmWU|O~bMb}TX7D|}j(Ych*^1tOo z%3LG&aZ~yK;xAwn`vf_+5?RLJJNvUeI!Ob2;DUM-I9I)R(*!@ktq zE?MNVm#x-viBdO}Ko-%aBTVJw z@)@`}aJ25$O7V1bw9Hpf5i)V;W{%Qfk0Y0IV?=cbx5vfMwDG3fDHMXt3P)ZD0wRM< z`w8~XsV>w-rHj%JPJsHs3FQ9=PLQ@UvieVy5EcLLU^RGq9*)wbZcGdXxDmWvEA|g4 zpi%(?aC}shg`!gY7PAyr(jV6p>yjYSFJig}P$aq!z%TOs)l;&r-?ofqQ<-Vc9A?uK z+kV~O03$ubl?&W@%thO*R2QjwTG6YOUiB8JD@UDUZKXr}L5u5CI4;kI;7EwS4v*4& zERaaIII4-Zk>)(7Q0A=Jt4m*8WzwU)D6~%*7VAB2m+GktN)3SO*a=(3QY|1o^gHk> z%&Lkfa@M>n1?V5*>fWqE)sI3>xKtg)KQ3cIA*hid;8;H=mh-2}bBRq$H@sD$3hgT8CX`yrTSreRbxqh7x4)m%c-{ z(Px;qEP~E|7cAT8@>q3W_+?YPbEoMeoZayZh{6{Z0ay_k+T;M`^gs;)Egt&rX6Lj`Tr_i zKe1o==lW-a*7v6l^M4tpoQt!)i}ODMw}OtE;fHO2soZ~uVQkx|Nb&B z7_DVt43oCGiwgmM$&kKfW@J6o2?tBdGHwPMviCu_ZmZo@hovH?r^bQ0?nF`QmG>=e ztdBu=ZT>|=6O)u|Kq#6_#gnv#$@uuWUAzD8TcIX~k%Sq}J}BR4l*G6J{_Iyj1Dz3ZO7^+_2`FUL@fbqbK$#ybR1nsM5|r@F&Dx(BvlmLnh)9e#9^|$tk9$In zSIUf{KzhFxF(OQT4f2)nDU|Lq4J}cNohmQP6GzSvdSHNSUIf@wpELL?4clZX+hna= z{Ykl;{8rt{=#Pr%e72=d0!f~CIbj$n_nN^Ma?f3oqV>!vi{t}PQK+M=_B?vUb~1*WEY6d0QvaIu zoE6*fOZ?!ytpA6?otlBOk@@}ZzUU)MN{}B+jmq?%x%&S8w`-c0>)Yq! z9S=al7-Q%zdORZAs}R$;l#4`(Ml)JXndxC;fyXH2_@`pGe9l4pzD)?u=)4dl+qnSe z92~lP<`L5|kn)8*+-Sj7gVkATSyn#}B(&aqi0;MRG6mNaKaSBp2PEF)>?JnoUTtw5 zyIkZ|Y~%Tik?6j5l&wi`LmLME_I&Bvpr#w0eC-*W^H3v_edJU#*!gYpIMS&8C{eP8L`(z zkipqYXL}z*j_rxOtTlNhd{=A3x))}^2)(bC9i&Kf;J`as(Nc%IgySft91omE6f3hUjk9E40w`5r{drL9Qmh4wI+pwq0Gq+0ZazeQ5}KzUjt z^0%_4mZnY(3PTbLy67I-(icOruoT_$kZcN9t#7IM0bX9%4p|P2e9C;2gGzS~ReRNS zC{~=Qd7f9%s)$?*%-Dq~cbqMLymR%Q1~Qd;K^#ALjE63rhVo+=UG|0=6kflRF)-|+ zWv;F#g8Xtw#8;CH2M31_j!+A$^YTIq&0ktv=t~PhbsCiBw)5*o$=@hG+j`GDbP64) zFTonj7DltpIC9U@!>Ic-`-$3tbQ!2{QHmr&4}r-1{Lo|;v-rhqpLd}iGSg^{o?-N# zfH-3>J^F4Z$W@YR?^@1(;}EnSGHLz9&}e_ny@77(&z%X-0nN1ws>*Bn82`DUTD5U3 z2~npj$a2Mab67m~!B2!>8GF%!rW{sj&%Sd_q9r_Jf4T0Bow3YXZRrX(ZEYZkK~n^TIT*h z!E~+E=K14EZ8YtOQGLW1DWMU}Gz46QV%VuN&iDoN(vsZ z`8@D3;S6tX>;)qGui!e@hj5y6_Rg`9>tD@JUf7W!A(!;B7=1?RPO)gS_4Kaby>7|Ol}xrG>m&C8hWD*7iq?Q` zxfHG`8iI8qrkt#)$3lPH7%LAIb~1sk22EN7D3zqVanvY<$6Diq-`xQebtzOF!WQ=tfJbX4e={(7<#ZfpAb5p)N{sqah*t9i=1Vh&5CDL->5Dj`DUwYMWs+f~%< zZj=-V0o7#|rJQ0aX)W85Rww9pt+(+q&rc=ERY=fXwqcUb<=68W*8uErh&l(0H2BUV@1aT!N2(>Gdrk zGV(qD=tAPb{!cjbzh2`%UdDgi&@43_wI6lJO*N)Da1C@KYHW;Q23SA{f0WulEMQq} z#g3KV^Z5H~(fhE5)I+#F#>|d_Z%NICcoykT1a!7)dUt(La1LtFE)B_QZ)<)tPgQ)m z(>fYdMen*%DDY#DlfRy~+MKR<-!mJgwQpO#zYY<8D}2cAyj0a&sqnawBpeeem9Apc zXuEQEC{7-@U`#Yo8inPr1Sl2Sg$78b?WTB z$U$R8nOWULRz5PM+?pw4ZCSvo<=HCCH#YuL-jgm>@hJ@vOO==Gu0IMo1mRGv=)KIQ zz-yR5#cUmK;U=^SYr$5V`MAkpnRF>HbK^W0@YZ;`-N8?9?Q@Rc^+!H^|Jdy(SRIe_Tp;B5{26_|tX>Vl*L_p z`>OLbnCs*nZv=$H9vAJz;As&d;ZQY`z^Ph zTS)>mCI%{a3kmBR`64D`9JoFbyfF1UCqYkW1g=i*f!bLlFN-)vN5*dN6y~9Z?bgcf z#)?cD(Gbg8v$x2*)y2FVo~&u~LC6^RC>U>#!{3X2YViIeE064sP1U-!KYb5 z>SZG7HF8;aJK*VE9ud8FY@5Cw@oh6^L%)43-g~^)Fm!!ZxF(+)uajr5t2$r2{Z8+2 zm@kY5ID20h1B&STXDsV;3QTi)tRC#*4`dvZw%^AX{p?U&0-G{>@C9ci@4lK{C6q-X z?Jl^jK?%Gml+H=(dBfTPZ*N9~0ybIF2MHwGzBgd#Zlte%UzV+74Vnz2$au5^k54pq7VJQyzFnc)`vBolERBV?Syce1EVutjh+t6(ix+ ze?$VVb_M zvv8y;WN34K-CxIcK$VRRM;Z__B)FD}z_ynMcPmYZ&L%qCA9e$}g$V~YN-7<6uH$a9 zxU=gA?XysN@qWN7iQtFVf?zuBvJV!y#*gOaH^P&(icuWzh3*5_@B%ap5BcHvk?Lx& zWFfo?k`_f^g0^QDomihBs57|U7^wLfakTVW!xd&s8tTBaiTR>1*p631`T`$^>rWgjo&nw z+9y+kX_o+|OSq{LT0Ff2>ie~r(<^j#b6Vqp4yZ?q>05C$^B))l`3E%o@I-%zTH-8; zh~_`|Hsc51QvdHz;vd0N+QRl9if2)Z|7dr^tyN3)Du#PQs7tQX)P}?HDo4eM3o1V5 z6^7Ztj?1IAbWFNhKJdK)K;VUu{!M==h;%EC7z~G?YcQMYI^Jk|zM9t4>;ARUXB6Dj zkB`iQ;oFP@gx4`>(A4&ZtoKZWR%K%gx7ZI&~4Mb$%h&(O(1*G)F_kG z8ymZqU_8PS98e6c)2(AB&gqX91brAxSGY+Khjb@o@mzGiTJzy+_8vN(g@0jB0T!-Y zGmaAgZJlCpQFh*O$I;&~*8SA-uu;{FzL#V<9u!vT4@@c@NsuG}?Iu$gM-W7T1bRiz zT&2nB=mniLba^B)o&9&$Cop^;)MJW4J`V)6fX4W~T*wpoF*UiDzbCdv*)Dx=g8aGu z+7paWde`5dkknkZa~S z%?1oi@DtL%zY7&k=kIkGj|;tYsYKVQ+mi@7!@kUD7F>-7TRYZdE*_`h@FTFQxjDp} z&HhN44#HTO%qiVv*k1{H79CEu(<6~rk8{KX)k|y+tItf^h-30hM7%(m5|)u(=qo@> z3cKPs#~6#kk9~LXR(=)!Hi!vDXIPC1BS@(BJ8R`v5Jb(CW=m?{uvaB*6)NZ#zQs8O zmP6~46~xVyCM{M+uYe$5xuG$d=#{iUeq%OfiuhZ~!7C#Q#=2f-+c{35-SJR?yY${v z(=mO^khm8f!*rTB_V2(oPNAyrsH4s+Whw$K|BC8{fZ~zudhphYz z_d=&M$&EQX$uH1ObkDW6-<~wN{J!qTYXIJEXoSWaP3|*|=qx2P%}+b? zbXXNFu85tLPGF{(!A@zRbS;1CtStTq2dXLIb^TQPkn zW8K{)Y_oWRi>>(%GQgYy5YjS-+RI8vG%R&e6hSHfbz{IKv`OlZvH&U{a!CnPTKOC7 zk@7=+;0z>q=uzOv`ur&0HBL0}7#TQBes0W^Cc!}NL!&sNf38qZgeaY|7HSfU)+w+q z05uqM%u}5bo5?BKmb7i8!>NKxz7EU=u+gw4+)+7HdJV&SD)Rp$?5(5fOndcV+}+)+ zxVsd0x8m;Z4h1&u6nA&GQnYw+cXxL$(r?e1ncsP5<~{SV$bSA|uSK%*B-fogxstFd zUhv+<_7|F>B7?56?X^+ zSWpkRo5u%TAgRmxE$-H6x{rT=70N+7R-jQ|qnTNcoD=3x#AK8K>r{1o@_tR2nvlw& zGUTasH$XO$9Q1A01PXD!s81l|+(TO|56V^J4S9`cm{3^gQI&wChWijQ=LxPm=BwW^z!>fujiX0P*VvlQlUf9Tfhjs+lG|^cX<|3uU@C z7z?z0+8Wq?O`N7fSB)#Yd587!*Fe6Rho!{H7n->a_8u0AY;IAv3iVWo#h58kqPY# zljV7!j1K@{$L=r9Cw+4@wT9LemT?6>r`H)qIBE$anNrX8O74zb=YUJ-QGBb(&WSNz zPfYr;MvObOc3%rOMqbPmyJA`{-(xlaKHHt_42mE~k_@6(D4$g2UpE>Zg!B-E#5sy;?d~$4s-*mSyuXgYjNscM$p);rvPIbK$#ok^|eC>==uGum@C2ufqRU3H* z^+gj<@by@T#dO>k)UPJg8BEIj$iG81MW7{5l0UQQH|FZq32B<5K?JusQeZ>rwZULE zE8~)y83QeRmb?sea82EG7C+#fG-#sMHZ)wAYrhZSmtEupQtAYE$U?(b4me~9N*X4o zg$bpX<4U;P`U2((z=zBRJ5y72N>IeCBN6*Wm@M*q0JhQAuHYzaq`rpKaUQuE=uy;a ze9u_ju@qrM(cZfmwUIm{+&QpKUE)vxr& z24+?W#5(1~AHOwA#`m~_2GkFfA_RpaM5TD?o*A8GVGgFFDR1zw@3 zs_S979rxoKEUd^@@AVbWxc3d77MbvZ{RYKq!)8Os~boHM@Mem7C>2zFuR znvqgaD5J>NB9Zg>fJ}-~DkSSMUtn~sC8^_XMg2=+6Ixl|l*eYEomJa0r<`A6_j4$~ zeWnKUykTEr`dE1*5FRXhUf}0Mo7s*J#DpfO>`^sJ+QdrAcd=K~7ak0NwmYJ#ybtG5 zCo#6!ozcgwH76R_itiuV>5bwzO=EWH);o(&Z=2z^XcvyE(yC}C5F z6&4t=>`sq(eqy(!-;qWi!_`Q{f9D8n2{x4c>fBa1QNtTrIf>0NM;9N2TQ*DgbYX798s8=9Os%eB@}2=6*j*?yEAM;5WlN_7?ZFuo^E;%mojsgbUglDS9iByp!V=kaw4z3jT zEiQ^zi&N$03&obnT9hGFqcXc%MIW_thkC*VeA9bv8z2m9dcPrAua%QEt+nI3_54Jo z-z#cmQt9NC)L`jTmbz6iEZw(^T|rNVDbqA1&9Ax(F&AI5twERB7r3i*LrZqaNxl^~ zH<+K$g9&evR;tWQuw*0R@>QnaW|&yYmIxklfZgM2r!!)wx>^L3OnC4VS6{^KYqg)5 z-X|HISW?@8dMY9UG((rMxV44jney)LzcvkmZIaKF((sk}fFfJf5tdi&vY+_*4ajl> zm{{1#t|`r-n!8+6R6e^0&c4f`lUbJ7!@C)Kw(n@3k&Iz`&VP+6(QA@NevM=UUp?}M z@-oD}-bC@-zJE2qLu7|~Wl4Q$QPwOwicX6#q(749m+U`9>q*7&i^y!3nx_&`78D{u zho>EJnfo9k@{{#x2y5>XGwD1Pf9J8?7)N8SfvwSt;dEm?&KKu;r5cvJCuGTQdi=2= z7-lS}kEGkt+1NUdJ5W@{U%tvy`*oxNm-046IzC!;e% zSgn<#UdR?^?cj4Fnp#a-LuXq7>(g* z4_Ktmjeg2b^6$E&+~}-*_h=2#+jt|!J)M+71#cp42&0N1dQf6Aa*Q*G z7GQ@lLnghZw)d7Cx`b1oRk5&{cf5a;_ zJ7B!R@TbbBUj`(qL^6qMqp(mULCSpKP->Fma2GA?09MJD<$AxHb6I#O?Fe0C-!&3N z4j>Z=J@*7`V+Q~ZpPW4!1oo@#9tjvc+j5fNeYQE!_jPy3FimxL(!P`MdjeUtd|Fo%%&{s`r zWocoVx=MzFN9}EHqwjT-j#(4$fh(coP8(fSJQXMg#!`f{!YY%$TM*0Xnm|_66VIW; zfHoa|j&7%6IOVHPT5A{TX>J;`(4a*UN_snQHdcCtr?2?24<7;BHcZDKPIDTc_0(jF zVf8?mnVm(!vN#2uh{qfU4^Gp$+gO>VaEiUDg+O8Ht+fRG;T~8nAyuhyD-wYV_T)og z6~p}sR%w(*Dm)>N*$0vxcI<352N<>6tdJ6w(r1HXrcuW9rlh+2p{mUejg7@r(ukJI+;J%ilAFEeA!&lRaV zS3x~SQ3m-UKSNv?rsPlVGcndcofNB?O*V5`P+61=a+QZ2vX+977qvwafpX^G;FFs# zJq_ky#2Q7Cj6L}I=9v&Z;xOi{&0dj;LZe=sgBU9*TjF8d+o zD&^Yg^q_5~R$OwbFe}ULfTomX>lI&kVXfA$Ra`sTgsqZ(MH56k7c`L)+SE(wa;(JD zpvh2YWYZl^EA_Y~9l=}ZTX@aNkMcH-UOZ_)E%R9mMC4ujl1gJrD0WdvVe^zYf+9O+Z|rh{&}Sp%S|l3Zok|56Wfpm94_PUgyC_bjpTFQ96DKF+)obEXJHf7h zPGl?$bLFG>stU4&6{9(Y5BUP`1bJYJJmvM73;9}uMquEhi}xYSH=MDx%e3(~K!oU; z;CJ0u6nM!z%`R?lKp28hUL3$IbhEAv1G3F2oN0mh*W;myZY=wHTuv`sGwEupaVF&% zn95R+e1;W50YVL{V*$d?dH`I7A#JcQElin@oAs{$o|S;?yUV8mJ^q6Cl>vdDf$S^q zJx!rrh{*4QAFHAY_$nl@l?uPb5Sf2hH#38a>-zhh=wy)>Svj!VtQPVAsu}&aIP&ME zi_5xRr@4t2w1Xq@4&F27)Zbj-e4r>L*znAK?u*cTK~?pfxU@ zjj|CR{TmQ$7YxkKNs`PEa?5!mnpK z!6=6cRGRQ>aSpyp<2r@fnPvq~o|r3teIEH)NGE_H6KdZUd0t6#2b^?@gx)rE_QvTX zz1xz)@u`oy%`{xn3?@@Zh!)h=n@2t`Y$mjzL*KIi2^PLH2{&@E)5BF{u}$Z^Q(?)K zK|(;>FMnuXbpK9{-zfK01ne2N#}cKF`)6HDV1CB{a}y|EP1jb6)i)l8sw7dIp(_Ng zXIq??PBea^K~P2S9APiH3A1PxK3LuZhU+S5jp){IhNX=cATbJ_05;GVaXC? z4ob0by*0(Q@zbzL#5rnb0A@_y5;UJRueDKXx7oXWM8BLV}3_0L`k@mn%K zV2Dg9>DCNxs|EN+=G*zv_mr@pi(oZ2eIOp!?x}+}>vIDbulVrTTe&L_nuSWp(7L6_ zjZa7%$foW3^;R{c6G%~_`FY(e*0WZ?Ab;x5hB=Y;$3Y6GXy+yLb;I+;w-x!>Fnn^rnXT%^0dO)ToaW54hVz-?~82K1;CQ(!olPzlw){i#vF#jb|G4s0+9-S=4LlC!f(1+i3^$n061F z!@I&1i1R{eGC?Mx;Qi7A5R*j4`=5`He((f9zbNb$)o{BN1kwzLHA;I(wSqUFmK!5B{D?g?6F<5{z;Dg-yWN(>4oHfLS%iO~PbM|p4T6xWN&^RgOjm%jC0OE2m zDqF}OPNV0v%0><|9^SJSxxYY|_Z%m{*Fe;8~2i@|GWTlu9Eb6|33h3Tv>l`h8ydPv0(pSi)6++s$eRjI)0`3VV4$tCL z<$I4$OQbpF@dd=aWw}QL@riG$H*K+NM-=<@TX7xd3~KeH#<&Cx*;)F2*4ViQJ=)x@ zzBtdkf)&&Yo@gP~oPJ)0<6VV)<>~qaPVlXhC9Nxfyb0_nWe{b2Bna&FZ%xLsc1Y)D zK-lO5B)c|*WQLpz~R@9?t6mG=Sh4AFw5@-5G{zyu?cS35uXyHmK-Odv$<6JLNjCT zPmUXr%bTG{>#U3>aBEZo_ZwAwCXP(nK7JE0=S~rvwu#O~L%G(WL56>7NI8dtc*wMx z6(DgmU}xD(EUlMSJnai@WFm^YJVRfq$C$|WGXkI>^@N!jLF7Ry2kjdrc~xQ>L3GZ` z7~`;vZKHBU)5f_nO@AXdPboo@jhGb#wVP|Cuk%uNoDtJ18X>&x3x|AV>Z*My% zhc7Kj>}+E0Jto!8>E^m*rAfV>A0rSBSFHs^~kJ_zt)w4ilp#KVJd7vJ?j&ts$A>;)zBt9!iy`@ zB*Kz|0FB0^mzOf^V^WACy!i<(;|Lv9Bz18rAvb{tU#uf1y|_r9GH0xy_2G;?j+3Qu z2Q)IXLzIr%AR6h7M|~`o(Sl=dTYam(Ibht?k?D|_KAAJ(CR*O4dSL~<_4m9^*N-~hU^kjEYYSfLLWFn zZ=D19qun;P{Q0BrH%?%+@kWZjyj9D)jr+Xd){Wa%ghch)w3c4EhVSm-N_@ZXxMXL* z4P1rIVQ+Askj8`MD{n86*=h7th%G!c+hvgMhhGgdT@vIEZY{1a&Tr1GhedPZzaV{~ z(U1QjNEJ16(!$1eO&2q=uDJDu6@{sRzMDi<`z^8l7NI!}7Ok{x5S*72xE^vtE&D3t6-c0=r{T|A9Ywf9L znC@ZSJjcb+^3dpjXYcSiAd94){A51ga-IJSv9vOiifKnj*cW{htE^qe3UQNxD4XHl zjp6<+m_V)lFpq}j2TlGb--D@}B$V%u*TE!RVZ=8Zj@UtXjF@ySHRV8vG)0`W zIM>Yw9rZ-}Cb^$F6F7nYzW(3=IX#?()(#e0Tfp;=78sgZk;=3MqL0$qCw z8%Z!3gM_CL*dS+hF~b&esT7x?=KOBN23>*t@q_OT)p#KyNEs$H zzsy`DI8m`RrToj4WDOS$3g7cuDBML=KazDhX=h3jaAP7UKKzzKf!J`E&4P^FDMiUJ zS*ZMmKB{OMhP)AsNnkgU1y5y33R7RHs$S}UaM4KeFc4)N+vJc_ zgCt8>tfNP>V)PNbii?6#hs+q2$pjCXs@i{f13!K8b^b_8R7NYSZdGm_Aoli@JhBU} zu1&!@Ri&P+_fcGZixPtIW;1|k#+9X)cx;#a>mu&90j1md*&Eam4^|sVtuiNT&(B``gZ%EwL$Lhe_SW1Hvq!>ko!p~L z(8#KjAo{zV>Hv&g(VB4gK6oOS24dzs%0A%!ELxdEl`c_iDllJ&_h~8g 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�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 z

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%0An!IbSJ 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.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 Date: Tue, 20 Oct 2015 21:19:02 -0400 Subject: [PATCH 15/17] Update forestry --- build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.properties b/build.properties index 1a6e24f1..8f49f5af 100644 --- a/build.properties +++ b/build.properties @@ -14,7 +14,7 @@ cofhlib.version=[1.7.10]1.0.0RC7-127 enderio.cf=2219/296 enderio.version=1.7.10-2.3.0.417_beta enderiocore.version=1.7.10-0.1.0.25_beta -forestry.version=3.6.9.28 +forestry.version=4.0.10.39 ic2.version=2.2.780-experimental nei.version=1.0.3.57 railcraft.cf=2219/321 From ad473b9ac03778d35829e3e950ae6ab4c85e3d8c Mon Sep 17 00:00:00 2001 From: Shawn Buckley Date: Tue, 20 Oct 2015 21:23:33 -0400 Subject: [PATCH 16/17] Update IC2 Nuclear control to 2.3.1a-Butt --- .../common/items/GT_SensorCard_Item.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/main/java/gregtech/common/items/GT_SensorCard_Item.java b/src/main/java/gregtech/common/items/GT_SensorCard_Item.java index b1781ccc..ac816acd 100644 --- a/src/main/java/gregtech/common/items/GT_SensorCard_Item.java +++ b/src/main/java/gregtech/common/items/GT_SensorCard_Item.java @@ -50,13 +50,18 @@ public class GT_SensorCard_Item } } } - - public CardState update(TileEntity aPanel, ICardWrapper aCard, int aMaxRange) - { + + @Override + public CardState update(TileEntity aPanel, ICardWrapper aCard, int aMaxRange) { + return update(aPanel.getWorldObj(), aCard, aMaxRange); + } + + @Override + public CardState update(World world, ICardWrapper aCard, int aMaxRange) { ChunkCoordinates target = aCard.getTarget(); - TileEntity tTileEntity = aPanel.getWorldObj().getTileEntity(target.posX, target.posY, target.posZ); - if ((tTileEntity != null) && ((tTileEntity instanceof IGregTechDeviceInformation)) && (((IGregTechDeviceInformation)tTileEntity).isGivingInformation())) - { + + TileEntity tTileEntity = world.getTileEntity(target.posX, target.posY, target.posZ); + if ((tTileEntity != null) && ((tTileEntity instanceof IGregTechDeviceInformation)) && (((IGregTechDeviceInformation)tTileEntity).isGivingInformation())) { String[] tInfoData = ((IGregTechDeviceInformation)tTileEntity).getInfoData(); for (int i = 0; i < tInfoData.length; i++) { aCard.setString("mString" + i, tInfoData[i]); @@ -65,7 +70,7 @@ public class GT_SensorCard_Item } return CardState.NO_TARGET; } - + public List getStringData(int aSettings, ICardWrapper aCard, boolean aLabels) { List rList = new LinkedList(); From 123aa6ed288b2f67b0d47177f4d27cd6893daf3a Mon Sep 17 00:00:00 2001 From: Shawn Buckley Date: Wed, 21 Oct 2015 22:15:09 -0400 Subject: [PATCH 17/17] Reformat code --- src/main/java/gregtech/GT_Mod.java | 1931 +++++---- src/main/java/gregtech/api/GregTech_API.java | 1069 ++--- .../api/damagesources/GT_DamageSources.java | 158 +- .../api/enchants/Enchantment_EnderDamage.java | 52 +- .../enchants/Enchantment_Radioactivity.java | 50 +- .../gregtech/api/enums/ConfigCategories.java | 118 +- src/main/java/gregtech/api/enums/Dyes.java | 195 +- src/main/java/gregtech/api/enums/Element.java | 599 ++- .../java/gregtech/api/enums/GT_Values.java | 227 +- .../java/gregtech/api/enums/ItemList.java | 1531 ++++---- .../java/gregtech/api/enums/Materials.java | 3277 ++++++++-------- .../java/gregtech/api/enums/OreDictNames.java | 146 +- .../java/gregtech/api/enums/OrePrefixes.java | 1571 ++++---- src/main/java/gregtech/api/enums/SubTag.java | 523 ++- .../java/gregtech/api/enums/TC_Aspects.java | 155 +- .../java/gregtech/api/enums/TextureSet.java | 321 +- .../java/gregtech/api/enums/Textures.java | 841 ++-- src/main/java/gregtech/api/enums/Tier.java | 168 +- .../gregtech/api/enums/ToolDictNames.java | 56 +- .../api/events/BlockScanningEvent.java | 62 +- .../java/gregtech/api/gui/GT_Container.java | 433 +- .../api/gui/GT_ContainerMetaTile_Machine.java | 199 +- .../gregtech/api/gui/GT_Container_1by1.java | 26 +- .../gregtech/api/gui/GT_Container_2by2.java | 32 +- .../gregtech/api/gui/GT_Container_3by3.java | 42 +- .../gregtech/api/gui/GT_Container_4by4.java | 56 +- .../api/gui/GT_Container_BasicMachine.java | 425 +- .../api/gui/GT_Container_BasicTank.java | 82 +- .../gui/GT_Container_MaintenanceHatch.java | 34 +- .../api/gui/GT_Container_MultiMachine.java | 38 +- .../gregtech/api/gui/GT_GUIContainer.java | 55 +- .../gui/GT_GUIContainerMetaTile_Machine.java | 35 +- .../api/gui/GT_GUIContainer_1by1.java | 17 +- .../api/gui/GT_GUIContainer_2by2.java | 17 +- .../api/gui/GT_GUIContainer_3by3.java | 17 +- .../api/gui/GT_GUIContainer_4by4.java | 17 +- .../api/gui/GT_GUIContainer_BasicMachine.java | 129 +- .../api/gui/GT_GUIContainer_BasicTank.java | 17 +- .../gui/GT_GUIContainer_MaintenanceHatch.java | 15 +- .../api/gui/GT_GUIContainer_MultiMachine.java | 66 +- .../java/gregtech/api/gui/GT_Slot_Armor.java | 10 +- .../gregtech/api/gui/GT_Slot_DataOrb.java | 10 +- .../java/gregtech/api/gui/GT_Slot_Holo.java | 40 +- .../java/gregtech/api/gui/GT_Slot_Output.java | 10 +- .../java/gregtech/api/gui/GT_Slot_Render.java | 20 +- .../interfaces/IColorModulationContainer.java | 2 +- .../gregtech/api/interfaces/ICondition.java | 200 +- .../api/interfaces/IDamagableItem.java | 2 +- .../api/interfaces/IDebugableBlock.java | 35 +- .../gregtech/api/interfaces/IDescribable.java | 8 +- .../gregtech/api/interfaces/IFoodStat.java | 38 +- .../api/interfaces/IIconContainer.java | 28 +- .../api/interfaces/IItemBehaviour.java | 34 +- .../api/interfaces/IItemContainer.java | 47 +- .../api/interfaces/IOreRecipeRegistrator.java | 15 +- .../api/interfaces/IProjectileItem.java | 20 +- .../api/interfaces/IRedstoneCircuitBlock.java | 100 +- .../api/interfaces/ISubTagContainer.java | 28 +- .../gregtech/api/interfaces/ITexture.java | 21 +- .../gregtech/api/interfaces/IToolStats.java | 262 +- .../interfaces/internal/IBCTileEntity.java | 2 +- .../internal/IGT_CraftingRecipe.java | 2 +- .../api/interfaces/internal/IGT_Mod.java | 56 +- .../interfaces/internal/IGT_RecipeAdder.java | 826 ++-- .../interfaces/internal/IIC2TileEntity.java | 2 +- .../internal/IThaumcraftCompat.java | 55 +- .../interfaces/internal/IUETileEntity.java | 2 +- .../metatileentity/IMetaTileEntity.java | 598 +-- .../metatileentity/IMetaTileEntityCable.java | 4 +- .../IMetaTileEntityItemPipe.java | 145 +- .../tileentity/IBasicEnergyContainer.java | 185 +- .../tileentity/IColoredTileEntity.java | 21 +- .../api/interfaces/tileentity/ICoverable.java | 65 +- .../interfaces/tileentity/IDigitalChest.java | 42 +- .../tileentity/IEnergyConductor.java | 60 +- .../tileentity/IEnergyConnected.java | 139 +- .../IExperimentalEnergyTileEntity.java | 143 +- .../tileentity/IFibreConnected.java | 48 +- .../tileentity/IGearEnergyTileEntity.java | 25 +- .../IGregTechDeviceInformation.java | 27 +- .../tileentity/IGregTechTileEntity.java | 177 +- .../interfaces/tileentity/IHasInventory.java | 50 +- .../tileentity/IHasWorldObjectAndCoords.java | 155 +- .../tileentity/IMachineBlockUpdateable.java | 14 +- .../tileentity/IMachineProgress.java | 122 +- .../tileentity/IPipeRenderedTileEntity.java | 8 +- .../tileentity/IRedstoneEmitter.java | 60 +- .../tileentity/IRedstoneReceiver.java | 40 +- .../tileentity/IRedstoneTileEntity.java | 20 +- .../tileentity/ITexturedTileEntity.java | 8 +- .../api/interfaces/tileentity/ITurnable.java | 50 +- .../tileentity/IUpgradableMachine.java | 66 +- .../api/items/GT_CoolantCellIC_Item.java | 119 +- .../api/items/GT_CoolantCell_Item.java | 124 +- .../api/items/GT_EnergyArmor_Item.java | 416 +- .../gregtech/api/items/GT_Generic_Block.java | 21 +- .../gregtech/api/items/GT_Generic_Item.java | 202 +- .../gregtech/api/items/GT_MetaBase_Item.java | 1093 +++--- .../api/items/GT_MetaGenerated_Item.java | 568 +-- .../api/items/GT_MetaGenerated_Item_X01.java | 267 +- .../api/items/GT_MetaGenerated_Item_X32.java | 277 +- .../api/items/GT_MetaGenerated_Tool.java | 927 ++--- .../api/items/GT_RadioactiveCellIC_Item.java | 279 +- .../api/items/GT_RadioactiveCell_Item.java | 252 +- .../api/items/GT_SolderingTool_Item.java | 44 +- .../gregtech/api/items/GT_Spray_Bug_Item.java | 79 +- .../api/items/GT_Spray_Foam_Item.java | 239 +- .../api/items/GT_Spray_Hardener_Item.java | 97 +- .../api/items/GT_Spray_Hydration_Item.java | 66 +- .../gregtech/api/items/GT_Spray_Ice_Item.java | 86 +- .../api/items/GT_Spray_Pepper_Item.java | 47 +- .../java/gregtech/api/items/GT_Tool_Item.java | 32 +- .../metatileentity/BaseMetaPipeEntity.java | 2221 ++++++----- .../metatileentity/BaseMetaTileEntity.java | 3062 +++++++++------ .../metatileentity/BaseMetaTileEntityUE.java | 12 +- .../api/metatileentity/BaseTileEntity.java | 520 ++- .../api/metatileentity/MetaPipeEntity.java | 1069 ++--- .../api/metatileentity/MetaTileEntity.java | 1286 +++--- .../examples/GT_MetaTileEntity_E_Furnace.java | 74 +- .../GT_MetaPipeEntity_Cable.java | 450 ++- .../GT_MetaPipeEntity_Fluid.java | 651 +-- .../GT_MetaPipeEntity_Frame.java | 121 +- .../GT_MetaPipeEntity_Item.java | 518 +-- .../GT_MetaTileEntity_BasicBatteryBuffer.java | 473 ++- .../GT_MetaTileEntity_BasicGenerator.java | 370 +- .../GT_MetaTileEntity_BasicHull.java | 235 +- ..._MetaTileEntity_BasicHull_NonElectric.java | 85 +- .../GT_MetaTileEntity_BasicMachine.java | 1312 ++++--- ...GT_MetaTileEntity_BasicMachine_Bronze.java | 380 +- ...MetaTileEntity_BasicMachine_GT_Recipe.java | 888 +++-- .../GT_MetaTileEntity_BasicMachine_Steel.java | 177 +- .../GT_MetaTileEntity_BasicTank.java | 417 +- .../GT_MetaTileEntity_Buffer.java | 399 +- .../GT_MetaTileEntity_Hatch.java | 160 +- .../GT_MetaTileEntity_Hatch_Dynamo.java | 122 +- .../GT_MetaTileEntity_Hatch_Energy.java | 128 +- .../GT_MetaTileEntity_Hatch_Input.java | 177 +- .../GT_MetaTileEntity_Hatch_InputBus.java | 193 +- .../GT_MetaTileEntity_Hatch_Maintenance.java | 187 +- .../GT_MetaTileEntity_Hatch_Muffler.java | 107 +- .../GT_MetaTileEntity_Hatch_Output.java | 299 +- .../GT_MetaTileEntity_Hatch_OutputBus.java | 150 +- .../GT_MetaTileEntity_MultiBlockBase.java | 1435 +++---- .../GT_MetaTileEntity_TieredMachineBlock.java | 115 +- .../GT_MetaTileEntity_Transformer.java | 285 +- src/main/java/gregtech/api/net/GT_Packet.java | 46 +- .../api/net/GT_Packet_Block_Event.java | 79 +- .../gregtech/api/net/GT_Packet_Sound.java | 79 +- .../api/net/GT_Packet_TileEntity.java | 117 +- .../gregtech/api/net/IGT_NetworkHandler.java | 7 +- .../gregtech/api/objects/ElementStack.java | 71 +- .../gregtech/api/objects/GT_ArrayList.java | 74 +- .../api/objects/GT_CopiedBlockTexture.java | 160 +- .../api/objects/GT_Cover_Default.java | 116 +- .../gregtech/api/objects/GT_Cover_None.java | 161 +- .../java/gregtech/api/objects/GT_Fluid.java | 36 +- .../gregtech/api/objects/GT_FluidStack.java | 82 +- .../java/gregtech/api/objects/GT_HashSet.java | 65 +- .../gregtech/api/objects/GT_ItemStack.java | 87 +- .../gregtech/api/objects/GT_MultiTexture.java | 88 +- .../api/objects/GT_RenderedTexture.java | 198 +- .../gregtech/api/objects/GT_SidedTexture.java | 224 +- .../java/gregtech/api/objects/ItemData.java | 222 +- .../gregtech/api/objects/MaterialStack.java | 71 +- .../GT_Runnable_MachineBlockUpdate.java | 61 +- .../api/threads/GT_Runnable_Sound.java | 44 +- .../java/gregtech/api/util/GT_BaseCrop.java | 217 +- .../api/util/GT_CircuitryBehavior.java | 317 +- .../java/gregtech/api/util/GT_Config.java | 154 +- .../gregtech/api/util/GT_CoverBehavior.java | 407 +- .../gregtech/api/util/GT_CreativeTab.java | 22 +- .../java/gregtech/api/util/GT_FoodStat.java | 173 +- .../gregtech/api/util/GT_IBoxableWrapper.java | 8 +- .../api/util/GT_ItsNotMyFaultException.java | 24 +- .../gregtech/api/util/GT_LanguageManager.java | 166 +- src/main/java/gregtech/api/util/GT_Log.java | 33 +- .../java/gregtech/api/util/GT_ModHandler.java | 3303 ++++++++-------- .../api/util/GT_OreDictUnificator.java | 543 +-- .../gregtech/api/util/GT_PlayedSound.java | 44 +- .../java/gregtech/api/util/GT_Recipe.java | 2251 ++++++----- .../api/util/GT_RecipeRegistrator.java | 607 +-- .../gregtech/api/util/GT_Shaped_Recipe.java | 165 +- .../api/util/GT_Shapeless_Recipe.java | 165 +- .../api/util/GT_SpawnEventHandler.java | 67 +- .../java/gregtech/api/util/GT_Utility.java | 3476 +++++++++-------- .../java/gregtech/api/world/GT_Worldgen.java | 99 +- .../api/world/GT_Worldgen_Boulder.java | 118 +- .../gregtech/api/world/GT_Worldgen_Ore.java | 40 +- .../api/world/GT_Worldgen_Ore_Normal.java | 116 +- .../world/GT_Worldgen_Ore_SingleBlock.java | 40 +- ...GT_Worldgen_Ore_SingleBlock_UnderLava.java | 41 +- src/main/java/gregtech/common/GT_Client.java | 751 ++-- .../java/gregtech/common/GT_DummyWorld.java | 211 +- .../gregtech/common/GT_IteratorRandom.java | 20 +- .../common/GT_MinableOreGenerator.java | 129 +- src/main/java/gregtech/common/GT_Network.java | 151 +- .../common/GT_PlayerActivityLogger.java | 47 +- src/main/java/gregtech/common/GT_Proxy.java | 3426 ++++++++-------- .../java/gregtech/common/GT_RecipeAdder.java | 1269 +++--- src/main/java/gregtech/common/GT_Server.java | 51 +- .../gregtech/common/GT_ThaumcraftCompat.java | 394 +- .../common/GT_Worldgen_GT_Ore_Layer.java | 155 +- .../GT_Worldgen_GT_Ore_SmallPieces.java | 68 +- .../gregtech/common/GT_Worldgen_Stone.java | 141 +- .../gregtech/common/GT_Worldgenerator.java | 201 +- .../common/blocks/GT_Block_Casings1.java | 144 +- .../common/blocks/GT_Block_Casings2.java | 165 +- .../common/blocks/GT_Block_Casings3.java | 155 +- .../common/blocks/GT_Block_Casings4.java | 858 ++-- .../blocks/GT_Block_Casings_Abstract.java | 209 +- .../common/blocks/GT_Block_Concretes.java | 153 +- .../common/blocks/GT_Block_Granites.java | 118 +- .../common/blocks/GT_Block_Machines.java | 953 +++-- .../gregtech/common/blocks/GT_Block_Ores.java | 434 +- .../blocks/GT_Block_Stones_Abstract.java | 270 +- .../common/blocks/GT_Item_Casings1.java | 39 +- .../common/blocks/GT_Item_Casings2.java | 29 +- .../common/blocks/GT_Item_Casings3.java | 10 +- .../common/blocks/GT_Item_Casings4.java | 10 +- .../blocks/GT_Item_Casings_Abstract.java | 63 +- .../common/blocks/GT_Item_Concretes.java | 28 +- .../common/blocks/GT_Item_Granites.java | 10 +- .../common/blocks/GT_Item_Machines.java | 252 +- .../gregtech/common/blocks/GT_Item_Ores.java | 69 +- .../blocks/GT_Item_Stones_Abstract.java | 54 +- .../common/blocks/GT_Material_Casings.java | 25 +- .../common/blocks/GT_Material_Machines.java | 25 +- .../common/blocks/GT_Packet_Ores.java | 102 +- .../common/blocks/GT_TileEntity_Ores.java | 419 +- .../gregtech/common/covers/GT_Cover_Arm.java | 173 +- .../common/covers/GT_Cover_Blastproof.java | 32 +- .../common/covers/GT_Cover_ControlsWork.java | 133 +- .../common/covers/GT_Cover_Conveyor.java | 200 +- .../common/covers/GT_Cover_Crafting.java | 35 +- .../common/covers/GT_Cover_DoesWork.java | 134 +- .../common/covers/GT_Cover_Drain.java | 152 +- .../common/covers/GT_Cover_EUMeter.java | 300 +- .../common/covers/GT_Cover_EnergyOnly.java | 155 +- .../common/covers/GT_Cover_ItemMeter.java | 145 +- .../gregtech/common/covers/GT_Cover_Lens.java | 23 +- .../common/covers/GT_Cover_LiquidMeter.java | 142 +- .../covers/GT_Cover_NeedMaintainance.java | 213 +- .../covers/GT_Cover_PlayerDetector.java | 203 +- .../gregtech/common/covers/GT_Cover_Pump.java | 289 +- .../covers/GT_Cover_RedstoneConductor.java | 138 +- .../GT_Cover_RedstoneReceiverExternal.java | 31 +- .../GT_Cover_RedstoneReceiverInternal.java | 29 +- .../covers/GT_Cover_RedstoneSignalizer.java | 123 +- .../GT_Cover_RedstoneTransmitterExternal.java | 31 +- .../GT_Cover_RedstoneTransmitterInternal.java | 40 +- .../covers/GT_Cover_RedstoneWirelessBase.java | 153 +- .../common/covers/GT_Cover_Screen.java | 127 +- .../common/covers/GT_Cover_Shutter.java | 113 +- .../common/covers/GT_Cover_SolarPanel.java | 55 +- .../gregtech/common/covers/GT_Cover_Vent.java | 54 +- .../common/entities/GT_Entity_Arrow.java | 665 ++-- .../entities/GT_Entity_Arrow_Potion.java | 103 +- .../common/gui/GT_Container_Boiler.java | 142 +- .../gui/GT_Container_BronzeBlastFurnace.java | 43 +- .../common/gui/GT_Container_ChestBuffer.java | 127 +- .../common/gui/GT_Container_Filter.java | 237 +- .../common/gui/GT_Container_QuantumChest.java | 88 +- .../common/gui/GT_Container_Regulator.java | 285 +- .../common/gui/GT_Container_SuperBuffer.java | 123 +- .../common/gui/GT_Container_Teleporter.java | 314 +- .../common/gui/GT_Container_TypeFilter.java | 198 +- .../common/gui/GT_GUIContainer_Boiler.java | 70 +- .../GT_GUIContainer_BronzeBlastFurnace.java | 42 +- .../gui/GT_GUIContainer_ChestBuffer.java | 25 +- .../common/gui/GT_GUIContainer_Filter.java | 25 +- .../gui/GT_GUIContainer_FusionReactor.java | 59 +- .../gui/GT_GUIContainer_QuantumChest.java | 19 +- .../common/gui/GT_GUIContainer_Regulator.java | 51 +- .../gui/GT_GUIContainer_SuperBuffer.java | 25 +- .../gui/GT_GUIContainer_Teleporter.java | 55 +- .../gui/GT_GUIContainer_TypeFilter.java | 25 +- .../common/items/GT_DepletetCell_Item.java | 53 +- .../common/items/GT_FluidDisplayItem.java | 147 +- .../items/GT_IntegratedCircuit_Item.java | 194 +- .../items/GT_MetaGenerated_Item_01.java | 1633 ++++---- .../items/GT_MetaGenerated_Item_02.java | 840 ++-- .../items/GT_MetaGenerated_Item_03.java | 25 +- .../items/GT_MetaGenerated_Tool_01.java | 313 +- .../items/GT_NeutronReflector_Item.java | 104 +- .../common/items/GT_SensorCard_Item.java | 154 +- .../items/behaviors/Behaviour_Arrow.java | 189 +- .../behaviors/Behaviour_Arrow_Potion.java | 85 +- .../items/behaviors/Behaviour_Crowbar.java | 86 +- .../items/behaviors/Behaviour_DataOrb.java | 182 +- .../items/behaviors/Behaviour_DataStick.java | 53 +- .../common/items/behaviors/Behaviour_Hoe.java | 90 +- .../items/behaviors/Behaviour_Lighter.java | 203 +- .../items/behaviors/Behaviour_None.java | 116 +- .../behaviors/Behaviour_Plunger_Essentia.java | 63 +- .../behaviors/Behaviour_Plunger_Fluid.java | 67 +- .../behaviors/Behaviour_Plunger_Item.java | 107 +- .../behaviors/Behaviour_PrintedPages.java | 53 +- .../behaviors/Behaviour_Prospecting.java | 213 +- .../items/behaviors/Behaviour_Scanner.java | 51 +- .../items/behaviors/Behaviour_Scoop.java | 70 +- .../behaviors/Behaviour_Screwdriver.java | 72 +- .../items/behaviors/Behaviour_Sense.java | 68 +- .../items/behaviors/Behaviour_SensorKit.java | 62 +- .../items/behaviors/Behaviour_SoftHammer.java | 193 +- .../items/behaviors/Behaviour_Sonictron.java | 215 +- .../behaviors/Behaviour_Spray_Color.java | 211 +- .../items/behaviors/Behaviour_Wrench.java | 270 +- .../behaviors/Behaviour_WrittenBook.java | 38 +- .../GT_Circuit_BasicLogic.java | 181 +- .../redstonecircuits/GT_Circuit_BitAnd.java | 118 +- .../GT_Circuit_CombinationLock.java | 196 +- .../redstonecircuits/GT_Circuit_Equals.java | 117 +- .../redstonecircuits/GT_Circuit_Pulser.java | 152 +- .../GT_Circuit_Randomizer.java | 146 +- .../GT_Circuit_RedstoneMeter.java | 151 +- .../redstonecircuits/GT_Circuit_Repeater.java | 144 +- .../redstonecircuits/GT_Circuit_Timer.java | 195 +- .../common/render/GT_CapeRenderer.java | 154 +- .../GT_MetaGenerated_Item_Renderer.java | 294 +- .../GT_MetaGenerated_Tool_Renderer.java | 348 +- .../gregtech/common/render/GT_RenderUtil.java | 50 +- .../common/render/GT_Renderer_Block.java | 1181 +++--- .../render/GT_Renderer_Entity_Arrow.java | 25 +- .../GT_MetaTileEntity_ChestBuffer.java | 106 +- .../automation/GT_MetaTileEntity_Filter.java | 123 +- .../GT_MetaTileEntity_Regulator.java | 164 +- .../GT_MetaTileEntity_SuperBuffer.java | 56 +- .../GT_MetaTileEntity_TypeFilter.java | 251 +- .../boilers/GT_MetaTileEntity_Boiler.java | 540 ++- .../GT_MetaTileEntity_Boiler_Bronze.java | 274 +- .../GT_MetaTileEntity_Boiler_Lava.java | 245 +- .../GT_MetaTileEntity_Boiler_Solar.java | 235 +- .../GT_MetaTileEntity_Boiler_Steel.java | 283 +- .../GT_MetaTileEntity_DieselGenerator.java | 189 +- ...T_MetaTileEntity_FluidNaquadahReactor.java | 170 +- .../GT_MetaTileEntity_GasTurbine.java | 172 +- ...T_MetaTileEntity_MagicEnergyConverter.java | 170 +- ..._MetaTileEntity_MagicalEnergyAbsorber.java | 540 ++- .../GT_MetaTileEntity_PlasmaGenerator.java | 170 +- ...T_MetaTileEntity_SolidNaquadahReactor.java | 170 +- .../GT_MetaTileEntity_SteamTurbine.java | 188 +- .../GT_MetaTileEntity_BasicHull_Bronze.java | 49 +- ...MetaTileEntity_BasicHull_BronzeBricks.java | 57 +- .../GT_MetaTileEntity_BasicHull_Steel.java | 54 +- ..._MetaTileEntity_BasicHull_SteelBricks.java | 54 +- .../basic/GT_MetaTileEntity_Boxinator.java | 166 +- .../basic/GT_MetaTileEntity_Disassembler.java | 89 +- .../GT_MetaTileEntity_Massfabricator.java | 109 +- .../GT_MetaTileEntity_MonsterRepellent.java | 179 +- .../basic/GT_MetaTileEntity_PotionBrewer.java | 250 +- .../basic/GT_MetaTileEntity_Printer.java | 82 +- .../basic/GT_MetaTileEntity_Pump.java | 718 ++-- .../basic/GT_MetaTileEntity_Replicator.java | 172 +- .../basic/GT_MetaTileEntity_RockBreaker.java | 112 +- .../basic/GT_MetaTileEntity_Scanner.java | 336 +- .../basic/GT_MetaTileEntity_Teleporter.java | 647 +-- .../GT_MetaTileEntity_BronzeBlastFurnace.java | 659 ++-- .../GT_MetaTileEntity_DistillationTower.java | 323 +- ...T_MetaTileEntity_ElectricBlastFurnace.java | 398 +- .../GT_MetaTileEntity_FusionComputer.java | 749 ++-- .../GT_MetaTileEntity_FusionComputer1.java | 82 +- .../GT_MetaTileEntity_FusionComputer2.java | 82 +- .../GT_MetaTileEntity_FusionComputer3.java | 82 +- .../GT_MetaTileEntity_HeatExchanger.java | 553 ++- ...GT_MetaTileEntity_ImplosionCompressor.java | 265 +- .../multi/GT_MetaTileEntity_LargeBoiler.java | 441 +-- .../GT_MetaTileEntity_LargeBoiler_Bronze.java | 118 +- .../GT_MetaTileEntity_LargeBoiler_Steel.java | 118 +- ...T_MetaTileEntity_LargeBoiler_Titanium.java | 118 +- ...aTileEntity_LargeBoiler_TungstenSteel.java | 118 +- .../multi/GT_MetaTileEntity_LargeTurbine.java | 341 +- .../GT_MetaTileEntity_LargeTurbine_Gas.java | 122 +- ...T_MetaTileEntity_LargeTurbine_HPSteam.java | 114 +- ...GT_MetaTileEntity_LargeTurbine_Plasma.java | 127 +- .../GT_MetaTileEntity_LargeTurbine_Steam.java | 136 +- .../multi/GT_MetaTileEntity_MultiFurnace.java | 298 +- .../GT_MetaTileEntity_ProcessingArray.java | 585 +-- .../GT_MetaTileEntity_VacuumFreezer.java | 261 +- ...GT_MetaTileEntity_AlloySmelter_Bronze.java | 171 +- .../GT_MetaTileEntity_AlloySmelter_Steel.java | 171 +- .../GT_MetaTileEntity_Compressor_Bronze.java | 166 +- .../GT_MetaTileEntity_Compressor_Steel.java | 166 +- .../GT_MetaTileEntity_Extractor_Bronze.java | 166 +- .../GT_MetaTileEntity_Extractor_Steel.java | 166 +- .../GT_MetaTileEntity_ForgeHammer_Bronze.java | 171 +- .../GT_MetaTileEntity_ForgeHammer_Steel.java | 171 +- .../GT_MetaTileEntity_Furnace_Bronze.java | 166 +- .../GT_MetaTileEntity_Furnace_Steel.java | 166 +- .../GT_MetaTileEntity_Macerator_Bronze.java | 206 +- .../GT_MetaTileEntity_Macerator_Steel.java | 205 +- .../storage/GT_MetaTileEntity_Locker.java | 313 +- .../GT_MetaTileEntity_QuantumChest.java | 347 +- .../GT_MetaTileEntity_QuantumTank.java | 239 +- .../java/gregtech/common/tools/GT_Tool.java | 270 +- .../gregtech/common/tools/GT_Tool_Axe.java | 226 +- .../common/tools/GT_Tool_BranchCutter.java | 133 +- .../common/tools/GT_Tool_ButcheryKnife.java | 147 +- .../common/tools/GT_Tool_BuzzSaw.java | 114 +- .../common/tools/GT_Tool_Chainsaw_HV.java | 83 +- .../common/tools/GT_Tool_Chainsaw_LV.java | 171 +- .../common/tools/GT_Tool_Chainsaw_MV.java | 83 +- .../common/tools/GT_Tool_Crowbar.java | 220 +- .../common/tools/GT_Tool_Drill_HV.java | 96 +- .../common/tools/GT_Tool_Drill_LV.java | 203 +- .../common/tools/GT_Tool_Drill_MV.java | 84 +- .../gregtech/common/tools/GT_Tool_File.java | 193 +- .../common/tools/GT_Tool_HardHammer.java | 297 +- .../gregtech/common/tools/GT_Tool_Hoe.java | 196 +- .../common/tools/GT_Tool_JackHammer.java | 172 +- .../gregtech/common/tools/GT_Tool_Knife.java | 83 +- .../gregtech/common/tools/GT_Tool_Mortar.java | 191 +- .../common/tools/GT_Tool_Pickaxe.java | 200 +- .../gregtech/common/tools/GT_Tool_Plow.java | 107 +- .../common/tools/GT_Tool_Plunger.java | 122 +- .../common/tools/GT_Tool_RollingPin.java | 89 +- .../gregtech/common/tools/GT_Tool_Saw.java | 212 +- .../gregtech/common/tools/GT_Tool_Scoop.java | 203 +- .../common/tools/GT_Tool_Screwdriver.java | 219 +- .../common/tools/GT_Tool_Screwdriver_LV.java | 39 +- .../gregtech/common/tools/GT_Tool_Sense.java | 107 +- .../gregtech/common/tools/GT_Tool_Shovel.java | 181 +- .../common/tools/GT_Tool_SoftHammer.java | 212 +- .../common/tools/GT_Tool_Soldering_Iron.java | 216 +- .../gregtech/common/tools/GT_Tool_Sword.java | 190 +- .../common/tools/GT_Tool_Turbine.java | 47 +- .../common/tools/GT_Tool_Turbine_Huge.java | 23 +- .../common/tools/GT_Tool_Turbine_Large.java | 23 +- .../common/tools/GT_Tool_Turbine_Normal.java | 23 +- .../common/tools/GT_Tool_Turbine_Small.java | 25 +- .../common/tools/GT_Tool_UniversalSpade.java | 212 +- .../common/tools/GT_Tool_WireCutter.java | 184 +- .../gregtech/common/tools/GT_Tool_Wrench.java | 219 +- .../common/tools/GT_Tool_Wrench_HV.java | 102 +- .../common/tools/GT_Tool_Wrench_LV.java | 111 +- .../common/tools/GT_Tool_Wrench_MV.java | 102 +- .../loaders/load/GT_CoverBehaviorLoader.java | 11 +- .../gregtech/loaders/load/GT_FuelLoader.java | 34 +- .../loaders/load/GT_ItemIterator.java | 521 ++- .../loaders/load/GT_SonictronLoader.java | 295 +- .../loaders/misc/GT_Achievements.java | 883 +++-- .../gregtech/loaders/misc/GT_CoverLoader.java | 23 +- .../loaders/oreprocessing/ProcessingAll.java | 21 +- .../oreprocessing/ProcessingArrows.java | 66 +- .../oreprocessing/ProcessingBattery.java | 22 +- .../oreprocessing/ProcessingBeans.java | 20 +- .../oreprocessing/ProcessingBlock.java | 119 +- .../loaders/oreprocessing/ProcessingBolt.java | 24 +- .../loaders/oreprocessing/ProcessingCell.java | 146 +- .../oreprocessing/ProcessingCellPlasma.java | 28 +- .../oreprocessing/ProcessingCircuit.java | 49 +- .../oreprocessing/ProcessingCompressed.java | 23 +- .../oreprocessing/ProcessingCrafting.java | 94 +- .../loaders/oreprocessing/ProcessingCrop.java | 73 +- .../ProcessingCrushedCentrifuged.java | 21 +- .../ProcessingCrushedPurified.java | 24 +- .../oreprocessing/ProcessingCrystallized.java | 23 +- .../oreprocessing/ProcessingDirty.java | 48 +- .../loaders/oreprocessing/ProcessingDust.java | 318 +- .../oreprocessing/ProcessingDustImpure.java | 97 +- .../oreprocessing/ProcessingDustSmall.java | 37 +- .../oreprocessing/ProcessingDustTiny.java | 45 +- .../loaders/oreprocessing/ProcessingDye.java | 32 +- .../loaders/oreprocessing/ProcessingFoil.java | 19 +- .../loaders/oreprocessing/ProcessingFood.java | 46 +- .../loaders/oreprocessing/ProcessingGear.java | 23 +- .../oreprocessing/ProcessingGearSmall.java | 21 +- .../loaders/oreprocessing/ProcessingGem.java | 91 +- .../oreprocessing/ProcessingGemChipped.java | 24 +- .../oreprocessing/ProcessingGemExquisite.java | 26 +- .../oreprocessing/ProcessingGemFlawed.java | 26 +- .../oreprocessing/ProcessingGemFlawless.java | 26 +- .../oreprocessing/ProcessingIngot1.java | 99 +- .../oreprocessing/ProcessingIngot2.java | 24 +- .../oreprocessing/ProcessingIngot3.java | 24 +- .../oreprocessing/ProcessingIngot4.java | 21 +- .../oreprocessing/ProcessingIngot5.java | 21 +- .../oreprocessing/ProcessingIngotHot.java | 19 +- .../loaders/oreprocessing/ProcessingItem.java | 95 +- .../oreprocessing/ProcessingLeaves.java | 15 +- .../loaders/oreprocessing/ProcessingLens.java | 21 +- .../loaders/oreprocessing/ProcessingLog.java | 135 +- .../oreprocessing/ProcessingNugget.java | 49 +- .../loaders/oreprocessing/ProcessingOre.java | 214 +- .../oreprocessing/ProcessingOrePoor.java | 51 +- .../oreprocessing/ProcessingOreSmelting.java | 60 +- .../oreprocessing/ProcessingPipeLarge.java | 22 +- .../oreprocessing/ProcessingPipeMedium.java | 22 +- .../ProcessingPipeRestrictive.java | 21 +- .../oreprocessing/ProcessingPipeSmall.java | 22 +- .../oreprocessing/ProcessingPlank.java | 85 +- .../oreprocessing/ProcessingPlate1.java | 127 +- .../oreprocessing/ProcessingPlate2.java | 39 +- .../oreprocessing/ProcessingPlate3.java | 40 +- .../oreprocessing/ProcessingPlate4.java | 35 +- .../oreprocessing/ProcessingPlate5.java | 32 +- .../oreprocessing/ProcessingPlate9.java | 21 +- .../oreprocessing/ProcessingPlateAlloy.java | 32 +- .../loaders/oreprocessing/ProcessingPure.java | 25 +- .../oreprocessing/ProcessingRecycling.java | 22 +- .../loaders/oreprocessing/ProcessingSand.java | 26 +- .../oreprocessing/ProcessingSaplings.java | 21 +- .../oreprocessing/ProcessingShaping.java | 205 +- .../loaders/oreprocessing/ProcessingSlab.java | 21 +- .../oreprocessing/ProcessingStick.java | 27 +- .../oreprocessing/ProcessingStickLong.java | 24 +- .../oreprocessing/ProcessingStone.java | 107 +- .../oreprocessing/ProcessingStoneCobble.java | 26 +- .../oreprocessing/ProcessingStoneVarious.java | 38 +- .../ProcessingToolHeadArrow.java | 21 +- .../oreprocessing/ProcessingToolHeadAxe.java | 19 +- .../ProcessingToolHeadBuzzSaw.java | 24 +- .../ProcessingToolHeadChainsaw.java | 36 +- .../ProcessingToolHeadDrill.java | 44 +- .../oreprocessing/ProcessingToolHeadFile.java | 24 +- .../ProcessingToolHeadHammer.java | 75 +- .../oreprocessing/ProcessingToolHeadHoe.java | 19 +- .../ProcessingToolHeadPickaxe.java | 19 +- .../oreprocessing/ProcessingToolHeadPlow.java | 19 +- .../oreprocessing/ProcessingToolHeadSaw.java | 19 +- .../ProcessingToolHeadSense.java | 19 +- .../ProcessingToolHeadShovel.java | 19 +- .../ProcessingToolHeadSword.java | 19 +- .../ProcessingToolHeadUniversalSpade.java | 19 +- .../ProcessingToolHeadWrench.java | 44 +- .../oreprocessing/ProcessingTransforming.java | 62 +- .../loaders/oreprocessing/ProcessingWax.java | 20 +- .../oreprocessing/ProcessingWire01.java | 49 +- .../oreprocessing/ProcessingWire02.java | 37 +- .../oreprocessing/ProcessingWire04.java | 37 +- .../oreprocessing/ProcessingWire08.java | 37 +- .../oreprocessing/ProcessingWire12.java | 37 +- .../oreprocessing/ProcessingWire16.java | 31 +- .../postload/GT_BlockResistanceLoader.java | 79 +- .../postload/GT_BookAndLootLoader.java | 220 +- .../postload/GT_CraftingRecipeLoader.java | 1270 +++--- .../loaders/postload/GT_CropLoader.java | 72 +- .../postload/GT_ItemMaxStacksizeLoader.java | 136 +- .../postload/GT_MachineRecipeLoader.java | 2897 +++++++------- .../postload/GT_MinableRegistrator.java | 15 +- .../postload/GT_RecyclerBlacklistLoader.java | 84 +- .../postload/GT_ScrapboxDropLoader.java | 180 +- .../loaders/postload/GT_UUMRecipeLoader.java | 6 +- .../loaders/postload/GT_Worldgenloader.java | 241 +- .../preload/GT_Loader_CircuitBehaviors.java | 43 +- .../loaders/preload/GT_Loader_ItemData.java | 319 +- .../GT_Loader_Item_Block_And_Fluid.java | 839 ++-- .../preload/GT_Loader_MetaTileEntities.java | 2400 ++++++------ .../preload/GT_Loader_OreDictionary.java | 375 +- .../preload/GT_Loader_OreProcessing.java | 285 +- .../gregtech/nei/GT_NEI_DefaultHandler.java | 1553 ++++---- src/main/java/gregtech/nei/NEI_GT_Config.java | 42 +- src/main/resources/assets/ic2/sounds.json | 437 ++- 552 files changed, 61887 insertions(+), 62142 deletions(-) diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java index c20c8a55..2ddfa9ce 100644 --- a/src/main/java/gregtech/GT_Mod.java +++ b/src/main/java/gregtech/GT_Mod.java @@ -1,50 +1,19 @@ package gregtech; -import cpw.mods.fml.common.FMLLog; -import cpw.mods.fml.common.LoadController; -import cpw.mods.fml.common.Loader; -import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.Mod.EventHandler; -import cpw.mods.fml.common.Mod.Instance; -import cpw.mods.fml.common.ModContainer; -import cpw.mods.fml.common.SidedProxy; -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.common.event.FMLModIdMappingEvent; -import cpw.mods.fml.common.event.FMLPostInitializationEvent; -import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import cpw.mods.fml.common.event.FMLServerStartedEvent; -import cpw.mods.fml.common.event.FMLServerStartingEvent; -import cpw.mods.fml.common.event.FMLServerStoppingEvent; + +import cpw.mods.fml.common.*; +import cpw.mods.fml.common.event.*; import cpw.mods.fml.common.registry.EntityRegistry; import forestry.factory.recipes.ISqueezerRecipe; import forestry.factory.tiles.TileCentrifuge; import forestry.factory.tiles.TileSqueezer; -//import forestry.factory.gadgets.MachineCentrifuge; -//import forestry.factory.gadgets.MachineCentrifuge.RecipeManager; -//import forestry.factory.gadgets.MachineSqueezer; import gregtech.api.GregTech_API; import gregtech.api.enchants.Enchantment_EnderDamage; import gregtech.api.enchants.Enchantment_Radioactivity; -import gregtech.api.enums.ConfigCategories.Recipes; import gregtech.api.enums.*; -import gregtech.api.enums.Textures.BlockIcons; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.internal.IGT_Mod; -import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.ItemData; import gregtech.api.objects.MaterialStack; -import gregtech.api.util.GT_Config; -import gregtech.api.util.GT_ItsNotMyFaultException; -import gregtech.api.util.GT_LanguageManager; -import gregtech.api.util.GT_Log; -import gregtech.api.util.GT_Log.LogBuffer; -import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_ModHandler.RecipeBits; -import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; -import gregtech.api.util.GT_RecipeRegistrator; -import gregtech.api.util.GT_SpawnEventHandler; -import gregtech.api.util.GT_Utility; +import gregtech.api.util.*; import gregtech.common.GT_DummyWorld; import gregtech.common.GT_Network; import gregtech.common.GT_Proxy; @@ -58,929 +27,813 @@ import gregtech.loaders.load.GT_ItemIterator; import gregtech.loaders.load.GT_SonictronLoader; import gregtech.loaders.misc.GT_Achievements; import gregtech.loaders.misc.GT_CoverLoader; -import gregtech.loaders.postload.GT_BlockResistanceLoader; -import gregtech.loaders.postload.GT_BookAndLootLoader; -import gregtech.loaders.postload.GT_CraftingRecipeLoader; -import gregtech.loaders.postload.GT_CropLoader; -import gregtech.loaders.postload.GT_ItemMaxStacksizeLoader; -import gregtech.loaders.postload.GT_MachineRecipeLoader; -import gregtech.loaders.postload.GT_MinableRegistrator; -import gregtech.loaders.postload.GT_RecyclerBlacklistLoader; -import gregtech.loaders.postload.GT_ScrapboxDropLoader; -import gregtech.loaders.postload.GT_Worldgenloader; -import gregtech.loaders.preload.GT_Loader_CircuitBehaviors; -import gregtech.loaders.preload.GT_Loader_ItemData; -import gregtech.loaders.preload.GT_Loader_Item_Block_And_Fluid; -import gregtech.loaders.preload.GT_Loader_MetaTileEntities; -import gregtech.loaders.preload.GT_Loader_OreDictionary; -import gregtech.loaders.preload.GT_Loader_OreProcessing; -import ic2.api.recipe.ICannerBottleRecipeManager; -import ic2.api.recipe.IMachineRecipeManager; +import gregtech.loaders.postload.*; +import gregtech.loaders.preload.*; import ic2.api.recipe.IRecipeInput; import ic2.api.recipe.RecipeOutput; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.PrintStream; -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Calendar; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Random; -import java.util.Set; - -import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.item.crafting.IRecipe; -import net.minecraft.stats.Achievement; import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.ChestGenHooks; -import net.minecraftforge.common.ForgeVersion; import net.minecraftforge.common.config.Configuration; -import net.minecraftforge.common.config.Property; import net.minecraftforge.fluids.FluidContainerRegistry; -import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.OreDictionary; -@Mod(modid="gregtech", name="GregTech", version="MC1710", useMetadata=false, dependencies="required-after:IC2; after:Forestry; after:PFAAGeologica; after:Thaumcraft; after:Railcraft; after:appliedenergistics2; after:ThermalExpansion; after:TwilightForest; after:harvestcraft; after:magicalcrops; after:BuildCraft|Transport; after:BuildCraft|Silicon; after:BuildCraft|Factory; after:BuildCraft|Energy; after:BuildCraft|Core; after:BuildCraft|Builders; after:GalacticraftCore; after:GalacticraftMars; after:GalacticraftPlanets; after:ThermalExpansion|Transport; after:ThermalExpansion|Energy; after:ThermalExpansion|Factory; after:RedPowerCore; after:RedPowerBase; after:RedPowerMachine; after:RedPowerCompat; after:RedPowerWiring; after:RedPowerLogic; after:RedPowerLighting; after:RedPowerWorld; after:RedPowerControl;") +import java.io.File; +import java.io.FileNotFoundException; +import java.io.PrintStream; +import java.util.*; +import java.util.Map.Entry; + +//import forestry.factory.gadgets.MachineCentrifuge; +//import forestry.factory.gadgets.MachineCentrifuge.RecipeManager; +//import forestry.factory.gadgets.MachineSqueezer; + +@Mod(modid = "gregtech", name = "GregTech", version = "MC1710", useMetadata = false, dependencies = "required-after:IC2; after:Forestry; after:PFAAGeologica; after:Thaumcraft; after:Railcraft; after:appliedenergistics2; after:ThermalExpansion; after:TwilightForest; after:harvestcraft; after:magicalcrops; after:BuildCraft|Transport; after:BuildCraft|Silicon; after:BuildCraft|Factory; after:BuildCraft|Energy; after:BuildCraft|Core; after:BuildCraft|Builders; after:GalacticraftCore; after:GalacticraftMars; after:GalacticraftPlanets; after:ThermalExpansion|Transport; after:ThermalExpansion|Energy; after:ThermalExpansion|Factory; after:RedPowerCore; after:RedPowerBase; after:RedPowerMachine; after:RedPowerCompat; after:RedPowerWiring; after:RedPowerLogic; after:RedPowerLighting; after:RedPowerWorld; after:RedPowerControl;") public class GT_Mod - implements IGT_Mod -{ - @Mod.Instance("gregtech") - public static GT_Mod instance; - @SidedProxy(modId="gregtech", clientSide="gregtech.common.GT_Client", serverSide="gregtech.common.GT_Server") - public static GT_Proxy gregtechproxy; - public static final int VERSION = 508; - public static final int REQUIRED_IC2 = 624; - public static int MAX_IC2 = 2147483647; - public static GT_Achievements achievements; - - static - { - if ((508 != GregTech_API.VERSION) || (508 != GT_ModHandler.VERSION) || (508 != GT_OreDictUnificator.VERSION) || (508 != GT_Recipe.VERSION) || (508 != GT_Utility.VERSION) || (508 != GT_RecipeRegistrator.VERSION) || (508 != Element.VERSION) || (508 != Materials.VERSION) || (508 != OrePrefixes.VERSION)) { - throw new GT_ItsNotMyFaultException("One of your Mods included GregTech-API Files inside it's download, mention this to the Mod Author, who does this bad thing, and tell him/her to use reflection. I have added a Version check, to prevent Authors from breaking my Mod that way."); - } - } - - public GT_Mod() - { - try - { - Class.forName("ic2.core.IC2").getField("enableOreDictCircuit").set(null, Boolean.valueOf(true)); - } - catch (Throwable e) {} - try - { - Class.forName("ic2.core.IC2").getField("enableCraftingBucket").set(null, Boolean.valueOf(false)); - } - catch (Throwable e) {} - try - { - Class.forName("ic2.core.IC2").getField("enableEnergyInStorageBlockItems").set(null, Boolean.valueOf(false)); - } - catch (Throwable e) {} - GT_Values.GT = this; - GT_Values.DW = new GT_DummyWorld(); - GT_Values.NW = new GT_Network(); - GregTech_API.sRecipeAdder = GT_Values.RA = new GT_RecipeAdder(); - - Textures.BlockIcons.VOID.name(); - Textures.ItemIcons.VOID.name(); - } - - @Mod.EventHandler - public void onPreLoad(FMLPreInitializationEvent aEvent) - { - if (GregTech_API.sPreloadStarted) { - return; - } - for (Runnable tRunnable : GregTech_API.sBeforeGTPreload) { - try - { - tRunnable.run(); - } - catch (Throwable e) - { - e.printStackTrace(GT_Log.err); - } - } - File tFile = new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "GregTech.cfg"); - Configuration tMainConfig = new Configuration(tFile); - tMainConfig.load(); - tFile = new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "IDs.cfg"); - GT_Config.sConfigFileIDs = new Configuration(tFile); - GT_Config.sConfigFileIDs.load(); - GT_Config.sConfigFileIDs.save(); - GregTech_API.sRecipeFile = new GT_Config(new Configuration(new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "Recipes.cfg"))); - GregTech_API.sMachineFile = new GT_Config(new Configuration(new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "MachineStats.cfg"))); - GregTech_API.sWorldgenFile = new GT_Config(new Configuration(new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "WorldGeneration.cfg"))); - GregTech_API.sMaterialProperties = new GT_Config(new Configuration(new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "MaterialProperties.cfg"))); - GregTech_API.sUnification = new GT_Config(new Configuration(new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "Unification.cfg"))); - GregTech_API.sSpecialFile = new GT_Config(new Configuration(new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "Other.cfg"))); - GregTech_API.sOPStuff = new GT_Config(new Configuration(new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "OverpoweredStuff.cfg"))); - - GregTech_API.sClientDataFile = new GT_Config(new Configuration(new File(aEvent.getModConfigurationDirectory().getParentFile(), "GregTech.cfg"))); - - GT_Log.mLogFile = new File(aEvent.getModConfigurationDirectory().getParentFile(), "logs/GregTech.log"); - if (!GT_Log.mLogFile.exists()) { - try - { - GT_Log.mLogFile.createNewFile(); - } - catch (Throwable e) {} - } - try - { - GT_Log.out = GT_Log.err = new PrintStream(GT_Log.mLogFile); - } - catch (FileNotFoundException e) {} - GT_Log.mOreDictLogFile = new File(aEvent.getModConfigurationDirectory().getParentFile(), "logs/OreDict.log"); - if (!GT_Log.mOreDictLogFile.exists()) { - try - { - GT_Log.mOreDictLogFile.createNewFile(); - } - catch (Throwable e) {} - } - if (tMainConfig.get("general", "LoggingPlayerActivity", true).getBoolean(true)) - { - GT_Log.mPlayerActivityLogFile = new File(aEvent.getModConfigurationDirectory().getParentFile(), "logs/PlayerActivity.log"); - if (!GT_Log.mPlayerActivityLogFile.exists()) { - try - { - GT_Log.mPlayerActivityLogFile.createNewFile(); - } - catch (Throwable e) {} - } - try - { - GT_Log.pal = new PrintStream(GT_Log.mPlayerActivityLogFile); - } - catch (Throwable e) {} - } - try - { - List tList = ((GT_Log.LogBuffer)GT_Log.ore).mBufferedOreDictLog; - GT_Log.ore.println("******************************************************************************"); - GT_Log.ore.println("* This is the complete log of the GT5-Unofficial OreDictionary Handler. It *"); - GT_Log.ore.println("* processes all OreDictionary entries and can sometimes cause errors. All *"); - GT_Log.ore.println("* entries and errors are being logged. If you see an error please raise an *"); - GT_Log.ore.println("* issue at https://github.com/Blood-Asp/GT5-Unofficial. *"); - GT_Log.ore.println("******************************************************************************"); - String tString; - for (Iterator i$ = tList.iterator(); i$.hasNext(); GT_Log.ore.println(tString)) { - tString = (String)i$.next(); - } - } - catch (Throwable e) {} - gregtechproxy.onPreLoad(); - - GT_Log.out.println("GT_Mod: Setting Configs"); - GT_Values.D1 = tMainConfig.get("general", "Debug", false).getBoolean(false); - GT_Values.D2 = tMainConfig.get("general", "Debug2", false).getBoolean(false); - - GregTech_API.TICKS_FOR_LAG_AVERAGING = tMainConfig.get("general", "TicksForLagAveragingWithScanner", 25).getInt(25); - GregTech_API.MILLISECOND_THRESHOLD_UNTIL_LAG_WARNING = tMainConfig.get("general", "MillisecondsPassedInGTTileEntityUntilLagWarning", 100).getInt(100); - if (tMainConfig.get("general", "disable_STDOUT", false).getBoolean(false)) { - System.out.close(); - } - if (tMainConfig.get("general", "disable_STDERR", false).getBoolean(false)) { - System.err.close(); - } - GregTech_API.sMachineExplosions = tMainConfig.get("machines", "machines_explosion_damage", true).getBoolean(false); - GregTech_API.sMachineFlammable = tMainConfig.get("machines", "machines_flammable", true).getBoolean(false); - GregTech_API.sMachineNonWrenchExplosions = tMainConfig.get("machines", "explosions_on_nonwrenching", true).getBoolean(false); - GregTech_API.sMachineWireFire = tMainConfig.get("machines", "wirefire_on_explosion", true).getBoolean(false); - GregTech_API.sMachineFireExplosions = tMainConfig.get("machines", "fire_causes_explosions", true).getBoolean(false); - GregTech_API.sMachineRainExplosions = tMainConfig.get("machines", "rain_causes_explosions", true).getBoolean(false); - GregTech_API.sMachineThunderExplosions = tMainConfig.get("machines", "lightning_causes_explosions", true).getBoolean(false); - GregTech_API.sConstantEnergy = tMainConfig.get("machines", "constant_need_of_energy", true).getBoolean(false); - GregTech_API.sColoredGUI = tMainConfig.get("machines", "colored_guis_when_painted", true).getBoolean(false); - - GregTech_API.sTimber = tMainConfig.get("general", "timber_axe", false).getBoolean(false); - GregTech_API.sDrinksAlwaysDrinkable = tMainConfig.get("general", "drinks_always_drinkable", false).getBoolean(false); - GregTech_API.sDoShowAllItemsInCreative = tMainConfig.get("general", "show_all_metaitems_in_creative_and_NEI", false).getBoolean(false); - GregTech_API.sMultiThreadedSounds = tMainConfig.get("general", "sound_multi_threading", false).getBoolean(false); - for (Dyes tDye : Dyes.values()) { - if ((tDye != Dyes._NULL) && (tDye.mIndex < 0)) - { - tDye.mRGBa[0] = ((short)Math.min(255, Math.max(0, GregTech_API.sClientDataFile.get("ColorModulation." + tDye, "R", tDye.mRGBa[0])))); - tDye.mRGBa[1] = ((short)Math.min(255, Math.max(0, GregTech_API.sClientDataFile.get("ColorModulation." + tDye, "G", tDye.mRGBa[1])))); - tDye.mRGBa[2] = ((short)Math.min(255, Math.max(0, GregTech_API.sClientDataFile.get("ColorModulation." + tDye, "B", tDye.mRGBa[2])))); - } - } - gregtechproxy.mMaxEqualEntitiesAtOneSpot = tMainConfig.get("general", "MaxEqualEntitiesAtOneSpot", 3).getInt(3); - gregtechproxy.mSkeletonsShootGTArrows = tMainConfig.get("general", "SkeletonsShootGTArrows", 16).getInt(16); - gregtechproxy.mFlintChance = tMainConfig.get("general", "FlintAndSteelChance", 30).getInt(30); - gregtechproxy.mItemDespawnTime = tMainConfig.get("general", "ItemDespawnTime", 6000).getInt(6000); - gregtechproxy.mDisableVanillaOres = tMainConfig.get("general", "DisableVanillaOres", true).getBoolean(true); - gregtechproxy.mNerfDustCrafting = tMainConfig.get("general", "NerfDustCrafting", true).getBoolean(true); - gregtechproxy.mIncreaseDungeonLoot = tMainConfig.get("general", "IncreaseDungeonLoot", true).getBoolean(true); - gregtechproxy.mAxeWhenAdventure = tMainConfig.get("general", "AdventureModeStartingAxe", true).getBoolean(true); - gregtechproxy.mHardcoreCables = tMainConfig.get("general", "HardCoreCableLoss", false).getBoolean(false); - gregtechproxy.mSurvivalIntoAdventure = tMainConfig.get("general", "forceAdventureMode", false).getBoolean(false); - gregtechproxy.mHungerEffect = tMainConfig.get("general", "AFK_Hunger", false).getBoolean(false); - gregtechproxy.mHardRock = tMainConfig.get("general", "harderstone", false).getBoolean(false); - gregtechproxy.mInventoryUnification = tMainConfig.get("general", "InventoryUnification", true).getBoolean(true); - gregtechproxy.mCraftingUnification = tMainConfig.get("general", "CraftingUnification", true).getBoolean(true); - gregtechproxy.mNerfedWoodPlank = tMainConfig.get("general", "WoodNeedsSawForCrafting", true).getBoolean(true); - gregtechproxy.mNerfedVanillaTools = tMainConfig.get("general", "smallerVanillaToolDurability", true).getBoolean(true); - gregtechproxy.mSortToTheEnd = tMainConfig.get("general", "EnsureToBeLoadedLast", true).getBoolean(true); - gregtechproxy.mDisableIC2Cables = tMainConfig.get("general", "DisableIC2Cables", false).getBoolean(false); - gregtechproxy.mAchievements = tMainConfig.get("general", "EnableAchievements", true).getBoolean(true); - gregtechproxy.mAE2Integration = tMainConfig.get("general", "EnableAE2Integration", Loader.isModLoaded("appliedenergistics2")).getBoolean(Loader.isModLoaded("appliedenergistics2")); - - - GregTech_API.mOutputRF =GregTech_API.sOPStuff.get(ConfigCategories.general, "OutputRF", false); - GregTech_API.mInputRF =GregTech_API.sOPStuff.get(ConfigCategories.general, "InputRF", false); - GregTech_API.mEUtoRF = GregTech_API.sOPStuff.get(ConfigCategories.general, "100EUtoRF", 360); - GregTech_API.mRFtoEU = GregTech_API.sOPStuff.get(ConfigCategories.general, "100RFtoEU", 20); - GregTech_API.mRFExplosions = GregTech_API.sOPStuff.get(ConfigCategories.general, "RFExplosions", true); - GregTech_API.meIOLoaded = Loader.isModLoaded("EnderIO"); - - if (tMainConfig.get("general", "hardermobspawners", true).getBoolean(true)) { - Blocks.mob_spawner.setHardness(500.0F).setResistance(6000000.0F); - } - gregtechproxy.mOnline = tMainConfig.get("general", "online", true).getBoolean(false); - - gregtechproxy.mUpgradeCount = Math.min(64, Math.max(1, tMainConfig.get("features", "UpgradeStacksize", 4).getInt())); - for (OrePrefixes tPrefix : OrePrefixes.values()) { - if (tPrefix.mIsUsedForOreProcessing) { - tPrefix.mDefaultStackSize = ((byte)Math.min(64, Math.max(1, tMainConfig.get("features", "MaxOreStackSize", 64).getInt()))); - } else if (tPrefix == OrePrefixes.plank) { - tPrefix.mDefaultStackSize = ((byte)Math.min(64, Math.max(16, tMainConfig.get("features", "MaxPlankStackSize", 64).getInt()))); - } else if ((tPrefix == OrePrefixes.wood) || (tPrefix == OrePrefixes.treeLeaves) || (tPrefix == OrePrefixes.treeSapling) || (tPrefix == OrePrefixes.log)) { - tPrefix.mDefaultStackSize = ((byte)Math.min(64, Math.max(16, tMainConfig.get("features", "MaxLogStackSize", 64).getInt()))); - } else if (tPrefix.mIsUsedForBlocks) { - tPrefix.mDefaultStackSize = ((byte)Math.min(64, Math.max(16, tMainConfig.get("features", "MaxOtherBlockStackSize", 64).getInt()))); - } - } - //GT_Config.troll = (Calendar.getInstance().get(2) + 1 == 4) && (Calendar.getInstance().get(5) >= 1) && (Calendar.getInstance().get(5) <= 2); - - Materials.init(GregTech_API.sMaterialProperties); - - GT_Log.out.println("GT_Mod: Saving Main Config"); - tMainConfig.save(); - - GT_Log.out.println("GT_Mod: Generating Lang-File"); - GT_LanguageManager.sEnglishFile = new Configuration(new File(aEvent.getModConfigurationDirectory().getParentFile(), "GregTech.lang")); - GT_LanguageManager.sEnglishFile.load(); - - GT_Log.out.println("GT_Mod: Removing all original Scrapbox Drops."); - try - { - GT_Utility.getField("ic2.core.item.ItemScrapbox$Drop", "topChance", true, true).set(null, Integer.valueOf(0)); - ((List)GT_Utility.getFieldContent(GT_Utility.getFieldContent("ic2.api.recipe.Recipes", "scrapboxDrops", true, true), "drops", true, true)).clear(); - } - catch (Throwable e) - { - if (GT_Values.D1) { - e.printStackTrace(GT_Log.err); - } - } - GT_Log.out.println("GT_Mod: Adding Scrap with a Weight of 200.0F to the Scrapbox Drops."); - GT_ModHandler.addScrapboxDrop(200.0F, GT_ModHandler.getIC2Item("scrap", 1L)); - - EntityRegistry.registerModEntity(GT_Entity_Arrow.class, "GT_Entity_Arrow", 1, GT_Values.GT, 160, 1, true); - EntityRegistry.registerModEntity(GT_Entity_Arrow_Potion.class, "GT_Entity_Arrow_Potion", 2, GT_Values.GT, 160, 1, true); - - new Enchantment_EnderDamage(); - new Enchantment_Radioactivity(); - - new GT_Loader_OreProcessing().run(); - new GT_Loader_OreDictionary().run(); - new GT_Loader_ItemData().run(); - new GT_Loader_Item_Block_And_Fluid().run(); - new GT_Loader_MetaTileEntities().run(); - - new GT_Loader_CircuitBehaviors().run(); - new GT_CoverBehaviorLoader().run(); - new GT_SonictronLoader().run(); - new GT_SpawnEventHandler(); - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.gregtechrecipes, "SolarPanel", true)) { - GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "SGS", "CPC", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('G'), new ItemStack(Blocks.glass_pane, 1), Character.valueOf('P'), OrePrefixes.plateAlloy.get(Materials.Carbon), Character.valueOf('S'), OrePrefixes.plate.get(Materials.Silicon) }); - } - if (GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "SolarPanel8V", false)) { - GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_8V.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "SSS", "STS", "SSS", Character.valueOf('S'), ItemList.Cover_SolarPanel, Character.valueOf('T'), OrePrefixes.circuit.get(Materials.Advanced) }); - } - if (GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "SolarPanelLV", false)) { - GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " S ", "STS", " S ", Character.valueOf('S'), ItemList.Cover_SolarPanel_8V, Character.valueOf('T'), ItemList.Transformer_LV_ULV }); - } - if (GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "SolarPanelMV", false)) { - GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " S ", "STS", " S ", Character.valueOf('S'), ItemList.Cover_SolarPanel_LV, Character.valueOf('T'), ItemList.Transformer_MV_LV }); - } - if (GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "SolarPanelHV", false)) { - GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " S ", "STS", " S ", Character.valueOf('S'), ItemList.Cover_SolarPanel_MV, Character.valueOf('T'), ItemList.Transformer_HV_MV }); - } - if (GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "SolarPanelEV", false)) { - GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " S ", "STS", " S ", Character.valueOf('S'), ItemList.Cover_SolarPanel_HV, Character.valueOf('T'), ItemList.Transformer_EV_HV }); - } - if (GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "SolarPanelIV", false)) { - GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " S ", "STS", " S ", Character.valueOf('S'), ItemList.Cover_SolarPanel_EV, Character.valueOf('T'), ItemList.Transformer_IV_EV }); - } - if (GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "SolarPanelLuV", false)) { - GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " S ", "STS", " S ", Character.valueOf('S'), ItemList.Cover_SolarPanel_IV, Character.valueOf('T'), ItemList.Transformer_LuV_IV }); - } - if (GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "SolarPanelZPM", false)) { - GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " S ", "STS", " S ", Character.valueOf('S'), ItemList.Cover_SolarPanel_LuV, Character.valueOf('T'), ItemList.Transformer_ZPM_LuV }); - } - if (GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "SolarPanelUV", false)) { - GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " S ", "STS", " S ", Character.valueOf('S'), ItemList.Cover_SolarPanel_ZPM, Character.valueOf('T'), ItemList.Transformer_UV_ZPM }); - } - if (gregtechproxy.mSortToTheEnd) { - try - { - GT_Log.out.println("GT_Mod: Sorting GregTech to the end of the Mod List for further processing."); - LoadController tLoadController = (LoadController)GT_Utility.getFieldContent(Loader.instance(), "modController", true, true); - List tModList = tLoadController.getActiveModList();List tNewModsList = new ArrayList(); - ModContainer tGregTech = null; - for (short i = 0; i < tModList.size(); i = (short)(i + 1)) - { - ModContainer tMod = (ModContainer)tModList.get(i); - if (tMod.getModId().equalsIgnoreCase("gregtech")) { - tGregTech = tMod; - } else { - tNewModsList.add(tMod); - } - } - if (tGregTech != null) { - tNewModsList.add(tGregTech); - } - GT_Utility.getField(tLoadController, "activeModList", true, true).set(tLoadController, tNewModsList); - } - catch (Throwable e) - { - if (GT_Values.D1) { - e.printStackTrace(GT_Log.err); - } - } - } - GregTech_API.sPreloadFinished = true; - GT_Log.out.println("GT_Mod: Preload-Phase finished!"); - GT_Log.ore.println("GT_Mod: Preload-Phase finished!"); - for (Runnable tRunnable : GregTech_API.sAfterGTPreload) { - try - { - tRunnable.run(); - } - catch (Throwable e) - { - e.printStackTrace(GT_Log.err); - } - } - } - - @Mod.EventHandler - public void onLoad(FMLInitializationEvent aEvent) - { - if (GregTech_API.sLoadStarted) { - return; - } - for (Runnable tRunnable : GregTech_API.sBeforeGTLoad) { - try - { - tRunnable.run(); - } - catch (Throwable e) - { - e.printStackTrace(GT_Log.err); - } - } - gregtechproxy.onLoad(); - if (gregtechproxy.mSortToTheEnd) - { - new GT_ItemIterator().run(); - gregtechproxy.registerUnificationEntries(); - new GT_FuelLoader().run(); - } - GregTech_API.sLoadFinished = true; - GT_Log.out.println("GT_Mod: Load-Phase finished!"); - GT_Log.ore.println("GT_Mod: Load-Phase finished!"); - for (Runnable tRunnable : GregTech_API.sAfterGTLoad) { - try - { - tRunnable.run(); - } - catch (Throwable e) - { - e.printStackTrace(GT_Log.err); - } - } - } - - @Mod.EventHandler - public void onPostLoad(FMLPostInitializationEvent aEvent) - { - if (GregTech_API.sPostloadStarted) { - return; - } - for (Runnable tRunnable : GregTech_API.sBeforeGTPostload) { - try - { - tRunnable.run(); - } - catch (Throwable e) - { - e.printStackTrace(GT_Log.err); - } - } - gregtechproxy.onPostLoad(); - if (gregtechproxy.mSortToTheEnd) - { - gregtechproxy.registerUnificationEntries(); - } - else - { - new GT_ItemIterator().run(); - gregtechproxy.registerUnificationEntries(); - new GT_FuelLoader().run(); - } - new GT_BookAndLootLoader().run(); - new GT_ItemMaxStacksizeLoader().run(); - new GT_BlockResistanceLoader().run(); - new GT_RecyclerBlacklistLoader().run(); - new GT_MinableRegistrator().run(); - new GT_MachineRecipeLoader().run(); - new GT_ScrapboxDropLoader().run(); - new GT_CropLoader().run(); - new GT_Worldgenloader().run(); - new GT_CoverLoader().run(); - - GT_RecipeRegistrator.registerUsagesForMaterials(new ItemStack(Blocks.planks, 1), null, false); - GT_RecipeRegistrator.registerUsagesForMaterials(new ItemStack(Blocks.cobblestone, 1), null, false); - GT_RecipeRegistrator.registerUsagesForMaterials(new ItemStack(Blocks.stone, 1), null, false); - GT_RecipeRegistrator.registerUsagesForMaterials(new ItemStack(Items.leather, 1), null, false); - - GT_OreDictUnificator.addItemData(GT_ModHandler.getRecipeOutput(new ItemStack[] { null, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1L), null, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1L), null, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1L), null, null, null }), new ItemData(Materials.Tin, 10886400L, new MaterialStack[0])); - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.storageblockcrafting, "tile.glowstone", false)) { - GT_ModHandler.removeRecipe(new ItemStack[] { new ItemStack(Items.glowstone_dust, 1), new ItemStack(Items.glowstone_dust, 1), null, new ItemStack(Items.glowstone_dust, 1), new ItemStack(Items.glowstone_dust, 1) }); - } - GT_ModHandler.removeRecipe(new ItemStack[] { new ItemStack(Blocks.wooden_slab, 1, 0), new ItemStack(Blocks.wooden_slab, 1, 1), new ItemStack(Blocks.wooden_slab, 1, 2) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.wooden_slab, 6, 0), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "WWW", Character.valueOf('W'), new ItemStack(Blocks.planks, 1, 0) }); - - GT_Log.out.println("GT_Mod: Activating OreDictionary Handler, this can take some time, as it scans the whole OreDictionary"); - FMLLog.info("If your Log stops here, you were too impatient. Wait a bit more next time, before killing Minecraft with the Task Manager.", new Object[0]); - gregtechproxy.activateOreDictHandler(); - FMLLog.info("Congratulations, you have been waiting long enough. Have a Cake.", new Object[0]); - GT_Log.out.println("GT_Mod: " + GT_ModHandler.sSingleNonBlockDamagableRecipeList.size() + " Recipes were left unused."); - if (GT_Values.D1) - { - IRecipe tRecipe; - for (Iterator i$ = GT_ModHandler.sSingleNonBlockDamagableRecipeList.iterator(); i$.hasNext(); GT_Log.out.println("=> " + tRecipe.getRecipeOutput().getDisplayName())) { - tRecipe = (IRecipe)i$.next(); - } - } - new GT_CraftingRecipeLoader().run(); - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2forgehammer", true)) { - GT_ModHandler.removeRecipeByOutput(ItemList.IC2_ForgeHammer.getWildcard(1L, new Object[0])); - } - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("machine", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("machine", 1L), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "RRR", "RwR", "RRR", Character.valueOf('R'), OrePrefixes.plate.get(Materials.Iron) }); - for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry.getRegisteredFluidContainerData()) { - if ((tData.filledContainer.getItem() == Items.potionitem) && (tData.filledContainer.getItemDamage() == 0)) - { - GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes.addRecipe(true, new ItemStack[] { ItemList.Bottle_Empty.get(1L, new Object[0]) }, new ItemStack[] { new ItemStack(Items.potionitem, 1, 0) }, null, new FluidStack[] { Materials.Water.getFluid(250L) }, null, 4, 1, 0); - GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes.addRecipe(true, new ItemStack[] { new ItemStack(Items.potionitem, 1, 0) }, new ItemStack[] { ItemList.Bottle_Empty.get(1L, new Object[0]) }, null, null, null, 4, 1, 0); - } - else - { - GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes.addRecipe(true, new ItemStack[] { tData.emptyContainer }, new ItemStack[] { tData.filledContainer }, null, new FluidStack[] { tData.fluid }, null, tData.fluid.amount / 62, 1, 0); - GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes.addRecipe(true, new ItemStack[] { tData.filledContainer }, new ItemStack[] { GT_Utility.getContainerItem(tData.filledContainer, true) }, null, null, new FluidStack[] { tData.fluid }, tData.fluid.amount / 62, 1, 0); - } - } - try - { - for (Object tRecipe : TileCentrifuge.RecipeManager.recipes) - { - Map outputs = ((TileCentrifuge.CentrifugeRecipe)tRecipe).getAllProducts(); - ItemStack[] tOutputs = new ItemStack[outputs.size()]; - int[] tChances = new int[outputs.size()]; - int i =0; - for (Map.Entry entry : outputs.entrySet()) { - tChances[i] = (int) (entry.getValue()*10000); - tOutputs[i] = entry.getKey().copy(); - i++; - } - GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.addRecipe(true, new ItemStack[] { ((TileCentrifuge.CentrifugeRecipe)tRecipe).getInput() }, tOutputs, null, tChances, null, null, 128, 5, 0); - } - } - catch (Throwable e) - { - if (GT_Values.D1) { - e.printStackTrace(GT_Log.err); - } - } - try - { - for (Object tRecipe : TileSqueezer.RecipeManager.recipes) { - if ((((ISqueezerRecipe)tRecipe).getResources().length == 1) && (((ISqueezerRecipe)tRecipe).getFluidOutput() != null)) { - GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes.addRecipe(true, new ItemStack[] { ((ISqueezerRecipe)tRecipe).getResources()[0] }, new ItemStack[] { ((ISqueezerRecipe)tRecipe).getRemnants() }, null, new int[] { (int) (((ISqueezerRecipe)tRecipe).getRemnantsChance() * 10000) }, null, new FluidStack[] { ((ISqueezerRecipe)tRecipe).getFluidOutput() }, 400, 2, 0); - } - } - } - catch (Throwable e) - { - if (GT_Values.D1) { - e.printStackTrace(GT_Log.err); - } - } - String tName = ""; - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "blastfurnace"), true)) { - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "blockcutter"), true)) { - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "inductionFurnace"), true)) { - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "generator"), false)) { - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "windMill"), true)) { - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "waterMill"), true)) { - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "solarPanel"), true)) { - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "centrifuge"), true)) { - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "electrolyzer"), false)) { - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "compressor"), true)) { - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "electroFurnace"), true)) { - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "extractor"), true)) { - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "macerator"), true)) { - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "recycler"), true)) { - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "metalformer"), true)) { - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "orewashingplant"), true)) { - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "massFabricator"), true)) { - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "replicator"), true)) { - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); - } - if (gregtechproxy.mNerfedVanillaTools) - { - GT_Log.out.println("GT_Mod: Nerfing Vanilla Tool Durability"); - Items.wooden_sword.setMaxDamage(12); - Items.wooden_pickaxe.setMaxDamage(12); - Items.wooden_shovel.setMaxDamage(12); - Items.wooden_axe.setMaxDamage(12); - Items.wooden_hoe.setMaxDamage(12); - - Items.stone_sword.setMaxDamage(48); - Items.stone_pickaxe.setMaxDamage(48); - Items.stone_shovel.setMaxDamage(48); - Items.stone_axe.setMaxDamage(48); - Items.stone_hoe.setMaxDamage(48); - - Items.iron_sword.setMaxDamage(256); - Items.iron_pickaxe.setMaxDamage(256); - Items.iron_shovel.setMaxDamage(256); - Items.iron_axe.setMaxDamage(256); - Items.iron_hoe.setMaxDamage(256); - - Items.golden_sword.setMaxDamage(24); - Items.golden_pickaxe.setMaxDamage(24); - Items.golden_shovel.setMaxDamage(24); - Items.golden_axe.setMaxDamage(24); - Items.golden_hoe.setMaxDamage(24); - - Items.diamond_sword.setMaxDamage(768); - Items.diamond_pickaxe.setMaxDamage(768); - Items.diamond_shovel.setMaxDamage(768); - Items.diamond_axe.setMaxDamage(768); - Items.diamond_hoe.setMaxDamage(768); - } - GT_Log.out.println("GT_Mod: Adding buffered Recipes."); - GT_ModHandler.stopBufferingCraftingRecipes(); - - GT_Log.out.println("GT_Mod: Saving Lang File."); - GT_LanguageManager.sEnglishFile.save(); - GregTech_API.sPostloadFinished = true; - GT_Log.out.println("GT_Mod: PostLoad-Phase finished!"); - GT_Log.ore.println("GT_Mod: PostLoad-Phase finished!"); - for (Runnable tRunnable : GregTech_API.sAfterGTPostload) { - try - { - tRunnable.run(); - } - catch (Throwable e) - { - e.printStackTrace(GT_Log.err); - } - } - GT_Log.out.println("GT_Mod: Adding Fake Recipes for NEI"); - if (ItemList.FR_Bee_Drone.get(1L, new Object[0]) != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[] { ItemList.FR_Bee_Drone.getWildcard(1L, new Object[0]) }, new ItemStack[] { ItemList.FR_Bee_Drone.getWithName(1L, "Scanned Drone", new Object[0]) }, null, new FluidStack[] { Materials.Honey.getFluid(50L) }, null, 500, 2, 0); - } - if (ItemList.FR_Bee_Princess.get(1L, new Object[0]) != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[] { ItemList.FR_Bee_Princess.getWildcard(1L, new Object[0]) }, new ItemStack[] { ItemList.FR_Bee_Princess.getWithName(1L, "Scanned Princess", new Object[0]) }, null, new FluidStack[] { Materials.Honey.getFluid(50L) }, null, 500, 2, 0); - } - if (ItemList.FR_Bee_Queen.get(1L, new Object[0]) != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[] { ItemList.FR_Bee_Queen.getWildcard(1L, new Object[0]) }, new ItemStack[] { ItemList.FR_Bee_Queen.getWithName(1L, "Scanned Queen", new Object[0]) }, null, new FluidStack[] { Materials.Honey.getFluid(50L) }, null, 500, 2, 0); - } - if (ItemList.FR_Tree_Sapling.get(1L, new Object[0]) != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[] { ItemList.FR_Tree_Sapling.getWildcard(1L, new Object[0]) }, new ItemStack[] { ItemList.FR_Tree_Sapling.getWithName(1L, "Scanned Sapling", new Object[0]) }, null, new FluidStack[] { Materials.Honey.getFluid(50L) }, null, 500, 2, 0); - } - if (ItemList.FR_Butterfly.get(1L, new Object[0]) != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[] { ItemList.FR_Butterfly.getWildcard(1L, new Object[0]) }, new ItemStack[] { ItemList.FR_Butterfly.getWithName(1L, "Scanned Butterfly", new Object[0]) }, null, new FluidStack[] { Materials.Honey.getFluid(50L) }, null, 500, 2, 0); - } - if (ItemList.FR_Larvae.get(1L, new Object[0]) != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[] { ItemList.FR_Larvae.getWildcard(1L, new Object[0]) }, new ItemStack[] { ItemList.FR_Larvae.getWithName(1L, "Scanned Larvae", new Object[0]) }, null, new FluidStack[] { Materials.Honey.getFluid(50L) }, null, 500, 2, 0); - } - if (ItemList.FR_Serum.get(1L, new Object[0]) != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[] { ItemList.FR_Serum.getWildcard(1L, new Object[0]) }, new ItemStack[] { ItemList.FR_Serum.getWithName(1L, "Scanned Serum", new Object[0]) }, null, new FluidStack[] { Materials.Honey.getFluid(50L) }, null, 500, 2, 0); - } - if (ItemList.FR_Caterpillar.get(1L, new Object[0]) != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[] { ItemList.FR_Caterpillar.getWildcard(1L, new Object[0]) }, new ItemStack[] { ItemList.FR_Caterpillar.getWithName(1L, "Scanned Caterpillar", new Object[0]) }, null, new FluidStack[] { Materials.Honey.getFluid(50L) }, null, 500, 2, 0); - } - if (ItemList.FR_PollenFertile.get(1L, new Object[0]) != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[] { ItemList.FR_PollenFertile.getWildcard(1L, new Object[0]) }, new ItemStack[] { ItemList.FR_PollenFertile.getWithName(1L, "Scanned Pollen", new Object[0]) }, null, new FluidStack[] { Materials.Honey.getFluid(50L) }, null, 500, 2, 0); - } - if (ItemList.IC2_Crop_Seeds.get(1L, new Object[0]) != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[] { ItemList.IC2_Crop_Seeds.getWildcard(1L, new Object[0]) }, new ItemStack[] { ItemList.IC2_Crop_Seeds.getWithName(1L, "Scanned Seeds", new Object[0]) }, null, null, null, 160, 8, 0); - } - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[] { new ItemStack(Items.written_book, 1, 32767) }, new ItemStack[] { ItemList.Tool_DataStick.getWithName(1L, "Scanned Book Data", new Object[0]) }, ItemList.Tool_DataStick.getWithName(1L, "Stick to save it to", new Object[0]), null, null, 128, 32, 0); - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[] { new ItemStack(Items.filled_map, 1, 32767) }, new ItemStack[] { ItemList.Tool_DataStick.getWithName(1L, "Scanned Map Data", new Object[0]) }, ItemList.Tool_DataStick.getWithName(1L, "Stick to save it to", new Object[0]), null, null, 128, 32, 0); - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[] { ItemList.Tool_DataOrb.getWithName(1L, "Orb to overwrite", new Object[0]) }, new ItemStack[] { ItemList.Tool_DataOrb.getWithName(1L, "Copy of the Orb", new Object[0]) }, ItemList.Tool_DataOrb.getWithName(0L, "Orb to copy", new Object[0]), null, null, 512, 32, 0); - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[] { ItemList.Tool_DataStick.getWithName(1L, "Stick to overwrite", new Object[0]) }, new ItemStack[] { ItemList.Tool_DataStick.getWithName(1L, "Copy of the Stick", new Object[0]) }, ItemList.Tool_DataStick.getWithName(0L, "Stick to copy", new Object[0]), null, null, 128, 32, 0); - for (Materials tMaterial : Materials.VALUES) { - if ((tMaterial.mElement != null) && (!tMaterial.mElement.mIsIsotope) && (tMaterial != Materials.Magic) && (tMaterial.getMass() > 0L)) - { - ItemStack tOutput = ItemList.Tool_DataOrb.get(1L, new Object[0]); - Behaviour_DataOrb.setDataTitle(tOutput, "Elemental-Scan"); - Behaviour_DataOrb.setDataName(tOutput, tMaterial.mElement.name()); - ItemStack tInput = GT_OreDictUnificator.get(OrePrefixes.dust, tMaterial, 1L); - if (tInput != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[] { tInput }, new ItemStack[] { tOutput }, ItemList.Tool_DataOrb.get(1L, new Object[0]), null, null, (int)(tMaterial.getMass() * 8192L), 32, 0); - GT_Recipe.GT_Recipe_Map.sRepicatorFakeRecipes.addFakeRecipe(false, null , new ItemStack[] { tInput }, new ItemStack[] { tOutput } , new FluidStack[]{Materials.UUMatter.getFluid(tMaterial.getMass())}, null, (int)(tMaterial.getMass() * 512L), 32, 0); - } - tInput = GT_OreDictUnificator.get(OrePrefixes.cell, tMaterial, 1L); - if (tInput != null) { - GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[] { tInput }, new ItemStack[] { tOutput }, ItemList.Tool_DataOrb.get(1L, new Object[0]), null, null, (int)(tMaterial.getMass() * 8192L), 32, 0); - GT_Recipe.GT_Recipe_Map.sRepicatorFakeRecipes.addFakeRecipe(false, null , new ItemStack[] { tInput }, new ItemStack[] { tOutput } , new FluidStack[]{Materials.UUMatter.getFluid(tMaterial.getMass())}, null, (int)(tMaterial.getMass() * 512L), 32, 0); - } - } - } - GT_Recipe.GT_Recipe_Map.sRockBreakerFakeRecipes.addFakeRecipe(false, new ItemStack[] { ItemList.Display_ITS_FREE.getWithName(0L, "Place Lava on Side", new Object[0]) }, new ItemStack[] { new ItemStack(Blocks.cobblestone, 1) }, null, null, null, 16, 32, 0); - GT_Recipe.GT_Recipe_Map.sRockBreakerFakeRecipes.addFakeRecipe(false, new ItemStack[] { ItemList.Display_ITS_FREE.getWithName(0L, "Place Lava on Top", new Object[0]) }, new ItemStack[] { new ItemStack(Blocks.stone, 1) }, null, null, null, 16, 32, 0); - GT_Recipe.GT_Recipe_Map.sRockBreakerFakeRecipes.addFakeRecipe(false, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L) }, new ItemStack[] { new ItemStack(Blocks.obsidian, 1) }, null, null, null, 128, 32, 0); - for (Iterator i$ = GT_ModHandler.getMaceratorRecipeList().entrySet().iterator(); i$.hasNext();) - { - Entry tRecipe = (Map.Entry)i$.next(); - if (((RecipeOutput)tRecipe.getValue()).items.size() > 0) { - for (ItemStack tStack : ((IRecipeInput)tRecipe.getKey()).getInputs()) { - if (GT_Utility.isStackValid(tStack)) { - GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.addFakeRecipe(true, new ItemStack[] { GT_Utility.copyAmount(((IRecipeInput)tRecipe.getKey()).getAmount(), new Object[] { tStack }) }, new ItemStack[] { (ItemStack)((RecipeOutput)tRecipe.getValue()).items.get(0) }, null, null, null, null, 400, 2, 0); - } - } - } - } - achievements = new GT_Achievements(); - Map.Entry tRecipe; - GT_Log.out.println("GT_Mod: Loading finished, deallocating temporary Init Variables."); - GregTech_API.sBeforeGTPreload = null; - GregTech_API.sAfterGTPreload = null; - GregTech_API.sBeforeGTLoad = null; - GregTech_API.sAfterGTLoad = null; - GregTech_API.sBeforeGTPostload = null; - GregTech_API.sAfterGTPostload = null; - } - - @Mod.EventHandler - public void onServerStarting(FMLServerStartingEvent aEvent) - { - for (Runnable tRunnable : GregTech_API.sBeforeGTServerstart) { - try - { - tRunnable.run(); - } - catch (Throwable e) - { - e.printStackTrace(GT_Log.err); - } - } - gregtechproxy.onServerStarting(); - GT_Log.out.println("GT_Mod: Unificating outputs of all known Recipe Types."); - ArrayList tStacks = new ArrayList(10000); - GT_Log.out.println("GT_Mod: IC2 Machines"); - for (RecipeOutput tRecipe : ic2.api.recipe.Recipes.cannerBottle.getRecipes().values()) - { - ItemStack tStack; - for (Iterator i$ = tRecipe.items.iterator(); i$.hasNext(); tStacks.add(tStack)) { - tStack = (ItemStack)i$.next(); - } - } - for (RecipeOutput tRecipe : ic2.api.recipe.Recipes.centrifuge.getRecipes().values()) - { - ItemStack tStack; - for (Iterator i$ = tRecipe.items.iterator(); i$.hasNext(); tStacks.add(tStack)) { - tStack = (ItemStack)i$.next(); - } - } - for (RecipeOutput tRecipe : ic2.api.recipe.Recipes.compressor.getRecipes().values()) - { - ItemStack tStack; - for (Iterator i$ = tRecipe.items.iterator(); i$.hasNext(); tStacks.add(tStack)) { - tStack = (ItemStack)i$.next(); - } - } - for (RecipeOutput tRecipe : ic2.api.recipe.Recipes.extractor.getRecipes().values()) - { - ItemStack tStack; - for (Iterator i$ = tRecipe.items.iterator(); i$.hasNext(); tStacks.add(tStack)) { - tStack = (ItemStack)i$.next(); - } - } - for (RecipeOutput tRecipe : ic2.api.recipe.Recipes.macerator.getRecipes().values()) - { - ItemStack tStack; - for (Iterator i$ = tRecipe.items.iterator(); i$.hasNext(); tStacks.add(tStack)) { - tStack = (ItemStack)i$.next(); - } - } - for (RecipeOutput tRecipe : ic2.api.recipe.Recipes.metalformerCutting.getRecipes().values()) - { - ItemStack tStack; - for (Iterator i$ = tRecipe.items.iterator(); i$.hasNext(); tStacks.add(tStack)) { - tStack = (ItemStack)i$.next(); - } - } - for (RecipeOutput tRecipe : ic2.api.recipe.Recipes.metalformerExtruding.getRecipes().values()) - { - ItemStack tStack; - for (Iterator i$ = tRecipe.items.iterator(); i$.hasNext(); tStacks.add(tStack)) { - tStack = (ItemStack)i$.next(); - } - } - for (RecipeOutput tRecipe : ic2.api.recipe.Recipes.metalformerRolling.getRecipes().values()) - { - ItemStack tStack; - for (Iterator i$ = tRecipe.items.iterator(); i$.hasNext(); tStacks.add(tStack)) { - tStack = (ItemStack)i$.next(); - } - } - for (RecipeOutput tRecipe : ic2.api.recipe.Recipes.matterAmplifier.getRecipes().values()) - { - ItemStack tStack; - for (Iterator i$ = tRecipe.items.iterator(); i$.hasNext(); tStacks.add(tStack)) { - tStack = (ItemStack)i$.next(); - } - } - for (RecipeOutput tRecipe : ic2.api.recipe.Recipes.oreWashing.getRecipes().values()) - { - ItemStack tStack; - for (Iterator i$ = tRecipe.items.iterator(); i$.hasNext(); tStacks.add(tStack)) { - tStack = (ItemStack)i$.next(); - } - } - GT_Log.out.println("GT_Mod: Dungeon Loot"); - for (WeightedRandomChestContent tContent : ChestGenHooks.getInfo("dungeonChest").getItems(new Random())) { - tStacks.add(tContent.theItemId); - } - for (WeightedRandomChestContent tContent : ChestGenHooks.getInfo("bonusChest").getItems(new Random())) { - tStacks.add(tContent.theItemId); - } - for (WeightedRandomChestContent tContent : ChestGenHooks.getInfo("villageBlacksmith").getItems(new Random())) { - tStacks.add(tContent.theItemId); - } - for (WeightedRandomChestContent tContent : ChestGenHooks.getInfo("strongholdCrossing").getItems(new Random())) { - tStacks.add(tContent.theItemId); - } - for (WeightedRandomChestContent tContent : ChestGenHooks.getInfo("strongholdLibrary").getItems(new Random())) { - tStacks.add(tContent.theItemId); - } - for (WeightedRandomChestContent tContent : ChestGenHooks.getInfo("strongholdCorridor").getItems(new Random())) { - tStacks.add(tContent.theItemId); - } - for (WeightedRandomChestContent tContent : ChestGenHooks.getInfo("pyramidJungleDispenser").getItems(new Random())) { - tStacks.add(tContent.theItemId); - } - for (WeightedRandomChestContent tContent : ChestGenHooks.getInfo("pyramidJungleChest").getItems(new Random())) { - tStacks.add(tContent.theItemId); - } - for (WeightedRandomChestContent tContent : ChestGenHooks.getInfo("pyramidDesertyChest").getItems(new Random())) { - tStacks.add(tContent.theItemId); - } - for (WeightedRandomChestContent tContent : ChestGenHooks.getInfo("mineshaftCorridor").getItems(new Random())) { - tStacks.add(tContent.theItemId); - } - GT_Log.out.println("GT_Mod: Smelting"); - Object tStack; - for (Iterator i$ = FurnaceRecipes.smelting().getSmeltingList().values().iterator(); i$.hasNext(); tStacks.add((ItemStack)tStack)) { - tStack = i$.next(); - } - if (gregtechproxy.mCraftingUnification) - { - GT_Log.out.println("GT_Mod: Crafting Recipes"); - for (Object tRecipe : CraftingManager.getInstance().getRecipeList()) { - if ((tRecipe instanceof IRecipe)) { - tStacks.add(((IRecipe)tRecipe).getRecipeOutput()); - } - } - } - for (ItemStack tOutput : tStacks) { - if (gregtechproxy.mRegisteredOres.contains(tOutput)) - { - FMLLog.severe("GT-ERR-01: @ " + tOutput.getUnlocalizedName() + " " + tOutput.getDisplayName(), new Object[0]); - FMLLog.severe("A Recipe used an OreDict Item as Output directly, without copying it before!!! This is a typical CallByReference/CallByValue Error", new Object[0]); - FMLLog.severe("Said Item will be renamed to make the invalid Recipe visible, so that you can report it properly.", new Object[0]); - FMLLog.severe("Please check all Recipes outputting this Item, and report the Recipes to their Owner.", new Object[0]); - FMLLog.severe("The Owner of the ==>RECIPE<==, NOT the Owner of the Item, which has been mentioned above!!!", new Object[0]); - FMLLog.severe("And ONLY Recipes which are ==>OUTPUTTING<== the Item, sorry but I don't want failed Bug Reports.", new Object[0]); - FMLLog.severe("GregTech just reports this Error to you, so you can report it to the Mod causing the Problem.", new Object[0]); - FMLLog.severe("Even though I make that Bug visible, I can not and will not fix that for you, that's for the causing Mod to fix.", new Object[0]); - FMLLog.severe("And speaking of failed Reports:", new Object[0]); - FMLLog.severe("Both IC2 and GregTech CANNOT be the CAUSE of this Problem, so don't report it to either of them.", new Object[0]); - FMLLog.severe("I REPEAT, BOTH, IC2 and GregTech CANNOT be the source of THIS BUG. NO MATTER WHAT.", new Object[0]); - FMLLog.severe("Asking in the IC2 Forums, which Mod is causing that, won't help anyone, since it is not possible to determine, which Mod it is.", new Object[0]); - FMLLog.severe("If it would be possible, then I would have had added the Mod which is causing it to the Message already. But it is not possible.", new Object[0]); - FMLLog.severe("Sorry, but this Error is serious enough to justify this Wall-O-Text and the partially allcapsed Language.", new Object[0]); - FMLLog.severe("Also it is a Ban Reason on the IC2-Forums to post this seriously.", new Object[0]); - tOutput.setStackDisplayName("ERROR! PLEASE CHECK YOUR LOG FOR 'GT-ERR-01'!"); - } - else - { - GT_OreDictUnificator.setStack(tOutput); - } - } - GT_Log.out.println("GT_Mod: ServerStarting-Phase finished!"); - GT_Log.ore.println("GT_Mod: ServerStarting-Phase finished!"); - for (Runnable tRunnable : GregTech_API.sAfterGTServerstart) { - try - { - tRunnable.run(); - } - catch (Throwable e) - { - e.printStackTrace(GT_Log.err); - } - } - } - - @Mod.EventHandler - public void onServerStarted(FMLServerStartedEvent aEvent) - { - gregtechproxy.onServerStarted(); - } - - @Mod.EventHandler -public void onIDChangingEvent(FMLModIdMappingEvent aEvent) -{ - GT_Utility.reInit(); - GT_Recipe.reInit(); - for(Iterator i$ = GregTech_API.sItemStackMappings.iterator(); i$.hasNext();) - { - Map tMap = (Map)i$.next(); - try - { - GT_Utility.reMap(tMap); - } - catch(Throwable e) - { - e.printStackTrace(GT_Log.err); + implements IGT_Mod { + public static final int VERSION = 508; + public static final int REQUIRED_IC2 = 624; + @Mod.Instance("gregtech") + public static GT_Mod instance; + @SidedProxy(modId = "gregtech", clientSide = "gregtech.common.GT_Client", serverSide = "gregtech.common.GT_Server") + public static GT_Proxy gregtechproxy; + public static int MAX_IC2 = 2147483647; + public static GT_Achievements achievements; + + static { + if ((508 != GregTech_API.VERSION) || (508 != GT_ModHandler.VERSION) || (508 != GT_OreDictUnificator.VERSION) || (508 != GT_Recipe.VERSION) || (508 != GT_Utility.VERSION) || (508 != GT_RecipeRegistrator.VERSION) || (508 != Element.VERSION) || (508 != Materials.VERSION) || (508 != OrePrefixes.VERSION)) { + throw new GT_ItsNotMyFaultException("One of your Mods included GregTech-API Files inside it's download, mention this to the Mod Author, who does this bad thing, and tell him/her to use reflection. I have added a Version check, to prevent Authors from breaking my Mod that way."); } } -} + public GT_Mod() { + try { + Class.forName("ic2.core.IC2").getField("enableOreDictCircuit").set(null, Boolean.valueOf(true)); + } catch (Throwable e) { + } + try { + Class.forName("ic2.core.IC2").getField("enableCraftingBucket").set(null, Boolean.valueOf(false)); + } catch (Throwable e) { + } + try { + Class.forName("ic2.core.IC2").getField("enableEnergyInStorageBlockItems").set(null, Boolean.valueOf(false)); + } catch (Throwable e) { + } + GT_Values.GT = this; + GT_Values.DW = new GT_DummyWorld(); + GT_Values.NW = new GT_Network(); + GregTech_API.sRecipeAdder = GT_Values.RA = new GT_RecipeAdder(); + + Textures.BlockIcons.VOID.name(); + Textures.ItemIcons.VOID.name(); + } + + @Mod.EventHandler + public void onPreLoad(FMLPreInitializationEvent aEvent) { + if (GregTech_API.sPreloadStarted) { + return; + } + for (Runnable tRunnable : GregTech_API.sBeforeGTPreload) { + try { + tRunnable.run(); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } + File tFile = new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "GregTech.cfg"); + Configuration tMainConfig = new Configuration(tFile); + tMainConfig.load(); + tFile = new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "IDs.cfg"); + GT_Config.sConfigFileIDs = new Configuration(tFile); + GT_Config.sConfigFileIDs.load(); + GT_Config.sConfigFileIDs.save(); + GregTech_API.sRecipeFile = new GT_Config(new Configuration(new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "Recipes.cfg"))); + GregTech_API.sMachineFile = new GT_Config(new Configuration(new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "MachineStats.cfg"))); + GregTech_API.sWorldgenFile = new GT_Config(new Configuration(new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "WorldGeneration.cfg"))); + GregTech_API.sMaterialProperties = new GT_Config(new Configuration(new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "MaterialProperties.cfg"))); + GregTech_API.sUnification = new GT_Config(new Configuration(new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "Unification.cfg"))); + GregTech_API.sSpecialFile = new GT_Config(new Configuration(new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "Other.cfg"))); + GregTech_API.sOPStuff = new GT_Config(new Configuration(new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "OverpoweredStuff.cfg"))); + + GregTech_API.sClientDataFile = new GT_Config(new Configuration(new File(aEvent.getModConfigurationDirectory().getParentFile(), "GregTech.cfg"))); + + GT_Log.mLogFile = new File(aEvent.getModConfigurationDirectory().getParentFile(), "logs/GregTech.log"); + if (!GT_Log.mLogFile.exists()) { + try { + GT_Log.mLogFile.createNewFile(); + } catch (Throwable e) { + } + } + try { + GT_Log.out = GT_Log.err = new PrintStream(GT_Log.mLogFile); + } catch (FileNotFoundException e) { + } + GT_Log.mOreDictLogFile = new File(aEvent.getModConfigurationDirectory().getParentFile(), "logs/OreDict.log"); + if (!GT_Log.mOreDictLogFile.exists()) { + try { + GT_Log.mOreDictLogFile.createNewFile(); + } catch (Throwable e) { + } + } + if (tMainConfig.get("general", "LoggingPlayerActivity", true).getBoolean(true)) { + GT_Log.mPlayerActivityLogFile = new File(aEvent.getModConfigurationDirectory().getParentFile(), "logs/PlayerActivity.log"); + if (!GT_Log.mPlayerActivityLogFile.exists()) { + try { + GT_Log.mPlayerActivityLogFile.createNewFile(); + } catch (Throwable e) { + } + } + try { + GT_Log.pal = new PrintStream(GT_Log.mPlayerActivityLogFile); + } catch (Throwable e) { + } + } + try { + List tList = ((GT_Log.LogBuffer) GT_Log.ore).mBufferedOreDictLog; + GT_Log.ore.println("******************************************************************************"); + GT_Log.ore.println("* This is the complete log of the GT5-Unofficial OreDictionary Handler. It *"); + GT_Log.ore.println("* processes all OreDictionary entries and can sometimes cause errors. All *"); + GT_Log.ore.println("* entries and errors are being logged. If you see an error please raise an *"); + GT_Log.ore.println("* issue at https://github.com/Blood-Asp/GT5-Unofficial. *"); + GT_Log.ore.println("******************************************************************************"); + String tString; + for (Iterator i$ = tList.iterator(); i$.hasNext(); GT_Log.ore.println(tString)) { + tString = (String) i$.next(); + } + } catch (Throwable e) { + } + gregtechproxy.onPreLoad(); + + GT_Log.out.println("GT_Mod: Setting Configs"); + GT_Values.D1 = tMainConfig.get("general", "Debug", false).getBoolean(false); + GT_Values.D2 = tMainConfig.get("general", "Debug2", false).getBoolean(false); + + GregTech_API.TICKS_FOR_LAG_AVERAGING = tMainConfig.get("general", "TicksForLagAveragingWithScanner", 25).getInt(25); + GregTech_API.MILLISECOND_THRESHOLD_UNTIL_LAG_WARNING = tMainConfig.get("general", "MillisecondsPassedInGTTileEntityUntilLagWarning", 100).getInt(100); + if (tMainConfig.get("general", "disable_STDOUT", false).getBoolean(false)) { + System.out.close(); + } + if (tMainConfig.get("general", "disable_STDERR", false).getBoolean(false)) { + System.err.close(); + } + GregTech_API.sMachineExplosions = tMainConfig.get("machines", "machines_explosion_damage", true).getBoolean(false); + GregTech_API.sMachineFlammable = tMainConfig.get("machines", "machines_flammable", true).getBoolean(false); + GregTech_API.sMachineNonWrenchExplosions = tMainConfig.get("machines", "explosions_on_nonwrenching", true).getBoolean(false); + GregTech_API.sMachineWireFire = tMainConfig.get("machines", "wirefire_on_explosion", true).getBoolean(false); + GregTech_API.sMachineFireExplosions = tMainConfig.get("machines", "fire_causes_explosions", true).getBoolean(false); + GregTech_API.sMachineRainExplosions = tMainConfig.get("machines", "rain_causes_explosions", true).getBoolean(false); + GregTech_API.sMachineThunderExplosions = tMainConfig.get("machines", "lightning_causes_explosions", true).getBoolean(false); + GregTech_API.sConstantEnergy = tMainConfig.get("machines", "constant_need_of_energy", true).getBoolean(false); + GregTech_API.sColoredGUI = tMainConfig.get("machines", "colored_guis_when_painted", true).getBoolean(false); + + GregTech_API.sTimber = tMainConfig.get("general", "timber_axe", false).getBoolean(false); + GregTech_API.sDrinksAlwaysDrinkable = tMainConfig.get("general", "drinks_always_drinkable", false).getBoolean(false); + GregTech_API.sDoShowAllItemsInCreative = tMainConfig.get("general", "show_all_metaitems_in_creative_and_NEI", false).getBoolean(false); + GregTech_API.sMultiThreadedSounds = tMainConfig.get("general", "sound_multi_threading", false).getBoolean(false); + for (Dyes tDye : Dyes.values()) { + if ((tDye != Dyes._NULL) && (tDye.mIndex < 0)) { + tDye.mRGBa[0] = ((short) Math.min(255, Math.max(0, GregTech_API.sClientDataFile.get("ColorModulation." + tDye, "R", tDye.mRGBa[0])))); + tDye.mRGBa[1] = ((short) Math.min(255, Math.max(0, GregTech_API.sClientDataFile.get("ColorModulation." + tDye, "G", tDye.mRGBa[1])))); + tDye.mRGBa[2] = ((short) Math.min(255, Math.max(0, GregTech_API.sClientDataFile.get("ColorModulation." + tDye, "B", tDye.mRGBa[2])))); + } + } + gregtechproxy.mMaxEqualEntitiesAtOneSpot = tMainConfig.get("general", "MaxEqualEntitiesAtOneSpot", 3).getInt(3); + gregtechproxy.mSkeletonsShootGTArrows = tMainConfig.get("general", "SkeletonsShootGTArrows", 16).getInt(16); + gregtechproxy.mFlintChance = tMainConfig.get("general", "FlintAndSteelChance", 30).getInt(30); + gregtechproxy.mItemDespawnTime = tMainConfig.get("general", "ItemDespawnTime", 6000).getInt(6000); + gregtechproxy.mDisableVanillaOres = tMainConfig.get("general", "DisableVanillaOres", true).getBoolean(true); + gregtechproxy.mNerfDustCrafting = tMainConfig.get("general", "NerfDustCrafting", true).getBoolean(true); + gregtechproxy.mIncreaseDungeonLoot = tMainConfig.get("general", "IncreaseDungeonLoot", true).getBoolean(true); + gregtechproxy.mAxeWhenAdventure = tMainConfig.get("general", "AdventureModeStartingAxe", true).getBoolean(true); + gregtechproxy.mHardcoreCables = tMainConfig.get("general", "HardCoreCableLoss", false).getBoolean(false); + gregtechproxy.mSurvivalIntoAdventure = tMainConfig.get("general", "forceAdventureMode", false).getBoolean(false); + gregtechproxy.mHungerEffect = tMainConfig.get("general", "AFK_Hunger", false).getBoolean(false); + gregtechproxy.mHardRock = tMainConfig.get("general", "harderstone", false).getBoolean(false); + gregtechproxy.mInventoryUnification = tMainConfig.get("general", "InventoryUnification", true).getBoolean(true); + gregtechproxy.mCraftingUnification = tMainConfig.get("general", "CraftingUnification", true).getBoolean(true); + gregtechproxy.mNerfedWoodPlank = tMainConfig.get("general", "WoodNeedsSawForCrafting", true).getBoolean(true); + gregtechproxy.mNerfedVanillaTools = tMainConfig.get("general", "smallerVanillaToolDurability", true).getBoolean(true); + gregtechproxy.mSortToTheEnd = tMainConfig.get("general", "EnsureToBeLoadedLast", true).getBoolean(true); + gregtechproxy.mDisableIC2Cables = tMainConfig.get("general", "DisableIC2Cables", false).getBoolean(false); + gregtechproxy.mAchievements = tMainConfig.get("general", "EnableAchievements", true).getBoolean(true); + gregtechproxy.mAE2Integration = tMainConfig.get("general", "EnableAE2Integration", Loader.isModLoaded("appliedenergistics2")).getBoolean(Loader.isModLoaded("appliedenergistics2")); + + + GregTech_API.mOutputRF = GregTech_API.sOPStuff.get(ConfigCategories.general, "OutputRF", false); + GregTech_API.mInputRF = GregTech_API.sOPStuff.get(ConfigCategories.general, "InputRF", false); + GregTech_API.mEUtoRF = GregTech_API.sOPStuff.get(ConfigCategories.general, "100EUtoRF", 360); + GregTech_API.mRFtoEU = GregTech_API.sOPStuff.get(ConfigCategories.general, "100RFtoEU", 20); + GregTech_API.mRFExplosions = GregTech_API.sOPStuff.get(ConfigCategories.general, "RFExplosions", true); + GregTech_API.meIOLoaded = Loader.isModLoaded("EnderIO"); + + if (tMainConfig.get("general", "hardermobspawners", true).getBoolean(true)) { + Blocks.mob_spawner.setHardness(500.0F).setResistance(6000000.0F); + } + gregtechproxy.mOnline = tMainConfig.get("general", "online", true).getBoolean(false); + + gregtechproxy.mUpgradeCount = Math.min(64, Math.max(1, tMainConfig.get("features", "UpgradeStacksize", 4).getInt())); + for (OrePrefixes tPrefix : OrePrefixes.values()) { + if (tPrefix.mIsUsedForOreProcessing) { + tPrefix.mDefaultStackSize = ((byte) Math.min(64, Math.max(1, tMainConfig.get("features", "MaxOreStackSize", 64).getInt()))); + } else if (tPrefix == OrePrefixes.plank) { + tPrefix.mDefaultStackSize = ((byte) Math.min(64, Math.max(16, tMainConfig.get("features", "MaxPlankStackSize", 64).getInt()))); + } else if ((tPrefix == OrePrefixes.wood) || (tPrefix == OrePrefixes.treeLeaves) || (tPrefix == OrePrefixes.treeSapling) || (tPrefix == OrePrefixes.log)) { + tPrefix.mDefaultStackSize = ((byte) Math.min(64, Math.max(16, tMainConfig.get("features", "MaxLogStackSize", 64).getInt()))); + } else if (tPrefix.mIsUsedForBlocks) { + tPrefix.mDefaultStackSize = ((byte) Math.min(64, Math.max(16, tMainConfig.get("features", "MaxOtherBlockStackSize", 64).getInt()))); + } + } + //GT_Config.troll = (Calendar.getInstance().get(2) + 1 == 4) && (Calendar.getInstance().get(5) >= 1) && (Calendar.getInstance().get(5) <= 2); + + Materials.init(GregTech_API.sMaterialProperties); + + GT_Log.out.println("GT_Mod: Saving Main Config"); + tMainConfig.save(); + + GT_Log.out.println("GT_Mod: Generating Lang-File"); + GT_LanguageManager.sEnglishFile = new Configuration(new File(aEvent.getModConfigurationDirectory().getParentFile(), "GregTech.lang")); + GT_LanguageManager.sEnglishFile.load(); + + GT_Log.out.println("GT_Mod: Removing all original Scrapbox Drops."); + try { + GT_Utility.getField("ic2.core.item.ItemScrapbox$Drop", "topChance", true, true).set(null, Integer.valueOf(0)); + ((List) GT_Utility.getFieldContent(GT_Utility.getFieldContent("ic2.api.recipe.Recipes", "scrapboxDrops", true, true), "drops", true, true)).clear(); + } catch (Throwable e) { + if (GT_Values.D1) { + e.printStackTrace(GT_Log.err); + } + } + GT_Log.out.println("GT_Mod: Adding Scrap with a Weight of 200.0F to the Scrapbox Drops."); + GT_ModHandler.addScrapboxDrop(200.0F, GT_ModHandler.getIC2Item("scrap", 1L)); + + EntityRegistry.registerModEntity(GT_Entity_Arrow.class, "GT_Entity_Arrow", 1, GT_Values.GT, 160, 1, true); + EntityRegistry.registerModEntity(GT_Entity_Arrow_Potion.class, "GT_Entity_Arrow_Potion", 2, GT_Values.GT, 160, 1, true); + + new Enchantment_EnderDamage(); + new Enchantment_Radioactivity(); + + new GT_Loader_OreProcessing().run(); + new GT_Loader_OreDictionary().run(); + new GT_Loader_ItemData().run(); + new GT_Loader_Item_Block_And_Fluid().run(); + new GT_Loader_MetaTileEntities().run(); + + new GT_Loader_CircuitBehaviors().run(); + new GT_CoverBehaviorLoader().run(); + new GT_SonictronLoader().run(); + new GT_SpawnEventHandler(); + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.gregtechrecipes, "SolarPanel", true)) { + GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"SGS", "CPC", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('G'), new ItemStack(Blocks.glass_pane, 1), Character.valueOf('P'), OrePrefixes.plateAlloy.get(Materials.Carbon), Character.valueOf('S'), OrePrefixes.plate.get(Materials.Silicon)}); + } + if (GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "SolarPanel8V", false)) { + GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_8V.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"SSS", "STS", "SSS", Character.valueOf('S'), ItemList.Cover_SolarPanel, Character.valueOf('T'), OrePrefixes.circuit.get(Materials.Advanced)}); + } + if (GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "SolarPanelLV", false)) { + GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" S ", "STS", " S ", Character.valueOf('S'), ItemList.Cover_SolarPanel_8V, Character.valueOf('T'), ItemList.Transformer_LV_ULV}); + } + if (GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "SolarPanelMV", false)) { + GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" S ", "STS", " S ", Character.valueOf('S'), ItemList.Cover_SolarPanel_LV, Character.valueOf('T'), ItemList.Transformer_MV_LV}); + } + if (GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "SolarPanelHV", false)) { + GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" S ", "STS", " S ", Character.valueOf('S'), ItemList.Cover_SolarPanel_MV, Character.valueOf('T'), ItemList.Transformer_HV_MV}); + } + if (GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "SolarPanelEV", false)) { + GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" S ", "STS", " S ", Character.valueOf('S'), ItemList.Cover_SolarPanel_HV, Character.valueOf('T'), ItemList.Transformer_EV_HV}); + } + if (GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "SolarPanelIV", false)) { + GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" S ", "STS", " S ", Character.valueOf('S'), ItemList.Cover_SolarPanel_EV, Character.valueOf('T'), ItemList.Transformer_IV_EV}); + } + if (GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "SolarPanelLuV", false)) { + GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" S ", "STS", " S ", Character.valueOf('S'), ItemList.Cover_SolarPanel_IV, Character.valueOf('T'), ItemList.Transformer_LuV_IV}); + } + if (GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "SolarPanelZPM", false)) { + GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" S ", "STS", " S ", Character.valueOf('S'), ItemList.Cover_SolarPanel_LuV, Character.valueOf('T'), ItemList.Transformer_ZPM_LuV}); + } + if (GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "SolarPanelUV", false)) { + GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" S ", "STS", " S ", Character.valueOf('S'), ItemList.Cover_SolarPanel_ZPM, Character.valueOf('T'), ItemList.Transformer_UV_ZPM}); + } + if (gregtechproxy.mSortToTheEnd) { + try { + GT_Log.out.println("GT_Mod: Sorting GregTech to the end of the Mod List for further processing."); + LoadController tLoadController = (LoadController) GT_Utility.getFieldContent(Loader.instance(), "modController", true, true); + List tModList = tLoadController.getActiveModList(); + List tNewModsList = new ArrayList(); + ModContainer tGregTech = null; + for (short i = 0; i < tModList.size(); i = (short) (i + 1)) { + ModContainer tMod = (ModContainer) tModList.get(i); + if (tMod.getModId().equalsIgnoreCase("gregtech")) { + tGregTech = tMod; + } else { + tNewModsList.add(tMod); + } + } + if (tGregTech != null) { + tNewModsList.add(tGregTech); + } + GT_Utility.getField(tLoadController, "activeModList", true, true).set(tLoadController, tNewModsList); + } catch (Throwable e) { + if (GT_Values.D1) { + e.printStackTrace(GT_Log.err); + } + } + } + GregTech_API.sPreloadFinished = true; + GT_Log.out.println("GT_Mod: Preload-Phase finished!"); + GT_Log.ore.println("GT_Mod: Preload-Phase finished!"); + for (Runnable tRunnable : GregTech_API.sAfterGTPreload) { + try { + tRunnable.run(); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } + } + + @Mod.EventHandler + public void onLoad(FMLInitializationEvent aEvent) { + if (GregTech_API.sLoadStarted) { + return; + } + for (Runnable tRunnable : GregTech_API.sBeforeGTLoad) { + try { + tRunnable.run(); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } + gregtechproxy.onLoad(); + if (gregtechproxy.mSortToTheEnd) { + new GT_ItemIterator().run(); + gregtechproxy.registerUnificationEntries(); + new GT_FuelLoader().run(); + } + GregTech_API.sLoadFinished = true; + GT_Log.out.println("GT_Mod: Load-Phase finished!"); + GT_Log.ore.println("GT_Mod: Load-Phase finished!"); + for (Runnable tRunnable : GregTech_API.sAfterGTLoad) { + try { + tRunnable.run(); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } + } + + @Mod.EventHandler + public void onPostLoad(FMLPostInitializationEvent aEvent) { + if (GregTech_API.sPostloadStarted) { + return; + } + for (Runnable tRunnable : GregTech_API.sBeforeGTPostload) { + try { + tRunnable.run(); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } + gregtechproxy.onPostLoad(); + if (gregtechproxy.mSortToTheEnd) { + gregtechproxy.registerUnificationEntries(); + } else { + new GT_ItemIterator().run(); + gregtechproxy.registerUnificationEntries(); + new GT_FuelLoader().run(); + } + new GT_BookAndLootLoader().run(); + new GT_ItemMaxStacksizeLoader().run(); + new GT_BlockResistanceLoader().run(); + new GT_RecyclerBlacklistLoader().run(); + new GT_MinableRegistrator().run(); + new GT_MachineRecipeLoader().run(); + new GT_ScrapboxDropLoader().run(); + new GT_CropLoader().run(); + new GT_Worldgenloader().run(); + new GT_CoverLoader().run(); + + GT_RecipeRegistrator.registerUsagesForMaterials(new ItemStack(Blocks.planks, 1), null, false); + GT_RecipeRegistrator.registerUsagesForMaterials(new ItemStack(Blocks.cobblestone, 1), null, false); + GT_RecipeRegistrator.registerUsagesForMaterials(new ItemStack(Blocks.stone, 1), null, false); + GT_RecipeRegistrator.registerUsagesForMaterials(new ItemStack(Items.leather, 1), null, false); + + GT_OreDictUnificator.addItemData(GT_ModHandler.getRecipeOutput(new ItemStack[]{null, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1L), null, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1L), null, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1L), null, null, null}), new ItemData(Materials.Tin, 10886400L, new MaterialStack[0])); + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.storageblockcrafting, "tile.glowstone", false)) { + GT_ModHandler.removeRecipe(new ItemStack[]{new ItemStack(Items.glowstone_dust, 1), new ItemStack(Items.glowstone_dust, 1), null, new ItemStack(Items.glowstone_dust, 1), new ItemStack(Items.glowstone_dust, 1)}); + } + GT_ModHandler.removeRecipe(new ItemStack[]{new ItemStack(Blocks.wooden_slab, 1, 0), new ItemStack(Blocks.wooden_slab, 1, 1), new ItemStack(Blocks.wooden_slab, 1, 2)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.wooden_slab, 6, 0), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"WWW", Character.valueOf('W'), new ItemStack(Blocks.planks, 1, 0)}); + + GT_Log.out.println("GT_Mod: Activating OreDictionary Handler, this can take some time, as it scans the whole OreDictionary"); + FMLLog.info("If your Log stops here, you were too impatient. Wait a bit more next time, before killing Minecraft with the Task Manager.", new Object[0]); + gregtechproxy.activateOreDictHandler(); + FMLLog.info("Congratulations, you have been waiting long enough. Have a Cake.", new Object[0]); + GT_Log.out.println("GT_Mod: " + GT_ModHandler.sSingleNonBlockDamagableRecipeList.size() + " Recipes were left unused."); + if (GT_Values.D1) { + IRecipe tRecipe; + for (Iterator i$ = GT_ModHandler.sSingleNonBlockDamagableRecipeList.iterator(); i$.hasNext(); GT_Log.out.println("=> " + tRecipe.getRecipeOutput().getDisplayName())) { + tRecipe = (IRecipe) i$.next(); + } + } + new GT_CraftingRecipeLoader().run(); + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2forgehammer", true)) { + GT_ModHandler.removeRecipeByOutput(ItemList.IC2_ForgeHammer.getWildcard(1L, new Object[0])); + } + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("machine", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("machine", 1L), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"RRR", "RwR", "RRR", Character.valueOf('R'), OrePrefixes.plate.get(Materials.Iron)}); + for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry.getRegisteredFluidContainerData()) { + if ((tData.filledContainer.getItem() == Items.potionitem) && (tData.filledContainer.getItemDamage() == 0)) { + GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes.addRecipe(true, new ItemStack[]{ItemList.Bottle_Empty.get(1L, new Object[0])}, new ItemStack[]{new ItemStack(Items.potionitem, 1, 0)}, null, new FluidStack[]{Materials.Water.getFluid(250L)}, null, 4, 1, 0); + GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes.addRecipe(true, new ItemStack[]{new ItemStack(Items.potionitem, 1, 0)}, new ItemStack[]{ItemList.Bottle_Empty.get(1L, new Object[0])}, null, null, null, 4, 1, 0); + } else { + GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes.addRecipe(true, new ItemStack[]{tData.emptyContainer}, new ItemStack[]{tData.filledContainer}, null, new FluidStack[]{tData.fluid}, null, tData.fluid.amount / 62, 1, 0); + GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes.addRecipe(true, new ItemStack[]{tData.filledContainer}, new ItemStack[]{GT_Utility.getContainerItem(tData.filledContainer, true)}, null, null, new FluidStack[]{tData.fluid}, tData.fluid.amount / 62, 1, 0); + } + } + try { + for (Object tRecipe : TileCentrifuge.RecipeManager.recipes) { + Map outputs = ((TileCentrifuge.CentrifugeRecipe) tRecipe).getAllProducts(); + ItemStack[] tOutputs = new ItemStack[outputs.size()]; + int[] tChances = new int[outputs.size()]; + int i = 0; + for (Map.Entry entry : outputs.entrySet()) { + tChances[i] = (int) (entry.getValue() * 10000); + tOutputs[i] = entry.getKey().copy(); + i++; + } + GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.addRecipe(true, new ItemStack[]{((TileCentrifuge.CentrifugeRecipe) tRecipe).getInput()}, tOutputs, null, tChances, null, null, 128, 5, 0); + } + } catch (Throwable e) { + if (GT_Values.D1) { + e.printStackTrace(GT_Log.err); + } + } + try { + for (Object tRecipe : TileSqueezer.RecipeManager.recipes) { + if ((((ISqueezerRecipe) tRecipe).getResources().length == 1) && (((ISqueezerRecipe) tRecipe).getFluidOutput() != null)) { + GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes.addRecipe(true, new ItemStack[]{((ISqueezerRecipe) tRecipe).getResources()[0]}, new ItemStack[]{((ISqueezerRecipe) tRecipe).getRemnants()}, null, new int[]{(int) (((ISqueezerRecipe) tRecipe).getRemnantsChance() * 10000)}, null, new FluidStack[]{((ISqueezerRecipe) tRecipe).getFluidOutput()}, 400, 2, 0); + } + } + } catch (Throwable e) { + if (GT_Values.D1) { + e.printStackTrace(GT_Log.err); + } + } + String tName = ""; + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "blastfurnace"), true)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "blockcutter"), true)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "inductionFurnace"), true)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "generator"), false)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "windMill"), true)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "waterMill"), true)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "solarPanel"), true)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "centrifuge"), true)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "electrolyzer"), false)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "compressor"), true)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "electroFurnace"), true)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "extractor"), true)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "macerator"), true)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "recycler"), true)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "metalformer"), true)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "orewashingplant"), true)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "massFabricator"), true)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "replicator"), true)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L)); + } + if (gregtechproxy.mNerfedVanillaTools) { + GT_Log.out.println("GT_Mod: Nerfing Vanilla Tool Durability"); + Items.wooden_sword.setMaxDamage(12); + Items.wooden_pickaxe.setMaxDamage(12); + Items.wooden_shovel.setMaxDamage(12); + Items.wooden_axe.setMaxDamage(12); + Items.wooden_hoe.setMaxDamage(12); + + Items.stone_sword.setMaxDamage(48); + Items.stone_pickaxe.setMaxDamage(48); + Items.stone_shovel.setMaxDamage(48); + Items.stone_axe.setMaxDamage(48); + Items.stone_hoe.setMaxDamage(48); + + Items.iron_sword.setMaxDamage(256); + Items.iron_pickaxe.setMaxDamage(256); + Items.iron_shovel.setMaxDamage(256); + Items.iron_axe.setMaxDamage(256); + Items.iron_hoe.setMaxDamage(256); + + Items.golden_sword.setMaxDamage(24); + Items.golden_pickaxe.setMaxDamage(24); + Items.golden_shovel.setMaxDamage(24); + Items.golden_axe.setMaxDamage(24); + Items.golden_hoe.setMaxDamage(24); + + Items.diamond_sword.setMaxDamage(768); + Items.diamond_pickaxe.setMaxDamage(768); + Items.diamond_shovel.setMaxDamage(768); + Items.diamond_axe.setMaxDamage(768); + Items.diamond_hoe.setMaxDamage(768); + } + GT_Log.out.println("GT_Mod: Adding buffered Recipes."); + GT_ModHandler.stopBufferingCraftingRecipes(); + + GT_Log.out.println("GT_Mod: Saving Lang File."); + GT_LanguageManager.sEnglishFile.save(); + GregTech_API.sPostloadFinished = true; + GT_Log.out.println("GT_Mod: PostLoad-Phase finished!"); + GT_Log.ore.println("GT_Mod: PostLoad-Phase finished!"); + for (Runnable tRunnable : GregTech_API.sAfterGTPostload) { + try { + tRunnable.run(); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } + GT_Log.out.println("GT_Mod: Adding Fake Recipes for NEI"); + if (ItemList.FR_Bee_Drone.get(1L, new Object[0]) != null) { + GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{ItemList.FR_Bee_Drone.getWildcard(1L, new Object[0])}, new ItemStack[]{ItemList.FR_Bee_Drone.getWithName(1L, "Scanned Drone", new Object[0])}, null, new FluidStack[]{Materials.Honey.getFluid(50L)}, null, 500, 2, 0); + } + if (ItemList.FR_Bee_Princess.get(1L, new Object[0]) != null) { + GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{ItemList.FR_Bee_Princess.getWildcard(1L, new Object[0])}, new ItemStack[]{ItemList.FR_Bee_Princess.getWithName(1L, "Scanned Princess", new Object[0])}, null, new FluidStack[]{Materials.Honey.getFluid(50L)}, null, 500, 2, 0); + } + if (ItemList.FR_Bee_Queen.get(1L, new Object[0]) != null) { + GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{ItemList.FR_Bee_Queen.getWildcard(1L, new Object[0])}, new ItemStack[]{ItemList.FR_Bee_Queen.getWithName(1L, "Scanned Queen", new Object[0])}, null, new FluidStack[]{Materials.Honey.getFluid(50L)}, null, 500, 2, 0); + } + if (ItemList.FR_Tree_Sapling.get(1L, new Object[0]) != null) { + GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{ItemList.FR_Tree_Sapling.getWildcard(1L, new Object[0])}, new ItemStack[]{ItemList.FR_Tree_Sapling.getWithName(1L, "Scanned Sapling", new Object[0])}, null, new FluidStack[]{Materials.Honey.getFluid(50L)}, null, 500, 2, 0); + } + if (ItemList.FR_Butterfly.get(1L, new Object[0]) != null) { + GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{ItemList.FR_Butterfly.getWildcard(1L, new Object[0])}, new ItemStack[]{ItemList.FR_Butterfly.getWithName(1L, "Scanned Butterfly", new Object[0])}, null, new FluidStack[]{Materials.Honey.getFluid(50L)}, null, 500, 2, 0); + } + if (ItemList.FR_Larvae.get(1L, new Object[0]) != null) { + GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{ItemList.FR_Larvae.getWildcard(1L, new Object[0])}, new ItemStack[]{ItemList.FR_Larvae.getWithName(1L, "Scanned Larvae", new Object[0])}, null, new FluidStack[]{Materials.Honey.getFluid(50L)}, null, 500, 2, 0); + } + if (ItemList.FR_Serum.get(1L, new Object[0]) != null) { + GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{ItemList.FR_Serum.getWildcard(1L, new Object[0])}, new ItemStack[]{ItemList.FR_Serum.getWithName(1L, "Scanned Serum", new Object[0])}, null, new FluidStack[]{Materials.Honey.getFluid(50L)}, null, 500, 2, 0); + } + if (ItemList.FR_Caterpillar.get(1L, new Object[0]) != null) { + GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{ItemList.FR_Caterpillar.getWildcard(1L, new Object[0])}, new ItemStack[]{ItemList.FR_Caterpillar.getWithName(1L, "Scanned Caterpillar", new Object[0])}, null, new FluidStack[]{Materials.Honey.getFluid(50L)}, null, 500, 2, 0); + } + if (ItemList.FR_PollenFertile.get(1L, new Object[0]) != null) { + GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{ItemList.FR_PollenFertile.getWildcard(1L, new Object[0])}, new ItemStack[]{ItemList.FR_PollenFertile.getWithName(1L, "Scanned Pollen", new Object[0])}, null, new FluidStack[]{Materials.Honey.getFluid(50L)}, null, 500, 2, 0); + } + if (ItemList.IC2_Crop_Seeds.get(1L, new Object[0]) != null) { + GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{ItemList.IC2_Crop_Seeds.getWildcard(1L, new Object[0])}, new ItemStack[]{ItemList.IC2_Crop_Seeds.getWithName(1L, "Scanned Seeds", new Object[0])}, null, null, null, 160, 8, 0); + } + GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{new ItemStack(Items.written_book, 1, 32767)}, new ItemStack[]{ItemList.Tool_DataStick.getWithName(1L, "Scanned Book Data", new Object[0])}, ItemList.Tool_DataStick.getWithName(1L, "Stick to save it to", new Object[0]), null, null, 128, 32, 0); + GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{new ItemStack(Items.filled_map, 1, 32767)}, new ItemStack[]{ItemList.Tool_DataStick.getWithName(1L, "Scanned Map Data", new Object[0])}, ItemList.Tool_DataStick.getWithName(1L, "Stick to save it to", new Object[0]), null, null, 128, 32, 0); + GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{ItemList.Tool_DataOrb.getWithName(1L, "Orb to overwrite", new Object[0])}, new ItemStack[]{ItemList.Tool_DataOrb.getWithName(1L, "Copy of the Orb", new Object[0])}, ItemList.Tool_DataOrb.getWithName(0L, "Orb to copy", new Object[0]), null, null, 512, 32, 0); + GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{ItemList.Tool_DataStick.getWithName(1L, "Stick to overwrite", new Object[0])}, new ItemStack[]{ItemList.Tool_DataStick.getWithName(1L, "Copy of the Stick", new Object[0])}, ItemList.Tool_DataStick.getWithName(0L, "Stick to copy", new Object[0]), null, null, 128, 32, 0); + for (Materials tMaterial : Materials.VALUES) { + if ((tMaterial.mElement != null) && (!tMaterial.mElement.mIsIsotope) && (tMaterial != Materials.Magic) && (tMaterial.getMass() > 0L)) { + ItemStack tOutput = ItemList.Tool_DataOrb.get(1L, new Object[0]); + Behaviour_DataOrb.setDataTitle(tOutput, "Elemental-Scan"); + Behaviour_DataOrb.setDataName(tOutput, tMaterial.mElement.name()); + ItemStack tInput = GT_OreDictUnificator.get(OrePrefixes.dust, tMaterial, 1L); + if (tInput != null) { + GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{tInput}, new ItemStack[]{tOutput}, ItemList.Tool_DataOrb.get(1L, new Object[0]), null, null, (int) (tMaterial.getMass() * 8192L), 32, 0); + GT_Recipe.GT_Recipe_Map.sRepicatorFakeRecipes.addFakeRecipe(false, null, new ItemStack[]{tInput}, new ItemStack[]{tOutput}, new FluidStack[]{Materials.UUMatter.getFluid(tMaterial.getMass())}, null, (int) (tMaterial.getMass() * 512L), 32, 0); + } + tInput = GT_OreDictUnificator.get(OrePrefixes.cell, tMaterial, 1L); + if (tInput != null) { + GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{tInput}, new ItemStack[]{tOutput}, ItemList.Tool_DataOrb.get(1L, new Object[0]), null, null, (int) (tMaterial.getMass() * 8192L), 32, 0); + GT_Recipe.GT_Recipe_Map.sRepicatorFakeRecipes.addFakeRecipe(false, null, new ItemStack[]{tInput}, new ItemStack[]{tOutput}, new FluidStack[]{Materials.UUMatter.getFluid(tMaterial.getMass())}, null, (int) (tMaterial.getMass() * 512L), 32, 0); + } + } + } + GT_Recipe.GT_Recipe_Map.sRockBreakerFakeRecipes.addFakeRecipe(false, new ItemStack[]{ItemList.Display_ITS_FREE.getWithName(0L, "Place Lava on Side", new Object[0])}, new ItemStack[]{new ItemStack(Blocks.cobblestone, 1)}, null, null, null, 16, 32, 0); + GT_Recipe.GT_Recipe_Map.sRockBreakerFakeRecipes.addFakeRecipe(false, new ItemStack[]{ItemList.Display_ITS_FREE.getWithName(0L, "Place Lava on Top", new Object[0])}, new ItemStack[]{new ItemStack(Blocks.stone, 1)}, null, null, null, 16, 32, 0); + GT_Recipe.GT_Recipe_Map.sRockBreakerFakeRecipes.addFakeRecipe(false, new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L)}, new ItemStack[]{new ItemStack(Blocks.obsidian, 1)}, null, null, null, 128, 32, 0); + for (Iterator i$ = GT_ModHandler.getMaceratorRecipeList().entrySet().iterator(); i$.hasNext(); ) { + Entry tRecipe = (Map.Entry) i$.next(); + if (((RecipeOutput) tRecipe.getValue()).items.size() > 0) { + for (ItemStack tStack : ((IRecipeInput) tRecipe.getKey()).getInputs()) { + if (GT_Utility.isStackValid(tStack)) { + GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.addFakeRecipe(true, new ItemStack[]{GT_Utility.copyAmount(((IRecipeInput) tRecipe.getKey()).getAmount(), new Object[]{tStack})}, new ItemStack[]{(ItemStack) ((RecipeOutput) tRecipe.getValue()).items.get(0)}, null, null, null, null, 400, 2, 0); + } + } + } + } + achievements = new GT_Achievements(); + Map.Entry tRecipe; + GT_Log.out.println("GT_Mod: Loading finished, deallocating temporary Init Variables."); + GregTech_API.sBeforeGTPreload = null; + GregTech_API.sAfterGTPreload = null; + GregTech_API.sBeforeGTLoad = null; + GregTech_API.sAfterGTLoad = null; + GregTech_API.sBeforeGTPostload = null; + GregTech_API.sAfterGTPostload = null; + } + + @Mod.EventHandler + public void onServerStarting(FMLServerStartingEvent aEvent) { + for (Runnable tRunnable : GregTech_API.sBeforeGTServerstart) { + try { + tRunnable.run(); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } + gregtechproxy.onServerStarting(); + GT_Log.out.println("GT_Mod: Unificating outputs of all known Recipe Types."); + ArrayList tStacks = new ArrayList(10000); + GT_Log.out.println("GT_Mod: IC2 Machines"); + for (RecipeOutput tRecipe : ic2.api.recipe.Recipes.cannerBottle.getRecipes().values()) { + ItemStack tStack; + for (Iterator i$ = tRecipe.items.iterator(); i$.hasNext(); tStacks.add(tStack)) { + tStack = (ItemStack) i$.next(); + } + } + for (RecipeOutput tRecipe : ic2.api.recipe.Recipes.centrifuge.getRecipes().values()) { + ItemStack tStack; + for (Iterator i$ = tRecipe.items.iterator(); i$.hasNext(); tStacks.add(tStack)) { + tStack = (ItemStack) i$.next(); + } + } + for (RecipeOutput tRecipe : ic2.api.recipe.Recipes.compressor.getRecipes().values()) { + ItemStack tStack; + for (Iterator i$ = tRecipe.items.iterator(); i$.hasNext(); tStacks.add(tStack)) { + tStack = (ItemStack) i$.next(); + } + } + for (RecipeOutput tRecipe : ic2.api.recipe.Recipes.extractor.getRecipes().values()) { + ItemStack tStack; + for (Iterator i$ = tRecipe.items.iterator(); i$.hasNext(); tStacks.add(tStack)) { + tStack = (ItemStack) i$.next(); + } + } + for (RecipeOutput tRecipe : ic2.api.recipe.Recipes.macerator.getRecipes().values()) { + ItemStack tStack; + for (Iterator i$ = tRecipe.items.iterator(); i$.hasNext(); tStacks.add(tStack)) { + tStack = (ItemStack) i$.next(); + } + } + for (RecipeOutput tRecipe : ic2.api.recipe.Recipes.metalformerCutting.getRecipes().values()) { + ItemStack tStack; + for (Iterator i$ = tRecipe.items.iterator(); i$.hasNext(); tStacks.add(tStack)) { + tStack = (ItemStack) i$.next(); + } + } + for (RecipeOutput tRecipe : ic2.api.recipe.Recipes.metalformerExtruding.getRecipes().values()) { + ItemStack tStack; + for (Iterator i$ = tRecipe.items.iterator(); i$.hasNext(); tStacks.add(tStack)) { + tStack = (ItemStack) i$.next(); + } + } + for (RecipeOutput tRecipe : ic2.api.recipe.Recipes.metalformerRolling.getRecipes().values()) { + ItemStack tStack; + for (Iterator i$ = tRecipe.items.iterator(); i$.hasNext(); tStacks.add(tStack)) { + tStack = (ItemStack) i$.next(); + } + } + for (RecipeOutput tRecipe : ic2.api.recipe.Recipes.matterAmplifier.getRecipes().values()) { + ItemStack tStack; + for (Iterator i$ = tRecipe.items.iterator(); i$.hasNext(); tStacks.add(tStack)) { + tStack = (ItemStack) i$.next(); + } + } + for (RecipeOutput tRecipe : ic2.api.recipe.Recipes.oreWashing.getRecipes().values()) { + ItemStack tStack; + for (Iterator i$ = tRecipe.items.iterator(); i$.hasNext(); tStacks.add(tStack)) { + tStack = (ItemStack) i$.next(); + } + } + GT_Log.out.println("GT_Mod: Dungeon Loot"); + for (WeightedRandomChestContent tContent : ChestGenHooks.getInfo("dungeonChest").getItems(new Random())) { + tStacks.add(tContent.theItemId); + } + for (WeightedRandomChestContent tContent : ChestGenHooks.getInfo("bonusChest").getItems(new Random())) { + tStacks.add(tContent.theItemId); + } + for (WeightedRandomChestContent tContent : ChestGenHooks.getInfo("villageBlacksmith").getItems(new Random())) { + tStacks.add(tContent.theItemId); + } + for (WeightedRandomChestContent tContent : ChestGenHooks.getInfo("strongholdCrossing").getItems(new Random())) { + tStacks.add(tContent.theItemId); + } + for (WeightedRandomChestContent tContent : ChestGenHooks.getInfo("strongholdLibrary").getItems(new Random())) { + tStacks.add(tContent.theItemId); + } + for (WeightedRandomChestContent tContent : ChestGenHooks.getInfo("strongholdCorridor").getItems(new Random())) { + tStacks.add(tContent.theItemId); + } + for (WeightedRandomChestContent tContent : ChestGenHooks.getInfo("pyramidJungleDispenser").getItems(new Random())) { + tStacks.add(tContent.theItemId); + } + for (WeightedRandomChestContent tContent : ChestGenHooks.getInfo("pyramidJungleChest").getItems(new Random())) { + tStacks.add(tContent.theItemId); + } + for (WeightedRandomChestContent tContent : ChestGenHooks.getInfo("pyramidDesertyChest").getItems(new Random())) { + tStacks.add(tContent.theItemId); + } + for (WeightedRandomChestContent tContent : ChestGenHooks.getInfo("mineshaftCorridor").getItems(new Random())) { + tStacks.add(tContent.theItemId); + } + GT_Log.out.println("GT_Mod: Smelting"); + Object tStack; + for (Iterator i$ = FurnaceRecipes.smelting().getSmeltingList().values().iterator(); i$.hasNext(); tStacks.add((ItemStack) tStack)) { + tStack = i$.next(); + } + if (gregtechproxy.mCraftingUnification) { + GT_Log.out.println("GT_Mod: Crafting Recipes"); + for (Object tRecipe : CraftingManager.getInstance().getRecipeList()) { + if ((tRecipe instanceof IRecipe)) { + tStacks.add(((IRecipe) tRecipe).getRecipeOutput()); + } + } + } + for (ItemStack tOutput : tStacks) { + if (gregtechproxy.mRegisteredOres.contains(tOutput)) { + FMLLog.severe("GT-ERR-01: @ " + tOutput.getUnlocalizedName() + " " + tOutput.getDisplayName(), new Object[0]); + FMLLog.severe("A Recipe used an OreDict Item as Output directly, without copying it before!!! This is a typical CallByReference/CallByValue Error", new Object[0]); + FMLLog.severe("Said Item will be renamed to make the invalid Recipe visible, so that you can report it properly.", new Object[0]); + FMLLog.severe("Please check all Recipes outputting this Item, and report the Recipes to their Owner.", new Object[0]); + FMLLog.severe("The Owner of the ==>RECIPE<==, NOT the Owner of the Item, which has been mentioned above!!!", new Object[0]); + FMLLog.severe("And ONLY Recipes which are ==>OUTPUTTING<== the Item, sorry but I don't want failed Bug Reports.", new Object[0]); + FMLLog.severe("GregTech just reports this Error to you, so you can report it to the Mod causing the Problem.", new Object[0]); + FMLLog.severe("Even though I make that Bug visible, I can not and will not fix that for you, that's for the causing Mod to fix.", new Object[0]); + FMLLog.severe("And speaking of failed Reports:", new Object[0]); + FMLLog.severe("Both IC2 and GregTech CANNOT be the CAUSE of this Problem, so don't report it to either of them.", new Object[0]); + FMLLog.severe("I REPEAT, BOTH, IC2 and GregTech CANNOT be the source of THIS BUG. NO MATTER WHAT.", new Object[0]); + FMLLog.severe("Asking in the IC2 Forums, which Mod is causing that, won't help anyone, since it is not possible to determine, which Mod it is.", new Object[0]); + FMLLog.severe("If it would be possible, then I would have had added the Mod which is causing it to the Message already. But it is not possible.", new Object[0]); + FMLLog.severe("Sorry, but this Error is serious enough to justify this Wall-O-Text and the partially allcapsed Language.", new Object[0]); + FMLLog.severe("Also it is a Ban Reason on the IC2-Forums to post this seriously.", new Object[0]); + tOutput.setStackDisplayName("ERROR! PLEASE CHECK YOUR LOG FOR 'GT-ERR-01'!"); + } else { + GT_OreDictUnificator.setStack(tOutput); + } + } + GT_Log.out.println("GT_Mod: ServerStarting-Phase finished!"); + GT_Log.ore.println("GT_Mod: ServerStarting-Phase finished!"); + for (Runnable tRunnable : GregTech_API.sAfterGTServerstart) { + try { + tRunnable.run(); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } + } + + @Mod.EventHandler + public void onServerStarted(FMLServerStartedEvent aEvent) { + gregtechproxy.onServerStarted(); + } + + @Mod.EventHandler + public void onIDChangingEvent(FMLModIdMappingEvent aEvent) { + GT_Utility.reInit(); + GT_Recipe.reInit(); + for (Iterator i$ = GregTech_API.sItemStackMappings.iterator(); i$.hasNext(); ) { + Map tMap = (Map) i$.next(); + try { + GT_Utility.reMap(tMap); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } + + } // public void onIDChangingEvent(FMLModIdMappingEvent aEvent) // { // GT_Utility.reInit(); @@ -990,115 +843,113 @@ public void onIDChangingEvent(FMLModIdMappingEvent aEvent) // tMap = (Map)i$.next(); // } // } - - @Mod.EventHandler - public void onServerStopping(FMLServerStoppingEvent aEvent) - { - for (Runnable tRunnable : GregTech_API.sBeforeGTServerstop) { - try - { - tRunnable.run(); - } - catch (Throwable e) - { - e.printStackTrace(GT_Log.err); - } - } - gregtechproxy.onServerStopping(); - try - { - if ((GT_Values.D1) || (GT_Log.out != System.out)) - { - GT_Log.out.println("*"); - GT_Log.out.println("Printing List of all registered Objects inside the OreDictionary, now with free extra Sorting:"); - GT_Log.out.println("*");GT_Log.out.println("*");GT_Log.out.println("*"); - - String[] tList = OreDictionary.getOreNames(); - Arrays.sort(tList); - for (String tOreName : tList) - { - int tAmount = OreDictionary.getOres(tOreName).size(); - if (tAmount > 0) { - GT_Log.out.println((tAmount < 10 ? " " : "") + tAmount + "x " + tOreName); - } + + @Mod.EventHandler + public void onServerStopping(FMLServerStoppingEvent aEvent) { + for (Runnable tRunnable : GregTech_API.sBeforeGTServerstop) { + try { + tRunnable.run(); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } } - GT_Log.out.println("*"); - GT_Log.out.println("Printing List of all registered Objects inside the Fluid Registry, now with free extra Sorting:"); - GT_Log.out.println("*");GT_Log.out.println("*");GT_Log.out.println("*"); - - tList = (String[])FluidRegistry.getRegisteredFluids().keySet().toArray(new String[FluidRegistry.getRegisteredFluids().keySet().size()]); - Arrays.sort(tList); - for (String tFluidName : tList) { - GT_Log.out.println(tFluidName); + gregtechproxy.onServerStopping(); + try { + if ((GT_Values.D1) || (GT_Log.out != System.out)) { + GT_Log.out.println("*"); + GT_Log.out.println("Printing List of all registered Objects inside the OreDictionary, now with free extra Sorting:"); + GT_Log.out.println("*"); + GT_Log.out.println("*"); + GT_Log.out.println("*"); + + String[] tList = OreDictionary.getOreNames(); + Arrays.sort(tList); + for (String tOreName : tList) { + int tAmount = OreDictionary.getOres(tOreName).size(); + if (tAmount > 0) { + GT_Log.out.println((tAmount < 10 ? " " : "") + tAmount + "x " + tOreName); + } + } + GT_Log.out.println("*"); + GT_Log.out.println("Printing List of all registered Objects inside the Fluid Registry, now with free extra Sorting:"); + GT_Log.out.println("*"); + GT_Log.out.println("*"); + GT_Log.out.println("*"); + + tList = (String[]) FluidRegistry.getRegisteredFluids().keySet().toArray(new String[FluidRegistry.getRegisteredFluids().keySet().size()]); + Arrays.sort(tList); + for (String tFluidName : tList) { + GT_Log.out.println(tFluidName); + } + GT_Log.out.println("*"); + GT_Log.out.println("*"); + GT_Log.out.println("*"); + GT_Log.out.println("Outputting all the Names inside the Biomeslist"); + GT_Log.out.println("*"); + GT_Log.out.println("*"); + GT_Log.out.println("*"); + for (int i = 0; i < BiomeGenBase.getBiomeGenArray().length; i++) { + if (BiomeGenBase.getBiomeGenArray()[i] != null) { + GT_Log.out.println(BiomeGenBase.getBiomeGenArray()[i].biomeID + " = " + BiomeGenBase.getBiomeGenArray()[i].biomeName); + } + } + GT_Log.out.println("*"); + GT_Log.out.println("*"); + GT_Log.out.println("*"); + GT_Log.out.println("Printing List of generatable Materials"); + GT_Log.out.println("*"); + GT_Log.out.println("*"); + GT_Log.out.println("*"); + for (int i = 0; i < GregTech_API.sGeneratedMaterials.length; i++) { + if (GregTech_API.sGeneratedMaterials[i] == null) { + GT_Log.out.println("Index " + i + ":" + null); + } else { + GT_Log.out.println("Index " + i + ":" + GregTech_API.sGeneratedMaterials[i]); + } + } + GT_Log.out.println("*"); + GT_Log.out.println("*"); + GT_Log.out.println("*"); + GT_Log.out.println("END GregTech-Debug"); + GT_Log.out.println("*"); + GT_Log.out.println("*"); + GT_Log.out.println("*"); + } + } catch (Throwable e) { + if (GT_Values.D1) { + e.printStackTrace(GT_Log.err); + } } - GT_Log.out.println("*");GT_Log.out.println("*");GT_Log.out.println("*"); - GT_Log.out.println("Outputting all the Names inside the Biomeslist"); - GT_Log.out.println("*");GT_Log.out.println("*");GT_Log.out.println("*"); - for (int i = 0; i < BiomeGenBase.getBiomeGenArray().length; i++) { - if (BiomeGenBase.getBiomeGenArray()[i] != null) { - GT_Log.out.println(BiomeGenBase.getBiomeGenArray()[i].biomeID + " = " + BiomeGenBase.getBiomeGenArray()[i].biomeName); - } + for (Runnable tRunnable : GregTech_API.sAfterGTServerstop) { + try { + tRunnable.run(); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } } - GT_Log.out.println("*");GT_Log.out.println("*");GT_Log.out.println("*"); - GT_Log.out.println("Printing List of generatable Materials"); - GT_Log.out.println("*");GT_Log.out.println("*");GT_Log.out.println("*"); - for (int i = 0; i < GregTech_API.sGeneratedMaterials.length; i++) { - if (GregTech_API.sGeneratedMaterials[i] == null) { - GT_Log.out.println("Index " + i + ":" + null); - } else { - GT_Log.out.println("Index " + i + ":" + GregTech_API.sGeneratedMaterials[i]); - } - } - GT_Log.out.println("*");GT_Log.out.println("*");GT_Log.out.println("*"); - GT_Log.out.println("END GregTech-Debug"); - GT_Log.out.println("*");GT_Log.out.println("*");GT_Log.out.println("*"); - } } - catch (Throwable e) - { - if (GT_Values.D1) { - e.printStackTrace(GT_Log.err); - } + + public boolean isServerSide() { + return gregtechproxy.isServerSide(); } - for (Runnable tRunnable : GregTech_API.sAfterGTServerstop) { - try - { - tRunnable.run(); - } - catch (Throwable e) - { - e.printStackTrace(GT_Log.err); - } + + public boolean isClientSide() { + return gregtechproxy.isClientSide(); + } + + public boolean isBukkitSide() { + return gregtechproxy.isBukkitSide(); + } + + public EntityPlayer getThePlayer() { + return gregtechproxy.getThePlayer(); + } + + public int addArmor(String aArmorPrefix) { + return gregtechproxy.addArmor(aArmorPrefix); + } + + public void doSonictronSound(ItemStack aStack, World aWorld, double aX, double aY, double aZ) { + gregtechproxy.doSonictronSound(aStack, aWorld, aX, aY, aZ); } - } - - public boolean isServerSide() - { - return gregtechproxy.isServerSide(); - } - - public boolean isClientSide() - { - return gregtechproxy.isClientSide(); - } - - public boolean isBukkitSide() - { - return gregtechproxy.isBukkitSide(); - } - - public EntityPlayer getThePlayer() - { - return gregtechproxy.getThePlayer(); - } - - public int addArmor(String aArmorPrefix) - { - return gregtechproxy.addArmor(aArmorPrefix); - } - - public void doSonictronSound(ItemStack aStack, World aWorld, double aX, double aY, double aZ) - { - gregtechproxy.doSonictronSound(aStack, aWorld, aX, aY, aZ); - } } diff --git a/src/main/java/gregtech/api/GregTech_API.java b/src/main/java/gregtech/api/GregTech_API.java index 25583dab..5bbb4122 100644 --- a/src/main/java/gregtech/api/GregTech_API.java +++ b/src/main/java/gregtech/api/GregTech_API.java @@ -1,6 +1,7 @@ package gregtech.api; -import static gregtech.api.enums.GT_Values.*; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; import gregtech.api.interfaces.IDamagableItem; @@ -19,9 +20,6 @@ import gregtech.api.objects.GT_ItemStack; import gregtech.api.threads.GT_Runnable_MachineBlockUpdate; import gregtech.api.util.*; import gregtech.api.world.GT_Worldgen; - -import java.util.*; - import net.minecraft.block.Block; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; @@ -29,538 +27,567 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.fluids.Fluid; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; + +import java.util.*; + +import static gregtech.api.enums.GT_Values.*; /** * Please do not include this File in your Mod-download as it ruins compatiblity, like with the IC2-API * You may just copy those Functions into your Code, or better call them via reflection. - * + *

* The whole API is the basic construct of my Mod. Everything is dependent on it. * I change things quite often so please don't include any File inside your Mod, even if it is an Interface. * Since some Authors were stupid enough to break this simple Rule, I added Version checks to enforce it. - * + *

* In these Folders are many useful Functions. You can use them via reflection if you want. * I know not everything is compilable due to API's of other Mods, but these are easy to fix in your Setup. - * + *

* You can use this to learn about Modding, but I would recommend simpler Mods. * You may even copypaste Code from these API-Files into your Mod, as I have nothing against that, but you should look exactly at what you are copying. - * + * * @author Gregorius Techneticies */ public class GregTech_API { - /** For the API Version check */ - public static volatile int VERSION = 508; - - @Deprecated - public static IGT_RecipeAdder sRecipeAdder; - - @Deprecated - public static final long MATERIAL_UNIT = M, FLUID_MATERIAL_UNIT = L; - - /** Used to register Aspects to ThaumCraft, this Object might be null if ThaumCraft isn't installed */ - public static IThaumcraftCompat sThaumcraftCompat; - - /** These Lists are getting executed at their respective timings. Useful if you have to do things right before/after I do them, without having to control the load order. Add your "Commands" in the Constructor or in a static Code Block of your Mods Main Class. These are not Threaded, I just use a native Java Interface for their execution. Implement just the Method run() and everything should work */ - public static List sBeforeGTPreload = new ArrayList(), sAfterGTPreload = new ArrayList(), sBeforeGTLoad = new ArrayList(), sAfterGTLoad = new ArrayList(), sBeforeGTPostload = new ArrayList(), sAfterGTPostload = new ArrayList(), sBeforeGTServerstart = new ArrayList(), sAfterGTServerstart = new ArrayList(), sBeforeGTServerstop = new ArrayList(), sAfterGTServerstop = new ArrayList(), sGTBlockIconload = new ArrayList(), sGTItemIconload = new ArrayList(); - - /** Fixes the HashMap Mappings for ItemStacks once the Server started */ - public static final Collection> sItemStackMappings = new ArrayList>(); - public static final Collection> sFluidMappings = new ArrayList>(); - - /** The Icon Registers from Blocks and Items. They will get set right before the corresponding Icon Load Phase as executed in the Runnable List above. */ - @SideOnly(Side.CLIENT) - public static IIconRegister sBlockIcons, sItemIcons; - - /** The Configuration Objects */ - public static GT_Config sRecipeFile = null, sMachineFile = null, sWorldgenFile = null, sMaterialProperties = null, sUnification = null, sSpecialFile = null, sClientDataFile, sOPStuff = null; - - /** The MetaTileEntity-ID-List-Length */ - public static final short MAXIMUM_METATILE_IDS = Short.MAX_VALUE - 1; - - /** My Creative Tab */ - public static final CreativeTabs TAB_GREGTECH = new GT_CreativeTab("Main", "Main"), TAB_GREGTECH_MATERIALS = new GT_CreativeTab("Materials", "Materials"), TAB_GREGTECH_ORES = new GT_CreativeTab("Ores", "Ores"); - - public static int TICKS_FOR_LAG_AVERAGING = 25, MILLISECOND_THRESHOLD_UNTIL_LAG_WARNING = 100; - - /** - * A List of all registered MetaTileEntities - * - * 0 - 1199 are used by GregTech. - * 1200 - 2047 are used for GregTech Cables. - * 2048 - 2559 are reserved for OvermindDL. - * 2560 - 3071 are reserved for Immibis. - * 3072 - 3583 are reserved for LinusPhoenix. - * 3584 - 4095 are reserved for BloodyAsp. - * 4096 - 5095 are used for GregTech Frames. - * 5096 - 6099 are used for GregTech Pipes. - * 6100 - 8191 are used for GregTech Decoration Blocks. - * 8192 - 8703 are reserved for ZL123. - * 8704 - 9215 are reserved for Mr10Movie. - * 9216 - 9727 are used for GregTech Automation Machines. - * 9728 - 10239 are reserved for 28Smiles. - * 10240 - 10751 are reserved for VirMan. - * 10752 - 11263 are reserved for the next one who asks me. - * 9728 - 32766 are currently free. - * - * Contact me if you need a free ID-Range, which doesn't conflict with other Addons. - * You could make an ID-Config, but we all know, what "stupid" customers think about conflicting ID's - */ - public static final IMetaTileEntity[] METATILEENTITIES = new IMetaTileEntity[MAXIMUM_METATILE_IDS]; - - /** Initialized by the Block creation. */ - public static Block sBlockMachines; - public static Block sBlockOres1; - public static Block sBlockGranites, sBlockConcretes; - public static Block sBlockCasings1, sBlockCasings2, sBlockCasings3, sBlockCasings4; - - /** Getting assigned by the Config */ - public static boolean sTimber = false, sDrinksAlwaysDrinkable = false, sMultiThreadedSounds = false, sDoShowAllItemsInCreative = false, sColoredGUI = true, sConstantEnergy = true, sMachineExplosions = true, sMachineFlammable = true, sMachineNonWrenchExplosions = true, sMachineRainExplosions = true, sMachineThunderExplosions = true, sMachineFireExplosions = true, sMachineWireFire = true; - public static boolean mOutputRF =false; - public static boolean mInputRF =false; - public static boolean meIOLoaded =false; - public static int mEUtoRF = 360; - public static int mRFtoEU = 20; - public static boolean mRFExplosions = true; - - /** Getting assigned by the Mod loading */ - public static boolean sUnificationEntriesRegistered = false, sPreloadStarted = false, sPreloadFinished = false, sLoadStarted = false, sLoadFinished = false, sPostloadStarted = false, sPostloadFinished = false; - - /** The Icon List for Covers */ - public static final Map sCovers = new HashMap(); - - /** The List of Cover Behaviors for the Covers */ - public static final Map sCoverBehaviors = new HashMap(); - - /** The List of Circuit Behaviors for the Redstone Circuit Block */ - public static final Map sCircuitryBehaviors = new HashMap(); - - /** The List of Blocks, which can conduct Machine Block Updates */ + @Deprecated + public static final long MATERIAL_UNIT = M, FLUID_MATERIAL_UNIT = L; + /** + * Fixes the HashMap Mappings for ItemStacks once the Server started + */ + public static final Collection> sItemStackMappings = new ArrayList>(); + public static final Collection> sFluidMappings = new ArrayList>(); + /** + * The MetaTileEntity-ID-List-Length + */ + public static final short MAXIMUM_METATILE_IDS = Short.MAX_VALUE - 1; + /** + * My Creative Tab + */ + public static final CreativeTabs TAB_GREGTECH = new GT_CreativeTab("Main", "Main"), TAB_GREGTECH_MATERIALS = new GT_CreativeTab("Materials", "Materials"), TAB_GREGTECH_ORES = new GT_CreativeTab("Ores", "Ores"); + /** + * A List of all registered MetaTileEntities + *

+ * 0 - 1199 are used by GregTech. + * 1200 - 2047 are used for GregTech Cables. + * 2048 - 2559 are reserved for OvermindDL. + * 2560 - 3071 are reserved for Immibis. + * 3072 - 3583 are reserved for LinusPhoenix. + * 3584 - 4095 are reserved for BloodyAsp. + * 4096 - 5095 are used for GregTech Frames. + * 5096 - 6099 are used for GregTech Pipes. + * 6100 - 8191 are used for GregTech Decoration Blocks. + * 8192 - 8703 are reserved for ZL123. + * 8704 - 9215 are reserved for Mr10Movie. + * 9216 - 9727 are used for GregTech Automation Machines. + * 9728 - 10239 are reserved for 28Smiles. + * 10240 - 10751 are reserved for VirMan. + * 10752 - 11263 are reserved for the next one who asks me. + * 9728 - 32766 are currently free. + *

+ * Contact me if you need a free ID-Range, which doesn't conflict with other Addons. + * You could make an ID-Config, but we all know, what "stupid" customers think about conflicting ID's + */ + public static final IMetaTileEntity[] METATILEENTITIES = new IMetaTileEntity[MAXIMUM_METATILE_IDS]; + /** + * The Icon List for Covers + */ + public static final Map sCovers = new HashMap(); + /** + * The List of Cover Behaviors for the Covers + */ + public static final Map sCoverBehaviors = new HashMap(); + /** + * The List of Circuit Behaviors for the Redstone Circuit Block + */ + public static final Map sCircuitryBehaviors = new HashMap(); + /** + * The List of Blocks, which can conduct Machine Block Updates + */ public static final Map sMachineIDs = new HashMap(); - - /** The Redstone Frequencies */ + /** + * The Redstone Frequencies + */ public static final Map sWirelessRedstone = new HashMap(); - - /** The IDSU Frequencies */ - public static final Map sIDSUList = new HashMap(); - - /** A List of all Books, which were created using @GT_Utility.getWrittenBook the original Title is the Key Value */ - public static final Map sBookList = new HashMap(); - - /** The List of all Sounds used in GT, indices are in the static Block at the bottom */ - public static final Map sSoundList = new HashMap(); - - /** The List of Tools, which can be used. Accepts regular damageable Items and Electric Items */ - public static final GT_HashSet sToolList = new GT_HashSet(), sCrowbarList = new GT_HashSet(), sScrewdriverList = new GT_HashSet(), sWrenchList = new GT_HashSet(), sSoftHammerList = new GT_HashSet(), sHardHammerList = new GT_HashSet(), sSolderingToolList = new GT_HashSet(), sSolderingMetalList = new GT_HashSet(); - /** The List of Hazmat Armors */ - public static final GT_HashSet sGasHazmatList = new GT_HashSet(), sBioHazmatList = new GT_HashSet(), sFrostHazmatList = new GT_HashSet(), sHeatHazmatList = new GT_HashSet(), sRadioHazmatList = new GT_HashSet(), sElectroHazmatList = new GT_HashSet(); - - /** - * The List of Dimensions, which are Whitelisted for the Teleporter. This list should not contain other Planets. - * Mystcraft Dimensions and other Dimensional Things should be allowed. - * Mystcraft and Twilight Forest are automatically considered a Dimension, without being in this List. - */ - public static final Collection sDimensionalList = new HashSet(); - - /** Lists of all the active World generation Features, these are getting Initialized in Postload! */ - public static final List sWorldgenList = new ArrayList(); - - /** A List containing all the Materials, which are somehow in use by GT and therefor receive a specific Set of Items. */ - public static final Materials[] sGeneratedMaterials = new Materials[1000]; - - /** - * You want OreDict-Unification for YOUR Mod/Addon, when GregTech is installed? This Function is especially for YOU. - * Call this Function after the load-Phase, as I register the the most of the Unification at that Phase (Redpowers Storageblocks are registered at postload). - * A recommended use of this Function is inside your Recipe-System itself (if you have one), as the unification then makes 100% sure, that every added non-unificated Output gets automatically unificated. - * - * I will personally make sure, that only common prefixes of Ores get registered at the Unificator, as of now there are: - * pulp, dust, dustSmall, ingot, nugget, gem, ore and block - * If another Mod-Author messes these up, then it's not my fault and it's especially not your fault. As these are commonly used prefixes. - * - * This Unificator-API-Function uses the same Functions I use, for unificating Items. So if there is something messed up (very unlikely), then everything is messed up. - * - * You shouldn't use this to unificate the Inputs of your Recipes, this is only meant for the Outputs. - * - * @param aOreStack the Stack you want to get unificated. It is stackSize Sensitive. - * @return Either an unificated Stack or the stack you toss in, but it should never be null, unless you throw a Nullpointer into it. - */ - public static ItemStack getUnificatedOreDictStack(ItemStack aOreStack) { - if (!GregTech_API.sPreloadFinished) GT_Log.err.println("GregTech_API ERROR: " + aOreStack.getItem() + "." + aOreStack.getItemDamage() + " - OreDict Unification Entries are not registered now, please call it in the postload phase."); - return GT_OreDictUnificator.get(true, aOreStack); - } - - /** - * Causes a Machineblock Update - * This update will cause surrounding MultiBlock Machines to update their Configuration. - * You should call this Function in @Block.breakBlock and in @Block.onBlockAdded of your Machine. - * @param aWorld is being the World - * @param aX is the X-Coord of the update causing Block - * @param aY is the Y-Coord of the update causing Block - * @param aZ is the Z-Coord of the update causing Block - */ - public static boolean causeMachineUpdate(World aWorld, int aX, int aY, int aZ) { - if (!aWorld.isRemote) new Thread(new GT_Runnable_MachineBlockUpdate(aWorld, aX, aY, aZ), "Machine Block Updating").start(); - return true; - } - - /** - * Adds a Multi-Machine Block, like my Machine Casings for example. - * You should call @causeMachineUpdate in @Block.breakBlock and in @Block.onBlockAdded of your registered Block. - * You don't need to register TileEntities which implement @IMachineBlockUpdateable - * @param aID the ID of your Block - * @param aMeta the Metadata of the Blocks as Bitmask! -1 or ~0 for all Metavalues - */ - public static boolean registerMachineBlock(Block aBlock, int aMeta) { - if (GT_Utility.isBlockInvalid(aBlock)) return false; - if (GregTech_API.sThaumcraftCompat != null) GregTech_API.sThaumcraftCompat.registerPortholeBlacklistedBlock(aBlock); - sMachineIDs.put(aBlock, aMeta); - return true; - } - - /** - * Like above but with boolean Parameters instead of a BitMask - */ - public static boolean registerMachineBlock(Block aBlock, boolean... aMeta) { - if (GT_Utility.isBlockInvalid(aBlock) || aMeta == null || aMeta.length == 0) return false; - if (GregTech_API.sThaumcraftCompat != null) GregTech_API.sThaumcraftCompat.registerPortholeBlacklistedBlock(aBlock); - int rMeta = 0; - for (byte i = 0; i < aMeta.length && i < 16; i++) if (aMeta[i]) rMeta |= B[i]; - sMachineIDs.put(aBlock, rMeta); - return true; - } - - /** - * if this Block is a Machine Update Conducting Block - */ - public static boolean isMachineBlock(Block aBlock, int aMeta) { - if (GT_Utility.isBlockInvalid(aBlock)) return false; - return (sMachineIDs.containsKey(aBlock) && (sMachineIDs.get(aBlock) & B[aMeta]) != 0); - } - - /** - * Creates a new Coolant Cell Item for your Nuclear Reactor - */ - public static Item constructCoolantCellItem(String aUnlocalized, String aEnglish, int aMaxStore) { - try { - return new GT_CoolantCellIC_Item(aUnlocalized, aEnglish, aMaxStore); -// return (Item)Class.forName("gregtech.api.items.GT_CoolantCellIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxStore); - } catch(Throwable e) {/*Do nothing*/} - try { - return new GT_CoolantCell_Item(aUnlocalized, aEnglish, aMaxStore); -// return (Item)Class.forName("gregtech.api.items.GT_CoolantCell_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxStore); - } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Generic_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", false); - } - - /** - * Creates a new Energy Armor Item - */ - public static Item constructElectricArmorItem(String aUnlocalized, String aEnglish, int aCharge, int aTransfer, int aTier, int aDamageEnergyCost, int aSpecials, double aArmorAbsorbtionPercentage, boolean aChargeProvider, int aType, int aArmorIndex) { - try { - return (Item)Class.forName("gregtechmod.api.items.GT_EnergyArmorIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aCharge, aTransfer, aTier, aDamageEnergyCost, aSpecials, aArmorAbsorbtionPercentage, aChargeProvider, aType, aArmorIndex); - } catch(Throwable e) {/*Do nothing*/} - try { - return (Item)Class.forName("gregtechmod.api.items.GT_EnergyArmor_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aCharge, aTransfer, aTier, aDamageEnergyCost, aSpecials, aArmorAbsorbtionPercentage, aChargeProvider, aType, aArmorIndex); - } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Generic_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", false); - } - - /** - * Creates a new Energy Battery Item - */ - public static Item constructElectricEnergyStorageItem(String aUnlocalized, String aEnglish, int aCharge, int aTransfer, int aTier, int aEmptyID, int aFullID) { - try { - return (Item)Class.forName("gregtechmod.api.items.GT_EnergyStoreIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aCharge, aTransfer, aTier, aEmptyID, aFullID); - } catch(Throwable e) {/*Do nothing*/} - try { - return (Item)Class.forName("gregtechmod.api.items.GT_EnergyStore_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aCharge, aTransfer, aTier, aEmptyID, aFullID); - } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Generic_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", false); - } - - /** - * Creates a new Hard Hammer Item - */ - public static GT_Tool_Item constructHardHammerItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage) { - try { - return (GT_Tool_Item)Class.forName("gregtechmod.api.items.GT_HardHammer_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage); - } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); - } - - /** - * Creates a new Crowbar Item - */ - public static GT_Tool_Item constructCrowbarItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage) { - try { - return (GT_Tool_Item)Class.forName("gregtechmod.api.items.GT_CrowbarRC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage); - } catch(Throwable e) {/*Do nothing*/} - try { - return (GT_Tool_Item)Class.forName("gregtechmod.api.items.GT_Crowbar_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage); - } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); - } - - /** - * Creates a new Wrench Item - */ - public static GT_Tool_Item constructWrenchItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage, int aDisChargedGTID) { - try { - return (GT_Tool_Item)Class.forName("gregtechmod.api.items.GT_Wrench_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aDisChargedGTID); - } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); - } - - /** - * Creates a new electric Screwdriver Item - */ - public static GT_Tool_Item constructElectricScrewdriverItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage, int aDisChargedGTID) { - try { - return (GT_Tool_Item)Class.forName("gregtechmod.api.items.GT_ScrewdriverIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aDisChargedGTID); - } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); - } - - /** - * Creates a new electric Wrench Item - */ - public static GT_Tool_Item constructElectricWrenchItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage, int aDisChargedGTID) { - try { - return (GT_Tool_Item)Class.forName("gregtechmod.api.items.GT_WrenchIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aDisChargedGTID); - } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); - } + /** + * The IDSU Frequencies + */ + public static final Map sIDSUList = new HashMap(); + /** + * A List of all Books, which were created using @GT_Utility.getWrittenBook the original Title is the Key Value + */ + public static final Map sBookList = new HashMap(); + /** + * The List of all Sounds used in GT, indices are in the static Block at the bottom + */ + public static final Map sSoundList = new HashMap(); + /** + * The List of Tools, which can be used. Accepts regular damageable Items and Electric Items + */ + public static final GT_HashSet sToolList = new GT_HashSet(), sCrowbarList = new GT_HashSet(), sScrewdriverList = new GT_HashSet(), sWrenchList = new GT_HashSet(), sSoftHammerList = new GT_HashSet(), sHardHammerList = new GT_HashSet(), sSolderingToolList = new GT_HashSet(), sSolderingMetalList = new GT_HashSet(); + /** + * The List of Hazmat Armors + */ + public static final GT_HashSet sGasHazmatList = new GT_HashSet(), sBioHazmatList = new GT_HashSet(), sFrostHazmatList = new GT_HashSet(), sHeatHazmatList = new GT_HashSet(), sRadioHazmatList = new GT_HashSet(), sElectroHazmatList = new GT_HashSet(); + /** + * The List of Dimensions, which are Whitelisted for the Teleporter. This list should not contain other Planets. + * Mystcraft Dimensions and other Dimensional Things should be allowed. + * Mystcraft and Twilight Forest are automatically considered a Dimension, without being in this List. + */ + public static final Collection sDimensionalList = new HashSet(); + /** + * Lists of all the active World generation Features, these are getting Initialized in Postload! + */ + public static final List sWorldgenList = new ArrayList(); + /** + * A List containing all the Materials, which are somehow in use by GT and therefor receive a specific Set of Items. + */ + public static final Materials[] sGeneratedMaterials = new Materials[1000]; + /** + * This is the generic Cover behavior. Used for the default Covers, which have no Behavior. + */ + public static final GT_CoverBehavior sDefaultBehavior = new GT_Cover_Default(), sNoBehavior = new GT_Cover_None(); + /** + * For the API Version check + */ + public static volatile int VERSION = 508; + @Deprecated + public static IGT_RecipeAdder sRecipeAdder; + /** + * Used to register Aspects to ThaumCraft, this Object might be null if ThaumCraft isn't installed + */ + public static IThaumcraftCompat sThaumcraftCompat; + /** + * These Lists are getting executed at their respective timings. Useful if you have to do things right before/after I do them, without having to control the load order. Add your "Commands" in the Constructor or in a static Code Block of your Mods Main Class. These are not Threaded, I just use a native Java Interface for their execution. Implement just the Method run() and everything should work + */ + public static List sBeforeGTPreload = new ArrayList(), sAfterGTPreload = new ArrayList(), sBeforeGTLoad = new ArrayList(), sAfterGTLoad = new ArrayList(), sBeforeGTPostload = new ArrayList(), sAfterGTPostload = new ArrayList(), sBeforeGTServerstart = new ArrayList(), sAfterGTServerstart = new ArrayList(), sBeforeGTServerstop = new ArrayList(), sAfterGTServerstop = new ArrayList(), sGTBlockIconload = new ArrayList(), sGTItemIconload = new ArrayList(); + /** + * The Icon Registers from Blocks and Items. They will get set right before the corresponding Icon Load Phase as executed in the Runnable List above. + */ + @SideOnly(Side.CLIENT) + public static IIconRegister sBlockIcons, sItemIcons; + /** + * The Configuration Objects + */ + public static GT_Config sRecipeFile = null, sMachineFile = null, sWorldgenFile = null, sMaterialProperties = null, sUnification = null, sSpecialFile = null, sClientDataFile, sOPStuff = null; + public static int TICKS_FOR_LAG_AVERAGING = 25, MILLISECOND_THRESHOLD_UNTIL_LAG_WARNING = 100; + /** + * Initialized by the Block creation. + */ + public static Block sBlockMachines; + public static Block sBlockOres1; + public static Block sBlockGranites, sBlockConcretes; + public static Block sBlockCasings1, sBlockCasings2, sBlockCasings3, sBlockCasings4; + /** + * Getting assigned by the Config + */ + public static boolean sTimber = false, sDrinksAlwaysDrinkable = false, sMultiThreadedSounds = false, sDoShowAllItemsInCreative = false, sColoredGUI = true, sConstantEnergy = true, sMachineExplosions = true, sMachineFlammable = true, sMachineNonWrenchExplosions = true, sMachineRainExplosions = true, sMachineThunderExplosions = true, sMachineFireExplosions = true, sMachineWireFire = true; + public static boolean mOutputRF = false; + public static boolean mInputRF = false; + public static boolean meIOLoaded = false; + public static int mEUtoRF = 360; + public static int mRFtoEU = 20; + public static boolean mRFExplosions = true; + /** + * Getting assigned by the Mod loading + */ + public static boolean sUnificationEntriesRegistered = false, sPreloadStarted = false, sPreloadFinished = false, sLoadStarted = false, sLoadFinished = false, sPostloadStarted = false, sPostloadFinished = false; + private static Class sBaseMetaTileEntityClass = null; - /** - * Creates a new electric Saw Item - */ - public static GT_Tool_Item constructElectricSawItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage, int aToolQuality, float aToolStrength, int aEnergyConsumptionPerBlockBreak, int aDisChargedGTID) { - try { - return (GT_Tool_Item)Class.forName("gregtechmod.api.items.GT_SawIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aToolQuality, aToolStrength, aEnergyConsumptionPerBlockBreak, aDisChargedGTID); - } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); - } - - /** - * Creates a new electric Drill Item - */ - public static GT_Tool_Item constructElectricDrillItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage, int aToolQuality, float aToolStrength, int aEnergyConsumptionPerBlockBreak, int aDisChargedGTID) { - try { - return (GT_Tool_Item)Class.forName("gregtechmod.api.items.GT_DrillIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aToolQuality, aToolStrength, aEnergyConsumptionPerBlockBreak, aDisChargedGTID); - } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); - } - - /** - * Creates a new electric Soldering Tool - */ - public static GT_Tool_Item constructElectricSolderingToolItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage, int aDisChargedGTID) { - try { - return (GT_Tool_Item)Class.forName("gregtechmod.api.items.GT_SolderingToolIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aDisChargedGTID); - } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); - } - - /** - * Creates a new empty electric Tool - */ - public static GT_Tool_Item constructEmptyElectricToolItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aChargedGTID) { - try { - return (GT_Tool_Item)Class.forName("gregtechmod.api.items.GT_EmptyToolIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aChargedGTID); - } catch(Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, 0, false); - } - - private static Class sBaseMetaTileEntityClass = null; - - /** - * This gives you a new BaseMetaTileEntity. As some Interfaces are not always loaded (Buildcraft, Univeral Electricity) I have to use Invocation at the Constructor of the BaseMetaTileEntity - */ - public static BaseMetaTileEntity constructBaseMetaTileEntity() { - if (sBaseMetaTileEntityClass == null) { - try { - return (BaseMetaTileEntity)(sBaseMetaTileEntityClass = BaseMetaTileEntity.class).newInstance(); - } catch(Throwable e) {/*Do nothing*/} - } - - try { - return (BaseMetaTileEntity)(sBaseMetaTileEntityClass.newInstance()); - } catch(Throwable e) { - GT_Log.err.println("GT_Mod: Fatal Error ocurred while initializing TileEntities, crashing Minecraft."); - e.printStackTrace(GT_Log.err); - throw new RuntimeException(e); - } - } - - public static void registerCover(ItemStack aStack, ITexture aCover, GT_CoverBehavior aBehavior) { - if (!sCovers.containsKey(new GT_ItemStack(aStack))) sCovers.put(new GT_ItemStack(aStack), aCover==null||!aCover.isValidTexture()?Textures.BlockIcons.ERROR_RENDERING[0]:aCover); - if (aBehavior != null) sCoverBehaviors.put(new GT_ItemStack(aStack), aBehavior); - } - - public static void registerCoverBehavior(ItemStack aStack, GT_CoverBehavior aBehavior) { - sCoverBehaviors.put(new GT_ItemStack(aStack), aBehavior==null?sDefaultBehavior:aBehavior); - } - - /** - * Registers multiple Cover Items. I use that for the OreDict Functionality. - * @param aBehavior can be null - */ - public static void registerCover(Collection aStackList, ITexture aCover, GT_CoverBehavior aBehavior) { - if (aCover.isValidTexture()) for (ItemStack tStack : aStackList) registerCover(tStack, aCover, aBehavior); - } - - /** - * This is the generic Cover behavior. Used for the default Covers, which have no Behavior. - */ - public static final GT_CoverBehavior sDefaultBehavior = new GT_Cover_Default(), sNoBehavior = new GT_Cover_None(); - - /** - * returns a Cover behavior, guaranteed to not return null after preload - */ - public static GT_CoverBehavior getCoverBehavior(ItemStack aStack) { - if (aStack == null || aStack.getItem() == null) return sNoBehavior; - GT_CoverBehavior rCover = sCoverBehaviors.get(new GT_ItemStack(aStack)); - if (rCover == null) return sDefaultBehavior; - return rCover; - } - - /** - * returns a Cover behavior, guaranteed to not return null - */ - public static GT_CoverBehavior getCoverBehavior(int aStack) { - if (aStack == 0) return sNoBehavior; - return getCoverBehavior(GT_Utility.intToStack(aStack)); - } - - /** - * Register a Wrench to be usable on GregTech Machines. - * The Wrench MUST have some kind of Durability unlike certain Buildcraft Wrenches. - * - * You need to register Tools in the Load Phase, because otherwise the Autodetection will assign a Tool Type in certain Cases during postload (When IToolWrench or similar Interfaces are implemented). - * - * ----- - * - * Returning true at isDamagable was a great Idea, KingLemming. Well played. - * Since the OmniWrench is just a Single-Item-Mod, people can choose if they want your infinite durability or not. So that's not really a Problem. - * I even have a new Config to autodisable most infinite BC Wrenches (but that one is turned off). - * - * One last Bug for you to fix: - * My Autoregistration detects Railcrafts Crowbars, Buildcrafts Wrenches and alike, due to their Interfaces. - * Guess what now became a Crowbar by accident. Try registering the Wrench at the load phase to prevent things like that from happening. - * Yes, I know that "You need to register Tools in the Load Phase"-Part wasn't there before this. Sorry about that. - */ - public static boolean registerWrench(ItemStack aTool) { - return registerTool(aTool, sWrenchList); - } - - /** - * Register a Crowbar to extract Covers from Machines - * Crowbars are NOT Wrenches btw. - * - * You need to register Tools in the Load Phase, because otherwise the Autodetection will assign a Tool Type in certain Cases during postload (When IToolWrench or similar Interfaces are implemented). - */ - public static boolean registerCrowbar(ItemStack aTool) { - return registerTool(aTool, sCrowbarList); - } - - /** - * Register a Screwdriver to interact directly with Machines and Covers - * Did I mention, that it is intentionally not possible to make a Multitool, which doesn't switch ItemID (like a Mode) all the time? - * - * You need to register Tools in the Load Phase, because otherwise the Autodetection will assign a Tool Type in certain Cases during postload (When IToolWrench or similar Interfaces are implemented). - */ - public static boolean registerScrewdriver(ItemStack aTool) { - return registerTool(aTool, sScrewdriverList); - } - - /** - * Register a Soft Hammer to interact with Machines - * - * You need to register Tools in the Load Phase, because otherwise the Autodetection will assign a Tool Type in certain Cases during postload (When IToolWrench or similar Interfaces are implemented). - */ - public static boolean registerSoftHammer(ItemStack aTool) { - return registerTool(aTool, sSoftHammerList); - } - - /** - * Register a Hard Hammer to interact with Machines - * - * You need to register Tools in the Load Phase, because otherwise the Autodetection will assign a Tool Type in certain Cases during postload (When IToolWrench or similar Interfaces are implemented). - */ - public static boolean registerHardHammer(ItemStack aTool) { - return registerTool(aTool, sHardHammerList); - } - - /** - * Register a Soldering Tool to interact with Machines - * - * You need to register Tools in the Load Phase, because otherwise the Autodetection will assign a Tool Type in certain Cases during postload (When IToolWrench or similar Interfaces are implemented). - */ - public static boolean registerSolderingTool(ItemStack aTool) { - return registerTool(aTool, sSolderingToolList); - } - - /** - * Register a Soldering Tin to interact with Soldering Tools - * - * You need to register Tools in the Load Phase, because otherwise the Autodetection will assign a Tool Type in certain Cases during postload (When IToolWrench or similar Interfaces are implemented). - */ - public static boolean registerSolderingMetal(ItemStack aTool) { - return registerTool(aTool, sSolderingMetalList); - } - - /** - * Generic Function to add Tools to the Lists. - * Contains all sanity Checks for Tools, like preventing one Tool from being registered for multiple purposes as controls would override each other. - */ - public static boolean registerTool(ItemStack aTool, Collection aToolList) { - if (aTool == null || GT_Utility.isStackInList(aTool, sToolList) || (!aTool.getItem().isDamageable() && !GT_ModHandler.isElectricItem(aTool) && !(aTool.getItem() instanceof IDamagableItem))) return false; - aToolList.add(new GT_ItemStack(GT_Utility.copyAmount(1, aTool))); - sToolList.add(new GT_ItemStack(GT_Utility.copyAmount(1, aTool))); - return true; - } - - /** - * Adds Biomes to the Biome Lists for World Generation - */ - static { - sItemStackMappings.add(sCovers); - sItemStackMappings.add(sCoverBehaviors); - - sDimensionalList.add(-1); - sDimensionalList.add( 0); - sDimensionalList.add( 1); - - sSoundList.put( 0, "random.break"); - sSoundList.put( 1, "random.anvil_use"); - sSoundList.put( 2, "random.anvil_break"); - sSoundList.put( 3, "random.click"); - sSoundList.put( 4, "random.fizz"); - sSoundList.put( 5, "random.explode"); - sSoundList.put( 6, "fire.ignite"); - - sSoundList.put(100, MOD_ID_IC2.toLowerCase() + ":" + "tools.Wrench"); - sSoundList.put(101, MOD_ID_IC2.toLowerCase() + ":" + "tools.RubberTrampoline"); - sSoundList.put(102, MOD_ID_IC2.toLowerCase() + ":" + "tools.Painter"); - sSoundList.put(103, MOD_ID_IC2.toLowerCase() + ":" + "tools.BatteryUse"); - sSoundList.put(104, MOD_ID_IC2.toLowerCase() + ":" + "tools.chainsaw.ChainsawUseOne"); - sSoundList.put(105, MOD_ID_IC2.toLowerCase() + ":" + "tools.chainsaw.ChainsawUseTwo"); - sSoundList.put(106, MOD_ID_IC2.toLowerCase() + ":" + "tools.drill.DrillSoft"); - sSoundList.put(107, MOD_ID_IC2.toLowerCase() + ":" + "tools.drill.DrillHard"); - sSoundList.put(108, MOD_ID_IC2.toLowerCase() + ":" + "tools.ODScanner"); - - sSoundList.put(200, MOD_ID_IC2.toLowerCase() + ":" + "machines.ExtractorOp"); - sSoundList.put(201, MOD_ID_IC2.toLowerCase() + ":" + "machines.MaceratorOp"); - sSoundList.put(202, MOD_ID_IC2.toLowerCase() + ":" + "machines.InductionLoop"); - sSoundList.put(203, MOD_ID_IC2.toLowerCase() + ":" + "machines.CompressorOp"); - sSoundList.put(204, MOD_ID_IC2.toLowerCase() + ":" + "machines.RecyclerOp"); - sSoundList.put(205, MOD_ID_IC2.toLowerCase() + ":" + "machines.MinerOp"); - sSoundList.put(206, MOD_ID_IC2.toLowerCase() + ":" + "machines.PumpOp"); - sSoundList.put(207, MOD_ID_IC2.toLowerCase() + ":" + "machines.ElectroFurnaceLoop"); - sSoundList.put(208, MOD_ID_IC2.toLowerCase() + ":" + "machines.InductionLoop"); - sSoundList.put(209, MOD_ID_IC2.toLowerCase() + ":" + "machines.MachineOverload"); - sSoundList.put(210, MOD_ID_IC2.toLowerCase() + ":" + "machines.InterruptOne"); - sSoundList.put(211, MOD_ID_IC2.toLowerCase() + ":" + "machines.KaChing"); - sSoundList.put(212, MOD_ID_IC2.toLowerCase() + ":" + "machines.MagnetizerLoop"); - } + /** + * Adds Biomes to the Biome Lists for World Generation + */ + static { + sItemStackMappings.add(sCovers); + sItemStackMappings.add(sCoverBehaviors); + + sDimensionalList.add(-1); + sDimensionalList.add(0); + sDimensionalList.add(1); + + sSoundList.put(0, "random.break"); + sSoundList.put(1, "random.anvil_use"); + sSoundList.put(2, "random.anvil_break"); + sSoundList.put(3, "random.click"); + sSoundList.put(4, "random.fizz"); + sSoundList.put(5, "random.explode"); + sSoundList.put(6, "fire.ignite"); + + sSoundList.put(100, MOD_ID_IC2.toLowerCase() + ":" + "tools.Wrench"); + sSoundList.put(101, MOD_ID_IC2.toLowerCase() + ":" + "tools.RubberTrampoline"); + sSoundList.put(102, MOD_ID_IC2.toLowerCase() + ":" + "tools.Painter"); + sSoundList.put(103, MOD_ID_IC2.toLowerCase() + ":" + "tools.BatteryUse"); + sSoundList.put(104, MOD_ID_IC2.toLowerCase() + ":" + "tools.chainsaw.ChainsawUseOne"); + sSoundList.put(105, MOD_ID_IC2.toLowerCase() + ":" + "tools.chainsaw.ChainsawUseTwo"); + sSoundList.put(106, MOD_ID_IC2.toLowerCase() + ":" + "tools.drill.DrillSoft"); + sSoundList.put(107, MOD_ID_IC2.toLowerCase() + ":" + "tools.drill.DrillHard"); + sSoundList.put(108, MOD_ID_IC2.toLowerCase() + ":" + "tools.ODScanner"); + + sSoundList.put(200, MOD_ID_IC2.toLowerCase() + ":" + "machines.ExtractorOp"); + sSoundList.put(201, MOD_ID_IC2.toLowerCase() + ":" + "machines.MaceratorOp"); + sSoundList.put(202, MOD_ID_IC2.toLowerCase() + ":" + "machines.InductionLoop"); + sSoundList.put(203, MOD_ID_IC2.toLowerCase() + ":" + "machines.CompressorOp"); + sSoundList.put(204, MOD_ID_IC2.toLowerCase() + ":" + "machines.RecyclerOp"); + sSoundList.put(205, MOD_ID_IC2.toLowerCase() + ":" + "machines.MinerOp"); + sSoundList.put(206, MOD_ID_IC2.toLowerCase() + ":" + "machines.PumpOp"); + sSoundList.put(207, MOD_ID_IC2.toLowerCase() + ":" + "machines.ElectroFurnaceLoop"); + sSoundList.put(208, MOD_ID_IC2.toLowerCase() + ":" + "machines.InductionLoop"); + sSoundList.put(209, MOD_ID_IC2.toLowerCase() + ":" + "machines.MachineOverload"); + sSoundList.put(210, MOD_ID_IC2.toLowerCase() + ":" + "machines.InterruptOne"); + sSoundList.put(211, MOD_ID_IC2.toLowerCase() + ":" + "machines.KaChing"); + sSoundList.put(212, MOD_ID_IC2.toLowerCase() + ":" + "machines.MagnetizerLoop"); + } + + /** + * You want OreDict-Unification for YOUR Mod/Addon, when GregTech is installed? This Function is especially for YOU. + * Call this Function after the load-Phase, as I register the the most of the Unification at that Phase (Redpowers Storageblocks are registered at postload). + * A recommended use of this Function is inside your Recipe-System itself (if you have one), as the unification then makes 100% sure, that every added non-unificated Output gets automatically unificated. + *

+ * I will personally make sure, that only common prefixes of Ores get registered at the Unificator, as of now there are: + * pulp, dust, dustSmall, ingot, nugget, gem, ore and block + * If another Mod-Author messes these up, then it's not my fault and it's especially not your fault. As these are commonly used prefixes. + *

+ * This Unificator-API-Function uses the same Functions I use, for unificating Items. So if there is something messed up (very unlikely), then everything is messed up. + *

+ * You shouldn't use this to unificate the Inputs of your Recipes, this is only meant for the Outputs. + * + * @param aOreStack the Stack you want to get unificated. It is stackSize Sensitive. + * @return Either an unificated Stack or the stack you toss in, but it should never be null, unless you throw a Nullpointer into it. + */ + public static ItemStack getUnificatedOreDictStack(ItemStack aOreStack) { + if (!GregTech_API.sPreloadFinished) + GT_Log.err.println("GregTech_API ERROR: " + aOreStack.getItem() + "." + aOreStack.getItemDamage() + " - OreDict Unification Entries are not registered now, please call it in the postload phase."); + return GT_OreDictUnificator.get(true, aOreStack); + } + + /** + * Causes a Machineblock Update + * This update will cause surrounding MultiBlock Machines to update their Configuration. + * You should call this Function in @Block.breakBlock and in @Block.onBlockAdded of your Machine. + * + * @param aWorld is being the World + * @param aX is the X-Coord of the update causing Block + * @param aY is the Y-Coord of the update causing Block + * @param aZ is the Z-Coord of the update causing Block + */ + public static boolean causeMachineUpdate(World aWorld, int aX, int aY, int aZ) { + if (!aWorld.isRemote) + new Thread(new GT_Runnable_MachineBlockUpdate(aWorld, aX, aY, aZ), "Machine Block Updating").start(); + return true; + } + + /** + * Adds a Multi-Machine Block, like my Machine Casings for example. + * You should call @causeMachineUpdate in @Block.breakBlock and in @Block.onBlockAdded of your registered Block. + * You don't need to register TileEntities which implement @IMachineBlockUpdateable + * + * @param aID the ID of your Block + * @param aMeta the Metadata of the Blocks as Bitmask! -1 or ~0 for all Metavalues + */ + public static boolean registerMachineBlock(Block aBlock, int aMeta) { + if (GT_Utility.isBlockInvalid(aBlock)) return false; + if (GregTech_API.sThaumcraftCompat != null) + GregTech_API.sThaumcraftCompat.registerPortholeBlacklistedBlock(aBlock); + sMachineIDs.put(aBlock, aMeta); + return true; + } + + /** + * Like above but with boolean Parameters instead of a BitMask + */ + public static boolean registerMachineBlock(Block aBlock, boolean... aMeta) { + if (GT_Utility.isBlockInvalid(aBlock) || aMeta == null || aMeta.length == 0) return false; + if (GregTech_API.sThaumcraftCompat != null) + GregTech_API.sThaumcraftCompat.registerPortholeBlacklistedBlock(aBlock); + int rMeta = 0; + for (byte i = 0; i < aMeta.length && i < 16; i++) if (aMeta[i]) rMeta |= B[i]; + sMachineIDs.put(aBlock, rMeta); + return true; + } + + /** + * if this Block is a Machine Update Conducting Block + */ + public static boolean isMachineBlock(Block aBlock, int aMeta) { + if (GT_Utility.isBlockInvalid(aBlock)) return false; + return (sMachineIDs.containsKey(aBlock) && (sMachineIDs.get(aBlock) & B[aMeta]) != 0); + } + + /** + * Creates a new Coolant Cell Item for your Nuclear Reactor + */ + public static Item constructCoolantCellItem(String aUnlocalized, String aEnglish, int aMaxStore) { + try { + return new GT_CoolantCellIC_Item(aUnlocalized, aEnglish, aMaxStore); +// return (Item)Class.forName("gregtech.api.items.GT_CoolantCellIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxStore); + } catch (Throwable e) {/*Do nothing*/} + try { + return new GT_CoolantCell_Item(aUnlocalized, aEnglish, aMaxStore); +// return (Item)Class.forName("gregtech.api.items.GT_CoolantCell_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxStore); + } catch (Throwable e) {/*Do nothing*/} + return new gregtech.api.items.GT_Generic_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", false); + } + + /** + * Creates a new Energy Armor Item + */ + public static Item constructElectricArmorItem(String aUnlocalized, String aEnglish, int aCharge, int aTransfer, int aTier, int aDamageEnergyCost, int aSpecials, double aArmorAbsorbtionPercentage, boolean aChargeProvider, int aType, int aArmorIndex) { + try { + return (Item) Class.forName("gregtechmod.api.items.GT_EnergyArmorIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aCharge, aTransfer, aTier, aDamageEnergyCost, aSpecials, aArmorAbsorbtionPercentage, aChargeProvider, aType, aArmorIndex); + } catch (Throwable e) {/*Do nothing*/} + try { + return (Item) Class.forName("gregtechmod.api.items.GT_EnergyArmor_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aCharge, aTransfer, aTier, aDamageEnergyCost, aSpecials, aArmorAbsorbtionPercentage, aChargeProvider, aType, aArmorIndex); + } catch (Throwable e) {/*Do nothing*/} + return new gregtech.api.items.GT_Generic_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", false); + } + + /** + * Creates a new Energy Battery Item + */ + public static Item constructElectricEnergyStorageItem(String aUnlocalized, String aEnglish, int aCharge, int aTransfer, int aTier, int aEmptyID, int aFullID) { + try { + return (Item) Class.forName("gregtechmod.api.items.GT_EnergyStoreIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aCharge, aTransfer, aTier, aEmptyID, aFullID); + } catch (Throwable e) {/*Do nothing*/} + try { + return (Item) Class.forName("gregtechmod.api.items.GT_EnergyStore_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aCharge, aTransfer, aTier, aEmptyID, aFullID); + } catch (Throwable e) {/*Do nothing*/} + return new gregtech.api.items.GT_Generic_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", false); + } + + /** + * Creates a new Hard Hammer Item + */ + public static GT_Tool_Item constructHardHammerItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage) { + try { + return (GT_Tool_Item) Class.forName("gregtechmod.api.items.GT_HardHammer_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage); + } catch (Throwable e) {/*Do nothing*/} + return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); + } + + /** + * Creates a new Crowbar Item + */ + public static GT_Tool_Item constructCrowbarItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage) { + try { + return (GT_Tool_Item) Class.forName("gregtechmod.api.items.GT_CrowbarRC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage); + } catch (Throwable e) {/*Do nothing*/} + try { + return (GT_Tool_Item) Class.forName("gregtechmod.api.items.GT_Crowbar_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage); + } catch (Throwable e) {/*Do nothing*/} + return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); + } + + /** + * Creates a new Wrench Item + */ + public static GT_Tool_Item constructWrenchItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage, int aDisChargedGTID) { + try { + return (GT_Tool_Item) Class.forName("gregtechmod.api.items.GT_Wrench_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aDisChargedGTID); + } catch (Throwable e) {/*Do nothing*/} + return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); + } + + /** + * Creates a new electric Screwdriver Item + */ + public static GT_Tool_Item constructElectricScrewdriverItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage, int aDisChargedGTID) { + try { + return (GT_Tool_Item) Class.forName("gregtechmod.api.items.GT_ScrewdriverIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aDisChargedGTID); + } catch (Throwable e) {/*Do nothing*/} + return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); + } + + /** + * Creates a new electric Wrench Item + */ + public static GT_Tool_Item constructElectricWrenchItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage, int aDisChargedGTID) { + try { + return (GT_Tool_Item) Class.forName("gregtechmod.api.items.GT_WrenchIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aDisChargedGTID); + } catch (Throwable e) {/*Do nothing*/} + return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); + } + + /** + * Creates a new electric Saw Item + */ + public static GT_Tool_Item constructElectricSawItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage, int aToolQuality, float aToolStrength, int aEnergyConsumptionPerBlockBreak, int aDisChargedGTID) { + try { + return (GT_Tool_Item) Class.forName("gregtechmod.api.items.GT_SawIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aToolQuality, aToolStrength, aEnergyConsumptionPerBlockBreak, aDisChargedGTID); + } catch (Throwable e) {/*Do nothing*/} + return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); + } + + /** + * Creates a new electric Drill Item + */ + public static GT_Tool_Item constructElectricDrillItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage, int aToolQuality, float aToolStrength, int aEnergyConsumptionPerBlockBreak, int aDisChargedGTID) { + try { + return (GT_Tool_Item) Class.forName("gregtechmod.api.items.GT_DrillIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aToolQuality, aToolStrength, aEnergyConsumptionPerBlockBreak, aDisChargedGTID); + } catch (Throwable e) {/*Do nothing*/} + return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); + } + + /** + * Creates a new electric Soldering Tool + */ + public static GT_Tool_Item constructElectricSolderingToolItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage, int aDisChargedGTID) { + try { + return (GT_Tool_Item) Class.forName("gregtechmod.api.items.GT_SolderingToolIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aDisChargedGTID); + } catch (Throwable e) {/*Do nothing*/} + return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); + } + + /** + * Creates a new empty electric Tool + */ + public static GT_Tool_Item constructEmptyElectricToolItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aChargedGTID) { + try { + return (GT_Tool_Item) Class.forName("gregtechmod.api.items.GT_EmptyToolIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aChargedGTID); + } catch (Throwable e) {/*Do nothing*/} + return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, 0, false); + } + + /** + * This gives you a new BaseMetaTileEntity. As some Interfaces are not always loaded (Buildcraft, Univeral Electricity) I have to use Invocation at the Constructor of the BaseMetaTileEntity + */ + public static BaseMetaTileEntity constructBaseMetaTileEntity() { + if (sBaseMetaTileEntityClass == null) { + try { + return (BaseMetaTileEntity) (sBaseMetaTileEntityClass = BaseMetaTileEntity.class).newInstance(); + } catch (Throwable e) {/*Do nothing*/} + } + + try { + return (BaseMetaTileEntity) (sBaseMetaTileEntityClass.newInstance()); + } catch (Throwable e) { + GT_Log.err.println("GT_Mod: Fatal Error ocurred while initializing TileEntities, crashing Minecraft."); + e.printStackTrace(GT_Log.err); + throw new RuntimeException(e); + } + } + + public static void registerCover(ItemStack aStack, ITexture aCover, GT_CoverBehavior aBehavior) { + if (!sCovers.containsKey(new GT_ItemStack(aStack))) + sCovers.put(new GT_ItemStack(aStack), aCover == null || !aCover.isValidTexture() ? Textures.BlockIcons.ERROR_RENDERING[0] : aCover); + if (aBehavior != null) sCoverBehaviors.put(new GT_ItemStack(aStack), aBehavior); + } + + public static void registerCoverBehavior(ItemStack aStack, GT_CoverBehavior aBehavior) { + sCoverBehaviors.put(new GT_ItemStack(aStack), aBehavior == null ? sDefaultBehavior : aBehavior); + } + + /** + * Registers multiple Cover Items. I use that for the OreDict Functionality. + * + * @param aBehavior can be null + */ + public static void registerCover(Collection aStackList, ITexture aCover, GT_CoverBehavior aBehavior) { + if (aCover.isValidTexture()) for (ItemStack tStack : aStackList) registerCover(tStack, aCover, aBehavior); + } + + /** + * returns a Cover behavior, guaranteed to not return null after preload + */ + public static GT_CoverBehavior getCoverBehavior(ItemStack aStack) { + if (aStack == null || aStack.getItem() == null) return sNoBehavior; + GT_CoverBehavior rCover = sCoverBehaviors.get(new GT_ItemStack(aStack)); + if (rCover == null) return sDefaultBehavior; + return rCover; + } + + /** + * returns a Cover behavior, guaranteed to not return null + */ + public static GT_CoverBehavior getCoverBehavior(int aStack) { + if (aStack == 0) return sNoBehavior; + return getCoverBehavior(GT_Utility.intToStack(aStack)); + } + + /** + * Register a Wrench to be usable on GregTech Machines. + * The Wrench MUST have some kind of Durability unlike certain Buildcraft Wrenches. + *

+ * You need to register Tools in the Load Phase, because otherwise the Autodetection will assign a Tool Type in certain Cases during postload (When IToolWrench or similar Interfaces are implemented). + *

+ * ----- + *

+ * Returning true at isDamagable was a great Idea, KingLemming. Well played. + * Since the OmniWrench is just a Single-Item-Mod, people can choose if they want your infinite durability or not. So that's not really a Problem. + * I even have a new Config to autodisable most infinite BC Wrenches (but that one is turned off). + *

+ * One last Bug for you to fix: + * My Autoregistration detects Railcrafts Crowbars, Buildcrafts Wrenches and alike, due to their Interfaces. + * Guess what now became a Crowbar by accident. Try registering the Wrench at the load phase to prevent things like that from happening. + * Yes, I know that "You need to register Tools in the Load Phase"-Part wasn't there before this. Sorry about that. + */ + public static boolean registerWrench(ItemStack aTool) { + return registerTool(aTool, sWrenchList); + } + + /** + * Register a Crowbar to extract Covers from Machines + * Crowbars are NOT Wrenches btw. + *

+ * You need to register Tools in the Load Phase, because otherwise the Autodetection will assign a Tool Type in certain Cases during postload (When IToolWrench or similar Interfaces are implemented). + */ + public static boolean registerCrowbar(ItemStack aTool) { + return registerTool(aTool, sCrowbarList); + } + + /** + * Register a Screwdriver to interact directly with Machines and Covers + * Did I mention, that it is intentionally not possible to make a Multitool, which doesn't switch ItemID (like a Mode) all the time? + *

+ * You need to register Tools in the Load Phase, because otherwise the Autodetection will assign a Tool Type in certain Cases during postload (When IToolWrench or similar Interfaces are implemented). + */ + public static boolean registerScrewdriver(ItemStack aTool) { + return registerTool(aTool, sScrewdriverList); + } + + /** + * Register a Soft Hammer to interact with Machines + *

+ * You need to register Tools in the Load Phase, because otherwise the Autodetection will assign a Tool Type in certain Cases during postload (When IToolWrench or similar Interfaces are implemented). + */ + public static boolean registerSoftHammer(ItemStack aTool) { + return registerTool(aTool, sSoftHammerList); + } + + /** + * Register a Hard Hammer to interact with Machines + *

+ * You need to register Tools in the Load Phase, because otherwise the Autodetection will assign a Tool Type in certain Cases during postload (When IToolWrench or similar Interfaces are implemented). + */ + public static boolean registerHardHammer(ItemStack aTool) { + return registerTool(aTool, sHardHammerList); + } + + /** + * Register a Soldering Tool to interact with Machines + *

+ * You need to register Tools in the Load Phase, because otherwise the Autodetection will assign a Tool Type in certain Cases during postload (When IToolWrench or similar Interfaces are implemented). + */ + public static boolean registerSolderingTool(ItemStack aTool) { + return registerTool(aTool, sSolderingToolList); + } + + /** + * Register a Soldering Tin to interact with Soldering Tools + *

+ * You need to register Tools in the Load Phase, because otherwise the Autodetection will assign a Tool Type in certain Cases during postload (When IToolWrench or similar Interfaces are implemented). + */ + public static boolean registerSolderingMetal(ItemStack aTool) { + return registerTool(aTool, sSolderingMetalList); + } + + /** + * Generic Function to add Tools to the Lists. + * Contains all sanity Checks for Tools, like preventing one Tool from being registered for multiple purposes as controls would override each other. + */ + public static boolean registerTool(ItemStack aTool, Collection aToolList) { + if (aTool == null || GT_Utility.isStackInList(aTool, sToolList) || (!aTool.getItem().isDamageable() && !GT_ModHandler.isElectricItem(aTool) && !(aTool.getItem() instanceof IDamagableItem))) + return false; + aToolList.add(new GT_ItemStack(GT_Utility.copyAmount(1, aTool))); + sToolList.add(new GT_ItemStack(GT_Utility.copyAmount(1, aTool))); + return true; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/damagesources/GT_DamageSources.java b/src/main/java/gregtech/api/damagesources/GT_DamageSources.java index d83bf661..bb5ff01b 100644 --- a/src/main/java/gregtech/api/damagesources/GT_DamageSources.java +++ b/src/main/java/gregtech/api/damagesources/GT_DamageSources.java @@ -4,83 +4,83 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.*; public class GT_DamageSources { - public static DamageSource getElectricDamage() { - return ic2.api.info.Info.DMG_ELECTRIC; - } - - public static DamageSource getRadioactiveDamage() { - return ic2.api.info.Info.DMG_RADIATION; - } - - public static DamageSource getNukeExplosionDamage() { - return ic2.api.info.Info.DMG_NUKE_EXPLOSION; - } - - public static DamageSource getExplodingDamage() { - return new DamageSourceExploding(); - } - - public static DamageSource getCombatDamage(String aType, EntityLivingBase aPlayer, IChatComponent aDeathMessage) { - return new DamageSourceCombat(aType, aPlayer, aDeathMessage); - } - - public static DamageSource getHeatDamage() { - return new DamageSourceHeat(); - } - - public static DamageSource getFrostDamage() { - return new DamageSourceFrost(); - } - - private static class DamageSourceCombat extends EntityDamageSource { - private IChatComponent mDeathMessage; - - public DamageSourceCombat(String aType, EntityLivingBase aPlayer, IChatComponent aDeathMessage) { - super(aType, aPlayer); - mDeathMessage = aDeathMessage; - } - - @Override - public IChatComponent func_151519_b(EntityLivingBase aTarget) { - return mDeathMessage == null ? super.func_151519_b(aTarget) : mDeathMessage; - } - } - - private static class DamageSourceFrost extends DamageSource { - public DamageSourceFrost() { - super("frost"); - setDifficultyScaled(); - } - - @Override - public IChatComponent func_151519_b(EntityLivingBase aTarget) { - return new ChatComponentText(EnumChatFormatting.RED+aTarget.getCommandSenderName()+EnumChatFormatting.WHITE + " got frozen"); - } - } - - private static class DamageSourceHeat extends DamageSource { - public DamageSourceHeat() { - super("steam"); - setDifficultyScaled(); - } - - @Override - public IChatComponent func_151519_b(EntityLivingBase aTarget) { - return new ChatComponentText(EnumChatFormatting.RED+aTarget.getCommandSenderName()+EnumChatFormatting.WHITE + " was boiled alive"); - } - } - - public static class DamageSourceExploding extends DamageSource { - public DamageSourceExploding() { - super("exploded"); - setDamageAllowedInCreativeMode(); - setDamageBypassesArmor(); - setDamageIsAbsolute(); - } - - @Override - public IChatComponent func_151519_b(EntityLivingBase aTarget) { - return new ChatComponentText(EnumChatFormatting.RED+aTarget.getCommandSenderName()+EnumChatFormatting.WHITE + " exploded"); - } - } + public static DamageSource getElectricDamage() { + return ic2.api.info.Info.DMG_ELECTRIC; + } + + public static DamageSource getRadioactiveDamage() { + return ic2.api.info.Info.DMG_RADIATION; + } + + public static DamageSource getNukeExplosionDamage() { + return ic2.api.info.Info.DMG_NUKE_EXPLOSION; + } + + public static DamageSource getExplodingDamage() { + return new DamageSourceExploding(); + } + + public static DamageSource getCombatDamage(String aType, EntityLivingBase aPlayer, IChatComponent aDeathMessage) { + return new DamageSourceCombat(aType, aPlayer, aDeathMessage); + } + + public static DamageSource getHeatDamage() { + return new DamageSourceHeat(); + } + + public static DamageSource getFrostDamage() { + return new DamageSourceFrost(); + } + + private static class DamageSourceCombat extends EntityDamageSource { + private IChatComponent mDeathMessage; + + public DamageSourceCombat(String aType, EntityLivingBase aPlayer, IChatComponent aDeathMessage) { + super(aType, aPlayer); + mDeathMessage = aDeathMessage; + } + + @Override + public IChatComponent func_151519_b(EntityLivingBase aTarget) { + return mDeathMessage == null ? super.func_151519_b(aTarget) : mDeathMessage; + } + } + + private static class DamageSourceFrost extends DamageSource { + public DamageSourceFrost() { + super("frost"); + setDifficultyScaled(); + } + + @Override + public IChatComponent func_151519_b(EntityLivingBase aTarget) { + return new ChatComponentText(EnumChatFormatting.RED + aTarget.getCommandSenderName() + EnumChatFormatting.WHITE + " got frozen"); + } + } + + private static class DamageSourceHeat extends DamageSource { + public DamageSourceHeat() { + super("steam"); + setDifficultyScaled(); + } + + @Override + public IChatComponent func_151519_b(EntityLivingBase aTarget) { + return new ChatComponentText(EnumChatFormatting.RED + aTarget.getCommandSenderName() + EnumChatFormatting.WHITE + " was boiled alive"); + } + } + + public static class DamageSourceExploding extends DamageSource { + public DamageSourceExploding() { + super("exploded"); + setDamageAllowedInCreativeMode(); + setDamageBypassesArmor(); + setDamageIsAbsolute(); + } + + @Override + public IChatComponent func_151519_b(EntityLivingBase aTarget) { + return new ChatComponentText(EnumChatFormatting.RED + aTarget.getCommandSenderName() + EnumChatFormatting.WHITE + " exploded"); + } + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/enchants/Enchantment_EnderDamage.java b/src/main/java/gregtech/api/enchants/Enchantment_EnderDamage.java index 69919fe3..ef371b9a 100644 --- a/src/main/java/gregtech/api/enchants/Enchantment_EnderDamage.java +++ b/src/main/java/gregtech/api/enchants/Enchantment_EnderDamage.java @@ -13,46 +13,46 @@ import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; public class Enchantment_EnderDamage extends EnchantmentDamage { - public static Enchantment_EnderDamage INSTANCE; - - public Enchantment_EnderDamage() { - super(GT_Config.addIDConfig(ConfigCategories.IDs.enchantments, "Disjunction", 15), 2, -1); - GT_LanguageManager.addStringLocalization(getName(), "Disjunction"); - Materials.Silver .setEnchantmentForTools(this, 2); - Materials.Mercury .setEnchantmentForTools(this, 3); - Materials.Electrum .setEnchantmentForTools(this, 3); - Materials.SterlingSilver .setEnchantmentForTools(this, 4); - Materials.AstralSilver .setEnchantmentForTools(this, 5); - INSTANCE = this; - } - + public static Enchantment_EnderDamage INSTANCE; + + public Enchantment_EnderDamage() { + super(GT_Config.addIDConfig(ConfigCategories.IDs.enchantments, "Disjunction", 15), 2, -1); + GT_LanguageManager.addStringLocalization(getName(), "Disjunction"); + Materials.Silver.setEnchantmentForTools(this, 2); + Materials.Mercury.setEnchantmentForTools(this, 3); + Materials.Electrum.setEnchantmentForTools(this, 3); + Materials.SterlingSilver.setEnchantmentForTools(this, 4); + Materials.AstralSilver.setEnchantmentForTools(this, 5); + INSTANCE = this; + } + @Override - public int getMinEnchantability(int aLevel) { + public int getMinEnchantability(int aLevel) { return 5 + (aLevel - 1) * 8; } - + @Override - public int getMaxEnchantability(int aLevel) { + public int getMaxEnchantability(int aLevel) { return this.getMinEnchantability(aLevel) + 20; } - + @Override - public int getMaxLevel() { + public int getMaxLevel() { return 5; } - + @Override - public void func_151367_b(EntityLivingBase aHurtEntity, Entity aDamagingEntity, int aLevel) { + public void func_151367_b(EntityLivingBase aHurtEntity, Entity aDamagingEntity, int aLevel) { if ((aHurtEntity instanceof EntityEnderman || aHurtEntity instanceof EntityDragon || (aHurtEntity.getClass().getName().indexOf(".") >= 0 && aHurtEntity.getClass().getName().substring(aHurtEntity.getClass().getName().lastIndexOf(".")).contains("Ender")))) { - // Weakness causes Endermen to not be able to teleport with GT being installed. - aHurtEntity.addPotionEffect(new PotionEffect(Potion.weakness.id , aLevel * 200, Math.max(1, (5*aLevel) / 7))); - // They also get Poisoned. If you have this Enchant on an Arrow, you can kill the Ender Dragon easier. - aHurtEntity.addPotionEffect(new PotionEffect(Potion.poison.id , aLevel * 200, Math.max(1, (5*aLevel) / 7))); + // Weakness causes Endermen to not be able to teleport with GT being installed. + aHurtEntity.addPotionEffect(new PotionEffect(Potion.weakness.id, aLevel * 200, Math.max(1, (5 * aLevel) / 7))); + // They also get Poisoned. If you have this Enchant on an Arrow, you can kill the Ender Dragon easier. + aHurtEntity.addPotionEffect(new PotionEffect(Potion.poison.id, aLevel * 200, Math.max(1, (5 * aLevel) / 7))); } } - + @Override - public String getName() { + public String getName() { return "enchantment.damage.endermen"; } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/enchants/Enchantment_Radioactivity.java b/src/main/java/gregtech/api/enchants/Enchantment_Radioactivity.java index f05d00d0..bf4cd134 100644 --- a/src/main/java/gregtech/api/enchants/Enchantment_Radioactivity.java +++ b/src/main/java/gregtech/api/enchants/Enchantment_Radioactivity.java @@ -11,51 +11,51 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; public class Enchantment_Radioactivity extends EnchantmentDamage { - public static Enchantment_Radioactivity INSTANCE; - - public Enchantment_Radioactivity() { - super(GT_Config.addIDConfig(ConfigCategories.IDs.enchantments, "Radioactivity", 14), 0, -1); - GT_LanguageManager.addStringLocalization(getName(), "Radioactivity"); - Materials.Plutonium .setEnchantmentForTools(this, 1).setEnchantmentForArmors(this, 1); - Materials.Uranium235 .setEnchantmentForTools(this, 2).setEnchantmentForArmors(this, 2); - Materials.Plutonium241 .setEnchantmentForTools(this, 3).setEnchantmentForArmors(this, 3); - Materials.NaquadahEnriched .setEnchantmentForTools(this, 4).setEnchantmentForArmors(this, 4); - Materials.Naquadria .setEnchantmentForTools(this, 5).setEnchantmentForArmors(this, 5); - INSTANCE = this; - } - + public static Enchantment_Radioactivity INSTANCE; + + public Enchantment_Radioactivity() { + super(GT_Config.addIDConfig(ConfigCategories.IDs.enchantments, "Radioactivity", 14), 0, -1); + GT_LanguageManager.addStringLocalization(getName(), "Radioactivity"); + Materials.Plutonium.setEnchantmentForTools(this, 1).setEnchantmentForArmors(this, 1); + Materials.Uranium235.setEnchantmentForTools(this, 2).setEnchantmentForArmors(this, 2); + Materials.Plutonium241.setEnchantmentForTools(this, 3).setEnchantmentForArmors(this, 3); + Materials.NaquadahEnriched.setEnchantmentForTools(this, 4).setEnchantmentForArmors(this, 4); + Materials.Naquadria.setEnchantmentForTools(this, 5).setEnchantmentForArmors(this, 5); + INSTANCE = this; + } + @Override - public int getMinEnchantability(int aLevel) { + public int getMinEnchantability(int aLevel) { return Integer.MAX_VALUE; } - + @Override - public int getMaxEnchantability(int aLevel) { + public int getMaxEnchantability(int aLevel) { return 0; } - + @Override - public int getMaxLevel() { + public int getMaxLevel() { return 5; } - + @Override - public boolean canApply(ItemStack par1ItemStack) { + public boolean canApply(ItemStack par1ItemStack) { return false; } - + @Override public boolean isAllowedOnBooks() { return false; } - + @Override - public void func_151367_b(EntityLivingBase aHurtEntity, Entity aDamagingEntity, int aLevel) { + public void func_151367_b(EntityLivingBase aHurtEntity, Entity aDamagingEntity, int aLevel) { GT_Utility.applyRadioactivity(aHurtEntity, aLevel, 1); } - + @Override - public String getName() { + public String getName() { return "enchantment.damage.radioactivity"; } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/enums/ConfigCategories.java b/src/main/java/gregtech/api/enums/ConfigCategories.java index ba61c759..1245d7ac 100644 --- a/src/main/java/gregtech/api/enums/ConfigCategories.java +++ b/src/main/java/gregtech/api/enums/ConfigCategories.java @@ -1,64 +1,64 @@ package gregtech.api.enums; public enum ConfigCategories { - news, - general, - machineconfig, - specialunificationtargets; + news, + general, + machineconfig, + specialunificationtargets; - public enum IDs { - crops, - enchantments; - } - - public enum Materials { - heatdamage, - oreprocessingoutputmultiplier, - blastfurnacerequirements, - blastinductionsmelter,; - } - - public enum Recipes { - researches, - harderrecipes, - gregtechrecipes, - disabledrecipes, - recipereplacements, - storageblockcrafting, - storageblockdecrafting; - } - - public enum Machines { - smelting, - squeezer, - liquidtransposer, - liquidtransposerfilling, - liquidtransposeremptying, - extractor, - sawmill, - compression, - thermalcentrifuge, - orewashing, - inductionsmelter, - rcblastfurnace, - scrapboxdrops, - massfabamplifier, - maceration, - rockcrushing, - pulverization; - } - - public enum Fuels { - boilerfuels; - } - - public enum Tools { - mortar, - hammerplating, - hammermultiingot, - hammerdoubleplate, - hammertripleplate, - hammerquadrupleplate, - hammerquintupleplate; - } + public enum IDs { + crops, + enchantments; + } + + public enum Materials { + heatdamage, + oreprocessingoutputmultiplier, + blastfurnacerequirements, + blastinductionsmelter,; + } + + public enum Recipes { + researches, + harderrecipes, + gregtechrecipes, + disabledrecipes, + recipereplacements, + storageblockcrafting, + storageblockdecrafting; + } + + public enum Machines { + smelting, + squeezer, + liquidtransposer, + liquidtransposerfilling, + liquidtransposeremptying, + extractor, + sawmill, + compression, + thermalcentrifuge, + orewashing, + inductionsmelter, + rcblastfurnace, + scrapboxdrops, + massfabamplifier, + maceration, + rockcrushing, + pulverization; + } + + public enum Fuels { + boilerfuels; + } + + public enum Tools { + mortar, + hammerplating, + hammermultiingot, + hammerdoubleplate, + hammertripleplate, + hammerquadrupleplate, + hammerquintupleplate; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/enums/Dyes.java b/src/main/java/gregtech/api/enums/Dyes.java index e37648db..66c39277 100644 --- a/src/main/java/gregtech/api/enums/Dyes.java +++ b/src/main/java/gregtech/api/enums/Dyes.java @@ -3,103 +3,108 @@ package gregtech.api.enums; import gregtech.api.interfaces.IColorModulationContainer; import gregtech.api.objects.GT_ArrayList; import gregtech.api.util.GT_Utility; - -import java.util.ArrayList; - import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; +import java.util.ArrayList; + public enum Dyes implements IColorModulationContainer { - /** The valid Colors, see VALUES Array below */ - dyeBlack ( 0, 32, 32, 32, "Black"), - dyeRed ( 1, 255, 0, 0, "Red"), - dyeGreen ( 2, 0, 255, 0, "Green"), - dyeBrown ( 3, 96, 64, 0, "Brown"), - dyeBlue ( 4, 0, 0, 255, "Blue"), - dyePurple ( 5, 128, 0, 128, "Purple"), - dyeCyan ( 6, 0, 255, 255, "Cyan"), - dyeLightGray ( 7, 192, 192, 192, "Light Gray"), - dyeGray ( 8, 128, 128, 128, "Gray"), - dyePink ( 9, 255, 192, 192, "Pink"), - dyeLime (10, 128, 255, 128, "Lime"), - dyeYellow (11, 255, 255, 0, "Yellow"), - dyeLightBlue (12, 128, 128, 255, "Light Blue"), - dyeMagenta (13, 255, 0, 255, "Magenta"), - dyeOrange (14, 255, 128, 0, "Orange"), - dyeWhite (15, 255, 255, 255, "White"), - /** The NULL Color */ - _NULL (-1, 255, 255, 255, "INVALID COLOR"), - /** Additional Colors only used for direct Color referencing */ - CABLE_INSULATION (-1, 64, 64, 64, "Cable Insulation"), - CONSTRUCTION_FOAM (-1, 64, 64, 64, "Construction Foam"), - MACHINE_METAL (-1, 220, 220, 255, "Machine Metal"); - - public static final Dyes VALUES[] = {dyeBlack, dyeRed, dyeGreen, dyeBrown, dyeBlue, dyePurple, dyeCyan, dyeLightGray, dyeGray, dyePink, dyeLime, dyeYellow, dyeLightBlue, dyeMagenta, dyeOrange, dyeWhite}; - - public final byte mIndex; - public final String mName; - public final short[] mRGBa; - private final ArrayList mFluidDyes = new GT_ArrayList(false, 1); - - private Dyes(int aIndex, int aR, int aG, int aB, String aName) { - mIndex = (byte)aIndex; - mName = aName; - mRGBa = new short[] {(short)aR, (short)aG, (short)aB, 0}; - } - - public static Dyes get(int aColor) { - if (aColor >= 0 && aColor < 16) return VALUES[aColor]; - return _NULL; - } - - public static short[] getModulation(int aColor, short[] aDefaultModulation) { - if (aColor >= 0 && aColor < 16) return VALUES[aColor].mRGBa; - return aDefaultModulation; - } - - public static Dyes get(String aColor) { - Object tObject = GT_Utility.getFieldContent(Dyes.class, aColor, false, false); - if (tObject != null && tObject instanceof Dyes) return (Dyes)tObject; - return _NULL; - } - - public static boolean isAnyFluidDye(FluidStack aFluid) { - return aFluid != null && isAnyFluidDye(aFluid.getFluid()); - } - - public static boolean isAnyFluidDye(Fluid aFluid) { - if (aFluid != null) for (Dyes tDye : VALUES) if (tDye.isFluidDye(aFluid)) return true; - return false; - } - - public boolean isFluidDye(FluidStack aFluid) { - return aFluid != null && isFluidDye(aFluid.getFluid()); - } - - public boolean isFluidDye(Fluid aFluid) { - return aFluid != null && mFluidDyes.contains(aFluid); - } - - public boolean addFluidDye(Fluid aDye) { - if (aDye == null || mFluidDyes.contains(aDye)) return false; - mFluidDyes.add(aDye); - return true; - } - - public int getSizeOfFluidList() { - return mFluidDyes.size(); - } - - /** - * @param aAmount 1 Fluid Material Unit (144) = 1 Dye Item - */ - public FluidStack getFluidDye(int aIndex, long aAmount) { - if (aIndex >= mFluidDyes.size() || aIndex < 0) return null; - return new FluidStack(mFluidDyes.get(aIndex), (int)aAmount); - } - - @Override - public short[] getRGBA() { - return mRGBa; - } + /** + * The valid Colors, see VALUES Array below + */ + dyeBlack(0, 32, 32, 32, "Black"), + dyeRed(1, 255, 0, 0, "Red"), + dyeGreen(2, 0, 255, 0, "Green"), + dyeBrown(3, 96, 64, 0, "Brown"), + dyeBlue(4, 0, 0, 255, "Blue"), + dyePurple(5, 128, 0, 128, "Purple"), + dyeCyan(6, 0, 255, 255, "Cyan"), + dyeLightGray(7, 192, 192, 192, "Light Gray"), + dyeGray(8, 128, 128, 128, "Gray"), + dyePink(9, 255, 192, 192, "Pink"), + dyeLime(10, 128, 255, 128, "Lime"), + dyeYellow(11, 255, 255, 0, "Yellow"), + dyeLightBlue(12, 128, 128, 255, "Light Blue"), + dyeMagenta(13, 255, 0, 255, "Magenta"), + dyeOrange(14, 255, 128, 0, "Orange"), + dyeWhite(15, 255, 255, 255, "White"), + /** + * The NULL Color + */ + _NULL(-1, 255, 255, 255, "INVALID COLOR"), + /** + * Additional Colors only used for direct Color referencing + */ + CABLE_INSULATION(-1, 64, 64, 64, "Cable Insulation"), + CONSTRUCTION_FOAM(-1, 64, 64, 64, "Construction Foam"), + MACHINE_METAL(-1, 220, 220, 255, "Machine Metal"); + + public static final Dyes VALUES[] = {dyeBlack, dyeRed, dyeGreen, dyeBrown, dyeBlue, dyePurple, dyeCyan, dyeLightGray, dyeGray, dyePink, dyeLime, dyeYellow, dyeLightBlue, dyeMagenta, dyeOrange, dyeWhite}; + + public final byte mIndex; + public final String mName; + public final short[] mRGBa; + private final ArrayList mFluidDyes = new GT_ArrayList(false, 1); + + private Dyes(int aIndex, int aR, int aG, int aB, String aName) { + mIndex = (byte) aIndex; + mName = aName; + mRGBa = new short[]{(short) aR, (short) aG, (short) aB, 0}; + } + + public static Dyes get(int aColor) { + if (aColor >= 0 && aColor < 16) return VALUES[aColor]; + return _NULL; + } + + public static short[] getModulation(int aColor, short[] aDefaultModulation) { + if (aColor >= 0 && aColor < 16) return VALUES[aColor].mRGBa; + return aDefaultModulation; + } + + public static Dyes get(String aColor) { + Object tObject = GT_Utility.getFieldContent(Dyes.class, aColor, false, false); + if (tObject != null && tObject instanceof Dyes) return (Dyes) tObject; + return _NULL; + } + + public static boolean isAnyFluidDye(FluidStack aFluid) { + return aFluid != null && isAnyFluidDye(aFluid.getFluid()); + } + + public static boolean isAnyFluidDye(Fluid aFluid) { + if (aFluid != null) for (Dyes tDye : VALUES) if (tDye.isFluidDye(aFluid)) return true; + return false; + } + + public boolean isFluidDye(FluidStack aFluid) { + return aFluid != null && isFluidDye(aFluid.getFluid()); + } + + public boolean isFluidDye(Fluid aFluid) { + return aFluid != null && mFluidDyes.contains(aFluid); + } + + public boolean addFluidDye(Fluid aDye) { + if (aDye == null || mFluidDyes.contains(aDye)) return false; + mFluidDyes.add(aDye); + return true; + } + + public int getSizeOfFluidList() { + return mFluidDyes.size(); + } + + /** + * @param aAmount 1 Fluid Material Unit (144) = 1 Dye Item + */ + public FluidStack getFluidDye(int aIndex, long aAmount) { + if (aIndex >= mFluidDyes.size() || aIndex < 0) return null; + return new FluidStack(mFluidDyes.get(aIndex), (int) aAmount); + } + + @Override + public short[] getRGBA() { + return mRGBa; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/enums/Element.java b/src/main/java/gregtech/api/enums/Element.java index b9ff7953..61528a11 100644 --- a/src/main/java/gregtech/api/enums/Element.java +++ b/src/main/java/gregtech/api/enums/Element.java @@ -8,304 +8,303 @@ import java.util.ArrayList; * This is some kind of Periodic Table, which I use to determine Properties of the Materials. */ public enum Element { - _NULL ( 0, 0, 0, -1, null , "" , false), - H ( 1, 0, 0, -1, null , "Hydrogen" , false), - D ( 1, 1, 0, -1, "H" , "Deuterium" , true), - T ( 1, 2, 0, -1, "D" , "Tritium" , true), - He ( 2, 2, 0, -1, null , "Helium" , false), - He_3 ( 2, 1, 0, -1, "H&D" , "Helium-3" , true), - Li ( 3, 4, 0, -1, null , "Lithium" , false), - Be ( 4, 5, 0, -1, null , "Beryllium" , false), - B ( 5, 5, 0, -1, null , "Boron" , false), - C ( 6, 6, 0, -1, null , "Carbon" , false), - N ( 7, 7, 0, -1, null , "Nitrogen" , false), - O ( 8, 8, 0, -1, null , "Oxygen" , false), - F ( 9, 9, 0, -1, null , "Fluorine" , false), - Ne ( 10, 10, 0, -1, null , "Neon" , false), - Na ( 11, 11, 0, -1, null , "Sodium" , false), - Mg ( 12, 12, 0, -1, null , "Magnesium" , false), - Al ( 13, 13, 0, -1, null , "Aluminium" , false), - Si ( 14, 14, 0, -1, null , "Silicon" , false), - P ( 15, 15, 0, -1, null , "Phosphorus" , false), - S ( 16, 16, 0, -1, null , "Sulfur" , false), - Cl ( 17, 18, 0, -1, null , "Chlorine" , false), - Ar ( 18, 22, 0, -1, null , "Argon" , false), - K ( 19, 20, 0, -1, null , "Potassium" , false), - Ca ( 20, 20, 0, -1, null , "Calcium" , false), - Sc ( 21, 24, 0, -1, null , "Scandium" , false), - Ti ( 22, 26, 0, -1, null , "Titanium" , false), - V ( 23, 28, 0, -1, null , "Vanadium" , false), - Cr ( 24, 28, 0, -1, null , "Chrome" , false), - Mn ( 25, 30, 0, -1, null , "Manganese" , false), - Fe ( 26, 30, 0, -1, null , "Iron" , false), - Co ( 27, 32, 0, -1, null , "Cobalt" , false), - Ni ( 28, 30, 0, -1, null , "Nickel" , false), - Cu ( 29, 34, 0, -1, null , "Copper" , false), - Zn ( 30, 35, 0, -1, null , "Zinc" , false), - Ga ( 31, 39, 0, -1, null , "Gallium" , false), - Ge ( 32, 40, 0, -1, null , "Germanium" , false), - As ( 33, 42, 0, -1, null , "Arsenic" , false), - Se ( 34, 45, 0, -1, null , "Selenium" , false), - Br ( 35, 45, 0, -1, null , "Bromine" , false), - Kr ( 36, 48, 0, -1, null , "Krypton" , false), - Rb ( 37, 48, 0, -1, null , "Rubidium" , false), - Sr ( 38, 49, 0, -1, null , "Strontium" , false), - Y ( 39, 50, 0, -1, null , "Yttrium" , false), - Zr ( 40, 51, 0, -1, null , "Zirconium" , false), - Nb ( 41, 53, 0, -1, null , "Niobium" , false), - Mo ( 42, 53, 0, -1, null , "Molybdenum" , false), - Tc ( 43, 55, 0, -1, null , "Technetium" , false), - Ru ( 44, 57, 0, -1, null , "Ruthenium" , false), - Rh ( 45, 58, 0, -1, null , "Rhodium" , false), - Pd ( 46, 60, 0, -1, null , "Palladium" , false), - Ag ( 47, 60, 0, -1, null , "Silver" , false), - Cd ( 48, 64, 0, -1, null , "Cadmium" , false), - In ( 49, 65, 0, -1, null , "Indium" , false), - Sn ( 50, 68, 0, -1, null , "Tin" , false), - Sb ( 51, 70, 0, -1, null , "Antimony" , false), - Te ( 52, 75, 0, -1, null , "Tellurium" , false), - I ( 53, 74, 0, -1, null , "Iodine" , false), - Xe ( 54, 77, 0, -1, null , "Xenon" , false), - Cs ( 55, 77, 0, -1, null , "Caesium" , false), - Ba ( 56, 81, 0, -1, null , "Barium" , false), - La ( 57, 81, 0, -1, null , "Lantanium" , false), - Ce ( 58, 82, 0, -1, null , "Cerium" , false), - Pr ( 59, 81, 0, -1, null , "Praseodymium" , false), - Nd ( 60, 84, 0, -1, null , "Neodymium" , false), - Pm ( 61, 83, 0, -1, null , "Promethium" , false), - Sm ( 62, 88, 0, -1, null , "Samarium" , false), - Eu ( 63, 88, 0, -1, null , "Europium" , false), - Gd ( 64, 93, 0, -1, null , "Gadolinium" , false), - Tb ( 65, 93, 0, -1, null , "Terbium" , false), - Dy ( 66, 96, 0, -1, null , "Dysprosium" , false), - Ho ( 67, 97, 0, -1, null , "Holmium" , false), - Er ( 68, 99, 0, -1, null , "Erbium" , false), - Tm ( 69, 99, 0, -1, null , "Thulium" , false), - Yb ( 70, 103, 0, -1, null , "Ytterbium" , false), - Lu ( 71, 103, 0, -1, null , "Lutetium" , false), - Hf ( 72, 106, 0, -1, null , "Hafnium" , false), - Ta ( 73, 107, 0, -1, null , "Tantalum" , false), - W ( 74, 109, 0, -1, null , "Wolframium" , false), - Re ( 75, 111, 0, -1, null , "Rhenium" , false), - Os ( 76, 114, 0, -1, null , "Osmium" , false), - Ir ( 77, 115, 0, -1, null , "Iridium" , false), - Pt ( 78, 117, 0, -1, null , "Platinum" , false), - Au ( 79, 117, 0, -1, null , "Gold" , false), - Hg ( 80, 120, 0, -1, null , "Mercury" , false), - Tl ( 81, 123, 0, -1, null , "Thallium" , false), - Pb ( 82, 125, 0, -1, null , "Lead" , false), - Bi ( 83, 125, 0, -1, null , "Bismuth" , false), - Po ( 84, 124, 0, -1, null , "Polonium" , false), - At ( 85, 124, 0, -1, null , "Astatine" , false), - Rn ( 86, 134, 0, -1, null , "Radon" , false), - Fr ( 87, 134, 0, -1, null , "Francium" , false), - Ra ( 88, 136, 0, -1, null , "Radium" , false), - Ac ( 89, 136, 0, -1, null , "Actinium" , false), - Th ( 90, 140, 0, -1, null , "Thorium" , false), - Pa ( 91, 138, 0, -1, null , "Protactinium" , false), - U ( 92, 146, 0, -1, null , "Uranium" , false), - U_235 ( 92, 143, 0, -1, null , "Uranium-235" , true), - Np ( 93, 144, 0, -1, null , "Neptunium" , false), - Pu ( 94, 152, 0, -1, null , "Plutonium" , false), - Pu_241 ( 94, 149, 0, -1, null , "Plutonium-241" , true), - Am ( 95, 150, 0, -1, null , "Americium" , false), - Cm ( 96, 153, 0, -1, null , "Curium" , false), - Bk ( 97, 152, 0, -1, null , "Berkelium" , false), - Cf ( 98, 153, 0, -1, null , "Californium" , false), - Es ( 99, 153, 0, -1, null , "Einsteinium" , false), - Fm ( 100, 157, 0, -1, null , "Fermium" , false), - Md ( 101, 157, 0, -1, null , "Mendelevium" , false), - No ( 102, 157, 0, -1, null , "Nobelium" , false), - Lr ( 103, 159, 0, -1, null , "Lawrencium" , false), - Rf ( 104, 161, 0, -1, null , "Rutherfordium" , false), - Db ( 105, 163, 0, -1, null , "Dubnium" , false), - Sg ( 106, 165, 0, -1, null , "Seaborgium" , false), - Bh ( 107, 163, 0, -1, null , "Bohrium" , false), - Hs ( 108, 169, 0, -1, null , "Hassium" , false), - Mt ( 109, 167, 0, -1, null , "Meitnerium" , false), - Ds ( 110, 171, 0, -1, null , "Darmstadtium" , false), - Rg ( 111, 169, 0, -1, null , "Roentgenium" , false), - Cn ( 112, 173, 0, -1, null , "Copernicium" , false), - Uut ( 113, 171, 0, -1, null , "Ununtrium" , false), - Fl ( 114, 175, 0, -1, null , "Flerovium" , false), - Uup ( 115, 173, 0, -1, null , "Ununpentium" , false), - Lv ( 116, 177, 0, -1, null , "Livermorium" , false), - Fa ( 117, 177, 0, -1, null , "Farnsium" , false), // Uus, Ununseptium - Uuo ( 118, 176, 0, -1, null , "Ununoctium" , false), - - Ma ( 0, 0, 100, -1, null , "Magic" , false), - Nt ( 0,100000, 0, -1, null , "Neutronium" , false), - - $H (- 1,- 0, 0, -1, null , "Anti-Hydrogen" , false), - $D (- 1,- 1, 0, -1, "H" , "Anti-Deuterium" , true), - $T (- 1,- 2, 0, -1, "D" , "Anti-Tritium" , true), - $He (- 2,- 2, 0, -1, null , "Anti-Helium" , false), - $He_3 (- 2,- 1, 0, -1, "H&D" , "Anti-Helium-3" , true), - $Li (- 3,- 4, 0, -1, null , "Anti-Lithium" , false), - $Be (- 4,- 5, 0, -1, null , "Anti-Beryllium" , false), - $B (- 5,- 5, 0, -1, null , "Anti-Boron" , false), - $C (- 6,- 6, 0, -1, null , "Anti-Carbon" , false), - $N (- 7,- 7, 0, -1, null , "Anti-Nitrogen" , false), - $O (- 8,- 8, 0, -1, null , "Anti-Oxygen" , false), - $F (- 9,- 9, 0, -1, null , "Anti-Fluorine" , false), - $Ne (- 10,- 10, 0, -1, null , "Anti-Neon" , false), - $Na (- 11,- 11, 0, -1, null , "Anti-Sodium" , false), - $Mg (- 12,- 12, 0, -1, null , "Anti-Magnesium" , false), - $Al (- 13,- 13, 0, -1, null , "Anti-Aluminium" , false), - $Si (- 14,- 14, 0, -1, null , "Anti-Silicon" , false), - $P (- 15,- 15, 0, -1, null , "Anti-Phosphorus" , false), - $S (- 16,- 16, 0, -1, null , "Anti-Sulfur" , false), - $Cl (- 17,- 18, 0, -1, null , "Anti-Chlorine" , false), - $Ar (- 18,- 22, 0, -1, null , "Anti-Argon" , false), - $K (- 19,- 20, 0, -1, null , "Anti-Potassium" , false), - $Ca (- 20,- 20, 0, -1, null , "Anti-Calcium" , false), - $Sc (- 21,- 24, 0, -1, null , "Anti-Scandium" , false), - $Ti (- 22,- 26, 0, -1, null , "Anti-Titanium" , false), - $V (- 23,- 28, 0, -1, null , "Anti-Vanadium" , false), - $Cr (- 24,- 28, 0, -1, null , "Anti-Chrome" , false), - $Mn (- 25,- 30, 0, -1, null , "Anti-Manganese" , false), - $Fe (- 26,- 30, 0, -1, null , "Anti-Iron" , false), - $Co (- 27,- 32, 0, -1, null , "Anti-Cobalt" , false), - $Ni (- 28,- 30, 0, -1, null , "Anti-Nickel" , false), - $Cu (- 29,- 34, 0, -1, null , "Anti-Copper" , false), - $Zn (- 30,- 35, 0, -1, null , "Anti-Zinc" , false), - $Ga (- 31,- 39, 0, -1, null , "Anti-Gallium" , false), - $Ge (- 32,- 40, 0, -1, null , "Anti-Germanium" , false), - $As (- 33,- 42, 0, -1, null , "Anti-Arsenic" , false), - $Se (- 34,- 45, 0, -1, null , "Anti-Selenium" , false), - $Br (- 35,- 45, 0, -1, null , "Anti-Bromine" , false), - $Kr (- 36,- 48, 0, -1, null , "Anti-Krypton" , false), - $Rb (- 37,- 48, 0, -1, null , "Anti-Rubidium" , false), - $Sr (- 38,- 49, 0, -1, null , "Anti-Strontium" , false), - $Y (- 39,- 50, 0, -1, null , "Anti-Yttrium" , false), - $Zr (- 40,- 51, 0, -1, null , "Anti-Zirconium" , false), - $Nb (- 41,- 53, 0, -1, null , "Anti-Niobium" , false), - $Mo (- 42,- 53, 0, -1, null , "Anti-Molybdenum" , false), - $Tc (- 43,- 55, 0, -1, null , "Anti-Technetium" , false), - $Ru (- 44,- 57, 0, -1, null , "Anti-Ruthenium" , false), - $Rh (- 45,- 58, 0, -1, null , "Anti-Rhodium" , false), - $Pd (- 46,- 60, 0, -1, null , "Anti-Palladium" , false), - $Ag (- 47,- 60, 0, -1, null , "Anti-Silver" , false), - $Cd (- 48,- 64, 0, -1, null , "Anti-Cadmium" , false), - $In (- 49,- 65, 0, -1, null , "Anti-Indium" , false), - $Sn (- 50,- 68, 0, -1, null , "Anti-Tin" , false), - $Sb (- 51,- 70, 0, -1, null , "Anti-Antimony" , false), - $Te (- 52,- 75, 0, -1, null , "Anti-Tellurium" , false), - $I (- 53,- 74, 0, -1, null , "Anti-Iodine" , false), - $Xe (- 54,- 77, 0, -1, null , "Anti-Xenon" , false), - $Cs (- 55,- 77, 0, -1, null , "Anti-Caesium" , false), - $Ba (- 56,- 81, 0, -1, null , "Anti-Barium" , false), - $La (- 57,- 81, 0, -1, null , "Anti-Lantanium" , false), - $Ce (- 58,- 82, 0, -1, null , "Anti-Cerium" , false), - $Pr (- 59,- 81, 0, -1, null , "Anti-Praseodymium" , false), - $Nd (- 60,- 84, 0, -1, null , "Anti-Neidymium" , false), - $Pm (- 61,- 83, 0, -1, null , "Anti-Promethium" , false), - $Sm (- 62,- 88, 0, -1, null , "Anti-Samarium" , false), - $Eu (- 63,- 88, 0, -1, null , "Anti-Europium" , false), - $Gd (- 64,- 93, 0, -1, null , "Anti-Gadolinium" , false), - $Tb (- 65,- 93, 0, -1, null , "Anti-Terbium" , false), - $Dy (- 66,- 96, 0, -1, null , "Anti-Dysprosium" , false), - $Ho (- 67,- 97, 0, -1, null , "Anti-Holmium" , false), - $Er (- 68,- 99, 0, -1, null , "Anti-Erbium" , false), - $Tm (- 69,- 99, 0, -1, null , "Anti-Thulium" , false), - $Yb (- 70,-103, 0, -1, null , "Anti-Ytterbium" , false), - $Lu (- 71,-103, 0, -1, null , "Anti-Lutetium" , false), - $Hf (- 72,-106, 0, -1, null , "Anti-Hafnium" , false), - $Ta (- 73,-107, 0, -1, null , "Anti-Tantalum" , false), - $W (- 74,-109, 0, -1, null , "Anti-Wolframium" , false), - $Re (- 75,-111, 0, -1, null , "Anti-Rhenium" , false), - $Os (- 76,-114, 0, -1, null , "Anti-Osmium" , false), - $Ir (- 77,-115, 0, -1, null , "Anti-Iridium" , false), - $Pt (- 78,-117, 0, -1, null , "Anti-Platinum" , false), - $Au (- 79,-117, 0, -1, null , "Anti-Gold" , false), - $Hg (- 80,-120, 0, -1, null , "Anti-Mercury" , false), - $Tl (- 81,-123, 0, -1, null , "Anti-Thallium" , false), - $Pb (- 82,-125, 0, -1, null , "Anti-Lead" , false), - $Bi (- 83,-125, 0, -1, null , "Anti-Bismuth" , false), - $Po (- 84,-124, 0, -1, null , "Anti-Polonium" , false), - $At (- 85,-124, 0, -1, null , "Anti-Astatine" , false), - $Rn (- 86,-134, 0, -1, null , "Anti-Radon" , false), - $Fr (- 87,-134, 0, -1, null , "Anti-Francium" , false), - $Ra (- 88,-136, 0, -1, null , "Anti-Radium" , false), - $Ac (- 89,-136, 0, -1, null , "Anti-Actinium" , false), - $Th (- 90,-140, 0, -1, null , "Anti-Thorium" , false), - $Pa (- 91,-138, 0, -1, null , "Anti-Protactinium" , false), - $U (- 92,-146, 0, -1, null , "Anti-Uranium" , false), - $U_235 (- 92,-143, 0, -1, null , "Anti-Uranium-235" , true), - $Np (- 93,-144, 0, -1, null , "Anti-Neptunium" , false), - $Pu (- 94,-152, 0, -1, null , "Anti-Plutonium" , false), - $Pu_241 (- 94,-149, 0, -1, null , "Anti-Plutonium-241" , true), - $Am (- 95,-150, 0, -1, null , "Anti-Americum" , false), - $Cm (- 96,-153, 0, -1, null , "Anti-Curium" , false), - $Bk (- 97,-152, 0, -1, null , "Anti-Berkelium" , false), - $Cf (- 98,-153, 0, -1, null , "Anti-Californium" , false), - $Es (- 99,-153, 0, -1, null , "Anti-Einsteinium" , false), - $Fm (-100,-157, 0, -1, null , "Anti-Fermium" , false), - $Md (-101,-157, 0, -1, null , "Anti-Mendelevium" , false), - $No (-102,-157, 0, -1, null , "Anti-Nobelium" , false), - $Lr (-103,-159, 0, -1, null , "Anti-Lawrencium" , false), - $Rf (-104,-161, 0, -1, null , "Anti-Rutherfordium" , false), - $Db (-105,-163, 0, -1, null , "Anti-Dubnium" , false), - $Sg (-106,-165, 0, -1, null , "Anti-Seaborgium" , false), - $Bh (-107,-163, 0, -1, null , "Anti-Bohrium" , false), - $Hs (-108,-169, 0, -1, null , "Anti-Hassium" , false), - $Mt (-109,-167, 0, -1, null , "Anti-Meitnerium" , false), - $Ds (-110,-171, 0, -1, null , "Anti-Darmstadtium" , false), - $Rg (-111,-169, 0, -1, null , "Anti-Roentgenium" , false), - $Cn (-112,-173, 0, -1, null , "Anti-Copernicium" , false), - $Uut (-113,-171, 0, -1, null , "Anti-Ununtrium" , false), - $Fl (-114,-175, 0, -1, null , "Anti-Flerovium" , false), - $Uup (-115,-173, 0, -1, null , "Anti-Ununpentium" , false), - $Lv (-116,-177, 0, -1, null , "Anti-Livermorium" , false), - $Uus (-117,-177, 0, -1, null , "Anti-Ununseptium" , false), - $Uuo (-118,-176, 0, -1, null , "Anti-Ununoctium" , false), - - $Ma ( 0, 0,-100, -1, null , "Anti-Magic" , false), - $Nt (0, -10000, 0, -1, null , "Anti-Neutronium" , false); - - public static Element get(String aMaterialName) { - Object tObject = GT_Utility.getFieldContent(Element.class, aMaterialName, false, false); - if (tObject != null && tObject instanceof Element) return (Element)tObject; - return _NULL; - } - - public final long mProtons, mNeutrons, mAdditionalMass, mHalfLifeSeconds; - public final String mName, mDecayTo; - public final boolean mIsIsotope; - - /** - * Links to every pure Material containing just this Element. - */ - public ArrayList mLinkedMaterials = new ArrayList(); - - /** - * @param aProtons Amount of Protons. Antiprotons if negative. - * @param aNeutrons Amount of Neutrons. Antineutrons if negative. (I could have made mistakes with the Neutron amount calculation, please tell me if I did something wrong) - * @param aHalfLifeSeconds Amount of Half Life this Material has in Seconds. -1 for stable Materials. - * @param aDecayTo String representing the Elements it decays to. Separated by an '&' Character. - * @param aName Name of the Element - */ - private Element(long aProtons, long aNeutrons, long aAdditionalMass, long aHalfLifeSeconds, String aDecayTo, String aName, boolean aIsIsotope) { - mProtons = aProtons; - mNeutrons = aNeutrons; - mAdditionalMass = aAdditionalMass; - mHalfLifeSeconds = aHalfLifeSeconds; - mDecayTo = aDecayTo; - mName = aName; - mIsIsotope = aIsIsotope; - } - - public long getProtons() { - return mProtons; - } - - public long getNeutrons() { - return mNeutrons; - } - - public long getMass() { - return mProtons + mNeutrons + mAdditionalMass; - } - - public static volatile int VERSION = 508; + _NULL(0, 0, 0, -1, null, "", false), + H(1, 0, 0, -1, null, "Hydrogen", false), + D(1, 1, 0, -1, "H", "Deuterium", true), + T(1, 2, 0, -1, "D", "Tritium", true), + He(2, 2, 0, -1, null, "Helium", false), + He_3(2, 1, 0, -1, "H&D", "Helium-3", true), + Li(3, 4, 0, -1, null, "Lithium", false), + Be(4, 5, 0, -1, null, "Beryllium", false), + B(5, 5, 0, -1, null, "Boron", false), + C(6, 6, 0, -1, null, "Carbon", false), + N(7, 7, 0, -1, null, "Nitrogen", false), + O(8, 8, 0, -1, null, "Oxygen", false), + F(9, 9, 0, -1, null, "Fluorine", false), + Ne(10, 10, 0, -1, null, "Neon", false), + Na(11, 11, 0, -1, null, "Sodium", false), + Mg(12, 12, 0, -1, null, "Magnesium", false), + Al(13, 13, 0, -1, null, "Aluminium", false), + Si(14, 14, 0, -1, null, "Silicon", false), + P(15, 15, 0, -1, null, "Phosphorus", false), + S(16, 16, 0, -1, null, "Sulfur", false), + Cl(17, 18, 0, -1, null, "Chlorine", false), + Ar(18, 22, 0, -1, null, "Argon", false), + K(19, 20, 0, -1, null, "Potassium", false), + Ca(20, 20, 0, -1, null, "Calcium", false), + Sc(21, 24, 0, -1, null, "Scandium", false), + Ti(22, 26, 0, -1, null, "Titanium", false), + V(23, 28, 0, -1, null, "Vanadium", false), + Cr(24, 28, 0, -1, null, "Chrome", false), + Mn(25, 30, 0, -1, null, "Manganese", false), + Fe(26, 30, 0, -1, null, "Iron", false), + Co(27, 32, 0, -1, null, "Cobalt", false), + Ni(28, 30, 0, -1, null, "Nickel", false), + Cu(29, 34, 0, -1, null, "Copper", false), + Zn(30, 35, 0, -1, null, "Zinc", false), + Ga(31, 39, 0, -1, null, "Gallium", false), + Ge(32, 40, 0, -1, null, "Germanium", false), + As(33, 42, 0, -1, null, "Arsenic", false), + Se(34, 45, 0, -1, null, "Selenium", false), + Br(35, 45, 0, -1, null, "Bromine", false), + Kr(36, 48, 0, -1, null, "Krypton", false), + Rb(37, 48, 0, -1, null, "Rubidium", false), + Sr(38, 49, 0, -1, null, "Strontium", false), + Y(39, 50, 0, -1, null, "Yttrium", false), + Zr(40, 51, 0, -1, null, "Zirconium", false), + Nb(41, 53, 0, -1, null, "Niobium", false), + Mo(42, 53, 0, -1, null, "Molybdenum", false), + Tc(43, 55, 0, -1, null, "Technetium", false), + Ru(44, 57, 0, -1, null, "Ruthenium", false), + Rh(45, 58, 0, -1, null, "Rhodium", false), + Pd(46, 60, 0, -1, null, "Palladium", false), + Ag(47, 60, 0, -1, null, "Silver", false), + Cd(48, 64, 0, -1, null, "Cadmium", false), + In(49, 65, 0, -1, null, "Indium", false), + Sn(50, 68, 0, -1, null, "Tin", false), + Sb(51, 70, 0, -1, null, "Antimony", false), + Te(52, 75, 0, -1, null, "Tellurium", false), + I(53, 74, 0, -1, null, "Iodine", false), + Xe(54, 77, 0, -1, null, "Xenon", false), + Cs(55, 77, 0, -1, null, "Caesium", false), + Ba(56, 81, 0, -1, null, "Barium", false), + La(57, 81, 0, -1, null, "Lantanium", false), + Ce(58, 82, 0, -1, null, "Cerium", false), + Pr(59, 81, 0, -1, null, "Praseodymium", false), + Nd(60, 84, 0, -1, null, "Neodymium", false), + Pm(61, 83, 0, -1, null, "Promethium", false), + Sm(62, 88, 0, -1, null, "Samarium", false), + Eu(63, 88, 0, -1, null, "Europium", false), + Gd(64, 93, 0, -1, null, "Gadolinium", false), + Tb(65, 93, 0, -1, null, "Terbium", false), + Dy(66, 96, 0, -1, null, "Dysprosium", false), + Ho(67, 97, 0, -1, null, "Holmium", false), + Er(68, 99, 0, -1, null, "Erbium", false), + Tm(69, 99, 0, -1, null, "Thulium", false), + Yb(70, 103, 0, -1, null, "Ytterbium", false), + Lu(71, 103, 0, -1, null, "Lutetium", false), + Hf(72, 106, 0, -1, null, "Hafnium", false), + Ta(73, 107, 0, -1, null, "Tantalum", false), + W(74, 109, 0, -1, null, "Wolframium", false), + Re(75, 111, 0, -1, null, "Rhenium", false), + Os(76, 114, 0, -1, null, "Osmium", false), + Ir(77, 115, 0, -1, null, "Iridium", false), + Pt(78, 117, 0, -1, null, "Platinum", false), + Au(79, 117, 0, -1, null, "Gold", false), + Hg(80, 120, 0, -1, null, "Mercury", false), + Tl(81, 123, 0, -1, null, "Thallium", false), + Pb(82, 125, 0, -1, null, "Lead", false), + Bi(83, 125, 0, -1, null, "Bismuth", false), + Po(84, 124, 0, -1, null, "Polonium", false), + At(85, 124, 0, -1, null, "Astatine", false), + Rn(86, 134, 0, -1, null, "Radon", false), + Fr(87, 134, 0, -1, null, "Francium", false), + Ra(88, 136, 0, -1, null, "Radium", false), + Ac(89, 136, 0, -1, null, "Actinium", false), + Th(90, 140, 0, -1, null, "Thorium", false), + Pa(91, 138, 0, -1, null, "Protactinium", false), + U(92, 146, 0, -1, null, "Uranium", false), + U_235(92, 143, 0, -1, null, "Uranium-235", true), + Np(93, 144, 0, -1, null, "Neptunium", false), + Pu(94, 152, 0, -1, null, "Plutonium", false), + Pu_241(94, 149, 0, -1, null, "Plutonium-241", true), + Am(95, 150, 0, -1, null, "Americium", false), + Cm(96, 153, 0, -1, null, "Curium", false), + Bk(97, 152, 0, -1, null, "Berkelium", false), + Cf(98, 153, 0, -1, null, "Californium", false), + Es(99, 153, 0, -1, null, "Einsteinium", false), + Fm(100, 157, 0, -1, null, "Fermium", false), + Md(101, 157, 0, -1, null, "Mendelevium", false), + No(102, 157, 0, -1, null, "Nobelium", false), + Lr(103, 159, 0, -1, null, "Lawrencium", false), + Rf(104, 161, 0, -1, null, "Rutherfordium", false), + Db(105, 163, 0, -1, null, "Dubnium", false), + Sg(106, 165, 0, -1, null, "Seaborgium", false), + Bh(107, 163, 0, -1, null, "Bohrium", false), + Hs(108, 169, 0, -1, null, "Hassium", false), + Mt(109, 167, 0, -1, null, "Meitnerium", false), + Ds(110, 171, 0, -1, null, "Darmstadtium", false), + Rg(111, 169, 0, -1, null, "Roentgenium", false), + Cn(112, 173, 0, -1, null, "Copernicium", false), + Uut(113, 171, 0, -1, null, "Ununtrium", false), + Fl(114, 175, 0, -1, null, "Flerovium", false), + Uup(115, 173, 0, -1, null, "Ununpentium", false), + Lv(116, 177, 0, -1, null, "Livermorium", false), + Fa(117, 177, 0, -1, null, "Farnsium", false), // Uus, Ununseptium + Uuo(118, 176, 0, -1, null, "Ununoctium", false), + + Ma(0, 0, 100, -1, null, "Magic", false), + Nt(0, 100000, 0, -1, null, "Neutronium", false), + + $H(-1, -0, 0, -1, null, "Anti-Hydrogen", false), + $D(-1, -1, 0, -1, "H", "Anti-Deuterium", true), + $T(-1, -2, 0, -1, "D", "Anti-Tritium", true), + $He(-2, -2, 0, -1, null, "Anti-Helium", false), + $He_3(-2, -1, 0, -1, "H&D", "Anti-Helium-3", true), + $Li(-3, -4, 0, -1, null, "Anti-Lithium", false), + $Be(-4, -5, 0, -1, null, "Anti-Beryllium", false), + $B(-5, -5, 0, -1, null, "Anti-Boron", false), + $C(-6, -6, 0, -1, null, "Anti-Carbon", false), + $N(-7, -7, 0, -1, null, "Anti-Nitrogen", false), + $O(-8, -8, 0, -1, null, "Anti-Oxygen", false), + $F(-9, -9, 0, -1, null, "Anti-Fluorine", false), + $Ne(-10, -10, 0, -1, null, "Anti-Neon", false), + $Na(-11, -11, 0, -1, null, "Anti-Sodium", false), + $Mg(-12, -12, 0, -1, null, "Anti-Magnesium", false), + $Al(-13, -13, 0, -1, null, "Anti-Aluminium", false), + $Si(-14, -14, 0, -1, null, "Anti-Silicon", false), + $P(-15, -15, 0, -1, null, "Anti-Phosphorus", false), + $S(-16, -16, 0, -1, null, "Anti-Sulfur", false), + $Cl(-17, -18, 0, -1, null, "Anti-Chlorine", false), + $Ar(-18, -22, 0, -1, null, "Anti-Argon", false), + $K(-19, -20, 0, -1, null, "Anti-Potassium", false), + $Ca(-20, -20, 0, -1, null, "Anti-Calcium", false), + $Sc(-21, -24, 0, -1, null, "Anti-Scandium", false), + $Ti(-22, -26, 0, -1, null, "Anti-Titanium", false), + $V(-23, -28, 0, -1, null, "Anti-Vanadium", false), + $Cr(-24, -28, 0, -1, null, "Anti-Chrome", false), + $Mn(-25, -30, 0, -1, null, "Anti-Manganese", false), + $Fe(-26, -30, 0, -1, null, "Anti-Iron", false), + $Co(-27, -32, 0, -1, null, "Anti-Cobalt", false), + $Ni(-28, -30, 0, -1, null, "Anti-Nickel", false), + $Cu(-29, -34, 0, -1, null, "Anti-Copper", false), + $Zn(-30, -35, 0, -1, null, "Anti-Zinc", false), + $Ga(-31, -39, 0, -1, null, "Anti-Gallium", false), + $Ge(-32, -40, 0, -1, null, "Anti-Germanium", false), + $As(-33, -42, 0, -1, null, "Anti-Arsenic", false), + $Se(-34, -45, 0, -1, null, "Anti-Selenium", false), + $Br(-35, -45, 0, -1, null, "Anti-Bromine", false), + $Kr(-36, -48, 0, -1, null, "Anti-Krypton", false), + $Rb(-37, -48, 0, -1, null, "Anti-Rubidium", false), + $Sr(-38, -49, 0, -1, null, "Anti-Strontium", false), + $Y(-39, -50, 0, -1, null, "Anti-Yttrium", false), + $Zr(-40, -51, 0, -1, null, "Anti-Zirconium", false), + $Nb(-41, -53, 0, -1, null, "Anti-Niobium", false), + $Mo(-42, -53, 0, -1, null, "Anti-Molybdenum", false), + $Tc(-43, -55, 0, -1, null, "Anti-Technetium", false), + $Ru(-44, -57, 0, -1, null, "Anti-Ruthenium", false), + $Rh(-45, -58, 0, -1, null, "Anti-Rhodium", false), + $Pd(-46, -60, 0, -1, null, "Anti-Palladium", false), + $Ag(-47, -60, 0, -1, null, "Anti-Silver", false), + $Cd(-48, -64, 0, -1, null, "Anti-Cadmium", false), + $In(-49, -65, 0, -1, null, "Anti-Indium", false), + $Sn(-50, -68, 0, -1, null, "Anti-Tin", false), + $Sb(-51, -70, 0, -1, null, "Anti-Antimony", false), + $Te(-52, -75, 0, -1, null, "Anti-Tellurium", false), + $I(-53, -74, 0, -1, null, "Anti-Iodine", false), + $Xe(-54, -77, 0, -1, null, "Anti-Xenon", false), + $Cs(-55, -77, 0, -1, null, "Anti-Caesium", false), + $Ba(-56, -81, 0, -1, null, "Anti-Barium", false), + $La(-57, -81, 0, -1, null, "Anti-Lantanium", false), + $Ce(-58, -82, 0, -1, null, "Anti-Cerium", false), + $Pr(-59, -81, 0, -1, null, "Anti-Praseodymium", false), + $Nd(-60, -84, 0, -1, null, "Anti-Neidymium", false), + $Pm(-61, -83, 0, -1, null, "Anti-Promethium", false), + $Sm(-62, -88, 0, -1, null, "Anti-Samarium", false), + $Eu(-63, -88, 0, -1, null, "Anti-Europium", false), + $Gd(-64, -93, 0, -1, null, "Anti-Gadolinium", false), + $Tb(-65, -93, 0, -1, null, "Anti-Terbium", false), + $Dy(-66, -96, 0, -1, null, "Anti-Dysprosium", false), + $Ho(-67, -97, 0, -1, null, "Anti-Holmium", false), + $Er(-68, -99, 0, -1, null, "Anti-Erbium", false), + $Tm(-69, -99, 0, -1, null, "Anti-Thulium", false), + $Yb(-70, -103, 0, -1, null, "Anti-Ytterbium", false), + $Lu(-71, -103, 0, -1, null, "Anti-Lutetium", false), + $Hf(-72, -106, 0, -1, null, "Anti-Hafnium", false), + $Ta(-73, -107, 0, -1, null, "Anti-Tantalum", false), + $W(-74, -109, 0, -1, null, "Anti-Wolframium", false), + $Re(-75, -111, 0, -1, null, "Anti-Rhenium", false), + $Os(-76, -114, 0, -1, null, "Anti-Osmium", false), + $Ir(-77, -115, 0, -1, null, "Anti-Iridium", false), + $Pt(-78, -117, 0, -1, null, "Anti-Platinum", false), + $Au(-79, -117, 0, -1, null, "Anti-Gold", false), + $Hg(-80, -120, 0, -1, null, "Anti-Mercury", false), + $Tl(-81, -123, 0, -1, null, "Anti-Thallium", false), + $Pb(-82, -125, 0, -1, null, "Anti-Lead", false), + $Bi(-83, -125, 0, -1, null, "Anti-Bismuth", false), + $Po(-84, -124, 0, -1, null, "Anti-Polonium", false), + $At(-85, -124, 0, -1, null, "Anti-Astatine", false), + $Rn(-86, -134, 0, -1, null, "Anti-Radon", false), + $Fr(-87, -134, 0, -1, null, "Anti-Francium", false), + $Ra(-88, -136, 0, -1, null, "Anti-Radium", false), + $Ac(-89, -136, 0, -1, null, "Anti-Actinium", false), + $Th(-90, -140, 0, -1, null, "Anti-Thorium", false), + $Pa(-91, -138, 0, -1, null, "Anti-Protactinium", false), + $U(-92, -146, 0, -1, null, "Anti-Uranium", false), + $U_235(-92, -143, 0, -1, null, "Anti-Uranium-235", true), + $Np(-93, -144, 0, -1, null, "Anti-Neptunium", false), + $Pu(-94, -152, 0, -1, null, "Anti-Plutonium", false), + $Pu_241(-94, -149, 0, -1, null, "Anti-Plutonium-241", true), + $Am(-95, -150, 0, -1, null, "Anti-Americum", false), + $Cm(-96, -153, 0, -1, null, "Anti-Curium", false), + $Bk(-97, -152, 0, -1, null, "Anti-Berkelium", false), + $Cf(-98, -153, 0, -1, null, "Anti-Californium", false), + $Es(-99, -153, 0, -1, null, "Anti-Einsteinium", false), + $Fm(-100, -157, 0, -1, null, "Anti-Fermium", false), + $Md(-101, -157, 0, -1, null, "Anti-Mendelevium", false), + $No(-102, -157, 0, -1, null, "Anti-Nobelium", false), + $Lr(-103, -159, 0, -1, null, "Anti-Lawrencium", false), + $Rf(-104, -161, 0, -1, null, "Anti-Rutherfordium", false), + $Db(-105, -163, 0, -1, null, "Anti-Dubnium", false), + $Sg(-106, -165, 0, -1, null, "Anti-Seaborgium", false), + $Bh(-107, -163, 0, -1, null, "Anti-Bohrium", false), + $Hs(-108, -169, 0, -1, null, "Anti-Hassium", false), + $Mt(-109, -167, 0, -1, null, "Anti-Meitnerium", false), + $Ds(-110, -171, 0, -1, null, "Anti-Darmstadtium", false), + $Rg(-111, -169, 0, -1, null, "Anti-Roentgenium", false), + $Cn(-112, -173, 0, -1, null, "Anti-Copernicium", false), + $Uut(-113, -171, 0, -1, null, "Anti-Ununtrium", false), + $Fl(-114, -175, 0, -1, null, "Anti-Flerovium", false), + $Uup(-115, -173, 0, -1, null, "Anti-Ununpentium", false), + $Lv(-116, -177, 0, -1, null, "Anti-Livermorium", false), + $Uus(-117, -177, 0, -1, null, "Anti-Ununseptium", false), + $Uuo(-118, -176, 0, -1, null, "Anti-Ununoctium", false), + + $Ma(0, 0, -100, -1, null, "Anti-Magic", false), + $Nt(0, -10000, 0, -1, null, "Anti-Neutronium", false); + + public static volatile int VERSION = 508; + public final long mProtons, mNeutrons, mAdditionalMass, mHalfLifeSeconds; + public final String mName, mDecayTo; + public final boolean mIsIsotope; + + /** + * Links to every pure Material containing just this Element. + */ + public ArrayList mLinkedMaterials = new ArrayList(); + + /** + * @param aProtons Amount of Protons. Antiprotons if negative. + * @param aNeutrons Amount of Neutrons. Antineutrons if negative. (I could have made mistakes with the Neutron amount calculation, please tell me if I did something wrong) + * @param aHalfLifeSeconds Amount of Half Life this Material has in Seconds. -1 for stable Materials. + * @param aDecayTo String representing the Elements it decays to. Separated by an '&' Character. + * @param aName Name of the Element + */ + private Element(long aProtons, long aNeutrons, long aAdditionalMass, long aHalfLifeSeconds, String aDecayTo, String aName, boolean aIsIsotope) { + mProtons = aProtons; + mNeutrons = aNeutrons; + mAdditionalMass = aAdditionalMass; + mHalfLifeSeconds = aHalfLifeSeconds; + mDecayTo = aDecayTo; + mName = aName; + mIsIsotope = aIsIsotope; + } + + public static Element get(String aMaterialName) { + Object tObject = GT_Utility.getFieldContent(Element.class, aMaterialName, false, false); + if (tObject != null && tObject instanceof Element) return (Element) tObject; + return _NULL; + } + + public long getProtons() { + return mProtons; + } + + public long getNeutrons() { + return mNeutrons; + } + + public long getMass() { + return mProtons + mNeutrons + mAdditionalMass; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/enums/GT_Values.java b/src/main/java/gregtech/api/enums/GT_Values.java index 7e146cd2..85e0af4b 100644 --- a/src/main/java/gregtech/api/enums/GT_Values.java +++ b/src/main/java/gregtech/api/enums/GT_Values.java @@ -3,10 +3,6 @@ package gregtech.api.enums; import gregtech.api.interfaces.internal.IGT_Mod; import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.net.IGT_NetworkHandler; - -import java.util.Arrays; -import java.util.HashSet; - import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.fluids.FluidStack; @@ -14,137 +10,104 @@ import net.minecraftforge.oredict.OreDictionary; /** * Made for static imports, this Class is just a Helper. - * + *

* I am doing this to have a better Table alike view on my Code, so I can change things faster using the Block Selection Mode of eclipse. - * + *

* Go to "Window > Preferences > Java > Editor > Content Assist > Favorites" to set static importable Constant Classes such as this one as AutoCompleteable. */ public class GT_Values { - // unused: A, C, D, G, H, I, J, K, N, O, Q, R, S, T - - // TODO: Rename Material Units to 'U' - // TODO: Rename OrePrefixes Class to 'P' - // TODO: Rename Materials Class to 'M' - - /** Empty String for an easier Call Hierarchy */ - public static final String E = ""; - - /** The first 32 Bits */ - public static final int[] B = new int[] {1<<0,1<<1,1<<2,1<<3,1<<4,1<<5,1<<6,1<<7,1<<8,1<<9,1<<10,1<<11,1<<12,1<<13,1<<14,1<<15,1<<16,1<<17,1<<18,1<<19,1<<20,1<<21,1<<22,1<<23,1<<24,1<<25,1<<26,1<<27,1<<28,1<<29,1<<30,1<<31}; - - /** - * Renamed from "MATERIAL_UNIT" to just "M" - * - * This is worth exactly one normal Item. - * This Constant can be divided by many commonly used Numbers such as - * 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, ... 64 or 81 - * without loosing precision and is for that reason used as Unit of Amount. - * But it is also small enough to be multiplied with larger Numbers. - * - * This is used to determine the amount of Material contained inside a prefixed Ore. - * For example Nugget = M / 9 as it contains out of 1/9 of an Ingot. - */ - public static final long M = 3628800; - - /** - * Renamed from "FLUID_MATERIAL_UNIT" to just "L" - * - * Fluid per Material Unit (Prime Factors: 3 * 3 * 2 * 2 * 2 * 2) - */ - public static final long L = 144; - - /** The Item WildCard Tag. Even shorter than the "-1" of the past */ - public static final short W = OreDictionary.WILDCARD_VALUE; - - /** The Voltage Tiers. Use this Array instead of the old named Voltage Variables */ - public static final long[] V = new long[] {8, 32, 128, 512, 2048, 8192, 32768, 131072, 524288, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE}; - - /** The short Names for the Voltages */ - public static final String[] VN = new String[] {"ULV", "LV", "MV", "HV", "EV", "IV", "LuV", "ZPM", "UV", "MAX", "MAX", "MAX", "MAX", "MAX", "MAX", "MAX"}; - - /** The long Names for the Voltages */ - public static final String[] VOLTAGE_NAMES = new String[] {"Ultra Low Voltage", "Low Voltage", "Medium Voltage", "High Voltage", "Extreme Voltage", "Insane Voltage", "Ludicrous Voltage", "ZPM Voltage", "Ultimate Voltage", "Maximum Voltage", "Maximum Voltage", "Maximum Voltage", "Maximum Voltage", "Maximum Voltage", "Maximum Voltage", "Maximum Voltage"}; - - /** The Mod Object itself. That is the GT_Mod-Object. It's needed to open GUI's and similar. */ - public static IGT_Mod GT; - - /** Use this Object to add Recipes. (Recipe Adder) */ - public static IGT_RecipeAdder RA; - - /** For Internal Usage (Network) */ - public static IGT_NetworkHandler NW; - - /** This way it is possible to have a Call Hierarchy of NullPointers in ItemStack based Functions, and also because most of the time I don't know what kind of Data Type the "null" stands for */ - public static final ItemStack NI = null; - - /** This way it is possible to have a Call Hierarchy of NullPointers in FluidStack based Functions, and also because most of the time I don't know what kind of Data Type the "null" stands for */ - public static final FluidStack NF = null; - - /** Not really Constants, but they set using the Config and therefore should be constant (those are for the Debug Mode) */ - public static boolean D1 = false, D2 = false; - - /** If you have to give something a World Parameter but there is no World... (Dummy World) */ - public static World DW; - - /** - * MOD ID Strings, since they are very common Parameters. - */ - public static final String - MOD_ID = "gregtech" - - , MOD_ID_IC2 = "IC2" - , MOD_ID_NC = "IC2NuclearControl" - - , MOD_ID_TC = "Thaumcraft" - - , MOD_ID_TF = "TwilightForest" - - , MOD_ID_RC = "Railcraft" - - , MOD_ID_TE = "ThermalExpansion" - - , MOD_ID_AE = "appliedenergistics2" - - , MOD_ID_TFC = "terrafirmacraft" - - , MOD_ID_PFAA = "PFAAGeologica" - - , MOD_ID_FR = "Forestry" - , MOD_ID_HaC = "harvestcraft" - , MOD_ID_APC = "AppleCore" - , MOD_ID_MaCr = "magicalcrops" - , MOD_ID_GaEn = "ganysend" - , MOD_ID_GaSu = "ganyssurface" - , MOD_ID_GaNe = "ganysnether" - - , MOD_ID_BC_SILICON = "BuildCraft|Silicon" - , MOD_ID_BC_TRANSPORT = "BuildCraft|Transport" - , MOD_ID_BC_FACTORY = "BuildCraft|Factory" - , MOD_ID_BC_ENERGY = "BuildCraft|Energy" - , MOD_ID_BC_BUILDERS = "BuildCraft|Builders" - , MOD_ID_BC_CORE = "BuildCraft|Core" - - , MOD_ID_GC_CORE = "GalacticraftCore" - , MOD_ID_GC_MARS = "GalacticraftMars" - , MOD_ID_GC_PLANETS = "GalacticraftPlanets" - ; - - /** File Paths and Resource Paths */ + // unused: A, C, D, G, H, I, J, K, N, O, Q, R, S, T + + // TODO: Rename Material Units to 'U' + // TODO: Rename OrePrefixes Class to 'P' + // TODO: Rename Materials Class to 'M' + + /** + * Empty String for an easier Call Hierarchy + */ + public static final String E = ""; + + /** + * The first 32 Bits + */ + public static final int[] B = new int[]{1 << 0, 1 << 1, 1 << 2, 1 << 3, 1 << 4, 1 << 5, 1 << 6, 1 << 7, 1 << 8, 1 << 9, 1 << 10, 1 << 11, 1 << 12, 1 << 13, 1 << 14, 1 << 15, 1 << 16, 1 << 17, 1 << 18, 1 << 19, 1 << 20, 1 << 21, 1 << 22, 1 << 23, 1 << 24, 1 << 25, 1 << 26, 1 << 27, 1 << 28, 1 << 29, 1 << 30, 1 << 31}; + + /** + * Renamed from "MATERIAL_UNIT" to just "M" + *

+ * This is worth exactly one normal Item. + * This Constant can be divided by many commonly used Numbers such as + * 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, ... 64 or 81 + * without loosing precision and is for that reason used as Unit of Amount. + * But it is also small enough to be multiplied with larger Numbers. + *

+ * This is used to determine the amount of Material contained inside a prefixed Ore. + * For example Nugget = M / 9 as it contains out of 1/9 of an Ingot. + */ + public static final long M = 3628800; + + /** + * Renamed from "FLUID_MATERIAL_UNIT" to just "L" + *

+ * Fluid per Material Unit (Prime Factors: 3 * 3 * 2 * 2 * 2 * 2) + */ + public static final long L = 144; + + /** + * The Item WildCard Tag. Even shorter than the "-1" of the past + */ + public static final short W = OreDictionary.WILDCARD_VALUE; + + /** + * The Voltage Tiers. Use this Array instead of the old named Voltage Variables + */ + public static final long[] V = new long[]{8, 32, 128, 512, 2048, 8192, 32768, 131072, 524288, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE}; + + /** + * The short Names for the Voltages + */ + public static final String[] VN = new String[]{"ULV", "LV", "MV", "HV", "EV", "IV", "LuV", "ZPM", "UV", "MAX", "MAX", "MAX", "MAX", "MAX", "MAX", "MAX"}; + + /** + * The long Names for the Voltages + */ + public static final String[] VOLTAGE_NAMES = new String[]{"Ultra Low Voltage", "Low Voltage", "Medium Voltage", "High Voltage", "Extreme Voltage", "Insane Voltage", "Ludicrous Voltage", "ZPM Voltage", "Ultimate Voltage", "Maximum Voltage", "Maximum Voltage", "Maximum Voltage", "Maximum Voltage", "Maximum Voltage", "Maximum Voltage", "Maximum Voltage"}; + /** + * This way it is possible to have a Call Hierarchy of NullPointers in ItemStack based Functions, and also because most of the time I don't know what kind of Data Type the "null" stands for + */ + public static final ItemStack NI = null; + /** + * This way it is possible to have a Call Hierarchy of NullPointers in FluidStack based Functions, and also because most of the time I don't know what kind of Data Type the "null" stands for + */ + public static final FluidStack NF = null; + /** + * MOD ID Strings, since they are very common Parameters. + */ public static final String - TEX_DIR = "textures/" - , TEX_DIR_GUI = TEX_DIR + "gui/" - , TEX_DIR_ITEM = TEX_DIR + "items/" - , TEX_DIR_BLOCK = TEX_DIR + "blocks/" - , TEX_DIR_ENTITY = TEX_DIR + "entity/" - , TEX_DIR_ASPECTS = TEX_DIR + "aspects/" - - , RES_PATH = MOD_ID + ":" + TEX_DIR - , RES_PATH_GUI = MOD_ID + ":" + TEX_DIR_GUI - , RES_PATH_ITEM = MOD_ID + ":" - , RES_PATH_BLOCK = MOD_ID + ":" - , RES_PATH_ENTITY = MOD_ID + ":" + TEX_DIR_ENTITY - , RES_PATH_ASPECTS = MOD_ID + ":" + TEX_DIR_ASPECTS - - , RES_PATH_IC2 = MOD_ID_IC2.toLowerCase() + ":" - ; + MOD_ID = "gregtech", MOD_ID_IC2 = "IC2", MOD_ID_NC = "IC2NuclearControl", MOD_ID_TC = "Thaumcraft", MOD_ID_TF = "TwilightForest", MOD_ID_RC = "Railcraft", MOD_ID_TE = "ThermalExpansion", MOD_ID_AE = "appliedenergistics2", MOD_ID_TFC = "terrafirmacraft", MOD_ID_PFAA = "PFAAGeologica", MOD_ID_FR = "Forestry", MOD_ID_HaC = "harvestcraft", MOD_ID_APC = "AppleCore", MOD_ID_MaCr = "magicalcrops", MOD_ID_GaEn = "ganysend", MOD_ID_GaSu = "ganyssurface", MOD_ID_GaNe = "ganysnether", MOD_ID_BC_SILICON = "BuildCraft|Silicon", MOD_ID_BC_TRANSPORT = "BuildCraft|Transport", MOD_ID_BC_FACTORY = "BuildCraft|Factory", MOD_ID_BC_ENERGY = "BuildCraft|Energy", MOD_ID_BC_BUILDERS = "BuildCraft|Builders", MOD_ID_BC_CORE = "BuildCraft|Core", MOD_ID_GC_CORE = "GalacticraftCore", MOD_ID_GC_MARS = "GalacticraftMars", MOD_ID_GC_PLANETS = "GalacticraftPlanets"; + /** + * File Paths and Resource Paths + */ + public static final String + TEX_DIR = "textures/", TEX_DIR_GUI = TEX_DIR + "gui/", TEX_DIR_ITEM = TEX_DIR + "items/", TEX_DIR_BLOCK = TEX_DIR + "blocks/", TEX_DIR_ENTITY = TEX_DIR + "entity/", TEX_DIR_ASPECTS = TEX_DIR + "aspects/", RES_PATH = MOD_ID + ":" + TEX_DIR, RES_PATH_GUI = MOD_ID + ":" + TEX_DIR_GUI, RES_PATH_ITEM = MOD_ID + ":", RES_PATH_BLOCK = MOD_ID + ":", RES_PATH_ENTITY = MOD_ID + ":" + TEX_DIR_ENTITY, RES_PATH_ASPECTS = MOD_ID + ":" + TEX_DIR_ASPECTS, RES_PATH_IC2 = MOD_ID_IC2.toLowerCase() + ":"; + /** + * The Mod Object itself. That is the GT_Mod-Object. It's needed to open GUI's and similar. + */ + public static IGT_Mod GT; + /** + * Use this Object to add Recipes. (Recipe Adder) + */ + public static IGT_RecipeAdder RA; + /** + * For Internal Usage (Network) + */ + public static IGT_NetworkHandler NW; + /** + * Not really Constants, but they set using the Config and therefore should be constant (those are for the Debug Mode) + */ + public static boolean D1 = false, D2 = false; + /** + * If you have to give something a World Parameter but there is no World... (Dummy World) + */ + public static World DW; } \ No newline at end of file diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java index 20850712..4c7a7e9c 100644 --- a/src/main/java/gregtech/api/enums/ItemList.java +++ b/src/main/java/gregtech/api/enums/ItemList.java @@ -1,6 +1,5 @@ package gregtech.api.enums; -import static gregtech.api.enums.GT_Values.W; import gregtech.api.interfaces.IItemContainer; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; @@ -10,776 +9,774 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; +import static gregtech.api.enums.GT_Values.W; + /** * Class containing all non-OreDict Items of GregTech. */ public enum ItemList implements IItemContainer { - Display_ITS_FREE, - Display_Fluid, - TE_Slag, - TE_Slag_Rich, - TE_Rockwool, - TE_Hardened_Glass, - FR_Lemon, - FR_Mulch, - FR_Fertilizer, - FR_Compost, - FR_Silk, - FR_Wax, - FR_RefractoryWax, - FR_WaxCapsule, - FR_RefractoryCapsule, - FR_Stick, - FR_Casing_Impregnated, - FR_Casing_Sturdy, - FR_Casing_Hardened, - FR_Bee_Drone, - FR_Bee_Princess, - FR_Bee_Queen, - FR_Tree_Sapling, - FR_Butterfly, - FR_Larvae, - FR_Serum, - FR_Caterpillar, - FR_PollenFertile, - TF_LiveRoot, - TF_Vial_FieryBlood, - TF_Vial_FieryTears, - RC_ShuntingWire, - RC_ShuntingWireFrame, - RC_Rail_Reinforced, - RC_Rail_Electric, - RC_Rail_Standard, - RC_Rail_Wooden, - RC_Rail_Adv, - RC_Rail_HS, - RC_Tie_Wood, - RC_Tie_Stone, - RC_Bed_Wood, - RC_Bed_Stone, - RC_Rebar, - IC2_Item_Casing_Tin, - IC2_Item_Casing_Copper, - IC2_Item_Casing_Iron, - IC2_Item_Casing_Steel, - IC2_Item_Casing_Lead, - IC2_Item_Casing_Bronze, - IC2_Item_Casing_Gold, - IC2_Spray_WeedEx, - IC2_Scrap, - IC2_Scrapbox, - IC2_Fertilizer, - IC2_Mixed_Metal_Ingot, - IC2_Hops, - IC2_Resin, - IC2_Plantball, - IC2_PlantballCompressed, - IC2_CoffeeBeans, - IC2_CoffeePowder, - IC2_Crop_Seeds, - IC2_Grin_Powder, - IC2_Energium_Dust, - IC2_Compressed_Coal_Ball, - IC2_Compressed_Coal_Chunk, - IC2_Fuel_Rod_Empty, - IC2_Fuel_Can_Empty, - IC2_Fuel_Can_Filled, - IC2_Food_Can_Empty, - IC2_Food_Can_Filled, - IC2_Food_Can_Spoiled, - IC2_ShaftIron, - IC2_ShaftSteel, - IC2_Industrial_Diamond, - IC2_ForgeHammer, - IC2_WireCutter, - IC2_SuBattery, - IC2_ReBattery, - IC2_AdvBattery, - IC2_EnergyCrystal, - IC2_LapotronCrystal, - Arrow_Head_Glass_Emtpy, - Arrow_Head_Glass_Poison, - Arrow_Head_Glass_Poison_Long, - Arrow_Head_Glass_Poison_Strong, - Arrow_Head_Glass_Slowness, - Arrow_Head_Glass_Slowness_Long, - Arrow_Head_Glass_Weakness, - Arrow_Head_Glass_Weakness_Long, - Arrow_Head_Glass_Holy_Water, - Arrow_Wooden_Glass_Emtpy, - Arrow_Wooden_Glass_Poison, - Arrow_Wooden_Glass_Poison_Long, - Arrow_Wooden_Glass_Poison_Strong, - Arrow_Wooden_Glass_Slowness, - Arrow_Wooden_Glass_Slowness_Long, - Arrow_Wooden_Glass_Weakness, - Arrow_Wooden_Glass_Weakness_Long, - Arrow_Wooden_Glass_Holy_Water, - Arrow_Plastic_Glass_Emtpy, - Arrow_Plastic_Glass_Poison, - Arrow_Plastic_Glass_Poison_Long, - Arrow_Plastic_Glass_Poison_Strong, - Arrow_Plastic_Glass_Slowness, - Arrow_Plastic_Glass_Slowness_Long, - Arrow_Plastic_Glass_Weakness, - Arrow_Plastic_Glass_Weakness_Long, - Arrow_Plastic_Glass_Holy_Water, - Shape_Empty, - Shape_Mold_Bottle, - Shape_Mold_Plate, - Shape_Mold_Ingot, - Shape_Mold_Casing, - Shape_Mold_Gear, - Shape_Mold_Gear_Small, - Shape_Mold_Credit, - Shape_Mold_Nugget, - Shape_Mold_Block, - Shape_Mold_Ball, - Shape_Mold_Bun, - Shape_Mold_Bread, - Shape_Mold_Baguette, - Shape_Mold_Cylinder, - Shape_Mold_Anvil, - Shape_Mold_Arrow, - Shape_Mold_Name, - Shape_Slicer_Flat, - Shape_Slicer_Stripes, - Shape_Extruder_Bottle, - Shape_Extruder_Plate, - Shape_Extruder_Cell, - Shape_Extruder_Ring, - Shape_Extruder_Rod, - Shape_Extruder_Bolt, - Shape_Extruder_Ingot, - Shape_Extruder_Wire, - Shape_Extruder_Casing, - Shape_Extruder_Pipe_Tiny, - Shape_Extruder_Pipe_Small, - Shape_Extruder_Pipe_Medium, - Shape_Extruder_Pipe_Large, - Shape_Extruder_Pipe_Huge, - Shape_Extruder_Block, - Shape_Extruder_Sword, - Shape_Extruder_Pickaxe, - Shape_Extruder_Shovel, - Shape_Extruder_Axe, - Shape_Extruder_Hoe, - Shape_Extruder_Hammer, - Shape_Extruder_File, - Shape_Extruder_Saw, - Shape_Extruder_Gear, - Crate_Empty, - Credit_Copper, - Credit_Iron, - Credit_Silver, - Credit_Gold, - Credit_Platinum, - Credit_Osmium, - Credit_Greg_Copper, - Credit_Greg_Cupronickel, - Credit_Greg_Silver, - Credit_Greg_Gold, - Credit_Greg_Platinum, - Credit_Greg_Osmium, - Credit_Greg_Naquadah, - Credit_Greg_Neutronium, - Coin_Gold_Ancient, - Coin_Doge, - Coin_Chocolate, - Cell_Universal_Fluid, - Cell_Empty, - Cell_Water, - Cell_Lava, - Cell_Air, - Large_Fluid_Cell_Steel, - Large_Fluid_Cell_TungstenSteel, - ThermosCan_Empty, - ThermosCan_Dark_Coffee, - ThermosCan_Dark_Cafe_au_lait, - ThermosCan_Coffee, - ThermosCan_Cafe_au_lait, - ThermosCan_Lait_au_cafe, - ThermosCan_Dark_Chocolate_Milk, - ThermosCan_Chocolate_Milk, - ThermosCan_Tea, - ThermosCan_Sweet_Tea, - ThermosCan_Ice_Tea, - Bottle_Empty, - Bottle_Milk, - Bottle_Holy_Water, - Bottle_Purple_Drink, - Bottle_Grape_Juice, - Bottle_Wine, - Bottle_Vinegar, - Bottle_Potato_Juice, - Bottle_Vodka, - Bottle_Leninade, - Bottle_Mineral_Water, - Bottle_Salty_Water, - Bottle_Reed_Water, - Bottle_Rum, - Bottle_Pirate_Brew, - Bottle_Hops_Juice, - Bottle_Dark_Beer, - Bottle_Dragon_Blood, - Bottle_Wheaty_Juice, - Bottle_Scotch, - Bottle_Glen_McKenner, - Bottle_Wheaty_Hops_Juice, - Bottle_Beer, - Bottle_Chilly_Sauce, - Bottle_Hot_Sauce, - Bottle_Diabolo_Sauce, - Bottle_Diablo_Sauce, - Bottle_Snitches_Glitch_Sauce, - Bottle_Apple_Juice, - Bottle_Cider, - Bottle_Golden_Apple_Juice, - Bottle_Golden_Cider, - Bottle_Iduns_Apple_Juice, - Bottle_Notches_Brew, - Bottle_Lemon_Juice, - Bottle_Limoncello, - Bottle_Lemonade, - Bottle_Alcopops, - Bottle_Cave_Johnsons_Grenade_Juice, - Food_Potato_On_Stick, - Food_Potato_On_Stick_Roasted, - Food_Fries, - Food_ChiliChips, - Food_PotatoChips, - Food_Baked_Potato, - Food_Poisonous_Potato, - Food_Cheese, - Food_Chum, - Food_Chum_On_Stick, - Food_Dough, - Food_Dough_Sugar, - Food_Dough_Chocolate, - Food_Raw_Cookie, - Food_Flat_Dough, - Food_Burger_Veggie, - Food_Burger_Cheese, - Food_Burger_Meat, - Food_Burger_Chum, - Food_Sandwich_Veggie, - Food_Sandwich_Cheese, - Food_Sandwich_Bacon, - Food_Sandwich_Steak, - Food_Large_Sandwich_Veggie, - Food_Large_Sandwich_Cheese, - Food_Large_Sandwich_Bacon, - Food_Large_Sandwich_Steak, - Food_Sliced_Lemon, - Food_Sliced_Tomato, - Food_Sliced_Onion, - Food_Sliced_Cucumber, - Food_Sliced_Cheese, - Food_Sliced_Bread, - Food_Sliced_Bun, - Food_Sliced_Baguette, - Food_Sliced_Breads, - Food_Sliced_Buns, - Food_Sliced_Baguettes, - Food_Packaged_Fries, - Food_Packaged_PotatoChips, - Food_Packaged_ChiliChips, - Food_Raw_Potato, - Food_Raw_Fries, - Food_Raw_PotatoChips, - Food_Raw_Bread, - Food_Raw_Bun, - Food_Raw_Baguette, - Food_Raw_Cake, - Food_Raw_Pizza_Veggie, - Food_Raw_Pizza_Cheese, - Food_Raw_Pizza_Meat, - Food_Baked_Bread, - Food_Baked_Bun, - Food_Baked_Baguette, - Food_Baked_Cake, - Food_Baked_Pizza_Veggie, - Food_Baked_Pizza_Cheese, - Food_Baked_Pizza_Meat, - Crop_Drop_Argentia, - Crop_Drop_Plumbilia, - Crop_Drop_Indigo, - Crop_Drop_Ferru, - Crop_Drop_Aurelia, - Crop_Drop_OilBerry, - Crop_Drop_MilkWart, - Crop_Drop_BobsYerUncleRanks, - Crop_Drop_Coppon, - Crop_Drop_Tine, - Crop_Drop_Chilly, - Crop_Drop_Lemon, - Crop_Drop_Onion, - Crop_Drop_Tomato, - Crop_Drop_MTomato, - Crop_Drop_Grapes, - Crop_Drop_TeaLeaf, - Crop_Drop_Cucumber, - Schematic, - Schematic_Crafting, - Schematic_1by1, - Schematic_2by2, - Schematic_3by3, - Schematic_Dust, - Circuit_Integrated, - Circuit_Board_Basic, - Circuit_Board_Advanced, - Circuit_Board_Elite, - Circuit_Parts_Advanced, - Circuit_Parts_Wiring_Basic, - Circuit_Parts_Wiring_Advanced, - Circuit_Parts_Wiring_Elite, - Circuit_Parts_Crystal_Chip_Elite, - Circuit_Parts_Crystal_Chip_Master, - Circuit_Primitive, - Circuit_Basic, - Circuit_Good, - Circuit_Advanced, - Circuit_Data, - Circuit_Elite, - Circuit_Master, - Circuit_Ultimate, - Rotor_LV, Rotor_MV, Rotor_HV, Rotor_EV, Rotor_IV, Rotor_LuV, Rotor_ZPM, Rotor_UV, - Electric_Motor_LV, Electric_Motor_MV, Electric_Motor_HV, Electric_Motor_EV, Electric_Motor_IV, Electric_Motor_LuV, Electric_Motor_ZPM, Electric_Motor_UV, - Electric_Pump_LV, Electric_Pump_MV, Electric_Pump_HV, Electric_Pump_EV, Electric_Pump_IV, Electric_Pump_LuV, Electric_Pump_ZPM, Electric_Pump_UV, - Conveyor_Module_LV, Conveyor_Module_MV, Conveyor_Module_HV, Conveyor_Module_EV, Conveyor_Module_IV, Conveyor_Module_LuV, Conveyor_Module_ZPM, Conveyor_Module_UV, - Electric_Piston_LV, Electric_Piston_MV, Electric_Piston_HV, Electric_Piston_EV, Electric_Piston_IV, Electric_Piston_LuV, Electric_Piston_ZPM, Electric_Piston_UV, - Field_Generator_LV, Field_Generator_MV, Field_Generator_HV, Field_Generator_EV, Field_Generator_IV, Field_Generator_LuV, Field_Generator_ZPM, Field_Generator_UV, - Robot_Arm_LV, Robot_Arm_MV, Robot_Arm_HV, Robot_Arm_EV, Robot_Arm_IV, Robot_Arm_LuV, Robot_Arm_ZPM, Robot_Arm_UV, - Emitter_LV, Emitter_MV, Emitter_HV, Emitter_EV, Emitter_IV, Emitter_LuV, Emitter_ZPM, Emitter_UV, - Sensor_LV, Sensor_MV, Sensor_HV, Sensor_EV, Sensor_IV, Sensor_LuV, Sensor_ZPM, Sensor_UV, - Battery_Hull_LV, Battery_Hull_MV, Battery_Hull_HV, - Battery_SU_LV_SulfuricAcid, - Battery_SU_LV_Mercury, - Battery_SU_MV_SulfuricAcid, - Battery_SU_MV_Mercury, - Battery_SU_HV_SulfuricAcid, - Battery_SU_HV_Mercury, - Battery_RE_ULV_Tantalum, - Battery_RE_LV_Cadmium, - Battery_RE_LV_Lithium, - Battery_RE_LV_Sodium, - Battery_RE_MV_Cadmium, - Battery_RE_MV_Lithium, - Battery_RE_MV_Sodium, - Battery_RE_HV_Cadmium, - Battery_RE_HV_Lithium, - Battery_RE_HV_Sodium, - ZPM, - Fuel_Can_Plastic_Empty, - Fuel_Can_Plastic_Filled, - Upgrade_Battery, - Upgrade_Overclocker, - Upgrade_Muffler, - Upgrade_SteamEngine, - Upgrade_Lock, - Cover_Controller, - Cover_ActivityDetector, - Cover_FluidDetector, - Cover_ItemDetector, - Cover_EnergyDetector, - Cover_Drain, - Cover_Shutter, - Cover_Crafting, - Cover_Screen, - Cover_SolarPanel, - Cover_SolarPanel_8V, - Cover_SolarPanel_LV, - Cover_SolarPanel_MV, - Cover_SolarPanel_HV, - Cover_SolarPanel_EV, - Cover_SolarPanel_IV, - Cover_SolarPanel_LuV, - Cover_SolarPanel_ZPM, - Cover_SolarPanel_UV, - Ingot_IridiumAlloy, - Plank_Oak, - Plank_Spruce, - Plank_Birch, - Plank_Jungle, - Plank_Acacia, - Plank_DarkOak, - Plank_Larch, - Plank_Teak, - Plank_Acacia_Green, - Plank_Lime, - Plank_Chestnut, - Plank_Wenge, - Plank_Baobab, - Plank_Sequoia, - Plank_Kapok, - Plank_Ebony, - Plank_Mahagony, - Plank_Balsa, - Plank_Willow, - Plank_Walnut, - Plank_Greenheart, - Plank_Cherry, - Plank_Mahoe, - Plank_Poplar, - Plank_Palm, - Plank_Papaya, - Plank_Pine, - Plank_Plum, - Plank_Maple, - Plank_Citrus, - Dye_Indigo, - Dye_SquidInk, - Dye_Bonemeal, - Dye_Cocoa, - Duct_Tape, - Book_Written_00, - Book_Written_01, - Book_Written_02, - Book_Written_03, - Paper_Printed_Pages, - Paper_Magic_Empty, - Paper_Magic_Page, - Paper_Magic_Pages, - Paper_Punch_Card_Empty, - Paper_Punch_Card_Encoded, - McGuffium_239, - NC_SensorCard, - NC_SensorKit, - Tool_Matches, - Tool_MatchBox_Used, - Tool_MatchBox_Full, - Tool_Lighter_Invar_Empty, - Tool_Lighter_Invar_Used, - Tool_Lighter_Invar_Full, - Tool_Lighter_Platinum_Empty, - Tool_Lighter_Platinum_Used, - Tool_Lighter_Platinum_Full, - Tool_Cheat, - Tool_Scanner, - Tool_DataOrb, - Tool_DataStick, - Tool_Sonictron, - Tool_Sword_Bronze, - Tool_Pickaxe_Bronze, - Tool_Shovel_Bronze, - Tool_Axe_Bronze, - Tool_Hoe_Bronze, - Tool_Sword_Steel, - Tool_Pickaxe_Steel, - Tool_Shovel_Steel, - Tool_Axe_Steel, - Tool_Hoe_Steel, - - Spray_Empty, Spray_Bug, Spray_Ice, Spray_Hardener, Spray_CFoam, Spray_Pepper, Spray_Hydration, - 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, - Spray_Color_00, Spray_Color_01, Spray_Color_02, Spray_Color_03, Spray_Color_04, Spray_Color_05, Spray_Color_06, Spray_Color_07, Spray_Color_08, Spray_Color_09, Spray_Color_10, Spray_Color_11, Spray_Color_12, Spray_Color_13, Spray_Color_14, Spray_Color_15, - Spray_Color_Used_00, Spray_Color_Used_01, Spray_Color_Used_02, Spray_Color_Used_03, Spray_Color_Used_04, Spray_Color_Used_05, Spray_Color_Used_06, Spray_Color_Used_07, Spray_Color_Used_08, Spray_Color_Used_09, Spray_Color_Used_10, Spray_Color_Used_11, Spray_Color_Used_12, Spray_Color_Used_13, Spray_Color_Used_14, Spray_Color_Used_15, - - Armor_Cheat, - Armor_Cloaking, - Armor_Lamp, - Armor_LithiumPack, - Armor_LapotronicPack, - Armor_ForceField, - Energy_LapotronicOrb, - Reactor_NeutronReflector, - Component_Turbine_Bronze, - Component_Turbine_Steel, - Component_Turbine_Magnalium, - Component_Turbine_TungstenSteel, - Component_Turbine_Carbon, - Component_LavaFilter, - Component_Sawblade_Diamond, - Component_Grinder_Diamond, - Component_Grinder_Tungsten, - Component_Filter, - Component_Minecart_Wheels_Iron, - Component_Minecart_Wheels_Steel, - - Generator_Diesel_LV, - Generator_Diesel_MV, - Generator_Diesel_HV, - Generator_Gas_Turbine_LV, - Generator_Gas_Turbine_MV, - Generator_Gas_Turbine_HV, - Generator_Steam_Turbine_LV, - Generator_Steam_Turbine_MV, - Generator_Steam_Turbine_HV, - Generator_Naquadah_Mark_I, - Generator_Naquadah_Mark_II, - Generator_Naquadah_Fluid, + Display_ITS_FREE, + Display_Fluid, + TE_Slag, + TE_Slag_Rich, + TE_Rockwool, + TE_Hardened_Glass, + FR_Lemon, + FR_Mulch, + FR_Fertilizer, + FR_Compost, + FR_Silk, + FR_Wax, + FR_RefractoryWax, + FR_WaxCapsule, + FR_RefractoryCapsule, + FR_Stick, + FR_Casing_Impregnated, + FR_Casing_Sturdy, + FR_Casing_Hardened, + FR_Bee_Drone, + FR_Bee_Princess, + FR_Bee_Queen, + FR_Tree_Sapling, + FR_Butterfly, + FR_Larvae, + FR_Serum, + FR_Caterpillar, + FR_PollenFertile, + TF_LiveRoot, + TF_Vial_FieryBlood, + TF_Vial_FieryTears, + RC_ShuntingWire, + RC_ShuntingWireFrame, + RC_Rail_Reinforced, + RC_Rail_Electric, + RC_Rail_Standard, + RC_Rail_Wooden, + RC_Rail_Adv, + RC_Rail_HS, + RC_Tie_Wood, + RC_Tie_Stone, + RC_Bed_Wood, + RC_Bed_Stone, + RC_Rebar, + IC2_Item_Casing_Tin, + IC2_Item_Casing_Copper, + IC2_Item_Casing_Iron, + IC2_Item_Casing_Steel, + IC2_Item_Casing_Lead, + IC2_Item_Casing_Bronze, + IC2_Item_Casing_Gold, + IC2_Spray_WeedEx, + IC2_Scrap, + IC2_Scrapbox, + IC2_Fertilizer, + IC2_Mixed_Metal_Ingot, + IC2_Hops, + IC2_Resin, + IC2_Plantball, + IC2_PlantballCompressed, + IC2_CoffeeBeans, + IC2_CoffeePowder, + IC2_Crop_Seeds, + IC2_Grin_Powder, + IC2_Energium_Dust, + IC2_Compressed_Coal_Ball, + IC2_Compressed_Coal_Chunk, + IC2_Fuel_Rod_Empty, + IC2_Fuel_Can_Empty, + IC2_Fuel_Can_Filled, + IC2_Food_Can_Empty, + IC2_Food_Can_Filled, + IC2_Food_Can_Spoiled, + IC2_ShaftIron, + IC2_ShaftSteel, + IC2_Industrial_Diamond, + IC2_ForgeHammer, + IC2_WireCutter, + IC2_SuBattery, + IC2_ReBattery, + IC2_AdvBattery, + IC2_EnergyCrystal, + IC2_LapotronCrystal, + Arrow_Head_Glass_Emtpy, + Arrow_Head_Glass_Poison, + Arrow_Head_Glass_Poison_Long, + Arrow_Head_Glass_Poison_Strong, + Arrow_Head_Glass_Slowness, + Arrow_Head_Glass_Slowness_Long, + Arrow_Head_Glass_Weakness, + Arrow_Head_Glass_Weakness_Long, + Arrow_Head_Glass_Holy_Water, + Arrow_Wooden_Glass_Emtpy, + Arrow_Wooden_Glass_Poison, + Arrow_Wooden_Glass_Poison_Long, + Arrow_Wooden_Glass_Poison_Strong, + Arrow_Wooden_Glass_Slowness, + Arrow_Wooden_Glass_Slowness_Long, + Arrow_Wooden_Glass_Weakness, + Arrow_Wooden_Glass_Weakness_Long, + Arrow_Wooden_Glass_Holy_Water, + Arrow_Plastic_Glass_Emtpy, + Arrow_Plastic_Glass_Poison, + Arrow_Plastic_Glass_Poison_Long, + Arrow_Plastic_Glass_Poison_Strong, + Arrow_Plastic_Glass_Slowness, + Arrow_Plastic_Glass_Slowness_Long, + Arrow_Plastic_Glass_Weakness, + Arrow_Plastic_Glass_Weakness_Long, + Arrow_Plastic_Glass_Holy_Water, + Shape_Empty, + Shape_Mold_Bottle, + Shape_Mold_Plate, + Shape_Mold_Ingot, + Shape_Mold_Casing, + Shape_Mold_Gear, + Shape_Mold_Gear_Small, + Shape_Mold_Credit, + Shape_Mold_Nugget, + Shape_Mold_Block, + Shape_Mold_Ball, + Shape_Mold_Bun, + Shape_Mold_Bread, + Shape_Mold_Baguette, + Shape_Mold_Cylinder, + Shape_Mold_Anvil, + Shape_Mold_Arrow, + Shape_Mold_Name, + Shape_Slicer_Flat, + Shape_Slicer_Stripes, + Shape_Extruder_Bottle, + Shape_Extruder_Plate, + Shape_Extruder_Cell, + Shape_Extruder_Ring, + Shape_Extruder_Rod, + Shape_Extruder_Bolt, + Shape_Extruder_Ingot, + Shape_Extruder_Wire, + Shape_Extruder_Casing, + Shape_Extruder_Pipe_Tiny, + Shape_Extruder_Pipe_Small, + Shape_Extruder_Pipe_Medium, + Shape_Extruder_Pipe_Large, + Shape_Extruder_Pipe_Huge, + Shape_Extruder_Block, + Shape_Extruder_Sword, + Shape_Extruder_Pickaxe, + Shape_Extruder_Shovel, + Shape_Extruder_Axe, + Shape_Extruder_Hoe, + Shape_Extruder_Hammer, + Shape_Extruder_File, + Shape_Extruder_Saw, + Shape_Extruder_Gear, + Crate_Empty, + Credit_Copper, + Credit_Iron, + Credit_Silver, + Credit_Gold, + Credit_Platinum, + Credit_Osmium, + Credit_Greg_Copper, + Credit_Greg_Cupronickel, + Credit_Greg_Silver, + Credit_Greg_Gold, + Credit_Greg_Platinum, + Credit_Greg_Osmium, + Credit_Greg_Naquadah, + Credit_Greg_Neutronium, + Coin_Gold_Ancient, + Coin_Doge, + Coin_Chocolate, + Cell_Universal_Fluid, + Cell_Empty, + Cell_Water, + Cell_Lava, + Cell_Air, + Large_Fluid_Cell_Steel, + Large_Fluid_Cell_TungstenSteel, + ThermosCan_Empty, + ThermosCan_Dark_Coffee, + ThermosCan_Dark_Cafe_au_lait, + ThermosCan_Coffee, + ThermosCan_Cafe_au_lait, + ThermosCan_Lait_au_cafe, + ThermosCan_Dark_Chocolate_Milk, + ThermosCan_Chocolate_Milk, + ThermosCan_Tea, + ThermosCan_Sweet_Tea, + ThermosCan_Ice_Tea, + Bottle_Empty, + Bottle_Milk, + Bottle_Holy_Water, + Bottle_Purple_Drink, + Bottle_Grape_Juice, + Bottle_Wine, + Bottle_Vinegar, + Bottle_Potato_Juice, + Bottle_Vodka, + Bottle_Leninade, + Bottle_Mineral_Water, + Bottle_Salty_Water, + Bottle_Reed_Water, + Bottle_Rum, + Bottle_Pirate_Brew, + Bottle_Hops_Juice, + Bottle_Dark_Beer, + Bottle_Dragon_Blood, + Bottle_Wheaty_Juice, + Bottle_Scotch, + Bottle_Glen_McKenner, + Bottle_Wheaty_Hops_Juice, + Bottle_Beer, + Bottle_Chilly_Sauce, + Bottle_Hot_Sauce, + Bottle_Diabolo_Sauce, + Bottle_Diablo_Sauce, + Bottle_Snitches_Glitch_Sauce, + Bottle_Apple_Juice, + Bottle_Cider, + Bottle_Golden_Apple_Juice, + Bottle_Golden_Cider, + Bottle_Iduns_Apple_Juice, + Bottle_Notches_Brew, + Bottle_Lemon_Juice, + Bottle_Limoncello, + Bottle_Lemonade, + Bottle_Alcopops, + Bottle_Cave_Johnsons_Grenade_Juice, + Food_Potato_On_Stick, + Food_Potato_On_Stick_Roasted, + Food_Fries, + Food_ChiliChips, + Food_PotatoChips, + Food_Baked_Potato, + Food_Poisonous_Potato, + Food_Cheese, + Food_Chum, + Food_Chum_On_Stick, + Food_Dough, + Food_Dough_Sugar, + Food_Dough_Chocolate, + Food_Raw_Cookie, + Food_Flat_Dough, + Food_Burger_Veggie, + Food_Burger_Cheese, + Food_Burger_Meat, + Food_Burger_Chum, + Food_Sandwich_Veggie, + Food_Sandwich_Cheese, + Food_Sandwich_Bacon, + Food_Sandwich_Steak, + Food_Large_Sandwich_Veggie, + Food_Large_Sandwich_Cheese, + Food_Large_Sandwich_Bacon, + Food_Large_Sandwich_Steak, + Food_Sliced_Lemon, + Food_Sliced_Tomato, + Food_Sliced_Onion, + Food_Sliced_Cucumber, + Food_Sliced_Cheese, + Food_Sliced_Bread, + Food_Sliced_Bun, + Food_Sliced_Baguette, + Food_Sliced_Breads, + Food_Sliced_Buns, + Food_Sliced_Baguettes, + Food_Packaged_Fries, + Food_Packaged_PotatoChips, + Food_Packaged_ChiliChips, + Food_Raw_Potato, + Food_Raw_Fries, + Food_Raw_PotatoChips, + Food_Raw_Bread, + Food_Raw_Bun, + Food_Raw_Baguette, + Food_Raw_Cake, + Food_Raw_Pizza_Veggie, + Food_Raw_Pizza_Cheese, + Food_Raw_Pizza_Meat, + Food_Baked_Bread, + Food_Baked_Bun, + Food_Baked_Baguette, + Food_Baked_Cake, + Food_Baked_Pizza_Veggie, + Food_Baked_Pizza_Cheese, + Food_Baked_Pizza_Meat, + Crop_Drop_Argentia, + Crop_Drop_Plumbilia, + Crop_Drop_Indigo, + Crop_Drop_Ferru, + Crop_Drop_Aurelia, + Crop_Drop_OilBerry, + Crop_Drop_MilkWart, + Crop_Drop_BobsYerUncleRanks, + Crop_Drop_Coppon, + Crop_Drop_Tine, + Crop_Drop_Chilly, + Crop_Drop_Lemon, + Crop_Drop_Onion, + Crop_Drop_Tomato, + Crop_Drop_MTomato, + Crop_Drop_Grapes, + Crop_Drop_TeaLeaf, + Crop_Drop_Cucumber, + Schematic, + Schematic_Crafting, + Schematic_1by1, + Schematic_2by2, + Schematic_3by3, + Schematic_Dust, + Circuit_Integrated, + Circuit_Board_Basic, + Circuit_Board_Advanced, + Circuit_Board_Elite, + Circuit_Parts_Advanced, + Circuit_Parts_Wiring_Basic, + Circuit_Parts_Wiring_Advanced, + Circuit_Parts_Wiring_Elite, + Circuit_Parts_Crystal_Chip_Elite, + Circuit_Parts_Crystal_Chip_Master, + Circuit_Primitive, + Circuit_Basic, + Circuit_Good, + Circuit_Advanced, + Circuit_Data, + Circuit_Elite, + Circuit_Master, + Circuit_Ultimate, + Rotor_LV, Rotor_MV, Rotor_HV, Rotor_EV, Rotor_IV, Rotor_LuV, Rotor_ZPM, Rotor_UV, + Electric_Motor_LV, Electric_Motor_MV, Electric_Motor_HV, Electric_Motor_EV, Electric_Motor_IV, Electric_Motor_LuV, Electric_Motor_ZPM, Electric_Motor_UV, + Electric_Pump_LV, Electric_Pump_MV, Electric_Pump_HV, Electric_Pump_EV, Electric_Pump_IV, Electric_Pump_LuV, Electric_Pump_ZPM, Electric_Pump_UV, + Conveyor_Module_LV, Conveyor_Module_MV, Conveyor_Module_HV, Conveyor_Module_EV, Conveyor_Module_IV, Conveyor_Module_LuV, Conveyor_Module_ZPM, Conveyor_Module_UV, + Electric_Piston_LV, Electric_Piston_MV, Electric_Piston_HV, Electric_Piston_EV, Electric_Piston_IV, Electric_Piston_LuV, Electric_Piston_ZPM, Electric_Piston_UV, + Field_Generator_LV, Field_Generator_MV, Field_Generator_HV, Field_Generator_EV, Field_Generator_IV, Field_Generator_LuV, Field_Generator_ZPM, Field_Generator_UV, + Robot_Arm_LV, Robot_Arm_MV, Robot_Arm_HV, Robot_Arm_EV, Robot_Arm_IV, Robot_Arm_LuV, Robot_Arm_ZPM, Robot_Arm_UV, + Emitter_LV, Emitter_MV, Emitter_HV, Emitter_EV, Emitter_IV, Emitter_LuV, Emitter_ZPM, Emitter_UV, + Sensor_LV, Sensor_MV, Sensor_HV, Sensor_EV, Sensor_IV, Sensor_LuV, Sensor_ZPM, Sensor_UV, + Battery_Hull_LV, Battery_Hull_MV, Battery_Hull_HV, + Battery_SU_LV_SulfuricAcid, + Battery_SU_LV_Mercury, + Battery_SU_MV_SulfuricAcid, + Battery_SU_MV_Mercury, + Battery_SU_HV_SulfuricAcid, + Battery_SU_HV_Mercury, + Battery_RE_ULV_Tantalum, + Battery_RE_LV_Cadmium, + Battery_RE_LV_Lithium, + Battery_RE_LV_Sodium, + Battery_RE_MV_Cadmium, + Battery_RE_MV_Lithium, + Battery_RE_MV_Sodium, + Battery_RE_HV_Cadmium, + Battery_RE_HV_Lithium, + Battery_RE_HV_Sodium, + ZPM, + Fuel_Can_Plastic_Empty, + Fuel_Can_Plastic_Filled, + Upgrade_Battery, + Upgrade_Overclocker, + Upgrade_Muffler, + Upgrade_SteamEngine, + Upgrade_Lock, + Cover_Controller, + Cover_ActivityDetector, + Cover_FluidDetector, + Cover_ItemDetector, + Cover_EnergyDetector, + Cover_Drain, + Cover_Shutter, + Cover_Crafting, + Cover_Screen, + Cover_SolarPanel, + Cover_SolarPanel_8V, + Cover_SolarPanel_LV, + Cover_SolarPanel_MV, + Cover_SolarPanel_HV, + Cover_SolarPanel_EV, + Cover_SolarPanel_IV, + Cover_SolarPanel_LuV, + Cover_SolarPanel_ZPM, + Cover_SolarPanel_UV, + Ingot_IridiumAlloy, + Plank_Oak, + Plank_Spruce, + Plank_Birch, + Plank_Jungle, + Plank_Acacia, + Plank_DarkOak, + Plank_Larch, + Plank_Teak, + Plank_Acacia_Green, + Plank_Lime, + Plank_Chestnut, + Plank_Wenge, + Plank_Baobab, + Plank_Sequoia, + Plank_Kapok, + Plank_Ebony, + Plank_Mahagony, + Plank_Balsa, + Plank_Willow, + Plank_Walnut, + Plank_Greenheart, + Plank_Cherry, + Plank_Mahoe, + Plank_Poplar, + Plank_Palm, + Plank_Papaya, + Plank_Pine, + Plank_Plum, + Plank_Maple, + Plank_Citrus, + Dye_Indigo, + Dye_SquidInk, + Dye_Bonemeal, + Dye_Cocoa, + Duct_Tape, + Book_Written_00, + Book_Written_01, + Book_Written_02, + Book_Written_03, + Paper_Printed_Pages, + Paper_Magic_Empty, + Paper_Magic_Page, + Paper_Magic_Pages, + Paper_Punch_Card_Empty, + Paper_Punch_Card_Encoded, + McGuffium_239, + NC_SensorCard, + NC_SensorKit, + Tool_Matches, + Tool_MatchBox_Used, + Tool_MatchBox_Full, + Tool_Lighter_Invar_Empty, + Tool_Lighter_Invar_Used, + Tool_Lighter_Invar_Full, + Tool_Lighter_Platinum_Empty, + Tool_Lighter_Platinum_Used, + Tool_Lighter_Platinum_Full, + Tool_Cheat, + Tool_Scanner, + Tool_DataOrb, + Tool_DataStick, + Tool_Sonictron, + Tool_Sword_Bronze, + Tool_Pickaxe_Bronze, + Tool_Shovel_Bronze, + Tool_Axe_Bronze, + Tool_Hoe_Bronze, + Tool_Sword_Steel, + Tool_Pickaxe_Steel, + Tool_Shovel_Steel, + Tool_Axe_Steel, + Tool_Hoe_Steel, - Machine_Bronze_Boiler, - Machine_Bronze_Boiler_Solar, - Machine_Bronze_CraftingTable, - Machine_Bronze_Furnace, - Machine_Bronze_Macerator, - Machine_Bronze_Extractor, - Machine_Bronze_Hammer, - Machine_Bronze_Compressor, - Machine_Bronze_AlloySmelter, - Machine_Bronze_BlastFurnace, - Machine_Steel_Boiler_Lava, - Machine_Steel_Boiler, - Machine_Steel_Furnace, - Machine_Steel_Macerator, - Machine_Steel_Extractor, - Machine_Steel_Hammer, - Machine_Steel_Compressor, - Machine_Steel_AlloySmelter, + Spray_Empty, Spray_Bug, Spray_Ice, Spray_Hardener, Spray_CFoam, Spray_Pepper, Spray_Hydration, + 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, + Spray_Color_00, Spray_Color_01, Spray_Color_02, Spray_Color_03, Spray_Color_04, Spray_Color_05, Spray_Color_06, Spray_Color_07, Spray_Color_08, Spray_Color_09, Spray_Color_10, Spray_Color_11, Spray_Color_12, Spray_Color_13, Spray_Color_14, Spray_Color_15, + Spray_Color_Used_00, Spray_Color_Used_01, Spray_Color_Used_02, Spray_Color_Used_03, Spray_Color_Used_04, Spray_Color_Used_05, Spray_Color_Used_06, Spray_Color_Used_07, Spray_Color_Used_08, Spray_Color_Used_09, Spray_Color_Used_10, Spray_Color_Used_11, Spray_Color_Used_12, Spray_Color_Used_13, Spray_Color_Used_14, Spray_Color_Used_15, - Hull_Bronze, Hull_Steel, Hull_Bronze_Bricks, Hull_Steel_Bricks, - - Transformer_LV_ULV, Transformer_MV_LV, Transformer_HV_MV, Transformer_EV_HV, Transformer_IV_EV, Transformer_LuV_IV, Transformer_ZPM_LuV, Transformer_UV_ZPM, Transformer_MAX_UV, - - Casing_ULV, Casing_LV, Casing_MV, Casing_HV, Casing_EV, Casing_IV, Casing_LuV, Casing_ZPM, Casing_UV, Casing_MAX, Casing_BronzePlatedBricks, Casing_HeatProof, Casing_Coil_Cupronickel, Casing_Coil_Kanthal, Casing_Coil_Nichrome, Casing_Coil_Superconductor, - Casing_SolidSteel, Casing_FrostProof, Casing_Gearbox_Bronze, Casing_Gearbox_Steel, Casing_Gearbox_Titanium, Casing_Gearbox_TungstenSteel, Casing_Processor, Casing_DataDrive, Casing_ContainmentField, Casing_Assembler, Casing_Pump, Casing_Motor, Casing_Pipe_Bronze, Casing_Pipe_Steel, Casing_Pipe_Titanium, Casing_Pipe_TungstenSteel, - Casing_Stripes_A, Casing_Stripes_B, Casing_RadioactiveHazard, Casing_BioHazard, Casing_ExplosionHazard, Casing_FireHazard, Casing_AcidHazard, Casing_MagicHazard, Casing_FrostHazard, Casing_NoiseHazard, Casing_Grate, Casing_Vent, Casing_RadiationProof, Casing_Firebox_Bronze, Casing_Firebox_Steel, Casing_Firebox_TungstenSteel, - Casing_RobustTungstenSteel, Casing_CleanStainlessSteel, Casing_StableTitanium, Casing_Firebox_Titanium, - Hull_ULV, Hull_LV, Hull_MV, Hull_HV, Hull_EV, Hull_IV, Hull_LuV, Hull_ZPM, Hull_UV, Hull_MAX, - - Automation_Filter_ULV, Automation_Filter_LV, Automation_Filter_MV, Automation_Filter_HV, Automation_Filter_EV, Automation_Filter_IV, Automation_Filter_LuV, Automation_Filter_ZPM, Automation_Filter_UV, Automation_Filter_MAX, - Automation_TypeFilter_ULV, Automation_TypeFilter_LV, Automation_TypeFilter_MV, Automation_TypeFilter_HV, Automation_TypeFilter_EV, Automation_TypeFilter_IV, Automation_TypeFilter_LuV, Automation_TypeFilter_ZPM, Automation_TypeFilter_UV, Automation_TypeFilter_MAX, - Automation_ChestBuffer_ULV, Automation_ChestBuffer_LV, Automation_ChestBuffer_MV, Automation_ChestBuffer_HV, Automation_ChestBuffer_EV, Automation_ChestBuffer_IV, Automation_ChestBuffer_LuV, Automation_ChestBuffer_ZPM, Automation_ChestBuffer_UV, Automation_ChestBuffer_MAX, - Automation_SuperBuffer_ULV, Automation_SuperBuffer_LV, Automation_SuperBuffer_MV, Automation_SuperBuffer_HV, Automation_SuperBuffer_EV, Automation_SuperBuffer_IV, Automation_SuperBuffer_LuV, Automation_SuperBuffer_ZPM, Automation_SuperBuffer_UV, Automation_SuperBuffer_MAX, - Automation_Regulator_ULV, Automation_Regulator_LV, Automation_Regulator_MV, Automation_Regulator_HV, Automation_Regulator_EV, Automation_Regulator_IV, Automation_Regulator_LuV, Automation_Regulator_ZPM, Automation_Regulator_UV, Automation_Regulator_MAX, - - Hatch_Dynamo_ULV, Hatch_Dynamo_LV, Hatch_Dynamo_MV, Hatch_Dynamo_HV, Hatch_Dynamo_EV, Hatch_Dynamo_IV, Hatch_Dynamo_LuV, Hatch_Dynamo_ZPM, Hatch_Dynamo_UV, Hatch_Dynamo_MAX, - Hatch_Energy_ULV, Hatch_Energy_LV, Hatch_Energy_MV, Hatch_Energy_HV, Hatch_Energy_EV, Hatch_Energy_IV, Hatch_Energy_LuV, Hatch_Energy_ZPM, Hatch_Energy_UV, Hatch_Energy_MAX, - Hatch_Input_ULV, Hatch_Input_LV, Hatch_Input_MV, Hatch_Input_HV, Hatch_Input_EV, Hatch_Input_IV, Hatch_Input_LuV, Hatch_Input_ZPM, Hatch_Input_UV, Hatch_Input_MAX, - Hatch_Input_Bus_ULV, Hatch_Input_Bus_LV, Hatch_Input_Bus_MV, Hatch_Input_Bus_HV, Hatch_Input_Bus_EV, Hatch_Input_Bus_IV, Hatch_Input_Bus_LuV, Hatch_Input_Bus_ZPM, Hatch_Input_Bus_UV, Hatch_Input_Bus_MAX, - Hatch_Output_ULV, Hatch_Output_LV, Hatch_Output_MV, Hatch_Output_HV, Hatch_Output_EV, Hatch_Output_IV, Hatch_Output_LuV, Hatch_Output_ZPM, Hatch_Output_UV, Hatch_Output_MAX, - Hatch_Output_Bus_ULV, Hatch_Output_Bus_LV, Hatch_Output_Bus_MV, Hatch_Output_Bus_HV, Hatch_Output_Bus_EV, Hatch_Output_Bus_IV, Hatch_Output_Bus_LuV, Hatch_Output_Bus_ZPM, Hatch_Output_Bus_UV, Hatch_Output_Bus_MAX, - Hatch_Muffler_LV, Hatch_Muffler_MV, Hatch_Muffler_HV, Hatch_Muffler_EV, Hatch_Muffler_IV, Hatch_Muffler_LuV, Hatch_Muffler_ZPM, Hatch_Muffler_UV, Hatch_Muffler_MAX, - Hatch_Maintenance, - - Battery_Buffer_1by1_ULV, Battery_Buffer_1by1_LV, Battery_Buffer_1by1_MV, Battery_Buffer_1by1_HV, Battery_Buffer_1by1_EV, Battery_Buffer_1by1_IV, Battery_Buffer_1by1_LuV, Battery_Buffer_1by1_ZPM, Battery_Buffer_1by1_UV, Battery_Buffer_1by1_MAX, - Battery_Buffer_2by2_ULV, Battery_Buffer_2by2_LV, Battery_Buffer_2by2_MV, Battery_Buffer_2by2_HV, Battery_Buffer_2by2_EV, Battery_Buffer_2by2_IV, Battery_Buffer_2by2_LuV, Battery_Buffer_2by2_ZPM, Battery_Buffer_2by2_UV, Battery_Buffer_2by2_MAX, - Battery_Buffer_3by3_ULV, Battery_Buffer_3by3_LV, Battery_Buffer_3by3_MV, Battery_Buffer_3by3_HV, Battery_Buffer_3by3_EV, Battery_Buffer_3by3_IV, Battery_Buffer_3by3_LuV, Battery_Buffer_3by3_ZPM, Battery_Buffer_3by3_UV, Battery_Buffer_3by3_MAX, - Battery_Buffer_4by4_ULV, Battery_Buffer_4by4_LV, Battery_Buffer_4by4_MV, Battery_Buffer_4by4_HV, Battery_Buffer_4by4_EV, Battery_Buffer_4by4_IV, Battery_Buffer_4by4_LuV, Battery_Buffer_4by4_ZPM, Battery_Buffer_4by4_UV, Battery_Buffer_4by4_MAX, - - Locker_ULV, Locker_LV, Locker_MV, Locker_HV, Locker_EV, Locker_IV, Locker_LuV, Locker_ZPM, Locker_UV, Locker_MAX, - - Machine_Multi_LargeBoiler_Bronze, Machine_Multi_LargeBoiler_Steel, Machine_Multi_LargeBoiler_Titanium, Machine_Multi_LargeBoiler_TungstenSteel, Machine_Multi_BlastFurnace, Machine_Multi_ImplosionCompressor, Machine_Multi_VacuumFreezer, Machine_Multi_Furnace, - Machine_LV_AlloySmelter, Machine_MV_AlloySmelter, Machine_HV_AlloySmelter, Machine_EV_AlloySmelter, Machine_IV_AlloySmelter, - Machine_LV_Assembler, Machine_MV_Assembler, Machine_HV_Assembler, Machine_EV_Assembler, Machine_IV_Assembler, - Machine_LV_Bender, Machine_MV_Bender, Machine_HV_Bender, Machine_EV_Bender, Machine_IV_Bender, - Machine_LV_Canner, Machine_MV_Canner, Machine_HV_Canner, Machine_EV_Canner, Machine_IV_Canner, - Machine_LV_Compressor, Machine_MV_Compressor, Machine_HV_Compressor, Machine_EV_Compressor, Machine_IV_Compressor, - Machine_LV_Cutter, Machine_MV_Cutter, Machine_HV_Cutter, Machine_EV_Cutter, Machine_IV_Cutter, - Machine_LV_Slicer, Machine_MV_Slicer, Machine_HV_Slicer, Machine_EV_Slicer, Machine_IV_Slicer, - Machine_LV_Sifter, Machine_MV_Sifter, Machine_HV_Sifter, Machine_EV_Sifter, Machine_IV_Sifter, - Machine_LV_ArcFurnace, Machine_MV_ArcFurnace, Machine_HV_ArcFurnace, Machine_EV_ArcFurnace, Machine_IV_ArcFurnace, - Machine_LV_PlasmaArcFurnace, Machine_MV_PlasmaArcFurnace, Machine_HV_PlasmaArcFurnace, Machine_EV_PlasmaArcFurnace, Machine_IV_PlasmaArcFurnace, - Machine_LV_Oven, Machine_MV_Oven, Machine_HV_Oven, Machine_EV_Oven, Machine_IV_Oven, - Machine_LV_E_Furnace, Machine_MV_E_Furnace, Machine_HV_E_Furnace, Machine_EV_E_Furnace, Machine_IV_E_Furnace, - Machine_LV_Extractor, Machine_MV_Extractor, Machine_HV_Extractor, Machine_EV_Extractor, Machine_IV_Extractor, - Machine_LV_Extruder, Machine_MV_Extruder, Machine_HV_Extruder, Machine_EV_Extruder, Machine_IV_Extruder, - Machine_LV_Lathe, Machine_MV_Lathe, Machine_HV_Lathe, Machine_EV_Lathe, Machine_IV_Lathe, - Machine_LV_Macerator, Machine_MV_Macerator, Machine_HV_Macerator, Machine_EV_Macerator, Machine_IV_Macerator, - Machine_LV_Microwave, Machine_MV_Microwave, Machine_HV_Microwave, Machine_EV_Microwave, Machine_IV_Microwave, - Machine_LV_Printer, Machine_MV_Printer, Machine_HV_Printer, Machine_EV_Printer, Machine_IV_Printer, - Machine_LV_Recycler, Machine_MV_Recycler, Machine_HV_Recycler, Machine_EV_Recycler, Machine_IV_Recycler, - Machine_LV_Scanner, Machine_MV_Scanner, Machine_HV_Scanner, Machine_EV_Scanner, Machine_IV_Scanner, - Machine_LV_Wiremill, Machine_MV_Wiremill, Machine_HV_Wiremill, Machine_EV_Wiremill, Machine_IV_Wiremill, - Machine_LV_Electrolyzer, Machine_MV_Electrolyzer, Machine_HV_Electrolyzer, Machine_EV_Electrolyzer, Machine_IV_Electrolyzer, - Machine_LV_Centrifuge, Machine_MV_Centrifuge, Machine_HV_Centrifuge, Machine_EV_Centrifuge, Machine_IV_Centrifuge, - Machine_LV_ThermalCentrifuge, Machine_MV_ThermalCentrifuge, Machine_HV_ThermalCentrifuge, Machine_EV_ThermalCentrifuge, Machine_IV_ThermalCentrifuge, - Machine_LV_OreWasher, Machine_MV_OreWasher, Machine_HV_OreWasher, Machine_EV_OreWasher, Machine_IV_OreWasher, - Machine_LV_RockBreaker, Machine_MV_RockBreaker, Machine_HV_RockBreaker, Machine_EV_RockBreaker, Machine_IV_RockBreaker, - Machine_LV_Boxinator, Machine_MV_Boxinator, Machine_HV_Boxinator, Machine_EV_Boxinator, Machine_IV_Boxinator, - Machine_LV_Unboxinator, Machine_MV_Unboxinator, Machine_HV_Unboxinator, Machine_EV_Unboxinator, Machine_IV_Unboxinator, - Machine_LV_ChemicalReactor, Machine_MV_ChemicalReactor, Machine_HV_ChemicalReactor, Machine_EV_ChemicalReactor, Machine_IV_ChemicalReactor, - Machine_LV_FluidCanner, Machine_MV_FluidCanner, Machine_HV_FluidCanner, Machine_EV_FluidCanner, Machine_IV_FluidCanner, - Machine_LV_Disassembler, Machine_MV_Disassembler, Machine_HV_Disassembler, Machine_EV_Disassembler, Machine_IV_Disassembler, - Machine_LV_Bundler, Machine_MV_Bundler, Machine_HV_Bundler, Machine_EV_Bundler, Machine_IV_Bundler, - Machine_LV_Massfab, Machine_MV_Massfab, Machine_HV_Massfab, Machine_EV_Massfab, Machine_IV_Massfab, - Machine_LV_Amplifab, Machine_MV_Amplifab, Machine_HV_Amplifab, Machine_EV_Amplifab, Machine_IV_Amplifab, - Machine_LV_Replicator, Machine_MV_Replicator, Machine_HV_Replicator, Machine_EV_Replicator, Machine_IV_Replicator, - Machine_LV_Brewery, Machine_MV_Brewery, Machine_HV_Brewery, Machine_EV_Brewery, Machine_IV_Brewery, - Machine_LV_Fermenter, Machine_MV_Fermenter, Machine_HV_Fermenter, Machine_EV_Fermenter, Machine_IV_Fermenter, - Machine_LV_FluidExtractor, Machine_MV_FluidExtractor, Machine_HV_FluidExtractor, Machine_EV_FluidExtractor, Machine_IV_FluidExtractor, - Machine_LV_FluidSolidifier, Machine_MV_FluidSolidifier, Machine_HV_FluidSolidifier, Machine_EV_FluidSolidifier, Machine_IV_FluidSolidifier, - Machine_LV_Distillery, Machine_MV_Distillery, Machine_HV_Distillery, Machine_EV_Distillery, Machine_IV_Distillery, - Machine_LV_ChemicalBath, Machine_MV_ChemicalBath, Machine_HV_ChemicalBath, Machine_EV_ChemicalBath, Machine_IV_ChemicalBath, - Machine_LV_Polarizer, Machine_MV_Polarizer, Machine_HV_Polarizer, Machine_EV_Polarizer, Machine_IV_Polarizer, - Machine_LV_ElectromagneticSeparator, Machine_MV_ElectromagneticSeparator, Machine_HV_ElectromagneticSeparator, Machine_EV_ElectromagneticSeparator, Machine_IV_ElectromagneticSeparator, - Machine_LV_Autoclave, Machine_MV_Autoclave, Machine_HV_Autoclave, Machine_EV_Autoclave, Machine_IV_Autoclave, - Machine_LV_Mixer, Machine_MV_Mixer, Machine_HV_Mixer, Machine_EV_Mixer, Machine_IV_Mixer, - Machine_LV_LaserEngraver, Machine_MV_LaserEngraver, Machine_HV_LaserEngraver, Machine_EV_LaserEngraver, Machine_IV_LaserEngraver, - Machine_LV_Press, Machine_MV_Press, Machine_HV_Press, Machine_EV_Press, Machine_IV_Press, - Machine_LV_Hammer, Machine_MV_Hammer, Machine_HV_Hammer, Machine_EV_Hammer, Machine_IV_Hammer, - Machine_LV_FluidHeater, Machine_MV_FluidHeater, Machine_HV_FluidHeater, Machine_EV_FluidHeater, Machine_IV_FluidHeater, - - Neutron_Reflector, - Reactor_Coolant_He_1, - Reactor_Coolant_He_3, - Reactor_Coolant_He_6, - Reactor_Coolant_NaK_1, - Reactor_Coolant_NaK_3, - Reactor_Coolant_NaK_6, - ThoriumCell_1, - ThoriumCell_2, - ThoriumCell_4, - FusionComputer_LuV, - FusionComputer_ZPMV, - FusionComputer_UV, - Casing_Fusion_Coil, - Casing_Fusion, - Casing_Fusion2, - Generator_Plasma_IV, - Generator_Plasma_LuV, - Generator_Plasma_ZPMV, - MagicEnergyConverter_LV, - MagicEnergyConverter_MV, - MagicEnergyConverter_HV, - MagicEnergyAbsorber_LV, - MagicEnergyAbsorber_MV, - MagicEnergyAbsorber_HV, - MagicEnergyAbsorber_EV, - Depleted_Thorium_1, - Depleted_Thorium_2, - Depleted_Thorium_4, - Processing_Array, - Distillation_Tower, - 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, - LargeSteamTurbine, - Ingot_Heavy1,Ingot_Heavy2,Ingot_Heavy3, - Pump_LV, Pump_MV, Pump_HV, Pump_EV, Pump_IV, - Teleporter, - Cover_NeedsMaintainance, - Casing_Turbine, - MobRep_LV,MobRep_MV,MobRep_HV,MobRep_EV,MobRep_IV, LargeGasTurbine, LargeHPSteamTurbine, LargePlasmaTurbine, Cover_PlayerDetector, Machine_Multi_HeatExchanger; - - 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} - , SPRAY_CAN_DYES = {Spray_Color_00, Spray_Color_01, Spray_Color_02, Spray_Color_03, Spray_Color_04, Spray_Color_05, Spray_Color_06, Spray_Color_07, Spray_Color_08, Spray_Color_09, Spray_Color_10, Spray_Color_11, Spray_Color_12, Spray_Color_13, Spray_Color_14, Spray_Color_15} - , SPRAY_CAN_DYES_USED = {Spray_Color_Used_00, Spray_Color_Used_01, Spray_Color_Used_02, Spray_Color_Used_03, Spray_Color_Used_04, Spray_Color_Used_05, Spray_Color_Used_06, Spray_Color_Used_07, Spray_Color_Used_08, Spray_Color_Used_09, Spray_Color_Used_10, Spray_Color_Used_11, Spray_Color_Used_12, Spray_Color_Used_13, Spray_Color_Used_14, Spray_Color_Used_15} - , TRANSFORMERS = {Transformer_LV_ULV, Transformer_MV_LV, Transformer_HV_MV, Transformer_EV_HV, Transformer_IV_EV, Transformer_LuV_IV, Transformer_ZPM_LuV, Transformer_UV_ZPM, Transformer_MAX_UV} - , MACHINE_HULLS = {Hull_ULV, Hull_LV, Hull_MV, Hull_HV, Hull_EV, Hull_IV, Hull_LuV, Hull_ZPM, Hull_UV, Hull_MAX} - , HATCHES_DYNAMO = {Hatch_Dynamo_ULV, Hatch_Dynamo_LV, Hatch_Dynamo_MV, Hatch_Dynamo_HV, Hatch_Dynamo_EV, Hatch_Dynamo_IV, Hatch_Dynamo_LuV, Hatch_Dynamo_ZPM, Hatch_Dynamo_UV, Hatch_Dynamo_MAX} - , HATCHES_ENERGY = {Hatch_Energy_ULV, Hatch_Energy_LV, Hatch_Energy_MV, Hatch_Energy_HV, Hatch_Energy_EV, Hatch_Energy_IV, Hatch_Energy_LuV, Hatch_Energy_ZPM, Hatch_Energy_UV, Hatch_Energy_MAX} - , HATCHES_INPUT = {Hatch_Input_ULV, Hatch_Input_LV, Hatch_Input_MV, Hatch_Input_HV, Hatch_Input_EV, Hatch_Input_IV, Hatch_Input_LuV, Hatch_Input_ZPM, Hatch_Input_UV, Hatch_Input_MAX} - , HATCHES_INPUT_BUS = {Hatch_Input_Bus_ULV, Hatch_Input_Bus_LV, Hatch_Input_Bus_MV, Hatch_Input_Bus_HV, Hatch_Input_Bus_EV, Hatch_Input_Bus_IV, Hatch_Input_Bus_LuV, Hatch_Input_Bus_ZPM, Hatch_Input_Bus_UV, Hatch_Input_Bus_MAX} - , HATCHES_OUTPUT = {Hatch_Output_ULV, Hatch_Output_LV, Hatch_Output_MV, Hatch_Output_HV, Hatch_Output_EV, Hatch_Output_IV, Hatch_Output_LuV, Hatch_Output_ZPM, Hatch_Output_UV, Hatch_Output_MAX} - , HATCHES_OUTPUT_BUS = {Hatch_Output_Bus_ULV, Hatch_Output_Bus_LV, Hatch_Output_Bus_MV, Hatch_Output_Bus_HV, Hatch_Output_Bus_EV, Hatch_Output_Bus_IV, Hatch_Output_Bus_LuV, Hatch_Output_Bus_ZPM, Hatch_Output_Bus_UV, Hatch_Output_Bus_MAX} - , HATCHES_MUFFLER = {Hatch_Muffler_LV, Hatch_Muffler_LV, Hatch_Muffler_MV, Hatch_Muffler_HV, Hatch_Muffler_EV, Hatch_Muffler_IV, Hatch_Muffler_LuV, Hatch_Muffler_ZPM, Hatch_Muffler_UV, Hatch_Muffler_MAX} - ; - private ItemStack mStack; - private boolean mHasNotBeenSet = true; - - public static Fluid sOilExtraHeavy, sOilHeavy, sOilMedium, sOilLight, sNaturalGas; - - @Override - public IItemContainer set(Item aItem) { - mHasNotBeenSet = false; - if (aItem == null) return this; - ItemStack aStack = new ItemStack(aItem, 1, 0); - mStack = GT_Utility.copyAmount(1, aStack); - return this; - } - - @Override - public IItemContainer set(ItemStack aStack) { - mHasNotBeenSet = false; - mStack = GT_Utility.copyAmount(1, aStack); - return this; - } - - @Override - public Item getItem() { - if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!"); - if (GT_Utility.isStackInvalid(mStack)) return null; - return mStack.getItem(); - } - - @Override - public Block getBlock() { - if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!"); - return GT_Utility.getBlockFromStack(getItem()); - } - - @Override - public final boolean hasBeenSet() { - return !mHasNotBeenSet; - } - - @Override - public boolean isStackEqual(Object aStack) { - return isStackEqual(aStack, false, false); - } - - @Override - public boolean isStackEqual(Object aStack, boolean aWildcard, boolean aIgnoreNBT) { - if (GT_Utility.isStackInvalid(aStack)) return false; - return GT_Utility.areUnificationsEqual((ItemStack)aStack, aWildcard?getWildcard(1):get(1), aIgnoreNBT); - } - - @Override - public ItemStack get(long aAmount, Object... aReplacements) { - if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!"); - if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, aReplacements); - return GT_Utility.copyAmount(aAmount, GT_OreDictUnificator.get(mStack)); - } - - @Override - public ItemStack getWildcard(long aAmount, Object... aReplacements) { - if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!"); - if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, aReplacements); - return GT_Utility.copyAmountAndMetaData(aAmount, W, GT_OreDictUnificator.get(mStack)); - } - - @Override - public ItemStack getUndamaged(long aAmount, Object... aReplacements) { - if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!"); - if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, aReplacements); - return GT_Utility.copyAmountAndMetaData(aAmount, 0, GT_OreDictUnificator.get(mStack)); - } - - @Override - public ItemStack getAlmostBroken(long aAmount, Object... aReplacements) { - if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!"); - if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, aReplacements); - return GT_Utility.copyAmountAndMetaData(aAmount, mStack.getMaxDamage()-1, GT_OreDictUnificator.get(mStack)); - } - - @Override - public ItemStack getWithName(long aAmount, String aDisplayName, Object... aReplacements) { - ItemStack rStack = get(1, aReplacements); - if (GT_Utility.isStackInvalid(rStack)) return null; - rStack.setStackDisplayName(aDisplayName); - return GT_Utility.copyAmount(aAmount, rStack); - } - - @Override - public ItemStack getWithCharge(long aAmount, int aEnergy, Object... aReplacements) { - ItemStack rStack = get(1, aReplacements); - if (GT_Utility.isStackInvalid(rStack)) return null; - GT_ModHandler.chargeElectricItem(rStack, aEnergy, Integer.MAX_VALUE, true, false); - return GT_Utility.copyAmount(aAmount, rStack); - } - - @Override - public ItemStack getWithDamage(long aAmount, long aMetaValue, Object... aReplacements) { - if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!"); - if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, aReplacements); - return GT_Utility.copyAmountAndMetaData(aAmount, aMetaValue, GT_OreDictUnificator.get(mStack)); - } - - @Override - public IItemContainer registerOre(Object... aOreNames) { - if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!"); - for (Object tOreName : aOreNames) GT_OreDictUnificator.registerOre(tOreName, get(1)); - return this; - } - - @Override - public IItemContainer registerWildcardAsOre(Object... aOreNames) { - if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!"); - for (Object tOreName : aOreNames) GT_OreDictUnificator.registerOre(tOreName, getWildcard(1)); - return this; - } + Armor_Cheat, + Armor_Cloaking, + Armor_Lamp, + Armor_LithiumPack, + Armor_LapotronicPack, + Armor_ForceField, + Energy_LapotronicOrb, + Reactor_NeutronReflector, + Component_Turbine_Bronze, + Component_Turbine_Steel, + Component_Turbine_Magnalium, + Component_Turbine_TungstenSteel, + Component_Turbine_Carbon, + Component_LavaFilter, + Component_Sawblade_Diamond, + Component_Grinder_Diamond, + Component_Grinder_Tungsten, + Component_Filter, + Component_Minecart_Wheels_Iron, + Component_Minecart_Wheels_Steel, + + Generator_Diesel_LV, + Generator_Diesel_MV, + Generator_Diesel_HV, + Generator_Gas_Turbine_LV, + Generator_Gas_Turbine_MV, + Generator_Gas_Turbine_HV, + Generator_Steam_Turbine_LV, + Generator_Steam_Turbine_MV, + Generator_Steam_Turbine_HV, + Generator_Naquadah_Mark_I, + Generator_Naquadah_Mark_II, + Generator_Naquadah_Fluid, + + Machine_Bronze_Boiler, + Machine_Bronze_Boiler_Solar, + Machine_Bronze_CraftingTable, + Machine_Bronze_Furnace, + Machine_Bronze_Macerator, + Machine_Bronze_Extractor, + Machine_Bronze_Hammer, + Machine_Bronze_Compressor, + Machine_Bronze_AlloySmelter, + Machine_Bronze_BlastFurnace, + Machine_Steel_Boiler_Lava, + Machine_Steel_Boiler, + Machine_Steel_Furnace, + Machine_Steel_Macerator, + Machine_Steel_Extractor, + Machine_Steel_Hammer, + Machine_Steel_Compressor, + Machine_Steel_AlloySmelter, + + Hull_Bronze, Hull_Steel, Hull_Bronze_Bricks, Hull_Steel_Bricks, + + Transformer_LV_ULV, Transformer_MV_LV, Transformer_HV_MV, Transformer_EV_HV, Transformer_IV_EV, Transformer_LuV_IV, Transformer_ZPM_LuV, Transformer_UV_ZPM, Transformer_MAX_UV, + + Casing_ULV, Casing_LV, Casing_MV, Casing_HV, Casing_EV, Casing_IV, Casing_LuV, Casing_ZPM, Casing_UV, Casing_MAX, Casing_BronzePlatedBricks, Casing_HeatProof, Casing_Coil_Cupronickel, Casing_Coil_Kanthal, Casing_Coil_Nichrome, Casing_Coil_Superconductor, + Casing_SolidSteel, Casing_FrostProof, Casing_Gearbox_Bronze, Casing_Gearbox_Steel, Casing_Gearbox_Titanium, Casing_Gearbox_TungstenSteel, Casing_Processor, Casing_DataDrive, Casing_ContainmentField, Casing_Assembler, Casing_Pump, Casing_Motor, Casing_Pipe_Bronze, Casing_Pipe_Steel, Casing_Pipe_Titanium, Casing_Pipe_TungstenSteel, + Casing_Stripes_A, Casing_Stripes_B, Casing_RadioactiveHazard, Casing_BioHazard, Casing_ExplosionHazard, Casing_FireHazard, Casing_AcidHazard, Casing_MagicHazard, Casing_FrostHazard, Casing_NoiseHazard, Casing_Grate, Casing_Vent, Casing_RadiationProof, Casing_Firebox_Bronze, Casing_Firebox_Steel, Casing_Firebox_TungstenSteel, + Casing_RobustTungstenSteel, Casing_CleanStainlessSteel, Casing_StableTitanium, Casing_Firebox_Titanium, + Hull_ULV, Hull_LV, Hull_MV, Hull_HV, Hull_EV, Hull_IV, Hull_LuV, Hull_ZPM, Hull_UV, Hull_MAX, + + Automation_Filter_ULV, Automation_Filter_LV, Automation_Filter_MV, Automation_Filter_HV, Automation_Filter_EV, Automation_Filter_IV, Automation_Filter_LuV, Automation_Filter_ZPM, Automation_Filter_UV, Automation_Filter_MAX, + Automation_TypeFilter_ULV, Automation_TypeFilter_LV, Automation_TypeFilter_MV, Automation_TypeFilter_HV, Automation_TypeFilter_EV, Automation_TypeFilter_IV, Automation_TypeFilter_LuV, Automation_TypeFilter_ZPM, Automation_TypeFilter_UV, Automation_TypeFilter_MAX, + Automation_ChestBuffer_ULV, Automation_ChestBuffer_LV, Automation_ChestBuffer_MV, Automation_ChestBuffer_HV, Automation_ChestBuffer_EV, Automation_ChestBuffer_IV, Automation_ChestBuffer_LuV, Automation_ChestBuffer_ZPM, Automation_ChestBuffer_UV, Automation_ChestBuffer_MAX, + Automation_SuperBuffer_ULV, Automation_SuperBuffer_LV, Automation_SuperBuffer_MV, Automation_SuperBuffer_HV, Automation_SuperBuffer_EV, Automation_SuperBuffer_IV, Automation_SuperBuffer_LuV, Automation_SuperBuffer_ZPM, Automation_SuperBuffer_UV, Automation_SuperBuffer_MAX, + Automation_Regulator_ULV, Automation_Regulator_LV, Automation_Regulator_MV, Automation_Regulator_HV, Automation_Regulator_EV, Automation_Regulator_IV, Automation_Regulator_LuV, Automation_Regulator_ZPM, Automation_Regulator_UV, Automation_Regulator_MAX, + + Hatch_Dynamo_ULV, Hatch_Dynamo_LV, Hatch_Dynamo_MV, Hatch_Dynamo_HV, Hatch_Dynamo_EV, Hatch_Dynamo_IV, Hatch_Dynamo_LuV, Hatch_Dynamo_ZPM, Hatch_Dynamo_UV, Hatch_Dynamo_MAX, + Hatch_Energy_ULV, Hatch_Energy_LV, Hatch_Energy_MV, Hatch_Energy_HV, Hatch_Energy_EV, Hatch_Energy_IV, Hatch_Energy_LuV, Hatch_Energy_ZPM, Hatch_Energy_UV, Hatch_Energy_MAX, + Hatch_Input_ULV, Hatch_Input_LV, Hatch_Input_MV, Hatch_Input_HV, Hatch_Input_EV, Hatch_Input_IV, Hatch_Input_LuV, Hatch_Input_ZPM, Hatch_Input_UV, Hatch_Input_MAX, + Hatch_Input_Bus_ULV, Hatch_Input_Bus_LV, Hatch_Input_Bus_MV, Hatch_Input_Bus_HV, Hatch_Input_Bus_EV, Hatch_Input_Bus_IV, Hatch_Input_Bus_LuV, Hatch_Input_Bus_ZPM, Hatch_Input_Bus_UV, Hatch_Input_Bus_MAX, + Hatch_Output_ULV, Hatch_Output_LV, Hatch_Output_MV, Hatch_Output_HV, Hatch_Output_EV, Hatch_Output_IV, Hatch_Output_LuV, Hatch_Output_ZPM, Hatch_Output_UV, Hatch_Output_MAX, + Hatch_Output_Bus_ULV, Hatch_Output_Bus_LV, Hatch_Output_Bus_MV, Hatch_Output_Bus_HV, Hatch_Output_Bus_EV, Hatch_Output_Bus_IV, Hatch_Output_Bus_LuV, Hatch_Output_Bus_ZPM, Hatch_Output_Bus_UV, Hatch_Output_Bus_MAX, + Hatch_Muffler_LV, Hatch_Muffler_MV, Hatch_Muffler_HV, Hatch_Muffler_EV, Hatch_Muffler_IV, Hatch_Muffler_LuV, Hatch_Muffler_ZPM, Hatch_Muffler_UV, Hatch_Muffler_MAX, + Hatch_Maintenance, + + Battery_Buffer_1by1_ULV, Battery_Buffer_1by1_LV, Battery_Buffer_1by1_MV, Battery_Buffer_1by1_HV, Battery_Buffer_1by1_EV, Battery_Buffer_1by1_IV, Battery_Buffer_1by1_LuV, Battery_Buffer_1by1_ZPM, Battery_Buffer_1by1_UV, Battery_Buffer_1by1_MAX, + Battery_Buffer_2by2_ULV, Battery_Buffer_2by2_LV, Battery_Buffer_2by2_MV, Battery_Buffer_2by2_HV, Battery_Buffer_2by2_EV, Battery_Buffer_2by2_IV, Battery_Buffer_2by2_LuV, Battery_Buffer_2by2_ZPM, Battery_Buffer_2by2_UV, Battery_Buffer_2by2_MAX, + Battery_Buffer_3by3_ULV, Battery_Buffer_3by3_LV, Battery_Buffer_3by3_MV, Battery_Buffer_3by3_HV, Battery_Buffer_3by3_EV, Battery_Buffer_3by3_IV, Battery_Buffer_3by3_LuV, Battery_Buffer_3by3_ZPM, Battery_Buffer_3by3_UV, Battery_Buffer_3by3_MAX, + Battery_Buffer_4by4_ULV, Battery_Buffer_4by4_LV, Battery_Buffer_4by4_MV, Battery_Buffer_4by4_HV, Battery_Buffer_4by4_EV, Battery_Buffer_4by4_IV, Battery_Buffer_4by4_LuV, Battery_Buffer_4by4_ZPM, Battery_Buffer_4by4_UV, Battery_Buffer_4by4_MAX, + + Locker_ULV, Locker_LV, Locker_MV, Locker_HV, Locker_EV, Locker_IV, Locker_LuV, Locker_ZPM, Locker_UV, Locker_MAX, + + Machine_Multi_LargeBoiler_Bronze, Machine_Multi_LargeBoiler_Steel, Machine_Multi_LargeBoiler_Titanium, Machine_Multi_LargeBoiler_TungstenSteel, Machine_Multi_BlastFurnace, Machine_Multi_ImplosionCompressor, Machine_Multi_VacuumFreezer, Machine_Multi_Furnace, + Machine_LV_AlloySmelter, Machine_MV_AlloySmelter, Machine_HV_AlloySmelter, Machine_EV_AlloySmelter, Machine_IV_AlloySmelter, + Machine_LV_Assembler, Machine_MV_Assembler, Machine_HV_Assembler, Machine_EV_Assembler, Machine_IV_Assembler, + Machine_LV_Bender, Machine_MV_Bender, Machine_HV_Bender, Machine_EV_Bender, Machine_IV_Bender, + Machine_LV_Canner, Machine_MV_Canner, Machine_HV_Canner, Machine_EV_Canner, Machine_IV_Canner, + Machine_LV_Compressor, Machine_MV_Compressor, Machine_HV_Compressor, Machine_EV_Compressor, Machine_IV_Compressor, + Machine_LV_Cutter, Machine_MV_Cutter, Machine_HV_Cutter, Machine_EV_Cutter, Machine_IV_Cutter, + Machine_LV_Slicer, Machine_MV_Slicer, Machine_HV_Slicer, Machine_EV_Slicer, Machine_IV_Slicer, + Machine_LV_Sifter, Machine_MV_Sifter, Machine_HV_Sifter, Machine_EV_Sifter, Machine_IV_Sifter, + Machine_LV_ArcFurnace, Machine_MV_ArcFurnace, Machine_HV_ArcFurnace, Machine_EV_ArcFurnace, Machine_IV_ArcFurnace, + Machine_LV_PlasmaArcFurnace, Machine_MV_PlasmaArcFurnace, Machine_HV_PlasmaArcFurnace, Machine_EV_PlasmaArcFurnace, Machine_IV_PlasmaArcFurnace, + Machine_LV_Oven, Machine_MV_Oven, Machine_HV_Oven, Machine_EV_Oven, Machine_IV_Oven, + Machine_LV_E_Furnace, Machine_MV_E_Furnace, Machine_HV_E_Furnace, Machine_EV_E_Furnace, Machine_IV_E_Furnace, + Machine_LV_Extractor, Machine_MV_Extractor, Machine_HV_Extractor, Machine_EV_Extractor, Machine_IV_Extractor, + Machine_LV_Extruder, Machine_MV_Extruder, Machine_HV_Extruder, Machine_EV_Extruder, Machine_IV_Extruder, + Machine_LV_Lathe, Machine_MV_Lathe, Machine_HV_Lathe, Machine_EV_Lathe, Machine_IV_Lathe, + Machine_LV_Macerator, Machine_MV_Macerator, Machine_HV_Macerator, Machine_EV_Macerator, Machine_IV_Macerator, + Machine_LV_Microwave, Machine_MV_Microwave, Machine_HV_Microwave, Machine_EV_Microwave, Machine_IV_Microwave, + Machine_LV_Printer, Machine_MV_Printer, Machine_HV_Printer, Machine_EV_Printer, Machine_IV_Printer, + Machine_LV_Recycler, Machine_MV_Recycler, Machine_HV_Recycler, Machine_EV_Recycler, Machine_IV_Recycler, + Machine_LV_Scanner, Machine_MV_Scanner, Machine_HV_Scanner, Machine_EV_Scanner, Machine_IV_Scanner, + Machine_LV_Wiremill, Machine_MV_Wiremill, Machine_HV_Wiremill, Machine_EV_Wiremill, Machine_IV_Wiremill, + Machine_LV_Electrolyzer, Machine_MV_Electrolyzer, Machine_HV_Electrolyzer, Machine_EV_Electrolyzer, Machine_IV_Electrolyzer, + Machine_LV_Centrifuge, Machine_MV_Centrifuge, Machine_HV_Centrifuge, Machine_EV_Centrifuge, Machine_IV_Centrifuge, + Machine_LV_ThermalCentrifuge, Machine_MV_ThermalCentrifuge, Machine_HV_ThermalCentrifuge, Machine_EV_ThermalCentrifuge, Machine_IV_ThermalCentrifuge, + Machine_LV_OreWasher, Machine_MV_OreWasher, Machine_HV_OreWasher, Machine_EV_OreWasher, Machine_IV_OreWasher, + Machine_LV_RockBreaker, Machine_MV_RockBreaker, Machine_HV_RockBreaker, Machine_EV_RockBreaker, Machine_IV_RockBreaker, + Machine_LV_Boxinator, Machine_MV_Boxinator, Machine_HV_Boxinator, Machine_EV_Boxinator, Machine_IV_Boxinator, + Machine_LV_Unboxinator, Machine_MV_Unboxinator, Machine_HV_Unboxinator, Machine_EV_Unboxinator, Machine_IV_Unboxinator, + Machine_LV_ChemicalReactor, Machine_MV_ChemicalReactor, Machine_HV_ChemicalReactor, Machine_EV_ChemicalReactor, Machine_IV_ChemicalReactor, + Machine_LV_FluidCanner, Machine_MV_FluidCanner, Machine_HV_FluidCanner, Machine_EV_FluidCanner, Machine_IV_FluidCanner, + Machine_LV_Disassembler, Machine_MV_Disassembler, Machine_HV_Disassembler, Machine_EV_Disassembler, Machine_IV_Disassembler, + Machine_LV_Bundler, Machine_MV_Bundler, Machine_HV_Bundler, Machine_EV_Bundler, Machine_IV_Bundler, + Machine_LV_Massfab, Machine_MV_Massfab, Machine_HV_Massfab, Machine_EV_Massfab, Machine_IV_Massfab, + Machine_LV_Amplifab, Machine_MV_Amplifab, Machine_HV_Amplifab, Machine_EV_Amplifab, Machine_IV_Amplifab, + Machine_LV_Replicator, Machine_MV_Replicator, Machine_HV_Replicator, Machine_EV_Replicator, Machine_IV_Replicator, + Machine_LV_Brewery, Machine_MV_Brewery, Machine_HV_Brewery, Machine_EV_Brewery, Machine_IV_Brewery, + Machine_LV_Fermenter, Machine_MV_Fermenter, Machine_HV_Fermenter, Machine_EV_Fermenter, Machine_IV_Fermenter, + Machine_LV_FluidExtractor, Machine_MV_FluidExtractor, Machine_HV_FluidExtractor, Machine_EV_FluidExtractor, Machine_IV_FluidExtractor, + Machine_LV_FluidSolidifier, Machine_MV_FluidSolidifier, Machine_HV_FluidSolidifier, Machine_EV_FluidSolidifier, Machine_IV_FluidSolidifier, + Machine_LV_Distillery, Machine_MV_Distillery, Machine_HV_Distillery, Machine_EV_Distillery, Machine_IV_Distillery, + Machine_LV_ChemicalBath, Machine_MV_ChemicalBath, Machine_HV_ChemicalBath, Machine_EV_ChemicalBath, Machine_IV_ChemicalBath, + Machine_LV_Polarizer, Machine_MV_Polarizer, Machine_HV_Polarizer, Machine_EV_Polarizer, Machine_IV_Polarizer, + Machine_LV_ElectromagneticSeparator, Machine_MV_ElectromagneticSeparator, Machine_HV_ElectromagneticSeparator, Machine_EV_ElectromagneticSeparator, Machine_IV_ElectromagneticSeparator, + Machine_LV_Autoclave, Machine_MV_Autoclave, Machine_HV_Autoclave, Machine_EV_Autoclave, Machine_IV_Autoclave, + Machine_LV_Mixer, Machine_MV_Mixer, Machine_HV_Mixer, Machine_EV_Mixer, Machine_IV_Mixer, + Machine_LV_LaserEngraver, Machine_MV_LaserEngraver, Machine_HV_LaserEngraver, Machine_EV_LaserEngraver, Machine_IV_LaserEngraver, + Machine_LV_Press, Machine_MV_Press, Machine_HV_Press, Machine_EV_Press, Machine_IV_Press, + Machine_LV_Hammer, Machine_MV_Hammer, Machine_HV_Hammer, Machine_EV_Hammer, Machine_IV_Hammer, + Machine_LV_FluidHeater, Machine_MV_FluidHeater, Machine_HV_FluidHeater, Machine_EV_FluidHeater, Machine_IV_FluidHeater, + + Neutron_Reflector, + Reactor_Coolant_He_1, + Reactor_Coolant_He_3, + Reactor_Coolant_He_6, + Reactor_Coolant_NaK_1, + Reactor_Coolant_NaK_3, + Reactor_Coolant_NaK_6, + ThoriumCell_1, + ThoriumCell_2, + ThoriumCell_4, + FusionComputer_LuV, + FusionComputer_ZPMV, + FusionComputer_UV, + Casing_Fusion_Coil, + Casing_Fusion, + Casing_Fusion2, + Generator_Plasma_IV, + Generator_Plasma_LuV, + Generator_Plasma_ZPMV, + MagicEnergyConverter_LV, + MagicEnergyConverter_MV, + MagicEnergyConverter_HV, + MagicEnergyAbsorber_LV, + MagicEnergyAbsorber_MV, + MagicEnergyAbsorber_HV, + MagicEnergyAbsorber_EV, + Depleted_Thorium_1, + Depleted_Thorium_2, + Depleted_Thorium_4, + Processing_Array, + Distillation_Tower, + 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, + LargeSteamTurbine, + Ingot_Heavy1, Ingot_Heavy2, Ingot_Heavy3, + Pump_LV, Pump_MV, Pump_HV, Pump_EV, Pump_IV, + Teleporter, + Cover_NeedsMaintainance, + Casing_Turbine, + MobRep_LV, MobRep_MV, MobRep_HV, MobRep_EV, MobRep_IV, LargeGasTurbine, LargeHPSteamTurbine, LargePlasmaTurbine, Cover_PlayerDetector, Machine_Multi_HeatExchanger; + + 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}, SPRAY_CAN_DYES = {Spray_Color_00, Spray_Color_01, Spray_Color_02, Spray_Color_03, Spray_Color_04, Spray_Color_05, Spray_Color_06, Spray_Color_07, Spray_Color_08, Spray_Color_09, Spray_Color_10, Spray_Color_11, Spray_Color_12, Spray_Color_13, Spray_Color_14, Spray_Color_15}, SPRAY_CAN_DYES_USED = {Spray_Color_Used_00, Spray_Color_Used_01, Spray_Color_Used_02, Spray_Color_Used_03, Spray_Color_Used_04, Spray_Color_Used_05, Spray_Color_Used_06, Spray_Color_Used_07, Spray_Color_Used_08, Spray_Color_Used_09, Spray_Color_Used_10, Spray_Color_Used_11, Spray_Color_Used_12, Spray_Color_Used_13, Spray_Color_Used_14, Spray_Color_Used_15}, TRANSFORMERS = {Transformer_LV_ULV, Transformer_MV_LV, Transformer_HV_MV, Transformer_EV_HV, Transformer_IV_EV, Transformer_LuV_IV, Transformer_ZPM_LuV, Transformer_UV_ZPM, Transformer_MAX_UV}, MACHINE_HULLS = {Hull_ULV, Hull_LV, Hull_MV, Hull_HV, Hull_EV, Hull_IV, Hull_LuV, Hull_ZPM, Hull_UV, Hull_MAX}, HATCHES_DYNAMO = {Hatch_Dynamo_ULV, Hatch_Dynamo_LV, Hatch_Dynamo_MV, Hatch_Dynamo_HV, Hatch_Dynamo_EV, Hatch_Dynamo_IV, Hatch_Dynamo_LuV, Hatch_Dynamo_ZPM, Hatch_Dynamo_UV, Hatch_Dynamo_MAX}, HATCHES_ENERGY = {Hatch_Energy_ULV, Hatch_Energy_LV, Hatch_Energy_MV, Hatch_Energy_HV, Hatch_Energy_EV, Hatch_Energy_IV, Hatch_Energy_LuV, Hatch_Energy_ZPM, Hatch_Energy_UV, Hatch_Energy_MAX}, HATCHES_INPUT = {Hatch_Input_ULV, Hatch_Input_LV, Hatch_Input_MV, Hatch_Input_HV, Hatch_Input_EV, Hatch_Input_IV, Hatch_Input_LuV, Hatch_Input_ZPM, Hatch_Input_UV, Hatch_Input_MAX}, HATCHES_INPUT_BUS = {Hatch_Input_Bus_ULV, Hatch_Input_Bus_LV, Hatch_Input_Bus_MV, Hatch_Input_Bus_HV, Hatch_Input_Bus_EV, Hatch_Input_Bus_IV, Hatch_Input_Bus_LuV, Hatch_Input_Bus_ZPM, Hatch_Input_Bus_UV, Hatch_Input_Bus_MAX}, HATCHES_OUTPUT = {Hatch_Output_ULV, Hatch_Output_LV, Hatch_Output_MV, Hatch_Output_HV, Hatch_Output_EV, Hatch_Output_IV, Hatch_Output_LuV, Hatch_Output_ZPM, Hatch_Output_UV, Hatch_Output_MAX}, HATCHES_OUTPUT_BUS = {Hatch_Output_Bus_ULV, Hatch_Output_Bus_LV, Hatch_Output_Bus_MV, Hatch_Output_Bus_HV, Hatch_Output_Bus_EV, Hatch_Output_Bus_IV, Hatch_Output_Bus_LuV, Hatch_Output_Bus_ZPM, Hatch_Output_Bus_UV, Hatch_Output_Bus_MAX}, HATCHES_MUFFLER = {Hatch_Muffler_LV, Hatch_Muffler_LV, Hatch_Muffler_MV, Hatch_Muffler_HV, Hatch_Muffler_EV, Hatch_Muffler_IV, Hatch_Muffler_LuV, Hatch_Muffler_ZPM, Hatch_Muffler_UV, Hatch_Muffler_MAX}; + public static Fluid sOilExtraHeavy, sOilHeavy, sOilMedium, sOilLight, sNaturalGas; + private ItemStack mStack; + private boolean mHasNotBeenSet = true; + + @Override + public IItemContainer set(Item aItem) { + mHasNotBeenSet = false; + if (aItem == null) return this; + ItemStack aStack = new ItemStack(aItem, 1, 0); + mStack = GT_Utility.copyAmount(1, aStack); + return this; + } + + @Override + public IItemContainer set(ItemStack aStack) { + mHasNotBeenSet = false; + mStack = GT_Utility.copyAmount(1, aStack); + return this; + } + + @Override + public Item getItem() { + if (mHasNotBeenSet) + throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!"); + if (GT_Utility.isStackInvalid(mStack)) return null; + return mStack.getItem(); + } + + @Override + public Block getBlock() { + if (mHasNotBeenSet) + throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!"); + return GT_Utility.getBlockFromStack(getItem()); + } + + @Override + public final boolean hasBeenSet() { + return !mHasNotBeenSet; + } + + @Override + public boolean isStackEqual(Object aStack) { + return isStackEqual(aStack, false, false); + } + + @Override + public boolean isStackEqual(Object aStack, boolean aWildcard, boolean aIgnoreNBT) { + if (GT_Utility.isStackInvalid(aStack)) return false; + return GT_Utility.areUnificationsEqual((ItemStack) aStack, aWildcard ? getWildcard(1) : get(1), aIgnoreNBT); + } + + @Override + public ItemStack get(long aAmount, Object... aReplacements) { + if (mHasNotBeenSet) + throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!"); + if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, aReplacements); + return GT_Utility.copyAmount(aAmount, GT_OreDictUnificator.get(mStack)); + } + + @Override + public ItemStack getWildcard(long aAmount, Object... aReplacements) { + if (mHasNotBeenSet) + throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!"); + if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, aReplacements); + return GT_Utility.copyAmountAndMetaData(aAmount, W, GT_OreDictUnificator.get(mStack)); + } + + @Override + public ItemStack getUndamaged(long aAmount, Object... aReplacements) { + if (mHasNotBeenSet) + throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!"); + if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, aReplacements); + return GT_Utility.copyAmountAndMetaData(aAmount, 0, GT_OreDictUnificator.get(mStack)); + } + + @Override + public ItemStack getAlmostBroken(long aAmount, Object... aReplacements) { + if (mHasNotBeenSet) + throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!"); + if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, aReplacements); + return GT_Utility.copyAmountAndMetaData(aAmount, mStack.getMaxDamage() - 1, GT_OreDictUnificator.get(mStack)); + } + + @Override + public ItemStack getWithName(long aAmount, String aDisplayName, Object... aReplacements) { + ItemStack rStack = get(1, aReplacements); + if (GT_Utility.isStackInvalid(rStack)) return null; + rStack.setStackDisplayName(aDisplayName); + return GT_Utility.copyAmount(aAmount, rStack); + } + + @Override + public ItemStack getWithCharge(long aAmount, int aEnergy, Object... aReplacements) { + ItemStack rStack = get(1, aReplacements); + if (GT_Utility.isStackInvalid(rStack)) return null; + GT_ModHandler.chargeElectricItem(rStack, aEnergy, Integer.MAX_VALUE, true, false); + return GT_Utility.copyAmount(aAmount, rStack); + } + + @Override + public ItemStack getWithDamage(long aAmount, long aMetaValue, Object... aReplacements) { + if (mHasNotBeenSet) + throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!"); + if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, aReplacements); + return GT_Utility.copyAmountAndMetaData(aAmount, aMetaValue, GT_OreDictUnificator.get(mStack)); + } + + @Override + public IItemContainer registerOre(Object... aOreNames) { + if (mHasNotBeenSet) + throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!"); + for (Object tOreName : aOreNames) GT_OreDictUnificator.registerOre(tOreName, get(1)); + return this; + } + + @Override + public IItemContainer registerWildcardAsOre(Object... aOreNames) { + if (mHasNotBeenSet) + throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!"); + for (Object tOreName : aOreNames) GT_OreDictUnificator.registerOre(tOreName, getWildcard(1)); + return this; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/enums/Materials.java b/src/main/java/gregtech/api/enums/Materials.java index 2817031c..14dd8e0a 100644 --- a/src/main/java/gregtech/api/enums/Materials.java +++ b/src/main/java/gregtech/api/enums/Materials.java @@ -1,7 +1,6 @@ package gregtech.api.enums; -import static gregtech.api.enums.GT_Values.M; -import static gregtech.api.enums.GT_Values.MOD_ID_TC; +import cpw.mods.fml.common.Loader; import gregtech.api.GregTech_API; import gregtech.api.enums.TC_Aspects.TC_AspectStack; import gregtech.api.interfaces.IColorModulationContainer; @@ -11,1035 +10,1039 @@ import gregtech.api.objects.MaterialStack; import gregtech.api.util.GT_Config; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; - -import java.util.*; - import net.minecraft.enchantment.Enchantment; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; -import cpw.mods.fml.common.Loader; + +import java.util.*; + +import static gregtech.api.enums.GT_Values.M; +import static gregtech.api.enums.GT_Values.MOD_ID_TC; /** - * This List contains every Material I know about, and is used to determine Recipes for the + * This List contains every Material I know about, and is used to determine Recipes for the */ public enum Materials implements IColorModulationContainer, ISubTagContainer { - /** - * This is the Default Material returned in case no Material has been found or a NullPointer has been inserted at a location where it shouldn't happen. - * - * Mainly for preventing NullPointer Exceptions and providing Default Values. - */ - _NULL ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "NULL" , 0, 0, 0, 0, false, false, 1, 1, 1, Dyes._NULL , Element._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 1))), - - /** - * Direct Elements - */ - Aluminium ( 19, TextureSet.SET_DULL , 10.0F, 128, 2, 1|2 |8 |32|64|128 , 128, 200, 240, 0, "Aluminium" , 0, 0, 933, 1700, true , false, 3, 1, 1, Dyes.dyeLightBlue , Element.Al , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VOLATUS, 1))), - Americium ( 103, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1|2 |8 |32 , 200, 200, 200, 0, "Americium" , 0, 0, 1449, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Element.Am , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Antimony ( 58, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |8 |32 , 220, 220, 240, 0, "Antimony" , 0, 0, 903, 0, false, false, 2, 1, 1, Dyes.dyeLightGray , Element.Sb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.AQUA, 1))), - Argon ( 24, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 255, 0, 240, "Argon" , 0, 0, 83, 0, false, true , 5, 1, 1, Dyes.dyeGreen , Element.Ar , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 2))), - Arsenic ( 39, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8|16|32 , 255, 255, 255, 0, "Arsenic" , 0, 0, 1090, 0, false, false, 3, 1, 1, Dyes.dyeOrange , Element.As , Arrays.asList(new TC_AspectStack(TC_Aspects.VENENUM, 3))), - Barium ( 63, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 |32 , 255, 255, 255, 0, "Barium" , 0, 0, 1000, 0, false, false, 1, 1, 1, Dyes._NULL , Element.Ba , Arrays.asList(new TC_AspectStack(TC_Aspects.VINCULUM, 3))), - Beryllium ( 8, TextureSet.SET_METALLIC , 14.0F, 64, 2, 1|2 |8 |32|64 , 100, 180, 100, 0, "Beryllium" , 0, 0, 1560, 0, false, false, 6, 1, 1, Dyes.dyeGreen , Element.Be , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.LUCRUM, 1))), - Bismuth ( 90, TextureSet.SET_METALLIC , 6.0F, 64, 1, 1|2 |8 |32|64|128 , 100, 160, 160, 0, "Bismuth" , 0, 0, 544, 0, false, false, 2, 1, 1, Dyes.dyeCyan , Element.Bi , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), - Boron ( 9, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 |32 , 250, 250, 250, 0, "Boron" , 0, 0, 2349, 0, false, false, 1, 1, 1, Dyes.dyeWhite , Element.B , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Caesium ( 62, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Caesium" , 0, 0, 301, 0, false, false, 4, 1, 1, Dyes._NULL , Element.Cs , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Calcium ( 26, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |32 , 255, 245, 245, 0, "Calcium" , 0, 0, 1115, 0, false, false, 4, 1, 1, Dyes.dyePink , Element.Ca , Arrays.asList(new TC_AspectStack(TC_Aspects.SANO, 1), new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), - Carbon ( 10, TextureSet.SET_DULL , 1.0F, 64, 2, 1|2 |32|64|128 , 20, 20, 20, 0, "Carbon" , 0, 0, 3800, 0, false, false, 2, 1, 1, Dyes.dyeBlack , Element.C , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.IGNIS, 1))), - Cadmium ( 55, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 |8 |32 , 50, 50, 60, 0, "Cadmium" , 0, 0, 594, 0, false, false, 3, 1, 1, Dyes.dyeGray , Element.Cd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VENENUM, 1))), - Cerium ( 65, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Cerium" , 0, 0, 1068, 1068, true , false, 4, 1, 1, Dyes._NULL , Element.Ce , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Chlorine ( 23, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 255, 0, "Chlorine" , 0, 0, 171, 0, false, false, 2, 1, 1, Dyes.dyeCyan , Element.Cl , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2), new TC_AspectStack(TC_Aspects.PANNUS, 1))), - Chrome ( 30, TextureSet.SET_SHINY , 11.0F, 256, 3, 1|2 |8 |32|64|128 , 255, 230, 230, 0, "Chrome" , 0, 0, 2180, 1700, true , false, 5, 1, 1, Dyes.dyePink , Element.Cr , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), - Cobalt ( 33, TextureSet.SET_METALLIC , 8.0F, 512, 3, 1|2 |8 |32|64 , 80, 80, 250, 0, "Cobalt" , 0, 0, 1768, 0, false, false, 3, 1, 1, Dyes.dyeBlue , Element.Co , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), - Copper ( 35, TextureSet.SET_SHINY , 1.0F, 0, 1, 1|2 |8 |32 |128 , 255, 100, 0, 0, "Copper" , 0, 0, 1357, 0, false, false, 3, 1, 1, Dyes.dyeOrange , Element.Cu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.PERMUTATIO, 1))), - Deuterium ( 2, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 0, 240, "Deuterium" , 0, 0, 14, 0, false, true , 10, 1, 1, Dyes.dyeYellow , Element.D , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 3))), - Dysprosium ( 73, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Dysprosium" , 0, 0, 1680, 1680, true , false, 4, 1, 1, Dyes._NULL , Element.Dy , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), - Empty ( 0, TextureSet.SET_NONE , 1.0F, 0, 2, 256/*Only for Prefixes which need it*/, 255, 255, 255, 255, "Empty" , 0, 0, -1, 0, false, true , 1, 1, 1, Dyes._NULL , Element._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 2))), - Erbium ( 75, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Erbium" , 0, 0, 1802, 1802, true , false, 4, 1, 1, Dyes._NULL , Element.Er , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Europium ( 70, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Europium" , 0, 0, 1099, 1099, true , false, 4, 1, 1, Dyes._NULL , Element.Eu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Fluorine ( 14, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 255, 127, "Fluorine" , 0, 0, 53, 0, false, true , 2, 1, 1, Dyes.dyeGreen , Element.F , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 2))), - Gadolinium ( 71, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Gadolinium" , 0, 0, 1585, 1585, true , false, 4, 1, 1, Dyes._NULL , Element.Gd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Gallium ( 37, TextureSet.SET_SHINY , 1.0F, 64, 2, 1|2 |8 |32 , 220, 220, 255, 0, "Gallium" , 0, 0, 302, 0, false, false, 5, 1, 1, Dyes.dyeLightGray , Element.Ga , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1))), - Gold ( 86, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |32|64|128 , 255, 255, 30, 0, "Gold" , 0, 0, 1337, 0, false, false, 4, 1, 1, Dyes.dyeYellow , Element.Au , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.LUCRUM, 2))), - Holmium ( 74, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Holmium" , 0, 0, 1734, 1734, true , false, 4, 1, 1, Dyes._NULL , Element.Ho , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Hydrogen ( 1, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 0, 255, 240, "Hydrogen" , 1, 15, 14, 0, false, true , 2, 1, 1, Dyes.dyeBlue , Element.H , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 1))), - Helium ( 4, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 0, 240, "Helium" , 0, 0, 1, 0, false, true , 5, 1, 1, Dyes.dyeYellow , Element.He , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 2))), - Helium_3 ( 5, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 0, 240, "Helium-3" , 0, 0, 1, 0, false, true , 10, 1, 1, Dyes.dyeYellow , Element.He_3 , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 3))), - Indium ( 56, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 64, 0, 128, 0, "Indium" , 0, 0, 429, 0, false, false, 4, 1, 1, Dyes.dyeGray , Element.In , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Iridium ( 84, TextureSet.SET_DULL , 6.0F, 5120, 4, 1|2 |8 |32|64|128 , 240, 240, 245, 0, "Iridium" , 0, 0, 2719, 0, false, false, 10, 1, 1, Dyes.dyeWhite , Element.Ir , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), - Iron ( 32, TextureSet.SET_METALLIC , 6.0F, 256, 2, 1|2 |8 |32|64|128 , 200, 200, 200, 0, "Iron" , 0, 0, 1811, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Element.Fe , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), - Lanthanum ( 64, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Lanthanum" , 0, 0, 1193, 1193, true , false, 4, 1, 1, Dyes._NULL , Element.La , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Lead ( 89, TextureSet.SET_DULL , 8.0F, 64, 1, 1|2 |8 |32|64|128 , 140, 100, 140, 0, "Lead" , 0, 0, 600, 0, false, false, 3, 1, 1, Dyes.dyePurple , Element.Pb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 1))), - Lithium ( 6, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8 |32 , 225, 220, 255, 0, "Lithium" , 0, 0, 454, 0, false, false, 4, 1, 1, Dyes.dyeLightBlue , Element.Li , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 2))), - Lutetium ( 78, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Lutetium" , 0, 0, 1925, 1925, true , false, 4, 1, 1, Dyes._NULL , Element.Lu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Magic (-128, TextureSet.SET_SHINY , 8.0F, 5120, 5, 1|2|4|8|16|32|64|128 , 100, 0, 200, 0, "Magic" , 5, 32, 5000, 0, false, false, 7, 1, 1, Dyes.dyePurple , Element.Ma , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 4))), - Magnesium ( 18, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 200, 200, 0, "Magnesium" , 0, 0, 923, 0, false, false, 3, 1, 1, Dyes.dyePink , Element.Mg , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.SANO, 1))), - Manganese ( 31, TextureSet.SET_DULL , 7.0F, 512, 2, 1|2 |8 |32|64 , 250, 250, 250, 0, "Manganese" , 0, 0, 1519, 0, false, false, 3, 1, 1, Dyes.dyeWhite , Element.Mn , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), - Mercury ( 87, TextureSet.SET_SHINY , 1.0F, 0, 0, 16|32 , 255, 220, 220, 0, "Mercury" , 5, 32, 234, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Element.Hg , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.VENENUM, 1))), - Molybdenum ( 48, TextureSet.SET_SHINY , 7.0F, 512, 2, 1|2 |8 |32|64 , 180, 180, 220, 0, "Molybdenum" , 0, 0, 2896, 0, false, false, 1, 1, 1, Dyes.dyeBlue , Element.Mo , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), - Neodymium ( 67, TextureSet.SET_METALLIC , 7.0F, 512, 2, 1|2 |8 |32|64|128 , 100, 100, 100, 0, "Neodymium" , 0, 0, 1297, 1297, true , false, 4, 1, 1, Dyes._NULL , Element.Nd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 2))), - Neutronium ( 129, TextureSet.SET_DULL , 6.0F, 81920, 6, 1|2 |8 |32|64|128 , 250, 250, 250, 0, "Neutronium" , 0, 0, 10000, 0, false, false, 20, 1, 1, Dyes.dyeWhite , Element.Nt , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 3), new TC_AspectStack(TC_Aspects.ALIENIS, 2))), - Nickel ( 34, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8 |32|64|128 , 200, 200, 250, 0, "Nickel" , 0, 0, 1728, 0, false, false, 4, 1, 1, Dyes.dyeLightBlue , Element.Ni , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.IGNIS, 1))), - Niobium ( 47, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 190, 180, 200, 0, "Niobium" , 0, 0, 2750, 2750, true , false, 5, 1, 1, Dyes._NULL , Element.Nb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1))), - Nitrogen ( 12, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 150, 200, 240, "Nitrogen" , 0, 0, 63, 0, false, true , 2, 1, 1, Dyes.dyeCyan , Element.N , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 2))), - Osmium ( 83, TextureSet.SET_METALLIC , 16.0F, 1280, 4, 1|2 |8 |32|64|128 , 50, 50, 255, 0, "Osmium" , 0, 0, 3306, 0, false, false, 10, 1, 1, Dyes.dyeBlue , Element.Os , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), - Oxygen ( 13, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 100, 200, 240, "Oxygen" , 0, 0, 54, 0, false, true , 1, 1, 1, Dyes.dyeWhite , Element.O , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 1))), - Palladium ( 52, TextureSet.SET_SHINY , 8.0F, 512, 2, 1|2 |8 |32|64|128 , 128, 128, 128, 0, "Palladium" , 0, 0, 1828, 1828, false, false, 4, 1, 1, Dyes.dyeGray , Element.Pd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), - Phosphor ( 21, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 |32 , 255, 255, 0, 0, "Phosphor" , 0, 0, 317, 0, false, false, 2, 1, 1, Dyes.dyeYellow , Element.P , Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 2), new TC_AspectStack(TC_Aspects.POTENTIA, 1))), - Platinum ( 85, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |32|64|128 , 255, 255, 200, 0, "Platinum" , 0, 0, 2041, 0, false, false, 6, 1, 1, Dyes.dyeOrange , Element.Pt , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), - Plutonium ( 100, TextureSet.SET_METALLIC , 6.0F, 512, 3, 1|2 |8 |32|64 , 240, 50, 50, 0, "Plutonium 244" , 0, 0, 912, 0, false, false, 6, 1, 1, Dyes.dyeLime , Element.Pu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 2))), - Plutonium241 ( 101, TextureSet.SET_SHINY , 6.0F, 512, 3, 1|2 |8 |32|64 , 250, 70, 70, 0, "Plutonium 241" , 0, 0, 912, 0, false, false, 6, 1, 1, Dyes.dyeLime , Element.Pu_241 , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 3))), - Potassium ( 25, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 |32 , 250, 250, 250, 0, "Potassium" , 0, 0, 336, 0, false, false, 2, 1, 1, Dyes.dyeWhite , Element.K , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 1))), - Praseodymium ( 66, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Praseodymium" , 0, 0, 1208, 1208, true , false, 4, 1, 1, Dyes._NULL , Element.Pr , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Promethium ( 68, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Promethium" , 0, 0, 1315, 1315, true , false, 4, 1, 1, Dyes._NULL , Element.Pm , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Radon ( 93, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 0, 255, 240, "Radon" , 0, 0, 202, 0, false, true , 5, 1, 1, Dyes.dyePurple , Element.Rn , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 1), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Rubidium ( 43, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 240, 30, 30, 0, "Rubidium" , 0, 0, 312, 0, false, false, 4, 1, 1, Dyes.dyeRed , Element.Rb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), - Samarium ( 69, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Samarium" , 0, 0, 1345, 1345, true , false, 4, 1, 1, Dyes._NULL , Element.Sm , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Scandium ( 27, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Scandium" , 0, 0, 1814, 1814, true , false, 2, 1, 1, Dyes.dyeYellow , Element.Sc , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Silicon ( 20, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 60, 60, 80, 0, "Silicon" , 0, 0, 1687, 1687, true , false, 1, 1, 1, Dyes.dyeBlack , Element.Si , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.TENEBRAE, 1))), - Silver ( 54, TextureSet.SET_SHINY , 10.0F, 64, 2, 1|2 |8 |32|64|128 , 220, 220, 255, 0, "Silver" , 0, 0, 1234, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Element.Ag , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.LUCRUM, 1))), - Sodium ( 17, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |32 , 0, 0, 150, 0, "Sodium" , 0, 0, 370, 0, false, false, 1, 1, 1, Dyes.dyeBlue , Element.Na , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.LUX, 1))), - Strontium ( 44, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 |32 , 200, 200, 200, 0, "Strontium" , 0, 0, 1050, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Element.Sr , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.STRONTIO, 1))), - Sulfur ( 22, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 |32 , 200, 200, 0, 0, "Sulfur" , 0, 0, 388, 0, false, false, 2, 1, 1, Dyes.dyeYellow , Element.S , Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1))), - Tantalum ( 80, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Tantalum" , 0, 0, 3290, 0, false, false, 4, 1, 1, Dyes._NULL , Element.Ta , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VINCULUM, 1))), - Tellurium ( 59, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Tellurium" , 0, 0, 722, 0, false, false, 4, 1, 1, Dyes.dyeGray , Element.Te , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Terbium ( 72, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Terbium" , 0, 0, 1629, 1629, true , false, 4, 1, 1, Dyes._NULL , Element.Tb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Thorium ( 96, TextureSet.SET_SHINY , 6.0F, 512, 2, 1|2 |8 |32|64 , 0, 30, 0, 0, "Thorium" , 0, 0, 2115, 0, false, false, 4, 1, 1, Dyes.dyeBlack , Element.Th , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Thulium ( 76, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Thulium" , 0, 0, 1818, 1818, true , false, 4, 1, 1, Dyes._NULL , Element.Tm , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Tin ( 57, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 |8 |32 |128 , 220, 220, 220, 0, "Tin" , 0, 0, 505, 505, false, false, 3, 1, 1, Dyes.dyeWhite , Element.Sn , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), - Titanium ( 28, TextureSet.SET_METALLIC , 8.0F, 2560, 3, 1|2 |8 |32|64|128 , 220, 160, 240, 0, "Titanium" , 0, 0, 1941, 1500, true , false, 5, 1, 1, Dyes.dyePurple , Element.Ti , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), - Tritium ( 3, TextureSet.SET_METALLIC , 1.0F, 0, 2, 16|32 , 255, 0, 0, 240, "Tritium" , 0, 0, 14, 0, false, true , 10, 1, 1, Dyes.dyeRed , Element.T , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 4))), - Tungsten ( 81, TextureSet.SET_METALLIC , 8.0F, 5120, 3, 1|2 |8 |32|64|128 , 50, 50, 50, 0, "Tungsten" , 0, 0, 3695, 2500, true , false, 4, 1, 1, Dyes.dyeBlack , Element.W , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), - Uranium ( 98, TextureSet.SET_METALLIC , 6.0F, 512, 3, 1|2 |8 |32|64 , 50, 240, 50, 0, "Uranium 238" , 0, 0, 1405, 0, false, false, 4, 1, 1, Dyes.dyeGreen , Element.U , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Uranium235 ( 97, TextureSet.SET_SHINY , 6.0F, 512, 3, 1|2 |8 |32|64 , 70, 250, 70, 0, "Uranium 235" , 0, 0, 1405, 0, false, false, 4, 1, 1, Dyes.dyeGreen , Element.U_235 , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 2))), - Vanadium ( 29, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 50, 50, 50, 0, "Vanadium" , 0, 0, 2183, 2183, true , false, 2, 1, 1, Dyes.dyeBlack , Element.V , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Ytterbium ( 77, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Ytterbium" , 0, 0, 1097, 1097, true , false, 4, 1, 1, Dyes._NULL , Element.Yb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Yttrium ( 45, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 220, 250, 220, 0, "Yttrium" , 0, 0, 1799, 1799, true , false, 4, 1, 1, Dyes._NULL , Element.Y , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Zinc ( 36, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 |8 |32 , 250, 240, 240, 0, "Zinc" , 0, 0, 692, 0, false, false, 2, 1, 1, Dyes.dyeWhite , Element.Zn , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.SANO, 1))), - - /** - * The "Random Material" ones. - */ - Organic ( -1, TextureSet.SET_LEAF , 1.0F, 0, 1, false), - AnyCopper ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false), - AnyBronze ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false), - AnyIron ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false), - Crystal ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false), - Quartz ( -1, TextureSet.SET_QUARTZ , 1.0F, 0, 2, false), - Metal ( -1, TextureSet.SET_METALLIC , 1.0F, 0, 2, false), - Unknown ( -1, TextureSet.SET_DULL , 1.0F, 0, 2, false), - Cobblestone ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, false), - Brick ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, false), - BrickNether ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, false), - - /** - * The "I don't care" Section, everything I don't want to do anything with right now, is right here. Just to make the Material Finder shut up about them. - * But I do see potential uses in some of these Materials. - */ - TarPitch ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Tar Pitch" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Carborundum ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Carborundum" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Satinspar ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Satinspar" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Selenite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Selenite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - PetrifiedWood ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Petrified Wood" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Jet ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |4|8 , 255, 255, 255, 0, "Jet" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Microcline ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Microcline" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Serpentine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Serpentine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Sylvite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Sylvite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Flux ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Flux" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Goshen ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Goshen" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Joshen ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Joshen" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Itarius ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Itarius" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Legendary ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Legendary" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - MutatedIron ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Mutated Iron" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Witheria ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Witheria" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - RedstoneAlloy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Redstone Alloy" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - OsmiumTetroxide ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Osmium Tetroxide" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - NitricAcid ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Nitric Acid" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - RubberTreeSap ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Rubber Tree Sap" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - AquaRegia ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Aqua Regia" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - SolutionBlueVitriol ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Blue Vitriol Solution" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - SolutionNickelSulfate( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Nickel Sulfate Solution" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Signalum ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Signalum" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Lumium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Lumium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - PhasedIron ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Phased Iron" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - PhasedGold ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Phased Gold" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Soularium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Soularium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Endium ( 770, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8 , 165, 220, 250, 0, "Endium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow ), - Prismarine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |4 , 255, 255, 255, 0, "Prismarine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - GraveyardDirt ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Graveyard Dirt" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - DarkSteel ( 364, TextureSet.SET_DULL , 8.0F, 512, 3, 1|2 |8 |64 , 80, 70, 80, 0, "Dark Steel" , 0, 0, 1811, 0, false, false, 5, 1, 1, Dyes.dyePurple ), - Terrasteel ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Terrasteel" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - TerrasteelAlloyRaw ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Raw Terrasteel Alloy" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - TerrasteelAlloyStrengthened ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Strengthened Terrasteel Alloy" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - ConductiveIron ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Conductive Iron" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - ElectricalSteel ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Electrical Steel" , 0, 0, 1811, 1000, true , false, 3, 1, 1, Dyes._NULL ), - EnergeticAlloy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Energetic Alloy" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - VibrantAlloy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Vibrant Alloy" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - PulsatingIron ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Pulsating Iron" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Rutile ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Rutile" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), // TiO2 - Teslatite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 60, 180, 200, 0, "Teslatite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Fluix ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |4 , 255, 255, 255, 0, "Fluix" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Manasteel ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Manasteel" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Tennantite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Tennantite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - DarkThaumium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Dark Thaumium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Alfium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Alfium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Ryu ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Ryu" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Mutation ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Mutation" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Aquamarine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |4 , 255, 255, 255, 0, "Aquamarine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Ender ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Ender" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - ElvenElementium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Elven Elementium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - EnrichedCopper ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Enriched Copper" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - DiamondCopper ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Diamond Copper" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - SodiumPeroxide ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Sodium Peroxide" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - IridiumSodiumOxide ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Iridium Sodium Oxide" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - PlatinumGroupSludge ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Platinum Group Sluge" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Fairy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Fairy" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Ludicrite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Ludicrite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Pokefennium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Pokefennium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Draconium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Draconium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - DraconiumAwakened ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Awakened Draconium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - PurpleAlloy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 100, 180, 255, 0, "Purple Alloy" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - InfusedTeslatite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 100, 180, 255, 0, "Infused Teslatite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - - /** - * Unknown Material Components. Dead End Section. - */ - Adamantium ( 319, TextureSet.SET_SHINY , 10.0F, 5120, 5, 1|2 |8 |64|128 , 255, 255, 255, 0, "Adamantium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray ), - Adamite ( -1, TextureSet.SET_NONE , 1.0F, 0, 3, 1 |8 , 255, 255, 255, 0, "Adamite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray ), - Adluorite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Adluorite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Agate ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Agate" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Alduorite ( 485, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 |8|16 , 159, 180, 180, 0, "Alduorite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Amber ( 514, TextureSet.SET_RUBY , 4.0F, 128, 2, 1 |4|8 |64 , 255, 128, 0, 127, "Amber" , 5, 3, -1, 0, false, true , 1, 1, 1, Dyes.dyeOrange , Arrays.asList(new TC_AspectStack(TC_Aspects.VINCULUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), - Ammonium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Ammonium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Amordrine ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8|16 |64 , 255, 255, 255, 0, "Amordrine" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Andesite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Andesite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Angmallen ( 958, TextureSet.SET_METALLIC , 10.0F, 128, 2, 1|2 |8|16 |64 , 215, 225, 138, 0, "Angmallen" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Ardite ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8 |64 , 255, 0, 0, 0, "Ardite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - Aredrite ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8 |64 , 255, 0, 0, 0, "Aredrite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - Atlarus ( 965, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8 |64 , 255, 255, 255, 0, "Atlarus" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Bitumen ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Bitumen" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Black ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 0, 0, 0, 0, "Black" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlack ), - Blizz ( 851, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 , 220, 233, 255, 0, "Blizz" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Blueschist ( 852, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Blueschist" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeLightBlue ), - Bluestone ( 813, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Bluestone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue ), - Bloodstone ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Bloodstone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed ), - Blutonium ( -1, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |8 , 0, 0, 255, 0, "Blutonium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue ), - Carmot ( 962, TextureSet.SET_METALLIC , 16.0F, 128, 1, 1|2 |8 |64 , 217, 205, 140, 0, "Carmot" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Celenegil ( 964, TextureSet.SET_METALLIC , 10.0F, 4096, 2, 1|2 |8|16 |64 , 148, 204, 72, 0, "Celenegil" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - CertusQuartz ( 516, TextureSet.SET_QUARTZ , 5.0F, 32, 1, 1 |4|8 |64 , 210, 210, 230, 0, "Certus Quartz" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VITREUS, 1))), - Ceruclase ( 952, TextureSet.SET_METALLIC , 6.0F, 1280, 2, 1|2 |8 , 140, 189, 208, 0, "Ceruclase" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Citrine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Citrine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - //ChargedCertusQuartz ( 517, TextureSet.SET_QUARTZ , 5.0F, 32, 1, 1 |4|8 |64 , 210, 210, 230, 0, "Charged Certus Quartz" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), - CobaltHexahydrate ( 853, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |16 , 80, 80, 250, 0, "Cobalt Hexahydrate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue ), - ConstructionFoam ( 854, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |16 , 128, 128, 128, 0, "Construction Foam" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray ), - Chert ( 857, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Chert" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL ), - Chimerite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Chimerite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Coral ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 128, 255, 0, "Coral" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - CrudeOil ( 858, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 10, 10, 10, 0, "Crude Oil" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), - Chrysocolla ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Chrysocolla" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - CrystalFlux ( -1, TextureSet.SET_QUARTZ , 1.0F, 0, 3, 1 |4 , 100, 50, 100, 0, "Flux Crystal" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Cyanite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Cyanite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeCyan ), - Dacite ( 859, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Dacite" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeLightGray ), - DarkIron ( 342, TextureSet.SET_DULL , 7.0F, 384, 3, 1|2 |8 |64 , 55, 40, 60, 0, "Dark Iron" , 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyePurple ), - DarkStone ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Dark Stone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlack ), - Demonite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Demonite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed ), - Desh ( 884, TextureSet.SET_DULL , 1.0F, 1280, 3, 1|2 |8 |64|128 , 40, 40, 40, 0, "Desh" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), - Desichalkos ( -1, TextureSet.SET_NONE , 6.0F, 1280, 3, 1|2 |8|16 |64 , 255, 255, 255, 0, "Desichalkos" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Dilithium ( 515, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8|16 , 255, 250, 250, 127, "Dilithium" , 0, 0, -1, 0, false, true , 1, 1, 1, Dyes.dyeWhite ), - Draconic ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Draconic" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed ), - Drulloy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|16 , 255, 255, 255, 0, "Drulloy" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed ), - Duranium ( 328, TextureSet.SET_METALLIC , 8.0F, 1280, 4, 1|2 |64 , 255, 255, 255, 0, "Duranium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray ), - Eclogite ( 860, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Eclogite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - ElectrumFlux ( 320, TextureSet.SET_SHINY , 16.0F, 512, 3, 1|2 |64 , 255, 255, 120, 0, "Fluxed Electrum" , 0, 0, 3000, 3000, true , false, 1, 1, 1, Dyes.dyeYellow ), - Emery ( 861, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Emery" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Enderium ( 321, TextureSet.SET_DULL , 8.0F, 256, 3, 1|2 |64 , 89, 145, 135, 0, "Enderium" , 0, 0, 3000, 3000, true , false, 1, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), - EnderiumBase ( -1, TextureSet.SET_DULL , 8.0F, 256, 3, 1|2 |64 , 89, 145, 135, 0, "Enderium Base" , 0, 0, 3000, 3000, true , false, 1, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), - Energized ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Energized" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Epidote ( 862, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Epidote" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL ), - Eximite ( 959, TextureSet.SET_METALLIC , 5.0F, 2560, 3, 1|2 |8 |64 , 124, 90, 150, 0, "Eximite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - FierySteel ( 346, TextureSet.SET_FIERY , 8.0F, 256, 3, 1|2 |16 |64|128 , 64, 0, 0, 0, "Fiery Steel" , 5, 2048, 1811, 1000, true , false, 1, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 3), new TC_AspectStack(TC_Aspects.IGNIS, 3), new TC_AspectStack(TC_Aspects.CORPUS, 3))), - Firestone ( 347, TextureSet.SET_QUARTZ , 6.0F, 1280, 3, 1 |4|8 |64 , 200, 20, 0, 0, "Firestone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed ), - Fluorite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Fluorite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen ), - FoolsRuby ( 512, TextureSet.SET_RUBY , 1.0F, 0, 2, 1 |4|8 , 255, 100, 100, 127, "Ruby" , 0, 0, -1, 0, false, true , 3, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 2))), - Force ( 521, TextureSet.SET_DIAMOND , 10.0F, 128, 3, 1|2|4|8 |64|128 , 255, 255, 0, 0, "Force" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 5))), - Forcicium ( 518, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8|16 , 50, 50, 70, 0, "Forcicium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2))), - Forcillium ( 519, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8|16 , 50, 50, 70, 0, "Forcillium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2))), - Gabbro ( 863, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Gabbro" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL ), - Glowstone ( 811, TextureSet.SET_SHINY , 1.0F, 0, 1, 1 |16 , 255, 255, 0, 0, "Glowstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.LUX, 2), new TC_AspectStack(TC_Aspects.SENSUS, 1))), - Gneiss ( 864, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Gneiss" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL ), - Graphite ( 865, TextureSet.SET_DULL , 5.0F, 32, 2, 1 |8|16 |64 , 128, 128, 128, 0, "Graphite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.IGNIS, 1))), - Graphene ( 819, TextureSet.SET_DULL , 6.0F, 32, 1, 1 |64 , 128, 128, 128, 0, "Graphene" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1))), - Greenschist ( 866, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Green Schist" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen ), - Greenstone ( 867, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Greenstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen ), - Greywacke ( 868, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Greywacke" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray ), - Haderoth ( 963, TextureSet.SET_METALLIC , 10.0F, 3200, 3, 1|2 |8|16 |64 , 119, 52, 30, 0, "Haderoth" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Hematite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Hematite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Hepatizon ( 957, TextureSet.SET_METALLIC , 12.0F, 128, 2, 1|2 |8|16 |64 , 117, 94, 117, 0, "Hepatizon" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - HSLA ( 322, TextureSet.SET_METALLIC , 6.0F, 500, 2, 1|2 |64|128 , 128, 128, 128, 0, "HSLA Steel" , 0, 0, 1811, 1000, true , false, 3, 1, 1, Dyes._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.ORDO, 1))), - Ignatius ( 950, TextureSet.SET_METALLIC , 12.0F, 512, 2, 1|2 |16 , 255, 169, 83, 0, "Ignatius" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Infernal ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Infernal" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Infuscolium ( 490, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8|16 |64 , 146, 33, 86, 0, "Infuscolium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - InfusedGold ( 323, TextureSet.SET_SHINY , 12.0F, 64, 3, 1|2 |8 |64|128 , 255, 200, 60, 0, "Infused Gold" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow ), - InfusedAir ( 540, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 255, 255, 0, 0, "Aer" , 5, 160, -1, 0, false, true , 3, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.AER, 2))), - InfusedFire ( 541, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 255, 0, 0, 0, "Ignis" , 5, 320, -1, 0, false, true , 3, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.IGNIS, 2))), - InfusedEarth ( 542, TextureSet.SET_SHARDS , 8.0F, 256, 3, 1 |4|8 |64|128 , 0, 255, 0, 0, "Terra" , 5, 160, -1, 0, false, true , 3, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.TERRA, 2))), - InfusedWater ( 543, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 0, 0, 255, 0, "Aqua" , 5, 160, -1, 0, false, true , 3, 1, 1, Dyes.dyeBlue , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.AQUA, 2))), - InfusedEntropy ( 544, TextureSet.SET_SHARDS , 32.0F, 64, 4, 1 |4|8 |64|128 , 62, 62, 62, 0, "Perditio" , 5, 320, -1, 0, false, true , 3, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.PERDITIO, 2))), - InfusedOrder ( 545, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 252, 252, 252, 0, "Ordo" , 5, 240, -1, 0, false, true , 3, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.ORDO, 2))), - InfusedVis ( -1, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 255, 0, 255, 0, "Auram" , 5, 240, -1, 0, false, true , 3, 1, 1, Dyes.dyePurple , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.AURAM, 2))), - InfusedDull ( -1, TextureSet.SET_SHARDS , 32.0F, 64, 3, 1 |4|8 |64|128 , 100, 100, 100, 0, "Vacuus" , 5, 160, -1, 0, false, true , 3, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.VACUOS, 2))), - Inolashite ( 954, TextureSet.SET_NONE , 8.0F, 2304, 3, 1|2 |8|16 |64 , 148, 216, 187, 0, "Inolashite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Invisium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Invisium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Jade ( 537, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 |8 , 0, 100, 0, 0, "Jade" , 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Jasper ( 511, TextureSet.SET_EMERALD , 1.0F, 0, 2, 1 |4|8 , 200, 80, 80, 100, "Jasper" , 0, 0, -1, 0, false, true , 3, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 2))), - Kalendrite ( 953, TextureSet.SET_METALLIC , 5.0F, 2560, 3, 1|2 |16 , 170, 91, 189, 0, "Kalendrite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Komatiite ( 869, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Komatiite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - Lava ( 700, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 255, 64, 0, 0, "Lava" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange ), - Lemurite ( 486, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |16 , 219, 219, 219, 0, "Lemurite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Limestone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Limestone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Lodestone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Lodestone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Luminite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 250, 250, 250, 0, "Luminite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite ), - Magma ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 64, 0, 0, "Magma" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange ), - Mawsitsit ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Mawsitsit" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Mercassium ( -1, TextureSet.SET_NONE , 6.0F, 64, 1, 1|2 |8 |64 , 255, 255, 255, 0, "Mercassium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - MeteoricIron ( 340, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |8 |64 , 100, 50, 80, 0, "Meteoric Iron" , 0, 0, 1811, 0, false, false, 1, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - MeteoricSteel ( 341, TextureSet.SET_METALLIC , 6.0F, 768, 2, 1|2 |64 , 50, 25, 40, 0, "Meteoric Steel" , 0, 0, 1811, 1000, true , false, 1, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1), new TC_AspectStack(TC_Aspects.ORDO, 1))), - Meteorite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 80, 35, 60, 0, "Meteorite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple ), - Meutoite ( 487, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8|16 , 95, 82, 105, 0, "Meutoite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Migmatite ( 872, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Migmatite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Mimichite ( -1, TextureSet.SET_GEM_VERTICAL , 1.0F, 0, 1, 1 |4|8 , 255, 255, 255, 0, "Mimichite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Moonstone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Moonstone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), - Naquadah ( 324, TextureSet.SET_METALLIC , 6.0F, 1280, 4, 1|2 |8|16 |64 , 50, 50, 50, 0, "Naquadah" , 0, 0, 3000, 3000, true , false, 10, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.RADIO, 1), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), - NaquadahAlloy ( 325, TextureSet.SET_METALLIC , 8.0F, 5120, 5, 1|2 |64|128 , 40, 40, 40, 0, "Naquadah Alloy" , 0, 0, 3000, 3000, true , false, 10, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), - NaquadahEnriched ( 326, TextureSet.SET_METALLIC , 6.0F, 1280, 4, 1|2 |8|16 |64 , 50, 50, 50, 0, "Enriched Naquadah" , 0, 0, 3000, 3000, true , false, 15, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.RADIO, 2), new TC_AspectStack(TC_Aspects.NEBRISUM, 2))), - Naquadria ( 327, TextureSet.SET_SHINY , 1.0F, 512, 4, 1|2 |8 |64 , 30, 30, 30, 0, "Naquadria" , 0, 0, 3000, 3000, true , false, 20, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.RADIO, 3), new TC_AspectStack(TC_Aspects.NEBRISUM, 3))), - Nether ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Nether" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - NetherBrick ( 814, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 100, 0, 0, 0, "Nether Brick" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1))), - NetherQuartz ( 522, TextureSet.SET_QUARTZ , 1.0F, 32, 1, 1 |4|8 |64 , 230, 210, 210, 0, "Nether Quartz" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VITREUS, 1))), - NetherStar ( 506, TextureSet.SET_NETHERSTAR , 1.0F, 5120, 4, 1 |4 |64 , 255, 255, 255, 0, "Nether Star" , 5, 50000, -1, 0, false, false, 15, 1, 1, Dyes.dyeWhite ), - Nikolite ( 812, TextureSet.SET_SHINY , 1.0F, 0, 1, 1 |8 , 60, 180, 200, 0, "Nikolite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeCyan , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 2))), - ObsidianFlux ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 , 80, 50, 100, 0, "Fluxed Obsidian" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple ), - Oilsands ( 878, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 10, 10, 10, 0, "Oilsands" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Onyx ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Onyx" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Orichalcum ( 966, TextureSet.SET_METALLIC , 4.5F, 3456, 3, 1|2 |8 |64 , 84, 122, 56, 0, "Orichalcum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Osmonium ( -1, TextureSet.SET_NONE , 6.0F, 64, 1, 1|2 |8 |64 , 255, 255, 255, 0, "Osmonium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue ), - Oureclase ( 961, TextureSet.SET_METALLIC , 6.0F, 1920, 3, 1|2 |8 |64 , 183, 98, 21, 0, "Oureclase" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Painite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Painite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Peanutwood ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Peanut Wood" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Petroleum ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Petroleum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Pewter ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Pewter" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Phoenixite ( -1, TextureSet.SET_NONE , 6.0F, 64, 1, 1|2 |8 |64 , 255, 255, 255, 0, "Phoenixite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Potash ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Potash" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Prometheum ( 960, TextureSet.SET_METALLIC , 8.0F, 512, 1, 1|2 |8 |64 , 90, 129, 86, 0, "Prometheum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Quartzite ( 523, TextureSet.SET_QUARTZ , 1.0F, 0, 1, 1 |4|8 , 210, 230, 210, 0, "Quartzite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite ), - Quicklime ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Quicklime" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Randomite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Randomite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - RefinedGlowstone (-326, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 , 255, 255, 0, 0, "Refined Glowstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - RefinedObsidian (-327, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 , 80, 50, 100, 0, "Refined Obsidian" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple ), - Rhyolite ( 875, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Rhyolite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Rubracium ( 488, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8|16 , 151, 45, 45, 0, "Rubracium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - RyuDragonRyder ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Ryu Dragon Ryder" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Sand ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - Sanguinite ( 955, TextureSet.SET_METALLIC , 3.0F, 4480, 4, 1|2 |8 , 185, 0, 0, 0, "Sanguinite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Siltstone ( 876, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Siltstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Spinel ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Spinel" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Starconium ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1|2 |8 , 255, 255, 255, 0, "Starconium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Sugilite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Sugilite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Sunstone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Sunstone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), - Tar ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 10, 10, 10, 0, "Tar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), - Tartarite ( 956, TextureSet.SET_METALLIC , 20.0F, 7680, 5, 1|2 |8|16 , 255, 118, 60, 0, "Tartarite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Tapazite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Tapazite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen ), - Thyrium ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1|2 |8 , 255, 255, 255, 0, "Thyrium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Tourmaline ( -1, TextureSet.SET_RUBY , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Tourmaline" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Tritanium ( 329, TextureSet.SET_METALLIC , 6.0F, 2560, 4, 1|2 |64 , 255, 255, 255, 0, "Tritanium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 2))), - Turquoise ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Turquoise" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - UUAmplifier ( 721, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 96, 0, 128, 0, "UU-Amplifier" , 0, 0, -1, 0, false, false, 10, 1, 1, Dyes.dyePink ), - UUMatter ( 703, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 128, 0, 196, 0, "UU-Matter" , 0, 0, -1, 0, false, false, 10, 1, 1, Dyes.dyePink ), - Void ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 200, "Void" , 0, 0, -1, 0, false, true , 1, 1, 1, Dyes._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 1))), - Voidstone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 200, "Voidstone" , 0, 0, -1, 0, false, true , 1, 1, 1, Dyes._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.VACUOS, 1))), - Vulcanite ( 489, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8|16 |64 , 255, 132, 72, 0, "Vulcanite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Vyroxeres ( 951, TextureSet.SET_METALLIC , 9.0F, 768, 3, 1|2 |8 |64 , 85, 224, 1, 0, "Vyroxeres" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Wimalite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 8 , 255, 255, 255, 0, "Wimalite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow ), - Yellorite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 8 , 255, 255, 255, 0, "Yellorite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow ), - Yellorium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Yellorium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow ), - Zectium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Zectium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlack ), - - /** - * Circuitry, Batteries and other Technical things - */ - Primitive ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Primitive" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 1))), - Basic ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Basic" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 2))), - Good ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Good" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 3))), - Advanced ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Advanced" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 4))), - Data ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Data" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 5))), - Elite ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Elite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 6))), - Master ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Master" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 7))), - Ultimate ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Ultimate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 8))), - Superconductor ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Superconductor" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 8))), - Infinite ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Infinite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray ), - - /** - * Not possible to determine exact Components - */ - Antimatter ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Antimatter" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 9), new TC_AspectStack(TC_Aspects.PERFODIO, 8))), - BioFuel ( 705, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 128, 0, 0, "Biofuel" , 0, 6, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange ), - Biomass ( 704, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 255, 0, 0, "Biomass" , 3, 8, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen ), - Cheese ( 894, TextureSet.SET_FINE , 1.0F, 0, 0, 1 |8 , 255, 255, 0, 0, "Cheese" , 0, 0, 320, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - Chili ( 895, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 200, 0, 0, 0, "Chili" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed ), - Chocolate ( 886, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 190, 95, 0, 0, "Chocolate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown ), - Cluster ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 127, "Cluster" , 0, 0, -1, 0, false, true , 1, 1, 1, Dyes.dyeWhite ), - CoalFuel ( 710, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 50, 50, 70, 0, "Coalfuel" , 0, 16, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), - Cocoa ( 887, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 190, 95, 0, 0, "Cocoa" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown ), - Coffee ( 888, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 150, 75, 0, 0, "Coffee" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown ), - Creosote ( 712, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 128, 64, 0, 0, "Creosote" , 3, 8, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown ), - Ethanol ( 706, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 128, 0, 0, "Ethanol" , 0, 128, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple ), - FishOil ( 711, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 196, 0, 0, "Fish Oil" , 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.CORPUS, 2))), - Fuel ( 708, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Diesel" , 0, 128, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - Glue ( 726, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 200, 196, 0, 0, "Glue" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , Arrays.asList(new TC_AspectStack(TC_Aspects.LIMUS, 2))), - Gunpowder ( 800, TextureSet.SET_DULL , 1.0F, 0, 0, 1 , 128, 128, 128, 0, "Gunpowder" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 3), new TC_AspectStack(TC_Aspects.IGNIS, 4))), - FryingOilHot ( 727, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 200, 196, 0, 0, "Hot Frying Oil" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.IGNIS, 1))), - Honey ( 725, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 210, 200, 0, 0, "Honey" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - Leather ( -1, TextureSet.SET_ROUGH , 1.0F, 0, 0, 1 , 150, 150, 80, 127, "Leather" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange ), - LimePure ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Pure Lime" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime ), - Lubricant ( 724, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 196, 0, 0, "Lubricant" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), - McGuffium239 ( 999, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 200, 50, 150, 0, "Mc Guffium 239" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , Arrays.asList(new TC_AspectStack(TC_Aspects.ALIENIS, 8), new TC_AspectStack(TC_Aspects.PERMUTATIO, 8), new TC_AspectStack(TC_Aspects.SPIRITUS, 8), new TC_AspectStack(TC_Aspects.AURAM, 8), new TC_AspectStack(TC_Aspects.VITIUM, 8), new TC_AspectStack(TC_Aspects.RADIO, 8), new TC_AspectStack(TC_Aspects.MAGNETO, 8), new TC_AspectStack(TC_Aspects.ELECTRUM, 8), new TC_AspectStack(TC_Aspects.NEBRISUM, 8), new TC_AspectStack(TC_Aspects.STRONTIO, 8))), - MeatRaw ( 892, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 255, 100, 100, 0, "Raw Meat" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink ), - MeatCooked ( 893, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 150, 60, 20, 0, "Cooked Meat" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink ), - Milk ( 885, TextureSet.SET_FINE , 1.0F, 0, 0, 1 |16 , 254, 254, 254, 0, "Milk" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.SANO, 2))), - Mud ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Mud" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown ), - Oil ( 707, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 10, 10, 10, 0, "Oil" , 3, 16, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), - Paper ( 879, TextureSet.SET_PAPER , 1.0F, 0, 0, 1 , 250, 250, 250, 0, "Paper" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.COGNITO, 1))), - Peat ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Peat" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2))), - Quantum ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Quantum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite ), - RareEarth ( 891, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 128, 128, 100, 0, "Rare Earth" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.LUCRUM, 1))), - Red ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 0, 0, 0, "Red" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed ), - Reinforced ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Reinforced" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray ), - SeedOil ( 713, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 196, 255, 0, 0, "Seed Oil" , 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , Arrays.asList(new TC_AspectStack(TC_Aspects.GRANUM, 2))), - SeedOilHemp ( 722, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 196, 255, 0, 0, "Hemp Seed Oil" , 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , Arrays.asList(new TC_AspectStack(TC_Aspects.GRANUM, 2))), - SeedOilLin ( 723, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 196, 255, 0, 0, "Lin Seed Oil" , 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , Arrays.asList(new TC_AspectStack(TC_Aspects.GRANUM, 2))), - Stone ( 299, TextureSet.SET_ROUGH , 4.0F, 32, 1, 1 |64|128 , 205, 205, 205, 0, "Stone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1))), - TNT ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "TNT" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 7), new TC_AspectStack(TC_Aspects.IGNIS, 4))), - Unstable ( -1, TextureSet.SET_NONE , 1.0F, 0, 4, 0 , 255, 255, 255, 127, "Unstable" , 0, 0, -1, 0, false, true , 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 4))), - Unstableingot ( -1, TextureSet.SET_NONE , 1.0F, 0, 4, 0 , 255, 255, 255, 127, "Unstable" , 0, 0, -1, 0, false, true , 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 4))), - Wheat ( 881, TextureSet.SET_POWDER , 1.0F, 0, 0, 1 , 255, 255, 196, 0, "Wheat" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.MESSIS, 2))), - - /** - * TODO: This - */ - AluminiumBrass ( -1, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |64 , 255, 255, 255, 0, "Aluminium Brass" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - Osmiridium ( 317, TextureSet.SET_METALLIC , 8.0F, 3000, 4, 1|2 |64|128 , 100, 100, 255, 0, "Osmiridium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightBlue ), - Sunnarium ( 318, TextureSet.SET_SHINY , 1.0F, 0, 1, 1|2 , 255, 255, 0, 0, "Sunnarium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - Endstone ( 808, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Endstone" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeYellow ), - Netherrack ( 807, TextureSet.SET_DULL , 1.0F, 0, 0, 1 , 200, 0, 0, 0, "Netherrack" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeRed ), - SoulSand ( -1, TextureSet.SET_DULL , 1.0F, 0, 0, 1 , 255, 255, 255, 0, "Soulsand" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeBrown ), - - /** - * First Degree Compounds - */ - Air ( -1, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 169, 208, 245, 240, "Air" , 0, 0, -1, 0, false, true , 1, 1, 1, Dyes.dyeLightBlue , 0, Arrays.asList(new MaterialStack(Nitrogen, 40), new MaterialStack(Oxygen, 11), new MaterialStack(Argon, 1))), - Almandine ( 820, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 255, 0, 0, 0, "Almandine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Iron, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), - Andradite ( 821, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 150, 120, 0, 0, "Andradite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Iron, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), - AnnealedCopper ( 345, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |128 , 255, 120, 20, 0, "Annealed Copper" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Copper, 1))), - Asbestos ( 946, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 230, 230, 230, 0, "Asbestos" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 9))), // Mg3Si2O5(OH)4 - Ash ( 815, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 150, 150, 150, 0, "Ashes" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , 2, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 1))), - BandedIron ( 917, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 145, 90, 90, 0, "Banded Iron" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 1, Arrays.asList(new MaterialStack(Iron, 2), new MaterialStack(Oxygen, 3))), - BatteryAlloy ( 315, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 , 156, 124, 160, 0, "Battery Alloy" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Lead, 4), new MaterialStack(Antimony, 1))), - Bauxite ( 822, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "Bauxite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBrown , 1, Arrays.asList(new MaterialStack(Titanium, 1), new MaterialStack(Aluminium, 16), new MaterialStack(Hydrogen, 10), new MaterialStack(Oxygen, 12))), - BlueTopaz ( 513, TextureSet.SET_GEM_HORIZONTAL , 7.0F, 256, 3, 1 |4|8 |64 , 0, 0, 255, 127, "Blue Topaz" , 0, 0, -1, 0, false, true , 3, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Fluorine, 2), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 6)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), - Bone ( 806, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 250, 250, 250, 0, "Bone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Calcium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.MORTUUS, 2), new TC_AspectStack(TC_Aspects.CORPUS, 1))), - Brass ( 301, TextureSet.SET_METALLIC , 7.0F, 96, 1, 1|2 |64|128 , 255, 180, 0, 0, "Brass" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Zinc, 1), new MaterialStack(Copper, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), - Bronze ( 300, TextureSet.SET_METALLIC , 6.0F, 192, 2, 1|2 |64|128 , 255, 128, 0, 0, "Bronze" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Copper, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), - BrownLimonite ( 930, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "Brown Limonite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Oxygen, 2))), // FeO(OH) - Calcite ( 823, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 250, 230, 220, 0, "Calcite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3))), - Cassiterite ( 824, TextureSet.SET_METALLIC , 1.0F, 0, 1, 8 , 220, 220, 220, 0, "Cassiterite" , 0, 0, -1, 0, false, false, 4, 3, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Oxygen, 2))), - CassiteriteSand ( 937, TextureSet.SET_SAND , 1.0F, 0, 1, 8 , 220, 220, 220, 0, "Cassiterite Sand" , 0, 0, -1, 0, false, false, 4, 3, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Oxygen, 2))), - Celestine ( 913, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 200, 205, 240, 0, "Celestine" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , 1, Arrays.asList(new MaterialStack(Strontium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), - Chalcopyrite ( 855, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 160, 120, 40, 0, "Chalcopyrite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Iron, 1), new MaterialStack(Sulfur, 2))), - Chalk ( 856, TextureSet.SET_FINE , 1.0F, 0, 2, 1 , 250, 250, 250, 0, "Chalk" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3))), - Charcoal ( 536, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |4 , 100, 70, 70, 0, "Charcoal" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2))), - Chromite ( 825, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 35, 20, 15, 0, "Chromite" , 0, 0, 1700, 1700, true , false, 6, 1, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Chrome, 2), new MaterialStack(Oxygen, 4))), - ChromiumDioxide ( 361, TextureSet.SET_DULL , 11.0F, 256, 3, 1|2 , 230, 200, 200, 0, "Chromium Dioxide" , 0, 0, 650, 650, false, false, 5, 3, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(Chrome, 1), new MaterialStack(Oxygen, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), - Cinnabar ( 826, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 150, 0, 0, 0, "Cinnabar" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Mercury, 1), new MaterialStack(Sulfur, 1))), - Clay ( 805, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 200, 200, 220, 0, "Clay" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Lithium, 1), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 2))), - Coal ( 535, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |4|8 , 70, 70, 70, 0, "Coal" , 0, 0, -1, 0, false, false, 2, 2, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2))), - Cobaltite ( 827, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 80, 80, 250, 0, "Cobaltite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Cobalt, 1), new MaterialStack(Arsenic, 1), new MaterialStack(Sulfur, 1))), - Cooperite ( 828, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 255, 255, 200, 0, "Sheldonite" , 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Platinum, 3), new MaterialStack(Nickel, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Palladium, 1))), - Cupronickel ( 310, TextureSet.SET_METALLIC , 6.0F, 64, 1, 1|2 |64 , 227, 150, 128, 0, "Cupronickel" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Nickel, 1))), - DarkAsh ( 816, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 50, 50, 50, 0, "Dark Ashes" , 0, 0, -1, 0, false, false, 1, 2, 1, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1), new TC_AspectStack(TC_Aspects.PERDITIO, 1))), - DeepIron ( 829, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |8 |64 , 150, 140, 140, 0, "Deep Iron" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - Diamond ( 500, TextureSet.SET_DIAMOND , 8.0F, 1280, 3, 1 |4|8 |64|128 , 200, 255, 255, 127, "Diamond" , 0, 0, -1, 0, false, true , 5, 64, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3), new TC_AspectStack(TC_Aspects.LUCRUM, 4))), - Electrum ( 303, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |64|128 , 255, 255, 100, 0, "Electrum" , 0, 0, -1, 0, false, false, 4, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Silver, 1), new MaterialStack(Gold, 1))), - Emerald ( 501, TextureSet.SET_EMERALD , 7.0F, 256, 2, 1 |4|8 |64 , 80, 255, 80, 127, "Emerald" , 0, 0, -1, 0, false, true , 5, 1, 1, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(Beryllium, 3), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 6), new MaterialStack(Oxygen, 18)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3), new TC_AspectStack(TC_Aspects.LUCRUM, 5))), - FreshWater ( -1, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "Fresh Water" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2))), - Galena ( 830, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 100, 60, 100, 0, "Galena" , 0, 0, -1, 0, false, false, 4, 1, 1, Dyes.dyePurple , 1, Arrays.asList(new MaterialStack(Lead, 3), new MaterialStack(Silver, 3), new MaterialStack(Sulfur, 2))), - Garnierite ( 906, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 50, 200, 70, 0, "Garnierite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Nickel, 1), new MaterialStack(Oxygen, 1))), - Glyceryl ( 714, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 0, 150, 150, 0, "Glyceryl Trinitrate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 5), new MaterialStack(Nitrogen, 3), new MaterialStack(Oxygen, 9))), - GreenSapphire ( 504, TextureSet.SET_GEM_HORIZONTAL , 7.0F, 256, 2, 1 |4|8 |64 , 100, 200, 130, 127, "Green Sapphire" , 0, 0, -1, 0, false, true , 5, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Grossular ( 831, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "Grossular" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), - HolyWater ( 729, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "Holy Water" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2), new TC_AspectStack(TC_Aspects.AURAM, 1))), - Ice ( 702, TextureSet.SET_SHINY , 1.0F, 0, 0, 1| 16 , 200, 200, 255, 0, "Ice" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.GELUM, 2))), - Ilmenite ( 918, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 70, 55, 50, 0, "Ilmenite" , 0, 0, -1, 0, false, false, 1, 2, 1, Dyes.dyePurple , 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Titanium, 1), new MaterialStack(Oxygen, 3))), - Invar ( 302, TextureSet.SET_METALLIC , 6.0F, 256, 2, 1|2 |64|128 , 180, 180, 120, 0, "Invar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Iron, 2), new MaterialStack(Nickel, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.GELUM, 1))), - IronCompressed ( -1, TextureSet.SET_METALLIC , 7.0F, 96, 1, 1|2 |64|128 , 128, 128, 128, 0, "Compressed Iron" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Iron, 1))), - Kanthal ( 312, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |64 , 194, 210, 223, 0, "Kanthal" , 0, 0, 1800, 1800, true , false, 1, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Chrome, 1))), - Lazurite ( 524, TextureSet.SET_LAPIS , 1.0F, 0, 1, 1 |4|8 , 100, 120, 255, 0, "Lazurite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Aluminium, 6), new MaterialStack(Silicon, 6), new MaterialStack(Calcium, 8), new MaterialStack(Sodium, 8))), - Magnalium ( 313, TextureSet.SET_DULL , 6.0F, 256, 2, 1|2 |64|128 , 200, 190, 255, 0, "Magnalium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Aluminium, 2))), - Magnesite ( 908, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 250, 250, 180, 0, "Magnesite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3))), - Magnetite ( 870, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 30, 30, 30, 0, "Magnetite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Iron, 3), new MaterialStack(Oxygen, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - Methane ( 715, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 255, 255, 255, 0, "Methane" , 1, 45, -1, 0, false, false, 3, 1, 1, Dyes.dyeMagenta , 1, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 4))), - Molybdenite ( 942, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 25, 25, 25, 0, "Molybdenite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Molybdenum, 1), new MaterialStack(Sulfur, 2))), // MoS2 (also source of Re) - Nichrome ( 311, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |64 , 205, 206, 246, 0, "Nichrome" , 0, 0, 2700, 2700, true , false, 1, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Nickel, 4), new MaterialStack(Chrome, 1))), - NiobiumNitride ( 359, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 , 29, 41, 29, 0, "Niobium Nitride" , 0, 0, 2573, 2573, true , false, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Niobium, 1), new MaterialStack(Nitrogen, 1))), // Anti-Reflective Material - NiobiumTitanium ( 360, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 , 29, 29, 41, 0, "Niobium-Titanium" , 0, 0, 2800, 2800, true , false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Niobium, 1), new MaterialStack(Titanium, 1))), - NitroCarbon ( 716, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 0, 75, 100, 0, "Nitro-Carbon" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Nitrogen, 1), new MaterialStack(Carbon, 1))), - NitrogenDioxide ( 717, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 100, 175, 255, 0, "Nitrogen Dioxide" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 2))), - Obsidian ( 804, TextureSet.SET_DULL , 1.0F, 0, 3, 1 , 80, 50, 100, 0, "Obsidian" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Iron, 1), new MaterialStack(Silicon, 2), new MaterialStack(Oxygen, 8))), - Phosphate ( 833, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8|16 , 255, 255, 0, 0, "Phosphate" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Phosphor, 1), new MaterialStack(Oxygen, 4))), - PigIron ( 307, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |8 |64 , 200, 180, 180, 0, "Pig Iron" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Iron, 1))), - Plastic ( 874, TextureSet.SET_DULL , 3.0F, 32, 1, 1|2 |64|128 , 200, 200, 200, 0, "Plastic" , 0, 0, 400, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), - Powellite ( 883, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 255, 255, 0, 0, "Powellite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Molybdenum, 1), new MaterialStack(Oxygen, 4))), - Pumice ( 926, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 230, 185, 185, 0, "Pumice" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Stone, 1))), - Pyrite ( 834, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 150, 120, 40, 0, "Pyrite" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Sulfur, 2))), - Pyrolusite ( 943, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 150, 150, 170, 0, "Pyrolusite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , 1, Arrays.asList(new MaterialStack(Manganese, 1), new MaterialStack(Oxygen, 2))), - Pyrope ( 835, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 120, 50, 100, 0, "Pyrope" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyePurple , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), - RockSalt ( 944, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 240, 200, 200, 0, "Rock Salt" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Chlorine, 1))), - Rubber ( 880, TextureSet.SET_SHINY , 1.5F, 16, 0, 1|2 |64|128 , 0, 0, 0, 0, "Rubber" , 0, 0, 400, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 0, Arrays.asList(new MaterialStack(Carbon, 5), new MaterialStack(Hydrogen, 8)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), - Ruby ( 502, TextureSet.SET_RUBY , 7.0F, 256, 2, 1 |4|8 |64 , 255, 100, 100, 127, "Ruby" , 0, 0, -1, 0, false, true , 5, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(Chrome, 1), new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), - Salt ( 817, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 250, 250, 250, 0, "Salt" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Chlorine, 1))), - Saltpeter ( 836, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 230, 230, 230, 0, "Saltpeter" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 3))), - SaltWater ( -1, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "Salt Water" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2))), - Sapphire ( 503, TextureSet.SET_GEM_VERTICAL , 7.0F, 256, 2, 1 |4|8 |64 , 100, 100, 200, 127, "Sapphire" , 0, 0, -1, 0, false, true , 5, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Scheelite ( 910, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 200, 140, 20, 0, "Scheelite" , 0, 0, 2500, 2500, false, false, 4, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Tungsten, 1), new MaterialStack(Calcium, 2), new MaterialStack(Oxygen, 4))), - SiliconDioxide ( 837, TextureSet.SET_QUARTZ , 1.0F, 0, 1, 1 |16 , 200, 200, 200, 0, "Silicon Dioxide" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , 1, Arrays.asList(new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 2))), - Snow ( 728, TextureSet.SET_FINE , 1.0F, 0, 0, 1| 16 , 250, 250, 250, 0, "Snow" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.GELUM, 1))), - Sodalite ( 525, TextureSet.SET_LAPIS , 1.0F, 0, 1, 1 |4|8 , 20, 20, 255, 0, "Sodalite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Sodium, 4), new MaterialStack(Chlorine, 1))), - SodiumPersulfate ( 718, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 255, 255, 255, 0, "Sodium Persulfate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), - SodiumSulfide ( 719, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 255, 255, 255, 0, "Sodium Sulfide" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Sulfur, 1))), - SolderingAlloy ( 314, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 , 220, 220, 230, 0, "Soldering Alloy" , 0, 0, 400, 400, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Tin, 9), new MaterialStack(Antimony, 1))), - Spessartine ( 838, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 255, 100, 100, 0, "Spessartine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Manganese, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), - Sphalerite ( 839, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Sphalerite" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Zinc, 1), new MaterialStack(Sulfur, 1))), - StainlessSteel ( 306, TextureSet.SET_SHINY , 7.0F, 480, 2, 1|2 |64|128 , 200, 200, 220, 0, "Stainless Steel" , 0, 0, -1, 1700, true , false, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Iron, 6), new MaterialStack(Chrome, 1), new MaterialStack(Manganese, 1), new MaterialStack(Nickel, 1))), - Steel ( 305, TextureSet.SET_METALLIC , 6.0F, 512, 2, 1|2 |64|128 , 128, 128, 128, 0, "Steel" , 0, 0, 1811, 1000, true , false, 4, 51, 50, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Iron, 50), new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 1))), - Stibnite ( 945, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 70, 70, 70, 0, "Stibnite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Antimony, 2), new MaterialStack(Sulfur, 3))), - SulfuricAcid ( 720, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 255, 128, 0, 0, "Sulfuric Acid" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), - Tanzanite ( 508, TextureSet.SET_GEM_VERTICAL , 7.0F, 256, 2, 1 |4|8 |64 , 64, 0, 200, 127, "Tanzanite" , 0, 0, -1, 0, false, true , 5, 1, 1, Dyes.dyePurple , 1, Arrays.asList(new MaterialStack(Calcium, 2), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Hydrogen, 1), new MaterialStack(Oxygen, 13)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Tetrahedrite ( 840, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 200, 32, 0, 0, "Tetrahedrite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Copper, 3), new MaterialStack(Antimony, 1), new MaterialStack(Sulfur, 3), new MaterialStack(Iron, 1))), //Cu3SbS3 + x(Fe,Zn)6Sb2S9 - TinAlloy ( 363, TextureSet.SET_METALLIC , 6.5F, 96, 2, 1|2 |64|128 , 200, 200, 200, 0, "Tin Alloy" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), - Topaz ( 507, TextureSet.SET_GEM_HORIZONTAL , 7.0F, 256, 3, 1 |4|8 |64 , 255, 128, 0, 127, "Topaz" , 0, 0, -1, 0, false, true , 5, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Fluorine, 2), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 6)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), - Tungstate ( 841, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 55, 50, 35, 0, "Tungstate" , 0, 0, 2500, 2500, true , false, 4, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Tungsten, 1), new MaterialStack(Lithium, 2), new MaterialStack(Oxygen, 4))), - Ultimet ( 344, TextureSet.SET_SHINY , 6.0F, 512, 3, 1|2 |64|128 , 180, 180, 230, 0, "Ultimet" , 0, 0, 2700, 2700, true , false, 1, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Cobalt, 5), new MaterialStack(Chrome, 2), new MaterialStack(Nickel, 1), new MaterialStack(Molybdenum, 1))), // 54% Cobalt, 26% Chromium, 9% Nickel, 5% Molybdenum, 3% Iron, 2% Tungsten, 0.8% Manganese, 0.3% Silicon, 0.08% Nitrogen and 0.06% Carbon - Uraninite ( 922, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 35, 35, 35, 0, "Uraninite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , 2, Arrays.asList(new MaterialStack(Uranium, 1), new MaterialStack(Oxygen, 2))), - Uvarovite ( 842, TextureSet.SET_DIAMOND , 1.0F, 0, 2, 1 |8 , 180, 255, 180, 0, "Uvarovite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Chrome, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), - VanadiumGallium ( 357, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 , 128, 128, 140, 0, "Vanadium-Gallium" , 0, 0, 3000, 3000, true , false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Vanadium, 3), new MaterialStack(Gallium, 1))), - Water ( 701, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "Water" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2))), - Wood ( 809, TextureSet.SET_WOOD , 2.0F, 16, 0, 1|2 |64|128 , 100, 50, 0, 0, "Wood" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 0, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 1), new MaterialStack(Hydrogen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2))), - WroughtIron ( 304, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |64|128 , 200, 180, 180, 0, "Wrought Iron" , 0, 0, 1811, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , 2, Arrays.asList(new MaterialStack(Iron, 1))), - Wulfenite ( 882, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 255, 128, 0, 0, "Wulfenite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Lead, 1), new MaterialStack(Molybdenum, 1), new MaterialStack(Oxygen, 4))), - YellowLimonite ( 931, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 200, 200, 0, 0, "Yellow Limonite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Oxygen, 2))), // FeO(OH) + a bit Ni and Co - YttriumBariumCuprate( 358, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 , 80, 64, 70, 0, "Yttrium Barium Cuprate" , 0, 0, 1200, 1200, true , false, 1, 1, 1, Dyes.dyeGray , 0, Arrays.asList(new MaterialStack(Yttrium, 1), new MaterialStack(Barium, 2), new MaterialStack(Copper, 3), new MaterialStack(Oxygen, 7))), - - /** - * Second Degree Compounds - */ - WoodSealed ( 889, TextureSet.SET_WOOD , 3.0F, 24, 0, 1|2 |64|128 , 80, 40, 0, 0, "Sealed Wood" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 0, Arrays.asList(new MaterialStack(Wood, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2), new TC_AspectStack(TC_Aspects.FABRICO, 1))), - LiveRoot ( 832, TextureSet.SET_WOOD , 1.0F, 0, 1, 1 , 220, 200, 0, 0, "Liveroot" , 5, 16, -1, 0, false, false, 2, 4, 3, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Wood, 3), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2), new TC_AspectStack(TC_Aspects.VICTUS, 2), new TC_AspectStack(TC_Aspects.PRAECANTIO, 1))), - IronWood ( 338, TextureSet.SET_WOOD , 6.0F, 384, 2, 1|2 |64|128 , 150, 140, 110, 0, "Ironwood" , 5, 8, -1, 0, false, false, 2, 19, 18, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Iron, 9), new MaterialStack(LiveRoot, 9), new MaterialStack(Gold, 1))), - Glass ( 890, TextureSet.SET_GLASS , 1.0F, 4, 0, 1 |4 , 250, 250, 250, 220, "Glass" , 0, 0, 1500, 0, false, true , 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2))), - Perlite ( 925, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 30, 20, 30, 0, "Perlite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Obsidian, 2), new MaterialStack(Water, 1))), - Borax ( 941, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 250, 250, 250, 0, "Borax" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Boron, 4), new MaterialStack(Water, 10), new MaterialStack(Oxygen, 7))), - Lignite ( 538, TextureSet.SET_LIGNITE , 1.0F, 0, 0, 1 |4|8 , 100, 70, 70, 0, "Lignite Coal" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Carbon, 2), new MaterialStack(Water, 4), new MaterialStack(DarkAsh, 1))), - Olivine ( 505, TextureSet.SET_RUBY , 7.0F, 256, 2, 1 |4|8 |64 , 150, 255, 150, 127, "Olivine" , 0, 0, -1, 0, false, true , 5, 1, 1, Dyes.dyeLime , 1, Arrays.asList(new MaterialStack(Magnesium, 2), new MaterialStack(Iron, 1), new MaterialStack(SiliconDioxide, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 2))), - Opal ( 510, TextureSet.SET_OPAL , 7.0F, 256, 2, 1 |4|8 |64 , 0, 0, 255, 0, "Opal" , 0, 0, -1, 0, false, true , 3, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Amethyst ( 509, TextureSet.SET_FLINT , 7.0F, 256, 3, 1 |4|8 |64 , 210, 50, 210, 127, "Amethyst" , 0, 0, -1, 0, false, true , 3, 1, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(SiliconDioxide, 4), new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), - Redstone ( 810, TextureSet.SET_ROUGH , 1.0F, 0, 2, 1 |8 , 200, 0, 0, 0, "Redstone" , 0, 0, 500, 0, false, false, 3, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Silicon, 1), new MaterialStack(Pyrite, 5), new MaterialStack(Ruby, 1), new MaterialStack(Mercury, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 2))), - Lapis ( 526, TextureSet.SET_LAPIS , 1.0F, 0, 1, 1 |4|8 , 70, 70, 220, 0, "Lapis" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue , 2, Arrays.asList(new MaterialStack(Lazurite, 12), new MaterialStack(Sodalite, 2), new MaterialStack(Pyrite, 1), new MaterialStack(Calcite, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.SENSUS, 1))), - Blaze ( 801, TextureSet.SET_POWDER , 2.0F, 16, 1, 1 |64 , 255, 200, 0, 0, "Blaze" , 0, 0, 6400, 0, false, false, 2, 3, 2, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(DarkAsh, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 2), new TC_AspectStack(TC_Aspects.IGNIS, 4))), - EnderPearl ( 532, TextureSet.SET_SHINY , 1.0F, 16, 1, 1 |4 , 108, 220, 200, 0, "Enderpearl" , 0, 0, -1, 0, false, false, 1, 16, 10, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(Beryllium, 1), new MaterialStack(Potassium, 4), new MaterialStack(Nitrogen, 5), new MaterialStack(Magic, 6)), Arrays.asList(new TC_AspectStack(TC_Aspects.ALIENIS, 4), new TC_AspectStack(TC_Aspects.ITER, 4), new TC_AspectStack(TC_Aspects.PRAECANTIO, 2))), - EnderEye ( 533, TextureSet.SET_SHINY , 1.0F, 16, 1, 1 |4 , 160, 250, 230, 0, "Endereye" , 5, 10, -1, 0, false, false, 1, 2, 1, Dyes.dyeGreen , 2, Arrays.asList(new MaterialStack(EnderPearl, 1), new MaterialStack(Blaze, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.SENSUS, 4), new TC_AspectStack(TC_Aspects.ALIENIS, 4), new TC_AspectStack(TC_Aspects.ITER, 4), new TC_AspectStack(TC_Aspects.PRAECANTIO, 3), new TC_AspectStack(TC_Aspects.IGNIS, 2))), - Flint ( 802, TextureSet.SET_FLINT , 2.5F, 64, 1, 1 |64 , 0, 32, 64, 0, "Flint" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), - Diatomite ( 948, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 225, 225, 225, 0, "Diatomite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Flint, 8), new MaterialStack(BandedIron, 1), new MaterialStack(Sapphire, 1))), - VolcanicAsh ( 940, TextureSet.SET_FLINT , 1.0F, 0, 0, 1 , 60, 50, 50, 0, "Volcanic Ashes" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Flint, 6), new MaterialStack(Iron, 1), new MaterialStack(Magnesium, 1))), - Niter ( 531, TextureSet.SET_FLINT , 1.0F, 0, 1, 1 |4|8 , 255, 200, 200, 0, "Niter" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Saltpeter, 1))), - Pyrotheum ( 843, TextureSet.SET_FIERY , 1.0F, 0, 1, 1 , 255, 128, 0, 0, "Pyrotheum" , 2, 62, -1, 0, false, false, 2, 3, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Coal, 1), new MaterialStack(Redstone, 1), new MaterialStack(Blaze, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 2), new TC_AspectStack(TC_Aspects.IGNIS, 1))), - HydratedCoal ( 818, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 70, 70, 100, 0, "Hydrated Coal" , 0, 0, -1, 0, false, false, 1, 9, 8, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Coal, 8), new MaterialStack(Water, 1))), - Apatite ( 530, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8 , 200, 200, 255, 0, "Apatite" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Calcium, 5), new MaterialStack(Phosphate, 3), new MaterialStack(Chlorine, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.MESSIS, 2))), - Alumite ( -1, TextureSet.SET_METALLIC , 1.5F, 64, 0, 1|2 |64 , 255, 255, 255, 0, "Alumite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Aluminium, 5), new MaterialStack(Iron, 2), new MaterialStack(Obsidian, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.STRONTIO, 2))), - Manyullyn ( -1, TextureSet.SET_METALLIC , 1.5F, 64, 0, 1|2 |64 , 255, 255, 255, 0, "Manyullyn" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Cobalt, 1), new MaterialStack(Aredrite, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.STRONTIO, 2))), - ShadowIron ( 336, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |8 |64 , 120, 120, 120, 0, "Shadowiron" , 0, 0, -1, 0, false, false, 3, 4, 3, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Iron, 3), new MaterialStack(Magic, 1))), - ShadowSteel ( 337, TextureSet.SET_METALLIC , 6.0F, 768, 2, 1|2 |64 , 90, 90, 90, 0, "Shadowsteel" , 0, 0, -1, 1700, true , false, 4, 4, 3, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Steel, 3), new MaterialStack(Magic, 1))), - Steeleaf ( 339, TextureSet.SET_LEAF , 8.0F, 768, 3, 1|2 |64|128 , 50, 127, 50, 0, "Steeleaf" , 5, 24, -1, 0, false, false, 4, 1, 1, Dyes.dyeGreen , 2, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.HERBA, 2), new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.PRAECANTIO, 1))), - Knightmetal ( 362, TextureSet.SET_METALLIC , 8.0F, 1024, 3, 1|2 |64|128 , 210, 240, 200, 0, "Knightmetal" , 5, 24, -1, 0, false, false, 4, 1, 1, Dyes.dyeLime , 2, Arrays.asList(new MaterialStack(Steel, 2), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 1), new TC_AspectStack(TC_Aspects.METALLUM, 2))), - SterlingSilver ( 350, TextureSet.SET_SHINY , 13.0F, 128, 2, 1|2 |64|128 , 250, 220, 225, 0, "Sterling Silver" , 0, 0, -1, 1700, true , false, 4, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Silver, 4))), - RoseGold ( 351, TextureSet.SET_SHINY , 14.0F, 128, 2, 1|2 |64|128 , 255, 230, 30, 0, "Rose Gold" , 0, 0, -1, 1600, true , false, 4, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Gold, 4))), - BlackBronze ( 352, TextureSet.SET_DULL , 12.0F, 256, 2, 1|2 |64|128 , 100, 50, 125, 0, "Black Bronze" , 0, 0, -1, 2000, true , false, 4, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Gold, 1), new MaterialStack(Silver, 1), new MaterialStack(Copper, 3))), - BismuthBronze ( 353, TextureSet.SET_DULL , 8.0F, 256, 2, 1|2 |64|128 , 100, 125, 125, 0, "Bismuth Bronze" , 0, 0, -1, 1100, true , false, 4, 1, 1, Dyes.dyeCyan , 2, Arrays.asList(new MaterialStack(Bismuth, 1), new MaterialStack(Zinc, 1), new MaterialStack(Copper, 3))), - BlackSteel ( 334, TextureSet.SET_METALLIC , 6.5F, 768, 2, 1|2 |64 , 100, 100, 100, 0, "Black Steel" , 0, 0, -1, 1200, true , false, 4, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Nickel, 1), new MaterialStack(BlackBronze, 1), new MaterialStack(Steel, 3))), - RedSteel ( 348, TextureSet.SET_METALLIC , 7.0F, 896, 2, 1|2 |64 , 140, 100, 100, 0, "Red Steel" , 0, 0, -1, 1300, true , false, 4, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(SterlingSilver, 1), new MaterialStack(BismuthBronze, 1), new MaterialStack(Steel, 2), new MaterialStack(BlackSteel, 4))), - BlueSteel ( 349, TextureSet.SET_METALLIC , 7.5F, 1024, 2, 1|2 |64 , 100, 100, 140, 0, "Blue Steel" , 0, 0, -1, 1400, true , false, 4, 1, 1, Dyes.dyeBlue , 2, Arrays.asList(new MaterialStack(RoseGold, 1), new MaterialStack(Brass, 1), new MaterialStack(Steel, 2), new MaterialStack(BlackSteel, 4))), - DamascusSteel ( 335, TextureSet.SET_METALLIC , 8.0F, 1280, 2, 1|2 |64 , 110, 110, 110, 0, "Damascus Steel" , 0, 0, 2000, 1500, true , false, 4, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Steel, 1))), - TungstenSteel ( 316, TextureSet.SET_METALLIC , 10.0F, 5120, 4, 1|2 |64|128 , 100, 100, 160, 0, "Tungstensteel" , 0, 0, -1, 3000, true , false, 4, 1, 1, Dyes.dyeBlue , 2, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Tungsten, 1))), - NitroCoalFuel ( -1, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 50, 70, 50, 0, "Nitro-Coalfuel" , 0, 48, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 0, Arrays.asList(new MaterialStack(Glyceryl, 1), new MaterialStack(CoalFuel, 4))), - NitroFuel ( 709, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 200, 255, 0, 0, "Nitro-Diesel" , 0, 384, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , 0, Arrays.asList(new MaterialStack(Glyceryl, 1), new MaterialStack(Fuel, 4))), - AstralSilver ( 333, TextureSet.SET_SHINY , 10.0F, 64, 2, 1|2 |8 |64 , 230, 230, 255, 0, "Astral Silver" , 0, 0, -1, 0, false, false, 4, 3, 2, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Silver, 2), new MaterialStack(Magic, 1))), - Midasium ( 332, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |64 , 255, 200, 40, 0, "Midasium" , 0, 0, -1, 0, false, false, 4, 3, 2, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Gold, 2), new MaterialStack(Magic, 1))), - Mithril ( 331, TextureSet.SET_SHINY , 14.0F, 64, 3, 1|2 |8 |64 , 255, 255, 210, 0, "Mithril" , 0, 0, -1, 0, false, false, 4, 3, 2, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Platinum, 2), new MaterialStack(Magic, 1))), - BlueAlloy ( 309, TextureSet.SET_DULL , 1.0F, 0, 0, 1|2 , 100, 180, 255, 0, "Blue Alloy" , 0, 0, -1, 0, false, false, 3, 5, 1, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Silver, 1), new MaterialStack(Nikolite, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 3))), - RedAlloy ( 308, TextureSet.SET_DULL , 1.0F, 0, 0, 1|2 , 200, 0, 0, 0, "Red Alloy" , 0, 0, -1, 0, false, false, 3, 5, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Metal, 1), new MaterialStack(Redstone, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 3))), - CobaltBrass ( 343, TextureSet.SET_METALLIC , 8.0F, 256, 2, 1|2 |64|128 , 180, 180, 160, 0, "Cobalt Brass" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Brass, 7), new MaterialStack(Aluminium, 1), new MaterialStack(Cobalt, 1))), - Phosphorus ( 534, TextureSet.SET_FLINT , 1.0F, 0, 2, 1 |4|8|16 , 255, 255, 0, 0, "Phosphorus" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Phosphate, 2))), - Basalt ( 844, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 30, 20, 20, 0, "Basalt" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Olivine, 1), new MaterialStack(Calcite, 3), new MaterialStack(Flint, 8), new MaterialStack(DarkAsh, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.TENEBRAE, 1))), - GarnetRed ( 527, TextureSet.SET_RUBY , 7.0F, 128, 2, 1 |4|8 |64 , 200, 80, 80, 127, "Red Garnet" , 0, 0, -1, 0, false, true , 4, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Pyrope, 3), new MaterialStack(Almandine, 5), new MaterialStack(Spessartine, 8)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))), - GarnetYellow ( 528, TextureSet.SET_RUBY , 7.0F, 128, 2, 1 |4|8 |64 , 200, 200, 80, 127, "Yellow Garnet" , 0, 0, -1, 0, false, true , 4, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Andradite, 5), new MaterialStack(Grossular, 8), new MaterialStack(Uvarovite, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Marble ( 845, TextureSet.SET_FINE , 1.0F, 0, 1, 1 , 200, 200, 200, 0, "Marble" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Calcite, 7)), Arrays.asList(new TC_AspectStack(TC_Aspects.PERFODIO, 1))), - Sugar ( 803, TextureSet.SET_FINE , 1.0F, 0, 1, 1 , 250, 250, 250, 0, "Sugar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Carbon, 2), new MaterialStack(Water, 5), new MaterialStack(Oxygen, 25)), Arrays.asList(new TC_AspectStack(TC_Aspects.HERBA, 1), new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.AER, 1))), - Thaumium ( 330, TextureSet.SET_METALLIC , 12.0F, 256, 3, 1|2 |64|128 , 150, 100, 200, 0, "Thaumium" , 0, 0, -1, 0, false, false, 5, 2, 1, Dyes.dyePurple , 0, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.PRAECANTIO, 1))), - Vinteum ( 529, TextureSet.SET_EMERALD , 10.0F, 128, 3, 1 |4|8 |64 , 100, 200, 255, 0, "Vinteum" , 5, 32, -1, 0, false, false, 4, 1, 1, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.PRAECANTIO, 1))), - Vis ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, 0 , 128, 0, 255, 0, "Vis" , 5, 32, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AURAM, 2), new TC_AspectStack(TC_Aspects.PRAECANTIO, 1))), - Redrock ( 846, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 255, 80, 50, 0, "Redrock" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Calcite, 2), new MaterialStack(Flint, 1), new MaterialStack(Clay, 1))), - PotassiumFeldspar ( 847, TextureSet.SET_FINE , 1.0F, 0, 1, 1 , 120, 40, 40, 0, "Potassium Feldspar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 8))), - Biotite ( 848, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 , 20, 30, 20, 0, "Biotite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 3), new MaterialStack(Aluminium, 3), new MaterialStack(Fluorine, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 10))), - GraniteBlack ( 849, TextureSet.SET_ROUGH , 4.0F, 64, 3, 1 |64|128 , 10, 10, 10, 0, "Black Granite" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(SiliconDioxide, 4), new MaterialStack(Biotite, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), - GraniteRed ( 850, TextureSet.SET_ROUGH , 4.0F, 64, 3, 1 |64|128 , 255, 0, 128, 0, "Red Granite" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeMagenta , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(PotassiumFeldspar, 1), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), - Chrysotile ( 912, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 110, 140, 110, 0, "Chrysotile" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Asbestos, 1))), - Realgar ( 555, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 140, 100, 100, 0, "Realgar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Arsenic, 4), new MaterialStack(Sulfur,4))), - VanadiumMagnetite ( 923, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 35, 35, 60, 0, "Vanadium Magnetite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(Vanadium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), // Mixture of Fe3O4 and V2O5 - BasalticMineralSand ( 935, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 40, 50, 40, 0, "Basaltic Mineral Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(Basalt, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - GraniticMineralSand ( 936, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 40, 60, 60, 0, "Granitic Mineral Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(GraniteBlack, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - GarnetSand ( 938, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "Garnet Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(GarnetRed, 1), new MaterialStack(GarnetYellow, 1))), - QuartzSand ( 939, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 200, 200, 200, 0, "Quartz Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(CertusQuartz, 1), new MaterialStack(Quartzite, 1))), - Bastnasite ( 905, TextureSet.SET_FINE , 1.0F, 0, 2, 1 |8 , 200, 110, 45, 0, "Bastnasite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Cerium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Fluorine, 1), new MaterialStack(Oxygen, 3))), // (Ce, La, Y)CO3F - Pentlandite ( 909, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 165, 150, 5, 0, "Pentlandite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Nickel, 9), new MaterialStack(Sulfur, 8))), // (Fe,Ni)9S8 - Spodumene ( 920, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 190, 170, 170, 0, "Spodumene" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Lithium, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Silicon, 2), new MaterialStack(Oxygen, 6))), // LiAl(SiO3)2 - Pollucite ( 919, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 210, 210, 0, "Pollucite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Caesium, 2), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 4), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 12))), // (Cs,Na)2Al2Si4O12 2H2O (also a source of Rb) - Tantalite ( 921, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 145, 80, 40, 0, "Tantalite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Manganese, 1), new MaterialStack(Tantalum, 2), new MaterialStack(Oxygen, 6))), // (Fe, Mn)Ta2O6 (also source of Nb) - Lepidolite ( 907, TextureSet.SET_FINE , 1.0F, 0, 2, 1 |8 , 240, 50, 140, 0, "Lepidolite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Lithium, 3), new MaterialStack(Aluminium, 4), new MaterialStack(Fluorine, 2), new MaterialStack(Oxygen, 10))), // K(Li,Al,Rb)3(Al,Si)4O10(F,OH)2 - Glauconite ( 933, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 130, 180, 60, 0, "Glauconite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 2), new MaterialStack(Aluminium, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // (K,Na)(Fe3+,Al,Mg)2(Si,Al)4O10(OH)2 - GlauconiteSand ( 949, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 130, 180, 60, 0, "Glauconite Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 2), new MaterialStack(Aluminium, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // (K,Na)(Fe3+,Al,Mg)2(Si,Al)4O10(OH)2 - Vermiculite ( 932, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 200, 180, 15, 0, "Vermiculite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Iron, 3), new MaterialStack(Aluminium, 4), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Water, 4), new MaterialStack(Oxygen, 12))), // (Mg+2, Fe+2, Fe+3)3 [(AlSi)4O10] (OH)2 4H2O) - Bentonite ( 927, TextureSet.SET_ROUGH , 1.0F, 0, 2, 1 |8 , 245, 215, 210, 0, "Bentonite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Magnesium, 6), new MaterialStack(Silicon, 12), new MaterialStack(Hydrogen, 6), new MaterialStack(Water, 5), new MaterialStack(Oxygen, 36))), // (Na,Ca)0.33(Al,Mg)2(Si4O10)(OH)2 nH2O - FullersEarth ( 928, TextureSet.SET_FINE , 1.0F, 0, 2, 1 |8 , 160, 160, 120, 0, "Fullers Earth" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 1), new MaterialStack(Water, 4), new MaterialStack(Oxygen, 11))), // (Mg,Al)2Si4O10(OH) 4(H2O) - Pitchblende ( 873, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 200, 210, 0, 0, "Pitchblende" , 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Uraninite, 3), new MaterialStack(Thorium, 1), new MaterialStack(Lead, 1))), - Monazite ( 520, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8 , 50, 70, 50, 0, "Monazite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(RareEarth, 1), new MaterialStack(Phosphate, 1))), // Wikipedia: (Ce, La, Nd, Th, Sm, Gd)PO4 Monazite also smelt-extract to Helium, it is brown like the rare earth Item Monazite sand deposits are inevitably of the monazite-(Ce) composition. Typically, the lanthanides in such monazites contain about 45�48% cerium, about 24% lanthanum, about 17% neodymium, about 5% praseodymium, and minor quantities of samarium, gadolinium, and yttrium. Europium concentrations tend to be low, about 0.05% Thorium content of monazite is variable and sometimes can be up to 20�30% - Malachite ( 871, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 5, 95, 5, 0, "Malachite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(Copper, 2), new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 5))), // Cu2CO3(OH)2 - Mirabilite ( 900, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 250, 210, 0, "Mirabilite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Sulfur, 1), new MaterialStack(Water, 10), new MaterialStack(Oxygen, 4))), // Na2SO4 10H2O - Mica ( 901, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 195, 195, 205, 0, "Mica" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Fluorine, 2), new MaterialStack(Oxygen, 10))), // KAl2(AlSi3O10)(F,OH)2 - Trona ( 903, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 135, 135, 95, 0, "Trona" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Sodium, 3), new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 1), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 6))), // Na3(CO3)(HCO3) 2H2O - Barite ( 904, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 230, 235, 255, 0, "Barite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Barium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), - Gypsum ( 934, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 230, 230, 250, 0, "Gypsum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 4))), // CaSO4 2H2O - Alunite ( 911, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 225, 180, 65, 0, "Alunite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 14))), // KAl3(SO4)2(OH)6 - Dolomite ( 914, TextureSet.SET_FLINT , 1.0F, 0, 1, 1 |8 , 225, 205, 205, 0, "Dolomite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Magnesium, 1), new MaterialStack(Carbon, 2), new MaterialStack(Oxygen, 6))), // CaMg(CO3)2 - Wollastonite ( 915, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 240, 240, 0, "Wollastonite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 3))), // CaSiO3 - Zeolite ( 916, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 230, 230, 0, "Zeolite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Calcium, 4), new MaterialStack(Silicon, 27), new MaterialStack(Aluminium, 9), new MaterialStack(Water, 28), new MaterialStack(Oxygen, 72))), // NaCa4(Si27Al9)O72 28(H2O) - Kyanite ( 924, TextureSet.SET_FLINT , 1.0F, 0, 2, 1 |8 , 110, 110, 250, 0, "Kyanite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 5))), // Al2SiO5 - Kaolinite ( 929, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 245, 235, 235, 0, "Kaolinite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 9))), // Al2Si2O5(OH)4 - Talc ( 902, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 90, 180, 90, 0, "Talc" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // H2Mg3(SiO3)4 - Soapstone ( 877, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 95, 145, 95, 0, "Soapstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // H2Mg3(SiO3)4 - Concrete ( 947, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 100, 100, 100, 0, "Concrete" , 0, 0, 300, 0, false, false, 0, 1, 1, Dyes.dyeGray , 0, Arrays.asList(new MaterialStack(Stone, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1))), - IronMagnetic ( 354, TextureSet.SET_MAGNETIC , 6.0F, 256, 2, 1|2 |64|128 , 200, 200, 200, 0, "Magnetic Iron" , 0, 0, -1, 0, false, false, 4, 51, 50, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - SteelMagnetic ( 355, TextureSet.SET_MAGNETIC , 6.0F, 512, 2, 1|2 |64|128 , 128, 128, 128, 0, "Magnetic Steel" , 0, 0, 1000, 1000, true , false, 4, 51, 50, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Steel, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.ORDO, 1), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - NeodymiumMagnetic ( 356, TextureSet.SET_MAGNETIC , 7.0F, 512, 2, 1|2 |64|128 , 100, 100, 100, 0, "Magnetic Neodymium" , 0, 0, 1297, 1297, true , false, 4, 51, 50, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Neodymium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.MAGNETO, 3))), - - /** - * Materials which are renamed automatically - */ - @Deprecated IridiumAndSodiumOxide(IridiumSodiumOxide, false), - @Deprecated Palygorskite (FullersEarth, false), - @Deprecated Adamantine (Adamantium, true), - @Deprecated FzDarkIron (DarkIron, true), - @Deprecated FZDarkIron (DarkIron, true), - @Deprecated Ashes (Ash, false), - @Deprecated DarkAshes (DarkAsh, false), - @Deprecated Abyssal (Basalt, false), - @Deprecated Adamant (Adamantium, true), - @Deprecated AluminumBrass (AluminiumBrass, false), - @Deprecated Aluminum (Aluminium, false), - @Deprecated NaturalAluminum (Aluminium, false), - @Deprecated NaturalAluminium (Aluminium, false), - @Deprecated Americum (Americium, false), - @Deprecated Beryl (Emerald, false), // 30,200,200 - @Deprecated BlackGranite (GraniteBlack, false), - @Deprecated CalciumCarbonate (Calcite, false), - @Deprecated CreosoteOil (Creosote, false), - @Deprecated Chromium (Chrome, false), - @Deprecated Diesel (Fuel, false), - @Deprecated Enderpearl (EnderPearl, false), - @Deprecated Endereye (EnderEye, false), - @Deprecated EyeOfEnder (EnderEye, false), - @Deprecated Eyeofender (EnderEye, false), - @Deprecated RawTerrasteelAlloy (TerrasteelAlloyRaw, false), - @Deprecated StrengthenedTerrasteelAlloy(TerrasteelAlloyStrengthened, false), - @Deprecated Flour (Wheat, false), - @Deprecated Meat (MeatRaw, false), - @Deprecated Garnet (GarnetRed, true), - @Deprecated Granite (GraniteBlack, false), - @Deprecated Goethite (BrownLimonite, false), - @Deprecated Kalium (Potassium, false), - @Deprecated Lapislazuli (Lapis, false), - @Deprecated LapisLazuli (Lapis, false), - @Deprecated Monazit (Monazite, false), - @Deprecated Natrium (Sodium, false), - @Deprecated Mythril (Mithril, false), - @Deprecated NitroDiesel (NitroFuel, false), - @Deprecated Naquadriah (Naquadria, false), - @Deprecated Obby (Obsidian, false), - @Deprecated Peridot (Olivine, true), - @Deprecated Phosphorite (Phosphorus, true), - @Deprecated Quarried (Marble, false), - @Deprecated Quicksilver (Mercury, true), - @Deprecated QuickSilver (Mercury, false), - @Deprecated RedRock (Redrock, false), - @Deprecated RefinedIron (Iron, false), - @Deprecated RedGranite (GraniteRed, false), - @Deprecated Sheldonite (Cooperite, false), - @Deprecated Soulsand (SoulSand, false), - @Deprecated SilverLead (Galena, false), - @Deprecated Titan (Titanium, false), - @Deprecated Uran (Uranium, false), - @Deprecated Wolframite (Tungstate, false), - @Deprecated Wolframium (Tungsten, false), - @Deprecated Wolfram (Tungsten, false), - @Deprecated WrougtIron (WroughtIron, false); - - /** List of all Materials. */ - public static final Collection VALUES = new HashSet(Arrays.asList(values())); - - static { - SubTag.ELECTROMAGNETIC_SEPERATION_NEODYMIUM.addTo(Bastnasite, Monazite, Forcicium, Forcillium); - SubTag.ELECTROMAGNETIC_SEPERATION_GOLD.addTo(Magnetite, VanadiumMagnetite, BasalticMineralSand, GraniticMineralSand); - SubTag.ELECTROMAGNETIC_SEPERATION_IRON.addTo(YellowLimonite, BrownLimonite, Pyrite, BandedIron, Nickel, Vermiculite, Glauconite, GlauconiteSand, Pentlandite, Tin, Antimony, Ilmenite, Manganese, Chrome, Chromite, Andradite); - SubTag.BLASTFURNACE_CALCITE_DOUBLE.addTo(Pyrite, YellowLimonite, BasalticMineralSand, GraniticMineralSand); - SubTag.BLASTFURNACE_CALCITE_TRIPLE.addTo(Iron, PigIron, DeepIron, ShadowIron, WroughtIron, MeteoricIron, BrownLimonite); - SubTag.WASHING_MERCURY.addTo(Gold, Silver, Osmium, Mithril, Platinum, Midasium, Cooperite, AstralSilver); - SubTag.WASHING_SODIUMPERSULFATE.addTo(Zinc, Nickel, Copper, Cobalt, Cobaltite, Tetrahedrite); - SubTag.METAL.addTo(AnyIron, AnyCopper, AnyBronze, Metal, Aluminium, Americium, Antimony, Beryllium, Bismuth, Caesium, Cerium, Chrome, Cobalt, Copper, Dysprosium, Erbium, Europium, Gadolinium, Gallium, Gold, Holmium, Indium, Iridium, Iron, Lanthanum, Lead, Lutetium, Magnesium, Manganese, Mercury, Niobium, Molybdenum, Neodymium, Neutronium, Nickel, Osmium, Palladium, Platinum, Plutonium, Plutonium241, Praseodymium, Promethium, Rubidium, Samarium, Scandium, Silicon, Silver, Tantalum, Tellurium, Terbium, Thorium, Thulium, Tin, Titanium, Tungsten, Uranium, Uranium235, Vanadium, Ytterbium, Yttrium, Zinc, Satinspar, Selenite, Microcline, Serpentine, Sylvite, Signalum, Lumium, PhasedIron, PhasedGold, DarkSteel, Terrasteel, TerrasteelAlloyRaw, TerrasteelAlloyStrengthened, TinAlloy, ConductiveIron, ElectricalSteel, EnergeticAlloy, VibrantAlloy, PulsatingIron, Manasteel, DarkThaumium, ElvenElementium, EnrichedCopper, DiamondCopper, Adamantium, Amordrine, Angmallen, Ardite, Aredrite, Atlarus, Blutonium, Carmot, Celenegil, Ceruclase, DarkIron, Desh, Desichalkos, Duranium, ElectrumFlux, Enderium, EnderiumBase, Eximite, FierySteel, Force, Haderoth, Hematite, Hepatizon, HSLA, Infuscolium, InfusedGold, Inolashite, Mercassium, MeteoricIron, MeteoricSteel, Naquadah, NaquadahAlloy, NaquadahEnriched, Naquadria, ObsidianFlux, Orichalcum, Osmonium, Oureclase, Phoenixite, Prometheum, RefinedGlowstone, RefinedObsidian, Sanguinite, Starconium, Tartarite, Thyrium, Tritanium, Vulcanite, Vyroxeres, Yellorium, Zectium, AluminiumBrass, Osmiridium, Sunnarium, AnnealedCopper, BatteryAlloy, Brass, Bronze, ChromiumDioxide, Cupronickel, DeepIron, Electrum, Invar, IronCompressed, Kanthal, Magnalium, Nichrome, NiobiumNitride, NiobiumTitanium, PigIron, SolderingAlloy, StainlessSteel, Steel, Ultimet, VanadiumGallium, WroughtIron, YttriumBariumCuprate, IronWood, Alumite, Manyullyn, ShadowIron, ShadowSteel, Steeleaf, SterlingSilver, RoseGold, BlackBronze, BismuthBronze, BlackSteel, RedSteel, BlueSteel, DamascusSteel, TungstenSteel, AstralSilver, Midasium, Mithril, BlueAlloy, RedAlloy, CobaltBrass, Thaumium, IronMagnetic, SteelMagnetic, NeodymiumMagnetic, Knightmetal); - - SubTag.FOOD.addTo(MeatRaw, MeatCooked, Ice, Water, Salt, Chili, Cocoa, Cheese, Coffee, Chocolate, Milk, Honey, FryingOilHot, FishOil, SeedOil, SeedOilLin, SeedOilHemp, Wheat, Sugar, FreshWater); - - Wood .add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); - WoodSealed .add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.NO_WORKING); - Peanutwood .add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); - LiveRoot .add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MAGICAL, SubTag.MORTAR_GRINDABLE); - IronWood .add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.MAGICAL, SubTag.MORTAR_GRINDABLE); - Steeleaf .add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.MAGICAL, SubTag.MORTAR_GRINDABLE, SubTag.NO_SMELTING); - - MeatRaw .add(SubTag.NO_SMASHING); - MeatCooked .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Snow .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.NO_RECYCLING); - Ice .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.NO_RECYCLING); - Water .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.NO_RECYCLING); - Sulfur .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE); - Saltpeter .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE); - Graphite .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE, SubTag.NO_SMELTING); - - Wheat .add(SubTag.FLAMMABLE, SubTag.MORTAR_GRINDABLE); - Paper .add(SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE, SubTag.PAPER); - Coal .add(SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE); - Charcoal .add(SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE); - Lignite .add(SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE); - - Rubber .add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.BOUNCY, SubTag.STRETCHY); - Plastic .add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.BOUNCY); - - TNT .add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); - Gunpowder .add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); - Glyceryl .add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); - NitroCoalFuel .add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); - NitroFuel .add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); - NitroCarbon .add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); - - Lead .add(SubTag.MORTAR_GRINDABLE, SubTag.SOLDERING_MATERIAL, SubTag.SOLDERING_MATERIAL_BAD); - Tin .add(SubTag.MORTAR_GRINDABLE, SubTag.SOLDERING_MATERIAL); - SolderingAlloy .add(SubTag.MORTAR_GRINDABLE, SubTag.SOLDERING_MATERIAL, SubTag.SOLDERING_MATERIAL_GOOD); - - Cheese .add(SubTag.SMELTING_TO_FLUID); - Sugar .add(SubTag.SMELTING_TO_FLUID); - - Concrete .add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.SMELTING_TO_FLUID); - ConstructionFoam .add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.EXPLOSIVE, SubTag.NO_SMELTING); - Redstone .add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.SMELTING_TO_FLUID, SubTag.PULVERIZING_CINNABAR); - Glowstone .add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.SMELTING_TO_FLUID); - Nikolite .add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.SMELTING_TO_FLUID); - Teslatite .add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.SMELTING_TO_FLUID); - Netherrack .add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.FLAMMABLE); - Stone .add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.NO_RECYCLING); - Brick .add(SubTag.STONE, SubTag.NO_SMASHING); - NetherBrick .add(SubTag.STONE, SubTag.NO_SMASHING); - Endstone .add(SubTag.STONE, SubTag.NO_SMASHING); - Marble .add(SubTag.STONE, SubTag.NO_SMASHING); - Basalt .add(SubTag.STONE, SubTag.NO_SMASHING); - Redrock .add(SubTag.STONE, SubTag.NO_SMASHING); - Obsidian .add(SubTag.STONE, SubTag.NO_SMASHING); - Flint .add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE); - GraniteRed .add(SubTag.STONE, SubTag.NO_SMASHING); - GraniteBlack .add(SubTag.STONE, SubTag.NO_SMASHING); - Salt .add(SubTag.STONE, SubTag.NO_SMASHING); - RockSalt .add(SubTag.STONE, SubTag.NO_SMASHING); - - Sand .add(SubTag.NO_RECYCLING); - - Gold .add(SubTag.MORTAR_GRINDABLE); - Silver .add(SubTag.MORTAR_GRINDABLE); - Iron .add(SubTag.MORTAR_GRINDABLE); - IronMagnetic .add(SubTag.MORTAR_GRINDABLE); - HSLA .add(SubTag.MORTAR_GRINDABLE); - Steel .add(SubTag.MORTAR_GRINDABLE); - SteelMagnetic .add(SubTag.MORTAR_GRINDABLE); - Zinc .add(SubTag.MORTAR_GRINDABLE); - Antimony .add(SubTag.MORTAR_GRINDABLE); - Copper .add(SubTag.MORTAR_GRINDABLE); - AnnealedCopper .add(SubTag.MORTAR_GRINDABLE); - Bronze .add(SubTag.MORTAR_GRINDABLE); - Nickel .add(SubTag.MORTAR_GRINDABLE); - Invar .add(SubTag.MORTAR_GRINDABLE); - Brass .add(SubTag.MORTAR_GRINDABLE); - WroughtIron .add(SubTag.MORTAR_GRINDABLE); - Electrum .add(SubTag.MORTAR_GRINDABLE); - Clay .add(SubTag.MORTAR_GRINDABLE); - - Glass .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_RECYCLING, SubTag.SMELTING_TO_FLUID); - Diamond .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE); - Emerald .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Amethyst .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Tanzanite .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Topaz .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - BlueTopaz .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Amber .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - GreenSapphire .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Sapphire .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Ruby .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - FoolsRuby .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Opal .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Olivine .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Jasper .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - GarnetRed .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - GarnetYellow .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Mimichite .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - CrystalFlux .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Crystal .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Niter .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Apatite .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE); - Lapis .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE); - Sodalite .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE); - Lazurite .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE); - Monazite .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE); - Quartzite .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); - Quartz .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); - SiliconDioxide .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); - Dilithium .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); - NetherQuartz .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); - CertusQuartz .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); - Fluix .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); - //ChargedCertusQuartz .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.QUARTZ); - Phosphorus .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE, SubTag.EXPLOSIVE); - Phosphate .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE, SubTag.EXPLOSIVE); - InfusedAir .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); - InfusedFire .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); - InfusedEarth .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); - InfusedWater .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); - InfusedEntropy .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); - InfusedOrder .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); - InfusedVis .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); - InfusedDull .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); - Vinteum .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); - NetherStar .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); - EnderPearl .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.PEARL); - EnderEye .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.PEARL); - Firestone .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.MAGICAL, SubTag.QUARTZ, SubTag.UNBURNABLE, SubTag.BURNING); - Forcicium .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.MAGICAL); - Forcillium .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.MAGICAL); - Force .add(SubTag.CRYSTAL, SubTag.MAGICAL, SubTag.UNBURNABLE); - Magic .add(SubTag.CRYSTAL, SubTag.MAGICAL, SubTag.UNBURNABLE); - - Primitive .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Basic .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Good .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Advanced .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Data .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Elite .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Master .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Ultimate .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Superconductor .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Infinite .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + /** + * This is the Default Material returned in case no Material has been found or a NullPointer has been inserted at a location where it shouldn't happen. + *

+ * Mainly for preventing NullPointer Exceptions and providing Default Values. + */ + _NULL(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "NULL", 0, 0, 0, 0, false, false, 1, 1, 1, Dyes._NULL, Element._NULL, Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 1))), + + /** + * Direct Elements + */ + Aluminium(19, TextureSet.SET_DULL, 10.0F, 128, 2, 1 | 2 | 8 | 32 | 64 | 128, 128, 200, 240, 0, "Aluminium", 0, 0, 933, 1700, true, false, 3, 1, 1, Dyes.dyeLightBlue, Element.Al, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VOLATUS, 1))), + Americium(103, TextureSet.SET_METALLIC, 1.0F, 0, 3, 1 | 2 | 8 | 32, 200, 200, 200, 0, "Americium", 0, 0, 1449, 0, false, false, 3, 1, 1, Dyes.dyeLightGray, Element.Am, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Antimony(58, TextureSet.SET_SHINY, 1.0F, 0, 2, 1 | 2 | 8 | 32, 220, 220, 240, 0, "Antimony", 0, 0, 903, 0, false, false, 2, 1, 1, Dyes.dyeLightGray, Element.Sb, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.AQUA, 1))), + Argon(24, TextureSet.SET_FLUID, 1.0F, 0, 2, 16 | 32, 0, 255, 0, 240, "Argon", 0, 0, 83, 0, false, true, 5, 1, 1, Dyes.dyeGreen, Element.Ar, Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 2))), + Arsenic(39, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 2 | 8 | 16 | 32, 255, 255, 255, 0, "Arsenic", 0, 0, 1090, 0, false, false, 3, 1, 1, Dyes.dyeOrange, Element.As, Arrays.asList(new TC_AspectStack(TC_Aspects.VENENUM, 3))), + Barium(63, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 8 | 32, 255, 255, 255, 0, "Barium", 0, 0, 1000, 0, false, false, 1, 1, 1, Dyes._NULL, Element.Ba, Arrays.asList(new TC_AspectStack(TC_Aspects.VINCULUM, 3))), + Beryllium(8, TextureSet.SET_METALLIC, 14.0F, 64, 2, 1 | 2 | 8 | 32 | 64, 100, 180, 100, 0, "Beryllium", 0, 0, 1560, 0, false, false, 6, 1, 1, Dyes.dyeGreen, Element.Be, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.LUCRUM, 1))), + Bismuth(90, TextureSet.SET_METALLIC, 6.0F, 64, 1, 1 | 2 | 8 | 32 | 64 | 128, 100, 160, 160, 0, "Bismuth", 0, 0, 544, 0, false, false, 2, 1, 1, Dyes.dyeCyan, Element.Bi, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), + Boron(9, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8 | 32, 250, 250, 250, 0, "Boron", 0, 0, 2349, 0, false, false, 1, 1, 1, Dyes.dyeWhite, Element.B, Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))), + Caesium(62, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 255, 255, 255, 0, "Caesium", 0, 0, 301, 0, false, false, 4, 1, 1, Dyes._NULL, Element.Cs, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Calcium(26, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 32, 255, 245, 245, 0, "Calcium", 0, 0, 1115, 0, false, false, 4, 1, 1, Dyes.dyePink, Element.Ca, Arrays.asList(new TC_AspectStack(TC_Aspects.SANO, 1), new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), + Carbon(10, TextureSet.SET_DULL, 1.0F, 64, 2, 1 | 2 | 32 | 64 | 128, 20, 20, 20, 0, "Carbon", 0, 0, 3800, 0, false, false, 2, 1, 1, Dyes.dyeBlack, Element.C, Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.IGNIS, 1))), + Cadmium(55, TextureSet.SET_SHINY, 1.0F, 0, 2, 1 | 8 | 32, 50, 50, 60, 0, "Cadmium", 0, 0, 594, 0, false, false, 3, 1, 1, Dyes.dyeGray, Element.Cd, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VENENUM, 1))), + Cerium(65, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 255, 255, 255, 0, "Cerium", 0, 0, 1068, 1068, true, false, 4, 1, 1, Dyes._NULL, Element.Ce, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Chlorine(23, TextureSet.SET_FLUID, 1.0F, 0, 2, 16 | 32, 255, 255, 255, 0, "Chlorine", 0, 0, 171, 0, false, false, 2, 1, 1, Dyes.dyeCyan, Element.Cl, Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2), new TC_AspectStack(TC_Aspects.PANNUS, 1))), + Chrome(30, TextureSet.SET_SHINY, 11.0F, 256, 3, 1 | 2 | 8 | 32 | 64 | 128, 255, 230, 230, 0, "Chrome", 0, 0, 2180, 1700, true, false, 5, 1, 1, Dyes.dyePink, Element.Cr, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), + Cobalt(33, TextureSet.SET_METALLIC, 8.0F, 512, 3, 1 | 2 | 8 | 32 | 64, 80, 80, 250, 0, "Cobalt", 0, 0, 1768, 0, false, false, 3, 1, 1, Dyes.dyeBlue, Element.Co, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), + Copper(35, TextureSet.SET_SHINY, 1.0F, 0, 1, 1 | 2 | 8 | 32 | 128, 255, 100, 0, 0, "Copper", 0, 0, 1357, 0, false, false, 3, 1, 1, Dyes.dyeOrange, Element.Cu, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.PERMUTATIO, 1))), + Deuterium(2, TextureSet.SET_FLUID, 1.0F, 0, 2, 16 | 32, 255, 255, 0, 240, "Deuterium", 0, 0, 14, 0, false, true, 10, 1, 1, Dyes.dyeYellow, Element.D, Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 3))), + Dysprosium(73, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 255, 255, 255, 0, "Dysprosium", 0, 0, 1680, 1680, true, false, 4, 1, 1, Dyes._NULL, Element.Dy, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), + Empty(0, TextureSet.SET_NONE, 1.0F, 0, 2, 256/*Only for Prefixes which need it*/, 255, 255, 255, 255, "Empty", 0, 0, -1, 0, false, true, 1, 1, 1, Dyes._NULL, Element._NULL, Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 2))), + Erbium(75, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 255, 255, 255, 0, "Erbium", 0, 0, 1802, 1802, true, false, 4, 1, 1, Dyes._NULL, Element.Er, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Europium(70, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 255, 255, 255, 0, "Europium", 0, 0, 1099, 1099, true, false, 4, 1, 1, Dyes._NULL, Element.Eu, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Fluorine(14, TextureSet.SET_FLUID, 1.0F, 0, 2, 16 | 32, 255, 255, 255, 127, "Fluorine", 0, 0, 53, 0, false, true, 2, 1, 1, Dyes.dyeGreen, Element.F, Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 2))), + Gadolinium(71, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 255, 255, 255, 0, "Gadolinium", 0, 0, 1585, 1585, true, false, 4, 1, 1, Dyes._NULL, Element.Gd, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Gallium(37, TextureSet.SET_SHINY, 1.0F, 64, 2, 1 | 2 | 8 | 32, 220, 220, 255, 0, "Gallium", 0, 0, 302, 0, false, false, 5, 1, 1, Dyes.dyeLightGray, Element.Ga, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1))), + Gold(86, TextureSet.SET_SHINY, 12.0F, 64, 2, 1 | 2 | 8 | 32 | 64 | 128, 255, 255, 30, 0, "Gold", 0, 0, 1337, 0, false, false, 4, 1, 1, Dyes.dyeYellow, Element.Au, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.LUCRUM, 2))), + Holmium(74, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 255, 255, 255, 0, "Holmium", 0, 0, 1734, 1734, true, false, 4, 1, 1, Dyes._NULL, Element.Ho, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Hydrogen(1, TextureSet.SET_FLUID, 1.0F, 0, 2, 16 | 32, 0, 0, 255, 240, "Hydrogen", 1, 15, 14, 0, false, true, 2, 1, 1, Dyes.dyeBlue, Element.H, Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 1))), + Helium(4, TextureSet.SET_FLUID, 1.0F, 0, 2, 16 | 32, 255, 255, 0, 240, "Helium", 0, 0, 1, 0, false, true, 5, 1, 1, Dyes.dyeYellow, Element.He, Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 2))), + Helium_3(5, TextureSet.SET_FLUID, 1.0F, 0, 2, 16 | 32, 255, 255, 0, 240, "Helium-3", 0, 0, 1, 0, false, true, 10, 1, 1, Dyes.dyeYellow, Element.He_3, Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 3))), + Indium(56, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 64, 0, 128, 0, "Indium", 0, 0, 429, 0, false, false, 4, 1, 1, Dyes.dyeGray, Element.In, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Iridium(84, TextureSet.SET_DULL, 6.0F, 5120, 4, 1 | 2 | 8 | 32 | 64 | 128, 240, 240, 245, 0, "Iridium", 0, 0, 2719, 0, false, false, 10, 1, 1, Dyes.dyeWhite, Element.Ir, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), + Iron(32, TextureSet.SET_METALLIC, 6.0F, 256, 2, 1 | 2 | 8 | 32 | 64 | 128, 200, 200, 200, 0, "Iron", 0, 0, 1811, 0, false, false, 3, 1, 1, Dyes.dyeLightGray, Element.Fe, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), + Lanthanum(64, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 255, 255, 255, 0, "Lanthanum", 0, 0, 1193, 1193, true, false, 4, 1, 1, Dyes._NULL, Element.La, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Lead(89, TextureSet.SET_DULL, 8.0F, 64, 1, 1 | 2 | 8 | 32 | 64 | 128, 140, 100, 140, 0, "Lead", 0, 0, 600, 0, false, false, 3, 1, 1, Dyes.dyePurple, Element.Pb, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 1))), + Lithium(6, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 2 | 8 | 32, 225, 220, 255, 0, "Lithium", 0, 0, 454, 0, false, false, 4, 1, 1, Dyes.dyeLightBlue, Element.Li, Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 2))), + Lutetium(78, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 255, 255, 255, 0, "Lutetium", 0, 0, 1925, 1925, true, false, 4, 1, 1, Dyes._NULL, Element.Lu, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Magic(-128, TextureSet.SET_SHINY, 8.0F, 5120, 5, 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, 100, 0, 200, 0, "Magic", 5, 32, 5000, 0, false, false, 7, 1, 1, Dyes.dyePurple, Element.Ma, Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 4))), + Magnesium(18, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 255, 200, 200, 0, "Magnesium", 0, 0, 923, 0, false, false, 3, 1, 1, Dyes.dyePink, Element.Mg, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.SANO, 1))), + Manganese(31, TextureSet.SET_DULL, 7.0F, 512, 2, 1 | 2 | 8 | 32 | 64, 250, 250, 250, 0, "Manganese", 0, 0, 1519, 0, false, false, 3, 1, 1, Dyes.dyeWhite, Element.Mn, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), + Mercury(87, TextureSet.SET_SHINY, 1.0F, 0, 0, 16 | 32, 255, 220, 220, 0, "Mercury", 5, 32, 234, 0, false, false, 3, 1, 1, Dyes.dyeLightGray, Element.Hg, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.VENENUM, 1))), + Molybdenum(48, TextureSet.SET_SHINY, 7.0F, 512, 2, 1 | 2 | 8 | 32 | 64, 180, 180, 220, 0, "Molybdenum", 0, 0, 2896, 0, false, false, 1, 1, 1, Dyes.dyeBlue, Element.Mo, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), + Neodymium(67, TextureSet.SET_METALLIC, 7.0F, 512, 2, 1 | 2 | 8 | 32 | 64 | 128, 100, 100, 100, 0, "Neodymium", 0, 0, 1297, 1297, true, false, 4, 1, 1, Dyes._NULL, Element.Nd, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 2))), + Neutronium(129, TextureSet.SET_DULL, 6.0F, 81920, 6, 1 | 2 | 8 | 32 | 64 | 128, 250, 250, 250, 0, "Neutronium", 0, 0, 10000, 0, false, false, 20, 1, 1, Dyes.dyeWhite, Element.Nt, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 3), new TC_AspectStack(TC_Aspects.ALIENIS, 2))), + Nickel(34, TextureSet.SET_METALLIC, 6.0F, 64, 2, 1 | 2 | 8 | 32 | 64 | 128, 200, 200, 250, 0, "Nickel", 0, 0, 1728, 0, false, false, 4, 1, 1, Dyes.dyeLightBlue, Element.Ni, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.IGNIS, 1))), + Niobium(47, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 190, 180, 200, 0, "Niobium", 0, 0, 2750, 2750, true, false, 5, 1, 1, Dyes._NULL, Element.Nb, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1))), + Nitrogen(12, TextureSet.SET_FLUID, 1.0F, 0, 2, 16 | 32, 0, 150, 200, 240, "Nitrogen", 0, 0, 63, 0, false, true, 2, 1, 1, Dyes.dyeCyan, Element.N, Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 2))), + Osmium(83, TextureSet.SET_METALLIC, 16.0F, 1280, 4, 1 | 2 | 8 | 32 | 64 | 128, 50, 50, 255, 0, "Osmium", 0, 0, 3306, 0, false, false, 10, 1, 1, Dyes.dyeBlue, Element.Os, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), + Oxygen(13, TextureSet.SET_FLUID, 1.0F, 0, 2, 16 | 32, 0, 100, 200, 240, "Oxygen", 0, 0, 54, 0, false, true, 1, 1, 1, Dyes.dyeWhite, Element.O, Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 1))), + Palladium(52, TextureSet.SET_SHINY, 8.0F, 512, 2, 1 | 2 | 8 | 32 | 64 | 128, 128, 128, 128, 0, "Palladium", 0, 0, 1828, 1828, false, false, 4, 1, 1, Dyes.dyeGray, Element.Pd, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), + Phosphor(21, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8 | 32, 255, 255, 0, 0, "Phosphor", 0, 0, 317, 0, false, false, 2, 1, 1, Dyes.dyeYellow, Element.P, Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 2), new TC_AspectStack(TC_Aspects.POTENTIA, 1))), + Platinum(85, TextureSet.SET_SHINY, 12.0F, 64, 2, 1 | 2 | 8 | 32 | 64 | 128, 255, 255, 200, 0, "Platinum", 0, 0, 2041, 0, false, false, 6, 1, 1, Dyes.dyeOrange, Element.Pt, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), + Plutonium(100, TextureSet.SET_METALLIC, 6.0F, 512, 3, 1 | 2 | 8 | 32 | 64, 240, 50, 50, 0, "Plutonium 244", 0, 0, 912, 0, false, false, 6, 1, 1, Dyes.dyeLime, Element.Pu, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 2))), + Plutonium241(101, TextureSet.SET_SHINY, 6.0F, 512, 3, 1 | 2 | 8 | 32 | 64, 250, 70, 70, 0, "Plutonium 241", 0, 0, 912, 0, false, false, 6, 1, 1, Dyes.dyeLime, Element.Pu_241, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 3))), + Potassium(25, TextureSet.SET_METALLIC, 1.0F, 0, 1, 1 | 2 | 32, 250, 250, 250, 0, "Potassium", 0, 0, 336, 0, false, false, 2, 1, 1, Dyes.dyeWhite, Element.K, Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 1))), + Praseodymium(66, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 255, 255, 255, 0, "Praseodymium", 0, 0, 1208, 1208, true, false, 4, 1, 1, Dyes._NULL, Element.Pr, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Promethium(68, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 255, 255, 255, 0, "Promethium", 0, 0, 1315, 1315, true, false, 4, 1, 1, Dyes._NULL, Element.Pm, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Radon(93, TextureSet.SET_FLUID, 1.0F, 0, 2, 16 | 32, 255, 0, 255, 240, "Radon", 0, 0, 202, 0, false, true, 5, 1, 1, Dyes.dyePurple, Element.Rn, Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 1), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Rubidium(43, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 240, 30, 30, 0, "Rubidium", 0, 0, 312, 0, false, false, 4, 1, 1, Dyes.dyeRed, Element.Rb, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), + Samarium(69, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 255, 255, 255, 0, "Samarium", 0, 0, 1345, 1345, true, false, 4, 1, 1, Dyes._NULL, Element.Sm, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Scandium(27, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 255, 255, 255, 0, "Scandium", 0, 0, 1814, 1814, true, false, 2, 1, 1, Dyes.dyeYellow, Element.Sc, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Silicon(20, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 60, 60, 80, 0, "Silicon", 0, 0, 1687, 1687, true, false, 1, 1, 1, Dyes.dyeBlack, Element.Si, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.TENEBRAE, 1))), + Silver(54, TextureSet.SET_SHINY, 10.0F, 64, 2, 1 | 2 | 8 | 32 | 64 | 128, 220, 220, 255, 0, "Silver", 0, 0, 1234, 0, false, false, 3, 1, 1, Dyes.dyeLightGray, Element.Ag, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.LUCRUM, 1))), + Sodium(17, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 32, 0, 0, 150, 0, "Sodium", 0, 0, 370, 0, false, false, 1, 1, 1, Dyes.dyeBlue, Element.Na, Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.LUX, 1))), + Strontium(44, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 8 | 32, 200, 200, 200, 0, "Strontium", 0, 0, 1050, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, Element.Sr, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.STRONTIO, 1))), + Sulfur(22, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8 | 32, 200, 200, 0, 0, "Sulfur", 0, 0, 388, 0, false, false, 2, 1, 1, Dyes.dyeYellow, Element.S, Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1))), + Tantalum(80, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 255, 255, 255, 0, "Tantalum", 0, 0, 3290, 0, false, false, 4, 1, 1, Dyes._NULL, Element.Ta, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VINCULUM, 1))), + Tellurium(59, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 255, 255, 255, 0, "Tellurium", 0, 0, 722, 0, false, false, 4, 1, 1, Dyes.dyeGray, Element.Te, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Terbium(72, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 255, 255, 255, 0, "Terbium", 0, 0, 1629, 1629, true, false, 4, 1, 1, Dyes._NULL, Element.Tb, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Thorium(96, TextureSet.SET_SHINY, 6.0F, 512, 2, 1 | 2 | 8 | 32 | 64, 0, 30, 0, 0, "Thorium", 0, 0, 2115, 0, false, false, 4, 1, 1, Dyes.dyeBlack, Element.Th, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Thulium(76, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 255, 255, 255, 0, "Thulium", 0, 0, 1818, 1818, true, false, 4, 1, 1, Dyes._NULL, Element.Tm, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Tin(57, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 2 | 8 | 32 | 128, 220, 220, 220, 0, "Tin", 0, 0, 505, 505, false, false, 3, 1, 1, Dyes.dyeWhite, Element.Sn, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), + Titanium(28, TextureSet.SET_METALLIC, 8.0F, 2560, 3, 1 | 2 | 8 | 32 | 64 | 128, 220, 160, 240, 0, "Titanium", 0, 0, 1941, 1500, true, false, 5, 1, 1, Dyes.dyePurple, Element.Ti, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), + Tritium(3, TextureSet.SET_METALLIC, 1.0F, 0, 2, 16 | 32, 255, 0, 0, 240, "Tritium", 0, 0, 14, 0, false, true, 10, 1, 1, Dyes.dyeRed, Element.T, Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 4))), + Tungsten(81, TextureSet.SET_METALLIC, 8.0F, 5120, 3, 1 | 2 | 8 | 32 | 64 | 128, 50, 50, 50, 0, "Tungsten", 0, 0, 3695, 2500, true, false, 4, 1, 1, Dyes.dyeBlack, Element.W, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), + Uranium(98, TextureSet.SET_METALLIC, 6.0F, 512, 3, 1 | 2 | 8 | 32 | 64, 50, 240, 50, 0, "Uranium 238", 0, 0, 1405, 0, false, false, 4, 1, 1, Dyes.dyeGreen, Element.U, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Uranium235(97, TextureSet.SET_SHINY, 6.0F, 512, 3, 1 | 2 | 8 | 32 | 64, 70, 250, 70, 0, "Uranium 235", 0, 0, 1405, 0, false, false, 4, 1, 1, Dyes.dyeGreen, Element.U_235, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 2))), + Vanadium(29, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 50, 50, 50, 0, "Vanadium", 0, 0, 2183, 2183, true, false, 2, 1, 1, Dyes.dyeBlack, Element.V, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Ytterbium(77, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 255, 255, 255, 0, "Ytterbium", 0, 0, 1097, 1097, true, false, 4, 1, 1, Dyes._NULL, Element.Yb, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Yttrium(45, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2 | 8 | 32, 220, 250, 220, 0, "Yttrium", 0, 0, 1799, 1799, true, false, 4, 1, 1, Dyes._NULL, Element.Y, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Zinc(36, TextureSet.SET_METALLIC, 1.0F, 0, 1, 1 | 2 | 8 | 32, 250, 240, 240, 0, "Zinc", 0, 0, 692, 0, false, false, 2, 1, 1, Dyes.dyeWhite, Element.Zn, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.SANO, 1))), + + /** + * The "Random Material" ones. + */ + Organic(-1, TextureSet.SET_LEAF, 1.0F, 0, 1, false), + AnyCopper(-1, TextureSet.SET_SHINY, 1.0F, 0, 3, false), + AnyBronze(-1, TextureSet.SET_SHINY, 1.0F, 0, 3, false), + AnyIron(-1, TextureSet.SET_SHINY, 1.0F, 0, 3, false), + Crystal(-1, TextureSet.SET_SHINY, 1.0F, 0, 3, false), + Quartz(-1, TextureSet.SET_QUARTZ, 1.0F, 0, 2, false), + Metal(-1, TextureSet.SET_METALLIC, 1.0F, 0, 2, false), + Unknown(-1, TextureSet.SET_DULL, 1.0F, 0, 2, false), + Cobblestone(-1, TextureSet.SET_DULL, 1.0F, 0, 1, false), + Brick(-1, TextureSet.SET_DULL, 1.0F, 0, 1, false), + BrickNether(-1, TextureSet.SET_DULL, 1.0F, 0, 1, false), + + /** + * The "I don't care" Section, everything I don't want to do anything with right now, is right here. Just to make the Material Finder shut up about them. + * But I do see potential uses in some of these Materials. + */ + TarPitch(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Tar Pitch", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Carborundum(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Carborundum", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Satinspar(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2 | 8, 255, 255, 255, 0, "Satinspar", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Selenite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2 | 8, 255, 255, 255, 0, "Selenite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + PetrifiedWood(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 8, 255, 255, 255, 0, "Petrified Wood", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Jet(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 4 | 8, 255, 255, 255, 0, "Jet", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Microcline(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2 | 8, 255, 255, 255, 0, "Microcline", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Serpentine(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2 | 8, 255, 255, 255, 0, "Serpentine", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Sylvite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2 | 8, 255, 255, 255, 0, "Sylvite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Flux(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Flux", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Goshen(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Goshen", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Joshen(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Joshen", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Itarius(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Itarius", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Legendary(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Legendary", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + MutatedIron(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Mutated Iron", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Witheria(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Witheria", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + RedstoneAlloy(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Redstone Alloy", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + OsmiumTetroxide(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Osmium Tetroxide", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + NitricAcid(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 0, 255, 255, 255, 0, "Nitric Acid", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + RubberTreeSap(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 0, 255, 255, 255, 0, "Rubber Tree Sap", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + AquaRegia(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 0, 255, 255, 255, 0, "Aqua Regia", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + SolutionBlueVitriol(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 0, 255, 255, 255, 0, "Blue Vitriol Solution", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + SolutionNickelSulfate(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 0, 255, 255, 255, 0, "Nickel Sulfate Solution", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Signalum(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Signalum", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Lumium(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Lumium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + PhasedIron(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Phased Iron", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + PhasedGold(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Phased Gold", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Soularium(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Soularium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Endium(770, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 2 | 8, 165, 220, 250, 0, "Endium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow), + Prismarine(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 4, 255, 255, 255, 0, "Prismarine", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + GraveyardDirt(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Graveyard Dirt", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + DarkSteel(364, TextureSet.SET_DULL, 8.0F, 512, 3, 1 | 2 | 8 | 64, 80, 70, 80, 0, "Dark Steel", 0, 0, 1811, 0, false, false, 5, 1, 1, Dyes.dyePurple), + Terrasteel(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Terrasteel", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + TerrasteelAlloyRaw(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Raw Terrasteel Alloy", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + TerrasteelAlloyStrengthened(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Strengthened Terrasteel Alloy", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + ConductiveIron(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Conductive Iron", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + ElectricalSteel(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Electrical Steel", 0, 0, 1811, 1000, true, false, 3, 1, 1, Dyes._NULL), + EnergeticAlloy(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Energetic Alloy", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + VibrantAlloy(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Vibrant Alloy", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + PulsatingIron(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Pulsating Iron", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Rutile(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Rutile", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), // TiO2 + Teslatite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 60, 180, 200, 0, "Teslatite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Fluix(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 4, 255, 255, 255, 0, "Fluix", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Manasteel(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Manasteel", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Tennantite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Tennantite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + DarkThaumium(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Dark Thaumium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Alfium(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Alfium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Ryu(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Ryu", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Mutation(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Mutation", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Aquamarine(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 4, 255, 255, 255, 0, "Aquamarine", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Ender(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Ender", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + ElvenElementium(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Elven Elementium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + EnrichedCopper(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Enriched Copper", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + DiamondCopper(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Diamond Copper", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + SodiumPeroxide(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Sodium Peroxide", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + IridiumSodiumOxide(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Iridium Sodium Oxide", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + PlatinumGroupSludge(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Platinum Group Sluge", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Fairy(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Fairy", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Ludicrite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Ludicrite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Pokefennium(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Pokefennium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Draconium(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Draconium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + DraconiumAwakened(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Awakened Draconium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + PurpleAlloy(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 0, 100, 180, 255, 0, "Purple Alloy", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + InfusedTeslatite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 0, 100, 180, 255, 0, "Infused Teslatite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + + /** + * Unknown Material Components. Dead End Section. + */ + Adamantium(319, TextureSet.SET_SHINY, 10.0F, 5120, 5, 1 | 2 | 8 | 64 | 128, 255, 255, 255, 0, "Adamantium", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray), + Adamite(-1, TextureSet.SET_NONE, 1.0F, 0, 3, 1 | 8, 255, 255, 255, 0, "Adamite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray), + Adluorite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 8, 255, 255, 255, 0, "Adluorite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Agate(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Agate", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Alduorite(485, TextureSet.SET_SHINY, 1.0F, 0, 2, 1 | 8 | 16, 159, 180, 180, 0, "Alduorite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Amber(514, TextureSet.SET_RUBY, 4.0F, 128, 2, 1 | 4 | 8 | 64, 255, 128, 0, 127, "Amber", 5, 3, -1, 0, false, true, 1, 1, 1, Dyes.dyeOrange, Arrays.asList(new TC_AspectStack(TC_Aspects.VINCULUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), + Ammonium(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Ammonium", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Amordrine(-1, TextureSet.SET_NONE, 6.0F, 64, 2, 1 | 2 | 8 | 16 | 64, 255, 255, 255, 0, "Amordrine", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Andesite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 8, 255, 255, 255, 0, "Andesite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Angmallen(958, TextureSet.SET_METALLIC, 10.0F, 128, 2, 1 | 2 | 8 | 16 | 64, 215, 225, 138, 0, "Angmallen", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Ardite(-1, TextureSet.SET_NONE, 6.0F, 64, 2, 1 | 2 | 8 | 64, 255, 0, 0, 0, "Ardite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow), + Aredrite(-1, TextureSet.SET_NONE, 6.0F, 64, 2, 1 | 2 | 8 | 64, 255, 0, 0, 0, "Aredrite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow), + Atlarus(965, TextureSet.SET_METALLIC, 6.0F, 64, 2, 1 | 2 | 8 | 64, 255, 255, 255, 0, "Atlarus", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Bitumen(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 8, 255, 255, 255, 0, "Bitumen", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Black(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 0, 0, 0, 0, 0, "Black", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlack), + Blizz(851, TextureSet.SET_SHINY, 1.0F, 0, 2, 1, 220, 233, 255, 0, "Blizz", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Blueschist(852, TextureSet.SET_DULL, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Blueschist", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeLightBlue), + Bluestone(813, TextureSet.SET_DULL, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Bluestone", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue), + Bloodstone(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Bloodstone", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed), + Blutonium(-1, TextureSet.SET_SHINY, 1.0F, 0, 2, 1 | 2 | 8, 0, 0, 255, 0, "Blutonium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue), + Carmot(962, TextureSet.SET_METALLIC, 16.0F, 128, 1, 1 | 2 | 8 | 64, 217, 205, 140, 0, "Carmot", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Celenegil(964, TextureSet.SET_METALLIC, 10.0F, 4096, 2, 1 | 2 | 8 | 16 | 64, 148, 204, 72, 0, "Celenegil", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + CertusQuartz(516, TextureSet.SET_QUARTZ, 5.0F, 32, 1, 1 | 4 | 8 | 64, 210, 210, 230, 0, "Certus Quartz", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VITREUS, 1))), + Ceruclase(952, TextureSet.SET_METALLIC, 6.0F, 1280, 2, 1 | 2 | 8, 140, 189, 208, 0, "Ceruclase", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Citrine(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Citrine", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + //ChargedCertusQuartz ( 517, TextureSet.SET_QUARTZ , 5.0F, 32, 1, 1 |4|8 |64 , 210, 210, 230, 0, "Charged Certus Quartz" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), + CobaltHexahydrate(853, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 16, 80, 80, 250, 0, "Cobalt Hexahydrate", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue), + ConstructionFoam(854, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 16, 128, 128, 128, 0, "Construction Foam", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray), + Chert(857, TextureSet.SET_DULL, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Chert", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL), + Chimerite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Chimerite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Coral(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1, 255, 128, 255, 0, "Coral", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + CrudeOil(858, TextureSet.SET_DULL, 1.0F, 0, 2, 1, 10, 10, 10, 0, "Crude Oil", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack), + Chrysocolla(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Chrysocolla", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + CrystalFlux(-1, TextureSet.SET_QUARTZ, 1.0F, 0, 3, 1 | 4, 100, 50, 100, 0, "Flux Crystal", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Cyanite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Cyanite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeCyan), + Dacite(859, TextureSet.SET_DULL, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Dacite", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeLightGray), + DarkIron(342, TextureSet.SET_DULL, 7.0F, 384, 3, 1 | 2 | 8 | 64, 55, 40, 60, 0, "Dark Iron", 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyePurple), + DarkStone(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Dark Stone", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlack), + Demonite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Demonite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed), + Desh(884, TextureSet.SET_DULL, 1.0F, 1280, 3, 1 | 2 | 8 | 64 | 128, 40, 40, 40, 0, "Desh", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack), + Desichalkos(-1, TextureSet.SET_NONE, 6.0F, 1280, 3, 1 | 2 | 8 | 16 | 64, 255, 255, 255, 0, "Desichalkos", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Dilithium(515, TextureSet.SET_DIAMOND, 1.0F, 0, 1, 1 | 4 | 8 | 16, 255, 250, 250, 127, "Dilithium", 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeWhite), + Draconic(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Draconic", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed), + Drulloy(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 16, 255, 255, 255, 0, "Drulloy", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed), + Duranium(328, TextureSet.SET_METALLIC, 8.0F, 1280, 4, 1 | 2 | 64, 255, 255, 255, 0, "Duranium", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray), + Eclogite(860, TextureSet.SET_DULL, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Eclogite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + ElectrumFlux(320, TextureSet.SET_SHINY, 16.0F, 512, 3, 1 | 2 | 64, 255, 255, 120, 0, "Fluxed Electrum", 0, 0, 3000, 3000, true, false, 1, 1, 1, Dyes.dyeYellow), + Emery(861, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 255, 255, 255, 0, "Emery", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Enderium(321, TextureSet.SET_DULL, 8.0F, 256, 3, 1 | 2 | 64, 89, 145, 135, 0, "Enderium", 0, 0, 3000, 3000, true, false, 1, 1, 1, Dyes.dyeGreen, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), + EnderiumBase(-1, TextureSet.SET_DULL, 8.0F, 256, 3, 1 | 2 | 64, 89, 145, 135, 0, "Enderium Base", 0, 0, 3000, 3000, true, false, 1, 1, 1, Dyes.dyeGreen, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), + Energized(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 0, 255, 255, 255, 0, "Energized", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Epidote(862, TextureSet.SET_DULL, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Epidote", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL), + Eximite(959, TextureSet.SET_METALLIC, 5.0F, 2560, 3, 1 | 2 | 8 | 64, 124, 90, 150, 0, "Eximite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + FierySteel(346, TextureSet.SET_FIERY, 8.0F, 256, 3, 1 | 2 | 16 | 64 | 128, 64, 0, 0, 0, "Fiery Steel", 5, 2048, 1811, 1000, true, false, 1, 1, 1, Dyes.dyeRed, Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 3), new TC_AspectStack(TC_Aspects.IGNIS, 3), new TC_AspectStack(TC_Aspects.CORPUS, 3))), + Firestone(347, TextureSet.SET_QUARTZ, 6.0F, 1280, 3, 1 | 4 | 8 | 64, 200, 20, 0, 0, "Firestone", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed), + Fluorite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 8, 255, 255, 255, 0, "Fluorite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen), + FoolsRuby(512, TextureSet.SET_RUBY, 1.0F, 0, 2, 1 | 4 | 8, 255, 100, 100, 127, "Ruby", 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyeRed, Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 2))), + Force(521, TextureSet.SET_DIAMOND, 10.0F, 128, 3, 1 | 2 | 4 | 8 | 64 | 128, 255, 255, 0, 0, "Force", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow, Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 5))), + Forcicium(518, TextureSet.SET_DIAMOND, 1.0F, 0, 1, 1 | 4 | 8 | 16, 50, 50, 70, 0, "Forcicium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen, Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2))), + Forcillium(519, TextureSet.SET_DIAMOND, 1.0F, 0, 1, 1 | 4 | 8 | 16, 50, 50, 70, 0, "Forcillium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen, Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2))), + Gabbro(863, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Gabbro", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL), + Glowstone(811, TextureSet.SET_SHINY, 1.0F, 0, 1, 1 | 16, 255, 255, 0, 0, "Glowstone", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow, Arrays.asList(new TC_AspectStack(TC_Aspects.LUX, 2), new TC_AspectStack(TC_Aspects.SENSUS, 1))), + Gneiss(864, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Gneiss", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL), + Graphite(865, TextureSet.SET_DULL, 5.0F, 32, 2, 1 | 8 | 16 | 64, 128, 128, 128, 0, "Graphite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGray, Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.IGNIS, 1))), + Graphene(819, TextureSet.SET_DULL, 6.0F, 32, 1, 1 | 64, 128, 128, 128, 0, "Graphene", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGray, Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1))), + Greenschist(866, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Green Schist", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen), + Greenstone(867, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Greenstone", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen), + Greywacke(868, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Greywacke", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray), + Haderoth(963, TextureSet.SET_METALLIC, 10.0F, 3200, 3, 1 | 2 | 8 | 16 | 64, 119, 52, 30, 0, "Haderoth", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Hematite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2 | 8, 255, 255, 255, 0, "Hematite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Hepatizon(957, TextureSet.SET_METALLIC, 12.0F, 128, 2, 1 | 2 | 8 | 16 | 64, 117, 94, 117, 0, "Hepatizon", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + HSLA(322, TextureSet.SET_METALLIC, 6.0F, 500, 2, 1 | 2 | 64 | 128, 128, 128, 128, 0, "HSLA Steel", 0, 0, 1811, 1000, true, false, 3, 1, 1, Dyes._NULL, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.ORDO, 1))), + Ignatius(950, TextureSet.SET_METALLIC, 12.0F, 512, 2, 1 | 2 | 16, 255, 169, 83, 0, "Ignatius", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Infernal(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 0, 255, 255, 255, 0, "Infernal", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Infuscolium(490, TextureSet.SET_METALLIC, 6.0F, 64, 2, 1 | 2 | 8 | 16 | 64, 146, 33, 86, 0, "Infuscolium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + InfusedGold(323, TextureSet.SET_SHINY, 12.0F, 64, 3, 1 | 2 | 8 | 64 | 128, 255, 200, 60, 0, "Infused Gold", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow), + InfusedAir(540, TextureSet.SET_SHARDS, 8.0F, 64, 3, 1 | 4 | 8 | 64 | 128, 255, 255, 0, 0, "Aer", 5, 160, -1, 0, false, true, 3, 1, 1, Dyes.dyeYellow, Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.AER, 2))), + InfusedFire(541, TextureSet.SET_SHARDS, 8.0F, 64, 3, 1 | 4 | 8 | 64 | 128, 255, 0, 0, 0, "Ignis", 5, 320, -1, 0, false, true, 3, 1, 1, Dyes.dyeRed, Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.IGNIS, 2))), + InfusedEarth(542, TextureSet.SET_SHARDS, 8.0F, 256, 3, 1 | 4 | 8 | 64 | 128, 0, 255, 0, 0, "Terra", 5, 160, -1, 0, false, true, 3, 1, 1, Dyes.dyeGreen, Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.TERRA, 2))), + InfusedWater(543, TextureSet.SET_SHARDS, 8.0F, 64, 3, 1 | 4 | 8 | 64 | 128, 0, 0, 255, 0, "Aqua", 5, 160, -1, 0, false, true, 3, 1, 1, Dyes.dyeBlue, Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.AQUA, 2))), + InfusedEntropy(544, TextureSet.SET_SHARDS, 32.0F, 64, 4, 1 | 4 | 8 | 64 | 128, 62, 62, 62, 0, "Perditio", 5, 320, -1, 0, false, true, 3, 1, 1, Dyes.dyeBlack, Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.PERDITIO, 2))), + InfusedOrder(545, TextureSet.SET_SHARDS, 8.0F, 64, 3, 1 | 4 | 8 | 64 | 128, 252, 252, 252, 0, "Ordo", 5, 240, -1, 0, false, true, 3, 1, 1, Dyes.dyeWhite, Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.ORDO, 2))), + InfusedVis(-1, TextureSet.SET_SHARDS, 8.0F, 64, 3, 1 | 4 | 8 | 64 | 128, 255, 0, 255, 0, "Auram", 5, 240, -1, 0, false, true, 3, 1, 1, Dyes.dyePurple, Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.AURAM, 2))), + InfusedDull(-1, TextureSet.SET_SHARDS, 32.0F, 64, 3, 1 | 4 | 8 | 64 | 128, 100, 100, 100, 0, "Vacuus", 5, 160, -1, 0, false, true, 3, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.VACUOS, 2))), + Inolashite(954, TextureSet.SET_NONE, 8.0F, 2304, 3, 1 | 2 | 8 | 16 | 64, 148, 216, 187, 0, "Inolashite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Invisium(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Invisium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Jade(537, TextureSet.SET_SHINY, 1.0F, 0, 2, 1 | 8, 0, 100, 0, 0, "Jade", 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyeGreen, Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 3))), + Jasper(511, TextureSet.SET_EMERALD, 1.0F, 0, 2, 1 | 4 | 8, 200, 80, 80, 100, "Jasper", 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyeRed, Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 2))), + Kalendrite(953, TextureSet.SET_METALLIC, 5.0F, 2560, 3, 1 | 2 | 16, 170, 91, 189, 0, "Kalendrite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Komatiite(869, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Komatiite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow), + Lava(700, TextureSet.SET_FLUID, 1.0F, 0, 1, 16, 255, 64, 0, 0, "Lava", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange), + Lemurite(486, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 16, 219, 219, 219, 0, "Lemurite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Limestone(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Limestone", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Lodestone(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1 | 8, 255, 255, 255, 0, "Lodestone", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Luminite(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1 | 8, 250, 250, 250, 0, "Luminite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite), + Magma(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 255, 64, 0, 0, "Magma", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange), + Mawsitsit(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Mawsitsit", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Mercassium(-1, TextureSet.SET_NONE, 6.0F, 64, 1, 1 | 2 | 8 | 64, 255, 255, 255, 0, "Mercassium", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + MeteoricIron(340, TextureSet.SET_METALLIC, 6.0F, 384, 2, 1 | 2 | 8 | 64, 100, 50, 80, 0, "Meteoric Iron", 0, 0, 1811, 0, false, false, 1, 1, 1, Dyes.dyeGray, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), + MeteoricSteel(341, TextureSet.SET_METALLIC, 6.0F, 768, 2, 1 | 2 | 64, 50, 25, 40, 0, "Meteoric Steel", 0, 0, 1811, 1000, true, false, 1, 1, 1, Dyes.dyeGray, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1), new TC_AspectStack(TC_Aspects.ORDO, 1))), + Meteorite(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1 | 8, 80, 35, 60, 0, "Meteorite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple), + Meutoite(487, TextureSet.SET_METALLIC, 1.0F, 0, 1, 1 | 8 | 16, 95, 82, 105, 0, "Meutoite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Migmatite(872, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Migmatite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Mimichite(-1, TextureSet.SET_GEM_VERTICAL, 1.0F, 0, 1, 1 | 4 | 8, 255, 255, 255, 0, "Mimichite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Moonstone(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1 | 8, 255, 255, 255, 0, "Moonstone", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite, Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), + Naquadah(324, TextureSet.SET_METALLIC, 6.0F, 1280, 4, 1 | 2 | 8 | 16 | 64, 50, 50, 50, 0, "Naquadah", 0, 0, 3000, 3000, true, false, 10, 1, 1, Dyes.dyeBlack, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.RADIO, 1), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), + NaquadahAlloy(325, TextureSet.SET_METALLIC, 8.0F, 5120, 5, 1 | 2 | 64 | 128, 40, 40, 40, 0, "Naquadah Alloy", 0, 0, 3000, 3000, true, false, 10, 1, 1, Dyes.dyeBlack, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), + NaquadahEnriched(326, TextureSet.SET_METALLIC, 6.0F, 1280, 4, 1 | 2 | 8 | 16 | 64, 50, 50, 50, 0, "Enriched Naquadah", 0, 0, 3000, 3000, true, false, 15, 1, 1, Dyes.dyeBlack, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.RADIO, 2), new TC_AspectStack(TC_Aspects.NEBRISUM, 2))), + Naquadria(327, TextureSet.SET_SHINY, 1.0F, 512, 4, 1 | 2 | 8 | 64, 30, 30, 30, 0, "Naquadria", 0, 0, 3000, 3000, true, false, 20, 1, 1, Dyes.dyeBlack, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.RADIO, 3), new TC_AspectStack(TC_Aspects.NEBRISUM, 3))), + Nether(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 255, 255, 255, 0, "Nether", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + NetherBrick(814, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 100, 0, 0, 0, "Nether Brick", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed, Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1))), + NetherQuartz(522, TextureSet.SET_QUARTZ, 1.0F, 32, 1, 1 | 4 | 8 | 64, 230, 210, 210, 0, "Nether Quartz", 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeWhite, Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VITREUS, 1))), + NetherStar(506, TextureSet.SET_NETHERSTAR, 1.0F, 5120, 4, 1 | 4 | 64, 255, 255, 255, 0, "Nether Star", 5, 50000, -1, 0, false, false, 15, 1, 1, Dyes.dyeWhite), + Nikolite(812, TextureSet.SET_SHINY, 1.0F, 0, 1, 1 | 8, 60, 180, 200, 0, "Nikolite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeCyan, Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 2))), + ObsidianFlux(-1, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 2, 80, 50, 100, 0, "Fluxed Obsidian", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple), + Oilsands(878, TextureSet.SET_NONE, 1.0F, 0, 1, 1 | 8, 10, 10, 10, 0, "Oilsands", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Onyx(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Onyx", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Orichalcum(966, TextureSet.SET_METALLIC, 4.5F, 3456, 3, 1 | 2 | 8 | 64, 84, 122, 56, 0, "Orichalcum", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Osmonium(-1, TextureSet.SET_NONE, 6.0F, 64, 1, 1 | 2 | 8 | 64, 255, 255, 255, 0, "Osmonium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue), + Oureclase(961, TextureSet.SET_METALLIC, 6.0F, 1920, 3, 1 | 2 | 8 | 64, 183, 98, 21, 0, "Oureclase", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Painite(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 255, 255, 255, 0, "Painite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Peanutwood(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 255, 255, 255, 0, "Peanut Wood", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Petroleum(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1 | 8, 255, 255, 255, 0, "Petroleum", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Pewter(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 255, 255, 255, 0, "Pewter", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Phoenixite(-1, TextureSet.SET_NONE, 6.0F, 64, 1, 1 | 2 | 8 | 64, 255, 255, 255, 0, "Phoenixite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Potash(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 255, 255, 255, 0, "Potash", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Prometheum(960, TextureSet.SET_METALLIC, 8.0F, 512, 1, 1 | 2 | 8 | 64, 90, 129, 86, 0, "Prometheum", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Quartzite(523, TextureSet.SET_QUARTZ, 1.0F, 0, 1, 1 | 4 | 8, 210, 230, 210, 0, "Quartzite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite), + Quicklime(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Quicklime", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Randomite(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1 | 8, 255, 255, 255, 0, "Randomite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + RefinedGlowstone(-326, TextureSet.SET_METALLIC, 1.0F, 0, 1, 1 | 2, 255, 255, 0, 0, "Refined Glowstone", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow), + RefinedObsidian(-327, TextureSet.SET_METALLIC, 1.0F, 0, 1, 1 | 2, 80, 50, 100, 0, "Refined Obsidian", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple), + Rhyolite(875, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Rhyolite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Rubracium(488, TextureSet.SET_METALLIC, 1.0F, 0, 1, 1 | 8 | 16, 151, 45, 45, 0, "Rubracium", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + RyuDragonRyder(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 255, 255, 255, 0, "Ryu Dragon Ryder", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Sand(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 255, 255, 255, 0, "Sand", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow), + Sanguinite(955, TextureSet.SET_METALLIC, 3.0F, 4480, 4, 1 | 2 | 8, 185, 0, 0, 0, "Sanguinite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Siltstone(876, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Siltstone", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Spinel(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 255, 255, 255, 0, "Spinel", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Starconium(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1 | 2 | 8, 255, 255, 255, 0, "Starconium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Sugilite(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Sugilite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Sunstone(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1 | 8, 255, 255, 255, 0, "Sunstone", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow, Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), + Tar(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 10, 10, 10, 0, "Tar", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack), + Tartarite(956, TextureSet.SET_METALLIC, 20.0F, 7680, 5, 1 | 2 | 8 | 16, 255, 118, 60, 0, "Tartarite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Tapazite(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Tapazite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen), + Thyrium(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1 | 2 | 8, 255, 255, 255, 0, "Thyrium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Tourmaline(-1, TextureSet.SET_RUBY, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Tourmaline", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Tritanium(329, TextureSet.SET_METALLIC, 6.0F, 2560, 4, 1 | 2 | 64, 255, 255, 255, 0, "Tritanium", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 2))), + Turquoise(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Turquoise", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + UUAmplifier(721, TextureSet.SET_FLUID, 1.0F, 0, 1, 16, 96, 0, 128, 0, "UU-Amplifier", 0, 0, -1, 0, false, false, 10, 1, 1, Dyes.dyePink), + UUMatter(703, TextureSet.SET_FLUID, 1.0F, 0, 1, 16, 128, 0, 196, 0, "UU-Matter", 0, 0, -1, 0, false, false, 10, 1, 1, Dyes.dyePink), + Void(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 255, 255, 255, 200, "Void", 0, 0, -1, 0, false, true, 1, 1, 1, Dyes._NULL, Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 1))), + Voidstone(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 255, 255, 255, 200, "Voidstone", 0, 0, -1, 0, false, true, 1, 1, 1, Dyes._NULL, Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.VACUOS, 1))), + Vulcanite(489, TextureSet.SET_METALLIC, 6.0F, 64, 2, 1 | 2 | 8 | 16 | 64, 255, 132, 72, 0, "Vulcanite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Vyroxeres(951, TextureSet.SET_METALLIC, 9.0F, 768, 3, 1 | 2 | 8 | 64, 85, 224, 1, 0, "Vyroxeres", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), + Wimalite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 8, 255, 255, 255, 0, "Wimalite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow), + Yellorite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 8, 255, 255, 255, 0, "Yellorite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow), + Yellorium(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Yellorium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow), + Zectium(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2 | 8, 255, 255, 255, 0, "Zectium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlack), + + /** + * Circuitry, Batteries and other Technical things + */ + Primitive(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Primitive", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 1))), + Basic(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Basic", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 2))), + Good(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Good", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 3))), + Advanced(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Advanced", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 4))), + Data(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Data", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 5))), + Elite(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Elite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 6))), + Master(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Master", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 7))), + Ultimate(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Ultimate", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 8))), + Superconductor(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Superconductor", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 8))), + Infinite(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Infinite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray), + + /** + * Not possible to determine exact Components + */ + Antimatter(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Antimatter", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink, Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 9), new TC_AspectStack(TC_Aspects.PERFODIO, 8))), + BioFuel(705, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 255, 128, 0, 0, "Biofuel", 0, 6, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange), + Biomass(704, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 0, 255, 0, 0, "Biomass", 3, 8, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen), + Cheese(894, TextureSet.SET_FINE, 1.0F, 0, 0, 1 | 8, 255, 255, 0, 0, "Cheese", 0, 0, 320, 0, false, false, 1, 1, 1, Dyes.dyeYellow), + Chili(895, TextureSet.SET_FINE, 1.0F, 0, 0, 1, 200, 0, 0, 0, "Chili", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed), + Chocolate(886, TextureSet.SET_FINE, 1.0F, 0, 0, 1, 190, 95, 0, 0, "Chocolate", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown), + Cluster(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 127, "Cluster", 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeWhite), + CoalFuel(710, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 50, 50, 70, 0, "Coalfuel", 0, 16, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack), + Cocoa(887, TextureSet.SET_FINE, 1.0F, 0, 0, 1, 190, 95, 0, 0, "Cocoa", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown), + Coffee(888, TextureSet.SET_FINE, 1.0F, 0, 0, 1, 150, 75, 0, 0, "Coffee", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown), + Creosote(712, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 128, 64, 0, 0, "Creosote", 3, 8, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown), + Ethanol(706, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 255, 128, 0, 0, "Ethanol", 0, 128, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple), + FishOil(711, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 255, 196, 0, 0, "Fish Oil", 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow, Arrays.asList(new TC_AspectStack(TC_Aspects.CORPUS, 2))), + Fuel(708, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 255, 255, 0, 0, "Diesel", 0, 128, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow), + Glue(726, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 200, 196, 0, 0, "Glue", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange, Arrays.asList(new TC_AspectStack(TC_Aspects.LIMUS, 2))), + Gunpowder(800, TextureSet.SET_DULL, 1.0F, 0, 0, 1, 128, 128, 128, 0, "Gunpowder", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray, Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 3), new TC_AspectStack(TC_Aspects.IGNIS, 4))), + FryingOilHot(727, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 200, 196, 0, 0, "Hot Frying Oil", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange, Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.IGNIS, 1))), + Honey(725, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 210, 200, 0, 0, "Honey", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow), + Leather(-1, TextureSet.SET_ROUGH, 1.0F, 0, 0, 1, 150, 150, 80, 127, "Leather", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange), + LimePure(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Pure Lime", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime), + Lubricant(724, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 255, 196, 0, 0, "Lubricant", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange, Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), + McGuffium239(999, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 200, 50, 150, 0, "Mc Guffium 239", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink, Arrays.asList(new TC_AspectStack(TC_Aspects.ALIENIS, 8), new TC_AspectStack(TC_Aspects.PERMUTATIO, 8), new TC_AspectStack(TC_Aspects.SPIRITUS, 8), new TC_AspectStack(TC_Aspects.AURAM, 8), new TC_AspectStack(TC_Aspects.VITIUM, 8), new TC_AspectStack(TC_Aspects.RADIO, 8), new TC_AspectStack(TC_Aspects.MAGNETO, 8), new TC_AspectStack(TC_Aspects.ELECTRUM, 8), new TC_AspectStack(TC_Aspects.NEBRISUM, 8), new TC_AspectStack(TC_Aspects.STRONTIO, 8))), + MeatRaw(892, TextureSet.SET_FINE, 1.0F, 0, 0, 1, 255, 100, 100, 0, "Raw Meat", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink), + MeatCooked(893, TextureSet.SET_FINE, 1.0F, 0, 0, 1, 150, 60, 20, 0, "Cooked Meat", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink), + Milk(885, TextureSet.SET_FINE, 1.0F, 0, 0, 1 | 16, 254, 254, 254, 0, "Milk", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, Arrays.asList(new TC_AspectStack(TC_Aspects.SANO, 2))), + Mud(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Mud", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown), + Oil(707, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 10, 10, 10, 0, "Oil", 3, 16, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack), + Paper(879, TextureSet.SET_PAPER, 1.0F, 0, 0, 1, 250, 250, 250, 0, "Paper", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, Arrays.asList(new TC_AspectStack(TC_Aspects.COGNITO, 1))), + Peat(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Peat", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown, Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2))), + Quantum(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Quantum", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite), + RareEarth(891, TextureSet.SET_FINE, 1.0F, 0, 0, 1, 128, 128, 100, 0, "Rare Earth", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray, Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.LUCRUM, 1))), + Red(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 0, 0, 0, "Red", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed), + Reinforced(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Reinforced", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray), + SeedOil(713, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 196, 255, 0, 0, "Seed Oil", 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime, Arrays.asList(new TC_AspectStack(TC_Aspects.GRANUM, 2))), + SeedOilHemp(722, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 196, 255, 0, 0, "Hemp Seed Oil", 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime, Arrays.asList(new TC_AspectStack(TC_Aspects.GRANUM, 2))), + SeedOilLin(723, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 196, 255, 0, 0, "Lin Seed Oil", 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime, Arrays.asList(new TC_AspectStack(TC_Aspects.GRANUM, 2))), + Stone(299, TextureSet.SET_ROUGH, 4.0F, 32, 1, 1 | 64 | 128, 205, 205, 205, 0, "Stone", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1))), + TNT(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "TNT", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed, Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 7), new TC_AspectStack(TC_Aspects.IGNIS, 4))), + Unstable(-1, TextureSet.SET_NONE, 1.0F, 0, 4, 0, 255, 255, 255, 127, "Unstable", 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeWhite, Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 4))), + Unstableingot(-1, TextureSet.SET_NONE, 1.0F, 0, 4, 0, 255, 255, 255, 127, "Unstable", 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeWhite, Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 4))), + Wheat(881, TextureSet.SET_POWDER, 1.0F, 0, 0, 1, 255, 255, 196, 0, "Wheat", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow, Arrays.asList(new TC_AspectStack(TC_Aspects.MESSIS, 2))), + + /** + * TODO: This + */ + AluminiumBrass(-1, TextureSet.SET_METALLIC, 6.0F, 64, 2, 1 | 2 | 64, 255, 255, 255, 0, "Aluminium Brass", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow), + Osmiridium(317, TextureSet.SET_METALLIC, 8.0F, 3000, 4, 1 | 2 | 64 | 128, 100, 100, 255, 0, "Osmiridium", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightBlue), + Sunnarium(318, TextureSet.SET_SHINY, 1.0F, 0, 1, 1 | 2, 255, 255, 0, 0, "Sunnarium", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow), + Endstone(808, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Endstone", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeYellow), + Netherrack(807, TextureSet.SET_DULL, 1.0F, 0, 0, 1, 200, 0, 0, 0, "Netherrack", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeRed), + SoulSand(-1, TextureSet.SET_DULL, 1.0F, 0, 0, 1, 255, 255, 255, 0, "Soulsand", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeBrown), + + /** + * First Degree Compounds + */ + Air(-1, TextureSet.SET_FLUID, 1.0F, 0, 2, 16 | 32, 169, 208, 245, 240, "Air", 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeLightBlue, 0, Arrays.asList(new MaterialStack(Nitrogen, 40), new MaterialStack(Oxygen, 11), new MaterialStack(Argon, 1))), + Almandine(820, TextureSet.SET_ROUGH, 1.0F, 0, 1, 1 | 8, 255, 0, 0, 0, "Almandine", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed, 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Iron, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), + Andradite(821, TextureSet.SET_ROUGH, 1.0F, 0, 1, 1 | 8, 150, 120, 0, 0, "Andradite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow, 1, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Iron, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), + AnnealedCopper(345, TextureSet.SET_SHINY, 1.0F, 0, 2, 1 | 2 | 128, 255, 120, 20, 0, "Annealed Copper", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeOrange, 2, Arrays.asList(new MaterialStack(Copper, 1))), + Asbestos(946, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8, 230, 230, 230, 0, "Asbestos", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 1, Arrays.asList(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 9))), // Mg3Si2O5(OH)4 + Ash(815, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 150, 150, 150, 0, "Ashes", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, 2, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 1))), + BandedIron(917, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 145, 90, 90, 0, "Banded Iron", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown, 1, Arrays.asList(new MaterialStack(Iron, 2), new MaterialStack(Oxygen, 3))), + BatteryAlloy(315, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 2, 156, 124, 160, 0, "Battery Alloy", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple, 2, Arrays.asList(new MaterialStack(Lead, 4), new MaterialStack(Antimony, 1))), + Bauxite(822, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8, 200, 100, 0, 0, "Bauxite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBrown, 1, Arrays.asList(new MaterialStack(Titanium, 1), new MaterialStack(Aluminium, 16), new MaterialStack(Hydrogen, 10), new MaterialStack(Oxygen, 12))), + BlueTopaz(513, TextureSet.SET_GEM_HORIZONTAL, 7.0F, 256, 3, 1 | 4 | 8 | 64, 0, 0, 255, 127, "Blue Topaz", 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyeBlue, 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Fluorine, 2), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 6)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), + Bone(806, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 250, 250, 250, 0, "Bone", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 0, Arrays.asList(new MaterialStack(Calcium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.MORTUUS, 2), new TC_AspectStack(TC_Aspects.CORPUS, 1))), + Brass(301, TextureSet.SET_METALLIC, 7.0F, 96, 1, 1 | 2 | 64 | 128, 255, 180, 0, 0, "Brass", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow, 2, Arrays.asList(new MaterialStack(Zinc, 1), new MaterialStack(Copper, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), + Bronze(300, TextureSet.SET_METALLIC, 6.0F, 192, 2, 1 | 2 | 64 | 128, 255, 128, 0, 0, "Bronze", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange, 2, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Copper, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), + BrownLimonite(930, TextureSet.SET_METALLIC, 1.0F, 0, 1, 1 | 8, 200, 100, 0, 0, "Brown Limonite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown, 2, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Oxygen, 2))), // FeO(OH) + Calcite(823, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8, 250, 230, 220, 0, "Calcite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange, 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3))), + Cassiterite(824, TextureSet.SET_METALLIC, 1.0F, 0, 1, 8, 220, 220, 220, 0, "Cassiterite", 0, 0, -1, 0, false, false, 4, 3, 1, Dyes.dyeWhite, 1, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Oxygen, 2))), + CassiteriteSand(937, TextureSet.SET_SAND, 1.0F, 0, 1, 8, 220, 220, 220, 0, "Cassiterite Sand", 0, 0, -1, 0, false, false, 4, 3, 1, Dyes.dyeWhite, 1, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Oxygen, 2))), + Celestine(913, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8, 200, 205, 240, 0, "Celestine", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, 1, Arrays.asList(new MaterialStack(Strontium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), + Chalcopyrite(855, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8, 160, 120, 40, 0, "Chalcopyrite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow, 1, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Iron, 1), new MaterialStack(Sulfur, 2))), + Chalk(856, TextureSet.SET_FINE, 1.0F, 0, 2, 1, 250, 250, 250, 0, "Chalk", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeWhite, 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3))), + Charcoal(536, TextureSet.SET_FINE, 1.0F, 0, 1, 1 | 4, 100, 70, 70, 0, "Charcoal", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack, 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2))), + Chromite(825, TextureSet.SET_METALLIC, 1.0F, 0, 1, 1 | 8, 35, 20, 15, 0, "Chromite", 0, 0, 1700, 1700, true, false, 6, 1, 1, Dyes.dyePink, 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Chrome, 2), new MaterialStack(Oxygen, 4))), + ChromiumDioxide(361, TextureSet.SET_DULL, 11.0F, 256, 3, 1 | 2, 230, 200, 200, 0, "Chromium Dioxide", 0, 0, 650, 650, false, false, 5, 3, 1, Dyes.dyePink, 1, Arrays.asList(new MaterialStack(Chrome, 1), new MaterialStack(Oxygen, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), + Cinnabar(826, TextureSet.SET_ROUGH, 1.0F, 0, 1, 1 | 8, 150, 0, 0, 0, "Cinnabar", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBrown, 2, Arrays.asList(new MaterialStack(Mercury, 1), new MaterialStack(Sulfur, 1))), + Clay(805, TextureSet.SET_ROUGH, 1.0F, 0, 1, 1, 200, 200, 220, 0, "Clay", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeLightBlue, 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Lithium, 1), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 2))), + Coal(535, TextureSet.SET_ROUGH, 1.0F, 0, 1, 1 | 4 | 8, 70, 70, 70, 0, "Coal", 0, 0, -1, 0, false, false, 2, 2, 1, Dyes.dyeBlack, 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2))), + Cobaltite(827, TextureSet.SET_METALLIC, 1.0F, 0, 1, 1 | 8, 80, 80, 250, 0, "Cobaltite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue, 1, Arrays.asList(new MaterialStack(Cobalt, 1), new MaterialStack(Arsenic, 1), new MaterialStack(Sulfur, 1))), + Cooperite(828, TextureSet.SET_METALLIC, 1.0F, 0, 1, 1 | 8, 255, 255, 200, 0, "Sheldonite", 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyeYellow, 2, Arrays.asList(new MaterialStack(Platinum, 3), new MaterialStack(Nickel, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Palladium, 1))), + Cupronickel(310, TextureSet.SET_METALLIC, 6.0F, 64, 1, 1 | 2 | 64, 227, 150, 128, 0, "Cupronickel", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange, 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Nickel, 1))), + DarkAsh(816, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 50, 50, 50, 0, "Dark Ashes", 0, 0, -1, 0, false, false, 1, 2, 1, Dyes.dyeGray, 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1), new TC_AspectStack(TC_Aspects.PERDITIO, 1))), + DeepIron(829, TextureSet.SET_METALLIC, 6.0F, 384, 2, 1 | 2 | 8 | 64, 150, 140, 140, 0, "Deep Iron", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyePink, 2, Arrays.asList(new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), + Diamond(500, TextureSet.SET_DIAMOND, 8.0F, 1280, 3, 1 | 4 | 8 | 64 | 128, 200, 255, 255, 127, "Diamond", 0, 0, -1, 0, false, true, 5, 64, 1, Dyes.dyeWhite, 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3), new TC_AspectStack(TC_Aspects.LUCRUM, 4))), + Electrum(303, TextureSet.SET_SHINY, 12.0F, 64, 2, 1 | 2 | 8 | 64 | 128, 255, 255, 100, 0, "Electrum", 0, 0, -1, 0, false, false, 4, 1, 1, Dyes.dyeYellow, 2, Arrays.asList(new MaterialStack(Silver, 1), new MaterialStack(Gold, 1))), + Emerald(501, TextureSet.SET_EMERALD, 7.0F, 256, 2, 1 | 4 | 8 | 64, 80, 255, 80, 127, "Emerald", 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeGreen, 1, Arrays.asList(new MaterialStack(Beryllium, 3), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 6), new MaterialStack(Oxygen, 18)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3), new TC_AspectStack(TC_Aspects.LUCRUM, 5))), + FreshWater(-1, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 0, 0, 255, 0, "Fresh Water", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue, 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2))), + Galena(830, TextureSet.SET_DULL, 1.0F, 0, 3, 1 | 8, 100, 60, 100, 0, "Galena", 0, 0, -1, 0, false, false, 4, 1, 1, Dyes.dyePurple, 1, Arrays.asList(new MaterialStack(Lead, 3), new MaterialStack(Silver, 3), new MaterialStack(Sulfur, 2))), + Garnierite(906, TextureSet.SET_METALLIC, 1.0F, 0, 3, 1 | 8, 50, 200, 70, 0, "Garnierite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightBlue, 1, Arrays.asList(new MaterialStack(Nickel, 1), new MaterialStack(Oxygen, 1))), + Glyceryl(714, TextureSet.SET_FLUID, 1.0F, 0, 1, 16, 0, 150, 150, 0, "Glyceryl Trinitrate", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeCyan, 1, Arrays.asList(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 5), new MaterialStack(Nitrogen, 3), new MaterialStack(Oxygen, 9))), + GreenSapphire(504, TextureSet.SET_GEM_HORIZONTAL, 7.0F, 256, 2, 1 | 4 | 8 | 64, 100, 200, 130, 127, "Green Sapphire", 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeCyan, 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), + Grossular(831, TextureSet.SET_ROUGH, 1.0F, 0, 1, 1 | 8, 200, 100, 0, 0, "Grossular", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeOrange, 1, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), + HolyWater(729, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 0, 0, 255, 0, "Holy Water", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue, 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2), new TC_AspectStack(TC_Aspects.AURAM, 1))), + Ice(702, TextureSet.SET_SHINY, 1.0F, 0, 0, 1 | 16, 200, 200, 255, 0, "Ice", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue, 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.GELUM, 2))), + Ilmenite(918, TextureSet.SET_METALLIC, 1.0F, 0, 3, 1 | 8, 70, 55, 50, 0, "Ilmenite", 0, 0, -1, 0, false, false, 1, 2, 1, Dyes.dyePurple, 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Titanium, 1), new MaterialStack(Oxygen, 3))), + Invar(302, TextureSet.SET_METALLIC, 6.0F, 256, 2, 1 | 2 | 64 | 128, 180, 180, 120, 0, "Invar", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown, 2, Arrays.asList(new MaterialStack(Iron, 2), new MaterialStack(Nickel, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.GELUM, 1))), + IronCompressed(-1, TextureSet.SET_METALLIC, 7.0F, 96, 1, 1 | 2 | 64 | 128, 128, 128, 128, 0, "Compressed Iron", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray, 2, Arrays.asList(new MaterialStack(Iron, 1))), + Kanthal(312, TextureSet.SET_METALLIC, 6.0F, 64, 2, 1 | 2 | 64, 194, 210, 223, 0, "Kanthal", 0, 0, 1800, 1800, true, false, 1, 1, 1, Dyes.dyeYellow, 2, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Chrome, 1))), + Lazurite(524, TextureSet.SET_LAPIS, 1.0F, 0, 1, 1 | 4 | 8, 100, 120, 255, 0, "Lazurite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeCyan, 1, Arrays.asList(new MaterialStack(Aluminium, 6), new MaterialStack(Silicon, 6), new MaterialStack(Calcium, 8), new MaterialStack(Sodium, 8))), + Magnalium(313, TextureSet.SET_DULL, 6.0F, 256, 2, 1 | 2 | 64 | 128, 200, 190, 255, 0, "Magnalium", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightBlue, 2, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Aluminium, 2))), + Magnesite(908, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 8, 250, 250, 180, 0, "Magnesite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink, 1, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3))), + Magnetite(870, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 8, 30, 30, 30, 0, "Magnetite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray, 1, Arrays.asList(new MaterialStack(Iron, 3), new MaterialStack(Oxygen, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), + Methane(715, TextureSet.SET_FLUID, 1.0F, 0, 1, 16, 255, 255, 255, 0, "Methane", 1, 45, -1, 0, false, false, 3, 1, 1, Dyes.dyeMagenta, 1, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 4))), + Molybdenite(942, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 8, 25, 25, 25, 0, "Molybdenite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue, 1, Arrays.asList(new MaterialStack(Molybdenum, 1), new MaterialStack(Sulfur, 2))), // MoS2 (also source of Re) + Nichrome(311, TextureSet.SET_METALLIC, 6.0F, 64, 2, 1 | 2 | 64, 205, 206, 246, 0, "Nichrome", 0, 0, 2700, 2700, true, false, 1, 1, 1, Dyes.dyeRed, 2, Arrays.asList(new MaterialStack(Nickel, 4), new MaterialStack(Chrome, 1))), + NiobiumNitride(359, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 2, 29, 41, 29, 0, "Niobium Nitride", 0, 0, 2573, 2573, true, false, 1, 1, 1, Dyes.dyeBlack, 1, Arrays.asList(new MaterialStack(Niobium, 1), new MaterialStack(Nitrogen, 1))), // Anti-Reflective Material + NiobiumTitanium(360, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 2, 29, 29, 41, 0, "Niobium-Titanium", 0, 0, 2800, 2800, true, false, 1, 1, 1, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(Niobium, 1), new MaterialStack(Titanium, 1))), + NitroCarbon(716, TextureSet.SET_FLUID, 1.0F, 0, 1, 16, 0, 75, 100, 0, "Nitro-Carbon", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeCyan, 1, Arrays.asList(new MaterialStack(Nitrogen, 1), new MaterialStack(Carbon, 1))), + NitrogenDioxide(717, TextureSet.SET_FLUID, 1.0F, 0, 1, 16, 100, 175, 255, 0, "Nitrogen Dioxide", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeCyan, 1, Arrays.asList(new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 2))), + Obsidian(804, TextureSet.SET_DULL, 1.0F, 0, 3, 1, 80, 50, 100, 0, "Obsidian", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack, 1, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Iron, 1), new MaterialStack(Silicon, 2), new MaterialStack(Oxygen, 8))), + Phosphate(833, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8 | 16, 255, 255, 0, 0, "Phosphate", 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeYellow, 1, Arrays.asList(new MaterialStack(Phosphor, 1), new MaterialStack(Oxygen, 4))), + PigIron(307, TextureSet.SET_METALLIC, 6.0F, 384, 2, 1 | 2 | 8 | 64, 200, 180, 180, 0, "Pig Iron", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyePink, 2, Arrays.asList(new MaterialStack(Iron, 1))), + Plastic(874, TextureSet.SET_DULL, 3.0F, 32, 1, 1 | 2 | 64 | 128, 200, 200, 200, 0, "Plastic", 0, 0, 400, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 0, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), + Powellite(883, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 255, 255, 0, 0, "Powellite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow, 2, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Molybdenum, 1), new MaterialStack(Oxygen, 4))), + Pumice(926, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 230, 185, 185, 0, "Pumice", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray, 2, Arrays.asList(new MaterialStack(Stone, 1))), + Pyrite(834, TextureSet.SET_ROUGH, 1.0F, 0, 1, 1 | 8, 150, 120, 40, 0, "Pyrite", 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeOrange, 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Sulfur, 2))), + Pyrolusite(943, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 150, 150, 170, 0, "Pyrolusite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, 1, Arrays.asList(new MaterialStack(Manganese, 1), new MaterialStack(Oxygen, 2))), + Pyrope(835, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 8, 120, 50, 100, 0, "Pyrope", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyePurple, 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), + RockSalt(944, TextureSet.SET_FINE, 1.0F, 0, 1, 1 | 8, 240, 200, 200, 0, "Rock Salt", 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeWhite, 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Chlorine, 1))), + Rubber(880, TextureSet.SET_SHINY, 1.5F, 16, 0, 1 | 2 | 64 | 128, 0, 0, 0, 0, "Rubber", 0, 0, 400, 0, false, false, 1, 1, 1, Dyes.dyeBlack, 0, Arrays.asList(new MaterialStack(Carbon, 5), new MaterialStack(Hydrogen, 8)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), + Ruby(502, TextureSet.SET_RUBY, 7.0F, 256, 2, 1 | 4 | 8 | 64, 255, 100, 100, 127, "Ruby", 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeRed, 1, Arrays.asList(new MaterialStack(Chrome, 1), new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), + Salt(817, TextureSet.SET_FINE, 1.0F, 0, 1, 1 | 8, 250, 250, 250, 0, "Salt", 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeWhite, 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Chlorine, 1))), + Saltpeter(836, TextureSet.SET_FINE, 1.0F, 0, 1, 1 | 8, 230, 230, 230, 0, "Saltpeter", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite, 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 3))), + SaltWater(-1, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 0, 0, 255, 0, "Salt Water", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue, 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2))), + Sapphire(503, TextureSet.SET_GEM_VERTICAL, 7.0F, 256, 2, 1 | 4 | 8 | 64, 100, 100, 200, 127, "Sapphire", 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeBlue, 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), + Scheelite(910, TextureSet.SET_DULL, 1.0F, 0, 3, 1 | 8, 200, 140, 20, 0, "Scheelite", 0, 0, 2500, 2500, false, false, 4, 1, 1, Dyes.dyeBlack, 1, Arrays.asList(new MaterialStack(Tungsten, 1), new MaterialStack(Calcium, 2), new MaterialStack(Oxygen, 4))), + SiliconDioxide(837, TextureSet.SET_QUARTZ, 1.0F, 0, 1, 1 | 16, 200, 200, 200, 0, "Silicon Dioxide", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, 1, Arrays.asList(new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 2))), + Snow(728, TextureSet.SET_FINE, 1.0F, 0, 0, 1 | 16, 250, 250, 250, 0, "Snow", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.GELUM, 1))), + Sodalite(525, TextureSet.SET_LAPIS, 1.0F, 0, 1, 1 | 4 | 8, 20, 20, 255, 0, "Sodalite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue, 1, Arrays.asList(new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Sodium, 4), new MaterialStack(Chlorine, 1))), + SodiumPersulfate(718, TextureSet.SET_FLUID, 1.0F, 0, 2, 16, 255, 255, 255, 0, "Sodium Persulfate", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange, 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), + SodiumSulfide(719, TextureSet.SET_FLUID, 1.0F, 0, 2, 16, 255, 255, 255, 0, "Sodium Sulfide", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange, 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Sulfur, 1))), + SolderingAlloy(314, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 2, 220, 220, 230, 0, "Soldering Alloy", 0, 0, 400, 400, false, false, 1, 1, 1, Dyes.dyeWhite, 2, Arrays.asList(new MaterialStack(Tin, 9), new MaterialStack(Antimony, 1))), + Spessartine(838, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 255, 100, 100, 0, "Spessartine", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed, 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Manganese, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), + Sphalerite(839, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8, 255, 255, 255, 0, "Sphalerite", 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeYellow, 1, Arrays.asList(new MaterialStack(Zinc, 1), new MaterialStack(Sulfur, 1))), + StainlessSteel(306, TextureSet.SET_SHINY, 7.0F, 480, 2, 1 | 2 | 64 | 128, 200, 200, 220, 0, "Stainless Steel", 0, 0, -1, 1700, true, false, 1, 1, 1, Dyes.dyeWhite, 1, Arrays.asList(new MaterialStack(Iron, 6), new MaterialStack(Chrome, 1), new MaterialStack(Manganese, 1), new MaterialStack(Nickel, 1))), + Steel(305, TextureSet.SET_METALLIC, 6.0F, 512, 2, 1 | 2 | 64 | 128, 128, 128, 128, 0, "Steel", 0, 0, 1811, 1000, true, false, 4, 51, 50, Dyes.dyeGray, 1, Arrays.asList(new MaterialStack(Iron, 50), new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 1))), + Stibnite(945, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 8, 70, 70, 70, 0, "Stibnite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 2, Arrays.asList(new MaterialStack(Antimony, 2), new MaterialStack(Sulfur, 3))), + SulfuricAcid(720, TextureSet.SET_FLUID, 1.0F, 0, 2, 16, 255, 128, 0, 0, "Sulfuric Acid", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange, 1, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), + Tanzanite(508, TextureSet.SET_GEM_VERTICAL, 7.0F, 256, 2, 1 | 4 | 8 | 64, 64, 0, 200, 127, "Tanzanite", 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyePurple, 1, Arrays.asList(new MaterialStack(Calcium, 2), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Hydrogen, 1), new MaterialStack(Oxygen, 13)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), + Tetrahedrite(840, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 200, 32, 0, 0, "Tetrahedrite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed, 2, Arrays.asList(new MaterialStack(Copper, 3), new MaterialStack(Antimony, 1), new MaterialStack(Sulfur, 3), new MaterialStack(Iron, 1))), //Cu3SbS3 + x(Fe,Zn)6Sb2S9 + TinAlloy(363, TextureSet.SET_METALLIC, 6.5F, 96, 2, 1 | 2 | 64 | 128, 200, 200, 200, 0, "Tin Alloy", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 2, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), + Topaz(507, TextureSet.SET_GEM_HORIZONTAL, 7.0F, 256, 3, 1 | 4 | 8 | 64, 255, 128, 0, 127, "Topaz", 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeOrange, 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Fluorine, 2), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 6)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), + Tungstate(841, TextureSet.SET_DULL, 1.0F, 0, 3, 1 | 8, 55, 50, 35, 0, "Tungstate", 0, 0, 2500, 2500, true, false, 4, 1, 1, Dyes.dyeBlack, 1, Arrays.asList(new MaterialStack(Tungsten, 1), new MaterialStack(Lithium, 2), new MaterialStack(Oxygen, 4))), + Ultimet(344, TextureSet.SET_SHINY, 6.0F, 512, 3, 1 | 2 | 64 | 128, 180, 180, 230, 0, "Ultimet", 0, 0, 2700, 2700, true, false, 1, 1, 1, Dyes.dyeLightBlue, 1, Arrays.asList(new MaterialStack(Cobalt, 5), new MaterialStack(Chrome, 2), new MaterialStack(Nickel, 1), new MaterialStack(Molybdenum, 1))), // 54% Cobalt, 26% Chromium, 9% Nickel, 5% Molybdenum, 3% Iron, 2% Tungsten, 0.8% Manganese, 0.3% Silicon, 0.08% Nitrogen and 0.06% Carbon + Uraninite(922, TextureSet.SET_METALLIC, 1.0F, 0, 3, 1 | 8, 35, 35, 35, 0, "Uraninite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime, 2, Arrays.asList(new MaterialStack(Uranium, 1), new MaterialStack(Oxygen, 2))), + Uvarovite(842, TextureSet.SET_DIAMOND, 1.0F, 0, 2, 1 | 8, 180, 255, 180, 0, "Uvarovite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen, 1, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Chrome, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), + VanadiumGallium(357, TextureSet.SET_SHINY, 1.0F, 0, 2, 1 | 2, 128, 128, 140, 0, "Vanadium-Gallium", 0, 0, 3000, 3000, true, false, 1, 1, 1, Dyes.dyeGray, 2, Arrays.asList(new MaterialStack(Vanadium, 3), new MaterialStack(Gallium, 1))), + Water(701, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 0, 0, 255, 0, "Water", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue, 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2))), + Wood(809, TextureSet.SET_WOOD, 2.0F, 16, 0, 1 | 2 | 64 | 128, 100, 50, 0, 0, "Wood", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown, 0, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 1), new MaterialStack(Hydrogen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2))), + WroughtIron(304, TextureSet.SET_METALLIC, 6.0F, 384, 2, 1 | 2 | 64 | 128, 200, 180, 180, 0, "Wrought Iron", 0, 0, 1811, 0, false, false, 3, 1, 1, Dyes.dyeLightGray, 2, Arrays.asList(new MaterialStack(Iron, 1))), + Wulfenite(882, TextureSet.SET_DULL, 1.0F, 0, 3, 1 | 8, 255, 128, 0, 0, "Wulfenite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange, 2, Arrays.asList(new MaterialStack(Lead, 1), new MaterialStack(Molybdenum, 1), new MaterialStack(Oxygen, 4))), + YellowLimonite(931, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 8, 200, 200, 0, 0, "Yellow Limonite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow, 2, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Oxygen, 2))), // FeO(OH) + a bit Ni and Co + YttriumBariumCuprate(358, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2, 80, 64, 70, 0, "Yttrium Barium Cuprate", 0, 0, 1200, 1200, true, false, 1, 1, 1, Dyes.dyeGray, 0, Arrays.asList(new MaterialStack(Yttrium, 1), new MaterialStack(Barium, 2), new MaterialStack(Copper, 3), new MaterialStack(Oxygen, 7))), + + /** + * Second Degree Compounds + */ + WoodSealed(889, TextureSet.SET_WOOD, 3.0F, 24, 0, 1 | 2 | 64 | 128, 80, 40, 0, 0, "Sealed Wood", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown, 0, Arrays.asList(new MaterialStack(Wood, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2), new TC_AspectStack(TC_Aspects.FABRICO, 1))), + LiveRoot(832, TextureSet.SET_WOOD, 1.0F, 0, 1, 1, 220, 200, 0, 0, "Liveroot", 5, 16, -1, 0, false, false, 2, 4, 3, Dyes.dyeBrown, 2, Arrays.asList(new MaterialStack(Wood, 3), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2), new TC_AspectStack(TC_Aspects.VICTUS, 2), new TC_AspectStack(TC_Aspects.PRAECANTIO, 1))), + IronWood(338, TextureSet.SET_WOOD, 6.0F, 384, 2, 1 | 2 | 64 | 128, 150, 140, 110, 0, "Ironwood", 5, 8, -1, 0, false, false, 2, 19, 18, Dyes.dyeBrown, 2, Arrays.asList(new MaterialStack(Iron, 9), new MaterialStack(LiveRoot, 9), new MaterialStack(Gold, 1))), + Glass(890, TextureSet.SET_GLASS, 1.0F, 4, 0, 1 | 4, 250, 250, 250, 220, "Glass", 0, 0, 1500, 0, false, true, 1, 1, 1, Dyes.dyeWhite, 2, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2))), + Perlite(925, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8, 30, 20, 30, 0, "Perlite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(Obsidian, 2), new MaterialStack(Water, 1))), + Borax(941, TextureSet.SET_FINE, 1.0F, 0, 1, 1 | 8, 250, 250, 250, 0, "Borax", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Boron, 4), new MaterialStack(Water, 10), new MaterialStack(Oxygen, 7))), + Lignite(538, TextureSet.SET_LIGNITE, 1.0F, 0, 0, 1 | 4 | 8, 100, 70, 70, 0, "Lignite Coal", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack, 1, Arrays.asList(new MaterialStack(Carbon, 2), new MaterialStack(Water, 4), new MaterialStack(DarkAsh, 1))), + Olivine(505, TextureSet.SET_RUBY, 7.0F, 256, 2, 1 | 4 | 8 | 64, 150, 255, 150, 127, "Olivine", 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeLime, 1, Arrays.asList(new MaterialStack(Magnesium, 2), new MaterialStack(Iron, 1), new MaterialStack(SiliconDioxide, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 2))), + Opal(510, TextureSet.SET_OPAL, 7.0F, 256, 2, 1 | 4 | 8 | 64, 0, 0, 255, 0, "Opal", 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyeBlue, 1, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), + Amethyst(509, TextureSet.SET_FLINT, 7.0F, 256, 3, 1 | 4 | 8 | 64, 210, 50, 210, 127, "Amethyst", 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyePink, 1, Arrays.asList(new MaterialStack(SiliconDioxide, 4), new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), + Redstone(810, TextureSet.SET_ROUGH, 1.0F, 0, 2, 1 | 8, 200, 0, 0, 0, "Redstone", 0, 0, 500, 0, false, false, 3, 1, 1, Dyes.dyeRed, 2, Arrays.asList(new MaterialStack(Silicon, 1), new MaterialStack(Pyrite, 5), new MaterialStack(Ruby, 1), new MaterialStack(Mercury, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 2))), + Lapis(526, TextureSet.SET_LAPIS, 1.0F, 0, 1, 1 | 4 | 8, 70, 70, 220, 0, "Lapis", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue, 2, Arrays.asList(new MaterialStack(Lazurite, 12), new MaterialStack(Sodalite, 2), new MaterialStack(Pyrite, 1), new MaterialStack(Calcite, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.SENSUS, 1))), + Blaze(801, TextureSet.SET_POWDER, 2.0F, 16, 1, 1 | 64, 255, 200, 0, 0, "Blaze", 0, 0, 6400, 0, false, false, 2, 3, 2, Dyes.dyeYellow, 2, Arrays.asList(new MaterialStack(DarkAsh, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 2), new TC_AspectStack(TC_Aspects.IGNIS, 4))), + EnderPearl(532, TextureSet.SET_SHINY, 1.0F, 16, 1, 1 | 4, 108, 220, 200, 0, "Enderpearl", 0, 0, -1, 0, false, false, 1, 16, 10, Dyes.dyeGreen, 1, Arrays.asList(new MaterialStack(Beryllium, 1), new MaterialStack(Potassium, 4), new MaterialStack(Nitrogen, 5), new MaterialStack(Magic, 6)), Arrays.asList(new TC_AspectStack(TC_Aspects.ALIENIS, 4), new TC_AspectStack(TC_Aspects.ITER, 4), new TC_AspectStack(TC_Aspects.PRAECANTIO, 2))), + EnderEye(533, TextureSet.SET_SHINY, 1.0F, 16, 1, 1 | 4, 160, 250, 230, 0, "Endereye", 5, 10, -1, 0, false, false, 1, 2, 1, Dyes.dyeGreen, 2, Arrays.asList(new MaterialStack(EnderPearl, 1), new MaterialStack(Blaze, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.SENSUS, 4), new TC_AspectStack(TC_Aspects.ALIENIS, 4), new TC_AspectStack(TC_Aspects.ITER, 4), new TC_AspectStack(TC_Aspects.PRAECANTIO, 3), new TC_AspectStack(TC_Aspects.IGNIS, 2))), + Flint(802, TextureSet.SET_FLINT, 2.5F, 64, 1, 1 | 64, 0, 32, 64, 0, "Flint", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray, 2, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), + Diatomite(948, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8, 225, 225, 225, 0, "Diatomite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray, 2, Arrays.asList(new MaterialStack(Flint, 8), new MaterialStack(BandedIron, 1), new MaterialStack(Sapphire, 1))), + VolcanicAsh(940, TextureSet.SET_FLINT, 1.0F, 0, 0, 1, 60, 50, 50, 0, "Volcanic Ashes", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(Flint, 6), new MaterialStack(Iron, 1), new MaterialStack(Magnesium, 1))), + Niter(531, TextureSet.SET_FLINT, 1.0F, 0, 1, 1 | 4 | 8, 255, 200, 200, 0, "Niter", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink, 2, Arrays.asList(new MaterialStack(Saltpeter, 1))), + Pyrotheum(843, TextureSet.SET_FIERY, 1.0F, 0, 1, 1, 255, 128, 0, 0, "Pyrotheum", 2, 62, -1, 0, false, false, 2, 3, 1, Dyes.dyeYellow, 2, Arrays.asList(new MaterialStack(Coal, 1), new MaterialStack(Redstone, 1), new MaterialStack(Blaze, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 2), new TC_AspectStack(TC_Aspects.IGNIS, 1))), + HydratedCoal(818, TextureSet.SET_ROUGH, 1.0F, 0, 1, 1, 70, 70, 100, 0, "Hydrated Coal", 0, 0, -1, 0, false, false, 1, 9, 8, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(Coal, 8), new MaterialStack(Water, 1))), + Apatite(530, TextureSet.SET_DIAMOND, 1.0F, 0, 1, 1 | 4 | 8, 200, 200, 255, 0, "Apatite", 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeCyan, 1, Arrays.asList(new MaterialStack(Calcium, 5), new MaterialStack(Phosphate, 3), new MaterialStack(Chlorine, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.MESSIS, 2))), + Alumite(-1, TextureSet.SET_METALLIC, 1.5F, 64, 0, 1 | 2 | 64, 255, 255, 255, 0, "Alumite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink, 2, Arrays.asList(new MaterialStack(Aluminium, 5), new MaterialStack(Iron, 2), new MaterialStack(Obsidian, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.STRONTIO, 2))), + Manyullyn(-1, TextureSet.SET_METALLIC, 1.5F, 64, 0, 1 | 2 | 64, 255, 255, 255, 0, "Manyullyn", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple, 2, Arrays.asList(new MaterialStack(Cobalt, 1), new MaterialStack(Aredrite, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.STRONTIO, 2))), + ShadowIron(336, TextureSet.SET_METALLIC, 6.0F, 384, 2, 1 | 2 | 8 | 64, 120, 120, 120, 0, "Shadowiron", 0, 0, -1, 0, false, false, 3, 4, 3, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(Iron, 3), new MaterialStack(Magic, 1))), + ShadowSteel(337, TextureSet.SET_METALLIC, 6.0F, 768, 2, 1 | 2 | 64, 90, 90, 90, 0, "Shadowsteel", 0, 0, -1, 1700, true, false, 4, 4, 3, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(Steel, 3), new MaterialStack(Magic, 1))), + Steeleaf(339, TextureSet.SET_LEAF, 8.0F, 768, 3, 1 | 2 | 64 | 128, 50, 127, 50, 0, "Steeleaf", 5, 24, -1, 0, false, false, 4, 1, 1, Dyes.dyeGreen, 2, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.HERBA, 2), new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.PRAECANTIO, 1))), + Knightmetal(362, TextureSet.SET_METALLIC, 8.0F, 1024, 3, 1 | 2 | 64 | 128, 210, 240, 200, 0, "Knightmetal", 5, 24, -1, 0, false, false, 4, 1, 1, Dyes.dyeLime, 2, Arrays.asList(new MaterialStack(Steel, 2), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 1), new TC_AspectStack(TC_Aspects.METALLUM, 2))), + SterlingSilver(350, TextureSet.SET_SHINY, 13.0F, 128, 2, 1 | 2 | 64 | 128, 250, 220, 225, 0, "Sterling Silver", 0, 0, -1, 1700, true, false, 4, 1, 1, Dyes.dyeWhite, 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Silver, 4))), + RoseGold(351, TextureSet.SET_SHINY, 14.0F, 128, 2, 1 | 2 | 64 | 128, 255, 230, 30, 0, "Rose Gold", 0, 0, -1, 1600, true, false, 4, 1, 1, Dyes.dyeOrange, 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Gold, 4))), + BlackBronze(352, TextureSet.SET_DULL, 12.0F, 256, 2, 1 | 2 | 64 | 128, 100, 50, 125, 0, "Black Bronze", 0, 0, -1, 2000, true, false, 4, 1, 1, Dyes.dyePurple, 2, Arrays.asList(new MaterialStack(Gold, 1), new MaterialStack(Silver, 1), new MaterialStack(Copper, 3))), + BismuthBronze(353, TextureSet.SET_DULL, 8.0F, 256, 2, 1 | 2 | 64 | 128, 100, 125, 125, 0, "Bismuth Bronze", 0, 0, -1, 1100, true, false, 4, 1, 1, Dyes.dyeCyan, 2, Arrays.asList(new MaterialStack(Bismuth, 1), new MaterialStack(Zinc, 1), new MaterialStack(Copper, 3))), + BlackSteel(334, TextureSet.SET_METALLIC, 6.5F, 768, 2, 1 | 2 | 64, 100, 100, 100, 0, "Black Steel", 0, 0, -1, 1200, true, false, 4, 1, 1, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(Nickel, 1), new MaterialStack(BlackBronze, 1), new MaterialStack(Steel, 3))), + RedSteel(348, TextureSet.SET_METALLIC, 7.0F, 896, 2, 1 | 2 | 64, 140, 100, 100, 0, "Red Steel", 0, 0, -1, 1300, true, false, 4, 1, 1, Dyes.dyeRed, 2, Arrays.asList(new MaterialStack(SterlingSilver, 1), new MaterialStack(BismuthBronze, 1), new MaterialStack(Steel, 2), new MaterialStack(BlackSteel, 4))), + BlueSteel(349, TextureSet.SET_METALLIC, 7.5F, 1024, 2, 1 | 2 | 64, 100, 100, 140, 0, "Blue Steel", 0, 0, -1, 1400, true, false, 4, 1, 1, Dyes.dyeBlue, 2, Arrays.asList(new MaterialStack(RoseGold, 1), new MaterialStack(Brass, 1), new MaterialStack(Steel, 2), new MaterialStack(BlackSteel, 4))), + DamascusSteel(335, TextureSet.SET_METALLIC, 8.0F, 1280, 2, 1 | 2 | 64, 110, 110, 110, 0, "Damascus Steel", 0, 0, 2000, 1500, true, false, 4, 1, 1, Dyes.dyeGray, 2, Arrays.asList(new MaterialStack(Steel, 1))), + TungstenSteel(316, TextureSet.SET_METALLIC, 10.0F, 5120, 4, 1 | 2 | 64 | 128, 100, 100, 160, 0, "Tungstensteel", 0, 0, -1, 3000, true, false, 4, 1, 1, Dyes.dyeBlue, 2, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Tungsten, 1))), + NitroCoalFuel(-1, TextureSet.SET_FLUID, 1.0F, 0, 2, 16, 50, 70, 50, 0, "Nitro-Coalfuel", 0, 48, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack, 0, Arrays.asList(new MaterialStack(Glyceryl, 1), new MaterialStack(CoalFuel, 4))), + NitroFuel(709, TextureSet.SET_FLUID, 1.0F, 0, 2, 16, 200, 255, 0, 0, "Nitro-Diesel", 0, 384, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime, 0, Arrays.asList(new MaterialStack(Glyceryl, 1), new MaterialStack(Fuel, 4))), + AstralSilver(333, TextureSet.SET_SHINY, 10.0F, 64, 2, 1 | 2 | 8 | 64, 230, 230, 255, 0, "Astral Silver", 0, 0, -1, 0, false, false, 4, 3, 2, Dyes.dyeWhite, 2, Arrays.asList(new MaterialStack(Silver, 2), new MaterialStack(Magic, 1))), + Midasium(332, TextureSet.SET_SHINY, 12.0F, 64, 2, 1 | 2 | 8 | 64, 255, 200, 40, 0, "Midasium", 0, 0, -1, 0, false, false, 4, 3, 2, Dyes.dyeOrange, 2, Arrays.asList(new MaterialStack(Gold, 2), new MaterialStack(Magic, 1))), + Mithril(331, TextureSet.SET_SHINY, 14.0F, 64, 3, 1 | 2 | 8 | 64, 255, 255, 210, 0, "Mithril", 0, 0, -1, 0, false, false, 4, 3, 2, Dyes.dyeLightBlue, 2, Arrays.asList(new MaterialStack(Platinum, 2), new MaterialStack(Magic, 1))), + BlueAlloy(309, TextureSet.SET_DULL, 1.0F, 0, 0, 1 | 2, 100, 180, 255, 0, "Blue Alloy", 0, 0, -1, 0, false, false, 3, 5, 1, Dyes.dyeLightBlue, 2, Arrays.asList(new MaterialStack(Silver, 1), new MaterialStack(Nikolite, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 3))), + RedAlloy(308, TextureSet.SET_DULL, 1.0F, 0, 0, 1 | 2, 200, 0, 0, 0, "Red Alloy", 0, 0, -1, 0, false, false, 3, 5, 1, Dyes.dyeRed, 2, Arrays.asList(new MaterialStack(Metal, 1), new MaterialStack(Redstone, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 3))), + CobaltBrass(343, TextureSet.SET_METALLIC, 8.0F, 256, 2, 1 | 2 | 64 | 128, 180, 180, 160, 0, "Cobalt Brass", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeOrange, 2, Arrays.asList(new MaterialStack(Brass, 7), new MaterialStack(Aluminium, 1), new MaterialStack(Cobalt, 1))), + Phosphorus(534, TextureSet.SET_FLINT, 1.0F, 0, 2, 1 | 4 | 8 | 16, 255, 255, 0, 0, "Phosphorus", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow, 2, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Phosphate, 2))), + Basalt(844, TextureSet.SET_ROUGH, 1.0F, 0, 1, 1, 30, 20, 20, 0, "Basalt", 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(Olivine, 1), new MaterialStack(Calcite, 3), new MaterialStack(Flint, 8), new MaterialStack(DarkAsh, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.TENEBRAE, 1))), + GarnetRed(527, TextureSet.SET_RUBY, 7.0F, 128, 2, 1 | 4 | 8 | 64, 200, 80, 80, 127, "Red Garnet", 0, 0, -1, 0, false, true, 4, 1, 1, Dyes.dyeRed, 2, Arrays.asList(new MaterialStack(Pyrope, 3), new MaterialStack(Almandine, 5), new MaterialStack(Spessartine, 8)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))), + GarnetYellow(528, TextureSet.SET_RUBY, 7.0F, 128, 2, 1 | 4 | 8 | 64, 200, 200, 80, 127, "Yellow Garnet", 0, 0, -1, 0, false, true, 4, 1, 1, Dyes.dyeYellow, 2, Arrays.asList(new MaterialStack(Andradite, 5), new MaterialStack(Grossular, 8), new MaterialStack(Uvarovite, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))), + Marble(845, TextureSet.SET_FINE, 1.0F, 0, 1, 1, 200, 200, 200, 0, "Marble", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 2, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Calcite, 7)), Arrays.asList(new TC_AspectStack(TC_Aspects.PERFODIO, 1))), + Sugar(803, TextureSet.SET_FINE, 1.0F, 0, 1, 1, 250, 250, 250, 0, "Sugar", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 1, Arrays.asList(new MaterialStack(Carbon, 2), new MaterialStack(Water, 5), new MaterialStack(Oxygen, 25)), Arrays.asList(new TC_AspectStack(TC_Aspects.HERBA, 1), new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.AER, 1))), + Thaumium(330, TextureSet.SET_METALLIC, 12.0F, 256, 3, 1 | 2 | 64 | 128, 150, 100, 200, 0, "Thaumium", 0, 0, -1, 0, false, false, 5, 2, 1, Dyes.dyePurple, 0, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.PRAECANTIO, 1))), + Vinteum(529, TextureSet.SET_EMERALD, 10.0F, 128, 3, 1 | 4 | 8 | 64, 100, 200, 255, 0, "Vinteum", 5, 32, -1, 0, false, false, 4, 1, 1, Dyes.dyeLightBlue, 2, Arrays.asList(new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.PRAECANTIO, 1))), + Vis(-1, TextureSet.SET_SHINY, 1.0F, 0, 3, 0, 128, 0, 255, 0, "Vis", 5, 32, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple, 2, Arrays.asList(new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AURAM, 2), new TC_AspectStack(TC_Aspects.PRAECANTIO, 1))), + Redrock(846, TextureSet.SET_ROUGH, 1.0F, 0, 1, 1, 255, 80, 50, 0, "Redrock", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed, 2, Arrays.asList(new MaterialStack(Calcite, 2), new MaterialStack(Flint, 1), new MaterialStack(Clay, 1))), + PotassiumFeldspar(847, TextureSet.SET_FINE, 1.0F, 0, 1, 1, 120, 40, 40, 0, "Potassium Feldspar", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink, 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 8))), + Biotite(848, TextureSet.SET_METALLIC, 1.0F, 0, 1, 1, 20, 30, 20, 0, "Biotite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray, 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 3), new MaterialStack(Aluminium, 3), new MaterialStack(Fluorine, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 10))), + GraniteBlack(849, TextureSet.SET_ROUGH, 4.0F, 64, 3, 1 | 64 | 128, 10, 10, 10, 0, "Black Granite", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(SiliconDioxide, 4), new MaterialStack(Biotite, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), + GraniteRed(850, TextureSet.SET_ROUGH, 4.0F, 64, 3, 1 | 64 | 128, 255, 0, 128, 0, "Red Granite", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeMagenta, 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(PotassiumFeldspar, 1), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), + Chrysotile(912, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 110, 140, 110, 0, "Chrysotile", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 2, Arrays.asList(new MaterialStack(Asbestos, 1))), + Realgar(555, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 140, 100, 100, 0, "Realgar", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 2, Arrays.asList(new MaterialStack(Arsenic, 4), new MaterialStack(Sulfur, 4))), + VanadiumMagnetite(923, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 8, 35, 35, 60, 0, "Vanadium Magnetite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(Vanadium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), // Mixture of Fe3O4 and V2O5 + BasalticMineralSand(935, TextureSet.SET_SAND, 1.0F, 0, 1, 1 | 8, 40, 50, 40, 0, "Basaltic Mineral Sand", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(Basalt, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), + GraniticMineralSand(936, TextureSet.SET_SAND, 1.0F, 0, 1, 1 | 8, 40, 60, 60, 0, "Granitic Mineral Sand", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(GraniteBlack, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), + GarnetSand(938, TextureSet.SET_SAND, 1.0F, 0, 1, 1 | 8, 200, 100, 0, 0, "Garnet Sand", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange, 2, Arrays.asList(new MaterialStack(GarnetRed, 1), new MaterialStack(GarnetYellow, 1))), + QuartzSand(939, TextureSet.SET_SAND, 1.0F, 0, 1, 1 | 8, 200, 200, 200, 0, "Quartz Sand", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 2, Arrays.asList(new MaterialStack(CertusQuartz, 1), new MaterialStack(Quartzite, 1))), + Bastnasite(905, TextureSet.SET_FINE, 1.0F, 0, 2, 1 | 8, 200, 110, 45, 0, "Bastnasite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Cerium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Fluorine, 1), new MaterialStack(Oxygen, 3))), // (Ce, La, Y)CO3F + Pentlandite(909, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 165, 150, 5, 0, "Pentlandite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Nickel, 9), new MaterialStack(Sulfur, 8))), // (Fe,Ni)9S8 + Spodumene(920, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 190, 170, 170, 0, "Spodumene", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Lithium, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Silicon, 2), new MaterialStack(Oxygen, 6))), // LiAl(SiO3)2 + Pollucite(919, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 240, 210, 210, 0, "Pollucite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Caesium, 2), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 4), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 12))), // (Cs,Na)2Al2Si4O12 2H2O (also a source of Rb) + Tantalite(921, TextureSet.SET_METALLIC, 1.0F, 0, 3, 1 | 8, 145, 80, 40, 0, "Tantalite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Manganese, 1), new MaterialStack(Tantalum, 2), new MaterialStack(Oxygen, 6))), // (Fe, Mn)Ta2O6 (also source of Nb) + Lepidolite(907, TextureSet.SET_FINE, 1.0F, 0, 2, 1 | 8, 240, 50, 140, 0, "Lepidolite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Lithium, 3), new MaterialStack(Aluminium, 4), new MaterialStack(Fluorine, 2), new MaterialStack(Oxygen, 10))), // K(Li,Al,Rb)3(Al,Si)4O10(F,OH)2 + Glauconite(933, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 130, 180, 60, 0, "Glauconite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 2), new MaterialStack(Aluminium, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // (K,Na)(Fe3+,Al,Mg)2(Si,Al)4O10(OH)2 + GlauconiteSand(949, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 130, 180, 60, 0, "Glauconite Sand", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 2), new MaterialStack(Aluminium, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // (K,Na)(Fe3+,Al,Mg)2(Si,Al)4O10(OH)2 + Vermiculite(932, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 8, 200, 180, 15, 0, "Vermiculite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Iron, 3), new MaterialStack(Aluminium, 4), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Water, 4), new MaterialStack(Oxygen, 12))), // (Mg+2, Fe+2, Fe+3)3 [(AlSi)4O10] (OH)2 4H2O) + Bentonite(927, TextureSet.SET_ROUGH, 1.0F, 0, 2, 1 | 8, 245, 215, 210, 0, "Bentonite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Magnesium, 6), new MaterialStack(Silicon, 12), new MaterialStack(Hydrogen, 6), new MaterialStack(Water, 5), new MaterialStack(Oxygen, 36))), // (Na,Ca)0.33(Al,Mg)2(Si4O10)(OH)2 nH2O + FullersEarth(928, TextureSet.SET_FINE, 1.0F, 0, 2, 1 | 8, 160, 160, 120, 0, "Fullers Earth", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 1), new MaterialStack(Water, 4), new MaterialStack(Oxygen, 11))), // (Mg,Al)2Si4O10(OH) 4(H2O) + Pitchblende(873, TextureSet.SET_DULL, 1.0F, 0, 3, 1 | 8, 200, 210, 0, 0, "Pitchblende", 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyeYellow, 2, Arrays.asList(new MaterialStack(Uraninite, 3), new MaterialStack(Thorium, 1), new MaterialStack(Lead, 1))), + Monazite(520, TextureSet.SET_DIAMOND, 1.0F, 0, 1, 1 | 4 | 8, 50, 70, 50, 0, "Monazite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen, 1, Arrays.asList(new MaterialStack(RareEarth, 1), new MaterialStack(Phosphate, 1))), // Wikipedia: (Ce, La, Nd, Th, Sm, Gd)PO4 Monazite also smelt-extract to Helium, it is brown like the rare earth Item Monazite sand deposits are inevitably of the monazite-(Ce) composition. Typically, the lanthanides in such monazites contain about 45�48% cerium, about 24% lanthanum, about 17% neodymium, about 5% praseodymium, and minor quantities of samarium, gadolinium, and yttrium. Europium concentrations tend to be low, about 0.05% Thorium content of monazite is variable and sometimes can be up to 20�30% + Malachite(871, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 5, 95, 5, 0, "Malachite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen, 1, Arrays.asList(new MaterialStack(Copper, 2), new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 5))), // Cu2CO3(OH)2 + Mirabilite(900, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 240, 250, 210, 0, "Mirabilite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Sulfur, 1), new MaterialStack(Water, 10), new MaterialStack(Oxygen, 4))), // Na2SO4 10H2O + Mica(901, TextureSet.SET_FINE, 1.0F, 0, 1, 1 | 8, 195, 195, 205, 0, "Mica", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Fluorine, 2), new MaterialStack(Oxygen, 10))), // KAl2(AlSi3O10)(F,OH)2 + Trona(903, TextureSet.SET_METALLIC, 1.0F, 0, 1, 1 | 8, 135, 135, 95, 0, "Trona", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Sodium, 3), new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 1), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 6))), // Na3(CO3)(HCO3) 2H2O + Barite(904, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 230, 235, 255, 0, "Barite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Barium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), + Gypsum(934, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8, 230, 230, 250, 0, "Gypsum", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 4))), // CaSO4 2H2O + Alunite(911, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 8, 225, 180, 65, 0, "Alunite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 14))), // KAl3(SO4)2(OH)6 + Dolomite(914, TextureSet.SET_FLINT, 1.0F, 0, 1, 1 | 8, 225, 205, 205, 0, "Dolomite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Magnesium, 1), new MaterialStack(Carbon, 2), new MaterialStack(Oxygen, 6))), // CaMg(CO3)2 + Wollastonite(915, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 240, 240, 240, 0, "Wollastonite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 3))), // CaSiO3 + Zeolite(916, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 240, 230, 230, 0, "Zeolite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Calcium, 4), new MaterialStack(Silicon, 27), new MaterialStack(Aluminium, 9), new MaterialStack(Water, 28), new MaterialStack(Oxygen, 72))), // NaCa4(Si27Al9)O72 28(H2O) + Kyanite(924, TextureSet.SET_FLINT, 1.0F, 0, 2, 1 | 8, 110, 110, 250, 0, "Kyanite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 5))), // Al2SiO5 + Kaolinite(929, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 245, 235, 235, 0, "Kaolinite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 9))), // Al2Si2O5(OH)4 + Talc(902, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 90, 180, 90, 0, "Talc", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // H2Mg3(SiO3)4 + Soapstone(877, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8, 95, 145, 95, 0, "Soapstone", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // H2Mg3(SiO3)4 + Concrete(947, TextureSet.SET_ROUGH, 1.0F, 0, 1, 1, 100, 100, 100, 0, "Concrete", 0, 0, 300, 0, false, false, 0, 1, 1, Dyes.dyeGray, 0, Arrays.asList(new MaterialStack(Stone, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1))), + IronMagnetic(354, TextureSet.SET_MAGNETIC, 6.0F, 256, 2, 1 | 2 | 64 | 128, 200, 200, 200, 0, "Magnetic Iron", 0, 0, -1, 0, false, false, 4, 51, 50, Dyes.dyeGray, 1, Arrays.asList(new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), + SteelMagnetic(355, TextureSet.SET_MAGNETIC, 6.0F, 512, 2, 1 | 2 | 64 | 128, 128, 128, 128, 0, "Magnetic Steel", 0, 0, 1000, 1000, true, false, 4, 51, 50, Dyes.dyeGray, 1, Arrays.asList(new MaterialStack(Steel, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.ORDO, 1), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), + NeodymiumMagnetic(356, TextureSet.SET_MAGNETIC, 7.0F, 512, 2, 1 | 2 | 64 | 128, 100, 100, 100, 0, "Magnetic Neodymium", 0, 0, 1297, 1297, true, false, 4, 51, 50, Dyes.dyeGray, 1, Arrays.asList(new MaterialStack(Neodymium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.MAGNETO, 3))), + + /** + * Materials which are renamed automatically + */ + @Deprecated IridiumAndSodiumOxide(IridiumSodiumOxide, false), + @Deprecated Palygorskite(FullersEarth, false), + @Deprecated Adamantine(Adamantium, true), + @Deprecated FzDarkIron(DarkIron, true), + @Deprecated FZDarkIron(DarkIron, true), + @Deprecated Ashes(Ash, false), + @Deprecated DarkAshes(DarkAsh, false), + @Deprecated Abyssal(Basalt, false), + @Deprecated Adamant(Adamantium, true), + @Deprecated AluminumBrass(AluminiumBrass, false), + @Deprecated Aluminum(Aluminium, false), + @Deprecated NaturalAluminum(Aluminium, false), + @Deprecated NaturalAluminium(Aluminium, false), + @Deprecated Americum(Americium, false), + @Deprecated Beryl(Emerald, false), // 30,200,200 + @Deprecated BlackGranite(GraniteBlack, false), + @Deprecated CalciumCarbonate(Calcite, false), + @Deprecated CreosoteOil(Creosote, false), + @Deprecated Chromium(Chrome, false), + @Deprecated Diesel(Fuel, false), + @Deprecated Enderpearl(EnderPearl, false), + @Deprecated Endereye(EnderEye, false), + @Deprecated EyeOfEnder(EnderEye, false), + @Deprecated Eyeofender(EnderEye, false), + @Deprecated RawTerrasteelAlloy(TerrasteelAlloyRaw, false), + @Deprecated StrengthenedTerrasteelAlloy(TerrasteelAlloyStrengthened, false), + @Deprecated Flour(Wheat, false), + @Deprecated Meat(MeatRaw, false), + @Deprecated Garnet(GarnetRed, true), + @Deprecated Granite(GraniteBlack, false), + @Deprecated Goethite(BrownLimonite, false), + @Deprecated Kalium(Potassium, false), + @Deprecated Lapislazuli(Lapis, false), + @Deprecated LapisLazuli(Lapis, false), + @Deprecated Monazit(Monazite, false), + @Deprecated Natrium(Sodium, false), + @Deprecated Mythril(Mithril, false), + @Deprecated NitroDiesel(NitroFuel, false), + @Deprecated Naquadriah(Naquadria, false), + @Deprecated Obby(Obsidian, false), + @Deprecated Peridot(Olivine, true), + @Deprecated Phosphorite(Phosphorus, true), + @Deprecated Quarried(Marble, false), + @Deprecated Quicksilver(Mercury, true), + @Deprecated QuickSilver(Mercury, false), + @Deprecated RedRock(Redrock, false), + @Deprecated RefinedIron(Iron, false), + @Deprecated RedGranite(GraniteRed, false), + @Deprecated Sheldonite(Cooperite, false), + @Deprecated Soulsand(SoulSand, false), + @Deprecated SilverLead(Galena, false), + @Deprecated Titan(Titanium, false), + @Deprecated Uran(Uranium, false), + @Deprecated Wolframite(Tungstate, false), + @Deprecated Wolframium(Tungsten, false), + @Deprecated Wolfram(Tungsten, false), + @Deprecated WrougtIron(WroughtIron, false); + + /** + * List of all Materials. + */ + public static final Collection VALUES = new HashSet(Arrays.asList(values())); + public static volatile int VERSION = 508; + + static { + SubTag.ELECTROMAGNETIC_SEPERATION_NEODYMIUM.addTo(Bastnasite, Monazite, Forcicium, Forcillium); + SubTag.ELECTROMAGNETIC_SEPERATION_GOLD.addTo(Magnetite, VanadiumMagnetite, BasalticMineralSand, GraniticMineralSand); + SubTag.ELECTROMAGNETIC_SEPERATION_IRON.addTo(YellowLimonite, BrownLimonite, Pyrite, BandedIron, Nickel, Vermiculite, Glauconite, GlauconiteSand, Pentlandite, Tin, Antimony, Ilmenite, Manganese, Chrome, Chromite, Andradite); + SubTag.BLASTFURNACE_CALCITE_DOUBLE.addTo(Pyrite, YellowLimonite, BasalticMineralSand, GraniticMineralSand); + SubTag.BLASTFURNACE_CALCITE_TRIPLE.addTo(Iron, PigIron, DeepIron, ShadowIron, WroughtIron, MeteoricIron, BrownLimonite); + SubTag.WASHING_MERCURY.addTo(Gold, Silver, Osmium, Mithril, Platinum, Midasium, Cooperite, AstralSilver); + SubTag.WASHING_SODIUMPERSULFATE.addTo(Zinc, Nickel, Copper, Cobalt, Cobaltite, Tetrahedrite); + SubTag.METAL.addTo(AnyIron, AnyCopper, AnyBronze, Metal, Aluminium, Americium, Antimony, Beryllium, Bismuth, Caesium, Cerium, Chrome, Cobalt, Copper, Dysprosium, Erbium, Europium, Gadolinium, Gallium, Gold, Holmium, Indium, Iridium, Iron, Lanthanum, Lead, Lutetium, Magnesium, Manganese, Mercury, Niobium, Molybdenum, Neodymium, Neutronium, Nickel, Osmium, Palladium, Platinum, Plutonium, Plutonium241, Praseodymium, Promethium, Rubidium, Samarium, Scandium, Silicon, Silver, Tantalum, Tellurium, Terbium, Thorium, Thulium, Tin, Titanium, Tungsten, Uranium, Uranium235, Vanadium, Ytterbium, Yttrium, Zinc, Satinspar, Selenite, Microcline, Serpentine, Sylvite, Signalum, Lumium, PhasedIron, PhasedGold, DarkSteel, Terrasteel, TerrasteelAlloyRaw, TerrasteelAlloyStrengthened, TinAlloy, ConductiveIron, ElectricalSteel, EnergeticAlloy, VibrantAlloy, PulsatingIron, Manasteel, DarkThaumium, ElvenElementium, EnrichedCopper, DiamondCopper, Adamantium, Amordrine, Angmallen, Ardite, Aredrite, Atlarus, Blutonium, Carmot, Celenegil, Ceruclase, DarkIron, Desh, Desichalkos, Duranium, ElectrumFlux, Enderium, EnderiumBase, Eximite, FierySteel, Force, Haderoth, Hematite, Hepatizon, HSLA, Infuscolium, InfusedGold, Inolashite, Mercassium, MeteoricIron, MeteoricSteel, Naquadah, NaquadahAlloy, NaquadahEnriched, Naquadria, ObsidianFlux, Orichalcum, Osmonium, Oureclase, Phoenixite, Prometheum, RefinedGlowstone, RefinedObsidian, Sanguinite, Starconium, Tartarite, Thyrium, Tritanium, Vulcanite, Vyroxeres, Yellorium, Zectium, AluminiumBrass, Osmiridium, Sunnarium, AnnealedCopper, BatteryAlloy, Brass, Bronze, ChromiumDioxide, Cupronickel, DeepIron, Electrum, Invar, IronCompressed, Kanthal, Magnalium, Nichrome, NiobiumNitride, NiobiumTitanium, PigIron, SolderingAlloy, StainlessSteel, Steel, Ultimet, VanadiumGallium, WroughtIron, YttriumBariumCuprate, IronWood, Alumite, Manyullyn, ShadowIron, ShadowSteel, Steeleaf, SterlingSilver, RoseGold, BlackBronze, BismuthBronze, BlackSteel, RedSteel, BlueSteel, DamascusSteel, TungstenSteel, AstralSilver, Midasium, Mithril, BlueAlloy, RedAlloy, CobaltBrass, Thaumium, IronMagnetic, SteelMagnetic, NeodymiumMagnetic, Knightmetal); + + SubTag.FOOD.addTo(MeatRaw, MeatCooked, Ice, Water, Salt, Chili, Cocoa, Cheese, Coffee, Chocolate, Milk, Honey, FryingOilHot, FishOil, SeedOil, SeedOilLin, SeedOilHemp, Wheat, Sugar, FreshWater); + + Wood.add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); + WoodSealed.add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.NO_WORKING); + Peanutwood.add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); + LiveRoot.add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MAGICAL, SubTag.MORTAR_GRINDABLE); + IronWood.add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.MAGICAL, SubTag.MORTAR_GRINDABLE); + Steeleaf.add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.MAGICAL, SubTag.MORTAR_GRINDABLE, SubTag.NO_SMELTING); + + MeatRaw.add(SubTag.NO_SMASHING); + MeatCooked.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Snow.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.NO_RECYCLING); + Ice.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.NO_RECYCLING); + Water.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.NO_RECYCLING); + Sulfur.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE); + Saltpeter.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE); + Graphite.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE, SubTag.NO_SMELTING); + + Wheat.add(SubTag.FLAMMABLE, SubTag.MORTAR_GRINDABLE); + Paper.add(SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE, SubTag.PAPER); + Coal.add(SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE); + Charcoal.add(SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE); + Lignite.add(SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE); + + Rubber.add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.BOUNCY, SubTag.STRETCHY); + Plastic.add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.BOUNCY); + + TNT.add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); + Gunpowder.add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); + Glyceryl.add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); + NitroCoalFuel.add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); + NitroFuel.add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); + NitroCarbon.add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); + + Lead.add(SubTag.MORTAR_GRINDABLE, SubTag.SOLDERING_MATERIAL, SubTag.SOLDERING_MATERIAL_BAD); + Tin.add(SubTag.MORTAR_GRINDABLE, SubTag.SOLDERING_MATERIAL); + SolderingAlloy.add(SubTag.MORTAR_GRINDABLE, SubTag.SOLDERING_MATERIAL, SubTag.SOLDERING_MATERIAL_GOOD); + + Cheese.add(SubTag.SMELTING_TO_FLUID); + Sugar.add(SubTag.SMELTING_TO_FLUID); + + Concrete.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.SMELTING_TO_FLUID); + ConstructionFoam.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.EXPLOSIVE, SubTag.NO_SMELTING); + Redstone.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.SMELTING_TO_FLUID, SubTag.PULVERIZING_CINNABAR); + Glowstone.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.SMELTING_TO_FLUID); + Nikolite.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.SMELTING_TO_FLUID); + Teslatite.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.SMELTING_TO_FLUID); + Netherrack.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.FLAMMABLE); + Stone.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.NO_RECYCLING); + Brick.add(SubTag.STONE, SubTag.NO_SMASHING); + NetherBrick.add(SubTag.STONE, SubTag.NO_SMASHING); + Endstone.add(SubTag.STONE, SubTag.NO_SMASHING); + Marble.add(SubTag.STONE, SubTag.NO_SMASHING); + Basalt.add(SubTag.STONE, SubTag.NO_SMASHING); + Redrock.add(SubTag.STONE, SubTag.NO_SMASHING); + Obsidian.add(SubTag.STONE, SubTag.NO_SMASHING); + Flint.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE); + GraniteRed.add(SubTag.STONE, SubTag.NO_SMASHING); + GraniteBlack.add(SubTag.STONE, SubTag.NO_SMASHING); + Salt.add(SubTag.STONE, SubTag.NO_SMASHING); + RockSalt.add(SubTag.STONE, SubTag.NO_SMASHING); + + Sand.add(SubTag.NO_RECYCLING); + + Gold.add(SubTag.MORTAR_GRINDABLE); + Silver.add(SubTag.MORTAR_GRINDABLE); + Iron.add(SubTag.MORTAR_GRINDABLE); + IronMagnetic.add(SubTag.MORTAR_GRINDABLE); + HSLA.add(SubTag.MORTAR_GRINDABLE); + Steel.add(SubTag.MORTAR_GRINDABLE); + SteelMagnetic.add(SubTag.MORTAR_GRINDABLE); + Zinc.add(SubTag.MORTAR_GRINDABLE); + Antimony.add(SubTag.MORTAR_GRINDABLE); + Copper.add(SubTag.MORTAR_GRINDABLE); + AnnealedCopper.add(SubTag.MORTAR_GRINDABLE); + Bronze.add(SubTag.MORTAR_GRINDABLE); + Nickel.add(SubTag.MORTAR_GRINDABLE); + Invar.add(SubTag.MORTAR_GRINDABLE); + Brass.add(SubTag.MORTAR_GRINDABLE); + WroughtIron.add(SubTag.MORTAR_GRINDABLE); + Electrum.add(SubTag.MORTAR_GRINDABLE); + Clay.add(SubTag.MORTAR_GRINDABLE); + + Glass.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_RECYCLING, SubTag.SMELTING_TO_FLUID); + Diamond.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE); + Emerald.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Amethyst.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Tanzanite.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Topaz.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + BlueTopaz.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Amber.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + GreenSapphire.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Sapphire.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Ruby.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + FoolsRuby.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Opal.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Olivine.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Jasper.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + GarnetRed.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + GarnetYellow.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Mimichite.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + CrystalFlux.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Crystal.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Niter.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Apatite.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE); + Lapis.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE); + Sodalite.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE); + Lazurite.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE); + Monazite.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE); + Quartzite.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); + Quartz.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); + SiliconDioxide.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); + Dilithium.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); + NetherQuartz.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); + CertusQuartz.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); + Fluix.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); + //ChargedCertusQuartz .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.QUARTZ); + Phosphorus.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE, SubTag.EXPLOSIVE); + Phosphate.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE, SubTag.EXPLOSIVE); + InfusedAir.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); + InfusedFire.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); + InfusedEarth.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); + InfusedWater.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); + InfusedEntropy.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); + InfusedOrder.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); + InfusedVis.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); + InfusedDull.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); + Vinteum.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); + NetherStar.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); + EnderPearl.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.PEARL); + EnderEye.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.PEARL); + Firestone.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.MAGICAL, SubTag.QUARTZ, SubTag.UNBURNABLE, SubTag.BURNING); + Forcicium.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.MAGICAL); + Forcillium.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.MAGICAL); + Force.add(SubTag.CRYSTAL, SubTag.MAGICAL, SubTag.UNBURNABLE); + Magic.add(SubTag.CRYSTAL, SubTag.MAGICAL, SubTag.UNBURNABLE); + + Primitive.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Basic.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Good.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Advanced.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Data.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Elite.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Master.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Ultimate.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Superconductor.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Infinite.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + + Blaze.add(SubTag.MAGICAL, SubTag.NO_SMELTING, SubTag.SMELTING_TO_FLUID, SubTag.MORTAR_GRINDABLE, SubTag.UNBURNABLE, SubTag.BURNING); + FierySteel.add(SubTag.MAGICAL, SubTag.UNBURNABLE, SubTag.BURNING); + ElvenElementium.add(SubTag.MAGICAL); + DarkThaumium.add(SubTag.MAGICAL); + Thaumium.add(SubTag.MAGICAL); + Enderium.add(SubTag.MAGICAL); + AstralSilver.add(SubTag.MAGICAL); + Midasium.add(SubTag.MAGICAL); + Mithril.add(SubTag.MAGICAL); + + Iron.mOreReRegistrations.add(AnyIron); + PigIron.mOreReRegistrations.add(AnyIron); + WroughtIron.mOreReRegistrations.add(AnyIron); + + Copper.mOreReRegistrations.add(AnyCopper); + AnnealedCopper.mOreReRegistrations.add(AnyCopper); + + Bronze.mOreReRegistrations.add(AnyBronze); + + Peanutwood.setMaceratingInto(Wood); + WoodSealed.setMaceratingInto(Wood); + NetherBrick.setMaceratingInto(Netherrack); + + NeodymiumMagnetic.setSmeltingInto(Neodymium).setMaceratingInto(Neodymium).setArcSmeltingInto(Neodymium); + SteelMagnetic.setSmeltingInto(Steel).setMaceratingInto(Steel).setArcSmeltingInto(Steel); + Iron.setSmeltingInto(Iron).setMaceratingInto(Iron).setArcSmeltingInto(WroughtIron); + AnyIron.setSmeltingInto(Iron).setMaceratingInto(Iron).setArcSmeltingInto(WroughtIron); + PigIron.setSmeltingInto(Iron).setMaceratingInto(Iron).setArcSmeltingInto(WroughtIron); + WroughtIron.setSmeltingInto(Iron).setMaceratingInto(Iron).setArcSmeltingInto(WroughtIron); + IronMagnetic.setSmeltingInto(Iron).setMaceratingInto(Iron).setArcSmeltingInto(WroughtIron); + Copper.setSmeltingInto(Copper).setMaceratingInto(Copper).setArcSmeltingInto(AnnealedCopper); + AnyCopper.setSmeltingInto(Copper).setMaceratingInto(Copper).setArcSmeltingInto(AnnealedCopper); + AnnealedCopper.setSmeltingInto(Copper).setMaceratingInto(Copper).setArcSmeltingInto(AnnealedCopper); + Netherrack.setSmeltingInto(NetherBrick); + MeatRaw.setSmeltingInto(MeatCooked); + Sand.setSmeltingInto(Glass); + Ice.setSmeltingInto(Water); + Snow.setSmeltingInto(Water); + + Mercury.add(SubTag.SMELTING_TO_GEM); + Cinnabar.setDirectSmelting(Mercury).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT).add(SubTag.SMELTING_TO_GEM); + Celestine.setDirectSmelting(Strontium).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); + Tetrahedrite.setDirectSmelting(Copper).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); + Chalcopyrite.setDirectSmelting(Copper).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); + Malachite.setDirectSmelting(Copper).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); + Pentlandite.setDirectSmelting(Nickel).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); + Sphalerite.setDirectSmelting(Zinc).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); + Pyrite.setDirectSmelting(Iron).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); + BasalticMineralSand.setDirectSmelting(Iron).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); + GraniticMineralSand.setDirectSmelting(Iron).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); + YellowLimonite.setDirectSmelting(Iron).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); + BrownLimonite.setDirectSmelting(Iron); + BandedIron.setDirectSmelting(Iron); + Cassiterite.setDirectSmelting(Tin); + CassiteriteSand.setDirectSmelting(Tin); + Chromite.setDirectSmelting(Chrome); + Garnierite.setDirectSmelting(Nickel); + Cobaltite.setDirectSmelting(Cobalt); + Stibnite.setDirectSmelting(Antimony); + Cooperite.setDirectSmelting(Platinum); + Pyrolusite.setDirectSmelting(Manganese); + Magnesite.setDirectSmelting(Magnesium); + Molybdenite.setDirectSmelting(Molybdenum); + + Amber.setOreMultiplier(2).setSmeltingMultiplier(2); + InfusedAir.setOreMultiplier(2).setSmeltingMultiplier(2); + InfusedFire.setOreMultiplier(2).setSmeltingMultiplier(2); + InfusedEarth.setOreMultiplier(2).setSmeltingMultiplier(2); + InfusedWater.setOreMultiplier(2).setSmeltingMultiplier(2); + InfusedEntropy.setOreMultiplier(2).setSmeltingMultiplier(2); + InfusedOrder.setOreMultiplier(2).setSmeltingMultiplier(2); + InfusedVis.setOreMultiplier(2).setSmeltingMultiplier(2); + InfusedDull.setOreMultiplier(2).setSmeltingMultiplier(2); + Salt.setOreMultiplier(2).setSmeltingMultiplier(2); + RockSalt.setOreMultiplier(2).setSmeltingMultiplier(2); + Scheelite.setOreMultiplier(2).setSmeltingMultiplier(2); + Tungstate.setOreMultiplier(2).setSmeltingMultiplier(2); + Cassiterite.setOreMultiplier(2).setSmeltingMultiplier(2); + CassiteriteSand.setOreMultiplier(2).setSmeltingMultiplier(2); + NetherQuartz.setOreMultiplier(2).setSmeltingMultiplier(2); + CertusQuartz.setOreMultiplier(2).setSmeltingMultiplier(2); + //ChargedCertusQuartz .setOreMultiplier( 2).setSmeltingMultiplier( 2); + Phosphorus.setOreMultiplier(3).setSmeltingMultiplier(3); + Saltpeter.setOreMultiplier(4).setSmeltingMultiplier(4); + Apatite.setOreMultiplier(4).setSmeltingMultiplier(4).setByProductMultiplier(2); + Nikolite.setOreMultiplier(5).setSmeltingMultiplier(5); + Teslatite.setOreMultiplier(5).setSmeltingMultiplier(5); + Redstone.setOreMultiplier(5).setSmeltingMultiplier(5); + Glowstone.setOreMultiplier(5).setSmeltingMultiplier(5); + Lapis.setOreMultiplier(6).setSmeltingMultiplier(6).setByProductMultiplier(4); + Sodalite.setOreMultiplier(6).setSmeltingMultiplier(6).setByProductMultiplier(4); + Lazurite.setOreMultiplier(6).setSmeltingMultiplier(6).setByProductMultiplier(4); + Monazite.setOreMultiplier(8).setSmeltingMultiplier(8).setByProductMultiplier(2); + + Plastic.setEnchantmentForTools(Enchantment.knockback, 1); + Rubber.setEnchantmentForTools(Enchantment.knockback, 2); + InfusedAir.setEnchantmentForTools(Enchantment.knockback, 2); + + IronWood.setEnchantmentForTools(Enchantment.fortune, 1); + Steeleaf.setEnchantmentForTools(Enchantment.fortune, 2); + Midasium.setEnchantmentForTools(Enchantment.fortune, 2); + Mithril.setEnchantmentForTools(Enchantment.fortune, 3); + Vinteum.setEnchantmentForTools(Enchantment.fortune, 1); + Thaumium.setEnchantmentForTools(Enchantment.fortune, 2); + DarkThaumium.setEnchantmentForTools(Enchantment.fortune, 3); + Magic.setEnchantmentForTools(Enchantment.fortune, 3); + InfusedWater.setEnchantmentForTools(Enchantment.fortune, 3); + + Flint.setEnchantmentForTools(Enchantment.fireAspect, 1); + DarkIron.setEnchantmentForTools(Enchantment.fireAspect, 2); + Firestone.setEnchantmentForTools(Enchantment.fireAspect, 3); + FierySteel.setEnchantmentForTools(Enchantment.fireAspect, 3); + Pyrotheum.setEnchantmentForTools(Enchantment.fireAspect, 3); + Blaze.setEnchantmentForTools(Enchantment.fireAspect, 3); + InfusedFire.setEnchantmentForTools(Enchantment.fireAspect, 3); + + Force.setEnchantmentForTools(Enchantment.silkTouch, 1); + Amber.setEnchantmentForTools(Enchantment.silkTouch, 1); + EnderPearl.setEnchantmentForTools(Enchantment.silkTouch, 1); + Enderium.setEnchantmentForTools(Enchantment.silkTouch, 1); + NetherStar.setEnchantmentForTools(Enchantment.silkTouch, 1); + InfusedOrder.setEnchantmentForTools(Enchantment.silkTouch, 1); + + BlackBronze.setEnchantmentForTools(Enchantment.smite, 2); + Gold.setEnchantmentForTools(Enchantment.smite, 3); + RoseGold.setEnchantmentForTools(Enchantment.smite, 4); + Platinum.setEnchantmentForTools(Enchantment.smite, 5); + InfusedVis.setEnchantmentForTools(Enchantment.smite, 5); + + Lead.setEnchantmentForTools(Enchantment.baneOfArthropods, 2); + Nickel.setEnchantmentForTools(Enchantment.baneOfArthropods, 2); + Invar.setEnchantmentForTools(Enchantment.baneOfArthropods, 3); + Antimony.setEnchantmentForTools(Enchantment.baneOfArthropods, 3); + BatteryAlloy.setEnchantmentForTools(Enchantment.baneOfArthropods, 4); + Bismuth.setEnchantmentForTools(Enchantment.baneOfArthropods, 4); + BismuthBronze.setEnchantmentForTools(Enchantment.baneOfArthropods, 5); + InfusedEarth.setEnchantmentForTools(Enchantment.baneOfArthropods, 5); + + Iron.setEnchantmentForTools(Enchantment.sharpness, 1); + Bronze.setEnchantmentForTools(Enchantment.sharpness, 1); + Brass.setEnchantmentForTools(Enchantment.sharpness, 2); + HSLA.setEnchantmentForTools(Enchantment.sharpness, 2); + Steel.setEnchantmentForTools(Enchantment.sharpness, 2); + WroughtIron.setEnchantmentForTools(Enchantment.sharpness, 2); + StainlessSteel.setEnchantmentForTools(Enchantment.sharpness, 3); + Knightmetal.setEnchantmentForTools(Enchantment.sharpness, 3); + ShadowIron.setEnchantmentForTools(Enchantment.sharpness, 3); + ShadowSteel.setEnchantmentForTools(Enchantment.sharpness, 4); + BlackSteel.setEnchantmentForTools(Enchantment.sharpness, 4); + RedSteel.setEnchantmentForTools(Enchantment.sharpness, 4); + BlueSteel.setEnchantmentForTools(Enchantment.sharpness, 5); + DamascusSteel.setEnchantmentForTools(Enchantment.sharpness, 5); + InfusedEntropy.setEnchantmentForTools(Enchantment.sharpness, 5); + + InfusedAir.setEnchantmentForArmors(Enchantment.respiration, 3); + + InfusedFire.setEnchantmentForArmors(Enchantment.featherFalling, 4); + + Steeleaf.setEnchantmentForArmors(Enchantment.protection, 2); + Knightmetal.setEnchantmentForArmors(Enchantment.protection, 1); + InfusedEarth.setEnchantmentForArmors(Enchantment.protection, 4); + + InfusedEntropy.setEnchantmentForArmors(Enchantment.thorns, 3); + + InfusedWater.setEnchantmentForArmors(Enchantment.aquaAffinity, 1); + IronWood.setEnchantmentForArmors(Enchantment.aquaAffinity, 1); + + InfusedOrder.setEnchantmentForArmors(Enchantment.projectileProtection, 4); + + InfusedDull.setEnchantmentForArmors(Enchantment.blastProtection, 4); + + InfusedVis.setEnchantmentForArmors(Enchantment.protection, 4); - Blaze .add(SubTag.MAGICAL, SubTag.NO_SMELTING, SubTag.SMELTING_TO_FLUID, SubTag.MORTAR_GRINDABLE, SubTag.UNBURNABLE, SubTag.BURNING); - FierySteel .add(SubTag.MAGICAL, SubTag.UNBURNABLE, SubTag.BURNING); - ElvenElementium .add(SubTag.MAGICAL); - DarkThaumium .add(SubTag.MAGICAL); - Thaumium .add(SubTag.MAGICAL); - Enderium .add(SubTag.MAGICAL); - AstralSilver .add(SubTag.MAGICAL); - Midasium .add(SubTag.MAGICAL); - Mithril .add(SubTag.MAGICAL); - - Iron .mOreReRegistrations.add(AnyIron ); - PigIron .mOreReRegistrations.add(AnyIron ); - WroughtIron .mOreReRegistrations.add(AnyIron ); - - Copper .mOreReRegistrations.add(AnyCopper ); - AnnealedCopper .mOreReRegistrations.add(AnyCopper ); - - Bronze .mOreReRegistrations.add(AnyBronze ); - - Peanutwood .setMaceratingInto(Wood ); - WoodSealed .setMaceratingInto(Wood ); - NetherBrick .setMaceratingInto(Netherrack ); - - NeodymiumMagnetic .setSmeltingInto(Neodymium ).setMaceratingInto(Neodymium ).setArcSmeltingInto(Neodymium ); - SteelMagnetic .setSmeltingInto(Steel ).setMaceratingInto(Steel ).setArcSmeltingInto(Steel ); - Iron .setSmeltingInto(Iron ).setMaceratingInto(Iron ).setArcSmeltingInto(WroughtIron ); - AnyIron .setSmeltingInto(Iron ).setMaceratingInto(Iron ).setArcSmeltingInto(WroughtIron ); - PigIron .setSmeltingInto(Iron ).setMaceratingInto(Iron ).setArcSmeltingInto(WroughtIron ); - WroughtIron .setSmeltingInto(Iron ).setMaceratingInto(Iron ).setArcSmeltingInto(WroughtIron ); - IronMagnetic .setSmeltingInto(Iron ).setMaceratingInto(Iron ).setArcSmeltingInto(WroughtIron ); - Copper .setSmeltingInto(Copper ).setMaceratingInto(Copper ).setArcSmeltingInto(AnnealedCopper ); - AnyCopper .setSmeltingInto(Copper ).setMaceratingInto(Copper ).setArcSmeltingInto(AnnealedCopper ); - AnnealedCopper .setSmeltingInto(Copper ).setMaceratingInto(Copper ).setArcSmeltingInto(AnnealedCopper ); - Netherrack .setSmeltingInto(NetherBrick ); - MeatRaw .setSmeltingInto(MeatCooked ); - Sand .setSmeltingInto(Glass ); - Ice .setSmeltingInto(Water ); - Snow .setSmeltingInto(Water ); - - Mercury .add(SubTag.SMELTING_TO_GEM); - Cinnabar .setDirectSmelting(Mercury ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT).add(SubTag.SMELTING_TO_GEM); - Celestine .setDirectSmelting(Strontium ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); - Tetrahedrite .setDirectSmelting(Copper ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); - Chalcopyrite .setDirectSmelting(Copper ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); - Malachite .setDirectSmelting(Copper ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); - Pentlandite .setDirectSmelting(Nickel ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); - Sphalerite .setDirectSmelting(Zinc ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); - Pyrite .setDirectSmelting(Iron ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); - BasalticMineralSand .setDirectSmelting(Iron ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); - GraniticMineralSand .setDirectSmelting(Iron ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); - YellowLimonite .setDirectSmelting(Iron ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); - BrownLimonite .setDirectSmelting(Iron ); - BandedIron .setDirectSmelting(Iron ); - Cassiterite .setDirectSmelting(Tin ); - CassiteriteSand .setDirectSmelting(Tin ); - Chromite .setDirectSmelting(Chrome ); - Garnierite .setDirectSmelting(Nickel ); - Cobaltite .setDirectSmelting(Cobalt ); - Stibnite .setDirectSmelting(Antimony ); - Cooperite .setDirectSmelting(Platinum ); - Pyrolusite .setDirectSmelting(Manganese ); - Magnesite .setDirectSmelting(Magnesium ); - Molybdenite .setDirectSmelting(Molybdenum ); - - Amber .setOreMultiplier( 2).setSmeltingMultiplier( 2); - InfusedAir .setOreMultiplier( 2).setSmeltingMultiplier( 2); - InfusedFire .setOreMultiplier( 2).setSmeltingMultiplier( 2); - InfusedEarth .setOreMultiplier( 2).setSmeltingMultiplier( 2); - InfusedWater .setOreMultiplier( 2).setSmeltingMultiplier( 2); - InfusedEntropy .setOreMultiplier( 2).setSmeltingMultiplier( 2); - InfusedOrder .setOreMultiplier( 2).setSmeltingMultiplier( 2); - InfusedVis .setOreMultiplier( 2).setSmeltingMultiplier( 2); - InfusedDull .setOreMultiplier( 2).setSmeltingMultiplier( 2); - Salt .setOreMultiplier( 2).setSmeltingMultiplier( 2); - RockSalt .setOreMultiplier( 2).setSmeltingMultiplier( 2); - Scheelite .setOreMultiplier( 2).setSmeltingMultiplier( 2); - Tungstate .setOreMultiplier( 2).setSmeltingMultiplier( 2); - Cassiterite .setOreMultiplier( 2).setSmeltingMultiplier( 2); - CassiteriteSand .setOreMultiplier( 2).setSmeltingMultiplier( 2); - NetherQuartz .setOreMultiplier( 2).setSmeltingMultiplier( 2); - CertusQuartz .setOreMultiplier( 2).setSmeltingMultiplier( 2); - //ChargedCertusQuartz .setOreMultiplier( 2).setSmeltingMultiplier( 2); - Phosphorus .setOreMultiplier( 3).setSmeltingMultiplier( 3); - Saltpeter .setOreMultiplier( 4).setSmeltingMultiplier( 4); - Apatite .setOreMultiplier( 4).setSmeltingMultiplier( 4).setByProductMultiplier(2); - Nikolite .setOreMultiplier( 5).setSmeltingMultiplier( 5); - Teslatite .setOreMultiplier( 5).setSmeltingMultiplier( 5); - Redstone .setOreMultiplier( 5).setSmeltingMultiplier( 5); - Glowstone .setOreMultiplier( 5).setSmeltingMultiplier( 5); - Lapis .setOreMultiplier( 6).setSmeltingMultiplier( 6).setByProductMultiplier(4); - Sodalite .setOreMultiplier( 6).setSmeltingMultiplier( 6).setByProductMultiplier(4); - Lazurite .setOreMultiplier( 6).setSmeltingMultiplier( 6).setByProductMultiplier(4); - Monazite .setOreMultiplier( 8).setSmeltingMultiplier( 8).setByProductMultiplier(2); - - Plastic .setEnchantmentForTools(Enchantment.knockback, 1); - Rubber .setEnchantmentForTools(Enchantment.knockback, 2); - InfusedAir .setEnchantmentForTools(Enchantment.knockback, 2); - - IronWood .setEnchantmentForTools(Enchantment.fortune, 1); - Steeleaf .setEnchantmentForTools(Enchantment.fortune, 2); - Midasium .setEnchantmentForTools(Enchantment.fortune, 2); - Mithril .setEnchantmentForTools(Enchantment.fortune, 3); - Vinteum .setEnchantmentForTools(Enchantment.fortune, 1); - Thaumium .setEnchantmentForTools(Enchantment.fortune, 2); - DarkThaumium .setEnchantmentForTools(Enchantment.fortune, 3); - Magic .setEnchantmentForTools(Enchantment.fortune, 3); - InfusedWater .setEnchantmentForTools(Enchantment.fortune, 3); - - Flint .setEnchantmentForTools(Enchantment.fireAspect, 1); - DarkIron .setEnchantmentForTools(Enchantment.fireAspect, 2); - Firestone .setEnchantmentForTools(Enchantment.fireAspect, 3); - FierySteel .setEnchantmentForTools(Enchantment.fireAspect, 3); - Pyrotheum .setEnchantmentForTools(Enchantment.fireAspect, 3); - Blaze .setEnchantmentForTools(Enchantment.fireAspect, 3); - InfusedFire .setEnchantmentForTools(Enchantment.fireAspect, 3); - - Force .setEnchantmentForTools(Enchantment.silkTouch, 1); - Amber .setEnchantmentForTools(Enchantment.silkTouch, 1); - EnderPearl .setEnchantmentForTools(Enchantment.silkTouch, 1); - Enderium .setEnchantmentForTools(Enchantment.silkTouch, 1); - NetherStar .setEnchantmentForTools(Enchantment.silkTouch, 1); - InfusedOrder .setEnchantmentForTools(Enchantment.silkTouch, 1); - - BlackBronze .setEnchantmentForTools(Enchantment.smite, 2); - Gold .setEnchantmentForTools(Enchantment.smite, 3); - RoseGold .setEnchantmentForTools(Enchantment.smite, 4); - Platinum .setEnchantmentForTools(Enchantment.smite, 5); - InfusedVis .setEnchantmentForTools(Enchantment.smite, 5); - - Lead .setEnchantmentForTools(Enchantment.baneOfArthropods, 2); - Nickel .setEnchantmentForTools(Enchantment.baneOfArthropods, 2); - Invar .setEnchantmentForTools(Enchantment.baneOfArthropods, 3); - Antimony .setEnchantmentForTools(Enchantment.baneOfArthropods, 3); - BatteryAlloy .setEnchantmentForTools(Enchantment.baneOfArthropods, 4); - Bismuth .setEnchantmentForTools(Enchantment.baneOfArthropods, 4); - BismuthBronze .setEnchantmentForTools(Enchantment.baneOfArthropods, 5); - InfusedEarth .setEnchantmentForTools(Enchantment.baneOfArthropods, 5); - - Iron .setEnchantmentForTools(Enchantment.sharpness, 1); - Bronze .setEnchantmentForTools(Enchantment.sharpness, 1); - Brass .setEnchantmentForTools(Enchantment.sharpness, 2); - HSLA .setEnchantmentForTools(Enchantment.sharpness, 2); - Steel .setEnchantmentForTools(Enchantment.sharpness, 2); - WroughtIron .setEnchantmentForTools(Enchantment.sharpness, 2); - StainlessSteel .setEnchantmentForTools(Enchantment.sharpness, 3); - Knightmetal .setEnchantmentForTools(Enchantment.sharpness, 3); - ShadowIron .setEnchantmentForTools(Enchantment.sharpness, 3); - ShadowSteel .setEnchantmentForTools(Enchantment.sharpness, 4); - BlackSteel .setEnchantmentForTools(Enchantment.sharpness, 4); - RedSteel .setEnchantmentForTools(Enchantment.sharpness, 4); - BlueSteel .setEnchantmentForTools(Enchantment.sharpness, 5); - DamascusSteel .setEnchantmentForTools(Enchantment.sharpness, 5); - InfusedEntropy .setEnchantmentForTools(Enchantment.sharpness, 5); - - InfusedAir .setEnchantmentForArmors(Enchantment.respiration, 3); - - InfusedFire .setEnchantmentForArmors(Enchantment.featherFalling, 4); - - Steeleaf .setEnchantmentForArmors(Enchantment.protection, 2); - Knightmetal .setEnchantmentForArmors(Enchantment.protection, 1); - InfusedEarth .setEnchantmentForArmors(Enchantment.protection, 4); - - InfusedEntropy .setEnchantmentForArmors(Enchantment.thorns, 3); - - InfusedWater .setEnchantmentForArmors(Enchantment.aquaAffinity, 1); - IronWood .setEnchantmentForArmors(Enchantment.aquaAffinity, 1); - - InfusedOrder .setEnchantmentForArmors(Enchantment.projectileProtection, 4); - - InfusedDull .setEnchantmentForArmors(Enchantment.blastProtection, 4); - - InfusedVis .setEnchantmentForArmors(Enchantment.protection, 4); - /* Stone .setSpecialEffect(SpecialToolEffect.Crushing, 1); GraniteRed .setSpecialEffect(SpecialToolEffect.Crushing, 2); GraniteBlack .setSpecialEffect(SpecialToolEffect.Crushing, 2); Adamantium .setSpecialEffect(SpecialToolEffect.Crushing, 3); - + DeepIron .setSpecialEffect(SpecialToolEffect.Magnetic, 1); MeteoricIron .setSpecialEffect(SpecialToolEffect.Magnetic, 2); MeteoricSteel .setSpecialEffect(SpecialToolEffect.Magnetic, 3); @@ -1048,621 +1051,629 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { NeodymiumMagnetic .setSpecialEffect(SpecialToolEffect.Magnetic, 3); */ - FryingOilHot .setHeatDamage(1.0F); - Lava .setHeatDamage(3.0F); - Firestone .setHeatDamage(5.0F); - Pyrotheum .setHeatDamage(5.0F); - - Chalcopyrite .addOreByProducts(Pyrite , Cobalt , Cadmium , Gold ); - Sphalerite .addOreByProducts(GarnetYellow , Cadmium , Gallium , Zinc ); - MeteoricIron .addOreByProducts(Iron , Nickel , Iridium , Platinum ); - GlauconiteSand .addOreByProducts(Sodium , Aluminium , Iron ); - Glauconite .addOreByProducts(Sodium , Aluminium , Iron ); - Vermiculite .addOreByProducts(Iron , Aluminium , Magnesium ); - FullersEarth .addOreByProducts(Aluminium , Silicon , Magnesium ); - Bentonite .addOreByProducts(Aluminium , Calcium , Magnesium ); - Uraninite .addOreByProducts(Uranium , Thorium , Plutonium ); - Pitchblende .addOreByProducts(Thorium , Uranium , Lead ); - Galena .addOreByProducts(Sulfur , Silver , Lead ); - Lapis .addOreByProducts(Lazurite , Sodalite , Pyrite ); - Pyrite .addOreByProducts(Sulfur , Phosphorus , Iron ); - Copper .addOreByProducts(Cobalt , Gold , Nickel ); - Nickel .addOreByProducts(Cobalt , Platinum , Iron ); - GarnetRed .addOreByProducts(Spessartine , Pyrope , Almandine ); - GarnetYellow .addOreByProducts(Andradite , Grossular , Uvarovite ); - Cooperite .addOreByProducts(Palladium , Nickel , Iridium ); - Cinnabar .addOreByProducts(Redstone , Sulfur , Glowstone ); - Tantalite .addOreByProducts(Manganese , Niobium , Tantalum ); - Pollucite .addOreByProducts(Caesium , Aluminium , Rubidium ); - Chrysotile .addOreByProducts(Asbestos , Silicon , Magnesium ); - Asbestos .addOreByProducts(Asbestos , Silicon , Magnesium ); - Pentlandite .addOreByProducts(Iron , Sulfur , Cobalt ); - Uranium .addOreByProducts(Lead , Plutonium , Thorium ); - Scheelite .addOreByProducts(Manganese , Molybdenum , Calcium ); - Tungstate .addOreByProducts(Manganese , Silver , Lithium ); - Bauxite .addOreByProducts(Grossular , Titanium , Gallium ); - QuartzSand .addOreByProducts(CertusQuartz , Quartzite , Barite ); - Quartzite .addOreByProducts(CertusQuartz , Barite ); - CertusQuartz .addOreByProducts(Quartzite , Barite ); - //ChargedCertusQuartz .addOreByProducts(CertusQuartz , Quartzite , Barite ); - Redstone .addOreByProducts(Cinnabar , RareEarth , Glowstone ); - Monazite .addOreByProducts(Thorium , Neodymium , RareEarth ); - Forcicium .addOreByProducts(Thorium , Neodymium , RareEarth ); - Forcillium .addOreByProducts(Thorium , Neodymium , RareEarth ); - Malachite .addOreByProducts(Copper , BrownLimonite , Calcite ); - YellowLimonite .addOreByProducts(Nickel , BrownLimonite , Cobalt ); - BrownLimonite .addOreByProducts(Malachite , YellowLimonite ); - Neodymium .addOreByProducts(Monazite , RareEarth ); - Bastnasite .addOreByProducts(Neodymium , RareEarth ); - Glowstone .addOreByProducts(Redstone , Gold ); - Zinc .addOreByProducts(Tin , Gallium ); - Tungsten .addOreByProducts(Manganese , Molybdenum ); - Diatomite .addOreByProducts(BandedIron , Sapphire ); - Iron .addOreByProducts(Nickel , Tin ); - Lepidolite .addOreByProducts(Lithium , Caesium ); - Gold .addOreByProducts(Copper , Nickel ); - Tin .addOreByProducts(Iron , Zinc ); - Antimony .addOreByProducts(Zinc , Iron ); - Silver .addOreByProducts(Lead , Sulfur ); - Lead .addOreByProducts(Silver , Sulfur ); - Thorium .addOreByProducts(Uranium , Lead ); - Plutonium .addOreByProducts(Uranium , Lead ); - Electrum .addOreByProducts(Gold , Silver ); - Bronze .addOreByProducts(Copper , Tin ); - Brass .addOreByProducts(Copper , Zinc ); - Coal .addOreByProducts(Lignite , Thorium ); - Ilmenite .addOreByProducts(Iron , Titanium ); - Manganese .addOreByProducts(Chrome , Iron ); - Sapphire .addOreByProducts(Aluminium , GreenSapphire ); - GreenSapphire .addOreByProducts(Aluminium , Sapphire ); - Platinum .addOreByProducts(Nickel , Iridium ); - Emerald .addOreByProducts(Beryllium , Aluminium ); - Olivine .addOreByProducts(Pyrope , Magnesium ); - Chrome .addOreByProducts(Iron , Magnesium ); - Chromite .addOreByProducts(Iron , Magnesium ); - Tetrahedrite .addOreByProducts(Antimony , Zinc ); - GarnetSand .addOreByProducts(GarnetRed , GarnetYellow ); - Magnetite .addOreByProducts(Iron , Gold ); - GraniticMineralSand .addOreByProducts(GraniteBlack , Magnetite ); - BasalticMineralSand .addOreByProducts(Basalt , Magnetite ); - Basalt .addOreByProducts(Olivine , DarkAsh ); - Celestine .addOreByProducts(Strontium , Sulfur ); - VanadiumMagnetite .addOreByProducts(Magnetite , Vanadium ); - Lazurite .addOreByProducts(Sodalite , Lapis ); - Sodalite .addOreByProducts(Lazurite , Lapis ); - Spodumene .addOreByProducts(Aluminium , Lithium ); - Ruby .addOreByProducts(Chrome , GarnetRed ); - Phosphorus .addOreByProducts(Apatite , Phosphate ); - Iridium .addOreByProducts(Platinum , Osmium ); - Pyrope .addOreByProducts(GarnetRed , Magnesium ); - Almandine .addOreByProducts(GarnetRed , Aluminium ); - Spessartine .addOreByProducts(GarnetRed , Manganese ); - Andradite .addOreByProducts(GarnetYellow , Iron ); - Grossular .addOreByProducts(GarnetYellow , Calcium ); - Uvarovite .addOreByProducts(GarnetYellow , Chrome ); - Calcite .addOreByProducts(Andradite , Malachite ); - NaquadahEnriched .addOreByProducts(Naquadah , Naquadria ); - Naquadah .addOreByProducts(NaquadahEnriched ); - Pyrolusite .addOreByProducts(Manganese ); - Molybdenite .addOreByProducts(Molybdenum ); - Stibnite .addOreByProducts(Antimony ); - Garnierite .addOreByProducts(Nickel ); - Lignite .addOreByProducts(Coal ); - Diamond .addOreByProducts(Graphite ); - Beryllium .addOreByProducts(Emerald ); - Apatite .addOreByProducts(Phosphorus ); - Nikolite .addOreByProducts(Diamond ); - Teslatite .addOreByProducts(Diamond ); - Magnesite .addOreByProducts(Magnesium ); - NetherQuartz .addOreByProducts(Netherrack ); - PigIron .addOreByProducts(Iron ); - DeepIron .addOreByProducts(Iron ); - ShadowIron .addOreByProducts(Iron ); - DarkIron .addOreByProducts(Iron ); - MeteoricIron .addOreByProducts(Iron ); - Steel .addOreByProducts(Iron ); - HSLA .addOreByProducts(Iron ); - Mithril .addOreByProducts(Platinum ); - Midasium .addOreByProducts(Gold ); - AstralSilver .addOreByProducts(Silver ); - Graphite .addOreByProducts(Carbon ); - Netherrack .addOreByProducts(Sulfur ); - Flint .addOreByProducts(Obsidian ); - Cobaltite .addOreByProducts(Cobalt ); - Cobalt .addOreByProducts(Cobaltite ); - Sulfur .addOreByProducts(Sulfur ); - Saltpeter .addOreByProducts(Saltpeter ); - Endstone .addOreByProducts(Helium_3 ); - Osmium .addOreByProducts(Iridium ); - Magnesium .addOreByProducts(Olivine ); - Aluminium .addOreByProducts(Bauxite ); - Titanium .addOreByProducts(Almandine ); - Obsidian .addOreByProducts(Olivine ); - Ash .addOreByProducts(Carbon ); - DarkAsh .addOreByProducts(Carbon ); - Redrock .addOreByProducts(Clay ); - Marble .addOreByProducts(Calcite ); - Clay .addOreByProducts(Clay ); - Cassiterite .addOreByProducts(Tin ); - CassiteriteSand .addOreByProducts(Tin ); - GraniteBlack .addOreByProducts(Biotite ); - GraniteRed .addOreByProducts(PotassiumFeldspar ); - Phosphate .addOreByProducts(Phosphor ); - Phosphor .addOreByProducts(Phosphate ); - Jade .addOreByProducts(Jade ); - Tanzanite .addOreByProducts(Opal ); - Opal .addOreByProducts(Tanzanite ); - Amethyst .addOreByProducts(Amethyst ); - Jasper .addOreByProducts(FoolsRuby ); - FoolsRuby .addOreByProducts(Jasper ); - Amber .addOreByProducts(Amber ); - Topaz .addOreByProducts(BlueTopaz ); - BlueTopaz .addOreByProducts(Topaz ); - Niter .addOreByProducts(Saltpeter ); - Vinteum .addOreByProducts(Vinteum ); - Force .addOreByProducts(Force ); - Dilithium .addOreByProducts(Dilithium ); - Neutronium .addOreByProducts(Neutronium ); - Lithium .addOreByProducts(Lithium ); - Silicon .addOreByProducts(SiliconDioxide ); - Salt .addOreByProducts(RockSalt ); - RockSalt .addOreByProducts(Salt ); - - Glue.mChemicalFormula = "No Horses were harmed for the Production"; - UUAmplifier.mChemicalFormula = "Accelerates the Mass Fabricator"; - LiveRoot.mChemicalFormula = ""; - WoodSealed.mChemicalFormula = ""; - Wood.mChemicalFormula = ""; - FoolsRuby.mChemicalFormula = Ruby.mChemicalFormula; - - // Naquadah is green when molten, so this reflects the Color change approciately - Naquadah.mMoltenRGBa[0] = 0; - Naquadah.mMoltenRGBa[1] = 255; - Naquadah.mMoltenRGBa[2] = 0; - Naquadah.mMoltenRGBa[3] = 0; - NaquadahEnriched.mMoltenRGBa[0] = 64; - NaquadahEnriched.mMoltenRGBa[1] = 255; - NaquadahEnriched.mMoltenRGBa[2] = 64; - NaquadahEnriched.mMoltenRGBa[3] = 0; - Naquadria.mMoltenRGBa[0] = 128; - Naquadria.mMoltenRGBa[1] = 255; - Naquadria.mMoltenRGBa[2] = 128; - Naquadria.mMoltenRGBa[3] = 0; - - NaquadahEnriched.mChemicalFormula = "Nq+"; - Naquadah.mChemicalFormula = "Nq"; - Naquadria.mChemicalFormula = "NqX"; - } - - public static Materials get(String aMaterialName) { - Object tObject = GT_Utility.getFieldContent(Materials.class, aMaterialName, false, false); - if (tObject != null && tObject instanceof Materials) return (Materials)tObject; - return _NULL; - } - - public static Materials getRealMaterial(String aMaterialName) { - return get(aMaterialName).mMaterialInto; - } - - /** - * Called in preInit with the Config to set Values. - * @param aConfiguration - */ - public static void init(GT_Config aConfiguration) { - for (Materials tMaterial : VALUES) { - String tString = tMaterial.toString().toLowerCase(); - tMaterial.mHeatDamage = (float)aConfiguration.get(ConfigCategories.Materials.heatdamage, tString, tMaterial.mHeatDamage); - if (tMaterial.mBlastFurnaceRequired) tMaterial.mBlastFurnaceRequired = aConfiguration.get(ConfigCategories.Materials.blastfurnacerequirements, tString, true); - if (tMaterial.mBlastFurnaceRequired && aConfiguration.get(ConfigCategories.Materials.blastinductionsmelter, tString, tMaterial.mBlastFurnaceTemp < 1500)) GT_ModHandler.ThermalExpansion.addSmelterBlastOre(tMaterial); - tMaterial.mHandleMaterial = (tMaterial==Desh?tMaterial.mHandleMaterial:tMaterial==Diamond||tMaterial==Thaumium?Wood:tMaterial.contains(SubTag.BURNING)?Blaze:tMaterial.contains(SubTag.MAGICAL)&&tMaterial.contains(SubTag.CRYSTAL)&&Loader.isModLoaded(MOD_ID_TC)?Thaumium:tMaterial.getMass()>Element.Tc.getMass()*2?TungstenSteel:tMaterial.getMass()>Element.Tc.getMass()?Steel:Wood); - } - } - - public boolean isRadioactive() { - if (mElement != null) return mElement.mHalfLifeSeconds >= 0; - for (MaterialStack tMaterial : mMaterialList) if (tMaterial.mMaterial.isRadioactive()) return true; - return false; - } - - public long getProtons() { - if (mElement != null) return mElement.getProtons(); - if (mMaterialList.size() <= 0) return Element.Tc.getProtons(); - long rAmount = 0, tAmount = 0; - for (MaterialStack tMaterial : mMaterialList) { - tAmount += tMaterial.mAmount; - rAmount += tMaterial.mAmount * tMaterial.mMaterial.getProtons(); - } - return (getDensity() * rAmount) / (tAmount * M); - } - - public long getNeutrons() { - if (mElement != null) return mElement.getNeutrons(); - if (mMaterialList.size() <= 0) return Element.Tc.getNeutrons(); - long rAmount = 0, tAmount = 0; - for (MaterialStack tMaterial : mMaterialList) { - tAmount += tMaterial.mAmount; - rAmount += tMaterial.mAmount * tMaterial.mMaterial.getNeutrons(); - } - return (getDensity() * rAmount) / (tAmount * M); - } - - public long getMass() { - if (mElement != null) return mElement.getMass(); - if (mMaterialList.size() <= 0) return Element.Tc.getMass(); - long rAmount = 0, tAmount = 0; - for (MaterialStack tMaterial : mMaterialList) { - tAmount += tMaterial.mAmount; - rAmount += tMaterial.mAmount * tMaterial.mMaterial.getMass(); - } - return (getDensity() * rAmount) / (tAmount * M); - } - - public long getDensity() { - return mDensity; - } - - public String getToolTip() { - return getToolTip(1, false); - } - - public String getToolTip(boolean aShowQuestionMarks) { - return getToolTip(1, aShowQuestionMarks); - } - - public String getToolTip(long aMultiplier) { - return getToolTip(aMultiplier, false); - } - - public String getToolTip(long aMultiplier, boolean aShowQuestionMarks) { - if (!aShowQuestionMarks && mChemicalFormula.equals("?")) return ""; - if (aMultiplier >= M * 2 && !mMaterialList.isEmpty()) { - return ((mElement != null || (mMaterialList.size() < 2 && mMaterialList.get(0).mAmount == 1))?mChemicalFormula:"(" + mChemicalFormula + ")") + aMultiplier; - } - return mChemicalFormula; - } - - private final ArrayList mMaterialItems = new ArrayList(); - - /** - * Adds an ItemStack to this Material. - */ - public Materials add(ItemStack aStack) { - if (aStack != null && !contains(aStack)) mMaterialItems.add(aStack); - return this; - } - - /** - * This is used to determine if any of the ItemStacks belongs to this Material. - */ - public boolean contains(ItemStack... aStacks) { - if (aStacks == null || aStacks.length <= 0) return false; - for (ItemStack tStack : mMaterialItems) for (ItemStack aStack : aStacks) if (GT_Utility.areStacksEqual(aStack, tStack, !tStack.hasTagCompound())) return true; - return false; - } - - /** - * This is used to determine if an ItemStack belongs to this Material. - */ - public boolean remove(ItemStack aStack) { - if (aStack == null) return false; - boolean temp = false; - for (int i = 0; i < mMaterialItems.size(); i++) if (GT_Utility.areStacksEqual(aStack, mMaterialItems.get(i))) { - mMaterialItems.remove(i--); - temp = true; - } - return temp; - } - - private final Collection mSubTags = new HashSet(); - - /** - * Adds a SubTag to this Material - */ - @Override - public ISubTagContainer add(SubTag... aTags) { - if (aTags != null) for (SubTag aTag : aTags) if (aTag != null && !contains(aTag)) { - aTag.addContainerToList(this); - mSubTags.add(aTag); - } - return this; - } - - /** - * If this Material has this exact SubTag - */ - @Override - public boolean contains(SubTag aTag) { - return mSubTags.contains(aTag); - } - - /** - * Removes a SubTag from this Material - */ - @Override - public boolean remove(SubTag aTag) { - return mSubTags.remove(aTag); - } - - /** - * Sets the Heat Damage for this Material (negative = frost) - */ - public Materials setHeatDamage(float aHeatDamage) { - mHeatDamage = aHeatDamage; - return this; - } - - /** - * Adds a Material to the List of Byproducts when grinding this Ore. - * Is used for more precise Ore grinding, so that it is possible to choose between certain kinds of Materials. - */ - public Materials addOreByProduct(Materials aMaterial) { - if (!mOreByProducts.contains(aMaterial.mMaterialInto)) mOreByProducts.add(aMaterial.mMaterialInto); - return this; - } - - /** - * Adds multiple Materials to the List of Byproducts when grinding this Ore. - * Is used for more precise Ore grinding, so that it is possible to choose between certain kinds of Materials. - */ - public Materials addOreByProducts(Materials... aMaterials) { - for (Materials tMaterial : aMaterials) if (tMaterial != null) addOreByProduct(tMaterial); - return this; - } - - /** - * If this Ore gives multiple drops of its Main Material. - * Lapis Ore for example gives about 6 drops. - */ - public Materials setOreMultiplier(int aOreMultiplier) { - if (aOreMultiplier > 0) mOreMultiplier = aOreMultiplier; - return this; - } - - /** - * If this Ore gives multiple drops of its Byproduct Material. - */ - public Materials setByProductMultiplier(int aByProductMultiplier) { - if (aByProductMultiplier > 0) mByProductMultiplier = aByProductMultiplier; - return this; - } - - /** - * If this Ore gives multiple drops of its Main Material. - * Lapis Ore for example gives about 6 drops. - */ - public Materials setSmeltingMultiplier(int aSmeltingMultiplier) { - if (aSmeltingMultiplier > 0) mSmeltingMultiplier = aSmeltingMultiplier; - return this; - } - - /** - * This Ore should be smolten directly into an Ingot of this Material instead of an Ingot of itself. - */ - public Materials setDirectSmelting(Materials aMaterial) { - if (aMaterial != null) mDirectSmelting = aMaterial.mMaterialInto.mDirectSmelting; - return this; - } - - /** - * This Material should be the Main Material this Ore gets ground into. - * Example, Chromite giving Chrome or Tungstate giving Tungsten. - */ - public Materials setOreReplacement(Materials aMaterial) { - if (aMaterial != null) mOreReplacement = aMaterial.mMaterialInto.mOreReplacement; - return this; - } - - /** - * This Material smelts always into an instance of aMaterial. Used for Magnets. - */ - public Materials setSmeltingInto(Materials aMaterial) { - if (aMaterial != null) mSmeltInto = aMaterial.mMaterialInto.mSmeltInto; - return this; - } - - /** - * This Material arc smelts always into an instance of aMaterial. Used for Wrought Iron. - */ - public Materials setArcSmeltingInto(Materials aMaterial) { - if (aMaterial != null) mArcSmeltInto = aMaterial.mMaterialInto.mArcSmeltInto; - return this; - } - - /** - * This Material macerates always into an instance of aMaterial. - */ - public Materials setMaceratingInto(Materials aMaterial) { - if (aMaterial != null) mMacerateInto = aMaterial.mMaterialInto.mMacerateInto; - return this; - } - - public Materials setEnchantmentForTools(Enchantment aEnchantment, int aEnchantmentLevel) { - mEnchantmentTools = aEnchantment; - mEnchantmentToolsLevel = (byte)aEnchantmentLevel; - return this; - } - - public Materials setEnchantmentForArmors(Enchantment aEnchantment, int aEnchantmentLevel) { - mEnchantmentArmors = aEnchantment; - mEnchantmentArmorsLevel = (byte)aEnchantmentLevel; - return this; - } - - /** - * This Array can be changed dynamically by a Tick Handler in order to get a glowing Effect on all GT Meta Items out of this Material. - */ - public final short[] mRGBa = new short[] {255, 255, 255, 0}, mMoltenRGBa = new short[] {255, 255, 255, 0}; - - public Enchantment mEnchantmentTools = null, mEnchantmentArmors = null; - public byte mEnchantmentToolsLevel = 0, mEnchantmentArmorsLevel = 0; - public final TextureSet mIconSet; - public boolean mBlastFurnaceRequired = false; - public float mToolSpeed = 1.0F, mHeatDamage = 0.0F; - public String mChemicalFormula = "?", mDefaultLocalName = "null"; - public Dyes mColor = Dyes._NULL; - public short mMeltingPoint = 0, mBlastFurnaceTemp = 0; - public int mTypes = 0, mDurability = 16, mFuelPower = 0, mFuelType = 0, mExtraData = 0, mOreValue = 0, mOreMultiplier = 1, mByProductMultiplier = 1, mSmeltingMultiplier = 1; - public long mDensity = M; - public Element mElement = null; - public Materials mDirectSmelting = this, mOreReplacement = this, mMacerateInto = this, mSmeltInto = this, mArcSmeltInto = this, mHandleMaterial = this; - public byte mToolQuality = 0; - public final int mMetaItemSubID; - public final boolean mUnificatable; - public final Materials mMaterialInto; - public final List mMaterialList = new ArrayList(); - public final List mOreByProducts = new ArrayList(), mOreReRegistrations = new ArrayList(); - public final List mAspects = new ArrayList(); - public Fluid mSolid = null, mFluid = null, mGas = null, mPlasma = null; - /** This Fluid is used as standard Unit for Molten Materials. 1296 is a Molten Block, what means 144 is one Material Unit worth */ - public Fluid mStandardMoltenFluid = null; - - public FluidStack getSolid(long aAmount) { - if (mSolid == null) return null; - return new GT_FluidStack(mSolid, (int)aAmount); - } - - public FluidStack getFluid(long aAmount) { - if (mFluid == null) return null; - return new GT_FluidStack(mFluid, (int)aAmount); - } - - public FluidStack getGas(long aAmount) { - if (mGas == null) return null; - return new GT_FluidStack(mGas, (int)aAmount); - } - - public FluidStack getPlasma(long aAmount) { - if (mPlasma == null) return null; - return new GT_FluidStack(mPlasma, (int)aAmount); - } - - public FluidStack getMolten(long aAmount) { - if (mStandardMoltenFluid == null) return null; - return new GT_FluidStack(mStandardMoltenFluid, (int)aAmount); - } - - private Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aToolDurability, int aToolQuality, boolean aUnificatable) { - mUnificatable = aUnificatable; - mMaterialInto = this; - mMetaItemSubID = aMetaItemSubID; - mToolQuality = (byte)aToolQuality; - mDurability = aToolDurability; - mToolSpeed = aToolSpeed; - mIconSet = aIconSet; - if (aMetaItemSubID >= 0) { - if (GregTech_API.sGeneratedMaterials[aMetaItemSubID] == null) { - GregTech_API.sGeneratedMaterials[aMetaItemSubID] = this; - } else { - throw new IllegalArgumentException("The Index " + aMetaItemSubID + " is already used!"); - } - } - } - - private Materials(Materials aMaterialInto, boolean aReRegisterIntoThis) { - mUnificatable = false; - mDefaultLocalName = aMaterialInto.mDefaultLocalName; - mMaterialInto = aMaterialInto.mMaterialInto; - if (aReRegisterIntoThis) mMaterialInto.mOreReRegistrations.add(this); - mChemicalFormula = aMaterialInto.mChemicalFormula; - mMetaItemSubID = -1; - mIconSet = TextureSet.SET_NONE; - } - - /** - * @param aMetaItemSubID the Sub-ID used in my own MetaItems. Range 0-1000. -1 for no Material - * @param aTypes which kind of Items should be generated. Bitmask as follows: - * 1 = Dusts of all kinds. - * 2 = Dusts, Ingots, Plates, Rods/Sticks, Machine Components and other Metal specific things. - * 4 = Dusts, Gems, Plates, Lenses (if transparent). - * 8 = Dusts, Impure Dusts, crushed Ores, purified Ores, centrifuged Ores etc. - * 16 = Cells - * 32 = Plasma Cells - * 64 = Tool Heads - * 128 = Gears - * @param aR, aG, aB Color of the Material 0-255 each. - * @param aA transparency of the Material Texture. 0 = fully visible, 255 = Invisible. - * @param aLocalName The Name used as Default for localization. - * @param aFuelType Type of Generator to get Energy from this Material. - * @param aFuelPower EU generated. Will be multiplied by 1000, also additionally multiplied by 2 for Gems. - * @param aAmplificationValue Amount of UUM amplifier gotten from this. - * @param aUUMEnergy Amount of EU needed to shape the UUM into this Material. - * @param aMeltingPoint Used to determine the smelting Costs in Furnii. - * @param aBlastFurnaceTemp Used to determine the needed Heat capactiy Costs in Blast Furnii. - * @param aBlastFurnaceRequired If this requires a Blast Furnace. - * @param aColor Vanilla MC Wool Color which comes the closest to this. - */ - private Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aToolDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor) { - this(aMetaItemSubID, aIconSet, aToolSpeed, aToolDurability, aToolQuality, true); - mDefaultLocalName = aLocalName; - mMeltingPoint = (short)aMeltingPoint; - mBlastFurnaceTemp = (short)aBlastFurnaceTemp; - mBlastFurnaceRequired = aBlastFurnaceRequired; - if (aTransparent) add(SubTag.TRANSPARENT); - mFuelPower = aFuelPower; - mFuelType = aFuelType; - mOreValue = aOreValue; - mDensity = (M * aDensityMultiplier) / aDensityDivider; - mColor = aColor==null?Dyes._NULL:aColor; - if (mColor != null) add(SubTag.HAS_COLOR); - mRGBa[0] = mMoltenRGBa[0] = (short)aR; - mRGBa[1] = mMoltenRGBa[1] = (short)aG; - mRGBa[2] = mMoltenRGBa[2] = (short)aB; - mRGBa[3] = mMoltenRGBa[3] = (short)aA; - mTypes = aTypes; - if ((mTypes & 2) != 0) add(SubTag.SMELTING_TO_FLUID); - } - - private Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aToolDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, List aAspects) { - this(aMetaItemSubID, aIconSet, aToolSpeed, aToolDurability, aToolQuality, aTypes, aR, aG, aB, aA, aLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor); - mAspects.addAll(aAspects); - } - - /** - * @param aElement The Element Enum represented by this Material - */ - private Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aToolDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, Element aElement, List aAspects) { - this(aMetaItemSubID, aIconSet, aToolSpeed, aToolDurability, aToolQuality, aTypes, aR, aG, aB, aA, aLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor); - mElement = aElement; - mElement.mLinkedMaterials.add(this); - if (aElement == Element._NULL) { - mChemicalFormula = "Empty"; - } else { - mChemicalFormula = aElement.toString(); - mChemicalFormula = mChemicalFormula.replaceAll("_", "-"); - } - mAspects.addAll(aAspects); - } - - private Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aToolDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, int aExtraData, List aMaterialList) { - this(aMetaItemSubID, aIconSet, aToolSpeed, aToolDurability, aToolQuality, aTypes, aR, aG, aB, aA, aLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor, aExtraData, aMaterialList, null); - } - - private Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aToolDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, int aExtraData, List aMaterialList, List aAspects) { - this(aMetaItemSubID, aIconSet, aToolSpeed, aToolDurability, aToolQuality, aTypes, aR, aG, aB, aA, aLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor); - mExtraData = aExtraData; - mMaterialList.addAll(aMaterialList); - mChemicalFormula = ""; - for (MaterialStack tMaterial : mMaterialList) mChemicalFormula += tMaterial.toString(); - mChemicalFormula = mChemicalFormula.replaceAll("_", "-"); - - int tAmountOfComponents = 0, tMeltingPoint = 0; - for (MaterialStack tMaterial : mMaterialList) { - tAmountOfComponents += tMaterial.mAmount; - if (tMaterial.mMaterial.mMeltingPoint > 0) tMeltingPoint += tMaterial.mMaterial.mMeltingPoint * tMaterial.mAmount; - if (aAspects == null) for (TC_AspectStack tAspect : tMaterial.mMaterial.mAspects) tAspect.addToAspectList(mAspects); - } - - if (mMeltingPoint < 0) mMeltingPoint = (short)(tMeltingPoint / tAmountOfComponents); - - tAmountOfComponents *= aDensityMultiplier; - tAmountOfComponents /= aDensityDivider; - if (aAspects == null) for (TC_AspectStack tAspect : mAspects) tAspect.mAmount = Math.max(1, tAspect.mAmount / Math.max(1, tAmountOfComponents)); else mAspects.addAll(aAspects); - } - - public static volatile int VERSION = 508; + FryingOilHot.setHeatDamage(1.0F); + Lava.setHeatDamage(3.0F); + Firestone.setHeatDamage(5.0F); + Pyrotheum.setHeatDamage(5.0F); - @Override - public short[] getRGBA() { - return mRGBa; - } + Chalcopyrite.addOreByProducts(Pyrite, Cobalt, Cadmium, Gold); + Sphalerite.addOreByProducts(GarnetYellow, Cadmium, Gallium, Zinc); + MeteoricIron.addOreByProducts(Iron, Nickel, Iridium, Platinum); + GlauconiteSand.addOreByProducts(Sodium, Aluminium, Iron); + Glauconite.addOreByProducts(Sodium, Aluminium, Iron); + Vermiculite.addOreByProducts(Iron, Aluminium, Magnesium); + FullersEarth.addOreByProducts(Aluminium, Silicon, Magnesium); + Bentonite.addOreByProducts(Aluminium, Calcium, Magnesium); + Uraninite.addOreByProducts(Uranium, Thorium, Plutonium); + Pitchblende.addOreByProducts(Thorium, Uranium, Lead); + Galena.addOreByProducts(Sulfur, Silver, Lead); + Lapis.addOreByProducts(Lazurite, Sodalite, Pyrite); + Pyrite.addOreByProducts(Sulfur, Phosphorus, Iron); + Copper.addOreByProducts(Cobalt, Gold, Nickel); + Nickel.addOreByProducts(Cobalt, Platinum, Iron); + GarnetRed.addOreByProducts(Spessartine, Pyrope, Almandine); + GarnetYellow.addOreByProducts(Andradite, Grossular, Uvarovite); + Cooperite.addOreByProducts(Palladium, Nickel, Iridium); + Cinnabar.addOreByProducts(Redstone, Sulfur, Glowstone); + Tantalite.addOreByProducts(Manganese, Niobium, Tantalum); + Pollucite.addOreByProducts(Caesium, Aluminium, Rubidium); + Chrysotile.addOreByProducts(Asbestos, Silicon, Magnesium); + Asbestos.addOreByProducts(Asbestos, Silicon, Magnesium); + Pentlandite.addOreByProducts(Iron, Sulfur, Cobalt); + Uranium.addOreByProducts(Lead, Plutonium, Thorium); + Scheelite.addOreByProducts(Manganese, Molybdenum, Calcium); + Tungstate.addOreByProducts(Manganese, Silver, Lithium); + Bauxite.addOreByProducts(Grossular, Titanium, Gallium); + QuartzSand.addOreByProducts(CertusQuartz, Quartzite, Barite); + Quartzite.addOreByProducts(CertusQuartz, Barite); + CertusQuartz.addOreByProducts(Quartzite, Barite); + //ChargedCertusQuartz .addOreByProducts(CertusQuartz , Quartzite , Barite ); + Redstone.addOreByProducts(Cinnabar, RareEarth, Glowstone); + Monazite.addOreByProducts(Thorium, Neodymium, RareEarth); + Forcicium.addOreByProducts(Thorium, Neodymium, RareEarth); + Forcillium.addOreByProducts(Thorium, Neodymium, RareEarth); + Malachite.addOreByProducts(Copper, BrownLimonite, Calcite); + YellowLimonite.addOreByProducts(Nickel, BrownLimonite, Cobalt); + BrownLimonite.addOreByProducts(Malachite, YellowLimonite); + Neodymium.addOreByProducts(Monazite, RareEarth); + Bastnasite.addOreByProducts(Neodymium, RareEarth); + Glowstone.addOreByProducts(Redstone, Gold); + Zinc.addOreByProducts(Tin, Gallium); + Tungsten.addOreByProducts(Manganese, Molybdenum); + Diatomite.addOreByProducts(BandedIron, Sapphire); + Iron.addOreByProducts(Nickel, Tin); + Lepidolite.addOreByProducts(Lithium, Caesium); + Gold.addOreByProducts(Copper, Nickel); + Tin.addOreByProducts(Iron, Zinc); + Antimony.addOreByProducts(Zinc, Iron); + Silver.addOreByProducts(Lead, Sulfur); + Lead.addOreByProducts(Silver, Sulfur); + Thorium.addOreByProducts(Uranium, Lead); + Plutonium.addOreByProducts(Uranium, Lead); + Electrum.addOreByProducts(Gold, Silver); + Bronze.addOreByProducts(Copper, Tin); + Brass.addOreByProducts(Copper, Zinc); + Coal.addOreByProducts(Lignite, Thorium); + Ilmenite.addOreByProducts(Iron, Titanium); + Manganese.addOreByProducts(Chrome, Iron); + Sapphire.addOreByProducts(Aluminium, GreenSapphire); + GreenSapphire.addOreByProducts(Aluminium, Sapphire); + Platinum.addOreByProducts(Nickel, Iridium); + Emerald.addOreByProducts(Beryllium, Aluminium); + Olivine.addOreByProducts(Pyrope, Magnesium); + Chrome.addOreByProducts(Iron, Magnesium); + Chromite.addOreByProducts(Iron, Magnesium); + Tetrahedrite.addOreByProducts(Antimony, Zinc); + GarnetSand.addOreByProducts(GarnetRed, GarnetYellow); + Magnetite.addOreByProducts(Iron, Gold); + GraniticMineralSand.addOreByProducts(GraniteBlack, Magnetite); + BasalticMineralSand.addOreByProducts(Basalt, Magnetite); + Basalt.addOreByProducts(Olivine, DarkAsh); + Celestine.addOreByProducts(Strontium, Sulfur); + VanadiumMagnetite.addOreByProducts(Magnetite, Vanadium); + Lazurite.addOreByProducts(Sodalite, Lapis); + Sodalite.addOreByProducts(Lazurite, Lapis); + Spodumene.addOreByProducts(Aluminium, Lithium); + Ruby.addOreByProducts(Chrome, GarnetRed); + Phosphorus.addOreByProducts(Apatite, Phosphate); + Iridium.addOreByProducts(Platinum, Osmium); + Pyrope.addOreByProducts(GarnetRed, Magnesium); + Almandine.addOreByProducts(GarnetRed, Aluminium); + Spessartine.addOreByProducts(GarnetRed, Manganese); + Andradite.addOreByProducts(GarnetYellow, Iron); + Grossular.addOreByProducts(GarnetYellow, Calcium); + Uvarovite.addOreByProducts(GarnetYellow, Chrome); + Calcite.addOreByProducts(Andradite, Malachite); + NaquadahEnriched.addOreByProducts(Naquadah, Naquadria); + Naquadah.addOreByProducts(NaquadahEnriched); + Pyrolusite.addOreByProducts(Manganese); + Molybdenite.addOreByProducts(Molybdenum); + Stibnite.addOreByProducts(Antimony); + Garnierite.addOreByProducts(Nickel); + Lignite.addOreByProducts(Coal); + Diamond.addOreByProducts(Graphite); + Beryllium.addOreByProducts(Emerald); + Apatite.addOreByProducts(Phosphorus); + Nikolite.addOreByProducts(Diamond); + Teslatite.addOreByProducts(Diamond); + Magnesite.addOreByProducts(Magnesium); + NetherQuartz.addOreByProducts(Netherrack); + PigIron.addOreByProducts(Iron); + DeepIron.addOreByProducts(Iron); + ShadowIron.addOreByProducts(Iron); + DarkIron.addOreByProducts(Iron); + MeteoricIron.addOreByProducts(Iron); + Steel.addOreByProducts(Iron); + HSLA.addOreByProducts(Iron); + Mithril.addOreByProducts(Platinum); + Midasium.addOreByProducts(Gold); + AstralSilver.addOreByProducts(Silver); + Graphite.addOreByProducts(Carbon); + Netherrack.addOreByProducts(Sulfur); + Flint.addOreByProducts(Obsidian); + Cobaltite.addOreByProducts(Cobalt); + Cobalt.addOreByProducts(Cobaltite); + Sulfur.addOreByProducts(Sulfur); + Saltpeter.addOreByProducts(Saltpeter); + Endstone.addOreByProducts(Helium_3); + Osmium.addOreByProducts(Iridium); + Magnesium.addOreByProducts(Olivine); + Aluminium.addOreByProducts(Bauxite); + Titanium.addOreByProducts(Almandine); + Obsidian.addOreByProducts(Olivine); + Ash.addOreByProducts(Carbon); + DarkAsh.addOreByProducts(Carbon); + Redrock.addOreByProducts(Clay); + Marble.addOreByProducts(Calcite); + Clay.addOreByProducts(Clay); + Cassiterite.addOreByProducts(Tin); + CassiteriteSand.addOreByProducts(Tin); + GraniteBlack.addOreByProducts(Biotite); + GraniteRed.addOreByProducts(PotassiumFeldspar); + Phosphate.addOreByProducts(Phosphor); + Phosphor.addOreByProducts(Phosphate); + Jade.addOreByProducts(Jade); + Tanzanite.addOreByProducts(Opal); + Opal.addOreByProducts(Tanzanite); + Amethyst.addOreByProducts(Amethyst); + Jasper.addOreByProducts(FoolsRuby); + FoolsRuby.addOreByProducts(Jasper); + Amber.addOreByProducts(Amber); + Topaz.addOreByProducts(BlueTopaz); + BlueTopaz.addOreByProducts(Topaz); + Niter.addOreByProducts(Saltpeter); + Vinteum.addOreByProducts(Vinteum); + Force.addOreByProducts(Force); + Dilithium.addOreByProducts(Dilithium); + Neutronium.addOreByProducts(Neutronium); + Lithium.addOreByProducts(Lithium); + Silicon.addOreByProducts(SiliconDioxide); + Salt.addOreByProducts(RockSalt); + RockSalt.addOreByProducts(Salt); + + Glue.mChemicalFormula = "No Horses were harmed for the Production"; + UUAmplifier.mChemicalFormula = "Accelerates the Mass Fabricator"; + LiveRoot.mChemicalFormula = ""; + WoodSealed.mChemicalFormula = ""; + Wood.mChemicalFormula = ""; + FoolsRuby.mChemicalFormula = Ruby.mChemicalFormula; + + // Naquadah is green when molten, so this reflects the Color change approciately + Naquadah.mMoltenRGBa[0] = 0; + Naquadah.mMoltenRGBa[1] = 255; + Naquadah.mMoltenRGBa[2] = 0; + Naquadah.mMoltenRGBa[3] = 0; + NaquadahEnriched.mMoltenRGBa[0] = 64; + NaquadahEnriched.mMoltenRGBa[1] = 255; + NaquadahEnriched.mMoltenRGBa[2] = 64; + NaquadahEnriched.mMoltenRGBa[3] = 0; + Naquadria.mMoltenRGBa[0] = 128; + Naquadria.mMoltenRGBa[1] = 255; + Naquadria.mMoltenRGBa[2] = 128; + Naquadria.mMoltenRGBa[3] = 0; + + NaquadahEnriched.mChemicalFormula = "Nq+"; + Naquadah.mChemicalFormula = "Nq"; + Naquadria.mChemicalFormula = "NqX"; + } + + /** + * This Array can be changed dynamically by a Tick Handler in order to get a glowing Effect on all GT Meta Items out of this Material. + */ + public final short[] mRGBa = new short[]{255, 255, 255, 0}, mMoltenRGBa = new short[]{255, 255, 255, 0}; + public final TextureSet mIconSet; + public final int mMetaItemSubID; + public final boolean mUnificatable; + public final Materials mMaterialInto; + public final List mMaterialList = new ArrayList(); + public final List mOreByProducts = new ArrayList(), mOreReRegistrations = new ArrayList(); + public final List mAspects = new ArrayList(); + private final ArrayList mMaterialItems = new ArrayList(); + private final Collection mSubTags = new HashSet(); + public Enchantment mEnchantmentTools = null, mEnchantmentArmors = null; + public byte mEnchantmentToolsLevel = 0, mEnchantmentArmorsLevel = 0; + public boolean mBlastFurnaceRequired = false; + public float mToolSpeed = 1.0F, mHeatDamage = 0.0F; + public String mChemicalFormula = "?", mDefaultLocalName = "null"; + public Dyes mColor = Dyes._NULL; + public short mMeltingPoint = 0, mBlastFurnaceTemp = 0; + public int mTypes = 0, mDurability = 16, mFuelPower = 0, mFuelType = 0, mExtraData = 0, mOreValue = 0, mOreMultiplier = 1, mByProductMultiplier = 1, mSmeltingMultiplier = 1; + public long mDensity = M; + public Element mElement = null; + public Materials mDirectSmelting = this, mOreReplacement = this, mMacerateInto = this, mSmeltInto = this, mArcSmeltInto = this, mHandleMaterial = this; + public byte mToolQuality = 0; + public Fluid mSolid = null, mFluid = null, mGas = null, mPlasma = null; + /** + * This Fluid is used as standard Unit for Molten Materials. 1296 is a Molten Block, what means 144 is one Material Unit worth + */ + public Fluid mStandardMoltenFluid = null; + + private Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aToolDurability, int aToolQuality, boolean aUnificatable) { + mUnificatable = aUnificatable; + mMaterialInto = this; + mMetaItemSubID = aMetaItemSubID; + mToolQuality = (byte) aToolQuality; + mDurability = aToolDurability; + mToolSpeed = aToolSpeed; + mIconSet = aIconSet; + if (aMetaItemSubID >= 0) { + if (GregTech_API.sGeneratedMaterials[aMetaItemSubID] == null) { + GregTech_API.sGeneratedMaterials[aMetaItemSubID] = this; + } else { + throw new IllegalArgumentException("The Index " + aMetaItemSubID + " is already used!"); + } + } + } + + private Materials(Materials aMaterialInto, boolean aReRegisterIntoThis) { + mUnificatable = false; + mDefaultLocalName = aMaterialInto.mDefaultLocalName; + mMaterialInto = aMaterialInto.mMaterialInto; + if (aReRegisterIntoThis) mMaterialInto.mOreReRegistrations.add(this); + mChemicalFormula = aMaterialInto.mChemicalFormula; + mMetaItemSubID = -1; + mIconSet = TextureSet.SET_NONE; + } + + /** + * @param aMetaItemSubID the Sub-ID used in my own MetaItems. Range 0-1000. -1 for no Material + * @param aTypes which kind of Items should be generated. Bitmask as follows: + * 1 = Dusts of all kinds. + * 2 = Dusts, Ingots, Plates, Rods/Sticks, Machine Components and other Metal specific things. + * 4 = Dusts, Gems, Plates, Lenses (if transparent). + * 8 = Dusts, Impure Dusts, crushed Ores, purified Ores, centrifuged Ores etc. + * 16 = Cells + * 32 = Plasma Cells + * 64 = Tool Heads + * 128 = Gears + * @param aR, aG, aB Color of the Material 0-255 each. + * @param aA transparency of the Material Texture. 0 = fully visible, 255 = Invisible. + * @param aLocalName The Name used as Default for localization. + * @param aFuelType Type of Generator to get Energy from this Material. + * @param aFuelPower EU generated. Will be multiplied by 1000, also additionally multiplied by 2 for Gems. + * @param aAmplificationValue Amount of UUM amplifier gotten from this. + * @param aUUMEnergy Amount of EU needed to shape the UUM into this Material. + * @param aMeltingPoint Used to determine the smelting Costs in Furnii. + * @param aBlastFurnaceTemp Used to determine the needed Heat capactiy Costs in Blast Furnii. + * @param aBlastFurnaceRequired If this requires a Blast Furnace. + * @param aColor Vanilla MC Wool Color which comes the closest to this. + */ + private Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aToolDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor) { + this(aMetaItemSubID, aIconSet, aToolSpeed, aToolDurability, aToolQuality, true); + mDefaultLocalName = aLocalName; + mMeltingPoint = (short) aMeltingPoint; + mBlastFurnaceTemp = (short) aBlastFurnaceTemp; + mBlastFurnaceRequired = aBlastFurnaceRequired; + if (aTransparent) add(SubTag.TRANSPARENT); + mFuelPower = aFuelPower; + mFuelType = aFuelType; + mOreValue = aOreValue; + mDensity = (M * aDensityMultiplier) / aDensityDivider; + mColor = aColor == null ? Dyes._NULL : aColor; + if (mColor != null) add(SubTag.HAS_COLOR); + mRGBa[0] = mMoltenRGBa[0] = (short) aR; + mRGBa[1] = mMoltenRGBa[1] = (short) aG; + mRGBa[2] = mMoltenRGBa[2] = (short) aB; + mRGBa[3] = mMoltenRGBa[3] = (short) aA; + mTypes = aTypes; + if ((mTypes & 2) != 0) add(SubTag.SMELTING_TO_FLUID); + } + + private Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aToolDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, List aAspects) { + this(aMetaItemSubID, aIconSet, aToolSpeed, aToolDurability, aToolQuality, aTypes, aR, aG, aB, aA, aLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor); + mAspects.addAll(aAspects); + } + + /** + * @param aElement The Element Enum represented by this Material + */ + private Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aToolDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, Element aElement, List aAspects) { + this(aMetaItemSubID, aIconSet, aToolSpeed, aToolDurability, aToolQuality, aTypes, aR, aG, aB, aA, aLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor); + mElement = aElement; + mElement.mLinkedMaterials.add(this); + if (aElement == Element._NULL) { + mChemicalFormula = "Empty"; + } else { + mChemicalFormula = aElement.toString(); + mChemicalFormula = mChemicalFormula.replaceAll("_", "-"); + } + mAspects.addAll(aAspects); + } + + private Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aToolDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, int aExtraData, List aMaterialList) { + this(aMetaItemSubID, aIconSet, aToolSpeed, aToolDurability, aToolQuality, aTypes, aR, aG, aB, aA, aLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor, aExtraData, aMaterialList, null); + } + + private Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aToolDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, int aExtraData, List aMaterialList, List aAspects) { + this(aMetaItemSubID, aIconSet, aToolSpeed, aToolDurability, aToolQuality, aTypes, aR, aG, aB, aA, aLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor); + mExtraData = aExtraData; + mMaterialList.addAll(aMaterialList); + mChemicalFormula = ""; + for (MaterialStack tMaterial : mMaterialList) mChemicalFormula += tMaterial.toString(); + mChemicalFormula = mChemicalFormula.replaceAll("_", "-"); + + int tAmountOfComponents = 0, tMeltingPoint = 0; + for (MaterialStack tMaterial : mMaterialList) { + tAmountOfComponents += tMaterial.mAmount; + if (tMaterial.mMaterial.mMeltingPoint > 0) + tMeltingPoint += tMaterial.mMaterial.mMeltingPoint * tMaterial.mAmount; + if (aAspects == null) + for (TC_AspectStack tAspect : tMaterial.mMaterial.mAspects) tAspect.addToAspectList(mAspects); + } + + if (mMeltingPoint < 0) mMeltingPoint = (short) (tMeltingPoint / tAmountOfComponents); + + tAmountOfComponents *= aDensityMultiplier; + tAmountOfComponents /= aDensityDivider; + if (aAspects == null) for (TC_AspectStack tAspect : mAspects) + tAspect.mAmount = Math.max(1, tAspect.mAmount / Math.max(1, tAmountOfComponents)); + else mAspects.addAll(aAspects); + } + + public static Materials get(String aMaterialName) { + Object tObject = GT_Utility.getFieldContent(Materials.class, aMaterialName, false, false); + if (tObject != null && tObject instanceof Materials) return (Materials) tObject; + return _NULL; + } + + public static Materials getRealMaterial(String aMaterialName) { + return get(aMaterialName).mMaterialInto; + } + + /** + * Called in preInit with the Config to set Values. + * + * @param aConfiguration + */ + public static void init(GT_Config aConfiguration) { + for (Materials tMaterial : VALUES) { + String tString = tMaterial.toString().toLowerCase(); + tMaterial.mHeatDamage = (float) aConfiguration.get(ConfigCategories.Materials.heatdamage, tString, tMaterial.mHeatDamage); + if (tMaterial.mBlastFurnaceRequired) + tMaterial.mBlastFurnaceRequired = aConfiguration.get(ConfigCategories.Materials.blastfurnacerequirements, tString, true); + if (tMaterial.mBlastFurnaceRequired && aConfiguration.get(ConfigCategories.Materials.blastinductionsmelter, tString, tMaterial.mBlastFurnaceTemp < 1500)) + GT_ModHandler.ThermalExpansion.addSmelterBlastOre(tMaterial); + tMaterial.mHandleMaterial = (tMaterial == Desh ? tMaterial.mHandleMaterial : tMaterial == Diamond || tMaterial == Thaumium ? Wood : tMaterial.contains(SubTag.BURNING) ? Blaze : tMaterial.contains(SubTag.MAGICAL) && tMaterial.contains(SubTag.CRYSTAL) && Loader.isModLoaded(MOD_ID_TC) ? Thaumium : tMaterial.getMass() > Element.Tc.getMass() * 2 ? TungstenSteel : tMaterial.getMass() > Element.Tc.getMass() ? Steel : Wood); + } + } + + public boolean isRadioactive() { + if (mElement != null) return mElement.mHalfLifeSeconds >= 0; + for (MaterialStack tMaterial : mMaterialList) if (tMaterial.mMaterial.isRadioactive()) return true; + return false; + } + + public long getProtons() { + if (mElement != null) return mElement.getProtons(); + if (mMaterialList.size() <= 0) return Element.Tc.getProtons(); + long rAmount = 0, tAmount = 0; + for (MaterialStack tMaterial : mMaterialList) { + tAmount += tMaterial.mAmount; + rAmount += tMaterial.mAmount * tMaterial.mMaterial.getProtons(); + } + return (getDensity() * rAmount) / (tAmount * M); + } + + public long getNeutrons() { + if (mElement != null) return mElement.getNeutrons(); + if (mMaterialList.size() <= 0) return Element.Tc.getNeutrons(); + long rAmount = 0, tAmount = 0; + for (MaterialStack tMaterial : mMaterialList) { + tAmount += tMaterial.mAmount; + rAmount += tMaterial.mAmount * tMaterial.mMaterial.getNeutrons(); + } + return (getDensity() * rAmount) / (tAmount * M); + } + + public long getMass() { + if (mElement != null) return mElement.getMass(); + if (mMaterialList.size() <= 0) return Element.Tc.getMass(); + long rAmount = 0, tAmount = 0; + for (MaterialStack tMaterial : mMaterialList) { + tAmount += tMaterial.mAmount; + rAmount += tMaterial.mAmount * tMaterial.mMaterial.getMass(); + } + return (getDensity() * rAmount) / (tAmount * M); + } + + public long getDensity() { + return mDensity; + } + + public String getToolTip() { + return getToolTip(1, false); + } + + public String getToolTip(boolean aShowQuestionMarks) { + return getToolTip(1, aShowQuestionMarks); + } + + public String getToolTip(long aMultiplier) { + return getToolTip(aMultiplier, false); + } + + public String getToolTip(long aMultiplier, boolean aShowQuestionMarks) { + if (!aShowQuestionMarks && mChemicalFormula.equals("?")) return ""; + if (aMultiplier >= M * 2 && !mMaterialList.isEmpty()) { + return ((mElement != null || (mMaterialList.size() < 2 && mMaterialList.get(0).mAmount == 1)) ? mChemicalFormula : "(" + mChemicalFormula + ")") + aMultiplier; + } + return mChemicalFormula; + } + + /** + * Adds an ItemStack to this Material. + */ + public Materials add(ItemStack aStack) { + if (aStack != null && !contains(aStack)) mMaterialItems.add(aStack); + return this; + } + + /** + * This is used to determine if any of the ItemStacks belongs to this Material. + */ + public boolean contains(ItemStack... aStacks) { + if (aStacks == null || aStacks.length <= 0) return false; + for (ItemStack tStack : mMaterialItems) + for (ItemStack aStack : aStacks) + if (GT_Utility.areStacksEqual(aStack, tStack, !tStack.hasTagCompound())) return true; + return false; + } + + /** + * This is used to determine if an ItemStack belongs to this Material. + */ + public boolean remove(ItemStack aStack) { + if (aStack == null) return false; + boolean temp = false; + for (int i = 0; i < mMaterialItems.size(); i++) + if (GT_Utility.areStacksEqual(aStack, mMaterialItems.get(i))) { + mMaterialItems.remove(i--); + temp = true; + } + return temp; + } + + /** + * Adds a SubTag to this Material + */ + @Override + public ISubTagContainer add(SubTag... aTags) { + if (aTags != null) for (SubTag aTag : aTags) + if (aTag != null && !contains(aTag)) { + aTag.addContainerToList(this); + mSubTags.add(aTag); + } + return this; + } + + /** + * If this Material has this exact SubTag + */ + @Override + public boolean contains(SubTag aTag) { + return mSubTags.contains(aTag); + } + + /** + * Removes a SubTag from this Material + */ + @Override + public boolean remove(SubTag aTag) { + return mSubTags.remove(aTag); + } + + /** + * Sets the Heat Damage for this Material (negative = frost) + */ + public Materials setHeatDamage(float aHeatDamage) { + mHeatDamage = aHeatDamage; + return this; + } + + /** + * Adds a Material to the List of Byproducts when grinding this Ore. + * Is used for more precise Ore grinding, so that it is possible to choose between certain kinds of Materials. + */ + public Materials addOreByProduct(Materials aMaterial) { + if (!mOreByProducts.contains(aMaterial.mMaterialInto)) mOreByProducts.add(aMaterial.mMaterialInto); + return this; + } + + /** + * Adds multiple Materials to the List of Byproducts when grinding this Ore. + * Is used for more precise Ore grinding, so that it is possible to choose between certain kinds of Materials. + */ + public Materials addOreByProducts(Materials... aMaterials) { + for (Materials tMaterial : aMaterials) if (tMaterial != null) addOreByProduct(tMaterial); + return this; + } + + /** + * If this Ore gives multiple drops of its Main Material. + * Lapis Ore for example gives about 6 drops. + */ + public Materials setOreMultiplier(int aOreMultiplier) { + if (aOreMultiplier > 0) mOreMultiplier = aOreMultiplier; + return this; + } + + /** + * If this Ore gives multiple drops of its Byproduct Material. + */ + public Materials setByProductMultiplier(int aByProductMultiplier) { + if (aByProductMultiplier > 0) mByProductMultiplier = aByProductMultiplier; + return this; + } + + /** + * If this Ore gives multiple drops of its Main Material. + * Lapis Ore for example gives about 6 drops. + */ + public Materials setSmeltingMultiplier(int aSmeltingMultiplier) { + if (aSmeltingMultiplier > 0) mSmeltingMultiplier = aSmeltingMultiplier; + return this; + } + + /** + * This Ore should be smolten directly into an Ingot of this Material instead of an Ingot of itself. + */ + public Materials setDirectSmelting(Materials aMaterial) { + if (aMaterial != null) mDirectSmelting = aMaterial.mMaterialInto.mDirectSmelting; + return this; + } + + /** + * This Material should be the Main Material this Ore gets ground into. + * Example, Chromite giving Chrome or Tungstate giving Tungsten. + */ + public Materials setOreReplacement(Materials aMaterial) { + if (aMaterial != null) mOreReplacement = aMaterial.mMaterialInto.mOreReplacement; + return this; + } + + /** + * This Material smelts always into an instance of aMaterial. Used for Magnets. + */ + public Materials setSmeltingInto(Materials aMaterial) { + if (aMaterial != null) mSmeltInto = aMaterial.mMaterialInto.mSmeltInto; + return this; + } + + /** + * This Material arc smelts always into an instance of aMaterial. Used for Wrought Iron. + */ + public Materials setArcSmeltingInto(Materials aMaterial) { + if (aMaterial != null) mArcSmeltInto = aMaterial.mMaterialInto.mArcSmeltInto; + return this; + } + + /** + * This Material macerates always into an instance of aMaterial. + */ + public Materials setMaceratingInto(Materials aMaterial) { + if (aMaterial != null) mMacerateInto = aMaterial.mMaterialInto.mMacerateInto; + return this; + } + + public Materials setEnchantmentForTools(Enchantment aEnchantment, int aEnchantmentLevel) { + mEnchantmentTools = aEnchantment; + mEnchantmentToolsLevel = (byte) aEnchantmentLevel; + return this; + } + + public Materials setEnchantmentForArmors(Enchantment aEnchantment, int aEnchantmentLevel) { + mEnchantmentArmors = aEnchantment; + mEnchantmentArmorsLevel = (byte) aEnchantmentLevel; + return this; + } + + public FluidStack getSolid(long aAmount) { + if (mSolid == null) return null; + return new GT_FluidStack(mSolid, (int) aAmount); + } + + public FluidStack getFluid(long aAmount) { + if (mFluid == null) return null; + return new GT_FluidStack(mFluid, (int) aAmount); + } + + public FluidStack getGas(long aAmount) { + if (mGas == null) return null; + return new GT_FluidStack(mGas, (int) aAmount); + } + + public FluidStack getPlasma(long aAmount) { + if (mPlasma == null) return null; + return new GT_FluidStack(mPlasma, (int) aAmount); + } + + public FluidStack getMolten(long aAmount) { + if (mStandardMoltenFluid == null) return null; + return new GT_FluidStack(mStandardMoltenFluid, (int) aAmount); + } + + @Override + public short[] getRGBA() { + return mRGBa; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/enums/OreDictNames.java b/src/main/java/gregtech/api/enums/OreDictNames.java index 4ba2b7b1..c9cf6af7 100644 --- a/src/main/java/gregtech/api/enums/OreDictNames.java +++ b/src/main/java/gregtech/api/enums/OreDictNames.java @@ -2,77 +2,77 @@ package gregtech.api.enums; public enum OreDictNames { - craftingAnvil, - craftingBook, - craftingCentrifuge, - craftingChest, - craftingCompressor, - craftingConveyor, - craftingDiamondBlade, - craftingDrain, - craftingDuctTape, - craftingElectricFurnace, - craftingElectromagnet, - enderChest, // Vanilla OreDict Name - craftingEnergyCellUpgrade, - craftingEnergyMeter, - craftingExtractor, - craftingFeather, - craftingFurnace, - craftingFilter, - craftingGenerator, - craftingGeothermalGenerator, - craftingGrinder, - craftingInductionFurnace, - craftingIndustrialDiamond, - craftingIronFurnace, - craftingLensBlack, - craftingLensBlue, - craftingLensBrown, - craftingLensCyan, - craftingLensGray, - craftingLensGreen, - craftingLensLightBlue, - craftingLensLightGray, - craftingLensLime, - craftingLensMagenta, - craftingLensOrange, - craftingLensPink, - craftingLensPurple, - craftingLensRed, - craftingLensWhite, - craftingLensYellow, - craftingMacerator, - craftingMetalformer, - craftingPiston, - craftingPump, - craftingQuantumChestUpgrade, - craftingQuartz, - craftingRawMachineTier00, - craftingRawMachineTier01, - craftingRawMachineTier02, - craftingRawMachineTier03, - craftingRawMachineTier04, - craftingRecycler, - craftingRedstoneReceiver, - craftingRedstoneTorch, - craftingRedstoneTranceiver, - craftingRedstoneTransmitter, - craftingSafe, - craftingSteamTank, - craftingSteamUpgrade, - craftingSuperconductor, - craftingTank, - craftingTeleporter, - craftingThermalCentrifuge, - craftingTurbineBladeBronze, - craftingTurbineBladeCarbon, - craftingTurbineBladeMagnalium, - craftingTurbineBladeSteel, - craftingTurbineBladeTungstenSteel, - craftingWireCopper, - craftingWireGold, - craftingWireIron, - craftingWireTin, - craftingWorkBench, + craftingAnvil, + craftingBook, + craftingCentrifuge, + craftingChest, + craftingCompressor, + craftingConveyor, + craftingDiamondBlade, + craftingDrain, + craftingDuctTape, + craftingElectricFurnace, + craftingElectromagnet, + enderChest, // Vanilla OreDict Name + craftingEnergyCellUpgrade, + craftingEnergyMeter, + craftingExtractor, + craftingFeather, + craftingFurnace, + craftingFilter, + craftingGenerator, + craftingGeothermalGenerator, + craftingGrinder, + craftingInductionFurnace, + craftingIndustrialDiamond, + craftingIronFurnace, + craftingLensBlack, + craftingLensBlue, + craftingLensBrown, + craftingLensCyan, + craftingLensGray, + craftingLensGreen, + craftingLensLightBlue, + craftingLensLightGray, + craftingLensLime, + craftingLensMagenta, + craftingLensOrange, + craftingLensPink, + craftingLensPurple, + craftingLensRed, + craftingLensWhite, + craftingLensYellow, + craftingMacerator, + craftingMetalformer, + craftingPiston, + craftingPump, + craftingQuantumChestUpgrade, + craftingQuartz, + craftingRawMachineTier00, + craftingRawMachineTier01, + craftingRawMachineTier02, + craftingRawMachineTier03, + craftingRawMachineTier04, + craftingRecycler, + craftingRedstoneReceiver, + craftingRedstoneTorch, + craftingRedstoneTranceiver, + craftingRedstoneTransmitter, + craftingSafe, + craftingSteamTank, + craftingSteamUpgrade, + craftingSuperconductor, + craftingTank, + craftingTeleporter, + craftingThermalCentrifuge, + craftingTurbineBladeBronze, + craftingTurbineBladeCarbon, + craftingTurbineBladeMagnalium, + craftingTurbineBladeSteel, + craftingTurbineBladeTungstenSteel, + craftingWireCopper, + craftingWireGold, + craftingWireIron, + craftingWireTin, + craftingWorkBench, } \ No newline at end of file diff --git a/src/main/java/gregtech/api/enums/OrePrefixes.java b/src/main/java/gregtech/api/enums/OrePrefixes.java index 8652ae0f..5f93d91d 100644 --- a/src/main/java/gregtech/api/enums/OrePrefixes.java +++ b/src/main/java/gregtech/api/enums/OrePrefixes.java @@ -1,6 +1,5 @@ package gregtech.api.enums; -import static gregtech.api.enums.GT_Values.*; import gregtech.api.enums.TC_Aspects.TC_AspectStack; import gregtech.api.interfaces.ICondition; import gregtech.api.interfaces.IOreRecipeRegistrator; @@ -9,202 +8,203 @@ import gregtech.api.objects.ItemData; import gregtech.api.objects.MaterialStack; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_Utility; +import net.minecraft.item.ItemStack; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.List; -import net.minecraft.item.ItemStack; +import static gregtech.api.enums.GT_Values.*; public enum OrePrefixes { - @Deprecated pulp ("Pulps" , "" , "" , false, false, false, false, false, false, false, false, false, false, B[0]|B[1]|B[2]|B[3] , -1, 64, -1), - @Deprecated leaves ("Leaves" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - @Deprecated sapling ("Saplings" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - @Deprecated itemDust ("Dusts" , "" , "" , false, false, false, false, false, false, false, false, false, false, B[0]|B[1]|B[2]|B[3] , -1, 64, -1), - oreBlackgranite ("Black Granite Ores" , "Granite " , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), // In case of an End-Ores Mod. Ore -> Material is a Oneway Operation! - oreRedgranite ("Red Granite Ores" , "Granite " , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), // In case of an End-Ores Mod. Ore -> Material is a Oneway Operation! - oreNetherrack ("Netherrack Ores" , "Nether " , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), // Prefix of the Nether-Ores Mod. Causes Ores to double. Ore -> Material is a Oneway Operation! - oreNether ("Nether Ores" , "Nether " , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), // Prefix of the Nether-Ores Mod. Causes Ores to double. Ore -> Material is a Oneway Operation! - @Deprecated denseore ("Dense Ores" , "" , "" , false, false, false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), - oreDense ("Dense Ores" , "Dense " , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), // Prefix of the Dense-Ores Mod. Causes Ores to double. Ore -> Material is a Oneway Operation! - oreRich ("Rich Ores" , "Rich " , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), // Prefix of TFC - oreNormal ("Normal Ores" , "Normal " , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), // Prefix of TFC - oreSmall ("Small Ores" , "Small " , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, 67), // Prefix of Railcraft. - orePoor ("Poor Ores" , "Poor " , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), // Prefix of Railcraft. - oreEndstone ("Endstone Ores" , "End " , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), // In case of an End-Ores Mod. Ore -> Material is a Oneway Operation! - oreEnd ("End Ores" , "End " , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), // In case of an End-Ores Mod. Ore -> Material is a Oneway Operation! - @Deprecated oreGem ("Ores" , "" , "" , false, false, false, false, false, true , false, false, false, true , B[3] , -1, 64, -1), - ore ("Ores" , "" , " Ore" , true , true , false, false, false, true , false, false, false, true , B[3] , -1, 64, 68), // Regular Ore Prefix. Ore -> Material is a Oneway Operation! Introduced by Eloraam - crushedCentrifuged ("Centrifuged Ores" , "Centrifuged " , " Ore" , true , true , false, false, false, false, false, true , false, true , B[3] , -1, 64, 7), - crushedPurified ("Purified Ores" , "Purified " , " Ore" , true , true , false, false, false, false, false, true , false, true , B[3] , -1, 64, 6), - crushed ("Crushed Ores" , "Crushed " , " Ore" , true , true , false, false, false, false, false, true , false, true , B[3] , -1, 64, 5), - shard ("Crystallised Shards" , "" , "" , true , true , false, false, false, false, false, false, false, true , B[3] , -1, 64, -1), // Introduced by Mekanism - clump ("Clumps" , "" , "" , true , true , false, false, false, false, false, false, false, true , B[3] , -1, 64, -1), - reduced ("Reduced Gravels" , "" , "" , true , true , false, false, false, false, false, false, false, true , B[3] , -1, 64, -1), - crystalline ("Crystallised Metals" , "" , "" , true , true , false, false, false, false, false, false, false, true , B[3] , -1, 64, -1), - cleanGravel ("Clean Gravels" , "" , "" , true , true , false, false, false, false, false, false, false, true , B[3] , -1, 64, -1), - dirtyGravel ("Dirty Gravels" , "" , "" , true , true , false, false, false, false, false, false, false, true , B[3] , -1, 64, -1), - ingotQuintuple ("5x Ingots" , "Quintuple " , " Ingot" , true , true , false, false, false, false, true , true , false, false, B[1] , M * 5 , 12, 16), // A quintuple Ingot. - ingotQuadruple ("4x Ingots" , "Quadruple " , " Ingot" , true , true , false, false, false, false, true , true , false, false, B[1] , M * 4 , 16, 15), // A quadruple Ingot. - @Deprecated ingotQuad ("4x Ingots" , "Quadruple " , " Ingot" , false, false, false, false, false, false, false, false, false, false, B[1] , -1, 16, 15), - ingotTriple ("3x Ingots" , "Triple " , " Ingot" , true , true , false, false, false, false, true , false, false, false, B[1] , M * 3 , 21, 14), // A triple Ingot. - ingotDouble ("2x Ingots" , "Double " , " Ingot" , true , true , false, false, false, false, true , true , false, false, B[1] , M * 2 , 32, 13), // A double Ingot. Introduced by TerraFirmaCraft - ingotHot ("Hot Ingots" , "Hot " , " Ingot" , true , true , false, false, false, false, false, true , false, false, B[1] , M * 1 , 16, 12), // A hot Ingot, which has to be cooled down by a Vacuum Freezer. - ingot ("Ingots" , "" , " Ingot" , true , true , false, false, false, false, false, true , false, false, B[1] , M * 1 , 64, 11), // A regular Ingot. Introduced by Eloraam - gemChipped ("Chipped Gemstones" , "Chipped " , "" , true , true , true , false, false, false, true , true , false, false, B[2] , M / 4 , 64, 59), // A regular Gem worth one small Dust. Introduced by TerraFirmaCraft - gemFlawed ("Flawed Gemstones" , "Flawed " , "" , true , true , true , false, false, false, true , true , false, false, B[2] , M / 2 , 64, 60), // A regular Gem worth two small Dusts. Introduced by TerraFirmaCraft - gemFlawless ("Flawless Gemstones" , "Flawless " , "" , true , true , true , false, false, false, true , true , false, false, B[2] , M * 2 , 32, 61), // A regular Gem worth two Dusts. Introduced by TerraFirmaCraft - gemExquisite ("Exquisite Gemstones" , "Exquisite " , "" , true , true , true , false, false, false, true , true , false, false, B[2] , M * 4 , 16, 62), // A regular Gem worth four Dusts. Introduced by TerraFirmaCraft - gem ("Gemstones" , "" , "" , true , true , true , false, false, false, true , true , false, false, B[2] , M * 1 , 64, 8), // A regular Gem worth one Dust. Introduced by Eloraam - @Deprecated dustDirty ("Impure Dusts" , "" , "" , false, false, false, false, false, false, false, false, false, true , B[3] , -1, 64, 3), - dustTiny ("Tiny Dusts" , "Tiny Pile of " , " Dust" , true , true , false, false, false, false, false, true , false, false, B[0]|B[1]|B[2]|B[3] , M / 9 , 64, 0), // 1/9th of a Dust. - dustSmall ("Small Dusts" , "Small Pile of " , " Dust" , true , true , false, false, false, false, false, true , false, false, B[0]|B[1]|B[2]|B[3] , M / 4 , 64, 1), // 1/4th of a Dust. - dustImpure ("Impure Dusts" , "Impure Pile of " , " Dust" , true , true , false, false, false, false, false, true , false, true , B[3] , M * 1 , 64, 3), // Dust with impurities. 1 Unit of Main Material and 1/9 - 1/4 Unit of secondary Material - dustRefined ("Refined Dusts" , "Refined Pile of " , " Dust" , true , true , false, false, false, false, false, true , false, true , B[3] , M * 1 , 64, 2), - dustPure ("Purified Dusts" , "Purified Pile of " , " Dust" , true , true , false, false, false, false, false, true , false, true , B[3] , M * 1 , 64, 4), - dust ("Dusts" , "" , " Dust" , true , true , false, false, false, false, false, true , false, false, B[0]|B[1]|B[2]|B[3] , M * 1 , 64, 2), // Pure Dust worth of one Ingot or Gem. Introduced by Alblaka. - nugget ("Nuggets" , "" , " Nugget" , true , true , false, false, false, false, false, true , false, false, B[1] , M / 9 , 64, 9), // A Nugget. Introduced by Eloraam - plateAlloy ("Alloy Plates" , "" , "" , true , false, false, false, false, false, false, false, false, false, B[1] , -1, 64, 17), // Special Alloys have this prefix. - plateSteamcraft ("Steamcraft Plates" , "" , "" , false, false, false, false, false, false, false, false, false, false, B[1] , -1, 64, 17), - plateDense ("Dense Plates" , "Dense " , " Plate" , true , true , false, false, false, false, true , true , false, false, B[1] , M * 9 , 8, 22), // 9 Plates combined in one Item. - plateQuintuple ("5x Plates" , "Quintuple " , " Plate" , true , true , false, false, false, false, true , true , false, false, B[1] , M * 5 , 12, 21), - plateQuadruple ("4x Plates" , "Quadruple " , " Plate" , true , true , false, false, false, false, true , true , false, false, B[1] , M * 4 , 16, 20), - @Deprecated plateQuad ("4x Plates" , "" , "" , false, false, false, false, false, false, false, false, false, false, B[1] , -1, 16, 20), - plateTriple ("3x Plates" , "Triple " , " Plate" , true , true , false, false, false, false, true , true , false, false, B[1] , M * 3 , 21, 19), - plateDouble ("2x Plates" , "Double " , " Plate" , true , true , false, false, false, false, true , true , false, false, B[1] , M * 2 , 32, 18), - plate ("Plates" , "" , " Plate" , true , true , false, false, false, false, true , true , false, false, B[1]|B[2] , M * 1 , 64, 17), // Regular Plate made of one Ingot/Dust. Introduced by Calclavia - foil ("Foils" , "" , " Foil" , true , true , false, false, false, false, true , true , false, false, B[1] , M / 4 , 64, 29), // Foil made of 1/4 Ingot/Dust. - stickLong ("Long Sticks/Rods" , "Long " , " Rod" , true , true , false, false, false, false, true , true , false, false, B[1]|B[2] , M * 1 , 64, 54), // Stick made of an Ingot. - stick ("Sticks/Rods" , "" , " Rod" , true , true , false, false, false, false, true , true , false, false, B[1]|B[2] , M / 2 , 64, 23), // Stick made of half an Ingot. Introduced by Eloraam - round ("Rounds" , "" , " Round" , true , true , false, false, false, false, true , true , false, false, B[1] , M / 9 , 64, 25), // consisting out of one Nugget. - bolt ("Bolts" , "" , " Bolt" , true , true , false, false, false, false, true , true , false, false, B[1]|B[2] , M / 8 , 64, 26), // consisting out of 1/8 Ingot or 1/4 Stick. - screw ("Screws" , "" , " Screw" , true , true , false, false, false, false, true , true , false, false, B[1]|B[2] , M / 9 , 64, 27), // consisting out of a Bolt. - ring ("Rings" , "" , " Ring" , true , true , false, false, false, false, true , true , false, false, B[1] , M / 4 , 64, 28), // consisting out of 1/2 Stick. - springSmall ("Small Springs" , "Small " , " Spring" , true , true , false, false, false, false, true , true , false, false, B[1] , M / 4 , 64, 55), // consisting out of 1 Fine Wire. - spring ("Springs" , "" , " Spring" , true , true , false, false, false, false, true , true , false, false, B[1] , M * 1 , 64, 56), // consisting out of 2 Sticks. - wireFine ("Fine Wires" , "Fine " , " Wire" , true , true , false, false, false, false, true , true , false, false, B[1] , M / 8 , 64, 51), // consisting out of 1/8 Ingot or 1/4 Wire. - rotor ("Rotors" , "" , " Rotor" , true , true , false, false, false, false, true , true , false, false, B[7] ,M*4+M/4+M/9,16, 53), // consisting out of 4 Plates, 1 Ring and 1 Screw. - gearGtSmall ("Small Gears" , "Small " , " Gear" , true , true , false, false, false, false, true , true , false, false, B[7] , M * 1 , 64, 52), - gearGt ("Gears" , "" , " Gear" , true , true , false, false, false, false, true , true , false, false, B[7] , M * 4 , 16, 63), // Introduced by me because BuildCraft has ruined the gear Prefix... - lens ("Lenses" , "" , " Lens" , true , true , false, false, false, false, true , true , false, false, B[2] ,(M * 3)/ 4, 64, 24), // 3/4 of a Plate or Gem used to shape a Lense. Normally only used on Transparent Materials. - crateGtDust ("Crates of Dust" , "Crate of " , " Dust" , true , true , false, true , false, false, false, true , false, false, B[0]|B[1]|B[2]|B[3] , -1, 64, 96), // consisting out of 16 Dusts. - crateGtPlate ("Crates of Plates" , "Crate of " , " Plate" , true , true , false, true , false, false, false, true , false, false, B[1]|B[2] , -1, 64, 99), // consisting out of 16 Plates. - crateGtIngot ("Crates of Ingots" , "Crate of " , " Ingot" , true , true , false, true , false, false, false, true , false, false, B[1] , -1, 64, 97), // consisting out of 16 Ingots. - crateGtGem ("Crates of Gems" , "Crate of " , " Gem" , true , true , false, true , false, false, false, true , false, false, B[2] , -1, 64, 98), // consisting out of 16 Gems. - cellPlasma ("Cells of Plasma" , "" , " Plasma Cell" , true , true , true , true , false, false, false, true , false, false, B[5] , M * 1 , 64, 31), // Hot Cell full of Plasma, which can be used in the Plasma Generator. - cell ("Cells" , "" , " Cell" , true , true , true , true , false, false, true , true , false, false, B[4]|B[8] , M * 1 , 64, 30), // Regular Gas/Fluid Cell. Introduced by Calclavia - bucket ("Buckets" , "" , " Bucket" , true , true , true , true , false, false, true , false, false, false, B[4]|B[8] , M * 1 , 16, -1), // A vanilla Iron Bucket filled with the Material. - bottle ("Bottles" , "" , " Bottle" , true , true , true , true , false, false, false, false, false, false, B[4]|B[8] , -1, 16, -1), // Glass Bottle containing a Fluid. - capsule ("Capsules" , "" , " Capsule" , false, true , true , true , false, false, false, false, false, false, B[4]|B[8] , M * 1 , 16, -1), - crystal ("Crystals" , "" , " Crystal" , false, true , false, false, false, false, true , false, false, false, B[2] , M * 1 , 64, -1), - bulletGtSmall ("Small Bullets" , "Small " , " Bullet" , true , true , false, false, true , false, true , false, true , false, B[6]|B[8] , M / 9 , 64, -1), - bulletGtMedium ("Medium Bullets" , "Medium " , " Bullet" , true , true , false, false, true , false, true , false, true , false, B[6]|B[8] , M / 6 , 64, -1), - bulletGtLarge ("Large Bullets" , "Large " , " Bullet" , true , true , false, false, true , false, true , false, true , false, B[6]|B[8] , M / 3 , 64, -1), - arrowGtWood ("Regular Arrows" , "" , " Arrow" , true , true , false, false, true , false, true , false, true , false, B[6] , M / 4 , 64, 57), // Arrow made of 1/4 Ingot/Dust + Wooden Stick. - arrowGtPlastic ("Light Arrows" , "Light " , " Arrow" , true , true , false, false, true , false, true , false, true , false, B[6] , M / 4 , 64, 58), // Arrow made of 1/4 Ingot/Dust + Plastic Stick. - arrow ("Arrows" , "" , "" , false, false, true , false, false, false, false, false, true , false, B[6] , -1, 64, 57), - toolHeadArrow ("Arrow Heads" , "" , " Arrow Head" , true , true , false, false, false, false, true , true , false, false, B[6] , M / 4 , 64, 46), // consisting out of 1/4 Ingot. - toolHeadSword ("Sword Blades" , "" , " Sword Blade" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 2 , 16, 32), // consisting out of 2 Ingots. - toolHeadPickaxe ("Pickaxe Heads" , "" , " Pickaxe Head" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 3 , 16, 33), // consisting out of 3 Ingots. - toolHeadShovel ("Shovel Heads" , "" , " Shovel Head" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 1 , 16, 34), // consisting out of 1 Ingots. - toolHeadUniversalSpade ("Universal Spade Heads" , "" , " Universal Spade Head" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 1 , 16, 43), // consisting out of 1 Ingots. - toolHeadAxe ("Axe Heads" , "" , " Axe Head" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 3 , 16, 35), // consisting out of 3 Ingots. - toolHeadHoe ("Hoe Heads" , "" , " Hoe Head" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 2 , 16, 36), // consisting out of 2 Ingots. - toolHeadSense ("Sense Blades" , "" , " Sense Blade" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 3 , 16, 44), // consisting out of 3 Ingots. - toolHeadFile ("File Heads" , "" , " File Head" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 2 , 16, 38), // consisting out of 2 Ingots. - toolHeadHammer ("Hammer Heads" , "" , " Hammer Head" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 6 , 16, 37), // consisting out of 6 Ingots. - toolHeadPlow ("Plow Heads" , "" , " Plow Head" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 4 , 16, 45), // consisting out of 4 Ingots. - toolHeadSaw ("Saw Blades" , "" , " Saw Blade" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 2 , 16, 39), // consisting out of 2 Ingots. - toolHeadBuzzSaw ("Buzzsaw Blades" , "" , " Buzzsaw Blade" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 4 , 16, 48), // consisting out of 4 Ingots. - toolHeadScrewdriver ("Screwdriver Tips" , "" , " Screwdriver Tip" , true , true , false, false, false, false, true , false, false, false, B[6] , M * 1 , 16, 47), // consisting out of 1 Ingots. - toolHeadDrill ("Drill Tips" , "" , " Drill Tip" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 4 , 16, 40), // consisting out of 4 Ingots. - toolHeadChainsaw ("Chainsaw Tips" , "" , " Chainsaw Tip" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 2 , 16, 41), // consisting out of 2 Ingots. - toolHeadWrench ("Wrench Tips" , "" , " Wrench Tip" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 4 , 16, 42), // consisting out of 4 Ingots. - turbineBlade ("Turbine Blades" , "" , " Turbine Blade" , true , true , false, false, false, false, true , true , false, false, B[6] , M * 6 , 64, 100), // consisting out of 6 Ingots. - toolSword ("Swords" , "" , "" , false, true , false, false, false, false, true , false, true , false, B[6] , M * 2 , 1, -1), // vanilly Sword - toolPickaxe ("Pickaxes" , "" , "" , false, true , false, false, false, false, true , false, true , false, B[6] , M * 3 , 1, -1), // vanilly Pickaxe - toolShovel ("Shovels" , "" , "" , false, true , false, false, false, false, true , false, true , false, B[6] , M * 1 , 1, -1), // vanilly Shovel - toolAxe ("Axes" , "" , "" , false, true , false, false, false, false, true , false, true , false, B[6] , M * 3 , 1, -1), // vanilly Axe - toolHoe ("Hoes" , "" , "" , false, true , false, false, false, false, true , false, true , false, B[6] , M * 2 , 1, -1), // vanilly Hoe - toolShears ("Shears" , "" , "" , false, true , false, false, false, false, true , false, true , false, B[6] , M * 2 , 1, -1), // vanilly Shears - tool ("Tools" , "" , "" , false, false, false, false, false, false, false, false, true , false, B[6] , -1, 1, -1), // toolPot, toolSkillet, toolSaucepan, toolBakeware, toolCuttingboard, toolMortarandpestle, toolMixingbowl, toolJuicer - compressedCobblestone ("9^X Compressed Cobblestones" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - compressedStone ("9^X Compressed Stones" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - compressedDirt ("9^X Compressed Dirt" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - compressedGravel ("9^X Compressed Gravel" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - compressedSand ("9^X Compressed Sand" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - compressed ("Compressed Materials" , "Compressed " , "" , true , true , false, false, false, false, true , false, false, false, 0 , M * 2 , 64, -1), // Compressed Material, worth 1 Unit. Introduced by Galacticraft - glass ("Glasses" , "" , "" , false, false, true , false, true , false, false, false, false, false, 0 , -1, 64, -1), - paneGlass ("Glass Panes" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), - blockGlass ("Glass Blocks" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), - blockWool ("Wool Blocks" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), - block_ ("Random Blocks" , "" , "" , false, false, false, false, false, true , false, false, false, false, 0 , -1, 64, -1), // IGNORE - block ("Storage Blocks" , "Block of " , "" , true , true , false, false, false, true , true , false, false, false, 0 , M * 9 , 64, 71), // Storage Block consisting out of 9 Ingots/Gems/Dusts. Introduced by CovertJaguar - craftingTool ("Crafting Tools" , "" , "" , false, false, false, false, false, false, false, false, true , false, 0 , -1, 64, -1), // Special Prefix used mainly for the Crafting Handler. - crafting ("Crafting Ingredients" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Special Prefix used mainly for the Crafting Handler. - craft ("Crafting Stuff?" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Special Prefix used mainly for the Crafting Handler. - log ("Logs" , "" , "" , false, false, false, false, false, true , false, false, false, false, 0 , -1, 64, -1), // Prefix used for Logs. Usually as "logWood". Introduced by Eloraam - slab ("Slabs" , "" , "" , false, false, false, false, false, true , false, false, false, false, 0 , -1, 64, -1), // Prefix used for Slabs. Usually as "slabWood" or "slabStone". Introduced by SirSengir - stair ("Stairs" , "" , "" , false, false, false, false, false, true , false, false, false, false, 0 , -1, 64, -1), // Prefix used for Stairs. Usually as "stairWood" or "stairStone". Introduced by SirSengir - fence ("Fences" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Prefix used for Fences. Usually as "fenceWood". Introduced by Forge - plank ("Planks" , "" , "" , false, false, false, false, false, true , false, false, false, false, 0 , -1, 64, -1), // Prefix for Planks. Usually "plankWood". Introduced by Eloraam - treeSapling ("Saplings" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), // Prefix for Saplings. - treeLeaves ("Leaves" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), // Prefix for Leaves. - tree ("Tree Parts" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Prefix for Tree Parts. - stoneCobble ("Cobblestones" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), // Cobblestone Prefix for all Cobblestones. - stoneSmooth ("Smoothstones" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), // Smoothstone Prefix. - stoneMossyBricks ("mossy Stone Bricks" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), // Mossy Stone Bricks. - stoneMossy ("Mossy Stones" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), // Mossy Cobble. - @Deprecated stoneBricksMossy("Mossy Stone Bricks" , "" , "" , false, false, false, false, false, true , false, false, false, false, 0 , -1, 64, -1), - stoneBricks ("Stone Bricks" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), // Stone Bricks. - @Deprecated stoneBrick ("Stone Bricks" , "" , "" , false, false, false, false, false, true , false, false, false, false, 0 , -1, 64, -1), - stoneCracked ("Cracked Stones" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), // Cracked Bricks. - stoneChiseled ("Chiseled Stones" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), // Chiseled Stone. - stone ("Stones" , "" , "" , false, true , true , false, true , true , false, false, false, false, 0 , -1, 64, -1), // Prefix to determine which kind of Rock this is. - cobblestone ("Cobblestones" , "" , "" , false, true , true , false, false, true , false, false, false, false, 0 , -1, 64, -1), - rock ("Rocks" , "" , "" , false, true , true , false, true , true , false, false, false, false, 0 , -1, 64, -1), // Prefix to determine which kind of Rock this is. - record ("Records" , "" , "" , false, false, true , false, false, false, false, false, false, false, 0 , -1, 1, -1), - rubble ("Rubbles" , "" , "" , true , true , true , false, false, false, false, false, false, false, 0 , -1, 64, -1), - scraps ("Scraps" , "" , "" , true , true , false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - scrap ("Scraps" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - item_ ("Items" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // IGNORE - item ("Items" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Random Item. Introduced by Alblaka - book ("Books" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Used for Books of any kind. - paper ("Papers" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Used for Papers of any kind. - dye ("Dyes" , "" , "" , false, false, true , false, false, false, false, false, false, false, 0 , -1, 64, -1), // Used for the 16 dyes. Introduced by Eloraam - stainedClay ("Stained Clays" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), // Used for the 16 colors of Stained Clay. Introduced by Forge - armorHelmet ("Helmets" , "" , "" , false, true , false, false, false, false, true , false, true , false, B[6] , M * 5 , 1, -1), // vanilly Helmet - armorChestplate ("Chestplates" , "" , "" , false, true , false, false, false, false, true , false, true , false, B[6] , M * 8 , 1, -1), // vanilly Chestplate - armorLeggings ("Leggings" , "" , "" , false, true , false, false, false, false, true , false, true , false, B[6] , M * 7 , 1, -1), // vanilly Pants - armorBoots ("Boots" , "" , "" , false, true , false, false, false, false, true , false, true , false, B[6] , M * 4 , 1, -1), // vanilly Boots - armor ("Armor Parts" , "" , "" , false, false, false, false, false, false, false, false, true , false, B[6] , -1, 1, -1), - frameGt ("Frame Boxes" , "" , "" , true , true , false, false, true , false, true , false, false, false, 0 , M * 2 , 64, 83), - pipeTiny ("Tiny Pipes" , "Tiny " , " Pipe" , true , true , false, false, true , false, true , false, false, false, 0 , M / 2 , 64, 78), - pipeSmall ("Small Pipes" , "Small " , " Pipe" , true , true , false, false, true , false, true , false, false, false, 0 , M * 1 , 64, 79), - pipeMedium ("Medium Pipes" , "Medium " , " Pipe" , true , true , false, false, true , false, true , false, false, false, 0 , M * 3 , 64, 80), - pipeLarge ("Large pipes" , "Large " , " Pipe" , true , true , false, false, true , false, true , false, false, false, 0 , M * 6 , 64, 81), - pipeHuge ("Huge Pipes" , "Huge " , " Pipe" , true , true , false, false, true , false, true , false, false, false, 0 , M *12 , 64, 82), - pipeRestrictiveTiny ("Tiny Restrictive Pipes" , "Tiny Restrictive " , " Pipe" , true , true , false, false, true , false, true , false, false, false, 0 , M / 2 , 64, 78), - pipeRestrictiveSmall ("Small Restrictive Pipes" , "Small Restrictive " , " Pipe" , true , true , false, false, true , false, true , false, false, false, 0 , M * 1 , 64, 79), - pipeRestrictiveMedium ("Medium Restrictive Pipes" , "Medium Restrictive " , " Pipe" , true , true , false, false, true , false, true , false, false, false, 0 , M * 3 , 64, 80), - pipeRestrictiveLarge ("Large Restrictive Pipes" , "Large Restrictive " , " Pipe" , true , true , false, false, true , false, true , false, false, false, 0 , M * 6 , 64, 81), - pipeRestrictiveHuge ("Huge Restrictive Pipes" , "Huge Restrictive " , " Pipe" , true , true , false, false, true , false, true , false, false, false, 0 , M *12 , 64, 82), - pipe ("Pipes" , "" , " Pipe" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, 77), - wireGt16 ("16x Wires" , "16x " , " Wire" , true , true , false, false, false, false, true , false, false, false, 0 , M * 8 , 64, -1), - wireGt12 ("12x Wires" , "12x " , " Wire" , true , true , false, false, false, false, true , false, false, false, 0 , M * 6 , 64, -1), - wireGt08 ("8x Wires" , "8x " , " Wire" , true , true , false, false, false, false, true , false, false, false, 0 , M * 4 , 64, -1), - wireGt04 ("4x Wires" , "4x " , " Wire" , true , true , false, false, false, false, true , false, false, false, 0 , M * 2 , 64, -1), - wireGt02 ("2x Wires" , "2x " , " Wire" , true , true , false, false, false, false, true , false, false, false, 0 , M * 1 , 64, -1), - wireGt01 ("1x Wires" , "1x " , " Wire" , true , true , false, false, false, false, true , false, false, false, 0 , M / 2 , 64, -1), - cableGt12 ("12x Cables" , "12x " , " Cable" , true , true , false, false, false, false, true , false, false, false, 0 , M * 6 , 64, -1), - cableGt08 ("8x Cables" , "8x " , " Cable" , true , true , false, false, false, false, true , false, false, false, 0 , M * 4 , 64, -1), - cableGt04 ("4x Cables" , "4x " , " Cable" , true , true , false, false, false, false, true , false, false, false, 0 , M * 2 , 64, -1), - cableGt02 ("2x Cables" , "2x " , " Cable" , true , true , false, false, false, false, true , false, false, false, 0 , M * 1 , 64, -1), - cableGt01 ("1x Cables" , "1x " , " Cable" , true , true , false, false, false, false, true , false, false, false, 0 , M / 2 , 64, -1), - - /* Electric Components. - * + @Deprecated pulp("Pulps", "", "", false, false, false, false, false, false, false, false, false, false, B[0] | B[1] | B[2] | B[3], -1, 64, -1), + @Deprecated leaves("Leaves", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + @Deprecated sapling("Saplings", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + @Deprecated itemDust("Dusts", "", "", false, false, false, false, false, false, false, false, false, false, B[0] | B[1] | B[2] | B[3], -1, 64, -1), + oreBlackgranite("Black Granite Ores", "Granite ", " Ore", true, true, false, false, false, true, false, false, false, true, B[3], -1, 64, -1), // In case of an End-Ores Mod. Ore -> Material is a Oneway Operation! + oreRedgranite("Red Granite Ores", "Granite ", " Ore", true, true, false, false, false, true, false, false, false, true, B[3], -1, 64, -1), // In case of an End-Ores Mod. Ore -> Material is a Oneway Operation! + oreNetherrack("Netherrack Ores", "Nether ", " Ore", true, true, false, false, false, true, false, false, false, true, B[3], -1, 64, -1), // Prefix of the Nether-Ores Mod. Causes Ores to double. Ore -> Material is a Oneway Operation! + oreNether("Nether Ores", "Nether ", " Ore", true, true, false, false, false, true, false, false, false, true, B[3], -1, 64, -1), // Prefix of the Nether-Ores Mod. Causes Ores to double. Ore -> Material is a Oneway Operation! + @Deprecated denseore("Dense Ores", "", "", false, false, false, false, false, true, false, false, false, true, B[3], -1, 64, -1), + oreDense("Dense Ores", "Dense ", " Ore", true, true, false, false, false, true, false, false, false, true, B[3], -1, 64, -1), // Prefix of the Dense-Ores Mod. Causes Ores to double. Ore -> Material is a Oneway Operation! + oreRich("Rich Ores", "Rich ", " Ore", true, true, false, false, false, true, false, false, false, true, B[3], -1, 64, -1), // Prefix of TFC + oreNormal("Normal Ores", "Normal ", " Ore", true, true, false, false, false, true, false, false, false, true, B[3], -1, 64, -1), // Prefix of TFC + oreSmall("Small Ores", "Small ", " Ore", true, true, false, false, false, true, false, false, false, true, B[3], -1, 64, 67), // Prefix of Railcraft. + orePoor("Poor Ores", "Poor ", " Ore", true, true, false, false, false, true, false, false, false, true, B[3], -1, 64, -1), // Prefix of Railcraft. + oreEndstone("Endstone Ores", "End ", " Ore", true, true, false, false, false, true, false, false, false, true, B[3], -1, 64, -1), // In case of an End-Ores Mod. Ore -> Material is a Oneway Operation! + oreEnd("End Ores", "End ", " Ore", true, true, false, false, false, true, false, false, false, true, B[3], -1, 64, -1), // In case of an End-Ores Mod. Ore -> Material is a Oneway Operation! + @Deprecated oreGem("Ores", "", "", false, false, false, false, false, true, false, false, false, true, B[3], -1, 64, -1), + ore("Ores", "", " Ore", true, true, false, false, false, true, false, false, false, true, B[3], -1, 64, 68), // Regular Ore Prefix. Ore -> Material is a Oneway Operation! Introduced by Eloraam + crushedCentrifuged("Centrifuged Ores", "Centrifuged ", " Ore", true, true, false, false, false, false, false, true, false, true, B[3], -1, 64, 7), + crushedPurified("Purified Ores", "Purified ", " Ore", true, true, false, false, false, false, false, true, false, true, B[3], -1, 64, 6), + crushed("Crushed Ores", "Crushed ", " Ore", true, true, false, false, false, false, false, true, false, true, B[3], -1, 64, 5), + shard("Crystallised Shards", "", "", true, true, false, false, false, false, false, false, false, true, B[3], -1, 64, -1), // Introduced by Mekanism + clump("Clumps", "", "", true, true, false, false, false, false, false, false, false, true, B[3], -1, 64, -1), + reduced("Reduced Gravels", "", "", true, true, false, false, false, false, false, false, false, true, B[3], -1, 64, -1), + crystalline("Crystallised Metals", "", "", true, true, false, false, false, false, false, false, false, true, B[3], -1, 64, -1), + cleanGravel("Clean Gravels", "", "", true, true, false, false, false, false, false, false, false, true, B[3], -1, 64, -1), + dirtyGravel("Dirty Gravels", "", "", true, true, false, false, false, false, false, false, false, true, B[3], -1, 64, -1), + ingotQuintuple("5x Ingots", "Quintuple ", " Ingot", true, true, false, false, false, false, true, true, false, false, B[1], M * 5, 12, 16), // A quintuple Ingot. + ingotQuadruple("4x Ingots", "Quadruple ", " Ingot", true, true, false, false, false, false, true, true, false, false, B[1], M * 4, 16, 15), // A quadruple Ingot. + @Deprecated ingotQuad("4x Ingots", "Quadruple ", " Ingot", false, false, false, false, false, false, false, false, false, false, B[1], -1, 16, 15), + ingotTriple("3x Ingots", "Triple ", " Ingot", true, true, false, false, false, false, true, false, false, false, B[1], M * 3, 21, 14), // A triple Ingot. + ingotDouble("2x Ingots", "Double ", " Ingot", true, true, false, false, false, false, true, true, false, false, B[1], M * 2, 32, 13), // A double Ingot. Introduced by TerraFirmaCraft + ingotHot("Hot Ingots", "Hot ", " Ingot", true, true, false, false, false, false, false, true, false, false, B[1], M * 1, 16, 12), // A hot Ingot, which has to be cooled down by a Vacuum Freezer. + ingot("Ingots", "", " Ingot", true, true, false, false, false, false, false, true, false, false, B[1], M * 1, 64, 11), // A regular Ingot. Introduced by Eloraam + gemChipped("Chipped Gemstones", "Chipped ", "", true, true, true, false, false, false, true, true, false, false, B[2], M / 4, 64, 59), // A regular Gem worth one small Dust. Introduced by TerraFirmaCraft + gemFlawed("Flawed Gemstones", "Flawed ", "", true, true, true, false, false, false, true, true, false, false, B[2], M / 2, 64, 60), // A regular Gem worth two small Dusts. Introduced by TerraFirmaCraft + gemFlawless("Flawless Gemstones", "Flawless ", "", true, true, true, false, false, false, true, true, false, false, B[2], M * 2, 32, 61), // A regular Gem worth two Dusts. Introduced by TerraFirmaCraft + gemExquisite("Exquisite Gemstones", "Exquisite ", "", true, true, true, false, false, false, true, true, false, false, B[2], M * 4, 16, 62), // A regular Gem worth four Dusts. Introduced by TerraFirmaCraft + gem("Gemstones", "", "", true, true, true, false, false, false, true, true, false, false, B[2], M * 1, 64, 8), // A regular Gem worth one Dust. Introduced by Eloraam + @Deprecated dustDirty("Impure Dusts", "", "", false, false, false, false, false, false, false, false, false, true, B[3], -1, 64, 3), + dustTiny("Tiny Dusts", "Tiny Pile of ", " Dust", true, true, false, false, false, false, false, true, false, false, B[0] | B[1] | B[2] | B[3], M / 9, 64, 0), // 1/9th of a Dust. + dustSmall("Small Dusts", "Small Pile of ", " Dust", true, true, false, false, false, false, false, true, false, false, B[0] | B[1] | B[2] | B[3], M / 4, 64, 1), // 1/4th of a Dust. + dustImpure("Impure Dusts", "Impure Pile of ", " Dust", true, true, false, false, false, false, false, true, false, true, B[3], M * 1, 64, 3), // Dust with impurities. 1 Unit of Main Material and 1/9 - 1/4 Unit of secondary Material + dustRefined("Refined Dusts", "Refined Pile of ", " Dust", true, true, false, false, false, false, false, true, false, true, B[3], M * 1, 64, 2), + dustPure("Purified Dusts", "Purified Pile of ", " Dust", true, true, false, false, false, false, false, true, false, true, B[3], M * 1, 64, 4), + dust("Dusts", "", " Dust", true, true, false, false, false, false, false, true, false, false, B[0] | B[1] | B[2] | B[3], M * 1, 64, 2), // Pure Dust worth of one Ingot or Gem. Introduced by Alblaka. + nugget("Nuggets", "", " Nugget", true, true, false, false, false, false, false, true, false, false, B[1], M / 9, 64, 9), // A Nugget. Introduced by Eloraam + plateAlloy("Alloy Plates", "", "", true, false, false, false, false, false, false, false, false, false, B[1], -1, 64, 17), // Special Alloys have this prefix. + plateSteamcraft("Steamcraft Plates", "", "", false, false, false, false, false, false, false, false, false, false, B[1], -1, 64, 17), + plateDense("Dense Plates", "Dense ", " Plate", true, true, false, false, false, false, true, true, false, false, B[1], M * 9, 8, 22), // 9 Plates combined in one Item. + plateQuintuple("5x Plates", "Quintuple ", " Plate", true, true, false, false, false, false, true, true, false, false, B[1], M * 5, 12, 21), + plateQuadruple("4x Plates", "Quadruple ", " Plate", true, true, false, false, false, false, true, true, false, false, B[1], M * 4, 16, 20), + @Deprecated plateQuad("4x Plates", "", "", false, false, false, false, false, false, false, false, false, false, B[1], -1, 16, 20), + plateTriple("3x Plates", "Triple ", " Plate", true, true, false, false, false, false, true, true, false, false, B[1], M * 3, 21, 19), + plateDouble("2x Plates", "Double ", " Plate", true, true, false, false, false, false, true, true, false, false, B[1], M * 2, 32, 18), + plate("Plates", "", " Plate", true, true, false, false, false, false, true, true, false, false, B[1] | B[2], M * 1, 64, 17), // Regular Plate made of one Ingot/Dust. Introduced by Calclavia + foil("Foils", "", " Foil", true, true, false, false, false, false, true, true, false, false, B[1], M / 4, 64, 29), // Foil made of 1/4 Ingot/Dust. + stickLong("Long Sticks/Rods", "Long ", " Rod", true, true, false, false, false, false, true, true, false, false, B[1] | B[2], M * 1, 64, 54), // Stick made of an Ingot. + stick("Sticks/Rods", "", " Rod", true, true, false, false, false, false, true, true, false, false, B[1] | B[2], M / 2, 64, 23), // Stick made of half an Ingot. Introduced by Eloraam + round("Rounds", "", " Round", true, true, false, false, false, false, true, true, false, false, B[1], M / 9, 64, 25), // consisting out of one Nugget. + bolt("Bolts", "", " Bolt", true, true, false, false, false, false, true, true, false, false, B[1] | B[2], M / 8, 64, 26), // consisting out of 1/8 Ingot or 1/4 Stick. + screw("Screws", "", " Screw", true, true, false, false, false, false, true, true, false, false, B[1] | B[2], M / 9, 64, 27), // consisting out of a Bolt. + ring("Rings", "", " Ring", true, true, false, false, false, false, true, true, false, false, B[1], M / 4, 64, 28), // consisting out of 1/2 Stick. + springSmall("Small Springs", "Small ", " Spring", true, true, false, false, false, false, true, true, false, false, B[1], M / 4, 64, 55), // consisting out of 1 Fine Wire. + spring("Springs", "", " Spring", true, true, false, false, false, false, true, true, false, false, B[1], M * 1, 64, 56), // consisting out of 2 Sticks. + wireFine("Fine Wires", "Fine ", " Wire", true, true, false, false, false, false, true, true, false, false, B[1], M / 8, 64, 51), // consisting out of 1/8 Ingot or 1/4 Wire. + rotor("Rotors", "", " Rotor", true, true, false, false, false, false, true, true, false, false, B[7], M * 4 + M / 4 + M / 9, 16, 53), // consisting out of 4 Plates, 1 Ring and 1 Screw. + gearGtSmall("Small Gears", "Small ", " Gear", true, true, false, false, false, false, true, true, false, false, B[7], M * 1, 64, 52), + gearGt("Gears", "", " Gear", true, true, false, false, false, false, true, true, false, false, B[7], M * 4, 16, 63), // Introduced by me because BuildCraft has ruined the gear Prefix... + lens("Lenses", "", " Lens", true, true, false, false, false, false, true, true, false, false, B[2], (M * 3) / 4, 64, 24), // 3/4 of a Plate or Gem used to shape a Lense. Normally only used on Transparent Materials. + crateGtDust("Crates of Dust", "Crate of ", " Dust", true, true, false, true, false, false, false, true, false, false, B[0] | B[1] | B[2] | B[3], -1, 64, 96), // consisting out of 16 Dusts. + crateGtPlate("Crates of Plates", "Crate of ", " Plate", true, true, false, true, false, false, false, true, false, false, B[1] | B[2], -1, 64, 99), // consisting out of 16 Plates. + crateGtIngot("Crates of Ingots", "Crate of ", " Ingot", true, true, false, true, false, false, false, true, false, false, B[1], -1, 64, 97), // consisting out of 16 Ingots. + crateGtGem("Crates of Gems", "Crate of ", " Gem", true, true, false, true, false, false, false, true, false, false, B[2], -1, 64, 98), // consisting out of 16 Gems. + cellPlasma("Cells of Plasma", "", " Plasma Cell", true, true, true, true, false, false, false, true, false, false, B[5], M * 1, 64, 31), // Hot Cell full of Plasma, which can be used in the Plasma Generator. + cell("Cells", "", " Cell", true, true, true, true, false, false, true, true, false, false, B[4] | B[8], M * 1, 64, 30), // Regular Gas/Fluid Cell. Introduced by Calclavia + bucket("Buckets", "", " Bucket", true, true, true, true, false, false, true, false, false, false, B[4] | B[8], M * 1, 16, -1), // A vanilla Iron Bucket filled with the Material. + bottle("Bottles", "", " Bottle", true, true, true, true, false, false, false, false, false, false, B[4] | B[8], -1, 16, -1), // Glass Bottle containing a Fluid. + capsule("Capsules", "", " Capsule", false, true, true, true, false, false, false, false, false, false, B[4] | B[8], M * 1, 16, -1), + crystal("Crystals", "", " Crystal", false, true, false, false, false, false, true, false, false, false, B[2], M * 1, 64, -1), + bulletGtSmall("Small Bullets", "Small ", " Bullet", true, true, false, false, true, false, true, false, true, false, B[6] | B[8], M / 9, 64, -1), + bulletGtMedium("Medium Bullets", "Medium ", " Bullet", true, true, false, false, true, false, true, false, true, false, B[6] | B[8], M / 6, 64, -1), + bulletGtLarge("Large Bullets", "Large ", " Bullet", true, true, false, false, true, false, true, false, true, false, B[6] | B[8], M / 3, 64, -1), + arrowGtWood("Regular Arrows", "", " Arrow", true, true, false, false, true, false, true, false, true, false, B[6], M / 4, 64, 57), // Arrow made of 1/4 Ingot/Dust + Wooden Stick. + arrowGtPlastic("Light Arrows", "Light ", " Arrow", true, true, false, false, true, false, true, false, true, false, B[6], M / 4, 64, 58), // Arrow made of 1/4 Ingot/Dust + Plastic Stick. + arrow("Arrows", "", "", false, false, true, false, false, false, false, false, true, false, B[6], -1, 64, 57), + toolHeadArrow("Arrow Heads", "", " Arrow Head", true, true, false, false, false, false, true, true, false, false, B[6], M / 4, 64, 46), // consisting out of 1/4 Ingot. + toolHeadSword("Sword Blades", "", " Sword Blade", true, true, false, false, false, false, true, true, false, false, B[6], M * 2, 16, 32), // consisting out of 2 Ingots. + toolHeadPickaxe("Pickaxe Heads", "", " Pickaxe Head", true, true, false, false, false, false, true, true, false, false, B[6], M * 3, 16, 33), // consisting out of 3 Ingots. + toolHeadShovel("Shovel Heads", "", " Shovel Head", true, true, false, false, false, false, true, true, false, false, B[6], M * 1, 16, 34), // consisting out of 1 Ingots. + toolHeadUniversalSpade("Universal Spade Heads", "", " Universal Spade Head", true, true, false, false, false, false, true, true, false, false, B[6], M * 1, 16, 43), // consisting out of 1 Ingots. + toolHeadAxe("Axe Heads", "", " Axe Head", true, true, false, false, false, false, true, true, false, false, B[6], M * 3, 16, 35), // consisting out of 3 Ingots. + toolHeadHoe("Hoe Heads", "", " Hoe Head", true, true, false, false, false, false, true, true, false, false, B[6], M * 2, 16, 36), // consisting out of 2 Ingots. + toolHeadSense("Sense Blades", "", " Sense Blade", true, true, false, false, false, false, true, true, false, false, B[6], M * 3, 16, 44), // consisting out of 3 Ingots. + toolHeadFile("File Heads", "", " File Head", true, true, false, false, false, false, true, true, false, false, B[6], M * 2, 16, 38), // consisting out of 2 Ingots. + toolHeadHammer("Hammer Heads", "", " Hammer Head", true, true, false, false, false, false, true, true, false, false, B[6], M * 6, 16, 37), // consisting out of 6 Ingots. + toolHeadPlow("Plow Heads", "", " Plow Head", true, true, false, false, false, false, true, true, false, false, B[6], M * 4, 16, 45), // consisting out of 4 Ingots. + toolHeadSaw("Saw Blades", "", " Saw Blade", true, true, false, false, false, false, true, true, false, false, B[6], M * 2, 16, 39), // consisting out of 2 Ingots. + toolHeadBuzzSaw("Buzzsaw Blades", "", " Buzzsaw Blade", true, true, false, false, false, false, true, true, false, false, B[6], M * 4, 16, 48), // consisting out of 4 Ingots. + toolHeadScrewdriver("Screwdriver Tips", "", " Screwdriver Tip", true, true, false, false, false, false, true, false, false, false, B[6], M * 1, 16, 47), // consisting out of 1 Ingots. + toolHeadDrill("Drill Tips", "", " Drill Tip", true, true, false, false, false, false, true, true, false, false, B[6], M * 4, 16, 40), // consisting out of 4 Ingots. + toolHeadChainsaw("Chainsaw Tips", "", " Chainsaw Tip", true, true, false, false, false, false, true, true, false, false, B[6], M * 2, 16, 41), // consisting out of 2 Ingots. + toolHeadWrench("Wrench Tips", "", " Wrench Tip", true, true, false, false, false, false, true, true, false, false, B[6], M * 4, 16, 42), // consisting out of 4 Ingots. + turbineBlade("Turbine Blades", "", " Turbine Blade", true, true, false, false, false, false, true, true, false, false, B[6], M * 6, 64, 100), // consisting out of 6 Ingots. + toolSword("Swords", "", "", false, true, false, false, false, false, true, false, true, false, B[6], M * 2, 1, -1), // vanilly Sword + toolPickaxe("Pickaxes", "", "", false, true, false, false, false, false, true, false, true, false, B[6], M * 3, 1, -1), // vanilly Pickaxe + toolShovel("Shovels", "", "", false, true, false, false, false, false, true, false, true, false, B[6], M * 1, 1, -1), // vanilly Shovel + toolAxe("Axes", "", "", false, true, false, false, false, false, true, false, true, false, B[6], M * 3, 1, -1), // vanilly Axe + toolHoe("Hoes", "", "", false, true, false, false, false, false, true, false, true, false, B[6], M * 2, 1, -1), // vanilly Hoe + toolShears("Shears", "", "", false, true, false, false, false, false, true, false, true, false, B[6], M * 2, 1, -1), // vanilly Shears + tool("Tools", "", "", false, false, false, false, false, false, false, false, true, false, B[6], -1, 1, -1), // toolPot, toolSkillet, toolSaucepan, toolBakeware, toolCuttingboard, toolMortarandpestle, toolMixingbowl, toolJuicer + compressedCobblestone("9^X Compressed Cobblestones", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + compressedStone("9^X Compressed Stones", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + compressedDirt("9^X Compressed Dirt", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + compressedGravel("9^X Compressed Gravel", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + compressedSand("9^X Compressed Sand", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + compressed("Compressed Materials", "Compressed ", "", true, true, false, false, false, false, true, false, false, false, 0, M * 2, 64, -1), // Compressed Material, worth 1 Unit. Introduced by Galacticraft + glass("Glasses", "", "", false, false, true, false, true, false, false, false, false, false, 0, -1, 64, -1), + paneGlass("Glass Panes", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64, -1), + blockGlass("Glass Blocks", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64, -1), + blockWool("Wool Blocks", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64, -1), + block_("Random Blocks", "", "", false, false, false, false, false, true, false, false, false, false, 0, -1, 64, -1), // IGNORE + block("Storage Blocks", "Block of ", "", true, true, false, false, false, true, true, false, false, false, 0, M * 9, 64, 71), // Storage Block consisting out of 9 Ingots/Gems/Dusts. Introduced by CovertJaguar + craftingTool("Crafting Tools", "", "", false, false, false, false, false, false, false, false, true, false, 0, -1, 64, -1), // Special Prefix used mainly for the Crafting Handler. + crafting("Crafting Ingredients", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), // Special Prefix used mainly for the Crafting Handler. + craft("Crafting Stuff?", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), // Special Prefix used mainly for the Crafting Handler. + log("Logs", "", "", false, false, false, false, false, true, false, false, false, false, 0, -1, 64, -1), // Prefix used for Logs. Usually as "logWood". Introduced by Eloraam + slab("Slabs", "", "", false, false, false, false, false, true, false, false, false, false, 0, -1, 64, -1), // Prefix used for Slabs. Usually as "slabWood" or "slabStone". Introduced by SirSengir + stair("Stairs", "", "", false, false, false, false, false, true, false, false, false, false, 0, -1, 64, -1), // Prefix used for Stairs. Usually as "stairWood" or "stairStone". Introduced by SirSengir + fence("Fences", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), // Prefix used for Fences. Usually as "fenceWood". Introduced by Forge + plank("Planks", "", "", false, false, false, false, false, true, false, false, false, false, 0, -1, 64, -1), // Prefix for Planks. Usually "plankWood". Introduced by Eloraam + treeSapling("Saplings", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64, -1), // Prefix for Saplings. + treeLeaves("Leaves", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64, -1), // Prefix for Leaves. + tree("Tree Parts", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), // Prefix for Tree Parts. + stoneCobble("Cobblestones", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64, -1), // Cobblestone Prefix for all Cobblestones. + stoneSmooth("Smoothstones", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64, -1), // Smoothstone Prefix. + stoneMossyBricks("mossy Stone Bricks", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64, -1), // Mossy Stone Bricks. + stoneMossy("Mossy Stones", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64, -1), // Mossy Cobble. + @Deprecated stoneBricksMossy("Mossy Stone Bricks", "", "", false, false, false, false, false, true, false, false, false, false, 0, -1, 64, -1), + stoneBricks("Stone Bricks", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64, -1), // Stone Bricks. + @Deprecated stoneBrick("Stone Bricks", "", "", false, false, false, false, false, true, false, false, false, false, 0, -1, 64, -1), + stoneCracked("Cracked Stones", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64, -1), // Cracked Bricks. + stoneChiseled("Chiseled Stones", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64, -1), // Chiseled Stone. + stone("Stones", "", "", false, true, true, false, true, true, false, false, false, false, 0, -1, 64, -1), // Prefix to determine which kind of Rock this is. + cobblestone("Cobblestones", "", "", false, true, true, false, false, true, false, false, false, false, 0, -1, 64, -1), + rock("Rocks", "", "", false, true, true, false, true, true, false, false, false, false, 0, -1, 64, -1), // Prefix to determine which kind of Rock this is. + record("Records", "", "", false, false, true, false, false, false, false, false, false, false, 0, -1, 1, -1), + rubble("Rubbles", "", "", true, true, true, false, false, false, false, false, false, false, 0, -1, 64, -1), + scraps("Scraps", "", "", true, true, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + scrap("Scraps", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + item_("Items", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), // IGNORE + item("Items", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), // Random Item. Introduced by Alblaka + book("Books", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), // Used for Books of any kind. + paper("Papers", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), // Used for Papers of any kind. + dye("Dyes", "", "", false, false, true, false, false, false, false, false, false, false, 0, -1, 64, -1), // Used for the 16 dyes. Introduced by Eloraam + stainedClay("Stained Clays", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64, -1), // Used for the 16 colors of Stained Clay. Introduced by Forge + armorHelmet("Helmets", "", "", false, true, false, false, false, false, true, false, true, false, B[6], M * 5, 1, -1), // vanilly Helmet + armorChestplate("Chestplates", "", "", false, true, false, false, false, false, true, false, true, false, B[6], M * 8, 1, -1), // vanilly Chestplate + armorLeggings("Leggings", "", "", false, true, false, false, false, false, true, false, true, false, B[6], M * 7, 1, -1), // vanilly Pants + armorBoots("Boots", "", "", false, true, false, false, false, false, true, false, true, false, B[6], M * 4, 1, -1), // vanilly Boots + armor("Armor Parts", "", "", false, false, false, false, false, false, false, false, true, false, B[6], -1, 1, -1), + frameGt("Frame Boxes", "", "", true, true, false, false, true, false, true, false, false, false, 0, M * 2, 64, 83), + pipeTiny("Tiny Pipes", "Tiny ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0, M / 2, 64, 78), + pipeSmall("Small Pipes", "Small ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0, M * 1, 64, 79), + pipeMedium("Medium Pipes", "Medium ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0, M * 3, 64, 80), + pipeLarge("Large pipes", "Large ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0, M * 6, 64, 81), + pipeHuge("Huge Pipes", "Huge ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0, M * 12, 64, 82), + pipeRestrictiveTiny("Tiny Restrictive Pipes", "Tiny Restrictive ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0, M / 2, 64, 78), + pipeRestrictiveSmall("Small Restrictive Pipes", "Small Restrictive ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0, M * 1, 64, 79), + pipeRestrictiveMedium("Medium Restrictive Pipes", "Medium Restrictive ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0, M * 3, 64, 80), + pipeRestrictiveLarge("Large Restrictive Pipes", "Large Restrictive ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0, M * 6, 64, 81), + pipeRestrictiveHuge("Huge Restrictive Pipes", "Huge Restrictive ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0, M * 12, 64, 82), + pipe("Pipes", "", " Pipe", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, 77), + wireGt16("16x Wires", "16x ", " Wire", true, true, false, false, false, false, true, false, false, false, 0, M * 8, 64, -1), + wireGt12("12x Wires", "12x ", " Wire", true, true, false, false, false, false, true, false, false, false, 0, M * 6, 64, -1), + wireGt08("8x Wires", "8x ", " Wire", true, true, false, false, false, false, true, false, false, false, 0, M * 4, 64, -1), + wireGt04("4x Wires", "4x ", " Wire", true, true, false, false, false, false, true, false, false, false, 0, M * 2, 64, -1), + wireGt02("2x Wires", "2x ", " Wire", true, true, false, false, false, false, true, false, false, false, 0, M * 1, 64, -1), + wireGt01("1x Wires", "1x ", " Wire", true, true, false, false, false, false, true, false, false, false, 0, M / 2, 64, -1), + cableGt12("12x Cables", "12x ", " Cable", true, true, false, false, false, false, true, false, false, false, 0, M * 6, 64, -1), + cableGt08("8x Cables", "8x ", " Cable", true, true, false, false, false, false, true, false, false, false, 0, M * 4, 64, -1), + cableGt04("4x Cables", "4x ", " Cable", true, true, false, false, false, false, true, false, false, false, 0, M * 2, 64, -1), + cableGt02("2x Cables", "2x ", " Cable", true, true, false, false, false, false, true, false, false, false, 0, M * 1, 64, -1), + cableGt01("1x Cables", "1x ", " Cable", true, true, false, false, false, false, true, false, false, false, 0, M / 2, 64, -1), + + /* Electric Components. + * * usual Materials for this are: * Primitive (Tier 1) * Basic (Tier 2) as used by UE as well : IC2 Circuit and RE-Battery @@ -216,583 +216,620 @@ public enum OrePrefixes { * Ultimate (Tier 8) : Data Orb and Lapotronic Energy Orb * Infinite (Cheaty) */ - batterySingleuse ("Single Use Batteries" , "" , "" , false, true , false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - battery ("Reusable Batteries" , "" , "" , false, true , false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Introduced by Calclavia - circuit ("Circuits" , "" , "" , true , true , false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Introduced by Calclavia - chipset ("Chipsets" , "" , "" , true , true , false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Introduced by Buildcraft - computer ("Computers" , "" , "" , true , true , false, false, true , false, false, false, false, false, 0 , -1, 64, -1), // A whole Computer. "computerMaster" = ComputerCube - - // random known prefixes without special abilities. - skull ("Skulls" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - plating ("Platings" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - dinosaur ("Dinosaurs" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - travelgear ("Travel Gear" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - bauble ("Baubles" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - cluster ("Clusters" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - grafter ("Grafters" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - scoop ("Scoops" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - frame ("Frames" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - tome ("Tomes" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - junk ("Junk" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - bee ("Bees" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - rod ("Rods" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - dirt ("Dirts" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - sand ("Sands" , "" , "" , false, false, true , false, false, true , false, false, false, false, 0 , -1, 64, -1), - grass ("Grasses" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - gravel ("Gravels" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - mushroom ("Mushrooms" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - wood ("Woods" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Introduced by Eloraam - drop ("Drops" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - fuel ("Fuels" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - panel ("Panels" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - brick ("Bricks" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - chunk ("Chunks" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - wire ("Wires" , "" , "" , false, false, false, false, true , false, false, false, false, false, 0 , -1, 64, -1), - seed ("Seeds" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - reed ("Reeds" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - sheetDouble ("2x Sheets" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - sheet ("Sheets" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - crop ("Crops" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - plant ("Plants" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - coin ("Coins" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - lumar ("Lumars" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - ground ("Grounded Stuff" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - cable ("Cables" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - component ("Components" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - wax ("Waxes" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - wall ("Walls" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - tube ("Tubes" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - list ("Lists" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - food ("Foods" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - gear ("Gears" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), // Introduced by SirSengir - coral ("Corals" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - flower ("Flowers" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - storage ("Storages" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - material ("Materials" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - plasma ("Plasmas" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - element ("Elements" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - molecule ("Molecules" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - wafer ("Wafers" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - orb ("Orbs" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - handle ("Handles" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - blade ("Blades" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - head ("Heads" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - motor ("Motors" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - bit ("Bits" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - shears ("Shears" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - turbine ("Turbines" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - fertilizer ("Fertilizers" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - chest ("Chests" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - raw ("Raw Things" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - stainedGlass ("Stained Glasses" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - mystic ("Mystic Stuff" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - mana ("Mana Stuff" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - rune ("Runes" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - petal ("Petals" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - pearl ("Pearls" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - powder ("Powders" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - soulsand ("Soulsands" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - obsidian ("Obsidians" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - glowstone ("Glowstones" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - beans ("Beans" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - br ("br" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - essence ("Essences" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - alloy ("Alloys" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - cooking ("Cooked Things" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - elven ("Elven Stuff" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - reactor ("Reactors" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - mffs ("MFFS" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - projred ("Project Red" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - ganys ("Ganys Stuff" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - liquid ("Liquids" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - bars ("Bars" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1), - bar ("Bars" , "" , "" , false, false, false, false, false, false, false, false, false, false, 0 , -1, 64, -1); - - static { - pulp.mPrefixInto = dust; - oreGem.mPrefixInto = ore; - leaves.mPrefixInto = treeLeaves; - sapling.mPrefixInto = treeSapling; - itemDust.mPrefixInto = dust; - dustDirty.mPrefixInto = dustImpure; - denseore.mPrefixInto = oreDense; - ingotQuad.mPrefixInto = ingotQuadruple; - plateQuad.mPrefixInto = plateQuadruple; - stoneBrick.mPrefixInto = stoneBricks; - stoneBricksMossy.mPrefixInto = stoneMossyBricks; - - ingotHot.mHeatDamage = 3.0F; - cellPlasma.mHeatDamage = 6.0F; - - block.ignoreMaterials(Materials.Ice, Materials.Snow, Materials.Concrete, Materials.Glass, Materials.Glowstone, Materials.DarkIron, Materials.Marble, Materials.Quartz, Materials.CertusQuartz, Materials.Limestone); - ingot.ignoreMaterials(Materials.Brick, Materials.NetherBrick); - - dust.addFamiliarPrefix(dustTiny); - dust.addFamiliarPrefix(dustSmall); - dustTiny.addFamiliarPrefix(dust); - dustTiny.addFamiliarPrefix(dustSmall); - dustSmall.addFamiliarPrefix(dust); - dustSmall.addFamiliarPrefix(dustTiny); - - ingot.addFamiliarPrefix(nugget); - nugget.addFamiliarPrefix(ingot); - - for (OrePrefixes tPrefix1 : values()) if (tPrefix1.name().startsWith("ore" )) for (OrePrefixes tPrefix2 : values()) if (tPrefix2.name().startsWith("ore" )) tPrefix1.addFamiliarPrefix(tPrefix2); - for (OrePrefixes tPrefix1 : values()) if (tPrefix1.name().startsWith("pipe" )) for (OrePrefixes tPrefix2 : values()) if (tPrefix2.name().startsWith("pipe" )) tPrefix1.addFamiliarPrefix(tPrefix2); - for (OrePrefixes tPrefix1 : values()) if (tPrefix1.name().startsWith("wireGt" )) for (OrePrefixes tPrefix2 : values()) if (tPrefix2.name().startsWith("wireGt" )) tPrefix1.addFamiliarPrefix(tPrefix2); - for (OrePrefixes tPrefix1 : values()) if (tPrefix1.name().startsWith("cableGt" )) for (OrePrefixes tPrefix2 : values()) if (tPrefix2.name().startsWith("cableGt" )) tPrefix1.addFamiliarPrefix(tPrefix2); - - // These are only the important ones. - gem .mNotGeneratedItems.add(Materials.Coal); - gem .mNotGeneratedItems.add(Materials.Charcoal); - gem .mNotGeneratedItems.add(Materials.NetherStar); - gem .mNotGeneratedItems.add(Materials.Diamond); - gem .mNotGeneratedItems.add(Materials.Emerald); - gem .mNotGeneratedItems.add(Materials.NetherQuartz); - gem .mNotGeneratedItems.add(Materials.EnderPearl); - gem .mNotGeneratedItems.add(Materials.EnderEye); - gem .mNotGeneratedItems.add(Materials.Flint); - gem .mNotGeneratedItems.add(Materials.Lapis); - dust .mNotGeneratedItems.add(Materials.Bone); - dust .mNotGeneratedItems.add(Materials.Redstone); - dust .mNotGeneratedItems.add(Materials.Glowstone); - dust .mNotGeneratedItems.add(Materials.Gunpowder); - dust .mNotGeneratedItems.add(Materials.Sugar); - dust .mNotGeneratedItems.add(Materials.Blaze); - stick .mNotGeneratedItems.add(Materials.Wood); - stick .mNotGeneratedItems.add(Materials.Bone); - stick .mNotGeneratedItems.add(Materials.Blaze); - ingot .mNotGeneratedItems.add(Materials.Iron); - ingot .mNotGeneratedItems.add(Materials.Gold); - ingot .mNotGeneratedItems.add(Materials.Brick); - ingot .mNotGeneratedItems.add(Materials.BrickNether); - ingot .mNotGeneratedItems.add(Materials.WoodSealed); - ingot .mNotGeneratedItems.add(Materials.Wood); - nugget .mNotGeneratedItems.add(Materials.Gold); - plate .mNotGeneratedItems.add(Materials.Paper); - cell .mNotGeneratedItems.add(Materials.Empty); - cell .mNotGeneratedItems.add(Materials.Water); - cell .mNotGeneratedItems.add(Materials.Lava); - cell .mNotGeneratedItems.add(Materials.ConstructionFoam); - cell .mNotGeneratedItems.add(Materials.UUMatter); - cell .mNotGeneratedItems.add(Materials.BioFuel); - cell .mNotGeneratedItems.add(Materials.CoalFuel); - bucket .mNotGeneratedItems.add(Materials.Empty); - bucket .mNotGeneratedItems.add(Materials.Lava); - bucket .mNotGeneratedItems.add(Materials.Milk); - bucket .mNotGeneratedItems.add(Materials.Water); - bottle .mNotGeneratedItems.add(Materials.Empty); - bottle .mNotGeneratedItems.add(Materials.Water); - bottle .mNotGeneratedItems.add(Materials.Milk); - block .mNotGeneratedItems.add(Materials.Iron); - block .mNotGeneratedItems.add(Materials.Gold); - block .mNotGeneratedItems.add(Materials.Lapis); - block .mNotGeneratedItems.add(Materials.Emerald); - block .mNotGeneratedItems.add(Materials.Redstone); - block .mNotGeneratedItems.add(Materials.Diamond); - block .mNotGeneratedItems.add(Materials.Coal); - toolHeadArrow .mNotGeneratedItems.add(Materials.Glass); - - //----- - - dustImpure .mGeneratedItems.add(Materials.GraniteRed); - dustImpure .mGeneratedItems.add(Materials.GraniteBlack); - dustImpure .mGeneratedItems.add(Materials.Quartzite); - dustImpure .mGeneratedItems.add(Materials.Flint); - dustImpure .mGeneratedItems.add(Materials.Redrock); - dustImpure .mGeneratedItems.add(Materials.Basalt); - dustImpure .mGeneratedItems.add(Materials.Marble); - dustImpure .mGeneratedItems.add(Materials.Netherrack); - dustImpure .mGeneratedItems.add(Materials.Endstone); - dustImpure .mGeneratedItems.add(Materials.Stone); - - plate .mGeneratedItems.add(Materials.Redstone); - plate .mGeneratedItems.add(Materials.Concrete); - plate .mGeneratedItems.add(Materials.GraniteRed); - plate .mGeneratedItems.add(Materials.GraniteBlack); - plate .mGeneratedItems.add(Materials.Glowstone); - plate .mGeneratedItems.add(Materials.Nikolite); - plate .mGeneratedItems.add(Materials.Obsidian); - - plate .mGeneratedItems.add(Materials.Paper); - plateDouble .mGeneratedItems.add(Materials.Paper); - plateTriple .mGeneratedItems.add(Materials.Paper); - plateQuadruple .mGeneratedItems.add(Materials.Paper); - plateQuintuple .mGeneratedItems.add(Materials.Paper); - - lens .mGeneratedItems.add(Materials.EnderPearl); - lens .mGeneratedItems.add(Materials.EnderEye); - - stickLong .mGeneratedItems.add(Materials.Blaze); - - //----- - - dust .mGeneratedItems.addAll(dustPure.mGeneratedItems); - dust .mGeneratedItems.addAll(dustImpure.mGeneratedItems); - dust .mGeneratedItems.addAll(dustRefined.mGeneratedItems); - dustTiny .mGeneratedItems.addAll(dust.mGeneratedItems); - dustSmall .mGeneratedItems.addAll(dust.mGeneratedItems); - crateGtDust .mGeneratedItems.addAll(dust.mGeneratedItems); - crateGtIngot .mGeneratedItems.addAll(ingot.mGeneratedItems); - crateGtGem .mGeneratedItems.addAll(gem.mGeneratedItems); - crateGtPlate .mGeneratedItems.addAll(plate.mGeneratedItems); - - //----- - - toolHeadFile .mCondition = new ICondition.And(new ICondition.Not(SubTag.NO_SMASHING), new ICondition.Not(SubTag.BOUNCY)); - toolHeadSaw .mCondition = new ICondition.And(new ICondition.Not(SubTag.NO_SMASHING), new ICondition.Not(SubTag.BOUNCY)); - toolHeadDrill .mCondition = new ICondition.And(new ICondition.Not(SubTag.NO_SMASHING), new ICondition.Not(SubTag.BOUNCY)); - toolHeadChainsaw .mCondition = new ICondition.And(new ICondition.Not(SubTag.NO_SMASHING), new ICondition.Not(SubTag.BOUNCY)); - toolHeadWrench .mCondition = new ICondition.And(new ICondition.Not(SubTag.NO_SMASHING), new ICondition.Not(SubTag.BOUNCY)); - toolHeadBuzzSaw .mCondition = new ICondition.And(new ICondition.Not(SubTag.NO_SMASHING), new ICondition.Not(SubTag.BOUNCY)); - - rotor .mCondition = new ICondition.Nor(SubTag.CRYSTAL, SubTag.STONE, SubTag.BOUNCY); - - spring .mCondition = new ICondition.Or(SubTag.STRETCHY, SubTag.BOUNCY, new ICondition.Not(SubTag.NO_SMASHING)); - springSmall .mCondition = new ICondition.Or(SubTag.STRETCHY, SubTag.BOUNCY, new ICondition.Not(SubTag.NO_SMASHING)); - - gemChipped .mCondition = new ICondition.And(SubTag.TRANSPARENT, SubTag.CRYSTAL, new ICondition.Not(SubTag.QUARTZ), new ICondition.Not(SubTag.PEARL), new ICondition.Not(SubTag.MAGICAL)); - gemFlawed .mCondition = new ICondition.And(SubTag.TRANSPARENT, SubTag.CRYSTAL, new ICondition.Not(SubTag.QUARTZ), new ICondition.Not(SubTag.PEARL), new ICondition.Not(SubTag.MAGICAL)); - gemFlawless .mCondition = new ICondition.And(SubTag.TRANSPARENT, SubTag.CRYSTAL, new ICondition.Not(SubTag.QUARTZ), new ICondition.Not(SubTag.PEARL), new ICondition.Not(SubTag.MAGICAL)); - gemExquisite .mCondition = new ICondition.And(SubTag.TRANSPARENT, SubTag.CRYSTAL, new ICondition.Not(SubTag.QUARTZ), new ICondition.Not(SubTag.PEARL), new ICondition.Not(SubTag.MAGICAL)); - - lens .mCondition = new ICondition.Or(SubTag.MAGICAL, new ICondition.And(SubTag.TRANSPARENT, SubTag.HAS_COLOR)); - - plateDouble .mCondition = new ICondition.Or(SubTag.PAPER, new ICondition.Not(SubTag.NO_SMASHING)); - plateTriple .mCondition = new ICondition.Or(SubTag.PAPER, new ICondition.Not(SubTag.NO_SMASHING)); - plateQuadruple .mCondition = new ICondition.Or(SubTag.PAPER, new ICondition.Not(SubTag.NO_SMASHING)); - plateQuintuple .mCondition = new ICondition.Or(SubTag.PAPER, new ICondition.Not(SubTag.NO_SMASHING)); - - plateDense .mCondition = new ICondition.Not(SubTag.NO_SMASHING); - - ingotDouble .mCondition = new ICondition.Not(SubTag.NO_SMASHING); - ingotTriple .mCondition = new ICondition.Not(SubTag.NO_SMASHING); - ingotQuadruple .mCondition = new ICondition.Not(SubTag.NO_SMASHING); - ingotQuintuple .mCondition = new ICondition.Not(SubTag.NO_SMASHING); - - wireFine .mCondition = SubTag.METAL; - - //----- - - pipeRestrictiveTiny.mSecondaryMaterial = new MaterialStack(Materials.Steel , ring.mMaterialAmount); - pipeRestrictiveSmall.mSecondaryMaterial = new MaterialStack(Materials.Steel , ring.mMaterialAmount * 2); - pipeRestrictiveMedium.mSecondaryMaterial = new MaterialStack(Materials.Steel , ring.mMaterialAmount * 3); - pipeRestrictiveLarge.mSecondaryMaterial = new MaterialStack(Materials.Steel , ring.mMaterialAmount * 4); - pipeRestrictiveHuge.mSecondaryMaterial = new MaterialStack(Materials.Steel , ring.mMaterialAmount * 5); - cableGt12.mSecondaryMaterial = new MaterialStack(Materials.Rubber , plate.mMaterialAmount * 4); - cableGt08.mSecondaryMaterial = new MaterialStack(Materials.Rubber , plate.mMaterialAmount * 3); - cableGt04.mSecondaryMaterial = new MaterialStack(Materials.Rubber , plate.mMaterialAmount * 2); - cableGt02.mSecondaryMaterial = new MaterialStack(Materials.Rubber , plate.mMaterialAmount); - cableGt01.mSecondaryMaterial = new MaterialStack(Materials.Rubber , plate.mMaterialAmount); - bucket.mSecondaryMaterial = new MaterialStack(Materials.Iron , ingot.mMaterialAmount * 3); - cell.mSecondaryMaterial = new MaterialStack(Materials.Tin , plate.mMaterialAmount * 2); - cellPlasma.mSecondaryMaterial = new MaterialStack(Materials.Tin , plate.mMaterialAmount * 2); - oreRedgranite.mSecondaryMaterial = new MaterialStack(Materials.GraniteRed , dust.mMaterialAmount); - oreBlackgranite.mSecondaryMaterial = new MaterialStack(Materials.GraniteBlack , dust.mMaterialAmount); - oreNetherrack.mSecondaryMaterial = new MaterialStack(Materials.Netherrack , dust.mMaterialAmount); - oreNether.mSecondaryMaterial = new MaterialStack(Materials.Netherrack , dust.mMaterialAmount); - oreEndstone.mSecondaryMaterial = new MaterialStack(Materials.Endstone , dust.mMaterialAmount); - oreEnd.mSecondaryMaterial = new MaterialStack(Materials.Endstone , dust.mMaterialAmount); - oreDense.mSecondaryMaterial = new MaterialStack(Materials.Stone , dust.mMaterialAmount); - orePoor.mSecondaryMaterial = new MaterialStack(Materials.Stone , dust.mMaterialAmount * 2); - oreSmall.mSecondaryMaterial = new MaterialStack(Materials.Stone , dust.mMaterialAmount * 2); - oreNormal.mSecondaryMaterial = new MaterialStack(Materials.Stone , dust.mMaterialAmount * 2); - oreRich.mSecondaryMaterial = new MaterialStack(Materials.Stone , dust.mMaterialAmount * 2); - ore.mSecondaryMaterial = new MaterialStack(Materials.Stone , dust.mMaterialAmount); - crushed.mSecondaryMaterial = new MaterialStack(Materials.Stone , dust.mMaterialAmount); - toolHeadDrill.mSecondaryMaterial = new MaterialStack(Materials.Steel , plate.mMaterialAmount * 4); - toolHeadChainsaw.mSecondaryMaterial = new MaterialStack(Materials.Steel , plate.mMaterialAmount * 4 + ring.mMaterialAmount * 2); - toolHeadWrench.mSecondaryMaterial = new MaterialStack(Materials.Steel , ring.mMaterialAmount + screw.mMaterialAmount * 2); - arrowGtWood.mSecondaryMaterial = new MaterialStack(Materials.Wood , stick.mMaterialAmount); - arrowGtPlastic.mSecondaryMaterial = new MaterialStack(Materials.Plastic , stick.mMaterialAmount); - bulletGtSmall.mSecondaryMaterial = new MaterialStack(Materials.Brass , ingot.mMaterialAmount / 9); - bulletGtMedium.mSecondaryMaterial = new MaterialStack(Materials.Brass , ingot.mMaterialAmount / 6); - bulletGtLarge.mSecondaryMaterial = new MaterialStack(Materials.Brass , ingot.mMaterialAmount / 3); - } - - public final ArrayList mPrefixedItems = new ArrayList(); - - public boolean add(ItemStack aStack) { - if (aStack == null) return false; - if (!contains(aStack)) mPrefixedItems.add(aStack); - while (mPrefixedItems.contains(null)) mPrefixedItems.remove(null); - return true; - } - - public boolean contains(ItemStack aStack) { - if (aStack == null) return false; - for (ItemStack tStack : mPrefixedItems) if (GT_Utility.areStacksEqual(aStack, tStack, !tStack.hasTagCompound())) return true; - return false; - } - - public boolean doGenerateItem(Materials aMaterial) { - return aMaterial != null && aMaterial != Materials._NULL && ((aMaterial.mTypes & mMaterialGenerationBits) != 0 || mGeneratedItems.contains(aMaterial)) && !mNotGeneratedItems.contains(aMaterial) && (mCondition == null || mCondition.isTrue(aMaterial)); - } - - public boolean ignoreMaterials(Materials... aMaterials) { - for (Materials tMaterial : aMaterials) if (tMaterial != null) mIgnoredMaterials.add(tMaterial); - return true; - } - - public boolean isIgnored(Materials aMaterial) { - if (aMaterial != null && (!aMaterial.mUnificatable || aMaterial != aMaterial.mMaterialInto)) return true; - return mIgnoredMaterials.contains(aMaterial); - } - - public boolean addFamiliarPrefix(OrePrefixes aPrefix) { - if (aPrefix == null || mFamiliarPrefixes.contains(aPrefix) || aPrefix == this) return false; - return mFamiliarPrefixes.add(aPrefix); - } - - public boolean add(IOreRecipeRegistrator aRegistrator) { - if (aRegistrator == null) return false; - return mOreProcessing.add(aRegistrator); - } - - public void processOre(Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { - if (aMaterial != null && (aMaterial != Materials._NULL || mIsSelfReferencing || !mIsMaterialBased) && GT_Utility.isStackValid(aStack)) for (IOreRecipeRegistrator tRegistrator : mOreProcessing) { - if (D2) GT_Log.ore.println("Processing '" + aOreDictName + "' with the Prefix '" + name() + "' and the Material '" + aMaterial.name() + "' at " + GT_Utility.getClassName(tRegistrator)); - tRegistrator.registerOre(this, aMaterial, aOreDictName, aModName, GT_Utility.copyAmount(1, aStack)); - } - } - - public ItemStack mContainerItem = null; - public ICondition mCondition = null; - public byte mDefaultStackSize = 64; - public final short mTextureIndex; - public final String mRegularLocalName, mLocalizedMaterialPre, mLocalizedMaterialPost; - public final boolean mIsUsedForOreProcessing, mIsEnchantable, mIsUnificatable, mIsMaterialBased, mIsSelfReferencing, mIsContainer, mDontUnificateActively, mIsUsedForBlocks, mAllowNormalRecycling, mGenerateDefaultItem; - public MaterialStack mSecondaryMaterial = null; - public OrePrefixes mPrefixInto = this; - public final List mAspects = new ArrayList(); - public final Collection mFamiliarPrefixes = new HashSet(); - private final Collection mNotGeneratedItems = new HashSet(), mIgnoredMaterials = new HashSet(), mGeneratedItems = new HashSet(); - private final ArrayList mOreProcessing = new ArrayList(); - public float mHeatDamage = 0.0F; // Negative for Frost Damage - - /** - * Used to determine the amount of Material this Prefix contains. - * Multiply or Divide GregTech_API.MATERIAL_UNIT to get the Amounts in comparision to one Ingot. - * 0 = Null - * Negative = Undefined Amount - */ - public final long mMaterialAmount; - - /** - * Yes this Value can be changed to add Bits for the MetaGenerated-Item-Check. - */ - public int mMaterialGenerationBits = 0; - - private OrePrefixes(String aRegularLocalName, String aLocalizedMaterialPre, String aLocalizedMaterialPost, boolean aIsUnificatable, boolean aIsMaterialBased, boolean aIsSelfReferencing, boolean aIsContainer, boolean aDontUnificateActively, boolean aIsUsedForBlocks, boolean aAllowNormalRecycling, boolean aGenerateDefaultItem, boolean aIsEnchantable, boolean aIsUsedForOreProcessing, int aMaterialGenerationBits, long aMaterialAmount, int aDefaultStackSize, int aTextureindex) { - mIsUnificatable = aIsUnificatable; - mIsMaterialBased = aIsMaterialBased; - mIsSelfReferencing = aIsSelfReferencing; - mIsContainer = aIsContainer; - mDontUnificateActively = aDontUnificateActively; - mIsUsedForBlocks = aIsUsedForBlocks; - mAllowNormalRecycling = aAllowNormalRecycling; - mGenerateDefaultItem = aGenerateDefaultItem; - mIsEnchantable = aIsEnchantable; - mIsUsedForOreProcessing = aIsUsedForOreProcessing; - mMaterialGenerationBits = aMaterialGenerationBits; - mMaterialAmount = aMaterialAmount; - mRegularLocalName = aRegularLocalName; - mLocalizedMaterialPre = aLocalizedMaterialPre; - mLocalizedMaterialPost = aLocalizedMaterialPost; - mDefaultStackSize = (byte)aDefaultStackSize; - mTextureIndex = (short)aTextureindex; - - if (name().startsWith("ore")) { - new TC_AspectStack(TC_Aspects.TERRA, 1).addToAspectList(mAspects); - } else - if (name().startsWith("wire") || name().startsWith("cable")) { - new TC_AspectStack(TC_Aspects.ELECTRUM, 1).addToAspectList(mAspects); - } else - if (name().startsWith("dust")) { - new TC_AspectStack(TC_Aspects.PERDITIO, 1).addToAspectList(mAspects); - } else - if (name().startsWith("crushed")) { - new TC_AspectStack(TC_Aspects.PERFODIO, 1).addToAspectList(mAspects); - } else - if (name().startsWith("ingot") || name().startsWith("nugget")) { - new TC_AspectStack(TC_Aspects.METALLUM, 1).addToAspectList(mAspects); - } else - if (name().startsWith("armor")) { - new TC_AspectStack(TC_Aspects.TUTAMEN, 1).addToAspectList(mAspects); - } else - if (name().startsWith("stone")) { - new TC_AspectStack(TC_Aspects.TERRA, 1).addToAspectList(mAspects); - } else - if (name().startsWith("pipe")) { - new TC_AspectStack(TC_Aspects.ITER, 1).addToAspectList(mAspects); - } else - if (name().startsWith("gear")) { - new TC_AspectStack(TC_Aspects.MOTUS, 1).addToAspectList(mAspects); - new TC_AspectStack(TC_Aspects.MACHINA, 1).addToAspectList(mAspects); - } else - if (name().startsWith("frame") || name().startsWith("plate")) { - new TC_AspectStack(TC_Aspects.FABRICO, 1).addToAspectList(mAspects); - } else - if (name().startsWith("tool")) { - new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2).addToAspectList(mAspects); - } else - if (name().startsWith("gem") || name().startsWith("crystal") || name().startsWith("lens")) { - new TC_AspectStack(TC_Aspects.VITREUS, 1).addToAspectList(mAspects); - } else - if (name().startsWith("crate")) { - new TC_AspectStack(TC_Aspects.ITER, 2).addToAspectList(mAspects); - } else - if (name().startsWith("circuit")) { - new TC_AspectStack(TC_Aspects.COGNITO, 1).addToAspectList(mAspects); - } else - if (name().startsWith("computer")) { - new TC_AspectStack(TC_Aspects.COGNITO, 4).addToAspectList(mAspects); - } else - if (name().startsWith("battery")) { - new TC_AspectStack(TC_Aspects.ELECTRUM, 1).addToAspectList(mAspects); - } - } - - public static OrePrefixes getOrePrefix(String aOre) { - for (OrePrefixes tPrefix : values()) if (aOre.startsWith(tPrefix.toString())) { - if (tPrefix == oreNether && aOre.equals("oreNetherQuartz")) return ore; - return tPrefix; - } - return null; - } - - public static String stripPrefix(String aOre) { - for (OrePrefixes tPrefix : values()) { - if (aOre.startsWith(tPrefix.toString())) { - return aOre.replaceFirst(tPrefix.toString(), ""); - } - } - return aOre; - } - - public static String replacePrefix(String aOre, OrePrefixes aPrefix) { - for (OrePrefixes tPrefix : values()) { - if (aOre.startsWith(tPrefix.toString())) { - return aOre.replaceFirst(tPrefix.toString(), aPrefix.toString()); - } - } - return ""; - } - - public static OrePrefixes getPrefix(String aPrefixName) { - return getPrefix(aPrefixName, null); - } - - public static OrePrefixes getPrefix(String aPrefixName, OrePrefixes aReplacement) { - Object tObject = GT_Utility.getFieldContent(OrePrefixes.class, aPrefixName, false, false); - if (tObject != null && tObject instanceof OrePrefixes) return (OrePrefixes)tObject; - return aReplacement; - } - - public Object get(Object aMaterial) { - if (aMaterial instanceof Materials) return new ItemData(this, (Materials)aMaterial); - return name() + aMaterial; - } - - public static Materials getMaterial(String aOre) { - return Materials.get(stripPrefix(aOre)); - } + batterySingleuse("Single Use Batteries", "", "", false, true, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + battery("Reusable Batteries", "", "", false, true, false, false, false, false, false, false, false, false, 0, -1, 64, -1), // Introduced by Calclavia + circuit("Circuits", "", "", true, true, false, false, false, false, false, false, false, false, 0, -1, 64, -1), // Introduced by Calclavia + chipset("Chipsets", "", "", true, true, false, false, false, false, false, false, false, false, 0, -1, 64, -1), // Introduced by Buildcraft + computer("Computers", "", "", true, true, false, false, true, false, false, false, false, false, 0, -1, 64, -1), // A whole Computer. "computerMaster" = ComputerCube - public static Materials getMaterial(String aOre, OrePrefixes aPrefix) { - return Materials.get(aOre.replaceFirst(aPrefix.toString(), "")); - } - - public static Materials getRealMaterial(String aOre, OrePrefixes aPrefix) { - return Materials.getRealMaterial(aOre.replaceFirst(aPrefix.toString(), "")); - } - - public static boolean isInstanceOf(String aName, OrePrefixes aPrefix) { - return aName == null ? false : aName.startsWith(aPrefix.toString()); - } - - public static volatile int VERSION = 508; - - @SuppressWarnings("incomplete-switch") - public String getDefaultLocalNameForItem(Materials aMaterial) { - // Certain Materials have slightly different Localizations. - switch (this) { - case crateGtDust: return mLocalizedMaterialPre + OrePrefixes.dust.getDefaultLocalNameForItem(aMaterial); - case crateGtIngot: return mLocalizedMaterialPre + OrePrefixes.ingot.getDefaultLocalNameForItem(aMaterial); - case crateGtGem: return mLocalizedMaterialPre + OrePrefixes.gem.getDefaultLocalNameForItem(aMaterial); - case crateGtPlate: return mLocalizedMaterialPre + OrePrefixes.plate.getDefaultLocalNameForItem(aMaterial); - } - switch (aMaterial) { - case Glass: - if (name().startsWith("gem")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystal"; - if (name().startsWith("plate")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Pane"; - break; - case InfusedAir: case InfusedDull: case InfusedEarth: case InfusedEntropy: case InfusedFire: case InfusedOrder: case InfusedVis: case InfusedWater: - if (name().startsWith("gem")) return mLocalizedMaterialPre + "Shard of " + aMaterial.mDefaultLocalName; - if (name().startsWith("crystal")) return mLocalizedMaterialPre + "Shard of " + aMaterial.mDefaultLocalName; - if (name().startsWith("plate")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystal Plate"; - if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystal Powder"; - if (this == OrePrefixes.crushedCentrifuged) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystals"; - if (this == OrePrefixes.crushedPurified) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystals"; - if (this == OrePrefixes.crushed) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystals"; - break; - case Wheat: - if (name().startsWith("dust")) return mLocalizedMaterialPre + "Flour"; - break; - case Ice: - if (name().startsWith("dust")) return mLocalizedMaterialPre + "Crushed Ice"; - break; - case Wood: case WoodSealed: - if (name().startsWith("bolt")) return "Short " + aMaterial.mDefaultLocalName + " Stick"; - if (name().startsWith("stick")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Stick"; - if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Pulp"; - if (name().startsWith("nugget")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Chip"; - if (name().startsWith("plate")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Plank"; - break; - case Plastic: case Rubber: - if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Pulp"; - if (name().startsWith("plate")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Sheet"; - if (name().startsWith("ingot")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Bar"; - if (name().startsWith("nugget")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Chip"; - if (name().startsWith("foil")) return "Thin " + aMaterial.mDefaultLocalName + " Sheet"; - break; - case FierySteel: - if (mIsContainer) return mLocalizedMaterialPre + "Fiery Blood" + mLocalizedMaterialPost; - break; - case Steeleaf: - if (name().startsWith("ingot")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName; - break; - case Bone: - if (name().startsWith("dust")) return mLocalizedMaterialPre + "Bone Meal"; - break; - case Blaze: case Milk: case Cocoa: case Chocolate: case Coffee: case Chili: case Cheese: case Snow: - if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Powder"; - break; - case Paper: - if (name().startsWith("dust")) return mLocalizedMaterialPre + "Chad"; - if (this == OrePrefixes.plate) return "Sheet of Paper"; - if (this == OrePrefixes.plateDouble) return "Paperboard"; - if (this == OrePrefixes.plateTriple) return "Carton"; - if (this == OrePrefixes.plateQuadruple) return "Cardboard"; - if (this == OrePrefixes.plateQuintuple) return "Thick Cardboard"; - if (this == OrePrefixes.plateDense) return "Strong Cardboard"; - break; - case MeatRaw: - if (name().startsWith("dust")) return mLocalizedMaterialPre + "Mince Meat"; - break; - case MeatCooked: - if (name().startsWith("dust")) return mLocalizedMaterialPre + "Cooked Mince Meat"; - break; - case Ash: case DarkAsh: case Gunpowder: case Sugar: case Salt: case RockSalt: case VolcanicAsh: case RareEarth: - if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName; - break; - case Vermiculite: case Bentonite: case Kaolinite: case Talc: case BasalticMineralSand: case GraniticMineralSand: case GlauconiteSand: case CassiteriteSand: case GarnetSand: case QuartzSand: case Pitchblende: case FullersEarth: - if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName; - if (this == OrePrefixes.crushedCentrifuged) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName; - if (this == OrePrefixes.crushedPurified) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName; - if (this == OrePrefixes.crushed) return "Ground " + aMaterial.mDefaultLocalName; - break; - } - // Use Standard Localization - return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + mLocalizedMaterialPost; - } + // random known prefixes without special abilities. + skull("Skulls", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + plating("Platings", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + dinosaur("Dinosaurs", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + travelgear("Travel Gear", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + bauble("Baubles", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + cluster("Clusters", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + grafter("Grafters", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + scoop("Scoops", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + frame("Frames", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + tome("Tomes", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + junk("Junk", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + bee("Bees", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + rod("Rods", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + dirt("Dirts", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + sand("Sands", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64, -1), + grass("Grasses", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + gravel("Gravels", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + mushroom("Mushrooms", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + wood("Woods", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), // Introduced by Eloraam + drop("Drops", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + fuel("Fuels", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + panel("Panels", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + brick("Bricks", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + chunk("Chunks", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + wire("Wires", "", "", false, false, false, false, true, false, false, false, false, false, 0, -1, 64, -1), + seed("Seeds", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + reed("Reeds", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + sheetDouble("2x Sheets", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + sheet("Sheets", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + crop("Crops", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + plant("Plants", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + coin("Coins", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + lumar("Lumars", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + ground("Grounded Stuff", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + cable("Cables", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + component("Components", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + wax("Waxes", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + wall("Walls", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + tube("Tubes", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + list("Lists", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + food("Foods", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + gear("Gears", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), // Introduced by SirSengir + coral("Corals", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + flower("Flowers", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + storage("Storages", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + material("Materials", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + plasma("Plasmas", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + element("Elements", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + molecule("Molecules", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + wafer("Wafers", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + orb("Orbs", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + handle("Handles", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + blade("Blades", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + head("Heads", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + motor("Motors", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + bit("Bits", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + shears("Shears", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + turbine("Turbines", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + fertilizer("Fertilizers", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + chest("Chests", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + raw("Raw Things", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + stainedGlass("Stained Glasses", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + mystic("Mystic Stuff", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + mana("Mana Stuff", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + rune("Runes", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + petal("Petals", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + pearl("Pearls", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + powder("Powders", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + soulsand("Soulsands", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + obsidian("Obsidians", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + glowstone("Glowstones", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + beans("Beans", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + br("br", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + essence("Essences", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + alloy("Alloys", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + cooking("Cooked Things", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + elven("Elven Stuff", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + reactor("Reactors", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + mffs("MFFS", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + projred("Project Red", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + ganys("Ganys Stuff", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + liquid("Liquids", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + bars("Bars", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + bar("Bars", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1); + + public static volatile int VERSION = 508; + + static { + pulp.mPrefixInto = dust; + oreGem.mPrefixInto = ore; + leaves.mPrefixInto = treeLeaves; + sapling.mPrefixInto = treeSapling; + itemDust.mPrefixInto = dust; + dustDirty.mPrefixInto = dustImpure; + denseore.mPrefixInto = oreDense; + ingotQuad.mPrefixInto = ingotQuadruple; + plateQuad.mPrefixInto = plateQuadruple; + stoneBrick.mPrefixInto = stoneBricks; + stoneBricksMossy.mPrefixInto = stoneMossyBricks; + + ingotHot.mHeatDamage = 3.0F; + cellPlasma.mHeatDamage = 6.0F; + + block.ignoreMaterials(Materials.Ice, Materials.Snow, Materials.Concrete, Materials.Glass, Materials.Glowstone, Materials.DarkIron, Materials.Marble, Materials.Quartz, Materials.CertusQuartz, Materials.Limestone); + ingot.ignoreMaterials(Materials.Brick, Materials.NetherBrick); + + dust.addFamiliarPrefix(dustTiny); + dust.addFamiliarPrefix(dustSmall); + dustTiny.addFamiliarPrefix(dust); + dustTiny.addFamiliarPrefix(dustSmall); + dustSmall.addFamiliarPrefix(dust); + dustSmall.addFamiliarPrefix(dustTiny); + + ingot.addFamiliarPrefix(nugget); + nugget.addFamiliarPrefix(ingot); + + for (OrePrefixes tPrefix1 : values()) + if (tPrefix1.name().startsWith("ore")) for (OrePrefixes tPrefix2 : values()) + if (tPrefix2.name().startsWith("ore")) tPrefix1.addFamiliarPrefix(tPrefix2); + for (OrePrefixes tPrefix1 : values()) + if (tPrefix1.name().startsWith("pipe")) for (OrePrefixes tPrefix2 : values()) + if (tPrefix2.name().startsWith("pipe")) tPrefix1.addFamiliarPrefix(tPrefix2); + for (OrePrefixes tPrefix1 : values()) + if (tPrefix1.name().startsWith("wireGt")) for (OrePrefixes tPrefix2 : values()) + if (tPrefix2.name().startsWith("wireGt")) tPrefix1.addFamiliarPrefix(tPrefix2); + for (OrePrefixes tPrefix1 : values()) + if (tPrefix1.name().startsWith("cableGt")) for (OrePrefixes tPrefix2 : values()) + if (tPrefix2.name().startsWith("cableGt")) tPrefix1.addFamiliarPrefix(tPrefix2); + + // These are only the important ones. + gem.mNotGeneratedItems.add(Materials.Coal); + gem.mNotGeneratedItems.add(Materials.Charcoal); + gem.mNotGeneratedItems.add(Materials.NetherStar); + gem.mNotGeneratedItems.add(Materials.Diamond); + gem.mNotGeneratedItems.add(Materials.Emerald); + gem.mNotGeneratedItems.add(Materials.NetherQuartz); + gem.mNotGeneratedItems.add(Materials.EnderPearl); + gem.mNotGeneratedItems.add(Materials.EnderEye); + gem.mNotGeneratedItems.add(Materials.Flint); + gem.mNotGeneratedItems.add(Materials.Lapis); + dust.mNotGeneratedItems.add(Materials.Bone); + dust.mNotGeneratedItems.add(Materials.Redstone); + dust.mNotGeneratedItems.add(Materials.Glowstone); + dust.mNotGeneratedItems.add(Materials.Gunpowder); + dust.mNotGeneratedItems.add(Materials.Sugar); + dust.mNotGeneratedItems.add(Materials.Blaze); + stick.mNotGeneratedItems.add(Materials.Wood); + stick.mNotGeneratedItems.add(Materials.Bone); + stick.mNotGeneratedItems.add(Materials.Blaze); + ingot.mNotGeneratedItems.add(Materials.Iron); + ingot.mNotGeneratedItems.add(Materials.Gold); + ingot.mNotGeneratedItems.add(Materials.Brick); + ingot.mNotGeneratedItems.add(Materials.BrickNether); + ingot.mNotGeneratedItems.add(Materials.WoodSealed); + ingot.mNotGeneratedItems.add(Materials.Wood); + nugget.mNotGeneratedItems.add(Materials.Gold); + plate.mNotGeneratedItems.add(Materials.Paper); + cell.mNotGeneratedItems.add(Materials.Empty); + cell.mNotGeneratedItems.add(Materials.Water); + cell.mNotGeneratedItems.add(Materials.Lava); + cell.mNotGeneratedItems.add(Materials.ConstructionFoam); + cell.mNotGeneratedItems.add(Materials.UUMatter); + cell.mNotGeneratedItems.add(Materials.BioFuel); + cell.mNotGeneratedItems.add(Materials.CoalFuel); + bucket.mNotGeneratedItems.add(Materials.Empty); + bucket.mNotGeneratedItems.add(Materials.Lava); + bucket.mNotGeneratedItems.add(Materials.Milk); + bucket.mNotGeneratedItems.add(Materials.Water); + bottle.mNotGeneratedItems.add(Materials.Empty); + bottle.mNotGeneratedItems.add(Materials.Water); + bottle.mNotGeneratedItems.add(Materials.Milk); + block.mNotGeneratedItems.add(Materials.Iron); + block.mNotGeneratedItems.add(Materials.Gold); + block.mNotGeneratedItems.add(Materials.Lapis); + block.mNotGeneratedItems.add(Materials.Emerald); + block.mNotGeneratedItems.add(Materials.Redstone); + block.mNotGeneratedItems.add(Materials.Diamond); + block.mNotGeneratedItems.add(Materials.Coal); + toolHeadArrow.mNotGeneratedItems.add(Materials.Glass); + + //----- + + dustImpure.mGeneratedItems.add(Materials.GraniteRed); + dustImpure.mGeneratedItems.add(Materials.GraniteBlack); + dustImpure.mGeneratedItems.add(Materials.Quartzite); + dustImpure.mGeneratedItems.add(Materials.Flint); + dustImpure.mGeneratedItems.add(Materials.Redrock); + dustImpure.mGeneratedItems.add(Materials.Basalt); + dustImpure.mGeneratedItems.add(Materials.Marble); + dustImpure.mGeneratedItems.add(Materials.Netherrack); + dustImpure.mGeneratedItems.add(Materials.Endstone); + dustImpure.mGeneratedItems.add(Materials.Stone); + + plate.mGeneratedItems.add(Materials.Redstone); + plate.mGeneratedItems.add(Materials.Concrete); + plate.mGeneratedItems.add(Materials.GraniteRed); + plate.mGeneratedItems.add(Materials.GraniteBlack); + plate.mGeneratedItems.add(Materials.Glowstone); + plate.mGeneratedItems.add(Materials.Nikolite); + plate.mGeneratedItems.add(Materials.Obsidian); + + plate.mGeneratedItems.add(Materials.Paper); + plateDouble.mGeneratedItems.add(Materials.Paper); + plateTriple.mGeneratedItems.add(Materials.Paper); + plateQuadruple.mGeneratedItems.add(Materials.Paper); + plateQuintuple.mGeneratedItems.add(Materials.Paper); + + lens.mGeneratedItems.add(Materials.EnderPearl); + lens.mGeneratedItems.add(Materials.EnderEye); + + stickLong.mGeneratedItems.add(Materials.Blaze); + + //----- + + dust.mGeneratedItems.addAll(dustPure.mGeneratedItems); + dust.mGeneratedItems.addAll(dustImpure.mGeneratedItems); + dust.mGeneratedItems.addAll(dustRefined.mGeneratedItems); + dustTiny.mGeneratedItems.addAll(dust.mGeneratedItems); + dustSmall.mGeneratedItems.addAll(dust.mGeneratedItems); + crateGtDust.mGeneratedItems.addAll(dust.mGeneratedItems); + crateGtIngot.mGeneratedItems.addAll(ingot.mGeneratedItems); + crateGtGem.mGeneratedItems.addAll(gem.mGeneratedItems); + crateGtPlate.mGeneratedItems.addAll(plate.mGeneratedItems); + + //----- + + toolHeadFile.mCondition = new ICondition.And(new ICondition.Not(SubTag.NO_SMASHING), new ICondition.Not(SubTag.BOUNCY)); + toolHeadSaw.mCondition = new ICondition.And(new ICondition.Not(SubTag.NO_SMASHING), new ICondition.Not(SubTag.BOUNCY)); + toolHeadDrill.mCondition = new ICondition.And(new ICondition.Not(SubTag.NO_SMASHING), new ICondition.Not(SubTag.BOUNCY)); + toolHeadChainsaw.mCondition = new ICondition.And(new ICondition.Not(SubTag.NO_SMASHING), new ICondition.Not(SubTag.BOUNCY)); + toolHeadWrench.mCondition = new ICondition.And(new ICondition.Not(SubTag.NO_SMASHING), new ICondition.Not(SubTag.BOUNCY)); + toolHeadBuzzSaw.mCondition = new ICondition.And(new ICondition.Not(SubTag.NO_SMASHING), new ICondition.Not(SubTag.BOUNCY)); + + rotor.mCondition = new ICondition.Nor(SubTag.CRYSTAL, SubTag.STONE, SubTag.BOUNCY); + + spring.mCondition = new ICondition.Or(SubTag.STRETCHY, SubTag.BOUNCY, new ICondition.Not(SubTag.NO_SMASHING)); + springSmall.mCondition = new ICondition.Or(SubTag.STRETCHY, SubTag.BOUNCY, new ICondition.Not(SubTag.NO_SMASHING)); + + gemChipped.mCondition = new ICondition.And(SubTag.TRANSPARENT, SubTag.CRYSTAL, new ICondition.Not(SubTag.QUARTZ), new ICondition.Not(SubTag.PEARL), new ICondition.Not(SubTag.MAGICAL)); + gemFlawed.mCondition = new ICondition.And(SubTag.TRANSPARENT, SubTag.CRYSTAL, new ICondition.Not(SubTag.QUARTZ), new ICondition.Not(SubTag.PEARL), new ICondition.Not(SubTag.MAGICAL)); + gemFlawless.mCondition = new ICondition.And(SubTag.TRANSPARENT, SubTag.CRYSTAL, new ICondition.Not(SubTag.QUARTZ), new ICondition.Not(SubTag.PEARL), new ICondition.Not(SubTag.MAGICAL)); + gemExquisite.mCondition = new ICondition.And(SubTag.TRANSPARENT, SubTag.CRYSTAL, new ICondition.Not(SubTag.QUARTZ), new ICondition.Not(SubTag.PEARL), new ICondition.Not(SubTag.MAGICAL)); + + lens.mCondition = new ICondition.Or(SubTag.MAGICAL, new ICondition.And(SubTag.TRANSPARENT, SubTag.HAS_COLOR)); + + plateDouble.mCondition = new ICondition.Or(SubTag.PAPER, new ICondition.Not(SubTag.NO_SMASHING)); + plateTriple.mCondition = new ICondition.Or(SubTag.PAPER, new ICondition.Not(SubTag.NO_SMASHING)); + plateQuadruple.mCondition = new ICondition.Or(SubTag.PAPER, new ICondition.Not(SubTag.NO_SMASHING)); + plateQuintuple.mCondition = new ICondition.Or(SubTag.PAPER, new ICondition.Not(SubTag.NO_SMASHING)); + + plateDense.mCondition = new ICondition.Not(SubTag.NO_SMASHING); + + ingotDouble.mCondition = new ICondition.Not(SubTag.NO_SMASHING); + ingotTriple.mCondition = new ICondition.Not(SubTag.NO_SMASHING); + ingotQuadruple.mCondition = new ICondition.Not(SubTag.NO_SMASHING); + ingotQuintuple.mCondition = new ICondition.Not(SubTag.NO_SMASHING); + + wireFine.mCondition = SubTag.METAL; + + //----- + + pipeRestrictiveTiny.mSecondaryMaterial = new MaterialStack(Materials.Steel, ring.mMaterialAmount); + pipeRestrictiveSmall.mSecondaryMaterial = new MaterialStack(Materials.Steel, ring.mMaterialAmount * 2); + pipeRestrictiveMedium.mSecondaryMaterial = new MaterialStack(Materials.Steel, ring.mMaterialAmount * 3); + pipeRestrictiveLarge.mSecondaryMaterial = new MaterialStack(Materials.Steel, ring.mMaterialAmount * 4); + pipeRestrictiveHuge.mSecondaryMaterial = new MaterialStack(Materials.Steel, ring.mMaterialAmount * 5); + cableGt12.mSecondaryMaterial = new MaterialStack(Materials.Rubber, plate.mMaterialAmount * 4); + cableGt08.mSecondaryMaterial = new MaterialStack(Materials.Rubber, plate.mMaterialAmount * 3); + cableGt04.mSecondaryMaterial = new MaterialStack(Materials.Rubber, plate.mMaterialAmount * 2); + cableGt02.mSecondaryMaterial = new MaterialStack(Materials.Rubber, plate.mMaterialAmount); + cableGt01.mSecondaryMaterial = new MaterialStack(Materials.Rubber, plate.mMaterialAmount); + bucket.mSecondaryMaterial = new MaterialStack(Materials.Iron, ingot.mMaterialAmount * 3); + cell.mSecondaryMaterial = new MaterialStack(Materials.Tin, plate.mMaterialAmount * 2); + cellPlasma.mSecondaryMaterial = new MaterialStack(Materials.Tin, plate.mMaterialAmount * 2); + oreRedgranite.mSecondaryMaterial = new MaterialStack(Materials.GraniteRed, dust.mMaterialAmount); + oreBlackgranite.mSecondaryMaterial = new MaterialStack(Materials.GraniteBlack, dust.mMaterialAmount); + oreNetherrack.mSecondaryMaterial = new MaterialStack(Materials.Netherrack, dust.mMaterialAmount); + oreNether.mSecondaryMaterial = new MaterialStack(Materials.Netherrack, dust.mMaterialAmount); + oreEndstone.mSecondaryMaterial = new MaterialStack(Materials.Endstone, dust.mMaterialAmount); + oreEnd.mSecondaryMaterial = new MaterialStack(Materials.Endstone, dust.mMaterialAmount); + oreDense.mSecondaryMaterial = new MaterialStack(Materials.Stone, dust.mMaterialAmount); + orePoor.mSecondaryMaterial = new MaterialStack(Materials.Stone, dust.mMaterialAmount * 2); + oreSmall.mSecondaryMaterial = new MaterialStack(Materials.Stone, dust.mMaterialAmount * 2); + oreNormal.mSecondaryMaterial = new MaterialStack(Materials.Stone, dust.mMaterialAmount * 2); + oreRich.mSecondaryMaterial = new MaterialStack(Materials.Stone, dust.mMaterialAmount * 2); + ore.mSecondaryMaterial = new MaterialStack(Materials.Stone, dust.mMaterialAmount); + crushed.mSecondaryMaterial = new MaterialStack(Materials.Stone, dust.mMaterialAmount); + toolHeadDrill.mSecondaryMaterial = new MaterialStack(Materials.Steel, plate.mMaterialAmount * 4); + toolHeadChainsaw.mSecondaryMaterial = new MaterialStack(Materials.Steel, plate.mMaterialAmount * 4 + ring.mMaterialAmount * 2); + toolHeadWrench.mSecondaryMaterial = new MaterialStack(Materials.Steel, ring.mMaterialAmount + screw.mMaterialAmount * 2); + arrowGtWood.mSecondaryMaterial = new MaterialStack(Materials.Wood, stick.mMaterialAmount); + arrowGtPlastic.mSecondaryMaterial = new MaterialStack(Materials.Plastic, stick.mMaterialAmount); + bulletGtSmall.mSecondaryMaterial = new MaterialStack(Materials.Brass, ingot.mMaterialAmount / 9); + bulletGtMedium.mSecondaryMaterial = new MaterialStack(Materials.Brass, ingot.mMaterialAmount / 6); + bulletGtLarge.mSecondaryMaterial = new MaterialStack(Materials.Brass, ingot.mMaterialAmount / 3); + } + + public final ArrayList mPrefixedItems = new ArrayList(); + public final short mTextureIndex; + public final String mRegularLocalName, mLocalizedMaterialPre, mLocalizedMaterialPost; + public final boolean mIsUsedForOreProcessing, mIsEnchantable, mIsUnificatable, mIsMaterialBased, mIsSelfReferencing, mIsContainer, mDontUnificateActively, mIsUsedForBlocks, mAllowNormalRecycling, mGenerateDefaultItem; + public final List mAspects = new ArrayList(); + public final Collection mFamiliarPrefixes = new HashSet(); + /** + * Used to determine the amount of Material this Prefix contains. + * Multiply or Divide GregTech_API.MATERIAL_UNIT to get the Amounts in comparision to one Ingot. + * 0 = Null + * Negative = Undefined Amount + */ + public final long mMaterialAmount; + private final Collection mNotGeneratedItems = new HashSet(), mIgnoredMaterials = new HashSet(), mGeneratedItems = new HashSet(); + private final ArrayList mOreProcessing = new ArrayList(); + public ItemStack mContainerItem = null; + public ICondition mCondition = null; + public byte mDefaultStackSize = 64; + public MaterialStack mSecondaryMaterial = null; + public OrePrefixes mPrefixInto = this; + public float mHeatDamage = 0.0F; // Negative for Frost Damage + /** + * Yes this Value can be changed to add Bits for the MetaGenerated-Item-Check. + */ + public int mMaterialGenerationBits = 0; + private OrePrefixes(String aRegularLocalName, String aLocalizedMaterialPre, String aLocalizedMaterialPost, boolean aIsUnificatable, boolean aIsMaterialBased, boolean aIsSelfReferencing, boolean aIsContainer, boolean aDontUnificateActively, boolean aIsUsedForBlocks, boolean aAllowNormalRecycling, boolean aGenerateDefaultItem, boolean aIsEnchantable, boolean aIsUsedForOreProcessing, int aMaterialGenerationBits, long aMaterialAmount, int aDefaultStackSize, int aTextureindex) { + mIsUnificatable = aIsUnificatable; + mIsMaterialBased = aIsMaterialBased; + mIsSelfReferencing = aIsSelfReferencing; + mIsContainer = aIsContainer; + mDontUnificateActively = aDontUnificateActively; + mIsUsedForBlocks = aIsUsedForBlocks; + mAllowNormalRecycling = aAllowNormalRecycling; + mGenerateDefaultItem = aGenerateDefaultItem; + mIsEnchantable = aIsEnchantable; + mIsUsedForOreProcessing = aIsUsedForOreProcessing; + mMaterialGenerationBits = aMaterialGenerationBits; + mMaterialAmount = aMaterialAmount; + mRegularLocalName = aRegularLocalName; + mLocalizedMaterialPre = aLocalizedMaterialPre; + mLocalizedMaterialPost = aLocalizedMaterialPost; + mDefaultStackSize = (byte) aDefaultStackSize; + mTextureIndex = (short) aTextureindex; + + if (name().startsWith("ore")) { + new TC_AspectStack(TC_Aspects.TERRA, 1).addToAspectList(mAspects); + } else if (name().startsWith("wire") || name().startsWith("cable")) { + new TC_AspectStack(TC_Aspects.ELECTRUM, 1).addToAspectList(mAspects); + } else if (name().startsWith("dust")) { + new TC_AspectStack(TC_Aspects.PERDITIO, 1).addToAspectList(mAspects); + } else if (name().startsWith("crushed")) { + new TC_AspectStack(TC_Aspects.PERFODIO, 1).addToAspectList(mAspects); + } else if (name().startsWith("ingot") || name().startsWith("nugget")) { + new TC_AspectStack(TC_Aspects.METALLUM, 1).addToAspectList(mAspects); + } else if (name().startsWith("armor")) { + new TC_AspectStack(TC_Aspects.TUTAMEN, 1).addToAspectList(mAspects); + } else if (name().startsWith("stone")) { + new TC_AspectStack(TC_Aspects.TERRA, 1).addToAspectList(mAspects); + } else if (name().startsWith("pipe")) { + new TC_AspectStack(TC_Aspects.ITER, 1).addToAspectList(mAspects); + } else if (name().startsWith("gear")) { + new TC_AspectStack(TC_Aspects.MOTUS, 1).addToAspectList(mAspects); + new TC_AspectStack(TC_Aspects.MACHINA, 1).addToAspectList(mAspects); + } else if (name().startsWith("frame") || name().startsWith("plate")) { + new TC_AspectStack(TC_Aspects.FABRICO, 1).addToAspectList(mAspects); + } else if (name().startsWith("tool")) { + new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2).addToAspectList(mAspects); + } else if (name().startsWith("gem") || name().startsWith("crystal") || name().startsWith("lens")) { + new TC_AspectStack(TC_Aspects.VITREUS, 1).addToAspectList(mAspects); + } else if (name().startsWith("crate")) { + new TC_AspectStack(TC_Aspects.ITER, 2).addToAspectList(mAspects); + } else if (name().startsWith("circuit")) { + new TC_AspectStack(TC_Aspects.COGNITO, 1).addToAspectList(mAspects); + } else if (name().startsWith("computer")) { + new TC_AspectStack(TC_Aspects.COGNITO, 4).addToAspectList(mAspects); + } else if (name().startsWith("battery")) { + new TC_AspectStack(TC_Aspects.ELECTRUM, 1).addToAspectList(mAspects); + } + } + + public static OrePrefixes getOrePrefix(String aOre) { + for (OrePrefixes tPrefix : values()) + if (aOre.startsWith(tPrefix.toString())) { + if (tPrefix == oreNether && aOre.equals("oreNetherQuartz")) return ore; + return tPrefix; + } + return null; + } + + public static String stripPrefix(String aOre) { + for (OrePrefixes tPrefix : values()) { + if (aOre.startsWith(tPrefix.toString())) { + return aOre.replaceFirst(tPrefix.toString(), ""); + } + } + return aOre; + } + + public static String replacePrefix(String aOre, OrePrefixes aPrefix) { + for (OrePrefixes tPrefix : values()) { + if (aOre.startsWith(tPrefix.toString())) { + return aOre.replaceFirst(tPrefix.toString(), aPrefix.toString()); + } + } + return ""; + } + + public static OrePrefixes getPrefix(String aPrefixName) { + return getPrefix(aPrefixName, null); + } + + public static OrePrefixes getPrefix(String aPrefixName, OrePrefixes aReplacement) { + Object tObject = GT_Utility.getFieldContent(OrePrefixes.class, aPrefixName, false, false); + if (tObject != null && tObject instanceof OrePrefixes) return (OrePrefixes) tObject; + return aReplacement; + } + + public static Materials getMaterial(String aOre) { + return Materials.get(stripPrefix(aOre)); + } + + public static Materials getMaterial(String aOre, OrePrefixes aPrefix) { + return Materials.get(aOre.replaceFirst(aPrefix.toString(), "")); + } + + public static Materials getRealMaterial(String aOre, OrePrefixes aPrefix) { + return Materials.getRealMaterial(aOre.replaceFirst(aPrefix.toString(), "")); + } + + public static boolean isInstanceOf(String aName, OrePrefixes aPrefix) { + return aName == null ? false : aName.startsWith(aPrefix.toString()); + } + + public boolean add(ItemStack aStack) { + if (aStack == null) return false; + if (!contains(aStack)) mPrefixedItems.add(aStack); + while (mPrefixedItems.contains(null)) mPrefixedItems.remove(null); + return true; + } + + public boolean contains(ItemStack aStack) { + if (aStack == null) return false; + for (ItemStack tStack : mPrefixedItems) + if (GT_Utility.areStacksEqual(aStack, tStack, !tStack.hasTagCompound())) return true; + return false; + } + + public boolean doGenerateItem(Materials aMaterial) { + return aMaterial != null && aMaterial != Materials._NULL && ((aMaterial.mTypes & mMaterialGenerationBits) != 0 || mGeneratedItems.contains(aMaterial)) && !mNotGeneratedItems.contains(aMaterial) && (mCondition == null || mCondition.isTrue(aMaterial)); + } + + public boolean ignoreMaterials(Materials... aMaterials) { + for (Materials tMaterial : aMaterials) if (tMaterial != null) mIgnoredMaterials.add(tMaterial); + return true; + } + + public boolean isIgnored(Materials aMaterial) { + if (aMaterial != null && (!aMaterial.mUnificatable || aMaterial != aMaterial.mMaterialInto)) return true; + return mIgnoredMaterials.contains(aMaterial); + } + + public boolean addFamiliarPrefix(OrePrefixes aPrefix) { + if (aPrefix == null || mFamiliarPrefixes.contains(aPrefix) || aPrefix == this) return false; + return mFamiliarPrefixes.add(aPrefix); + } + + public boolean add(IOreRecipeRegistrator aRegistrator) { + if (aRegistrator == null) return false; + return mOreProcessing.add(aRegistrator); + } + + public void processOre(Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aMaterial != null && (aMaterial != Materials._NULL || mIsSelfReferencing || !mIsMaterialBased) && GT_Utility.isStackValid(aStack)) + for (IOreRecipeRegistrator tRegistrator : mOreProcessing) { + if (D2) + GT_Log.ore.println("Processing '" + aOreDictName + "' with the Prefix '" + name() + "' and the Material '" + aMaterial.name() + "' at " + GT_Utility.getClassName(tRegistrator)); + tRegistrator.registerOre(this, aMaterial, aOreDictName, aModName, GT_Utility.copyAmount(1, aStack)); + } + } + + public Object get(Object aMaterial) { + if (aMaterial instanceof Materials) return new ItemData(this, (Materials) aMaterial); + return name() + aMaterial; + } + + @SuppressWarnings("incomplete-switch") + public String getDefaultLocalNameForItem(Materials aMaterial) { + // Certain Materials have slightly different Localizations. + switch (this) { + case crateGtDust: + return mLocalizedMaterialPre + OrePrefixes.dust.getDefaultLocalNameForItem(aMaterial); + case crateGtIngot: + return mLocalizedMaterialPre + OrePrefixes.ingot.getDefaultLocalNameForItem(aMaterial); + case crateGtGem: + return mLocalizedMaterialPre + OrePrefixes.gem.getDefaultLocalNameForItem(aMaterial); + case crateGtPlate: + return mLocalizedMaterialPre + OrePrefixes.plate.getDefaultLocalNameForItem(aMaterial); + } + switch (aMaterial) { + case Glass: + if (name().startsWith("gem")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystal"; + if (name().startsWith("plate")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Pane"; + break; + case InfusedAir: + case InfusedDull: + case InfusedEarth: + case InfusedEntropy: + case InfusedFire: + case InfusedOrder: + case InfusedVis: + case InfusedWater: + if (name().startsWith("gem")) return mLocalizedMaterialPre + "Shard of " + aMaterial.mDefaultLocalName; + if (name().startsWith("crystal")) + return mLocalizedMaterialPre + "Shard of " + aMaterial.mDefaultLocalName; + if (name().startsWith("plate")) + return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystal Plate"; + if (name().startsWith("dust")) + return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystal Powder"; + if (this == OrePrefixes.crushedCentrifuged) + return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystals"; + if (this == OrePrefixes.crushedPurified) + return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystals"; + if (this == OrePrefixes.crushed) + return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystals"; + break; + case Wheat: + if (name().startsWith("dust")) return mLocalizedMaterialPre + "Flour"; + break; + case Ice: + if (name().startsWith("dust")) return mLocalizedMaterialPre + "Crushed Ice"; + break; + case Wood: + case WoodSealed: + if (name().startsWith("bolt")) return "Short " + aMaterial.mDefaultLocalName + " Stick"; + if (name().startsWith("stick")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Stick"; + if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Pulp"; + if (name().startsWith("nugget")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Chip"; + if (name().startsWith("plate")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Plank"; + break; + case Plastic: + case Rubber: + if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Pulp"; + if (name().startsWith("plate")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Sheet"; + if (name().startsWith("ingot")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Bar"; + if (name().startsWith("nugget")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Chip"; + if (name().startsWith("foil")) return "Thin " + aMaterial.mDefaultLocalName + " Sheet"; + break; + case FierySteel: + if (mIsContainer) return mLocalizedMaterialPre + "Fiery Blood" + mLocalizedMaterialPost; + break; + case Steeleaf: + if (name().startsWith("ingot")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName; + break; + case Bone: + if (name().startsWith("dust")) return mLocalizedMaterialPre + "Bone Meal"; + break; + case Blaze: + case Milk: + case Cocoa: + case Chocolate: + case Coffee: + case Chili: + case Cheese: + case Snow: + if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Powder"; + break; + case Paper: + if (name().startsWith("dust")) return mLocalizedMaterialPre + "Chad"; + if (this == OrePrefixes.plate) return "Sheet of Paper"; + if (this == OrePrefixes.plateDouble) return "Paperboard"; + if (this == OrePrefixes.plateTriple) return "Carton"; + if (this == OrePrefixes.plateQuadruple) return "Cardboard"; + if (this == OrePrefixes.plateQuintuple) return "Thick Cardboard"; + if (this == OrePrefixes.plateDense) return "Strong Cardboard"; + break; + case MeatRaw: + if (name().startsWith("dust")) return mLocalizedMaterialPre + "Mince Meat"; + break; + case MeatCooked: + if (name().startsWith("dust")) return mLocalizedMaterialPre + "Cooked Mince Meat"; + break; + case Ash: + case DarkAsh: + case Gunpowder: + case Sugar: + case Salt: + case RockSalt: + case VolcanicAsh: + case RareEarth: + if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName; + break; + case Vermiculite: + case Bentonite: + case Kaolinite: + case Talc: + case BasalticMineralSand: + case GraniticMineralSand: + case GlauconiteSand: + case CassiteriteSand: + case GarnetSand: + case QuartzSand: + case Pitchblende: + case FullersEarth: + if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName; + if (this == OrePrefixes.crushedCentrifuged) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName; + if (this == OrePrefixes.crushedPurified) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName; + if (this == OrePrefixes.crushed) return "Ground " + aMaterial.mDefaultLocalName; + break; + } + // Use Standard Localization + return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + mLocalizedMaterialPost; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/enums/SubTag.java b/src/main/java/gregtech/api/enums/SubTag.java index 854a64a7..90191bf0 100644 --- a/src/main/java/gregtech/api/enums/SubTag.java +++ b/src/main/java/gregtech/api/enums/SubTag.java @@ -9,298 +9,255 @@ import java.util.HashSet; /** * Just a simple Class to be able to add special Tags for Materials. - * + *

* The Tags should be added in preload and before I do my own preload to the Materials. * In order to make yourself a new SubTag, just create one new instance of SubTag using getNewSubTag * and use that one instance on all Materials you want to add those Tags to. - * + *

* You should look at this File whenever you update, maybe there are some new Tags you could use. - * + *

* ------------------------------------------------------------------------------------------------- - * + *

* Some SubTags are used for other things than Materials too. It is useful when I need an easy way to declare Stuff in Items. */ public final class SubTag implements ICondition { - private static long sSubtagID = 0; - - public static final ArrayList sSubTags = new ArrayList(); - - /** - * Add this to your Material if you want to have its Ore Calcite heated in a Blast Furnace for more output. Already listed are: - * Iron, Pyrite, PigIron, DeepIron, ShadowIron, WroughtIron and MeteoricIron. - */ - public static final SubTag BLASTFURNACE_CALCITE_DOUBLE = getNewSubTag("BLASTFURNACE_CALCITE_DOUBLE"), BLASTFURNACE_CALCITE_TRIPLE = getNewSubTag("BLASTFURNACE_CALCITE_TRIPLE"); - - /** - * Materials which are outputting less in an Induction Smelter. Already listed are: - * Pyrite, Tetrahedrite, Sphalerite, Cinnabar - */ - public static final SubTag INDUCTIONSMELTING_LOW_OUTPUT = getNewSubTag("INDUCTIONSMELTING_LOW_OUTPUT"); - - /** - * Add this to your Material if you want to have its Ore Sodium Persulfate washed. Already listed are: - * Zinc, Nickel, Copper, Cobalt, Cobaltite and Tetrahedrite. - */ - public static final SubTag WASHING_SODIUMPERSULFATE = getNewSubTag("WASHING_SODIUMPERSULFATE"); - - /** - * Add this to your Material if you want to have its Ore Mercury washed. Already listed are: - * Gold, Silver, Osmium, Mithril, Platinum, Midasium, Cooperite and AstralSilver. - */ - public static final SubTag WASHING_MERCURY = getNewSubTag("WASHING_MERCURY"); - - /** - * Add this to your Material if you want to have its Ore electromagnetically separated to give Gold. - */ - public static final SubTag ELECTROMAGNETIC_SEPERATION_GOLD = getNewSubTag("ELECTROMAGNETIC_SEPERATION_GOLD"); + public static final ArrayList sSubTags = new ArrayList(); + private static long sSubtagID = 0; + public final long mSubtagID; + public final String mName; + /** + * Add this to your Material if you want to have its Ore Calcite heated in a Blast Furnace for more output. Already listed are: + * Iron, Pyrite, PigIron, DeepIron, ShadowIron, WroughtIron and MeteoricIron. + */ + public static final SubTag BLASTFURNACE_CALCITE_DOUBLE = getNewSubTag("BLASTFURNACE_CALCITE_DOUBLE"), BLASTFURNACE_CALCITE_TRIPLE = getNewSubTag("BLASTFURNACE_CALCITE_TRIPLE"); + /** + * Materials which are outputting less in an Induction Smelter. Already listed are: + * Pyrite, Tetrahedrite, Sphalerite, Cinnabar + */ + public static final SubTag INDUCTIONSMELTING_LOW_OUTPUT = getNewSubTag("INDUCTIONSMELTING_LOW_OUTPUT"); + /** + * Add this to your Material if you want to have its Ore Sodium Persulfate washed. Already listed are: + * Zinc, Nickel, Copper, Cobalt, Cobaltite and Tetrahedrite. + */ + public static final SubTag WASHING_SODIUMPERSULFATE = getNewSubTag("WASHING_SODIUMPERSULFATE"); + /** + * Add this to your Material if you want to have its Ore Mercury washed. Already listed are: + * Gold, Silver, Osmium, Mithril, Platinum, Midasium, Cooperite and AstralSilver. + */ + public static final SubTag WASHING_MERCURY = getNewSubTag("WASHING_MERCURY"); + /** + * Add this to your Material if you want to have its Ore electromagnetically separated to give Gold. + */ + public static final SubTag ELECTROMAGNETIC_SEPERATION_GOLD = getNewSubTag("ELECTROMAGNETIC_SEPERATION_GOLD"); + /** + * Add this to your Material if you want to have its Ore electromagnetically separated to give Iron. + */ + public static final SubTag ELECTROMAGNETIC_SEPERATION_IRON = getNewSubTag("ELECTROMAGNETIC_SEPERATION_IRON"); + /** + * Add this to your Material if you want to have its Ore electromagnetically separated to give Neodymium. + */ + public static final SubTag ELECTROMAGNETIC_SEPERATION_NEODYMIUM = getNewSubTag("ELECTROMAGNETIC_SEPERATION_NEODYMIUM"); + /** + * Add this to your Material if you want to have its Ore giving Cinnabar Crystals on Pulverization. Already listed are: + * Redstone + */ + public static final SubTag PULVERIZING_CINNABAR = getNewSubTag("PULVERIZING_CINNABAR"); + /** + * This Material cannot be worked by any other means, than smashing or smelting. This is used for coated Materials. + */ + public static final SubTag NO_WORKING = getNewSubTag("NO_WORKING"); + /** + * This Material cannot be used for regular Metal working techniques since it is not possible to bend it. Already listed are: + * Rubber, Plastic, Paper, Wood, Stone + */ + public static final SubTag NO_SMASHING = getNewSubTag("NO_SMASHING"); + /** + * This Material cannot be unificated + */ + public static final SubTag NO_UNIFICATION = getNewSubTag("NO_UNIFICATION"); + /** + * This Material cannot be used in any Recycler. Already listed are: + * Stone, Glass, Water + */ + public static final SubTag NO_RECYCLING = getNewSubTag("NO_RECYCLING"); + /** + * This Material cannot be used in any Furnace alike Structure. Already listed are: + * Paper, Wood, Gunpowder, Stone + */ + public static final SubTag NO_SMELTING = getNewSubTag("NO_SMELTING"); + /** + * This Material can be molten into a Fluid + */ + public static final SubTag SMELTING_TO_FLUID = getNewSubTag("SMELTING_TO_FLUID"); + /** + * This Ore should be molten directly into a Gem of this Material, if the Ingot is missing. Already listed are: + * Cinnabar + */ + public static final SubTag SMELTING_TO_GEM = getNewSubTag("SMELTING_TO_GEM"); + /** + * If this Material is some kind of Wood + */ + public static final SubTag WOOD = getNewSubTag("WOOD"); + /** + * If this Material is some kind of Food (or edible at all) + */ + public static final SubTag FOOD = getNewSubTag("FOOD"); + /** + * If this Material is some kind of Stone + */ + public static final SubTag STONE = getNewSubTag("STONE"); + /** + * If this Material is some kind of Pearl + */ + public static final SubTag PEARL = getNewSubTag("PEARL"); + /** + * If this Material is some kind of Quartz + */ + public static final SubTag QUARTZ = getNewSubTag("QUARTZ"); + /** + * If this Material is Crystallisable + */ + public static final SubTag CRYSTALLISABLE = getNewSubTag("CRYSTALLISABLE"); + /** + * If this Material is some kind of Crystal + */ + public static final SubTag CRYSTAL = getNewSubTag("CRYSTAL"); + /** + * If this Material is some kind of Magical + */ + public static final SubTag MAGICAL = getNewSubTag("MAGICAL"); + /** + * If this Material is some kind of Metal + */ + public static final SubTag METAL = getNewSubTag("METAL"); + /** + * If this Material is some kind of Paper + */ + public static final SubTag PAPER = getNewSubTag("PAPER"); + /** + * If this Material is having a constantly burning Aura + */ + public static final SubTag BURNING = getNewSubTag("BURNING"); + /** + * If this Material is some kind of flammable + */ + public static final SubTag FLAMMABLE = getNewSubTag("FLAMMABLE"); + /** + * If this Material is not burnable at all + */ + public static final SubTag UNBURNABLE = getNewSubTag("UNBURNABLE"); + /** + * If this Material is some kind of explosive + */ + public static final SubTag EXPLOSIVE = getNewSubTag("EXPLOSIVE"); + /** + * If this Material is bouncy + */ + public static final SubTag BOUNCY = getNewSubTag("BOUNCY"); + /** + * If this Material is invisible + */ + public static final SubTag INVISIBLE = getNewSubTag("INVISIBLE"); + /** + * If this Material is transparent + */ + public static final SubTag TRANSPARENT = getNewSubTag("TRANSPARENT"); + /** + * If this Material has a Color + */ + public static final SubTag HAS_COLOR = getNewSubTag("HAS_COLOR"); + /** + * If this Material is stretchable + */ + public static final SubTag STRETCHY = getNewSubTag("STRETCHY"); + /** + * If this Material is grindable with a simple Mortar + */ + public static final SubTag MORTAR_GRINDABLE = getNewSubTag("MORTAR_GRINDABLE"); + /** + * If this Material is usable for Soldering + */ + public static final SubTag SOLDERING_MATERIAL = getNewSubTag("SOLDERING_MATERIAL"); + /** + * If this Material is has extra Costs for Soldering, requires the Tag "SOLDERING_MATERIAL" too + */ + public static final SubTag SOLDERING_MATERIAL_BAD = getNewSubTag("SOLDERING_MATERIAL_BAD"); + /** + * If this Material is has a discount for Soldering, requires the Tag "SOLDERING_MATERIAL" too + */ + public static final SubTag SOLDERING_MATERIAL_GOOD = getNewSubTag("SOLDERING_MATERIAL_GOOD"); + /** + * Energy Tag for Electricity + * Primary = Voltage + * Secondary = Amperage + */ + public static final SubTag ENERGY_ELECTRICITY = getNewSubTag("ENERGY_ELECTRICITY"); + /** + * Energy Tag for Rotating Power + * Primary = Speed + * Secondary = Power + */ + public static final SubTag ENERGY_ROTATIONAL = getNewSubTag("ENERGY_ROTATIONAL"); + /** + * Energy Tag for Steam Power + * Primary = Steam per Tick + * Secondary = unused (always 1) + */ + public static final SubTag ENERGY_STEAM = getNewSubTag("ENERGY_STEAM"); + /** + * Energy Tag for Air Pressure Power + * Primary = Pressure + * Secondary = unused (always 1) + */ + public static final SubTag ENERGY_AIR = getNewSubTag("ENERGY_AIR"); + /** + * Energy Tag for Heat + * Primary = Temperature + * Secondary = unused (always 1) + */ + public static final SubTag ENERGY_HEAT = getNewSubTag("ENERGY_HEAT"); + /** + * Energy Tag for RedstoneFlux + * Primary = unused (always 1) + * Secondary = RF + */ + public static final SubTag ENERGY_REDSTONE_FLUX = getNewSubTag("ENERGY_REDSTONE_FLUX"); + /** + * Projectile Tag for Arrows + */ + public static final SubTag PROJECTILE_ARROW = getNewSubTag("PROJECTILE_ARROW"); + public final Collection mRelevantTaggedItems = new HashSet(1); - /** - * Add this to your Material if you want to have its Ore electromagnetically separated to give Iron. - */ - public static final SubTag ELECTROMAGNETIC_SEPERATION_IRON = getNewSubTag("ELECTROMAGNETIC_SEPERATION_IRON"); - - /** - * Add this to your Material if you want to have its Ore electromagnetically separated to give Neodymium. - */ - public static final SubTag ELECTROMAGNETIC_SEPERATION_NEODYMIUM = getNewSubTag("ELECTROMAGNETIC_SEPERATION_NEODYMIUM"); - - /** - * Add this to your Material if you want to have its Ore giving Cinnabar Crystals on Pulverization. Already listed are: - * Redstone - */ - public static final SubTag PULVERIZING_CINNABAR = getNewSubTag("PULVERIZING_CINNABAR"); + private SubTag(String aName) { + mSubtagID = sSubtagID++; + mName = aName; + sSubTags.add(this); + } - /** - * This Material cannot be worked by any other means, than smashing or smelting. This is used for coated Materials. - */ - public static final SubTag NO_WORKING = getNewSubTag("NO_WORKING"); - - /** - * This Material cannot be used for regular Metal working techniques since it is not possible to bend it. Already listed are: - * Rubber, Plastic, Paper, Wood, Stone - */ - public static final SubTag NO_SMASHING = getNewSubTag("NO_SMASHING"); - - /** - * This Material cannot be unificated - */ - public static final SubTag NO_UNIFICATION = getNewSubTag("NO_UNIFICATION"); - - /** - * This Material cannot be used in any Recycler. Already listed are: - * Stone, Glass, Water - */ - public static final SubTag NO_RECYCLING = getNewSubTag("NO_RECYCLING"); - - /** - * This Material cannot be used in any Furnace alike Structure. Already listed are: - * Paper, Wood, Gunpowder, Stone - */ - public static final SubTag NO_SMELTING = getNewSubTag("NO_SMELTING"); - - /** - * This Material can be molten into a Fluid - */ - public static final SubTag SMELTING_TO_FLUID = getNewSubTag("SMELTING_TO_FLUID"); - - /** - * This Ore should be molten directly into a Gem of this Material, if the Ingot is missing. Already listed are: - * Cinnabar - */ - public static final SubTag SMELTING_TO_GEM = getNewSubTag("SMELTING_TO_GEM"); - - /** - * If this Material is some kind of Wood - */ - public static final SubTag WOOD = getNewSubTag("WOOD"); - - /** - * If this Material is some kind of Food (or edible at all) - */ - public static final SubTag FOOD = getNewSubTag("FOOD"); - - /** - * If this Material is some kind of Stone - */ - public static final SubTag STONE = getNewSubTag("STONE"); - - /** - * If this Material is some kind of Pearl - */ - public static final SubTag PEARL = getNewSubTag("PEARL"); - - /** - * If this Material is some kind of Quartz - */ - public static final SubTag QUARTZ = getNewSubTag("QUARTZ"); - - /** - * If this Material is Crystallisable - */ - public static final SubTag CRYSTALLISABLE = getNewSubTag("CRYSTALLISABLE"); - - /** - * If this Material is some kind of Crystal - */ - public static final SubTag CRYSTAL = getNewSubTag("CRYSTAL"); - - /** - * If this Material is some kind of Magical - */ - public static final SubTag MAGICAL = getNewSubTag("MAGICAL"); - - /** - * If this Material is some kind of Metal - */ - public static final SubTag METAL = getNewSubTag("METAL"); - - /** - * If this Material is some kind of Paper - */ - public static final SubTag PAPER = getNewSubTag("PAPER"); - - /** - * If this Material is having a constantly burning Aura - */ - public static final SubTag BURNING = getNewSubTag("BURNING"); - - /** - * If this Material is some kind of flammable - */ - public static final SubTag FLAMMABLE = getNewSubTag("FLAMMABLE"); - - /** - * If this Material is not burnable at all - */ - public static final SubTag UNBURNABLE = getNewSubTag("UNBURNABLE"); - - /** - * If this Material is some kind of explosive - */ - public static final SubTag EXPLOSIVE = getNewSubTag("EXPLOSIVE"); - - /** - * If this Material is bouncy - */ - public static final SubTag BOUNCY = getNewSubTag("BOUNCY"); + public static SubTag getNewSubTag(String aName) { + for (SubTag tSubTag : sSubTags) if (tSubTag.mName.equals(aName)) return tSubTag; + return new SubTag(aName); + } - /** - * If this Material is invisible - */ - public static final SubTag INVISIBLE = getNewSubTag("INVISIBLE"); - - /** - * If this Material is transparent - */ - public static final SubTag TRANSPARENT = getNewSubTag("TRANSPARENT"); - - /** - * If this Material has a Color - */ - public static final SubTag HAS_COLOR = getNewSubTag("HAS_COLOR"); - - /** - * If this Material is stretchable - */ - public static final SubTag STRETCHY = getNewSubTag("STRETCHY"); - - /** - * If this Material is grindable with a simple Mortar - */ - public static final SubTag MORTAR_GRINDABLE = getNewSubTag("MORTAR_GRINDABLE"); - - /** - * If this Material is usable for Soldering - */ - public static final SubTag SOLDERING_MATERIAL = getNewSubTag("SOLDERING_MATERIAL"); - - /** - * If this Material is has extra Costs for Soldering, requires the Tag "SOLDERING_MATERIAL" too - */ - public static final SubTag SOLDERING_MATERIAL_BAD = getNewSubTag("SOLDERING_MATERIAL_BAD"); - - /** - * If this Material is has a discount for Soldering, requires the Tag "SOLDERING_MATERIAL" too - */ - public static final SubTag SOLDERING_MATERIAL_GOOD = getNewSubTag("SOLDERING_MATERIAL_GOOD"); - - /** - * Energy Tag for Electricity - * Primary = Voltage - * Secondary = Amperage - */ - public static final SubTag ENERGY_ELECTRICITY = getNewSubTag("ENERGY_ELECTRICITY"); - - /** - * Energy Tag for Rotating Power - * Primary = Speed - * Secondary = Power - */ - public static final SubTag ENERGY_ROTATIONAL = getNewSubTag("ENERGY_ROTATIONAL"); - - /** - * Energy Tag for Steam Power - * Primary = Steam per Tick - * Secondary = unused (always 1) - */ - public static final SubTag ENERGY_STEAM = getNewSubTag("ENERGY_STEAM"); - - /** - * Energy Tag for Air Pressure Power - * Primary = Pressure - * Secondary = unused (always 1) - */ - public static final SubTag ENERGY_AIR = getNewSubTag("ENERGY_AIR"); - - /** - * Energy Tag for Heat - * Primary = Temperature - * Secondary = unused (always 1) - */ - public static final SubTag ENERGY_HEAT = getNewSubTag("ENERGY_HEAT"); - - /** - * Energy Tag for RedstoneFlux - * Primary = unused (always 1) - * Secondary = RF - */ - public static final SubTag ENERGY_REDSTONE_FLUX = getNewSubTag("ENERGY_REDSTONE_FLUX"); - - /** Projectile Tag for Arrows */ - public static final SubTag PROJECTILE_ARROW = getNewSubTag("PROJECTILE_ARROW"); - - public final long mSubtagID; - public final String mName; - public final Collection mRelevantTaggedItems = new HashSet(1); - - private SubTag(String aName) { - mSubtagID = sSubtagID++; - mName = aName; - sSubTags.add(this); - } - - public static SubTag getNewSubTag(String aName) { - for (SubTag tSubTag : sSubTags) if (tSubTag.mName.equals(aName)) return tSubTag; - return new SubTag(aName); - } - - @Override - public String toString() { - return mName; - } - - public SubTag addContainerToList(ISubTagContainer... aContainers) { - if (aContainers != null) for (ISubTagContainer aContainer : aContainers) if (aContainer != null && !mRelevantTaggedItems.contains(aContainer)) mRelevantTaggedItems.add(aContainer); - return this; - } - - public SubTag addTo(ISubTagContainer... aContainers) { - if (aContainers != null) for (ISubTagContainer aContainer : aContainers) if (aContainer != null) aContainer.add(this); - return this; - } - - @Override - public boolean isTrue(ISubTagContainer aObject) { - return aObject.contains(this); - } + @Override + public String toString() { + return mName; + } + + public SubTag addContainerToList(ISubTagContainer... aContainers) { + if (aContainers != null) for (ISubTagContainer aContainer : aContainers) + if (aContainer != null && !mRelevantTaggedItems.contains(aContainer)) mRelevantTaggedItems.add(aContainer); + return this; + } + + public SubTag addTo(ISubTagContainer... aContainers) { + if (aContainers != null) + for (ISubTagContainer aContainer : aContainers) if (aContainer != null) aContainer.add(this); + return this; + } + + @Override + public boolean isTrue(ISubTagContainer aObject) { + return aObject.contains(this); + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/enums/TC_Aspects.java b/src/main/java/gregtech/api/enums/TC_Aspects.java index 79a9b617..7a542a7a 100644 --- a/src/main/java/gregtech/api/enums/TC_Aspects.java +++ b/src/main/java/gregtech/api/enums/TC_Aspects.java @@ -3,106 +3,57 @@ package gregtech.api.enums; import java.util.List; public enum TC_Aspects { - AER(1) - , ALIENIS(20) - , AQUA(3) - , ARBOR(1) - , AURAM(16) - , BESTIA(6) - , COGNITO(2) - , CORPUS(2) - , ELECTRUM(24) - , EXAMINIS(32) - , FABRICO(2) - , FAMES(2) - , GELUM(1) - , GRANUM(4) - , HERBA(2) - , HUMANUS(8) - , IGNIS(4) - , INSTRUMENTUM(4) - , ITER(6) - , LIMUS(3) - , LUCRUM(32) - , LUX(4) - , MACHINA(16) - , MAGNETO(24) - , MESSIS(3) - , METALLUM(8) - , METO(2) - , MORTUUS(16) - , MOTUS(4) - , NEBRISUM(48) - , ORDO(8) - , PANNUS(6) - , PERDITIO(2) - , PERFODIO(4) - , PERMUTATIO(12) - , POTENTIA(16) - , PRAECANTIO(16) - , RADIO(48) - , SANO(24) - , SENSUS(4) - , SPIRITUS(24) - , STRONTIO(64) - , TELUM(6) - , TERRA(1) - , TEMPESTAS(64) - , TENEBRAE(24) - , TUTAMEN(12) - , VACUOS(6) - , VENENUM(16) - , VICTUS(4) - , VINCULUM(16) - , VITIUM(48) - , VITREUS(3) - , VOLATUS(12) - ; - - /** - * The Thaumcraft Aspect Object of the Mod itself. - */ - public Object mAspect; - public int mValue; - - private TC_Aspects(int aValue){ - mValue = aValue; - } - - public static class TC_AspectStack { - public TC_Aspects mAspect; - public long mAmount; - - - public TC_AspectStack(TC_Aspects aAspect, long aAmount) { - mAspect = aAspect; - mAmount = aAmount; - } - - public TC_AspectStack copy() { - return new TC_AspectStack(mAspect, mAmount); - } - - public TC_AspectStack copy(long aAmount) { - return new TC_AspectStack(mAspect, aAmount); - } - - public List addToAspectList(List aList) { - if (mAmount == 0) return aList; - for (TC_AspectStack tAspect : aList) if (tAspect.mAspect == mAspect) {tAspect.mAmount += mAmount; return aList;} - aList.add(copy()); - return aList; - } - - public boolean removeFromAspectList(List aList) { - for (TC_AspectStack tAspect : aList) if (tAspect.mAspect == mAspect) { - if (tAspect.mAmount >= mAmount) { - tAspect.mAmount -= mAmount; - if (tAspect.mAmount == 0) aList.remove(tAspect); - return true; - } - } - return false; - } - } + AER(1), ALIENIS(20), AQUA(3), ARBOR(1), AURAM(16), BESTIA(6), COGNITO(2), CORPUS(2), ELECTRUM(24), EXAMINIS(32), FABRICO(2), FAMES(2), GELUM(1), GRANUM(4), HERBA(2), HUMANUS(8), IGNIS(4), INSTRUMENTUM(4), ITER(6), LIMUS(3), LUCRUM(32), LUX(4), MACHINA(16), MAGNETO(24), MESSIS(3), METALLUM(8), METO(2), MORTUUS(16), MOTUS(4), NEBRISUM(48), ORDO(8), PANNUS(6), PERDITIO(2), PERFODIO(4), PERMUTATIO(12), POTENTIA(16), PRAECANTIO(16), RADIO(48), SANO(24), SENSUS(4), SPIRITUS(24), STRONTIO(64), TELUM(6), TERRA(1), TEMPESTAS(64), TENEBRAE(24), TUTAMEN(12), VACUOS(6), VENENUM(16), VICTUS(4), VINCULUM(16), VITIUM(48), VITREUS(3), VOLATUS(12); + + /** + * The Thaumcraft Aspect Object of the Mod itself. + */ + public Object mAspect; + public int mValue; + + private TC_Aspects(int aValue) { + mValue = aValue; + } + + public static class TC_AspectStack { + public TC_Aspects mAspect; + public long mAmount; + + + public TC_AspectStack(TC_Aspects aAspect, long aAmount) { + mAspect = aAspect; + mAmount = aAmount; + } + + public TC_AspectStack copy() { + return new TC_AspectStack(mAspect, mAmount); + } + + public TC_AspectStack copy(long aAmount) { + return new TC_AspectStack(mAspect, aAmount); + } + + public List addToAspectList(List aList) { + if (mAmount == 0) return aList; + for (TC_AspectStack tAspect : aList) + if (tAspect.mAspect == mAspect) { + tAspect.mAmount += mAmount; + return aList; + } + aList.add(copy()); + return aList; + } + + public boolean removeFromAspectList(List aList) { + for (TC_AspectStack tAspect : aList) + if (tAspect.mAspect == mAspect) { + if (tAspect.mAmount >= mAmount) { + tAspect.mAmount -= mAmount; + if (tAspect.mAmount == 0) aList.remove(tAspect); + return true; + } + } + return false; + } + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/enums/TextureSet.java b/src/main/java/gregtech/api/enums/TextureSet.java index 4a4bf616..8448b026 100644 --- a/src/main/java/gregtech/api/enums/TextureSet.java +++ b/src/main/java/gregtech/api/enums/TextureSet.java @@ -3,182 +3,147 @@ package gregtech.api.enums; import gregtech.api.interfaces.IIconContainer; public class TextureSet { - public static final TextureSet - SET_NONE = new TextureSet("NONE") - , SET_DULL = new TextureSet("DULL") - , SET_RUBY = new TextureSet("RUBY") - , SET_OPAL = new TextureSet("OPAL") - , SET_LEAF = new TextureSet("LEAF") - , SET_WOOD = new TextureSet("WOOD") - , SET_SAND = new TextureSet("SAND") - , SET_FINE = new TextureSet("FINE") - , SET_FIERY = new TextureSet("FIERY") - , SET_FLUID = new TextureSet("FLUID") - , SET_ROUGH = new TextureSet("ROUGH") - , SET_PAPER = new TextureSet("PAPER") - , SET_GLASS = new TextureSet("GLASS") - , SET_FLINT = new TextureSet("FLINT") - , SET_LAPIS = new TextureSet("LAPIS") - , SET_SHINY = new TextureSet("SHINY") - , SET_SHARDS = new TextureSet("SHARDS") - , SET_POWDER = new TextureSet("POWDER") - , SET_QUARTZ = new TextureSet("QUARTZ") - , SET_EMERALD = new TextureSet("EMERALD") - , SET_DIAMOND = new TextureSet("DIAMOND") - , SET_LIGNITE = new TextureSet("LIGNITE") - , SET_MAGNETIC = new TextureSet("MAGNETIC") - , SET_METALLIC = new TextureSet("METALLIC") - , SET_NETHERSTAR = new TextureSet("NETHERSTAR") - , SET_GEM_VERTICAL = new TextureSet("GEM_VERTICAL") - , SET_GEM_HORIZONTAL = new TextureSet("GEM_HORIZONTAL") - ; - - /** - * For the Indices of OrePrefixes you need to look into the OrePrefix Enum. - */ - public static final short - INDEX_wire = 69 - , INDEX_foil = 70 - , INDEX_block1 = 71 - , INDEX_block2 = 72 - , INDEX_block3 = 73 - , INDEX_block4 = 74 - , INDEX_block5 = 75 - , INDEX_block6 = 76 - ; - - public final IIconContainer[] mTextures = new IIconContainer[128]; - public final String mSetName; - - public TextureSet(String aSetName) { - mSetName = aSetName; - mTextures[ 0] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/dustTiny"); - mTextures[ 1] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/dustSmall"); - mTextures[ 2] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/dust"); - mTextures[ 3] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/dustImpure"); - mTextures[ 4] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/dustPure"); - mTextures[ 5] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/crushed"); - mTextures[ 6] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/crushedPurified"); - mTextures[ 7] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/crushedCentrifuged"); - mTextures[ 8] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/gem"); - mTextures[ 9] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/nugget"); - mTextures[ 10] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[ 11] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/ingot"); - mTextures[ 12] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/ingotHot"); - mTextures[ 13] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/ingotDouble"); - mTextures[ 14] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/ingotTriple"); - mTextures[ 15] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/ingotQuadruple"); - mTextures[ 16] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/ingotQuintuple"); - mTextures[ 17] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/plate"); - mTextures[ 18] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/plateDouble"); - mTextures[ 19] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/plateTriple"); - mTextures[ 20] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/plateQuadruple"); - mTextures[ 21] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/plateQuintuple"); - mTextures[ 22] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/plateDense"); - mTextures[ 23] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/stick"); - mTextures[ 24] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/lens"); - mTextures[ 25] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/round"); - mTextures[ 26] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/bolt"); - mTextures[ 27] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/screw"); - mTextures[ 28] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/ring"); - mTextures[ 29] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/foil"); - mTextures[ 30] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/cell"); - mTextures[ 31] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/cellPlasma"); - mTextures[ 32] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/toolHeadSword"); - mTextures[ 33] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/toolHeadPickaxe"); - mTextures[ 34] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/toolHeadShovel"); - mTextures[ 35] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/toolHeadAxe"); - mTextures[ 36] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/toolHeadHoe"); - mTextures[ 37] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/toolHeadHammer"); - mTextures[ 38] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/toolHeadFile"); - mTextures[ 39] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/toolHeadSaw"); - mTextures[ 40] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/toolHeadDrill"); - mTextures[ 41] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/toolHeadChainsaw"); - mTextures[ 42] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/toolHeadWrench"); - mTextures[ 43] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/toolHeadUniversalSpade"); - mTextures[ 44] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/toolHeadSense"); - mTextures[ 45] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/toolHeadPlow"); - mTextures[ 46] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/toolHeadArrow"); - mTextures[ 47] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/toolHeadScrewdriver"); - mTextures[ 48] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/toolHeadBuzzSaw"); - mTextures[ 49] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/toolHeadSoldering"); - mTextures[ 50] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[ 51] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/wireFine"); - mTextures[ 52] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/gearGtSmall"); - mTextures[ 53] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/rotor"); - mTextures[ 54] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/stickLong"); - mTextures[ 55] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/springSmall"); - mTextures[ 56] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/spring"); - mTextures[ 57] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/arrowGtWood"); - mTextures[ 58] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/arrowGtPlastic"); - mTextures[ 59] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/gemChipped"); - mTextures[ 60] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/gemFlawed"); - mTextures[ 61] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/gemFlawless"); - mTextures[ 62] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/gemExquisite"); - mTextures[ 63] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/gearGt"); - mTextures[ 64] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[ 65] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[ 66] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[ 67] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/oreSmall"); - mTextures[ 68] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/ore"); - mTextures[ 69] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/wire"); - mTextures[ 70] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/foil"); - mTextures[ 71] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/block1"); - mTextures[ 72] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/block2"); - mTextures[ 73] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/block3"); - mTextures[ 74] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/block4"); - mTextures[ 75] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/block5"); - mTextures[ 76] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/block6"); - mTextures[ 77] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/pipeSide"); - mTextures[ 78] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/pipeTiny"); - mTextures[ 79] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/pipeSmall"); - mTextures[ 80] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/pipeMedium"); - mTextures[ 81] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/pipeLarge"); - mTextures[ 82] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/pipeHuge"); - mTextures[ 83] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/frameGt"); - mTextures[ 84] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[ 85] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[ 86] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[ 87] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[ 88] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[ 89] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[ 90] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[ 91] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[ 92] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[ 93] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[ 94] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[ 95] = new Textures.BlockIcons.CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[ 96] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/crateGtDust"); - mTextures[ 97] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/crateGtIngot"); - mTextures[ 98] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/crateGtGem"); - mTextures[ 99] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/crateGtPlate"); - mTextures[100] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/turbineBlade"); - mTextures[101] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[102] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[103] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[104] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[105] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[106] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[107] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[108] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[109] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[110] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[111] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[112] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[113] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[114] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[115] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[116] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[117] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[118] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[119] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[120] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[121] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[122] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[123] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[124] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[125] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[126] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - mTextures[127] = new Textures.ItemIcons .CustomIcon("materialicons/"+mSetName+"/void"); - } + public static final TextureSet + SET_NONE = new TextureSet("NONE"), SET_DULL = new TextureSet("DULL"), SET_RUBY = new TextureSet("RUBY"), SET_OPAL = new TextureSet("OPAL"), SET_LEAF = new TextureSet("LEAF"), SET_WOOD = new TextureSet("WOOD"), SET_SAND = new TextureSet("SAND"), SET_FINE = new TextureSet("FINE"), SET_FIERY = new TextureSet("FIERY"), SET_FLUID = new TextureSet("FLUID"), SET_ROUGH = new TextureSet("ROUGH"), SET_PAPER = new TextureSet("PAPER"), SET_GLASS = new TextureSet("GLASS"), SET_FLINT = new TextureSet("FLINT"), SET_LAPIS = new TextureSet("LAPIS"), SET_SHINY = new TextureSet("SHINY"), SET_SHARDS = new TextureSet("SHARDS"), SET_POWDER = new TextureSet("POWDER"), SET_QUARTZ = new TextureSet("QUARTZ"), SET_EMERALD = new TextureSet("EMERALD"), SET_DIAMOND = new TextureSet("DIAMOND"), SET_LIGNITE = new TextureSet("LIGNITE"), SET_MAGNETIC = new TextureSet("MAGNETIC"), SET_METALLIC = new TextureSet("METALLIC"), SET_NETHERSTAR = new TextureSet("NETHERSTAR"), SET_GEM_VERTICAL = new TextureSet("GEM_VERTICAL"), SET_GEM_HORIZONTAL = new TextureSet("GEM_HORIZONTAL"); + + /** + * For the Indices of OrePrefixes you need to look into the OrePrefix Enum. + */ + public static final short + INDEX_wire = 69, INDEX_foil = 70, INDEX_block1 = 71, INDEX_block2 = 72, INDEX_block3 = 73, INDEX_block4 = 74, INDEX_block5 = 75, INDEX_block6 = 76; + + public final IIconContainer[] mTextures = new IIconContainer[128]; + public final String mSetName; + + public TextureSet(String aSetName) { + mSetName = aSetName; + mTextures[0] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/dustTiny"); + mTextures[1] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/dustSmall"); + mTextures[2] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/dust"); + mTextures[3] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/dustImpure"); + mTextures[4] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/dustPure"); + mTextures[5] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/crushed"); + mTextures[6] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/crushedPurified"); + mTextures[7] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/crushedCentrifuged"); + mTextures[8] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/gem"); + mTextures[9] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/nugget"); + mTextures[10] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[11] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/ingot"); + mTextures[12] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/ingotHot"); + mTextures[13] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/ingotDouble"); + mTextures[14] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/ingotTriple"); + mTextures[15] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/ingotQuadruple"); + mTextures[16] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/ingotQuintuple"); + mTextures[17] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/plate"); + mTextures[18] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/plateDouble"); + mTextures[19] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/plateTriple"); + mTextures[20] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/plateQuadruple"); + mTextures[21] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/plateQuintuple"); + mTextures[22] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/plateDense"); + mTextures[23] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/stick"); + mTextures[24] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/lens"); + mTextures[25] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/round"); + mTextures[26] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/bolt"); + mTextures[27] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/screw"); + mTextures[28] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/ring"); + mTextures[29] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/foil"); + mTextures[30] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/cell"); + mTextures[31] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/cellPlasma"); + mTextures[32] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/toolHeadSword"); + mTextures[33] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/toolHeadPickaxe"); + mTextures[34] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/toolHeadShovel"); + mTextures[35] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/toolHeadAxe"); + mTextures[36] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/toolHeadHoe"); + mTextures[37] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/toolHeadHammer"); + mTextures[38] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/toolHeadFile"); + mTextures[39] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/toolHeadSaw"); + mTextures[40] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/toolHeadDrill"); + mTextures[41] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/toolHeadChainsaw"); + mTextures[42] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/toolHeadWrench"); + mTextures[43] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/toolHeadUniversalSpade"); + mTextures[44] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/toolHeadSense"); + mTextures[45] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/toolHeadPlow"); + mTextures[46] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/toolHeadArrow"); + mTextures[47] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/toolHeadScrewdriver"); + mTextures[48] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/toolHeadBuzzSaw"); + mTextures[49] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/toolHeadSoldering"); + mTextures[50] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[51] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/wireFine"); + mTextures[52] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/gearGtSmall"); + mTextures[53] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/rotor"); + mTextures[54] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/stickLong"); + mTextures[55] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/springSmall"); + mTextures[56] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/spring"); + mTextures[57] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/arrowGtWood"); + mTextures[58] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/arrowGtPlastic"); + mTextures[59] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/gemChipped"); + mTextures[60] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/gemFlawed"); + mTextures[61] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/gemFlawless"); + mTextures[62] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/gemExquisite"); + mTextures[63] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/gearGt"); + mTextures[64] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[65] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[66] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[67] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/oreSmall"); + mTextures[68] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/ore"); + mTextures[69] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/wire"); + mTextures[70] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/foil"); + mTextures[71] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/block1"); + mTextures[72] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/block2"); + mTextures[73] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/block3"); + mTextures[74] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/block4"); + mTextures[75] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/block5"); + mTextures[76] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/block6"); + mTextures[77] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/pipeSide"); + mTextures[78] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/pipeTiny"); + mTextures[79] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/pipeSmall"); + mTextures[80] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/pipeMedium"); + mTextures[81] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/pipeLarge"); + mTextures[82] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/pipeHuge"); + mTextures[83] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/frameGt"); + mTextures[84] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[85] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[86] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[87] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[88] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[89] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[90] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[91] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[92] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[93] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[94] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[95] = new Textures.BlockIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[96] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/crateGtDust"); + mTextures[97] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/crateGtIngot"); + mTextures[98] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/crateGtGem"); + mTextures[99] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/crateGtPlate"); + mTextures[100] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/turbineBlade"); + mTextures[101] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[102] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[103] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[104] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[105] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[106] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[107] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[108] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[109] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[110] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[111] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[112] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[113] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[114] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[115] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[116] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[117] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[118] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[119] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[120] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[121] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[122] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[123] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[124] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[125] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[126] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[127] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java index 43c33fc8..b272684d 100644 --- a/src/main/java/gregtech/api/enums/Textures.java +++ b/src/main/java/gregtech/api/enums/Textures.java @@ -1,7 +1,5 @@ package gregtech.api.enums; -import static gregtech.api.enums.GT_Values.RES_PATH_BLOCK; -import static gregtech.api.enums.GT_Values.RES_PATH_ITEM; import gregtech.api.GregTech_API; import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.ITexture; @@ -11,443 +9,406 @@ import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.util.IIcon; import net.minecraft.util.ResourceLocation; -public class Textures { - public enum BlockIcons implements IIconContainer, Runnable { - VOID // The Empty Texture - , RENDERING_ERROR - , PIPE_RESTRICTOR - , INSULATION_FULL, INSULATION_TINY, INSULATION_SMALL, INSULATION_MEDIUM, INSULATION_LARGE, INSULATION_HUGE - , CFOAM_FRESH, CFOAM_HARDENED - , SOLARPANEL, SOLARPANEL_8V, SOLARPANEL_LV, SOLARPANEL_MV, SOLARPANEL_HV, SOLARPANEL_EV, SOLARPANEL_IV, SOLARPANEL_LuV, SOLARPANEL_ZPM, SOLARPANEL_UV - , VENT_NORMAL, VENT_ADVANCED, COVER_WOOD_PLATE - , ARROW_UP, ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT - , AUTOMATION_FILTER, AUTOMATION_TYPEFILTER, AUTOMATION_CHESTBUFFER, AUTOMATION_SUPERBUFFER, AUTOMATION_REGULATOR - , CONCRETE_LIGHT_STONE, CONCRETE_LIGHT_COBBLE, CONCRETE_LIGHT_COBBLE_MOSSY, CONCRETE_LIGHT_BRICKS, CONCRETE_LIGHT_BRICKS_CRACKED, CONCRETE_LIGHT_BRICKS_MOSSY, CONCRETE_LIGHT_BRICKS_CHISELED, CONCRETE_LIGHT_SMOOTH - , CONCRETE_DARK_STONE, CONCRETE_DARK_COBBLE, CONCRETE_DARK_COBBLE_MOSSY, CONCRETE_DARK_BRICKS, CONCRETE_DARK_BRICKS_CRACKED, CONCRETE_DARK_BRICKS_MOSSY, CONCRETE_DARK_BRICKS_CHISELED, CONCRETE_DARK_SMOOTH - , GRANITE_BLACK_STONE, GRANITE_BLACK_COBBLE, GRANITE_BLACK_COBBLE_MOSSY, GRANITE_BLACK_BRICKS, GRANITE_BLACK_BRICKS_CRACKED, GRANITE_BLACK_BRICKS_MOSSY, GRANITE_BLACK_BRICKS_CHISELED, GRANITE_BLACK_SMOOTH - , GRANITE_RED_STONE, GRANITE_RED_COBBLE, GRANITE_RED_COBBLE_MOSSY, GRANITE_RED_BRICKS, GRANITE_RED_BRICKS_CRACKED, GRANITE_RED_BRICKS_MOSSY, GRANITE_RED_BRICKS_CHISELED, GRANITE_RED_SMOOTH - , MACHINE_BRONZEBRICKS_TOP, MACHINE_BRONZEBRICKS_SIDE, MACHINE_BRONZEBRICKS_BOTTOM - , MACHINE_STEELBRICKS_TOP, MACHINE_STEELBRICKS_SIDE, MACHINE_STEELBRICKS_BOTTOM - , MACHINE_BRONZE_TOP, MACHINE_BRONZE_SIDE, MACHINE_BRONZE_BOTTOM - , MACHINE_STEEL_TOP, MACHINE_STEEL_SIDE, MACHINE_STEEL_BOTTOM - , MACHINE_8V_TOP, MACHINE_8V_SIDE, MACHINE_8V_BOTTOM - , MACHINE_LV_TOP, MACHINE_LV_SIDE, MACHINE_LV_BOTTOM - , MACHINE_MV_TOP, MACHINE_MV_SIDE, MACHINE_MV_BOTTOM - , MACHINE_HV_TOP, MACHINE_HV_SIDE, MACHINE_HV_BOTTOM - , MACHINE_EV_TOP, MACHINE_EV_SIDE, MACHINE_EV_BOTTOM - , MACHINE_IV_TOP, MACHINE_IV_SIDE, MACHINE_IV_BOTTOM - , MACHINE_LuV_TOP, MACHINE_LuV_SIDE, MACHINE_LuV_BOTTOM - , MACHINE_ZPM_TOP, MACHINE_ZPM_SIDE, MACHINE_ZPM_BOTTOM - , MACHINE_UV_TOP, MACHINE_UV_SIDE, MACHINE_UV_BOTTOM - , MACHINE_MAX_TOP, MACHINE_MAX_SIDE, MACHINE_MAX_BOTTOM - , MACHINE_BRONZEPLATEDBRICKS, MACHINE_HEATPROOFCASING, MACHINE_BRONZEBLASTFURNACE, MACHINE_BRONZEBLASTFURNACE_ACTIVE - , MACHINE_CASING_ROBUST_TUNGSTENSTEEL, MACHINE_CASING_CLEAN_STAINLESSSTEEL, MACHINE_CASING_STABLE_TITANIUM, MACHINE_CASING_FIREBOX_TITANIUM, MACHINE_CASING_FUSION_COIL, MACHINE_CASING_FUSION, MACHINE_CASING_FUSION_GLASS, MACHINE_CASING_FUSION_GLASS_YELLOW, MACHINE_CASING_FUSION_2,MACHINE_CASING_MAGIC,MACHINE_CASING_MAGIC_ACTIVE,MACHINE_CASING_MAGIC_FRONT,MACHINE_CASING_MAGIC_FRONT_ACTIVE,MACHINE_CASING_DRAGONEGG - , MACHINE_CASING_SOLID_STEEL, MACHINE_CASING_FROST_PROOF, MACHINE_CASING_PUMP, MACHINE_CASING_MOTOR, MACHINE_CASING_PIPE_BRONZE, MACHINE_CASING_PIPE_STEEL, MACHINE_CASING_PIPE_TITANIUM, MACHINE_CASING_PIPE_TUNGSTENSTEEL, MACHINE_CASING_GEARBOX_BRONZE, MACHINE_CASING_GEARBOX_STEEL, MACHINE_CASING_GEARBOX_TITANIUM, MACHINE_CASING_GEARBOX_TUNGSTENSTEEL, MACHINE_CASING_DATA_DRIVE, MACHINE_CASING_CONTAINMENT_FIELD, MACHINE_CASING_ASSEMBLER, MACHINE_CASING_PROCESSOR - , MACHINE_CASING_STRIPES_A, MACHINE_CASING_STRIPES_B, MACHINE_CASING_RADIOACTIVEHAZARD, MACHINE_CASING_BIOHAZARD, MACHINE_CASING_EXPLOSIONHAZARD, MACHINE_CASING_FIREHAZARD, MACHINE_CASING_ACIDHAZARD, MACHINE_CASING_MAGICHAZARD, MACHINE_CASING_FROSTHAZARD, MACHINE_CASING_NOISEHAZARD, MACHINE_CASING_GRATE, MACHINE_CASING_VENT, MACHINE_CASING_RADIATIONPROOF, MACHINE_CASING_FIREBOX_BRONZE, MACHINE_CASING_FIREBOX_STEEL, MACHINE_CASING_FIREBOX_TUNGSTENSTEEL - , BOILER_SOLAR, BOILER_FRONT, BOILER_FRONT_ACTIVE, BOILER_LAVA_FRONT, BOILER_LAVA_FRONT_ACTIVE - , NAQUADAH_REACTOR_SOLID_BACK, NAQUADAH_REACTOR_SOLID_FRONT, NAQUADAH_REACTOR_SOLID_SIDE, NAQUADAH_REACTOR_SOLID_BOTTOM, NAQUADAH_REACTOR_SOLID_TOP, NAQUADAH_REACTOR_SOLID_BACK_ACTIVE, NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE, NAQUADAH_REACTOR_SOLID_SIDE_ACTIVE, NAQUADAH_REACTOR_SOLID_BOTTOM_ACTIVE, NAQUADAH_REACTOR_SOLID_TOP_ACTIVE - , NAQUADAH_REACTOR_FLUID_BACK, NAQUADAH_REACTOR_FLUID_FRONT, NAQUADAH_REACTOR_FLUID_SIDE, NAQUADAH_REACTOR_FLUID_BOTTOM, NAQUADAH_REACTOR_FLUID_TOP, NAQUADAH_REACTOR_FLUID_BACK_ACTIVE, NAQUADAH_REACTOR_FLUID_FRONT_ACTIVE, NAQUADAH_REACTOR_FLUID_SIDE_ACTIVE, NAQUADAH_REACTOR_FLUID_BOTTOM_ACTIVE, NAQUADAH_REACTOR_FLUID_TOP_ACTIVE - , DIESEL_GENERATOR_BACK, DIESEL_GENERATOR_FRONT, DIESEL_GENERATOR_SIDE, DIESEL_GENERATOR_BOTTOM, DIESEL_GENERATOR_TOP, DIESEL_GENERATOR_BACK_ACTIVE, DIESEL_GENERATOR_FRONT_ACTIVE, DIESEL_GENERATOR_SIDE_ACTIVE, DIESEL_GENERATOR_BOTTOM_ACTIVE, DIESEL_GENERATOR_TOP_ACTIVE - , GAS_TURBINE_BACK, GAS_TURBINE_FRONT, GAS_TURBINE_SIDE, GAS_TURBINE_BOTTOM, GAS_TURBINE_TOP, GAS_TURBINE_BACK_ACTIVE, GAS_TURBINE_FRONT_ACTIVE, GAS_TURBINE_SIDE_ACTIVE, GAS_TURBINE_BOTTOM_ACTIVE, GAS_TURBINE_TOP_ACTIVE - , STEAM_TURBINE_BACK, STEAM_TURBINE_FRONT, STEAM_TURBINE_SIDE, STEAM_TURBINE_BOTTOM, STEAM_TURBINE_TOP, STEAM_TURBINE_BACK_ACTIVE, STEAM_TURBINE_FRONT_ACTIVE, STEAM_TURBINE_SIDE_ACTIVE, STEAM_TURBINE_BOTTOM_ACTIVE, STEAM_TURBINE_TOP_ACTIVE - , MACHINE_COIL_CUPRONICKEL, MACHINE_COIL_KANTHAL, MACHINE_COIL_NICHROME, MACHINE_COIL_SUPERCONDUCTOR - , OVERLAY_LOCKER, OVERLAY_LOCKER_000, OVERLAY_LOCKER_001, OVERLAY_LOCKER_002, OVERLAY_LOCKER_003, OVERLAY_LOCKER_004, OVERLAY_LOCKER_005, OVERLAY_LOCKER_006, OVERLAY_LOCKER_007, OVERLAY_LOCKER_008, OVERLAY_LOCKER_009, OVERLAY_LOCKER_010, OVERLAY_LOCKER_011, OVERLAY_LOCKER_012, OVERLAY_LOCKER_013 - , OVERLAY_LENS, OVERLAY_PIPE, OVERLAY_PIPE_IN, OVERLAY_PIPE_OUT, OVERLAY_MUFFLER, OVERLAY_CONTROLLER, OVERLAY_ACTIVITYDETECTOR, OVERLAY_ENERGYDETECTOR, OVERLAY_FLUIDDETECTOR, OVERLAY_ITEMDETECTOR, OVERLAY_FUSION1, OVERLAY_FUSION2, OVERLAY_FUSION3, OVERLAY_SCREEN, OVERLAY_QTANK, OVERLAY_QCHEST, OVERLAY_SHUTTER, OVERLAY_CLOSET, OVERLAY_DUCTTAPE, OVERLAY_MAINTENANCE, OVERLAY_CONVEYOR, OVERLAY_PUMP, OVERLAY_ARM, OVERLAY_DRAIN, OVERLAY_CRAFTING - , OVERLAY_ENERGY_IN, OVERLAY_ENERGY_OUT , OVERLAY_ENERGY_IN_MULTI, OVERLAY_ENERGY_OUT_MULTI - , OVERLAY_FRONT_LARGE_BOILER, OVERLAY_FRONT_LARGE_BOILER_ACTIVE, OVERLAY_FRONT_VACUUM_FREEZER, OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE, OVERLAY_FRONT_MULTI_SMELTER, OVERLAY_FRONT_MULTI_SMELTER_ACTIVE, OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE, OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE, OVERLAY_FRONT_IMPLOSION_COMPRESSOR, OVERLAY_FRONT_IMPLOSION_COMPRESSOR_ACTIVE - , OVERLAY_TOP_POTIONBREWER , OVERLAY_TOP_REPLICATOR , OVERLAY_TOP_MASSFAB , OVERLAY_TOP_STEAM_HAMMER , OVERLAY_TOP_STEAM_FURNACE , OVERLAY_TOP_STEAM_ALLOY_SMELTER , OVERLAY_TOP_STEAM_MACERATOR , OVERLAY_TOP_STEAM_COMPRESSOR , OVERLAY_TOP_STEAM_EXTRACTOR , OVERLAY_TOP_DISASSEMBLER , OVERLAY_TOP_BOXINATOR , OVERLAY_TOP_ROCK_BREAKER , OVERLAY_TOP_SCANNER - , OVERLAY_FRONT_POTIONBREWER , OVERLAY_FRONT_REPLICATOR , OVERLAY_FRONT_MASSFAB , OVERLAY_FRONT_STEAM_HAMMER , OVERLAY_FRONT_STEAM_FURNACE , OVERLAY_FRONT_STEAM_ALLOY_SMELTER , OVERLAY_FRONT_STEAM_MACERATOR , OVERLAY_FRONT_STEAM_COMPRESSOR , OVERLAY_FRONT_STEAM_EXTRACTOR , OVERLAY_FRONT_DISASSEMBLER , OVERLAY_FRONT_BOXINATOR , OVERLAY_FRONT_ROCK_BREAKER , OVERLAY_FRONT_SCANNER - , OVERLAY_BOTTOM_POTIONBREWER , OVERLAY_BOTTOM_REPLICATOR , OVERLAY_BOTTOM_MASSFAB , OVERLAY_BOTTOM_STEAM_HAMMER , OVERLAY_BOTTOM_STEAM_FURNACE , OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER , OVERLAY_BOTTOM_STEAM_MACERATOR , OVERLAY_BOTTOM_STEAM_COMPRESSOR , OVERLAY_BOTTOM_STEAM_EXTRACTOR , OVERLAY_BOTTOM_DISASSEMBLER , OVERLAY_BOTTOM_BOXINATOR , OVERLAY_BOTTOM_ROCK_BREAKER , OVERLAY_BOTTOM_SCANNER - , OVERLAY_SIDE_POTIONBREWER , OVERLAY_SIDE_REPLICATOR , OVERLAY_SIDE_MASSFAB , OVERLAY_SIDE_STEAM_HAMMER , OVERLAY_SIDE_STEAM_FURNACE , OVERLAY_SIDE_STEAM_ALLOY_SMELTER , OVERLAY_SIDE_STEAM_MACERATOR , OVERLAY_SIDE_STEAM_COMPRESSOR , OVERLAY_SIDE_STEAM_EXTRACTOR , OVERLAY_SIDE_DISASSEMBLER , OVERLAY_SIDE_BOXINATOR , OVERLAY_SIDE_ROCK_BREAKER , OVERLAY_SIDE_SCANNER - , OVERLAY_TOP_POTIONBREWER_ACTIVE, OVERLAY_TOP_REPLICATOR_ACTIVE, OVERLAY_TOP_MASSFAB_ACTIVE, OVERLAY_TOP_STEAM_HAMMER_ACTIVE, OVERLAY_TOP_STEAM_FURNACE_ACTIVE, OVERLAY_TOP_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_TOP_STEAM_MACERATOR_ACTIVE, OVERLAY_TOP_STEAM_COMPRESSOR_ACTIVE, OVERLAY_TOP_STEAM_EXTRACTOR_ACTIVE, OVERLAY_TOP_DISASSEMBLER_ACTIVE, OVERLAY_TOP_BOXINATOR_ACTIVE, OVERLAY_TOP_ROCK_BREAKER_ACTIVE, OVERLAY_TOP_SCANNER_ACTIVE - , OVERLAY_FRONT_POTIONBREWER_ACTIVE, OVERLAY_FRONT_REPLICATOR_ACTIVE, OVERLAY_FRONT_MASSFAB_ACTIVE, OVERLAY_FRONT_STEAM_HAMMER_ACTIVE, OVERLAY_FRONT_STEAM_FURNACE_ACTIVE, OVERLAY_FRONT_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_FRONT_STEAM_MACERATOR_ACTIVE, OVERLAY_FRONT_STEAM_COMPRESSOR_ACTIVE, OVERLAY_FRONT_STEAM_EXTRACTOR_ACTIVE, OVERLAY_FRONT_DISASSEMBLER_ACTIVE, OVERLAY_FRONT_BOXINATOR_ACTIVE, OVERLAY_FRONT_ROCK_BREAKER_ACTIVE, OVERLAY_FRONT_SCANNER_ACTIVE - , OVERLAY_BOTTOM_POTIONBREWER_ACTIVE, OVERLAY_BOTTOM_REPLICATOR_ACTIVE, OVERLAY_BOTTOM_MASSFAB_ACTIVE, OVERLAY_BOTTOM_STEAM_HAMMER_ACTIVE, OVERLAY_BOTTOM_STEAM_FURNACE_ACTIVE, OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_BOTTOM_STEAM_MACERATOR_ACTIVE, OVERLAY_BOTTOM_STEAM_COMPRESSOR_ACTIVE, OVERLAY_BOTTOM_STEAM_EXTRACTOR_ACTIVE, OVERLAY_BOTTOM_DISASSEMBLER_ACTIVE, OVERLAY_BOTTOM_BOXINATOR_ACTIVE, OVERLAY_BOTTOM_ROCK_BREAKER_ACTIVE, OVERLAY_BOTTOM_SCANNER_ACTIVE - , OVERLAY_SIDE_POTIONBREWER_ACTIVE, OVERLAY_SIDE_REPLICATOR_ACTIVE, OVERLAY_SIDE_MASSFAB_ACTIVE, OVERLAY_SIDE_STEAM_HAMMER_ACTIVE, OVERLAY_SIDE_STEAM_FURNACE_ACTIVE, OVERLAY_SIDE_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_SIDE_STEAM_MACERATOR_ACTIVE, OVERLAY_SIDE_STEAM_COMPRESSOR_ACTIVE, OVERLAY_SIDE_STEAM_EXTRACTOR_ACTIVE, OVERLAY_SIDE_DISASSEMBLER_ACTIVE, OVERLAY_SIDE_BOXINATOR_ACTIVE, OVERLAY_SIDE_ROCK_BREAKER_ACTIVE, OVERLAY_SIDE_SCANNER_ACTIVE, OVERLAY_ADV_PUMP, OVERLAY_TELEPORTER,OVERLAY_TELEPORTER_ACTIVE - ,FUSIONI_1,FUSIONI_2,FUSIONI_3,FUSIONI_4,FUSIONI_5,FUSIONI_6,FUSIONI_7,FUSIONI_8,FUSIONI_9,FUSIONI_10,FUSIONI_11,FUSIONI_12,FUSIONII_1,FUSIONII_2,FUSIONII_3,FUSIONII_4,FUSIONII_5,FUSIONII_6,FUSIONII_7,FUSIONII_8,FUSIONII_9,FUSIONII_10,FUSIONII_11,FUSIONII_12 - ,LARGETURBINE1,LARGETURBINE2,LARGETURBINE3,LARGETURBINE4,LARGETURBINE5,LARGETURBINE6,LARGETURBINE7,LARGETURBINE8,LARGETURBINE9,LARGETURBINE_ACTIVE1,LARGETURBINE_ACTIVE2,LARGETURBINE_ACTIVE3,LARGETURBINE_ACTIVE4,LARGETURBINE_ACTIVE5,LARGETURBINE_ACTIVE6,LARGETURBINE_ACTIVE7,LARGETURBINE_ACTIVE8,LARGETURBINE_ACTIVE9, MACHINE_CASING_TURBINE - - ; - - protected IIcon mIcon; - - @Override public IIcon getIcon() {return mIcon;} - @Override public IIcon getOverlayIcon() {return null;} - - private BlockIcons() { - GregTech_API.sGTBlockIconload.add(this); - } - - @Override - public void run() { - mIcon = GregTech_API.sBlockIcons.registerIcon(RES_PATH_BLOCK + "iconsets/" + this); - } - - @Override - public ResourceLocation getTextureFile() { - return TextureMap.locationBlocksTexture; - } - - /** - * Icon for Fresh CFoam - */ - public static final ITexture[] FRESHFOAM = new ITexture[] {new GT_RenderedTexture(CFOAM_FRESH)}; - - /** - * Icons for Hardened CFoam - * 0 = No Color - * 1 - 16 = Colors - */ - public static final ITexture[][] HARDENEDFOAMS = new ITexture[][] { - new ITexture[] {new GT_RenderedTexture(CFOAM_HARDENED, Dyes.CONSTRUCTION_FOAM.mRGBa)}, - new ITexture[] {new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[ 0].mRGBa)}, - new ITexture[] {new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[ 1].mRGBa)}, - new ITexture[] {new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[ 2].mRGBa)}, - new ITexture[] {new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[ 3].mRGBa)}, - new ITexture[] {new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[ 4].mRGBa)}, - new ITexture[] {new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[ 5].mRGBa)}, - new ITexture[] {new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[ 6].mRGBa)}, - new ITexture[] {new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[ 7].mRGBa)}, - new ITexture[] {new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[ 8].mRGBa)}, - new ITexture[] {new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[ 9].mRGBa)}, - new ITexture[] {new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[10].mRGBa)}, - new ITexture[] {new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[11].mRGBa)}, - new ITexture[] {new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[12].mRGBa)}, - new ITexture[] {new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[13].mRGBa)}, - new ITexture[] {new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[14].mRGBa)}, - new ITexture[] {new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[15].mRGBa)} - }; +import static gregtech.api.enums.GT_Values.RES_PATH_BLOCK; +import static gregtech.api.enums.GT_Values.RES_PATH_ITEM; - /** - * Machine Casings by Tier - * 0 = 8V, 1 = LV, 2 = MV, 3 = HV, 4 = EV, 5 = IV, 6 = IV, 7 = IV, 8 = IV, 9 = IV - */ - public static final IIconContainer[] - MACHINECASINGS_SIDE = new IIconContainer[] { - MACHINE_8V_SIDE, - MACHINE_LV_SIDE, - MACHINE_MV_SIDE, - MACHINE_HV_SIDE, - MACHINE_EV_SIDE, - MACHINE_IV_SIDE, - MACHINE_LuV_SIDE, - MACHINE_ZPM_SIDE, - MACHINE_UV_SIDE, - MACHINE_MAX_SIDE, - MACHINE_MAX_SIDE, - MACHINE_MAX_SIDE, - MACHINE_MAX_SIDE, - MACHINE_MAX_SIDE, - MACHINE_MAX_SIDE, - MACHINE_MAX_SIDE, - }, - MACHINECASINGS_TOP = new IIconContainer[] { - MACHINE_8V_TOP, - MACHINE_LV_TOP, - MACHINE_MV_TOP, - MACHINE_HV_TOP, - MACHINE_EV_TOP, - MACHINE_IV_TOP, - MACHINE_LuV_TOP, - MACHINE_ZPM_TOP, - MACHINE_UV_TOP, - MACHINE_MAX_TOP, - MACHINE_MAX_TOP, - MACHINE_MAX_TOP, - MACHINE_MAX_TOP, - MACHINE_MAX_TOP, - MACHINE_MAX_TOP, - MACHINE_MAX_TOP, - }, - MACHINECASINGS_BOTTOM = new IIconContainer[] { - MACHINE_8V_BOTTOM, - MACHINE_LV_BOTTOM, - MACHINE_MV_BOTTOM, - MACHINE_HV_BOTTOM, - MACHINE_EV_BOTTOM, - MACHINE_IV_BOTTOM, - MACHINE_LuV_BOTTOM, - MACHINE_ZPM_BOTTOM, - MACHINE_UV_BOTTOM, - MACHINE_MAX_BOTTOM, - MACHINE_MAX_BOTTOM, - MACHINE_MAX_BOTTOM, - MACHINE_MAX_BOTTOM, - MACHINE_MAX_BOTTOM, - MACHINE_MAX_BOTTOM, - MACHINE_MAX_BOTTOM, - }, - GRANITES = new IIconContainer[] { - GRANITE_BLACK_STONE, - GRANITE_BLACK_COBBLE, - GRANITE_BLACK_COBBLE_MOSSY, - GRANITE_BLACK_BRICKS, - GRANITE_BLACK_BRICKS_CRACKED, - GRANITE_BLACK_BRICKS_MOSSY, - GRANITE_BLACK_BRICKS_CHISELED, - GRANITE_BLACK_SMOOTH, - GRANITE_RED_STONE, - GRANITE_RED_COBBLE, - GRANITE_RED_COBBLE_MOSSY, - GRANITE_RED_BRICKS, - GRANITE_RED_BRICKS_CRACKED, - GRANITE_RED_BRICKS_MOSSY, - GRANITE_RED_BRICKS_CHISELED, - GRANITE_RED_SMOOTH, - }, - CONCRETES = new IIconContainer[] { - CONCRETE_DARK_STONE, - CONCRETE_DARK_COBBLE, - CONCRETE_DARK_COBBLE_MOSSY, - CONCRETE_DARK_BRICKS, - CONCRETE_DARK_BRICKS_CRACKED, - CONCRETE_DARK_BRICKS_MOSSY, - CONCRETE_DARK_BRICKS_CHISELED, - CONCRETE_DARK_SMOOTH, - CONCRETE_LIGHT_STONE, - CONCRETE_LIGHT_COBBLE, - CONCRETE_LIGHT_COBBLE_MOSSY, - CONCRETE_LIGHT_BRICKS, - CONCRETE_LIGHT_BRICKS_CRACKED, - CONCRETE_LIGHT_BRICKS_MOSSY, - CONCRETE_LIGHT_BRICKS_CHISELED, - CONCRETE_LIGHT_SMOOTH, - }, - TURBINE = new IIconContainer[] { - LARGETURBINE1, - LARGETURBINE2, - LARGETURBINE3, - LARGETURBINE4, - LARGETURBINE5, - LARGETURBINE6, - LARGETURBINE7, - LARGETURBINE8, - LARGETURBINE9 - }, - TURBINE_ACTIVE = new IIconContainer[] { - LARGETURBINE_ACTIVE1, - LARGETURBINE_ACTIVE2, - LARGETURBINE_ACTIVE3, - LARGETURBINE_ACTIVE4, - LARGETURBINE_ACTIVE5, - LARGETURBINE_ACTIVE6, - LARGETURBINE_ACTIVE7, - LARGETURBINE_ACTIVE8, - LARGETURBINE_ACTIVE9 - }, - CONNECTED_HULLS = new IIconContainer[] { - CONCRETE_DARK_STONE, - FUSIONI_1, - FUSIONI_2, - FUSIONI_3, - FUSIONI_4, - FUSIONI_5, - FUSIONI_6, - FUSIONI_7, - FUSIONI_8, - FUSIONI_9, - FUSIONI_10, - FUSIONI_11, - FUSIONI_12, - FUSIONII_1, - FUSIONII_2, - FUSIONII_3, - FUSIONII_4, - FUSIONII_5, - FUSIONII_6, - FUSIONII_7, - FUSIONII_8, - FUSIONII_9, - FUSIONII_10, - FUSIONII_11, - FUSIONII_12, - }; - - - - public static ITexture[] - ERROR_RENDERING = new ITexture[] { - new GT_RenderedTexture(RENDERING_ERROR) - }, - OVERLAYS_ENERGY_IN = new ITexture[] { - new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[] {220, 220, 220, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[] {220, 220, 220, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[] {255, 100, 0, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[] {255, 255, 30, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[] {128, 128, 128, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[] {240, 240, 245, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[] {240, 240, 245, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[] {240, 240, 245, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[] {240, 240, 245, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[] {240, 240, 245, 0}), - }, - OVERLAYS_ENERGY_OUT = new ITexture[] { - new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[] {220, 220, 220, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[] {220, 220, 220, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[] {255, 100, 0, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[] {255, 255, 30, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[] {128, 128, 128, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[] {240, 240, 245, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[] {240, 240, 245, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[] {240, 240, 245, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[] {240, 240, 245, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[] {240, 240, 245, 0}), - }, - OVERLAYS_ENERGY_IN_MULTI = new ITexture[] { - new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[] {220, 220, 220, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[] {220, 220, 220, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[] {255, 100, 0, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[] {255, 255, 30, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[] {128, 128, 128, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[] {240, 240, 245, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[] {240, 240, 245, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[] {240, 240, 245, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[] {240, 240, 245, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[] {240, 240, 245, 0}), - }, - OVERLAYS_ENERGY_OUT_MULTI = new ITexture[] { - new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[] {220, 220, 220, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[] {220, 220, 220, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[] {255, 100, 0, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[] {255, 255, 30, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[] {128, 128, 128, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[] {240, 240, 245, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[] {240, 240, 245, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[] {240, 240, 245, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[] {240, 240, 245, 0}), - new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[] {240, 240, 245, 0}), - }, - LOCKERS = new ITexture[] { - new GT_RenderedTexture(OVERLAY_LOCKER_000), - new GT_RenderedTexture(OVERLAY_LOCKER_001), - new GT_RenderedTexture(OVERLAY_LOCKER_002), - new GT_RenderedTexture(OVERLAY_LOCKER_003), - new GT_RenderedTexture(OVERLAY_LOCKER_004), - new GT_RenderedTexture(OVERLAY_LOCKER_005), - new GT_RenderedTexture(OVERLAY_LOCKER_006), - new GT_RenderedTexture(OVERLAY_LOCKER_007), - new GT_RenderedTexture(OVERLAY_LOCKER_008), - new GT_RenderedTexture(OVERLAY_LOCKER_009), - new GT_RenderedTexture(OVERLAY_LOCKER_010), - new GT_RenderedTexture(OVERLAY_LOCKER_011), - new GT_RenderedTexture(OVERLAY_LOCKER_012), - new GT_RenderedTexture(OVERLAY_LOCKER_013), - }, - CASING_BLOCKS = new ITexture[128], - MACHINE_CASINGS[] = new ITexture[10][17]; - - static { - for (byte i = 0; i < MACHINE_CASINGS.length; i++) for (byte j = 0; j < MACHINE_CASINGS[i].length; j++) MACHINE_CASINGS[i][j] = new GT_SidedTexture(MACHINECASINGS_BOTTOM[i], MACHINECASINGS_TOP[i], MACHINECASINGS_SIDE[i], Dyes.getModulation(j-1, Dyes.MACHINE_METAL.mRGBa)); - } - - public static class CustomIcon implements IIconContainer, Runnable { - protected IIcon mIcon; - protected String mIconName; - - @Override public IIcon getIcon() {return mIcon;} - @Override public IIcon getOverlayIcon() {return null;} - - public CustomIcon(String aIconName) { - mIconName = aIconName; - GregTech_API.sGTBlockIconload.add(this); - } - - @Override - public void run() { - mIcon = GregTech_API.sBlockIcons.registerIcon(RES_PATH_BLOCK + mIconName); - } - - @Override - public ResourceLocation getTextureFile() { - return TextureMap.locationBlocksTexture; - } - } - } - - public enum ItemIcons implements IIconContainer, Runnable { - VOID // The Empty Texture - , RENDERING_ERROR - , WRENCH - , MORTAR - , CROWBAR - , JACKHAMMER - , WIRE_CUTTER - , KNIFE, BUTCHERYKNIFE, SICKLE - , SCOOP, GRAFTER - , PLUNGER, ROLLING_PIN - , HANDLE_SWORD, HANDLE_FILE, HANDLE_SAW, HANDLE_SCREWDRIVER, HANDLE_BUZZSAW, HANDLE_ELECTRIC_SCREWDRIVER, HANDLE_SOLDERING - , POWER_UNIT_LV, POWER_UNIT_MV, POWER_UNIT_HV - , DURABILITY_BAR_0, DURABILITY_BAR_1, DURABILITY_BAR_2, DURABILITY_BAR_3, DURABILITY_BAR_4, DURABILITY_BAR_5, DURABILITY_BAR_6, DURABILITY_BAR_7, DURABILITY_BAR_8 - , ENERGY_BAR_0, ENERGY_BAR_1, ENERGY_BAR_2, ENERGY_BAR_3, ENERGY_BAR_4, ENERGY_BAR_5, ENERGY_BAR_6, ENERGY_BAR_7, ENERGY_BAR_8, TURBINE, TURBINE_SMALL, TURBINE_LARGE, TURBINE_HUGE - ; - - public static final IIconContainer[] - DURABILITY_BAR = new IIconContainer[] { - DURABILITY_BAR_0, - DURABILITY_BAR_1, - DURABILITY_BAR_2, - DURABILITY_BAR_3, - DURABILITY_BAR_4, - DURABILITY_BAR_5, - DURABILITY_BAR_6, - DURABILITY_BAR_7, - DURABILITY_BAR_8, - }, - ENERGY_BAR = new IIconContainer[] { - ENERGY_BAR_0, - ENERGY_BAR_1, - ENERGY_BAR_2, - ENERGY_BAR_3, - ENERGY_BAR_4, - ENERGY_BAR_5, - ENERGY_BAR_6, - ENERGY_BAR_7, - ENERGY_BAR_8, - }; - - public static final ITexture[] ERROR_RENDERING = new ITexture[] {new GT_RenderedTexture(RENDERING_ERROR)}; - - protected IIcon mIcon, mOverlay; - - @Override public IIcon getIcon() {return mIcon;} - @Override public IIcon getOverlayIcon() {return mOverlay;} - - private ItemIcons() { - GregTech_API.sGTItemIconload.add(this); - } - - @Override - public ResourceLocation getTextureFile() { - return TextureMap.locationItemsTexture; - } - - @Override - public void run() { - mIcon = GregTech_API.sItemIcons.registerIcon(RES_PATH_ITEM + "iconsets/" + this); - mOverlay = GregTech_API.sItemIcons.registerIcon(RES_PATH_ITEM + "iconsets/" + this + "_OVERLAY"); - } - - public static class CustomIcon implements IIconContainer, Runnable { - protected IIcon mIcon, mOverlay; - protected String mIconName; - - @Override public IIcon getIcon() {return mIcon;} - @Override public IIcon getOverlayIcon() {return mOverlay;} - - public CustomIcon(String aIconName) { - mIconName = aIconName; - GregTech_API.sGTItemIconload.add(this); - } - - @Override - public void run() { - mIcon = GregTech_API.sItemIcons.registerIcon(RES_PATH_ITEM + mIconName); - mOverlay = GregTech_API.sItemIcons.registerIcon(RES_PATH_ITEM + mIconName + "_OVERLAY"); - } - - @Override - public ResourceLocation getTextureFile() { - return TextureMap.locationItemsTexture; - } - } - } +public class Textures { + public enum BlockIcons implements IIconContainer, Runnable { + VOID // The Empty Texture + , RENDERING_ERROR, PIPE_RESTRICTOR, INSULATION_FULL, INSULATION_TINY, INSULATION_SMALL, INSULATION_MEDIUM, INSULATION_LARGE, INSULATION_HUGE, CFOAM_FRESH, CFOAM_HARDENED, SOLARPANEL, SOLARPANEL_8V, SOLARPANEL_LV, SOLARPANEL_MV, SOLARPANEL_HV, SOLARPANEL_EV, SOLARPANEL_IV, SOLARPANEL_LuV, SOLARPANEL_ZPM, SOLARPANEL_UV, VENT_NORMAL, VENT_ADVANCED, COVER_WOOD_PLATE, ARROW_UP, ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, AUTOMATION_FILTER, AUTOMATION_TYPEFILTER, AUTOMATION_CHESTBUFFER, AUTOMATION_SUPERBUFFER, AUTOMATION_REGULATOR, CONCRETE_LIGHT_STONE, CONCRETE_LIGHT_COBBLE, CONCRETE_LIGHT_COBBLE_MOSSY, CONCRETE_LIGHT_BRICKS, CONCRETE_LIGHT_BRICKS_CRACKED, CONCRETE_LIGHT_BRICKS_MOSSY, CONCRETE_LIGHT_BRICKS_CHISELED, CONCRETE_LIGHT_SMOOTH, CONCRETE_DARK_STONE, CONCRETE_DARK_COBBLE, CONCRETE_DARK_COBBLE_MOSSY, CONCRETE_DARK_BRICKS, CONCRETE_DARK_BRICKS_CRACKED, CONCRETE_DARK_BRICKS_MOSSY, CONCRETE_DARK_BRICKS_CHISELED, CONCRETE_DARK_SMOOTH, GRANITE_BLACK_STONE, GRANITE_BLACK_COBBLE, GRANITE_BLACK_COBBLE_MOSSY, GRANITE_BLACK_BRICKS, GRANITE_BLACK_BRICKS_CRACKED, GRANITE_BLACK_BRICKS_MOSSY, GRANITE_BLACK_BRICKS_CHISELED, GRANITE_BLACK_SMOOTH, GRANITE_RED_STONE, GRANITE_RED_COBBLE, GRANITE_RED_COBBLE_MOSSY, GRANITE_RED_BRICKS, GRANITE_RED_BRICKS_CRACKED, GRANITE_RED_BRICKS_MOSSY, GRANITE_RED_BRICKS_CHISELED, GRANITE_RED_SMOOTH, MACHINE_BRONZEBRICKS_TOP, MACHINE_BRONZEBRICKS_SIDE, MACHINE_BRONZEBRICKS_BOTTOM, MACHINE_STEELBRICKS_TOP, MACHINE_STEELBRICKS_SIDE, MACHINE_STEELBRICKS_BOTTOM, MACHINE_BRONZE_TOP, MACHINE_BRONZE_SIDE, MACHINE_BRONZE_BOTTOM, MACHINE_STEEL_TOP, MACHINE_STEEL_SIDE, MACHINE_STEEL_BOTTOM, MACHINE_8V_TOP, MACHINE_8V_SIDE, MACHINE_8V_BOTTOM, MACHINE_LV_TOP, MACHINE_LV_SIDE, MACHINE_LV_BOTTOM, MACHINE_MV_TOP, MACHINE_MV_SIDE, MACHINE_MV_BOTTOM, MACHINE_HV_TOP, MACHINE_HV_SIDE, MACHINE_HV_BOTTOM, MACHINE_EV_TOP, MACHINE_EV_SIDE, MACHINE_EV_BOTTOM, MACHINE_IV_TOP, MACHINE_IV_SIDE, MACHINE_IV_BOTTOM, MACHINE_LuV_TOP, MACHINE_LuV_SIDE, MACHINE_LuV_BOTTOM, MACHINE_ZPM_TOP, MACHINE_ZPM_SIDE, MACHINE_ZPM_BOTTOM, MACHINE_UV_TOP, MACHINE_UV_SIDE, MACHINE_UV_BOTTOM, MACHINE_MAX_TOP, MACHINE_MAX_SIDE, MACHINE_MAX_BOTTOM, MACHINE_BRONZEPLATEDBRICKS, MACHINE_HEATPROOFCASING, MACHINE_BRONZEBLASTFURNACE, MACHINE_BRONZEBLASTFURNACE_ACTIVE, MACHINE_CASING_ROBUST_TUNGSTENSTEEL, MACHINE_CASING_CLEAN_STAINLESSSTEEL, MACHINE_CASING_STABLE_TITANIUM, MACHINE_CASING_FIREBOX_TITANIUM, MACHINE_CASING_FUSION_COIL, MACHINE_CASING_FUSION, MACHINE_CASING_FUSION_GLASS, MACHINE_CASING_FUSION_GLASS_YELLOW, MACHINE_CASING_FUSION_2, MACHINE_CASING_MAGIC, MACHINE_CASING_MAGIC_ACTIVE, MACHINE_CASING_MAGIC_FRONT, MACHINE_CASING_MAGIC_FRONT_ACTIVE, MACHINE_CASING_DRAGONEGG, MACHINE_CASING_SOLID_STEEL, MACHINE_CASING_FROST_PROOF, MACHINE_CASING_PUMP, MACHINE_CASING_MOTOR, MACHINE_CASING_PIPE_BRONZE, MACHINE_CASING_PIPE_STEEL, MACHINE_CASING_PIPE_TITANIUM, MACHINE_CASING_PIPE_TUNGSTENSTEEL, MACHINE_CASING_GEARBOX_BRONZE, MACHINE_CASING_GEARBOX_STEEL, MACHINE_CASING_GEARBOX_TITANIUM, MACHINE_CASING_GEARBOX_TUNGSTENSTEEL, MACHINE_CASING_DATA_DRIVE, MACHINE_CASING_CONTAINMENT_FIELD, MACHINE_CASING_ASSEMBLER, MACHINE_CASING_PROCESSOR, MACHINE_CASING_STRIPES_A, MACHINE_CASING_STRIPES_B, MACHINE_CASING_RADIOACTIVEHAZARD, MACHINE_CASING_BIOHAZARD, MACHINE_CASING_EXPLOSIONHAZARD, MACHINE_CASING_FIREHAZARD, MACHINE_CASING_ACIDHAZARD, MACHINE_CASING_MAGICHAZARD, MACHINE_CASING_FROSTHAZARD, MACHINE_CASING_NOISEHAZARD, MACHINE_CASING_GRATE, MACHINE_CASING_VENT, MACHINE_CASING_RADIATIONPROOF, MACHINE_CASING_FIREBOX_BRONZE, MACHINE_CASING_FIREBOX_STEEL, MACHINE_CASING_FIREBOX_TUNGSTENSTEEL, BOILER_SOLAR, BOILER_FRONT, BOILER_FRONT_ACTIVE, BOILER_LAVA_FRONT, BOILER_LAVA_FRONT_ACTIVE, NAQUADAH_REACTOR_SOLID_BACK, NAQUADAH_REACTOR_SOLID_FRONT, NAQUADAH_REACTOR_SOLID_SIDE, NAQUADAH_REACTOR_SOLID_BOTTOM, NAQUADAH_REACTOR_SOLID_TOP, NAQUADAH_REACTOR_SOLID_BACK_ACTIVE, NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE, NAQUADAH_REACTOR_SOLID_SIDE_ACTIVE, NAQUADAH_REACTOR_SOLID_BOTTOM_ACTIVE, NAQUADAH_REACTOR_SOLID_TOP_ACTIVE, NAQUADAH_REACTOR_FLUID_BACK, NAQUADAH_REACTOR_FLUID_FRONT, NAQUADAH_REACTOR_FLUID_SIDE, NAQUADAH_REACTOR_FLUID_BOTTOM, NAQUADAH_REACTOR_FLUID_TOP, NAQUADAH_REACTOR_FLUID_BACK_ACTIVE, NAQUADAH_REACTOR_FLUID_FRONT_ACTIVE, NAQUADAH_REACTOR_FLUID_SIDE_ACTIVE, NAQUADAH_REACTOR_FLUID_BOTTOM_ACTIVE, NAQUADAH_REACTOR_FLUID_TOP_ACTIVE, DIESEL_GENERATOR_BACK, DIESEL_GENERATOR_FRONT, DIESEL_GENERATOR_SIDE, DIESEL_GENERATOR_BOTTOM, DIESEL_GENERATOR_TOP, DIESEL_GENERATOR_BACK_ACTIVE, DIESEL_GENERATOR_FRONT_ACTIVE, DIESEL_GENERATOR_SIDE_ACTIVE, DIESEL_GENERATOR_BOTTOM_ACTIVE, DIESEL_GENERATOR_TOP_ACTIVE, GAS_TURBINE_BACK, GAS_TURBINE_FRONT, GAS_TURBINE_SIDE, GAS_TURBINE_BOTTOM, GAS_TURBINE_TOP, GAS_TURBINE_BACK_ACTIVE, GAS_TURBINE_FRONT_ACTIVE, GAS_TURBINE_SIDE_ACTIVE, GAS_TURBINE_BOTTOM_ACTIVE, GAS_TURBINE_TOP_ACTIVE, STEAM_TURBINE_BACK, STEAM_TURBINE_FRONT, STEAM_TURBINE_SIDE, STEAM_TURBINE_BOTTOM, STEAM_TURBINE_TOP, STEAM_TURBINE_BACK_ACTIVE, STEAM_TURBINE_FRONT_ACTIVE, STEAM_TURBINE_SIDE_ACTIVE, STEAM_TURBINE_BOTTOM_ACTIVE, STEAM_TURBINE_TOP_ACTIVE, MACHINE_COIL_CUPRONICKEL, MACHINE_COIL_KANTHAL, MACHINE_COIL_NICHROME, MACHINE_COIL_SUPERCONDUCTOR, OVERLAY_LOCKER, OVERLAY_LOCKER_000, OVERLAY_LOCKER_001, OVERLAY_LOCKER_002, OVERLAY_LOCKER_003, OVERLAY_LOCKER_004, OVERLAY_LOCKER_005, OVERLAY_LOCKER_006, OVERLAY_LOCKER_007, OVERLAY_LOCKER_008, OVERLAY_LOCKER_009, OVERLAY_LOCKER_010, OVERLAY_LOCKER_011, OVERLAY_LOCKER_012, OVERLAY_LOCKER_013, OVERLAY_LENS, OVERLAY_PIPE, OVERLAY_PIPE_IN, OVERLAY_PIPE_OUT, OVERLAY_MUFFLER, OVERLAY_CONTROLLER, OVERLAY_ACTIVITYDETECTOR, OVERLAY_ENERGYDETECTOR, OVERLAY_FLUIDDETECTOR, OVERLAY_ITEMDETECTOR, OVERLAY_FUSION1, OVERLAY_FUSION2, OVERLAY_FUSION3, OVERLAY_SCREEN, OVERLAY_QTANK, OVERLAY_QCHEST, OVERLAY_SHUTTER, OVERLAY_CLOSET, OVERLAY_DUCTTAPE, OVERLAY_MAINTENANCE, OVERLAY_CONVEYOR, OVERLAY_PUMP, OVERLAY_ARM, OVERLAY_DRAIN, OVERLAY_CRAFTING, OVERLAY_ENERGY_IN, OVERLAY_ENERGY_OUT, OVERLAY_ENERGY_IN_MULTI, OVERLAY_ENERGY_OUT_MULTI, OVERLAY_FRONT_LARGE_BOILER, OVERLAY_FRONT_LARGE_BOILER_ACTIVE, OVERLAY_FRONT_VACUUM_FREEZER, OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE, OVERLAY_FRONT_MULTI_SMELTER, OVERLAY_FRONT_MULTI_SMELTER_ACTIVE, OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE, OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE, OVERLAY_FRONT_IMPLOSION_COMPRESSOR, OVERLAY_FRONT_IMPLOSION_COMPRESSOR_ACTIVE, OVERLAY_TOP_POTIONBREWER, OVERLAY_TOP_REPLICATOR, OVERLAY_TOP_MASSFAB, OVERLAY_TOP_STEAM_HAMMER, OVERLAY_TOP_STEAM_FURNACE, OVERLAY_TOP_STEAM_ALLOY_SMELTER, OVERLAY_TOP_STEAM_MACERATOR, OVERLAY_TOP_STEAM_COMPRESSOR, OVERLAY_TOP_STEAM_EXTRACTOR, OVERLAY_TOP_DISASSEMBLER, OVERLAY_TOP_BOXINATOR, OVERLAY_TOP_ROCK_BREAKER, OVERLAY_TOP_SCANNER, OVERLAY_FRONT_POTIONBREWER, OVERLAY_FRONT_REPLICATOR, OVERLAY_FRONT_MASSFAB, OVERLAY_FRONT_STEAM_HAMMER, OVERLAY_FRONT_STEAM_FURNACE, OVERLAY_FRONT_STEAM_ALLOY_SMELTER, OVERLAY_FRONT_STEAM_MACERATOR, OVERLAY_FRONT_STEAM_COMPRESSOR, OVERLAY_FRONT_STEAM_EXTRACTOR, OVERLAY_FRONT_DISASSEMBLER, OVERLAY_FRONT_BOXINATOR, OVERLAY_FRONT_ROCK_BREAKER, OVERLAY_FRONT_SCANNER, OVERLAY_BOTTOM_POTIONBREWER, OVERLAY_BOTTOM_REPLICATOR, OVERLAY_BOTTOM_MASSFAB, OVERLAY_BOTTOM_STEAM_HAMMER, OVERLAY_BOTTOM_STEAM_FURNACE, OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER, OVERLAY_BOTTOM_STEAM_MACERATOR, OVERLAY_BOTTOM_STEAM_COMPRESSOR, OVERLAY_BOTTOM_STEAM_EXTRACTOR, OVERLAY_BOTTOM_DISASSEMBLER, OVERLAY_BOTTOM_BOXINATOR, OVERLAY_BOTTOM_ROCK_BREAKER, OVERLAY_BOTTOM_SCANNER, OVERLAY_SIDE_POTIONBREWER, OVERLAY_SIDE_REPLICATOR, OVERLAY_SIDE_MASSFAB, OVERLAY_SIDE_STEAM_HAMMER, OVERLAY_SIDE_STEAM_FURNACE, OVERLAY_SIDE_STEAM_ALLOY_SMELTER, OVERLAY_SIDE_STEAM_MACERATOR, OVERLAY_SIDE_STEAM_COMPRESSOR, OVERLAY_SIDE_STEAM_EXTRACTOR, OVERLAY_SIDE_DISASSEMBLER, OVERLAY_SIDE_BOXINATOR, OVERLAY_SIDE_ROCK_BREAKER, OVERLAY_SIDE_SCANNER, OVERLAY_TOP_POTIONBREWER_ACTIVE, OVERLAY_TOP_REPLICATOR_ACTIVE, OVERLAY_TOP_MASSFAB_ACTIVE, OVERLAY_TOP_STEAM_HAMMER_ACTIVE, OVERLAY_TOP_STEAM_FURNACE_ACTIVE, OVERLAY_TOP_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_TOP_STEAM_MACERATOR_ACTIVE, OVERLAY_TOP_STEAM_COMPRESSOR_ACTIVE, OVERLAY_TOP_STEAM_EXTRACTOR_ACTIVE, OVERLAY_TOP_DISASSEMBLER_ACTIVE, OVERLAY_TOP_BOXINATOR_ACTIVE, OVERLAY_TOP_ROCK_BREAKER_ACTIVE, OVERLAY_TOP_SCANNER_ACTIVE, OVERLAY_FRONT_POTIONBREWER_ACTIVE, OVERLAY_FRONT_REPLICATOR_ACTIVE, OVERLAY_FRONT_MASSFAB_ACTIVE, OVERLAY_FRONT_STEAM_HAMMER_ACTIVE, OVERLAY_FRONT_STEAM_FURNACE_ACTIVE, OVERLAY_FRONT_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_FRONT_STEAM_MACERATOR_ACTIVE, OVERLAY_FRONT_STEAM_COMPRESSOR_ACTIVE, OVERLAY_FRONT_STEAM_EXTRACTOR_ACTIVE, OVERLAY_FRONT_DISASSEMBLER_ACTIVE, OVERLAY_FRONT_BOXINATOR_ACTIVE, OVERLAY_FRONT_ROCK_BREAKER_ACTIVE, OVERLAY_FRONT_SCANNER_ACTIVE, OVERLAY_BOTTOM_POTIONBREWER_ACTIVE, OVERLAY_BOTTOM_REPLICATOR_ACTIVE, OVERLAY_BOTTOM_MASSFAB_ACTIVE, OVERLAY_BOTTOM_STEAM_HAMMER_ACTIVE, OVERLAY_BOTTOM_STEAM_FURNACE_ACTIVE, OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_BOTTOM_STEAM_MACERATOR_ACTIVE, OVERLAY_BOTTOM_STEAM_COMPRESSOR_ACTIVE, OVERLAY_BOTTOM_STEAM_EXTRACTOR_ACTIVE, OVERLAY_BOTTOM_DISASSEMBLER_ACTIVE, OVERLAY_BOTTOM_BOXINATOR_ACTIVE, OVERLAY_BOTTOM_ROCK_BREAKER_ACTIVE, OVERLAY_BOTTOM_SCANNER_ACTIVE, OVERLAY_SIDE_POTIONBREWER_ACTIVE, OVERLAY_SIDE_REPLICATOR_ACTIVE, OVERLAY_SIDE_MASSFAB_ACTIVE, OVERLAY_SIDE_STEAM_HAMMER_ACTIVE, OVERLAY_SIDE_STEAM_FURNACE_ACTIVE, OVERLAY_SIDE_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_SIDE_STEAM_MACERATOR_ACTIVE, OVERLAY_SIDE_STEAM_COMPRESSOR_ACTIVE, OVERLAY_SIDE_STEAM_EXTRACTOR_ACTIVE, OVERLAY_SIDE_DISASSEMBLER_ACTIVE, OVERLAY_SIDE_BOXINATOR_ACTIVE, OVERLAY_SIDE_ROCK_BREAKER_ACTIVE, OVERLAY_SIDE_SCANNER_ACTIVE, OVERLAY_ADV_PUMP, OVERLAY_TELEPORTER, OVERLAY_TELEPORTER_ACTIVE, FUSIONI_1, FUSIONI_2, FUSIONI_3, FUSIONI_4, FUSIONI_5, FUSIONI_6, FUSIONI_7, FUSIONI_8, FUSIONI_9, FUSIONI_10, FUSIONI_11, FUSIONI_12, FUSIONII_1, FUSIONII_2, FUSIONII_3, FUSIONII_4, FUSIONII_5, FUSIONII_6, FUSIONII_7, FUSIONII_8, FUSIONII_9, FUSIONII_10, FUSIONII_11, FUSIONII_12, LARGETURBINE1, LARGETURBINE2, LARGETURBINE3, LARGETURBINE4, LARGETURBINE5, LARGETURBINE6, LARGETURBINE7, LARGETURBINE8, LARGETURBINE9, LARGETURBINE_ACTIVE1, LARGETURBINE_ACTIVE2, LARGETURBINE_ACTIVE3, LARGETURBINE_ACTIVE4, LARGETURBINE_ACTIVE5, LARGETURBINE_ACTIVE6, LARGETURBINE_ACTIVE7, LARGETURBINE_ACTIVE8, LARGETURBINE_ACTIVE9, MACHINE_CASING_TURBINE; + + /** + * Icon for Fresh CFoam + */ + public static final ITexture[] FRESHFOAM = new ITexture[]{new GT_RenderedTexture(CFOAM_FRESH)}; + /** + * Icons for Hardened CFoam + * 0 = No Color + * 1 - 16 = Colors + */ + public static final ITexture[][] HARDENEDFOAMS = new ITexture[][]{ + new ITexture[]{new GT_RenderedTexture(CFOAM_HARDENED, Dyes.CONSTRUCTION_FOAM.mRGBa)}, + new ITexture[]{new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[0].mRGBa)}, + new ITexture[]{new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[1].mRGBa)}, + new ITexture[]{new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[2].mRGBa)}, + new ITexture[]{new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[3].mRGBa)}, + new ITexture[]{new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[4].mRGBa)}, + new ITexture[]{new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[5].mRGBa)}, + new ITexture[]{new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[6].mRGBa)}, + new ITexture[]{new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[7].mRGBa)}, + new ITexture[]{new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[8].mRGBa)}, + new ITexture[]{new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[9].mRGBa)}, + new ITexture[]{new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[10].mRGBa)}, + new ITexture[]{new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[11].mRGBa)}, + new ITexture[]{new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[12].mRGBa)}, + new ITexture[]{new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[13].mRGBa)}, + new ITexture[]{new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[14].mRGBa)}, + new ITexture[]{new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[15].mRGBa)} + }; + /** + * Machine Casings by Tier + * 0 = 8V, 1 = LV, 2 = MV, 3 = HV, 4 = EV, 5 = IV, 6 = IV, 7 = IV, 8 = IV, 9 = IV + */ + public static final IIconContainer[] + MACHINECASINGS_SIDE = new IIconContainer[]{ + MACHINE_8V_SIDE, + MACHINE_LV_SIDE, + MACHINE_MV_SIDE, + MACHINE_HV_SIDE, + MACHINE_EV_SIDE, + MACHINE_IV_SIDE, + MACHINE_LuV_SIDE, + MACHINE_ZPM_SIDE, + MACHINE_UV_SIDE, + MACHINE_MAX_SIDE, + MACHINE_MAX_SIDE, + MACHINE_MAX_SIDE, + MACHINE_MAX_SIDE, + MACHINE_MAX_SIDE, + MACHINE_MAX_SIDE, + MACHINE_MAX_SIDE, + }, + MACHINECASINGS_TOP = new IIconContainer[]{ + MACHINE_8V_TOP, + MACHINE_LV_TOP, + MACHINE_MV_TOP, + MACHINE_HV_TOP, + MACHINE_EV_TOP, + MACHINE_IV_TOP, + MACHINE_LuV_TOP, + MACHINE_ZPM_TOP, + MACHINE_UV_TOP, + MACHINE_MAX_TOP, + MACHINE_MAX_TOP, + MACHINE_MAX_TOP, + MACHINE_MAX_TOP, + MACHINE_MAX_TOP, + MACHINE_MAX_TOP, + MACHINE_MAX_TOP, + }, + MACHINECASINGS_BOTTOM = new IIconContainer[]{ + MACHINE_8V_BOTTOM, + MACHINE_LV_BOTTOM, + MACHINE_MV_BOTTOM, + MACHINE_HV_BOTTOM, + MACHINE_EV_BOTTOM, + MACHINE_IV_BOTTOM, + MACHINE_LuV_BOTTOM, + MACHINE_ZPM_BOTTOM, + MACHINE_UV_BOTTOM, + MACHINE_MAX_BOTTOM, + MACHINE_MAX_BOTTOM, + MACHINE_MAX_BOTTOM, + MACHINE_MAX_BOTTOM, + MACHINE_MAX_BOTTOM, + MACHINE_MAX_BOTTOM, + MACHINE_MAX_BOTTOM, + }, + GRANITES = new IIconContainer[]{ + GRANITE_BLACK_STONE, + GRANITE_BLACK_COBBLE, + GRANITE_BLACK_COBBLE_MOSSY, + GRANITE_BLACK_BRICKS, + GRANITE_BLACK_BRICKS_CRACKED, + GRANITE_BLACK_BRICKS_MOSSY, + GRANITE_BLACK_BRICKS_CHISELED, + GRANITE_BLACK_SMOOTH, + GRANITE_RED_STONE, + GRANITE_RED_COBBLE, + GRANITE_RED_COBBLE_MOSSY, + GRANITE_RED_BRICKS, + GRANITE_RED_BRICKS_CRACKED, + GRANITE_RED_BRICKS_MOSSY, + GRANITE_RED_BRICKS_CHISELED, + GRANITE_RED_SMOOTH, + }, + CONCRETES = new IIconContainer[]{ + CONCRETE_DARK_STONE, + CONCRETE_DARK_COBBLE, + CONCRETE_DARK_COBBLE_MOSSY, + CONCRETE_DARK_BRICKS, + CONCRETE_DARK_BRICKS_CRACKED, + CONCRETE_DARK_BRICKS_MOSSY, + CONCRETE_DARK_BRICKS_CHISELED, + CONCRETE_DARK_SMOOTH, + CONCRETE_LIGHT_STONE, + CONCRETE_LIGHT_COBBLE, + CONCRETE_LIGHT_COBBLE_MOSSY, + CONCRETE_LIGHT_BRICKS, + CONCRETE_LIGHT_BRICKS_CRACKED, + CONCRETE_LIGHT_BRICKS_MOSSY, + CONCRETE_LIGHT_BRICKS_CHISELED, + CONCRETE_LIGHT_SMOOTH, + }, + TURBINE = new IIconContainer[]{ + LARGETURBINE1, + LARGETURBINE2, + LARGETURBINE3, + LARGETURBINE4, + LARGETURBINE5, + LARGETURBINE6, + LARGETURBINE7, + LARGETURBINE8, + LARGETURBINE9 + }, + TURBINE_ACTIVE = new IIconContainer[]{ + LARGETURBINE_ACTIVE1, + LARGETURBINE_ACTIVE2, + LARGETURBINE_ACTIVE3, + LARGETURBINE_ACTIVE4, + LARGETURBINE_ACTIVE5, + LARGETURBINE_ACTIVE6, + LARGETURBINE_ACTIVE7, + LARGETURBINE_ACTIVE8, + LARGETURBINE_ACTIVE9 + }, + CONNECTED_HULLS = new IIconContainer[]{ + CONCRETE_DARK_STONE, + FUSIONI_1, + FUSIONI_2, + FUSIONI_3, + FUSIONI_4, + FUSIONI_5, + FUSIONI_6, + FUSIONI_7, + FUSIONI_8, + FUSIONI_9, + FUSIONI_10, + FUSIONI_11, + FUSIONI_12, + FUSIONII_1, + FUSIONII_2, + FUSIONII_3, + FUSIONII_4, + FUSIONII_5, + FUSIONII_6, + FUSIONII_7, + FUSIONII_8, + FUSIONII_9, + FUSIONII_10, + FUSIONII_11, + FUSIONII_12, + }; + public static ITexture[] + ERROR_RENDERING = new ITexture[]{ + new GT_RenderedTexture(RENDERING_ERROR) + }, + OVERLAYS_ENERGY_IN = new ITexture[]{ + new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{220, 220, 220, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{220, 220, 220, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{255, 100, 0, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{255, 255, 30, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{128, 128, 128, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{240, 240, 245, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{240, 240, 245, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{240, 240, 245, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{240, 240, 245, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{240, 240, 245, 0}), + }, + OVERLAYS_ENERGY_OUT = new ITexture[]{ + new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{220, 220, 220, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{220, 220, 220, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{255, 100, 0, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{255, 255, 30, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{128, 128, 128, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{240, 240, 245, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{240, 240, 245, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{240, 240, 245, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{240, 240, 245, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{240, 240, 245, 0}), + }, + OVERLAYS_ENERGY_IN_MULTI = new ITexture[]{ + new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{220, 220, 220, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{220, 220, 220, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{255, 100, 0, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{255, 255, 30, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{128, 128, 128, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{240, 240, 245, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{240, 240, 245, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{240, 240, 245, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{240, 240, 245, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{240, 240, 245, 0}), + }, + OVERLAYS_ENERGY_OUT_MULTI = new ITexture[]{ + new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{220, 220, 220, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{220, 220, 220, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{255, 100, 0, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{255, 255, 30, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{128, 128, 128, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{240, 240, 245, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{240, 240, 245, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{240, 240, 245, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{240, 240, 245, 0}), + new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{240, 240, 245, 0}), + }, + LOCKERS = new ITexture[]{ + new GT_RenderedTexture(OVERLAY_LOCKER_000), + new GT_RenderedTexture(OVERLAY_LOCKER_001), + new GT_RenderedTexture(OVERLAY_LOCKER_002), + new GT_RenderedTexture(OVERLAY_LOCKER_003), + new GT_RenderedTexture(OVERLAY_LOCKER_004), + new GT_RenderedTexture(OVERLAY_LOCKER_005), + new GT_RenderedTexture(OVERLAY_LOCKER_006), + new GT_RenderedTexture(OVERLAY_LOCKER_007), + new GT_RenderedTexture(OVERLAY_LOCKER_008), + new GT_RenderedTexture(OVERLAY_LOCKER_009), + new GT_RenderedTexture(OVERLAY_LOCKER_010), + new GT_RenderedTexture(OVERLAY_LOCKER_011), + new GT_RenderedTexture(OVERLAY_LOCKER_012), + new GT_RenderedTexture(OVERLAY_LOCKER_013), + }, + CASING_BLOCKS = new ITexture[128], + MACHINE_CASINGS[] = new ITexture[10][17]; + + static { + for (byte i = 0; i < MACHINE_CASINGS.length; i++) + for (byte j = 0; j < MACHINE_CASINGS[i].length; j++) + MACHINE_CASINGS[i][j] = new GT_SidedTexture(MACHINECASINGS_BOTTOM[i], MACHINECASINGS_TOP[i], MACHINECASINGS_SIDE[i], Dyes.getModulation(j - 1, Dyes.MACHINE_METAL.mRGBa)); + } + + protected IIcon mIcon; + + private BlockIcons() { + GregTech_API.sGTBlockIconload.add(this); + } + + @Override + public IIcon getIcon() { + return mIcon; + } + + @Override + public IIcon getOverlayIcon() { + return null; + } + + @Override + public void run() { + mIcon = GregTech_API.sBlockIcons.registerIcon(RES_PATH_BLOCK + "iconsets/" + this); + } + + @Override + public ResourceLocation getTextureFile() { + return TextureMap.locationBlocksTexture; + } + + public static class CustomIcon implements IIconContainer, Runnable { + protected IIcon mIcon; + protected String mIconName; + + public CustomIcon(String aIconName) { + mIconName = aIconName; + GregTech_API.sGTBlockIconload.add(this); + } + + @Override + public IIcon getIcon() { + return mIcon; + } + + @Override + public IIcon getOverlayIcon() { + return null; + } + + @Override + public void run() { + mIcon = GregTech_API.sBlockIcons.registerIcon(RES_PATH_BLOCK + mIconName); + } + + @Override + public ResourceLocation getTextureFile() { + return TextureMap.locationBlocksTexture; + } + } + } + + public enum ItemIcons implements IIconContainer, Runnable { + VOID // The Empty Texture + , RENDERING_ERROR, WRENCH, MORTAR, CROWBAR, JACKHAMMER, WIRE_CUTTER, KNIFE, BUTCHERYKNIFE, SICKLE, SCOOP, GRAFTER, PLUNGER, ROLLING_PIN, HANDLE_SWORD, HANDLE_FILE, HANDLE_SAW, HANDLE_SCREWDRIVER, HANDLE_BUZZSAW, HANDLE_ELECTRIC_SCREWDRIVER, HANDLE_SOLDERING, POWER_UNIT_LV, POWER_UNIT_MV, POWER_UNIT_HV, DURABILITY_BAR_0, DURABILITY_BAR_1, DURABILITY_BAR_2, DURABILITY_BAR_3, DURABILITY_BAR_4, DURABILITY_BAR_5, DURABILITY_BAR_6, DURABILITY_BAR_7, DURABILITY_BAR_8, ENERGY_BAR_0, ENERGY_BAR_1, ENERGY_BAR_2, ENERGY_BAR_3, ENERGY_BAR_4, ENERGY_BAR_5, ENERGY_BAR_6, ENERGY_BAR_7, ENERGY_BAR_8, TURBINE, TURBINE_SMALL, TURBINE_LARGE, TURBINE_HUGE; + + public static final IIconContainer[] + DURABILITY_BAR = new IIconContainer[]{ + DURABILITY_BAR_0, + DURABILITY_BAR_1, + DURABILITY_BAR_2, + DURABILITY_BAR_3, + DURABILITY_BAR_4, + DURABILITY_BAR_5, + DURABILITY_BAR_6, + DURABILITY_BAR_7, + DURABILITY_BAR_8, + }, + ENERGY_BAR = new IIconContainer[]{ + ENERGY_BAR_0, + ENERGY_BAR_1, + ENERGY_BAR_2, + ENERGY_BAR_3, + ENERGY_BAR_4, + ENERGY_BAR_5, + ENERGY_BAR_6, + ENERGY_BAR_7, + ENERGY_BAR_8, + }; + + public static final ITexture[] ERROR_RENDERING = new ITexture[]{new GT_RenderedTexture(RENDERING_ERROR)}; + + protected IIcon mIcon, mOverlay; + + private ItemIcons() { + GregTech_API.sGTItemIconload.add(this); + } + + @Override + public IIcon getIcon() { + return mIcon; + } + + @Override + public IIcon getOverlayIcon() { + return mOverlay; + } + + @Override + public ResourceLocation getTextureFile() { + return TextureMap.locationItemsTexture; + } + + @Override + public void run() { + mIcon = GregTech_API.sItemIcons.registerIcon(RES_PATH_ITEM + "iconsets/" + this); + mOverlay = GregTech_API.sItemIcons.registerIcon(RES_PATH_ITEM + "iconsets/" + this + "_OVERLAY"); + } + + public static class CustomIcon implements IIconContainer, Runnable { + protected IIcon mIcon, mOverlay; + protected String mIconName; + + public CustomIcon(String aIconName) { + mIconName = aIconName; + GregTech_API.sGTItemIconload.add(this); + } + + @Override + public IIcon getIcon() { + return mIcon; + } + + @Override + public IIcon getOverlayIcon() { + return mOverlay; + } + + @Override + public void run() { + mIcon = GregTech_API.sItemIcons.registerIcon(RES_PATH_ITEM + mIconName); + mOverlay = GregTech_API.sItemIcons.registerIcon(RES_PATH_ITEM + mIconName + "_OVERLAY"); + } + + @Override + public ResourceLocation getTextureFile() { + return TextureMap.locationItemsTexture; + } + } + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/enums/Tier.java b/src/main/java/gregtech/api/enums/Tier.java index 8ee2bc68..d41402a8 100644 --- a/src/main/java/gregtech/api/enums/Tier.java +++ b/src/main/java/gregtech/api/enums/Tier.java @@ -4,88 +4,88 @@ package gregtech.api.enums; * Experimental Class for later */ public class Tier { - public static final Tier[] - ELECTRIC = new Tier[] { - new Tier(SubTag.ENERGY_ELECTRICITY , 0, 8, 1, 1, 1, Materials.WroughtIron , ItemList.Hull_ULV , OrePrefixes.cableGt01 .get(Materials.Lead ), OrePrefixes.cableGt04 .get(Materials.Lead ), OrePrefixes.circuit .get(Materials.Primitive ), OrePrefixes.circuit .get(Materials.Basic )), - new Tier(SubTag.ENERGY_ELECTRICITY , 1, 32, 1, 1, 1, Materials.Steel , ItemList.Hull_LV , OrePrefixes.cableGt01 .get(Materials.Tin ), OrePrefixes.cableGt04 .get(Materials.Tin ), OrePrefixes.circuit .get(Materials.Basic ), OrePrefixes.circuit .get(Materials.Good )), - new Tier(SubTag.ENERGY_ELECTRICITY , 2, 128, 1, 1, 1, Materials.Aluminium , ItemList.Hull_MV , OrePrefixes.cableGt01 .get(Materials.AnyCopper ), OrePrefixes.cableGt04 .get(Materials.AnyCopper ), OrePrefixes.circuit .get(Materials.Good ), OrePrefixes.circuit .get(Materials.Advanced )), - new Tier(SubTag.ENERGY_ELECTRICITY , 3, 512, 1, 1, 1, Materials.StainlessSteel , ItemList.Hull_HV , OrePrefixes.cableGt01 .get(Materials.Gold ), OrePrefixes.cableGt04 .get(Materials.Gold ), OrePrefixes.circuit .get(Materials.Advanced ), OrePrefixes.circuit .get(Materials.Elite )), - new Tier(SubTag.ENERGY_ELECTRICITY , 4, 2048, 1, 1, 1, Materials.Titanium , ItemList.Hull_EV , OrePrefixes.cableGt01 .get(Materials.Aluminium ), OrePrefixes.cableGt04 .get(Materials.Aluminium ), OrePrefixes.circuit .get(Materials.Elite ), OrePrefixes.circuit .get(Materials.Master )), - new Tier(SubTag.ENERGY_ELECTRICITY , 5, 8192, 1, 1, 1, Materials.TungstenSteel , ItemList.Hull_IV , OrePrefixes.cableGt01 .get(Materials.Tungsten ), OrePrefixes.cableGt04 .get(Materials.Tungsten ), OrePrefixes.circuit .get(Materials.Master ), OrePrefixes.circuit .get(Materials.Ultimate )), - new Tier(SubTag.ENERGY_ELECTRICITY , 6, 32768, 1, 1, 1, Materials.Chrome , ItemList.Hull_LuV , OrePrefixes.cableGt01 .get(Materials.Osmium ), OrePrefixes.cableGt04 .get(Materials.Osmium ), OrePrefixes.circuit .get(Materials.Ultimate ), OrePrefixes.circuit .get(Materials.Ultimate )), - new Tier(SubTag.ENERGY_ELECTRICITY , 7, 131072, 1, 1, 1, Materials.Iridium , ItemList.Hull_ZPM , OrePrefixes.cableGt04 .get(Materials.Osmium ), OrePrefixes.wireGt16 .get(Materials.Osmium ), OrePrefixes.circuit .get(Materials.Ultimate ), OrePrefixes.circuit .get(Materials.Ultimate )), - new Tier(SubTag.ENERGY_ELECTRICITY , 8, 524288, 1, 1, 1, Materials.Osmium , ItemList.Hull_UV , OrePrefixes.wireGt16 .get(Materials.Osmium ), OrePrefixes.wireGt01 .get(Materials.Superconductor ), OrePrefixes.circuit .get(Materials.Ultimate ), OrePrefixes.circuit .get(Materials.Ultimate )), - new Tier(SubTag.ENERGY_ELECTRICITY , 9, Integer.MAX_VALUE, 1, 1, 1, Materials.Neutronium , ItemList.Hull_MAX , OrePrefixes.wireGt01 .get(Materials.Superconductor ), OrePrefixes.wireGt04 .get(Materials.Superconductor ), OrePrefixes.circuit .get(Materials.Ultimate ), OrePrefixes.circuit .get(Materials.Ultimate )), - }, ROTATIONAL = new Tier[] { - new Tier(SubTag.ENERGY_ROTATIONAL , 1, 32, 1, 1, 1, Materials.Wood , OrePrefixes.frameGt .get(Materials.Wood ), OrePrefixes.stick .get(Materials.Wood ), OrePrefixes.ingot .get(Materials.Wood ), OrePrefixes.gearGt .get(Materials.Wood ), OrePrefixes.gearGt .get(Materials.Stone )), - new Tier(SubTag.ENERGY_ROTATIONAL , 1, 32, 1, 2, 2, Materials.WoodSealed , OrePrefixes.frameGt .get(Materials.WoodSealed ), OrePrefixes.stick .get(Materials.WoodSealed ), OrePrefixes.ingot .get(Materials.WoodSealed ), OrePrefixes.gearGt .get(Materials.WoodSealed ), OrePrefixes.gearGt .get(Materials.Stone )), - new Tier(SubTag.ENERGY_ROTATIONAL , 2, 128, 1, 1, 1, Materials.Stone , OrePrefixes.frameGt .get(Materials.Stone ), OrePrefixes.stick .get(Materials.Stone ), OrePrefixes.ingot .get(Materials.Stone ), OrePrefixes.gearGt .get(Materials.Stone ), OrePrefixes.gearGt .get(Materials.Bronze )), - new Tier(SubTag.ENERGY_ROTATIONAL , 2, 128, 1, 2, 2, Materials.IronWood , OrePrefixes.frameGt .get(Materials.IronWood ), OrePrefixes.stick .get(Materials.IronWood ), OrePrefixes.ingot .get(Materials.IronWood ), OrePrefixes.gearGt .get(Materials.IronWood ), OrePrefixes.gearGt .get(Materials.Bronze )), - new Tier(SubTag.ENERGY_ROTATIONAL , 3, 512, 1, 1, 1, Materials.Bronze , OrePrefixes.frameGt .get(Materials.Bronze ), OrePrefixes.stick .get(Materials.Bronze ), OrePrefixes.ingot .get(Materials.Bronze ), OrePrefixes.gearGt .get(Materials.Bronze ), OrePrefixes.gearGt .get(Materials.Steel )), - new Tier(SubTag.ENERGY_ROTATIONAL , 3, 512, 1, 2, 2, Materials.Brass , OrePrefixes.frameGt .get(Materials.Brass ), OrePrefixes.stick .get(Materials.Brass ), OrePrefixes.ingot .get(Materials.Brass ), OrePrefixes.gearGt .get(Materials.Brass ), OrePrefixes.gearGt .get(Materials.Steel )), - new Tier(SubTag.ENERGY_ROTATIONAL , 4, 2048, 1, 1, 1, Materials.Steel , OrePrefixes.frameGt .get(Materials.Steel ), OrePrefixes.stick .get(Materials.Steel ), OrePrefixes.ingot .get(Materials.Steel ), OrePrefixes.gearGt .get(Materials.Steel ), OrePrefixes.gearGt .get(Materials.TungstenSteel )), - new Tier(SubTag.ENERGY_ROTATIONAL , 4, 2048, 1, 2, 2, Materials.Titanium , OrePrefixes.frameGt .get(Materials.Titanium ), OrePrefixes.stick .get(Materials.Titanium ), OrePrefixes.ingot .get(Materials.Titanium ), OrePrefixes.gearGt .get(Materials.Titanium ), OrePrefixes.gearGt .get(Materials.TungstenSteel )), - new Tier(SubTag.ENERGY_ROTATIONAL , 5, 8192, 1, 1, 1, Materials.TungstenSteel , OrePrefixes.frameGt .get(Materials.TungstenSteel ), OrePrefixes.stick .get(Materials.TungstenSteel ), OrePrefixes.ingot .get(Materials.TungstenSteel ), OrePrefixes.gearGt .get(Materials.TungstenSteel ), OrePrefixes.gearGt .get(Materials.Iridium )), - new Tier(SubTag.ENERGY_ROTATIONAL , 6, 32768, 1, 1, 1, Materials.Iridium , OrePrefixes.frameGt .get(Materials.Iridium ), OrePrefixes.stick .get(Materials.Iridium ), OrePrefixes.ingot .get(Materials.Iridium ), OrePrefixes.gearGt .get(Materials.Iridium ), OrePrefixes.gearGt .get(Materials.Neutronium )), - new Tier(SubTag.ENERGY_ROTATIONAL , 9, Integer.MAX_VALUE, 1, 1, 1, Materials.Neutronium , OrePrefixes.frameGt .get(Materials.Neutronium ), OrePrefixes.stick .get(Materials.Neutronium ), OrePrefixes.ingot .get(Materials.Neutronium ), OrePrefixes.gearGt .get(Materials.Neutronium ), OrePrefixes.gearGt .get(Materials.Neutronium )), - }, STEAM = new Tier[] { - new Tier(SubTag.ENERGY_STEAM , 1, 32, 1, 1, 1, Materials.Bronze , OrePrefixes.frameGt .get(Materials.Bronze ), OrePrefixes.pipeMedium .get(Materials.Bronze ), OrePrefixes.pipeHuge .get(Materials.Bronze ), OrePrefixes.pipeMedium .get(Materials.Bronze ), OrePrefixes.pipeLarge .get(Materials.Bronze )), - new Tier(SubTag.ENERGY_STEAM , 2, 128, 1, 1, 1, Materials.Steel , OrePrefixes.frameGt .get(Materials.Steel ), OrePrefixes.pipeMedium .get(Materials.Steel ), OrePrefixes.pipeHuge .get(Materials.Steel ), OrePrefixes.pipeMedium .get(Materials.Steel ), OrePrefixes.pipeLarge .get(Materials.Steel )), - new Tier(SubTag.ENERGY_STEAM , 3, 512, 1, 1, 1, Materials.Titanium , OrePrefixes.frameGt .get(Materials.Titanium ), OrePrefixes.pipeMedium .get(Materials.Titanium ), OrePrefixes.pipeHuge .get(Materials.Titanium ), OrePrefixes.pipeMedium .get(Materials.Titanium ), OrePrefixes.pipeLarge .get(Materials.Titanium )), - new Tier(SubTag.ENERGY_STEAM , 4, 2048, 1, 1, 1, Materials.TungstenSteel , OrePrefixes.frameGt .get(Materials.TungstenSteel ), OrePrefixes.pipeMedium .get(Materials.TungstenSteel ), OrePrefixes.pipeHuge .get(Materials.TungstenSteel ), OrePrefixes.pipeMedium .get(Materials.TungstenSteel ), OrePrefixes.pipeLarge .get(Materials.TungstenSteel )), - new Tier(SubTag.ENERGY_STEAM , 5, 8192, 1, 1, 1, Materials.Iridium , OrePrefixes.frameGt .get(Materials.Iridium ), OrePrefixes.pipeMedium .get(Materials.Iridium ), OrePrefixes.pipeHuge .get(Materials.Iridium ), OrePrefixes.pipeMedium .get(Materials.Iridium ), OrePrefixes.pipeLarge .get(Materials.Iridium )), - new Tier(SubTag.ENERGY_STEAM , 9, Integer.MAX_VALUE, 1, 1, 1, Materials.Neutronium , OrePrefixes.frameGt .get(Materials.Neutronium ), OrePrefixes.pipeMedium .get(Materials.Neutronium ), OrePrefixes.pipeHuge .get(Materials.Neutronium ), OrePrefixes.pipeMedium .get(Materials.Neutronium ), OrePrefixes.pipeLarge .get(Materials.Neutronium )), - }; - - private final SubTag mType; - private final byte mRank; - private final long mPrimaryValue, mSecondaryValue, mSpeedMultiplier, mEnergyCostMultiplier; - private final Materials mMaterial; - - /** Used for Crafting Recipes */ - public final Object mHullObject, mConductingObject, mLargerConductingObject, mManagingObject, mBetterManagingObject; - - public Tier(SubTag aType, int aRank, long aPrimaryValue, long aSecondaryValue, long aSpeedMultiplier, long aEnergyCostMultiplier, Materials aMaterial, Object aHullObject, Object aConductingObject, Object aLargerConductingObject, Object aManagingObject, Object aBetterManagingObject) { - mType = aType; - mRank = (byte)aRank; - mPrimaryValue = aPrimaryValue; - mSecondaryValue = aSecondaryValue; - mSpeedMultiplier = aSpeedMultiplier; - mEnergyCostMultiplier = Math.max(mSpeedMultiplier, aEnergyCostMultiplier); - mMaterial = aMaterial; - - mHullObject = aHullObject; - mConductingObject = aConductingObject; - mManagingObject = aManagingObject; - mBetterManagingObject = aBetterManagingObject; - mLargerConductingObject = aLargerConductingObject; - } - - public byte getRank() { - return mRank; - } - - public SubTag getEnergyType() { - return mType; - } - - public long getEnergyPrimary() { - return mPrimaryValue; - } - - public long getEnergySecondary() { - return mSecondaryValue; - } - - public long getSpeedMultiplier() { - return mSpeedMultiplier; - } - - public long getEnergyCostMultiplier() { - return mEnergyCostMultiplier; - } - - public Materials getMaterial() { - return mMaterial; - } + public static final Tier[] + ELECTRIC = new Tier[]{ + new Tier(SubTag.ENERGY_ELECTRICITY, 0, 8, 1, 1, 1, Materials.WroughtIron, ItemList.Hull_ULV, OrePrefixes.cableGt01.get(Materials.Lead), OrePrefixes.cableGt04.get(Materials.Lead), OrePrefixes.circuit.get(Materials.Primitive), OrePrefixes.circuit.get(Materials.Basic)), + new Tier(SubTag.ENERGY_ELECTRICITY, 1, 32, 1, 1, 1, Materials.Steel, ItemList.Hull_LV, OrePrefixes.cableGt01.get(Materials.Tin), OrePrefixes.cableGt04.get(Materials.Tin), OrePrefixes.circuit.get(Materials.Basic), OrePrefixes.circuit.get(Materials.Good)), + new Tier(SubTag.ENERGY_ELECTRICITY, 2, 128, 1, 1, 1, Materials.Aluminium, ItemList.Hull_MV, OrePrefixes.cableGt01.get(Materials.AnyCopper), OrePrefixes.cableGt04.get(Materials.AnyCopper), OrePrefixes.circuit.get(Materials.Good), OrePrefixes.circuit.get(Materials.Advanced)), + new Tier(SubTag.ENERGY_ELECTRICITY, 3, 512, 1, 1, 1, Materials.StainlessSteel, ItemList.Hull_HV, OrePrefixes.cableGt01.get(Materials.Gold), OrePrefixes.cableGt04.get(Materials.Gold), OrePrefixes.circuit.get(Materials.Advanced), OrePrefixes.circuit.get(Materials.Elite)), + new Tier(SubTag.ENERGY_ELECTRICITY, 4, 2048, 1, 1, 1, Materials.Titanium, ItemList.Hull_EV, OrePrefixes.cableGt01.get(Materials.Aluminium), OrePrefixes.cableGt04.get(Materials.Aluminium), OrePrefixes.circuit.get(Materials.Elite), OrePrefixes.circuit.get(Materials.Master)), + new Tier(SubTag.ENERGY_ELECTRICITY, 5, 8192, 1, 1, 1, Materials.TungstenSteel, ItemList.Hull_IV, OrePrefixes.cableGt01.get(Materials.Tungsten), OrePrefixes.cableGt04.get(Materials.Tungsten), OrePrefixes.circuit.get(Materials.Master), OrePrefixes.circuit.get(Materials.Ultimate)), + new Tier(SubTag.ENERGY_ELECTRICITY, 6, 32768, 1, 1, 1, Materials.Chrome, ItemList.Hull_LuV, OrePrefixes.cableGt01.get(Materials.Osmium), OrePrefixes.cableGt04.get(Materials.Osmium), OrePrefixes.circuit.get(Materials.Ultimate), OrePrefixes.circuit.get(Materials.Ultimate)), + new Tier(SubTag.ENERGY_ELECTRICITY, 7, 131072, 1, 1, 1, Materials.Iridium, ItemList.Hull_ZPM, OrePrefixes.cableGt04.get(Materials.Osmium), OrePrefixes.wireGt16.get(Materials.Osmium), OrePrefixes.circuit.get(Materials.Ultimate), OrePrefixes.circuit.get(Materials.Ultimate)), + new Tier(SubTag.ENERGY_ELECTRICITY, 8, 524288, 1, 1, 1, Materials.Osmium, ItemList.Hull_UV, OrePrefixes.wireGt16.get(Materials.Osmium), OrePrefixes.wireGt01.get(Materials.Superconductor), OrePrefixes.circuit.get(Materials.Ultimate), OrePrefixes.circuit.get(Materials.Ultimate)), + new Tier(SubTag.ENERGY_ELECTRICITY, 9, Integer.MAX_VALUE, 1, 1, 1, Materials.Neutronium, ItemList.Hull_MAX, OrePrefixes.wireGt01.get(Materials.Superconductor), OrePrefixes.wireGt04.get(Materials.Superconductor), OrePrefixes.circuit.get(Materials.Ultimate), OrePrefixes.circuit.get(Materials.Ultimate)), + }, ROTATIONAL = new Tier[]{ + new Tier(SubTag.ENERGY_ROTATIONAL, 1, 32, 1, 1, 1, Materials.Wood, OrePrefixes.frameGt.get(Materials.Wood), OrePrefixes.stick.get(Materials.Wood), OrePrefixes.ingot.get(Materials.Wood), OrePrefixes.gearGt.get(Materials.Wood), OrePrefixes.gearGt.get(Materials.Stone)), + new Tier(SubTag.ENERGY_ROTATIONAL, 1, 32, 1, 2, 2, Materials.WoodSealed, OrePrefixes.frameGt.get(Materials.WoodSealed), OrePrefixes.stick.get(Materials.WoodSealed), OrePrefixes.ingot.get(Materials.WoodSealed), OrePrefixes.gearGt.get(Materials.WoodSealed), OrePrefixes.gearGt.get(Materials.Stone)), + new Tier(SubTag.ENERGY_ROTATIONAL, 2, 128, 1, 1, 1, Materials.Stone, OrePrefixes.frameGt.get(Materials.Stone), OrePrefixes.stick.get(Materials.Stone), OrePrefixes.ingot.get(Materials.Stone), OrePrefixes.gearGt.get(Materials.Stone), OrePrefixes.gearGt.get(Materials.Bronze)), + new Tier(SubTag.ENERGY_ROTATIONAL, 2, 128, 1, 2, 2, Materials.IronWood, OrePrefixes.frameGt.get(Materials.IronWood), OrePrefixes.stick.get(Materials.IronWood), OrePrefixes.ingot.get(Materials.IronWood), OrePrefixes.gearGt.get(Materials.IronWood), OrePrefixes.gearGt.get(Materials.Bronze)), + new Tier(SubTag.ENERGY_ROTATIONAL, 3, 512, 1, 1, 1, Materials.Bronze, OrePrefixes.frameGt.get(Materials.Bronze), OrePrefixes.stick.get(Materials.Bronze), OrePrefixes.ingot.get(Materials.Bronze), OrePrefixes.gearGt.get(Materials.Bronze), OrePrefixes.gearGt.get(Materials.Steel)), + new Tier(SubTag.ENERGY_ROTATIONAL, 3, 512, 1, 2, 2, Materials.Brass, OrePrefixes.frameGt.get(Materials.Brass), OrePrefixes.stick.get(Materials.Brass), OrePrefixes.ingot.get(Materials.Brass), OrePrefixes.gearGt.get(Materials.Brass), OrePrefixes.gearGt.get(Materials.Steel)), + new Tier(SubTag.ENERGY_ROTATIONAL, 4, 2048, 1, 1, 1, Materials.Steel, OrePrefixes.frameGt.get(Materials.Steel), OrePrefixes.stick.get(Materials.Steel), OrePrefixes.ingot.get(Materials.Steel), OrePrefixes.gearGt.get(Materials.Steel), OrePrefixes.gearGt.get(Materials.TungstenSteel)), + new Tier(SubTag.ENERGY_ROTATIONAL, 4, 2048, 1, 2, 2, Materials.Titanium, OrePrefixes.frameGt.get(Materials.Titanium), OrePrefixes.stick.get(Materials.Titanium), OrePrefixes.ingot.get(Materials.Titanium), OrePrefixes.gearGt.get(Materials.Titanium), OrePrefixes.gearGt.get(Materials.TungstenSteel)), + new Tier(SubTag.ENERGY_ROTATIONAL, 5, 8192, 1, 1, 1, Materials.TungstenSteel, OrePrefixes.frameGt.get(Materials.TungstenSteel), OrePrefixes.stick.get(Materials.TungstenSteel), OrePrefixes.ingot.get(Materials.TungstenSteel), OrePrefixes.gearGt.get(Materials.TungstenSteel), OrePrefixes.gearGt.get(Materials.Iridium)), + new Tier(SubTag.ENERGY_ROTATIONAL, 6, 32768, 1, 1, 1, Materials.Iridium, OrePrefixes.frameGt.get(Materials.Iridium), OrePrefixes.stick.get(Materials.Iridium), OrePrefixes.ingot.get(Materials.Iridium), OrePrefixes.gearGt.get(Materials.Iridium), OrePrefixes.gearGt.get(Materials.Neutronium)), + new Tier(SubTag.ENERGY_ROTATIONAL, 9, Integer.MAX_VALUE, 1, 1, 1, Materials.Neutronium, OrePrefixes.frameGt.get(Materials.Neutronium), OrePrefixes.stick.get(Materials.Neutronium), OrePrefixes.ingot.get(Materials.Neutronium), OrePrefixes.gearGt.get(Materials.Neutronium), OrePrefixes.gearGt.get(Materials.Neutronium)), + }, STEAM = new Tier[]{ + new Tier(SubTag.ENERGY_STEAM, 1, 32, 1, 1, 1, Materials.Bronze, OrePrefixes.frameGt.get(Materials.Bronze), OrePrefixes.pipeMedium.get(Materials.Bronze), OrePrefixes.pipeHuge.get(Materials.Bronze), OrePrefixes.pipeMedium.get(Materials.Bronze), OrePrefixes.pipeLarge.get(Materials.Bronze)), + new Tier(SubTag.ENERGY_STEAM, 2, 128, 1, 1, 1, Materials.Steel, OrePrefixes.frameGt.get(Materials.Steel), OrePrefixes.pipeMedium.get(Materials.Steel), OrePrefixes.pipeHuge.get(Materials.Steel), OrePrefixes.pipeMedium.get(Materials.Steel), OrePrefixes.pipeLarge.get(Materials.Steel)), + new Tier(SubTag.ENERGY_STEAM, 3, 512, 1, 1, 1, Materials.Titanium, OrePrefixes.frameGt.get(Materials.Titanium), OrePrefixes.pipeMedium.get(Materials.Titanium), OrePrefixes.pipeHuge.get(Materials.Titanium), OrePrefixes.pipeMedium.get(Materials.Titanium), OrePrefixes.pipeLarge.get(Materials.Titanium)), + new Tier(SubTag.ENERGY_STEAM, 4, 2048, 1, 1, 1, Materials.TungstenSteel, OrePrefixes.frameGt.get(Materials.TungstenSteel), OrePrefixes.pipeMedium.get(Materials.TungstenSteel), OrePrefixes.pipeHuge.get(Materials.TungstenSteel), OrePrefixes.pipeMedium.get(Materials.TungstenSteel), OrePrefixes.pipeLarge.get(Materials.TungstenSteel)), + new Tier(SubTag.ENERGY_STEAM, 5, 8192, 1, 1, 1, Materials.Iridium, OrePrefixes.frameGt.get(Materials.Iridium), OrePrefixes.pipeMedium.get(Materials.Iridium), OrePrefixes.pipeHuge.get(Materials.Iridium), OrePrefixes.pipeMedium.get(Materials.Iridium), OrePrefixes.pipeLarge.get(Materials.Iridium)), + new Tier(SubTag.ENERGY_STEAM, 9, Integer.MAX_VALUE, 1, 1, 1, Materials.Neutronium, OrePrefixes.frameGt.get(Materials.Neutronium), OrePrefixes.pipeMedium.get(Materials.Neutronium), OrePrefixes.pipeHuge.get(Materials.Neutronium), OrePrefixes.pipeMedium.get(Materials.Neutronium), OrePrefixes.pipeLarge.get(Materials.Neutronium)), + }; + /** + * Used for Crafting Recipes + */ + public final Object mHullObject, mConductingObject, mLargerConductingObject, mManagingObject, mBetterManagingObject; + private final SubTag mType; + private final byte mRank; + private final long mPrimaryValue, mSecondaryValue, mSpeedMultiplier, mEnergyCostMultiplier; + private final Materials mMaterial; + + public Tier(SubTag aType, int aRank, long aPrimaryValue, long aSecondaryValue, long aSpeedMultiplier, long aEnergyCostMultiplier, Materials aMaterial, Object aHullObject, Object aConductingObject, Object aLargerConductingObject, Object aManagingObject, Object aBetterManagingObject) { + mType = aType; + mRank = (byte) aRank; + mPrimaryValue = aPrimaryValue; + mSecondaryValue = aSecondaryValue; + mSpeedMultiplier = aSpeedMultiplier; + mEnergyCostMultiplier = Math.max(mSpeedMultiplier, aEnergyCostMultiplier); + mMaterial = aMaterial; + + mHullObject = aHullObject; + mConductingObject = aConductingObject; + mManagingObject = aManagingObject; + mBetterManagingObject = aBetterManagingObject; + mLargerConductingObject = aLargerConductingObject; + } + + public byte getRank() { + return mRank; + } + + public SubTag getEnergyType() { + return mType; + } + + public long getEnergyPrimary() { + return mPrimaryValue; + } + + public long getEnergySecondary() { + return mSecondaryValue; + } + + public long getSpeedMultiplier() { + return mSpeedMultiplier; + } + + public long getEnergyCostMultiplier() { + return mEnergyCostMultiplier; + } + + public Materials getMaterial() { + return mMaterial; + } } diff --git a/src/main/java/gregtech/api/enums/ToolDictNames.java b/src/main/java/gregtech/api/enums/ToolDictNames.java index dfa4486f..d81bbeae 100644 --- a/src/main/java/gregtech/api/enums/ToolDictNames.java +++ b/src/main/java/gregtech/api/enums/ToolDictNames.java @@ -1,32 +1,32 @@ package gregtech.api.enums; public enum ToolDictNames { - craftingToolSaw, - craftingToolHoe, - craftingToolAxe, - craftingToolFile, - craftingToolPlow, - craftingToolDrill, - craftingToolSword, - craftingToolScoop, - craftingToolKnife, - craftingToolBlade, - craftingToolMortar, - craftingToolShovel, - craftingToolWrench, - craftingToolPlunger, - craftingToolCrowbar, - craftingToolPickaxe, - craftingToolDrawplate, - craftingToolRollingPin, - craftingToolWireCutter, - craftingToolBranchCutter, - craftingToolHardHammer, - craftingToolSoftHammer, - craftingToolJackHammer, - craftingToolMiningDrill, - craftingToolForgeHammer, - craftingToolScrewdriver, - craftingToolSolderingIron, - craftingToolSolderingMetal; + craftingToolSaw, + craftingToolHoe, + craftingToolAxe, + craftingToolFile, + craftingToolPlow, + craftingToolDrill, + craftingToolSword, + craftingToolScoop, + craftingToolKnife, + craftingToolBlade, + craftingToolMortar, + craftingToolShovel, + craftingToolWrench, + craftingToolPlunger, + craftingToolCrowbar, + craftingToolPickaxe, + craftingToolDrawplate, + craftingToolRollingPin, + craftingToolWireCutter, + craftingToolBranchCutter, + craftingToolHardHammer, + craftingToolSoftHammer, + craftingToolJackHammer, + craftingToolMiningDrill, + craftingToolForgeHammer, + craftingToolScrewdriver, + craftingToolSolderingIron, + craftingToolSolderingMetal; } \ No newline at end of file diff --git a/src/main/java/gregtech/api/events/BlockScanningEvent.java b/src/main/java/gregtech/api/events/BlockScanningEvent.java index 927919f5..25123187 100644 --- a/src/main/java/gregtech/api/events/BlockScanningEvent.java +++ b/src/main/java/gregtech/api/events/BlockScanningEvent.java @@ -1,41 +1,41 @@ package gregtech.api.events; -import java.util.ArrayList; - import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import java.util.ArrayList; + @cpw.mods.fml.common.eventhandler.Cancelable public class BlockScanningEvent extends net.minecraftforge.event.world.WorldEvent { - - public final EntityPlayer mPlayer; - public final int mX, mY, mZ, mScanLevel; - public final ArrayList mList; - public final byte mSide; - public final float mClickX, mClickY, mClickZ; - public final TileEntity mTileEntity; - public final Block mBlock; - - /** - * used to determine the amount of Energy this Scan is costing. - */ - public int mEUCost = 0; - - public BlockScanningEvent(World aWorld, EntityPlayer aPlayer, int aX, int aY, int aZ, byte aSide, int aScanLevel, Block aBlock, TileEntity aTileEntity, ArrayList aList, float aClickX, float aClickY, float aClickZ) { - super(aWorld); - mPlayer = aPlayer; - mScanLevel = aScanLevel; - mTileEntity = aTileEntity; - mBlock = aBlock; - mList = aList; - mSide = aSide; - mX = aX; - mY = aY; - mZ = aZ; - mClickX = aClickX; - mClickY = aClickY; - mClickZ = aClickZ; - } + + public final EntityPlayer mPlayer; + public final int mX, mY, mZ, mScanLevel; + public final ArrayList mList; + public final byte mSide; + public final float mClickX, mClickY, mClickZ; + public final TileEntity mTileEntity; + public final Block mBlock; + + /** + * used to determine the amount of Energy this Scan is costing. + */ + public int mEUCost = 0; + + public BlockScanningEvent(World aWorld, EntityPlayer aPlayer, int aX, int aY, int aZ, byte aSide, int aScanLevel, Block aBlock, TileEntity aTileEntity, ArrayList aList, float aClickX, float aClickY, float aClickZ) { + super(aWorld); + mPlayer = aPlayer; + mScanLevel = aScanLevel; + mTileEntity = aTileEntity; + mBlock = aBlock; + mList = aList; + mSide = aSide; + mX = aX; + mY = aY; + mZ = aZ; + mClickX = aClickX; + mClickY = aClickY; + mClickZ = aClickZ; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/gui/GT_Container.java b/src/main/java/gregtech/api/gui/GT_Container.java index dc5e59d7..614d459c 100644 --- a/src/main/java/gregtech/api/gui/GT_Container.java +++ b/src/main/java/gregtech/api/gui/GT_Container.java @@ -3,10 +3,6 @@ package gregtech.api.gui; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_Utility; -import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_FusionComputer; - -import java.util.List; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -15,71 +11,73 @@ import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; +import java.util.List; + /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* Main Container-Class, used for all my GUIs */ public class GT_Container extends Container { public IGregTechTileEntity mTileEntity; - public InventoryPlayer mPlayerInventory; - - public GT_Container (InventoryPlayer aPlayerInventory, IGregTechTileEntity aTileEntityInventory) { - + public InventoryPlayer mPlayerInventory; + + public GT_Container(InventoryPlayer aPlayerInventory, IGregTechTileEntity aTileEntityInventory) { + mTileEntity = aTileEntityInventory; mPlayerInventory = aPlayerInventory; } - + /** * To add the Slots to your GUI */ public void addSlots(InventoryPlayer aPlayerInventory) { - // + // } - + /** * Amount of regular Slots in the GUI (so, non-HoloSlots) */ public int getSlotCount() { - return 0; + return 0; } - + /** * Amount of ALL Slots in the GUI including HoloSlots and ArmorSlots, but excluding regular Player Slots */ protected final int getAllSlotCount() { - if (inventorySlots != null) { - if (doesBindPlayerInventory()) return inventorySlots.size()-36; - return inventorySlots.size(); - } - return getSlotCount(); + if (inventorySlots != null) { + if (doesBindPlayerInventory()) return inventorySlots.size() - 36; + return inventorySlots.size(); + } + return getSlotCount(); } - + /** * Start-Index of the usable Slots (the first non-HoloSlot) */ public int getSlotStartIndex() { - return 0; + return 0; } - + public int getShiftClickStartIndex() { - return getSlotStartIndex(); + return getSlotStartIndex(); } - + /** * Amount of Slots in the GUI the player can Shift-Click into. Uses also getSlotStartIndex */ public int getShiftClickSlotCount() { - return 0; + return 0; } /** * Is Player-Inventory visible? */ public boolean doesBindPlayerInventory() { - return true; + return true; } - + /** * Override this Function with something like "return mTileEntity.isUseableByPlayer(aPlayer);" */ @@ -87,42 +85,48 @@ public class GT_Container extends Container { public boolean canInteractWith(EntityPlayer aPlayer) { return false; } - - protected void bindPlayerInventory(InventoryPlayer aInventoryPlayer) { + + protected void bindPlayerInventory(InventoryPlayer aInventoryPlayer) { for (int i = 0; i < 3; i++) { for (int j = 0; j < 9; j++) { - addSlotToContainer(new Slot(aInventoryPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); + addSlotToContainer(new Slot(aInventoryPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); } } - + for (int i = 0; i < 9; i++) { addSlotToContainer(new Slot(aInventoryPlayer, i, 8 + i * 18, 142)); } } - + @Override - public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { + public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { mTileEntity.markDirty(); - - if (aSlotIndex >= 0) { - if (inventorySlots.get(aSlotIndex) == null || inventorySlots.get(aSlotIndex) instanceof GT_Slot_Holo) return null; - if (!(inventorySlots.get(aSlotIndex) instanceof GT_Slot_Armor)) if (aSlotIndex < getAllSlotCount()) if (aSlotIndex < getSlotStartIndex() || aSlotIndex >= getSlotStartIndex() + getSlotCount()) return null; - } - - try {return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer);} catch (Throwable e) {e.printStackTrace(GT_Log.err);} - + + if (aSlotIndex >= 0) { + if (inventorySlots.get(aSlotIndex) == null || inventorySlots.get(aSlotIndex) instanceof GT_Slot_Holo) + return null; + if (!(inventorySlots.get(aSlotIndex) instanceof GT_Slot_Armor)) if (aSlotIndex < getAllSlotCount()) + if (aSlotIndex < getSlotStartIndex() || aSlotIndex >= getSlotStartIndex() + getSlotCount()) return null; + } + + try { + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + ItemStack rStack = null; InventoryPlayer aPlayerInventory = aPlayer.inventory; Slot aSlot; ItemStack tTempStack; int tTempStackSize; ItemStack aHoldStack; - + if ((aShifthold == 0 || aShifthold == 1) && (aMouseclick == 0 || aMouseclick == 1)) { if (aSlotIndex == -999) { if (aPlayerInventory.getItemStack() != null && aSlotIndex == -999) { if (aMouseclick == 0) { - aPlayer.dropPlayerItemWithRandomChoice(aPlayerInventory.getItemStack(), true); + aPlayer.dropPlayerItemWithRandomChoice(aPlayerInventory.getItemStack(), true); aPlayerInventory.setItemStack(null); } if (aMouseclick == 1) { @@ -133,7 +137,7 @@ public class GT_Container extends Container { } } } else if (aShifthold == 1) { - aSlot = (Slot)this.inventorySlots.get(aSlotIndex); + aSlot = (Slot) this.inventorySlots.get(aSlotIndex); if (aSlot != null && aSlot.canTakeStack(aPlayer)) { tTempStack = this.transferStackInSlot(aPlayer, aSlotIndex); if (tTempStack != null) { @@ -147,7 +151,7 @@ public class GT_Container extends Container { if (aSlotIndex < 0) { return null; } - aSlot = (Slot)this.inventorySlots.get(aSlotIndex); + aSlot = (Slot) this.inventorySlots.get(aSlotIndex); if (aSlot != null) { tTempStack = aSlot.getStack(); ItemStack var13 = aPlayerInventory.getItemStack(); @@ -163,7 +167,7 @@ public class GT_Container extends Container { aSlot.putStack(var13.splitStack(tTempStackSize)); if (var13.stackSize == 0) { - aPlayerInventory.setItemStack((ItemStack)null); + aPlayerInventory.setItemStack((ItemStack) null); } } } else if (aSlot.canTakeStack(aPlayer)) { @@ -172,7 +176,7 @@ public class GT_Container extends Container { aHoldStack = aSlot.decrStackSize(tTempStackSize); aPlayerInventory.setItemStack(aHoldStack); if (tTempStack.stackSize == 0) { - aSlot.putStack((ItemStack)null); + aSlot.putStack((ItemStack) null); } aSlot.onPickupFromSlot(aPlayer, aPlayerInventory.getItemStack()); } else if (aSlot.isItemValid(var13)) { @@ -186,7 +190,7 @@ public class GT_Container extends Container { } var13.splitStack(tTempStackSize); if (var13.stackSize == 0) { - aPlayerInventory.setItemStack((ItemStack)null); + aPlayerInventory.setItemStack((ItemStack) null); } tTempStack.stackSize += tTempStackSize; } else if (var13.stackSize <= aSlot.getSlotStackLimit()) { @@ -201,7 +205,7 @@ public class GT_Container extends Container { tTempStack = aSlot.decrStackSize(tTempStackSize); if (tTempStack.stackSize == 0) { - aSlot.putStack((ItemStack)null); + aSlot.putStack((ItemStack) null); } aSlot.onPickupFromSlot(aPlayer, aPlayerInventory.getItemStack()); @@ -212,7 +216,7 @@ public class GT_Container extends Container { } } } else if (aShifthold == 2 && aMouseclick >= 0 && aMouseclick < 9) { - aSlot = (Slot)this.inventorySlots.get(aSlotIndex); + aSlot = (Slot) this.inventorySlots.get(aSlotIndex); if (aSlot.canTakeStack(aPlayer)) { tTempStack = aPlayerInventory.getStackInSlot(aMouseclick); @@ -232,7 +236,7 @@ public class GT_Container extends Container { if (tTempStackSize > -1) { aPlayerInventory.addItemStackToInventory(tTempStack); aSlot.decrStackSize(aHoldStack.stackSize); - aSlot.putStack((ItemStack)null); + aSlot.putStack((ItemStack) null); aSlot.onPickupFromSlot(aPlayer, aHoldStack); } } else { @@ -241,12 +245,12 @@ public class GT_Container extends Container { aSlot.onPickupFromSlot(aPlayer, aHoldStack); } } else if (!aSlot.getHasStack() && tTempStack != null && aSlot.isItemValid(tTempStack)) { - aPlayerInventory.setInventorySlotContents(aMouseclick, (ItemStack)null); + aPlayerInventory.setInventorySlotContents(aMouseclick, (ItemStack) null); aSlot.putStack(tTempStack); } } } else if (aShifthold == 3 && aPlayer.capabilities.isCreativeMode && aPlayerInventory.getItemStack() == null && aSlotIndex >= 0) { - aSlot = (Slot)this.inventorySlots.get(aSlotIndex); + aSlot = (Slot) this.inventorySlots.get(aSlotIndex); if (aSlot != null && aSlot.getHasStack()) { tTempStack = GT_Utility.copy(aSlot.getStack()); tTempStack.stackSize = tTempStack.getMaxStackSize(); @@ -254,28 +258,28 @@ public class GT_Container extends Container { } } return rStack; - } - + } + @Override - public ItemStack transferStackInSlot(EntityPlayer aPlayer, int aSlotIndex) { + public ItemStack transferStackInSlot(EntityPlayer aPlayer, int aSlotIndex) { ItemStack stack = null; - Slot slotObject = (Slot)inventorySlots.get(aSlotIndex); - + Slot slotObject = (Slot) inventorySlots.get(aSlotIndex); + mTileEntity.markDirty(); - + //null checks and checks if the item can be stacked (maxStackSize > 1) if (getSlotCount() > 0 && slotObject != null && slotObject.getHasStack() && !(slotObject instanceof GT_Slot_Holo)) { ItemStack stackInSlot = slotObject.getStack(); stack = GT_Utility.copy(stackInSlot); - + //TileEntity -> Player if (aSlotIndex < getAllSlotCount()) { - if (doesBindPlayerInventory()) - if (!mergeItemStack(stackInSlot, getAllSlotCount(), getAllSlotCount()+36, true)) { - return null; - } - //Player -> TileEntity - } else if (!mergeItemStack(stackInSlot, getShiftClickStartIndex(), getShiftClickStartIndex()+getShiftClickSlotCount(), false)) { + if (doesBindPlayerInventory()) + if (!mergeItemStack(stackInSlot, getAllSlotCount(), getAllSlotCount() + 36, true)) { + return null; + } + //Player -> TileEntity + } else if (!mergeItemStack(stackInSlot, getShiftClickStartIndex(), getShiftClickStartIndex() + getShiftClickSlotCount(), false)) { return null; } @@ -286,8 +290,8 @@ public class GT_Container extends Container { } } return stack; - } - + } + /** * merges provided ItemStack with the first avaliable one in the container/player inventory */ @@ -295,9 +299,9 @@ public class GT_Container extends Container { protected boolean mergeItemStack(ItemStack aStack, int aStartIndex, int aSlotCount, boolean par4) { boolean var5 = false; int var6 = aStartIndex; - + mTileEntity.markDirty(); - + if (par4) { var6 = aSlotCount - 1; } @@ -307,9 +311,9 @@ public class GT_Container extends Container { if (aStack.isStackable()) { while (aStack.stackSize > 0 && (!par4 && var6 < aSlotCount || par4 && var6 >= aStartIndex)) { - var7 = (Slot)this.inventorySlots.get(var6); + var7 = (Slot) this.inventorySlots.get(var6); var8 = var7.getStack(); - + if (!(var7 instanceof GT_Slot_Holo) && !(var7 instanceof GT_Slot_Output) && var8 != null && var8.getItem() == aStack.getItem() && (!aStack.getHasSubtypes() || aStack.getItemDamage() == var8.getItemDamage()) && ItemStack.areItemStackTagsEqual(aStack, var8)) { int var9 = var8.stackSize + aStack.stackSize; @@ -325,7 +329,7 @@ public class GT_Container extends Container { var5 = true; } } - + if (par4) { --var6; } else { @@ -334,24 +338,18 @@ public class GT_Container extends Container { } } - if (aStack.stackSize > 0) - { - if (par4) - { + if (aStack.stackSize > 0) { + if (par4) { var6 = aSlotCount - 1; - } - else - { + } else { var6 = aStartIndex; } - while (!par4 && var6 < aSlotCount || par4 && var6 >= aStartIndex) - { - var7 = (Slot)this.inventorySlots.get(var6); + while (!par4 && var6 < aSlotCount || par4 && var6 >= aStartIndex) { + var7 = (Slot) this.inventorySlots.get(var6); var8 = var7.getStack(); - if (var8 == null) - { + if (var8 == null) { var7.putStack(GT_Utility.copy(aStack)); var7.onSlotChanged(); aStack.stackSize = 0; @@ -359,12 +357,9 @@ public class GT_Container extends Container { break; } - if (par4) - { + if (par4) { --var6; - } - else - { + } else { ++var6; } } @@ -372,193 +367,193 @@ public class GT_Container extends Container { return var5; } - + @Override protected Slot addSlotToContainer(Slot par1Slot) { - try { - return super.addSlotToContainer(par1Slot); - } catch(Throwable e) { - e.printStackTrace(GT_Log.err); - } - return par1Slot; + try { + return super.addSlotToContainer(par1Slot); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + return par1Slot; } @Override public void addCraftingToCrafters(ICrafting par1ICrafting) { - try { - super.addCraftingToCrafters(par1ICrafting); - } catch(Throwable e) { - e.printStackTrace(GT_Log.err); - } + try { + super.addCraftingToCrafters(par1ICrafting); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } } - + @Override public List getInventory() { - try { - return super.getInventory(); - } catch(Throwable e) { - e.printStackTrace(GT_Log.err); - } - return null; - } - - @Override - public void removeCraftingFromCrafters(ICrafting par1ICrafting) { - try { - super.removeCraftingFromCrafters(par1ICrafting); - } catch(Throwable e) { - e.printStackTrace(GT_Log.err); - } - } - - @Override - public void detectAndSendChanges() { - try { - super.detectAndSendChanges(); - } catch(Throwable e) { - e.printStackTrace(GT_Log.err); - } - } - - @Override - public boolean enchantItem(EntityPlayer par1EntityPlayer, int par2) { - try { - return super.enchantItem(par1EntityPlayer, par2); - } catch(Throwable e) { - e.printStackTrace(GT_Log.err); - } - return false; - } - - @Override - public Slot getSlotFromInventory(IInventory par1IInventory, int par2) { - try { - return super.getSlotFromInventory(par1IInventory, par2); - } catch(Throwable e) { - e.printStackTrace(GT_Log.err); - } - return null; - } - - @Override - public Slot getSlot(int par1) { - try { - if (this.inventorySlots.size() > par1) return super.getSlot(par1); - } catch(Throwable e) { - e.printStackTrace(GT_Log.err); - } + try { + return super.getInventory(); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } return null; } - + + @Override + public void removeCraftingFromCrafters(ICrafting par1ICrafting) { + try { + super.removeCraftingFromCrafters(par1ICrafting); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } + + @Override + public void detectAndSendChanges() { + try { + super.detectAndSendChanges(); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } + + @Override + public boolean enchantItem(EntityPlayer par1EntityPlayer, int par2) { + try { + return super.enchantItem(par1EntityPlayer, par2); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + return false; + } + + @Override + public Slot getSlotFromInventory(IInventory par1IInventory, int par2) { + try { + return super.getSlotFromInventory(par1IInventory, par2); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + return null; + } + + @Override + public Slot getSlot(int par1) { + try { + if (this.inventorySlots.size() > par1) return super.getSlot(par1); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + return null; + } + @Override public boolean func_94530_a(ItemStack par1ItemStack, Slot par2Slot) { - try { + try { return super.func_94530_a(par1ItemStack, par2Slot); - } catch(Throwable e) { - e.printStackTrace(GT_Log.err); - } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } return true; } - + @Override protected void retrySlotClick(int par1, int par2, boolean par3, EntityPlayer par4EntityPlayer) { - try { + try { super.retrySlotClick(par1, par2, par3, par4EntityPlayer); - } catch(Throwable e) { - e.printStackTrace(GT_Log.err); - } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } } - + @Override public void onContainerClosed(EntityPlayer par1EntityPlayer) { - try { + try { super.onContainerClosed(par1EntityPlayer); - } catch(Throwable e) { - e.printStackTrace(GT_Log.err); - } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } } - + @Override public void onCraftMatrixChanged(IInventory par1IInventory) { - try { + try { super.onCraftMatrixChanged(par1IInventory); - } catch(Throwable e) { - e.printStackTrace(GT_Log.err); - } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } } - + @Override public void putStackInSlot(int par1, ItemStack par2ItemStack) { - try { + try { super.putStackInSlot(par1, par2ItemStack); - } catch(Throwable e) { - e.printStackTrace(GT_Log.err); - } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } } - + @Override public void putStacksInSlots(ItemStack[] par1ArrayOfItemStack) { - try { + try { super.putStacksInSlots(par1ArrayOfItemStack); - } catch(Throwable e) { - e.printStackTrace(GT_Log.err); - } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } } - + @Override public void updateProgressBar(int par1, int par2) { - try { + try { super.updateProgressBar(par1, par2); - } catch(Throwable e) { - e.printStackTrace(GT_Log.err); - } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } } - + @Override public short getNextTransactionID(InventoryPlayer par1InventoryPlayer) { - try { + try { return super.getNextTransactionID(par1InventoryPlayer); - } catch(Throwable e) { - e.printStackTrace(GT_Log.err); - } - return 0; + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + return 0; } - + @Override public boolean isPlayerNotUsingContainer(EntityPlayer par1EntityPlayer) { - try { + try { return super.isPlayerNotUsingContainer(par1EntityPlayer); - } catch(Throwable e) { - e.printStackTrace(GT_Log.err); - } - return true; + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + return true; } - + @Override public void setPlayerIsPresent(EntityPlayer par1EntityPlayer, boolean par2) { - try { + try { super.setPlayerIsPresent(par1EntityPlayer, par2); - } catch(Throwable e) { - e.printStackTrace(GT_Log.err); - } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } } - + @Override protected void func_94533_d() { - try { + try { super.func_94533_d(); - } catch(Throwable e) { - e.printStackTrace(GT_Log.err); - } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } } - + @Override public boolean canDragIntoSlot(Slot par1Slot) { - try { + try { return super.canDragIntoSlot(par1Slot); - } catch(Throwable e) { - e.printStackTrace(GT_Log.err); - } - return true; + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + return true; } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/gui/GT_ContainerMetaTile_Machine.java b/src/main/java/gregtech/api/gui/GT_ContainerMetaTile_Machine.java index d4fc27aa..c2fa1ab8 100644 --- a/src/main/java/gregtech/api/gui/GT_ContainerMetaTile_Machine.java +++ b/src/main/java/gregtech/api/gui/GT_ContainerMetaTile_Machine.java @@ -1,95 +1,94 @@ package gregtech.api.gui; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; - -import java.util.Iterator; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.ICrafting; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; + +import java.util.Iterator; /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* The Container I use for all my MetaTileEntities */ public class GT_ContainerMetaTile_Machine extends GT_Container { - + + public int mActive = 0, mMaxProgressTime = 0, mProgressTime = 0, mEnergy = 0, mSteam = 0, mSteamStorage = 0, mStorage = 0, mOutput = 0, mInput = 0, mID = 0, mDisplayErrorCode = 0; + private int oActive = 0, oMaxProgressTime = 0, oProgressTime = 0, oEnergy = 0, oSteam = 0, oSteamStorage = 0, oStorage = 0, oOutput = 0, oInput = 0, oID = 0, oDisplayErrorCode = 0, mTimer = 0; + + public GT_ContainerMetaTile_Machine(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { - super(aInventoryPlayer, aTileEntity); - - mTileEntity = aTileEntity; - - if (mTileEntity != null && mTileEntity.getMetaTileEntity() != null) { + super(aInventoryPlayer, aTileEntity); + + mTileEntity = aTileEntity; + + if (mTileEntity != null && mTileEntity.getMetaTileEntity() != null) { addSlots(aInventoryPlayer); if (doesBindPlayerInventory()) bindPlayerInventory(aInventoryPlayer); detectAndSendChanges(); - } else { - aInventoryPlayer.player.openContainer = aInventoryPlayer.player.inventoryContainer; - } + } else { + aInventoryPlayer.player.openContainer = aInventoryPlayer.player.inventoryContainer; + } } - public GT_ContainerMetaTile_Machine(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, boolean doesBindInventory){ - super(aInventoryPlayer, aTileEntity); - mTileEntity = aTileEntity; - - if (mTileEntity != null && mTileEntity.getMetaTileEntity() != null) { + public GT_ContainerMetaTile_Machine(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, boolean doesBindInventory) { + super(aInventoryPlayer, aTileEntity); + mTileEntity = aTileEntity; + + if (mTileEntity != null && mTileEntity.getMetaTileEntity() != null) { addSlots(aInventoryPlayer); - if (doesBindPlayerInventory()&&doesBindInventory) bindPlayerInventory(aInventoryPlayer); + if (doesBindPlayerInventory() && doesBindInventory) bindPlayerInventory(aInventoryPlayer); detectAndSendChanges(); - } else { - aInventoryPlayer.player.openContainer = aInventoryPlayer.player.inventoryContainer; - } + } else { + aInventoryPlayer.player.openContainer = aInventoryPlayer.player.inventoryContainer; + } } - - - public int mActive = 0, mMaxProgressTime = 0, mProgressTime = 0, mEnergy = 0, mSteam = 0, mSteamStorage = 0, mStorage = 0, mOutput = 0, mInput = 0, mID = 0, mDisplayErrorCode = 0; - private int oActive = 0, oMaxProgressTime = 0, oProgressTime = 0, oEnergy = 0, oSteam = 0, oSteamStorage = 0, oStorage = 0, oOutput = 0, oInput = 0, oID = 0, oDisplayErrorCode = 0, mTimer = 0; - + @Override public void detectAndSendChanges() { super.detectAndSendChanges(); - if (mTileEntity.isClientSide() || mTileEntity.getMetaTileEntity() == null) return; - mStorage = (int)Math.min(Integer.MAX_VALUE, mTileEntity.getEUCapacity()); - mEnergy = (int)Math.min(Integer.MAX_VALUE, mTileEntity.getStoredEU()); - mSteamStorage = (int)Math.min(Integer.MAX_VALUE, mTileEntity.getSteamCapacity()); - mSteam = (int)Math.min(Integer.MAX_VALUE, mTileEntity.getStoredSteam()); - mOutput = (int)Math.min(Integer.MAX_VALUE, mTileEntity.getOutputVoltage()); - mInput = (int)Math.min(Integer.MAX_VALUE, mTileEntity.getInputVoltage()); - mDisplayErrorCode = mTileEntity.getErrorDisplayID(); - mProgressTime = mTileEntity.getProgress(); - mMaxProgressTime = mTileEntity.getMaxProgress(); - mActive = mTileEntity.isActive()?1:0; - mTimer++; - + if (mTileEntity.isClientSide() || mTileEntity.getMetaTileEntity() == null) return; + mStorage = (int) Math.min(Integer.MAX_VALUE, mTileEntity.getEUCapacity()); + mEnergy = (int) Math.min(Integer.MAX_VALUE, mTileEntity.getStoredEU()); + mSteamStorage = (int) Math.min(Integer.MAX_VALUE, mTileEntity.getSteamCapacity()); + mSteam = (int) Math.min(Integer.MAX_VALUE, mTileEntity.getStoredSteam()); + mOutput = (int) Math.min(Integer.MAX_VALUE, mTileEntity.getOutputVoltage()); + mInput = (int) Math.min(Integer.MAX_VALUE, mTileEntity.getInputVoltage()); + mDisplayErrorCode = mTileEntity.getErrorDisplayID(); + mProgressTime = mTileEntity.getProgress(); + mMaxProgressTime = mTileEntity.getMaxProgress(); + mActive = mTileEntity.isActive() ? 1 : 0; + mTimer++; + Iterator var2 = this.crafters.iterator(); while (var2.hasNext()) { - ICrafting var1 = (ICrafting)var2.next(); + ICrafting var1 = (ICrafting) var2.next(); if (mTimer % 500 == 10 || oEnergy != mEnergy) { - var1.sendProgressBarUpdate(this, 0, mEnergy & 65535); - var1.sendProgressBarUpdate(this, 1, mEnergy >>> 16); + var1.sendProgressBarUpdate(this, 0, mEnergy & 65535); + var1.sendProgressBarUpdate(this, 1, mEnergy >>> 16); } if (mTimer % 500 == 10 || oStorage != mStorage) { - var1.sendProgressBarUpdate(this, 2, mStorage & 65535); - var1.sendProgressBarUpdate(this, 3, mStorage >>> 16); + var1.sendProgressBarUpdate(this, 2, mStorage & 65535); + var1.sendProgressBarUpdate(this, 3, mStorage >>> 16); } if (mTimer % 500 == 10 || oOutput != mOutput) { - var1.sendProgressBarUpdate(this, 4, mOutput); + var1.sendProgressBarUpdate(this, 4, mOutput); } if (mTimer % 500 == 10 || oInput != mInput) { - var1.sendProgressBarUpdate(this, 5, mInput); + var1.sendProgressBarUpdate(this, 5, mInput); } if (mTimer % 500 == 10 || oDisplayErrorCode != mDisplayErrorCode) { - var1.sendProgressBarUpdate(this, 6, mDisplayErrorCode); + var1.sendProgressBarUpdate(this, 6, mDisplayErrorCode); } if (mTimer % 500 == 10 || oProgressTime != mProgressTime) { - var1.sendProgressBarUpdate(this, 11, mProgressTime & 65535); - var1.sendProgressBarUpdate(this, 12, mProgressTime >>> 16); + var1.sendProgressBarUpdate(this, 11, mProgressTime & 65535); + var1.sendProgressBarUpdate(this, 12, mProgressTime >>> 16); } if (mTimer % 500 == 10 || oMaxProgressTime != mMaxProgressTime) { - var1.sendProgressBarUpdate(this, 13, mMaxProgressTime & 65535); - var1.sendProgressBarUpdate(this, 14, mMaxProgressTime >>> 16); + var1.sendProgressBarUpdate(this, 13, mMaxProgressTime & 65535); + var1.sendProgressBarUpdate(this, 14, mMaxProgressTime >>> 16); } if (mTimer % 500 == 10 || oID != mID) { var1.sendProgressBarUpdate(this, 15, mID); @@ -98,15 +97,15 @@ public class GT_ContainerMetaTile_Machine extends GT_Container { var1.sendProgressBarUpdate(this, 16, mActive); } if (mTimer % 500 == 10 || oSteam != mSteam) { - var1.sendProgressBarUpdate(this, 17, mSteam & 65535); - var1.sendProgressBarUpdate(this, 18, mSteam >>> 16); + var1.sendProgressBarUpdate(this, 17, mSteam & 65535); + var1.sendProgressBarUpdate(this, 18, mSteam >>> 16); } if (mTimer % 500 == 10 || oSteamStorage != mSteamStorage) { - var1.sendProgressBarUpdate(this, 19, mSteamStorage & 65535); - var1.sendProgressBarUpdate(this, 20, mSteamStorage >>> 16); + var1.sendProgressBarUpdate(this, 19, mSteamStorage & 65535); + var1.sendProgressBarUpdate(this, 20, mSteamStorage >>> 16); } } - + oID = mID; oSteam = mSteam; oInput = mInput; @@ -115,36 +114,70 @@ public class GT_ContainerMetaTile_Machine extends GT_Container { oEnergy = mEnergy; oStorage = mStorage; oSteamStorage = mSteamStorage; - oProgressTime = mProgressTime; - oMaxProgressTime = mMaxProgressTime; + oProgressTime = mProgressTime; + oMaxProgressTime = mMaxProgressTime; oDisplayErrorCode = mDisplayErrorCode; } - + @SideOnly(Side.CLIENT) @Override public void updateProgressBar(int par1, int par2) { - super.updateProgressBar(par1, par2); - switch (par1) { - case 0: mEnergy = mEnergy & -65536 | par2; break; - case 1: mEnergy = mEnergy & 65535 | par2 << 16; break; - case 2: mStorage = mStorage & -65536 | par2; break; - case 3: mStorage = mStorage & 65535 | par2 << 16; break; - case 4: mOutput = par2; break; - case 5: mInput = par2; break; - case 6: mDisplayErrorCode = par2; break; - case 11: mProgressTime = mProgressTime & -65536 | par2; break; - case 12: mProgressTime = mProgressTime & 65535 | par2 << 16; break; - case 13: mMaxProgressTime = mMaxProgressTime & -65536 | par2; break; - case 14: mMaxProgressTime = mMaxProgressTime & 65535 | par2 << 16; break; - case 15: mID = par2; break; - case 16: mActive = par2; break; - case 17: mSteam = mSteam & -65536 | par2; break; - case 18: mSteam = mSteam & 65535 | par2 << 16; break; - case 19: mSteamStorage = mSteamStorage & -65536 | par2; break; - case 20: mSteamStorage = mSteamStorage & 65535 | par2 << 16; break; - } + super.updateProgressBar(par1, par2); + switch (par1) { + case 0: + mEnergy = mEnergy & -65536 | par2; + break; + case 1: + mEnergy = mEnergy & 65535 | par2 << 16; + break; + case 2: + mStorage = mStorage & -65536 | par2; + break; + case 3: + mStorage = mStorage & 65535 | par2 << 16; + break; + case 4: + mOutput = par2; + break; + case 5: + mInput = par2; + break; + case 6: + mDisplayErrorCode = par2; + break; + case 11: + mProgressTime = mProgressTime & -65536 | par2; + break; + case 12: + mProgressTime = mProgressTime & 65535 | par2 << 16; + break; + case 13: + mMaxProgressTime = mMaxProgressTime & -65536 | par2; + break; + case 14: + mMaxProgressTime = mMaxProgressTime & 65535 | par2 << 16; + break; + case 15: + mID = par2; + break; + case 16: + mActive = par2; + break; + case 17: + mSteam = mSteam & -65536 | par2; + break; + case 18: + mSteam = mSteam & 65535 | par2 << 16; + break; + case 19: + mSteamStorage = mSteamStorage & -65536 | par2; + break; + case 20: + mSteamStorage = mSteamStorage & 65535 | par2 << 16; + break; + } } - + @Override public boolean canInteractWith(EntityPlayer player) { return mTileEntity.isUseableByPlayer(player); diff --git a/src/main/java/gregtech/api/gui/GT_Container_1by1.java b/src/main/java/gregtech/api/gui/GT_Container_1by1.java index 3607d81e..aafa4d9b 100644 --- a/src/main/java/gregtech/api/gui/GT_Container_1by1.java +++ b/src/main/java/gregtech/api/gui/GT_Container_1by1.java @@ -5,23 +5,23 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; public class GT_Container_1by1 extends GT_ContainerMetaTile_Machine { - - public GT_Container_1by1(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { - super(aInventoryPlayer, aTileEntity); - } - - @Override + + public GT_Container_1by1(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(aInventoryPlayer, aTileEntity); + } + + @Override public void addSlots(InventoryPlayer aInventoryPlayer) { - addSlotToContainer(new Slot(mTileEntity, 0, 80, 35)); + addSlotToContainer(new Slot(mTileEntity, 0, 80, 35)); } - - @Override + + @Override public int getSlotCount() { - return 1; + return 1; } - - @Override + + @Override public int getShiftClickSlotCount() { - return 1; + return 1; } } diff --git a/src/main/java/gregtech/api/gui/GT_Container_2by2.java b/src/main/java/gregtech/api/gui/GT_Container_2by2.java index 2d4bdcd3..089c20e3 100644 --- a/src/main/java/gregtech/api/gui/GT_Container_2by2.java +++ b/src/main/java/gregtech/api/gui/GT_Container_2by2.java @@ -5,26 +5,26 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; public class GT_Container_2by2 extends GT_ContainerMetaTile_Machine { - - public GT_Container_2by2(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { - super(aInventoryPlayer, aTileEntity); - } - - @Override + + public GT_Container_2by2(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(aInventoryPlayer, aTileEntity); + } + + @Override public void addSlots(InventoryPlayer aInventoryPlayer) { - addSlotToContainer(new Slot(mTileEntity, 0, 71, 26)); - addSlotToContainer(new Slot(mTileEntity, 1, 89, 26)); - addSlotToContainer(new Slot(mTileEntity, 2, 71, 44)); - addSlotToContainer(new Slot(mTileEntity, 3, 89, 44)); + addSlotToContainer(new Slot(mTileEntity, 0, 71, 26)); + addSlotToContainer(new Slot(mTileEntity, 1, 89, 26)); + addSlotToContainer(new Slot(mTileEntity, 2, 71, 44)); + addSlotToContainer(new Slot(mTileEntity, 3, 89, 44)); } - - @Override + + @Override public int getSlotCount() { - return 4; + return 4; } - - @Override + + @Override public int getShiftClickSlotCount() { - return 4; + return 4; } } diff --git a/src/main/java/gregtech/api/gui/GT_Container_3by3.java b/src/main/java/gregtech/api/gui/GT_Container_3by3.java index 9206116d..aa44556f 100644 --- a/src/main/java/gregtech/api/gui/GT_Container_3by3.java +++ b/src/main/java/gregtech/api/gui/GT_Container_3by3.java @@ -5,31 +5,31 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; public class GT_Container_3by3 extends GT_ContainerMetaTile_Machine { - - public GT_Container_3by3(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { - super(aInventoryPlayer, aTileEntity); - } - - @Override + + public GT_Container_3by3(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(aInventoryPlayer, aTileEntity); + } + + @Override public void addSlots(InventoryPlayer aInventoryPlayer) { - addSlotToContainer(new Slot(mTileEntity, 0, 62, 17)); - addSlotToContainer(new Slot(mTileEntity, 1, 80, 17)); - addSlotToContainer(new Slot(mTileEntity, 2, 98, 17)); - addSlotToContainer(new Slot(mTileEntity, 3, 62, 35)); - addSlotToContainer(new Slot(mTileEntity, 4, 80, 35)); - addSlotToContainer(new Slot(mTileEntity, 5, 98, 35)); - addSlotToContainer(new Slot(mTileEntity, 6, 62, 53)); - addSlotToContainer(new Slot(mTileEntity, 7, 80, 53)); - addSlotToContainer(new Slot(mTileEntity, 8, 98, 53)); + addSlotToContainer(new Slot(mTileEntity, 0, 62, 17)); + addSlotToContainer(new Slot(mTileEntity, 1, 80, 17)); + addSlotToContainer(new Slot(mTileEntity, 2, 98, 17)); + addSlotToContainer(new Slot(mTileEntity, 3, 62, 35)); + addSlotToContainer(new Slot(mTileEntity, 4, 80, 35)); + addSlotToContainer(new Slot(mTileEntity, 5, 98, 35)); + addSlotToContainer(new Slot(mTileEntity, 6, 62, 53)); + addSlotToContainer(new Slot(mTileEntity, 7, 80, 53)); + addSlotToContainer(new Slot(mTileEntity, 8, 98, 53)); } - - @Override + + @Override public int getSlotCount() { - return 9; + return 9; } - - @Override + + @Override public int getShiftClickSlotCount() { - return 9; + return 9; } } diff --git a/src/main/java/gregtech/api/gui/GT_Container_4by4.java b/src/main/java/gregtech/api/gui/GT_Container_4by4.java index eb6039cd..77566a0d 100644 --- a/src/main/java/gregtech/api/gui/GT_Container_4by4.java +++ b/src/main/java/gregtech/api/gui/GT_Container_4by4.java @@ -5,38 +5,38 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; public class GT_Container_4by4 extends GT_ContainerMetaTile_Machine { - - public GT_Container_4by4(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { - super(aInventoryPlayer, aTileEntity); - } - - @Override + + public GT_Container_4by4(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(aInventoryPlayer, aTileEntity); + } + + @Override public void addSlots(InventoryPlayer aInventoryPlayer) { - addSlotToContainer(new Slot(mTileEntity, 0, 53, 8)); - addSlotToContainer(new Slot(mTileEntity, 1, 71, 8)); - addSlotToContainer(new Slot(mTileEntity, 2, 89, 8)); - addSlotToContainer(new Slot(mTileEntity, 3, 107, 8)); - addSlotToContainer(new Slot(mTileEntity, 4, 53, 26)); - addSlotToContainer(new Slot(mTileEntity, 5, 71, 26)); - addSlotToContainer(new Slot(mTileEntity, 6, 89, 26)); - addSlotToContainer(new Slot(mTileEntity, 7, 107, 26)); - addSlotToContainer(new Slot(mTileEntity, 8, 53, 44)); - addSlotToContainer(new Slot(mTileEntity, 9, 71, 44)); - addSlotToContainer(new Slot(mTileEntity,10, 89, 44)); - addSlotToContainer(new Slot(mTileEntity,11, 107, 44)); - addSlotToContainer(new Slot(mTileEntity,12, 53, 62)); - addSlotToContainer(new Slot(mTileEntity,13, 71, 62)); - addSlotToContainer(new Slot(mTileEntity,14, 89, 62)); - addSlotToContainer(new Slot(mTileEntity,15, 107, 62)); + addSlotToContainer(new Slot(mTileEntity, 0, 53, 8)); + addSlotToContainer(new Slot(mTileEntity, 1, 71, 8)); + addSlotToContainer(new Slot(mTileEntity, 2, 89, 8)); + addSlotToContainer(new Slot(mTileEntity, 3, 107, 8)); + addSlotToContainer(new Slot(mTileEntity, 4, 53, 26)); + addSlotToContainer(new Slot(mTileEntity, 5, 71, 26)); + addSlotToContainer(new Slot(mTileEntity, 6, 89, 26)); + addSlotToContainer(new Slot(mTileEntity, 7, 107, 26)); + addSlotToContainer(new Slot(mTileEntity, 8, 53, 44)); + addSlotToContainer(new Slot(mTileEntity, 9, 71, 44)); + addSlotToContainer(new Slot(mTileEntity, 10, 89, 44)); + addSlotToContainer(new Slot(mTileEntity, 11, 107, 44)); + addSlotToContainer(new Slot(mTileEntity, 12, 53, 62)); + addSlotToContainer(new Slot(mTileEntity, 13, 71, 62)); + addSlotToContainer(new Slot(mTileEntity, 14, 89, 62)); + addSlotToContainer(new Slot(mTileEntity, 15, 107, 62)); } - - @Override + + @Override public int getSlotCount() { - return 16; + return 16; } - - @Override + + @Override public int getShiftClickSlotCount() { - return 16; + return 16; } } diff --git a/src/main/java/gregtech/api/gui/GT_Container_BasicMachine.java b/src/main/java/gregtech/api/gui/GT_Container_BasicMachine.java index 410d4c98..2dbc298d 100644 --- a/src/main/java/gregtech/api/gui/GT_Container_BasicMachine.java +++ b/src/main/java/gregtech/api/gui/GT_Container_BasicMachine.java @@ -1,249 +1,254 @@ package gregtech.api.gui; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine; - -import java.util.Iterator; - 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; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; + +import java.util.Iterator; /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* The Container I use for all my Basic Machines */ public class GT_Container_BasicMachine extends GT_Container_BasicTank { - - public GT_Container_BasicMachine(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { - super(aInventoryPlayer, aTileEntity); - } - - @Override - public void addSlots(InventoryPlayer aInventoryPlayer) { - addSlotToContainer(new GT_Slot_Holo(mTileEntity, 0, 8, 63, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(mTileEntity, 0, 26, 63, false, true, 1)); - addSlotToContainer(new GT_Slot_Render(mTileEntity, 2, 107, 63)); - - int tStartIndex = ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).getInputSlot(); - - switch (((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).mInputSlotCount) { - case 0: - break; - case 1: - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 25)); - break; - case 2: - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 25)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 25)); - break; - case 3: - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 25)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 25)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 25)); - break; - case 4: - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 16)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 16)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 34)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 34)); - break; - case 5: - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 16)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 16)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 16)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 34)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 34)); - break; - case 6: - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 16)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 16)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 16)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 34)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 34)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 34)); - break; - case 7: - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 7)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 7)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 7)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 25)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 25)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 25)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 43)); - break; - case 8: - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 7)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 7)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 7)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 25)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 25)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 25)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 43)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 43)); - break; - default: - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 7)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 7)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 7)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 25)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 25)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 25)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 43)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 43)); - addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 43)); - break; - } - - tStartIndex = ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).getOutputSlot(); - - switch (((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).mOutputItems.length) { - case 0: - break; - case 1: - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 25)); - break; - case 2: - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 25)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 25)); - break; - case 3: - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 25)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 25)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 25)); - break; - case 4: - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 16)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 16)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 34)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 34)); - break; - case 5: - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 16)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 16)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 16)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 34)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 34)); - break; - case 6: - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 16)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 16)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 16)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 34)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 34)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 34)); - break; - case 7: - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 7)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 7)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 7)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 25)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 25)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 25)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 43)); - break; - case 8: - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 7)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 7)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 7)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 25)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 25)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 25)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 43)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 43)); - break; - default: - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 7)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 7)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 7)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 25)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 25)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 25)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 43)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 43)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 43)); - break; - } - - addSlotToContainer(new Slot(mTileEntity, 1, 80, 63)); - addSlotToContainer(new Slot(mTileEntity, 3, 125, 63)); - addSlotToContainer(new GT_Slot_Render(mTileEntity, tStartIndex++, 53, 63)); - } - + public boolean mFluidTransfer = false, mItemTransfer = false, mStuttering = false; - - @Override - public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { - switch(aSlotIndex) { - case 0: - if (mTileEntity.getMetaTileEntity() == null) return null; - ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).mFluidTransfer = !((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).mFluidTransfer; - return null; - case 1: - if (mTileEntity.getMetaTileEntity() == null) return null; - ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).mItemTransfer = !((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).mItemTransfer; - return null; - default: - return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); - } + + public GT_Container_BasicMachine(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(aInventoryPlayer, aTileEntity); } - + @Override - public void detectAndSendChanges() { + public void addSlots(InventoryPlayer aInventoryPlayer) { + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 0, 8, 63, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 0, 26, 63, false, true, 1)); + addSlotToContainer(new GT_Slot_Render(mTileEntity, 2, 107, 63)); + + int tStartIndex = ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).getInputSlot(); + + switch (((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mInputSlotCount) { + case 0: + break; + case 1: + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 25)); + break; + case 2: + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 25)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 25)); + break; + case 3: + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 25)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 25)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 25)); + break; + case 4: + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 16)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 16)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 34)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 34)); + break; + case 5: + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 16)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 16)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 16)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 34)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 34)); + break; + case 6: + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 16)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 16)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 16)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 34)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 34)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 34)); + break; + case 7: + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 7)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 7)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 7)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 25)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 25)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 25)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 43)); + break; + case 8: + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 7)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 7)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 7)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 25)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 25)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 25)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 43)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 43)); + break; + default: + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 7)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 7)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 7)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 25)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 25)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 25)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 43)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 43)); + addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 43)); + break; + } + + tStartIndex = ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).getOutputSlot(); + + switch (((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mOutputItems.length) { + case 0: + break; + case 1: + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 25)); + break; + case 2: + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 25)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 25)); + break; + case 3: + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 25)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 25)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 25)); + break; + case 4: + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 16)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 16)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 34)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 34)); + break; + case 5: + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 16)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 16)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 16)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 34)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 34)); + break; + case 6: + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 16)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 16)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 16)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 34)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 34)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 34)); + break; + case 7: + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 7)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 7)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 7)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 25)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 25)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 25)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 43)); + break; + case 8: + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 7)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 7)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 7)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 25)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 25)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 25)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 43)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 43)); + break; + default: + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 7)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 7)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 7)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 25)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 25)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 25)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 43)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 43)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 43)); + break; + } + + addSlotToContainer(new Slot(mTileEntity, 1, 80, 63)); + addSlotToContainer(new Slot(mTileEntity, 3, 125, 63)); + addSlotToContainer(new GT_Slot_Render(mTileEntity, tStartIndex++, 53, 63)); + } + + @Override + public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { + switch (aSlotIndex) { + case 0: + if (mTileEntity.getMetaTileEntity() == null) return null; + ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mFluidTransfer = !((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mFluidTransfer; + return null; + case 1: + if (mTileEntity.getMetaTileEntity() == null) return null; + ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mItemTransfer = !((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mItemTransfer; + return null; + default: + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + } + } + + @Override + public void detectAndSendChanges() { super.detectAndSendChanges(); - if (mTileEntity.isClientSide() || mTileEntity.getMetaTileEntity() == null) return; - - mFluidTransfer = ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).mFluidTransfer; - mItemTransfer = ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).mItemTransfer; - mStuttering = ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).mStuttering; - + if (mTileEntity.isClientSide() || mTileEntity.getMetaTileEntity() == null) return; + + mFluidTransfer = ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mFluidTransfer; + mItemTransfer = ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mItemTransfer; + mStuttering = ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mStuttering; + Iterator var2 = this.crafters.iterator(); while (var2.hasNext()) { - ICrafting var1 = (ICrafting)var2.next(); - var1.sendProgressBarUpdate(this, 102, mFluidTransfer?1:0); - var1.sendProgressBarUpdate(this, 103, mItemTransfer?1:0); - var1.sendProgressBarUpdate(this, 104, mStuttering?1:0); + ICrafting var1 = (ICrafting) var2.next(); + var1.sendProgressBarUpdate(this, 102, mFluidTransfer ? 1 : 0); + var1.sendProgressBarUpdate(this, 103, mItemTransfer ? 1 : 0); + var1.sendProgressBarUpdate(this, 104, mStuttering ? 1 : 0); } } - + @Override - public void addCraftingToCrafters(ICrafting par1ICrafting) { + public void addCraftingToCrafters(ICrafting par1ICrafting) { super.addCraftingToCrafters(par1ICrafting); } - + @Override - @SideOnly(Side.CLIENT) + @SideOnly(Side.CLIENT) public void updateProgressBar(int par1, int par2) { - super.updateProgressBar(par1, par2); - switch (par1) { - case 102: mFluidTransfer = (par2 != 0); break; - case 103: mItemTransfer = (par2 != 0); break; - case 104: mStuttering = (par2 != 0); break; - } + super.updateProgressBar(par1, par2); + switch (par1) { + case 102: + mFluidTransfer = (par2 != 0); + break; + case 103: + mItemTransfer = (par2 != 0); + break; + case 104: + mStuttering = (par2 != 0); + break; + } } - + @Override public int getSlotStartIndex() { - return 3; + return 3; } - + @Override - public int getShiftClickStartIndex() { - return 3; + public int getShiftClickStartIndex() { + return 3; } - + @Override - public int getSlotCount() { - return getShiftClickSlotCount() + ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).mOutputItems.length + 2; + public int getSlotCount() { + return getShiftClickSlotCount() + ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mOutputItems.length + 2; } - + @Override - public int getShiftClickSlotCount() { - return ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).mInputSlotCount; + public int getShiftClickSlotCount() { + return ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mInputSlotCount; } } diff --git a/src/main/java/gregtech/api/gui/GT_Container_BasicTank.java b/src/main/java/gregtech/api/gui/GT_Container_BasicTank.java index 7fe15f74..aeb0ef0c 100644 --- a/src/main/java/gregtech/api/gui/GT_Container_BasicTank.java +++ b/src/main/java/gregtech/api/gui/GT_Container_BasicTank.java @@ -1,70 +1,72 @@ package gregtech.api.gui; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; -import gregtech.common.tileentities.storage.GT_MetaTileEntity_QuantumChest; - -import java.util.Iterator; - import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.Slot; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; + +import java.util.Iterator; /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* The Container I use for all my Basic Tanks */ public class GT_Container_BasicTank extends GT_ContainerMetaTile_Machine { - public GT_Container_BasicTank(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { - super(aInventoryPlayer, aTileEntity); - } - - @Override - public void addSlots(InventoryPlayer aInventoryPlayer) { - addSlotToContainer(new Slot(mTileEntity, 0, 80, 17)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, 1, 80, 53)); - addSlotToContainer(new GT_Slot_Render(mTileEntity, 2, 59, 42)); - } - public int mContent = 0; - + + public GT_Container_BasicTank(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(aInventoryPlayer, aTileEntity); + } + @Override - public void detectAndSendChanges() { + public void addSlots(InventoryPlayer aInventoryPlayer) { + addSlotToContainer(new Slot(mTileEntity, 0, 80, 17)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, 1, 80, 53)); + addSlotToContainer(new GT_Slot_Render(mTileEntity, 2, 59, 42)); + } + + @Override + public void detectAndSendChanges() { super.detectAndSendChanges(); - if (mTileEntity.isClientSide() || mTileEntity.getMetaTileEntity() == null) return; - if (((GT_MetaTileEntity_BasicTank)mTileEntity.getMetaTileEntity()).mFluid != null) - mContent = ((GT_MetaTileEntity_BasicTank)mTileEntity.getMetaTileEntity()).mFluid.amount; - else - mContent = 0; + if (mTileEntity.isClientSide() || mTileEntity.getMetaTileEntity() == null) return; + if (((GT_MetaTileEntity_BasicTank) mTileEntity.getMetaTileEntity()).mFluid != null) + mContent = ((GT_MetaTileEntity_BasicTank) mTileEntity.getMetaTileEntity()).mFluid.amount; + else + mContent = 0; Iterator var2 = this.crafters.iterator(); while (var2.hasNext()) { - ICrafting var1 = (ICrafting)var2.next(); + ICrafting var1 = (ICrafting) var2.next(); var1.sendProgressBarUpdate(this, 100, mContent & 65535); var1.sendProgressBarUpdate(this, 101, mContent >>> 16); } } - + @Override - @SideOnly(Side.CLIENT) + @SideOnly(Side.CLIENT) public void updateProgressBar(int par1, int par2) { - super.updateProgressBar(par1, par2); - switch (par1) { - case 100: mContent = mContent & -65536 | par2; break; - case 101: mContent = mContent & 65535 | par2 << 16; break; - } - } - - @Override - public int getSlotCount() { - return 2; + super.updateProgressBar(par1, par2); + switch (par1) { + case 100: + mContent = mContent & -65536 | par2; + break; + case 101: + mContent = mContent & 65535 | par2 << 16; + break; + } } @Override - public int getShiftClickSlotCount() { - return 1; + public int getSlotCount() { + return 2; + } + + @Override + public int getShiftClickSlotCount() { + return 1; } } diff --git a/src/main/java/gregtech/api/gui/GT_Container_MaintenanceHatch.java b/src/main/java/gregtech/api/gui/GT_Container_MaintenanceHatch.java index 3f9846bb..5c469f87 100644 --- a/src/main/java/gregtech/api/gui/GT_Container_MaintenanceHatch.java +++ b/src/main/java/gregtech/api/gui/GT_Container_MaintenanceHatch.java @@ -7,24 +7,24 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; public class GT_Container_MaintenanceHatch extends GT_ContainerMetaTile_Machine { - - public GT_Container_MaintenanceHatch(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { - super(aInventoryPlayer, aTileEntity); - } - - @Override - public void addSlots(InventoryPlayer aInventoryPlayer) { - addSlotToContainer(new GT_Slot_Holo(mTileEntity, 0, 80, 35, false, false, 1)); + + public GT_Container_MaintenanceHatch(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(aInventoryPlayer, aTileEntity); } - + @Override - public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { - if (aSlotIndex != 0) return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); - ItemStack tStack = aPlayer.inventory.getItemStack(); - if (tStack != null) { - ((GT_MetaTileEntity_Hatch_Maintenance)mTileEntity.getMetaTileEntity()).onToolClick(tStack, aPlayer); - if (tStack.stackSize <= 0) aPlayer.inventory.setItemStack(null); - } - return null; + public void addSlots(InventoryPlayer aInventoryPlayer) { + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 0, 80, 35, 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); + ItemStack tStack = aPlayer.inventory.getItemStack(); + if (tStack != null) { + ((GT_MetaTileEntity_Hatch_Maintenance) mTileEntity.getMetaTileEntity()).onToolClick(tStack, aPlayer); + if (tStack.stackSize <= 0) aPlayer.inventory.setItemStack(null); + } + return null; } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/gui/GT_Container_MultiMachine.java b/src/main/java/gregtech/api/gui/GT_Container_MultiMachine.java index 289b783e..f5e9a83d 100644 --- a/src/main/java/gregtech/api/gui/GT_Container_MultiMachine.java +++ b/src/main/java/gregtech/api/gui/GT_Container_MultiMachine.java @@ -6,30 +6,30 @@ import net.minecraft.inventory.Slot; /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* The Container I use for all my Basic Machines */ public class GT_Container_MultiMachine extends GT_ContainerMetaTile_Machine { - public GT_Container_MultiMachine(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { - super(aInventoryPlayer, aTileEntity); - } - - public GT_Container_MultiMachine(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, boolean bindInventory) { - super(aInventoryPlayer, aTileEntity, bindInventory); - } - - @Override - public void addSlots(InventoryPlayer aInventoryPlayer) { - addSlotToContainer(new Slot(mTileEntity, 1, 152, 5)); + public GT_Container_MultiMachine(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(aInventoryPlayer, aTileEntity); } - - @Override - public int getSlotCount() { - return 1; + + public GT_Container_MultiMachine(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, boolean bindInventory) { + super(aInventoryPlayer, aTileEntity, bindInventory); } - + @Override - public int getShiftClickSlotCount() { - return 1; + public void addSlots(InventoryPlayer aInventoryPlayer) { + addSlotToContainer(new Slot(mTileEntity, 1, 152, 5)); + } + + @Override + public int getSlotCount() { + return 1; + } + + @Override + public int getShiftClickSlotCount() { + return 1; } } diff --git a/src/main/java/gregtech/api/gui/GT_GUIContainer.java b/src/main/java/gregtech/api/gui/GT_GUIContainer.java index a92ca356..f53684f1 100644 --- a/src/main/java/gregtech/api/gui/GT_GUIContainer.java +++ b/src/main/java/gregtech/api/gui/GT_GUIContainer.java @@ -7,44 +7,49 @@ import net.minecraft.util.ResourceLocation; /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* Main GUI-Container-Class which basically contains the Code needed to prevent crashes from improperly Coded Items. */ public class GT_GUIContainer extends GuiContainer { - - public boolean mCrashed = false; - - public ResourceLocation mGUIbackground; - - public String mGUIbackgroundPath; - - public int getLeft() {return guiLeft;} - public int getTop() {return guiTop;} - - public GT_GUIContainer(Container aContainer, String aGUIbackground) { - super(aContainer); - mGUIbackground = new ResourceLocation(mGUIbackgroundPath = aGUIbackground); - } - + + public boolean mCrashed = false; + + public ResourceLocation mGUIbackground; + + public String mGUIbackgroundPath; + + public GT_GUIContainer(Container aContainer, String aGUIbackground) { + super(aContainer); + mGUIbackground = new ResourceLocation(mGUIbackgroundPath = aGUIbackground); + } + + public int getLeft() { + return guiLeft; + } + + public int getTop() { + return guiTop; + } + @Override protected void drawGuiContainerForegroundLayer(int par1, int par2) { - // + // } - + @Override protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { - mc.renderEngine.bindTexture(mGUIbackground); + mc.renderEngine.bindTexture(mGUIbackground); } - + @Override public void drawScreen(int par1, int par2, float par3) { try { - super.drawScreen(par1, par2, par3); - } catch(Throwable e) { + super.drawScreen(par1, par2, par3); + } catch (Throwable e) { try { - Tessellator.instance.draw(); - } catch(Throwable f) { - // + Tessellator.instance.draw(); + } catch (Throwable f) { + // } } } diff --git a/src/main/java/gregtech/api/gui/GT_GUIContainerMetaTile_Machine.java b/src/main/java/gregtech/api/gui/GT_GUIContainerMetaTile_Machine.java index 0bfc774b..4c20715e 100644 --- a/src/main/java/gregtech/api/gui/GT_GUIContainerMetaTile_Machine.java +++ b/src/main/java/gregtech/api/gui/GT_GUIContainerMetaTile_Machine.java @@ -4,36 +4,35 @@ import gregtech.api.GregTech_API; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemDye; - import org.lwjgl.opengl.GL11; /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* The GUI-Container I use for all my MetaTileEntities */ public class GT_GUIContainerMetaTile_Machine extends GT_GUIContainer { - - public final GT_ContainerMetaTile_Machine mContainer; - - public GT_GUIContainerMetaTile_Machine(GT_ContainerMetaTile_Machine aContainer, String aGUIbackground) { - super(aContainer, aGUIbackground); + + public final GT_ContainerMetaTile_Machine mContainer; + + public GT_GUIContainerMetaTile_Machine(GT_ContainerMetaTile_Machine aContainer, String aGUIbackground) { + super(aContainer, aGUIbackground); mContainer = aContainer; - } - + } + public GT_GUIContainerMetaTile_Machine(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aGUIbackground) { this(new GT_ContainerMetaTile_Machine(aInventoryPlayer, aTileEntity), aGUIbackground); } - + @Override protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { - super.drawGuiContainerBackgroundLayer(par1, par2, par3); - if (GregTech_API.sColoredGUI && mContainer != null && mContainer.mTileEntity != null) { - int tColor = mContainer.mTileEntity.getColorization() & 15; - if (tColor >= 0 && tColor < ItemDye.field_150922_c.length) { - tColor = ItemDye.field_150922_c[tColor]; - GL11.glColor4f(((tColor >> 16) & 255) / 255.0F, ((tColor >> 8) & 255) / 255.0F, (tColor & 255) / 255.0F, 1.0F); - } else GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - } else GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + super.drawGuiContainerBackgroundLayer(par1, par2, par3); + if (GregTech_API.sColoredGUI && mContainer != null && mContainer.mTileEntity != null) { + int tColor = mContainer.mTileEntity.getColorization() & 15; + if (tColor >= 0 && tColor < ItemDye.field_150922_c.length) { + tColor = ItemDye.field_150922_c[tColor]; + GL11.glColor4f(((tColor >> 16) & 255) / 255.0F, ((tColor >> 8) & 255) / 255.0F, (tColor & 255) / 255.0F, 1.0F); + } else GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + } else GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/gui/GT_GUIContainer_1by1.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_1by1.java index 2d4176ee..29cc403c 100644 --- a/src/main/java/gregtech/api/gui/GT_GUIContainer_1by1.java +++ b/src/main/java/gregtech/api/gui/GT_GUIContainer_1by1.java @@ -1,26 +1,27 @@ package gregtech.api.gui; -import static gregtech.api.enums.GT_Values.RES_PATH_GUI; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.InventoryPlayer; +import static gregtech.api.enums.GT_Values.RES_PATH_GUI; + public class GT_GUIContainer_1by1 extends GT_GUIContainerMetaTile_Machine { - - private final String mName; - + + private final String mName; + public GT_GUIContainer_1by1(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName) { super(new GT_Container_1by1(aInventoryPlayer, aTileEntity), RES_PATH_GUI + "1by1.png"); mName = aName; } - + @Override protected void drawGuiContainerForegroundLayer(int par1, int par2) { - fontRendererObj.drawString(mName, 8, 4, 4210752); + fontRendererObj.drawString(mName, 8, 4, 4210752); } - + @Override protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { - super.drawGuiContainerBackgroundLayer(par1, par2, par3); + super.drawGuiContainerBackgroundLayer(par1, par2, par3); int x = (width - xSize) / 2; int y = (height - ySize) / 2; drawTexturedModalRect(x, y, 0, 0, xSize, ySize); diff --git a/src/main/java/gregtech/api/gui/GT_GUIContainer_2by2.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_2by2.java index 3ad77d8a..50653132 100644 --- a/src/main/java/gregtech/api/gui/GT_GUIContainer_2by2.java +++ b/src/main/java/gregtech/api/gui/GT_GUIContainer_2by2.java @@ -1,26 +1,27 @@ package gregtech.api.gui; -import static gregtech.api.enums.GT_Values.RES_PATH_GUI; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.InventoryPlayer; +import static gregtech.api.enums.GT_Values.RES_PATH_GUI; + public class GT_GUIContainer_2by2 extends GT_GUIContainerMetaTile_Machine { - - private final String mName; - + + private final String mName; + public GT_GUIContainer_2by2(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName) { super(new GT_Container_2by2(aInventoryPlayer, aTileEntity), RES_PATH_GUI + "2by2.png"); mName = aName; } - + @Override protected void drawGuiContainerForegroundLayer(int par1, int par2) { - fontRendererObj.drawString(mName, 8, 4, 4210752); + fontRendererObj.drawString(mName, 8, 4, 4210752); } - + @Override protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { - super.drawGuiContainerBackgroundLayer(par1, par2, par3); + super.drawGuiContainerBackgroundLayer(par1, par2, par3); int x = (width - xSize) / 2; int y = (height - ySize) / 2; drawTexturedModalRect(x, y, 0, 0, xSize, ySize); diff --git a/src/main/java/gregtech/api/gui/GT_GUIContainer_3by3.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_3by3.java index 4eb892d4..de12be9e 100644 --- a/src/main/java/gregtech/api/gui/GT_GUIContainer_3by3.java +++ b/src/main/java/gregtech/api/gui/GT_GUIContainer_3by3.java @@ -1,26 +1,27 @@ package gregtech.api.gui; -import static gregtech.api.enums.GT_Values.RES_PATH_GUI; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.InventoryPlayer; +import static gregtech.api.enums.GT_Values.RES_PATH_GUI; + public class GT_GUIContainer_3by3 extends GT_GUIContainerMetaTile_Machine { - - private final String mName; - + + private final String mName; + public GT_GUIContainer_3by3(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName) { super(new GT_Container_3by3(aInventoryPlayer, aTileEntity), RES_PATH_GUI + "3by3.png"); mName = aName; } - + @Override protected void drawGuiContainerForegroundLayer(int par1, int par2) { - fontRendererObj.drawString(mName, 8, 4, 4210752); + fontRendererObj.drawString(mName, 8, 4, 4210752); } - + @Override protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { - super.drawGuiContainerBackgroundLayer(par1, par2, par3); + super.drawGuiContainerBackgroundLayer(par1, par2, par3); int x = (width - xSize) / 2; int y = (height - ySize) / 2; drawTexturedModalRect(x, y, 0, 0, xSize, ySize); diff --git a/src/main/java/gregtech/api/gui/GT_GUIContainer_4by4.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_4by4.java index e01e5f81..dd536f41 100644 --- a/src/main/java/gregtech/api/gui/GT_GUIContainer_4by4.java +++ b/src/main/java/gregtech/api/gui/GT_GUIContainer_4by4.java @@ -1,26 +1,27 @@ package gregtech.api.gui; -import static gregtech.api.enums.GT_Values.RES_PATH_GUI; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.InventoryPlayer; +import static gregtech.api.enums.GT_Values.RES_PATH_GUI; + public class GT_GUIContainer_4by4 extends GT_GUIContainerMetaTile_Machine { - - private final String mName; - + + private final String mName; + public GT_GUIContainer_4by4(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName) { super(new GT_Container_4by4(aInventoryPlayer, aTileEntity), RES_PATH_GUI + "4by4.png"); mName = aName; } - + @Override protected void drawGuiContainerForegroundLayer(int par1, int par2) { - fontRendererObj.drawString(mName, 8, 4, 4210752); + fontRendererObj.drawString(mName, 8, 4, 4210752); } - + @Override protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { - super.drawGuiContainerBackgroundLayer(par1, par2, par3); + super.drawGuiContainerBackgroundLayer(par1, par2, par3); int x = (width - xSize) / 2; int y = (height - ySize) / 2; drawTexturedModalRect(x, y, 0, 0, xSize, ySize); diff --git a/src/main/java/gregtech/api/gui/GT_GUIContainer_BasicMachine.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_BasicMachine.java index 7898f3b6..5f506bca 100644 --- a/src/main/java/gregtech/api/gui/GT_GUIContainer_BasicMachine.java +++ b/src/main/java/gregtech/api/gui/GT_GUIContainer_BasicMachine.java @@ -1,86 +1,109 @@ package gregtech.api.gui; -import static gregtech.api.enums.GT_Values.RES_PATH_GUI; - -import java.util.ArrayList; -import java.util.List; - import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.InventoryPlayer; +import java.util.ArrayList; +import java.util.List; + +import static gregtech.api.enums.GT_Values.RES_PATH_GUI; + /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* The GUI-Container I use for all my Basic Machines - * + *

* As the NEI-RecipeTransferRect Handler can't handle one GUI-Class for all GUIs I needed to produce some dummy-classes which extend this class */ public class GT_GUIContainer_BasicMachine extends GT_GUIContainerMetaTile_Machine { - - public final String mName, mNEI; - public final byte mProgressBarDirection, mProgressBarAmount; - + + public final String mName, mNEI; + public final byte mProgressBarDirection, mProgressBarAmount; + public GT_GUIContainer_BasicMachine(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName, String aTextureFile, String aNEI) { - this(aInventoryPlayer, aTileEntity, aName, aTextureFile, aNEI, (byte)0, (byte)1); + this(aInventoryPlayer, aTileEntity, aName, aTextureFile, aNEI, (byte) 0, (byte) 1); } - + public GT_GUIContainer_BasicMachine(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName, String aTextureFile, String aNEI, byte aProgressBarDirection, byte aProgressBarAmount) { super(new GT_Container_BasicMachine(aInventoryPlayer, aTileEntity), RES_PATH_GUI + "basicmachines/" + aTextureFile); mProgressBarDirection = aProgressBarDirection; - mProgressBarAmount = (byte)Math.max(1, aProgressBarAmount); + mProgressBarAmount = (byte) Math.max(1, aProgressBarAmount); mName = aName; mNEI = aNEI; } - + @Override protected void drawGuiContainerForegroundLayer(int par1, int par2) { - fontRendererObj.drawString(mName, 8, 4, 4210752); + fontRendererObj.drawString(mName, 8, 4, 4210752); drawTooltip(par1, par2); } - - private void drawTooltip(int x2, int y2){ - int xStart = (width - xSize) / 2; - int yStart = (height - ySize) / 2; - int x = x2 - xStart; - int y = y2 - yStart +5; - List list = new ArrayList(); - if (y >= 67 && y <= 84) { - if (x >= 7 && x <= 24){ - list.add("Fluid Auto-Output"); - } - if (x >= 25 && x <= 42){ - list.add("Item Auto-Output"); - } - } - if (!list.isEmpty()) - drawHoveringText(list, x, y, fontRendererObj); + + private void drawTooltip(int x2, int y2) { + int xStart = (width - xSize) / 2; + int yStart = (height - ySize) / 2; + int x = x2 - xStart; + int y = y2 - yStart + 5; + List list = new ArrayList(); + if (y >= 67 && y <= 84) { + if (x >= 7 && x <= 24) { + list.add("Fluid Auto-Output"); + } + if (x >= 25 && x <= 42) { + list.add("Item Auto-Output"); + } + } + if (!list.isEmpty()) + drawHoveringText(list, x, y, fontRendererObj); } - + @Override protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { - super.drawGuiContainerBackgroundLayer(par1, par2, par3); + super.drawGuiContainerBackgroundLayer(par1, par2, par3); int x = (width - xSize) / 2; int y = (height - ySize) / 2; drawTexturedModalRect(x, y, 0, 0, xSize, ySize); if (mContainer != null) { - if (((GT_Container_BasicMachine)mContainer).mFluidTransfer) drawTexturedModalRect(x + 7, y + 62, 176, 18, 18, 18); - if (((GT_Container_BasicMachine)mContainer).mItemTransfer) drawTexturedModalRect(x + 25, y + 62, 176, 36, 18, 18); - if (((GT_Container_BasicMachine)mContainer).mStuttering) drawTexturedModalRect(x + 79, y + 44, 176, 54, 18, 18); - - if (mContainer.mMaxProgressTime > 0) { - int tSize = (mProgressBarDirection < 2 ? 20 : 18), tProgress = Math.max(1, Math.min(tSize * mProgressBarAmount, (mContainer.mProgressTime>0?1:0) + (mContainer.mProgressTime * tSize * mProgressBarAmount) / mContainer.mMaxProgressTime)) % (tSize+1); - - switch (mProgressBarDirection) { // yes, my OCD was mad at me before I did the Tabs. - case 0: drawTexturedModalRect(x + 78 , y + 24 , 176 , 0 , tProgress , 18 ); break; - case 1: drawTexturedModalRect(x + 78 + 20 - tProgress , y + 24 , 176 + 20 - tProgress , 0 , tProgress , 18 ); break; - case 2: drawTexturedModalRect(x + 78 , y + 24 , 176 , 0 , 20 , tProgress ); break; - case 3: drawTexturedModalRect(x + 78 , y + 24 + 18 - tProgress , 176 , 18 - tProgress , 20 , tProgress ); break; - case 4: tProgress = 20 - tProgress; drawTexturedModalRect(x + 78 , y + 24 , 176 , 0 , tProgress , 18 ); break; - case 5: tProgress = 20 - tProgress; drawTexturedModalRect(x + 78 + 20 - tProgress , y + 24 , 176 + 20 - tProgress , 0 , tProgress , 18 ); break; - case 6: tProgress = 18 - tProgress; drawTexturedModalRect(x + 78 , y + 24 , 176 , 0 , 20 , tProgress ); break; - case 7: tProgress = 18 - tProgress; drawTexturedModalRect(x + 78 , y + 24 + 18 - tProgress , 176 , 18 - tProgress , 20 , tProgress ); break; - } - } + if (((GT_Container_BasicMachine) mContainer).mFluidTransfer) + drawTexturedModalRect(x + 7, y + 62, 176, 18, 18, 18); + if (((GT_Container_BasicMachine) mContainer).mItemTransfer) + drawTexturedModalRect(x + 25, y + 62, 176, 36, 18, 18); + if (((GT_Container_BasicMachine) mContainer).mStuttering) + drawTexturedModalRect(x + 79, y + 44, 176, 54, 18, 18); + + if (mContainer.mMaxProgressTime > 0) { + int tSize = (mProgressBarDirection < 2 ? 20 : 18), tProgress = Math.max(1, Math.min(tSize * mProgressBarAmount, (mContainer.mProgressTime > 0 ? 1 : 0) + (mContainer.mProgressTime * tSize * mProgressBarAmount) / mContainer.mMaxProgressTime)) % (tSize + 1); + + switch (mProgressBarDirection) { // yes, my OCD was mad at me before I did the Tabs. + case 0: + drawTexturedModalRect(x + 78, y + 24, 176, 0, tProgress, 18); + break; + case 1: + drawTexturedModalRect(x + 78 + 20 - tProgress, y + 24, 176 + 20 - tProgress, 0, tProgress, 18); + break; + case 2: + drawTexturedModalRect(x + 78, y + 24, 176, 0, 20, tProgress); + break; + case 3: + drawTexturedModalRect(x + 78, y + 24 + 18 - tProgress, 176, 18 - tProgress, 20, tProgress); + break; + case 4: + tProgress = 20 - tProgress; + drawTexturedModalRect(x + 78, y + 24, 176, 0, tProgress, 18); + break; + case 5: + tProgress = 20 - tProgress; + drawTexturedModalRect(x + 78 + 20 - tProgress, y + 24, 176 + 20 - tProgress, 0, tProgress, 18); + break; + case 6: + tProgress = 18 - tProgress; + drawTexturedModalRect(x + 78, y + 24, 176, 0, 20, tProgress); + break; + case 7: + tProgress = 18 - tProgress; + drawTexturedModalRect(x + 78, y + 24 + 18 - tProgress, 176, 18 - tProgress, 20, tProgress); + break; + } + } } } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/gui/GT_GUIContainer_BasicTank.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_BasicTank.java index ae35067e..b8b33ebb 100644 --- a/src/main/java/gregtech/api/gui/GT_GUIContainer_BasicTank.java +++ b/src/main/java/gregtech/api/gui/GT_GUIContainer_BasicTank.java @@ -1,33 +1,34 @@ package gregtech.api.gui; -import static gregtech.api.enums.GT_Values.RES_PATH_GUI; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.util.GT_Utility; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.StatCollector; +import static gregtech.api.enums.GT_Values.RES_PATH_GUI; + public class GT_GUIContainer_BasicTank extends GT_GUIContainerMetaTile_Machine { - - private final String mName; - + + private final String mName; + public GT_GUIContainer_BasicTank(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName) { super(new GT_Container_BasicTank(aInventoryPlayer, aTileEntity), RES_PATH_GUI + "BasicTank.png"); mName = aName; } - + @Override protected void drawGuiContainerForegroundLayer(int par1, int par2) { fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 8, ySize - 96 + 2, 4210752); fontRendererObj.drawString(mName, 8, 6, 4210752); if (mContainer != null) { - fontRendererObj.drawString("Liquid Amount", 10, 20, 16448255); - fontRendererObj.drawString(GT_Utility.parseNumberToString(((GT_Container_BasicTank)mContainer).mContent), 10, 30, 16448255); + fontRendererObj.drawString("Liquid Amount", 10, 20, 16448255); + fontRendererObj.drawString(GT_Utility.parseNumberToString(((GT_Container_BasicTank) mContainer).mContent), 10, 30, 16448255); } } @Override protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { - super.drawGuiContainerBackgroundLayer(par1, par2, par3); + super.drawGuiContainerBackgroundLayer(par1, par2, par3); int x = (width - xSize) / 2; int y = (height - ySize) / 2; drawTexturedModalRect(x, y, 0, 0, xSize, ySize); diff --git a/src/main/java/gregtech/api/gui/GT_GUIContainer_MaintenanceHatch.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_MaintenanceHatch.java index cc663ad2..e827e21f 100644 --- a/src/main/java/gregtech/api/gui/GT_GUIContainer_MaintenanceHatch.java +++ b/src/main/java/gregtech/api/gui/GT_GUIContainer_MaintenanceHatch.java @@ -1,24 +1,25 @@ package gregtech.api.gui; -import static gregtech.api.enums.GT_Values.RES_PATH_GUI; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.InventoryPlayer; +import static gregtech.api.enums.GT_Values.RES_PATH_GUI; + public class GT_GUIContainer_MaintenanceHatch extends GT_GUIContainerMetaTile_Machine { - + public GT_GUIContainer_MaintenanceHatch(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { super(new GT_Container_MaintenanceHatch(aInventoryPlayer, aTileEntity), RES_PATH_GUI + "Maintenance.png"); } - + @Override protected void drawGuiContainerForegroundLayer(int par1, int par2) { - fontRendererObj.drawString("Maintenance Hatch", 8, 4, 4210752); - fontRendererObj.drawString("Click with Tool to repair.", 8, 12, 4210752); + fontRendererObj.drawString("Maintenance Hatch", 8, 4, 4210752); + fontRendererObj.drawString("Click with Tool to repair.", 8, 12, 4210752); } - + @Override protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { - super.drawGuiContainerBackgroundLayer(par1, par2, par3); + super.drawGuiContainerBackgroundLayer(par1, par2, par3); int x = (width - xSize) / 2; int y = (height - ySize) / 2; drawTexturedModalRect(x, y, 0, 0, xSize, ySize); diff --git a/src/main/java/gregtech/api/gui/GT_GUIContainer_MultiMachine.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_MultiMachine.java index b71b3282..2980cd9c 100644 --- a/src/main/java/gregtech/api/gui/GT_GUIContainer_MultiMachine.java +++ b/src/main/java/gregtech/api/gui/GT_GUIContainer_MultiMachine.java @@ -1,53 +1,61 @@ package gregtech.api.gui; -import static gregtech.api.enums.GT_Values.RES_PATH_GUI; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.InventoryPlayer; +import static gregtech.api.enums.GT_Values.RES_PATH_GUI; + /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* The GUI-Container I use for all my Basic Machines - * + *

* As the NEI-RecipeTransferRect Handler can't handle one GUI-Class for all GUIs I needed to produce some dummy-classes which extend this class */ public class GT_GUIContainer_MultiMachine extends GT_GUIContainerMetaTile_Machine { - - String mName = ""; - + + String mName = ""; + public GT_GUIContainer_MultiMachine(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName, String aTextureFile) { - super(new GT_Container_MultiMachine(aInventoryPlayer, aTileEntity), RES_PATH_GUI + "multimachines/" + (aTextureFile==null?"MultiblockDisplay":aTextureFile)); + super(new GT_Container_MultiMachine(aInventoryPlayer, aTileEntity), RES_PATH_GUI + "multimachines/" + (aTextureFile == null ? "MultiblockDisplay" : aTextureFile)); mName = aName; } - + @Override protected void drawGuiContainerForegroundLayer(int par1, int par2) { - fontRendererObj.drawString(mName, 10, 8, 16448255); - + fontRendererObj.drawString(mName, 10, 8, 16448255); + if (mContainer != null) { - if ((((GT_Container_MultiMachine)mContainer).mDisplayErrorCode & 1) != 0) fontRendererObj.drawString("Pipe is loose.", 10, 16, 16448255); - if ((((GT_Container_MultiMachine)mContainer).mDisplayErrorCode & 2) != 0) fontRendererObj.drawString("Screws are missing.", 10, 24, 16448255); - if ((((GT_Container_MultiMachine)mContainer).mDisplayErrorCode & 4) != 0) fontRendererObj.drawString("Something is stuck.", 10, 32, 16448255); - if ((((GT_Container_MultiMachine)mContainer).mDisplayErrorCode & 8) != 0) fontRendererObj.drawString("Platings are dented.", 10, 40, 16448255); - if ((((GT_Container_MultiMachine)mContainer).mDisplayErrorCode & 16) != 0) fontRendererObj.drawString("Circuitry burned out.", 10, 48, 16448255); - if ((((GT_Container_MultiMachine)mContainer).mDisplayErrorCode & 32) != 0) fontRendererObj.drawString("That doesn't belong there.", 10, 56, 16448255); - if ((((GT_Container_MultiMachine)mContainer).mDisplayErrorCode & 64) != 0) fontRendererObj.drawString("Incomplete Structure.", 10, 64, 16448255); - - if (((GT_Container_MultiMachine)mContainer).mDisplayErrorCode == 0) { - if (((GT_Container_MultiMachine)mContainer).mActive == 0) { - fontRendererObj.drawString("Hit with Soft Hammer", 10, 16, 16448255); - fontRendererObj.drawString("to (re-)start the Machine", 10, 24, 16448255); - fontRendererObj.drawString("if it doesn't start.", 10, 32, 16448255); - } else { - fontRendererObj.drawString("Running perfectly.", 10, 16, 16448255); - } - } + if ((((GT_Container_MultiMachine) mContainer).mDisplayErrorCode & 1) != 0) + fontRendererObj.drawString("Pipe is loose.", 10, 16, 16448255); + if ((((GT_Container_MultiMachine) mContainer).mDisplayErrorCode & 2) != 0) + fontRendererObj.drawString("Screws are missing.", 10, 24, 16448255); + if ((((GT_Container_MultiMachine) mContainer).mDisplayErrorCode & 4) != 0) + fontRendererObj.drawString("Something is stuck.", 10, 32, 16448255); + if ((((GT_Container_MultiMachine) mContainer).mDisplayErrorCode & 8) != 0) + fontRendererObj.drawString("Platings are dented.", 10, 40, 16448255); + if ((((GT_Container_MultiMachine) mContainer).mDisplayErrorCode & 16) != 0) + fontRendererObj.drawString("Circuitry burned out.", 10, 48, 16448255); + if ((((GT_Container_MultiMachine) mContainer).mDisplayErrorCode & 32) != 0) + fontRendererObj.drawString("That doesn't belong there.", 10, 56, 16448255); + if ((((GT_Container_MultiMachine) mContainer).mDisplayErrorCode & 64) != 0) + fontRendererObj.drawString("Incomplete Structure.", 10, 64, 16448255); + + if (((GT_Container_MultiMachine) mContainer).mDisplayErrorCode == 0) { + if (((GT_Container_MultiMachine) mContainer).mActive == 0) { + fontRendererObj.drawString("Hit with Soft Hammer", 10, 16, 16448255); + fontRendererObj.drawString("to (re-)start the Machine", 10, 24, 16448255); + fontRendererObj.drawString("if it doesn't start.", 10, 32, 16448255); + } else { + fontRendererObj.drawString("Running perfectly.", 10, 16, 16448255); + } + } } } - + @Override protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { - super.drawGuiContainerBackgroundLayer(par1, par2, par3); + super.drawGuiContainerBackgroundLayer(par1, par2, par3); int x = (width - xSize) / 2; int y = (height - ySize) / 2; drawTexturedModalRect(x, y, 0, 0, xSize, ySize); diff --git a/src/main/java/gregtech/api/gui/GT_Slot_Armor.java b/src/main/java/gregtech/api/gui/GT_Slot_Armor.java index fdd89bca..0359884a 100644 --- a/src/main/java/gregtech/api/gui/GT_Slot_Armor.java +++ b/src/main/java/gregtech/api/gui/GT_Slot_Armor.java @@ -8,20 +8,20 @@ import net.minecraft.item.ItemStack; public class GT_Slot_Armor extends Slot { final int mArmorType; final EntityPlayer mPlayer; - + public GT_Slot_Armor(IInventory par2IInventory, int par3, int par4, int par5, int par6, EntityPlayer aPlayer) { super(par2IInventory, par3, par4, par5); mArmorType = par6; mPlayer = aPlayer; } - + @Override - public int getSlotStackLimit() { + public int getSlotStackLimit() { return 1; } - + @Override - public boolean isItemValid(ItemStack aStack) { + public boolean isItemValid(ItemStack aStack) { return aStack != null && aStack.getItem() != null && aStack.getItem().isValidArmor(aStack, mArmorType, mPlayer); } } diff --git a/src/main/java/gregtech/api/gui/GT_Slot_DataOrb.java b/src/main/java/gregtech/api/gui/GT_Slot_DataOrb.java index bd247148..28b4d282 100644 --- a/src/main/java/gregtech/api/gui/GT_Slot_DataOrb.java +++ b/src/main/java/gregtech/api/gui/GT_Slot_DataOrb.java @@ -6,12 +6,12 @@ import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; public class GT_Slot_DataOrb extends Slot { - public GT_Slot_DataOrb(IInventory par1iInventory, int par2, int par3, int par4) { - super(par1iInventory, par2, par3, par4); - } - + public GT_Slot_DataOrb(IInventory par1iInventory, int par2, int par3, int par4) { + super(par1iInventory, par2, par3, par4); + } + @Override - public boolean isItemValid(ItemStack aStack) { + public boolean isItemValid(ItemStack aStack) { return ItemList.Tool_DataOrb.isStackEqual(aStack, false, true); } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/gui/GT_Slot_Holo.java b/src/main/java/gregtech/api/gui/GT_Slot_Holo.java index 87bb9c51..c6b57751 100644 --- a/src/main/java/gregtech/api/gui/GT_Slot_Holo.java +++ b/src/main/java/gregtech/api/gui/GT_Slot_Holo.java @@ -7,38 +7,38 @@ import net.minecraft.item.ItemStack; public class GT_Slot_Holo extends Slot { public final int mSlotIndex; - public boolean mCanInsertItem, mCanStackItem; - public int mMaxStacksize = 127; - - public GT_Slot_Holo(IInventory par1iInventory, int par2, int par3, int par4, boolean aCanInsertItem, boolean aCanStackItem, int aMaxStacksize) { - super(par1iInventory, par2, par3, par4); - mCanInsertItem = aCanInsertItem; - mCanStackItem = aCanStackItem; - mMaxStacksize = aMaxStacksize; - mSlotIndex = par2; - } - + public boolean mCanInsertItem, mCanStackItem; + public int mMaxStacksize = 127; + + public GT_Slot_Holo(IInventory par1iInventory, int par2, int par3, int par4, boolean aCanInsertItem, boolean aCanStackItem, int aMaxStacksize) { + super(par1iInventory, par2, par3, par4); + mCanInsertItem = aCanInsertItem; + mCanStackItem = aCanStackItem; + mMaxStacksize = aMaxStacksize; + mSlotIndex = par2; + } + @Override - public boolean isItemValid(ItemStack par1ItemStack) { + public boolean isItemValid(ItemStack par1ItemStack) { return mCanInsertItem; } - + @Override - public int getSlotStackLimit() { + public int getSlotStackLimit() { return mMaxStacksize; } - + @Override - public boolean getHasStack() { + public boolean getHasStack() { return false; } - + @Override - public ItemStack decrStackSize(int par1) { - if (!mCanStackItem) return null; + public ItemStack decrStackSize(int par1) { + if (!mCanStackItem) return null; return super.decrStackSize(par1); } - + @Override public boolean canTakeStack(EntityPlayer par1EntityPlayer) { return false; diff --git a/src/main/java/gregtech/api/gui/GT_Slot_Output.java b/src/main/java/gregtech/api/gui/GT_Slot_Output.java index 3c91380d..bf10769f 100644 --- a/src/main/java/gregtech/api/gui/GT_Slot_Output.java +++ b/src/main/java/gregtech/api/gui/GT_Slot_Output.java @@ -5,12 +5,12 @@ import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; public class GT_Slot_Output extends Slot { - public GT_Slot_Output(IInventory par1iInventory, int par2, int par3, int par4) { - super(par1iInventory, par2, par3, par4); - } - + public GT_Slot_Output(IInventory par1iInventory, int par2, int par3, int par4) { + super(par1iInventory, par2, par3, par4); + } + @Override - public boolean isItemValid(ItemStack par1ItemStack) { + public boolean isItemValid(ItemStack par1ItemStack) { return false; } } diff --git a/src/main/java/gregtech/api/gui/GT_Slot_Render.java b/src/main/java/gregtech/api/gui/GT_Slot_Render.java index 15f4c339..92927e28 100644 --- a/src/main/java/gregtech/api/gui/GT_Slot_Render.java +++ b/src/main/java/gregtech/api/gui/GT_Slot_Render.java @@ -5,18 +5,18 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; public class GT_Slot_Render extends GT_Slot_Holo { - public GT_Slot_Render(IInventory par1iInventory, int par2, int par3, int par4) { - super(par1iInventory, par2, par3, par4, false, false, 0); - } - - /** - * NEI has a nice and "useful" Delete-All Function, which would delete the Content of this Slot. This is here to prevent that. - */ + public GT_Slot_Render(IInventory par1iInventory, int par2, int par3, int par4) { + super(par1iInventory, par2, par3, par4, false, false, 0); + } + + /** + * NEI has a nice and "useful" Delete-All Function, which would delete the Content of this Slot. This is here to prevent that. + */ @Override - public void putStack(ItemStack aStack) { - if (inventory instanceof TileEntity && ((TileEntity)inventory).getWorldObj().isRemote) { + public void putStack(ItemStack aStack) { + if (inventory instanceof TileEntity && ((TileEntity) inventory).getWorldObj().isRemote) { inventory.setInventorySlotContents(getSlotIndex(), aStack); - } + } onSlotChanged(); } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/IColorModulationContainer.java b/src/main/java/gregtech/api/interfaces/IColorModulationContainer.java index b1151cf8..ad3aa3c9 100644 --- a/src/main/java/gregtech/api/interfaces/IColorModulationContainer.java +++ b/src/main/java/gregtech/api/interfaces/IColorModulationContainer.java @@ -1,5 +1,5 @@ package gregtech.api.interfaces; public interface IColorModulationContainer { - public short[] getRGBA(); + public short[] getRGBA(); } diff --git a/src/main/java/gregtech/api/interfaces/ICondition.java b/src/main/java/gregtech/api/interfaces/ICondition.java index 507315ee..9e31da73 100644 --- a/src/main/java/gregtech/api/interfaces/ICondition.java +++ b/src/main/java/gregtech/api/interfaces/ICondition.java @@ -1,104 +1,104 @@ package gregtech.api.interfaces; public interface ICondition { - public boolean isTrue(O aObject); - - // Utility Classes for adding relations between Conditions. - - public static class Not implements ICondition { - private final ICondition mCondition; - - public Not(ICondition aCondition) { - mCondition = aCondition; - } - - @Override - public boolean isTrue(O aObject) { - return !mCondition.isTrue(aObject); - } - } - - public static class Or implements ICondition { - private final ICondition[] mConditions; - - public Or(ICondition... aConditions) { - mConditions = aConditions; - } - - @Override - public boolean isTrue(O aObject) { - for (ICondition tCondition : mConditions) if (tCondition.isTrue(aObject)) return true; - return false; - } - } - - public static class Nor implements ICondition { - private final ICondition[] mConditions; - - public Nor(ICondition... aConditions) { - mConditions = aConditions; - } - - @Override - public boolean isTrue(O aObject) { - for (ICondition tCondition : mConditions) if (tCondition.isTrue(aObject)) return false; - return true; - } - } - - public static class And implements ICondition { - private final ICondition[] mConditions; - - public And(ICondition... aConditions) { - mConditions = aConditions; - } - - @Override - public boolean isTrue(O aObject) { - for (ICondition tCondition : mConditions) if (!tCondition.isTrue(aObject)) return false; - return true; - } - } - - public static class Nand implements ICondition { - private final ICondition[] mConditions; - - public Nand(ICondition... aConditions) { - mConditions = aConditions; - } - - @Override - public boolean isTrue(O aObject) { - for (ICondition tCondition : mConditions) if (!tCondition.isTrue(aObject)) return true; - return false; - } - } - - public static class Xor implements ICondition { - private final ICondition mCondition1, mCondition2; - - public Xor(ICondition aCondition1, ICondition aCondition2) { - mCondition1 = aCondition1; - mCondition2 = aCondition2; - } - - @Override - public boolean isTrue(O aObject) { - return mCondition1.isTrue(aObject) != mCondition2.isTrue(aObject); - } - } - - public static class Equal implements ICondition { - private final ICondition mCondition1, mCondition2; - - public Equal(ICondition aCondition1, ICondition aCondition2) { - mCondition1 = aCondition1; - mCondition2 = aCondition2; - } - - @Override - public boolean isTrue(O aObject) { - return mCondition1.isTrue(aObject) == mCondition2.isTrue(aObject); - } - } + public boolean isTrue(O aObject); + + // Utility Classes for adding relations between Conditions. + + public static class Not implements ICondition { + private final ICondition mCondition; + + public Not(ICondition aCondition) { + mCondition = aCondition; + } + + @Override + public boolean isTrue(O aObject) { + return !mCondition.isTrue(aObject); + } + } + + public static class Or implements ICondition { + private final ICondition[] mConditions; + + public Or(ICondition... aConditions) { + mConditions = aConditions; + } + + @Override + public boolean isTrue(O aObject) { + for (ICondition tCondition : mConditions) if (tCondition.isTrue(aObject)) return true; + return false; + } + } + + public static class Nor implements ICondition { + private final ICondition[] mConditions; + + public Nor(ICondition... aConditions) { + mConditions = aConditions; + } + + @Override + public boolean isTrue(O aObject) { + for (ICondition tCondition : mConditions) if (tCondition.isTrue(aObject)) return false; + return true; + } + } + + public static class And implements ICondition { + private final ICondition[] mConditions; + + public And(ICondition... aConditions) { + mConditions = aConditions; + } + + @Override + public boolean isTrue(O aObject) { + for (ICondition tCondition : mConditions) if (!tCondition.isTrue(aObject)) return false; + return true; + } + } + + public static class Nand implements ICondition { + private final ICondition[] mConditions; + + public Nand(ICondition... aConditions) { + mConditions = aConditions; + } + + @Override + public boolean isTrue(O aObject) { + for (ICondition tCondition : mConditions) if (!tCondition.isTrue(aObject)) return true; + return false; + } + } + + public static class Xor implements ICondition { + private final ICondition mCondition1, mCondition2; + + public Xor(ICondition aCondition1, ICondition aCondition2) { + mCondition1 = aCondition1; + mCondition2 = aCondition2; + } + + @Override + public boolean isTrue(O aObject) { + return mCondition1.isTrue(aObject) != mCondition2.isTrue(aObject); + } + } + + public static class Equal implements ICondition { + private final ICondition mCondition1, mCondition2; + + public Equal(ICondition aCondition1, ICondition aCondition2) { + mCondition1 = aCondition1; + mCondition2 = aCondition2; + } + + @Override + public boolean isTrue(O aObject) { + return mCondition1.isTrue(aObject) == mCondition2.isTrue(aObject); + } + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/IDamagableItem.java b/src/main/java/gregtech/api/interfaces/IDamagableItem.java index f47c65f5..b7ebd669 100644 --- a/src/main/java/gregtech/api/interfaces/IDamagableItem.java +++ b/src/main/java/gregtech/api/interfaces/IDamagableItem.java @@ -3,5 +3,5 @@ package gregtech.api.interfaces; import net.minecraft.item.ItemStack; public interface IDamagableItem { - public boolean doDamageToItem(ItemStack aStack, int aVanillaDamage); + public boolean doDamageToItem(ItemStack aStack, int aVanillaDamage); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/IDebugableBlock.java b/src/main/java/gregtech/api/interfaces/IDebugableBlock.java index ce959820..bdb550ff 100644 --- a/src/main/java/gregtech/api/interfaces/IDebugableBlock.java +++ b/src/main/java/gregtech/api/interfaces/IDebugableBlock.java @@ -1,26 +1,27 @@ package gregtech.api.interfaces; -import java.util.ArrayList; - import net.minecraft.entity.player.EntityPlayer; +import java.util.ArrayList; + /** * You are allowed to include this File in your Download, as i will not change it. */ public interface IDebugableBlock { - /** - * Returns a Debug Message, for a generic DebugItem - * Blocks have to implement this interface NOT TileEntities! - * @param aPlayer the Player, who rightclicked with his Debug Item - * @param aX Block-Coordinate - * @param aY Block-Coordinate - * @param aZ Block-Coordinate - * @param aLogLevel the Log Level of the Debug Item. - * 0 = Obvious - * 1 = Visible for the regular Scanner - * 2 = Only visible to more advanced Scanners - * 3 = Debug ONLY - * @return a String-Array containing the DebugInfo, every Index is a separate line (0 = first Line) - */ - public ArrayList getDebugInfo(EntityPlayer aPlayer, int aX, int aY, int aZ, int aLogLevel); + /** + * Returns a Debug Message, for a generic DebugItem + * Blocks have to implement this interface NOT TileEntities! + * + * @param aPlayer the Player, who rightclicked with his Debug Item + * @param aX Block-Coordinate + * @param aY Block-Coordinate + * @param aZ Block-Coordinate + * @param aLogLevel the Log Level of the Debug Item. + * 0 = Obvious + * 1 = Visible for the regular Scanner + * 2 = Only visible to more advanced Scanners + * 3 = Debug ONLY + * @return a String-Array containing the DebugInfo, every Index is a separate line (0 = first Line) + */ + public ArrayList getDebugInfo(EntityPlayer aPlayer, int aX, int aY, int aZ, int aLogLevel); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/IDescribable.java b/src/main/java/gregtech/api/interfaces/IDescribable.java index 7ccf1a66..d4bcf58d 100644 --- a/src/main/java/gregtech/api/interfaces/IDescribable.java +++ b/src/main/java/gregtech/api/interfaces/IDescribable.java @@ -4,8 +4,8 @@ package gregtech.api.interfaces; * To get simple things like a ToolTip Description */ public interface IDescribable { - /** - * The Tooltip Text - */ - public String[] getDescription(); + /** + * The Tooltip Text + */ + public String[] getDescription(); } diff --git a/src/main/java/gregtech/api/interfaces/IFoodStat.java b/src/main/java/gregtech/api/interfaces/IFoodStat.java index cb01e102..b6773e9d 100644 --- a/src/main/java/gregtech/api/interfaces/IFoodStat.java +++ b/src/main/java/gregtech/api/interfaces/IFoodStat.java @@ -6,16 +6,30 @@ import net.minecraft.item.EnumAction; import net.minecraft.item.ItemStack; public interface IFoodStat { - /** Warning the "aPlayer" Parameter may be null! */ - public int getFoodLevel(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer); - /** Warning the "aPlayer" Parameter may be null! */ - public float getSaturation(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer); - /** Warning the "aPlayer" Parameter may be null! */ - public boolean alwaysEdible(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer); - /** Warning the "aPlayer" Parameter may be null! */ - public boolean isRotten(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer); - /** Warning the "aPlayer" Parameter may be null! */ - public EnumAction getFoodAction(GT_MetaBase_Item aItem, ItemStack aStack); - - public void onEaten(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer); + /** + * Warning the "aPlayer" Parameter may be null! + */ + public int getFoodLevel(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer); + + /** + * Warning the "aPlayer" Parameter may be null! + */ + public float getSaturation(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer); + + /** + * Warning the "aPlayer" Parameter may be null! + */ + public boolean alwaysEdible(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer); + + /** + * Warning the "aPlayer" Parameter may be null! + */ + public boolean isRotten(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer); + + /** + * Warning the "aPlayer" Parameter may be null! + */ + public EnumAction getFoodAction(GT_MetaBase_Item aItem, ItemStack aStack); + + public void onEaten(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/IIconContainer.java b/src/main/java/gregtech/api/interfaces/IIconContainer.java index dc9a845f..c8b995e9 100644 --- a/src/main/java/gregtech/api/interfaces/IIconContainer.java +++ b/src/main/java/gregtech/api/interfaces/IIconContainer.java @@ -4,18 +4,18 @@ import net.minecraft.util.IIcon; import net.minecraft.util.ResourceLocation; public interface IIconContainer { - /** - * @return A regular Icon. - */ - public IIcon getIcon(); - - /** - * @return Icon of the Overlay (or null if there is no Icon) - */ - public IIcon getOverlayIcon(); - - /** - * @return the Default Texture File for this Icon. - */ - public ResourceLocation getTextureFile(); + /** + * @return A regular Icon. + */ + public IIcon getIcon(); + + /** + * @return Icon of the Overlay (or null if there is no Icon) + */ + public IIcon getOverlayIcon(); + + /** + * @return the Default Texture File for this Icon. + */ + public ResourceLocation getTextureFile(); } diff --git a/src/main/java/gregtech/api/interfaces/IItemBehaviour.java b/src/main/java/gregtech/api/interfaces/IItemBehaviour.java index 1f28b6a6..1d75f41e 100644 --- a/src/main/java/gregtech/api/interfaces/IItemBehaviour.java +++ b/src/main/java/gregtech/api/interfaces/IItemBehaviour.java @@ -2,9 +2,6 @@ package gregtech.api.interfaces; import gregtech.api.enums.SubTag; import gregtech.api.items.GT_MetaBase_Item; - -import java.util.List; - import net.minecraft.dispenser.IBlockSource; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -14,17 +11,30 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import java.util.List; + public interface IItemBehaviour { - public boolean onLeftClickEntity(E aItem, ItemStack aStack, EntityPlayer aPlayer, Entity aEntity); - public boolean onItemUse(E aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ); - public boolean onItemUseFirst(E aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ); + public boolean onLeftClickEntity(E aItem, ItemStack aStack, EntityPlayer aPlayer, Entity aEntity); + + public boolean onItemUse(E aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ); + + public boolean onItemUseFirst(E aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ); + public ItemStack onItemRightClick(E aItem, ItemStack aStack, World aWorld, EntityPlayer aPlayer); + public List getAdditionalToolTips(E aItem, List aList, ItemStack aStack); + public void onUpdate(E aItem, ItemStack aStack, World aWorld, Entity aPlayer, int aTimer, boolean aIsInHand); - public boolean isItemStackUsable(E aItem, ItemStack aStack); - public boolean canDispense(E aItem, IBlockSource aSource, ItemStack aStack); - public ItemStack onDispense(E aItem, IBlockSource aSource, ItemStack aStack); - public boolean hasProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack); - public EntityArrow getProjectile(E aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, double aX, double aY, double aZ); - public EntityArrow getProjectile(E aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, EntityLivingBase aEntity, float aSpeed); + + public boolean isItemStackUsable(E aItem, ItemStack aStack); + + public boolean canDispense(E aItem, IBlockSource aSource, ItemStack aStack); + + public ItemStack onDispense(E aItem, IBlockSource aSource, ItemStack aStack); + + public boolean hasProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack); + + public EntityArrow getProjectile(E aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, double aX, double aY, double aZ); + + public EntityArrow getProjectile(E aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, EntityLivingBase aEntity, float aSpeed); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/IItemContainer.java b/src/main/java/gregtech/api/interfaces/IItemContainer.java index e61553ce..3c1bd875 100644 --- a/src/main/java/gregtech/api/interfaces/IItemContainer.java +++ b/src/main/java/gregtech/api/interfaces/IItemContainer.java @@ -5,20 +5,35 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public interface IItemContainer { - public Item getItem(); - public Block getBlock(); - public boolean isStackEqual(Object aStack); - public boolean isStackEqual(Object aStack, boolean aWildcard, boolean aIgnoreNBT); - public ItemStack get(long aAmount, Object... aReplacements); - public ItemStack getWildcard(long aAmount, Object... aReplacements); - public ItemStack getUndamaged(long aAmount, Object... aReplacements); - public ItemStack getAlmostBroken(long aAmount, Object... aReplacements); - public ItemStack getWithDamage(long aAmount, long aMetaValue, Object... aReplacements); - public IItemContainer set(Item aItem); - public IItemContainer set(ItemStack aStack); - public IItemContainer registerOre(Object... aOreNames); - public IItemContainer registerWildcardAsOre(Object... aOreNames); - public ItemStack getWithCharge(long aAmount, int aEnergy, Object... aReplacements); - public ItemStack getWithName(long aAmount, String aDisplayName, Object... aReplacements); - public boolean hasBeenSet(); + public Item getItem(); + + public Block getBlock(); + + public boolean isStackEqual(Object aStack); + + public boolean isStackEqual(Object aStack, boolean aWildcard, boolean aIgnoreNBT); + + public ItemStack get(long aAmount, Object... aReplacements); + + public ItemStack getWildcard(long aAmount, Object... aReplacements); + + public ItemStack getUndamaged(long aAmount, Object... aReplacements); + + public ItemStack getAlmostBroken(long aAmount, Object... aReplacements); + + public ItemStack getWithDamage(long aAmount, long aMetaValue, Object... aReplacements); + + public IItemContainer set(Item aItem); + + public IItemContainer set(ItemStack aStack); + + public IItemContainer registerOre(Object... aOreNames); + + public IItemContainer registerWildcardAsOre(Object... aOreNames); + + public ItemStack getWithCharge(long aAmount, int aEnergy, Object... aReplacements); + + public ItemStack getWithName(long aAmount, String aDisplayName, Object... aReplacements); + + public boolean hasBeenSet(); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/IOreRecipeRegistrator.java b/src/main/java/gregtech/api/interfaces/IOreRecipeRegistrator.java index 4535c4d6..1f0ec91b 100644 --- a/src/main/java/gregtech/api/interfaces/IOreRecipeRegistrator.java +++ b/src/main/java/gregtech/api/interfaces/IOreRecipeRegistrator.java @@ -5,11 +5,12 @@ import gregtech.api.enums.OrePrefixes; import net.minecraft.item.ItemStack; public interface IOreRecipeRegistrator { - /** - * Contains a Code Fragment, used in the OrePrefix to register Recipes. Better than using a switch/case, like I did before. - * @param aPrefix always != null - * @param aMaterial always != null, and can be == _NULL if the Prefix is Self Referencing or not Material based! - * @param aStack always != null - */ - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack); + /** + * Contains a Code Fragment, used in the OrePrefix to register Recipes. Better than using a switch/case, like I did before. + * + * @param aPrefix always != null + * @param aMaterial always != null, and can be == _NULL if the Prefix is Self Referencing or not Material based! + * @param aStack always != null + */ + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/IProjectileItem.java b/src/main/java/gregtech/api/interfaces/IProjectileItem.java index 0b06a653..22211a6f 100644 --- a/src/main/java/gregtech/api/interfaces/IProjectileItem.java +++ b/src/main/java/gregtech/api/interfaces/IProjectileItem.java @@ -7,10 +7,18 @@ import net.minecraft.item.ItemStack; import net.minecraft.world.World; public interface IProjectileItem { - /** @return if this Item has an Arrow Entity */ - public boolean hasProjectile(SubTag aProjectileType, ItemStack aStack); - /** @return an Arrow Entity to be spawned. If null then this is not an Arrow. Note: Other Projectiles still extend EntityArrow */ - public EntityArrow getProjectile(SubTag aProjectileType, ItemStack aStack, World aWorld, double aX, double aY, double aZ); - /** @return an Arrow Entity to be spawned. If null then this is not an Arrow. Note: Other Projectiles still extend EntityArrow */ - public EntityArrow getProjectile(SubTag aProjectileType, ItemStack aStack, World aWorld, EntityLivingBase aEntity, float aSpeed); + /** + * @return if this Item has an Arrow Entity + */ + public boolean hasProjectile(SubTag aProjectileType, ItemStack aStack); + + /** + * @return an Arrow Entity to be spawned. If null then this is not an Arrow. Note: Other Projectiles still extend EntityArrow + */ + public EntityArrow getProjectile(SubTag aProjectileType, ItemStack aStack, World aWorld, double aX, double aY, double aZ); + + /** + * @return an Arrow Entity to be spawned. If null then this is not an Arrow. Note: Other Projectiles still extend EntityArrow + */ + public EntityArrow getProjectile(SubTag aProjectileType, ItemStack aStack, World aWorld, EntityLivingBase aEntity, float aSpeed); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/IRedstoneCircuitBlock.java b/src/main/java/gregtech/api/interfaces/IRedstoneCircuitBlock.java index 13c63b75..8838992c 100644 --- a/src/main/java/gregtech/api/interfaces/IRedstoneCircuitBlock.java +++ b/src/main/java/gregtech/api/interfaces/IRedstoneCircuitBlock.java @@ -9,58 +9,58 @@ import net.minecraft.tileentity.TileEntity; * Implemented by the MetaTileEntity of the Redstone Circuit Block */ public interface IRedstoneCircuitBlock { - /** - * The Output Direction the Circuit Block is Facing - */ + /** + * The Output Direction the Circuit Block is Facing + */ public byte getOutputFacing(); - + /** * sets Output Redstone State at Side */ - public boolean setRedstone(byte aStrength, byte aSide); - - /** - * returns Output Redstone State at Side - * Note that setRedstone checks if there is a Difference between the old and the new Setting before consuming any Energy - */ - public byte getOutputRedstone(byte aSide); - - /** - * returns Input Redstone Signal at Side - */ - public byte getInputRedstone(byte aSide); - - /** - * If this Side is Covered up and therefor not doing any Redstone - */ - public GT_CoverBehavior getCover(byte aSide); - - public int getCoverID(byte aSide); - - public int getCoverVariable(byte aSide); - - /** - * returns whatever Block-ID is adjacent to the Redstone Circuit Block - */ - public Block getBlockAtSide(byte aSide); - - /** - * returns whatever Meta-Value is adjacent to the Redstone Circuit Block - */ - public byte getMetaIDAtSide(byte aSide); - - /** - * returns whatever TileEntity is adjacent to the Redstone Circuit Block - */ - public TileEntity getTileEntityAtSide(byte aSide); - - /** - * returns whatever TileEntity is used by the Redstone Circuit Block - */ - public ICoverable getOwnTileEntity(); - - /** - * returns worldObj.rand.nextInt(aRange) - */ - public int getRandom(int aRange); + public boolean setRedstone(byte aStrength, byte aSide); + + /** + * returns Output Redstone State at Side + * Note that setRedstone checks if there is a Difference between the old and the new Setting before consuming any Energy + */ + public byte getOutputRedstone(byte aSide); + + /** + * returns Input Redstone Signal at Side + */ + public byte getInputRedstone(byte aSide); + + /** + * If this Side is Covered up and therefor not doing any Redstone + */ + public GT_CoverBehavior getCover(byte aSide); + + public int getCoverID(byte aSide); + + public int getCoverVariable(byte aSide); + + /** + * returns whatever Block-ID is adjacent to the Redstone Circuit Block + */ + public Block getBlockAtSide(byte aSide); + + /** + * returns whatever Meta-Value is adjacent to the Redstone Circuit Block + */ + public byte getMetaIDAtSide(byte aSide); + + /** + * returns whatever TileEntity is adjacent to the Redstone Circuit Block + */ + public TileEntity getTileEntityAtSide(byte aSide); + + /** + * returns whatever TileEntity is used by the Redstone Circuit Block + */ + public ICoverable getOwnTileEntity(); + + /** + * returns worldObj.rand.nextInt(aRange) + */ + public int getRandom(int aRange); } diff --git a/src/main/java/gregtech/api/interfaces/ISubTagContainer.java b/src/main/java/gregtech/api/interfaces/ISubTagContainer.java index ae7d59ec..c7ccc45e 100644 --- a/src/main/java/gregtech/api/interfaces/ISubTagContainer.java +++ b/src/main/java/gregtech/api/interfaces/ISubTagContainer.java @@ -3,18 +3,18 @@ package gregtech.api.interfaces; import gregtech.api.enums.SubTag; public interface ISubTagContainer { - /** - * @return if the Tag is inside the List. - */ - public boolean contains(SubTag aTag); - - /** - * @return The ISubTagContainer you called this Function on, for convenience. - */ - public ISubTagContainer add(SubTag... aTags); - - /** - * @return if the Tag was there before it has been removed. - */ - public boolean remove(SubTag aTag); + /** + * @return if the Tag is inside the List. + */ + public boolean contains(SubTag aTag); + + /** + * @return The ISubTagContainer you called this Function on, for convenience. + */ + public ISubTagContainer add(SubTag... aTags); + + /** + * @return if the Tag was there before it has been removed. + */ + public boolean remove(SubTag aTag); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/ITexture.java b/src/main/java/gregtech/api/interfaces/ITexture.java index 534a738c..43efeac7 100644 --- a/src/main/java/gregtech/api/interfaces/ITexture.java +++ b/src/main/java/gregtech/api/interfaces/ITexture.java @@ -4,12 +4,17 @@ import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; public interface ITexture { - public void renderXPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ); - public void renderXNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ); - public void renderYPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ); - public void renderYNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ); - public void renderZPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ); - public void renderZNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ); - - public boolean isValidTexture(); + public void renderXPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ); + + public void renderXNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ); + + public void renderYPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ); + + public void renderYNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ); + + public void renderZPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ); + + public void renderZNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ); + + public boolean isValidTexture(); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/IToolStats.java b/src/main/java/gregtech/api/interfaces/IToolStats.java index 9f894bfa..d6819ec1 100644 --- a/src/main/java/gregtech/api/interfaces/IToolStats.java +++ b/src/main/java/gregtech/api/interfaces/IToolStats.java @@ -1,9 +1,6 @@ package gregtech.api.interfaces; import gregtech.api.items.GT_MetaGenerated_Tool; - -import java.util.List; - import net.minecraft.block.Block; import net.minecraft.enchantment.Enchantment; import net.minecraft.entity.Entity; @@ -13,135 +10,144 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; import net.minecraftforge.event.world.BlockEvent; +import java.util.List; + /** * The Stats for GT Tools. Not including any Material Modifiers. - * + *

* And this is supposed to not have any ItemStack Parameters as these are generic Stats. */ public interface IToolStats { - /** - * Called when aPlayer crafts this Tool - */ - public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer); - - /** - * Called when this gets added to a Tool Item - */ - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID); - - /** - * @return Damage the Tool receives when breaking a Block. 100 is one Damage Point (or 100 EU). - */ - public int getToolDamagePerBlockBreak(); - - /** - * @return Damage the Tool receives when converting the drops of a Block. 100 is one Damage Point (or 100 EU). - */ - public int getToolDamagePerDropConversion(); - - /** - * @return Damage the Tool receives when being used as Container Item. 100 is one use, however it is usually 8 times more than normal. - */ - public int getToolDamagePerContainerCraft(); - - /** - * @return Damage the Tool receives when being used as Weapon, 200 is the normal Value, 100 for actual Weapons. - */ - public int getToolDamagePerEntityAttack(); - - /** - * @return Basic Quality of the Tool, 0 is normal. If increased, it will increase the general quality of all Tools of this Type. Decreasing is also possible. - */ - public int getBaseQuality(); - - /** - * @return The Damage Bonus for this Type of Tool against Mobs. 1.0F is normal punch. - */ - public float getBaseDamage(); - - /** - * @return This gets the Hurt Resistance time for Entities getting hit. (always does 1 as minimum) - */ - public int getHurtResistanceTime(int aOriginalHurtResistance, Entity aEntity); - - /** - * @return This is a multiplier for the Tool Speed. 1.0F = no special Speed. - */ - public float getSpeedMultiplier(); - - /** - * @return This is a multiplier for the Tool Speed. 1.0F = no special Durability. - */ - public float getMaxDurabilityMultiplier(); - - public DamageSource getDamageSource(EntityLivingBase aPlayer, Entity aEntity); - - public String getMiningSound(); - public String getCraftingSound(); - public String getEntityHitSound(); - public String getBreakingSound(); - - public Enchantment[] getEnchantments(ItemStack aStack); - public int[] getEnchantmentLevels(ItemStack aStack); - - /** - * @return If this Tool can be used for blocking Damage like a Sword. - */ - public boolean canBlock(); - - /** - * @return If this Tool can be used as an RC Crowbar. - */ - public boolean isCrowbar(); - - /** - * @return If this Tool can be used as an RC Crowbar. - */ - public boolean isGrafter(); - - /** - * @return If this Tool can be used as Weapon i.e. if that is the main purpose. - */ - public boolean isWeapon(); - - /** - * @return If this Tool is a Ranged Weapon. Return false at isWeapon unless you have a Blade attached to your Bow/Gun or something - */ - public boolean isRangedWeapon(); - - /** - * @return If this Tool can be used as Weapon i.e. if that is the main purpose. - */ - public boolean isMiningTool(); - - /** - * aBlock.getHarvestTool(aMetaData) can return the following Values for example. - * "axe", "pickaxe", "sword", "shovel", "hoe", "grafter", "saw", "wrench", "crowbar", "file", "hammer", "plow", "plunger", "scoop", "screwdriver", "sense", "scythe", "softhammer", "cutter", "plasmatorch" - * @return If this is a minable Block. Tool Quality checks (like Diamond Tier or something) are separate from this check. - */ - public boolean isMinableBlock(Block aBlock, byte aMetaData); - - /** - * This lets you modify the Drop List, when this type of Tool has been used. - * @return the Amount of modified Items. - */ - public int convertBlockDrops(List aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent); - - /** - * @return Returns a broken Version of the Item. - */ - public ItemStack getBrokenItem(ItemStack aStack); + /** + * Called when aPlayer crafts this Tool + */ + public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer); - /** - * @return the Damage actually done to the Mob. - */ - public float getNormalDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer); - - /** - * @return the Damage actually done to the Mob. - */ - public float getMagicDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer); - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack); - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack); + /** + * Called when this gets added to a Tool Item + */ + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID); + + /** + * @return Damage the Tool receives when breaking a Block. 100 is one Damage Point (or 100 EU). + */ + public int getToolDamagePerBlockBreak(); + + /** + * @return Damage the Tool receives when converting the drops of a Block. 100 is one Damage Point (or 100 EU). + */ + public int getToolDamagePerDropConversion(); + + /** + * @return Damage the Tool receives when being used as Container Item. 100 is one use, however it is usually 8 times more than normal. + */ + public int getToolDamagePerContainerCraft(); + + /** + * @return Damage the Tool receives when being used as Weapon, 200 is the normal Value, 100 for actual Weapons. + */ + public int getToolDamagePerEntityAttack(); + + /** + * @return Basic Quality of the Tool, 0 is normal. If increased, it will increase the general quality of all Tools of this Type. Decreasing is also possible. + */ + public int getBaseQuality(); + + /** + * @return The Damage Bonus for this Type of Tool against Mobs. 1.0F is normal punch. + */ + public float getBaseDamage(); + + /** + * @return This gets the Hurt Resistance time for Entities getting hit. (always does 1 as minimum) + */ + public int getHurtResistanceTime(int aOriginalHurtResistance, Entity aEntity); + + /** + * @return This is a multiplier for the Tool Speed. 1.0F = no special Speed. + */ + public float getSpeedMultiplier(); + + /** + * @return This is a multiplier for the Tool Speed. 1.0F = no special Durability. + */ + public float getMaxDurabilityMultiplier(); + + public DamageSource getDamageSource(EntityLivingBase aPlayer, Entity aEntity); + + public String getMiningSound(); + + public String getCraftingSound(); + + public String getEntityHitSound(); + + public String getBreakingSound(); + + public Enchantment[] getEnchantments(ItemStack aStack); + + public int[] getEnchantmentLevels(ItemStack aStack); + + /** + * @return If this Tool can be used for blocking Damage like a Sword. + */ + public boolean canBlock(); + + /** + * @return If this Tool can be used as an RC Crowbar. + */ + public boolean isCrowbar(); + + /** + * @return If this Tool can be used as an RC Crowbar. + */ + public boolean isGrafter(); + + /** + * @return If this Tool can be used as Weapon i.e. if that is the main purpose. + */ + public boolean isWeapon(); + + /** + * @return If this Tool is a Ranged Weapon. Return false at isWeapon unless you have a Blade attached to your Bow/Gun or something + */ + public boolean isRangedWeapon(); + + /** + * @return If this Tool can be used as Weapon i.e. if that is the main purpose. + */ + public boolean isMiningTool(); + + /** + * aBlock.getHarvestTool(aMetaData) can return the following Values for example. + * "axe", "pickaxe", "sword", "shovel", "hoe", "grafter", "saw", "wrench", "crowbar", "file", "hammer", "plow", "plunger", "scoop", "screwdriver", "sense", "scythe", "softhammer", "cutter", "plasmatorch" + * + * @return If this is a minable Block. Tool Quality checks (like Diamond Tier or something) are separate from this check. + */ + public boolean isMinableBlock(Block aBlock, byte aMetaData); + + /** + * This lets you modify the Drop List, when this type of Tool has been used. + * + * @return the Amount of modified Items. + */ + public int convertBlockDrops(List aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent); + + /** + * @return Returns a broken Version of the Item. + */ + public ItemStack getBrokenItem(ItemStack aStack); + + /** + * @return the Damage actually done to the Mob. + */ + public float getNormalDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer); + + /** + * @return the Damage actually done to the Mob. + */ + public float getMagicDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer); + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack); + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/internal/IBCTileEntity.java b/src/main/java/gregtech/api/interfaces/internal/IBCTileEntity.java index 3d471731..7eee5ce9 100644 --- a/src/main/java/gregtech/api/interfaces/internal/IBCTileEntity.java +++ b/src/main/java/gregtech/api/interfaces/internal/IBCTileEntity.java @@ -4,5 +4,5 @@ package gregtech.api.interfaces.internal; * A simple compound Interface for generic BuildCraft Code. */ public interface IBCTileEntity /*extends IPowerReceptor*/ { - // + // } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/internal/IGT_CraftingRecipe.java b/src/main/java/gregtech/api/interfaces/internal/IGT_CraftingRecipe.java index a886cf67..4c1aa49c 100644 --- a/src/main/java/gregtech/api/interfaces/internal/IGT_CraftingRecipe.java +++ b/src/main/java/gregtech/api/interfaces/internal/IGT_CraftingRecipe.java @@ -3,5 +3,5 @@ package gregtech.api.interfaces.internal; import net.minecraft.item.crafting.IRecipe; public interface IGT_CraftingRecipe extends IRecipe { - public boolean isRemovable(); + public boolean isRemovable(); } diff --git a/src/main/java/gregtech/api/interfaces/internal/IGT_Mod.java b/src/main/java/gregtech/api/interfaces/internal/IGT_Mod.java index f64d120e..945c9884 100644 --- a/src/main/java/gregtech/api/interfaces/internal/IGT_Mod.java +++ b/src/main/java/gregtech/api/interfaces/internal/IGT_Mod.java @@ -6,29 +6,41 @@ import net.minecraft.world.World; /** * Interface used by the Mods Main Class to reference to internals. - * + *

* Don't even think about including this File in your Mod. */ public interface IGT_Mod { - /** This means that Server specific Basefiles are definitely existing! Not if the World is actually server side or not! */ - public boolean isServerSide(); - /** This means that Client specific Basefiles are definitely existing! Not if the World is actually client side or not! */ - public boolean isClientSide(); - /** This means that Bukkit specific Basefiles are definitely existing! Not if the World is actually bukkit server or not! */ - public boolean isBukkitSide(); - /** works only ClientSide otherwise returns null */ - public EntityPlayer getThePlayer(); - - //---------- Internal Usage Only ---------- - - /** - * works only ClientSide otherwise returns 0 - * @return the Index of the added Armor - */ - public int addArmor(String aArmorPrefix); - - /** - * Plays the Sonictron Sound for the ItemStack on the Client Side - */ - public void doSonictronSound(ItemStack aStack, World aWorld, double aX, double aY, double aZ); + /** + * This means that Server specific Basefiles are definitely existing! Not if the World is actually server side or not! + */ + public boolean isServerSide(); + + /** + * This means that Client specific Basefiles are definitely existing! Not if the World is actually client side or not! + */ + public boolean isClientSide(); + + /** + * This means that Bukkit specific Basefiles are definitely existing! Not if the World is actually bukkit server or not! + */ + public boolean isBukkitSide(); + + /** + * works only ClientSide otherwise returns null + */ + public EntityPlayer getThePlayer(); + + //---------- Internal Usage Only ---------- + + /** + * works only ClientSide otherwise returns 0 + * + * @return the Index of the added Armor + */ + public int addArmor(String aArmorPrefix); + + /** + * Plays the Sonictron Sound for the ItemStack on the Client Side + */ + public void doSonictronSound(ItemStack aStack, World aWorld, double aX, double aY, double aZ); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java b/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java index ce72d933..23769af1 100644 --- a/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java +++ b/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java @@ -5,408 +5,430 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; public interface IGT_RecipeAdder { - /** - * Adds a FusionreactorRecipe - * Does not work anymore! - */ - @Deprecated - public boolean addFusionReactorRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aFusionDurationInTicks, int aFusionEnergyPerTick, int aEnergyNeededForStartingFusion); - - /** - * Adds a FusionreactorRecipe - * @param aInput1 = first Input (not null, and respects StackSize) - * @param aInput2 = second Input (not null, and respects StackSize) - * @param aOutput = Output of the Fusion (can be null, and respects StackSize) - * @param aFusionDurationInTicks = How many ticks the Fusion lasts (must be > 0) - * @param aFusionEnergyPerTick = The EU generated per Tick (can even be negative!) - * @param aEnergyNeededForStartingFusion = EU needed for heating the Reactor up (must be >= 0) - * @return true if the Recipe got added, otherwise false. - */ - public boolean addFusionReactorRecipe(FluidStack aInput1, FluidStack aInput2, FluidStack aOutput1, int aFusionDurationInTicks, int aFusionEnergyPerTick, int aEnergyNeededForStartingFusion); - - /** - * Adds a Centrifuge Recipe - * @param aInput1 must be != null - * @param aCellInput this is for the needed Cells, > 0 for Tincellcount, < 0 for negative Fuelcancount, == 0 for nothing - * @param aOutput1 must be != null - * @param aOutput2 can be null - * @param aOutput3 can be null - * @param aOutput4 can be null - * @param aDuration must be > 0 - */ - public boolean addCentrifugeRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int aDuration); - - /** - * Adds a Centrifuge Recipe - * @param aInput1 must be != null - * @param aOutput1 must be != null - * @param aOutput2 can be null - * @param aOutput3 can be null - * @param aOutput4 can be null - * @param aDuration must be > 0 - */ - public boolean addCentrifugeRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int[] aChances, int aDuration, int aEUt); - - /** - * Adds a Electrolyzer Recipe - * @param aInput1 must be != null - * @param aCellInput this is for the needed Cells, > 0 for Tincellcount, < 0 for negative Fuelcancount, == 0 for nothing - * @param aOutput1 must be != null - * @param aOutput2 can be null - * @param aOutput3 can be null - * @param aOutput4 can be null - * @param aDuration must be > 0 - * @param aEUt should be > 0 - */ - public boolean addElectrolyzerRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int aDuration, int aEUt); - - /** - * Adds a Electrolyzer Recipe - * @param aInput1 must be != null - * @param aCellInput this is for the needed Cells, > 0 for Tincellcount, < 0 for negative Fuelcancount, == 0 for nothing - * @param aOutput1 must be != null - * @param aOutput2 can be null - * @param aOutput3 can be null - * @param aOutput4 can be null - * @param aDuration must be > 0 - * @param aEUt should be > 0 - */ - public boolean addElectrolyzerRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int[] aChances, int aDuration, int aEUt); - - /** - * Adds a Chemical Recipe - * @param aInput1 must be != null - * @param aInput2 must be != null - * @param aOutput1 must be != null - * @param aDuration must be > 0 - */ - public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput, int aDuration); - - /** - * Adds a Chemical Recipe - * @param aInput1 must be != null - * @param aInput2 must be != null - * @param aOutput1 must be != null - * @param aDuration must be > 0 - */ - public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration); - - /** - * Adds a Blast Furnace Recipe - * @param aInput1 must be != null - * @param aInput2 can be null - * @param aOutput1 must be != null - * @param aOutput2 can be null - * @param aDuration must be > 0 - * @param aEUt should be > 0 - * @param aLevel should be > 0 is the minimum Heat Level needed for this Recipe - */ - @Deprecated - public boolean addBlastRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt, int aLevel); - - /** - * Adds a Blast Furnace Recipe - * @param aInput1 must be != null - * @param aInput2 can be null - * @param aOutput1 must be != null - * @param aOutput2 can be null - * @param aDuration must be > 0 - * @param aEUt should be > 0 - * @param aLevel should be > 0 is the minimum Heat Level needed for this Recipe - */ - public boolean addBlastRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt, int aLevel); - - /** - * Adds a Canning Machine Recipe - * @param aInput1 must be != null - * @param aOutput1 must be != null - * @param aDuration must be > 0, 100 ticks is standard. - * @param aEUt should be > 0, 1 EU/t is standard. - */ - public boolean addCannerRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt); - - /** - * Adds an Alloy Smelter Recipe - * @param aInput1 must be != null - * @param aInput2 can be null - * @param aOutput1 must be != null - * @param aOutput2 can be null - * @param aDuration must be > 0 - * @param aEUt should be > 0 - */ - public boolean addAlloySmelterRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt); - - /** - * Adds a CNC-Machine Recipe - * @param aInput1 must be != null - * @param aOutput1 must be != null - * @param aDuration must be > 0 - * @param aEUt should be > 0 - */ - public boolean addCNCRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt); - - /** - * Adds a Circuit Assembler Recipe - * @param aInput1 must be != null - * @param aOutput1 must be != null - * @param aDuration must be > 0 - * @param aEUt should be > 0 - */ - public boolean addAssemblerRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt); - - /** - * Adds a Circuit Assembler Recipe - * @param aInput1 must be != null - * @param aOutput1 must be != null - * @param aDuration must be > 0 - * @param aEUt should be > 0 - */ - public boolean addAssemblerRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, ItemStack aOutput1, int aDuration, int aEUt); - - /** - * Adds a Forge Hammer Recipe - * @param aInput1 must be != null - * @param aOutput1 must be != null - * @param aDuration must be > 0 - * @param aEUt should be > 0 - */ - public boolean addForgeHammerRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt); + /** + * Adds a FusionreactorRecipe + * Does not work anymore! + */ + @Deprecated + public boolean addFusionReactorRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aFusionDurationInTicks, int aFusionEnergyPerTick, int aEnergyNeededForStartingFusion); - /** - * Adds a Wiremill Recipe - * @param aInput1 must be != null - * @param aOutput1 must be != null - * @param aDuration must be > 0 - * @param aEUt should be > 0 - */ - public boolean addWiremillRecipe(ItemStack aInput, ItemStack aOutput, int aDuration, int aEUt); - - /** - * Adds a Polariser Recipe - * @param aInput1 must be != null - * @param aOutput1 must be != null - * @param aDuration must be > 0 - * @param aEUt should be > 0 - */ - public boolean addPolarizerRecipe(ItemStack aInput, ItemStack aOutput, int aDuration, int aEUt); - - /** - * Adds a Plate Bending Machine Recipe - * @param aInput1 must be != null - * @param aOutput1 must be != null - * @param aDuration must be > 0 - * @param aEUt should be > 0 - */ - public boolean addBenderRecipe(ItemStack aInput, ItemStack aOutput, int aDuration, int aEUt); - - /** - * Adds a Extruder Machine Recipe - * @param aInput1 must be != null - * @param aShape must be != null, Set the stackSize to 0 if you don't want to let it consume this Item. - * @param aOutput1 must be != null - * @param aDuration must be > 0 - * @param aEUt should be > 0 - */ - public boolean addExtruderRecipe(ItemStack aInput, ItemStack aShape, ItemStack aOutput, int aDuration, int aEUt); - - /** - * Adds a Slicer Machine Recipe - * @param aInput1 must be != null - * @param aShape must be != null, Set the stackSize to 0 if you don't want to let it consume this Item. - * @param aOutput1 must be != null - * @param aDuration must be > 0 - * @param aEUt should be > 0 - */ - public boolean addSlicerRecipe(ItemStack aInput, ItemStack aShape, ItemStack aOutput, int aDuration, int aEUt); - - /** - * Adds an Implosion Compressor Recipe - * @param aInput1 must be != null - * @param aInput2 amount of ITNT, should be > 0 - * @param aOutput1 must be != null - * @param aOutput2 can be null - */ - public boolean addImplosionRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2); - - /** - * Adds a Grinder Recipe - * @param aInput1 must be != null - * @param aInput2 id for the Cell needed for this Recipe - * @param aOutput1 must be != null - * @param aOutput2 can be null - * @param aOutput3 can be null - * @param aOutput4 can be null - */ - public boolean addGrinderRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4); - - /** - * Adds a Distillation Tower Recipe - * @param aInput1 must be != null - * @param aOutputs must be != null 1-5 Fluids - * @param aOutput2 can be null - */ - public boolean addDistillationTowerRecipe(FluidStack aInput, FluidStack[] aOutputs, ItemStack aOutput2, int aDuration, int aEUt); - - - public boolean addSimpleArcFurnaceRecipe(ItemStack aInput, FluidStack aFluidInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt); - - public boolean addPlasmaArcFurnaceRecipe(ItemStack aInput, FluidStack aFluidInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt); - - public boolean addPlasmaArcFurnaceRecipe(ItemStack aInput, FluidStack aFluidInput, ItemStack[] aOutputs,FluidStack aFluidPutput, int[] aChances, int aDuration, int aEUt); - - - - - - - /** - * Adds a Distillation Tower Recipe - */ - public boolean addDistillationRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, int aDuration, int aEUt); - - /** - * Adds a Lathe Machine Recipe - */ - public boolean addLatheRecipe(ItemStack aInput1, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt); - - /** - * Adds a Cutter Recipe - */ - public boolean addCutterRecipe(ItemStack aInput, FluidStack aLubricant, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt); - - /** - * Adds Cutter Recipes with default Lubricants - */ - public boolean addCutterRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt); - - /** - * Adds a Boxing Recipe - */ - public boolean addBoxingRecipe(ItemStack aContainedItem, ItemStack aEmptyBox, ItemStack aFullBox, int aDuration, int aEUt); - - /** - * Adds an Unboxing Recipe - */ - public boolean addUnboxingRecipe(ItemStack aFullBox, ItemStack aContainedItem, ItemStack aEmptyBox, int aDuration, int aEUt); - - /** - * Adds a Vacuum Freezer Recipe - * @param aInput1 must be != null - * @param aOutput1 must be != null - * @param aDuration must be > 0 - */ - public boolean addVacuumFreezerRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration); - - /** - * Adds a Fuel for My Generators - * @param aInput1 must be != null - * @param aOutput1 can be null - * @param aEU EU per MilliBucket. If no Liquid Form of this Container is available, then it will give you EU*1000 per Item. - * @param aType 0 = Diesel; 1 = Gas Turbine; 2 = Thermal; 3 = Dense Fluid; 4 = Plasma; 5 = Magic; And if something is unclear or missing, then look at the GT_Recipe-Class - */ - public boolean addFuel(ItemStack aInput1, ItemStack aOutput1, int aEU, int aType); - - /** - * Adds an Amplifier Recipe for the Amplifabricator - */ - public boolean addAmplifier(ItemStack aAmplifierItem, int aDuration, int aAmplifierAmountOutputted); - - /** - * Adds a Recipe for the Brewing Machine (intentionally limited to Fluid IDs) - */ - public boolean addBrewingRecipe(ItemStack aIngredient, Fluid aInput, Fluid aOutput, boolean aHidden); - - /** - * Adds a Recipe for the Fermenter - */ - public boolean addFermentingRecipe(FluidStack aInput, FluidStack aOutput, int aDuration, boolean aHidden); - - /** - * Adds a Recipe for the Fluid Heater - */ - public boolean addFluidHeaterRecipe(ItemStack aCircuit, FluidStack aInput, FluidStack aOutput, int aDuration, int aEUt); - - /** - * Adds a Recipe for the Distillery - */ - public boolean addDistilleryRecipe(ItemStack aCircuit, FluidStack aInput, FluidStack aOutput, int aDuration, int aEUt, boolean aHidden); - - /** - * Adds a Recipe for the Fluid Solidifier - */ - public boolean addFluidSolidifierRecipe(ItemStack aMold, FluidStack aInput, ItemStack aOutput, int aDuration, int aEUt); - - /** - * Adds a Recipe for Fluid Smelting - */ - public boolean addFluidSmelterRecipe(ItemStack aInput, ItemStack aRemains, FluidStack aOutput, int aChance, int aDuration, int aEUt); - - /** - * Adds a Recipe for Fluid Extraction - */ - public boolean addFluidExtractionRecipe(ItemStack aInput, ItemStack aRemains, FluidStack aOutput, int aChance, int aDuration, int aEUt); - - /** - * Adds a Recipe for the Fluid Canner - */ - public boolean addFluidCannerRecipe(ItemStack aInput, ItemStack aOutput, FluidStack aFluidInput, FluidStack aFluidOutput); + /** + * Adds a FusionreactorRecipe + * + * @param aInput1 = first Input (not null, and respects StackSize) + * @param aInput2 = second Input (not null, and respects StackSize) + * @param aOutput = Output of the Fusion (can be null, and respects StackSize) + * @param aFusionDurationInTicks = How many ticks the Fusion lasts (must be > 0) + * @param aFusionEnergyPerTick = The EU generated per Tick (can even be negative!) + * @param aEnergyNeededForStartingFusion = EU needed for heating the Reactor up (must be >= 0) + * @return true if the Recipe got added, otherwise false. + */ + public boolean addFusionReactorRecipe(FluidStack aInput1, FluidStack aInput2, FluidStack aOutput1, int aFusionDurationInTicks, int aFusionEnergyPerTick, int aEnergyNeededForStartingFusion); - /** - * Adds a Recipe for the Chemical Bath - */ - public boolean addChemicalBathRecipe(ItemStack aInput, FluidStack aBathingFluid, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, int[] aChances, int aDuration, int aEUt); - - /** - * Adds a Recipe for the Electromagnetic Separator - */ - public boolean addElectromagneticSeparatorRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, int[] aChances, int aDuration, int aEUt); - - /** - * Adds a Recipe for the Printer - */ - public boolean addPrinterRecipe(ItemStack aInput, FluidStack aFluid, ItemStack aSpecialSlot, ItemStack aOutput, int aDuration, int aEUt); - - /** - * Adds a Recipe for the Autoclave - */ - public boolean addAutoclaveRecipe(ItemStack aInput, FluidStack aFluid, ItemStack aOutput, int aChance, int aDuration, int aEUt); - - /** - * Adds a Recipe for the Mixer - */ - public boolean addMixerRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aInput3, ItemStack aInput4, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration, int aEUt); - - /** - * Adds a Recipe for the Laser Engraver - */ - public boolean addLaserEngraverRecipe(ItemStack aItemToEngrave, ItemStack aLens, ItemStack aEngravedItem, int aDuration, int aEUt); - - /** - * Adds a Recipe for the Forming Press - */ - public boolean addFormingPressRecipe(ItemStack aItemToImprint, ItemStack aForm, ItemStack aImprintedItem, int aDuration, int aEUt); - - /** - * Adds a Recipe for the Sifter. (up to 9 Outputs) - */ - public boolean addSifterRecipe(ItemStack aItemToSift, ItemStack[] aSiftedItems, int[] aChances, int aDuration, int aEUt); - - /** - * Adds a Recipe for the Arc Furnace. (up to 4 Outputs) - */ - public boolean addArcFurnaceRecipe(ItemStack aInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt); - - /** - * Adds a Recipe for the GT Pulveriser. (up to 4 Outputs) - */ - public boolean addPulveriserRecipe(ItemStack aInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt); - - /** - * Adds a Sound to the Sonictron9001 - * you should NOT call this in the preInit-Phase! - * @param aItemStack = The Item you want to display for this Sound - * @param aSoundName = The Name of the Sound in the resources/newsound-folder like Vanillasounds - * @return true if the Sound got added, otherwise false. - */ - public boolean addSonictronSound(ItemStack aItemStack, String aSoundName); + /** + * Adds a Centrifuge Recipe + * + * @param aInput1 must be != null + * @param aCellInput this is for the needed Cells, > 0 for Tincellcount, < 0 for negative Fuelcancount, == 0 for nothing + * @param aOutput1 must be != null + * @param aOutput2 can be null + * @param aOutput3 can be null + * @param aOutput4 can be null + * @param aDuration must be > 0 + */ + public boolean addCentrifugeRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int aDuration); + + /** + * Adds a Centrifuge Recipe + * + * @param aInput1 must be != null + * @param aOutput1 must be != null + * @param aOutput2 can be null + * @param aOutput3 can be null + * @param aOutput4 can be null + * @param aDuration must be > 0 + */ + public boolean addCentrifugeRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int[] aChances, int aDuration, int aEUt); + + /** + * Adds a Electrolyzer Recipe + * + * @param aInput1 must be != null + * @param aCellInput this is for the needed Cells, > 0 for Tincellcount, < 0 for negative Fuelcancount, == 0 for nothing + * @param aOutput1 must be != null + * @param aOutput2 can be null + * @param aOutput3 can be null + * @param aOutput4 can be null + * @param aDuration must be > 0 + * @param aEUt should be > 0 + */ + public boolean addElectrolyzerRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int aDuration, int aEUt); + + /** + * Adds a Electrolyzer Recipe + * + * @param aInput1 must be != null + * @param aCellInput this is for the needed Cells, > 0 for Tincellcount, < 0 for negative Fuelcancount, == 0 for nothing + * @param aOutput1 must be != null + * @param aOutput2 can be null + * @param aOutput3 can be null + * @param aOutput4 can be null + * @param aDuration must be > 0 + * @param aEUt should be > 0 + */ + public boolean addElectrolyzerRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int[] aChances, int aDuration, int aEUt); + + /** + * Adds a Chemical Recipe + * + * @param aInput1 must be != null + * @param aInput2 must be != null + * @param aOutput1 must be != null + * @param aDuration must be > 0 + */ + public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput, int aDuration); + + /** + * Adds a Chemical Recipe + * + * @param aInput1 must be != null + * @param aInput2 must be != null + * @param aOutput1 must be != null + * @param aDuration must be > 0 + */ + public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration); + + /** + * Adds a Blast Furnace Recipe + * + * @param aInput1 must be != null + * @param aInput2 can be null + * @param aOutput1 must be != null + * @param aOutput2 can be null + * @param aDuration must be > 0 + * @param aEUt should be > 0 + * @param aLevel should be > 0 is the minimum Heat Level needed for this Recipe + */ + @Deprecated + public boolean addBlastRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt, int aLevel); + + /** + * Adds a Blast Furnace Recipe + * + * @param aInput1 must be != null + * @param aInput2 can be null + * @param aOutput1 must be != null + * @param aOutput2 can be null + * @param aDuration must be > 0 + * @param aEUt should be > 0 + * @param aLevel should be > 0 is the minimum Heat Level needed for this Recipe + */ + public boolean addBlastRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt, int aLevel); + + /** + * Adds a Canning Machine Recipe + * + * @param aInput1 must be != null + * @param aOutput1 must be != null + * @param aDuration must be > 0, 100 ticks is standard. + * @param aEUt should be > 0, 1 EU/t is standard. + */ + public boolean addCannerRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt); + + /** + * Adds an Alloy Smelter Recipe + * + * @param aInput1 must be != null + * @param aInput2 can be null + * @param aOutput1 must be != null + * @param aOutput2 can be null + * @param aDuration must be > 0 + * @param aEUt should be > 0 + */ + public boolean addAlloySmelterRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt); + + /** + * Adds a CNC-Machine Recipe + * + * @param aInput1 must be != null + * @param aOutput1 must be != null + * @param aDuration must be > 0 + * @param aEUt should be > 0 + */ + public boolean addCNCRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt); + + /** + * Adds a Circuit Assembler Recipe + * + * @param aInput1 must be != null + * @param aOutput1 must be != null + * @param aDuration must be > 0 + * @param aEUt should be > 0 + */ + public boolean addAssemblerRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt); + + /** + * Adds a Circuit Assembler Recipe + * + * @param aInput1 must be != null + * @param aOutput1 must be != null + * @param aDuration must be > 0 + * @param aEUt should be > 0 + */ + public boolean addAssemblerRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, ItemStack aOutput1, int aDuration, int aEUt); + + /** + * Adds a Forge Hammer Recipe + * + * @param aInput1 must be != null + * @param aOutput1 must be != null + * @param aDuration must be > 0 + * @param aEUt should be > 0 + */ + public boolean addForgeHammerRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt); + + /** + * Adds a Wiremill Recipe + * + * @param aInput1 must be != null + * @param aOutput1 must be != null + * @param aDuration must be > 0 + * @param aEUt should be > 0 + */ + public boolean addWiremillRecipe(ItemStack aInput, ItemStack aOutput, int aDuration, int aEUt); + + /** + * Adds a Polariser Recipe + * + * @param aInput1 must be != null + * @param aOutput1 must be != null + * @param aDuration must be > 0 + * @param aEUt should be > 0 + */ + public boolean addPolarizerRecipe(ItemStack aInput, ItemStack aOutput, int aDuration, int aEUt); + + /** + * Adds a Plate Bending Machine Recipe + * + * @param aInput1 must be != null + * @param aOutput1 must be != null + * @param aDuration must be > 0 + * @param aEUt should be > 0 + */ + public boolean addBenderRecipe(ItemStack aInput, ItemStack aOutput, int aDuration, int aEUt); + + /** + * Adds a Extruder Machine Recipe + * + * @param aInput1 must be != null + * @param aShape must be != null, Set the stackSize to 0 if you don't want to let it consume this Item. + * @param aOutput1 must be != null + * @param aDuration must be > 0 + * @param aEUt should be > 0 + */ + public boolean addExtruderRecipe(ItemStack aInput, ItemStack aShape, ItemStack aOutput, int aDuration, int aEUt); + + /** + * Adds a Slicer Machine Recipe + * + * @param aInput1 must be != null + * @param aShape must be != null, Set the stackSize to 0 if you don't want to let it consume this Item. + * @param aOutput1 must be != null + * @param aDuration must be > 0 + * @param aEUt should be > 0 + */ + public boolean addSlicerRecipe(ItemStack aInput, ItemStack aShape, ItemStack aOutput, int aDuration, int aEUt); + + /** + * Adds an Implosion Compressor Recipe + * + * @param aInput1 must be != null + * @param aInput2 amount of ITNT, should be > 0 + * @param aOutput1 must be != null + * @param aOutput2 can be null + */ + public boolean addImplosionRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2); + + /** + * Adds a Grinder Recipe + * + * @param aInput1 must be != null + * @param aInput2 id for the Cell needed for this Recipe + * @param aOutput1 must be != null + * @param aOutput2 can be null + * @param aOutput3 can be null + * @param aOutput4 can be null + */ + public boolean addGrinderRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4); + + /** + * Adds a Distillation Tower Recipe + * + * @param aInput1 must be != null + * @param aOutputs must be != null 1-5 Fluids + * @param aOutput2 can be null + */ + public boolean addDistillationTowerRecipe(FluidStack aInput, FluidStack[] aOutputs, ItemStack aOutput2, int aDuration, int aEUt); + + + public boolean addSimpleArcFurnaceRecipe(ItemStack aInput, FluidStack aFluidInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt); + + public boolean addPlasmaArcFurnaceRecipe(ItemStack aInput, FluidStack aFluidInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt); + + public boolean addPlasmaArcFurnaceRecipe(ItemStack aInput, FluidStack aFluidInput, ItemStack[] aOutputs, FluidStack aFluidPutput, int[] aChances, int aDuration, int aEUt); + + + /** + * Adds a Distillation Tower Recipe + */ + public boolean addDistillationRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, int aDuration, int aEUt); + + /** + * Adds a Lathe Machine Recipe + */ + public boolean addLatheRecipe(ItemStack aInput1, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt); + + /** + * Adds a Cutter Recipe + */ + public boolean addCutterRecipe(ItemStack aInput, FluidStack aLubricant, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt); + + /** + * Adds Cutter Recipes with default Lubricants + */ + public boolean addCutterRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt); + + /** + * Adds a Boxing Recipe + */ + public boolean addBoxingRecipe(ItemStack aContainedItem, ItemStack aEmptyBox, ItemStack aFullBox, int aDuration, int aEUt); + + /** + * Adds an Unboxing Recipe + */ + public boolean addUnboxingRecipe(ItemStack aFullBox, ItemStack aContainedItem, ItemStack aEmptyBox, int aDuration, int aEUt); + + /** + * Adds a Vacuum Freezer Recipe + * + * @param aInput1 must be != null + * @param aOutput1 must be != null + * @param aDuration must be > 0 + */ + public boolean addVacuumFreezerRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration); + + /** + * Adds a Fuel for My Generators + * + * @param aInput1 must be != null + * @param aOutput1 can be null + * @param aEU EU per MilliBucket. If no Liquid Form of this Container is available, then it will give you EU*1000 per Item. + * @param aType 0 = Diesel; 1 = Gas Turbine; 2 = Thermal; 3 = Dense Fluid; 4 = Plasma; 5 = Magic; And if something is unclear or missing, then look at the GT_Recipe-Class + */ + public boolean addFuel(ItemStack aInput1, ItemStack aOutput1, int aEU, int aType); + + /** + * Adds an Amplifier Recipe for the Amplifabricator + */ + public boolean addAmplifier(ItemStack aAmplifierItem, int aDuration, int aAmplifierAmountOutputted); + + /** + * Adds a Recipe for the Brewing Machine (intentionally limited to Fluid IDs) + */ + public boolean addBrewingRecipe(ItemStack aIngredient, Fluid aInput, Fluid aOutput, boolean aHidden); + + /** + * Adds a Recipe for the Fermenter + */ + public boolean addFermentingRecipe(FluidStack aInput, FluidStack aOutput, int aDuration, boolean aHidden); + + /** + * Adds a Recipe for the Fluid Heater + */ + public boolean addFluidHeaterRecipe(ItemStack aCircuit, FluidStack aInput, FluidStack aOutput, int aDuration, int aEUt); + + /** + * Adds a Recipe for the Distillery + */ + public boolean addDistilleryRecipe(ItemStack aCircuit, FluidStack aInput, FluidStack aOutput, int aDuration, int aEUt, boolean aHidden); + + /** + * Adds a Recipe for the Fluid Solidifier + */ + public boolean addFluidSolidifierRecipe(ItemStack aMold, FluidStack aInput, ItemStack aOutput, int aDuration, int aEUt); + + /** + * Adds a Recipe for Fluid Smelting + */ + public boolean addFluidSmelterRecipe(ItemStack aInput, ItemStack aRemains, FluidStack aOutput, int aChance, int aDuration, int aEUt); + + /** + * Adds a Recipe for Fluid Extraction + */ + public boolean addFluidExtractionRecipe(ItemStack aInput, ItemStack aRemains, FluidStack aOutput, int aChance, int aDuration, int aEUt); + + /** + * Adds a Recipe for the Fluid Canner + */ + public boolean addFluidCannerRecipe(ItemStack aInput, ItemStack aOutput, FluidStack aFluidInput, FluidStack aFluidOutput); + + /** + * Adds a Recipe for the Chemical Bath + */ + public boolean addChemicalBathRecipe(ItemStack aInput, FluidStack aBathingFluid, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, int[] aChances, int aDuration, int aEUt); + + /** + * Adds a Recipe for the Electromagnetic Separator + */ + public boolean addElectromagneticSeparatorRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, int[] aChances, int aDuration, int aEUt); + + /** + * Adds a Recipe for the Printer + */ + public boolean addPrinterRecipe(ItemStack aInput, FluidStack aFluid, ItemStack aSpecialSlot, ItemStack aOutput, int aDuration, int aEUt); + + /** + * Adds a Recipe for the Autoclave + */ + public boolean addAutoclaveRecipe(ItemStack aInput, FluidStack aFluid, ItemStack aOutput, int aChance, int aDuration, int aEUt); + + /** + * Adds a Recipe for the Mixer + */ + public boolean addMixerRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aInput3, ItemStack aInput4, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration, int aEUt); + + /** + * Adds a Recipe for the Laser Engraver + */ + public boolean addLaserEngraverRecipe(ItemStack aItemToEngrave, ItemStack aLens, ItemStack aEngravedItem, int aDuration, int aEUt); + + /** + * Adds a Recipe for the Forming Press + */ + public boolean addFormingPressRecipe(ItemStack aItemToImprint, ItemStack aForm, ItemStack aImprintedItem, int aDuration, int aEUt); + + /** + * Adds a Recipe for the Sifter. (up to 9 Outputs) + */ + public boolean addSifterRecipe(ItemStack aItemToSift, ItemStack[] aSiftedItems, int[] aChances, int aDuration, int aEUt); + + /** + * Adds a Recipe for the Arc Furnace. (up to 4 Outputs) + */ + public boolean addArcFurnaceRecipe(ItemStack aInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt); + + /** + * Adds a Recipe for the GT Pulveriser. (up to 4 Outputs) + */ + public boolean addPulveriserRecipe(ItemStack aInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt); + + /** + * Adds a Sound to the Sonictron9001 + * you should NOT call this in the preInit-Phase! + * + * @param aItemStack = The Item you want to display for this Sound + * @param aSoundName = The Name of the Sound in the resources/newsound-folder like Vanillasounds + * @return true if the Sound got added, otherwise false. + */ + public boolean addSonictronSound(ItemStack aItemStack, String aSoundName); } diff --git a/src/main/java/gregtech/api/interfaces/internal/IIC2TileEntity.java b/src/main/java/gregtech/api/interfaces/internal/IIC2TileEntity.java index 736cbf67..05208d36 100644 --- a/src/main/java/gregtech/api/interfaces/internal/IIC2TileEntity.java +++ b/src/main/java/gregtech/api/interfaces/internal/IIC2TileEntity.java @@ -9,5 +9,5 @@ import ic2.api.tile.IEnergyStorage; * A simple compound Interface for generic EnergyTileEntities. I don't want to have imports of the IC2-API in my main-code */ public interface IIC2TileEntity extends IEnergyStorage, IEnergySink, IEnergySource, IHasWorldObjectAndCoords { - // + // } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java b/src/main/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java index 0b48d43d..2c1f9308 100644 --- a/src/main/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java +++ b/src/main/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java @@ -2,42 +2,29 @@ package gregtech.api.interfaces.internal; import gregtech.api.enums.TC_Aspects; import gregtech.api.enums.TC_Aspects.TC_AspectStack; - -import java.util.List; - import net.minecraft.block.Block; import net.minecraft.item.ItemStack; +import java.util.List; + public interface IThaumcraftCompat { - public static final int RESEARCH_TYPE_NORMAL = 0, RESEARCH_TYPE_SECONDARY = 1, RESEARCH_TYPE_FREE = 2, RESEARCH_TYPE_HIDDEN = 4, RESEARCH_TYPE_VIRTUAL = 8, RESEARCH_TYPE_ROUND = 16, RESEARCH_TYPE_SPECIAL = 32, RESEARCH_TYPE_AUTOUNLOCK = 64; - - /** The Research Keys of GT */ - public static final String - IRON_TO_STEEL = "GT_IRON_TO_STEEL" - , FILL_WATER_BUCKET = "GT_FILL_WATER_BUCKET" - , WOOD_TO_CHARCOAL = "GT_WOOD_TO_CHARCOAL" - , TRANSZINC = "GT_TRANSZINC" - , TRANSNICKEL = "GT_TRANSNICKEL" - , TRANSCOBALT = "GT_TRANSCOBALT" - , TRANSBISMUTH = "GT_TRANSBISMUTH" - , TRANSANTIMONY = "GT_TRANSANTIMONY" - , TRANSCUPRONICKEL = "GT_TRANSCUPRONICKEL" - , TRANSBATTERYALLOY = "GT_TRANSBATTERYALLOY" - , TRANSSOLDERINGALLOY = "GT_TRANSSOLDERINGALLOY" - , TRANSBRASS = "GT_TRANSBRASS" - , TRANSBRONZE = "GT_TRANSBRONZE" - , TRANSINVAR = "GT_TRANSINVAR" - , TRANSELECTRUM = "GT_TRANSELECTRUM" - , TRANSALUMINIUM = "GT_TRANSALUMINIUM" - , CRYSTALLISATION = "GT_CRYSTALLISATION" - , ADVANCEDENTROPICPROCESSING = "GT_ADVANCEDENTROPICPROCESSING" - , ADVANCEDMETALLURGY = "GT_ADVANCEDMETALLURGY" - ; - - public boolean registerPortholeBlacklistedBlock(Block aBlock); - public boolean registerThaumcraftAspectsToItem(ItemStack aStack, List aAspects, boolean aAdditive); - public boolean registerThaumcraftAspectsToItem(ItemStack aStack, List aAspects, String aOreDict); - public Object addCrucibleRecipe(String aResearch, Object aInput, ItemStack aOutput, List aAspects); - public Object addInfusionRecipe(String aResearch, ItemStack aMainInput,ItemStack[] aSideInputs, ItemStack aOutput,int aInstability, List aAspects); - public Object addResearch(String aResearch, String aName, String aText, String[] aParentResearches, String aCategory, ItemStack aIcon, int aComplexity, int aType, int aX, int aY, List aAspects, ItemStack[] aResearchTriggers, Object[] aPages); + public static final int RESEARCH_TYPE_NORMAL = 0, RESEARCH_TYPE_SECONDARY = 1, RESEARCH_TYPE_FREE = 2, RESEARCH_TYPE_HIDDEN = 4, RESEARCH_TYPE_VIRTUAL = 8, RESEARCH_TYPE_ROUND = 16, RESEARCH_TYPE_SPECIAL = 32, RESEARCH_TYPE_AUTOUNLOCK = 64; + + /** + * The Research Keys of GT + */ + public static final String + IRON_TO_STEEL = "GT_IRON_TO_STEEL", FILL_WATER_BUCKET = "GT_FILL_WATER_BUCKET", WOOD_TO_CHARCOAL = "GT_WOOD_TO_CHARCOAL", TRANSZINC = "GT_TRANSZINC", TRANSNICKEL = "GT_TRANSNICKEL", TRANSCOBALT = "GT_TRANSCOBALT", TRANSBISMUTH = "GT_TRANSBISMUTH", TRANSANTIMONY = "GT_TRANSANTIMONY", TRANSCUPRONICKEL = "GT_TRANSCUPRONICKEL", TRANSBATTERYALLOY = "GT_TRANSBATTERYALLOY", TRANSSOLDERINGALLOY = "GT_TRANSSOLDERINGALLOY", TRANSBRASS = "GT_TRANSBRASS", TRANSBRONZE = "GT_TRANSBRONZE", TRANSINVAR = "GT_TRANSINVAR", TRANSELECTRUM = "GT_TRANSELECTRUM", TRANSALUMINIUM = "GT_TRANSALUMINIUM", CRYSTALLISATION = "GT_CRYSTALLISATION", ADVANCEDENTROPICPROCESSING = "GT_ADVANCEDENTROPICPROCESSING", ADVANCEDMETALLURGY = "GT_ADVANCEDMETALLURGY"; + + public boolean registerPortholeBlacklistedBlock(Block aBlock); + + public boolean registerThaumcraftAspectsToItem(ItemStack aStack, List aAspects, boolean aAdditive); + + public boolean registerThaumcraftAspectsToItem(ItemStack aStack, List aAspects, String aOreDict); + + public Object addCrucibleRecipe(String aResearch, Object aInput, ItemStack aOutput, List aAspects); + + public Object addInfusionRecipe(String aResearch, ItemStack aMainInput, ItemStack[] aSideInputs, ItemStack aOutput, int aInstability, List aAspects); + + public Object addResearch(String aResearch, String aName, String aText, String[] aParentResearches, String aCategory, ItemStack aIcon, int aComplexity, int aType, int aX, int aY, List aAspects, ItemStack[] aResearchTriggers, Object[] aPages); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/internal/IUETileEntity.java b/src/main/java/gregtech/api/interfaces/internal/IUETileEntity.java index 945c6792..d183961a 100644 --- a/src/main/java/gregtech/api/interfaces/internal/IUETileEntity.java +++ b/src/main/java/gregtech/api/interfaces/internal/IUETileEntity.java @@ -2,5 +2,5 @@ package gregtech.api.interfaces.internal; public interface IUETileEntity /*extends IElectrical*/ { - // + // } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java index 7b7d36ea..64c5072c 100644 --- a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java +++ b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java @@ -1,15 +1,12 @@ package gregtech.api.interfaces.metatileentity; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGearEnergyTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.objects.GT_ItemStack; import gregtech.api.util.GT_Config; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.texture.IIconRegister; @@ -24,181 +21,183 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.fluids.IFluidHandler; import net.minecraftforge.fluids.IFluidTank; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; /** * Warning, this Interface has just been made to be able to add multiple kinds of MetaTileEntities (Cables, Pipes, Transformers, but not the regular Blocks) - * + *

* Don't implement this yourself and expect it to work. Extend @MetaTileEntity itself. */ public interface IMetaTileEntity extends ISidedInventory, IFluidTank, IFluidHandler, IGearEnergyTileEntity { - /** - * This determines the BaseMetaTileEntity belonging to this MetaTileEntity by using the Meta ID of the Block itself. - * - * 0 = BaseMetaTileEntity, Wrench lvl 0 to dismantle - * 1 = BaseMetaTileEntity, Wrench lvl 1 to dismantle - * 2 = BaseMetaTileEntity, Wrench lvl 2 to dismantle - * 3 = BaseMetaTileEntity, Wrench lvl 3 to dismantle - * 4 = BaseMetaPipeEntity, Wrench lvl 0 to dismantle - * 5 = BaseMetaPipeEntity, Wrench lvl 1 to dismantle - * 6 = BaseMetaPipeEntity, Wrench lvl 2 to dismantle - * 7 = BaseMetaPipeEntity, Wrench lvl 3 to dismantle - * 8 = BaseMetaPipeEntity, Cutter lvl 0 to dismantle - * 9 = BaseMetaPipeEntity, Cutter lvl 1 to dismantle - * 10 = BaseMetaPipeEntity, Cutter lvl 2 to dismantle - * 11 = BaseMetaPipeEntity, Cutter lvl 3 to dismantle - * 12 = BaseMetaPipeEntity, Axe lvl 0 to dismantle - * 13 = BaseMetaPipeEntity, Axe lvl 1 to dismantle - * 14 = BaseMetaPipeEntity, Axe lvl 2 to dismantle - * 15 = BaseMetaPipeEntity, Axe lvl 3 to dismantle - */ - public byte getTileEntityBaseType(); - - /** - * @param aTileEntity is just because the internal Variable "mBaseMetaTileEntity" is set after this Call. - * @return a newly created and ready MetaTileEntity - */ - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity); - - /** - * @return an ItemStack representing this MetaTileEntity. - */ - public ItemStack getStackForm(long aAmount); - - /** - * Sets the BaseMetaTileEntity of this - */ - public void setBaseMetaTileEntity(IGregTechTileEntity aBaseMetaTileEntity); - - /** - * new getter for the BaseMetaTileEntity, which restricts usage to certain Functions. - */ - public IGregTechTileEntity getBaseMetaTileEntity(); + /** + * This determines the BaseMetaTileEntity belonging to this MetaTileEntity by using the Meta ID of the Block itself. + *

+ * 0 = BaseMetaTileEntity, Wrench lvl 0 to dismantle + * 1 = BaseMetaTileEntity, Wrench lvl 1 to dismantle + * 2 = BaseMetaTileEntity, Wrench lvl 2 to dismantle + * 3 = BaseMetaTileEntity, Wrench lvl 3 to dismantle + * 4 = BaseMetaPipeEntity, Wrench lvl 0 to dismantle + * 5 = BaseMetaPipeEntity, Wrench lvl 1 to dismantle + * 6 = BaseMetaPipeEntity, Wrench lvl 2 to dismantle + * 7 = BaseMetaPipeEntity, Wrench lvl 3 to dismantle + * 8 = BaseMetaPipeEntity, Cutter lvl 0 to dismantle + * 9 = BaseMetaPipeEntity, Cutter lvl 1 to dismantle + * 10 = BaseMetaPipeEntity, Cutter lvl 2 to dismantle + * 11 = BaseMetaPipeEntity, Cutter lvl 3 to dismantle + * 12 = BaseMetaPipeEntity, Axe lvl 0 to dismantle + * 13 = BaseMetaPipeEntity, Axe lvl 1 to dismantle + * 14 = BaseMetaPipeEntity, Axe lvl 2 to dismantle + * 15 = BaseMetaPipeEntity, Axe lvl 3 to dismantle + */ + public byte getTileEntityBaseType(); + + /** + * @param aTileEntity is just because the internal Variable "mBaseMetaTileEntity" is set after this Call. + * @return a newly created and ready MetaTileEntity + */ + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity); + + /** + * @return an ItemStack representing this MetaTileEntity. + */ + public ItemStack getStackForm(long aAmount); + + /** + * new getter for the BaseMetaTileEntity, which restricts usage to certain Functions. + */ + public IGregTechTileEntity getBaseMetaTileEntity(); + + /** + * Sets the BaseMetaTileEntity of this + */ + public void setBaseMetaTileEntity(IGregTechTileEntity aBaseMetaTileEntity); + + /** + * when placing a Machine in World, to initialize default Modes. aNBT can be null! + */ + public void initDefaultModes(NBTTagCompound aNBT); + + /** + * ^= writeToNBT + */ + public void saveNBTData(NBTTagCompound aNBT); + + /** + * ^= readFromNBT + */ + public void loadNBTData(NBTTagCompound aNBT); + + /** + * Adds the NBT-Information to the ItemStack, when being dismanteled properly + * Used to store Machine specific Upgrade Data. + */ + public void setItemNBT(NBTTagCompound aNBT); + + /** + * Called in the registered MetaTileEntity when the Server starts, to reset static variables + */ + public void onServerStart(); + + /** + * Called in the registered MetaTileEntity when the Server ticks a World the first time, to load things from the World Save + */ + public void onWorldLoad(File aSaveDirectory); + + /** + * Called in the registered MetaTileEntity when the Server stops, to save the Game. + */ + public void onWorldSave(File aSaveDirectory); + + /** + * Called to set Configuration values for this MetaTileEntity. + * Use aConfig.get(ConfigCategories.machineconfig, "MetaTileEntityName.Ability", DEFAULT_VALUE); to set the Values. + */ + public void onConfigLoad(GT_Config aConfig); + + /** + * If a Cover of that Type can be placed on this Side. + * Also Called when the Facing of the Block Changes and a Cover is on said Side. + */ + public boolean allowCoverOnSide(byte aSide, GT_ItemStack aStack); + + /** + * When a Player rightclicks the Facing with a Screwdriver. + */ + public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ); + + /** + * When a Player rightclicks the Facing with a Wrench. + */ + public boolean onWrenchRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ); + + /** + * Called right before this Machine explodes + */ + public void onExplosion(); + + /** + * The First processed Tick which was passed to this MetaTileEntity + */ + public void onFirstTick(IGregTechTileEntity aBaseMetaTileEntity); + + /** + * The Tick before all the generic handling happens, what gives a slightly faster reaction speed. + * Don't use this if you really don't need to. @onPostTick is better suited for ticks. + * This happens still after the Cover handling. + */ + public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick); + + /** + * The Tick after all the generic handling happened. + * Recommended to use this like updateEntity. + */ + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick); + + /** + * Called when this MetaTileEntity gets (intentionally) disconnected from the BaseMetaTileEntity. + * Doesn't get called when this thing is moved by Frames or similar hacks. + */ + public void inValidate(); + + /** + * Called when the BaseMetaTileEntity gets invalidated, what happens right before the @inValidate above gets called + */ + public void onRemoval(); - /** - * when placing a Machine in World, to initialize default Modes. aNBT can be null! - */ - public void initDefaultModes(NBTTagCompound aNBT); - - /** - * ^= writeToNBT - */ - public void saveNBTData(NBTTagCompound aNBT); - - /** - * ^= readFromNBT - */ - public void loadNBTData(NBTTagCompound aNBT); - - /** - * Adds the NBT-Information to the ItemStack, when being dismanteled properly - * Used to store Machine specific Upgrade Data. - */ - public void setItemNBT(NBTTagCompound aNBT); - - /** - * Called in the registered MetaTileEntity when the Server starts, to reset static variables - */ - public void onServerStart(); - - /** - * Called in the registered MetaTileEntity when the Server ticks a World the first time, to load things from the World Save - */ - public void onWorldLoad(File aSaveDirectory); - - /** - * Called in the registered MetaTileEntity when the Server stops, to save the Game. - */ - public void onWorldSave(File aSaveDirectory); - - /** - * Called to set Configuration values for this MetaTileEntity. - * Use aConfig.get(ConfigCategories.machineconfig, "MetaTileEntityName.Ability", DEFAULT_VALUE); to set the Values. - */ - public void onConfigLoad(GT_Config aConfig); - - /** - * If a Cover of that Type can be placed on this Side. - * Also Called when the Facing of the Block Changes and a Cover is on said Side. - */ - public boolean allowCoverOnSide(byte aSide, GT_ItemStack aStack); - - /** - * When a Player rightclicks the Facing with a Screwdriver. - */ - public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ); - - /** - * When a Player rightclicks the Facing with a Wrench. - */ - public boolean onWrenchRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ); - - /** - * Called right before this Machine explodes - */ - public void onExplosion(); - - /** - * The First processed Tick which was passed to this MetaTileEntity - */ - public void onFirstTick(IGregTechTileEntity aBaseMetaTileEntity); - - /** - * The Tick before all the generic handling happens, what gives a slightly faster reaction speed. - * Don't use this if you really don't need to. @onPostTick is better suited for ticks. - * This happens still after the Cover handling. - */ - public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick); - - /** - * The Tick after all the generic handling happened. - * Recommended to use this like updateEntity. - */ - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick); - - /** - * Called when this MetaTileEntity gets (intentionally) disconnected from the BaseMetaTileEntity. - * Doesn't get called when this thing is moved by Frames or similar hacks. - */ - public void inValidate(); - - /** - * Called when the BaseMetaTileEntity gets invalidated, what happens right before the @inValidate above gets called - */ - public void onRemoval(); - /** * @param aFacing * @return if aFacing would be a valid Facing for this Device. Used for wrenching. */ public boolean isFacingValid(byte aFacing); - + /** * @return the Server Side Container */ public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity); - + /** * @return the Client Side GUI Container */ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity); - - /** - * From new ISidedInventory - */ - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack); - - /** - * From new ISidedInventory - */ - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack); - + + /** + * From new ISidedInventory + */ + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack); + + /** + * From new ISidedInventory + */ + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack); + /** * @return if aIndex is a valid Slot. false for things like HoloSlots. Is used for determining if an Item is dropped upon Block destruction and for Inventory Access Management */ public boolean isValidSlot(int aIndex); - + /** * @return if aIndex can be set to Zero stackSize, when being removed. */ @@ -208,176 +207,187 @@ public interface IMetaTileEntity extends ISidedInventory, IFluidTank, IFluidHand * If this Side can connect to inputting pipes */ public boolean isLiquidInput(byte aSide); - + /** * If this Side can connect to outputting pipes */ public boolean isLiquidOutput(byte aSide); - - /** - * Just an Accessor for the Name variable. - */ - public String getMetaName(); - + + /** + * Just an Accessor for the Name variable. + */ + public String getMetaName(); + /** * @return true if the Machine can be accessed */ public boolean isAccessAllowed(EntityPlayer aPlayer); - - /** - * When a Machine Update occurs - */ - public void onMachineBlockUpdate(); - /** - * a Player rightclicks the Machine - * Sneaky rightclicks are not getting passed to this! - * @return - */ - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ); - - /** - * a Player leftclicks the Machine - * Sneaky leftclicks are getting passed to this unlike with the rightclicks. - */ - public void onLeftclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer); - - /** - * Called Clientside with the Data got from @getUpdateData - */ - public void onValueUpdate(byte aValue); - - /** - * return a small bit of Data, like a secondary Facing for example with this Function, for the Client. - * The BaseMetaTileEntity detects changes to this Value and will then send an Update. - * This is only for Information, which is visible as Texture to the outside. - * - * If you just want to have an Active/Redstone State then set the Active State inside the BaseMetaTileEntity instead. - */ - public byte getUpdateData(); - - /** - * For the rare case you need this Function - */ - public void receiveClientEvent(byte aEventID, byte aValue); - - /** - * Called to actually play the Sound. - * Do not insert Client/Server checks. That is already done for you. - * Do not use @playSoundEffect, Minecraft doesn't like that at all. Use @playSound instead. - */ + /** + * When a Machine Update occurs + */ + public void onMachineBlockUpdate(); + + /** + * a Player rightclicks the Machine + * Sneaky rightclicks are not getting passed to this! + * + * @return + */ + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ); + + /** + * a Player leftclicks the Machine + * Sneaky leftclicks are getting passed to this unlike with the rightclicks. + */ + public void onLeftclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer); + + /** + * Called Clientside with the Data got from @getUpdateData + */ + public void onValueUpdate(byte aValue); + + /** + * return a small bit of Data, like a secondary Facing for example with this Function, for the Client. + * The BaseMetaTileEntity detects changes to this Value and will then send an Update. + * This is only for Information, which is visible as Texture to the outside. + *

+ * If you just want to have an Active/Redstone State then set the Active State inside the BaseMetaTileEntity instead. + */ + public byte getUpdateData(); + + /** + * For the rare case you need this Function + */ + public void receiveClientEvent(byte aEventID, byte aValue); + + /** + * Called to actually play the Sound. + * Do not insert Client/Server checks. That is already done for you. + * Do not use @playSoundEffect, Minecraft doesn't like that at all. Use @playSound instead. + */ public void doSound(byte aIndex, double aX, double aY, double aZ); + public void startSoundLoop(byte aIndex, double aX, double aY, double aZ); + public void stopSoundLoop(byte aValue, double aX, double aY, double aZ); - + /** * Sends the Event for the Sound Triggers, only usable Server Side! */ public void sendSound(byte aIndex); - + /** * Sends the Event for the Sound Triggers, only usable Server Side! */ public void sendLoopStart(byte aIndex); - + /** * Sends the Event for the Sound Triggers, only usable Server Side! */ public void sendLoopEnd(byte aIndex); - + /** * Called when the Machine explodes, override Explosion Code here. + * * @param aExplosionPower */ public void doExplosion(long aExplosionPower); - - /** - * If this is just a simple Machine, which can be wrenched at 100% - */ - public boolean isSimpleMachine(); - - /** - * If there should be a Lag Warning if something laggy happens during this Tick. - * - * The Advanced Pump uses this to not cause the Lag Message, while it scans for all close Fluids. - * The Item Pipes and Retrievers neither send this Message, when scanning for Pipes. - */ - public boolean doTickProfilingMessageDuringThisTick(); - + + /** + * If this is just a simple Machine, which can be wrenched at 100% + */ + public boolean isSimpleMachine(); + + /** + * If there should be a Lag Warning if something laggy happens during this Tick. + *

+ * The Advanced Pump uses this to not cause the Lag Message, while it scans for all close Fluids. + * The Item Pipes and Retrievers neither send this Message, when scanning for Pipes. + */ + public boolean doTickProfilingMessageDuringThisTick(); + /** * returns the DebugLog */ - public ArrayList getSpecialDebugInfo(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, int aLogLevel, ArrayList aList); + public ArrayList getSpecialDebugInfo(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, int aLogLevel, ArrayList aList); - /** - * get a small Description - */ - public String[] getDescription(); - - /** - * In case the Output Voltage varies. - */ - public String getSpecialVoltageToolTip(); - - /** - * Icon of the Texture. If this returns null then it falls back to getTextureIndex. - * - * @param aSide is the Side of the Block - * @param aFacing is the direction the Block is facing (or a Bitmask of all Connections in case of Pipes) - * @param aColorIndex The Minecraft Color the Block is having - * @param aActive if the Machine is currently active (use this instead of calling mBaseMetaTileEntity.mActive!!!). Note: In case of Pipes this means if this Side is connected to something or not. - * @param aRedstone if the Machine is currently outputting a RedstoneSignal (use this instead of calling mBaseMetaTileEntity.mRedstone!!!) - */ - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone); - - /** - * The Textures used for the Item rendering. Return null if you want the regular 3D Block Rendering. - */ - //public ITexture[] getItemTexture(ItemStack aStack); - - /** - * Register Icons here. This gets called when the Icons get initialized by the Base Block - * Best is you put your Icons in a static Array for quick and easy access without relying on the MetaTileList. - * @param aBlockIconRegister The Block Icon Register - */ - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister aBlockIconRegister); - - /** - * @return true if you override the Rendering. - */ - @SideOnly(Side.CLIENT) - public boolean renderInInventory(Block aBlock, int aMeta, RenderBlocks aRenderer); - - /** - * @return true if you override the Rendering. - */ - @SideOnly(Side.CLIENT) - public boolean renderInWorld(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock, RenderBlocks aRenderer); - - /** - * Gets the Output for the comparator on the given Side - */ - public byte getComparatorValue(byte aSide); - - public float getExplosionResistance(byte aSide); - - public String[] getInfoData(); - public boolean isGivingInformation(); - - public ItemStack[] getRealInventory(); - - public boolean connectsToItemPipe(byte aSide); - - public void onColorChangeServer(byte aColor); - public void onColorChangeClient(byte aColor); - - public int getLightOpacity(); - - public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List outputAABB, Entity collider); - public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ); - public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider); - - /** The onCreated Function of the Item Class redirects here */ + /** + * get a small Description + */ + public String[] getDescription(); + + /** + * In case the Output Voltage varies. + */ + public String getSpecialVoltageToolTip(); + + /** + * Icon of the Texture. If this returns null then it falls back to getTextureIndex. + * + * @param aSide is the Side of the Block + * @param aFacing is the direction the Block is facing (or a Bitmask of all Connections in case of Pipes) + * @param aColorIndex The Minecraft Color the Block is having + * @param aActive if the Machine is currently active (use this instead of calling mBaseMetaTileEntity.mActive!!!). Note: In case of Pipes this means if this Side is connected to something or not. + * @param aRedstone if the Machine is currently outputting a RedstoneSignal (use this instead of calling mBaseMetaTileEntity.mRedstone!!!) + */ + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone); + + /** + * The Textures used for the Item rendering. Return null if you want the regular 3D Block Rendering. + */ + //public ITexture[] getItemTexture(ItemStack aStack); + + /** + * Register Icons here. This gets called when the Icons get initialized by the Base Block + * Best is you put your Icons in a static Array for quick and easy access without relying on the MetaTileList. + * + * @param aBlockIconRegister The Block Icon Register + */ + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister aBlockIconRegister); + + /** + * @return true if you override the Rendering. + */ + @SideOnly(Side.CLIENT) + public boolean renderInInventory(Block aBlock, int aMeta, RenderBlocks aRenderer); + + /** + * @return true if you override the Rendering. + */ + @SideOnly(Side.CLIENT) + public boolean renderInWorld(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock, RenderBlocks aRenderer); + + /** + * Gets the Output for the comparator on the given Side + */ + public byte getComparatorValue(byte aSide); + + public float getExplosionResistance(byte aSide); + + public String[] getInfoData(); + + public boolean isGivingInformation(); + + public ItemStack[] getRealInventory(); + + public boolean connectsToItemPipe(byte aSide); + + public void onColorChangeServer(byte aColor); + + public void onColorChangeClient(byte aColor); + + public int getLightOpacity(); + + public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List outputAABB, Entity collider); + + public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ); + + public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider); + + /** + * The onCreated Function of the Item Class redirects here + */ public void onCreated(ItemStack aStack, World aWorld, EntityPlayer aPlayer); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityCable.java b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityCable.java index 6cdb15cf..17fca8a6 100644 --- a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityCable.java +++ b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityCable.java @@ -1,9 +1,9 @@ package gregtech.api.interfaces.metatileentity; -import java.util.ArrayList; - import net.minecraft.tileentity.TileEntity; +import java.util.ArrayList; + public interface IMetaTileEntityCable extends IMetaTileEntity { public long transferElectricity(byte aSide, long aVoltage, long aAmperage, ArrayList aAlreadyPassedTileEntityList); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityItemPipe.java b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityItemPipe.java index 0e6d3c6f..510f314d 100644 --- a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityItemPipe.java +++ b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityItemPipe.java @@ -11,86 +11,89 @@ public interface IMetaTileEntityItemPipe extends IMetaTileEntity { * @return if this Pipe can still be used. */ public boolean pipeCapacityCheck(); - + /** * @return if this Pipe can still be used. */ public boolean incrementTransferCounter(int aIncrement); - + /** * Sends an ItemStack from aSender to the adjacent Blocks. + * * @param aSender the BaseMetaTileEntity sending the Stack. * @return if it was able to send something */ public boolean sendItemStack(Object aSender); - - /** - * Executes the Sending Code for inserting Stacks into the TileEntities. - * @param aSender the BaseMetaTileEntity sending the Stack. - * @param aSide the Side of the PIPE facing the TileEntity. - * @return if this Side was allowed to Output into the Block. - */ + + /** + * Executes the Sending Code for inserting Stacks into the TileEntities. + * + * @param aSender the BaseMetaTileEntity sending the Stack. + * @param aSide the Side of the PIPE facing the TileEntity. + * @return if this Side was allowed to Output into the Block. + */ public boolean insertItemStackIntoTileEntity(Object aSender, byte aSide); - - /** - * Can be used to make flow control Pipes, like Redpowers Restriction Tubes. - * Every normal Pipe returns a Value of 32768, so you can easily insert lower Numbers to set Routing priorities. - * Negative Numbers to "suck" Items into a certain direction are also possible. - */ - public int getStepSize(); - - /** - * Utility for the Item Network - */ - public static class Util { - /** - * @return a List of connected Item Pipes - */ - public static Map scanPipes(IMetaTileEntityItemPipe aMetaTileEntity, Map aMap, long aStep, boolean aSuckItems, boolean aIgnoreCapacity) { - aStep+=aMetaTileEntity.getStepSize(); - if (aIgnoreCapacity || aMetaTileEntity.pipeCapacityCheck()) if (aMap.get(aMetaTileEntity) == null || aMap.get(aMetaTileEntity) > aStep) { - IGregTechTileEntity aBaseMetaTileEntity = aMetaTileEntity.getBaseMetaTileEntity(); - aMap.put(aMetaTileEntity, aStep); - for (byte i = 0, j = 0; i < 6; i++) { - j = GT_Utility.getOppositeSide(i); - if (aSuckItems) { - if (aBaseMetaTileEntity.getCoverBehaviorAtSide(i).letsItemsIn(i, aBaseMetaTileEntity.getCoverIDAtSide(i), aBaseMetaTileEntity.getCoverDataAtSide(i), -2, aBaseMetaTileEntity)) { - IGregTechTileEntity tItemPipe = aBaseMetaTileEntity.getIGregTechTileEntityAtSide(i); - if (aBaseMetaTileEntity.getColorization() >= 0) { - byte tColor = tItemPipe.getColorization(); - if (tColor >= 0 && tColor != aBaseMetaTileEntity.getColorization()) { - continue; - } - } - if (tItemPipe != null && tItemPipe instanceof BaseMetaPipeEntity) { - IMetaTileEntity tMetaTileEntity = tItemPipe.getMetaTileEntity(); - if (tMetaTileEntity != null && tMetaTileEntity instanceof IMetaTileEntityItemPipe && tItemPipe.getCoverBehaviorAtSide(j).letsItemsOut(j, tItemPipe.getCoverIDAtSide(j), tItemPipe.getCoverDataAtSide(j), -2, tItemPipe)) { - scanPipes((IMetaTileEntityItemPipe)tMetaTileEntity, aMap, aStep, aSuckItems, aIgnoreCapacity); - } - } - } - } else { - if (aBaseMetaTileEntity.getCoverBehaviorAtSide(i).letsItemsOut(i, aBaseMetaTileEntity.getCoverIDAtSide(i), aBaseMetaTileEntity.getCoverDataAtSide(i), -2, aBaseMetaTileEntity)) { - IGregTechTileEntity tItemPipe = aBaseMetaTileEntity.getIGregTechTileEntityAtSide(i); - if (tItemPipe != null) { - if (aBaseMetaTileEntity.getColorization() >= 0) { - byte tColor = tItemPipe.getColorization(); - if (tColor >= 0 && tColor != aBaseMetaTileEntity.getColorization()) { - continue; - } - } - if (tItemPipe instanceof BaseMetaPipeEntity) { - IMetaTileEntity tMetaTileEntity = tItemPipe.getMetaTileEntity(); - if (tMetaTileEntity != null && tMetaTileEntity instanceof IMetaTileEntityItemPipe && tItemPipe.getCoverBehaviorAtSide(j).letsItemsIn(j, tItemPipe.getCoverIDAtSide(j), tItemPipe.getCoverDataAtSide(j), -2, tItemPipe)) { - scanPipes((IMetaTileEntityItemPipe)tMetaTileEntity, aMap, aStep, aSuckItems, aIgnoreCapacity); - } - } - } - } - } - } - } - return aMap; - } - } + + /** + * Can be used to make flow control Pipes, like Redpowers Restriction Tubes. + * Every normal Pipe returns a Value of 32768, so you can easily insert lower Numbers to set Routing priorities. + * Negative Numbers to "suck" Items into a certain direction are also possible. + */ + public int getStepSize(); + + /** + * Utility for the Item Network + */ + public static class Util { + /** + * @return a List of connected Item Pipes + */ + public static Map scanPipes(IMetaTileEntityItemPipe aMetaTileEntity, Map aMap, long aStep, boolean aSuckItems, boolean aIgnoreCapacity) { + aStep += aMetaTileEntity.getStepSize(); + if (aIgnoreCapacity || aMetaTileEntity.pipeCapacityCheck()) + if (aMap.get(aMetaTileEntity) == null || aMap.get(aMetaTileEntity) > aStep) { + IGregTechTileEntity aBaseMetaTileEntity = aMetaTileEntity.getBaseMetaTileEntity(); + aMap.put(aMetaTileEntity, aStep); + for (byte i = 0, j = 0; i < 6; i++) { + j = GT_Utility.getOppositeSide(i); + if (aSuckItems) { + if (aBaseMetaTileEntity.getCoverBehaviorAtSide(i).letsItemsIn(i, aBaseMetaTileEntity.getCoverIDAtSide(i), aBaseMetaTileEntity.getCoverDataAtSide(i), -2, aBaseMetaTileEntity)) { + IGregTechTileEntity tItemPipe = aBaseMetaTileEntity.getIGregTechTileEntityAtSide(i); + if (aBaseMetaTileEntity.getColorization() >= 0) { + byte tColor = tItemPipe.getColorization(); + if (tColor >= 0 && tColor != aBaseMetaTileEntity.getColorization()) { + continue; + } + } + if (tItemPipe != null && tItemPipe instanceof BaseMetaPipeEntity) { + IMetaTileEntity tMetaTileEntity = tItemPipe.getMetaTileEntity(); + if (tMetaTileEntity != null && tMetaTileEntity instanceof IMetaTileEntityItemPipe && tItemPipe.getCoverBehaviorAtSide(j).letsItemsOut(j, tItemPipe.getCoverIDAtSide(j), tItemPipe.getCoverDataAtSide(j), -2, tItemPipe)) { + scanPipes((IMetaTileEntityItemPipe) tMetaTileEntity, aMap, aStep, aSuckItems, aIgnoreCapacity); + } + } + } + } else { + if (aBaseMetaTileEntity.getCoverBehaviorAtSide(i).letsItemsOut(i, aBaseMetaTileEntity.getCoverIDAtSide(i), aBaseMetaTileEntity.getCoverDataAtSide(i), -2, aBaseMetaTileEntity)) { + IGregTechTileEntity tItemPipe = aBaseMetaTileEntity.getIGregTechTileEntityAtSide(i); + if (tItemPipe != null) { + if (aBaseMetaTileEntity.getColorization() >= 0) { + byte tColor = tItemPipe.getColorization(); + if (tColor >= 0 && tColor != aBaseMetaTileEntity.getColorization()) { + continue; + } + } + if (tItemPipe instanceof BaseMetaPipeEntity) { + IMetaTileEntity tMetaTileEntity = tItemPipe.getMetaTileEntity(); + if (tMetaTileEntity != null && tMetaTileEntity instanceof IMetaTileEntityItemPipe && tItemPipe.getCoverBehaviorAtSide(j).letsItemsIn(j, tItemPipe.getCoverIDAtSide(j), tItemPipe.getCoverDataAtSide(j), -2, tItemPipe)) { + scanPipes((IMetaTileEntityItemPipe) tMetaTileEntity, aMap, aStep, aSuckItems, aIgnoreCapacity); + } + } + } + } + } + } + } + return aMap; + } + } } diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IBasicEnergyContainer.java b/src/main/java/gregtech/api/interfaces/tileentity/IBasicEnergyContainer.java index 6b39391d..423b3d43 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IBasicEnergyContainer.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IBasicEnergyContainer.java @@ -4,96 +4,97 @@ package gregtech.api.interfaces.tileentity; * Interface for internal Code, which is mainly used for independent Energy conversion. */ public interface IBasicEnergyContainer extends IEnergyConnected { - /** - * Gets if that Amount of Energy is stored inside the Machine. - * It is used for checking the contained Energy before consuming it. - * If this returns false, it will also give a Message inside the Scanner, that this Machine doesn't have enough Energy. - */ - public boolean isUniversalEnergyStored(long aEnergyAmount); - - /** - * Gets the stored electric, kinetic or steam Energy (with EU as reference Value) - * Always returns the largest one. - */ - public long getUniversalEnergyStored(); - - /** - * Gets the largest electric, kinetic or steam Energy Capacity (with EU as reference Value) - */ - public long getUniversalEnergyCapacity(); - - /** - * Gets the amount of Energy Packets per tick. - */ - public long getOutputAmperage(); - - /** - * Gets the Output in EU/p. - */ - public long getOutputVoltage(); - - /** - * Gets the amount of Energy Packets per tick. - */ - public long getInputAmperage(); - - /** - * Gets the maximum Input in EU/p. - */ - public long getInputVoltage(); - - /** - * Decreases the Amount of stored universal Energy. If ignoring too less Energy, then it just sets the Energy to 0 and returns false. - */ - public boolean decreaseStoredEnergyUnits(long aEnergy, boolean aIgnoreTooLessEnergy); - - /** - * Increases the Amount of stored electric Energy. If ignoring too much Energy, then the Energy Limit is just being ignored. - */ - public boolean increaseStoredEnergyUnits(long aEnergy, boolean aIgnoreTooMuchEnergy); - - /** - * Drain Energy Call for Electricity. - */ - public boolean drainEnergyUnits(byte aSide, long aVoltage, long aAmperage); - - /** - * returns the amount of Electricity, accepted by this Block the last 5 ticks as Average. - */ - public long getAverageElectricInput(); - - /** - * returns the amount of Electricity, outputted by this Block the last 5 ticks as Average. - */ - public long getAverageElectricOutput(); - - /** - * returns the amount of electricity contained in this Block, in EU units! - */ - public long getStoredEU(); - - /** - * returns the amount of electricity containable in this Block, in EU units! - */ - public long getEUCapacity(); - - /** - * returns the amount of Steam contained in this Block, in EU units! - */ - public long getStoredSteam(); - - /** - * returns the amount of Steam containable in this Block, in EU units! - */ - public long getSteamCapacity(); - - /** - * Increases stored Energy. Energy Base Value is in EU, even though it's Steam! - * @param aEnergy The Energy to add to the Machine. - * @param aIgnoreTooMuchEnergy if it shall ignore if it has too much Energy. - * @return if it was successful - * - * And yes, you can't directly decrease the Steam of a Machine. That is done by decreaseStoredEnergyUnits - */ - public boolean increaseStoredSteam(long aEnergy, boolean aIgnoreTooMuchEnergy); + /** + * Gets if that Amount of Energy is stored inside the Machine. + * It is used for checking the contained Energy before consuming it. + * If this returns false, it will also give a Message inside the Scanner, that this Machine doesn't have enough Energy. + */ + public boolean isUniversalEnergyStored(long aEnergyAmount); + + /** + * Gets the stored electric, kinetic or steam Energy (with EU as reference Value) + * Always returns the largest one. + */ + public long getUniversalEnergyStored(); + + /** + * Gets the largest electric, kinetic or steam Energy Capacity (with EU as reference Value) + */ + public long getUniversalEnergyCapacity(); + + /** + * Gets the amount of Energy Packets per tick. + */ + public long getOutputAmperage(); + + /** + * Gets the Output in EU/p. + */ + public long getOutputVoltage(); + + /** + * Gets the amount of Energy Packets per tick. + */ + public long getInputAmperage(); + + /** + * Gets the maximum Input in EU/p. + */ + public long getInputVoltage(); + + /** + * Decreases the Amount of stored universal Energy. If ignoring too less Energy, then it just sets the Energy to 0 and returns false. + */ + public boolean decreaseStoredEnergyUnits(long aEnergy, boolean aIgnoreTooLessEnergy); + + /** + * Increases the Amount of stored electric Energy. If ignoring too much Energy, then the Energy Limit is just being ignored. + */ + public boolean increaseStoredEnergyUnits(long aEnergy, boolean aIgnoreTooMuchEnergy); + + /** + * Drain Energy Call for Electricity. + */ + public boolean drainEnergyUnits(byte aSide, long aVoltage, long aAmperage); + + /** + * returns the amount of Electricity, accepted by this Block the last 5 ticks as Average. + */ + public long getAverageElectricInput(); + + /** + * returns the amount of Electricity, outputted by this Block the last 5 ticks as Average. + */ + public long getAverageElectricOutput(); + + /** + * returns the amount of electricity contained in this Block, in EU units! + */ + public long getStoredEU(); + + /** + * returns the amount of electricity containable in this Block, in EU units! + */ + public long getEUCapacity(); + + /** + * returns the amount of Steam contained in this Block, in EU units! + */ + public long getStoredSteam(); + + /** + * returns the amount of Steam containable in this Block, in EU units! + */ + public long getSteamCapacity(); + + /** + * Increases stored Energy. Energy Base Value is in EU, even though it's Steam! + * + * @param aEnergy The Energy to add to the Machine. + * @param aIgnoreTooMuchEnergy if it shall ignore if it has too much Energy. + * @return if it was successful + *

+ * And yes, you can't directly decrease the Steam of a Machine. That is done by decreaseStoredEnergyUnits + */ + public boolean increaseStoredSteam(long aEnergy, boolean aIgnoreTooMuchEnergy); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IColoredTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IColoredTileEntity.java index dc511f30..6b69911a 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IColoredTileEntity.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IColoredTileEntity.java @@ -1,14 +1,15 @@ package gregtech.api.interfaces.tileentity; public interface IColoredTileEntity { - /** - * @return 0 - 15 are Colors, while -1 means uncolored - */ - public byte getColorization(); - - /** - * Sets the Color Modulation of the Block - * @param aColor the Color you want to set it to. -1 for reset. - */ - public byte setColorization(byte aColor); + /** + * @return 0 - 15 are Colors, while -1 means uncolored + */ + public byte getColorization(); + + /** + * Sets the Color Modulation of the Block + * + * @param aColor the Color you want to set it to. -1 for reset. + */ + public byte setColorization(byte aColor); } diff --git a/src/main/java/gregtech/api/interfaces/tileentity/ICoverable.java b/src/main/java/gregtech/api/interfaces/tileentity/ICoverable.java index 546b8d81..99ec88c1 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/ICoverable.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/ICoverable.java @@ -4,32 +4,41 @@ import gregtech.api.util.GT_CoverBehavior; import net.minecraft.item.ItemStack; public interface ICoverable extends IRedstoneTileEntity, IHasInventory, IBasicEnergyContainer { - public boolean canPlaceCoverIDAtSide (byte aSide, int aID); - public boolean canPlaceCoverItemAtSide (byte aSide, ItemStack aCover); - public boolean dropCover (byte aSide, byte aDroppedSide, boolean aForced); - public void setCoverDataAtSide (byte aSide, int aData); - public void setCoverIDAtSide (byte aSide, int aID); - public void setCoverItemAtSide (byte aSide, ItemStack aCover); - public int getCoverDataAtSide (byte aSide); - public int getCoverIDAtSide (byte aSide); - public ItemStack getCoverItemAtSide (byte aSide); - public GT_CoverBehavior getCoverBehaviorAtSide (byte aSide); - - /** - * For use by the regular MetaTileEntities. Returns the Cover Manipulated input Redstone. - * Don't use this if you are a Cover Behavior. Only for MetaTileEntities. - */ - public byte getInternalInputRedstoneSignal(byte aSide); - - /** - * For use by the regular MetaTileEntities. This makes it not conflict with Cover based Redstone Signals. - * Don't use this if you are a Cover Behavior. Only for MetaTileEntities. - */ - public void setInternalOutputRedstoneSignal(byte aSide, byte aStrength); - - /** - * Causes a general Cover Texture update. - * Sends 6 Integers to Client + causes @issueTextureUpdate() - */ - public void issueCoverUpdate(byte aSide); + public boolean canPlaceCoverIDAtSide(byte aSide, int aID); + + public boolean canPlaceCoverItemAtSide(byte aSide, ItemStack aCover); + + public boolean dropCover(byte aSide, byte aDroppedSide, boolean aForced); + + public void setCoverDataAtSide(byte aSide, int aData); + + public void setCoverIDAtSide(byte aSide, int aID); + + public void setCoverItemAtSide(byte aSide, ItemStack aCover); + + public int getCoverDataAtSide(byte aSide); + + public int getCoverIDAtSide(byte aSide); + + public ItemStack getCoverItemAtSide(byte aSide); + + public GT_CoverBehavior getCoverBehaviorAtSide(byte aSide); + + /** + * For use by the regular MetaTileEntities. Returns the Cover Manipulated input Redstone. + * Don't use this if you are a Cover Behavior. Only for MetaTileEntities. + */ + public byte getInternalInputRedstoneSignal(byte aSide); + + /** + * For use by the regular MetaTileEntities. This makes it not conflict with Cover based Redstone Signals. + * Don't use this if you are a Cover Behavior. Only for MetaTileEntities. + */ + public void setInternalOutputRedstoneSignal(byte aSide, byte aStrength); + + /** + * Causes a general Cover Texture update. + * Sends 6 Integers to Client + causes @issueTextureUpdate() + */ + public void issueCoverUpdate(byte aSide); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IDigitalChest.java b/src/main/java/gregtech/api/interfaces/tileentity/IDigitalChest.java index d017a1d7..8f55b75f 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IDigitalChest.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IDigitalChest.java @@ -6,24 +6,26 @@ import net.minecraft.item.ItemStack; * You are allowed to include this File in your Download, as i will not change it. */ public interface IDigitalChest extends IHasWorldObjectAndCoords { - /** - * Is this even a TileEntity of a Digital Chest? - * I need things like this Function for MetaTileEntities, you MUST check this!!! - * Do not assume that it's a Digital Chest or similar Device, when it just implements this Interface. - */ - public boolean isDigitalChest(); - /** - * Gives an Array of Stacks with Size (of all the Data-stored Items) of the correspondent Item kinds (regular QChests have only one) - * Does NOT include the 64 "ready" Items inside the Slots, and neither the 128 Items in the overflow Buffer. - */ - public ItemStack[] getStoredItemData(); - /** - * A generic Interface for just setting the amount of contained Items - */ - public void setItemCount(int aCount); - - /** - * Gets the maximum Item count for this QChest alike Storage. This applies to the Data-Storage, not for the up to 192 buffered Items! - */ - public int getMaxItemCount(); + /** + * Is this even a TileEntity of a Digital Chest? + * I need things like this Function for MetaTileEntities, you MUST check this!!! + * Do not assume that it's a Digital Chest or similar Device, when it just implements this Interface. + */ + public boolean isDigitalChest(); + + /** + * Gives an Array of Stacks with Size (of all the Data-stored Items) of the correspondent Item kinds (regular QChests have only one) + * Does NOT include the 64 "ready" Items inside the Slots, and neither the 128 Items in the overflow Buffer. + */ + public ItemStack[] getStoredItemData(); + + /** + * A generic Interface for just setting the amount of contained Items + */ + public void setItemCount(int aCount); + + /** + * Gets the maximum Item count for this QChest alike Storage. This applies to the Data-Storage, not for the up to 192 buffered Items! + */ + public int getMaxItemCount(); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConductor.java b/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConductor.java index 96684de6..23846785 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConductor.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConductor.java @@ -4,37 +4,37 @@ import gregtech.api.enums.Materials; /** * Informative Class for Cables. Not used for now. - * + *

* Not all Data might be reliable. This is just for Information sake. */ public interface IEnergyConductor extends IEnergyConnected { - /** - * @return if this is actually a Cable. (you must check this) - */ - public boolean isConductor(); - - /** - * @return the maximum Voltage of the Cable. - */ - public long getMaxVoltage(); - - /** - * @return the maximum Amperage of the Cable, per Wire. - */ - public long getMaxAmperage(); - - /** - * @return the Loss of the Cable, per Meter. - */ - public long getLossPerMeter(); - - /** - * @return the Material the Cable consists of. (may return Materials._NULL) - */ - public Materials getCableMaterial(); - - /** - * @return the Material the Cable Insulation consists of. (may return Materials._NULL) - */ - public Materials getInsulationMaterial(); + /** + * @return if this is actually a Cable. (you must check this) + */ + public boolean isConductor(); + + /** + * @return the maximum Voltage of the Cable. + */ + public long getMaxVoltage(); + + /** + * @return the maximum Amperage of the Cable, per Wire. + */ + public long getMaxAmperage(); + + /** + * @return the Loss of the Cable, per Meter. + */ + public long getLossPerMeter(); + + /** + * @return the Material the Cable consists of. (may return Materials._NULL) + */ + public Materials getCableMaterial(); + + /** + * @return the Material the Cable Insulation consists of. (may return Materials._NULL) + */ + public Materials getInsulationMaterial(); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java b/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java index 09749380..b62ed450 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java @@ -1,6 +1,5 @@ package gregtech.api.interfaces.tileentity; -import static gregtech.api.enums.GT_Values.V; import cofh.api.energy.IEnergyReceiver; import gregtech.api.GregTech_API; import gregtech.api.util.GT_Utility; @@ -10,80 +9,88 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import static gregtech.api.enums.GT_Values.V; + /** * Interface for getting Connected to the GregTech Energy Network. - * + *

* This is all you need to connect to the GT Network. * IColoredTileEntity is needed for not connecting differently coloured Blocks to each other. * IHasWorldObjectAndCoords is needed for the InWorld related Stuff. @BaseTileEntity does implement most of that Interface. */ public interface IEnergyConnected extends IColoredTileEntity, IHasWorldObjectAndCoords { - /** - * Inject Energy Call for Electricity. Gets called by EnergyEmitters to inject Energy into your Block - * - * Note: you have to check for @inputEnergyFrom because the Network won't check for that by itself. - * - * @param aSide 0 - 5 = Vanilla Directions of YOUR Block the Energy gets inserted to. 6 = No specific Side (don't do Side checks for this Side) - * @return amount of used Amperes. 0 if not accepted anything. - */ - public long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage); - - /** - * Sided Energy Input - */ - public boolean inputEnergyFrom(byte aSide); - - /** - * Sided Energy Output - */ - public boolean outputsEnergyTo(byte aSide); - - /** - * Utility for the Network - */ - public static class Util { - /** - * Emits Energy to the E-net. Also compatible with adjacent IC2 TileEntities. - * @return the used Amperage. - */ - public static final long emitEnergyToNetwork(long aVoltage, long aAmperage, IEnergyConnected aEmitter) { - long rUsedAmperes = 0; - for (byte i = 0, j = 0; i < 6 && aAmperage > rUsedAmperes; i++) if (aEmitter.outputsEnergyTo(i)) { - j = GT_Utility.getOppositeSide(i); - TileEntity tTileEntity = aEmitter.getTileEntityAtSide(i); - if (tTileEntity instanceof IEnergyConnected) { - if (aEmitter.getColorization() >= 0) { - byte tColor = ((IEnergyConnected)tTileEntity).getColorization(); - if (tColor >= 0 && tColor != aEmitter.getColorization()) continue; - } - rUsedAmperes+=((IEnergyConnected)tTileEntity).injectEnergyUnits(j, aVoltage, aAmperage-rUsedAmperes); + /** + * Inject Energy Call for Electricity. Gets called by EnergyEmitters to inject Energy into your Block + *

+ * Note: you have to check for @inputEnergyFrom because the Network won't check for that by itself. + * + * @param aSide 0 - 5 = Vanilla Directions of YOUR Block the Energy gets inserted to. 6 = No specific Side (don't do Side checks for this Side) + * @return amount of used Amperes. 0 if not accepted anything. + */ + public long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage); + + /** + * Sided Energy Input + */ + public boolean inputEnergyFrom(byte aSide); + + /** + * Sided Energy Output + */ + public boolean outputsEnergyTo(byte aSide); + + /** + * Utility for the Network + */ + public static class Util { + /** + * Emits Energy to the E-net. Also compatible with adjacent IC2 TileEntities. + * + * @return the used Amperage. + */ + public static final long emitEnergyToNetwork(long aVoltage, long aAmperage, IEnergyConnected aEmitter) { + long rUsedAmperes = 0; + for (byte i = 0, j = 0; i < 6 && aAmperage > rUsedAmperes; i++) + if (aEmitter.outputsEnergyTo(i)) { + j = GT_Utility.getOppositeSide(i); + TileEntity tTileEntity = aEmitter.getTileEntityAtSide(i); + if (tTileEntity instanceof IEnergyConnected) { + if (aEmitter.getColorization() >= 0) { + byte tColor = ((IEnergyConnected) tTileEntity).getColorization(); + if (tColor >= 0 && tColor != aEmitter.getColorization()) continue; + } + rUsedAmperes += ((IEnergyConnected) tTileEntity).injectEnergyUnits(j, aVoltage, aAmperage - rUsedAmperes); // } else if (tTileEntity instanceof IEnergySink) { // if (((IEnergySink)tTileEntity).acceptsEnergyFrom((TileEntity)aEmitter, ForgeDirection.getOrientation(j))) { // while (aAmperage > rUsedAmperes && ((IEnergySink)tTileEntity).demandedEnergyUnits() > 0 && ((IEnergySink)tTileEntity).injectEnergyUnits(ForgeDirection.getOrientation(j), aVoltage) < aVoltage) rUsedAmperes++; // } - } else if (tTileEntity instanceof IEnergySink) { - if (((IEnergySink)tTileEntity).acceptsEnergyFrom((TileEntity)aEmitter, ForgeDirection.getOrientation(j))) { - while (aAmperage > rUsedAmperes && ((IEnergySink)tTileEntity).getDemandedEnergy() > 0 && ((IEnergySink)tTileEntity).injectEnergy(ForgeDirection.getOrientation(j), aVoltage, aVoltage) < aVoltage) rUsedAmperes++; - } - } else if(GregTech_API.mOutputRF && tTileEntity instanceof IEnergyReceiver){ - ForgeDirection tDirection = ForgeDirection.getOrientation(i).getOpposite(); - int rfOut = (int) (aVoltage * GregTech_API.mEUtoRF / 100); - if(((IEnergyReceiver)tTileEntity).receiveEnergy(tDirection, rfOut, true)==rfOut){ - ((IEnergyReceiver)tTileEntity).receiveEnergy(tDirection, rfOut, false); rUsedAmperes++; - } - if(GregTech_API.mRFExplosions && GregTech_API.sMachineExplosions && ((IEnergyReceiver)tTileEntity).getMaxEnergyStored(tDirection) < rfOut * 600){ - if(rfOut > 32 * GregTech_API.mEUtoRF / 100) { - int aExplosionPower = rfOut; - float tStrength = aExplosionPower rUsedAmperes && ((IEnergySink) tTileEntity).getDemandedEnergy() > 0 && ((IEnergySink) tTileEntity).injectEnergy(ForgeDirection.getOrientation(j), aVoltage, aVoltage) < aVoltage) + rUsedAmperes++; + } + } else if (GregTech_API.mOutputRF && tTileEntity instanceof IEnergyReceiver) { + ForgeDirection tDirection = ForgeDirection.getOrientation(i).getOpposite(); + int rfOut = (int) (aVoltage * GregTech_API.mEUtoRF / 100); + if (((IEnergyReceiver) tTileEntity).receiveEnergy(tDirection, rfOut, true) == rfOut) { + ((IEnergyReceiver) tTileEntity).receiveEnergy(tDirection, rfOut, false); + rUsedAmperes++; + } + if (GregTech_API.mRFExplosions && GregTech_API.sMachineExplosions && ((IEnergyReceiver) tTileEntity).getMaxEnergyStored(tDirection) < rfOut * 600) { + if (rfOut > 32 * GregTech_API.mEUtoRF / 100) { + int aExplosionPower = rfOut; + float tStrength = aExplosionPower < V[0] ? 1.0F : aExplosionPower < V[1] ? 2.0F : aExplosionPower < V[2] ? 3.0F : aExplosionPower < V[3] ? 4.0F : aExplosionPower < V[4] ? 5.0F : aExplosionPower < V[4] * 2 ? 6.0F : aExplosionPower < V[5] ? 7.0F : aExplosionPower < V[6] ? 8.0F : aExplosionPower < V[7] ? 9.0F : 10.0F; + int tX = tTileEntity.xCoord, tY = tTileEntity.yCoord, tZ = tTileEntity.zCoord; + World tWorld = tTileEntity.getWorldObj(); + GT_Utility.sendSoundToPlayers(tWorld, GregTech_API.sSoundList.get(209), 1.0F, -1, tX, tY, tZ); + tWorld.setBlock(tX, tY, tZ, Blocks.air); + if (GregTech_API.sMachineExplosions) + tWorld.createExplosion(null, tX + 0.5, tY + 0.5, tZ + 0.5, tStrength, true); + } + } + } + } + return rUsedAmperes; + } + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java index f6758f2c..7e86701f 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java @@ -1,84 +1,93 @@ package gregtech.api.interfaces.tileentity; +import cofh.api.energy.IEnergyReceiver; import gregtech.api.enums.SubTag; import gregtech.api.util.GT_Utility; import ic2.api.energy.tile.IEnergySink; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; -import cofh.api.energy.IEnergyReceiver; /** * THIS IS GOING TO BE USED IN 1.8 - * + *

* Interface for getting Connected to the GregTech Energy Network. - * + *

* This is all you need to connect to the GT Network. * IColoredTileEntity is needed for not connecting differently coloured Blocks to each other. * IHasWorldObjectAndCoords is needed for the InWorld related Stuff. @BaseTileEntity does implement most of that Interface. */ public interface IExperimentalEnergyTileEntity extends IColoredTileEntity, IHasWorldObjectAndCoords { - /** - * Inject Energy Call for Electricity. Gets called by EnergyEmitters to inject Energy into your Block - * - * Note: you have to check for @inputEnergyFrom because the Network won't check for that by itself. - * - * @param aSide 0 - 5 = Vanilla Directions of YOUR Block the Energy gets inserted to. 6 = No specific Side (don't do Side checks for this Side) - * @return amount of used Amperes. 0 if not accepted anything. - */ - public long injectEnergy(SubTag aEnergyType, byte aSide, long aPrimary, long aSecondary); - - /** Sided Energy Input */ - public boolean inputEnergyFrom(SubTag aEnergyType, byte aSide); - - /** Sided Energy Output */ - public boolean outputsEnergyTo(SubTag aEnergyType, byte aSide); - - /** Utility for the Network */ - public static class Util { - private static boolean RF_ENERGY = false, IC_ENERGY = false, CHECK_ALL = true; - public static int RF_PER_EU = 4; - - private static void checkAvailabilities() { - if (CHECK_ALL) { - try { - Class tClass = cofh.api.energy.IEnergyReceiver.class; - tClass.getCanonicalName(); - RF_ENERGY = true; - } catch(Throwable e) {/**/} - try { - Class tClass = ic2.api.energy.tile.IEnergySink.class; - tClass.getCanonicalName(); - IC_ENERGY = true; - } catch(Throwable e) {/**/} - CHECK_ALL = false; - } - } - - /** - * Emits Energy to the adjacent Blocks. Also compatible with adjacent IC2 TileEntities when electric and RF TileEntities when RedstoneFlux. - * @return the amount of used secondary value. - */ - public static final long emitEnergyToNetwork(SubTag aEnergyType, long aPrimary, long aSecondary, IExperimentalEnergyTileEntity aEmitter) { - long rUsedSecondary = 0; - checkAvailabilities(); - for (byte i = 0, j = 0; i < 6 && aSecondary > rUsedSecondary; i++) if (aEmitter.outputsEnergyTo(aEnergyType, i)) { - j = GT_Utility.getOppositeSide(i); - TileEntity tTileEntity = aEmitter.getTileEntityAtSide(i); - if (tTileEntity instanceof IExperimentalEnergyTileEntity) { - if (aEmitter.getColorization() >= 0) { - byte tColor = ((IExperimentalEnergyTileEntity)tTileEntity).getColorization(); - if (tColor >= 0 && tColor != aEmitter.getColorization()) continue; - } - rUsedSecondary+=((IExperimentalEnergyTileEntity)tTileEntity).injectEnergy(aEnergyType, j, aPrimary, aSecondary-rUsedSecondary); - } else if (IC_ENERGY && aEnergyType == SubTag.ENERGY_ELECTRICITY && tTileEntity instanceof IEnergySink) { - if (((IEnergySink)tTileEntity).acceptsEnergyFrom((TileEntity)aEmitter, ForgeDirection.getOrientation(j))) { - while (aSecondary > rUsedSecondary && ((IEnergySink)tTileEntity).getDemandedEnergy() > 0 && ((IEnergySink)tTileEntity).injectEnergy(ForgeDirection.getOrientation(j), aPrimary, aPrimary) < aPrimary) rUsedSecondary++; - } - } else if (RF_ENERGY && aEnergyType == SubTag.ENERGY_REDSTONE_FLUX && tTileEntity instanceof IEnergyReceiver && ((IEnergyReceiver)tTileEntity).canConnectEnergy(ForgeDirection.getOrientation(j))) { - rUsedSecondary+=((IEnergyReceiver)tTileEntity).receiveEnergy(ForgeDirection.getOrientation(j), (int)aSecondary, false); - } - } - return rUsedSecondary; - } - } + /** + * Inject Energy Call for Electricity. Gets called by EnergyEmitters to inject Energy into your Block + *

+ * Note: you have to check for @inputEnergyFrom because the Network won't check for that by itself. + * + * @param aSide 0 - 5 = Vanilla Directions of YOUR Block the Energy gets inserted to. 6 = No specific Side (don't do Side checks for this Side) + * @return amount of used Amperes. 0 if not accepted anything. + */ + public long injectEnergy(SubTag aEnergyType, byte aSide, long aPrimary, long aSecondary); + + /** + * Sided Energy Input + */ + public boolean inputEnergyFrom(SubTag aEnergyType, byte aSide); + + /** + * Sided Energy Output + */ + public boolean outputsEnergyTo(SubTag aEnergyType, byte aSide); + + /** + * Utility for the Network + */ + public static class Util { + public static int RF_PER_EU = 4; + private static boolean RF_ENERGY = false, IC_ENERGY = false, CHECK_ALL = true; + + private static void checkAvailabilities() { + if (CHECK_ALL) { + try { + Class tClass = cofh.api.energy.IEnergyReceiver.class; + tClass.getCanonicalName(); + RF_ENERGY = true; + } catch (Throwable e) {/**/} + try { + Class tClass = ic2.api.energy.tile.IEnergySink.class; + tClass.getCanonicalName(); + IC_ENERGY = true; + } catch (Throwable e) {/**/} + CHECK_ALL = false; + } + } + + /** + * Emits Energy to the adjacent Blocks. Also compatible with adjacent IC2 TileEntities when electric and RF TileEntities when RedstoneFlux. + * + * @return the amount of used secondary value. + */ + public static final long emitEnergyToNetwork(SubTag aEnergyType, long aPrimary, long aSecondary, IExperimentalEnergyTileEntity aEmitter) { + long rUsedSecondary = 0; + checkAvailabilities(); + for (byte i = 0, j = 0; i < 6 && aSecondary > rUsedSecondary; i++) + if (aEmitter.outputsEnergyTo(aEnergyType, i)) { + j = GT_Utility.getOppositeSide(i); + TileEntity tTileEntity = aEmitter.getTileEntityAtSide(i); + if (tTileEntity instanceof IExperimentalEnergyTileEntity) { + if (aEmitter.getColorization() >= 0) { + byte tColor = ((IExperimentalEnergyTileEntity) tTileEntity).getColorization(); + if (tColor >= 0 && tColor != aEmitter.getColorization()) continue; + } + rUsedSecondary += ((IExperimentalEnergyTileEntity) tTileEntity).injectEnergy(aEnergyType, j, aPrimary, aSecondary - rUsedSecondary); + } else if (IC_ENERGY && aEnergyType == SubTag.ENERGY_ELECTRICITY && tTileEntity instanceof IEnergySink) { + if (((IEnergySink) tTileEntity).acceptsEnergyFrom((TileEntity) aEmitter, ForgeDirection.getOrientation(j))) { + while (aSecondary > rUsedSecondary && ((IEnergySink) tTileEntity).getDemandedEnergy() > 0 && ((IEnergySink) tTileEntity).injectEnergy(ForgeDirection.getOrientation(j), aPrimary, aPrimary) < aPrimary) + rUsedSecondary++; + } + } else if (RF_ENERGY && aEnergyType == SubTag.ENERGY_REDSTONE_FLUX && tTileEntity instanceof IEnergyReceiver && ((IEnergyReceiver) tTileEntity).canConnectEnergy(ForgeDirection.getOrientation(j))) { + rUsedSecondary += ((IEnergyReceiver) tTileEntity).receiveEnergy(ForgeDirection.getOrientation(j), (int) aSecondary, false); + } + } + return rUsedSecondary; + } + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IFibreConnected.java b/src/main/java/gregtech/api/interfaces/tileentity/IFibreConnected.java index 7694b3d1..edcf5bdb 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IFibreConnected.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IFibreConnected.java @@ -4,28 +4,28 @@ package gregtech.api.interfaces.tileentity; * This File has just internal Information about the Fibre Redstone State of a TileEntity */ public interface IFibreConnected extends IColoredTileEntity, IHasWorldObjectAndCoords { - /** - * If this Blocks accepts Fibre from this Side - */ - public void inputFibreFrom(byte aSide); - - /** - * If this Blocks emits Fibre to this Side - */ - public void outputsFibreTo(byte aSide); - - /** - * Sets the Signal this Blocks outputs to this Fibre Color - */ - public void setFibreOutput(byte aSide, byte aColor, byte aRedstoneStrength); - - /** - * Gets the Signal this Blocks outputs to this Fibre Color - */ - public byte getFibreOutput(byte aSide, byte aColor); - - /** - * Gets the Signal this Blocks receives from this Fibre Color - */ - public byte getFibreInput(byte aSide, byte aColor); + /** + * If this Blocks accepts Fibre from this Side + */ + public void inputFibreFrom(byte aSide); + + /** + * If this Blocks emits Fibre to this Side + */ + public void outputsFibreTo(byte aSide); + + /** + * Sets the Signal this Blocks outputs to this Fibre Color + */ + public void setFibreOutput(byte aSide, byte aColor, byte aRedstoneStrength); + + /** + * Gets the Signal this Blocks outputs to this Fibre Color + */ + public byte getFibreOutput(byte aSide, byte aColor); + + /** + * Gets the Signal this Blocks receives from this Fibre Color + */ + public byte getFibreInput(byte aSide, byte aColor); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IGearEnergyTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IGearEnergyTileEntity.java index 6ae032b8..796f0a11 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IGearEnergyTileEntity.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IGearEnergyTileEntity.java @@ -1,16 +1,17 @@ package gregtech.api.interfaces.tileentity; public interface IGearEnergyTileEntity { - /** - * If Rotation Energy can be accepted on this Side. - * This means that the Gear/Axle will connect to this Side, and can cause the Gear/Axle to stop if the Energy isn't accepted. - */ - public boolean acceptsRotationalEnergy(byte aSide); - - /** - * Inject Energy Call for Rotational Energy. - * Rotation Energy can't be stored, this is just for things like internal Dynamos, which convert it into Energy, or into Progress. - * @param aSpeed Positive = Clockwise, Negative = Counterclockwise - */ - public boolean injectRotationalEnergy(byte aSide, long aSpeed, long aEnergy); + /** + * If Rotation Energy can be accepted on this Side. + * This means that the Gear/Axle will connect to this Side, and can cause the Gear/Axle to stop if the Energy isn't accepted. + */ + public boolean acceptsRotationalEnergy(byte aSide); + + /** + * Inject Energy Call for Rotational Energy. + * Rotation Energy can't be stored, this is just for things like internal Dynamos, which convert it into Energy, or into Progress. + * + * @param aSpeed Positive = Clockwise, Negative = Counterclockwise + */ + public boolean injectRotationalEnergy(byte aSide, long aSpeed, long aEnergy); } diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IGregTechDeviceInformation.java b/src/main/java/gregtech/api/interfaces/tileentity/IGregTechDeviceInformation.java index f6393f5d..e4bb4f13 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IGregTechDeviceInformation.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IGregTechDeviceInformation.java @@ -4,17 +4,18 @@ package gregtech.api.interfaces.tileentity; * You are allowed to include this File in your Download, as i will not change it. */ public interface IGregTechDeviceInformation { - /** - * Is this even a TileEntity which allows GregTech Sensor Kits? - * I need things like this Function for MetaTileEntities, you MUST check this!!! - * Do not assume that it's a Information returning Device, when it just implements this Interface. - */ - public boolean isGivingInformation(); - - /** - * Up to 8 Strings can be returned. - * Note: If you insert "\\\\" in the String it tries to translate seperate Parts of the String instead of the String as a whole. - * @return an Array of Information Strings. Don't return null! - */ - public String[] getInfoData(); + /** + * Is this even a TileEntity which allows GregTech Sensor Kits? + * I need things like this Function for MetaTileEntities, you MUST check this!!! + * Do not assume that it's a Information returning Device, when it just implements this Interface. + */ + public boolean isGivingInformation(); + + /** + * Up to 8 Strings can be returned. + * Note: If you insert "\\\\" in the String it tries to translate seperate Parts of the String instead of the String as a whole. + * + * @return an Array of Information Strings. Don't return null! + */ + public String[] getInfoData(); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java index 7419214d..2170b654 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java @@ -2,10 +2,6 @@ package gregtech.api.interfaces.tileentity; import gregtech.api.interfaces.IDescribable; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; - -import java.util.ArrayList; -import java.util.List; - import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -14,111 +10,118 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.fluids.IFluidHandler; +import java.util.ArrayList; +import java.util.List; + /** * A simple compound Interface for all my TileEntities. - * + *

* Also delivers most of the Informations about my TileEntities. - * + *

* It can cause Problems to include this Interface! */ public interface IGregTechTileEntity extends ITexturedTileEntity, IGearEnergyTileEntity, ICoverable, IFluidHandler, ITurnable, IGregTechDeviceInformation, IUpgradableMachine, IDigitalChest, IDescribable, IMachineBlockUpdateable { - /** - * gets the Error displayed on the GUI - */ - public int getErrorDisplayID(); - - /** - * sets the Error displayed on the GUI - */ - public void setErrorDisplayID(int aErrorID); + /** + * gets the Error displayed on the GUI + */ + public int getErrorDisplayID(); - /** - * @return the MetaID of the Block or the MetaTileEntity ID. - */ - public int getMetaTileID(); - - /** - * Internal Usage only! - */ - public int setMetaTileID(short aID); + /** + * sets the Error displayed on the GUI + */ + public void setErrorDisplayID(int aErrorID); + + /** + * @return the MetaID of the Block or the MetaTileEntity ID. + */ + public int getMetaTileID(); + + /** + * Internal Usage only! + */ + public int setMetaTileID(short aID); + + /** + * @return the MetaTileEntity which is belonging to this, or null if it doesnt has one. + */ + public IMetaTileEntity getMetaTileEntity(); + + /** + * Sets the MetaTileEntity. + * Even though this uses the Universal Interface, certain BaseMetaTileEntities only accept one kind of MetaTileEntity + * so only use this if you are sure its the correct one or you will get a Class cast Error. + * + * @param aMetaTileEntity + */ + public void setMetaTileEntity(IMetaTileEntity aMetaTileEntity); + + /** + * Causes a general Texture update. + *

+ * Only used Client Side to mark Blocks dirty. + */ + public void issueTextureUpdate(); + + /** + * Causes the Machine to send its initial Data, like Covers and its ID. + */ + public void issueClientUpdate(); + + /** + * causes Explosion. Strength in Overload-EU + */ + public void doExplosion(long aExplosionEU); - /** - * @return the MetaTileEntity which is belonging to this, or null if it doesnt has one. - */ - public IMetaTileEntity getMetaTileEntity(); - - /** - * Sets the MetaTileEntity. - * Even though this uses the Universal Interface, certain BaseMetaTileEntities only accept one kind of MetaTileEntity - * so only use this if you are sure its the correct one or you will get a Class cast Error. - * @param aMetaTileEntity - */ - public void setMetaTileEntity(IMetaTileEntity aMetaTileEntity); - - /** - * Causes a general Texture update. - * - * Only used Client Side to mark Blocks dirty. - */ - public void issueTextureUpdate(); - - /** - * Causes the Machine to send its initial Data, like Covers and its ID. - */ - public void issueClientUpdate(); - - /** - * causes Explosion. Strength in Overload-EU - */ - public void doExplosion(long aExplosionEU); - /** * Sets the Block on Fire in all 6 Directions */ public void setOnFire(); - + /** * Sets the Block to Fire */ public void setToFire(); - + /** * Sets the Owner of the Machine. Returns the set Name. */ public String setOwnerName(String aName); - + /** * gets the Name of the Machines Owner or "Player" if not set. */ public String getOwnerName(); - - /** - * Sets initial Values from NBT - * @param tNBT is the NBTTag of readFromNBT - * @param aID is the MetaTileEntityID - */ - public void setInitialValuesAsNBT(NBTTagCompound aNBT, short aID); - - /** - * Called when leftclicking the TileEntity - */ - public void onLeftclick(EntityPlayer aPlayer); - - /** - * Called when rightclicking the TileEntity - */ - public boolean onRightclick(EntityPlayer aPlayer, byte aSide, float par1, float par2, float par3); - - public float getBlastResistance(byte aSide); - - public ArrayList getDrops(); - - /** - * 255 = 100% - */ - public int getLightOpacity(); - - public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List outputAABB, Entity collider); - public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ); - public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider); + + /** + * Sets initial Values from NBT + * + * @param tNBT is the NBTTag of readFromNBT + * @param aID is the MetaTileEntityID + */ + public void setInitialValuesAsNBT(NBTTagCompound aNBT, short aID); + + /** + * Called when leftclicking the TileEntity + */ + public void onLeftclick(EntityPlayer aPlayer); + + /** + * Called when rightclicking the TileEntity + */ + public boolean onRightclick(EntityPlayer aPlayer, byte aSide, float par1, float par2, float par3); + + public float getBlastResistance(byte aSide); + + public ArrayList getDrops(); + + /** + * 255 = 100% + */ + public int getLightOpacity(); + + public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List outputAABB, Entity collider); + + public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ); + + public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IHasInventory.java b/src/main/java/gregtech/api/interfaces/tileentity/IHasInventory.java index 3b3d4ee7..3bd8b042 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IHasInventory.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IHasInventory.java @@ -4,30 +4,30 @@ import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; public interface IHasInventory extends ISidedInventory, IHasWorldObjectAndCoords { - - /** - * if the Inventory of this TileEntity got modified this tick - */ - public boolean hasInventoryBeenModified(); - /** - * if this is just a Holoslot - */ - public boolean isValidSlot(int aIndex); - - /** - * Tries to add a Stack to the Slot. - * It doesn't matter if the Slot is valid or invalid as described at the Function above. - * - * @return true if aStack == null, then false if aIndex is out of bounds, then false if aStack cannot be added, and then true if aStack has been added - */ - public boolean addStackToSlot(int aIndex, ItemStack aStack); - - /** - * Tries to add X Items of a Stack to the Slot. - * It doesn't matter if the Slot is valid or invalid as described at the Function above. - * - * @return true if aStack == null, then false if aIndex is out of bounds, then false if aStack cannot be added, and then true if aStack has been added - */ - public boolean addStackToSlot(int aIndex, ItemStack aStack, int aAmount); + /** + * if the Inventory of this TileEntity got modified this tick + */ + public boolean hasInventoryBeenModified(); + + /** + * if this is just a Holoslot + */ + public boolean isValidSlot(int aIndex); + + /** + * Tries to add a Stack to the Slot. + * It doesn't matter if the Slot is valid or invalid as described at the Function above. + * + * @return true if aStack == null, then false if aIndex is out of bounds, then false if aStack cannot be added, and then true if aStack has been added + */ + public boolean addStackToSlot(int aIndex, ItemStack aStack); + + /** + * Tries to add X Items of a Stack to the Slot. + * It doesn't matter if the Slot is valid or invalid as described at the Function above. + * + * @return true if aStack == null, then false if aIndex is out of bounds, then false if aStack cannot be added, and then true if aStack has been added + */ + public boolean addStackToSlot(int aIndex, ItemStack aStack, int aAmount); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IHasWorldObjectAndCoords.java b/src/main/java/gregtech/api/interfaces/tileentity/IHasWorldObjectAndCoords.java index c6ebb56e..c86ac0f3 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IHasWorldObjectAndCoords.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IHasWorldObjectAndCoords.java @@ -11,122 +11,159 @@ import net.minecraftforge.fluids.IFluidHandler; /** * This is a bunch of Functions my TileEntities provide, to make life much easier, and to get rid of internal TileEntity stuff. - * + *

* This also makes access to adjacent TileEntities more Efficient. - * + *

* Note: It doesn't have to be a TileEntity in certain cases! And only certain cases, such as the Recipe checking of the findRecipe Function. */ public interface IHasWorldObjectAndCoords { - public World getWorld(); - public int getXCoord(); - public short getYCoord(); - public int getZCoord(); - - public boolean isServerSide(); + public World getWorld(); + + public int getXCoord(); + + public short getYCoord(); + + public int getZCoord(); + + public boolean isServerSide(); + public boolean isClientSide(); - + public int getRandomNumber(int aRange); - - public TileEntity getTileEntity(int aX, int aY, int aZ); + + public TileEntity getTileEntity(int aX, int aY, int aZ); + public TileEntity getTileEntityOffset(int aX, int aY, int aZ); - public TileEntity getTileEntityAtSide(byte aSide); - public TileEntity getTileEntityAtSideAndDistance(byte aSide, int aDistance); - - public IInventory getIInventory(int aX, int aY, int aZ); + + public TileEntity getTileEntityAtSide(byte aSide); + + public TileEntity getTileEntityAtSideAndDistance(byte aSide, int aDistance); + + public IInventory getIInventory(int aX, int aY, int aZ); + public IInventory getIInventoryOffset(int aX, int aY, int aZ); - public IInventory getIInventoryAtSide(byte aSide); - public IInventory getIInventoryAtSideAndDistance(byte aSide, int aDistance); - - public IFluidHandler getITankContainer(int aX, int aY, int aZ); + + public IInventory getIInventoryAtSide(byte aSide); + + public IInventory getIInventoryAtSideAndDistance(byte aSide, int aDistance); + + public IFluidHandler getITankContainer(int aX, int aY, int aZ); + public IFluidHandler getITankContainerOffset(int aX, int aY, int aZ); - public IFluidHandler getITankContainerAtSide(byte aSide); - public IFluidHandler getITankContainerAtSideAndDistance(byte aSide, int aDistance); - - public IGregTechTileEntity getIGregTechTileEntity(int aX, int aY, int aZ); + + public IFluidHandler getITankContainerAtSide(byte aSide); + + public IFluidHandler getITankContainerAtSideAndDistance(byte aSide, int aDistance); + + public IGregTechTileEntity getIGregTechTileEntity(int aX, int aY, int aZ); + public IGregTechTileEntity getIGregTechTileEntityOffset(int aX, int aY, int aZ); - public IGregTechTileEntity getIGregTechTileEntityAtSide(byte aSide); - public IGregTechTileEntity getIGregTechTileEntityAtSideAndDistance(byte aSide, int aDistance); - + + public IGregTechTileEntity getIGregTechTileEntityAtSide(byte aSide); + + public IGregTechTileEntity getIGregTechTileEntityAtSideAndDistance(byte aSide, int aDistance); + public Block getBlock(int aX, int aY, int aZ); + public Block getBlockOffset(int aX, int aY, int aZ); + public Block getBlockAtSide(byte aSide); + public Block getBlockAtSideAndDistance(byte aSide, int aDistance); - - public byte getMetaID(int aX, int aY, int aZ); + + public byte getMetaID(int aX, int aY, int aZ); + public byte getMetaIDOffset(int aX, int aY, int aZ); + public byte getMetaIDAtSide(byte aSide); + public byte getMetaIDAtSideAndDistance(byte aSide, int aDistance); - - public byte getLightLevel(int aX, int aY, int aZ); + + public byte getLightLevel(int aX, int aY, int aZ); + public byte getLightLevelOffset(int aX, int aY, int aZ); + public byte getLightLevelAtSide(byte aSide); + public byte getLightLevelAtSideAndDistance(byte aSide, int aDistance); - public boolean getOpacity(int aX, int aY, int aZ); + public boolean getOpacity(int aX, int aY, int aZ); + public boolean getOpacityOffset(int aX, int aY, int aZ); + public boolean getOpacityAtSide(byte aSide); + public boolean getOpacityAtSideAndDistance(byte aSide, int aDistance); - - public boolean getSky(int aX, int aY, int aZ); + + public boolean getSky(int aX, int aY, int aZ); + public boolean getSkyOffset(int aX, int aY, int aZ); + public boolean getSkyAtSide(byte aSide); + public boolean getSkyAtSideAndDistance(byte aSide, int aDistance); - public boolean getAir(int aX, int aY, int aZ); + public boolean getAir(int aX, int aY, int aZ); + public boolean getAirOffset(int aX, int aY, int aZ); + public boolean getAirAtSide(byte aSide); + public boolean getAirAtSideAndDistance(byte aSide, int aDistance); - + public BiomeGenBase getBiome(); + public BiomeGenBase getBiome(int aX, int aZ); - - public int getOffsetX(byte aSide, int aMultiplier); + + public int getOffsetX(byte aSide, int aMultiplier); + public short getOffsetY(byte aSide, int aMultiplier); - public int getOffsetZ(byte aSide, int aMultiplier); - + + public int getOffsetZ(byte aSide, int aMultiplier); + /** * Checks if the TileEntity is Invalid or Unloaded. Stupid Minecraft cannot do that btw. */ public boolean isDead(); - + /** * Sends a Block Event to the Client TileEntity, the byte Parameters are only for validation as Minecraft doesn't properly write Packet Data. */ public void sendBlockEvent(byte aID, byte aValue); - - /** - * @return the Time this TileEntity has been loaded. - */ - public long getTimer(); - + + /** + * @return the Time this TileEntity has been loaded. + */ + public long getTimer(); + /** * Sets the Light Level of this Block on a Scale of 0 - 15 * It could be that it doesn't work. This is just for convenience. */ public void setLightValue(byte aLightValue); - + /** * Function of the regular TileEntity */ public void writeToNBT(NBTTagCompound aNBT); - + /** * Function of the regular TileEntity */ public void readFromNBT(NBTTagCompound aNBT); - + /** * Function of the regular TileEntity */ public boolean isInvalidTileEntity(); - - /** - * Opens the GUI with this ID of this MetaTileEntity - */ - public boolean openGUI(EntityPlayer aPlayer, int aID); - - /** - * Opens the GUI with the ID = 0 of this TileEntity - */ - public boolean openGUI(EntityPlayer aPlayer); + + /** + * Opens the GUI with this ID of this MetaTileEntity + */ + public boolean openGUI(EntityPlayer aPlayer, int aID); + + /** + * Opens the GUI with the ID = 0 of this TileEntity + */ + public boolean openGUI(EntityPlayer aPlayer); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IMachineBlockUpdateable.java b/src/main/java/gregtech/api/interfaces/tileentity/IMachineBlockUpdateable.java index ba8650f2..bb344193 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IMachineBlockUpdateable.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IMachineBlockUpdateable.java @@ -3,14 +3,14 @@ package gregtech.api.interfaces.tileentity; /** * You are allowed to include this File in your Download, as i will not change it. * Simple Interface for Machines, which need my Machine Blocks for MultiBlockStructures. - * + *

* Every Machine implementing this Interface will conduct Machine updates. */ public interface IMachineBlockUpdateable { - /** - * The Machine Update, which is called when the Machine needs an Update of its Parts. - * I suggest to wait 1-5 seconds before actually checking the Machine Parts. - * RP-Frames could for example cause Problems when you instacheck the Machine Parts. - */ - public void onMachineBlockUpdate(); + /** + * The Machine Update, which is called when the Machine needs an Update of its Parts. + * I suggest to wait 1-5 seconds before actually checking the Machine Parts. + * RP-Frames could for example cause Problems when you instacheck the Machine Parts. + */ + public void onMachineBlockUpdate(); } diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java b/src/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java index 78f238aa..00bb7b9a 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java @@ -4,66 +4,66 @@ package gregtech.api.interfaces.tileentity; * For Machines which have Progress */ public interface IMachineProgress extends IHasWorldObjectAndCoords { - /** - * returns the Progress this Machine has made. Warning, this can also be negative! - */ - public int getProgress(); - - /** - * returns the Progress the Machine needs to complete its task. - */ - public int getMaxProgress(); - - /** - * increases the Progress of the Machine - */ - public boolean increaseProgress(int aProgressAmountInTicks); - - /** - * returns if the Machine currently does something. - */ - public boolean hasThingsToDo(); - - /** - * returns if the Machine just got enableWorking called after being disabled. - * Used for Translocators, which need to check if they need to transfer immediately. - */ - public boolean hasWorkJustBeenEnabled(); - - /** - * allows Machine to work - */ - public void enableWorking(); - - /** - * disallows Machine to work - */ - public void disableWorking(); - - /** - * if the Machine is allowed to Work - */ - public boolean isAllowedToWork(); - - /** - * used to control Machines via Redstone Signal Strength by special Covers - * only Values between 0 and 15! - */ - public void setWorkDataValue(byte aValue); - - /** - * used to control Machines via Redstone Signal Strength by special Covers - * In case of 0 the Machine is very likely doing nothing, or is just not being controlled at all. - */ - public byte getWorkDataValue(); + /** + * returns the Progress this Machine has made. Warning, this can also be negative! + */ + public int getProgress(); - /** - * gives you the Active Status of the Machine - */ - public boolean isActive(); - - /** - * sets the visible Active Status of the Machine - */ - public void setActive(boolean aActive); + /** + * returns the Progress the Machine needs to complete its task. + */ + public int getMaxProgress(); + + /** + * increases the Progress of the Machine + */ + public boolean increaseProgress(int aProgressAmountInTicks); + + /** + * returns if the Machine currently does something. + */ + public boolean hasThingsToDo(); + + /** + * returns if the Machine just got enableWorking called after being disabled. + * Used for Translocators, which need to check if they need to transfer immediately. + */ + public boolean hasWorkJustBeenEnabled(); + + /** + * allows Machine to work + */ + public void enableWorking(); + + /** + * disallows Machine to work + */ + public void disableWorking(); + + /** + * if the Machine is allowed to Work + */ + public boolean isAllowedToWork(); + + /** + * used to control Machines via Redstone Signal Strength by special Covers + * In case of 0 the Machine is very likely doing nothing, or is just not being controlled at all. + */ + public byte getWorkDataValue(); + + /** + * used to control Machines via Redstone Signal Strength by special Covers + * only Values between 0 and 15! + */ + public void setWorkDataValue(byte aValue); + + /** + * gives you the Active Status of the Machine + */ + public boolean isActive(); + + /** + * sets the visible Active Status of the Machine + */ + public void setActive(boolean aActive); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IPipeRenderedTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IPipeRenderedTileEntity.java index 0ddc76a6..6618e4b4 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IPipeRenderedTileEntity.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IPipeRenderedTileEntity.java @@ -3,7 +3,9 @@ package gregtech.api.interfaces.tileentity; import gregtech.api.interfaces.ITexture; public interface IPipeRenderedTileEntity extends ICoverable, ITexturedTileEntity { - public float getThickNess(); - public byte getConnections(); - public ITexture[] getTextureUncovered(byte aSide); + public float getThickNess(); + + public byte getConnections(); + + public ITexture[] getTextureUncovered(byte aSide); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneEmitter.java b/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneEmitter.java index 720f7e9b..5be185b4 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneEmitter.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneEmitter.java @@ -4,34 +4,34 @@ package gregtech.api.interfaces.tileentity; * This File has just internal Information about the Redstone State of a TileEntity */ public interface IRedstoneEmitter extends IHasWorldObjectAndCoords { - /** - * gets the Redstone Level the TileEntity should emit to the given Output Side - */ - byte getOutputRedstoneSignal(byte aSide); - - /** - * sets the Redstone Level the TileEntity should emit to the given Output Side - * - * Do not use this if ICoverable is implemented. ICoverable has @getInternalOutputRedstoneSignal for Machine internal Output Redstone, so that it doesnt conflict with Cover Redstone. - * This sets the true Redstone Output Signal. Only Cover Behaviors should use it, not MetaTileEntities. - */ - void setOutputRedstoneSignal(byte aSide, byte aStrength); - - /** - * gets the Redstone Level the TileEntity should emit to the given Output Side - */ - byte getStrongOutputRedstoneSignal(byte aSide); - - /** - * sets the Redstone Level the TileEntity should emit to the given Output Side - * - * Do not use this if ICoverable is implemented. ICoverable has @getInternalOutputRedstoneSignal for Machine internal Output Redstone, so that it doesnt conflict with Cover Redstone. - * This sets the true Redstone Output Signal. Only Cover Behaviors should use it, not MetaTileEntities. - */ - void setStrongOutputRedstoneSignal(byte aSide, byte aStrength); - - /** - * Gets the Output for the comparator on the given Side - */ - byte getComparatorValue(byte aSide); + /** + * gets the Redstone Level the TileEntity should emit to the given Output Side + */ + byte getOutputRedstoneSignal(byte aSide); + + /** + * sets the Redstone Level the TileEntity should emit to the given Output Side + *

+ * Do not use this if ICoverable is implemented. ICoverable has @getInternalOutputRedstoneSignal for Machine internal Output Redstone, so that it doesnt conflict with Cover Redstone. + * This sets the true Redstone Output Signal. Only Cover Behaviors should use it, not MetaTileEntities. + */ + void setOutputRedstoneSignal(byte aSide, byte aStrength); + + /** + * gets the Redstone Level the TileEntity should emit to the given Output Side + */ + byte getStrongOutputRedstoneSignal(byte aSide); + + /** + * sets the Redstone Level the TileEntity should emit to the given Output Side + *

+ * Do not use this if ICoverable is implemented. ICoverable has @getInternalOutputRedstoneSignal for Machine internal Output Redstone, so that it doesnt conflict with Cover Redstone. + * This sets the true Redstone Output Signal. Only Cover Behaviors should use it, not MetaTileEntities. + */ + void setStrongOutputRedstoneSignal(byte aSide, byte aStrength); + + /** + * Gets the Output for the comparator on the given Side + */ + byte getComparatorValue(byte aSide); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneReceiver.java b/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneReceiver.java index f4c63c80..f5b0f76b 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneReceiver.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneReceiver.java @@ -4,26 +4,26 @@ package gregtech.api.interfaces.tileentity; * This File has just internal Information about the Redstone State of a TileEntity */ public interface IRedstoneReceiver extends IHasWorldObjectAndCoords { - /** - * gets the Redstone Level of the TileEntity to the given Input Side - * - * Do not use this if ICoverable is implemented. ICoverable has @getInternalInputRedstoneSignal for Machine internal Input Redstone - * This returns the true incoming Redstone Signal. Only Cover Behaviors should check it, not MetaTileEntities. - */ - public byte getInputRedstoneSignal(byte aSide); - - /** - * gets the strongest Redstone Level the TileEntity receives - */ - public byte getStrongestRedstone(); - - /** - * gets if the TileEntity receives Redstone - */ + /** + * gets the Redstone Level of the TileEntity to the given Input Side + *

+ * Do not use this if ICoverable is implemented. ICoverable has @getInternalInputRedstoneSignal for Machine internal Input Redstone + * This returns the true incoming Redstone Signal. Only Cover Behaviors should check it, not MetaTileEntities. + */ + public byte getInputRedstoneSignal(byte aSide); + + /** + * gets the strongest Redstone Level the TileEntity receives + */ + public byte getStrongestRedstone(); + + /** + * gets if the TileEntity receives Redstone + */ public boolean getRedstone(); - - /** - * gets if the TileEntity receives Redstone at this Side - */ + + /** + * gets if the TileEntity receives Redstone at this Side + */ public boolean getRedstone(byte aSide); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneTileEntity.java index a1d2b533..f1cf01d2 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneTileEntity.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneTileEntity.java @@ -4,14 +4,14 @@ package gregtech.api.interfaces.tileentity; * This File has just internal Information about the Redstone State of a TileEntity */ public interface IRedstoneTileEntity extends IRedstoneEmitter, IRedstoneReceiver { - /** - * enables/disables Redstone Output in general. - */ - void setGenericRedstoneOutput(boolean aOnOff); - - /** - * Causes a general Block update. - * Sends nothing to Client, just causes a Block Update. - */ - public void issueBlockUpdate(); + /** + * enables/disables Redstone Output in general. + */ + void setGenericRedstoneOutput(boolean aOnOff); + + /** + * Causes a general Block update. + * Sends nothing to Client, just causes a Block Update. + */ + public void issueBlockUpdate(); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/tileentity/ITexturedTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/ITexturedTileEntity.java index 3c0782ba..ea46c9cc 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/ITexturedTileEntity.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/ITexturedTileEntity.java @@ -3,8 +3,8 @@ package gregtech.api.interfaces.tileentity; import gregtech.api.interfaces.ITexture; public interface ITexturedTileEntity { - /** - * @return the Textures rendered by the GT Rendering - */ - public ITexture[] getTexture(byte aSide); + /** + * @return the Textures rendered by the GT Rendering + */ + public ITexture[] getTexture(byte aSide); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/tileentity/ITurnable.java b/src/main/java/gregtech/api/interfaces/tileentity/ITurnable.java index 1605bd67..dca9c5ce 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/ITurnable.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/ITurnable.java @@ -5,29 +5,29 @@ package gregtech.api.interfaces.tileentity; * Implemented by all my Machines. However without any security checks, if the Players are even allowed to rotate it. */ public interface ITurnable { - /** - * Get the block's facing. - * - * @return front Block facing - */ - byte getFrontFacing(); - - /** - * Get the block's back facing. - * - * @return opposite Block facing - */ - byte getBackFacing(); - - /** - * Determine if the wrench can be used to set the block's facing. - */ - boolean isValidFacing(byte aSide); - - /** - * Set the block's facing - * - * @param facing facing to set the block to - */ - void setFrontFacing(byte aSide); + /** + * Get the block's facing. + * + * @return front Block facing + */ + byte getFrontFacing(); + + /** + * Set the block's facing + * + * @param facing facing to set the block to + */ + void setFrontFacing(byte aSide); + + /** + * Get the block's back facing. + * + * @return opposite Block facing + */ + byte getBackFacing(); + + /** + * Determine if the wrench can be used to set the block's facing. + */ + boolean isValidFacing(byte aSide); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IUpgradableMachine.java b/src/main/java/gregtech/api/interfaces/tileentity/IUpgradableMachine.java index 97360fd5..0d027f6e 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IUpgradableMachine.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IUpgradableMachine.java @@ -5,38 +5,38 @@ package gregtech.api.interfaces.tileentity; * To access my Machines a bit easier */ public interface IUpgradableMachine extends IMachineProgress { - /** - * Accepts Upgrades. Some Machines have an Upgrade Limit. - */ - boolean isUpgradable(); + /** + * Accepts Upgrades. Some Machines have an Upgrade Limit. + */ + boolean isUpgradable(); - /** - * Accepts Muffler Upgrades - */ - boolean isMufflerUpgradable(); - - /** - * Accepts Steam-Converter Upgrades - */ - boolean isSteamEngineUpgradable(); - - /** - * Adds Muffler Upgrade - */ - boolean addMufflerUpgrade(); - - /** - * Adds MJ-Converter Upgrade - */ - boolean addSteamEngineUpgrade(); - - /** - * Does this Machine have an Muffler - */ - boolean hasMufflerUpgrade(); - - /** - * Does this Machine have a Steam-Converter - */ - boolean hasSteamEngineUpgrade(); + /** + * Accepts Muffler Upgrades + */ + boolean isMufflerUpgradable(); + + /** + * Accepts Steam-Converter Upgrades + */ + boolean isSteamEngineUpgradable(); + + /** + * Adds Muffler Upgrade + */ + boolean addMufflerUpgrade(); + + /** + * Adds MJ-Converter Upgrade + */ + boolean addSteamEngineUpgrade(); + + /** + * Does this Machine have an Muffler + */ + boolean hasMufflerUpgrade(); + + /** + * Does this Machine have a Steam-Converter + */ + boolean hasSteamEngineUpgrade(); } diff --git a/src/main/java/gregtech/api/items/GT_CoolantCellIC_Item.java b/src/main/java/gregtech/api/items/GT_CoolantCellIC_Item.java index c24e3947..cc986564 100644 --- a/src/main/java/gregtech/api/items/GT_CoolantCellIC_Item.java +++ b/src/main/java/gregtech/api/items/GT_CoolantCellIC_Item.java @@ -6,73 +6,60 @@ import ic2.api.reactor.IReactorComponent; import net.minecraft.item.ItemStack; public class GT_CoolantCellIC_Item - extends GT_CoolantCell_Item - implements IReactorComponent -{ - public GT_CoolantCellIC_Item(String aUnlocalized, String aEnglish, int aMaxStore) - { - super(aUnlocalized, aEnglish, aMaxStore); - } - - public void processChamber(IReactor aReactor, ItemStack aStack, int x, int y, boolean aHeatRun) {} - - public boolean acceptUraniumPulse(IReactor aReactor, ItemStack aStack, ItemStack pulsingStack, int youX, int youY, int pulseX, int pulseY, boolean aHeatRun) - { - return false; - } - - public boolean canStoreHeat(IReactor aReactor, ItemStack aStack, int x, int y) - { - if(aReactor.isFluidCooled()&&(getControlTagOfStack(aStack))!=0){ - return false; - } - return true; - } - - public int getMaxHeat(IReactor aReactor, ItemStack aStack, int x, int y) - { - return this.heatStorage; - } - - public int getCurrentHeat(IReactor aReactor, ItemStack aStack, int x, int y) - { - return getHeatOfStack(aStack); - } - - public float influenceExplosion(IReactor aReactor, ItemStack aStack) - { - return 1.0F + this.heatStorage / 30000.0F; - } - - public int alterHeat(IReactor aReactor, ItemStack aStack, int x, int y, int aHeat) - { - - int tHeat = getHeatOfStack(aStack); - if ((tHeat == 0) && (getControlTagOfStack(aStack) != 0)) { - setControlTagOfStack(aStack, 0); - } - tHeat += aHeat; - if (tHeat > this.heatStorage) - { - aReactor.setItemAt(x, y, (ItemStack)null); - aHeat = this.heatStorage - tHeat + 1; + extends GT_CoolantCell_Item + implements IReactorComponent { + public GT_CoolantCellIC_Item(String aUnlocalized, String aEnglish, int aMaxStore) { + super(aUnlocalized, aEnglish, aMaxStore); } - else - { - if (tHeat < 0) - { - aHeat = tHeat; - tHeat = 0; - } - else - { - aHeat = 0; - } - if ((tHeat > 0) && (getControlTagOfStack(aStack) == 0) && (!aReactor.isFluidCooled())) { - setControlTagOfStack(aStack, 1); + + public void processChamber(IReactor aReactor, ItemStack aStack, int x, int y, boolean aHeatRun) { + } + + public boolean acceptUraniumPulse(IReactor aReactor, ItemStack aStack, ItemStack pulsingStack, int youX, int youY, int pulseX, int pulseY, boolean aHeatRun) { + return false; + } + + public boolean canStoreHeat(IReactor aReactor, ItemStack aStack, int x, int y) { + if (aReactor.isFluidCooled() && (getControlTagOfStack(aStack)) != 0) { + return false; } - setHeatForStack(aStack, tHeat); + return true; + } + + public int getMaxHeat(IReactor aReactor, ItemStack aStack, int x, int y) { + return this.heatStorage; + } + + public int getCurrentHeat(IReactor aReactor, ItemStack aStack, int x, int y) { + return getHeatOfStack(aStack); + } + + public float influenceExplosion(IReactor aReactor, ItemStack aStack) { + return 1.0F + this.heatStorage / 30000.0F; + } + + public int alterHeat(IReactor aReactor, ItemStack aStack, int x, int y, int aHeat) { + + int tHeat = getHeatOfStack(aStack); + if ((tHeat == 0) && (getControlTagOfStack(aStack) != 0)) { + setControlTagOfStack(aStack, 0); + } + tHeat += aHeat; + if (tHeat > this.heatStorage) { + aReactor.setItemAt(x, y, (ItemStack) null); + aHeat = this.heatStorage - tHeat + 1; + } else { + if (tHeat < 0) { + aHeat = tHeat; + tHeat = 0; + } else { + aHeat = 0; + } + if ((tHeat > 0) && (getControlTagOfStack(aStack) == 0) && (!aReactor.isFluidCooled())) { + setControlTagOfStack(aStack, 1); + } + setHeatForStack(aStack, tHeat); + } + return aHeat; } - return aHeat; - } } diff --git a/src/main/java/gregtech/api/items/GT_CoolantCell_Item.java b/src/main/java/gregtech/api/items/GT_CoolantCell_Item.java index fe56ffc3..1229e2f0 100644 --- a/src/main/java/gregtech/api/items/GT_CoolantCell_Item.java +++ b/src/main/java/gregtech/api/items/GT_CoolantCell_Item.java @@ -2,81 +2,69 @@ package gregtech.api.items; import gregtech.api.GregTech_API; import ic2.core.util.StackUtil; - -import java.util.List; - import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.StatCollector; +import java.util.List; + public class GT_CoolantCell_Item - extends GT_Generic_Item -{ - protected int heatStorage; - - public GT_CoolantCell_Item(String aUnlocalized, String aEnglish, int aMaxStore) - { - super(aUnlocalized, aEnglish, null); - this.setMaxStackSize(1); - this.setMaxDamage(100); - setNoRepair(); - this.heatStorage = aMaxStore; - this.setCreativeTab(GregTech_API.TAB_GREGTECH); - } - - protected void setHeatForStack(ItemStack aStack, int aHeat) - { - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) - { - tNBT = new NBTTagCompound(); - aStack.setTagCompound(tNBT); + extends GT_Generic_Item { + protected int heatStorage; + + public GT_CoolantCell_Item(String aUnlocalized, String aEnglish, int aMaxStore) { + super(aUnlocalized, aEnglish, null); + this.setMaxStackSize(1); + this.setMaxDamage(100); + setNoRepair(); + this.heatStorage = aMaxStore; + this.setCreativeTab(GregTech_API.TAB_GREGTECH); } - tNBT.setInteger("heat", aHeat); - if (this.heatStorage > 0) - { - double var4 = (double)aHeat / (double)this.heatStorage; - int var6 = (int)(aStack.getMaxDamage() * var4); - if (var6 >= aStack.getMaxDamage()) { - var6 = aStack.getMaxDamage() - 1; - } - aStack.setItemDamage(var6); + + protected static int getHeatOfStack(ItemStack aStack) { + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) { + tNBT = new NBTTagCompound(); + aStack.setTagCompound(tNBT); + } + return tNBT.getInteger("heat"); } - } - - public void addAdditionalToolTips(List aList, ItemStack aStack) - { - super.addAdditionalToolTips(aList, aStack); - aList.add("Stored Heat: " + getHeatOfStack(aStack)); - switch (getControlTagOfStack(aStack)) - { - case 1: - aList.add(StatCollector.translateToLocal("ic2.reactoritem.heatwarning.line1")); - aList.add(StatCollector.translateToLocal("ic2.reactoritem.heatwarning.line2")); + + protected void setHeatForStack(ItemStack aStack, int aHeat) { + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) { + tNBT = new NBTTagCompound(); + aStack.setTagCompound(tNBT); + } + tNBT.setInteger("heat", aHeat); + if (this.heatStorage > 0) { + double var4 = (double) aHeat / (double) this.heatStorage; + int var6 = (int) (aStack.getMaxDamage() * var4); + if (var6 >= aStack.getMaxDamage()) { + var6 = aStack.getMaxDamage() - 1; + } + aStack.setItemDamage(var6); + } } - } - - protected static int getHeatOfStack(ItemStack aStack) - { - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) - { - tNBT = new NBTTagCompound(); - aStack.setTagCompound(tNBT); + + public void addAdditionalToolTips(List aList, ItemStack aStack) { + super.addAdditionalToolTips(aList, aStack); + aList.add("Stored Heat: " + getHeatOfStack(aStack)); + switch (getControlTagOfStack(aStack)) { + case 1: + aList.add(StatCollector.translateToLocal("ic2.reactoritem.heatwarning.line1")); + aList.add(StatCollector.translateToLocal("ic2.reactoritem.heatwarning.line2")); + } } - return tNBT.getInteger("heat"); - } - - public int getControlTagOfStack(ItemStack stack) - { - NBTTagCompound nbtData = StackUtil.getOrCreateNbtData(stack); - return nbtData.getInteger("tag"); - } - - public void setControlTagOfStack(ItemStack stack, int tag) - { - NBTTagCompound nbtData = StackUtil.getOrCreateNbtData(stack); - nbtData.setInteger("tag", tag); - } - + + public int getControlTagOfStack(ItemStack stack) { + NBTTagCompound nbtData = StackUtil.getOrCreateNbtData(stack); + return nbtData.getInteger("tag"); + } + + public void setControlTagOfStack(ItemStack stack, int tag) { + NBTTagCompound nbtData = StackUtil.getOrCreateNbtData(stack); + nbtData.setInteger("tag", tag); + } + } diff --git a/src/main/java/gregtech/api/items/GT_EnergyArmor_Item.java b/src/main/java/gregtech/api/items/GT_EnergyArmor_Item.java index 4cbfd544..6e3c6df6 100644 --- a/src/main/java/gregtech/api/items/GT_EnergyArmor_Item.java +++ b/src/main/java/gregtech/api/items/GT_EnergyArmor_Item.java @@ -1,15 +1,11 @@ package gregtech.api.items; -import static gregtech.api.enums.GT_Values.RES_PATH_ITEM; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityLivingBase; @@ -26,116 +22,119 @@ import net.minecraft.world.World; import net.minecraftforge.common.ISpecialArmor; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.living.LivingFallEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static gregtech.api.enums.GT_Values.RES_PATH_ITEM; public class GT_EnergyArmor_Item extends ItemArmor implements ISpecialArmor { - public int mCharge, mTransfer, mTier, mDamageEnergyCost, mSpecials; - public boolean mChargeProvider; - public double mArmorAbsorbtionPercentage; - public static Map jumpChargeMap = new HashMap(); - - public GT_EnergyArmor_Item(int aID, String aUnlocalized, String aEnglish, int aCharge, int aTransfer, int aTier, int aDamageEnergyCost, int aSpecials, double aArmorAbsorbtionPercentage, boolean aChargeProvider, int aType, int aArmorIndex) { - super(ArmorMaterial.DIAMOND, aArmorIndex, aType); - setMaxStackSize(1); - setMaxDamage(100); - setNoRepair(); - setUnlocalizedName(aUnlocalized); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".name", aEnglish); - mCharge = Math.max(1, aCharge); - mTransfer = Math.max(1, aTransfer); - mTier = Math.max(1, aTier); - mSpecials = aSpecials; - mChargeProvider = aChargeProvider; - mDamageEnergyCost = Math.max(0, aDamageEnergyCost); - mArmorAbsorbtionPercentage = aArmorAbsorbtionPercentage; - - setCreativeTab(GregTech_API.TAB_GREGTECH); - + public int mCharge, mTransfer, mTier, mDamageEnergyCost, mSpecials; + public boolean mChargeProvider; + public double mArmorAbsorbtionPercentage; + + public GT_EnergyArmor_Item(int aID, String aUnlocalized, String aEnglish, int aCharge, int aTransfer, int aTier, int aDamageEnergyCost, int aSpecials, double aArmorAbsorbtionPercentage, boolean aChargeProvider, int aType, int aArmorIndex) { + super(ArmorMaterial.DIAMOND, aArmorIndex, aType); + setMaxStackSize(1); + setMaxDamage(100); + setNoRepair(); + setUnlocalizedName(aUnlocalized); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".name", aEnglish); + mCharge = Math.max(1, aCharge); + mTransfer = Math.max(1, aTransfer); + mTier = Math.max(1, aTier); + mSpecials = aSpecials; + mChargeProvider = aChargeProvider; + mDamageEnergyCost = Math.max(0, aDamageEnergyCost); + mArmorAbsorbtionPercentage = aArmorAbsorbtionPercentage; + + setCreativeTab(GregTech_API.TAB_GREGTECH); + MinecraftForge.EVENT_BUS.register(this); - } - - @Override - public ItemStack onItemRightClick(ItemStack aStack, World aWorld, EntityPlayer aPlayer) { - ItemStack tStack = aPlayer.inventory.armorInventory[3-armorType]; - if (tStack != null) { - for (int i = 0; i < 9; i++) { - if (aPlayer.inventory.mainInventory[i] == aStack) { - aPlayer.inventory.armorInventory[3-armorType] = aPlayer.inventory.mainInventory[i]; - aPlayer.inventory.mainInventory[i] = tStack; - return tStack; - } - } - } - return super.onItemRightClick(aStack, aWorld, aPlayer); - } - - @Override + } + + private static void setCharge(ItemStack aStack) { + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) tNBT = new NBTTagCompound(); + tNBT.setInteger("charge", 1000000000); + aStack.setTagCompound(tNBT); + } + + @Override + public ItemStack onItemRightClick(ItemStack aStack, World aWorld, EntityPlayer aPlayer) { + ItemStack tStack = aPlayer.inventory.armorInventory[3 - armorType]; + if (tStack != null) { + for (int i = 0; i < 9; i++) { + if (aPlayer.inventory.mainInventory[i] == aStack) { + aPlayer.inventory.armorInventory[3 - armorType] = aPlayer.inventory.mainInventory[i]; + aPlayer.inventory.mainInventory[i] = tStack; + return tStack; + } + } + } + return super.onItemRightClick(aStack, aWorld, aPlayer); + } + + @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister aIconRegister) { this.itemIcon = aIconRegister.registerIcon(RES_PATH_ITEM + getUnlocalizedName()); } - - @Override - public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) { - aList.add("Tier: " + mTier); - if ((mSpecials & 1) != 0) aList.add("Rebreather"); - if ((mSpecials & 2) != 0) aList.add("Inertia Damper"); - if ((mSpecials & 4) != 0) aList.add("Food Replicator"); - if ((mSpecials & 8) != 0) aList.add("Medicine Module"); - if ((mSpecials & 16) != 0) aList.add("Lamp"); - if ((mSpecials & 32) != 0) aList.add("Solarpanel"); - if ((mSpecials & 64) != 0) aList.add("Extinguisher Module"); - if ((mSpecials & 128) != 0) aList.add("Jump Booster"); - if ((mSpecials & 256) != 0) aList.add("Speed Booster"); - if ((mSpecials & 512) != 0) aList.add("Invisibility Field"); - if ((mSpecials & 1024) != 0) aList.add("Infinite Charge"); - } - - private static void setCharge(ItemStack aStack) { - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) tNBT = new NBTTagCompound(); - tNBT.setInteger("charge", 1000000000); - aStack.setTagCompound(tNBT); - } - + @Override - public void onArmorTick(World aWorld, EntityPlayer aPlayer, ItemStack aStack) { - if (mSpecials == 0) return; - - if (!aPlayer.worldObj.isRemote && (mSpecials & 1) != 0) { - int var4 = aPlayer.getAir(); + public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) { + aList.add("Tier: " + mTier); + if ((mSpecials & 1) != 0) aList.add("Rebreather"); + if ((mSpecials & 2) != 0) aList.add("Inertia Damper"); + if ((mSpecials & 4) != 0) aList.add("Food Replicator"); + if ((mSpecials & 8) != 0) aList.add("Medicine Module"); + if ((mSpecials & 16) != 0) aList.add("Lamp"); + if ((mSpecials & 32) != 0) aList.add("Solarpanel"); + if ((mSpecials & 64) != 0) aList.add("Extinguisher Module"); + if ((mSpecials & 128) != 0) aList.add("Jump Booster"); + if ((mSpecials & 256) != 0) aList.add("Speed Booster"); + if ((mSpecials & 512) != 0) aList.add("Invisibility Field"); + if ((mSpecials & 1024) != 0) aList.add("Infinite Charge"); + } + + @Override + public void onArmorTick(World aWorld, EntityPlayer aPlayer, ItemStack aStack) { + if (mSpecials == 0) return; + + if (!aPlayer.worldObj.isRemote && (mSpecials & 1) != 0) { + int var4 = aPlayer.getAir(); if (GT_ModHandler.canUseElectricItem(aStack, 1000) && var4 < 50) { - aPlayer.setAir(var4 + 250); - GT_ModHandler.useElectricItem(aStack, 1000, aPlayer); + aPlayer.setAir(var4 + 250); + GT_ModHandler.useElectricItem(aStack, 1000, aPlayer); } - } - - if (!aPlayer.worldObj.isRemote && (mSpecials & 4) != 0) { + } + + if (!aPlayer.worldObj.isRemote && (mSpecials & 4) != 0) { if (GT_ModHandler.canUseElectricItem(aStack, 50000) && aPlayer.getFoodStats().needFood()) { - aPlayer.getFoodStats().addStats(1, 0.0F); + aPlayer.getFoodStats().addStats(1, 0.0F); GT_ModHandler.useElectricItem(aStack, 50000, aPlayer); } - } - - if ((mSpecials & 8) != 0) { + } + + if ((mSpecials & 8) != 0) { if (GT_ModHandler.canUseElectricItem(aStack, 10000) && aPlayer.isPotionActive(Potion.poison)) { - GT_Utility.removePotion(aPlayer, Potion.poison.id); + GT_Utility.removePotion(aPlayer, Potion.poison.id); GT_ModHandler.useElectricItem(aStack, 10000, aPlayer); } if (GT_ModHandler.canUseElectricItem(aStack, 100000) && aPlayer.isPotionActive(Potion.wither)) { - GT_Utility.removePotion(aPlayer, Potion.wither.id); + GT_Utility.removePotion(aPlayer, Potion.wither.id); GT_ModHandler.useElectricItem(aStack, 100000, aPlayer); } - } + } - if ((mSpecials & 64) != 0) { + if ((mSpecials & 64) != 0) { aPlayer.setFire(0); - } - - if (!aPlayer.worldObj.isRemote && (mSpecials & 128) != 0) { - float var6 = jumpChargeMap.containsKey(aPlayer) ? ((Float)jumpChargeMap.get(aPlayer)).floatValue() : 1.0F; + } + + if (!aPlayer.worldObj.isRemote && (mSpecials & 128) != 0) { + float var6 = jumpChargeMap.containsKey(aPlayer) ? ((Float) jumpChargeMap.get(aPlayer)).floatValue() : 1.0F; if (GT_ModHandler.canUseElectricItem(aStack, 1000) && aPlayer.onGround && var6 < 1.0F) { var6 = 1.0F; @@ -145,88 +144,88 @@ public class GT_EnergyArmor_Item extends ItemArmor implements ISpecialArmor { if (aPlayer.motionY >= 0.0D && var6 > 0.0F && !aPlayer.isInWater()) { if (GT_ModHandler.getJumpKeyDown(aPlayer) && GT_ModHandler.getBoostKeyDown(aPlayer)) { if (var6 == 1.0F) { - aPlayer.motionX *= 3.5D; - aPlayer.motionZ *= 3.5D; + aPlayer.motionX *= 3.5D; + aPlayer.motionZ *= 3.5D; } aPlayer.motionY += (var6 * 0.3F); - var6 = (float)(var6 * 0.75D); + var6 = (float) (var6 * 0.75D); } else if (var6 < 1.0F) { var6 = 0.0F; } } jumpChargeMap.put(aPlayer, Float.valueOf(var6)); - } + } - if ((mSpecials & 256) != 0) { + if ((mSpecials & 256) != 0) { if (GT_ModHandler.canUseElectricItem(aStack, 100) && aPlayer.isSprinting() && (aPlayer.onGround && Math.abs(aPlayer.motionX) + Math.abs(aPlayer.motionZ) > 0.10000000149011612D || aPlayer.isInWater())) { GT_ModHandler.useElectricItem(aStack, 100, aPlayer); float var7 = 0.22F; - + if (aPlayer.isInWater()) { GT_ModHandler.useElectricItem(aStack, 100, aPlayer); var7 = 0.1F; - - + + if (aPlayer.motionY > 0) { - aPlayer.motionY += 0.10000000149011612D; + aPlayer.motionY += 0.10000000149011612D; } } - + if (var7 > 0.0F) { - aPlayer.moveFlying(0.0F, 1.0F, var7); + aPlayer.moveFlying(0.0F, 1.0F, var7); } } - } - - if ((mSpecials & 512) != 0) { + } + + if ((mSpecials & 512) != 0) { if (GT_ModHandler.canUseElectricItem(aStack, 10000)) { - GT_ModHandler.useElectricItem(aStack, 10000, aPlayer); + GT_ModHandler.useElectricItem(aStack, 10000, aPlayer); aPlayer.addPotionEffect(new PotionEffect(Potion.invisibility.getId(), 25, 1, true)); } - } - - if (!aPlayer.worldObj.isRemote && (mSpecials & (16|32)) != 0) { - //if (GregTech_API.sWorldTickCounter%20==0) { - ItemStack tTargetChargeItem = aStack, tTargetDechargeItem = aStack; - - if (GT_ModHandler.chargeElectricItem(tTargetChargeItem, 1, Integer.MAX_VALUE, true, true) < 1) { - tTargetChargeItem = aPlayer.inventory.armorInventory[2]; - } - if (GT_ModHandler.dischargeElectricItem(tTargetDechargeItem, 10, Integer.MAX_VALUE, true, true, true) < 10) { - tTargetDechargeItem = aPlayer.inventory.armorInventory[2]; - } - - if (tTargetChargeItem == null || !GT_ModHandler.isElectricItem(tTargetChargeItem)) { - tTargetChargeItem = null; - } - if (tTargetDechargeItem == null || !GT_ModHandler.isElectricItem(tTargetChargeItem) || !(aStack == tTargetDechargeItem || GT_ModHandler.isChargerItem(tTargetDechargeItem))) { - tTargetDechargeItem = null; - } - - if (aPlayer.worldObj.isDaytime() && aPlayer.worldObj.canBlockSeeTheSky(MathHelper.floor_double(aPlayer.posX), MathHelper.floor_double(aPlayer.posY+1), MathHelper.floor_double(aPlayer.posZ))) { - if ((mSpecials & 32) != 0 && tTargetChargeItem != null) { - GT_ModHandler.chargeElectricItem(tTargetChargeItem, 20, Integer.MAX_VALUE, true, false); - } - } else { - /* TODO: + } + + if (!aPlayer.worldObj.isRemote && (mSpecials & (16 | 32)) != 0) { + //if (GregTech_API.sWorldTickCounter%20==0) { + ItemStack tTargetChargeItem = aStack, tTargetDechargeItem = aStack; + + if (GT_ModHandler.chargeElectricItem(tTargetChargeItem, 1, Integer.MAX_VALUE, true, true) < 1) { + tTargetChargeItem = aPlayer.inventory.armorInventory[2]; + } + if (GT_ModHandler.dischargeElectricItem(tTargetDechargeItem, 10, Integer.MAX_VALUE, true, true, true) < 10) { + tTargetDechargeItem = aPlayer.inventory.armorInventory[2]; + } + + if (tTargetChargeItem == null || !GT_ModHandler.isElectricItem(tTargetChargeItem)) { + tTargetChargeItem = null; + } + if (tTargetDechargeItem == null || !GT_ModHandler.isElectricItem(tTargetChargeItem) || !(aStack == tTargetDechargeItem || GT_ModHandler.isChargerItem(tTargetDechargeItem))) { + tTargetDechargeItem = null; + } + + if (aPlayer.worldObj.isDaytime() && aPlayer.worldObj.canBlockSeeTheSky(MathHelper.floor_double(aPlayer.posX), MathHelper.floor_double(aPlayer.posY + 1), MathHelper.floor_double(aPlayer.posZ))) { + if ((mSpecials & 32) != 0 && tTargetChargeItem != null) { + GT_ModHandler.chargeElectricItem(tTargetChargeItem, 20, Integer.MAX_VALUE, true, false); + } + } else { + /* TODO: if ((mSpecials & 16) != 0 && tTargetDechargeItem != null && GT_ModHandler.canUseElectricItem(tTargetDechargeItem, 10)) { if (aPlayer.worldObj.getBlock ((int)aPlayer.posX, (int)aPlayer.posY+1, (int)aPlayer.posZ) == Blocks.air) aPlayer.worldObj.setBlock ((int)aPlayer.posX, (int)aPlayer.posY+1, (int)aPlayer.posZ, GregTech_API.sBlockList[3]); GT_ModHandler.useElectricItem(tTargetDechargeItem, 10, aPlayer); }*/ - //} - } - } - } - - @Override + //} + } + } + } + + @Override public boolean getShareTag() { return true; } - - @Override + + @Override @SideOnly(Side.CLIENT) public void getSubItems(Item aItem, CreativeTabs var2, List var3) { ItemStack tCharged = new ItemStack(this, 1), tUncharged = new ItemStack(this, 1, getMaxDamage()); @@ -234,94 +233,99 @@ public class GT_EnergyArmor_Item extends ItemArmor implements ISpecialArmor { var3.add(tCharged); var3.add(tUncharged); } - - public boolean canProvideEnergy(ItemStack aStack) { - if ((mSpecials & 1024) != 0) setCharge(aStack); - return mChargeProvider; - } - - public Item getChargedItem(ItemStack aStack) { - if ((mSpecials & 1024) != 0) setCharge(aStack); - return this; - } - - public Item getEmptyItem(ItemStack aStack) { - if ((mSpecials & 1024) != 0) setCharge(aStack); - return this; - } - - public int getMaxCharge(ItemStack aStack) { - if ((mSpecials & 1024) != 0) setCharge(aStack); - return mCharge; - } - - public int getTier(ItemStack aStack) { - if ((mSpecials & 1024) != 0) setCharge(aStack); - return mTier; - } - - public int getTransferLimit(ItemStack aStack) { - if ((mSpecials & 1024) != 0) setCharge(aStack); - return mTransfer; - } - - @Override + + public boolean canProvideEnergy(ItemStack aStack) { + if ((mSpecials & 1024) != 0) setCharge(aStack); + return mChargeProvider; + } + + public Item getChargedItem(ItemStack aStack) { + if ((mSpecials & 1024) != 0) setCharge(aStack); + return this; + } + + public Item getEmptyItem(ItemStack aStack) { + if ((mSpecials & 1024) != 0) setCharge(aStack); + return this; + } + + public int getMaxCharge(ItemStack aStack) { + if ((mSpecials & 1024) != 0) setCharge(aStack); + return mCharge; + } + + public int getTier(ItemStack aStack) { + if ((mSpecials & 1024) != 0) setCharge(aStack); + return mTier; + } + + public int getTransferLimit(ItemStack aStack) { + if ((mSpecials & 1024) != 0) setCharge(aStack); + return mTransfer; + } + + @Override public int getItemEnchantability() { return 0; } - - @Override + + @Override public boolean isBookEnchantable(ItemStack itemstack1, ItemStack itemstack2) { return false; } - - @Override + + @Override public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) { return false; } - + // TODO: @ForgeSubscribe public void onEntityLivingFallEvent(LivingFallEvent var1) { if (!var1.entity.worldObj.isRemote && var1.entity instanceof EntityPlayer) { - EntityPlayer var2 = (EntityPlayer)var1.entity; + EntityPlayer var2 = (EntityPlayer) var1.entity; for (int i = 0; i < 4; i++) { - ItemStack var3 = var2.inventory.armorInventory[i]; - if (var3 != null && var3.getItem() == this && (mSpecials & 2) != 0) { - int var4 = (int)var1.distance - 3; - int var5 = (this.mDamageEnergyCost * var4) / 4; - if (var5 <= GT_ModHandler.dischargeElectricItem(var3, Integer.MAX_VALUE, Integer.MAX_VALUE, true, true, true)) { - GT_ModHandler.dischargeElectricItem(var3, var5, Integer.MAX_VALUE, true, false, true); - var1.setCanceled(true); - break; - } - } + ItemStack var3 = var2.inventory.armorInventory[i]; + if (var3 != null && var3.getItem() == this && (mSpecials & 2) != 0) { + int var4 = (int) var1.distance - 3; + int var5 = (this.mDamageEnergyCost * var4) / 4; + if (var5 <= GT_ModHandler.dischargeElectricItem(var3, Integer.MAX_VALUE, Integer.MAX_VALUE, true, true, true)) { + GT_ModHandler.dischargeElectricItem(var3, var5, Integer.MAX_VALUE, true, false, true); + var1.setCanceled(true); + break; + } + } } } } - - @Override + + @Override public ISpecialArmor.ArmorProperties getProperties(EntityLivingBase var1, ItemStack var2, DamageSource var3, double var4, int var6) { - return new ISpecialArmor.ArmorProperties((var3 == DamageSource.fall && (mSpecials & 2) != 0)?10:0, getBaseAbsorptionRatio() * mArmorAbsorbtionPercentage, mDamageEnergyCost > 0 ? 25 * GT_ModHandler.dischargeElectricItem(var2, Integer.MAX_VALUE, Integer.MAX_VALUE, true, true, true) / mDamageEnergyCost : 0); + return new ISpecialArmor.ArmorProperties((var3 == DamageSource.fall && (mSpecials & 2) != 0) ? 10 : 0, getBaseAbsorptionRatio() * mArmorAbsorbtionPercentage, mDamageEnergyCost > 0 ? 25 * GT_ModHandler.dischargeElectricItem(var2, Integer.MAX_VALUE, Integer.MAX_VALUE, true, true, true) / mDamageEnergyCost : 0); } - - @Override + + @Override public int getArmorDisplay(EntityPlayer var1, ItemStack var2, int var3) { - return (int)Math.round(20.0D * getBaseAbsorptionRatio() * mArmorAbsorbtionPercentage); + return (int) Math.round(20.0D * getBaseAbsorptionRatio() * mArmorAbsorbtionPercentage); } - - @Override + + @Override public void damageArmor(EntityLivingBase var1, ItemStack var2, DamageSource var3, int var4, int var5) { GT_ModHandler.dischargeElectricItem(var2, var4 * mDamageEnergyCost, Integer.MAX_VALUE, true, false, true); } - + private double getBaseAbsorptionRatio() { - if (mArmorAbsorbtionPercentage <= 0) return 0.00; + if (mArmorAbsorbtionPercentage <= 0) return 0.00; switch (this.armorType) { - case 0: return 0.15; - case 1: return 0.40; - case 2: return 0.30; - case 3: return 0.15; - default: return 0.00; + case 0: + return 0.15; + case 1: + return 0.40; + case 2: + return 0.30; + case 3: + return 0.15; + default: + return 0.00; } } } diff --git a/src/main/java/gregtech/api/items/GT_Generic_Block.java b/src/main/java/gregtech/api/items/GT_Generic_Block.java index a4fd8b61..2882ece1 100644 --- a/src/main/java/gregtech/api/items/GT_Generic_Block.java +++ b/src/main/java/gregtech/api/items/GT_Generic_Block.java @@ -1,19 +1,20 @@ package gregtech.api.items; -import static gregtech.api.enums.GT_Values.W; +import cpw.mods.fml.common.registry.GameRegistry; import gregtech.api.util.GT_LanguageManager; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.item.ItemBlock; -import cpw.mods.fml.common.registry.GameRegistry; + +import static gregtech.api.enums.GT_Values.W; public class GT_Generic_Block extends Block { - protected final String mUnlocalizedName; - - protected GT_Generic_Block(Class aItemClass, String aName, Material aMaterial) { - super(aMaterial); - setBlockName(mUnlocalizedName = aName); - GameRegistry.registerBlock(this, aItemClass, getUnlocalizedName()); - GT_LanguageManager.addStringLocalization(getUnlocalizedName()+"." + W + ".name", "Any Sub Block of this one"); - } + protected final String mUnlocalizedName; + + protected GT_Generic_Block(Class aItemClass, String aName, Material aMaterial) { + super(aMaterial); + setBlockName(mUnlocalizedName = aName); + GameRegistry.registerBlock(this, aItemClass, getUnlocalizedName()); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + W + ".name", "Any Sub Block of this one"); + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/items/GT_Generic_Item.java b/src/main/java/gregtech/api/items/GT_Generic_Item.java index a90c13a2..a6ce9d67 100644 --- a/src/main/java/gregtech/api/items/GT_Generic_Item.java +++ b/src/main/java/gregtech/api/items/GT_Generic_Item.java @@ -1,7 +1,8 @@ package gregtech.api.items; -import static gregtech.api.enums.GT_Values.MOD_ID; -import static gregtech.api.enums.GT_Values.RES_PATH_ITEM; +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; import gregtech.api.enums.SubTag; import gregtech.api.interfaces.IProjectileItem; @@ -9,9 +10,6 @@ import gregtech.api.util.GT_Config; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; - -import java.util.List; - import net.minecraft.block.BlockDispenser; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.dispenser.BehaviorDefaultDispenseItem; @@ -27,118 +25,134 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumFacing; import net.minecraft.util.IIcon; import net.minecraft.world.World; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; + +import java.util.List; + +import static gregtech.api.enums.GT_Values.MOD_ID; +import static gregtech.api.enums.GT_Values.RES_PATH_ITEM; /** * Extended by most Items, also used as a fallback Item, to prevent the accidental deletion when Errors occur. */ public class GT_Generic_Item extends Item implements IProjectileItem { - protected IIcon mIcon; - private final String mName, mTooltip; - - public GT_Generic_Item(String aUnlocalized, String aEnglish, String aEnglishTooltip) { - this(aUnlocalized, aEnglish, aEnglishTooltip, true); - } - - public GT_Generic_Item(String aUnlocalized, String aEnglish, String aEnglishTooltip, boolean aWriteToolTipIntoLangFile) { - super(); - mName = "gt." + aUnlocalized; - GT_LanguageManager.addStringLocalization(mName + ".name", aEnglish); - if (GT_Utility.isStringValid(aEnglishTooltip)) GT_LanguageManager.addStringLocalization(mTooltip = mName + ".tooltip_main", aEnglishTooltip, aWriteToolTipIntoLangFile); else mTooltip = null; - setCreativeTab(GregTech_API.TAB_GREGTECH); - GameRegistry.registerItem(this, mName, MOD_ID); - BlockDispenser.dispenseBehaviorRegistry.putObject(this, new GT_Item_Dispense()); - } - - @Override public final Item setUnlocalizedName(String aName) {return this;} - @Override public final String getUnlocalizedName() {return mName;} - @Override public String getUnlocalizedName(ItemStack aStack) {return getHasSubtypes()?mName+"."+getDamage(aStack):mName;} - - @Override + private final String mName, mTooltip; + protected IIcon mIcon; + + public GT_Generic_Item(String aUnlocalized, String aEnglish, String aEnglishTooltip) { + this(aUnlocalized, aEnglish, aEnglishTooltip, true); + } + + public GT_Generic_Item(String aUnlocalized, String aEnglish, String aEnglishTooltip, boolean aWriteToolTipIntoLangFile) { + super(); + mName = "gt." + aUnlocalized; + GT_LanguageManager.addStringLocalization(mName + ".name", aEnglish); + if (GT_Utility.isStringValid(aEnglishTooltip)) + GT_LanguageManager.addStringLocalization(mTooltip = mName + ".tooltip_main", aEnglishTooltip, aWriteToolTipIntoLangFile); + else mTooltip = null; + setCreativeTab(GregTech_API.TAB_GREGTECH); + GameRegistry.registerItem(this, mName, MOD_ID); + BlockDispenser.dispenseBehaviorRegistry.putObject(this, new GT_Item_Dispense()); + } + + @Override + public final Item setUnlocalizedName(String aName) { + return this; + } + + @Override + public final String getUnlocalizedName() { + return mName; + } + + @Override + public String getUnlocalizedName(ItemStack aStack) { + return getHasSubtypes() ? mName + "." + getDamage(aStack) : mName; + } + + @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister aIconRegister) { - mIcon = aIconRegister.registerIcon(RES_PATH_ITEM + (GT_Config.troll?"troll":mName)); + mIcon = aIconRegister.registerIcon(RES_PATH_ITEM + (GT_Config.troll ? "troll" : mName)); } - - @Override + + @Override public boolean doesSneakBypassUse(World aWorld, int aX, int aY, int aZ, EntityPlayer aPlayer) { return true; } - - @Override + + @Override public IIcon getIconFromDamage(int par1) { return mIcon; } - - public int getTier(ItemStack aStack) { - return 0; - } - - @Override - public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) { - if (getMaxDamage() > 0 && !getHasSubtypes()) aList.add((aStack.getMaxDamage() - getDamage(aStack)) + " / " + aStack.getMaxDamage()); - if (mTooltip != null) aList.add(GT_LanguageManager.getTranslation(mTooltip)); - if (GT_ModHandler.isElectricItem(aStack)) aList.add("Tier: " + getTier(aStack)); - addAdditionalToolTips(aList, aStack); - } - - protected void addAdditionalToolTips(List aList, ItemStack aStack) { - // - } - - @Override - public void onCreated(ItemStack aStack, World aWorld, EntityPlayer aPlayer) { - isItemStackUsable(aStack); + + public int getTier(ItemStack aStack) { + return 0; } - - public boolean isItemStackUsable(ItemStack aStack) { - return true; - } - - public ItemStack onDispense(IBlockSource aSource, ItemStack aStack) { + + @Override + public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) { + if (getMaxDamage() > 0 && !getHasSubtypes()) + aList.add((aStack.getMaxDamage() - getDamage(aStack)) + " / " + aStack.getMaxDamage()); + if (mTooltip != null) aList.add(GT_LanguageManager.getTranslation(mTooltip)); + if (GT_ModHandler.isElectricItem(aStack)) aList.add("Tier: " + getTier(aStack)); + addAdditionalToolTips(aList, aStack); + } + + protected void addAdditionalToolTips(List aList, ItemStack aStack) { + // + } + + @Override + public void onCreated(ItemStack aStack, World aWorld, EntityPlayer aPlayer) { + isItemStackUsable(aStack); + } + + public boolean isItemStackUsable(ItemStack aStack) { + return true; + } + + public ItemStack onDispense(IBlockSource aSource, ItemStack aStack) { EnumFacing enumfacing = BlockDispenser.func_149937_b(aSource.getBlockMetadata()); IPosition iposition = BlockDispenser.func_149939_a(aSource); ItemStack itemstack1 = aStack.splitStack(1); BehaviorDefaultDispenseItem.doDispense(aSource.getWorld(), itemstack1, 6, enumfacing, iposition); - return aStack; - } - - public static class GT_Item_Dispense extends BehaviorProjectileDispense { - @Override - public ItemStack dispenseStack(IBlockSource aSource, ItemStack aStack) { - return ((GT_Generic_Item)aStack.getItem()).onDispense(aSource, aStack); - } - - @Override - protected IProjectile getProjectileEntity(World aWorld, IPosition aPosition) { - return null; - } - } - - @Override - public EntityArrow getProjectile(SubTag aProjectileType, ItemStack aStack, World aWorld, double aX, double aY, double aZ) { - return null; - } - - @Override - public EntityArrow getProjectile(SubTag aProjectileType, ItemStack aStack, World aWorld, EntityLivingBase aEntity, float aSpeed) { - return null; - } - - @Override - public boolean hasProjectile(SubTag aProjectileType, ItemStack aStack) { - return false; - } - - @Override + return aStack; + } + + @Override + public EntityArrow getProjectile(SubTag aProjectileType, ItemStack aStack, World aWorld, double aX, double aY, double aZ) { + return null; + } + + @Override + public EntityArrow getProjectile(SubTag aProjectileType, ItemStack aStack, World aWorld, EntityLivingBase aEntity, float aSpeed) { + return null; + } + + @Override + public boolean hasProjectile(SubTag aProjectileType, ItemStack aStack) { + return false; + } + + @Override public ItemStack getContainerItem(ItemStack aStack) { return null; } - - @Override + + @Override public boolean hasContainerItem(ItemStack aStack) { return getContainerItem(aStack) != null; } + + public static class GT_Item_Dispense extends BehaviorProjectileDispense { + @Override + public ItemStack dispenseStack(IBlockSource aSource, ItemStack aStack) { + return ((GT_Generic_Item) aStack.getItem()).onDispense(aSource, aStack); + } + + @Override + protected IProjectile getProjectileEntity(World aWorld, IPosition aPosition) { + return null; + } + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/items/GT_MetaBase_Item.java b/src/main/java/gregtech/api/items/GT_MetaBase_Item.java index 4a0cd6f6..66c92834 100644 --- a/src/main/java/gregtech/api/items/GT_MetaBase_Item.java +++ b/src/main/java/gregtech/api/items/GT_MetaBase_Item.java @@ -1,7 +1,5 @@ package gregtech.api.items; -import static gregtech.api.enums.GT_Values.D1; -import static gregtech.api.enums.GT_Values.V; import gregtech.api.enums.SubTag; import gregtech.api.interfaces.IItemBehaviour; import gregtech.api.util.GT_LanguageManager; @@ -12,11 +10,6 @@ import ic2.api.item.ElectricItem; import ic2.api.item.IElectricItem; import ic2.api.item.IElectricItemManager; import ic2.api.item.ISpecialElectricItem; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - import net.minecraft.dispenser.IBlockSource; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -31,525 +24,591 @@ import net.minecraft.world.World; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidContainerItem; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import static gregtech.api.enums.GT_Values.D1; +import static gregtech.api.enums.GT_Values.V; + public abstract class GT_MetaBase_Item extends GT_Generic_Item implements ISpecialElectricItem, IElectricItemManager, IFluidContainerItem { - /* ---------- CONSTRUCTOR AND MEMBER VARIABLES ---------- */ - private final HashMap>> mItemBehaviors = new HashMap>>(); - - /** - * Creates the Item using these Parameters. - * @param aUnlocalized The Unlocalized Name of this Item. - * @param aGeneratedPrefixList The OreDict Prefixes you want to have generated. - */ - public GT_MetaBase_Item(String aUnlocalized) { - super(aUnlocalized, "Generated Item", null, false); + /* ---------- CONSTRUCTOR AND MEMBER VARIABLES ---------- */ + private final HashMap>> mItemBehaviors = new HashMap>>(); + + /** + * Creates the Item using these Parameters. + * + * @param aUnlocalized The Unlocalized Name of this Item. + * @param aGeneratedPrefixList The OreDict Prefixes you want to have generated. + */ + public GT_MetaBase_Item(String aUnlocalized) { + super(aUnlocalized, "Generated Item", null, false); setHasSubtypes(true); setMaxDamage(0); - } - - /** - * Adds a special Item Behaviour to the Item. - * - * Note: the boolean Behaviours sometimes won't be executed if another boolean Behaviour returned true before. - * - * @param aMetaValue the Meta Value of the Item you want to add it to. [0 - 32765] - * @param aBehavior the Click Behavior you want to add. - * @return the Item itself for convenience in constructing. - */ - public final GT_MetaBase_Item addItemBehavior(int aMetaValue, IItemBehaviour aBehavior) { - if (aMetaValue < 0 || aMetaValue >= 32766 || aBehavior == null) return this; - ArrayList> tList = mItemBehaviors.get((short)aMetaValue); - if (tList == null) { - tList = new ArrayList>(1); - mItemBehaviors.put((short)aMetaValue, tList); - } - tList.add(aBehavior); - return this; - } - - public abstract Long[] getElectricStats(ItemStack aStack); - public abstract Long[] getFluidContainerStats(ItemStack aStack); - - @Override - public boolean hasProjectile(SubTag aProjectileType, ItemStack aStack) { - ArrayList> tList = mItemBehaviors.get((short)getDamage(aStack)); - if (tList != null) for (IItemBehaviour tBehavior : tList) if (tBehavior.hasProjectile(this, aProjectileType, aStack)) return true; - return super.hasProjectile(aProjectileType, aStack); - } - - @Override - public EntityArrow getProjectile(SubTag aProjectileType, ItemStack aStack, World aWorld, double aX, double aY, double aZ) { - ArrayList> tList = mItemBehaviors.get((short)getDamage(aStack)); - if (tList != null) for (IItemBehaviour tBehavior : tList) { - EntityArrow rArrow = tBehavior.getProjectile(this, aProjectileType, aStack, aWorld, aX, aY, aZ); - if (rArrow != null) return rArrow; - } - return super.getProjectile(aProjectileType, aStack, aWorld, aX, aY, aZ); - } - - @Override - public EntityArrow getProjectile(SubTag aProjectileType, ItemStack aStack, World aWorld, EntityLivingBase aEntity, float aSpeed) { - ArrayList> tList = mItemBehaviors.get((short)getDamage(aStack)); - if (tList != null) for (IItemBehaviour tBehavior : tList) { - EntityArrow rArrow = tBehavior.getProjectile(this, aProjectileType, aStack, aWorld, aEntity, aSpeed); - if (rArrow != null) return rArrow; - } - return super.getProjectile(aProjectileType, aStack, aWorld, aEntity, aSpeed); - } - - @Override - public ItemStack onDispense(IBlockSource aSource, ItemStack aStack) { - ArrayList> tList = mItemBehaviors.get((short)getDamage(aStack)); - if (tList != null) for (IItemBehaviour tBehavior : tList) if (tBehavior.canDispense(this, aSource, aStack)) return tBehavior.onDispense(this, aSource, aStack); - return super.onDispense(aSource, aStack); } - - @Override - public boolean isItemStackUsable(ItemStack aStack) { - ArrayList> tList = mItemBehaviors.get((short)getDamage(aStack)); - if (tList != null) for (IItemBehaviour tBehavior : tList) if (!tBehavior.isItemStackUsable(this, aStack)) return false; - return super.isItemStackUsable(aStack); + + /** + * Adds a special Item Behaviour to the Item. + *

+ * Note: the boolean Behaviours sometimes won't be executed if another boolean Behaviour returned true before. + * + * @param aMetaValue the Meta Value of the Item you want to add it to. [0 - 32765] + * @param aBehavior the Click Behavior you want to add. + * @return the Item itself for convenience in constructing. + */ + public final GT_MetaBase_Item addItemBehavior(int aMetaValue, IItemBehaviour aBehavior) { + if (aMetaValue < 0 || aMetaValue >= 32766 || aBehavior == null) return this; + ArrayList> tList = mItemBehaviors.get((short) aMetaValue); + if (tList == null) { + tList = new ArrayList>(1); + mItemBehaviors.put((short) aMetaValue, tList); + } + tList.add(aBehavior); + return this; } - + + public abstract Long[] getElectricStats(ItemStack aStack); + + public abstract Long[] getFluidContainerStats(ItemStack aStack); + + @Override + public boolean hasProjectile(SubTag aProjectileType, ItemStack aStack) { + ArrayList> tList = mItemBehaviors.get((short) getDamage(aStack)); + if (tList != null) for (IItemBehaviour tBehavior : tList) + if (tBehavior.hasProjectile(this, aProjectileType, aStack)) return true; + return super.hasProjectile(aProjectileType, aStack); + } + + @Override + public EntityArrow getProjectile(SubTag aProjectileType, ItemStack aStack, World aWorld, double aX, double aY, double aZ) { + ArrayList> tList = mItemBehaviors.get((short) getDamage(aStack)); + if (tList != null) for (IItemBehaviour tBehavior : tList) { + EntityArrow rArrow = tBehavior.getProjectile(this, aProjectileType, aStack, aWorld, aX, aY, aZ); + if (rArrow != null) return rArrow; + } + return super.getProjectile(aProjectileType, aStack, aWorld, aX, aY, aZ); + } + + @Override + public EntityArrow getProjectile(SubTag aProjectileType, ItemStack aStack, World aWorld, EntityLivingBase aEntity, float aSpeed) { + ArrayList> tList = mItemBehaviors.get((short) getDamage(aStack)); + if (tList != null) for (IItemBehaviour tBehavior : tList) { + EntityArrow rArrow = tBehavior.getProjectile(this, aProjectileType, aStack, aWorld, aEntity, aSpeed); + if (rArrow != null) return rArrow; + } + return super.getProjectile(aProjectileType, aStack, aWorld, aEntity, aSpeed); + } + + @Override + public ItemStack onDispense(IBlockSource aSource, ItemStack aStack) { + ArrayList> tList = mItemBehaviors.get((short) getDamage(aStack)); + if (tList != null) for (IItemBehaviour tBehavior : tList) + if (tBehavior.canDispense(this, aSource, aStack)) return tBehavior.onDispense(this, aSource, aStack); + return super.onDispense(aSource, aStack); + } + + @Override + public boolean isItemStackUsable(ItemStack aStack) { + ArrayList> tList = mItemBehaviors.get((short) getDamage(aStack)); + if (tList != null) for (IItemBehaviour tBehavior : tList) + if (!tBehavior.isItemStackUsable(this, aStack)) return false; + return super.isItemStackUsable(aStack); + } + @Override public boolean onLeftClickEntity(ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) { - use(aStack, 0, aPlayer); - isItemStackUsable(aStack); - ArrayList> tList = mItemBehaviors.get((short)getDamage(aStack)); - if (tList != null) for (IItemBehaviour tBehavior : tList) try { - if (tBehavior.onLeftClickEntity(this, aStack, aPlayer, aEntity)) { - if (aStack.stackSize <= 0) aPlayer.destroyCurrentEquippedItem(); - return true; - } - if (aStack.stackSize <= 0) { - aPlayer.destroyCurrentEquippedItem(); - return false; - } - } catch(Throwable e) { - if (D1) e.printStackTrace(GT_Log.err); - } - return false; + use(aStack, 0, aPlayer); + isItemStackUsable(aStack); + ArrayList> tList = mItemBehaviors.get((short) getDamage(aStack)); + if (tList != null) for (IItemBehaviour tBehavior : tList) + try { + if (tBehavior.onLeftClickEntity(this, aStack, aPlayer, aEntity)) { + if (aStack.stackSize <= 0) aPlayer.destroyCurrentEquippedItem(); + return true; + } + if (aStack.stackSize <= 0) { + aPlayer.destroyCurrentEquippedItem(); + return false; + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + return false; } - - @Override - public boolean onItemUse(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { - use(aStack, 0, aPlayer); - isItemStackUsable(aStack); - ArrayList> tList = mItemBehaviors.get((short)getDamage(aStack)); - if (tList != null) for (IItemBehaviour tBehavior : tList) try { - if (tBehavior.onItemUse(this, aStack, aPlayer, aWorld, aX, aY, aZ, aSide, hitX, hitY, hitZ)) { - if (aStack.stackSize <= 0) aPlayer.destroyCurrentEquippedItem(); - return true; - } - if (aStack.stackSize <= 0) { - aPlayer.destroyCurrentEquippedItem(); - return false; - } - } catch(Throwable e) { - if (D1) e.printStackTrace(GT_Log.err); - } - return false; - } - - @Override - public boolean onItemUseFirst(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { - use(aStack, 0, aPlayer); - isItemStackUsable(aStack); - ArrayList> tList = mItemBehaviors.get((short)getDamage(aStack)); - if (tList != null) for (IItemBehaviour tBehavior : tList) try { - if (tBehavior.onItemUseFirst(this, aStack, aPlayer, aWorld, aX, aY, aZ, aSide, hitX, hitY, hitZ)) { - if (aStack.stackSize <= 0) aPlayer.destroyCurrentEquippedItem(); - return true; - } - if (aStack.stackSize <= 0) { - aPlayer.destroyCurrentEquippedItem(); - return false; - } - } catch(Throwable e) { - if (D1) e.printStackTrace(GT_Log.err); - } - return false; - } - + @Override - public ItemStack onItemRightClick(ItemStack aStack, World aWorld, EntityPlayer aPlayer) { - use(aStack, 0, aPlayer); - isItemStackUsable(aStack); - ArrayList> tList = mItemBehaviors.get((short)getDamage(aStack)); - if (tList != null) for (IItemBehaviour tBehavior : tList) try { - aStack = tBehavior.onItemRightClick(this, aStack, aWorld, aPlayer); - } catch(Throwable e) { - if (D1) e.printStackTrace(GT_Log.err); - } - return aStack; + public boolean onItemUse(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + use(aStack, 0, aPlayer); + isItemStackUsable(aStack); + ArrayList> tList = mItemBehaviors.get((short) getDamage(aStack)); + if (tList != null) for (IItemBehaviour tBehavior : tList) + try { + if (tBehavior.onItemUse(this, aStack, aPlayer, aWorld, aX, aY, aZ, aSide, hitX, hitY, hitZ)) { + if (aStack.stackSize <= 0) aPlayer.destroyCurrentEquippedItem(); + return true; + } + if (aStack.stackSize <= 0) { + aPlayer.destroyCurrentEquippedItem(); + return false; + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + return false; } - - @Override + + @Override + public boolean onItemUseFirst(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + use(aStack, 0, aPlayer); + isItemStackUsable(aStack); + ArrayList> tList = mItemBehaviors.get((short) getDamage(aStack)); + if (tList != null) for (IItemBehaviour tBehavior : tList) + try { + if (tBehavior.onItemUseFirst(this, aStack, aPlayer, aWorld, aX, aY, aZ, aSide, hitX, hitY, hitZ)) { + if (aStack.stackSize <= 0) aPlayer.destroyCurrentEquippedItem(); + return true; + } + if (aStack.stackSize <= 0) { + aPlayer.destroyCurrentEquippedItem(); + return false; + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + return false; + } + + @Override + public ItemStack onItemRightClick(ItemStack aStack, World aWorld, EntityPlayer aPlayer) { + use(aStack, 0, aPlayer); + isItemStackUsable(aStack); + ArrayList> tList = mItemBehaviors.get((short) getDamage(aStack)); + if (tList != null) for (IItemBehaviour tBehavior : tList) + try { + aStack = tBehavior.onItemRightClick(this, aStack, aWorld, aPlayer); + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + return aStack; + } + + @Override public final void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) { - String tKey = getUnlocalizedName(aStack) + ".tooltip", tString = GT_LanguageManager.getTranslation(tKey); - if (GT_Utility.isStringValid(tString) && !tKey.equals(tString)) aList.add(tString); - - Long[] - tStats = getElectricStats(aStack); - if (tStats != null) { - if (tStats[3] > 0) { - aList.add(EnumChatFormatting.AQUA + "Contains " + GT_Utility.formatNumbers(tStats[3]) + " EU Tier: " + (tStats[2]>=0?tStats[2]:0) + EnumChatFormatting.GRAY); - } else { - long tCharge = getRealCharge(aStack); - if (tStats[3] == -2 && tCharge <= 0) { - aList.add(EnumChatFormatting.AQUA + "Empty. You should recycle it properly." + EnumChatFormatting.GRAY); - } else { - aList.add(EnumChatFormatting.AQUA + "" + GT_Utility.formatNumbers(tCharge) + " / " + GT_Utility.formatNumbers(Math.abs(tStats[0])) + " EU - Voltage: " + V[(int)(tStats[2]>=0?tStats[2] 0) { - FluidStack tFluid = getFluidContent(aStack); - aList.add(EnumChatFormatting.BLUE + ((tFluid==null?"No Fluids Contained":GT_Utility.getFluidName(tFluid, true))) + EnumChatFormatting.GRAY); - aList.add(EnumChatFormatting.BLUE + ((tFluid==null?0:tFluid.amount) + "L / " + tStats[0] + "L") + EnumChatFormatting.GRAY); - } - - ArrayList> tList = mItemBehaviors.get((short)getDamage(aStack)); - if (tList != null) for (IItemBehaviour tBehavior : tList) aList = tBehavior.getAdditionalToolTips(this, aList, aStack); - - addAdditionalToolTips(aList, aStack); - } - - @Override - public void onUpdate(ItemStack aStack, World aWorld, Entity aPlayer, int aTimer, boolean aIsInHand) { - ArrayList> tList = mItemBehaviors.get((short)getDamage(aStack)); - if (tList != null) for (IItemBehaviour tBehavior : tList) tBehavior.onUpdate(this, aStack, aWorld, aPlayer, aTimer, aIsInHand); - } - - @Override - public final boolean canProvideEnergy(ItemStack aStack) { - Long[] tStats = getElectricStats(aStack); - if (tStats == null) return false; - return tStats[3] > 0 || (aStack.stackSize == 1 && (tStats[3] == -2 || tStats[3] == -3)); - } - - @Override - public final double getMaxCharge(ItemStack aStack) { - Long[] tStats = getElectricStats(aStack); - if (tStats == null) return 0; - return Math.abs(tStats[0]); - } - - @Override - public final double getTransferLimit(ItemStack aStack) { - Long[] tStats = getElectricStats(aStack); - if (tStats == null) return 0; - return Math.max(tStats[1], tStats[3]); - } - - @Override - public final double charge(ItemStack aStack, double aCharge, int aTier, boolean aIgnoreTransferLimit, boolean aSimulate) { - Long[] tStats = getElectricStats(aStack); - if (tStats == null || tStats[2] > aTier || !(tStats[3] == -1 || tStats[3] == -3 || (tStats[3] < 0 && aCharge == Integer.MAX_VALUE)) || aStack.stackSize != 1) return 0; - long tChargeBefore = getRealCharge(aStack), tNewCharge = aCharge==Integer.MAX_VALUE?Long.MAX_VALUE:Math.min(Math.abs(tStats[0]), tChargeBefore + (aIgnoreTransferLimit?(long)aCharge:Math.min(tStats[1], (long)aCharge))); - if (!aSimulate) setCharge(aStack, tNewCharge); - return tNewCharge-tChargeBefore; - } - - @Override - public final double discharge(ItemStack aStack, double aCharge, int aTier, boolean aIgnoreTransferLimit, boolean aBatteryAlike, boolean aSimulate) { - Long[] tStats = getElectricStats(aStack); - if (tStats == null || tStats[2] > aTier) return 0; - if (aBatteryAlike && !canProvideEnergy(aStack)) return 0; - if (tStats[3] > 0) { - if (aCharge < tStats[3] || aStack.stackSize < 1) return 0; - if (!aSimulate) aStack.stackSize--; - return tStats[3]; - } - long tChargeBefore = getRealCharge(aStack), tNewCharge = Math.max(0, tChargeBefore - (aIgnoreTransferLimit?(long)aCharge:Math.min(tStats[1], (long)aCharge))); - if (!aSimulate) setCharge(aStack, tNewCharge); - return tChargeBefore-tNewCharge; - } - - @Override - public final double getCharge(ItemStack aStack) { - return getRealCharge(aStack); - } - - @Override - public final boolean canUse(ItemStack aStack, double aAmount) { - return getRealCharge(aStack) >= aAmount; - } - - @Override - public final boolean use(ItemStack aStack, double aAmount, EntityLivingBase aPlayer) { - chargeFromArmor(aStack, aPlayer); - if (aPlayer instanceof EntityPlayer && ((EntityPlayer)aPlayer).capabilities.isCreativeMode) return true; - double tTransfer = discharge(aStack, aAmount, Integer.MAX_VALUE, true, false, true); - if (tTransfer == aAmount) { - discharge(aStack, aAmount, Integer.MAX_VALUE, true, false, false); - chargeFromArmor(aStack, aPlayer); - return true; - } - discharge(aStack, aAmount, Integer.MAX_VALUE, true, false, false); - chargeFromArmor(aStack, aPlayer); - return false; - } - - @Override - public final void chargeFromArmor(ItemStack aStack, EntityLivingBase aPlayer) { - if (aPlayer == null || aPlayer.worldObj.isRemote) return; - for (int i = 1; i < 5; i++) { - ItemStack tArmor = aPlayer.getEquipmentInSlot(i); - if (GT_ModHandler.isElectricItem(tArmor)) { - IElectricItem tArmorItem = (IElectricItem)tArmor.getItem(); - if (tArmorItem.canProvideEnergy(tArmor) && tArmorItem.getTier(tArmor) >= getTier(aStack)) { - double tCharge = ElectricItem.manager.discharge(tArmor, charge(aStack, Integer.MAX_VALUE-1, Integer.MAX_VALUE, true, true), Integer.MAX_VALUE, true, true, false); - if (tCharge > 0) { - charge(aStack, tCharge, Integer.MAX_VALUE, true, false); - if (aPlayer instanceof EntityPlayer) { - Container tContainer = ((EntityPlayer)aPlayer).openContainer; - if (tContainer != null) tContainer.detectAndSendChanges(); - } - } - } - } - } - } - /* - - @Override - public final int getMaxCharge(ItemStack aStack) { - Long[] tStats = getElectricStats(aStack); - if (tStats == null) return 0; - return (int)Math.abs(tStats[0]); - } - - @Override - public final int getTransferLimit(ItemStack aStack) { - Long[] tStats = getElectricStats(aStack); - if (tStats == null) return 0; - return (int)Math.max(tStats[1], tStats[3]); - } - - @Override - public final int charge(ItemStack aStack, int aCharge, int aTier, boolean aIgnoreTransferLimit, boolean aSimulate) { - Long[] tStats = getElectricStats(aStack); - if (tStats == null || tStats[2] > aTier || !(tStats[3] == -1 || tStats[3] == -3 || (tStats[3] < 0 && aCharge == Integer.MAX_VALUE)) || aStack.stackSize != 1) return 0; - long tChargeBefore = getRealCharge(aStack), tNewCharge = aCharge==Integer.MAX_VALUE?Long.MAX_VALUE:Math.min(Math.abs(tStats[0]), tChargeBefore + (aIgnoreTransferLimit?aCharge:Math.min(tStats[1], aCharge))); - if (!aSimulate) setCharge(aStack, tNewCharge); - return (int)(tNewCharge-tChargeBefore); - } - - @Override - public final int discharge(ItemStack aStack, int aCharge, int aTier, boolean aIgnoreTransferLimit, boolean aSimulate) { - Long[] tStats = getElectricStats(aStack); - if (tStats == null || tStats[2] > aTier) return 0; - if (tStats[3] > 0) { - if (aCharge < tStats[3] || aStack.stackSize < 1) return 0; - if (!aSimulate) aStack.stackSize--; - return (int)(long)tStats[3]; - } - long tChargeBefore = getRealCharge(aStack), tNewCharge = Math.max(0, tChargeBefore - (aIgnoreTransferLimit?aCharge:Math.min(tStats[1], aCharge))); - if (!aSimulate) setCharge(aStack, tNewCharge); - return (int)(tChargeBefore-tNewCharge); - } - - @Override - public final int getCharge(ItemStack aStack) { - return (int)Math.min(Integer.MAX_VALUE, getRealCharge(aStack)); - } - - @Override - public final boolean canUse(ItemStack aStack, int aAmount) { - return getRealCharge(aStack) >= aAmount; - } - - @Override - public final boolean use(ItemStack aStack, int aAmount, EntityLivingBase aPlayer) { - chargeFromArmor(aStack, aPlayer); - if (aPlayer instanceof EntityPlayer && ((EntityPlayer)aPlayer).capabilities.isCreativeMode) return true; - int tTransfer = discharge(aStack, aAmount, Integer.MAX_VALUE, true, true); - if (tTransfer == aAmount) { - discharge(aStack, aAmount, Integer.MAX_VALUE, true, false); - chargeFromArmor(aStack, aPlayer); - return true; - } - discharge(aStack, aAmount, Integer.MAX_VALUE, true, false); - chargeFromArmor(aStack, aPlayer); - return false; - } - - @Override - public final void chargeFromArmor(ItemStack aStack, EntityLivingBase aPlayer) { - if (aPlayer == null || aPlayer.worldObj.isRemote) return; - for (int i = 1; i < 5; i++) { - ItemStack tArmor = aPlayer.getEquipmentInSlot(i); - if (GT_ModHandler.isElectricItem(tArmor)) { - IElectricItem tArmorItem = (IElectricItem)tArmor.getItem(); - if (tArmorItem.canProvideEnergy(tArmor) && tArmorItem.getTier(tArmor) >= getTier(aStack)) { - int tCharge = ElectricItem.manager.discharge(tArmor, charge(aStack, Integer.MAX_VALUE-1, Integer.MAX_VALUE, true, true), Integer.MAX_VALUE, true, false); - if (tCharge > 0) { - charge(aStack, tCharge, Integer.MAX_VALUE, true, false); - if (aPlayer instanceof EntityPlayer) { - Container tContainer = ((EntityPlayer)aPlayer).openContainer; - if (tContainer != null) tContainer.detectAndSendChanges(); - } - } - } - } - } - } - */ - public final long getRealCharge(ItemStack aStack) { - Long[] tStats = getElectricStats(aStack); - if (tStats == null) return 0; - if (tStats[3] > 0) return (int)(long)tStats[3]; - NBTTagCompound tNBT = aStack.getTagCompound(); - return tNBT==null?0:tNBT.getLong("GT.ItemCharge"); - } - - public final boolean setCharge(ItemStack aStack, long aCharge) { - Long[] tStats = getElectricStats(aStack); - if (tStats == null || tStats[3] > 0) return false; - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) tNBT = new NBTTagCompound(); - tNBT.removeTag("GT.ItemCharge"); - aCharge = Math.min(tStats[0]<0?Math.abs(tStats[0] / 2):aCharge, Math.abs(tStats[0])); - if (aCharge > 0) { - aStack.setItemDamage(getChargedMetaData(aStack)); - tNBT.setLong("GT.ItemCharge", aCharge); - } else { - aStack.setItemDamage(getEmptyMetaData(aStack)); - } - if (tNBT.hasNoTags()) aStack.setTagCompound(null); else aStack.setTagCompound(tNBT); - isItemStackUsable(aStack); - return true; - } - - public short getChargedMetaData(ItemStack aStack) {return (short)aStack.getItemDamage();} - public short getEmptyMetaData(ItemStack aStack) {return (short)aStack.getItemDamage();} - - @Override - public FluidStack getFluid(ItemStack aStack) { - return getFluidContent(aStack); - } - - @Override - public int getCapacity(ItemStack aStack) { - Long[] tStats = getFluidContainerStats(aStack); - return tStats==null?0:(int)Math.max(0, tStats[0]); - } - - @Override - public int fill(ItemStack aStack, FluidStack aFluid, boolean doFill) { - if (aStack == null || aStack.stackSize != 1) return 0; - - ItemStack tStack = GT_Utility.fillFluidContainer(aFluid, aStack, false, false); - if (tStack != null) { - aStack.setItemDamage(tStack.getItemDamage()); - aStack.func_150996_a(tStack.getItem()); - return GT_Utility.getFluidForFilledItem(tStack, false).amount; - } - - Long[] tStats = getFluidContainerStats(aStack); - if (tStats == null || tStats[0] <= 0 || aFluid == null || aFluid.getFluid().getID() <= 0 || aFluid.amount <= 0) return 0; - - FluidStack tFluid = getFluidContent(aStack); - - if (tFluid == null || tFluid.getFluid().getID() <= 0) { - if (aFluid.amount <= tStats[0]) { - if (doFill) { - setFluidContent(aStack, aFluid); - } - return aFluid.amount; - } - if (doFill) { - tFluid = aFluid.copy(); - tFluid.amount = (int)(long)tStats[0]; - setFluidContent(aStack, tFluid); - } - return (int)(long)tStats[0]; - } - - if (!tFluid.isFluidEqual(aFluid)) return 0; - - int space = (int)(long)tStats[0] - tFluid.amount; - if (aFluid.amount <= space) { - if (doFill) { - tFluid.amount += aFluid.amount; - setFluidContent(aStack, tFluid); - } - return aFluid.amount; - } - if (doFill) { - tFluid.amount = (int)(long)tStats[0]; - setFluidContent(aStack, tFluid); - } - return space; - } - - @Override - public FluidStack drain(ItemStack aStack, int maxDrain, boolean doDrain) { - if (aStack == null || aStack.stackSize != 1) return null; - - FluidStack tFluid = GT_Utility.getFluidForFilledItem(aStack, false); - if (tFluid != null && maxDrain >= tFluid.amount) { - ItemStack tStack = GT_Utility.getContainerItem(aStack, false); - if (tStack == null) { - aStack.stackSize = 0; - return tFluid; - } - aStack.setItemDamage(tStack.getItemDamage()); - aStack.func_150996_a(tStack.getItem()); - return tFluid; - } - - Long[] tStats = getFluidContainerStats(aStack); - if (tStats == null || tStats[0] <= 0) return null; - - tFluid = getFluidContent(aStack); - if (tFluid == null) return null; - - int used = maxDrain; - if (tFluid.amount < used) used = tFluid.amount; - if (doDrain) { - tFluid.amount -= used; - setFluidContent(aStack, tFluid); - } - - FluidStack drained = tFluid.copy(); - drained.amount = used; - return drained; - } - - public FluidStack getFluidContent(ItemStack aStack) { - Long[] tStats = getFluidContainerStats(aStack); - if (tStats == null || tStats[0] <= 0) return GT_Utility.getFluidForFilledItem(aStack, false); - NBTTagCompound tNBT = aStack.getTagCompound(); - return tNBT==null?null:FluidStack.loadFluidStackFromNBT(tNBT.getCompoundTag("GT.FluidContent")); - } - - public void setFluidContent(ItemStack aStack, FluidStack aFluid) { - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) tNBT = new NBTTagCompound(); else tNBT.removeTag("GT.FluidContent"); - if (aFluid != null && aFluid.amount > 0) tNBT.setTag("GT.FluidContent", aFluid.writeToNBT(new NBTTagCompound())); - if (tNBT.hasNoTags()) aStack.setTagCompound(null); else aStack.setTagCompound(tNBT); - isItemStackUsable(aStack); - } - - @Override - public int getItemStackLimit(ItemStack aStack) { - Long[] tStats = getElectricStats(aStack); - if (tStats != null && (tStats[3] == -1 || tStats[3] == -3) && getRealCharge(aStack) > 0) return 1; - tStats = getFluidContainerStats(aStack); - if (tStats != null) return (int)(long)tStats[1]; - return 64; - } - - @Override public final Item getChargedItem(ItemStack itemStack) {return this;} - @Override public final Item getEmptyItem(ItemStack itemStack) {return this;} - @Override public final int getTier(ItemStack aStack) {Long[] tStats = getElectricStats(aStack); return (int)(tStats==null?Integer.MAX_VALUE:tStats[2]);} - @Override public final String getToolTip(ItemStack aStack) {return null;} // This has its own ToolTip Handler, no need to let the IC2 Handler screw us up at this Point - @Override public final IElectricItemManager getManager(ItemStack aStack) {return this;} // We are our own Manager - @Override public final boolean getShareTag() {return true;} // just to be sure. - @Override public int getItemEnchantability() {return 0;} - @Override public boolean isBookEnchantable(ItemStack aStack, ItemStack aBook) {return false;} - @Override public boolean getIsRepairable(ItemStack aStack, ItemStack aMaterial) {return false;} + String tKey = getUnlocalizedName(aStack) + ".tooltip", tString = GT_LanguageManager.getTranslation(tKey); + if (GT_Utility.isStringValid(tString) && !tKey.equals(tString)) aList.add(tString); + + Long[] + tStats = getElectricStats(aStack); + if (tStats != null) { + if (tStats[3] > 0) { + aList.add(EnumChatFormatting.AQUA + "Contains " + GT_Utility.formatNumbers(tStats[3]) + " EU Tier: " + (tStats[2] >= 0 ? tStats[2] : 0) + EnumChatFormatting.GRAY); + } else { + long tCharge = getRealCharge(aStack); + if (tStats[3] == -2 && tCharge <= 0) { + aList.add(EnumChatFormatting.AQUA + "Empty. You should recycle it properly." + EnumChatFormatting.GRAY); + } else { + aList.add(EnumChatFormatting.AQUA + "" + GT_Utility.formatNumbers(tCharge) + " / " + GT_Utility.formatNumbers(Math.abs(tStats[0])) + " EU - Voltage: " + V[(int) (tStats[2] >= 0 ? tStats[2] < V.length ? tStats[2] : V.length - 1 : 1)] + EnumChatFormatting.GRAY); + } + } + } + + tStats = getFluidContainerStats(aStack); + if (tStats != null && tStats[0] > 0) { + FluidStack tFluid = getFluidContent(aStack); + aList.add(EnumChatFormatting.BLUE + ((tFluid == null ? "No Fluids Contained" : GT_Utility.getFluidName(tFluid, true))) + EnumChatFormatting.GRAY); + aList.add(EnumChatFormatting.BLUE + ((tFluid == null ? 0 : tFluid.amount) + "L / " + tStats[0] + "L") + EnumChatFormatting.GRAY); + } + + ArrayList> tList = mItemBehaviors.get((short) getDamage(aStack)); + if (tList != null) for (IItemBehaviour tBehavior : tList) + aList = tBehavior.getAdditionalToolTips(this, aList, aStack); + + addAdditionalToolTips(aList, aStack); + } + + @Override + public void onUpdate(ItemStack aStack, World aWorld, Entity aPlayer, int aTimer, boolean aIsInHand) { + ArrayList> tList = mItemBehaviors.get((short) getDamage(aStack)); + if (tList != null) for (IItemBehaviour tBehavior : tList) + tBehavior.onUpdate(this, aStack, aWorld, aPlayer, aTimer, aIsInHand); + } + + @Override + public final boolean canProvideEnergy(ItemStack aStack) { + Long[] tStats = getElectricStats(aStack); + if (tStats == null) return false; + return tStats[3] > 0 || (aStack.stackSize == 1 && (tStats[3] == -2 || tStats[3] == -3)); + } + + @Override + public final double getMaxCharge(ItemStack aStack) { + Long[] tStats = getElectricStats(aStack); + if (tStats == null) return 0; + return Math.abs(tStats[0]); + } + + @Override + public final double getTransferLimit(ItemStack aStack) { + Long[] tStats = getElectricStats(aStack); + if (tStats == null) return 0; + return Math.max(tStats[1], tStats[3]); + } + + @Override + public final double charge(ItemStack aStack, double aCharge, int aTier, boolean aIgnoreTransferLimit, boolean aSimulate) { + Long[] tStats = getElectricStats(aStack); + if (tStats == null || tStats[2] > aTier || !(tStats[3] == -1 || tStats[3] == -3 || (tStats[3] < 0 && aCharge == Integer.MAX_VALUE)) || aStack.stackSize != 1) + return 0; + long tChargeBefore = getRealCharge(aStack), tNewCharge = aCharge == Integer.MAX_VALUE ? Long.MAX_VALUE : Math.min(Math.abs(tStats[0]), tChargeBefore + (aIgnoreTransferLimit ? (long) aCharge : Math.min(tStats[1], (long) aCharge))); + if (!aSimulate) setCharge(aStack, tNewCharge); + return tNewCharge - tChargeBefore; + } + + @Override + public final double discharge(ItemStack aStack, double aCharge, int aTier, boolean aIgnoreTransferLimit, boolean aBatteryAlike, boolean aSimulate) { + Long[] tStats = getElectricStats(aStack); + if (tStats == null || tStats[2] > aTier) return 0; + if (aBatteryAlike && !canProvideEnergy(aStack)) return 0; + if (tStats[3] > 0) { + if (aCharge < tStats[3] || aStack.stackSize < 1) return 0; + if (!aSimulate) aStack.stackSize--; + return tStats[3]; + } + long tChargeBefore = getRealCharge(aStack), tNewCharge = Math.max(0, tChargeBefore - (aIgnoreTransferLimit ? (long) aCharge : Math.min(tStats[1], (long) aCharge))); + if (!aSimulate) setCharge(aStack, tNewCharge); + return tChargeBefore - tNewCharge; + } + + @Override + public final double getCharge(ItemStack aStack) { + return getRealCharge(aStack); + } + + @Override + public final boolean canUse(ItemStack aStack, double aAmount) { + return getRealCharge(aStack) >= aAmount; + } + + @Override + public final boolean use(ItemStack aStack, double aAmount, EntityLivingBase aPlayer) { + chargeFromArmor(aStack, aPlayer); + if (aPlayer instanceof EntityPlayer && ((EntityPlayer) aPlayer).capabilities.isCreativeMode) return true; + double tTransfer = discharge(aStack, aAmount, Integer.MAX_VALUE, true, false, true); + if (tTransfer == aAmount) { + discharge(aStack, aAmount, Integer.MAX_VALUE, true, false, false); + chargeFromArmor(aStack, aPlayer); + return true; + } + discharge(aStack, aAmount, Integer.MAX_VALUE, true, false, false); + chargeFromArmor(aStack, aPlayer); + return false; + } + + @Override + public final void chargeFromArmor(ItemStack aStack, EntityLivingBase aPlayer) { + if (aPlayer == null || aPlayer.worldObj.isRemote) return; + for (int i = 1; i < 5; i++) { + ItemStack tArmor = aPlayer.getEquipmentInSlot(i); + if (GT_ModHandler.isElectricItem(tArmor)) { + IElectricItem tArmorItem = (IElectricItem) tArmor.getItem(); + if (tArmorItem.canProvideEnergy(tArmor) && tArmorItem.getTier(tArmor) >= getTier(aStack)) { + double tCharge = ElectricItem.manager.discharge(tArmor, charge(aStack, Integer.MAX_VALUE - 1, Integer.MAX_VALUE, true, true), Integer.MAX_VALUE, true, true, false); + if (tCharge > 0) { + charge(aStack, tCharge, Integer.MAX_VALUE, true, false); + if (aPlayer instanceof EntityPlayer) { + Container tContainer = ((EntityPlayer) aPlayer).openContainer; + if (tContainer != null) tContainer.detectAndSendChanges(); + } + } + } + } + } + } + + /* + + @Override + public final int getMaxCharge(ItemStack aStack) { + Long[] tStats = getElectricStats(aStack); + if (tStats == null) return 0; + return (int)Math.abs(tStats[0]); + } + + @Override + public final int getTransferLimit(ItemStack aStack) { + Long[] tStats = getElectricStats(aStack); + if (tStats == null) return 0; + return (int)Math.max(tStats[1], tStats[3]); + } + + @Override + public final int charge(ItemStack aStack, int aCharge, int aTier, boolean aIgnoreTransferLimit, boolean aSimulate) { + Long[] tStats = getElectricStats(aStack); + if (tStats == null || tStats[2] > aTier || !(tStats[3] == -1 || tStats[3] == -3 || (tStats[3] < 0 && aCharge == Integer.MAX_VALUE)) || aStack.stackSize != 1) return 0; + long tChargeBefore = getRealCharge(aStack), tNewCharge = aCharge==Integer.MAX_VALUE?Long.MAX_VALUE:Math.min(Math.abs(tStats[0]), tChargeBefore + (aIgnoreTransferLimit?aCharge:Math.min(tStats[1], aCharge))); + if (!aSimulate) setCharge(aStack, tNewCharge); + return (int)(tNewCharge-tChargeBefore); + } + + @Override + public final int discharge(ItemStack aStack, int aCharge, int aTier, boolean aIgnoreTransferLimit, boolean aSimulate) { + Long[] tStats = getElectricStats(aStack); + if (tStats == null || tStats[2] > aTier) return 0; + if (tStats[3] > 0) { + if (aCharge < tStats[3] || aStack.stackSize < 1) return 0; + if (!aSimulate) aStack.stackSize--; + return (int)(long)tStats[3]; + } + long tChargeBefore = getRealCharge(aStack), tNewCharge = Math.max(0, tChargeBefore - (aIgnoreTransferLimit?aCharge:Math.min(tStats[1], aCharge))); + if (!aSimulate) setCharge(aStack, tNewCharge); + return (int)(tChargeBefore-tNewCharge); + } + + @Override + public final int getCharge(ItemStack aStack) { + return (int)Math.min(Integer.MAX_VALUE, getRealCharge(aStack)); + } + + @Override + public final boolean canUse(ItemStack aStack, int aAmount) { + return getRealCharge(aStack) >= aAmount; + } + + @Override + public final boolean use(ItemStack aStack, int aAmount, EntityLivingBase aPlayer) { + chargeFromArmor(aStack, aPlayer); + if (aPlayer instanceof EntityPlayer && ((EntityPlayer)aPlayer).capabilities.isCreativeMode) return true; + int tTransfer = discharge(aStack, aAmount, Integer.MAX_VALUE, true, true); + if (tTransfer == aAmount) { + discharge(aStack, aAmount, Integer.MAX_VALUE, true, false); + chargeFromArmor(aStack, aPlayer); + return true; + } + discharge(aStack, aAmount, Integer.MAX_VALUE, true, false); + chargeFromArmor(aStack, aPlayer); + return false; + } + + @Override + public final void chargeFromArmor(ItemStack aStack, EntityLivingBase aPlayer) { + if (aPlayer == null || aPlayer.worldObj.isRemote) return; + for (int i = 1; i < 5; i++) { + ItemStack tArmor = aPlayer.getEquipmentInSlot(i); + if (GT_ModHandler.isElectricItem(tArmor)) { + IElectricItem tArmorItem = (IElectricItem)tArmor.getItem(); + if (tArmorItem.canProvideEnergy(tArmor) && tArmorItem.getTier(tArmor) >= getTier(aStack)) { + int tCharge = ElectricItem.manager.discharge(tArmor, charge(aStack, Integer.MAX_VALUE-1, Integer.MAX_VALUE, true, true), Integer.MAX_VALUE, true, false); + if (tCharge > 0) { + charge(aStack, tCharge, Integer.MAX_VALUE, true, false); + if (aPlayer instanceof EntityPlayer) { + Container tContainer = ((EntityPlayer)aPlayer).openContainer; + if (tContainer != null) tContainer.detectAndSendChanges(); + } + } + } + } + } + } + */ + public final long getRealCharge(ItemStack aStack) { + Long[] tStats = getElectricStats(aStack); + if (tStats == null) return 0; + if (tStats[3] > 0) return (int) (long) tStats[3]; + NBTTagCompound tNBT = aStack.getTagCompound(); + return tNBT == null ? 0 : tNBT.getLong("GT.ItemCharge"); + } + + public final boolean setCharge(ItemStack aStack, long aCharge) { + Long[] tStats = getElectricStats(aStack); + if (tStats == null || tStats[3] > 0) return false; + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) tNBT = new NBTTagCompound(); + tNBT.removeTag("GT.ItemCharge"); + aCharge = Math.min(tStats[0] < 0 ? Math.abs(tStats[0] / 2) : aCharge, Math.abs(tStats[0])); + if (aCharge > 0) { + aStack.setItemDamage(getChargedMetaData(aStack)); + tNBT.setLong("GT.ItemCharge", aCharge); + } else { + aStack.setItemDamage(getEmptyMetaData(aStack)); + } + if (tNBT.hasNoTags()) aStack.setTagCompound(null); + else aStack.setTagCompound(tNBT); + isItemStackUsable(aStack); + return true; + } + + public short getChargedMetaData(ItemStack aStack) { + return (short) aStack.getItemDamage(); + } + + public short getEmptyMetaData(ItemStack aStack) { + return (short) aStack.getItemDamage(); + } + + @Override + public FluidStack getFluid(ItemStack aStack) { + return getFluidContent(aStack); + } + + @Override + public int getCapacity(ItemStack aStack) { + Long[] tStats = getFluidContainerStats(aStack); + return tStats == null ? 0 : (int) Math.max(0, tStats[0]); + } + + @Override + public int fill(ItemStack aStack, FluidStack aFluid, boolean doFill) { + if (aStack == null || aStack.stackSize != 1) return 0; + + ItemStack tStack = GT_Utility.fillFluidContainer(aFluid, aStack, false, false); + if (tStack != null) { + aStack.setItemDamage(tStack.getItemDamage()); + aStack.func_150996_a(tStack.getItem()); + return GT_Utility.getFluidForFilledItem(tStack, false).amount; + } + + Long[] tStats = getFluidContainerStats(aStack); + if (tStats == null || tStats[0] <= 0 || aFluid == null || aFluid.getFluid().getID() <= 0 || aFluid.amount <= 0) + return 0; + + FluidStack tFluid = getFluidContent(aStack); + + if (tFluid == null || tFluid.getFluid().getID() <= 0) { + if (aFluid.amount <= tStats[0]) { + if (doFill) { + setFluidContent(aStack, aFluid); + } + return aFluid.amount; + } + if (doFill) { + tFluid = aFluid.copy(); + tFluid.amount = (int) (long) tStats[0]; + setFluidContent(aStack, tFluid); + } + return (int) (long) tStats[0]; + } + + if (!tFluid.isFluidEqual(aFluid)) return 0; + + int space = (int) (long) tStats[0] - tFluid.amount; + if (aFluid.amount <= space) { + if (doFill) { + tFluid.amount += aFluid.amount; + setFluidContent(aStack, tFluid); + } + return aFluid.amount; + } + if (doFill) { + tFluid.amount = (int) (long) tStats[0]; + setFluidContent(aStack, tFluid); + } + return space; + } + + @Override + public FluidStack drain(ItemStack aStack, int maxDrain, boolean doDrain) { + if (aStack == null || aStack.stackSize != 1) return null; + + FluidStack tFluid = GT_Utility.getFluidForFilledItem(aStack, false); + if (tFluid != null && maxDrain >= tFluid.amount) { + ItemStack tStack = GT_Utility.getContainerItem(aStack, false); + if (tStack == null) { + aStack.stackSize = 0; + return tFluid; + } + aStack.setItemDamage(tStack.getItemDamage()); + aStack.func_150996_a(tStack.getItem()); + return tFluid; + } + + Long[] tStats = getFluidContainerStats(aStack); + if (tStats == null || tStats[0] <= 0) return null; + + tFluid = getFluidContent(aStack); + if (tFluid == null) return null; + + int used = maxDrain; + if (tFluid.amount < used) used = tFluid.amount; + if (doDrain) { + tFluid.amount -= used; + setFluidContent(aStack, tFluid); + } + + FluidStack drained = tFluid.copy(); + drained.amount = used; + return drained; + } + + public FluidStack getFluidContent(ItemStack aStack) { + Long[] tStats = getFluidContainerStats(aStack); + if (tStats == null || tStats[0] <= 0) return GT_Utility.getFluidForFilledItem(aStack, false); + NBTTagCompound tNBT = aStack.getTagCompound(); + return tNBT == null ? null : FluidStack.loadFluidStackFromNBT(tNBT.getCompoundTag("GT.FluidContent")); + } + + public void setFluidContent(ItemStack aStack, FluidStack aFluid) { + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) tNBT = new NBTTagCompound(); + else tNBT.removeTag("GT.FluidContent"); + if (aFluid != null && aFluid.amount > 0) + tNBT.setTag("GT.FluidContent", aFluid.writeToNBT(new NBTTagCompound())); + if (tNBT.hasNoTags()) aStack.setTagCompound(null); + else aStack.setTagCompound(tNBT); + isItemStackUsable(aStack); + } + + @Override + public int getItemStackLimit(ItemStack aStack) { + Long[] tStats = getElectricStats(aStack); + if (tStats != null && (tStats[3] == -1 || tStats[3] == -3) && getRealCharge(aStack) > 0) return 1; + tStats = getFluidContainerStats(aStack); + if (tStats != null) return (int) (long) tStats[1]; + return 64; + } + + @Override + public final Item getChargedItem(ItemStack itemStack) { + return this; + } + + @Override + public final Item getEmptyItem(ItemStack itemStack) { + return this; + } + + @Override + public final int getTier(ItemStack aStack) { + Long[] tStats = getElectricStats(aStack); + return (int) (tStats == null ? Integer.MAX_VALUE : tStats[2]); + } + + @Override + public final String getToolTip(ItemStack aStack) { + return null; + } // This has its own ToolTip Handler, no need to let the IC2 Handler screw us up at this Point + + @Override + public final IElectricItemManager getManager(ItemStack aStack) { + return this; + } // We are our own Manager + + @Override + public final boolean getShareTag() { + return true; + } // just to be sure. + + @Override + public int getItemEnchantability() { + return 0; + } + + @Override + public boolean isBookEnchantable(ItemStack aStack, ItemStack aBook) { + return false; + } + + @Override + public boolean getIsRepairable(ItemStack aStack, ItemStack aMaterial) { + return false; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/items/GT_MetaGenerated_Item.java b/src/main/java/gregtech/api/items/GT_MetaGenerated_Item.java index d8ef7f8a..a246e83d 100644 --- a/src/main/java/gregtech/api/items/GT_MetaGenerated_Item.java +++ b/src/main/java/gregtech/api/items/GT_MetaGenerated_Item.java @@ -1,9 +1,9 @@ package gregtech.api.items; -import static gregtech.api.enums.GT_Values.D1; -import static gregtech.api.enums.GT_Values.MOD_ID_APC; -import static gregtech.api.enums.GT_Values.RA; -import static gregtech.api.enums.GT_Values.RES_PATH_ITEM; +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.Optional; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; @@ -18,9 +18,6 @@ import gregtech.api.util.GT_Config; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; - -import java.util.*; - import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; @@ -32,300 +29,327 @@ import net.minecraft.util.IIcon; import net.minecraft.world.World; import squeek.applecore.api.food.FoodValues; import squeek.applecore.api.food.IEdible; -import cpw.mods.fml.common.Loader; -import cpw.mods.fml.common.Optional; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; + +import java.util.*; + +import static gregtech.api.enums.GT_Values.*; /** * @author Gregorius Techneticies - * - * One Item for everything! - * - * This brilliant Item Class is used for automatically generating all possible variations of Material Items, like Dusts, Ingots, Gems, Plates and similar. - * It saves me a ton of work, when adding Items, because I always have to make a new Item SubType for each OreDict Prefix, when adding a new Material. - * - * As you can see, up to 32766 Items can be generated using this Class. And the last 766 Items can be custom defined, just to save space and MetaData. - * - * These Items can also have special RightClick abilities, electric Charge or even be set to become a Food alike Item. + *

+ * One Item for everything! + *

+ * This brilliant Item Class is used for automatically generating all possible variations of Material Items, like Dusts, Ingots, Gems, Plates and similar. + * It saves me a ton of work, when adding Items, because I always have to make a new Item SubType for each OreDict Prefix, when adding a new Material. + *

+ * As you can see, up to 32766 Items can be generated using this Class. And the last 766 Items can be custom defined, just to save space and MetaData. + *

+ * These Items can also have special RightClick abilities, electric Charge or even be set to become a Food alike Item. */ @Optional.Interface(iface = "squeek.applecore.api.food.IEdible", modid = MOD_ID_APC) public abstract class GT_MetaGenerated_Item extends GT_MetaBase_Item implements IEdible { - /** - * All instances of this Item Class are listed here. - * This gets used to register the Renderer to all Items of this Type, if useStandardMetaItemRenderer() returns true. - * - * You can also use the unlocalized Name gotten from getUnlocalizedName() as Key if you want to get a specific Item. - */ - public static final HashMap sInstances = new HashMap(); - + /** + * All instances of this Item Class are listed here. + * This gets used to register the Renderer to all Items of this Type, if useStandardMetaItemRenderer() returns true. + *

+ * You can also use the unlocalized Name gotten from getUnlocalizedName() as Key if you want to get a specific Item. + */ + public static final HashMap sInstances = new HashMap(); + /* ---------- CONSTRUCTOR AND MEMBER VARIABLES ---------- */ - - public final short mOffset, mItemAmount; - public final BitSet mEnabledItems; - public final BitSet mVisibleItems; - public final IIcon[][] mIconList; - - public final HashMap mFoodStats = new HashMap(); - public final HashMap mElectricStats = new HashMap(); - public final HashMap mFluidContainerStats = new HashMap(); - public final HashMap mBurnValues = new HashMap(); - - /** - * Creates the Item using these Parameters. - * @param aUnlocalized The Unlocalized Name of this Item. - */ - public GT_MetaGenerated_Item(String aUnlocalized, short aOffset, short aItemAmount) { - super(aUnlocalized); - setCreativeTab(GregTech_API.TAB_GREGTECH_MATERIALS); + + public final short mOffset, mItemAmount; + public final BitSet mEnabledItems; + public final BitSet mVisibleItems; + public final IIcon[][] mIconList; + + public final HashMap mFoodStats = new HashMap(); + public final HashMap mElectricStats = new HashMap(); + public final HashMap mFluidContainerStats = new HashMap(); + public final HashMap mBurnValues = new HashMap(); + + /** + * Creates the Item using these Parameters. + * + * @param aUnlocalized The Unlocalized Name of this Item. + */ + public GT_MetaGenerated_Item(String aUnlocalized, short aOffset, short aItemAmount) { + super(aUnlocalized); + setCreativeTab(GregTech_API.TAB_GREGTECH_MATERIALS); setHasSubtypes(true); setMaxDamage(0); mEnabledItems = new BitSet(aItemAmount); - mVisibleItems = new BitSet(aItemAmount); - - mOffset = (short)Math.min(32766, aOffset); - mItemAmount = (short)Math.min(aItemAmount, 32766-mOffset); - mIconList = new IIcon[aItemAmount][1]; - + mVisibleItems = new BitSet(aItemAmount); + + mOffset = (short) Math.min(32766, aOffset); + mItemAmount = (short) Math.min(aItemAmount, 32766 - mOffset); + mIconList = new IIcon[aItemAmount][1]; + sInstances.put(getUnlocalizedName(), this); - } - - /** - * This adds a Custom Item to the ending Range. - * @param aID The Id of the assigned Item [0 - mItemAmount] (The MetaData gets auto-shifted by +mOffset) - * @param aEnglish The Default Localized Name of the created Item - * @param aToolTip The Default ToolTip of the created Item, you can also insert null for having no ToolTip - * @param aFoodBehavior The Food Value of this Item. Can be null aswell. Just a convenience thing. - * @param aRandomData The OreDict Names you want to give the Item. Also used for TC Aspects and some other things. - * @return An ItemStack containing the newly created Item. - */ - public final ItemStack addItem(int aID, String aEnglish, String aToolTip, Object... aRandomData) { - if (aToolTip == null) aToolTip = ""; - if (aID >= 0 && aID < mItemAmount) { - ItemStack rStack = new ItemStack(this, 1, mOffset+aID); - mEnabledItems.set(aID); - mVisibleItems.set(aID); - GT_LanguageManager.addStringLocalization(getUnlocalizedName(rStack) + ".name", aEnglish); - GT_LanguageManager.addStringLocalization(getUnlocalizedName(rStack) + ".tooltip", aToolTip); - List tAspects = new ArrayList(); - // Important Stuff to do first - for (Object tRandomData : aRandomData) if (tRandomData instanceof SubTag) { - if (tRandomData == SubTag.INVISIBLE) { - mVisibleItems.set(aID, false); - continue; - } - if (tRandomData == SubTag.NO_UNIFICATION) { - GT_OreDictUnificator.addToBlacklist(rStack); - continue; - } - } - // now check for the rest - for (Object tRandomData : aRandomData) if (tRandomData != null) { - boolean tUseOreDict = true; - if (tRandomData instanceof IFoodStat) { - setFoodBehavior(mOffset+aID, (IFoodStat)tRandomData); - if (((IFoodStat)tRandomData).getFoodAction(this, rStack) == EnumAction.eat) { - int tFoodValue = ((IFoodStat)tRandomData).getFoodLevel(this, rStack, null); - if (tFoodValue > 0) RA.addCannerRecipe(rStack, ItemList.IC2_Food_Can_Empty.get(tFoodValue), ((IFoodStat)tRandomData).isRotten(this, rStack, null)?ItemList.IC2_Food_Can_Spoiled.get(tFoodValue):ItemList.IC2_Food_Can_Filled.get(tFoodValue), null, tFoodValue*100, 1); - } - tUseOreDict = false; - } - if (tRandomData instanceof IItemBehaviour) { - addItemBehavior(mOffset+aID, (IItemBehaviour)tRandomData); - tUseOreDict = false; - } - if (tRandomData instanceof IItemContainer) { - ((IItemContainer)tRandomData).set(rStack); - tUseOreDict = false; - } - if (tRandomData instanceof SubTag) { - continue; - } - if (tRandomData instanceof TC_AspectStack) { - ((TC_AspectStack)tRandomData).addToAspectList(tAspects); - continue; - } - if (tRandomData instanceof ItemData) { - if (GT_Utility.isStringValid(tRandomData)) GT_OreDictUnificator.registerOre(tRandomData, rStack); else GT_OreDictUnificator.addItemData(rStack, (ItemData)tRandomData); - continue; - } - if (tUseOreDict) { - GT_OreDictUnificator.registerOre(tRandomData, rStack); - continue; - } - } - if (GregTech_API.sThaumcraftCompat != null) GregTech_API.sThaumcraftCompat.registerThaumcraftAspectsToItem(rStack, tAspects, false); - return rStack; - } - return null; - } - - /** - * Sets a Food Behavior for the Item. - * - * @param aMetaValue the Meta Value of the Item you want to set it to. [0 - 32765] - * @param aFoodBehavior the Food Behavior you want to add. - * @return the Item itself for convenience in constructing. - */ - public final GT_MetaGenerated_Item setFoodBehavior(int aMetaValue, IFoodStat aFoodBehavior) { - if (aMetaValue < 0 || aMetaValue >= mOffset + mEnabledItems.length()) return this; - if (aFoodBehavior == null) mFoodStats.remove((short)aMetaValue); else mFoodStats.put((short)aMetaValue, aFoodBehavior); - return this; - } - - /** - * Sets the Furnace Burn Value for the Item. - * - * @param aMetaValue the Meta Value of the Item you want to set it to. [0 - 32765] - * @param aValue 200 = 1 Burn Process = 500 EU, max = 32767 (that is 81917.5 EU) - * @return the Item itself for convenience in constructing. - */ - public final GT_MetaGenerated_Item setBurnValue(int aMetaValue, int aValue) { - if (aMetaValue < 0 || aMetaValue >= mOffset + mEnabledItems.length() || aValue < 0) return this; - if (aValue == 0) mBurnValues.remove((short)aMetaValue); else mBurnValues.put((short)aMetaValue, aValue>Short.MAX_VALUE?Short.MAX_VALUE:(short)aValue); - return this; - } - - /** - * @param aMetaValue the Meta Value of the Item you want to set it to. [0 - 32765] - * @param aMaxCharge Maximum Charge. (if this is == 0 it will remove the Electric Behavior) - * @param aTransferLimit Transfer Limit. - * @param aTier The electric Tier. - * @param aSpecialData If this Item has a Fixed Charge, like a SingleUse Battery (if > 0). - * Use -1 if you want to make this Battery chargeable (the use and canUse Functions will still discharge if you just use this) - * Use -2 if you want to make this Battery dischargeable. - * Use -3 if you want to make this Battery charge/discharge-able. - * @return the Item itself for convenience in constructing. - */ - public final GT_MetaGenerated_Item setElectricStats(int aMetaValue, long aMaxCharge, long aTransferLimit, long aTier, long aSpecialData, boolean aUseAnimations) { - if (aMetaValue < 0 || aMetaValue >= mOffset + mEnabledItems.length()) return this; - if (aMaxCharge == 0) mElectricStats.remove((short)aMetaValue); else { - mElectricStats.put((short)aMetaValue, new Long[] {aMaxCharge, Math.max(0, aTransferLimit), Math.max(-1, aTier), aSpecialData}); - if (aMetaValue >= mOffset && aUseAnimations) mIconList[aMetaValue-mOffset] = Arrays.copyOf(mIconList[aMetaValue-mOffset], Math.max(9, mIconList[aMetaValue-mOffset].length)); - } - return this; - } - - /** - * @param aMetaValue the Meta Value of the Item you want to set it to. [0 - 32765] - * @param aMaxCharge Maximum Charge. (if this is == 0 it will remove the Electric Behavior) - * @param aTransferLimit Transfer Limit. - * @param aTier The electric Tier. - * @param aSpecialData If this Item has a Fixed Charge, like a SingleUse Battery (if > 0). - * Use -1 if you want to make this Battery chargeable (the use and canUse Functions will still discharge if you just use this) - * Use -2 if you want to make this Battery dischargeable. - * Use -3 if you want to make this Battery charge/discharge-able. - * @return the Item itself for convenience in constructing. - */ - public final GT_MetaGenerated_Item setFluidContainerStats(int aMetaValue, long aCapacity, long aStacksize) { - if (aMetaValue < 0 || aMetaValue >= mOffset + mEnabledItems.length()) return this; - if (aCapacity < 0) mElectricStats.remove((short)aMetaValue); else mFluidContainerStats.put((short)aMetaValue, new Long[] {aCapacity, Math.max(1, aStacksize)}); - return this; - } - - /** - * @return if this MetaGenerated Item should use my Default Renderer System. - */ - public boolean useStandardMetaItemRenderer() { - return true; - } - - /** - * @return the Color Modulation the Material is going to be rendered with. - */ - public short[] getRGBa(ItemStack aStack) { - return Materials._NULL.getRGBA(); - } - - /** - * @return the Icon the Material is going to be rendered with. - */ - public IIconContainer getIconContainer(int aMetaData) { - return null; - } + } + + /** + * This adds a Custom Item to the ending Range. + * + * @param aID The Id of the assigned Item [0 - mItemAmount] (The MetaData gets auto-shifted by +mOffset) + * @param aEnglish The Default Localized Name of the created Item + * @param aToolTip The Default ToolTip of the created Item, you can also insert null for having no ToolTip + * @param aFoodBehavior The Food Value of this Item. Can be null aswell. Just a convenience thing. + * @param aRandomData The OreDict Names you want to give the Item. Also used for TC Aspects and some other things. + * @return An ItemStack containing the newly created Item. + */ + public final ItemStack addItem(int aID, String aEnglish, String aToolTip, Object... aRandomData) { + if (aToolTip == null) aToolTip = ""; + if (aID >= 0 && aID < mItemAmount) { + ItemStack rStack = new ItemStack(this, 1, mOffset + aID); + mEnabledItems.set(aID); + mVisibleItems.set(aID); + GT_LanguageManager.addStringLocalization(getUnlocalizedName(rStack) + ".name", aEnglish); + GT_LanguageManager.addStringLocalization(getUnlocalizedName(rStack) + ".tooltip", aToolTip); + List tAspects = new ArrayList(); + // Important Stuff to do first + for (Object tRandomData : aRandomData) + if (tRandomData instanceof SubTag) { + if (tRandomData == SubTag.INVISIBLE) { + mVisibleItems.set(aID, false); + continue; + } + if (tRandomData == SubTag.NO_UNIFICATION) { + GT_OreDictUnificator.addToBlacklist(rStack); + continue; + } + } + // now check for the rest + for (Object tRandomData : aRandomData) + if (tRandomData != null) { + boolean tUseOreDict = true; + if (tRandomData instanceof IFoodStat) { + setFoodBehavior(mOffset + aID, (IFoodStat) tRandomData); + if (((IFoodStat) tRandomData).getFoodAction(this, rStack) == EnumAction.eat) { + int tFoodValue = ((IFoodStat) tRandomData).getFoodLevel(this, rStack, null); + if (tFoodValue > 0) + RA.addCannerRecipe(rStack, ItemList.IC2_Food_Can_Empty.get(tFoodValue), ((IFoodStat) tRandomData).isRotten(this, rStack, null) ? ItemList.IC2_Food_Can_Spoiled.get(tFoodValue) : ItemList.IC2_Food_Can_Filled.get(tFoodValue), null, tFoodValue * 100, 1); + } + tUseOreDict = false; + } + if (tRandomData instanceof IItemBehaviour) { + addItemBehavior(mOffset + aID, (IItemBehaviour) tRandomData); + tUseOreDict = false; + } + if (tRandomData instanceof IItemContainer) { + ((IItemContainer) tRandomData).set(rStack); + tUseOreDict = false; + } + if (tRandomData instanceof SubTag) { + continue; + } + if (tRandomData instanceof TC_AspectStack) { + ((TC_AspectStack) tRandomData).addToAspectList(tAspects); + continue; + } + if (tRandomData instanceof ItemData) { + if (GT_Utility.isStringValid(tRandomData)) + GT_OreDictUnificator.registerOre(tRandomData, rStack); + else GT_OreDictUnificator.addItemData(rStack, (ItemData) tRandomData); + continue; + } + if (tUseOreDict) { + GT_OreDictUnificator.registerOre(tRandomData, rStack); + continue; + } + } + if (GregTech_API.sThaumcraftCompat != null) + GregTech_API.sThaumcraftCompat.registerThaumcraftAspectsToItem(rStack, tAspects, false); + return rStack; + } + return null; + } + + /** + * Sets a Food Behavior for the Item. + * + * @param aMetaValue the Meta Value of the Item you want to set it to. [0 - 32765] + * @param aFoodBehavior the Food Behavior you want to add. + * @return the Item itself for convenience in constructing. + */ + public final GT_MetaGenerated_Item setFoodBehavior(int aMetaValue, IFoodStat aFoodBehavior) { + if (aMetaValue < 0 || aMetaValue >= mOffset + mEnabledItems.length()) return this; + if (aFoodBehavior == null) mFoodStats.remove((short) aMetaValue); + else mFoodStats.put((short) aMetaValue, aFoodBehavior); + return this; + } + + /** + * Sets the Furnace Burn Value for the Item. + * + * @param aMetaValue the Meta Value of the Item you want to set it to. [0 - 32765] + * @param aValue 200 = 1 Burn Process = 500 EU, max = 32767 (that is 81917.5 EU) + * @return the Item itself for convenience in constructing. + */ + public final GT_MetaGenerated_Item setBurnValue(int aMetaValue, int aValue) { + if (aMetaValue < 0 || aMetaValue >= mOffset + mEnabledItems.length() || aValue < 0) return this; + if (aValue == 0) mBurnValues.remove((short) aMetaValue); + else mBurnValues.put((short) aMetaValue, aValue > Short.MAX_VALUE ? Short.MAX_VALUE : (short) aValue); + return this; + } + + /** + * @param aMetaValue the Meta Value of the Item you want to set it to. [0 - 32765] + * @param aMaxCharge Maximum Charge. (if this is == 0 it will remove the Electric Behavior) + * @param aTransferLimit Transfer Limit. + * @param aTier The electric Tier. + * @param aSpecialData If this Item has a Fixed Charge, like a SingleUse Battery (if > 0). + * Use -1 if you want to make this Battery chargeable (the use and canUse Functions will still discharge if you just use this) + * Use -2 if you want to make this Battery dischargeable. + * Use -3 if you want to make this Battery charge/discharge-able. + * @return the Item itself for convenience in constructing. + */ + public final GT_MetaGenerated_Item setElectricStats(int aMetaValue, long aMaxCharge, long aTransferLimit, long aTier, long aSpecialData, boolean aUseAnimations) { + if (aMetaValue < 0 || aMetaValue >= mOffset + mEnabledItems.length()) return this; + if (aMaxCharge == 0) mElectricStats.remove((short) aMetaValue); + else { + mElectricStats.put((short) aMetaValue, new Long[]{aMaxCharge, Math.max(0, aTransferLimit), Math.max(-1, aTier), aSpecialData}); + if (aMetaValue >= mOffset && aUseAnimations) + mIconList[aMetaValue - mOffset] = Arrays.copyOf(mIconList[aMetaValue - mOffset], Math.max(9, mIconList[aMetaValue - mOffset].length)); + } + return this; + } + + /** + * @param aMetaValue the Meta Value of the Item you want to set it to. [0 - 32765] + * @param aMaxCharge Maximum Charge. (if this is == 0 it will remove the Electric Behavior) + * @param aTransferLimit Transfer Limit. + * @param aTier The electric Tier. + * @param aSpecialData If this Item has a Fixed Charge, like a SingleUse Battery (if > 0). + * Use -1 if you want to make this Battery chargeable (the use and canUse Functions will still discharge if you just use this) + * Use -2 if you want to make this Battery dischargeable. + * Use -3 if you want to make this Battery charge/discharge-able. + * @return the Item itself for convenience in constructing. + */ + public final GT_MetaGenerated_Item setFluidContainerStats(int aMetaValue, long aCapacity, long aStacksize) { + if (aMetaValue < 0 || aMetaValue >= mOffset + mEnabledItems.length()) return this; + if (aCapacity < 0) mElectricStats.remove((short) aMetaValue); + else mFluidContainerStats.put((short) aMetaValue, new Long[]{aCapacity, Math.max(1, aStacksize)}); + return this; + } + + /** + * @return if this MetaGenerated Item should use my Default Renderer System. + */ + public boolean useStandardMetaItemRenderer() { + return true; + } + + /** + * @return the Color Modulation the Material is going to be rendered with. + */ + public short[] getRGBa(ItemStack aStack) { + return Materials._NULL.getRGBA(); + } + + /** + * @return the Icon the Material is going to be rendered with. + */ + public IIconContainer getIconContainer(int aMetaData) { + return null; + } /* ---------- INTERNAL OVERRIDES ---------- */ - + @Override - public ItemStack onItemRightClick(ItemStack aStack, World aWorld, EntityPlayer aPlayer) { - IFoodStat tStat = mFoodStats.get((short)getDamage(aStack)); - if (tStat != null && aPlayer.canEat(tStat.alwaysEdible(this, aStack, aPlayer))) aPlayer.setItemInUse(aStack, 32); - return super.onItemRightClick(aStack, aWorld, aPlayer); + public ItemStack onItemRightClick(ItemStack aStack, World aWorld, EntityPlayer aPlayer) { + IFoodStat tStat = mFoodStats.get((short) getDamage(aStack)); + if (tStat != null && aPlayer.canEat(tStat.alwaysEdible(this, aStack, aPlayer))) + aPlayer.setItemInUse(aStack, 32); + return super.onItemRightClick(aStack, aWorld, aPlayer); } - + @Override public int getMaxItemUseDuration(ItemStack aStack) { - return mFoodStats.get((short)getDamage(aStack)) == null ? 0 : 32; + return mFoodStats.get((short) getDamage(aStack)) == null ? 0 : 32; } - + @Override - public EnumAction getItemUseAction(ItemStack aStack) { - IFoodStat tStat = mFoodStats.get((short)getDamage(aStack)); + public EnumAction getItemUseAction(ItemStack aStack) { + IFoodStat tStat = mFoodStats.get((short) getDamage(aStack)); return tStat == null ? EnumAction.none : tStat.getFoodAction(this, aStack); } - + @Override - public final ItemStack onEaten(ItemStack aStack, World aWorld, EntityPlayer aPlayer) { - IFoodStat tStat = mFoodStats.get((short)getDamage(aStack)); - if (tStat != null) { - if (Loader.isModLoaded(MOD_ID_APC)) { - aPlayer.getFoodStats().func_151686_a((ItemFood)GT_Utility.callConstructor("squeek.applecore.api.food.ItemFoodProxy.ItemFoodProxy", 0, null, true, this), aStack); - } else { - aPlayer.getFoodStats().addStats(tStat.getFoodLevel(this, aStack, aPlayer), tStat.getSaturation(this, aStack, aPlayer)); - } + public final ItemStack onEaten(ItemStack aStack, World aWorld, EntityPlayer aPlayer) { + IFoodStat tStat = mFoodStats.get((short) getDamage(aStack)); + if (tStat != null) { + if (Loader.isModLoaded(MOD_ID_APC)) { + aPlayer.getFoodStats().func_151686_a((ItemFood) GT_Utility.callConstructor("squeek.applecore.api.food.ItemFoodProxy.ItemFoodProxy", 0, null, true, this), aStack); + } else { + aPlayer.getFoodStats().addStats(tStat.getFoodLevel(this, aStack, aPlayer), tStat.getSaturation(this, aStack, aPlayer)); + } tStat.onEaten(this, aStack, aPlayer); - } + } return aStack; } - - @Override - @Optional.Method(modid = MOD_ID_APC) - public FoodValues getFoodValues(ItemStack aStack) { - IFoodStat tStat = mFoodStats.get((short)getDamage(aStack)); - return tStat==null?null:new FoodValues(tStat.getFoodLevel(this, aStack, null), tStat.getSaturation(this, aStack, null)); - } - - @Override + + @Override + @Optional.Method(modid = MOD_ID_APC) + public FoodValues getFoodValues(ItemStack aStack) { + IFoodStat tStat = mFoodStats.get((short) getDamage(aStack)); + return tStat == null ? null : new FoodValues(tStat.getFoodLevel(this, aStack, null), tStat.getSaturation(this, aStack, null)); + } + + @Override @SideOnly(Side.CLIENT) public void getSubItems(Item var1, CreativeTabs aCreativeTab, List aList) { - for (int i = 0, j = mEnabledItems.length(); i < j; i++) if (mVisibleItems.get(i) || (D1 && mEnabledItems.get(i))) { - Long[] tStats = mElectricStats.get((short)(mOffset+i)); - if (tStats != null && tStats[3] < 0) { - ItemStack tStack = new ItemStack(this, 1, mOffset+i); - setCharge(tStack, Math.abs(tStats[0])); - isItemStackUsable(tStack); - aList.add(tStack); - } - if (tStats == null || tStats[3] != -2) { - ItemStack tStack = new ItemStack(this, 1, mOffset+i); - isItemStackUsable(tStack); - aList.add(tStack); - } - } + for (int i = 0, j = mEnabledItems.length(); i < j; i++) + if (mVisibleItems.get(i) || (D1 && mEnabledItems.get(i))) { + Long[] tStats = mElectricStats.get((short) (mOffset + i)); + if (tStats != null && tStats[3] < 0) { + ItemStack tStack = new ItemStack(this, 1, mOffset + i); + setCharge(tStack, Math.abs(tStats[0])); + isItemStackUsable(tStack); + aList.add(tStack); + } + if (tStats == null || tStats[3] != -2) { + ItemStack tStack = new ItemStack(this, 1, mOffset + i); + isItemStackUsable(tStack); + aList.add(tStack); + } + } } - - @Override + + @Override @SideOnly(Side.CLIENT) public final void registerIcons(IIconRegister aIconRegister) { - for (short i = 0, j = (short)mEnabledItems.length(); i < j; i++) if (mEnabledItems.get(i)) { - for (byte k = 1; k < mIconList[i].length; k++) { - mIconList[i][k] = aIconRegister.registerIcon(RES_PATH_ITEM + (GT_Config.troll?"troll":getUnlocalizedName() + "/" + i + "/" + k)); - } - mIconList[i][0] = aIconRegister.registerIcon(RES_PATH_ITEM + (GT_Config.troll?"troll":getUnlocalizedName() + "/" + i)); - } + for (short i = 0, j = (short) mEnabledItems.length(); i < j; i++) + if (mEnabledItems.get(i)) { + for (byte k = 1; k < mIconList[i].length; k++) { + mIconList[i][k] = aIconRegister.registerIcon(RES_PATH_ITEM + (GT_Config.troll ? "troll" : getUnlocalizedName() + "/" + i + "/" + k)); + } + mIconList[i][0] = aIconRegister.registerIcon(RES_PATH_ITEM + (GT_Config.troll ? "troll" : getUnlocalizedName() + "/" + i)); + } + } + + @Override + public final Long[] getElectricStats(ItemStack aStack) { + return mElectricStats.get((short) aStack.getItemDamage()); + } + + @Override + public final Long[] getFluidContainerStats(ItemStack aStack) { + return mFluidContainerStats.get((short) aStack.getItemDamage()); + } + + @Override + public int getItemEnchantability() { + return 0; + } + + @Override + public boolean isBookEnchantable(ItemStack aStack, ItemStack aBook) { + return false; + } + + @Override + public boolean getIsRepairable(ItemStack aStack, ItemStack aMaterial) { + return false; } - - @Override - public final Long[] getElectricStats(ItemStack aStack) { - return mElectricStats.get((short)aStack.getItemDamage()); - } - - @Override - public final Long[] getFluidContainerStats(ItemStack aStack) { - return mFluidContainerStats.get((short)aStack.getItemDamage()); - } - - @Override public int getItemEnchantability() {return 0;} - @Override public boolean isBookEnchantable(ItemStack aStack, ItemStack aBook) {return false;} - @Override public boolean getIsRepairable(ItemStack aStack, ItemStack aMaterial) {return false;} } \ No newline at end of file diff --git a/src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X01.java b/src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X01.java index 76743abd..74e50e86 100644 --- a/src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X01.java +++ b/src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X01.java @@ -1,6 +1,7 @@ package gregtech.api.items; -import static gregtech.api.enums.GT_Values.M; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; @@ -8,152 +9,164 @@ import gregtech.api.interfaces.IIconContainer; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; - -import java.util.List; - import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; + +import java.util.List; + +import static gregtech.api.enums.GT_Values.M; /** * @author Gregorius Techneticies - * - * One Item for everything! - * - * This brilliant Item Class is used for automatically generating all possible variations of Material Items, like Dusts, Ingots, Gems, Plates and similar. - * It saves me a ton of work, when adding Items, because I always have to make a new Item SubType for each OreDict Prefix, when adding a new Material. - * - * As you can see, up to 32766 Items can be generated using this Class. And the last 766 Items can be custom defined, just to save space and MetaData. - * - * These Items can also have special RightClick abilities, electric Charge or even be set to become a Food alike Item. + *

+ * One Item for everything! + *

+ * This brilliant Item Class is used for automatically generating all possible variations of Material Items, like Dusts, Ingots, Gems, Plates and similar. + * It saves me a ton of work, when adding Items, because I always have to make a new Item SubType for each OreDict Prefix, when adding a new Material. + *

+ * As you can see, up to 32766 Items can be generated using this Class. And the last 766 Items can be custom defined, just to save space and MetaData. + *

+ * These Items can also have special RightClick abilities, electric Charge or even be set to become a Food alike Item. */ public abstract class GT_MetaGenerated_Item_X01 extends GT_MetaGenerated_Item { - - protected final OrePrefixes mPrefix; - protected final int mIconSetIndex; - - /** - * Creates the Item using these Parameters. This is for the new 1 Item = 1 Prefix System. - * @param aUnlocalized The Unlocalized Name of this Item. - * @param aGeneratedPrefix The OreDict Prefix you want to have generated. - * @param aIconSetIndex The TextureSet Index to be used. -1 for Defaulting to the Data contained in the Prefix. (this is only to be used for selecting the Icon in getIconContainer, nothing else) - */ - public GT_MetaGenerated_Item_X01(String aUnlocalized, OrePrefixes aGeneratedPrefix, int aIconSetIndex) { - super(aUnlocalized, (short)32000, (short)766); - mPrefix = aGeneratedPrefix; - mIconSetIndex = aIconSetIndex>=0?aIconSetIndex:aGeneratedPrefix.mTextureIndex>=0?aGeneratedPrefix.mTextureIndex:0; - + + protected final OrePrefixes mPrefix; + protected final int mIconSetIndex; + + /** + * Creates the Item using these Parameters. This is for the new 1 Item = 1 Prefix System. + * + * @param aUnlocalized The Unlocalized Name of this Item. + * @param aGeneratedPrefix The OreDict Prefix you want to have generated. + * @param aIconSetIndex The TextureSet Index to be used. -1 for Defaulting to the Data contained in the Prefix. (this is only to be used for selecting the Icon in getIconContainer, nothing else) + */ + public GT_MetaGenerated_Item_X01(String aUnlocalized, OrePrefixes aGeneratedPrefix, int aIconSetIndex) { + super(aUnlocalized, (short) 32000, (short) 766); + mPrefix = aGeneratedPrefix; + mIconSetIndex = aIconSetIndex >= 0 ? aIconSetIndex : aGeneratedPrefix.mTextureIndex >= 0 ? aGeneratedPrefix.mTextureIndex : 0; + for (int i = 0; i < GregTech_API.sGeneratedMaterials.length; i++) { - OrePrefixes tPrefix = mPrefix; - if (tPrefix == null) continue; - Materials tMaterial = GregTech_API.sGeneratedMaterials[i]; - if (tMaterial == null) continue; - if (mPrefix.doGenerateItem(tMaterial)) { - ItemStack tStack = new ItemStack(this, 1, i); - GT_LanguageManager.addStringLocalization(getUnlocalizedName(tStack) + ".name", getDefaultLocalization(tPrefix, tMaterial, i)); - GT_LanguageManager.addStringLocalization(getUnlocalizedName(tStack) + ".tooltip", tMaterial.getToolTip(tPrefix.mMaterialAmount / M)); - String tOreName = getOreDictString(tPrefix, tMaterial); - tPrefix = OrePrefixes.getOrePrefix(tOreName); - if (tPrefix != null && tPrefix.mIsUnificatable) { - GT_OreDictUnificator.set(tPrefix, OrePrefixes.getMaterial(tOreName, tPrefix), tStack); - } else { - GT_OreDictUnificator.registerOre(tOreName, tStack); - } - } - } - } - + OrePrefixes tPrefix = mPrefix; + if (tPrefix == null) continue; + Materials tMaterial = GregTech_API.sGeneratedMaterials[i]; + if (tMaterial == null) continue; + if (mPrefix.doGenerateItem(tMaterial)) { + ItemStack tStack = new ItemStack(this, 1, i); + GT_LanguageManager.addStringLocalization(getUnlocalizedName(tStack) + ".name", getDefaultLocalization(tPrefix, tMaterial, i)); + GT_LanguageManager.addStringLocalization(getUnlocalizedName(tStack) + ".tooltip", tMaterial.getToolTip(tPrefix.mMaterialAmount / M)); + String tOreName = getOreDictString(tPrefix, tMaterial); + tPrefix = OrePrefixes.getOrePrefix(tOreName); + if (tPrefix != null && tPrefix.mIsUnificatable) { + GT_OreDictUnificator.set(tPrefix, OrePrefixes.getMaterial(tOreName, tPrefix), tStack); + } else { + GT_OreDictUnificator.registerOre(tOreName, tStack); + } + } + } + } + /* ---------- OVERRIDEABLE FUNCTIONS ---------- */ - - /** - * @param aPrefix the OreDict Prefix - * @param aMaterial the Material - * @param aMetaData a Index from [0 - 31999] - * @return the Localized Name when default LangFiles are used. - */ - public String getDefaultLocalization(OrePrefixes aPrefix, Materials aMaterial, int aMetaData) { - return aPrefix.getDefaultLocalNameForItem(aMaterial); - } - - /** - * @param aPrefix always != null - * @param aMaterial always != null - * @param aDoShowAllItems this is the Configuration Setting of the User, if he wants to see all the Stuff like Tiny Dusts or Crushed Ores as well. - * @return if this Item should be visible in NEI or Creative - */ - public boolean doesShowInCreative(OrePrefixes aPrefix, Materials aMaterial, boolean aDoShowAllItems) { - return true; - } - - /** - * @return the name of the Item to be registered at the OreDict. - */ - public String getOreDictString(OrePrefixes aPrefix, Materials aMaterial) { - return aPrefix.get(aMaterial).toString(); - } - - public IIconContainer getIconContainer(int aMetaData, Materials aMaterial) { - return aMaterial.mIconSet.mTextures[mIconSetIndex]; - } + + /** + * @param aPrefix the OreDict Prefix + * @param aMaterial the Material + * @param aMetaData a Index from [0 - 31999] + * @return the Localized Name when default LangFiles are used. + */ + public String getDefaultLocalization(OrePrefixes aPrefix, Materials aMaterial, int aMetaData) { + return aPrefix.getDefaultLocalNameForItem(aMaterial); + } + + /** + * @param aPrefix always != null + * @param aMaterial always != null + * @param aDoShowAllItems this is the Configuration Setting of the User, if he wants to see all the Stuff like Tiny Dusts or Crushed Ores as well. + * @return if this Item should be visible in NEI or Creative + */ + public boolean doesShowInCreative(OrePrefixes aPrefix, Materials aMaterial, boolean aDoShowAllItems) { + return true; + } + + /** + * @return the name of the Item to be registered at the OreDict. + */ + public String getOreDictString(OrePrefixes aPrefix, Materials aMaterial) { + return aPrefix.get(aMaterial).toString(); + } + + public IIconContainer getIconContainer(int aMetaData, Materials aMaterial) { + return aMaterial.mIconSet.mTextures[mIconSetIndex]; + } /* ---------- INTERNAL OVERRIDES ---------- */ - - @Override + + @Override public ItemStack getContainerItem(ItemStack aStack) { - int aMetaData = aStack.getItemDamage(); - if (aMetaData < GregTech_API.sGeneratedMaterials.length && aMetaData >= 0) { - Materials aMaterial = GregTech_API.sGeneratedMaterials[aMetaData]; - if (aMaterial != null && aMaterial != Materials.Empty && aMaterial != Materials._NULL) { - return GT_Utility.copyAmount(1, mPrefix.mContainerItem); - } - } - return null; + int aMetaData = aStack.getItemDamage(); + if (aMetaData < GregTech_API.sGeneratedMaterials.length && aMetaData >= 0) { + Materials aMaterial = GregTech_API.sGeneratedMaterials[aMetaData]; + if (aMaterial != null && aMaterial != Materials.Empty && aMaterial != Materials._NULL) { + return GT_Utility.copyAmount(1, mPrefix.mContainerItem); + } + } + return null; } - - @Override - public short[] getRGBa(ItemStack aStack) { - int aMetaData = getDamage(aStack); - return aMetaData < GregTech_API.sGeneratedMaterials.length && GregTech_API.sGeneratedMaterials[aMetaData] != null ? GregTech_API.sGeneratedMaterials[aMetaData].mRGBa : Materials._NULL.mRGBa; - } - - @Override - public final IIconContainer getIconContainer(int aMetaData) { - return aMetaData < GregTech_API.sGeneratedMaterials.length && GregTech_API.sGeneratedMaterials[aMetaData] != null ? getIconContainer(aMetaData, GregTech_API.sGeneratedMaterials[aMetaData]) : null; + + @Override + public short[] getRGBa(ItemStack aStack) { + int aMetaData = getDamage(aStack); + return aMetaData < GregTech_API.sGeneratedMaterials.length && GregTech_API.sGeneratedMaterials[aMetaData] != null ? GregTech_API.sGeneratedMaterials[aMetaData].mRGBa : Materials._NULL.mRGBa; } - - @Override + + @Override + public final IIconContainer getIconContainer(int aMetaData) { + return aMetaData < GregTech_API.sGeneratedMaterials.length && GregTech_API.sGeneratedMaterials[aMetaData] != null ? getIconContainer(aMetaData, GregTech_API.sGeneratedMaterials[aMetaData]) : null; + } + + @Override @SideOnly(Side.CLIENT) public final void getSubItems(Item var1, CreativeTabs aCreativeTab, List aList) { - for (int i = 0; i < GregTech_API.sGeneratedMaterials.length; i++) if (mPrefix.doGenerateItem(GregTech_API.sGeneratedMaterials[i]) && doesShowInCreative(mPrefix, GregTech_API.sGeneratedMaterials[i], GregTech_API.sDoShowAllItemsInCreative)) { - ItemStack tStack = new ItemStack(this, 1, i); - isItemStackUsable(tStack); - aList.add(tStack); - } + for (int i = 0; i < GregTech_API.sGeneratedMaterials.length; i++) + if (mPrefix.doGenerateItem(GregTech_API.sGeneratedMaterials[i]) && doesShowInCreative(mPrefix, GregTech_API.sGeneratedMaterials[i], GregTech_API.sDoShowAllItemsInCreative)) { + ItemStack tStack = new ItemStack(this, 1, i); + isItemStackUsable(tStack); + aList.add(tStack); + } super.getSubItems(var1, aCreativeTab, aList); } - - @Override + + @Override public final IIcon getIconFromDamage(int aMetaData) { - if (aMetaData < 0) return null; - if (aMetaData < GregTech_API.sGeneratedMaterials.length) { - Materials tMaterial = GregTech_API.sGeneratedMaterials[aMetaData]; - if (tMaterial == null) return null; - IIconContainer tIcon = getIconContainer(aMetaData, tMaterial); - if (tIcon != null) return tIcon.getIcon(); - return null; - } - return aMetaData>=mOffset&&aMetaData-mOffset= mOffset && aMetaData - mOffset < mIconList.length ? mIconList[aMetaData - mOffset][0] : null; + } + + @Override + public int getItemStackLimit(ItemStack aStack) { + return getDamage(aStack) < mOffset ? Math.min(super.getItemStackLimit(aStack), mPrefix.mDefaultStackSize) : super.getItemStackLimit(aStack); + } + + @Override + public int getItemEnchantability() { + return 0; + } + + @Override + public boolean isBookEnchantable(ItemStack aStack, ItemStack aBook) { + return false; + } + + @Override + public boolean getIsRepairable(ItemStack aStack, ItemStack aMaterial) { + return false; } - - @Override - public int getItemStackLimit(ItemStack aStack) { - return getDamage(aStack) < mOffset ? Math.min(super.getItemStackLimit(aStack), mPrefix.mDefaultStackSize) : super.getItemStackLimit(aStack); - } - - @Override public int getItemEnchantability() {return 0;} - @Override public boolean isBookEnchantable(ItemStack aStack, ItemStack aBook) {return false;} - @Override public boolean getIsRepairable(ItemStack aStack, ItemStack aMaterial) {return false;} } \ No newline at end of file diff --git a/src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X32.java b/src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X32.java index 181e5bdd..e4014c56 100644 --- a/src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X32.java +++ b/src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X32.java @@ -1,6 +1,7 @@ package gregtech.api.items; -import static gregtech.api.enums.GT_Values.M; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; @@ -8,162 +9,166 @@ import gregtech.api.interfaces.IIconContainer; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; - -import java.util.Arrays; -import java.util.List; - import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; + +import java.util.Arrays; +import java.util.List; + +import static gregtech.api.enums.GT_Values.M; /** * @author Gregorius Techneticies - * - * One Item for everything! - * - * This brilliant Item Class is used for automatically generating all possible variations of Material Items, like Dusts, Ingots, Gems, Plates and similar. - * It saves me a ton of work, when adding Items, because I always have to make a new Item SubType for each OreDict Prefix, when adding a new Material. - * - * As you can see, up to 32766 Items can be generated using this Class. And the last 766 Items can be custom defined, just to save space and MetaData. - * - * These Items can also have special RightClick abilities, electric Charge or even be set to become a Food alike Item. + *

+ * One Item for everything! + *

+ * This brilliant Item Class is used for automatically generating all possible variations of Material Items, like Dusts, Ingots, Gems, Plates and similar. + * It saves me a ton of work, when adding Items, because I always have to make a new Item SubType for each OreDict Prefix, when adding a new Material. + *

+ * As you can see, up to 32766 Items can be generated using this Class. And the last 766 Items can be custom defined, just to save space and MetaData. + *

+ * These Items can also have special RightClick abilities, electric Charge or even be set to become a Food alike Item. */ public abstract class GT_MetaGenerated_Item_X32 extends GT_MetaGenerated_Item { - - protected final OrePrefixes[] mGeneratedPrefixList; - - /** - * Creates the Item using these Parameters. - * @param aUnlocalized The Unlocalized Name of this Item. - * @param aGeneratedPrefixList The OreDict Prefixes you want to have generated. - */ - public GT_MetaGenerated_Item_X32(String aUnlocalized, OrePrefixes... aGeneratedPrefixList) { - super(aUnlocalized, (short)32000, (short)766); - mGeneratedPrefixList = Arrays.copyOf(aGeneratedPrefixList, 32); - + + protected final OrePrefixes[] mGeneratedPrefixList; + + /** + * Creates the Item using these Parameters. + * + * @param aUnlocalized The Unlocalized Name of this Item. + * @param aGeneratedPrefixList The OreDict Prefixes you want to have generated. + */ + public GT_MetaGenerated_Item_X32(String aUnlocalized, OrePrefixes... aGeneratedPrefixList) { + super(aUnlocalized, (short) 32000, (short) 766); + mGeneratedPrefixList = Arrays.copyOf(aGeneratedPrefixList, 32); + for (int i = 0; i < 32000; i++) { - OrePrefixes tPrefix = mGeneratedPrefixList[i / 1000]; - if (tPrefix == null) continue; - Materials tMaterial = GregTech_API.sGeneratedMaterials[i % 1000]; - if (tMaterial == null) continue; - if (doesMaterialAllowGeneration(tPrefix, tMaterial)) { - ItemStack tStack = new ItemStack(this, 1, i); - GT_LanguageManager.addStringLocalization(getUnlocalizedName(tStack) + ".name", getDefaultLocalization(tPrefix, tMaterial, i)); - GT_LanguageManager.addStringLocalization(getUnlocalizedName(tStack) + ".tooltip", tMaterial.getToolTip(tPrefix.mMaterialAmount / M)); - if (tPrefix.mIsUnificatable) { - GT_OreDictUnificator.set(tPrefix, tMaterial, tStack); - } else { - GT_OreDictUnificator.registerOre(tPrefix.get(tMaterial), tStack); - } - if((tPrefix==OrePrefixes.stick||tPrefix==OrePrefixes.wireFine)&&(tMaterial==Materials.Lead||tMaterial==Materials.Tin||tMaterial==Materials.SolderingAlloy)){GregTech_API.sSolderingMetalList.add(tStack);} - } - } - } + OrePrefixes tPrefix = mGeneratedPrefixList[i / 1000]; + if (tPrefix == null) continue; + Materials tMaterial = GregTech_API.sGeneratedMaterials[i % 1000]; + if (tMaterial == null) continue; + if (doesMaterialAllowGeneration(tPrefix, tMaterial)) { + ItemStack tStack = new ItemStack(this, 1, i); + GT_LanguageManager.addStringLocalization(getUnlocalizedName(tStack) + ".name", getDefaultLocalization(tPrefix, tMaterial, i)); + GT_LanguageManager.addStringLocalization(getUnlocalizedName(tStack) + ".tooltip", tMaterial.getToolTip(tPrefix.mMaterialAmount / M)); + if (tPrefix.mIsUnificatable) { + GT_OreDictUnificator.set(tPrefix, tMaterial, tStack); + } else { + GT_OreDictUnificator.registerOre(tPrefix.get(tMaterial), tStack); + } + if ((tPrefix == OrePrefixes.stick || tPrefix == OrePrefixes.wireFine) && (tMaterial == Materials.Lead || tMaterial == Materials.Tin || tMaterial == Materials.SolderingAlloy)) { + GregTech_API.sSolderingMetalList.add(tStack); + } + } + } + } + + /* ---------- OVERRIDEABLE FUNCTIONS ---------- */ + + /** + * @return the Color Modulation the Material is going to be rendered with. + */ + @Override + public short[] getRGBa(ItemStack aStack) { + Materials tMaterial = GregTech_API.sGeneratedMaterials[getDamage(aStack) % 1000]; + return tMaterial == null ? Materials._NULL.mRGBa : tMaterial.mRGBa; + } + + /** + * @param aPrefix this can be null, you have to return false in that case + * @param aMaterial this can be null, you have to return false in that case + * @return if this Item should be generated and visible. + */ + public boolean doesMaterialAllowGeneration(OrePrefixes aPrefix, Materials aMaterial) { + // You have to check for at least these Conditions in every Case! So add a super Call like the following for this before executing your Code: + // if (!super.doesMaterialAllowGeneration(aPrefix, aMaterial)) return false; + return aPrefix != null && aMaterial != null && aPrefix.doGenerateItem(aMaterial); + } /* ---------- OVERRIDEABLE FUNCTIONS ---------- */ - - /** - * @return the Color Modulation the Material is going to be rendered with. - */ - @Override - public short[] getRGBa(ItemStack aStack) { - Materials tMaterial = GregTech_API.sGeneratedMaterials[getDamage(aStack) % 1000]; - return tMaterial == null ? Materials._NULL.mRGBa : tMaterial.mRGBa; - } - - /** - * @param aPrefix this can be null, you have to return false in that case - * @param aMaterial this can be null, you have to return false in that case - * @return if this Item should be generated and visible. - */ - public boolean doesMaterialAllowGeneration(OrePrefixes aPrefix, Materials aMaterial) { - // You have to check for at least these Conditions in every Case! So add a super Call like the following for this before executing your Code: - // if (!super.doesMaterialAllowGeneration(aPrefix, aMaterial)) return false; - return aPrefix != null && aMaterial != null && aPrefix.doGenerateItem(aMaterial); - } - - /* ---------- OVERRIDEABLE FUNCTIONS ---------- */ - - /** - * @param aPrefix the OreDict Prefix - * @param aMaterial the Material - * @param aMetaData a Index from [0 - 31999] - * @return the Localized Name when default LangFiles are used. - */ - public String getDefaultLocalization(OrePrefixes aPrefix, Materials aMaterial, int aMetaData) { - return aPrefix.getDefaultLocalNameForItem(aMaterial); - } - - /** - * @param aMetaData a Index from [0 - 31999] - * @param aMaterial the Material - * @return an Icon Container for the Item Display. - */ - public final IIconContainer getIconContainer(int aMetaData, Materials aMaterial) { - return mGeneratedPrefixList[aMetaData / 1000] != null && mGeneratedPrefixList[aMetaData / 1000].mTextureIndex >= 0 ? aMaterial.mIconSet.mTextures[mGeneratedPrefixList[aMetaData / 1000].mTextureIndex] : null; - } - - /** - * @param aPrefix always != null - * @param aMaterial always != null - * @param aDoShowAllItems this is the Configuration Setting of the User, if he wants to see all the Stuff like Tiny Dusts or Crushed Ores as well. - * @return if this Item should be visible in NEI or Creative - */ - public boolean doesShowInCreative(OrePrefixes aPrefix, Materials aMaterial, boolean aDoShowAllItems) { - return true; - } + + /** + * @param aPrefix the OreDict Prefix + * @param aMaterial the Material + * @param aMetaData a Index from [0 - 31999] + * @return the Localized Name when default LangFiles are used. + */ + public String getDefaultLocalization(OrePrefixes aPrefix, Materials aMaterial, int aMetaData) { + return aPrefix.getDefaultLocalNameForItem(aMaterial); + } + + /** + * @param aMetaData a Index from [0 - 31999] + * @param aMaterial the Material + * @return an Icon Container for the Item Display. + */ + public final IIconContainer getIconContainer(int aMetaData, Materials aMaterial) { + return mGeneratedPrefixList[aMetaData / 1000] != null && mGeneratedPrefixList[aMetaData / 1000].mTextureIndex >= 0 ? aMaterial.mIconSet.mTextures[mGeneratedPrefixList[aMetaData / 1000].mTextureIndex] : null; + } + + /** + * @param aPrefix always != null + * @param aMaterial always != null + * @param aDoShowAllItems this is the Configuration Setting of the User, if he wants to see all the Stuff like Tiny Dusts or Crushed Ores as well. + * @return if this Item should be visible in NEI or Creative + */ + public boolean doesShowInCreative(OrePrefixes aPrefix, Materials aMaterial, boolean aDoShowAllItems) { + return true; + } /* ---------- INTERNAL OVERRIDES ---------- */ - - @Override + + @Override public ItemStack getContainerItem(ItemStack aStack) { - int aDamage = aStack.getItemDamage(); - if (aDamage < 32000 && aDamage >= 0) { - Materials aMaterial = GregTech_API.sGeneratedMaterials[aDamage % 1000]; - if (aMaterial != null && aMaterial != Materials.Empty && aMaterial != Materials._NULL) { - OrePrefixes aPrefix = mGeneratedPrefixList[aDamage / 1000]; - if (aPrefix != null) return GT_Utility.copyAmount(1, aPrefix.mContainerItem); - } - } - return null; + int aDamage = aStack.getItemDamage(); + if (aDamage < 32000 && aDamage >= 0) { + Materials aMaterial = GregTech_API.sGeneratedMaterials[aDamage % 1000]; + if (aMaterial != null && aMaterial != Materials.Empty && aMaterial != Materials._NULL) { + OrePrefixes aPrefix = mGeneratedPrefixList[aDamage / 1000]; + if (aPrefix != null) return GT_Utility.copyAmount(1, aPrefix.mContainerItem); + } + } + return null; } - - @Override - public final IIconContainer getIconContainer(int aMetaData) { - return GregTech_API.sGeneratedMaterials[aMetaData % 1000] == null ? null : getIconContainer(aMetaData, GregTech_API.sGeneratedMaterials[aMetaData % 1000]); + + @Override + public final IIconContainer getIconContainer(int aMetaData) { + return GregTech_API.sGeneratedMaterials[aMetaData % 1000] == null ? null : getIconContainer(aMetaData, GregTech_API.sGeneratedMaterials[aMetaData % 1000]); } - - @Override + + @Override @SideOnly(Side.CLIENT) public final void getSubItems(Item var1, CreativeTabs aCreativeTab, List aList) { - for (int i = 0; i < 32000; i++) if (doesMaterialAllowGeneration(mGeneratedPrefixList[i / 1000], GregTech_API.sGeneratedMaterials[i % 1000]) && doesShowInCreative(mGeneratedPrefixList[i / 1000], GregTech_API.sGeneratedMaterials[i % 1000], GregTech_API.sDoShowAllItemsInCreative)) { - ItemStack tStack = new ItemStack(this, 1, i); - isItemStackUsable(tStack); - aList.add(tStack); - } + for (int i = 0; i < 32000; i++) + if (doesMaterialAllowGeneration(mGeneratedPrefixList[i / 1000], GregTech_API.sGeneratedMaterials[i % 1000]) && doesShowInCreative(mGeneratedPrefixList[i / 1000], GregTech_API.sGeneratedMaterials[i % 1000], GregTech_API.sDoShowAllItemsInCreative)) { + ItemStack tStack = new ItemStack(this, 1, i); + isItemStackUsable(tStack); + aList.add(tStack); + } super.getSubItems(var1, aCreativeTab, aList); } - - @Override + + @Override public final IIcon getIconFromDamage(int aMetaData) { - if (aMetaData < 0) return null; - if (aMetaData < 32000) { - Materials tMaterial = GregTech_API.sGeneratedMaterials[aMetaData % 1000]; - if (tMaterial == null) return null; - IIconContainer tIcon = getIconContainer(aMetaData, tMaterial); - if (tIcon != null) return tIcon.getIcon(); - return null; - } - return aMetaData-32000 sInstances = new HashMap(); - +public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements IDamagableItem, IToolGrafter, IToolCrowbar { + /** + * All instances of this Item Class are listed here. + * This gets used to register the Renderer to all Items of this Type, if useStandardMetaItemRenderer() returns true. + *

+ * You can also use the unlocalized Name gotten from getUnlocalizedName() as Key if you want to get a specific Item. + */ + public static final HashMap sInstances = new HashMap(); + /* ---------- CONSTRUCTOR AND MEMBER VARIABLES ---------- */ - - public final HashMap mToolStats = new HashMap(); - - /** - * Creates the Item using these Parameters. - * @param aUnlocalized The Unlocalized Name of this Item. - */ - public GT_MetaGenerated_Tool(String aUnlocalized) { - super(aUnlocalized); - GT_ModHandler.registerBoxableItemToToolBox(this); - setCreativeTab(GregTech_API.TAB_GREGTECH); + + public final HashMap mToolStats = new HashMap(); + + /** + * Creates the Item using these Parameters. + * + * @param aUnlocalized The Unlocalized Name of this Item. + */ + public GT_MetaGenerated_Tool(String aUnlocalized) { + super(aUnlocalized); + GT_ModHandler.registerBoxableItemToToolBox(this); + setCreativeTab(GregTech_API.TAB_GREGTECH); setMaxStackSize(1); sInstances.put(getUnlocalizedName(), this); - } + } /* ---------- FOR ADDING CUSTOM ITEMS INTO THE REMAINING 766 RANGE ---------- */ - - /** - * This adds a Custom Item to the ending Range. - * @param aID The Id of the assigned Tool Class [0 - 32765] (only even Numbers allowed! Uneven ID's are empty electric Items) - * @param aEnglish The Default Localized Name of the created Item - * @param aToolTip The Default ToolTip of the created Item, you can also insert null for having no ToolTip - * @param aToolStats The Food Value of this Item. Can be null as well. - * @param aOreDictNamesAndAspects The OreDict Names you want to give the Item. Also used to assign Thaumcraft Aspects. - * @return An ItemStack containing the newly created Item, but without specific Stats. - */ - public final ItemStack addTool(int aID, String aEnglish, String aToolTip, IToolStats aToolStats, Object... aOreDictNamesAndAspects) { - if (aToolTip == null) aToolTip = ""; - if (aID >= 0 && aID < 32766 && aID % 2 == 0) { - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + aID + ".name" , aEnglish); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + aID + ".tooltip" , aToolTip); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (aID+1) + ".name" , aEnglish + " (Empty)"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (aID+1) + ".tooltip" , "You need to recharge it"); - mToolStats.put((short) aID , aToolStats); - mToolStats.put((short)(aID+1), aToolStats); - aToolStats.onStatsAddedToTool(this, aID); - ItemStack rStack = new ItemStack(this, 1, aID); - List tAspects = new ArrayList(); - for (Object tOreDictNameOrAspect : aOreDictNamesAndAspects) { - if (tOreDictNameOrAspect instanceof TC_AspectStack) - ((TC_AspectStack)tOreDictNameOrAspect).addToAspectList(tAspects); - else - GT_OreDictUnificator.registerOre(tOreDictNameOrAspect, rStack); - } - if (GregTech_API.sThaumcraftCompat != null) GregTech_API.sThaumcraftCompat.registerThaumcraftAspectsToItem(rStack, tAspects, false); - return rStack; - } - return null; - } - - /** - * This Function gets an ItemStack Version of this Tool - * @param aToolID the ID of the Tool Class - * @param aAmount Amount of Items (well normally you only need 1) - * @param aPrimaryMaterial Primary Material of this Tool - * @param aSecondaryMaterial Secondary (Rod/Handle) Material of this Tool - * @param aElectricArray The Electric Stats of this Tool (or null if not electric) - */ - public final ItemStack getToolWithStats(int aToolID, int aAmount, Materials aPrimaryMaterial, Materials aSecondaryMaterial, long[] aElectricArray) { - ItemStack rStack = new ItemStack(this, aAmount, aToolID); - IToolStats tToolStats = getToolStats(rStack); - if (tToolStats != null) { - NBTTagCompound tMainNBT = new NBTTagCompound(), tToolNBT = new NBTTagCompound(); - if (aPrimaryMaterial != null) { - tToolNBT.setString("PrimaryMaterial", aPrimaryMaterial.toString()); - tToolNBT.setLong("MaxDamage", 100L*(long)(aPrimaryMaterial.mDurability * tToolStats.getMaxDurabilityMultiplier())); - } - if (aSecondaryMaterial != null) tToolNBT.setString("SecondaryMaterial", aSecondaryMaterial.toString()); - - if (aElectricArray != null) { - tToolNBT.setBoolean("Electric", true); - tToolNBT.setLong("MaxCharge", aElectricArray[0]); - tToolNBT.setLong("Voltage", aElectricArray[1]); - tToolNBT.setLong("Tier", aElectricArray[2]); - tToolNBT.setLong("SpecialData", aElectricArray[3]); - } - - tMainNBT.setTag("GT.ToolStats", tToolNBT); - rStack.setTagCompound(tMainNBT); - } - isItemStackUsable(rStack); - return rStack; - } + + public static final Materials getPrimaryMaterial(ItemStack aStack) { + NBTTagCompound aNBT = aStack.getTagCompound(); + if (aNBT != null) { + aNBT = aNBT.getCompoundTag("GT.ToolStats"); + if (aNBT != null) return Materials.getRealMaterial(aNBT.getString("PrimaryMaterial")); + } + return Materials._NULL; + } + + public static final Materials getSecondaryMaterial(ItemStack aStack) { + NBTTagCompound aNBT = aStack.getTagCompound(); + if (aNBT != null) { + aNBT = aNBT.getCompoundTag("GT.ToolStats"); + if (aNBT != null) return Materials.getRealMaterial(aNBT.getString("SecondaryMaterial")); + } + return Materials._NULL; + } /* ---------- INTERNAL OVERRIDES ---------- */ - - /** - * Called by the Block Harvesting Event within the GT_Proxy - */ - public void onHarvestBlockEvent(ArrayList aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) { - IToolStats tStats = getToolStats(aStack); - if (isItemStackUsable(aStack) && getDigSpeed(aStack, aBlock, aMetaData) > 0.0F) doDamage(aStack, tStats.convertBlockDrops(aDrops, aStack, aPlayer, aBlock, aX, aY, aZ, aMetaData, aFortune, aSilkTouch, aEvent) * tStats.getToolDamagePerDropConversion()); - } - + + public static final long getToolMaxDamage(ItemStack aStack) { + NBTTagCompound aNBT = aStack.getTagCompound(); + if (aNBT != null) { + aNBT = aNBT.getCompoundTag("GT.ToolStats"); + if (aNBT != null) return aNBT.getLong("MaxDamage"); + } + return 0; + } + + public static final long getToolDamage(ItemStack aStack) { + NBTTagCompound aNBT = aStack.getTagCompound(); + if (aNBT != null) { + aNBT = aNBT.getCompoundTag("GT.ToolStats"); + if (aNBT != null) return aNBT.getLong("Damage"); + } + return 0; + } + + public static final boolean setToolDamage(ItemStack aStack, long aDamage) { + NBTTagCompound aNBT = aStack.getTagCompound(); + if (aNBT != null) { + aNBT = aNBT.getCompoundTag("GT.ToolStats"); + if (aNBT != null) { + aNBT.setLong("Damage", aDamage); + return true; + } + } + return false; + } + + /** + * This adds a Custom Item to the ending Range. + * + * @param aID The Id of the assigned Tool Class [0 - 32765] (only even Numbers allowed! Uneven ID's are empty electric Items) + * @param aEnglish The Default Localized Name of the created Item + * @param aToolTip The Default ToolTip of the created Item, you can also insert null for having no ToolTip + * @param aToolStats The Food Value of this Item. Can be null as well. + * @param aOreDictNamesAndAspects The OreDict Names you want to give the Item. Also used to assign Thaumcraft Aspects. + * @return An ItemStack containing the newly created Item, but without specific Stats. + */ + public final ItemStack addTool(int aID, String aEnglish, String aToolTip, IToolStats aToolStats, Object... aOreDictNamesAndAspects) { + if (aToolTip == null) aToolTip = ""; + if (aID >= 0 && aID < 32766 && aID % 2 == 0) { + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + aID + ".name", aEnglish); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + aID + ".tooltip", aToolTip); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (aID + 1) + ".name", aEnglish + " (Empty)"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (aID + 1) + ".tooltip", "You need to recharge it"); + mToolStats.put((short) aID, aToolStats); + mToolStats.put((short) (aID + 1), aToolStats); + aToolStats.onStatsAddedToTool(this, aID); + ItemStack rStack = new ItemStack(this, 1, aID); + List tAspects = new ArrayList(); + for (Object tOreDictNameOrAspect : aOreDictNamesAndAspects) { + if (tOreDictNameOrAspect instanceof TC_AspectStack) + ((TC_AspectStack) tOreDictNameOrAspect).addToAspectList(tAspects); + else + GT_OreDictUnificator.registerOre(tOreDictNameOrAspect, rStack); + } + if (GregTech_API.sThaumcraftCompat != null) + GregTech_API.sThaumcraftCompat.registerThaumcraftAspectsToItem(rStack, tAspects, false); + return rStack; + } + return null; + } + + /** + * This Function gets an ItemStack Version of this Tool + * + * @param aToolID the ID of the Tool Class + * @param aAmount Amount of Items (well normally you only need 1) + * @param aPrimaryMaterial Primary Material of this Tool + * @param aSecondaryMaterial Secondary (Rod/Handle) Material of this Tool + * @param aElectricArray The Electric Stats of this Tool (or null if not electric) + */ + public final ItemStack getToolWithStats(int aToolID, int aAmount, Materials aPrimaryMaterial, Materials aSecondaryMaterial, long[] aElectricArray) { + ItemStack rStack = new ItemStack(this, aAmount, aToolID); + IToolStats tToolStats = getToolStats(rStack); + if (tToolStats != null) { + NBTTagCompound tMainNBT = new NBTTagCompound(), tToolNBT = new NBTTagCompound(); + if (aPrimaryMaterial != null) { + tToolNBT.setString("PrimaryMaterial", aPrimaryMaterial.toString()); + tToolNBT.setLong("MaxDamage", 100L * (long) (aPrimaryMaterial.mDurability * tToolStats.getMaxDurabilityMultiplier())); + } + if (aSecondaryMaterial != null) tToolNBT.setString("SecondaryMaterial", aSecondaryMaterial.toString()); + + if (aElectricArray != null) { + tToolNBT.setBoolean("Electric", true); + tToolNBT.setLong("MaxCharge", aElectricArray[0]); + tToolNBT.setLong("Voltage", aElectricArray[1]); + tToolNBT.setLong("Tier", aElectricArray[2]); + tToolNBT.setLong("SpecialData", aElectricArray[3]); + } + + tMainNBT.setTag("GT.ToolStats", tToolNBT); + rStack.setTagCompound(tMainNBT); + } + isItemStackUsable(rStack); + return rStack; + } + + /** + * Called by the Block Harvesting Event within the GT_Proxy + */ + public void onHarvestBlockEvent(ArrayList aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) { + IToolStats tStats = getToolStats(aStack); + if (isItemStackUsable(aStack) && getDigSpeed(aStack, aBlock, aMetaData) > 0.0F) + doDamage(aStack, tStats.convertBlockDrops(aDrops, aStack, aPlayer, aBlock, aX, aY, aZ, aMetaData, aFortune, aSilkTouch, aEvent) * tStats.getToolDamagePerDropConversion()); + } + @Override public boolean onLeftClickEntity(ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) { - IToolStats tStats = getToolStats(aStack); - if (tStats == null || !isItemStackUsable(aStack)) return true; + IToolStats tStats = getToolStats(aStack); + if (tStats == null || !isItemStackUsable(aStack)) return true; GT_Utility.doSoundAtClient(tStats.getEntityHitSound(), 1, 1.0F); if (super.onLeftClickEntity(aStack, aPlayer, aEntity)) return true; if (aEntity.canAttackWithItem() && !aEntity.hitByEntity(aPlayer)) { - float tMagicDamage = tStats.getMagicDamageAgainstEntity(aEntity instanceof EntityLivingBase?EnchantmentHelper.getEnchantmentModifierLiving(aPlayer, (EntityLivingBase)aEntity):0.0F, aEntity, aStack, aPlayer), tDamage = tStats.getNormalDamageAgainstEntity((float)aPlayer.getEntityAttribute(SharedMonsterAttributes.attackDamage).getAttributeValue() + getToolCombatDamage(aStack), aEntity, aStack, aPlayer); + float tMagicDamage = tStats.getMagicDamageAgainstEntity(aEntity instanceof EntityLivingBase ? EnchantmentHelper.getEnchantmentModifierLiving(aPlayer, (EntityLivingBase) aEntity) : 0.0F, aEntity, aStack, aPlayer), tDamage = tStats.getNormalDamageAgainstEntity((float) aPlayer.getEntityAttribute(SharedMonsterAttributes.attackDamage).getAttributeValue() + getToolCombatDamage(aStack), aEntity, aStack, aPlayer); if (tDamage + tMagicDamage > 0.0F) { boolean tCriticalHit = aPlayer.fallDistance > 0.0F && !aPlayer.onGround && !aPlayer.isOnLadder() && !aPlayer.isInWater() && !aPlayer.isPotionActive(Potion.blindness) && aPlayer.ridingEntity == null && aEntity instanceof EntityLivingBase; if (tCriticalHit && tDamage > 0.0F) tDamage *= 1.5F; tDamage += tMagicDamage; if (aEntity.attackEntityFrom(tStats.getDamageSource(aPlayer, aEntity), tDamage)) { - if (aEntity instanceof EntityLivingBase) aEntity.setFire(EnchantmentHelper.getFireAspectModifier(aPlayer) * 4); - int tKnockcack = (aPlayer.isSprinting()?1:0) + (aEntity instanceof EntityLivingBase?EnchantmentHelper.getKnockbackModifier(aPlayer, (EntityLivingBase)aEntity):0); + if (aEntity instanceof EntityLivingBase) + aEntity.setFire(EnchantmentHelper.getFireAspectModifier(aPlayer) * 4); + int tKnockcack = (aPlayer.isSprinting() ? 1 : 0) + (aEntity instanceof EntityLivingBase ? EnchantmentHelper.getKnockbackModifier(aPlayer, (EntityLivingBase) aEntity) : 0); if (tKnockcack > 0) { - aEntity.addVelocity(-MathHelper.sin(aPlayer.rotationYaw * (float)Math.PI / 180.0F) * tKnockcack * 0.5F, 0.1D, MathHelper.cos(aPlayer.rotationYaw * (float)Math.PI / 180.0F) * tKnockcack * 0.5F); + aEntity.addVelocity(-MathHelper.sin(aPlayer.rotationYaw * (float) Math.PI / 180.0F) * tKnockcack * 0.5F, 0.1D, MathHelper.cos(aPlayer.rotationYaw * (float) Math.PI / 180.0F) * tKnockcack * 0.5F); aPlayer.motionX *= 0.6D; aPlayer.motionZ *= 0.6D; aPlayer.setSprinting(false); @@ -179,9 +235,11 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements if (tMagicDamage > 0.0F) aPlayer.onEnchantmentCritical(aEntity); if (tDamage >= 18.0F) aPlayer.triggerAchievement(AchievementList.overkill); aPlayer.setLastAttacker(aEntity); - if (aEntity instanceof EntityLivingBase) EnchantmentHelper.func_151384_a((EntityLivingBase)aEntity, aPlayer); + if (aEntity instanceof EntityLivingBase) + EnchantmentHelper.func_151384_a((EntityLivingBase) aEntity, aPlayer); EnchantmentHelper.func_151385_b(aPlayer, aEntity); - if (aEntity instanceof EntityLivingBase) aPlayer.addStat(StatList.damageDealtStat, Math.round(tDamage * 10.0F)); + if (aEntity instanceof EntityLivingBase) + aPlayer.addStat(StatList.damageDealtStat, Math.round(tDamage * 10.0F)); aEntity.hurtResistantTime = Math.max(1, tStats.getHurtResistanceTime(aEntity.hurtResistantTime, aEntity)); aPlayer.addExhaustion(0.3F); doDamage(aStack, tStats.getToolDamagePerEntityAttack()); @@ -191,372 +249,345 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements if (aStack.stackSize <= 0) aPlayer.destroyCurrentEquippedItem(); return true; } - + @Override - public ItemStack onItemRightClick(ItemStack aStack, World aWorld, EntityPlayer aPlayer) { - IToolStats tStats = getToolStats(aStack); - if (tStats != null && tStats.canBlock()) aPlayer.setItemInUse(aStack, 72000); - return super.onItemRightClick(aStack, aWorld, aPlayer); + public ItemStack onItemRightClick(ItemStack aStack, World aWorld, EntityPlayer aPlayer) { + IToolStats tStats = getToolStats(aStack); + if (tStats != null && tStats.canBlock()) aPlayer.setItemInUse(aStack, 72000); + return super.onItemRightClick(aStack, aWorld, aPlayer); } - + @Override public final int getMaxItemUseDuration(ItemStack aStack) { return 72000; } - + @Override - public final EnumAction getItemUseAction(ItemStack aStack) { - IToolStats tStats = getToolStats(aStack); - if (tStats != null && tStats.canBlock()) return EnumAction.block; + public final EnumAction getItemUseAction(ItemStack aStack) { + IToolStats tStats = getToolStats(aStack); + if (tStats != null && tStats.canBlock()) return EnumAction.block; return EnumAction.none; } - - @Override + + @Override @SideOnly(Side.CLIENT) public final void getSubItems(Item var1, CreativeTabs aCreativeTab, List aList) { - for (int i = 0; i < 32766; i+=2) if (getToolStats(new ItemStack(this, 1, i)) != null) { - ItemStack tStack = new ItemStack(this, 1, i); - isItemStackUsable(tStack); - aList.add(tStack); - } + for (int i = 0; i < 32766; i += 2) + if (getToolStats(new ItemStack(this, 1, i)) != null) { + ItemStack tStack = new ItemStack(this, 1, i); + isItemStackUsable(tStack); + aList.add(tStack); + } } - - @Override + + @Override @SideOnly(Side.CLIENT) public final void registerIcons(IIconRegister aIconRegister) { - // + // } - - @Override + + @Override public final IIcon getIconFromDamage(int aMetaData) { - return null; + return null; } - - @Override + + @Override public void addAdditionalToolTips(List aList, ItemStack aStack) { - long tMaxDamage = getToolMaxDamage(aStack); - Materials tMaterial = getPrimaryMaterial(aStack); - IToolStats tStats = getToolStats(aStack); - int tOffset = getElectricStats(aStack) != null ? 2 : 1; - if (tStats != null) { - String name = aStack.getUnlocalizedName(); - if(name.equals("gt.metatool.01.170")||name.equals("gt.metatool.01.172")||name.equals("gt.metatool.01.174")||name.equals("gt.metatool.01.176")){ - aList.add(tOffset + 0, EnumChatFormatting.WHITE + "Durability: " + EnumChatFormatting.GREEN + (tMaxDamage - getToolDamage(aStack)) + " / " + tMaxDamage + EnumChatFormatting.GRAY); - aList.add(tOffset + 1, EnumChatFormatting.WHITE + tMaterial.mDefaultLocalName + EnumChatFormatting.YELLOW + " lvl " + getHarvestLevel(aStack, "") + EnumChatFormatting.GRAY); - aList.add(tOffset + 2, EnumChatFormatting.WHITE + "Turbine Efficency: " + EnumChatFormatting.BLUE + (50.0F+(10.0F*getToolCombatDamage(aStack))) + EnumChatFormatting.GRAY); - aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Optimal Steam flow: " + EnumChatFormatting.LIGHT_PURPLE + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed*1000) + EnumChatFormatting.GRAY+ "L/sec"); - aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Optimal Gas flow(EU burnvalue per tick): " + EnumChatFormatting.LIGHT_PURPLE + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed*25) + EnumChatFormatting.GRAY+ "EU/t"); - aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Optimal Plasma flow(Plasma energyvalue per tick): " + EnumChatFormatting.LIGHT_PURPLE + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed*1000) + EnumChatFormatting.GRAY+ "EU/t"); - - }else{ - aList.add(tOffset + 0, EnumChatFormatting.WHITE + "Durability: " + EnumChatFormatting.GREEN + (tMaxDamage - getToolDamage(aStack)) + " / " + tMaxDamage + EnumChatFormatting.GRAY); - aList.add(tOffset + 1, EnumChatFormatting.WHITE + tMaterial.mDefaultLocalName + EnumChatFormatting.YELLOW + " lvl " + getHarvestLevel(aStack, "") + EnumChatFormatting.GRAY); - aList.add(tOffset + 2, EnumChatFormatting.WHITE + "Attack Damage: " + EnumChatFormatting.BLUE + getToolCombatDamage(aStack) + EnumChatFormatting.GRAY); - aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Mining Speed: " + EnumChatFormatting.LIGHT_PURPLE + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed) + EnumChatFormatting.GRAY); - }} - } - - public static final Materials getPrimaryMaterial(ItemStack aStack) { - NBTTagCompound aNBT = aStack.getTagCompound(); - if (aNBT != null) { - aNBT = aNBT.getCompoundTag("GT.ToolStats"); - if (aNBT != null) return Materials.getRealMaterial(aNBT.getString("PrimaryMaterial")); - } - return Materials._NULL; - } - - public static final Materials getSecondaryMaterial(ItemStack aStack) { - NBTTagCompound aNBT = aStack.getTagCompound(); - if (aNBT != null) { - aNBT = aNBT.getCompoundTag("GT.ToolStats"); - if (aNBT != null) return Materials.getRealMaterial(aNBT.getString("SecondaryMaterial")); - } - return Materials._NULL; - } - - @Override - public Long[] getFluidContainerStats(ItemStack aStack) { - return null; - } - - @Override - public Long[] getElectricStats(ItemStack aStack) { - NBTTagCompound aNBT = aStack.getTagCompound(); - if (aNBT != null) { - aNBT = aNBT.getCompoundTag("GT.ToolStats"); - if (aNBT != null && aNBT.getBoolean("Electric")) return new Long[] {aNBT.getLong("MaxCharge"), aNBT.getLong("Voltage"), aNBT.getLong("Tier"), aNBT.getLong("SpecialData")}; - } - return null; - } - - public float getToolCombatDamage(ItemStack aStack) { - IToolStats tStats = getToolStats(aStack); - if (tStats == null) return 0; - return tStats.getBaseDamage() + getPrimaryMaterial(aStack).mToolQuality; - } - - public static final long getToolMaxDamage(ItemStack aStack) { - NBTTagCompound aNBT = aStack.getTagCompound(); - if (aNBT != null) { - aNBT = aNBT.getCompoundTag("GT.ToolStats"); - if (aNBT != null) return aNBT.getLong("MaxDamage"); - } - return 0; - } - - public static final long getToolDamage(ItemStack aStack) { - NBTTagCompound aNBT = aStack.getTagCompound(); - if (aNBT != null) { - aNBT = aNBT.getCompoundTag("GT.ToolStats"); - if (aNBT != null) return aNBT.getLong("Damage"); - } - return 0; - } - - public static final boolean setToolDamage(ItemStack aStack, long aDamage) { - NBTTagCompound aNBT = aStack.getTagCompound(); - if (aNBT != null) { - aNBT = aNBT.getCompoundTag("GT.ToolStats"); - if (aNBT != null) { - aNBT.setLong("Damage", aDamage); - return true; - } - } - return false; - } - - @Override - public final boolean doDamageToItem(ItemStack aStack, int aVanillaDamage) { - return doDamage(aStack, aVanillaDamage * 100); - } - - public final boolean doDamage(ItemStack aStack, long aAmount) { - if (!isItemStackUsable(aStack)) return false; - Long[] tElectric = getElectricStats(aStack); - if (tElectric == null) { - long tNewDamage = getToolDamage(aStack) + aAmount; - setToolDamage(aStack, tNewDamage); - if (tNewDamage >= getToolMaxDamage(aStack)) { - IToolStats tStats = getToolStats(aStack); - if (tStats == null || GT_Utility.setStack(aStack, tStats.getBrokenItem(aStack)) == null) { - if (tStats != null) GT_Utility.doSoundAtClient(tStats.getBreakingSound(), 1, 1.0F); - if (aStack.stackSize > 0) aStack.stackSize--; - - } - } - return true; - } - if (use(aStack, (int)aAmount, null)) { - if (new Random().nextInt(25) == 0) { - long tNewDamage = getToolDamage(aStack) + aAmount; - setToolDamage(aStack, tNewDamage); - if (tNewDamage >= getToolMaxDamage(aStack)) { - IToolStats tStats = getToolStats(aStack); - if (tStats == null || GT_Utility.setStack(aStack, tStats.getBrokenItem(aStack)) == null) { - if (tStats != null) GT_Utility.doSoundAtClient(tStats.getBreakingSound(), 1, 1.0F); - if (aStack.stackSize > 0) aStack.stackSize--; - } - } - } - return true; - } - return false; - } - + long tMaxDamage = getToolMaxDamage(aStack); + Materials tMaterial = getPrimaryMaterial(aStack); + IToolStats tStats = getToolStats(aStack); + int tOffset = getElectricStats(aStack) != null ? 2 : 1; + if (tStats != null) { + String name = aStack.getUnlocalizedName(); + if (name.equals("gt.metatool.01.170") || name.equals("gt.metatool.01.172") || name.equals("gt.metatool.01.174") || name.equals("gt.metatool.01.176")) { + aList.add(tOffset + 0, EnumChatFormatting.WHITE + "Durability: " + EnumChatFormatting.GREEN + (tMaxDamage - getToolDamage(aStack)) + " / " + tMaxDamage + EnumChatFormatting.GRAY); + aList.add(tOffset + 1, EnumChatFormatting.WHITE + tMaterial.mDefaultLocalName + EnumChatFormatting.YELLOW + " lvl " + getHarvestLevel(aStack, "") + EnumChatFormatting.GRAY); + aList.add(tOffset + 2, EnumChatFormatting.WHITE + "Turbine Efficency: " + EnumChatFormatting.BLUE + (50.0F + (10.0F * getToolCombatDamage(aStack))) + EnumChatFormatting.GRAY); + aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Optimal Steam flow: " + EnumChatFormatting.LIGHT_PURPLE + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed * 1000) + EnumChatFormatting.GRAY + "L/sec"); + aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Optimal Gas flow(EU burnvalue per tick): " + EnumChatFormatting.LIGHT_PURPLE + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed * 25) + EnumChatFormatting.GRAY + "EU/t"); + aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Optimal Plasma flow(Plasma energyvalue per tick): " + EnumChatFormatting.LIGHT_PURPLE + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed * 1000) + EnumChatFormatting.GRAY + "EU/t"); + + } else { + aList.add(tOffset + 0, EnumChatFormatting.WHITE + "Durability: " + EnumChatFormatting.GREEN + (tMaxDamage - getToolDamage(aStack)) + " / " + tMaxDamage + EnumChatFormatting.GRAY); + aList.add(tOffset + 1, EnumChatFormatting.WHITE + tMaterial.mDefaultLocalName + EnumChatFormatting.YELLOW + " lvl " + getHarvestLevel(aStack, "") + EnumChatFormatting.GRAY); + aList.add(tOffset + 2, EnumChatFormatting.WHITE + "Attack Damage: " + EnumChatFormatting.BLUE + getToolCombatDamage(aStack) + EnumChatFormatting.GRAY); + aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Mining Speed: " + EnumChatFormatting.LIGHT_PURPLE + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed) + EnumChatFormatting.GRAY); + } + } + } + + @Override + public Long[] getFluidContainerStats(ItemStack aStack) { + return null; + } + + @Override + public Long[] getElectricStats(ItemStack aStack) { + NBTTagCompound aNBT = aStack.getTagCompound(); + if (aNBT != null) { + aNBT = aNBT.getCompoundTag("GT.ToolStats"); + if (aNBT != null && aNBT.getBoolean("Electric")) + return new Long[]{aNBT.getLong("MaxCharge"), aNBT.getLong("Voltage"), aNBT.getLong("Tier"), aNBT.getLong("SpecialData")}; + } + return null; + } + + public float getToolCombatDamage(ItemStack aStack) { + IToolStats tStats = getToolStats(aStack); + if (tStats == null) return 0; + return tStats.getBaseDamage() + getPrimaryMaterial(aStack).mToolQuality; + } + + @Override + public final boolean doDamageToItem(ItemStack aStack, int aVanillaDamage) { + return doDamage(aStack, aVanillaDamage * 100); + } + + public final boolean doDamage(ItemStack aStack, long aAmount) { + if (!isItemStackUsable(aStack)) return false; + Long[] tElectric = getElectricStats(aStack); + if (tElectric == null) { + long tNewDamage = getToolDamage(aStack) + aAmount; + setToolDamage(aStack, tNewDamage); + if (tNewDamage >= getToolMaxDamage(aStack)) { + IToolStats tStats = getToolStats(aStack); + if (tStats == null || GT_Utility.setStack(aStack, tStats.getBrokenItem(aStack)) == null) { + if (tStats != null) GT_Utility.doSoundAtClient(tStats.getBreakingSound(), 1, 1.0F); + if (aStack.stackSize > 0) aStack.stackSize--; + + } + } + return true; + } + if (use(aStack, (int) aAmount, null)) { + if (new Random().nextInt(25) == 0) { + long tNewDamage = getToolDamage(aStack) + aAmount; + setToolDamage(aStack, tNewDamage); + if (tNewDamage >= getToolMaxDamage(aStack)) { + IToolStats tStats = getToolStats(aStack); + if (tStats == null || GT_Utility.setStack(aStack, tStats.getBrokenItem(aStack)) == null) { + if (tStats != null) GT_Utility.doSoundAtClient(tStats.getBreakingSound(), 1, 1.0F); + if (aStack.stackSize > 0) aStack.stackSize--; + } + } + } + return true; + } + return false; + } + @Override public float getDigSpeed(ItemStack aStack, Block aBlock, int aMetaData) { - if (!isItemStackUsable(aStack)) return 0.0F; - IToolStats tStats = getToolStats(aStack); - if (tStats == null || Math.max(0, getHarvestLevel(aStack, "")) < aBlock.getHarvestLevel(aMetaData)) return 0.0F; - return tStats.isMinableBlock(aBlock, (byte)aMetaData)?Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed):0.0F; + if (!isItemStackUsable(aStack)) return 0.0F; + IToolStats tStats = getToolStats(aStack); + if (tStats == null || Math.max(0, getHarvestLevel(aStack, "")) < aBlock.getHarvestLevel(aMetaData)) return 0.0F; + return tStats.isMinableBlock(aBlock, (byte) aMetaData) ? Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed) : 0.0F; } - - @Override + + @Override public final boolean canHarvestBlock(Block aBlock, ItemStack aStack) { - return getDigSpeed(aStack, aBlock, (byte)0) > 0.0F; - } - - @Override - public final int getHarvestLevel(ItemStack aStack, String aToolClass) { - IToolStats tStats = getToolStats(aStack); - return tStats == null ? -1 : tStats.getBaseQuality() + getPrimaryMaterial(aStack).mToolQuality; + return getDigSpeed(aStack, aBlock, (byte) 0) > 0.0F; } - - @Override + + @Override + public final int getHarvestLevel(ItemStack aStack, String aToolClass) { + IToolStats tStats = getToolStats(aStack); + return tStats == null ? -1 : tStats.getBaseQuality() + getPrimaryMaterial(aStack).mToolQuality; + } + + @Override public boolean onBlockDestroyed(ItemStack aStack, World aWorld, Block aBlock, int aX, int aY, int aZ, EntityLivingBase aPlayer) { - if (!isItemStackUsable(aStack)) return false; - IToolStats tStats = getToolStats(aStack); - if (tStats == null) return false; + if (!isItemStackUsable(aStack)) return false; + IToolStats tStats = getToolStats(aStack); + if (tStats == null) return false; GT_Utility.doSoundAtClient(tStats.getMiningSound(), 1, 1.0F); - doDamage(aStack, (int)Math.max(1, aBlock.getBlockHardness(aWorld, aX, aY, aZ) * tStats.getToolDamagePerBlockBreak())); + doDamage(aStack, (int) Math.max(1, aBlock.getBlockHardness(aWorld, aX, aY, aZ) * tStats.getToolDamagePerBlockBreak())); return getDigSpeed(aStack, aBlock, aWorld.getBlockMetadata(aX, aY, aZ)) > 0.0F; } - - @Override - public final ItemStack getContainerItem(ItemStack aStack) { - return getContainerItem(aStack, true); - } - @Override - public final boolean hasContainerItem(ItemStack aStack) { - return getContainerItem(aStack, false) != null; - } - - private ItemStack getContainerItem(ItemStack aStack, boolean playSound) { - if (!isItemStackUsable(aStack)) return null; - aStack = GT_Utility.copyAmount(1, aStack); - IToolStats tStats = getToolStats(aStack); - if (tStats == null) return null; - doDamage(aStack, tStats.getToolDamagePerContainerCraft()); - aStack = aStack.stackSize > 0 ? aStack : null; - if (playSound) { - String sound = (aStack == null) ? tStats.getBreakingSound() : tStats.getCraftingSound(); - GT_Utility.doSoundAtClient(sound, 1, 1.0F); - } - return aStack; - } - - public IToolStats getToolStats(ItemStack aStack) { - isItemStackUsable(aStack); - return getToolStatsInternal(aStack); - } - - private IToolStats getToolStatsInternal(ItemStack aStack) { - return aStack == null ? null : mToolStats.get((short)aStack.getItemDamage()); - } - - @Override - public float getSaplingModifier(ItemStack aStack, World aWorld, EntityPlayer aPlayer, int aX, int aY, int aZ) { - IToolStats tStats = getToolStats(aStack); - return tStats != null && tStats.isGrafter() ? Math.min(100.0F, (1+getHarvestLevel(aStack, "")) * 20.0F) : 0.0F; - } - - @Override - public boolean canWhack(EntityPlayer aPlayer, ItemStack aStack, int aX, int aY, int aZ) { - if (!isItemStackUsable(aStack)) return false; - IToolStats tStats = getToolStats(aStack); - return tStats != null && tStats.isCrowbar(); - } - - @Override - public void onWhack(EntityPlayer aPlayer, ItemStack aStack, int aX, int aY, int aZ) { - IToolStats tStats = getToolStats(aStack); - if (tStats != null) doDamage(aStack, tStats.getToolDamagePerEntityAttack()); - } - - @Override - public boolean canLink(EntityPlayer aPlayer, ItemStack aStack, EntityMinecart cart) { - if (!isItemStackUsable(aStack)) return false; - IToolStats tStats = getToolStats(aStack); - return tStats != null && tStats.isCrowbar(); - } - - @Override - public void onLink(EntityPlayer aPlayer, ItemStack aStack, EntityMinecart cart) { - IToolStats tStats = getToolStats(aStack); - if (tStats != null) doDamage(aStack, tStats.getToolDamagePerEntityAttack()); - } - - @Override - public boolean canBoost(EntityPlayer aPlayer, ItemStack aStack, EntityMinecart cart) { - if (!isItemStackUsable(aStack)) return false; - IToolStats tStats = getToolStats(aStack); - return tStats != null && tStats.isCrowbar(); - } - - @Override - public void onBoost(EntityPlayer aPlayer, ItemStack aStack, EntityMinecart cart) { - IToolStats tStats = getToolStats(aStack); - if (tStats != null) doDamage(aStack, tStats.getToolDamagePerEntityAttack()); - } - - @Override + @Override + public final ItemStack getContainerItem(ItemStack aStack) { + return getContainerItem(aStack, true); + } + + @Override + public final boolean hasContainerItem(ItemStack aStack) { + return getContainerItem(aStack, false) != null; + } + + private ItemStack getContainerItem(ItemStack aStack, boolean playSound) { + if (!isItemStackUsable(aStack)) return null; + aStack = GT_Utility.copyAmount(1, aStack); + IToolStats tStats = getToolStats(aStack); + if (tStats == null) return null; + doDamage(aStack, tStats.getToolDamagePerContainerCraft()); + aStack = aStack.stackSize > 0 ? aStack : null; + if (playSound) { + String sound = (aStack == null) ? tStats.getBreakingSound() : tStats.getCraftingSound(); + GT_Utility.doSoundAtClient(sound, 1, 1.0F); + } + return aStack; + } + + public IToolStats getToolStats(ItemStack aStack) { + isItemStackUsable(aStack); + return getToolStatsInternal(aStack); + } + + private IToolStats getToolStatsInternal(ItemStack aStack) { + return aStack == null ? null : mToolStats.get((short) aStack.getItemDamage()); + } + + @Override + public float getSaplingModifier(ItemStack aStack, World aWorld, EntityPlayer aPlayer, int aX, int aY, int aZ) { + IToolStats tStats = getToolStats(aStack); + return tStats != null && tStats.isGrafter() ? Math.min(100.0F, (1 + getHarvestLevel(aStack, "")) * 20.0F) : 0.0F; + } + + @Override + public boolean canWhack(EntityPlayer aPlayer, ItemStack aStack, int aX, int aY, int aZ) { + if (!isItemStackUsable(aStack)) return false; + IToolStats tStats = getToolStats(aStack); + return tStats != null && tStats.isCrowbar(); + } + + @Override + public void onWhack(EntityPlayer aPlayer, ItemStack aStack, int aX, int aY, int aZ) { + IToolStats tStats = getToolStats(aStack); + if (tStats != null) doDamage(aStack, tStats.getToolDamagePerEntityAttack()); + } + + @Override + public boolean canLink(EntityPlayer aPlayer, ItemStack aStack, EntityMinecart cart) { + if (!isItemStackUsable(aStack)) return false; + IToolStats tStats = getToolStats(aStack); + return tStats != null && tStats.isCrowbar(); + } + + @Override + public void onLink(EntityPlayer aPlayer, ItemStack aStack, EntityMinecart cart) { + IToolStats tStats = getToolStats(aStack); + if (tStats != null) doDamage(aStack, tStats.getToolDamagePerEntityAttack()); + } + + @Override + public boolean canBoost(EntityPlayer aPlayer, ItemStack aStack, EntityMinecart cart) { + if (!isItemStackUsable(aStack)) return false; + IToolStats tStats = getToolStats(aStack); + return tStats != null && tStats.isCrowbar(); + } + + @Override + public void onBoost(EntityPlayer aPlayer, ItemStack aStack, EntityMinecart cart) { + IToolStats tStats = getToolStats(aStack); + if (tStats != null) doDamage(aStack, tStats.getToolDamagePerEntityAttack()); + } + + @Override public void onCreated(ItemStack aStack, World aWorld, EntityPlayer aPlayer) { - IToolStats tStats = getToolStats(aStack); - if (tStats != null && aPlayer != null) tStats.onToolCrafted(aStack, aPlayer); - super.onCreated(aStack, aWorld, aPlayer); - } - - @Override + IToolStats tStats = getToolStats(aStack); + if (tStats != null && aPlayer != null) tStats.onToolCrafted(aStack, aPlayer); + super.onCreated(aStack, aWorld, aPlayer); + } + + @Override public final boolean doesContainerItemLeaveCraftingGrid(ItemStack aStack) { return false; } - - @Override - public final int getItemStackLimit(ItemStack aStack) { - return 1; - } - - @Override + + @Override + public final int getItemStackLimit(ItemStack aStack) { + return 1; + } + + @Override public boolean isFull3D() { return true; } - - @Override - public boolean isItemStackUsable(ItemStack aStack) { - IToolStats tStats = getToolStatsInternal(aStack); - if (aStack.getItemDamage() % 2 == 1 || tStats == null) { - NBTTagCompound aNBT = aStack.getTagCompound(); - if (aNBT != null) aNBT.removeTag("ench"); - return false; - } - Materials aMaterial = getPrimaryMaterial(aStack); - HashMap tMap = new HashMap(), tResult = new HashMap(); - if (aMaterial.mEnchantmentTools != null) { - tMap.put(aMaterial.mEnchantmentTools.effectId, (int)aMaterial.mEnchantmentToolsLevel); - if (aMaterial.mEnchantmentTools == Enchantment.fortune) - tMap.put(Enchantment.looting.effectId, (int)aMaterial.mEnchantmentToolsLevel); - if (aMaterial.mEnchantmentTools == Enchantment.knockback) - tMap.put(Enchantment.power.effectId, (int)aMaterial.mEnchantmentToolsLevel); - if (aMaterial.mEnchantmentTools == Enchantment.fireAspect) - tMap.put(Enchantment.flame.effectId, (int)aMaterial.mEnchantmentToolsLevel); - } - Enchantment[] tEnchants = tStats.getEnchantments(aStack); - int[] tLevels = tStats.getEnchantmentLevels(aStack); - for (int i = 0; i < tEnchants.length; i++) if (tLevels[i] > 0) { - Integer tLevel = tMap.get(tEnchants[i].effectId); - tMap.put(tEnchants[i].effectId, tLevel == null ? tLevels[i] : tLevel == tLevels[i] ? tLevel+1 : Math.max(tLevel, tLevels[i])); - } - for (Entry tEntry : tMap.entrySet()) { - if (tEntry.getKey() == 33 || (tEntry.getKey() == 20 && tEntry.getValue() > 2) || tEntry.getKey() == Enchantment_Radioactivity.INSTANCE.effectId) tResult.put(tEntry.getKey(), tEntry.getValue()); else - switch(Enchantment.enchantmentsList[tEntry.getKey()].type) { - case weapon: - if (tStats.isWeapon()) tResult.put(tEntry.getKey(), tEntry.getValue()); - break; - case all: - tResult.put(tEntry.getKey(), tEntry.getValue()); - break; - case armor: case armor_feet: case armor_head: case armor_legs: case armor_torso: - break; - case bow: - if (tStats.isRangedWeapon()) tResult.put(tEntry.getKey(), tEntry.getValue()); - break; - case breakable: - break; - case fishing_rod: - break; - case digger: - if (tStats.isMiningTool()) tResult.put(tEntry.getKey(), tEntry.getValue()); - break; - } - } - EnchantmentHelper.setEnchantments(tResult, aStack); - return true; - } - - @Override - public short getChargedMetaData(ItemStack aStack) { - return (short)(aStack.getItemDamage() - (aStack.getItemDamage() % 2)); - } - - @Override - public short getEmptyMetaData(ItemStack aStack) { - NBTTagCompound aNBT = aStack.getTagCompound(); - if (aNBT != null) aNBT.removeTag("ench"); - return (short)(aStack.getItemDamage()+1-(aStack.getItemDamage() % 2)); - } - - @Override public int getItemEnchantability() {return 0;} - @Override public boolean isBookEnchantable(ItemStack aStack, ItemStack aBook) {return false;} - @Override public boolean getIsRepairable(ItemStack aStack, ItemStack aMaterial) {return false;} + + @Override + public boolean isItemStackUsable(ItemStack aStack) { + IToolStats tStats = getToolStatsInternal(aStack); + if (aStack.getItemDamage() % 2 == 1 || tStats == null) { + NBTTagCompound aNBT = aStack.getTagCompound(); + if (aNBT != null) aNBT.removeTag("ench"); + return false; + } + Materials aMaterial = getPrimaryMaterial(aStack); + HashMap tMap = new HashMap(), tResult = new HashMap(); + if (aMaterial.mEnchantmentTools != null) { + tMap.put(aMaterial.mEnchantmentTools.effectId, (int) aMaterial.mEnchantmentToolsLevel); + if (aMaterial.mEnchantmentTools == Enchantment.fortune) + tMap.put(Enchantment.looting.effectId, (int) aMaterial.mEnchantmentToolsLevel); + if (aMaterial.mEnchantmentTools == Enchantment.knockback) + tMap.put(Enchantment.power.effectId, (int) aMaterial.mEnchantmentToolsLevel); + if (aMaterial.mEnchantmentTools == Enchantment.fireAspect) + tMap.put(Enchantment.flame.effectId, (int) aMaterial.mEnchantmentToolsLevel); + } + Enchantment[] tEnchants = tStats.getEnchantments(aStack); + int[] tLevels = tStats.getEnchantmentLevels(aStack); + for (int i = 0; i < tEnchants.length; i++) + if (tLevels[i] > 0) { + Integer tLevel = tMap.get(tEnchants[i].effectId); + tMap.put(tEnchants[i].effectId, tLevel == null ? tLevels[i] : tLevel == tLevels[i] ? tLevel + 1 : Math.max(tLevel, tLevels[i])); + } + for (Entry tEntry : tMap.entrySet()) { + if (tEntry.getKey() == 33 || (tEntry.getKey() == 20 && tEntry.getValue() > 2) || tEntry.getKey() == Enchantment_Radioactivity.INSTANCE.effectId) + tResult.put(tEntry.getKey(), tEntry.getValue()); + else + switch (Enchantment.enchantmentsList[tEntry.getKey()].type) { + case weapon: + if (tStats.isWeapon()) tResult.put(tEntry.getKey(), tEntry.getValue()); + break; + case all: + tResult.put(tEntry.getKey(), tEntry.getValue()); + break; + case armor: + case armor_feet: + case armor_head: + case armor_legs: + case armor_torso: + break; + case bow: + if (tStats.isRangedWeapon()) tResult.put(tEntry.getKey(), tEntry.getValue()); + break; + case breakable: + break; + case fishing_rod: + break; + case digger: + if (tStats.isMiningTool()) tResult.put(tEntry.getKey(), tEntry.getValue()); + break; + } + } + EnchantmentHelper.setEnchantments(tResult, aStack); + return true; + } + + @Override + public short getChargedMetaData(ItemStack aStack) { + return (short) (aStack.getItemDamage() - (aStack.getItemDamage() % 2)); + } + + @Override + public short getEmptyMetaData(ItemStack aStack) { + NBTTagCompound aNBT = aStack.getTagCompound(); + if (aNBT != null) aNBT.removeTag("ench"); + return (short) (aStack.getItemDamage() + 1 - (aStack.getItemDamage() % 2)); + } + + @Override + public int getItemEnchantability() { + return 0; + } + + @Override + public boolean isBookEnchantable(ItemStack aStack, ItemStack aBook) { + return false; + } + + @Override + public boolean getIsRepairable(ItemStack aStack, ItemStack aMaterial) { + return false; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java b/src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java index 2d9d8e0c..9be65b15 100644 --- a/src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java +++ b/src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java @@ -1,176 +1,149 @@ package gregtech.api.items; - import gregtech.api.enums.ItemList; +import gregtech.api.enums.ItemList; import ic2.api.reactor.IReactor; import ic2.api.reactor.IReactorComponent; import ic2.core.IC2Potion; -import ic2.core.Ic2Items; -import ic2.core.init.InternalName; -import ic2.core.item.ItemGradualInt; import ic2.core.item.armor.ItemArmorHazmat; - -import java.util.ArrayList; - import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import java.util.ArrayList; - public class GT_RadioactiveCellIC_Item extends GT_RadioactiveCell_Item implements IReactorComponent - { + +public class GT_RadioactiveCellIC_Item extends GT_RadioactiveCell_Item implements IReactorComponent { public final int numberOfCells; public final float sEnergy; public final int sRadiation; public final float sHeat; - - public GT_RadioactiveCellIC_Item( String aUnlocalized, String aEnglish, int aCellcount, int maxDamage, float aEnergy, int aRadiation, float aHeat) - { - super(aUnlocalized, aEnglish, aCellcount); - setMaxStackSize(64); - this.maxDmg=maxDamage; - this.numberOfCells = aCellcount; - this.sEnergy = aEnergy; - this.sRadiation = aRadiation; - this.sHeat = aHeat; - - } - - - private class ItemStackCoord - { - public ItemStack stack; - public int x; - public int y; - - public ItemStackCoord(ItemStack stack1, int x1, int y1) - { - this.stack = stack1; - this.x = x1; - this.y = y1; - } + + public GT_RadioactiveCellIC_Item(String aUnlocalized, String aEnglish, int aCellcount, int maxDamage, float aEnergy, int aRadiation, float aHeat) { + super(aUnlocalized, aEnglish, aCellcount); + setMaxStackSize(64); + this.maxDmg = maxDamage; + this.numberOfCells = aCellcount; + this.sEnergy = aEnergy; + this.sRadiation = aRadiation; + this.sHeat = aHeat; + } - - public void processChamber(IReactor reactor, ItemStack yourStack, int x, int y, boolean heatrun) - { - if (!reactor.produceEnergy()) { - return; - } - for (int iteration = 0; iteration < this.numberOfCells; iteration++) - { - int pulses = 1 + this.numberOfCells / 2; - if (!heatrun) - { - for (int i = 0; i < pulses; i++) { - acceptUraniumPulse(reactor, yourStack, yourStack, x, y, x, y, heatrun); - } - pulses += checkPulseable(reactor, x - 1, y, yourStack, x, y, heatrun) + checkPulseable(reactor, x + 1, y, yourStack, x, y, heatrun) + checkPulseable(reactor, x, y - 1, yourStack, x, y, heatrun) + checkPulseable(reactor, x, y + 1, yourStack, x, y, heatrun); + + private static int checkPulseable(IReactor reactor, int x, int y, ItemStack me, int mex, int mey, boolean heatrun) { + ItemStack other = reactor.getItemAt(x, y); + if ((other != null) && ((other.getItem() instanceof IReactorComponent)) && + (((IReactorComponent) other.getItem()).acceptUraniumPulse(reactor, other, me, x, y, mex, mey, heatrun))) { + return 1; } - else - { - pulses += checkPulseable(reactor, x - 1, y, yourStack, x, y, heatrun) + checkPulseable(reactor, x + 1, y, yourStack, x, y, heatrun) + checkPulseable(reactor, x, y - 1, yourStack, x, y, heatrun) + checkPulseable(reactor, x, y + 1, yourStack, x, y, heatrun); - - int heat = sumUp(pulses) * 4; - - ArrayList heatAcceptors = new ArrayList(); - checkHeatAcceptor(reactor, x - 1, y, heatAcceptors); - checkHeatAcceptor(reactor, x + 1, y, heatAcceptors); - checkHeatAcceptor(reactor, x, y - 1, heatAcceptors); - checkHeatAcceptor(reactor, x, y + 1, heatAcceptors); - heat = Math.round(heat * sHeat); - while ((heatAcceptors.size() > 0) && (heat > 0)) - { - - int dheat = heat / heatAcceptors.size(); - heat -= dheat; - dheat = ((IReactorComponent)((ItemStackCoord)heatAcceptors.get(0)).stack.getItem()).alterHeat(reactor, ((ItemStackCoord)heatAcceptors.get(0)).stack, ((ItemStackCoord)heatAcceptors.get(0)).x, ((ItemStackCoord)heatAcceptors.get(0)).y, dheat); - heat += dheat; - heatAcceptors.remove(0); - } - if (heat > 0) { - reactor.addHeat(heat); - } + return 0; + } + + public void processChamber(IReactor reactor, ItemStack yourStack, int x, int y, boolean heatrun) { + if (!reactor.produceEnergy()) { + return; } - } - if (getDamageOfStack(yourStack) >= getMaxDamageEx() - 1) { - switch (this.numberOfCells) - { - case 1: - reactor.setItemAt(x, y, ItemList.Depleted_Thorium_1.get(1, new Object[0])); - break; - case 2: - reactor.setItemAt(x, y, ItemList.Depleted_Thorium_2.get(1, new Object[0])); - break; - case 4: - reactor.setItemAt(x, y, ItemList.Depleted_Thorium_4.get(1, new Object[0])); + for (int iteration = 0; iteration < this.numberOfCells; iteration++) { + int pulses = 1 + this.numberOfCells / 2; + if (!heatrun) { + for (int i = 0; i < pulses; i++) { + acceptUraniumPulse(reactor, yourStack, yourStack, x, y, x, y, heatrun); + } + pulses += checkPulseable(reactor, x - 1, y, yourStack, x, y, heatrun) + checkPulseable(reactor, x + 1, y, yourStack, x, y, heatrun) + checkPulseable(reactor, x, y - 1, yourStack, x, y, heatrun) + checkPulseable(reactor, x, y + 1, yourStack, x, y, heatrun); + } else { + pulses += checkPulseable(reactor, x - 1, y, yourStack, x, y, heatrun) + checkPulseable(reactor, x + 1, y, yourStack, x, y, heatrun) + checkPulseable(reactor, x, y - 1, yourStack, x, y, heatrun) + checkPulseable(reactor, x, y + 1, yourStack, x, y, heatrun); + + int heat = sumUp(pulses) * 4; + + ArrayList heatAcceptors = new ArrayList(); + checkHeatAcceptor(reactor, x - 1, y, heatAcceptors); + checkHeatAcceptor(reactor, x + 1, y, heatAcceptors); + checkHeatAcceptor(reactor, x, y - 1, heatAcceptors); + checkHeatAcceptor(reactor, x, y + 1, heatAcceptors); + heat = Math.round(heat * sHeat); + while ((heatAcceptors.size() > 0) && (heat > 0)) { + + int dheat = heat / heatAcceptors.size(); + heat -= dheat; + dheat = ((IReactorComponent) ((ItemStackCoord) heatAcceptors.get(0)).stack.getItem()).alterHeat(reactor, ((ItemStackCoord) heatAcceptors.get(0)).stack, ((ItemStackCoord) heatAcceptors.get(0)).x, ((ItemStackCoord) heatAcceptors.get(0)).y, dheat); + heat += dheat; + heatAcceptors.remove(0); + } + if (heat > 0) { + reactor.addHeat(heat); + } + } } - } else if (heatrun) { - damageItemStack(yourStack, 1); - } - } - - - private static int checkPulseable(IReactor reactor, int x, int y, ItemStack me, int mex, int mey, boolean heatrun) - { - ItemStack other = reactor.getItemAt(x, y); - if ((other != null) && ((other.getItem() instanceof IReactorComponent)) && - (((IReactorComponent)other.getItem()).acceptUraniumPulse(reactor, other, me, x, y, mex, mey, heatrun))) { - return 1; - } - return 0; - } - - private void checkHeatAcceptor(IReactor reactor, int x, int y, ArrayList heatAcceptors) - { - ItemStack thing = reactor.getItemAt(x, y); - if ((thing != null) && ((thing.getItem() instanceof IReactorComponent)) && - (((IReactorComponent)thing.getItem()).canStoreHeat(reactor, thing, x, y))) { - heatAcceptors.add(new ItemStackCoord(thing, x, y)); - } - } - - public boolean acceptUraniumPulse(IReactor reactor, ItemStack yourStack, ItemStack pulsingStack, int youX, int youY, int pulseX, int pulseY, boolean heatrun) - { - if (!heatrun) { - reactor.addOutput((float) (1.0F*this.sEnergy)); - } - return true; - } - - public boolean canStoreHeat(IReactor reactor, ItemStack yourStack, int x, int y) - { - return false; - } - - public int getMaxHeat(IReactor reactor, ItemStack yourStack, int x, int y) - { - return 0; - } - - public int getCurrentHeat(IReactor reactor, ItemStack yourStack, int x, int y) - { - return 0; - } - - public int alterHeat(IReactor reactor, ItemStack yourStack, int x, int y, int heat) - { - return heat; - } - - public float influenceExplosion(IReactor reactor, ItemStack yourStack) - { - return 2 * this.numberOfCells; - } - - public void onUpdate(ItemStack stack, World world, Entity entity, int slotIndex, boolean isCurrentItem) - { - if (this.sRadiation>0&&(entity instanceof EntityLivingBase)) - { - EntityLivingBase entityLiving = (EntityLivingBase)entity; - if (!ItemArmorHazmat.hasCompleteHazmat(entityLiving)) { - IC2Potion.radiation.applyTo(entityLiving, sRadiation*20, sRadiation*10); + if (getDamageOfStack(yourStack) >= getMaxDamageEx() - 1) { + switch (this.numberOfCells) { + case 1: + reactor.setItemAt(x, y, ItemList.Depleted_Thorium_1.get(1, new Object[0])); + break; + case 2: + reactor.setItemAt(x, y, ItemList.Depleted_Thorium_2.get(1, new Object[0])); + break; + case 4: + reactor.setItemAt(x, y, ItemList.Depleted_Thorium_4.get(1, new Object[0])); + } + } else if (heatrun) { + damageItemStack(yourStack, 1); } - } } - } + + private void checkHeatAcceptor(IReactor reactor, int x, int y, ArrayList heatAcceptors) { + ItemStack thing = reactor.getItemAt(x, y); + if ((thing != null) && ((thing.getItem() instanceof IReactorComponent)) && + (((IReactorComponent) thing.getItem()).canStoreHeat(reactor, thing, x, y))) { + heatAcceptors.add(new ItemStackCoord(thing, x, y)); + } + } + + public boolean acceptUraniumPulse(IReactor reactor, ItemStack yourStack, ItemStack pulsingStack, int youX, int youY, int pulseX, int pulseY, boolean heatrun) { + if (!heatrun) { + reactor.addOutput((float) (1.0F * this.sEnergy)); + } + return true; + } + + public boolean canStoreHeat(IReactor reactor, ItemStack yourStack, int x, int y) { + return false; + } + + public int getMaxHeat(IReactor reactor, ItemStack yourStack, int x, int y) { + return 0; + } + + public int getCurrentHeat(IReactor reactor, ItemStack yourStack, int x, int y) { + return 0; + } + + public int alterHeat(IReactor reactor, ItemStack yourStack, int x, int y, int heat) { + return heat; + } + + public float influenceExplosion(IReactor reactor, ItemStack yourStack) { + return 2 * this.numberOfCells; + } + + public void onUpdate(ItemStack stack, World world, Entity entity, int slotIndex, boolean isCurrentItem) { + if (this.sRadiation > 0 && (entity instanceof EntityLivingBase)) { + EntityLivingBase entityLiving = (EntityLivingBase) entity; + if (!ItemArmorHazmat.hasCompleteHazmat(entityLiving)) { + IC2Potion.radiation.applyTo(entityLiving, sRadiation * 20, sRadiation * 10); + } + } + } + + private class ItemStackCoord { + public ItemStack stack; + public int x; + public int y; + + public ItemStackCoord(ItemStack stack1, int x1, int y1) { + this.stack = stack1; + this.x = x1; + this.y = y1; + } + } +} diff --git a/src/main/java/gregtech/api/items/GT_RadioactiveCell_Item.java b/src/main/java/gregtech/api/items/GT_RadioactiveCell_Item.java index a8cc2130..7ceaf43f 100644 --- a/src/main/java/gregtech/api/items/GT_RadioactiveCell_Item.java +++ b/src/main/java/gregtech/api/items/GT_RadioactiveCell_Item.java @@ -1,61 +1,69 @@ package gregtech.api.items; import ic2.core.util.StackUtil; - -import java.util.List; - import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import java.util.List; + public class GT_RadioactiveCell_Item - extends GT_Generic_Item -{ - protected int cellCount; - protected int maxDmg; - protected int dura; - - public GT_RadioactiveCell_Item(String aUnlocalized, String aEnglish, int aCellcount) - { - super(aUnlocalized, aEnglish, null); - this.setMaxStackSize(64); - this.setMaxDamage(100); - setNoRepair(); - this.cellCount = Math.max(1, aCellcount); - } - - protected boolean outputPulseForStack(ItemStack aStack) - { - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) - { - tNBT = new NBTTagCompound(); - aStack.setTagCompound(tNBT); + extends GT_Generic_Item { + protected int cellCount; + protected int maxDmg; + protected int dura; + + public GT_RadioactiveCell_Item(String aUnlocalized, String aEnglish, int aCellcount) { + super(aUnlocalized, aEnglish, null); + this.setMaxStackSize(64); + this.setMaxDamage(100); + setNoRepair(); + this.cellCount = Math.max(1, aCellcount); } - tNBT.setInteger("output", tNBT.getInteger("output") + 1); - return false;//(this.pulserate > 0) || (tNBT.getInteger("output") % -this.pulserate == 0); - } - - protected boolean incrementPulseForStack(ItemStack aStack) - { - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) - { - tNBT = new NBTTagCompound(); - aStack.setTagCompound(tNBT); + + public static int getDurabilityOfStack(ItemStack aStack) { + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) { + tNBT = new NBTTagCompound(); + aStack.setTagCompound(tNBT); + } + return tNBT.getInteger("advDmg"); } - tNBT.setInteger("pulse", tNBT.getInteger("pulse") + 1); - return false;//(this.pulserate > 0) || (tNBT.getInteger("pulse") % -this.pulserate == 0); - } - - protected void setDurabilityForStack(ItemStack aStack, int aDurability) - { - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) - { - tNBT = new NBTTagCompound(); - aStack.setTagCompound(tNBT); + + protected static int sumUp(int a) { + int b = 0; + for (int c = 1; c <= a; c++) { + b += c; + } + return b; } - tNBT.setInteger("durability", aDurability); + + protected boolean outputPulseForStack(ItemStack aStack) { + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) { + tNBT = new NBTTagCompound(); + aStack.setTagCompound(tNBT); + } + tNBT.setInteger("output", tNBT.getInteger("output") + 1); + return false;//(this.pulserate > 0) || (tNBT.getInteger("output") % -this.pulserate == 0); + } + + protected boolean incrementPulseForStack(ItemStack aStack) { + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) { + tNBT = new NBTTagCompound(); + aStack.setTagCompound(tNBT); + } + tNBT.setInteger("pulse", tNBT.getInteger("pulse") + 1); + return false;//(this.pulserate > 0) || (tNBT.getInteger("pulse") % -this.pulserate == 0); + } + + protected void setDurabilityForStack(ItemStack aStack, int aDurability) { + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) { + tNBT = new NBTTagCompound(); + aStack.setTagCompound(tNBT); + } + tNBT.setInteger("durability", aDurability); // if (this.maxDelay > 0) // { // double var4 = (this.maxDelay - aDurability) / this.maxDelay; @@ -65,97 +73,65 @@ public class GT_RadioactiveCell_Item // } // aStack.setItemDamage(aStack.getMaxDamage() - var6); // } - } - - public static int getDurabilityOfStack(ItemStack aStack) - { - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) - { - tNBT = new NBTTagCompound(); - aStack.setTagCompound(tNBT); } - return tNBT.getInteger("advDmg"); - } - - public int getMaxNuclearDurability() - { - return 0;//return this.maxDelay; - } - - public int func_77619_b() - { - return 0; - } - - public boolean isBookEnchantable(ItemStack itemstack1, ItemStack itemstack2) - { - return false; - } - - public boolean func_82789_a(ItemStack par1ItemStack, ItemStack par2ItemStack) - { - return false; - } - - protected static int sumUp(int a) - { - int b = 0; - for (int c = 1; c <= a; c++) { - b += c; + + public int getMaxNuclearDurability() { + return 0;//return this.maxDelay; } - return b; - } - - public void setDamageForStack(ItemStack stack, int advDmg) - { - NBTTagCompound nbtData = StackUtil.getOrCreateNbtData(stack); - nbtData.setInteger("advDmg", advDmg); - if (this.maxDmg > 0) - { - double p = (double)advDmg / (double)this.maxDmg; - int newDmg = (int)(stack.getMaxDamage() * p); - if (newDmg >= stack.getMaxDamage()) { - newDmg = stack.getMaxDamage() - 1; - } - stack.setItemDamage(newDmg); - this.dura = newDmg; + + public int func_77619_b() { + return 0; + } + + public boolean isBookEnchantable(ItemStack itemstack1, ItemStack itemstack2) { + return false; + } + + public boolean func_82789_a(ItemStack par1ItemStack, ItemStack par2ItemStack) { + return false; + } + + public void setDamageForStack(ItemStack stack, int advDmg) { + NBTTagCompound nbtData = StackUtil.getOrCreateNbtData(stack); + nbtData.setInteger("advDmg", advDmg); + if (this.maxDmg > 0) { + double p = (double) advDmg / (double) this.maxDmg; + int newDmg = (int) (stack.getMaxDamage() * p); + if (newDmg >= stack.getMaxDamage()) { + newDmg = stack.getMaxDamage() - 1; + } + stack.setItemDamage(newDmg); + this.dura = newDmg; + } + } + + public int getDamageOfStack(ItemStack stack) { + NBTTagCompound nbtData = StackUtil.getOrCreateNbtData(stack); + this.dura = nbtData.getInteger("advDmg"); + return this.dura; + } + + public int getControlTagOfStack(ItemStack stack) { + NBTTagCompound nbtData = StackUtil.getOrCreateNbtData(stack); + return nbtData.getInteger("tag"); + } + + public void setControlTagOfStack(ItemStack stack, int tag) { + NBTTagCompound nbtData = StackUtil.getOrCreateNbtData(stack); + nbtData.setInteger("tag", tag); + } + + public int getMaxDamageEx() { + return this.maxDmg; + } + + public void damageItemStack(ItemStack stack, int Dmg) { + setDamageForStack(stack, getDamageOfStack(stack) + Dmg); + } + + public void addAdditionalToolTips(List aList, ItemStack aStack) { + super.addAdditionalToolTips(aList, aStack); + //aList.add("Time left: " + (this.maxDelay - getDurabilityOfStack(aStack)) + " secs"); + aList.add("Durability: " + (this.maxDmg - getDurabilityOfStack(aStack)) + "/" + this.maxDmg); } - } - - public int getDamageOfStack(ItemStack stack) - { - NBTTagCompound nbtData = StackUtil.getOrCreateNbtData(stack); - this.dura = nbtData.getInteger("advDmg"); - return this.dura; - } - - public int getControlTagOfStack(ItemStack stack) - { - NBTTagCompound nbtData = StackUtil.getOrCreateNbtData(stack); - return nbtData.getInteger("tag"); - } - - public void setControlTagOfStack(ItemStack stack, int tag) - { - NBTTagCompound nbtData = StackUtil.getOrCreateNbtData(stack); - nbtData.setInteger("tag", tag); - } - - public int getMaxDamageEx() - { - return this.maxDmg; - } - - public void damageItemStack(ItemStack stack, int Dmg) - { - setDamageForStack(stack, getDamageOfStack(stack) + Dmg); - } - - public void addAdditionalToolTips(List aList, ItemStack aStack) - { - super.addAdditionalToolTips(aList, aStack); - //aList.add("Time left: " + (this.maxDelay - getDurabilityOfStack(aStack)) + " secs"); - aList.add("Durability: "+(this.maxDmg - getDurabilityOfStack(aStack))+"/"+this.maxDmg); - } } diff --git a/src/main/java/gregtech/api/items/GT_SolderingTool_Item.java b/src/main/java/gregtech/api/items/GT_SolderingTool_Item.java index 0c8e3a8e..51c300c7 100644 --- a/src/main/java/gregtech/api/items/GT_SolderingTool_Item.java +++ b/src/main/java/gregtech/api/items/GT_SolderingTool_Item.java @@ -1,40 +1,40 @@ package gregtech.api.items; -import static gregtech.api.enums.GT_Values.W; import gregtech.api.GregTech_API; import gregtech.api.enums.ToolDictNames; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_OreDictUnificator; - -import java.util.List; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import java.util.List; + +import static gregtech.api.enums.GT_Values.W; + public class GT_SolderingTool_Item extends GT_Tool_Item { - public GT_SolderingTool_Item(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage, int aDischargedGTID) { - super(aUnlocalized, aEnglish, "To repair and construct Circuitry", aMaxDamage, aEntityDamage, true, -1, aDischargedGTID); - GT_OreDictUnificator.registerOre(ToolDictNames.craftingToolSolderingIron, new ItemStack(this, 1, W)); - GregTech_API.registerSolderingTool(new ItemStack(this, 1, W)); + public GT_SolderingTool_Item(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage, int aDischargedGTID) { + super(aUnlocalized, aEnglish, "To repair and construct Circuitry", aMaxDamage, aEntityDamage, true, -1, aDischargedGTID); + GT_OreDictUnificator.registerOre(ToolDictNames.craftingToolSolderingIron, new ItemStack(this, 1, W)); + GregTech_API.registerSolderingTool(new ItemStack(this, 1, W)); // setCraftingSound(GregTech_API.sSoundList.get(103)); // setBreakingSound(GregTech_API.sSoundList.get(103)); // setEntityHitSound(GregTech_API.sSoundList.get(103)); // setUsageAmounts(1, 1, 1); - } - - @Override - public void addAdditionalToolTips(List aList, ItemStack aStack) { - aList.add(GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".tooltip_1", "Sets the Strength of outputted Redstone")); - aList.add(GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".tooltip_2", "Needs Soldering Metal in Inventory!")); - } - - @Override + } + + @Override + public void addAdditionalToolTips(List aList, ItemStack aStack) { + aList.add(GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".tooltip_1", "Sets the Strength of outputted Redstone")); + aList.add(GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".tooltip_2", "Needs Soldering Metal in Inventory!")); + } + + @Override public boolean onItemUseFirst(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { - super.onItemUseFirst(aStack, aPlayer, aWorld, aX, aY, aZ, aSide, hitX, hitY, hitZ); - if (aWorld.isRemote) { - return false; - } - return false; + super.onItemUseFirst(aStack, aPlayer, aWorld, aX, aY, aZ, aSide, hitX, hitY, hitZ); + if (aWorld.isRemote) { + return false; + } + return false; } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/items/GT_Spray_Bug_Item.java b/src/main/java/gregtech/api/items/GT_Spray_Bug_Item.java index d39d3d67..4bcded8f 100644 --- a/src/main/java/gregtech/api/items/GT_Spray_Bug_Item.java +++ b/src/main/java/gregtech/api/items/GT_Spray_Bug_Item.java @@ -10,9 +10,9 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; public class GT_Spray_Bug_Item extends GT_Tool_Item { - public GT_Spray_Bug_Item(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage) { - super(aUnlocalized, aEnglish, "A very 'buggy' Spray", aMaxDamage, aEntityDamage, true);/* - addToEffectiveList(EntityCaveSpider.class.getName()); + public GT_Spray_Bug_Item(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage) { + super(aUnlocalized, aEnglish, "A very 'buggy' Spray", aMaxDamage, aEntityDamage, true);/* + addToEffectiveList(EntityCaveSpider.class.getName()); addToEffectiveList(EntitySpider.class.getName()); addToEffectiveList("EntityTFHedgeSpider"); addToEffectiveList("EntityTFKingSpider"); @@ -24,43 +24,44 @@ public class GT_Spray_Bug_Item extends GT_Tool_Item { setBreakingSound(GregTech_API.sSoundList.get(102)); setEntityHitSound(GregTech_API.sSoundList.get(102)); setUsageAmounts(8, 4, 1);*/ - } - /* - @Override - public void onHitEntity(Entity aEntity) { - if (aEntity instanceof EntityLiving) { - ((EntityLiving)aEntity).addPotionEffect(new PotionEffect(Potion.poison.getId(), 60, 1, false)); - ((EntityLiving)aEntity).addPotionEffect(new PotionEffect(Potion.confusion.getId(), 600, 1, false)); - } - } - - @Override - public ItemStack getEmptiedItem(ItemStack aStack) { - return ItemList.Spray_Empty.get(1); - } - */ - @Override + } + + /* + @Override + public void onHitEntity(Entity aEntity) { + if (aEntity instanceof EntityLiving) { + ((EntityLiving)aEntity).addPotionEffect(new PotionEffect(Potion.poison.getId(), 60, 1, false)); + ((EntityLiving)aEntity).addPotionEffect(new PotionEffect(Potion.confusion.getId(), 600, 1, false)); + } + } + + @Override + public ItemStack getEmptiedItem(ItemStack aStack) { + return ItemList.Spray_Empty.get(1); + } + */ + @Override public boolean onItemUseFirst(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { - super.onItemUseFirst(aStack, aPlayer, aWorld, aX, aY, aZ, aSide, hitX, hitY, hitZ); - if (aWorld.isRemote) { - return false; - } - Block aBlock = aWorld.getBlock(aX, aY, aZ); - if (aBlock == null) return false; + super.onItemUseFirst(aStack, aPlayer, aWorld, aX, aY, aZ, aSide, hitX, hitY, hitZ); + if (aWorld.isRemote) { + return false; + } + Block aBlock = aWorld.getBlock(aX, aY, aZ); + if (aBlock == null) return false; // byte aMeta = (byte)aWorld.getBlockMetadata(aX, aY, aZ); - TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ); - - try { - if (aTileEntity instanceof ic2.api.crops.ICropTile) { - int tCropBefore = ((ic2.api.crops.ICropTile)aTileEntity).getWeedExStorage(); - if (tCropBefore <= 100 && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { - ((ic2.api.crops.ICropTile)aTileEntity).setWeedExStorage(tCropBefore+100); - GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); - return true; - } - } - } catch (Throwable e) {/*Do nothing*/} - - return false; + TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ); + + try { + if (aTileEntity instanceof ic2.api.crops.ICropTile) { + int tCropBefore = ((ic2.api.crops.ICropTile) aTileEntity).getWeedExStorage(); + if (tCropBefore <= 100 && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { + ((ic2.api.crops.ICropTile) aTileEntity).setWeedExStorage(tCropBefore + 100); + GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); + return true; + } + } + } catch (Throwable e) {/*Do nothing*/} + + return false; } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/items/GT_Spray_Foam_Item.java b/src/main/java/gregtech/api/items/GT_Spray_Foam_Item.java index 20f2971e..afd964f3 100644 --- a/src/main/java/gregtech/api/items/GT_Spray_Foam_Item.java +++ b/src/main/java/gregtech/api/items/GT_Spray_Foam_Item.java @@ -1,6 +1,5 @@ package gregtech.api.items; -import static gregtech.api.enums.GT_Values.D1; import gregtech.api.GregTech_API; import gregtech.api.metatileentity.BaseMetaPipeEntity; import gregtech.api.util.GT_Log; @@ -15,146 +14,158 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import static gregtech.api.enums.GT_Values.D1; + public class GT_Spray_Foam_Item extends GT_Tool_Item { - public GT_Spray_Foam_Item(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage) { - super(aUnlocalized, aEnglish, "Precision Spray", aMaxDamage, aEntityDamage, true);/* - setCraftingSound(GregTech_API.sSoundList.get(102)); + public GT_Spray_Foam_Item(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage) { + super(aUnlocalized, aEnglish, "Precision Spray", aMaxDamage, aEntityDamage, true);/* + setCraftingSound(GregTech_API.sSoundList.get(102)); setBreakingSound(GregTech_API.sSoundList.get(102)); setEntityHitSound(GregTech_API.sSoundList.get(102)); setUsageAmounts(25, 3, 1);*/ - } - /* - @Override - public ItemStack getEmptiedItem(ItemStack aStack) { - return ItemList.Spray_Empty.get(1); - } - - public void switchMode(ItemStack aStack, EntityPlayer aPlayer) { + } + + /* + @Override + public ItemStack getEmptiedItem(ItemStack aStack) { + return ItemList.Spray_Empty.get(1); + } + + public void switchMode(ItemStack aStack, EntityPlayer aPlayer) { setMode(aStack, (getMode(aStack) + 1) % 3); switch (getMode(aStack)) { case 0: GT_Utility.sendChatToPlayer(aPlayer, "Single Block Mode"); break; case 1: GT_Utility.sendChatToPlayer(aPlayer, "4m Line Mode"); break; case 2: GT_Utility.sendChatToPlayer(aPlayer, "3mx3m Area Mode"); break; } - } - - @Override - public void addAdditionalToolTips(List aList, ItemStack aStack) { - super.addAdditionalToolTips(aList, aStack); + } + + @Override + public void addAdditionalToolTips(List aList, ItemStack aStack) { + super.addAdditionalToolTips(aList, aStack); switch (getMode(aStack)) { case 0: aList.add("Single Block Mode"); break; case 1: aList.add("4m Line Mode"); break; case 2: aList.add("3mx3m Area Mode"); break; } - } - - @Override + } + + @Override public ItemStack onItemRightClick(ItemStack aStack, World aWorld, EntityPlayer aPlayer) { - if (aPlayer.isSneaking()) switchMode(aStack, aPlayer); + if (aPlayer.isSneaking()) switchMode(aStack, aPlayer); return super.onItemRightClick(aStack, aWorld, aPlayer); } - */ - @Override + */ + @Override public boolean onItemUseFirst(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { - super.onItemUseFirst(aStack, aPlayer, aWorld, aX, aY, aZ, aSide, hitX, hitY, hitZ); - if (aPlayer.isSneaking()) return false; - if (aWorld.isRemote) { - return false; - } - Block aBlock = aWorld.getBlock(aX, aY, aZ); - if (aBlock == null) return false; + super.onItemUseFirst(aStack, aPlayer, aWorld, aX, aY, aZ, aSide, hitX, hitY, hitZ); + if (aPlayer.isSneaking()) return false; + if (aWorld.isRemote) { + return false; + } + Block aBlock = aWorld.getBlock(aX, aY, aZ); + if (aBlock == null) return false; // byte aMeta = (byte)aWorld.getBlockMetadata(aX, aY, aZ); - TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ); - - try { - if (GT_Utility.getClassName(aTileEntity).startsWith("TileEntityCable")) { - if (GT_Utility.getPublicField(aTileEntity, "foamed").getByte(aTileEntity) == 0) { - if (GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { - GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); - GT_Utility.callPublicMethod(aTileEntity, "changeFoam", (byte)1); - return true; - } - } - return false; - } - } catch(Throwable e) { - if (D1) e.printStackTrace(GT_Log.err); - } - - if (aTileEntity instanceof BaseMetaPipeEntity && (((BaseMetaPipeEntity)aTileEntity).mConnections & -64) == 0) { - if (GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { - GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); - ((BaseMetaPipeEntity)aTileEntity).mConnections |= 64; - } - return true; - } - - aX += ForgeDirection.getOrientation(aSide).offsetX; - aY += ForgeDirection.getOrientation(aSide).offsetY; - aZ += ForgeDirection.getOrientation(aSide).offsetZ; - - ItemStack tStack = GT_ModHandler.getIC2Item("constructionFoam", 1); - if (tStack != null && tStack.getItem() instanceof ItemBlock) { + TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ); + + try { + if (GT_Utility.getClassName(aTileEntity).startsWith("TileEntityCable")) { + if (GT_Utility.getPublicField(aTileEntity, "foamed").getByte(aTileEntity) == 0) { + if (GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { + GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); + GT_Utility.callPublicMethod(aTileEntity, "changeFoam", (byte) 1); + return true; + } + } + return false; + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + + if (aTileEntity instanceof BaseMetaPipeEntity && (((BaseMetaPipeEntity) aTileEntity).mConnections & -64) == 0) { + if (GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { + GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); + ((BaseMetaPipeEntity) aTileEntity).mConnections |= 64; + } + return true; + } + + aX += ForgeDirection.getOrientation(aSide).offsetX; + aY += ForgeDirection.getOrientation(aSide).offsetY; + aZ += ForgeDirection.getOrientation(aSide).offsetZ; + + ItemStack tStack = GT_ModHandler.getIC2Item("constructionFoam", 1); + if (tStack != null && tStack.getItem() instanceof ItemBlock) { int tRotationPitch = Math.round(aPlayer.rotationPitch); byte tSide = 0; if (tRotationPitch >= 65) { - tSide = 1; + tSide = 1; } else if (tRotationPitch <= -65) { - tSide = 0; + tSide = 0; } else { switch (MathHelper.floor_double((aPlayer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3) { - case 0: tSide = 2; break; - case 1: tSide = 5; break; - case 2: tSide = 3; break; - case 3: tSide = 4; break; + case 0: + tSide = 2; + break; + case 1: + tSide = 5; + break; + case 2: + tSide = 3; + break; + case 3: + tSide = 4; + break; } } - switch (0) { - case 0: - if (GT_Utility.isBlockAir(aWorld, aX, aY, aZ) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { - GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); - aWorld.setBlock(aX, aY, aZ, GT_Utility.getBlockFromStack(tStack), tStack.getItemDamage(), 3); - return true; - } - break; - case 1: - for (byte i = 0; i < 4; i++) { - if (GT_Utility.isBlockAir(aWorld, aX, aY, aZ) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { - GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); - aWorld.setBlock(aX, aY, aZ, GT_Utility.getBlockFromStack(tStack), tStack.getItemDamage(), 3); - } else { - if (i == 0) return false; - break; - } - aX -= ForgeDirection.getOrientation(tSide).offsetX; - aY -= ForgeDirection.getOrientation(tSide).offsetY; - aZ -= ForgeDirection.getOrientation(tSide).offsetZ; - } - return true; - case 2: - boolean temp = false, - tXFactor = (ForgeDirection.getOrientation(tSide).offsetX == 0), - tYFactor = (ForgeDirection.getOrientation(tSide).offsetY == 0), - tZFactor = (ForgeDirection.getOrientation(tSide).offsetZ == 0); - - aX -= (tXFactor ? 1 : 0); - aY -= (tYFactor ? 1 : 0); - aZ -= (tZFactor ? 1 : 0); - - for (byte i = 0; i < 3; i++) for (byte j = 0; j < 3; j++) { - if (GT_Utility.isBlockAir(aWorld, aX + (tXFactor?i:0), aY + (!tXFactor&&tYFactor?i:0) + (!tZFactor&&tYFactor?j:0), aZ + (tZFactor?j:0))) { - if (GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { - GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); - aWorld.setBlock(aX + (tXFactor?i:0), aY + (!tXFactor&&tYFactor?i:0) + (!tZFactor&&tYFactor?j:0), aZ + (tZFactor?j:0), GT_Utility.getBlockFromStack(tStack), tStack.getItemDamage(), 3); - temp = true; - } else { - break; - } - } - } - return temp; - } - } - return false; + switch (0) { + case 0: + if (GT_Utility.isBlockAir(aWorld, aX, aY, aZ) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { + GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); + aWorld.setBlock(aX, aY, aZ, GT_Utility.getBlockFromStack(tStack), tStack.getItemDamage(), 3); + return true; + } + break; + case 1: + for (byte i = 0; i < 4; i++) { + if (GT_Utility.isBlockAir(aWorld, aX, aY, aZ) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { + GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); + aWorld.setBlock(aX, aY, aZ, GT_Utility.getBlockFromStack(tStack), tStack.getItemDamage(), 3); + } else { + if (i == 0) return false; + break; + } + aX -= ForgeDirection.getOrientation(tSide).offsetX; + aY -= ForgeDirection.getOrientation(tSide).offsetY; + aZ -= ForgeDirection.getOrientation(tSide).offsetZ; + } + return true; + case 2: + boolean temp = false, + tXFactor = (ForgeDirection.getOrientation(tSide).offsetX == 0), + tYFactor = (ForgeDirection.getOrientation(tSide).offsetY == 0), + tZFactor = (ForgeDirection.getOrientation(tSide).offsetZ == 0); + + aX -= (tXFactor ? 1 : 0); + aY -= (tYFactor ? 1 : 0); + aZ -= (tZFactor ? 1 : 0); + + for (byte i = 0; i < 3; i++) + for (byte j = 0; j < 3; j++) { + if (GT_Utility.isBlockAir(aWorld, aX + (tXFactor ? i : 0), aY + (!tXFactor && tYFactor ? i : 0) + (!tZFactor && tYFactor ? j : 0), aZ + (tZFactor ? j : 0))) { + if (GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { + GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); + aWorld.setBlock(aX + (tXFactor ? i : 0), aY + (!tXFactor && tYFactor ? i : 0) + (!tZFactor && tYFactor ? j : 0), aZ + (tZFactor ? j : 0), GT_Utility.getBlockFromStack(tStack), tStack.getItemDamage(), 3); + temp = true; + } else { + break; + } + } + } + return temp; + } + } + return false; } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/items/GT_Spray_Hardener_Item.java b/src/main/java/gregtech/api/items/GT_Spray_Hardener_Item.java index bd90c295..b9b0b746 100644 --- a/src/main/java/gregtech/api/items/GT_Spray_Hardener_Item.java +++ b/src/main/java/gregtech/api/items/GT_Spray_Hardener_Item.java @@ -1,6 +1,5 @@ package gregtech.api.items; -import static gregtech.api.enums.GT_Values.D1; import gregtech.api.GregTech_API; import gregtech.api.metatileentity.BaseMetaPipeEntity; import gregtech.api.util.GT_Log; @@ -13,58 +12,60 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import static gregtech.api.enums.GT_Values.D1; + public class GT_Spray_Hardener_Item extends GT_Tool_Item { - public GT_Spray_Hardener_Item(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage) { - super(aUnlocalized, aEnglish, "Construction Foam Hardener", aMaxDamage, aEntityDamage, true);/* - setCraftingSound(GregTech_API.sSoundList.get(102)); + public GT_Spray_Hardener_Item(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage) { + super(aUnlocalized, aEnglish, "Construction Foam Hardener", aMaxDamage, aEntityDamage, true);/* + setCraftingSound(GregTech_API.sSoundList.get(102)); setBreakingSound(GregTech_API.sSoundList.get(102)); setEntityHitSound(GregTech_API.sSoundList.get(102)); setUsageAmounts(16, 3, 1);*/ - } - - @Override + } + + @Override public boolean onItemUseFirst(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { - super.onItemUseFirst(aStack, aPlayer, aWorld, aX, aY, aZ, aSide, hitX, hitY, hitZ); - if (aWorld.isRemote) { - return false; - } - Block aBlock = aWorld.getBlock(aX, aY, aZ); - if (aBlock == null) return false; + super.onItemUseFirst(aStack, aPlayer, aWorld, aX, aY, aZ, aSide, hitX, hitY, hitZ); + if (aWorld.isRemote) { + return false; + } + Block aBlock = aWorld.getBlock(aX, aY, aZ); + if (aBlock == null) return false; // byte aMeta = (byte)aWorld.getBlockMetadata(aX, aY, aZ); - TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ); - - try { - if (GT_Utility.getClassName(aTileEntity).startsWith("TileEntityCable")) { - if (GT_Utility.getPublicField(aTileEntity, "foamed").getByte(aTileEntity) == 1) { - if (GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { - GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); - GT_Utility.callPublicMethod(aTileEntity, "changeFoam", (byte)2); - return true; - } - } - return false; - } - } catch(Throwable e) { - if (D1) e.printStackTrace(GT_Log.err); - } - - ItemStack tStack1 = GT_ModHandler.getIC2Item("constructionFoam", 1), tStack2 = GT_ModHandler.getIC2Item("constructionFoamWall", 1); - if (tStack1 != null && tStack1.isItemEqual(new ItemStack(aBlock)) && tStack2 != null && tStack2.getItem() != null && tStack2.getItem() instanceof ItemBlock) { - if (GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { - GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); - aWorld.setBlock(aX, aY, aZ, GT_Utility.getBlockFromStack(tStack2), 7, 3); - } - return true; - } - - if (aTileEntity instanceof BaseMetaPipeEntity && (((BaseMetaPipeEntity)aTileEntity).mConnections & -64) == 64) { - if (GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { - GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); - ((BaseMetaPipeEntity)aTileEntity).mConnections = (byte)((((BaseMetaPipeEntity)aTileEntity).mConnections & ~64) | -128); - } - return true; - } - - return false; + TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ); + + try { + if (GT_Utility.getClassName(aTileEntity).startsWith("TileEntityCable")) { + if (GT_Utility.getPublicField(aTileEntity, "foamed").getByte(aTileEntity) == 1) { + if (GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { + GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); + GT_Utility.callPublicMethod(aTileEntity, "changeFoam", (byte) 2); + return true; + } + } + return false; + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + + ItemStack tStack1 = GT_ModHandler.getIC2Item("constructionFoam", 1), tStack2 = GT_ModHandler.getIC2Item("constructionFoamWall", 1); + if (tStack1 != null && tStack1.isItemEqual(new ItemStack(aBlock)) && tStack2 != null && tStack2.getItem() != null && tStack2.getItem() instanceof ItemBlock) { + if (GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { + GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); + aWorld.setBlock(aX, aY, aZ, GT_Utility.getBlockFromStack(tStack2), 7, 3); + } + return true; + } + + if (aTileEntity instanceof BaseMetaPipeEntity && (((BaseMetaPipeEntity) aTileEntity).mConnections & -64) == 64) { + if (GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { + GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); + ((BaseMetaPipeEntity) aTileEntity).mConnections = (byte) ((((BaseMetaPipeEntity) aTileEntity).mConnections & ~64) | -128); + } + return true; + } + + return false; } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/items/GT_Spray_Hydration_Item.java b/src/main/java/gregtech/api/items/GT_Spray_Hydration_Item.java index 2fbc1f38..cb3368b6 100644 --- a/src/main/java/gregtech/api/items/GT_Spray_Hydration_Item.java +++ b/src/main/java/gregtech/api/items/GT_Spray_Hydration_Item.java @@ -11,43 +11,43 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; public class GT_Spray_Hydration_Item extends GT_Tool_Item { - public GT_Spray_Hydration_Item(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage) { - super(aUnlocalized, aEnglish, "To hydrate Crops and similar", aMaxDamage, aEntityDamage, true);/* - setCraftingSound(GregTech_API.sSoundList.get(102)); + public GT_Spray_Hydration_Item(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage) { + super(aUnlocalized, aEnglish, "To hydrate Crops and similar", aMaxDamage, aEntityDamage, true);/* + setCraftingSound(GregTech_API.sSoundList.get(102)); setBreakingSound(GregTech_API.sSoundList.get(102)); setEntityHitSound(GregTech_API.sSoundList.get(102)); setUsageAmounts(20, 3, 1);*/ - } - - @Override + } + + @Override public boolean onItemUseFirst(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { - super.onItemUseFirst(aStack, aPlayer, aWorld, aX, aY, aZ, aSide, hitX, hitY, hitZ); - if (aWorld.isRemote) { - return false; - } - Block aBlock = aWorld.getBlock(aX, aY, aZ); - if (aBlock == null) return false; + super.onItemUseFirst(aStack, aPlayer, aWorld, aX, aY, aZ, aSide, hitX, hitY, hitZ); + if (aWorld.isRemote) { + return false; + } + Block aBlock = aWorld.getBlock(aX, aY, aZ); + if (aBlock == null) return false; // byte aMeta = (byte)aWorld.getBlockMetadata(aX, aY, aZ); - TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ); - - try { - if (aTileEntity instanceof ic2.api.crops.ICropTile) { - int tCropBefore = ((ic2.api.crops.ICropTile)aTileEntity).getHydrationStorage(); - if (tCropBefore <= 100 && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { - ((ic2.api.crops.ICropTile)aTileEntity).setHydrationStorage(tCropBefore+100); - GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); - } - return true; - } - } catch (Throwable e) {/*Do nothing*/} - - if (aTileEntity instanceof IGregTechTileEntity) { - if (((IGregTechTileEntity)aTileEntity).getColorization() >= 0 && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { - ((IGregTechTileEntity)aTileEntity).setColorization((byte)-1); - GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); - } - } - - return false; + TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ); + + try { + if (aTileEntity instanceof ic2.api.crops.ICropTile) { + int tCropBefore = ((ic2.api.crops.ICropTile) aTileEntity).getHydrationStorage(); + if (tCropBefore <= 100 && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { + ((ic2.api.crops.ICropTile) aTileEntity).setHydrationStorage(tCropBefore + 100); + GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); + } + return true; + } + } catch (Throwable e) {/*Do nothing*/} + + if (aTileEntity instanceof IGregTechTileEntity) { + if (((IGregTechTileEntity) aTileEntity).getColorization() >= 0 && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { + ((IGregTechTileEntity) aTileEntity).setColorization((byte) -1); + GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); + } + } + + return false; } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/items/GT_Spray_Ice_Item.java b/src/main/java/gregtech/api/items/GT_Spray_Ice_Item.java index 2e8c4ed0..dfc43906 100644 --- a/src/main/java/gregtech/api/items/GT_Spray_Ice_Item.java +++ b/src/main/java/gregtech/api/items/GT_Spray_Ice_Item.java @@ -1,14 +1,10 @@ package gregtech.api.items; -import static gregtech.api.enums.GT_Values.W; import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; - -import java.util.Arrays; - import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; @@ -16,10 +12,14 @@ import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.Arrays; + +import static gregtech.api.enums.GT_Values.W; + public class GT_Spray_Ice_Item extends GT_Tool_Item { - public GT_Spray_Ice_Item(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage) { - super(aUnlocalized, aEnglish, "Very effective against Slimes", aMaxDamage, aEntityDamage, true);/* - addToEffectiveList(EntitySlime.class.getName()); + public GT_Spray_Ice_Item(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage) { + super(aUnlocalized, aEnglish, "Very effective against Slimes", aMaxDamage, aEntityDamage, true);/* + addToEffectiveList(EntitySlime.class.getName()); addToEffectiveList("BlueSlime"); addToEffectiveList("SlimeClone"); addToEffectiveList("MetalSlime"); @@ -30,11 +30,11 @@ public class GT_Spray_Ice_Item extends GT_Tool_Item { setBreakingSound(GregTech_API.sSoundList.get(102)); setEntityHitSound(GregTech_API.sSoundList.get(102)); setUsageAmounts(4, 16, 1);*/ - - for (Object tName : Arrays.asList(OrePrefixes.bucket.get(Materials.Water), OrePrefixes.cell.get(Materials.Water), OrePrefixes.capsule.get(Materials.Water))) { - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.ice, 1, 0), new Object[] {new ItemStack(this, 1, W), tName}); - } - } + + for (Object tName : Arrays.asList(OrePrefixes.bucket.get(Materials.Water), OrePrefixes.cell.get(Materials.Water), OrePrefixes.capsule.get(Materials.Water))) { + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.ice, 1, 0), new Object[]{new ItemStack(this, 1, W), tName}); + } + } /* @Override public void onHitEntity(Entity aEntity) { @@ -44,38 +44,38 @@ public class GT_Spray_Ice_Item extends GT_Tool_Item { } } */ - - @Override + + @Override public boolean onItemUseFirst(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { - super.onItemUseFirst(aStack, aPlayer, aWorld, aX, aY, aZ, aSide, hitX, hitY, hitZ); - if (aWorld.isRemote) { - return false; - } - aX += ForgeDirection.getOrientation(aSide).offsetX; - aY += ForgeDirection.getOrientation(aSide).offsetY; - aZ += ForgeDirection.getOrientation(aSide).offsetZ; - Block aBlock = aWorld.getBlock(aX, aY, aZ); - if (aBlock == null) return false; - byte aMeta = (byte)aWorld.getBlockMetadata(aX, aY, aZ); + super.onItemUseFirst(aStack, aPlayer, aWorld, aX, aY, aZ, aSide, hitX, hitY, hitZ); + if (aWorld.isRemote) { + return false; + } + aX += ForgeDirection.getOrientation(aSide).offsetX; + aY += ForgeDirection.getOrientation(aSide).offsetY; + aZ += ForgeDirection.getOrientation(aSide).offsetZ; + Block aBlock = aWorld.getBlock(aX, aY, aZ); + if (aBlock == null) return false; + byte aMeta = (byte) aWorld.getBlockMetadata(aX, aY, aZ); // TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ); - - if (aBlock == Blocks.water || aBlock == Blocks.flowing_water) { - if (aMeta == 0 && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { - GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); - aWorld.setBlock(aX, aY, aZ, Blocks.ice, 0, 3); - return true; - } - return false; - } - - if (aBlock == Blocks.lava || aBlock == Blocks.flowing_lava) { - if (aMeta == 0 && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { - GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); - aWorld.setBlock(aX, aY, aZ, Blocks.obsidian, 0, 3); - return true; - } - return false; - } - return false; + + if (aBlock == Blocks.water || aBlock == Blocks.flowing_water) { + if (aMeta == 0 && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { + GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); + aWorld.setBlock(aX, aY, aZ, Blocks.ice, 0, 3); + return true; + } + return false; + } + + if (aBlock == Blocks.lava || aBlock == Blocks.flowing_lava) { + if (aMeta == 0 && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) { + GT_Utility.sendSoundToPlayers(aWorld, GregTech_API.sSoundList.get(102), 1.0F, -1, aX, aY, aZ); + aWorld.setBlock(aX, aY, aZ, Blocks.obsidian, 0, 3); + return true; + } + return false; + } + return false; } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/items/GT_Spray_Pepper_Item.java b/src/main/java/gregtech/api/items/GT_Spray_Pepper_Item.java index 65f74691..b186cca4 100644 --- a/src/main/java/gregtech/api/items/GT_Spray_Pepper_Item.java +++ b/src/main/java/gregtech/api/items/GT_Spray_Pepper_Item.java @@ -1,29 +1,28 @@ package gregtech.api.items; import gregtech.api.util.GT_LanguageManager; - -import java.util.List; - import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import java.util.List; + public class GT_Spray_Pepper_Item extends GT_Tool_Item { - public GT_Spray_Pepper_Item(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage) { - super(aUnlocalized, aEnglish, "To defend yourself against Bears", aMaxDamage, aEntityDamage, true);/* - setCraftingSound(GregTech_API.sSoundList.get(102)); + public GT_Spray_Pepper_Item(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage) { + super(aUnlocalized, aEnglish, "To defend yourself against Bears", aMaxDamage, aEntityDamage, true);/* + setCraftingSound(GregTech_API.sSoundList.get(102)); setBreakingSound(GregTech_API.sSoundList.get(102)); setEntityHitSound(GregTech_API.sSoundList.get(102)); setUsageAmounts(1, 8, 1);*/ - } - - @Override - public void addAdditionalToolTips(List aList, ItemStack aStack) { - aList.add(GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".tooltip_1", "especially Pedobears, Care Bears,")); - aList.add(GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".tooltip_2", "Confession Bears, Bear Grylls")); - aList.add(GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".tooltip_3", "And ofcourse Man-Bear-Pig")); - } + } + + @Override + public void addAdditionalToolTips(List aList, ItemStack aStack) { + aList.add(GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".tooltip_1", "especially Pedobears, Care Bears,")); + aList.add(GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".tooltip_2", "Confession Bears, Bear Grylls")); + aList.add(GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".tooltip_3", "And ofcourse Man-Bear-Pig")); + } /* @Override public void onHitEntity(Entity aEntity) { @@ -35,18 +34,18 @@ public class GT_Spray_Pepper_Item extends GT_Tool_Item { } } */ - - @Override + + @Override public boolean onItemUseFirst(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { - super.onItemUseFirst(aStack, aPlayer, aWorld, aX, aY, aZ, aSide, hitX, hitY, hitZ); - if (aWorld.isRemote) { - return false; - } - Block aBlock = aWorld.getBlock(aX, aY, aZ); - if (aBlock == null) return false; + super.onItemUseFirst(aStack, aPlayer, aWorld, aX, aY, aZ, aSide, hitX, hitY, hitZ); + if (aWorld.isRemote) { + return false; + } + Block aBlock = aWorld.getBlock(aX, aY, aZ); + if (aBlock == null) return false; // byte aMeta = (byte)aWorld.getBlockMetadata(aX, aY, aZ); // TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ); - - return false; + + return false; } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/items/GT_Tool_Item.java b/src/main/java/gregtech/api/items/GT_Tool_Item.java index 6c61d596..c6670349 100644 --- a/src/main/java/gregtech/api/items/GT_Tool_Item.java +++ b/src/main/java/gregtech/api/items/GT_Tool_Item.java @@ -6,20 +6,20 @@ import gregtech.api.util.GT_ModHandler; * This is just a basic Tool, which has normal durability and could break Blocks. */ public class GT_Tool_Item extends GT_Generic_Item { - public GT_Tool_Item(String aUnlocalized, String aEnglish, String aTooltip, int aMaxDamage, int aEntityDamage, boolean aSwingIfUsed) { - this(aUnlocalized, aEnglish, aTooltip, aMaxDamage, aEntityDamage, aSwingIfUsed, -1, -1); - } - - public GT_Tool_Item(String aUnlocalized, String aEnglish, String aTooltip, int aMaxDamage, int aEntityDamage, boolean aSwingIfUsed, int aChargedGTID, int aDisChargedGTID) { - this(aUnlocalized, aEnglish, aTooltip, aMaxDamage, aEntityDamage, aSwingIfUsed, aChargedGTID, aDisChargedGTID, 0, 0.0F); - } - - public GT_Tool_Item(String aUnlocalized, String aEnglish, String aTooltip, int aMaxDamage, int aEntityDamage, boolean aSwingIfUsed, int aChargedGTID, int aDisChargedGTID, int aToolQuality, float aToolStrength) { - super(aUnlocalized, aEnglish, aTooltip, aTooltip != null && !aTooltip.equals("Doesn't work as intended, this is a Bug")); - setMaxDamage(aMaxDamage); - setMaxStackSize(1); - setNoRepair(); - setFull3D(); - GT_ModHandler.registerBoxableItemToToolBox(this); - } + public GT_Tool_Item(String aUnlocalized, String aEnglish, String aTooltip, int aMaxDamage, int aEntityDamage, boolean aSwingIfUsed) { + this(aUnlocalized, aEnglish, aTooltip, aMaxDamage, aEntityDamage, aSwingIfUsed, -1, -1); + } + + public GT_Tool_Item(String aUnlocalized, String aEnglish, String aTooltip, int aMaxDamage, int aEntityDamage, boolean aSwingIfUsed, int aChargedGTID, int aDisChargedGTID) { + this(aUnlocalized, aEnglish, aTooltip, aMaxDamage, aEntityDamage, aSwingIfUsed, aChargedGTID, aDisChargedGTID, 0, 0.0F); + } + + public GT_Tool_Item(String aUnlocalized, String aEnglish, String aTooltip, int aMaxDamage, int aEntityDamage, boolean aSwingIfUsed, int aChargedGTID, int aDisChargedGTID, int aToolQuality, float aToolStrength) { + super(aUnlocalized, aEnglish, aTooltip, aTooltip != null && !aTooltip.equals("Doesn't work as intended, this is a Bug")); + setMaxDamage(aMaxDamage); + setMaxStackSize(1); + setNoRepair(); + setFull3D(); + GT_ModHandler.registerBoxableItemToToolBox(this); + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java index 4244753b..7af0c9ad 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java +++ b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java @@ -1,6 +1,5 @@ package gregtech.api.metatileentity; -import static gregtech.api.enums.GT_Values.NW; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; @@ -10,11 +9,6 @@ import gregtech.api.interfaces.tileentity.IPipeRenderedTileEntity; import gregtech.api.net.GT_Packet_TileEntity; import gregtech.api.objects.GT_ItemStack; import gregtech.api.util.*; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -30,987 +24,1292 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTankInfo; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import static gregtech.api.enums.GT_Values.NW; + /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* This is the main TileEntity for EVERYTHING. */ public class BaseMetaPipeEntity extends BaseTileEntity implements IGregTechTileEntity, IPipeRenderedTileEntity { - public byte mConnections = 0; - - protected MetaPipeEntity mMetaTileEntity; - - private byte[] mSidedRedstone = new byte[] {0,0,0,0,0,0}; - private int[] mCoverSides = new int[] {0,0,0,0,0,0}, mCoverData = new int[] {0,0,0,0,0,0}, mTimeStatistics = new int[GregTech_API.TICKS_FOR_LAG_AVERAGING]; - private boolean mInventoryChanged = false, mWorkUpdate = false, mWorks = true, mNeedsUpdate = true, mNeedsBlockUpdate = true, mSendClientData = false; - private byte mColor = 0, oColor = 0, mStrongRedstone = 0, oRedstoneData = 63, oTextureData = 0, oUpdateData = 0, mLagWarningCount = 0; - private int oX = 0, oY = 0, oZ = 0, mTimeStatisticsIndex = 0; - private short mID = 0; - private long mTickTimer = 0; - - public BaseMetaPipeEntity() {} - - @Override + private final GT_CoverBehavior[] mCoverBehaviors = new GT_CoverBehavior[]{GregTech_API.sNoBehavior, GregTech_API.sNoBehavior, GregTech_API.sNoBehavior, GregTech_API.sNoBehavior, GregTech_API.sNoBehavior, GregTech_API.sNoBehavior}; + public byte mConnections = 0; + protected MetaPipeEntity mMetaTileEntity; + private byte[] mSidedRedstone = new byte[]{0, 0, 0, 0, 0, 0}; + private int[] mCoverSides = new int[]{0, 0, 0, 0, 0, 0}, mCoverData = new int[]{0, 0, 0, 0, 0, 0}, mTimeStatistics = new int[GregTech_API.TICKS_FOR_LAG_AVERAGING]; + private boolean mInventoryChanged = false, mWorkUpdate = false, mWorks = true, mNeedsUpdate = true, mNeedsBlockUpdate = true, mSendClientData = false; + private byte mColor = 0, oColor = 0, mStrongRedstone = 0, oRedstoneData = 63, oTextureData = 0, oUpdateData = 0, mLagWarningCount = 0; + private int oX = 0, oY = 0, oZ = 0, mTimeStatisticsIndex = 0; + private short mID = 0; + private long mTickTimer = 0; + + public BaseMetaPipeEntity() { + } + + @Override public void writeToNBT(NBTTagCompound aNBT) { - try { - super.writeToNBT(aNBT); - } catch(Throwable e) { - GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); - e.printStackTrace(GT_Log.err); - } - try { - aNBT.setInteger ("mID" , mID); - aNBT.setIntArray ("mCoverData" , mCoverData); - aNBT.setIntArray ("mCoverSides" , mCoverSides); - aNBT.setByteArray ("mRedstoneSided" , mSidedRedstone); - aNBT.setByte ("mConnections" , mConnections); - aNBT.setByte ("mColor" , mColor); - aNBT.setByte ("mStrongRedstone" , mStrongRedstone); - aNBT.setBoolean ("mWorks" , !mWorks); - } catch(Throwable e) { - GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); - e.printStackTrace(GT_Log.err); - } - try { - if (hasValidMetaTileEntity()) { - NBTTagList tItemList = new NBTTagList(); - for (int i = 0; i < mMetaTileEntity.getRealInventory().length; i++) { - ItemStack tStack = mMetaTileEntity.getRealInventory()[i]; - if (tStack != null) { - NBTTagCompound tTag = new NBTTagCompound(); - tTag.setInteger("IntSlot", i); - tStack.writeToNBT(tTag); - tItemList.appendTag(tTag); - } - } - aNBT.setTag("Inventory", tItemList); - - try { - mMetaTileEntity.saveNBTData(aNBT); - } catch(Throwable e) { - GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); - e.printStackTrace(GT_Log.err); - } - } - } catch(Throwable e) { - GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); - e.printStackTrace(GT_Log.err); - } + try { + super.writeToNBT(aNBT); + } catch (Throwable e) { + GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); + e.printStackTrace(GT_Log.err); + } + try { + aNBT.setInteger("mID", mID); + aNBT.setIntArray("mCoverData", mCoverData); + aNBT.setIntArray("mCoverSides", mCoverSides); + aNBT.setByteArray("mRedstoneSided", mSidedRedstone); + aNBT.setByte("mConnections", mConnections); + aNBT.setByte("mColor", mColor); + aNBT.setByte("mStrongRedstone", mStrongRedstone); + aNBT.setBoolean("mWorks", !mWorks); + } catch (Throwable e) { + GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); + e.printStackTrace(GT_Log.err); + } + try { + if (hasValidMetaTileEntity()) { + NBTTagList tItemList = new NBTTagList(); + for (int i = 0; i < mMetaTileEntity.getRealInventory().length; i++) { + ItemStack tStack = mMetaTileEntity.getRealInventory()[i]; + if (tStack != null) { + NBTTagCompound tTag = new NBTTagCompound(); + tTag.setInteger("IntSlot", i); + tStack.writeToNBT(tTag); + tItemList.appendTag(tTag); + } + } + aNBT.setTag("Inventory", tItemList); + + try { + mMetaTileEntity.saveNBTData(aNBT); + } catch (Throwable e) { + GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); + e.printStackTrace(GT_Log.err); + } + } + } catch (Throwable e) { + GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); + e.printStackTrace(GT_Log.err); + } } - - @Override - public void readFromNBT(NBTTagCompound aNBT) { - super.readFromNBT(aNBT); - setInitialValuesAsNBT(aNBT, (short)0); + + @Override + public void readFromNBT(NBTTagCompound aNBT) { + super.readFromNBT(aNBT); + setInitialValuesAsNBT(aNBT, (short) 0); } - - @Override - public void setInitialValuesAsNBT(NBTTagCompound aNBT, short aID) { - if (aNBT == null) { - if (aID>0) mID=aID; else mID=mID>0?mID:0; - if (mID!=0) createNewMetatileEntity(mID); - } else { - if (aID<=0) mID = (short)aNBT.getInteger ("mID"); else mID = aID; - mCoverSides = aNBT.getIntArray ("mCoverSides"); - mCoverData = aNBT.getIntArray ("mCoverData"); - mSidedRedstone = aNBT.getByteArray ("mRedstoneSided"); - mConnections = aNBT.getByte ("mConnections"); - mColor = aNBT.getByte ("mColor"); - mStrongRedstone = aNBT.getByte ("mStrongRedstone"); - mWorks =!aNBT.getBoolean ("mWorks"); - - if (mCoverData.length != 6) mCoverData = new int[] { 0, 0, 0, 0, 0, 0}; - if (mCoverSides.length != 6) mCoverSides = new int[] { 0, 0, 0, 0, 0, 0}; - if (mSidedRedstone.length != 6) mSidedRedstone = new byte[] { 0, 0, 0, 0, 0, 0}; - - for (byte i = 0; i < 6; i++) mCoverBehaviors[i] = GregTech_API.getCoverBehavior(mCoverSides[i]); - - if (mID!=0 && createNewMetatileEntity(mID)) { - NBTTagList tItemList = aNBT.getTagList("Inventory", 10); - for (int i = 0; i < tItemList.tagCount(); i++) { - NBTTagCompound tTag = tItemList.getCompoundTagAt(i); - int tSlot = tTag.getInteger("IntSlot"); - if (tSlot >= 0 && tSlot < mMetaTileEntity.getRealInventory().length) { - mMetaTileEntity.getRealInventory()[tSlot] = GT_Utility.loadItem(tTag); - } - } - - try { - mMetaTileEntity.loadNBTData(aNBT); - } catch(Throwable e) { - GT_Log.err.println("Encountered Exception while loading MetaTileEntity, the Server should've crashed now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); - e.printStackTrace(GT_Log.err); - } - } - } - - if (mCoverData.length != 6) mCoverData = new int[] { 0, 0, 0, 0, 0, 0}; - if (mCoverSides.length != 6) mCoverSides = new int[] { 0, 0, 0, 0, 0, 0}; - if (mSidedRedstone.length != 6) mSidedRedstone = new byte[] { 0, 0, 0, 0, 0, 0}; - - for (byte i = 0; i < 6; i++) mCoverBehaviors[i] = GregTech_API.getCoverBehavior(mCoverSides[i]); - } - - private boolean createNewMetatileEntity(short aID) { - if (aID <= 0 || aID >= GregTech_API.METATILEENTITIES.length || GregTech_API.METATILEENTITIES[aID] == null) { - GT_Log.err.println("MetaID " + aID + " not loadable => locking TileEntity!"); - } else { - if (aID != 0) { - if (hasValidMetaTileEntity()) mMetaTileEntity.setBaseMetaTileEntity(null); - GregTech_API.METATILEENTITIES[aID].newMetaEntity(this).setBaseMetaTileEntity(this); - mTickTimer = 0; - mID = aID; - return true; - } - } - return false; - } - - @Override + + @Override + public void setInitialValuesAsNBT(NBTTagCompound aNBT, short aID) { + if (aNBT == null) { + if (aID > 0) mID = aID; + else mID = mID > 0 ? mID : 0; + if (mID != 0) createNewMetatileEntity(mID); + } else { + if (aID <= 0) mID = (short) aNBT.getInteger("mID"); + else mID = aID; + mCoverSides = aNBT.getIntArray("mCoverSides"); + mCoverData = aNBT.getIntArray("mCoverData"); + mSidedRedstone = aNBT.getByteArray("mRedstoneSided"); + mConnections = aNBT.getByte("mConnections"); + mColor = aNBT.getByte("mColor"); + mStrongRedstone = aNBT.getByte("mStrongRedstone"); + mWorks = !aNBT.getBoolean("mWorks"); + + if (mCoverData.length != 6) mCoverData = new int[]{0, 0, 0, 0, 0, 0}; + if (mCoverSides.length != 6) mCoverSides = new int[]{0, 0, 0, 0, 0, 0}; + if (mSidedRedstone.length != 6) mSidedRedstone = new byte[]{0, 0, 0, 0, 0, 0}; + + for (byte i = 0; i < 6; i++) mCoverBehaviors[i] = GregTech_API.getCoverBehavior(mCoverSides[i]); + + if (mID != 0 && createNewMetatileEntity(mID)) { + NBTTagList tItemList = aNBT.getTagList("Inventory", 10); + for (int i = 0; i < tItemList.tagCount(); i++) { + NBTTagCompound tTag = tItemList.getCompoundTagAt(i); + int tSlot = tTag.getInteger("IntSlot"); + if (tSlot >= 0 && tSlot < mMetaTileEntity.getRealInventory().length) { + mMetaTileEntity.getRealInventory()[tSlot] = GT_Utility.loadItem(tTag); + } + } + + try { + mMetaTileEntity.loadNBTData(aNBT); + } catch (Throwable e) { + GT_Log.err.println("Encountered Exception while loading MetaTileEntity, the Server should've crashed now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); + e.printStackTrace(GT_Log.err); + } + } + } + + if (mCoverData.length != 6) mCoverData = new int[]{0, 0, 0, 0, 0, 0}; + if (mCoverSides.length != 6) mCoverSides = new int[]{0, 0, 0, 0, 0, 0}; + if (mSidedRedstone.length != 6) mSidedRedstone = new byte[]{0, 0, 0, 0, 0, 0}; + + for (byte i = 0; i < 6; i++) mCoverBehaviors[i] = GregTech_API.getCoverBehavior(mCoverSides[i]); + } + + private boolean createNewMetatileEntity(short aID) { + if (aID <= 0 || aID >= GregTech_API.METATILEENTITIES.length || GregTech_API.METATILEENTITIES[aID] == null) { + GT_Log.err.println("MetaID " + aID + " not loadable => locking TileEntity!"); + } else { + if (aID != 0) { + if (hasValidMetaTileEntity()) mMetaTileEntity.setBaseMetaTileEntity(null); + GregTech_API.METATILEENTITIES[aID].newMetaEntity(this).setBaseMetaTileEntity(this); + mTickTimer = 0; + mID = aID; + return true; + } + } + return false; + } + + @Override public void updateEntity() { - super.updateEntity(); - - if (!hasValidMetaTileEntity()) { - if (mMetaTileEntity == null) return; - mMetaTileEntity.setBaseMetaTileEntity(this); - } - - long tTime = System.currentTimeMillis(); - - for (int tCode = 0; hasValidMetaTileEntity() && tCode >= 0;) {try {switch (tCode) { - case 0: - tCode++; - if (mTickTimer++==0) { - oX = xCoord; - oY = yCoord; - oZ = zCoord; - if (isServerSide()) for (byte i = 0; i < 6; i++) if (getCoverIDAtSide(i)!=0) if (!mMetaTileEntity.allowCoverOnSide(i, new GT_ItemStack(getCoverIDAtSide(i)))) dropCover(i, i, true); - worldObj.markTileEntityChunkModified(xCoord, yCoord, zCoord, this); - mMetaTileEntity.onFirstTick(this); - if (!hasValidMetaTileEntity()) return; - } - case 1: - tCode++; - if (isClientSide()) { - if (mColor != oColor) { - mMetaTileEntity.onColorChangeClient(oColor = mColor); - issueTextureUpdate(); - } - - if (mNeedsUpdate) { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - //worldObj.func_147479_m(xCoord, yCoord, zCoord); - mNeedsUpdate = false; - } - } - case 2: case 3: case 4: case 5: case 6: case 7: - if (isServerSide() && mTickTimer > 10) { - for (byte i = (byte)(tCode-2); i < 6; i++) if (getCoverIDAtSide(i) != 0) { - tCode++; - GT_CoverBehavior tCover = getCoverBehaviorAtSide(i); - int tCoverTickRate = tCover.getTickRate(i, getCoverIDAtSide(i), mCoverData[i], this); - if (tCoverTickRate > 0 && mTickTimer % tCoverTickRate == 0) { - mCoverData[i] = tCover.doCoverThings(i, getInputRedstoneSignal(i), getCoverIDAtSide(i), mCoverData[i], this, mTickTimer); - if (!hasValidMetaTileEntity()) return; - } - } - mConnections = (byte)(mMetaTileEntity.mConnections | (mConnections & ~63)); - if ((mConnections & -64) == 64 && getRandomNumber(1000) == 0) { - mConnections = (byte)((mConnections & ~64) | -128); - } - } - case 8: - tCode=9; - mMetaTileEntity.onPreTick(this, mTickTimer); - if (!hasValidMetaTileEntity()) return; - case 9: - tCode++; - if (isServerSide()) { - if (mTickTimer == 10) { - for (byte i = 0; i < 6; i++) mCoverBehaviors[i] = GregTech_API.getCoverBehavior(mCoverSides[i]); - issueBlockUpdate(); - } - - if (xCoord != oX || yCoord != oY || zCoord != oZ) { - oX = xCoord; - oY = yCoord; - oZ = zCoord; - issueClientUpdate(); - clearTileEntityBuffer(); - } - } - case 10: - tCode++; - mMetaTileEntity.onPostTick(this, mTickTimer); - if (!hasValidMetaTileEntity()) return; - case 11: - tCode++; - if (isServerSide()) { - if (mTickTimer % 10 == 0) { - if (mSendClientData) { - NW.sendPacketToAllPlayersInRange(worldObj, new GT_Packet_TileEntity(xCoord, (short)yCoord, zCoord, mID, mCoverSides[0], mCoverSides[1], mCoverSides[2], mCoverSides[3], mCoverSides[4], mCoverSides[5], oTextureData = mConnections, oUpdateData = hasValidMetaTileEntity()?mMetaTileEntity.getUpdateData():0, oRedstoneData = (byte)(((mSidedRedstone[0]>0)?1:0)|((mSidedRedstone[1]>0)?2:0)|((mSidedRedstone[2]>0)?4:0)|((mSidedRedstone[3]>0)?8:0)|((mSidedRedstone[4]>0)?16:0)|((mSidedRedstone[5]>0)?32:0)), oColor = mColor), xCoord, zCoord); - mSendClientData = false; - } - } - - if (mTickTimer > 10) { - if (mConnections != oTextureData) sendBlockEvent((byte)0, oTextureData = mConnections); - byte tData = mMetaTileEntity.getUpdateData(); - if (tData != oUpdateData) sendBlockEvent((byte)1, oUpdateData = tData); - if (mColor != oColor) sendBlockEvent((byte)2, oColor = mColor); - tData = (byte)(((mSidedRedstone[0]>0)?1:0)|((mSidedRedstone[1]>0)?2:0)|((mSidedRedstone[2]>0)?4:0)|((mSidedRedstone[3]>0)?8:0)|((mSidedRedstone[4]>0)?16:0)|((mSidedRedstone[5]>0)?32:0)); - if (tData != oRedstoneData) sendBlockEvent((byte)3, oRedstoneData = tData); - } - - if (mNeedsBlockUpdate) { - worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockOffset(0, 0, 0)); - mNeedsBlockUpdate = false; - } - } - default: - tCode = -1; - break; - }} catch (Throwable e) { - GT_Log.err.println("Encountered Exception while ticking MetaTileEntity in Step "+(tCode-1)+". The Game should've crashed now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); - e.printStackTrace(GT_Log.err); - }} - - if (isServerSide() && hasValidMetaTileEntity()) { - tTime = System.currentTimeMillis() - tTime; - if (mTimeStatistics.length > 0) mTimeStatistics[mTimeStatisticsIndex = (mTimeStatisticsIndex + 1) % mTimeStatistics.length] = (int)tTime; - if (tTime > 0 && tTime > GregTech_API.MILLISECOND_THRESHOLD_UNTIL_LAG_WARNING && mTickTimer > 1000 && getMetaTileEntity().doTickProfilingMessageDuringThisTick() && mLagWarningCount++<10) System.out.println("WARNING: Possible Lag Source at [" + xCoord + ", " + yCoord + ", " + zCoord + "] in Dimension " + worldObj.provider.dimensionId + " with " + tTime + "ms caused by an instance of " + getMetaTileEntity().getClass()); - } - - mWorkUpdate = mInventoryChanged = false; + super.updateEntity(); + + if (!hasValidMetaTileEntity()) { + if (mMetaTileEntity == null) return; + mMetaTileEntity.setBaseMetaTileEntity(this); + } + + long tTime = System.currentTimeMillis(); + + for (int tCode = 0; hasValidMetaTileEntity() && tCode >= 0; ) { + try { + switch (tCode) { + case 0: + tCode++; + if (mTickTimer++ == 0) { + oX = xCoord; + oY = yCoord; + oZ = zCoord; + if (isServerSide()) for (byte i = 0; i < 6; i++) + if (getCoverIDAtSide(i) != 0) + if (!mMetaTileEntity.allowCoverOnSide(i, new GT_ItemStack(getCoverIDAtSide(i)))) + dropCover(i, i, true); + worldObj.markTileEntityChunkModified(xCoord, yCoord, zCoord, this); + mMetaTileEntity.onFirstTick(this); + if (!hasValidMetaTileEntity()) return; + } + case 1: + tCode++; + if (isClientSide()) { + if (mColor != oColor) { + mMetaTileEntity.onColorChangeClient(oColor = mColor); + issueTextureUpdate(); + } + + if (mNeedsUpdate) { + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + //worldObj.func_147479_m(xCoord, yCoord, zCoord); + mNeedsUpdate = false; + } + } + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + if (isServerSide() && mTickTimer > 10) { + for (byte i = (byte) (tCode - 2); i < 6; i++) + if (getCoverIDAtSide(i) != 0) { + tCode++; + GT_CoverBehavior tCover = getCoverBehaviorAtSide(i); + int tCoverTickRate = tCover.getTickRate(i, getCoverIDAtSide(i), mCoverData[i], this); + if (tCoverTickRate > 0 && mTickTimer % tCoverTickRate == 0) { + mCoverData[i] = tCover.doCoverThings(i, getInputRedstoneSignal(i), getCoverIDAtSide(i), mCoverData[i], this, mTickTimer); + if (!hasValidMetaTileEntity()) return; + } + } + mConnections = (byte) (mMetaTileEntity.mConnections | (mConnections & ~63)); + if ((mConnections & -64) == 64 && getRandomNumber(1000) == 0) { + mConnections = (byte) ((mConnections & ~64) | -128); + } + } + case 8: + tCode = 9; + mMetaTileEntity.onPreTick(this, mTickTimer); + if (!hasValidMetaTileEntity()) return; + case 9: + tCode++; + if (isServerSide()) { + if (mTickTimer == 10) { + for (byte i = 0; i < 6; i++) + mCoverBehaviors[i] = GregTech_API.getCoverBehavior(mCoverSides[i]); + issueBlockUpdate(); + } + + if (xCoord != oX || yCoord != oY || zCoord != oZ) { + oX = xCoord; + oY = yCoord; + oZ = zCoord; + issueClientUpdate(); + clearTileEntityBuffer(); + } + } + case 10: + tCode++; + mMetaTileEntity.onPostTick(this, mTickTimer); + if (!hasValidMetaTileEntity()) return; + case 11: + tCode++; + if (isServerSide()) { + if (mTickTimer % 10 == 0) { + if (mSendClientData) { + NW.sendPacketToAllPlayersInRange(worldObj, new GT_Packet_TileEntity(xCoord, (short) yCoord, zCoord, mID, mCoverSides[0], mCoverSides[1], mCoverSides[2], mCoverSides[3], mCoverSides[4], mCoverSides[5], oTextureData = mConnections, oUpdateData = hasValidMetaTileEntity() ? mMetaTileEntity.getUpdateData() : 0, oRedstoneData = (byte) (((mSidedRedstone[0] > 0) ? 1 : 0) | ((mSidedRedstone[1] > 0) ? 2 : 0) | ((mSidedRedstone[2] > 0) ? 4 : 0) | ((mSidedRedstone[3] > 0) ? 8 : 0) | ((mSidedRedstone[4] > 0) ? 16 : 0) | ((mSidedRedstone[5] > 0) ? 32 : 0)), oColor = mColor), xCoord, zCoord); + mSendClientData = false; + } + } + + if (mTickTimer > 10) { + if (mConnections != oTextureData) sendBlockEvent((byte) 0, oTextureData = mConnections); + byte tData = mMetaTileEntity.getUpdateData(); + if (tData != oUpdateData) sendBlockEvent((byte) 1, oUpdateData = tData); + if (mColor != oColor) sendBlockEvent((byte) 2, oColor = mColor); + tData = (byte) (((mSidedRedstone[0] > 0) ? 1 : 0) | ((mSidedRedstone[1] > 0) ? 2 : 0) | ((mSidedRedstone[2] > 0) ? 4 : 0) | ((mSidedRedstone[3] > 0) ? 8 : 0) | ((mSidedRedstone[4] > 0) ? 16 : 0) | ((mSidedRedstone[5] > 0) ? 32 : 0)); + if (tData != oRedstoneData) sendBlockEvent((byte) 3, oRedstoneData = tData); + } + + if (mNeedsBlockUpdate) { + worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockOffset(0, 0, 0)); + mNeedsBlockUpdate = false; + } + } + default: + tCode = -1; + break; + } + } catch (Throwable e) { + GT_Log.err.println("Encountered Exception while ticking MetaTileEntity in Step " + (tCode - 1) + ". The Game should've crashed now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); + e.printStackTrace(GT_Log.err); + } + } + + if (isServerSide() && hasValidMetaTileEntity()) { + tTime = System.currentTimeMillis() - tTime; + if (mTimeStatistics.length > 0) + mTimeStatistics[mTimeStatisticsIndex = (mTimeStatisticsIndex + 1) % mTimeStatistics.length] = (int) tTime; + if (tTime > 0 && tTime > GregTech_API.MILLISECOND_THRESHOLD_UNTIL_LAG_WARNING && mTickTimer > 1000 && getMetaTileEntity().doTickProfilingMessageDuringThisTick() && mLagWarningCount++ < 10) + System.out.println("WARNING: Possible Lag Source at [" + xCoord + ", " + yCoord + ", " + zCoord + "] in Dimension " + worldObj.provider.dimensionId + " with " + tTime + "ms caused by an instance of " + getMetaTileEntity().getClass()); + } + + mWorkUpdate = mInventoryChanged = false; } - - @Override + + @Override public Packet getDescriptionPacket() { - issueClientUpdate(); + issueClientUpdate(); return null; } - - public final void receiveMetaTileEntityData(short aID, int aCover0, int aCover1, int aCover2, int aCover3, int aCover4, int aCover5, byte aTextureData, byte aUpdateData, byte aRedstoneData, byte aColorData) { - issueTextureUpdate(); - if (mID != aID && aID > 0) { - mID = aID; - createNewMetatileEntity(mID); - } - - mCoverSides[0] = aCover0; - mCoverSides[1] = aCover1; - mCoverSides[2] = aCover2; - mCoverSides[3] = aCover3; - mCoverSides[4] = aCover4; - mCoverSides[5] = aCover5; - - for (byte i = 0; i < 6; i++) mCoverBehaviors[i] = GregTech_API.getCoverBehavior(mCoverSides[i]); - - receiveClientEvent(0, aTextureData); - receiveClientEvent(1, aUpdateData); - receiveClientEvent(2, aColorData); - receiveClientEvent(3, aRedstoneData); - } - + + public final void receiveMetaTileEntityData(short aID, int aCover0, int aCover1, int aCover2, int aCover3, int aCover4, int aCover5, byte aTextureData, byte aUpdateData, byte aRedstoneData, byte aColorData) { + issueTextureUpdate(); + if (mID != aID && aID > 0) { + mID = aID; + createNewMetatileEntity(mID); + } + + mCoverSides[0] = aCover0; + mCoverSides[1] = aCover1; + mCoverSides[2] = aCover2; + mCoverSides[3] = aCover3; + mCoverSides[4] = aCover4; + mCoverSides[5] = aCover5; + + for (byte i = 0; i < 6; i++) mCoverBehaviors[i] = GregTech_API.getCoverBehavior(mCoverSides[i]); + + receiveClientEvent(0, aTextureData); + receiveClientEvent(1, aUpdateData); + receiveClientEvent(2, aColorData); + receiveClientEvent(3, aRedstoneData); + } + @Override public boolean receiveClientEvent(int aEventID, int aValue) { - super.receiveClientEvent(aEventID, aValue); - - if (hasValidMetaTileEntity()) { - try { - mMetaTileEntity.receiveClientEvent((byte)aEventID, (byte)aValue); - } catch(Throwable e) { - GT_Log.err.println("Encountered Exception while receiving Data from the Server, the Client should've been crashed by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); - e.printStackTrace(GT_Log.err); - } - } - - if (isClientSide()) { - issueTextureUpdate(); - switch(aEventID) { - case 0: - mConnections = (byte)aValue; - break; - case 1: - if (hasValidMetaTileEntity()) mMetaTileEntity.onValueUpdate((byte)aValue); - break; - case 2: - if (aValue > 16 || aValue < 0) aValue = 0; - mColor = (byte)aValue; - break; - case 3: - mSidedRedstone[0] = (byte)((aValue& 1)>0?15:0); - mSidedRedstone[1] = (byte)((aValue& 2)>0?15:0); - mSidedRedstone[2] = (byte)((aValue& 4)>0?15:0); - mSidedRedstone[3] = (byte)((aValue& 8)>0?15:0); - mSidedRedstone[4] = (byte)((aValue&16)>0?15:0); - mSidedRedstone[5] = (byte)((aValue&32)>0?15:0); - break; - case 4: - if (hasValidMetaTileEntity() && mTickTimer > 20) mMetaTileEntity.doSound((byte)aValue, xCoord+0.5, yCoord+0.5, zCoord+0.5); - break; - case 5: - if (hasValidMetaTileEntity() && mTickTimer > 20) mMetaTileEntity.startSoundLoop((byte)aValue, xCoord+0.5, yCoord+0.5, zCoord+0.5); - break; - case 6: - if (hasValidMetaTileEntity() && mTickTimer > 20) mMetaTileEntity.stopSoundLoop((byte)aValue, xCoord+0.5, yCoord+0.5, zCoord+0.5); - break; - } - } - return true; - } - - public ArrayList getDebugInfo(EntityPlayer aPlayer, int aLogLevel) { - ArrayList tList = new ArrayList(); - if (aLogLevel > 2) { - tList.add("Meta-ID: " + mID + (hasValidMetaTileEntity()?" valid":" invalid") + (mMetaTileEntity==null?" MetaTileEntity == null!":" ")); - } - if (aLogLevel > 1) { - if (mTimeStatistics.length > 0) { - double tAverageTime = 0; for (int tTime : mTimeStatistics) tAverageTime += tTime; - tList.add("This particular TileEntity has caused an average CPU-load of ~" + (tAverageTime/mTimeStatistics.length) + "ms over the last " + mTimeStatistics.length + " ticks."); - } - if (mLagWarningCount > 0) { - tList.add("This TileEntity has also caused " + (mLagWarningCount>=10?"more than 10":mLagWarningCount) + " Lag Spike Warnings (anything taking longer than " + GregTech_API.MILLISECOND_THRESHOLD_UNTIL_LAG_WARNING + "ms) on the Server."); - } - tList.add("Is" + (mMetaTileEntity.isAccessAllowed(aPlayer)?" ":" not ") + "accessible for you"); - } - return mMetaTileEntity.getSpecialDebugInfo(this, aPlayer, aLogLevel, tList); - } - - @Override public void issueTextureUpdate() {mNeedsUpdate = true;} - @Override public void issueBlockUpdate() {mNeedsBlockUpdate = true;} - @Override public void issueClientUpdate() {mSendClientData = true;} - @Override public void issueCoverUpdate(byte aSide) {issueClientUpdate();} - - @Override public byte getStrongestRedstone() {return (byte)Math.max(getInternalInputRedstoneSignal((byte)0), Math.max(getInternalInputRedstoneSignal((byte)1), Math.max(getInternalInputRedstoneSignal((byte)2), Math.max(getInternalInputRedstoneSignal((byte)3), Math.max(getInternalInputRedstoneSignal((byte)4), getInternalInputRedstoneSignal((byte)5))))));} - - @Override public boolean getRedstone() {return getRedstone((byte)0)||getRedstone((byte)1)||getRedstone((byte)2)||getRedstone((byte)3)||getRedstone((byte)4)||getRedstone((byte)5);} - @Override public boolean getRedstone(byte aSide) {return getInternalInputRedstoneSignal(aSide) > 0;} - - public ITexture getCoverTexture(byte aSide) {return GregTech_API.sCovers.get(new GT_ItemStack(getCoverIDAtSide(aSide)));} - - @Override public boolean isGivingInformation() {if (canAccessData()) return mMetaTileEntity.isGivingInformation(); return false;} - @Override public boolean isValidFacing(byte aSide) {if (canAccessData()) return mMetaTileEntity.isFacingValid(aSide); return false;} - @Override public byte getBackFacing() {return GT_Utility.getOppositeSide(getFrontFacing());} - @Override public byte getFrontFacing() {return 6;} - @Override public void setFrontFacing(byte aFacing) {/*Do nothing*/} - @Override public int getSizeInventory() {if (canAccessData()) return mMetaTileEntity.getSizeInventory(); return 0;} - @Override public ItemStack getStackInSlot(int aIndex) {if (canAccessData()) return mMetaTileEntity.getStackInSlot(aIndex); return null;} - @Override public void setInventorySlotContents(int aIndex, ItemStack aStack) {mInventoryChanged = true; if (canAccessData()) mMetaTileEntity.setInventorySlotContents(aIndex, worldObj.isRemote?aStack:GT_OreDictUnificator.setStack(true, aStack));} - @Override public String getInventoryName() {if (canAccessData()) return mMetaTileEntity.getInventoryName(); if (GregTech_API.METATILEENTITIES[mID] != null) return GregTech_API.METATILEENTITIES[mID].getInventoryName(); return "";} - @Override public int getInventoryStackLimit() {if (canAccessData()) return mMetaTileEntity.getInventoryStackLimit(); return 64;} - @Override public void openInventory() {/*Do nothing*/} - @Override public void closeInventory() {/*Do nothing*/} - @Override public boolean isUseableByPlayer(EntityPlayer aPlayer) {return hasValidMetaTileEntity() && mTickTimer>40 && getTileEntityOffset(0, 0, 0) == this && aPlayer.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 64 && mMetaTileEntity.isAccessAllowed(aPlayer);} - @Override public void validate() {super.validate(); mTickTimer = 0;} - @Override public void invalidate() {tileEntityInvalid = false; if (hasValidMetaTileEntity()) {mMetaTileEntity.onRemoval(); mMetaTileEntity.setBaseMetaTileEntity(null);} super.invalidate();} - @Override public void onChunkUnload() {super.onChunkUnload();} - @Override public boolean hasCustomInventoryName() {return false;} - @Override public ItemStack getStackInSlotOnClosing(int slot) {ItemStack stack = getStackInSlot(slot); if (stack != null) setInventorySlotContents(slot, null); return stack;} - @Override public void onMachineBlockUpdate() {if (canAccessData()) mMetaTileEntity.onMachineBlockUpdate();} - @Override public int getProgress() {return canAccessData()?mMetaTileEntity.getProgresstime():0;} - @Override public int getMaxProgress() {return canAccessData()?mMetaTileEntity.maxProgresstime():0;} - @Override public boolean increaseProgress(int aProgressAmountInTicks) {return canAccessData()?mMetaTileEntity.increaseProgress(aProgressAmountInTicks)!=aProgressAmountInTicks:false;} - @Override public boolean hasThingsToDo() {return getMaxProgress()>0;} - @Override public void enableWorking() {if (!mWorks) mWorkUpdate = true; mWorks = true;} - @Override public void disableWorking() {mWorks = false;} - @Override public boolean isAllowedToWork() {return mWorks;} - @Override public boolean hasWorkJustBeenEnabled() {return mWorkUpdate;} - @Override public void setWorkDataValue(byte aValue) {/*Do nothing*/} - @Override public byte getWorkDataValue() {return 0;} - @Override public int getMetaTileID() {return mID;} - @Override public int setMetaTileID(short aID) {return mID = aID;} - @Override public boolean isActive() {return false;} - @Override public void setActive(boolean aActive) {/*Do nothing*/} - @Override public long getTimer() {return mTickTimer;} - @Override public boolean decreaseStoredEnergyUnits(long aEnergy, boolean aIgnoreTooLessEnergy) {return false;} - @Override public boolean increaseStoredEnergyUnits(long aEnergy, boolean aIgnoreTooMuchEnergy) {return false;} - @Override public boolean inputEnergyFrom(byte aSide) {return false;} - @Override public boolean outputsEnergyTo(byte aSide) {return false;} - @Override public long getOutputAmperage() {return 0;} - @Override public long getOutputVoltage() {return 0;} - @Override public long getInputAmperage() {return 0;} - @Override public long getInputVoltage() {return 0;} - @Override public boolean increaseStoredSteam(long aEnergy, boolean aIgnoreTooMuchEnergy) {return false;} - @Override public String[] getDescription() {if (canAccessData()) return mMetaTileEntity.getDescription(); return new String[0];} - @Override public boolean isValidSlot(int aIndex) {if (canAccessData()) return mMetaTileEntity.isValidSlot(aIndex); return false;} - @Override public long getUniversalEnergyStored() {return Math.max(getStoredEU(), getStoredSteam());} - @Override public long getUniversalEnergyCapacity() {return Math.max(getEUCapacity(), getSteamCapacity());} - @Override public long getStoredEU() {return 0;} - @Override public long getEUCapacity() {return 0;} - @Override public long getStoredSteam() {return 0;} - @Override public long getSteamCapacity() {return 0;} - @Override public ITexture[] getTexture(byte aSide) {ITexture rIcon = getCoverTexture(aSide); if (rIcon != null) return new ITexture[] {rIcon}; return getTextureUncovered(aSide);} - @Override public ITexture[] getTextureUncovered(byte aSide) {if ((mConnections & 64) != 0) return Textures.BlockIcons.FRESHFOAM; if ((mConnections & -128) != 0) return Textures.BlockIcons.HARDENEDFOAMS[mColor]; if ((mConnections & -64) != 0) return Textures.BlockIcons.ERROR_RENDERING; byte tConnections = mConnections; if (tConnections == 1 || tConnections == 2) tConnections = 3; else if (tConnections == 4 || tConnections == 8) tConnections = 12; else if (tConnections == 16 || tConnections == 32) tConnections = 48; if (hasValidMetaTileEntity()) return mMetaTileEntity.getTexture(this, aSide, tConnections, (byte)(mColor-1), tConnections == 0 || (tConnections & (1<0); return Textures.BlockIcons.ERROR_RENDERING;} - - protected boolean hasValidMetaTileEntity() {return mMetaTileEntity != null && mMetaTileEntity.getBaseMetaTileEntity() == this;} - protected boolean canAccessData() {return !isDead && hasValidMetaTileEntity();} - + super.receiveClientEvent(aEventID, aValue); + + if (hasValidMetaTileEntity()) { + try { + mMetaTileEntity.receiveClientEvent((byte) aEventID, (byte) aValue); + } catch (Throwable e) { + GT_Log.err.println("Encountered Exception while receiving Data from the Server, the Client should've been crashed by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); + e.printStackTrace(GT_Log.err); + } + } + + if (isClientSide()) { + issueTextureUpdate(); + switch (aEventID) { + case 0: + mConnections = (byte) aValue; + break; + case 1: + if (hasValidMetaTileEntity()) mMetaTileEntity.onValueUpdate((byte) aValue); + break; + case 2: + if (aValue > 16 || aValue < 0) aValue = 0; + mColor = (byte) aValue; + break; + case 3: + mSidedRedstone[0] = (byte) ((aValue & 1) > 0 ? 15 : 0); + mSidedRedstone[1] = (byte) ((aValue & 2) > 0 ? 15 : 0); + mSidedRedstone[2] = (byte) ((aValue & 4) > 0 ? 15 : 0); + mSidedRedstone[3] = (byte) ((aValue & 8) > 0 ? 15 : 0); + mSidedRedstone[4] = (byte) ((aValue & 16) > 0 ? 15 : 0); + mSidedRedstone[5] = (byte) ((aValue & 32) > 0 ? 15 : 0); + break; + case 4: + if (hasValidMetaTileEntity() && mTickTimer > 20) + mMetaTileEntity.doSound((byte) aValue, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); + break; + case 5: + if (hasValidMetaTileEntity() && mTickTimer > 20) + mMetaTileEntity.startSoundLoop((byte) aValue, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); + break; + case 6: + if (hasValidMetaTileEntity() && mTickTimer > 20) + mMetaTileEntity.stopSoundLoop((byte) aValue, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); + break; + } + } + return true; + } + + public ArrayList getDebugInfo(EntityPlayer aPlayer, int aLogLevel) { + ArrayList tList = new ArrayList(); + if (aLogLevel > 2) { + tList.add("Meta-ID: " + mID + (hasValidMetaTileEntity() ? " valid" : " invalid") + (mMetaTileEntity == null ? " MetaTileEntity == null!" : " ")); + } + if (aLogLevel > 1) { + if (mTimeStatistics.length > 0) { + double tAverageTime = 0; + for (int tTime : mTimeStatistics) tAverageTime += tTime; + tList.add("This particular TileEntity has caused an average CPU-load of ~" + (tAverageTime / mTimeStatistics.length) + "ms over the last " + mTimeStatistics.length + " ticks."); + } + if (mLagWarningCount > 0) { + tList.add("This TileEntity has also caused " + (mLagWarningCount >= 10 ? "more than 10" : mLagWarningCount) + " Lag Spike Warnings (anything taking longer than " + GregTech_API.MILLISECOND_THRESHOLD_UNTIL_LAG_WARNING + "ms) on the Server."); + } + tList.add("Is" + (mMetaTileEntity.isAccessAllowed(aPlayer) ? " " : " not ") + "accessible for you"); + } + return mMetaTileEntity.getSpecialDebugInfo(this, aPlayer, aLogLevel, tList); + } + + @Override + public void issueTextureUpdate() { + mNeedsUpdate = true; + } + + @Override + public void issueBlockUpdate() { + mNeedsBlockUpdate = true; + } + + @Override + public void issueClientUpdate() { + mSendClientData = true; + } + + @Override + public void issueCoverUpdate(byte aSide) { + issueClientUpdate(); + } + + @Override + public byte getStrongestRedstone() { + return (byte) Math.max(getInternalInputRedstoneSignal((byte) 0), Math.max(getInternalInputRedstoneSignal((byte) 1), Math.max(getInternalInputRedstoneSignal((byte) 2), Math.max(getInternalInputRedstoneSignal((byte) 3), Math.max(getInternalInputRedstoneSignal((byte) 4), getInternalInputRedstoneSignal((byte) 5)))))); + } + + @Override + public boolean getRedstone() { + return getRedstone((byte) 0) || getRedstone((byte) 1) || getRedstone((byte) 2) || getRedstone((byte) 3) || getRedstone((byte) 4) || getRedstone((byte) 5); + } + + @Override + public boolean getRedstone(byte aSide) { + return getInternalInputRedstoneSignal(aSide) > 0; + } + + public ITexture getCoverTexture(byte aSide) { + return GregTech_API.sCovers.get(new GT_ItemStack(getCoverIDAtSide(aSide))); + } + + @Override + public boolean isGivingInformation() { + if (canAccessData()) return mMetaTileEntity.isGivingInformation(); + return false; + } + + @Override + public boolean isValidFacing(byte aSide) { + if (canAccessData()) return mMetaTileEntity.isFacingValid(aSide); + return false; + } + + @Override + public byte getBackFacing() { + return GT_Utility.getOppositeSide(getFrontFacing()); + } + + @Override + public byte getFrontFacing() { + return 6; + } + + @Override + public void setFrontFacing(byte aFacing) {/*Do nothing*/} + + @Override + public int getSizeInventory() { + if (canAccessData()) return mMetaTileEntity.getSizeInventory(); + return 0; + } + + @Override + public ItemStack getStackInSlot(int aIndex) { + if (canAccessData()) return mMetaTileEntity.getStackInSlot(aIndex); + return null; + } + + @Override + public void setInventorySlotContents(int aIndex, ItemStack aStack) { + mInventoryChanged = true; + if (canAccessData()) + mMetaTileEntity.setInventorySlotContents(aIndex, worldObj.isRemote ? aStack : GT_OreDictUnificator.setStack(true, aStack)); + } + + @Override + public String getInventoryName() { + if (canAccessData()) return mMetaTileEntity.getInventoryName(); + if (GregTech_API.METATILEENTITIES[mID] != null) return GregTech_API.METATILEENTITIES[mID].getInventoryName(); + return ""; + } + + @Override + public int getInventoryStackLimit() { + if (canAccessData()) return mMetaTileEntity.getInventoryStackLimit(); + return 64; + } + + @Override + public void openInventory() {/*Do nothing*/} + + @Override + public void closeInventory() {/*Do nothing*/} + + @Override + public boolean isUseableByPlayer(EntityPlayer aPlayer) { + return hasValidMetaTileEntity() && mTickTimer > 40 && getTileEntityOffset(0, 0, 0) == this && aPlayer.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 64 && mMetaTileEntity.isAccessAllowed(aPlayer); + } + + @Override + public void validate() { + super.validate(); + mTickTimer = 0; + } + + @Override + public void invalidate() { + tileEntityInvalid = false; + if (hasValidMetaTileEntity()) { + mMetaTileEntity.onRemoval(); + mMetaTileEntity.setBaseMetaTileEntity(null); + } + super.invalidate(); + } + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + } + + @Override + public boolean hasCustomInventoryName() { + return false; + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot) { + ItemStack stack = getStackInSlot(slot); + if (stack != null) setInventorySlotContents(slot, null); + return stack; + } + + @Override + public void onMachineBlockUpdate() { + if (canAccessData()) mMetaTileEntity.onMachineBlockUpdate(); + } + + @Override + public int getProgress() { + return canAccessData() ? mMetaTileEntity.getProgresstime() : 0; + } + + @Override + public int getMaxProgress() { + return canAccessData() ? mMetaTileEntity.maxProgresstime() : 0; + } + + @Override + public boolean increaseProgress(int aProgressAmountInTicks) { + return canAccessData() ? mMetaTileEntity.increaseProgress(aProgressAmountInTicks) != aProgressAmountInTicks : false; + } + + @Override + public boolean hasThingsToDo() { + return getMaxProgress() > 0; + } + + @Override + public void enableWorking() { + if (!mWorks) mWorkUpdate = true; + mWorks = true; + } + + @Override + public void disableWorking() { + mWorks = false; + } + + @Override + public boolean isAllowedToWork() { + return mWorks; + } + + @Override + public boolean hasWorkJustBeenEnabled() { + return mWorkUpdate; + } + + @Override + public byte getWorkDataValue() { + return 0; + } + + @Override + public void setWorkDataValue(byte aValue) {/*Do nothing*/} + + @Override + public int getMetaTileID() { + return mID; + } + + @Override + public int setMetaTileID(short aID) { + return mID = aID; + } + + @Override + public boolean isActive() { + return false; + } + + @Override + public void setActive(boolean aActive) {/*Do nothing*/} + + @Override + public long getTimer() { + return mTickTimer; + } + + @Override + public boolean decreaseStoredEnergyUnits(long aEnergy, boolean aIgnoreTooLessEnergy) { + return false; + } + + @Override + public boolean increaseStoredEnergyUnits(long aEnergy, boolean aIgnoreTooMuchEnergy) { + return false; + } + + @Override + public boolean inputEnergyFrom(byte aSide) { + return false; + } + + @Override + public boolean outputsEnergyTo(byte aSide) { + return false; + } + + @Override + public long getOutputAmperage() { + return 0; + } + + @Override + public long getOutputVoltage() { + return 0; + } + + @Override + public long getInputAmperage() { + return 0; + } + + @Override + public long getInputVoltage() { + return 0; + } + + @Override + public boolean increaseStoredSteam(long aEnergy, boolean aIgnoreTooMuchEnergy) { + return false; + } + + @Override + public String[] getDescription() { + if (canAccessData()) return mMetaTileEntity.getDescription(); + return new String[0]; + } + + @Override + public boolean isValidSlot(int aIndex) { + if (canAccessData()) return mMetaTileEntity.isValidSlot(aIndex); + return false; + } + + @Override + public long getUniversalEnergyStored() { + return Math.max(getStoredEU(), getStoredSteam()); + } + + @Override + public long getUniversalEnergyCapacity() { + return Math.max(getEUCapacity(), getSteamCapacity()); + } + + @Override + public long getStoredEU() { + return 0; + } + + @Override + public long getEUCapacity() { + return 0; + } + + @Override + public long getStoredSteam() { + return 0; + } + + @Override + public long getSteamCapacity() { + return 0; + } + + @Override + public ITexture[] getTexture(byte aSide) { + ITexture rIcon = getCoverTexture(aSide); + if (rIcon != null) return new ITexture[]{rIcon}; + return getTextureUncovered(aSide); + } + + @Override + public ITexture[] getTextureUncovered(byte aSide) { + if ((mConnections & 64) != 0) return Textures.BlockIcons.FRESHFOAM; + if ((mConnections & -128) != 0) return Textures.BlockIcons.HARDENEDFOAMS[mColor]; + if ((mConnections & -64) != 0) return Textures.BlockIcons.ERROR_RENDERING; + byte tConnections = mConnections; + if (tConnections == 1 || tConnections == 2) tConnections = 3; + else if (tConnections == 4 || tConnections == 8) tConnections = 12; + else if (tConnections == 16 || tConnections == 32) tConnections = 48; + if (hasValidMetaTileEntity()) + return mMetaTileEntity.getTexture(this, aSide, tConnections, (byte) (mColor - 1), tConnections == 0 || (tConnections & (1 << aSide)) != 0, getOutputRedstoneSignal(aSide) > 0); + return Textures.BlockIcons.ERROR_RENDERING; + } + + protected boolean hasValidMetaTileEntity() { + return mMetaTileEntity != null && mMetaTileEntity.getBaseMetaTileEntity() == this; + } + + protected boolean canAccessData() { + return !isDead && hasValidMetaTileEntity(); + } + @Override public void doExplosion(long aAmount) { - if (canAccessData()) { - mMetaTileEntity.onExplosion(); - mMetaTileEntity.doExplosion(aAmount); - } - } - - @Override - public ArrayList getDrops() { - ItemStack rStack = new ItemStack(GregTech_API.sBlockMachines, 1, mID); - NBTTagCompound tNBT = new NBTTagCompound(); - if (mStrongRedstone > 0) tNBT.setByte ("mStrongRedstone" , mStrongRedstone); - for (byte i = 0; i < mCoverSides.length; i++) { - if (mCoverSides[i] != 0) { - tNBT.setIntArray("mCoverData" , mCoverData); - tNBT.setIntArray("mCoverSides" , mCoverSides); - break; - } + if (canAccessData()) { + mMetaTileEntity.onExplosion(); + mMetaTileEntity.doExplosion(aAmount); } - if (hasValidMetaTileEntity()) mMetaTileEntity.setItemNBT(tNBT); - if (!tNBT.hasNoTags()) rStack.setTagCompound(tNBT); - return new ArrayList(Arrays.asList(rStack)); - } - - @Override - public boolean onRightclick(EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) { - if (isClientSide()) { - if (getCoverBehaviorAtSide(aSide).onCoverRightclickClient(aSide, this, aPlayer, aX, aY, aZ)) return true; - } - if (isServerSide()) { - ItemStack tCurrentItem = aPlayer.inventory.getCurrentItem(); - if (tCurrentItem != null) { - if (getColorization() >= 0 && GT_Utility.areStacksEqual(new ItemStack(Items.water_bucket, 1), tCurrentItem)) { - tCurrentItem.func_150996_a(Items.bucket); - setColorization((byte)-1); - return true; - } - byte tSide = GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ); - if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sWrenchList)) { - if (mMetaTileEntity.onWrenchRightClick(aSide, tSide, aPlayer, aX, aY, aZ)) { - GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer); - GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(100), 1.0F, -1, xCoord, yCoord, zCoord); - } - return true; - } - if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sScrewdriverList)) { - if (getCoverIDAtSide(aSide) == 0 && getCoverIDAtSide(tSide) != 0) { - if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 200, aPlayer)) { - setCoverDataAtSide(tSide, getCoverBehaviorAtSide(tSide).onCoverScrewdriverclick(tSide, getCoverIDAtSide(tSide), getCoverDataAtSide(tSide), this, aPlayer, 0.5F, 0.5F, 0.5F)); - mMetaTileEntity.onScrewdriverRightClick(tSide, aPlayer, aX, aY, aZ); - GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(100), 1.0F, -1, xCoord, yCoord, zCoord); - } - } else { - if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer)) { - setCoverDataAtSide(aSide, getCoverBehaviorAtSide(aSide).onCoverScrewdriverclick(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this, aPlayer, aX, aY, aZ)); - mMetaTileEntity.onScrewdriverRightClick(aSide, aPlayer, aX, aY, aZ); - GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(100), 1.0F, -1, xCoord, yCoord, zCoord); - } - } - return true; - } - - if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sHardHammerList)) { - //if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer)) { - // GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(1), 1.0F, -1, xCoord, yCoord, zCoord); - //} - return true; - } - - if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sSoftHammerList)) { - if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer)) { - if (mWorks) disableWorking(); else enableWorking(); - GT_Utility.sendChatToPlayer(aPlayer, "Machine Processing: " + (isAllowedToWork()?"Enabled":"Disabled")); - GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(101), 1.0F, -1, xCoord, yCoord, zCoord); - } - return true; - } - - if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sSolderingToolList)) { - if (GT_ModHandler.useSolderingIron(tCurrentItem, aPlayer)) { - mStrongRedstone ^= (1 << tSide); - GT_Utility.sendChatToPlayer(aPlayer, "Redstone Output at Side " + tSide + " set to: " + ((mStrongRedstone & (1 << tSide))!=0?"Strong":"Weak")); - GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(103), 3.0F, -1, xCoord, yCoord, zCoord); - } - return true; - } - - byte cSide = tSide; - if (getCoverIDAtSide(aSide) != 0) cSide = aSide; - - if (getCoverIDAtSide(cSide) == 0) { - if (GregTech_API.sCovers.containsKey(new GT_ItemStack(tCurrentItem))) { - if (GregTech_API.getCoverBehavior(tCurrentItem).isCoverPlaceable(cSide, new GT_ItemStack(tCurrentItem), this) && mMetaTileEntity.allowCoverOnSide(cSide, new GT_ItemStack(tCurrentItem))) { - setCoverItemAtSide(cSide, tCurrentItem); - if (!aPlayer.capabilities.isCreativeMode) tCurrentItem.stackSize--; - GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(100), 1.0F, -1, xCoord, yCoord, zCoord); - } - return true; - } - } else { - if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sCrowbarList)) { - if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer)) { - GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(0), 1.0F, -1, xCoord, yCoord, zCoord); - dropCover(cSide, aSide, false); - } - return true; - } - } - } - - if (getCoverBehaviorAtSide(aSide).onCoverRightclick(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this, aPlayer, aX, aY, aZ)) return true; - } - - if (!getCoverBehaviorAtSide(aSide).isGUIClickable(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this)) return false; - - try { - if (hasValidMetaTileEntity()) return mMetaTileEntity.onRightclick(this, aPlayer, aSide, aX, aY, aZ); - } catch(Throwable e) { - GT_Log.err.println("Encountered Exception while rightclicking TileEntity, the Game should've crashed now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); - e.printStackTrace(GT_Log.err); - } - - return false; - } - - @Override - public void onLeftclick(EntityPlayer aPlayer) { - try { - if (aPlayer != null && hasValidMetaTileEntity()) mMetaTileEntity.onLeftclick(this, aPlayer); - } catch(Throwable e) { - GT_Log.err.println("Encountered Exception while leftclicking TileEntity, the Game should've crashed now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); - e.printStackTrace(GT_Log.err); - } - } - - @Override - public boolean isDigitalChest() { - return false; - } - - @Override - public ItemStack[] getStoredItemData() { - return null; - } - - @Override - public void setItemCount(int aCount) { - // - } - - @Override - public int getMaxItemCount() { - return 0; - } - - /** - * Can put aStack into Slot - */ - @Override - public boolean isItemValidForSlot(int aIndex, ItemStack aStack) { - return canAccessData() && mMetaTileEntity.isItemValidForSlot(aIndex, aStack); - } - - /** - * returns all valid Inventory Slots, no matter which Side (Unless it's covered). - * The Side Stuff is done in the following two Functions. - */ - @Override - public int[] getAccessibleSlotsFromSide(int aSide) { - if (canAccessData() && (getCoverBehaviorAtSide((byte)aSide).letsItemsOut((byte)aSide, getCoverIDAtSide((byte)aSide), getCoverDataAtSide((byte)aSide), -1, this) || getCoverBehaviorAtSide((byte)aSide).letsItemsIn((byte)aSide, getCoverIDAtSide((byte)aSide), getCoverDataAtSide((byte)aSide), -1, this))) return mMetaTileEntity.getAccessibleSlotsFromSide(aSide); - return new int[0]; - } - - /** - * Can put aStack into Slot at Side - */ - @Override - public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) { - return canAccessData() && getCoverBehaviorAtSide((byte)aSide).letsItemsIn ((byte)aSide, getCoverIDAtSide((byte)aSide), getCoverDataAtSide((byte)aSide), aIndex, this) && mMetaTileEntity.canInsertItem(aIndex, aStack, aSide); - } - - /** - * Can pull aStack out of Slot from Side - */ - @Override - public boolean canExtractItem(int aIndex, ItemStack aStack, int aSide) { - return canAccessData() && getCoverBehaviorAtSide((byte)aSide).letsItemsOut((byte)aSide, getCoverIDAtSide((byte)aSide), getCoverDataAtSide((byte)aSide), aIndex, this) && mMetaTileEntity.canExtractItem(aIndex, aStack, aSide); - } - - @Override - public boolean isUpgradable() { - return false; - } - - @Override - public byte getInternalInputRedstoneSignal(byte aSide) { - return (byte)(getCoverBehaviorAtSide(aSide).getRedstoneInput(aSide, getInputRedstoneSignal(aSide), getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this)&15); - } - - @Override - public byte getInputRedstoneSignal(byte aSide) { - return (byte)(worldObj.getIndirectPowerLevelTo(getOffsetX(aSide, 1), getOffsetY(aSide, 1), getOffsetZ(aSide, 1), aSide)&15); - } - - @Override - public byte getOutputRedstoneSignal(byte aSide) { - return (byte)(getCoverBehaviorAtSide(aSide).manipulatesSidedRedstoneOutput(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this) || (getCoverBehaviorAtSide(aSide).letsRedstoneGoOut(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this))?mSidedRedstone[aSide]&15:0); - } - - @Override - public void setInternalOutputRedstoneSignal(byte aSide, byte aStrength) { - if (!getCoverBehaviorAtSide(aSide).manipulatesSidedRedstoneOutput(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this)) setOutputRedstoneSignal(aSide, aStrength); - } - - @Override - public void setOutputRedstoneSignal(byte aSide, byte aStrength) { - aStrength = (byte)Math.min(Math.max(0, aStrength), 15); - if (aSide >= 0 && aSide < 6 && mSidedRedstone[aSide] != aStrength) { - mSidedRedstone[aSide] = aStrength; - issueBlockUpdate(); - } - } - - @Override - public boolean isSteamEngineUpgradable() { - return isUpgradable()&&!hasSteamEngineUpgrade()&&getSteamCapacity()>0; - } - - @Override - public boolean addSteamEngineUpgrade() { - if (isSteamEngineUpgradable()) { - issueBlockUpdate(); - return true; - } - return false; - } - - @Override - public boolean hasSteamEngineUpgrade() { - return false; - } - - @Override - public boolean hasInventoryBeenModified() { - return mInventoryChanged; - } - - @Override - public void setGenericRedstoneOutput(boolean aOnOff) { - // - } - - @Override - public int getErrorDisplayID() { - return 0; - } - - @Override - public void setErrorDisplayID(int aErrorID) { - // - } - - @Override - public IMetaTileEntity getMetaTileEntity() { - return hasValidMetaTileEntity()?mMetaTileEntity:null; - } - - private final GT_CoverBehavior[] mCoverBehaviors = new GT_CoverBehavior[] {GregTech_API.sNoBehavior, GregTech_API.sNoBehavior, GregTech_API.sNoBehavior, GregTech_API.sNoBehavior, GregTech_API.sNoBehavior, GregTech_API.sNoBehavior}; - - @Override - public GT_CoverBehavior getCoverBehaviorAtSide(byte aSide) { - return aSide >= 0 && aSide < mCoverBehaviors.length ? mCoverBehaviors[aSide] : GregTech_API.sNoBehavior; - } - - @Override - public void setCoverIDAtSide(byte aSide, int aID) { - if (aSide >= 0 && aSide < 6) { - mCoverSides[aSide] = aID; - mCoverData[aSide] = 0; - mCoverBehaviors[aSide] = GregTech_API.getCoverBehavior(aID); - issueCoverUpdate(aSide); - issueBlockUpdate(); - } - } - - @Override - public void setCoverItemAtSide(byte aSide, ItemStack aCover) { - GregTech_API.getCoverBehavior(aCover).placeCover(aSide, aCover, this); - } - - @Override - public int getCoverIDAtSide(byte aSide) { - if (aSide >= 0 && aSide < 6) return mCoverSides[aSide]; return 0; - } - - @Override - public ItemStack getCoverItemAtSide(byte aSide) { - return GT_Utility.intToStack(getCoverIDAtSide(aSide)); - } - - @Override - public boolean canPlaceCoverIDAtSide(byte aSide, int aID) { - return getCoverIDAtSide(aSide) == 0; - } - - @Override - public boolean canPlaceCoverItemAtSide(byte aSide, ItemStack aCover) { - return getCoverIDAtSide(aSide) == 0; - } - - @Override - public void setCoverDataAtSide(byte aSide, int aData) { - if (aSide >= 0 && aSide < 6) mCoverData[aSide] = aData; - } - - @Override - public int getCoverDataAtSide(byte aSide) { - if (aSide >= 0 && aSide < 6) return mCoverData[aSide]; - return 0; - } - - @Override - public void setLightValue(byte aLightValue) { - // - } - - @Override - public long getAverageElectricInput() { - return 0; - } - - @Override - public long getAverageElectricOutput() { - return 0; - } + } + + @Override + public ArrayList getDrops() { + ItemStack rStack = new ItemStack(GregTech_API.sBlockMachines, 1, mID); + NBTTagCompound tNBT = new NBTTagCompound(); + if (mStrongRedstone > 0) tNBT.setByte("mStrongRedstone", mStrongRedstone); + for (byte i = 0; i < mCoverSides.length; i++) { + if (mCoverSides[i] != 0) { + tNBT.setIntArray("mCoverData", mCoverData); + tNBT.setIntArray("mCoverSides", mCoverSides); + break; + } + } + if (hasValidMetaTileEntity()) mMetaTileEntity.setItemNBT(tNBT); + if (!tNBT.hasNoTags()) rStack.setTagCompound(tNBT); + return new ArrayList(Arrays.asList(rStack)); + } + + @Override + public boolean onRightclick(EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) { + if (isClientSide()) { + if (getCoverBehaviorAtSide(aSide).onCoverRightclickClient(aSide, this, aPlayer, aX, aY, aZ)) return true; + } + if (isServerSide()) { + ItemStack tCurrentItem = aPlayer.inventory.getCurrentItem(); + if (tCurrentItem != null) { + if (getColorization() >= 0 && GT_Utility.areStacksEqual(new ItemStack(Items.water_bucket, 1), tCurrentItem)) { + tCurrentItem.func_150996_a(Items.bucket); + setColorization((byte) -1); + return true; + } + byte tSide = GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ); + if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sWrenchList)) { + if (mMetaTileEntity.onWrenchRightClick(aSide, tSide, aPlayer, aX, aY, aZ)) { + GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer); + GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(100), 1.0F, -1, xCoord, yCoord, zCoord); + } + return true; + } + if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sScrewdriverList)) { + if (getCoverIDAtSide(aSide) == 0 && getCoverIDAtSide(tSide) != 0) { + if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 200, aPlayer)) { + setCoverDataAtSide(tSide, getCoverBehaviorAtSide(tSide).onCoverScrewdriverclick(tSide, getCoverIDAtSide(tSide), getCoverDataAtSide(tSide), this, aPlayer, 0.5F, 0.5F, 0.5F)); + mMetaTileEntity.onScrewdriverRightClick(tSide, aPlayer, aX, aY, aZ); + GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(100), 1.0F, -1, xCoord, yCoord, zCoord); + } + } else { + if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer)) { + setCoverDataAtSide(aSide, getCoverBehaviorAtSide(aSide).onCoverScrewdriverclick(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this, aPlayer, aX, aY, aZ)); + mMetaTileEntity.onScrewdriverRightClick(aSide, aPlayer, aX, aY, aZ); + GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(100), 1.0F, -1, xCoord, yCoord, zCoord); + } + } + return true; + } + + if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sHardHammerList)) { + //if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer)) { + // GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(1), 1.0F, -1, xCoord, yCoord, zCoord); + //} + return true; + } + + if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sSoftHammerList)) { + if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer)) { + if (mWorks) disableWorking(); + else enableWorking(); + GT_Utility.sendChatToPlayer(aPlayer, "Machine Processing: " + (isAllowedToWork() ? "Enabled" : "Disabled")); + GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(101), 1.0F, -1, xCoord, yCoord, zCoord); + } + return true; + } + + if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sSolderingToolList)) { + if (GT_ModHandler.useSolderingIron(tCurrentItem, aPlayer)) { + mStrongRedstone ^= (1 << tSide); + GT_Utility.sendChatToPlayer(aPlayer, "Redstone Output at Side " + tSide + " set to: " + ((mStrongRedstone & (1 << tSide)) != 0 ? "Strong" : "Weak")); + GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(103), 3.0F, -1, xCoord, yCoord, zCoord); + } + return true; + } + + byte cSide = tSide; + if (getCoverIDAtSide(aSide) != 0) cSide = aSide; + + if (getCoverIDAtSide(cSide) == 0) { + if (GregTech_API.sCovers.containsKey(new GT_ItemStack(tCurrentItem))) { + if (GregTech_API.getCoverBehavior(tCurrentItem).isCoverPlaceable(cSide, new GT_ItemStack(tCurrentItem), this) && mMetaTileEntity.allowCoverOnSide(cSide, new GT_ItemStack(tCurrentItem))) { + setCoverItemAtSide(cSide, tCurrentItem); + if (!aPlayer.capabilities.isCreativeMode) tCurrentItem.stackSize--; + GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(100), 1.0F, -1, xCoord, yCoord, zCoord); + } + return true; + } + } else { + if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sCrowbarList)) { + if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer)) { + GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(0), 1.0F, -1, xCoord, yCoord, zCoord); + dropCover(cSide, aSide, false); + } + return true; + } + } + } + + if (getCoverBehaviorAtSide(aSide).onCoverRightclick(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this, aPlayer, aX, aY, aZ)) + return true; + } + + if (!getCoverBehaviorAtSide(aSide).isGUIClickable(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this)) + return false; + + try { + if (hasValidMetaTileEntity()) return mMetaTileEntity.onRightclick(this, aPlayer, aSide, aX, aY, aZ); + } catch (Throwable e) { + GT_Log.err.println("Encountered Exception while rightclicking TileEntity, the Game should've crashed now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); + e.printStackTrace(GT_Log.err); + } + + return false; + } + + @Override + public void onLeftclick(EntityPlayer aPlayer) { + try { + if (aPlayer != null && hasValidMetaTileEntity()) mMetaTileEntity.onLeftclick(this, aPlayer); + } catch (Throwable e) { + GT_Log.err.println("Encountered Exception while leftclicking TileEntity, the Game should've crashed now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); + e.printStackTrace(GT_Log.err); + } + } + + @Override + public boolean isDigitalChest() { + return false; + } + + @Override + public ItemStack[] getStoredItemData() { + return null; + } + + @Override + public void setItemCount(int aCount) { + // + } + + @Override + public int getMaxItemCount() { + return 0; + } + + /** + * Can put aStack into Slot + */ + @Override + public boolean isItemValidForSlot(int aIndex, ItemStack aStack) { + return canAccessData() && mMetaTileEntity.isItemValidForSlot(aIndex, aStack); + } + + /** + * returns all valid Inventory Slots, no matter which Side (Unless it's covered). + * The Side Stuff is done in the following two Functions. + */ + @Override + public int[] getAccessibleSlotsFromSide(int aSide) { + if (canAccessData() && (getCoverBehaviorAtSide((byte) aSide).letsItemsOut((byte) aSide, getCoverIDAtSide((byte) aSide), getCoverDataAtSide((byte) aSide), -1, this) || getCoverBehaviorAtSide((byte) aSide).letsItemsIn((byte) aSide, getCoverIDAtSide((byte) aSide), getCoverDataAtSide((byte) aSide), -1, this))) + return mMetaTileEntity.getAccessibleSlotsFromSide(aSide); + return new int[0]; + } + + /** + * Can put aStack into Slot at Side + */ + @Override + public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) { + return canAccessData() && getCoverBehaviorAtSide((byte) aSide).letsItemsIn((byte) aSide, getCoverIDAtSide((byte) aSide), getCoverDataAtSide((byte) aSide), aIndex, this) && mMetaTileEntity.canInsertItem(aIndex, aStack, aSide); + } + + /** + * Can pull aStack out of Slot from Side + */ + @Override + public boolean canExtractItem(int aIndex, ItemStack aStack, int aSide) { + return canAccessData() && getCoverBehaviorAtSide((byte) aSide).letsItemsOut((byte) aSide, getCoverIDAtSide((byte) aSide), getCoverDataAtSide((byte) aSide), aIndex, this) && mMetaTileEntity.canExtractItem(aIndex, aStack, aSide); + } + + @Override + public boolean isUpgradable() { + return false; + } + + @Override + public byte getInternalInputRedstoneSignal(byte aSide) { + return (byte) (getCoverBehaviorAtSide(aSide).getRedstoneInput(aSide, getInputRedstoneSignal(aSide), getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this) & 15); + } + + @Override + public byte getInputRedstoneSignal(byte aSide) { + return (byte) (worldObj.getIndirectPowerLevelTo(getOffsetX(aSide, 1), getOffsetY(aSide, 1), getOffsetZ(aSide, 1), aSide) & 15); + } + + @Override + public byte getOutputRedstoneSignal(byte aSide) { + return (byte) (getCoverBehaviorAtSide(aSide).manipulatesSidedRedstoneOutput(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this) || (getCoverBehaviorAtSide(aSide).letsRedstoneGoOut(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this)) ? mSidedRedstone[aSide] & 15 : 0); + } + + @Override + public void setInternalOutputRedstoneSignal(byte aSide, byte aStrength) { + if (!getCoverBehaviorAtSide(aSide).manipulatesSidedRedstoneOutput(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this)) + setOutputRedstoneSignal(aSide, aStrength); + } + + @Override + public void setOutputRedstoneSignal(byte aSide, byte aStrength) { + aStrength = (byte) Math.min(Math.max(0, aStrength), 15); + if (aSide >= 0 && aSide < 6 && mSidedRedstone[aSide] != aStrength) { + mSidedRedstone[aSide] = aStrength; + issueBlockUpdate(); + } + } + + @Override + public boolean isSteamEngineUpgradable() { + return isUpgradable() && !hasSteamEngineUpgrade() && getSteamCapacity() > 0; + } + + @Override + public boolean addSteamEngineUpgrade() { + if (isSteamEngineUpgradable()) { + issueBlockUpdate(); + return true; + } + return false; + } + + @Override + public boolean hasSteamEngineUpgrade() { + return false; + } + + @Override + public boolean hasInventoryBeenModified() { + return mInventoryChanged; + } + + @Override + public void setGenericRedstoneOutput(boolean aOnOff) { + // + } + + @Override + public int getErrorDisplayID() { + return 0; + } + + @Override + public void setErrorDisplayID(int aErrorID) { + // + } + + @Override + public IMetaTileEntity getMetaTileEntity() { + return hasValidMetaTileEntity() ? mMetaTileEntity : null; + } + + @Override + public void setMetaTileEntity(IMetaTileEntity aMetaTileEntity) { + mMetaTileEntity = (MetaPipeEntity) aMetaTileEntity; + } + + @Override + public GT_CoverBehavior getCoverBehaviorAtSide(byte aSide) { + return aSide >= 0 && aSide < mCoverBehaviors.length ? mCoverBehaviors[aSide] : GregTech_API.sNoBehavior; + } + + @Override + public void setCoverIDAtSide(byte aSide, int aID) { + if (aSide >= 0 && aSide < 6) { + mCoverSides[aSide] = aID; + mCoverData[aSide] = 0; + mCoverBehaviors[aSide] = GregTech_API.getCoverBehavior(aID); + issueCoverUpdate(aSide); + issueBlockUpdate(); + } + } + + @Override + public void setCoverItemAtSide(byte aSide, ItemStack aCover) { + GregTech_API.getCoverBehavior(aCover).placeCover(aSide, aCover, this); + } + + @Override + public int getCoverIDAtSide(byte aSide) { + if (aSide >= 0 && aSide < 6) return mCoverSides[aSide]; + return 0; + } + + @Override + public ItemStack getCoverItemAtSide(byte aSide) { + return GT_Utility.intToStack(getCoverIDAtSide(aSide)); + } + + @Override + public boolean canPlaceCoverIDAtSide(byte aSide, int aID) { + return getCoverIDAtSide(aSide) == 0; + } + + @Override + public boolean canPlaceCoverItemAtSide(byte aSide, ItemStack aCover) { + return getCoverIDAtSide(aSide) == 0; + } + + @Override + public void setCoverDataAtSide(byte aSide, int aData) { + if (aSide >= 0 && aSide < 6) mCoverData[aSide] = aData; + } + + @Override + public int getCoverDataAtSide(byte aSide) { + if (aSide >= 0 && aSide < 6) return mCoverData[aSide]; + return 0; + } + + @Override + public void setLightValue(byte aLightValue) { + // + } + + @Override + public long getAverageElectricInput() { + return 0; + } + + @Override + public long getAverageElectricOutput() { + return 0; + } + + @Override + public boolean dropCover(byte aSide, byte aDroppedSide, boolean aForced) { + if (getCoverBehaviorAtSide(aSide).onCoverRemoval(aSide, getCoverIDAtSide(aSide), mCoverData[aSide], this, aForced) || aForced) { + ItemStack tStack = getCoverBehaviorAtSide(aSide).getDrop(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this); + if (tStack != null) { + tStack.setTagCompound(null); + EntityItem tEntity = new EntityItem(worldObj, getOffsetX(aDroppedSide, 1) + 0.5, getOffsetY(aDroppedSide, 1) + 0.5, getOffsetZ(aDroppedSide, 1) + 0.5, tStack); + tEntity.motionX = 0; + tEntity.motionY = 0; + tEntity.motionZ = 0; + worldObj.spawnEntityInWorld(tEntity); + } + + setCoverIDAtSide(aSide, 0); + setOutputRedstoneSignal(aSide, (byte) 0); + return true; + } + return false; + } + + @Override + public String getOwnerName() { + return "Player"; + } + + @Override + public String setOwnerName(String aName) { + return "Player"; + } + + @Override + public byte getComparatorValue(byte aSide) { + return canAccessData() ? mMetaTileEntity.getComparatorValue(aSide) : 0; + } + + @Override + public byte getStrongOutputRedstoneSignal(byte aSide) { + return aSide >= 0 && aSide < 6 && (mStrongRedstone & (1 << aSide)) != 0 ? (byte) (mSidedRedstone[aSide] & 15) : 0; + } + + @Override + public void setStrongOutputRedstoneSignal(byte aSide, byte aStrength) { + mStrongRedstone |= (1 << aSide); + setOutputRedstoneSignal(aSide, aStrength); + } + + @Override + public ItemStack decrStackSize(int aIndex, int aAmount) { + if (canAccessData()) { + mInventoryChanged = true; + return mMetaTileEntity.decrStackSize(aIndex, aAmount); + } + return null; + } + + @Override + public long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage) { + if (canAccessData()) return mMetaTileEntity.injectEnergyUnits(aSide, aVoltage, aAmperage); + return 0; + } + + @Override + public boolean drainEnergyUnits(byte aSide, long aVoltage, long aAmperage) { + return false; + } + + @Override + public boolean acceptsRotationalEnergy(byte aSide) { + if (!canAccessData() || getCoverIDAtSide(aSide) != 0) return false; + return mMetaTileEntity.acceptsRotationalEnergy(aSide); + } + + @Override + public boolean injectRotationalEnergy(byte aSide, long aSpeed, long aEnergy) { + if (!canAccessData() || getCoverIDAtSide(aSide) != 0) return false; + return mMetaTileEntity.injectRotationalEnergy(aSide, aSpeed, aEnergy); + } - @Override - public boolean dropCover(byte aSide, byte aDroppedSide, boolean aForced) { - if (getCoverBehaviorAtSide(aSide).onCoverRemoval(aSide, getCoverIDAtSide(aSide), mCoverData[aSide], this, aForced) || aForced) { - ItemStack tStack = getCoverBehaviorAtSide(aSide).getDrop(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this); - if (tStack != null) { - tStack.setTagCompound(null); - EntityItem tEntity = new EntityItem(worldObj, getOffsetX(aDroppedSide, 1) + 0.5, getOffsetY(aDroppedSide, 1) + 0.5, getOffsetZ(aDroppedSide, 1) + 0.5, tStack); - tEntity.motionX = 0; - tEntity.motionY = 0; - tEntity.motionZ = 0; - worldObj.spawnEntityInWorld(tEntity); - } - - setCoverIDAtSide(aSide, 0); - setOutputRedstoneSignal(aSide, (byte) 0); - return true; - } - return false; - } - - @Override - public String getOwnerName() { - return "Player"; - } - - @Override - public String setOwnerName(String aName) { - return "Player"; - } - - @Override - public byte getComparatorValue(byte aSide) { - return canAccessData()?mMetaTileEntity.getComparatorValue(aSide):0; - } - - @Override - public byte getStrongOutputRedstoneSignal(byte aSide) { - return aSide>=0&&aSide<6&&(mStrongRedstone & (1 << aSide))!=0?(byte)(mSidedRedstone[aSide]&15):0; - } - - @Override - public void setStrongOutputRedstoneSignal(byte aSide, byte aStrength) { - mStrongRedstone |= (1 << aSide); - setOutputRedstoneSignal(aSide, aStrength); - } - - @Override - public ItemStack decrStackSize(int aIndex, int aAmount) { - if (canAccessData()) { - mInventoryChanged = true; - return mMetaTileEntity.decrStackSize(aIndex, aAmount); - } - return null; - } - - @Override - public long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage) { - if (canAccessData()) return mMetaTileEntity.injectEnergyUnits(aSide, aVoltage, aAmperage); - return 0; - } - - @Override - public boolean drainEnergyUnits(byte aSide, long aVoltage, long aAmperage) { - return false; - } - - @Override - public boolean acceptsRotationalEnergy(byte aSide) { - if (!canAccessData() || getCoverIDAtSide(aSide) != 0) return false; - return mMetaTileEntity.acceptsRotationalEnergy(aSide); - } - - @Override - public boolean injectRotationalEnergy(byte aSide, long aSpeed, long aEnergy) { - if (!canAccessData() || getCoverIDAtSide(aSide) != 0) return false; - return mMetaTileEntity.injectRotationalEnergy(aSide, aSpeed, aEnergy); - } - @Override public int fill(ForgeDirection aSide, FluidStack aFluid, boolean doFill) { - if (mTickTimer > 5 && canAccessData() && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidInput ((byte)aSide.ordinal()) && getCoverBehaviorAtSide((byte)aSide.ordinal()).letsFluidIn ((byte)aSide.ordinal(), getCoverIDAtSide((byte)aSide.ordinal()), getCoverDataAtSide((byte)aSide.ordinal()), aFluid==null?null:aFluid.getFluid(), this)))) return mMetaTileEntity.fill(aSide, aFluid, doFill); - return 0; + if (mTickTimer > 5 && canAccessData() && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidInput((byte) aSide.ordinal()) && getCoverBehaviorAtSide((byte) aSide.ordinal()).letsFluidIn((byte) aSide.ordinal(), getCoverIDAtSide((byte) aSide.ordinal()), getCoverDataAtSide((byte) aSide.ordinal()), aFluid == null ? null : aFluid.getFluid(), this)))) + return mMetaTileEntity.fill(aSide, aFluid, doFill); + return 0; } - - @Override - public FluidStack drain(ForgeDirection aSide, int maxDrain, boolean doDrain) { - if (mTickTimer > 5 && canAccessData() && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidOutput((byte)aSide.ordinal()) && getCoverBehaviorAtSide((byte)aSide.ordinal()).letsFluidOut((byte)aSide.ordinal(), getCoverIDAtSide((byte)aSide.ordinal()), getCoverDataAtSide((byte)aSide.ordinal()), mMetaTileEntity.getFluid()==null?null:mMetaTileEntity.getFluid().getFluid(), this)))) return mMetaTileEntity.drain(aSide, maxDrain, doDrain); - return null; - } - - @Override - public FluidStack drain(ForgeDirection aSide, FluidStack aFluid, boolean doDrain) { - if (mTickTimer > 5 && canAccessData() && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidOutput((byte)aSide.ordinal()) && getCoverBehaviorAtSide((byte)aSide.ordinal()).letsFluidOut((byte)aSide.ordinal(), getCoverIDAtSide((byte)aSide.ordinal()), getCoverDataAtSide((byte)aSide.ordinal()), aFluid==null?null:aFluid.getFluid(), this)))) return mMetaTileEntity.drain(aSide, aFluid, doDrain); - return null; - } - - @Override - public boolean canFill(ForgeDirection aSide, Fluid aFluid) { - if (mTickTimer > 5 && canAccessData() && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidInput ((byte)aSide.ordinal()) && getCoverBehaviorAtSide((byte)aSide.ordinal()).letsFluidIn ((byte)aSide.ordinal(), getCoverIDAtSide((byte)aSide.ordinal()), getCoverDataAtSide((byte)aSide.ordinal()), aFluid, this)))) return mMetaTileEntity.canFill(aSide, aFluid); - return false; - } - - @Override - public boolean canDrain(ForgeDirection aSide, Fluid aFluid) { - if (mTickTimer > 5 && canAccessData() && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidOutput((byte)aSide.ordinal()) && getCoverBehaviorAtSide((byte)aSide.ordinal()).letsFluidOut((byte)aSide.ordinal(), getCoverIDAtSide((byte)aSide.ordinal()), getCoverDataAtSide((byte)aSide.ordinal()), aFluid, this)))) return mMetaTileEntity.canDrain(aSide, aFluid); - return false; - } - - @Override - public FluidTankInfo[] getTankInfo(ForgeDirection aSide) { - if (canAccessData() && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidInput((byte)aSide.ordinal()) && getCoverBehaviorAtSide((byte)aSide.ordinal()).letsFluidIn ((byte)aSide.ordinal(), getCoverIDAtSide((byte)aSide.ordinal()), getCoverDataAtSide((byte)aSide.ordinal()), null, this)) || (mMetaTileEntity.isLiquidOutput((byte)aSide.ordinal()) && getCoverBehaviorAtSide((byte)aSide.ordinal()).letsFluidOut((byte)aSide.ordinal(), getCoverIDAtSide((byte)aSide.ordinal()), getCoverDataAtSide((byte)aSide.ordinal()), null, this)))) return mMetaTileEntity.getTankInfo(aSide); - return new FluidTankInfo[] {}; - } - - @Override - public boolean isInvalidTileEntity() { - return isInvalid(); - } - - @Override - public boolean addStackToSlot(int aIndex, ItemStack aStack) { - if (GT_Utility.isStackInvalid(aStack)) return true; - if (aIndex < 0 || aIndex >= getSizeInventory()) return false; - ItemStack tStack = getStackInSlot(aIndex); - if (GT_Utility.isStackInvalid(tStack)) { - setInventorySlotContents(aIndex, aStack); - return true; - } - aStack = GT_OreDictUnificator.get(aStack); - if (GT_Utility.areStacksEqual(tStack, aStack) && tStack.stackSize + aStack.stackSize <= Math.min(aStack.getMaxStackSize(), getInventoryStackLimit())) { - tStack.stackSize+=aStack.stackSize; - return true; - } - return false; - } - - @Override - public boolean addStackToSlot(int aIndex, ItemStack aStack, int aAmount) { - return addStackToSlot(aIndex, GT_Utility.copyAmount(aAmount, aStack)); - } - - @Override - public void setMetaTileEntity(IMetaTileEntity aMetaTileEntity) { - mMetaTileEntity = (MetaPipeEntity)aMetaTileEntity; - } - - @Override - public byte getColorization() { - return (byte)(mColor-1); - } - - @Override - public byte setColorization(byte aColor) { - if (aColor > 15 || aColor < -1) aColor = -1; - if (canAccessData()) mMetaTileEntity.onColorChangeServer(aColor); - return mColor = (byte)(aColor+1); - } - - @Override - public float getThickNess() { - if (canAccessData()) return mMetaTileEntity.getThickNess(); - return 1.0F; - } - - public boolean renderInside(byte aSide) { - if (canAccessData()) return mMetaTileEntity.renderInside(aSide); - return false; - } - - @Override - public float getBlastResistance(byte aSide) { - return (mConnections & 192) != 0 ? 50.0F : 5.0F; - } - @Override - public boolean isMufflerUpgradable() { - return false; - } + @Override + public FluidStack drain(ForgeDirection aSide, int maxDrain, boolean doDrain) { + if (mTickTimer > 5 && canAccessData() && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidOutput((byte) aSide.ordinal()) && getCoverBehaviorAtSide((byte) aSide.ordinal()).letsFluidOut((byte) aSide.ordinal(), getCoverIDAtSide((byte) aSide.ordinal()), getCoverDataAtSide((byte) aSide.ordinal()), mMetaTileEntity.getFluid() == null ? null : mMetaTileEntity.getFluid().getFluid(), this)))) + return mMetaTileEntity.drain(aSide, maxDrain, doDrain); + return null; + } - @Override - public boolean addMufflerUpgrade() { - return false; - } + @Override + public FluidStack drain(ForgeDirection aSide, FluidStack aFluid, boolean doDrain) { + if (mTickTimer > 5 && canAccessData() && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidOutput((byte) aSide.ordinal()) && getCoverBehaviorAtSide((byte) aSide.ordinal()).letsFluidOut((byte) aSide.ordinal(), getCoverIDAtSide((byte) aSide.ordinal()), getCoverDataAtSide((byte) aSide.ordinal()), aFluid == null ? null : aFluid.getFluid(), this)))) + return mMetaTileEntity.drain(aSide, aFluid, doDrain); + return null; + } - @Override - public boolean hasMufflerUpgrade() { - return false; - } - - @Override - public boolean isUniversalEnergyStored(long aEnergyAmount) { - return getUniversalEnergyStored() >= aEnergyAmount; - } - - @Override - public String[] getInfoData() { - {if (canAccessData()) return getMetaTileEntity().getInfoData(); return new String[]{};} - } + @Override + public boolean canFill(ForgeDirection aSide, Fluid aFluid) { + if (mTickTimer > 5 && canAccessData() && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidInput((byte) aSide.ordinal()) && getCoverBehaviorAtSide((byte) aSide.ordinal()).letsFluidIn((byte) aSide.ordinal(), getCoverIDAtSide((byte) aSide.ordinal()), getCoverDataAtSide((byte) aSide.ordinal()), aFluid, this)))) + return mMetaTileEntity.canFill(aSide, aFluid); + return false; + } - @Override - public byte getConnections() { - return mConnections; - } - - @Override + @Override + public boolean canDrain(ForgeDirection aSide, Fluid aFluid) { + if (mTickTimer > 5 && canAccessData() && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidOutput((byte) aSide.ordinal()) && getCoverBehaviorAtSide((byte) aSide.ordinal()).letsFluidOut((byte) aSide.ordinal(), getCoverIDAtSide((byte) aSide.ordinal()), getCoverDataAtSide((byte) aSide.ordinal()), aFluid, this)))) + return mMetaTileEntity.canDrain(aSide, aFluid); + return false; + } + + @Override + public FluidTankInfo[] getTankInfo(ForgeDirection aSide) { + if (canAccessData() && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidInput((byte) aSide.ordinal()) && getCoverBehaviorAtSide((byte) aSide.ordinal()).letsFluidIn((byte) aSide.ordinal(), getCoverIDAtSide((byte) aSide.ordinal()), getCoverDataAtSide((byte) aSide.ordinal()), null, this)) || (mMetaTileEntity.isLiquidOutput((byte) aSide.ordinal()) && getCoverBehaviorAtSide((byte) aSide.ordinal()).letsFluidOut((byte) aSide.ordinal(), getCoverIDAtSide((byte) aSide.ordinal()), getCoverDataAtSide((byte) aSide.ordinal()), null, this)))) + return mMetaTileEntity.getTankInfo(aSide); + return new FluidTankInfo[]{}; + } + + @Override + public boolean isInvalidTileEntity() { + return isInvalid(); + } + + @Override + public boolean addStackToSlot(int aIndex, ItemStack aStack) { + if (GT_Utility.isStackInvalid(aStack)) return true; + if (aIndex < 0 || aIndex >= getSizeInventory()) return false; + ItemStack tStack = getStackInSlot(aIndex); + if (GT_Utility.isStackInvalid(tStack)) { + setInventorySlotContents(aIndex, aStack); + return true; + } + aStack = GT_OreDictUnificator.get(aStack); + if (GT_Utility.areStacksEqual(tStack, aStack) && tStack.stackSize + aStack.stackSize <= Math.min(aStack.getMaxStackSize(), getInventoryStackLimit())) { + tStack.stackSize += aStack.stackSize; + return true; + } + return false; + } + + @Override + public boolean addStackToSlot(int aIndex, ItemStack aStack, int aAmount) { + return addStackToSlot(aIndex, GT_Utility.copyAmount(aAmount, aStack)); + } + + @Override + public byte getColorization() { + return (byte) (mColor - 1); + } + + @Override + public byte setColorization(byte aColor) { + if (aColor > 15 || aColor < -1) aColor = -1; + if (canAccessData()) mMetaTileEntity.onColorChangeServer(aColor); + return mColor = (byte) (aColor + 1); + } + + @Override + public float getThickNess() { + if (canAccessData()) return mMetaTileEntity.getThickNess(); + return 1.0F; + } + + public boolean renderInside(byte aSide) { + if (canAccessData()) return mMetaTileEntity.renderInside(aSide); + return false; + } + + @Override + public float getBlastResistance(byte aSide) { + return (mConnections & 192) != 0 ? 50.0F : 5.0F; + } + + @Override + public boolean isMufflerUpgradable() { + return false; + } + + @Override + public boolean addMufflerUpgrade() { + return false; + } + + @Override + public boolean hasMufflerUpgrade() { + return false; + } + + @Override + public boolean isUniversalEnergyStored(long aEnergyAmount) { + return getUniversalEnergyStored() >= aEnergyAmount; + } + + @Override + public String[] getInfoData() { + { + if (canAccessData()) return getMetaTileEntity().getInfoData(); + return new String[]{}; + } + } + + @Override + public byte getConnections() { + return mConnections; + } + + @Override public void markDirty() { - super.markDirty(); - mInventoryChanged = true; + super.markDirty(); + mInventoryChanged = true; + } + + @Override + public int getLightOpacity() { + return mMetaTileEntity == null ? 0 : mMetaTileEntity.getLightOpacity(); + } + + @Override + public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List outputAABB, Entity collider) { + mMetaTileEntity.addCollisionBoxesToList(aWorld, aX, aY, aZ, inputAABB, outputAABB, collider); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) { + return mMetaTileEntity.getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ); + } + + @Override + public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider) { + mMetaTileEntity.onEntityCollidedWithBlock(aWorld, aX, aY, aZ, collider); } - - @Override - public int getLightOpacity() { - return mMetaTileEntity == null ? 0 : mMetaTileEntity.getLightOpacity(); - } - - @Override - public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List outputAABB, Entity collider) { - mMetaTileEntity.addCollisionBoxesToList(aWorld, aX, aY, aZ, inputAABB, outputAABB, collider); - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) { - return mMetaTileEntity.getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ); - } - - @Override - public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider) { - mMetaTileEntity.onEntityCollidedWithBlock(aWorld, aX, aY, aZ, collider); - } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java index 9870ba9b..bed5d38c 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java @@ -1,7 +1,5 @@ package gregtech.api.metatileentity; -import static gregtech.api.enums.GT_Values.NW; -import static gregtech.api.enums.GT_Values.V; import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.ItemList; @@ -14,11 +12,6 @@ import gregtech.api.net.GT_Packet_TileEntity; import gregtech.api.objects.GT_ItemStack; import gregtech.api.util.*; import ic2.api.Direction; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - import net.minecraft.block.Block; import net.minecraft.block.BlockFire; import net.minecraft.entity.Entity; @@ -38,1316 +31,1809 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTankInfo; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import static gregtech.api.enums.GT_Values.NW; +import static gregtech.api.enums.GT_Values.V; + /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* This is the main TileEntity for EVERYTHING. */ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileEntity { - protected MetaTileEntity mMetaTileEntity; - protected long mStoredEnergy = 0, mStoredSteam = 0; - protected int mAverageEUInputIndex = 0, mAverageEUOutputIndex = 0; - protected boolean mReleaseEnergy = false; - protected int[] mAverageEUInput = new int[] {0,0,0,0,0}, mAverageEUOutput = new int[] {0,0,0,0,0}; - - private boolean[] mActiveEUInputs = new boolean[] {false, false, false, false, false, false}, mActiveEUOutputs = new boolean[] {false, false, false, false, false, false}; - private byte[] mSidedRedstone = new byte[] {15,15,15,15,15,15}; - private int[] mCoverSides = new int[] {0,0,0,0,0,0}, mCoverData = new int[] {0,0,0,0,0,0}, mTimeStatistics = new int[GregTech_API.TICKS_FOR_LAG_AVERAGING]; - private boolean mHasEnoughEnergy = true, mRunningThroughTick = false, mInputDisabled = false, mOutputDisabled = false, mMuffler = false, mLockUpgrade = false, mActive = false, mRedstone = false, mWorkUpdate = false, mSteamConverter = false, mInventoryChanged = false, mWorks = true, mNeedsUpdate = true, mNeedsBlockUpdate = true, mSendClientData = false, oRedstone = false; - private byte mColor = 0, oColor = 0, mStrongRedstone = 0, oRedstoneData = 63, oTextureData = 0, oUpdateData = 0, oLightValueClient = -1, oLightValue = -1, mLightValue = 0, mOtherUpgrades = 0, mFacing = 0, oFacing = 0, mWorkData = 0; - private int mDisplayErrorCode = 0, oX = 0, oY = 0, oZ = 0, mTimeStatisticsIndex = 0, mLagWarningCount = 0; - private short mID = 0; - private long mTickTimer = 0, oOutput = 0, mAcceptedAmperes = Long.MAX_VALUE; - private String mOwnerName = ""; - private NBTTagCompound mRecipeStuff = new NBTTagCompound(); - - public BaseMetaTileEntity() {} - - @Override + private final GT_CoverBehavior[] mCoverBehaviors = new GT_CoverBehavior[]{GregTech_API.sNoBehavior, GregTech_API.sNoBehavior, GregTech_API.sNoBehavior, GregTech_API.sNoBehavior, GregTech_API.sNoBehavior, GregTech_API.sNoBehavior}; + protected MetaTileEntity mMetaTileEntity; + protected long mStoredEnergy = 0, mStoredSteam = 0; + protected int mAverageEUInputIndex = 0, mAverageEUOutputIndex = 0; + protected boolean mReleaseEnergy = false; + protected int[] mAverageEUInput = new int[]{0, 0, 0, 0, 0}, mAverageEUOutput = new int[]{0, 0, 0, 0, 0}; + private boolean[] mActiveEUInputs = new boolean[]{false, false, false, false, false, false}, mActiveEUOutputs = new boolean[]{false, false, false, false, false, false}; + private byte[] mSidedRedstone = new byte[]{15, 15, 15, 15, 15, 15}; + private int[] mCoverSides = new int[]{0, 0, 0, 0, 0, 0}, mCoverData = new int[]{0, 0, 0, 0, 0, 0}, mTimeStatistics = new int[GregTech_API.TICKS_FOR_LAG_AVERAGING]; + private boolean mHasEnoughEnergy = true, mRunningThroughTick = false, mInputDisabled = false, mOutputDisabled = false, mMuffler = false, mLockUpgrade = false, mActive = false, mRedstone = false, mWorkUpdate = false, mSteamConverter = false, mInventoryChanged = false, mWorks = true, mNeedsUpdate = true, mNeedsBlockUpdate = true, mSendClientData = false, oRedstone = false; + private byte mColor = 0, oColor = 0, mStrongRedstone = 0, oRedstoneData = 63, oTextureData = 0, oUpdateData = 0, oLightValueClient = -1, oLightValue = -1, mLightValue = 0, mOtherUpgrades = 0, mFacing = 0, oFacing = 0, mWorkData = 0; + private int mDisplayErrorCode = 0, oX = 0, oY = 0, oZ = 0, mTimeStatisticsIndex = 0, mLagWarningCount = 0; + private short mID = 0; + private long mTickTimer = 0, oOutput = 0, mAcceptedAmperes = Long.MAX_VALUE; + private String mOwnerName = ""; + private NBTTagCompound mRecipeStuff = new NBTTagCompound(); + + public BaseMetaTileEntity() { + } + + @Override public void writeToNBT(NBTTagCompound aNBT) { - try { - super.writeToNBT(aNBT); - } catch(Throwable e) { - GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); - e.printStackTrace(GT_Log.err); - } - try { - aNBT.setInteger ("mID" , mID); - aNBT.setLong ("mStoredSteam" , mStoredSteam); - aNBT.setLong ("mStoredEnergy" , mStoredEnergy); - aNBT.setIntArray ("mCoverData" , mCoverData); - aNBT.setIntArray ("mCoverSides" , mCoverSides); - aNBT.setByteArray ("mRedstoneSided" , mSidedRedstone); - aNBT.setByte ("mColor" , mColor); - aNBT.setByte ("mLightValue" , mLightValue); - aNBT.setByte ("mOtherUpgrades" , mOtherUpgrades); - aNBT.setByte ("mWorkData" , mWorkData); - aNBT.setByte ("mStrongRedstone" , mStrongRedstone); - aNBT.setShort ("mFacing" , mFacing); - aNBT.setString ("mOwnerName" , mOwnerName); - aNBT.setBoolean ("mLockUpgrade" , mLockUpgrade); - aNBT.setBoolean ("mMuffler" , mMuffler); - aNBT.setBoolean ("mSteamConverter" , mSteamConverter); - aNBT.setBoolean ("mActive" , mActive); - aNBT.setBoolean ("mRedstone" , mRedstone); - aNBT.setBoolean ("mWorks" , !mWorks); - aNBT.setBoolean ("mInputDisabled" , mInputDisabled); - aNBT.setBoolean ("mOutputDisabled" , mOutputDisabled); - aNBT.setTag ("GT.CraftingComponents", mRecipeStuff); - } catch(Throwable e) { - GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); - e.printStackTrace(GT_Log.err); - } - try { - if (hasValidMetaTileEntity()) { - NBTTagList tItemList = new NBTTagList(); - for (int i = 0; i < mMetaTileEntity.getRealInventory().length; i++) { - ItemStack tStack = mMetaTileEntity.getRealInventory()[i]; - if (tStack != null) { - NBTTagCompound tTag = new NBTTagCompound(); - tTag.setInteger("IntSlot", i); - tStack.writeToNBT(tTag); - tItemList.appendTag(tTag); - } - } - aNBT.setTag("Inventory", tItemList); - - try { - mMetaTileEntity.saveNBTData(aNBT); - } catch(Throwable e) { - GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); - e.printStackTrace(GT_Log.err); - } - } - } catch(Throwable e) { - GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); - e.printStackTrace(GT_Log.err); - } + try { + super.writeToNBT(aNBT); + } catch (Throwable e) { + GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); + e.printStackTrace(GT_Log.err); + } + try { + aNBT.setInteger("mID", mID); + aNBT.setLong("mStoredSteam", mStoredSteam); + aNBT.setLong("mStoredEnergy", mStoredEnergy); + aNBT.setIntArray("mCoverData", mCoverData); + aNBT.setIntArray("mCoverSides", mCoverSides); + aNBT.setByteArray("mRedstoneSided", mSidedRedstone); + aNBT.setByte("mColor", mColor); + aNBT.setByte("mLightValue", mLightValue); + aNBT.setByte("mOtherUpgrades", mOtherUpgrades); + aNBT.setByte("mWorkData", mWorkData); + aNBT.setByte("mStrongRedstone", mStrongRedstone); + aNBT.setShort("mFacing", mFacing); + aNBT.setString("mOwnerName", mOwnerName); + aNBT.setBoolean("mLockUpgrade", mLockUpgrade); + aNBT.setBoolean("mMuffler", mMuffler); + aNBT.setBoolean("mSteamConverter", mSteamConverter); + aNBT.setBoolean("mActive", mActive); + aNBT.setBoolean("mRedstone", mRedstone); + aNBT.setBoolean("mWorks", !mWorks); + aNBT.setBoolean("mInputDisabled", mInputDisabled); + aNBT.setBoolean("mOutputDisabled", mOutputDisabled); + aNBT.setTag("GT.CraftingComponents", mRecipeStuff); + } catch (Throwable e) { + GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); + e.printStackTrace(GT_Log.err); + } + try { + if (hasValidMetaTileEntity()) { + NBTTagList tItemList = new NBTTagList(); + for (int i = 0; i < mMetaTileEntity.getRealInventory().length; i++) { + ItemStack tStack = mMetaTileEntity.getRealInventory()[i]; + if (tStack != null) { + NBTTagCompound tTag = new NBTTagCompound(); + tTag.setInteger("IntSlot", i); + tStack.writeToNBT(tTag); + tItemList.appendTag(tTag); + } + } + aNBT.setTag("Inventory", tItemList); + + try { + mMetaTileEntity.saveNBTData(aNBT); + } catch (Throwable e) { + GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); + e.printStackTrace(GT_Log.err); + } + } + } catch (Throwable e) { + GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); + e.printStackTrace(GT_Log.err); + } } - - @Override - public void readFromNBT(NBTTagCompound aNBT) { - super.readFromNBT(aNBT); - setInitialValuesAsNBT(aNBT, (short)0); + + @Override + public void readFromNBT(NBTTagCompound aNBT) { + super.readFromNBT(aNBT); + setInitialValuesAsNBT(aNBT, (short) 0); } - - @Override - public void setInitialValuesAsNBT(NBTTagCompound aNBT, short aID) { - if (aNBT == null) { - if (aID>0) mID=aID; else mID=mID>0?mID:0; - if (mID!=0) createNewMetatileEntity(mID); - mSidedRedstone = (hasValidMetaTileEntity()&&mMetaTileEntity.hasSidedRedstoneOutputBehavior()?new byte[] {0,0,0,0,0,0}:new byte[] {15,15,15,15,15,15}); - } else { - if (aID<=0) mID = (short)aNBT.getInteger ("mID"); else mID = aID; - mStoredSteam = aNBT.getInteger ("mStoredSteam"); - mStoredEnergy = aNBT.getInteger ("mStoredEnergy"); - mColor = aNBT.getByte ("mColor"); - mLightValue = aNBT.getByte ("mLightValue"); - mWorkData = aNBT.getByte ("mWorkData"); - mStrongRedstone = aNBT.getByte ("mStrongRedstone"); - mFacing = oFacing = (byte)aNBT.getShort("mFacing"); - mOwnerName = aNBT.getString ("mOwnerName"); - mLockUpgrade = aNBT.getBoolean ("mLockUpgrade"); - mMuffler = aNBT.getBoolean ("mMuffler"); - mSteamConverter = aNBT.getBoolean ("mSteamConverter"); - mActive = aNBT.getBoolean ("mActive"); - mRedstone = aNBT.getBoolean ("mRedstone"); - mWorks =!aNBT.getBoolean ("mWorks"); - mInputDisabled = aNBT.getBoolean ("mInputDisabled"); - mOutputDisabled = aNBT.getBoolean ("mOutputDisabled"); - mOtherUpgrades = (byte)(aNBT.getByte("mOtherUpgrades")+aNBT.getByte("mBatteries")+aNBT.getByte("mLiBatteries")); - mCoverSides = aNBT.getIntArray ("mCoverSides"); - mCoverData = aNBT.getIntArray ("mCoverData"); - mSidedRedstone = aNBT.getByteArray ("mRedstoneSided"); - mRecipeStuff = aNBT.getCompoundTag("GT.CraftingComponents"); - - if (mCoverData.length != 6) mCoverData = new int[] { 0, 0, 0, 0, 0, 0}; - if (mCoverSides.length != 6) mCoverSides = new int[] { 0, 0, 0, 0, 0, 0}; - if (mSidedRedstone.length != 6) if (hasValidMetaTileEntity() && mMetaTileEntity.hasSidedRedstoneOutputBehavior()) mSidedRedstone = new byte[] {0,0,0,0,0,0}; else mSidedRedstone = new byte[] {15,15,15,15,15,15}; - - for (byte i = 0; i < 6; i++) mCoverBehaviors[i] = GregTech_API.getCoverBehavior(mCoverSides[i]); - - if (mID!=0 && createNewMetatileEntity(mID)) { - NBTTagList tItemList = aNBT.getTagList("Inventory", 10); - for (int i = 0; i < tItemList.tagCount(); i++) { - NBTTagCompound tTag = tItemList.getCompoundTagAt(i); - int tSlot = tTag.getInteger("IntSlot"); - if (tSlot >= 0 && tSlot < mMetaTileEntity.getRealInventory().length) { - mMetaTileEntity.getRealInventory()[tSlot] = GT_Utility.loadItem(tTag); - } - } - - try { - mMetaTileEntity.loadNBTData(aNBT); - } catch(Throwable e) { - GT_Log.err.println("Encountered Exception while loading MetaTileEntity, the Server should've crashed now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); - e.printStackTrace(GT_Log.err); - } - } - } - - if (mCoverData.length != 6) mCoverData = new int[] { 0, 0, 0, 0, 0, 0}; - if (mCoverSides.length != 6) mCoverSides = new int[] { 0, 0, 0, 0, 0, 0}; - if (mSidedRedstone.length != 6) if (hasValidMetaTileEntity() && mMetaTileEntity.hasSidedRedstoneOutputBehavior()) mSidedRedstone = new byte[] {0,0,0,0,0,0}; else mSidedRedstone = new byte[] {15,15,15,15,15,15}; - - for (byte i = 0; i < 6; i++) mCoverBehaviors[i] = GregTech_API.getCoverBehavior(mCoverSides[i]); - } - - private boolean createNewMetatileEntity(short aID) { - if (aID <= 0 || aID >= GregTech_API.METATILEENTITIES.length || GregTech_API.METATILEENTITIES[aID] == null) { - GT_Log.err.println("MetaID " + aID + " not loadable => locking TileEntity!"); - } else { - if (aID != 0) { - if (hasValidMetaTileEntity()) mMetaTileEntity.setBaseMetaTileEntity(null); - GregTech_API.METATILEENTITIES[aID].newMetaEntity(this).setBaseMetaTileEntity(this); - mTickTimer = 0; - mID = aID; - return true; - } - } - return false; - } - - /** - * Used for ticking special BaseMetaTileEntities, which need that for Energy Conversion - * It's called right before onPostTick() - */ - public void updateStatus() { - // - } - - /** - * Called when trying to charge Items - */ - public void chargeItem(ItemStack aStack) { - decreaseStoredEU(GT_ModHandler.chargeElectricItem(aStack, (int)Math.min(Integer.MAX_VALUE, getStoredEU()), (int)Math.min(Integer.MAX_VALUE, mMetaTileEntity.getOutputTier()), false, false), true); - } - - /** - * Called when trying to discharge Items - */ - public void dischargeItem(ItemStack aStack) { - increaseStoredEnergyUnits(GT_ModHandler.dischargeElectricItem(aStack, (int)Math.min(Integer.MAX_VALUE, getEUCapacity() - getStoredEU()), (int)Math.min(Integer.MAX_VALUE, mMetaTileEntity.getInputTier()), false, false, false), true); - } - - @Override + + @Override + public void setInitialValuesAsNBT(NBTTagCompound aNBT, short aID) { + if (aNBT == null) { + if (aID > 0) mID = aID; + else mID = mID > 0 ? mID : 0; + if (mID != 0) createNewMetatileEntity(mID); + mSidedRedstone = (hasValidMetaTileEntity() && mMetaTileEntity.hasSidedRedstoneOutputBehavior() ? new byte[]{0, 0, 0, 0, 0, 0} : new byte[]{15, 15, 15, 15, 15, 15}); + } else { + if (aID <= 0) mID = (short) aNBT.getInteger("mID"); + else mID = aID; + mStoredSteam = aNBT.getInteger("mStoredSteam"); + mStoredEnergy = aNBT.getInteger("mStoredEnergy"); + mColor = aNBT.getByte("mColor"); + mLightValue = aNBT.getByte("mLightValue"); + mWorkData = aNBT.getByte("mWorkData"); + mStrongRedstone = aNBT.getByte("mStrongRedstone"); + mFacing = oFacing = (byte) aNBT.getShort("mFacing"); + mOwnerName = aNBT.getString("mOwnerName"); + mLockUpgrade = aNBT.getBoolean("mLockUpgrade"); + mMuffler = aNBT.getBoolean("mMuffler"); + mSteamConverter = aNBT.getBoolean("mSteamConverter"); + mActive = aNBT.getBoolean("mActive"); + mRedstone = aNBT.getBoolean("mRedstone"); + mWorks = !aNBT.getBoolean("mWorks"); + mInputDisabled = aNBT.getBoolean("mInputDisabled"); + mOutputDisabled = aNBT.getBoolean("mOutputDisabled"); + mOtherUpgrades = (byte) (aNBT.getByte("mOtherUpgrades") + aNBT.getByte("mBatteries") + aNBT.getByte("mLiBatteries")); + mCoverSides = aNBT.getIntArray("mCoverSides"); + mCoverData = aNBT.getIntArray("mCoverData"); + mSidedRedstone = aNBT.getByteArray("mRedstoneSided"); + mRecipeStuff = aNBT.getCompoundTag("GT.CraftingComponents"); + + if (mCoverData.length != 6) mCoverData = new int[]{0, 0, 0, 0, 0, 0}; + if (mCoverSides.length != 6) mCoverSides = new int[]{0, 0, 0, 0, 0, 0}; + if (mSidedRedstone.length != 6) + if (hasValidMetaTileEntity() && mMetaTileEntity.hasSidedRedstoneOutputBehavior()) + mSidedRedstone = new byte[]{0, 0, 0, 0, 0, 0}; + else mSidedRedstone = new byte[]{15, 15, 15, 15, 15, 15}; + + for (byte i = 0; i < 6; i++) mCoverBehaviors[i] = GregTech_API.getCoverBehavior(mCoverSides[i]); + + if (mID != 0 && createNewMetatileEntity(mID)) { + NBTTagList tItemList = aNBT.getTagList("Inventory", 10); + for (int i = 0; i < tItemList.tagCount(); i++) { + NBTTagCompound tTag = tItemList.getCompoundTagAt(i); + int tSlot = tTag.getInteger("IntSlot"); + if (tSlot >= 0 && tSlot < mMetaTileEntity.getRealInventory().length) { + mMetaTileEntity.getRealInventory()[tSlot] = GT_Utility.loadItem(tTag); + } + } + + try { + mMetaTileEntity.loadNBTData(aNBT); + } catch (Throwable e) { + GT_Log.err.println("Encountered Exception while loading MetaTileEntity, the Server should've crashed now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); + e.printStackTrace(GT_Log.err); + } + } + } + + if (mCoverData.length != 6) mCoverData = new int[]{0, 0, 0, 0, 0, 0}; + if (mCoverSides.length != 6) mCoverSides = new int[]{0, 0, 0, 0, 0, 0}; + if (mSidedRedstone.length != 6) + if (hasValidMetaTileEntity() && mMetaTileEntity.hasSidedRedstoneOutputBehavior()) + mSidedRedstone = new byte[]{0, 0, 0, 0, 0, 0}; + else mSidedRedstone = new byte[]{15, 15, 15, 15, 15, 15}; + + for (byte i = 0; i < 6; i++) mCoverBehaviors[i] = GregTech_API.getCoverBehavior(mCoverSides[i]); + } + + private boolean createNewMetatileEntity(short aID) { + if (aID <= 0 || aID >= GregTech_API.METATILEENTITIES.length || GregTech_API.METATILEENTITIES[aID] == null) { + GT_Log.err.println("MetaID " + aID + " not loadable => locking TileEntity!"); + } else { + if (aID != 0) { + if (hasValidMetaTileEntity()) mMetaTileEntity.setBaseMetaTileEntity(null); + GregTech_API.METATILEENTITIES[aID].newMetaEntity(this).setBaseMetaTileEntity(this); + mTickTimer = 0; + mID = aID; + return true; + } + } + return false; + } + + /** + * Used for ticking special BaseMetaTileEntities, which need that for Energy Conversion + * It's called right before onPostTick() + */ + public void updateStatus() { + // + } + + /** + * Called when trying to charge Items + */ + public void chargeItem(ItemStack aStack) { + decreaseStoredEU(GT_ModHandler.chargeElectricItem(aStack, (int) Math.min(Integer.MAX_VALUE, getStoredEU()), (int) Math.min(Integer.MAX_VALUE, mMetaTileEntity.getOutputTier()), false, false), true); + } + + /** + * Called when trying to discharge Items + */ + public void dischargeItem(ItemStack aStack) { + increaseStoredEnergyUnits(GT_ModHandler.dischargeElectricItem(aStack, (int) Math.min(Integer.MAX_VALUE, getEUCapacity() - getStoredEU()), (int) Math.min(Integer.MAX_VALUE, mMetaTileEntity.getInputTier()), false, false, false), true); + } + + @Override public void updateEntity() { - super.updateEntity(); - - if (!hasValidMetaTileEntity()) { - if (mMetaTileEntity == null) return; - mMetaTileEntity.setBaseMetaTileEntity(this); - } - - mRunningThroughTick = true; - long tTime = System.currentTimeMillis(); - - for (int tCode = 0; hasValidMetaTileEntity() && tCode >= 0;) {try {switch (tCode) { - case 0: - tCode++; - if (mTickTimer++==0) { - oX = xCoord; - oY = yCoord; - oZ = zCoord; - if (isServerSide()) for (byte i = 0; i < 6; i++) if (getCoverIDAtSide(i)!=0) if (!mMetaTileEntity.allowCoverOnSide(i, new GT_ItemStack(getCoverIDAtSide(i)))) dropCover(i, i, true); - - worldObj.markTileEntityChunkModified(xCoord, yCoord, zCoord, this); - - mMetaTileEntity.onFirstTick(this); - if (!hasValidMetaTileEntity()) { - mRunningThroughTick = false; - return; - } - } - case 1: - tCode++; - if (isClientSide()) { - if (mColor != oColor) { - mMetaTileEntity.onColorChangeClient(oColor = mColor); - issueTextureUpdate(); - } - - if (mLightValue != oLightValueClient) { - worldObj.setLightValue (EnumSkyBlock.Block, xCoord , yCoord , zCoord , mLightValue); - worldObj.updateLightByType(EnumSkyBlock.Block, xCoord , yCoord , zCoord ); - worldObj.updateLightByType(EnumSkyBlock.Block, xCoord+1, yCoord , zCoord ); - worldObj.updateLightByType(EnumSkyBlock.Block, xCoord-1, yCoord , zCoord ); - worldObj.updateLightByType(EnumSkyBlock.Block, xCoord , yCoord+1, zCoord ); - worldObj.updateLightByType(EnumSkyBlock.Block, xCoord , yCoord-1, zCoord ); - worldObj.updateLightByType(EnumSkyBlock.Block, xCoord , yCoord , zCoord+1); - worldObj.updateLightByType(EnumSkyBlock.Block, xCoord , yCoord , zCoord-1); - oLightValueClient = mLightValue; - issueTextureUpdate(); - } - - if (mNeedsUpdate) { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - //worldObj.func_147479_m(xCoord, yCoord, zCoord); - mNeedsUpdate = false; - } - } - case 2: case 3: case 4: case 5: case 6: case 7: - if (isServerSide() && mTickTimer > 10) { - for (byte i = (byte)(tCode-2); i < 6; i++) if (getCoverIDAtSide(i) != 0) { - tCode++; - GT_CoverBehavior tCover = getCoverBehaviorAtSide(i); - int tCoverTickRate = tCover.getTickRate(i, getCoverIDAtSide(i), mCoverData[i], this); - if (tCoverTickRate > 0 && mTickTimer % tCoverTickRate == 0) { - mCoverData[i] = tCover.doCoverThings(i, getInputRedstoneSignal(i), getCoverIDAtSide(i), mCoverData[i], this, mTickTimer); - if (!hasValidMetaTileEntity()) { - mRunningThroughTick = false; - return; - } - } - } - - } - case 8: - tCode=9; - if (isServerSide()) { - if (++mAverageEUInputIndex >= mAverageEUInput.length ) mAverageEUInputIndex = 0; - if (++mAverageEUOutputIndex >= mAverageEUOutput.length) mAverageEUOutputIndex = 0; - - mAverageEUInput [mAverageEUInputIndex ] = 0; - mAverageEUOutput[mAverageEUOutputIndex] = 0; - } - case 9: - tCode++; - mMetaTileEntity.onPreTick(this, mTickTimer); - if (!hasValidMetaTileEntity()) { - mRunningThroughTick = false; - return; - } - case 10: - tCode++; - if (isServerSide()) { - if (mRedstone != oRedstone || mTickTimer == 10) { - for (byte i = 0; i < 6; i++) mCoverBehaviors[i] = GregTech_API.getCoverBehavior(mCoverSides[i]); - oRedstone = mRedstone; - issueBlockUpdate(); - } - - if (xCoord != oX || yCoord != oY || zCoord != oZ) { - oX = xCoord; - oY = yCoord; - oZ = zCoord; - issueClientUpdate(); - clearTileEntityBuffer(); - } - - if (mFacing != oFacing) { - oFacing = mFacing; - for (byte i = 0; i < 6; i++) if (getCoverIDAtSide(i)!=0) if (!mMetaTileEntity.allowCoverOnSide(i, new GT_ItemStack(getCoverIDAtSide(i)))) dropCover(i, i, true); - issueBlockUpdate(); - } - - if (mTickTimer > 20 && mMetaTileEntity.isElectric()) { - mAcceptedAmperes = 0; - - if (getOutputVoltage() != oOutput) { - oOutput = getOutputVoltage(); - } - - if (mMetaTileEntity.isEnetOutput() || mMetaTileEntity.isEnetInput()) { - for (byte i = 0; i < 6; i++) { - boolean - temp = isEnergyInputSide(i); - if (temp != mActiveEUInputs[i]) { - mActiveEUInputs[i] = temp; - } - temp = isEnergyOutputSide(i); - if (temp != mActiveEUOutputs[i]) { - mActiveEUOutputs[i] = temp; - } - } - } - - if (mMetaTileEntity.isEnetOutput() && oOutput > 0) { - long tOutputVoltage = Math.max(oOutput, oOutput + (1 << GT_Utility.getTier(oOutput))), tUsableAmperage = Math.min(getOutputAmperage(), (getStoredEU() - mMetaTileEntity.getMinimumStoredEU()) / tOutputVoltage); - if (tUsableAmperage > 0) { - long tEU = tOutputVoltage * IEnergyConnected.Util.emitEnergyToNetwork(oOutput, tUsableAmperage, this); - mAverageEUOutput[mAverageEUOutputIndex] += tEU; - decreaseStoredEU(tEU, true); - } - } - if (getEUCapacity() > 0) { - if (GregTech_API.sMachineFireExplosions && getRandomNumber(1000) == 0) { - Block tBlock = getBlockAtSide((byte)getRandomNumber(6)); - if (tBlock != null && tBlock instanceof BlockFire) doEnergyExplosion(); - } - - if (!hasValidMetaTileEntity()) { - mRunningThroughTick = false; - return; - } - - if (getRandomNumber(1000) == 0) { - if((getCoverIDAtSide((byte)1) == 0 && worldObj.getPrecipitationHeight(xCoord , zCoord ) - 2 < yCoord) - || (getCoverIDAtSide((byte)2) == 0 && worldObj.getPrecipitationHeight(xCoord , zCoord-1) - 1 < yCoord) - || (getCoverIDAtSide((byte)3) == 0 && worldObj.getPrecipitationHeight(xCoord , zCoord+1) - 1 < yCoord) - || (getCoverIDAtSide((byte)4) == 0 && worldObj.getPrecipitationHeight(xCoord-1, zCoord ) - 1 < yCoord) - || (getCoverIDAtSide((byte)5) == 0 && worldObj.getPrecipitationHeight(xCoord+1, zCoord ) - 1 < yCoord)) { - if (GregTech_API.sMachineRainExplosions && worldObj.isRaining() && getBiome().rainfall > 0) { - if (getRandomNumber(10)==0) { - try{GT_Mod.instance.achievements.issueAchievement(this.getWorldObj().getPlayerEntityByName(mOwnerName), "badweather");}catch(Exception e){} - doEnergyExplosion(); - }else setOnFire(); - } - if (!hasValidMetaTileEntity()) { - mRunningThroughTick = false; - return; - } - if (GregTech_API.sMachineThunderExplosions && worldObj.isThundering() && getBiome().rainfall > 0 && getRandomNumber(3) == 0) { - try{GT_Mod.instance.achievements.issueAchievement(this.getWorldObj().getPlayerEntityByName(mOwnerName), "badweather");}catch(Exception e){} - doEnergyExplosion(); - } - } - } - } - } - - if (!hasValidMetaTileEntity()) { - mRunningThroughTick = false; - return; - } - } - case 11: - tCode++; - if (isServerSide()) { - if (mMetaTileEntity.dechargerSlotCount() > 0 && getStoredEU() < getEUCapacity()) { - for (int i = mMetaTileEntity.dechargerSlotStartIndex(), k = mMetaTileEntity.dechargerSlotCount()+i; i < k; i++) { - if (mMetaTileEntity.mInventory[i] != null && getStoredEU() < getEUCapacity()) { - dischargeItem(mMetaTileEntity.mInventory[i]); - if (mMetaTileEntity.mInventory[i].stackSize <= 0) mMetaTileEntity.mInventory[i] = null; - mInventoryChanged = true; - } - } - } - } - case 12: - tCode++; - if (isServerSide()) { - if (mMetaTileEntity.rechargerSlotCount() > 0 && getStoredEU() > 0) { - for (int i = mMetaTileEntity.rechargerSlotStartIndex(), k = mMetaTileEntity.rechargerSlotCount()+i; i < k; i++) { - if (getStoredEU() > 0 && mMetaTileEntity.mInventory[i] != null) { - chargeItem(mMetaTileEntity.mInventory[i]); - if (mMetaTileEntity.mInventory[i].stackSize <= 0) mMetaTileEntity.mInventory[i] = null; - mInventoryChanged = true; - } - } - } - } - case 13: - tCode++; - updateStatus(); - if (!hasValidMetaTileEntity()) { - mRunningThroughTick = false; - return; - } - case 14: - tCode++; - mMetaTileEntity.onPostTick(this, mTickTimer); - if (!hasValidMetaTileEntity()) { - mRunningThroughTick = false; - return; - } - case 15: - tCode++; - if (isServerSide()) { - if (mTickTimer % 10 == 0) { - if (mSendClientData) { - NW.sendPacketToAllPlayersInRange(worldObj, new GT_Packet_TileEntity(xCoord, (short)yCoord, zCoord, mID, mCoverSides[0], mCoverSides[1], mCoverSides[2], mCoverSides[3], mCoverSides[4], mCoverSides[5], oTextureData = (byte)((mFacing&7) | (mActive?8:0) | (mRedstone?16:0) | (mLockUpgrade?32:0)), oUpdateData = hasValidMetaTileEntity()?mMetaTileEntity.getUpdateData():0, oRedstoneData = (byte)(((mSidedRedstone[0]>0)?1:0)|((mSidedRedstone[1]>0)?2:0)|((mSidedRedstone[2]>0)?4:0)|((mSidedRedstone[3]>0)?8:0)|((mSidedRedstone[4]>0)?16:0)|((mSidedRedstone[5]>0)?32:0)), oColor = mColor), xCoord, zCoord); - mSendClientData = false; - } - } - - if (mTickTimer > 10) { - byte tData = (byte)((mFacing&7)|(mActive?8:0)|(mRedstone?16:0)|(mLockUpgrade?32:0)); - if (tData != oTextureData) sendBlockEvent((byte)0, oTextureData = tData); - tData = mMetaTileEntity.getUpdateData(); - if (tData != oUpdateData) sendBlockEvent((byte)1, oUpdateData = tData); - if (mColor != oColor) sendBlockEvent((byte)2, oColor = mColor); - tData = (byte)(((mSidedRedstone[0]>0)?1:0)|((mSidedRedstone[1]>0)?2:0)|((mSidedRedstone[2]>0)?4:0)|((mSidedRedstone[3]>0)?8:0)|((mSidedRedstone[4]>0)?16:0)|((mSidedRedstone[5]>0)?32:0)); - if (tData != oRedstoneData) sendBlockEvent((byte)3, oRedstoneData = tData); - if (mLightValue != oLightValue) { - worldObj.setLightValue (EnumSkyBlock.Block, xCoord , yCoord , zCoord , mLightValue); - worldObj.updateLightByType(EnumSkyBlock.Block, xCoord , yCoord , zCoord ); - worldObj.updateLightByType(EnumSkyBlock.Block, xCoord+1, yCoord , zCoord ); - worldObj.updateLightByType(EnumSkyBlock.Block, xCoord-1, yCoord , zCoord ); - worldObj.updateLightByType(EnumSkyBlock.Block, xCoord , yCoord+1, zCoord ); - worldObj.updateLightByType(EnumSkyBlock.Block, xCoord , yCoord-1, zCoord ); - worldObj.updateLightByType(EnumSkyBlock.Block, xCoord , yCoord , zCoord+1); - worldObj.updateLightByType(EnumSkyBlock.Block, xCoord , yCoord , zCoord-1); - issueTextureUpdate(); - sendBlockEvent((byte)7, oLightValue = mLightValue); - } - } - - if (mNeedsBlockUpdate) { - worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockOffset(0, 0, 0)); - mNeedsBlockUpdate = false; - } - } - default: - tCode = -1; - break; - }} catch (Throwable e) { - GT_Log.err.println("Encountered Exception while ticking MetaTileEntity in Step "+(tCode-1)+". The Game should've crashed now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); - e.printStackTrace(GT_Log.err); - }} - - if (isServerSide() && hasValidMetaTileEntity()) { - tTime = System.currentTimeMillis() - tTime; - if (mTimeStatistics.length > 0) mTimeStatistics[mTimeStatisticsIndex = (mTimeStatisticsIndex + 1) % mTimeStatistics.length] = (int)tTime; - if (tTime > 0 && tTime > GregTech_API.MILLISECOND_THRESHOLD_UNTIL_LAG_WARNING && mTickTimer > 1000 && getMetaTileEntity().doTickProfilingMessageDuringThisTick() && mLagWarningCount++<10) System.out.println("WARNING: Possible Lag Source at [" + xCoord + ", " + yCoord + ", " + zCoord + "] in Dimension " + worldObj.provider.dimensionId + " with " + tTime + "ms caused by an instance of " + getMetaTileEntity().getClass()); - } - - mWorkUpdate = mInventoryChanged = mRunningThroughTick = false; + super.updateEntity(); + + if (!hasValidMetaTileEntity()) { + if (mMetaTileEntity == null) return; + mMetaTileEntity.setBaseMetaTileEntity(this); + } + + mRunningThroughTick = true; + long tTime = System.currentTimeMillis(); + + for (int tCode = 0; hasValidMetaTileEntity() && tCode >= 0; ) { + try { + switch (tCode) { + case 0: + tCode++; + if (mTickTimer++ == 0) { + oX = xCoord; + oY = yCoord; + oZ = zCoord; + if (isServerSide()) for (byte i = 0; i < 6; i++) + if (getCoverIDAtSide(i) != 0) + if (!mMetaTileEntity.allowCoverOnSide(i, new GT_ItemStack(getCoverIDAtSide(i)))) + dropCover(i, i, true); + + worldObj.markTileEntityChunkModified(xCoord, yCoord, zCoord, this); + + mMetaTileEntity.onFirstTick(this); + if (!hasValidMetaTileEntity()) { + mRunningThroughTick = false; + return; + } + } + case 1: + tCode++; + if (isClientSide()) { + if (mColor != oColor) { + mMetaTileEntity.onColorChangeClient(oColor = mColor); + issueTextureUpdate(); + } + + if (mLightValue != oLightValueClient) { + worldObj.setLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord, mLightValue); + worldObj.updateLightByType(EnumSkyBlock.Block, xCoord, yCoord, zCoord); + worldObj.updateLightByType(EnumSkyBlock.Block, xCoord + 1, yCoord, zCoord); + worldObj.updateLightByType(EnumSkyBlock.Block, xCoord - 1, yCoord, zCoord); + worldObj.updateLightByType(EnumSkyBlock.Block, xCoord, yCoord + 1, zCoord); + worldObj.updateLightByType(EnumSkyBlock.Block, xCoord, yCoord - 1, zCoord); + worldObj.updateLightByType(EnumSkyBlock.Block, xCoord, yCoord, zCoord + 1); + worldObj.updateLightByType(EnumSkyBlock.Block, xCoord, yCoord, zCoord - 1); + oLightValueClient = mLightValue; + issueTextureUpdate(); + } + + if (mNeedsUpdate) { + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + //worldObj.func_147479_m(xCoord, yCoord, zCoord); + mNeedsUpdate = false; + } + } + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + if (isServerSide() && mTickTimer > 10) { + for (byte i = (byte) (tCode - 2); i < 6; i++) + if (getCoverIDAtSide(i) != 0) { + tCode++; + GT_CoverBehavior tCover = getCoverBehaviorAtSide(i); + int tCoverTickRate = tCover.getTickRate(i, getCoverIDAtSide(i), mCoverData[i], this); + if (tCoverTickRate > 0 && mTickTimer % tCoverTickRate == 0) { + mCoverData[i] = tCover.doCoverThings(i, getInputRedstoneSignal(i), getCoverIDAtSide(i), mCoverData[i], this, mTickTimer); + if (!hasValidMetaTileEntity()) { + mRunningThroughTick = false; + return; + } + } + } + + } + case 8: + tCode = 9; + if (isServerSide()) { + if (++mAverageEUInputIndex >= mAverageEUInput.length) mAverageEUInputIndex = 0; + if (++mAverageEUOutputIndex >= mAverageEUOutput.length) mAverageEUOutputIndex = 0; + + mAverageEUInput[mAverageEUInputIndex] = 0; + mAverageEUOutput[mAverageEUOutputIndex] = 0; + } + case 9: + tCode++; + mMetaTileEntity.onPreTick(this, mTickTimer); + if (!hasValidMetaTileEntity()) { + mRunningThroughTick = false; + return; + } + case 10: + tCode++; + if (isServerSide()) { + if (mRedstone != oRedstone || mTickTimer == 10) { + for (byte i = 0; i < 6; i++) + mCoverBehaviors[i] = GregTech_API.getCoverBehavior(mCoverSides[i]); + oRedstone = mRedstone; + issueBlockUpdate(); + } + + if (xCoord != oX || yCoord != oY || zCoord != oZ) { + oX = xCoord; + oY = yCoord; + oZ = zCoord; + issueClientUpdate(); + clearTileEntityBuffer(); + } + + if (mFacing != oFacing) { + oFacing = mFacing; + for (byte i = 0; i < 6; i++) + if (getCoverIDAtSide(i) != 0) + if (!mMetaTileEntity.allowCoverOnSide(i, new GT_ItemStack(getCoverIDAtSide(i)))) + dropCover(i, i, true); + issueBlockUpdate(); + } + + if (mTickTimer > 20 && mMetaTileEntity.isElectric()) { + mAcceptedAmperes = 0; + + if (getOutputVoltage() != oOutput) { + oOutput = getOutputVoltage(); + } + + if (mMetaTileEntity.isEnetOutput() || mMetaTileEntity.isEnetInput()) { + for (byte i = 0; i < 6; i++) { + boolean + temp = isEnergyInputSide(i); + if (temp != mActiveEUInputs[i]) { + mActiveEUInputs[i] = temp; + } + temp = isEnergyOutputSide(i); + if (temp != mActiveEUOutputs[i]) { + mActiveEUOutputs[i] = temp; + } + } + } + + if (mMetaTileEntity.isEnetOutput() && oOutput > 0) { + long tOutputVoltage = Math.max(oOutput, oOutput + (1 << GT_Utility.getTier(oOutput))), tUsableAmperage = Math.min(getOutputAmperage(), (getStoredEU() - mMetaTileEntity.getMinimumStoredEU()) / tOutputVoltage); + if (tUsableAmperage > 0) { + long tEU = tOutputVoltage * IEnergyConnected.Util.emitEnergyToNetwork(oOutput, tUsableAmperage, this); + mAverageEUOutput[mAverageEUOutputIndex] += tEU; + decreaseStoredEU(tEU, true); + } + } + if (getEUCapacity() > 0) { + if (GregTech_API.sMachineFireExplosions && getRandomNumber(1000) == 0) { + Block tBlock = getBlockAtSide((byte) getRandomNumber(6)); + if (tBlock != null && tBlock instanceof BlockFire) doEnergyExplosion(); + } + + if (!hasValidMetaTileEntity()) { + mRunningThroughTick = false; + return; + } + + if (getRandomNumber(1000) == 0) { + if ((getCoverIDAtSide((byte) 1) == 0 && worldObj.getPrecipitationHeight(xCoord, zCoord) - 2 < yCoord) + || (getCoverIDAtSide((byte) 2) == 0 && worldObj.getPrecipitationHeight(xCoord, zCoord - 1) - 1 < yCoord) + || (getCoverIDAtSide((byte) 3) == 0 && worldObj.getPrecipitationHeight(xCoord, zCoord + 1) - 1 < yCoord) + || (getCoverIDAtSide((byte) 4) == 0 && worldObj.getPrecipitationHeight(xCoord - 1, zCoord) - 1 < yCoord) + || (getCoverIDAtSide((byte) 5) == 0 && worldObj.getPrecipitationHeight(xCoord + 1, zCoord) - 1 < yCoord)) { + if (GregTech_API.sMachineRainExplosions && worldObj.isRaining() && getBiome().rainfall > 0) { + if (getRandomNumber(10) == 0) { + try { + GT_Mod.instance.achievements.issueAchievement(this.getWorldObj().getPlayerEntityByName(mOwnerName), "badweather"); + } catch (Exception e) { + } + doEnergyExplosion(); + } else setOnFire(); + } + if (!hasValidMetaTileEntity()) { + mRunningThroughTick = false; + return; + } + if (GregTech_API.sMachineThunderExplosions && worldObj.isThundering() && getBiome().rainfall > 0 && getRandomNumber(3) == 0) { + try { + GT_Mod.instance.achievements.issueAchievement(this.getWorldObj().getPlayerEntityByName(mOwnerName), "badweather"); + } catch (Exception e) { + } + doEnergyExplosion(); + } + } + } + } + } + + if (!hasValidMetaTileEntity()) { + mRunningThroughTick = false; + return; + } + } + case 11: + tCode++; + if (isServerSide()) { + if (mMetaTileEntity.dechargerSlotCount() > 0 && getStoredEU() < getEUCapacity()) { + for (int i = mMetaTileEntity.dechargerSlotStartIndex(), k = mMetaTileEntity.dechargerSlotCount() + i; i < k; i++) { + if (mMetaTileEntity.mInventory[i] != null && getStoredEU() < getEUCapacity()) { + dischargeItem(mMetaTileEntity.mInventory[i]); + if (mMetaTileEntity.mInventory[i].stackSize <= 0) + mMetaTileEntity.mInventory[i] = null; + mInventoryChanged = true; + } + } + } + } + case 12: + tCode++; + if (isServerSide()) { + if (mMetaTileEntity.rechargerSlotCount() > 0 && getStoredEU() > 0) { + for (int i = mMetaTileEntity.rechargerSlotStartIndex(), k = mMetaTileEntity.rechargerSlotCount() + i; i < k; i++) { + if (getStoredEU() > 0 && mMetaTileEntity.mInventory[i] != null) { + chargeItem(mMetaTileEntity.mInventory[i]); + if (mMetaTileEntity.mInventory[i].stackSize <= 0) + mMetaTileEntity.mInventory[i] = null; + mInventoryChanged = true; + } + } + } + } + case 13: + tCode++; + updateStatus(); + if (!hasValidMetaTileEntity()) { + mRunningThroughTick = false; + return; + } + case 14: + tCode++; + mMetaTileEntity.onPostTick(this, mTickTimer); + if (!hasValidMetaTileEntity()) { + mRunningThroughTick = false; + return; + } + case 15: + tCode++; + if (isServerSide()) { + if (mTickTimer % 10 == 0) { + if (mSendClientData) { + NW.sendPacketToAllPlayersInRange(worldObj, new GT_Packet_TileEntity(xCoord, (short) yCoord, zCoord, mID, mCoverSides[0], mCoverSides[1], mCoverSides[2], mCoverSides[3], mCoverSides[4], mCoverSides[5], oTextureData = (byte) ((mFacing & 7) | (mActive ? 8 : 0) | (mRedstone ? 16 : 0) | (mLockUpgrade ? 32 : 0)), oUpdateData = hasValidMetaTileEntity() ? mMetaTileEntity.getUpdateData() : 0, oRedstoneData = (byte) (((mSidedRedstone[0] > 0) ? 1 : 0) | ((mSidedRedstone[1] > 0) ? 2 : 0) | ((mSidedRedstone[2] > 0) ? 4 : 0) | ((mSidedRedstone[3] > 0) ? 8 : 0) | ((mSidedRedstone[4] > 0) ? 16 : 0) | ((mSidedRedstone[5] > 0) ? 32 : 0)), oColor = mColor), xCoord, zCoord); + mSendClientData = false; + } + } + + if (mTickTimer > 10) { + byte tData = (byte) ((mFacing & 7) | (mActive ? 8 : 0) | (mRedstone ? 16 : 0) | (mLockUpgrade ? 32 : 0)); + if (tData != oTextureData) sendBlockEvent((byte) 0, oTextureData = tData); + tData = mMetaTileEntity.getUpdateData(); + if (tData != oUpdateData) sendBlockEvent((byte) 1, oUpdateData = tData); + if (mColor != oColor) sendBlockEvent((byte) 2, oColor = mColor); + tData = (byte) (((mSidedRedstone[0] > 0) ? 1 : 0) | ((mSidedRedstone[1] > 0) ? 2 : 0) | ((mSidedRedstone[2] > 0) ? 4 : 0) | ((mSidedRedstone[3] > 0) ? 8 : 0) | ((mSidedRedstone[4] > 0) ? 16 : 0) | ((mSidedRedstone[5] > 0) ? 32 : 0)); + if (tData != oRedstoneData) sendBlockEvent((byte) 3, oRedstoneData = tData); + if (mLightValue != oLightValue) { + worldObj.setLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord, mLightValue); + worldObj.updateLightByType(EnumSkyBlock.Block, xCoord, yCoord, zCoord); + worldObj.updateLightByType(EnumSkyBlock.Block, xCoord + 1, yCoord, zCoord); + worldObj.updateLightByType(EnumSkyBlock.Block, xCoord - 1, yCoord, zCoord); + worldObj.updateLightByType(EnumSkyBlock.Block, xCoord, yCoord + 1, zCoord); + worldObj.updateLightByType(EnumSkyBlock.Block, xCoord, yCoord - 1, zCoord); + worldObj.updateLightByType(EnumSkyBlock.Block, xCoord, yCoord, zCoord + 1); + worldObj.updateLightByType(EnumSkyBlock.Block, xCoord, yCoord, zCoord - 1); + issueTextureUpdate(); + sendBlockEvent((byte) 7, oLightValue = mLightValue); + } + } + + if (mNeedsBlockUpdate) { + worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockOffset(0, 0, 0)); + mNeedsBlockUpdate = false; + } + } + default: + tCode = -1; + break; + } + } catch (Throwable e) { + GT_Log.err.println("Encountered Exception while ticking MetaTileEntity in Step " + (tCode - 1) + ". The Game should've crashed now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); + e.printStackTrace(GT_Log.err); + } + } + + if (isServerSide() && hasValidMetaTileEntity()) { + tTime = System.currentTimeMillis() - tTime; + if (mTimeStatistics.length > 0) + mTimeStatistics[mTimeStatisticsIndex = (mTimeStatisticsIndex + 1) % mTimeStatistics.length] = (int) tTime; + if (tTime > 0 && tTime > GregTech_API.MILLISECOND_THRESHOLD_UNTIL_LAG_WARNING && mTickTimer > 1000 && getMetaTileEntity().doTickProfilingMessageDuringThisTick() && mLagWarningCount++ < 10) + System.out.println("WARNING: Possible Lag Source at [" + xCoord + ", " + yCoord + ", " + zCoord + "] in Dimension " + worldObj.provider.dimensionId + " with " + tTime + "ms caused by an instance of " + getMetaTileEntity().getClass()); + } + + mWorkUpdate = mInventoryChanged = mRunningThroughTick = false; } - - @Override + + @Override public Packet getDescriptionPacket() { - issueClientUpdate(); + issueClientUpdate(); return null; } - - public final void receiveMetaTileEntityData(short aID, int aCover0, int aCover1, int aCover2, int aCover3, int aCover4, int aCover5, byte aTextureData, byte aUpdateData, byte aRedstoneData, byte aColorData) { - issueTextureUpdate(); - if (mID != aID && aID > 0) { - mID = aID; - createNewMetatileEntity(mID); - } - - mCoverSides[0] = aCover0; - mCoverSides[1] = aCover1; - mCoverSides[2] = aCover2; - mCoverSides[3] = aCover3; - mCoverSides[4] = aCover4; - mCoverSides[5] = aCover5; - - for (byte i = 0; i < 6; i++) mCoverBehaviors[i] = GregTech_API.getCoverBehavior(mCoverSides[i]); - - receiveClientEvent(0, aTextureData); - receiveClientEvent(1, aUpdateData); - receiveClientEvent(2, aColorData); - receiveClientEvent(3, aRedstoneData); - } - + + public final void receiveMetaTileEntityData(short aID, int aCover0, int aCover1, int aCover2, int aCover3, int aCover4, int aCover5, byte aTextureData, byte aUpdateData, byte aRedstoneData, byte aColorData) { + issueTextureUpdate(); + if (mID != aID && aID > 0) { + mID = aID; + createNewMetatileEntity(mID); + } + + mCoverSides[0] = aCover0; + mCoverSides[1] = aCover1; + mCoverSides[2] = aCover2; + mCoverSides[3] = aCover3; + mCoverSides[4] = aCover4; + mCoverSides[5] = aCover5; + + for (byte i = 0; i < 6; i++) mCoverBehaviors[i] = GregTech_API.getCoverBehavior(mCoverSides[i]); + + receiveClientEvent(0, aTextureData); + receiveClientEvent(1, aUpdateData); + receiveClientEvent(2, aColorData); + receiveClientEvent(3, aRedstoneData); + } + @Override public boolean receiveClientEvent(int aEventID, int aValue) { - super.receiveClientEvent(aEventID, aValue); - - if (hasValidMetaTileEntity()) { - try { - mMetaTileEntity.receiveClientEvent((byte)aEventID, (byte)aValue); - } catch(Throwable e) { - GT_Log.err.println("Encountered Exception while receiving Data from the Server, the Client should've been crashed by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); - e.printStackTrace(GT_Log.err); - } - } - - if (isClientSide()) { - issueTextureUpdate(); - switch(aEventID) { - case 0: - mFacing = (byte)(aValue& 7); - mActive = ((aValue& 8) != 0); - mRedstone = ((aValue&16) != 0); - //mLockUpgrade = ((aValue&32) != 0); - break; - case 1: - if (hasValidMetaTileEntity()) mMetaTileEntity.onValueUpdate((byte)aValue); - break; - case 2: - if (aValue > 16 || aValue < 0) aValue = 0; - mColor = (byte)aValue; - break; - case 3: - mSidedRedstone[0] = (byte)((aValue& 1)>0?15:0); - mSidedRedstone[1] = (byte)((aValue& 2)>0?15:0); - mSidedRedstone[2] = (byte)((aValue& 4)>0?15:0); - mSidedRedstone[3] = (byte)((aValue& 8)>0?15:0); - mSidedRedstone[4] = (byte)((aValue&16)>0?15:0); - mSidedRedstone[5] = (byte)((aValue&32)>0?15:0); - break; - case 4: - if (hasValidMetaTileEntity() && mTickTimer > 20) mMetaTileEntity.doSound((byte)aValue, xCoord+0.5, yCoord+0.5, zCoord+0.5); - break; - case 5: - if (hasValidMetaTileEntity() && mTickTimer > 20) mMetaTileEntity.startSoundLoop((byte)aValue, xCoord+0.5, yCoord+0.5, zCoord+0.5); - break; - case 6: - if (hasValidMetaTileEntity() && mTickTimer > 20) mMetaTileEntity.stopSoundLoop((byte)aValue, xCoord+0.5, yCoord+0.5, zCoord+0.5); - break; - case 7: - mLightValue = (byte)aValue; - break; - } - } - return true; - } - - public ArrayList getDebugInfo(EntityPlayer aPlayer, int aLogLevel) { - ArrayList tList = new ArrayList(); - if (aLogLevel > 2) { - tList.add("Meta-ID: " + mID + (canAccessData()?" valid":" invalid") + (mMetaTileEntity==null?" MetaTileEntity == null!":" ")); - } - if (aLogLevel > 1) { - if (mTimeStatistics.length > 0) { - double tAverageTime = 0; for (int tTime : mTimeStatistics) tAverageTime += tTime; - tList.add("This particular TileEntity has caused an average CPU-load of ~" + (tAverageTime/mTimeStatistics.length) + "ms over the last " + mTimeStatistics.length + " ticks."); - } - if (mLagWarningCount > 0) { - tList.add("This TileEntity has also caused " + (mLagWarningCount>=10?"more than 10":mLagWarningCount) + " Lag Spike Warnings (anything taking longer than " + GregTech_API.MILLISECOND_THRESHOLD_UNTIL_LAG_WARNING + "ms) on the Server."); - } - tList.add("Is" + (mMetaTileEntity.isAccessAllowed(aPlayer)?" ":" not ") + "accessible for you"); - } - if (aLogLevel > 0) { - if (getSteamCapacity() > 0 && hasSteamEngineUpgrade()) tList.add(getStoredSteam() + " of " + getSteamCapacity() + " Steam"); - tList.add("Machine is " + (mActive?"active":"inactive")); - if (!mHasEnoughEnergy) tList.add("ATTENTION: This Device consumes Energy at a higher Rate than you input. You could insert more to speed up the process."); - } - return mMetaTileEntity.getSpecialDebugInfo(this, aPlayer, aLogLevel, tList); - } - - @Override public void issueTextureUpdate() {mNeedsUpdate = true;} - @Override public void issueBlockUpdate() {mNeedsBlockUpdate = true;} - @Override public void issueClientUpdate() {mSendClientData = true;} - @Override public void issueCoverUpdate(byte aSide) {issueClientUpdate();} - - @Override public byte getStrongestRedstone() {return (byte)Math.max(getInternalInputRedstoneSignal((byte)0), Math.max(getInternalInputRedstoneSignal((byte)1), Math.max(getInternalInputRedstoneSignal((byte)2), Math.max(getInternalInputRedstoneSignal((byte)3), Math.max(getInternalInputRedstoneSignal((byte)4), getInternalInputRedstoneSignal((byte)5))))));} - - @Override public boolean getRedstone() {return getRedstone((byte)0)||getRedstone((byte)1)||getRedstone((byte)2)||getRedstone((byte)3)||getRedstone((byte)4)||getRedstone((byte)5);} - @Override public boolean getRedstone(byte aSide) {return getInternalInputRedstoneSignal(aSide) > 0;} - - public ITexture getCoverTexture(byte aSide) {return GregTech_API.sCovers.get(new GT_ItemStack(getCoverIDAtSide(aSide)));} - - @Override public boolean isGivingInformation() {if (canAccessData()) return mMetaTileEntity.isGivingInformation(); return false;} - @Override public boolean isValidFacing(byte aSide) {if (canAccessData()) return mMetaTileEntity.isFacingValid(aSide); return false;} - @Override public byte getBackFacing() {return GT_Utility.getOppositeSide(mFacing);} - @Override public byte getFrontFacing() {return mFacing;} - @Override public void setFrontFacing(byte aFacing) {if (isValidFacing(aFacing)) {mFacing = aFacing; mMetaTileEntity.onFacingChange(); onMachineBlockUpdate();}} - @Override public int getSizeInventory() {if (canAccessData()) return mMetaTileEntity.getSizeInventory(); return 0;} - @Override public ItemStack getStackInSlot(int aIndex) {if (canAccessData()) return mMetaTileEntity.getStackInSlot(aIndex); return null;} - @Override public void setInventorySlotContents(int aIndex, ItemStack aStack) {mInventoryChanged = true; if (canAccessData()) mMetaTileEntity.setInventorySlotContents(aIndex, worldObj.isRemote?aStack:GT_OreDictUnificator.setStack(true, aStack));} - @Override public String getInventoryName() {if (canAccessData()) return mMetaTileEntity.getInventoryName(); if (GregTech_API.METATILEENTITIES[mID] != null) return GregTech_API.METATILEENTITIES[mID].getInventoryName(); return "";} - @Override public int getInventoryStackLimit() {if (canAccessData()) return mMetaTileEntity.getInventoryStackLimit(); return 64;} - @Override public void openInventory() {if (canAccessData()) mMetaTileEntity.onOpenGUI();} - @Override public void closeInventory() {if (canAccessData()) mMetaTileEntity.onCloseGUI();} - @Override public boolean isUseableByPlayer(EntityPlayer aPlayer) {return canAccessData() && playerOwnsThis(aPlayer, false) && mTickTimer>40 && getTileEntityOffset(0, 0, 0) == this && aPlayer.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 64 && mMetaTileEntity.isAccessAllowed(aPlayer);} - @Override public void validate() {super.validate(); mTickTimer = 0;} - @Override public void invalidate() {tileEntityInvalid = false; if (canAccessData()) {mMetaTileEntity.onRemoval(); mMetaTileEntity.setBaseMetaTileEntity(null);} super.invalidate();} - @Override public void onChunkUnload() {super.onChunkUnload();} - @Override public boolean hasCustomInventoryName() {return false;} - @Override public ItemStack getStackInSlotOnClosing(int slot) {ItemStack stack = getStackInSlot(slot); if (stack != null) setInventorySlotContents(slot, null); return stack;} - @Override public void onMachineBlockUpdate() {if (canAccessData()) mMetaTileEntity.onMachineBlockUpdate();} - @Override public int getProgress() {return canAccessData()?mMetaTileEntity.getProgresstime():0;} - @Override public int getMaxProgress() {return canAccessData()?mMetaTileEntity.maxProgresstime():0;} - @Override public boolean increaseProgress(int aProgressAmountInTicks) {return canAccessData()?mMetaTileEntity.increaseProgress(aProgressAmountInTicks)!=aProgressAmountInTicks:false;} - @Override public boolean hasThingsToDo() {return getMaxProgress()>0;} - @Override public void enableWorking() {if (!mWorks) mWorkUpdate = true; mWorks = true;} - @Override public void disableWorking() {mWorks = false;} - @Override public boolean isAllowedToWork() {return mWorks;} - @Override public boolean hasWorkJustBeenEnabled() {return mWorkUpdate;} - @Override public void setWorkDataValue(byte aValue) {mWorkData = aValue;} - @Override public byte getWorkDataValue() {return mWorkData;} - @Override public int getMetaTileID() {return mID;} - @Override public int setMetaTileID(short aID) {return mID = aID;} - @Override public boolean isActive() {return mActive;} - @Override public void setActive(boolean aActive) {mActive = aActive;} - @Override public long getTimer() {return mTickTimer;} - @Override public boolean decreaseStoredEnergyUnits(long aEnergy, boolean aIgnoreTooLessEnergy) {if (!canAccessData()) return false; return mHasEnoughEnergy = decreaseStoredEU(aEnergy, aIgnoreTooLessEnergy) || decreaseStoredSteam(aEnergy, false) || (aIgnoreTooLessEnergy && (decreaseStoredSteam(aEnergy, true)));} - @Override public boolean increaseStoredEnergyUnits(long aEnergy, boolean aIgnoreTooMuchEnergy) {if (!canAccessData()) return false; if (getStoredEU() < getEUCapacity() || aIgnoreTooMuchEnergy) {setStoredEU(mMetaTileEntity.getEUVar() + aEnergy); return true;} return false;} - @Override public boolean inputEnergyFrom(byte aSide) {if (aSide == 6) return true; if (isServerSide()) return (aSide>=0&&aSide<6?mActiveEUInputs [aSide]:false)&&!mReleaseEnergy; return isEnergyInputSide (aSide);} - @Override public boolean outputsEnergyTo(byte aSide) {if (aSide == 6) return true; if (isServerSide()) return (aSide>=0&&aSide<6?mActiveEUOutputs[aSide]:false)|| mReleaseEnergy; return isEnergyOutputSide(aSide);} - @Override public long getOutputAmperage() {if (canAccessData() && mMetaTileEntity.isElectric()) return mMetaTileEntity.maxAmperesOut(); return 0;} - @Override public long getOutputVoltage() {if (canAccessData() && mMetaTileEntity.isElectric() && mMetaTileEntity.isEnetOutput()) return mMetaTileEntity.maxEUOutput(); return 0;} - @Override public long getInputAmperage() {if (canAccessData() && mMetaTileEntity.isElectric()) return mMetaTileEntity.maxAmperesIn(); return 0;} - @Override public long getInputVoltage() {if (canAccessData() && mMetaTileEntity.isElectric()) return mMetaTileEntity.maxEUInput(); return Integer.MAX_VALUE;} - @Override public boolean increaseStoredSteam(long aEnergy, boolean aIgnoreTooMuchEnergy) {if (!canAccessData()) return false; if (mMetaTileEntity.getSteamVar() < getSteamCapacity() || aIgnoreTooMuchEnergy) {setStoredSteam(mMetaTileEntity.getSteamVar() + aEnergy); return true;} return false;} - @Override public String[] getDescription() {if (canAccessData()) return mMetaTileEntity.getDescription(); return new String[0];} - @Override public boolean isValidSlot(int aIndex) {if (canAccessData()) return mMetaTileEntity.isValidSlot(aIndex); return false;} - @Override public long getUniversalEnergyStored() {return Math.max(getStoredEU(), getStoredSteam());} - @Override public long getUniversalEnergyCapacity() {return Math.max(getEUCapacity(), getSteamCapacity());} - @Override public long getStoredEU() {if (canAccessData()) return Math.min(mMetaTileEntity.getEUVar(), getEUCapacity()); return 0;} - @Override public long getEUCapacity() {if (canAccessData()) return mMetaTileEntity.maxEUStore(); return 0;} - @Override public long getStoredSteam() {if (canAccessData()) return Math.min(mMetaTileEntity.getSteamVar(), getSteamCapacity()); return 0;} - @Override public long getSteamCapacity() {if (canAccessData()) return mMetaTileEntity.maxSteamStore(); return 0;} - @Override public ITexture[] getTexture(byte aSide) {ITexture rIcon = getCoverTexture(aSide); if (rIcon != null) return new ITexture[] {rIcon}; if (hasValidMetaTileEntity()) return mMetaTileEntity.getTexture(this, aSide, mFacing, (byte)(mColor-1), mActive, getOutputRedstoneSignal(aSide)>0); return Textures.BlockIcons.ERROR_RENDERING;} - - private boolean isEnergyInputSide(byte aSide) {if (aSide >= 0 && aSide < 6) {if (!getCoverBehaviorAtSide(aSide).letsEnergyIn (aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this)) return false; if (isInvalid()||mReleaseEnergy) return false; if (canAccessData() && mMetaTileEntity.isElectric() && mMetaTileEntity.isEnetInput ()) return mMetaTileEntity.isInputFacing (aSide);} return false;} - private boolean isEnergyOutputSide(byte aSide) {if (aSide >= 0 && aSide < 6) {if (!getCoverBehaviorAtSide(aSide).letsEnergyOut(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this)) return false; if (isInvalid()||mReleaseEnergy) return mReleaseEnergy; if (canAccessData() && mMetaTileEntity.isElectric() && mMetaTileEntity.isEnetOutput()) return mMetaTileEntity.isOutputFacing(aSide);} return false;} - - protected boolean hasValidMetaTileEntity() {return mMetaTileEntity != null && mMetaTileEntity.getBaseMetaTileEntity() == this;} - protected boolean canAccessData() {return !isDead && hasValidMetaTileEntity();} - - public boolean setStoredEU (long aEnergy) {if (!canAccessData()) return false; if (aEnergy < 0) aEnergy = 0; mMetaTileEntity.setEUVar (aEnergy); return true;} - public boolean setStoredSteam (long aEnergy) {if (!canAccessData()) return false; if (aEnergy < 0) aEnergy = 0; mMetaTileEntity.setSteamVar (aEnergy); return true;} - public boolean decreaseStoredEU (long aEnergy, boolean aIgnoreTooLessEnergy) {if (!canAccessData()) {return false;} if (mMetaTileEntity.getEUVar() - aEnergy >= 0 || aIgnoreTooLessEnergy) {setStoredEU(mMetaTileEntity.getEUVar() - aEnergy); if (mMetaTileEntity.getEUVar() < 0) {setStoredEU (0); return false;} return true;} return false;} - public boolean decreaseStoredSteam (long aEnergy, boolean aIgnoreTooLessEnergy) {if (!canAccessData()) return false; if (mMetaTileEntity.getSteamVar() - aEnergy >= 0 || aIgnoreTooLessEnergy) {setStoredSteam(mMetaTileEntity.getSteamVar() - aEnergy); if (mMetaTileEntity.getSteamVar() < 0) {setStoredSteam(0); return false;} return true;} return false;} - - public boolean playerOwnsThis(EntityPlayer aPlayer, boolean aCheckPrecicely) {if (!canAccessData()) return false; if (aCheckPrecicely || privateAccess() || mOwnerName.equals("")) if (mOwnerName.equals("")&&isServerSide()) setOwnerName(aPlayer.getDisplayName()); else if (privateAccess() && !aPlayer.getDisplayName().equals("Player") && !mOwnerName.equals("Player") && !mOwnerName.equals(aPlayer.getDisplayName())) return false; return true;} - public boolean privateAccess() {if (!canAccessData()) return mLockUpgrade; return mLockUpgrade || mMetaTileEntity.ownerControl();} - public void doEnergyExplosion() {if (getUniversalEnergyCapacity() > 0 && getUniversalEnergyStored() >= getUniversalEnergyCapacity()/5) {doExplosion(oOutput*(getUniversalEnergyStored() >= getUniversalEnergyCapacity()?4:getUniversalEnergyStored() >= getUniversalEnergyCapacity()/2?2:1)); GT_Mod.instance.achievements.issueAchievement(this.getWorldObj().getPlayerEntityByName(mOwnerName), "electricproblems");}} - + super.receiveClientEvent(aEventID, aValue); + + if (hasValidMetaTileEntity()) { + try { + mMetaTileEntity.receiveClientEvent((byte) aEventID, (byte) aValue); + } catch (Throwable e) { + GT_Log.err.println("Encountered Exception while receiving Data from the Server, the Client should've been crashed by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); + e.printStackTrace(GT_Log.err); + } + } + + if (isClientSide()) { + issueTextureUpdate(); + switch (aEventID) { + case 0: + mFacing = (byte) (aValue & 7); + mActive = ((aValue & 8) != 0); + mRedstone = ((aValue & 16) != 0); + //mLockUpgrade = ((aValue&32) != 0); + break; + case 1: + if (hasValidMetaTileEntity()) mMetaTileEntity.onValueUpdate((byte) aValue); + break; + case 2: + if (aValue > 16 || aValue < 0) aValue = 0; + mColor = (byte) aValue; + break; + case 3: + mSidedRedstone[0] = (byte) ((aValue & 1) > 0 ? 15 : 0); + mSidedRedstone[1] = (byte) ((aValue & 2) > 0 ? 15 : 0); + mSidedRedstone[2] = (byte) ((aValue & 4) > 0 ? 15 : 0); + mSidedRedstone[3] = (byte) ((aValue & 8) > 0 ? 15 : 0); + mSidedRedstone[4] = (byte) ((aValue & 16) > 0 ? 15 : 0); + mSidedRedstone[5] = (byte) ((aValue & 32) > 0 ? 15 : 0); + break; + case 4: + if (hasValidMetaTileEntity() && mTickTimer > 20) + mMetaTileEntity.doSound((byte) aValue, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); + break; + case 5: + if (hasValidMetaTileEntity() && mTickTimer > 20) + mMetaTileEntity.startSoundLoop((byte) aValue, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); + break; + case 6: + if (hasValidMetaTileEntity() && mTickTimer > 20) + mMetaTileEntity.stopSoundLoop((byte) aValue, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); + break; + case 7: + mLightValue = (byte) aValue; + break; + } + } + return true; + } + + public ArrayList getDebugInfo(EntityPlayer aPlayer, int aLogLevel) { + ArrayList tList = new ArrayList(); + if (aLogLevel > 2) { + tList.add("Meta-ID: " + mID + (canAccessData() ? " valid" : " invalid") + (mMetaTileEntity == null ? " MetaTileEntity == null!" : " ")); + } + if (aLogLevel > 1) { + if (mTimeStatistics.length > 0) { + double tAverageTime = 0; + for (int tTime : mTimeStatistics) tAverageTime += tTime; + tList.add("This particular TileEntity has caused an average CPU-load of ~" + (tAverageTime / mTimeStatistics.length) + "ms over the last " + mTimeStatistics.length + " ticks."); + } + if (mLagWarningCount > 0) { + tList.add("This TileEntity has also caused " + (mLagWarningCount >= 10 ? "more than 10" : mLagWarningCount) + " Lag Spike Warnings (anything taking longer than " + GregTech_API.MILLISECOND_THRESHOLD_UNTIL_LAG_WARNING + "ms) on the Server."); + } + tList.add("Is" + (mMetaTileEntity.isAccessAllowed(aPlayer) ? " " : " not ") + "accessible for you"); + } + if (aLogLevel > 0) { + if (getSteamCapacity() > 0 && hasSteamEngineUpgrade()) + tList.add(getStoredSteam() + " of " + getSteamCapacity() + " Steam"); + tList.add("Machine is " + (mActive ? "active" : "inactive")); + if (!mHasEnoughEnergy) + tList.add("ATTENTION: This Device consumes Energy at a higher Rate than you input. You could insert more to speed up the process."); + } + return mMetaTileEntity.getSpecialDebugInfo(this, aPlayer, aLogLevel, tList); + } + + @Override + public void issueTextureUpdate() { + mNeedsUpdate = true; + } + + @Override + public void issueBlockUpdate() { + mNeedsBlockUpdate = true; + } + + @Override + public void issueClientUpdate() { + mSendClientData = true; + } + + @Override + public void issueCoverUpdate(byte aSide) { + issueClientUpdate(); + } + + @Override + public byte getStrongestRedstone() { + return (byte) Math.max(getInternalInputRedstoneSignal((byte) 0), Math.max(getInternalInputRedstoneSignal((byte) 1), Math.max(getInternalInputRedstoneSignal((byte) 2), Math.max(getInternalInputRedstoneSignal((byte) 3), Math.max(getInternalInputRedstoneSignal((byte) 4), getInternalInputRedstoneSignal((byte) 5)))))); + } + + @Override + public boolean getRedstone() { + return getRedstone((byte) 0) || getRedstone((byte) 1) || getRedstone((byte) 2) || getRedstone((byte) 3) || getRedstone((byte) 4) || getRedstone((byte) 5); + } + + @Override + public boolean getRedstone(byte aSide) { + return getInternalInputRedstoneSignal(aSide) > 0; + } + + public ITexture getCoverTexture(byte aSide) { + return GregTech_API.sCovers.get(new GT_ItemStack(getCoverIDAtSide(aSide))); + } + + @Override + public boolean isGivingInformation() { + if (canAccessData()) return mMetaTileEntity.isGivingInformation(); + return false; + } + + @Override + public boolean isValidFacing(byte aSide) { + if (canAccessData()) return mMetaTileEntity.isFacingValid(aSide); + return false; + } + + @Override + public byte getBackFacing() { + return GT_Utility.getOppositeSide(mFacing); + } + + @Override + public byte getFrontFacing() { + return mFacing; + } + + @Override + public void setFrontFacing(byte aFacing) { + if (isValidFacing(aFacing)) { + mFacing = aFacing; + mMetaTileEntity.onFacingChange(); + onMachineBlockUpdate(); + } + } + + @Override + public int getSizeInventory() { + if (canAccessData()) return mMetaTileEntity.getSizeInventory(); + return 0; + } + + @Override + public ItemStack getStackInSlot(int aIndex) { + if (canAccessData()) return mMetaTileEntity.getStackInSlot(aIndex); + return null; + } + + @Override + public void setInventorySlotContents(int aIndex, ItemStack aStack) { + mInventoryChanged = true; + if (canAccessData()) + mMetaTileEntity.setInventorySlotContents(aIndex, worldObj.isRemote ? aStack : GT_OreDictUnificator.setStack(true, aStack)); + } + + @Override + public String getInventoryName() { + if (canAccessData()) return mMetaTileEntity.getInventoryName(); + if (GregTech_API.METATILEENTITIES[mID] != null) return GregTech_API.METATILEENTITIES[mID].getInventoryName(); + return ""; + } + + @Override + public int getInventoryStackLimit() { + if (canAccessData()) return mMetaTileEntity.getInventoryStackLimit(); + return 64; + } + + @Override + public void openInventory() { + if (canAccessData()) mMetaTileEntity.onOpenGUI(); + } + + @Override + public void closeInventory() { + if (canAccessData()) mMetaTileEntity.onCloseGUI(); + } + + @Override + public boolean isUseableByPlayer(EntityPlayer aPlayer) { + return canAccessData() && playerOwnsThis(aPlayer, false) && mTickTimer > 40 && getTileEntityOffset(0, 0, 0) == this && aPlayer.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 64 && mMetaTileEntity.isAccessAllowed(aPlayer); + } + + @Override + public void validate() { + super.validate(); + mTickTimer = 0; + } + + @Override + public void invalidate() { + tileEntityInvalid = false; + if (canAccessData()) { + mMetaTileEntity.onRemoval(); + mMetaTileEntity.setBaseMetaTileEntity(null); + } + super.invalidate(); + } + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + } + + @Override + public boolean hasCustomInventoryName() { + return false; + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot) { + ItemStack stack = getStackInSlot(slot); + if (stack != null) setInventorySlotContents(slot, null); + return stack; + } + + @Override + public void onMachineBlockUpdate() { + if (canAccessData()) mMetaTileEntity.onMachineBlockUpdate(); + } + + @Override + public int getProgress() { + return canAccessData() ? mMetaTileEntity.getProgresstime() : 0; + } + + @Override + public int getMaxProgress() { + return canAccessData() ? mMetaTileEntity.maxProgresstime() : 0; + } + + @Override + public boolean increaseProgress(int aProgressAmountInTicks) { + return canAccessData() ? mMetaTileEntity.increaseProgress(aProgressAmountInTicks) != aProgressAmountInTicks : false; + } + + @Override + public boolean hasThingsToDo() { + return getMaxProgress() > 0; + } + + @Override + public void enableWorking() { + if (!mWorks) mWorkUpdate = true; + mWorks = true; + } + + @Override + public void disableWorking() { + mWorks = false; + } + + @Override + public boolean isAllowedToWork() { + return mWorks; + } + + @Override + public boolean hasWorkJustBeenEnabled() { + return mWorkUpdate; + } + + @Override + public byte getWorkDataValue() { + return mWorkData; + } + + @Override + public void setWorkDataValue(byte aValue) { + mWorkData = aValue; + } + + @Override + public int getMetaTileID() { + return mID; + } + + @Override + public int setMetaTileID(short aID) { + return mID = aID; + } + + @Override + public boolean isActive() { + return mActive; + } + + @Override + public void setActive(boolean aActive) { + mActive = aActive; + } + + @Override + public long getTimer() { + return mTickTimer; + } + + @Override + public boolean decreaseStoredEnergyUnits(long aEnergy, boolean aIgnoreTooLessEnergy) { + if (!canAccessData()) return false; + return mHasEnoughEnergy = decreaseStoredEU(aEnergy, aIgnoreTooLessEnergy) || decreaseStoredSteam(aEnergy, false) || (aIgnoreTooLessEnergy && (decreaseStoredSteam(aEnergy, true))); + } + + @Override + public boolean increaseStoredEnergyUnits(long aEnergy, boolean aIgnoreTooMuchEnergy) { + if (!canAccessData()) return false; + if (getStoredEU() < getEUCapacity() || aIgnoreTooMuchEnergy) { + setStoredEU(mMetaTileEntity.getEUVar() + aEnergy); + return true; + } + return false; + } + + @Override + public boolean inputEnergyFrom(byte aSide) { + if (aSide == 6) return true; + if (isServerSide()) return (aSide >= 0 && aSide < 6 ? mActiveEUInputs[aSide] : false) && !mReleaseEnergy; + return isEnergyInputSide(aSide); + } + + @Override + public boolean outputsEnergyTo(byte aSide) { + if (aSide == 6) return true; + if (isServerSide()) return (aSide >= 0 && aSide < 6 ? mActiveEUOutputs[aSide] : false) || mReleaseEnergy; + return isEnergyOutputSide(aSide); + } + + @Override + public long getOutputAmperage() { + if (canAccessData() && mMetaTileEntity.isElectric()) return mMetaTileEntity.maxAmperesOut(); + return 0; + } + + @Override + public long getOutputVoltage() { + if (canAccessData() && mMetaTileEntity.isElectric() && mMetaTileEntity.isEnetOutput()) + return mMetaTileEntity.maxEUOutput(); + return 0; + } + + @Override + public long getInputAmperage() { + if (canAccessData() && mMetaTileEntity.isElectric()) return mMetaTileEntity.maxAmperesIn(); + return 0; + } + + @Override + public long getInputVoltage() { + if (canAccessData() && mMetaTileEntity.isElectric()) return mMetaTileEntity.maxEUInput(); + return Integer.MAX_VALUE; + } + + @Override + public boolean increaseStoredSteam(long aEnergy, boolean aIgnoreTooMuchEnergy) { + if (!canAccessData()) return false; + if (mMetaTileEntity.getSteamVar() < getSteamCapacity() || aIgnoreTooMuchEnergy) { + setStoredSteam(mMetaTileEntity.getSteamVar() + aEnergy); + return true; + } + return false; + } + + @Override + public String[] getDescription() { + if (canAccessData()) return mMetaTileEntity.getDescription(); + return new String[0]; + } + + @Override + public boolean isValidSlot(int aIndex) { + if (canAccessData()) return mMetaTileEntity.isValidSlot(aIndex); + return false; + } + + @Override + public long getUniversalEnergyStored() { + return Math.max(getStoredEU(), getStoredSteam()); + } + + @Override + public long getUniversalEnergyCapacity() { + return Math.max(getEUCapacity(), getSteamCapacity()); + } + + @Override + public long getStoredEU() { + if (canAccessData()) return Math.min(mMetaTileEntity.getEUVar(), getEUCapacity()); + return 0; + } + + @Override + public long getEUCapacity() { + if (canAccessData()) return mMetaTileEntity.maxEUStore(); + return 0; + } + + @Override + public long getStoredSteam() { + if (canAccessData()) return Math.min(mMetaTileEntity.getSteamVar(), getSteamCapacity()); + return 0; + } + + @Override + public long getSteamCapacity() { + if (canAccessData()) return mMetaTileEntity.maxSteamStore(); + return 0; + } + + @Override + public ITexture[] getTexture(byte aSide) { + ITexture rIcon = getCoverTexture(aSide); + if (rIcon != null) return new ITexture[]{rIcon}; + if (hasValidMetaTileEntity()) + return mMetaTileEntity.getTexture(this, aSide, mFacing, (byte) (mColor - 1), mActive, getOutputRedstoneSignal(aSide) > 0); + return Textures.BlockIcons.ERROR_RENDERING; + } + + private boolean isEnergyInputSide(byte aSide) { + if (aSide >= 0 && aSide < 6) { + if (!getCoverBehaviorAtSide(aSide).letsEnergyIn(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this)) + return false; + if (isInvalid() || mReleaseEnergy) return false; + if (canAccessData() && mMetaTileEntity.isElectric() && mMetaTileEntity.isEnetInput()) + return mMetaTileEntity.isInputFacing(aSide); + } + return false; + } + + private boolean isEnergyOutputSide(byte aSide) { + if (aSide >= 0 && aSide < 6) { + if (!getCoverBehaviorAtSide(aSide).letsEnergyOut(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this)) + return false; + if (isInvalid() || mReleaseEnergy) return mReleaseEnergy; + if (canAccessData() && mMetaTileEntity.isElectric() && mMetaTileEntity.isEnetOutput()) + return mMetaTileEntity.isOutputFacing(aSide); + } + return false; + } + + protected boolean hasValidMetaTileEntity() { + return mMetaTileEntity != null && mMetaTileEntity.getBaseMetaTileEntity() == this; + } + + protected boolean canAccessData() { + return !isDead && hasValidMetaTileEntity(); + } + + public boolean setStoredEU(long aEnergy) { + if (!canAccessData()) return false; + if (aEnergy < 0) aEnergy = 0; + mMetaTileEntity.setEUVar(aEnergy); + return true; + } + + public boolean setStoredSteam(long aEnergy) { + if (!canAccessData()) return false; + if (aEnergy < 0) aEnergy = 0; + mMetaTileEntity.setSteamVar(aEnergy); + return true; + } + + public boolean decreaseStoredEU(long aEnergy, boolean aIgnoreTooLessEnergy) { + if (!canAccessData()) { + return false; + } + if (mMetaTileEntity.getEUVar() - aEnergy >= 0 || aIgnoreTooLessEnergy) { + setStoredEU(mMetaTileEntity.getEUVar() - aEnergy); + if (mMetaTileEntity.getEUVar() < 0) { + setStoredEU(0); + return false; + } + return true; + } + return false; + } + + public boolean decreaseStoredSteam(long aEnergy, boolean aIgnoreTooLessEnergy) { + if (!canAccessData()) return false; + if (mMetaTileEntity.getSteamVar() - aEnergy >= 0 || aIgnoreTooLessEnergy) { + setStoredSteam(mMetaTileEntity.getSteamVar() - aEnergy); + if (mMetaTileEntity.getSteamVar() < 0) { + setStoredSteam(0); + return false; + } + return true; + } + return false; + } + + public boolean playerOwnsThis(EntityPlayer aPlayer, boolean aCheckPrecicely) { + if (!canAccessData()) return false; + if (aCheckPrecicely || privateAccess() || mOwnerName.equals("")) + if (mOwnerName.equals("") && isServerSide()) setOwnerName(aPlayer.getDisplayName()); + else if (privateAccess() && !aPlayer.getDisplayName().equals("Player") && !mOwnerName.equals("Player") && !mOwnerName.equals(aPlayer.getDisplayName())) + return false; + return true; + } + + public boolean privateAccess() { + if (!canAccessData()) return mLockUpgrade; + return mLockUpgrade || mMetaTileEntity.ownerControl(); + } + + public void doEnergyExplosion() { + if (getUniversalEnergyCapacity() > 0 && getUniversalEnergyStored() >= getUniversalEnergyCapacity() / 5) { + doExplosion(oOutput * (getUniversalEnergyStored() >= getUniversalEnergyCapacity() ? 4 : getUniversalEnergyStored() >= getUniversalEnergyCapacity() / 2 ? 2 : 1)); + GT_Mod.instance.achievements.issueAchievement(this.getWorldObj().getPlayerEntityByName(mOwnerName), "electricproblems"); + } + } + @Override public void doExplosion(long aAmount) { - if (canAccessData()) { - // This is only for Electric Machines - if (GregTech_API.sMachineWireFire && mMetaTileEntity.isElectric()) { - try { - mReleaseEnergy = true; - IEnergyConnected.Util.emitEnergyToNetwork(V[5], Math.max(1, getStoredEU() / V[5]), this); - } catch(Exception e) {/* Fun Fact: all these "do nothing" Comments you see in my Code, are just there to let Eclipse shut up about the intended empty Brackets, but I need eclipse to yell at me in some of the regular Cases where I forget to add Code */} - } - mReleaseEnergy = false; - // Normal Explosion Code - mMetaTileEntity.onExplosion(); - mMetaTileEntity.doExplosion(aAmount); - } - } - - @Override - public ArrayList getDrops() { - ItemStack rStack = new ItemStack(GregTech_API.sBlockMachines, 1, mID); - NBTTagCompound tNBT = new NBTTagCompound(); - if (mRecipeStuff != null && !mRecipeStuff.hasNoTags()) tNBT.setTag("GT.CraftingComponents", mRecipeStuff); - if (mMuffler ) tNBT.setBoolean ("mMuffler" , mMuffler); - if (mLockUpgrade ) tNBT.setBoolean ("mLockUpgrade" , mLockUpgrade); - if (mSteamConverter ) tNBT.setBoolean ("mSteamConverter" , mSteamConverter); - if (mColor > 0) tNBT.setByte ("mColor" , mColor); - if (mOtherUpgrades > 0) tNBT.setByte ("mOtherUpgrades" , mOtherUpgrades); - if (mStrongRedstone > 0) tNBT.setByte ("mStrongRedstone" , mStrongRedstone); - for (byte i = 0; i < mCoverSides.length; i++) { - if (mCoverSides[i] != 0) { - tNBT.setIntArray("mCoverData" , mCoverData); - tNBT.setIntArray("mCoverSides" , mCoverSides); - break; - } + if (canAccessData()) { + // This is only for Electric Machines + if (GregTech_API.sMachineWireFire && mMetaTileEntity.isElectric()) { + try { + mReleaseEnergy = true; + IEnergyConnected.Util.emitEnergyToNetwork(V[5], Math.max(1, getStoredEU() / V[5]), this); + } catch (Exception e) {/* Fun Fact: all these "do nothing" Comments you see in my Code, are just there to let Eclipse shut up about the intended empty Brackets, but I need eclipse to yell at me in some of the regular Cases where I forget to add Code */} + } + mReleaseEnergy = false; + // Normal Explosion Code + mMetaTileEntity.onExplosion(); + mMetaTileEntity.doExplosion(aAmount); } - if (hasValidMetaTileEntity()) mMetaTileEntity.setItemNBT(tNBT); - if (!tNBT.hasNoTags()) rStack.setTagCompound(tNBT); - return new ArrayList(Arrays.asList(rStack)); - } - - public int getUpgradeCount() { - return (mMuffler?1:0)+(mLockUpgrade?1:0)+(mSteamConverter?1:0)+mOtherUpgrades; - } - - @Override - public boolean onRightclick(EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) { - if (isClientSide()) { - if (getCoverBehaviorAtSide(aSide).onCoverRightclickClient(aSide, this, aPlayer, aX, aY, aZ)) return true; - if (!getCoverBehaviorAtSide(aSide).isGUIClickable(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this)) return false; - } - if (isServerSide()) { - if (!privateAccess() || aPlayer.getDisplayName().equalsIgnoreCase(getOwnerName())) { - ItemStack tCurrentItem = aPlayer.inventory.getCurrentItem(); - if (tCurrentItem != null) { - if (getColorization() >= 0 && GT_Utility.areStacksEqual(new ItemStack(Items.water_bucket, 1), tCurrentItem)) { - tCurrentItem.func_150996_a(Items.bucket); - setColorization((byte)(getColorization() >= 16 ? -2 : -1)); - return true; - } - if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sWrenchList)) { - if (mMetaTileEntity.onWrenchRightClick(aSide, GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ), aPlayer, aX, aY, aZ)) { - GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer); - GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(100), 1.0F, -1, xCoord, yCoord, zCoord); - } - return true; - } - - if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sScrewdriverList)) { - if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 200, aPlayer)) { - setCoverDataAtSide(aSide, getCoverBehaviorAtSide(aSide).onCoverScrewdriverclick(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this, aPlayer, aX, aY, aZ)); - mMetaTileEntity.onScrewdriverRightClick(aSide, aPlayer, aX, aY, aZ); - GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(100), 1.0F, -1, xCoord, yCoord, zCoord); - } - return true; - } - - if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sHardHammerList)) { - if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer)) { - mInputDisabled = !mInputDisabled; - if (mInputDisabled) mOutputDisabled = !mOutputDisabled; - GT_Utility.sendChatToPlayer(aPlayer, "Auto-Input: " + (mInputDisabled?"Disabled":"Enabled") + " Auto-Output: " + (mOutputDisabled?"Disabled":"Enabled")); - GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(1), 1.0F, -1, xCoord, yCoord, zCoord); - } - return true; - } - - if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sSoftHammerList)) { - if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer)) { - if (mWorks) disableWorking(); else enableWorking(); - GT_Utility.sendChatToPlayer(aPlayer, "Machine Processing: " + (isAllowedToWork()?"Enabled":"Disabled")); - GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(101), 1.0F, -1, xCoord, yCoord, zCoord); - } - return true; - } + } - if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sSolderingToolList)) { - byte tSide = GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ); - if (GT_ModHandler.useSolderingIron(tCurrentItem, aPlayer)) { - mStrongRedstone ^= (1 << tSide); - GT_Utility.sendChatToPlayer(aPlayer, "Redstone Output at Side " + tSide + " set to: " + ((mStrongRedstone & (1 << tSide))!=0?"Strong":"Weak")); - GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(103), 3.0F, -1, xCoord, yCoord, zCoord); - } - return true; - } - - if (getCoverIDAtSide(aSide) == 0) { - if (GregTech_API.sCovers.containsKey(new GT_ItemStack(tCurrentItem))) { - if (GregTech_API.getCoverBehavior(tCurrentItem).isCoverPlaceable(aSide, new GT_ItemStack(tCurrentItem), this) && mMetaTileEntity.allowCoverOnSide(aSide, new GT_ItemStack(tCurrentItem))) { - setCoverItemAtSide(aSide, tCurrentItem); - if (!aPlayer.capabilities.isCreativeMode) tCurrentItem.stackSize--; - GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(100), 1.0F, -1, xCoord, yCoord, zCoord); - } - return true; - } - } else { - if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sCrowbarList)) { - if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer)) { - GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(0), 1.0F, -1, xCoord, yCoord, zCoord); - dropCover(aSide, aSide, false); - } - return true; - } - } - } - - if (getCoverBehaviorAtSide(aSide).onCoverRightclick(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this, aPlayer, aX, aY, aZ)) return true; - - if (!getCoverBehaviorAtSide(aSide).isGUIClickable(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this)) return false; - - if (isUpgradable() && aPlayer.inventory.getCurrentItem() != null) {/* - if (ItemList.Upgrade_SteamEngine.isStackEqual(aPlayer.inventory.getCurrentItem())) { + @Override + public ArrayList getDrops() { + ItemStack rStack = new ItemStack(GregTech_API.sBlockMachines, 1, mID); + NBTTagCompound tNBT = new NBTTagCompound(); + if (mRecipeStuff != null && !mRecipeStuff.hasNoTags()) tNBT.setTag("GT.CraftingComponents", mRecipeStuff); + if (mMuffler) tNBT.setBoolean("mMuffler", mMuffler); + if (mLockUpgrade) tNBT.setBoolean("mLockUpgrade", mLockUpgrade); + if (mSteamConverter) tNBT.setBoolean("mSteamConverter", mSteamConverter); + if (mColor > 0) tNBT.setByte("mColor", mColor); + if (mOtherUpgrades > 0) tNBT.setByte("mOtherUpgrades", mOtherUpgrades); + if (mStrongRedstone > 0) tNBT.setByte("mStrongRedstone", mStrongRedstone); + for (byte i = 0; i < mCoverSides.length; i++) { + if (mCoverSides[i] != 0) { + tNBT.setIntArray("mCoverData", mCoverData); + tNBT.setIntArray("mCoverSides", mCoverSides); + break; + } + } + if (hasValidMetaTileEntity()) mMetaTileEntity.setItemNBT(tNBT); + if (!tNBT.hasNoTags()) rStack.setTagCompound(tNBT); + return new ArrayList(Arrays.asList(rStack)); + } + + public int getUpgradeCount() { + return (mMuffler ? 1 : 0) + (mLockUpgrade ? 1 : 0) + (mSteamConverter ? 1 : 0) + mOtherUpgrades; + } + + @Override + public boolean onRightclick(EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) { + if (isClientSide()) { + if (getCoverBehaviorAtSide(aSide).onCoverRightclickClient(aSide, this, aPlayer, aX, aY, aZ)) return true; + if (!getCoverBehaviorAtSide(aSide).isGUIClickable(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this)) + return false; + } + if (isServerSide()) { + if (!privateAccess() || aPlayer.getDisplayName().equalsIgnoreCase(getOwnerName())) { + ItemStack tCurrentItem = aPlayer.inventory.getCurrentItem(); + if (tCurrentItem != null) { + if (getColorization() >= 0 && GT_Utility.areStacksEqual(new ItemStack(Items.water_bucket, 1), tCurrentItem)) { + tCurrentItem.func_150996_a(Items.bucket); + setColorization((byte) (getColorization() >= 16 ? -2 : -1)); + return true; + } + if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sWrenchList)) { + if (mMetaTileEntity.onWrenchRightClick(aSide, GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ), aPlayer, aX, aY, aZ)) { + GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer); + GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(100), 1.0F, -1, xCoord, yCoord, zCoord); + } + return true; + } + + if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sScrewdriverList)) { + if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 200, aPlayer)) { + setCoverDataAtSide(aSide, getCoverBehaviorAtSide(aSide).onCoverScrewdriverclick(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this, aPlayer, aX, aY, aZ)); + mMetaTileEntity.onScrewdriverRightClick(aSide, aPlayer, aX, aY, aZ); + GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(100), 1.0F, -1, xCoord, yCoord, zCoord); + } + return true; + } + + if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sHardHammerList)) { + if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer)) { + mInputDisabled = !mInputDisabled; + if (mInputDisabled) mOutputDisabled = !mOutputDisabled; + GT_Utility.sendChatToPlayer(aPlayer, "Auto-Input: " + (mInputDisabled ? "Disabled" : "Enabled") + " Auto-Output: " + (mOutputDisabled ? "Disabled" : "Enabled")); + GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(1), 1.0F, -1, xCoord, yCoord, zCoord); + } + return true; + } + + if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sSoftHammerList)) { + if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer)) { + if (mWorks) disableWorking(); + else enableWorking(); + GT_Utility.sendChatToPlayer(aPlayer, "Machine Processing: " + (isAllowedToWork() ? "Enabled" : "Disabled")); + GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(101), 1.0F, -1, xCoord, yCoord, zCoord); + } + return true; + } + + if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sSolderingToolList)) { + byte tSide = GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ); + if (GT_ModHandler.useSolderingIron(tCurrentItem, aPlayer)) { + mStrongRedstone ^= (1 << tSide); + GT_Utility.sendChatToPlayer(aPlayer, "Redstone Output at Side " + tSide + " set to: " + ((mStrongRedstone & (1 << tSide)) != 0 ? "Strong" : "Weak")); + GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(103), 3.0F, -1, xCoord, yCoord, zCoord); + } + return true; + } + + if (getCoverIDAtSide(aSide) == 0) { + if (GregTech_API.sCovers.containsKey(new GT_ItemStack(tCurrentItem))) { + if (GregTech_API.getCoverBehavior(tCurrentItem).isCoverPlaceable(aSide, new GT_ItemStack(tCurrentItem), this) && mMetaTileEntity.allowCoverOnSide(aSide, new GT_ItemStack(tCurrentItem))) { + setCoverItemAtSide(aSide, tCurrentItem); + if (!aPlayer.capabilities.isCreativeMode) tCurrentItem.stackSize--; + GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(100), 1.0F, -1, xCoord, yCoord, zCoord); + } + return true; + } + } else { + if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sCrowbarList)) { + if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer)) { + GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(0), 1.0F, -1, xCoord, yCoord, zCoord); + dropCover(aSide, aSide, false); + } + return true; + } + } + } + + if (getCoverBehaviorAtSide(aSide).onCoverRightclick(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this, aPlayer, aX, aY, aZ)) + return true; + + if (!getCoverBehaviorAtSide(aSide).isGUIClickable(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this)) + return false; + + if (isUpgradable() && aPlayer.inventory.getCurrentItem() != null) {/* + if (ItemList.Upgrade_SteamEngine.isStackEqual(aPlayer.inventory.getCurrentItem())) { if (addSteamEngineUpgrade()) { GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(3), 1.0F, -1, xCoord, yCoord, zCoord); if (!aPlayer.capabilities.isCreativeMode) aPlayer.inventory.getCurrentItem().stackSize--; } return true; }*/ - if (ItemList.Upgrade_Muffler.isStackEqual(aPlayer.inventory.getCurrentItem())) { - if (addMufflerUpgrade()) { - GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(3), 1.0F, -1, xCoord, yCoord, zCoord); - if (!aPlayer.capabilities.isCreativeMode) aPlayer.inventory.getCurrentItem().stackSize--; - } - return true; - } - if (ItemList.Upgrade_Lock.isStackEqual(aPlayer.inventory.getCurrentItem())) { - if (isUpgradable() && !mLockUpgrade) { - mLockUpgrade = true; - setOwnerName(aPlayer.getDisplayName()); - GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(3), 1.0F, -1, xCoord, yCoord, zCoord); - if (!aPlayer.capabilities.isCreativeMode) aPlayer.inventory.getCurrentItem().stackSize--; - } - return true; - } - } - } - } - - try { - if (hasValidMetaTileEntity()) return mMetaTileEntity.onRightclick(this, aPlayer, aSide, aX, aY, aZ); - } catch(Throwable e) { - GT_Log.err.println("Encountered Exception while rightclicking TileEntity, the Game should've crashed now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); - e.printStackTrace(GT_Log.err); - } - - return true; - } - - @Override - public void onLeftclick(EntityPlayer aPlayer) { - try { - if (aPlayer != null && hasValidMetaTileEntity()) mMetaTileEntity.onLeftclick(this, aPlayer); - } catch(Throwable e) { - GT_Log.err.println("Encountered Exception while leftclicking TileEntity, the Game should've crashed now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); - e.printStackTrace(GT_Log.err); - } - } - - @Override - public boolean isDigitalChest() { - if (canAccessData()) return mMetaTileEntity.isDigitalChest(); - return false; - } - - @Override - public ItemStack[] getStoredItemData() { - if (canAccessData()) return mMetaTileEntity.getStoredItemData(); - return null; - } - - @Override - public void setItemCount(int aCount) { - if (canAccessData()) mMetaTileEntity.setItemCount(aCount); - } - - @Override - public int getMaxItemCount() { - if (canAccessData()) return mMetaTileEntity.getMaxItemCount(); - return 0; - } - - /** - * Can put aStack into Slot - */ - @Override - public boolean isItemValidForSlot(int aIndex, ItemStack aStack) { - return canAccessData() && mMetaTileEntity.isItemValidForSlot(aIndex, aStack); - } - - /** - * returns all valid Inventory Slots, no matter which Side (Unless it's covered). - * The Side Stuff is done in the following two Functions. - */ - @Override - public int[] getAccessibleSlotsFromSide(int aSide) { - if (canAccessData() && (getCoverBehaviorAtSide((byte)aSide).letsItemsOut((byte)aSide, getCoverIDAtSide((byte)aSide), getCoverDataAtSide((byte)aSide), -1, this) || getCoverBehaviorAtSide((byte)aSide).letsItemsIn((byte)aSide, getCoverIDAtSide((byte)aSide), getCoverDataAtSide((byte)aSide), -1, this))) return mMetaTileEntity.getAccessibleSlotsFromSide(aSide); - return new int[0]; - } - - /** - * Can put aStack into Slot at Side - */ - @Override - public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) { - return canAccessData() && (mRunningThroughTick || !mInputDisabled ) && getCoverBehaviorAtSide((byte)aSide).letsItemsIn ((byte)aSide, getCoverIDAtSide((byte)aSide), getCoverDataAtSide((byte)aSide), aIndex, this) && mMetaTileEntity.canInsertItem(aIndex, aStack, aSide); - } - - /** - * Can pull aStack out of Slot from Side - */ - @Override - public boolean canExtractItem(int aIndex, ItemStack aStack, int aSide) { - return canAccessData() && (mRunningThroughTick || !mOutputDisabled) && getCoverBehaviorAtSide((byte)aSide).letsItemsOut((byte)aSide, getCoverIDAtSide((byte)aSide), getCoverDataAtSide((byte)aSide), aIndex, this) && mMetaTileEntity.canExtractItem(aIndex, aStack, aSide); - } - - @Override - public boolean isUpgradable() { - return canAccessData() && getUpgradeCount() < 8; - } - - @Override - public byte getInternalInputRedstoneSignal(byte aSide) { - return (byte)(getCoverBehaviorAtSide(aSide).getRedstoneInput(aSide, getInputRedstoneSignal(aSide), getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this)&15); - } - - @Override - public byte getInputRedstoneSignal(byte aSide) { - return (byte)(worldObj.getIndirectPowerLevelTo(getOffsetX(aSide, 1), getOffsetY(aSide, 1), getOffsetZ(aSide, 1), aSide)&15); - } - - @Override - public byte getOutputRedstoneSignal(byte aSide) { - return getCoverBehaviorAtSide(aSide).manipulatesSidedRedstoneOutput(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this) ? mSidedRedstone[aSide]: 0; -// return (byte)(getCoverBehaviorAtSide(aSide).manipulatesSidedRedstoneOutput(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this) || (mRedstone && getCoverBehaviorAtSide(aSide).letsRedstoneGoOut(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this))?mSidedRedstone[aSide]&15:0); - } - - @Override - public void setInternalOutputRedstoneSignal(byte aSide, byte aStrength) { - if (!getCoverBehaviorAtSide(aSide).manipulatesSidedRedstoneOutput(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this)) setOutputRedstoneSignal(aSide, aStrength); - } - - @Override - public void setOutputRedstoneSignal(byte aSide, byte aStrength) { - aStrength = (byte)Math.min(Math.max(0, aStrength), 15); - if (aSide >= 0 && aSide < 6 && mSidedRedstone[aSide] != aStrength) { - mSidedRedstone[aSide] = aStrength; - issueBlockUpdate(); - } - } - - @Override - public boolean isSteamEngineUpgradable() { - return isUpgradable()&&!hasSteamEngineUpgrade()&&getSteamCapacity()>0; - } - - @Override - public boolean addSteamEngineUpgrade() { - if (isSteamEngineUpgradable()) { - issueBlockUpdate(); - mSteamConverter = true; - return true; - } - return false; - } - - @Override - public boolean hasSteamEngineUpgrade() { - if (canAccessData() && mMetaTileEntity.isSteampowered()) return true; - return mSteamConverter; - } - - @Override - public boolean hasMufflerUpgrade() { - return mMuffler; - } - - @Override - public boolean isMufflerUpgradable() { - return isUpgradable()&&!hasMufflerUpgrade(); - } - - @Override - public boolean addMufflerUpgrade() { - if (isMufflerUpgradable()) return mMuffler = true; - return false; - } - - @Override - public boolean hasInventoryBeenModified() { - return mInventoryChanged; - } - - @Override - public void setGenericRedstoneOutput(boolean aOnOff) { - mRedstone = aOnOff; - } - - @Override - public int getErrorDisplayID() { - return mDisplayErrorCode; - } - - @Override - public void setErrorDisplayID(int aErrorID) { - mDisplayErrorCode = aErrorID; - } - - @Override - public IMetaTileEntity getMetaTileEntity() { - return hasValidMetaTileEntity()?mMetaTileEntity:null; - } - - private final GT_CoverBehavior[] mCoverBehaviors = new GT_CoverBehavior[] {GregTech_API.sNoBehavior, GregTech_API.sNoBehavior, GregTech_API.sNoBehavior, GregTech_API.sNoBehavior, GregTech_API.sNoBehavior, GregTech_API.sNoBehavior}; - - @Override - public GT_CoverBehavior getCoverBehaviorAtSide(byte aSide) { - return aSide >= 0 && aSide < mCoverBehaviors.length ? mCoverBehaviors[aSide] : GregTech_API.sNoBehavior; - } - - @Override - public void setCoverIDAtSide(byte aSide, int aID) { - if (aSide >= 0 && aSide < 6) { - mCoverSides[aSide] = aID; - mCoverData[aSide] = 0; - mCoverBehaviors[aSide] = GregTech_API.getCoverBehavior(aID); - issueCoverUpdate(aSide); - issueBlockUpdate(); - } - } - - @Override - public void setCoverItemAtSide(byte aSide, ItemStack aCover) { - GregTech_API.getCoverBehavior(aCover).placeCover(aSide, aCover, this); - } - - @Override - public int getCoverIDAtSide(byte aSide) { - if (aSide >= 0 && aSide < 6) return mCoverSides[aSide]; return 0; - } - - @Override - public ItemStack getCoverItemAtSide(byte aSide) { - return GT_Utility.intToStack(getCoverIDAtSide(aSide)); - } - - @Override - public boolean canPlaceCoverIDAtSide(byte aSide, int aID) { - return getCoverIDAtSide(aSide) == 0; - } - - @Override - public boolean canPlaceCoverItemAtSide(byte aSide, ItemStack aCover) { - return getCoverIDAtSide(aSide) == 0; - } - - @Override - public void setCoverDataAtSide(byte aSide, int aData) { - if (aSide >= 0 && aSide < 6) mCoverData[aSide] = aData; - } - - @Override - public int getCoverDataAtSide(byte aSide) { - if (aSide >= 0 && aSide < 6) return mCoverData[aSide]; - return 0; - } + if (ItemList.Upgrade_Muffler.isStackEqual(aPlayer.inventory.getCurrentItem())) { + if (addMufflerUpgrade()) { + GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(3), 1.0F, -1, xCoord, yCoord, zCoord); + if (!aPlayer.capabilities.isCreativeMode) aPlayer.inventory.getCurrentItem().stackSize--; + } + return true; + } + if (ItemList.Upgrade_Lock.isStackEqual(aPlayer.inventory.getCurrentItem())) { + if (isUpgradable() && !mLockUpgrade) { + mLockUpgrade = true; + setOwnerName(aPlayer.getDisplayName()); + GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(3), 1.0F, -1, xCoord, yCoord, zCoord); + if (!aPlayer.capabilities.isCreativeMode) aPlayer.inventory.getCurrentItem().stackSize--; + } + return true; + } + } + } + } + + try { + if (hasValidMetaTileEntity()) return mMetaTileEntity.onRightclick(this, aPlayer, aSide, aX, aY, aZ); + } catch (Throwable e) { + GT_Log.err.println("Encountered Exception while rightclicking TileEntity, the Game should've crashed now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); + e.printStackTrace(GT_Log.err); + } + + return true; + } + + @Override + public void onLeftclick(EntityPlayer aPlayer) { + try { + if (aPlayer != null && hasValidMetaTileEntity()) mMetaTileEntity.onLeftclick(this, aPlayer); + } catch (Throwable e) { + GT_Log.err.println("Encountered Exception while leftclicking TileEntity, the Game should've crashed now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); + e.printStackTrace(GT_Log.err); + } + } + + @Override + public boolean isDigitalChest() { + if (canAccessData()) return mMetaTileEntity.isDigitalChest(); + return false; + } + + @Override + public ItemStack[] getStoredItemData() { + if (canAccessData()) return mMetaTileEntity.getStoredItemData(); + return null; + } + + @Override + public void setItemCount(int aCount) { + if (canAccessData()) mMetaTileEntity.setItemCount(aCount); + } + + @Override + public int getMaxItemCount() { + if (canAccessData()) return mMetaTileEntity.getMaxItemCount(); + return 0; + } + + /** + * Can put aStack into Slot + */ + @Override + public boolean isItemValidForSlot(int aIndex, ItemStack aStack) { + return canAccessData() && mMetaTileEntity.isItemValidForSlot(aIndex, aStack); + } + + /** + * returns all valid Inventory Slots, no matter which Side (Unless it's covered). + * The Side Stuff is done in the following two Functions. + */ + @Override + public int[] getAccessibleSlotsFromSide(int aSide) { + if (canAccessData() && (getCoverBehaviorAtSide((byte) aSide).letsItemsOut((byte) aSide, getCoverIDAtSide((byte) aSide), getCoverDataAtSide((byte) aSide), -1, this) || getCoverBehaviorAtSide((byte) aSide).letsItemsIn((byte) aSide, getCoverIDAtSide((byte) aSide), getCoverDataAtSide((byte) aSide), -1, this))) + return mMetaTileEntity.getAccessibleSlotsFromSide(aSide); + return new int[0]; + } + + /** + * Can put aStack into Slot at Side + */ + @Override + public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) { + return canAccessData() && (mRunningThroughTick || !mInputDisabled) && getCoverBehaviorAtSide((byte) aSide).letsItemsIn((byte) aSide, getCoverIDAtSide((byte) aSide), getCoverDataAtSide((byte) aSide), aIndex, this) && mMetaTileEntity.canInsertItem(aIndex, aStack, aSide); + } + + /** + * Can pull aStack out of Slot from Side + */ + @Override + public boolean canExtractItem(int aIndex, ItemStack aStack, int aSide) { + return canAccessData() && (mRunningThroughTick || !mOutputDisabled) && getCoverBehaviorAtSide((byte) aSide).letsItemsOut((byte) aSide, getCoverIDAtSide((byte) aSide), getCoverDataAtSide((byte) aSide), aIndex, this) && mMetaTileEntity.canExtractItem(aIndex, aStack, aSide); + } + + @Override + public boolean isUpgradable() { + return canAccessData() && getUpgradeCount() < 8; + } + + @Override + public byte getInternalInputRedstoneSignal(byte aSide) { + return (byte) (getCoverBehaviorAtSide(aSide).getRedstoneInput(aSide, getInputRedstoneSignal(aSide), getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this) & 15); + } + + @Override + public byte getInputRedstoneSignal(byte aSide) { + return (byte) (worldObj.getIndirectPowerLevelTo(getOffsetX(aSide, 1), getOffsetY(aSide, 1), getOffsetZ(aSide, 1), aSide) & 15); + } + + @Override + public byte getOutputRedstoneSignal(byte aSide) { + return getCoverBehaviorAtSide(aSide).manipulatesSidedRedstoneOutput(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this) ? mSidedRedstone[aSide] : 0; +// return (byte)(getCoverBehaviorAtSide(aSide).manipulatesSidedRedstoneOutput(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this) || (mRedstone && getCoverBehaviorAtSide(aSide).letsRedstoneGoOut(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this))?mSidedRedstone[aSide]&15:0); + } + + @Override + public void setInternalOutputRedstoneSignal(byte aSide, byte aStrength) { + if (!getCoverBehaviorAtSide(aSide).manipulatesSidedRedstoneOutput(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this)) + setOutputRedstoneSignal(aSide, aStrength); + } + + @Override + public void setOutputRedstoneSignal(byte aSide, byte aStrength) { + aStrength = (byte) Math.min(Math.max(0, aStrength), 15); + if (aSide >= 0 && aSide < 6 && mSidedRedstone[aSide] != aStrength) { + mSidedRedstone[aSide] = aStrength; + issueBlockUpdate(); + } + } + + @Override + public boolean isSteamEngineUpgradable() { + return isUpgradable() && !hasSteamEngineUpgrade() && getSteamCapacity() > 0; + } + + @Override + public boolean addSteamEngineUpgrade() { + if (isSteamEngineUpgradable()) { + issueBlockUpdate(); + mSteamConverter = true; + return true; + } + return false; + } + + @Override + public boolean hasSteamEngineUpgrade() { + if (canAccessData() && mMetaTileEntity.isSteampowered()) return true; + return mSteamConverter; + } + + @Override + public boolean hasMufflerUpgrade() { + return mMuffler; + } + + @Override + public boolean isMufflerUpgradable() { + return isUpgradable() && !hasMufflerUpgrade(); + } + + @Override + public boolean addMufflerUpgrade() { + if (isMufflerUpgradable()) return mMuffler = true; + return false; + } + + @Override + public boolean hasInventoryBeenModified() { + return mInventoryChanged; + } + + @Override + public void setGenericRedstoneOutput(boolean aOnOff) { + mRedstone = aOnOff; + } + + @Override + public int getErrorDisplayID() { + return mDisplayErrorCode; + } + + @Override + public void setErrorDisplayID(int aErrorID) { + mDisplayErrorCode = aErrorID; + } + + @Override + public IMetaTileEntity getMetaTileEntity() { + return hasValidMetaTileEntity() ? mMetaTileEntity : null; + } + + @Override + public void setMetaTileEntity(IMetaTileEntity aMetaTileEntity) { + mMetaTileEntity = (MetaTileEntity) aMetaTileEntity; + } + + @Override + public GT_CoverBehavior getCoverBehaviorAtSide(byte aSide) { + return aSide >= 0 && aSide < mCoverBehaviors.length ? mCoverBehaviors[aSide] : GregTech_API.sNoBehavior; + } + + @Override + public void setCoverIDAtSide(byte aSide, int aID) { + if (aSide >= 0 && aSide < 6) { + mCoverSides[aSide] = aID; + mCoverData[aSide] = 0; + mCoverBehaviors[aSide] = GregTech_API.getCoverBehavior(aID); + issueCoverUpdate(aSide); + issueBlockUpdate(); + } + } + + @Override + public void setCoverItemAtSide(byte aSide, ItemStack aCover) { + GregTech_API.getCoverBehavior(aCover).placeCover(aSide, aCover, this); + } + + @Override + public int getCoverIDAtSide(byte aSide) { + if (aSide >= 0 && aSide < 6) return mCoverSides[aSide]; + return 0; + } + + @Override + public ItemStack getCoverItemAtSide(byte aSide) { + return GT_Utility.intToStack(getCoverIDAtSide(aSide)); + } + + @Override + public boolean canPlaceCoverIDAtSide(byte aSide, int aID) { + return getCoverIDAtSide(aSide) == 0; + } + + @Override + public boolean canPlaceCoverItemAtSide(byte aSide, ItemStack aCover) { + return getCoverIDAtSide(aSide) == 0; + } + + @Override + public void setCoverDataAtSide(byte aSide, int aData) { + if (aSide >= 0 && aSide < 6) mCoverData[aSide] = aData; + } + + @Override + public int getCoverDataAtSide(byte aSide) { + if (aSide >= 0 && aSide < 6) return mCoverData[aSide]; + return 0; + } + + public byte getLightValue() { + return mLightValue; + } + + @Override + public void setLightValue(byte aLightValue) { + mLightValue = (byte) (aLightValue & 15); + } + + @Override + public long getAverageElectricInput() { + int rEU = 0; + for (int tEU : mAverageEUInput) rEU += tEU; + return rEU / mAverageEUInput.length; + } + + @Override + public long getAverageElectricOutput() { + int rEU = 0; + for (int tEU : mAverageEUOutput) rEU += tEU; + return rEU / mAverageEUOutput.length; + } + + @Override + public boolean dropCover(byte aSide, byte aDroppedSide, boolean aForced) { + if (getCoverBehaviorAtSide(aSide).onCoverRemoval(aSide, getCoverIDAtSide(aSide), mCoverData[aSide], this, aForced) || aForced) { + ItemStack tStack = getCoverBehaviorAtSide(aSide).getDrop(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this); + if (tStack != null) { + tStack.setTagCompound(null); + EntityItem tEntity = new EntityItem(worldObj, getOffsetX(aDroppedSide, 1) + 0.5, getOffsetY(aDroppedSide, 1) + 0.5, getOffsetZ(aDroppedSide, 1) + 0.5, tStack); + tEntity.motionX = 0; + tEntity.motionY = 0; + tEntity.motionZ = 0; + worldObj.spawnEntityInWorld(tEntity); + } + setCoverIDAtSide(aSide, 0); + if (mMetaTileEntity.hasSidedRedstoneOutputBehavior()) { + setOutputRedstoneSignal(aSide, (byte) 0); + } else { + setOutputRedstoneSignal(aSide, (byte) 15); + } + return true; + } + return false; + } + + @Override + public String getOwnerName() { + if (GT_Utility.isStringInvalid(mOwnerName)) return "Player"; + return mOwnerName; + } + + @Override + public String setOwnerName(String aName) { + if (GT_Utility.isStringInvalid(aName)) return mOwnerName = "Player"; + return mOwnerName = aName; + } + + @Override + public byte getComparatorValue(byte aSide) { + return canAccessData() ? mMetaTileEntity.getComparatorValue(aSide) : 0; + } + + @Override + public byte getStrongOutputRedstoneSignal(byte aSide) { + return aSide >= 0 && aSide < 6 && (mStrongRedstone & (1 << aSide)) != 0 ? (byte) (mSidedRedstone[aSide] & 15) : 0; + } + + @Override + public void setStrongOutputRedstoneSignal(byte aSide, byte aStrength) { + mStrongRedstone |= (1 << aSide); + setOutputRedstoneSignal(aSide, aStrength); + } + + @Override + public ItemStack decrStackSize(int aIndex, int aAmount) { + if (canAccessData()) { + mInventoryChanged = true; + return mMetaTileEntity.decrStackSize(aIndex, aAmount); + } + return null; + } + + @Override + public long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage) { + if (!canAccessData() || !mMetaTileEntity.isElectric() || !inputEnergyFrom(aSide) || aAmperage <= 0 || aVoltage <= 0 || getStoredEU() >= getEUCapacity() || mMetaTileEntity.maxAmperesIn() <= mAcceptedAmperes) + return 0; + if (aVoltage > getInputVoltage()) { + doExplosion(aVoltage); + return 0; + } + if (increaseStoredEnergyUnits(aVoltage * (aAmperage = Math.min(aAmperage, Math.min(mMetaTileEntity.maxAmperesIn() - mAcceptedAmperes, 1 + ((getEUCapacity() - getStoredEU()) / aVoltage)))), true)) { + mAverageEUInput[mAverageEUInputIndex] += aVoltage * aAmperage; + mAcceptedAmperes += aAmperage; + return aAmperage; + } + return 0; + } + + @Override + public boolean drainEnergyUnits(byte aSide, long aVoltage, long aAmperage) { + if (!canAccessData() || !mMetaTileEntity.isElectric() || !outputsEnergyTo(aSide) || getStoredEU() - (aVoltage * aAmperage) < mMetaTileEntity.getMinimumStoredEU()) + return false; + if (decreaseStoredEU(aVoltage * aAmperage, false)) { + mAverageEUOutput[mAverageEUOutputIndex] += aVoltage * aAmperage; + return true; + } + return false; + } + + @Override + public boolean acceptsRotationalEnergy(byte aSide) { + if (!canAccessData() || getCoverIDAtSide(aSide) != 0) return false; + return mMetaTileEntity.acceptsRotationalEnergy(aSide); + } + + @Override + public boolean injectRotationalEnergy(byte aSide, long aSpeed, long aEnergy) { + if (!canAccessData() || getCoverIDAtSide(aSide) != 0) return false; + return mMetaTileEntity.injectRotationalEnergy(aSide, aSpeed, aEnergy); + } - @Override - public void setLightValue(byte aLightValue) { - mLightValue = (byte)(aLightValue & 15); - } - - public byte getLightValue() { - return mLightValue; - } - - - @Override - public long getAverageElectricInput() { - int rEU = 0; - for (int tEU : mAverageEUInput) rEU += tEU; - return rEU / mAverageEUInput.length; - } - - @Override - public long getAverageElectricOutput() { - int rEU = 0; - for (int tEU : mAverageEUOutput) rEU += tEU; - return rEU / mAverageEUOutput.length; - } - - @Override - public boolean dropCover(byte aSide, byte aDroppedSide, boolean aForced) { - if (getCoverBehaviorAtSide(aSide).onCoverRemoval(aSide, getCoverIDAtSide(aSide), mCoverData[aSide], this, aForced) || aForced) { - ItemStack tStack = getCoverBehaviorAtSide(aSide).getDrop(aSide, getCoverIDAtSide(aSide), getCoverDataAtSide(aSide), this); - if (tStack != null) { - tStack.setTagCompound(null); - EntityItem tEntity = new EntityItem(worldObj, getOffsetX(aDroppedSide, 1) + 0.5, getOffsetY(aDroppedSide, 1) + 0.5, getOffsetZ(aDroppedSide, 1) + 0.5, tStack); - tEntity.motionX = 0; - tEntity.motionY = 0; - tEntity.motionZ = 0; - worldObj.spawnEntityInWorld(tEntity); - } - setCoverIDAtSide(aSide, 0); - if (mMetaTileEntity.hasSidedRedstoneOutputBehavior()) { - setOutputRedstoneSignal(aSide, (byte) 0); - } else { - setOutputRedstoneSignal(aSide, (byte)15); - } - return true; - } - return false; - } - - @Override - public String getOwnerName() { - if (GT_Utility.isStringInvalid(mOwnerName)) return "Player"; - return mOwnerName; - } - - @Override - public String setOwnerName(String aName) { - if (GT_Utility.isStringInvalid(aName)) return mOwnerName = "Player"; - return mOwnerName = aName; - } - - @Override - public byte getComparatorValue(byte aSide) { - return canAccessData()?mMetaTileEntity.getComparatorValue(aSide):0; - } - - @Override - public byte getStrongOutputRedstoneSignal(byte aSide) { - return aSide>=0&&aSide<6&&(mStrongRedstone & (1 << aSide))!=0?(byte)(mSidedRedstone[aSide]&15):0; - } - - @Override - public void setStrongOutputRedstoneSignal(byte aSide, byte aStrength) { - mStrongRedstone |= (1 << aSide); - setOutputRedstoneSignal(aSide, aStrength); - } - - @Override - public ItemStack decrStackSize(int aIndex, int aAmount) { - if (canAccessData()) { - mInventoryChanged = true; - return mMetaTileEntity.decrStackSize(aIndex, aAmount); - } - return null; - } - - @Override - public long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage) { - if (!canAccessData() || !mMetaTileEntity.isElectric() || !inputEnergyFrom(aSide) || aAmperage <= 0 || aVoltage <= 0 || getStoredEU() >= getEUCapacity() || mMetaTileEntity.maxAmperesIn() <= mAcceptedAmperes) return 0; - if (aVoltage > getInputVoltage()) { - doExplosion(aVoltage); - return 0; - } - if (increaseStoredEnergyUnits(aVoltage*(aAmperage=Math.min(aAmperage, Math.min(mMetaTileEntity.maxAmperesIn()-mAcceptedAmperes, 1+((getEUCapacity()-getStoredEU()) / aVoltage)))), true)) { - mAverageEUInput[mAverageEUInputIndex] += aVoltage*aAmperage; - mAcceptedAmperes += aAmperage; - return aAmperage; - } - return 0; - } - - @Override - public boolean drainEnergyUnits(byte aSide, long aVoltage, long aAmperage) { - if (!canAccessData() || !mMetaTileEntity.isElectric() || !outputsEnergyTo(aSide) || getStoredEU() - (aVoltage*aAmperage) < mMetaTileEntity.getMinimumStoredEU()) return false; - if (decreaseStoredEU(aVoltage*aAmperage, false)) { - mAverageEUOutput[mAverageEUOutputIndex] += aVoltage*aAmperage; - return true; - } - return false; - } - - @Override - public boolean acceptsRotationalEnergy(byte aSide) { - if (!canAccessData() || getCoverIDAtSide(aSide) != 0) return false; - return mMetaTileEntity.acceptsRotationalEnergy(aSide); - } - - @Override - public boolean injectRotationalEnergy(byte aSide, long aSpeed, long aEnergy) { - if (!canAccessData() || getCoverIDAtSide(aSide) != 0) return false; - return mMetaTileEntity.injectRotationalEnergy(aSide, aSpeed, aEnergy); - } - @Override public int fill(ForgeDirection aSide, FluidStack aFluid, boolean doFill) { - if (mTickTimer > 5 && canAccessData() && (mRunningThroughTick || !mInputDisabled ) && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidInput ((byte)aSide.ordinal()) && getCoverBehaviorAtSide((byte)aSide.ordinal()).letsFluidIn ((byte)aSide.ordinal(), getCoverIDAtSide((byte)aSide.ordinal()), getCoverDataAtSide((byte)aSide.ordinal()), aFluid==null?null:aFluid.getFluid(), this)))) return mMetaTileEntity.fill(aSide, aFluid, doFill); - return 0; + if (mTickTimer > 5 && canAccessData() && (mRunningThroughTick || !mInputDisabled) && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidInput((byte) aSide.ordinal()) && getCoverBehaviorAtSide((byte) aSide.ordinal()).letsFluidIn((byte) aSide.ordinal(), getCoverIDAtSide((byte) aSide.ordinal()), getCoverDataAtSide((byte) aSide.ordinal()), aFluid == null ? null : aFluid.getFluid(), this)))) + return mMetaTileEntity.fill(aSide, aFluid, doFill); + return 0; } - - @Override - public FluidStack drain(ForgeDirection aSide, int maxDrain, boolean doDrain) { - if (mTickTimer > 5 && canAccessData() && (mRunningThroughTick || !mOutputDisabled) && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidOutput((byte)aSide.ordinal()) && getCoverBehaviorAtSide((byte)aSide.ordinal()).letsFluidOut((byte)aSide.ordinal(), getCoverIDAtSide((byte)aSide.ordinal()), getCoverDataAtSide((byte)aSide.ordinal()), mMetaTileEntity.getFluid()==null?null:mMetaTileEntity.getFluid().getFluid(), this)))) return mMetaTileEntity.drain(aSide, maxDrain, doDrain); - return null; - } - - @Override - public FluidStack drain(ForgeDirection aSide, FluidStack aFluid, boolean doDrain) { - if (mTickTimer > 5 && canAccessData() && (mRunningThroughTick || !mOutputDisabled) && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidOutput((byte)aSide.ordinal()) && getCoverBehaviorAtSide((byte)aSide.ordinal()).letsFluidOut((byte)aSide.ordinal(), getCoverIDAtSide((byte)aSide.ordinal()), getCoverDataAtSide((byte)aSide.ordinal()), aFluid==null?null:aFluid.getFluid(), this)))) return mMetaTileEntity.drain(aSide, aFluid, doDrain); - return null; - } - - @Override - public boolean canFill(ForgeDirection aSide, Fluid aFluid) { - if (mTickTimer > 5 && canAccessData() && (mRunningThroughTick || !mInputDisabled ) && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidInput ((byte)aSide.ordinal()) && getCoverBehaviorAtSide((byte)aSide.ordinal()).letsFluidIn ((byte)aSide.ordinal(), getCoverIDAtSide((byte)aSide.ordinal()), getCoverDataAtSide((byte)aSide.ordinal()), aFluid, this)))) return mMetaTileEntity.canFill(aSide, aFluid); - return false; - } - - @Override - public boolean canDrain(ForgeDirection aSide, Fluid aFluid) { - if (mTickTimer > 5 && canAccessData() && (mRunningThroughTick || !mOutputDisabled) && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidOutput((byte)aSide.ordinal()) && getCoverBehaviorAtSide((byte)aSide.ordinal()).letsFluidOut((byte)aSide.ordinal(), getCoverIDAtSide((byte)aSide.ordinal()), getCoverDataAtSide((byte)aSide.ordinal()), aFluid, this)))) return mMetaTileEntity.canDrain(aSide, aFluid); - return false; - } - - @Override - public FluidTankInfo[] getTankInfo(ForgeDirection aSide) { - if (canAccessData() && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidInput((byte)aSide.ordinal()) && getCoverBehaviorAtSide((byte)aSide.ordinal()).letsFluidIn ((byte)aSide.ordinal(), getCoverIDAtSide((byte)aSide.ordinal()), getCoverDataAtSide((byte)aSide.ordinal()), null, this)) || (mMetaTileEntity.isLiquidOutput((byte)aSide.ordinal()) && getCoverBehaviorAtSide((byte)aSide.ordinal()).letsFluidOut((byte)aSide.ordinal(), getCoverIDAtSide((byte)aSide.ordinal()), getCoverDataAtSide((byte)aSide.ordinal()), null, this)))) return mMetaTileEntity.getTankInfo(aSide); - return new FluidTankInfo[] {}; - } - - public double getOutputEnergyUnitsPerTick() { return oOutput;} - public boolean isTeleporterCompatible(ForgeDirection aSide) {return canAccessData() && mMetaTileEntity.isTeleporterCompatible();} - public double demandedEnergyUnits() {if (mReleaseEnergy || !canAccessData() || !mMetaTileEntity.isEnetInput()) return 0; return getEUCapacity() - getStoredEU();} - public double injectEnergyUnits(ForgeDirection aDirection, double aAmount) {return injectEnergyUnits((byte)aDirection.ordinal(), (int)aAmount, 1)>0?0:aAmount;} - public boolean acceptsEnergyFrom(TileEntity aEmitter, ForgeDirection aDirection) {return inputEnergyFrom((byte)aDirection.ordinal());} - public boolean emitsEnergyTo(TileEntity aReceiver, ForgeDirection aDirection) {return outputsEnergyTo((byte)aDirection.ordinal());} - public double getOfferedEnergy() {return (canAccessData() && getStoredEU() - mMetaTileEntity.getMinimumStoredEU() >= oOutput)?Math.max(0, oOutput):0;} - public void drawEnergy(double amount) {mAverageEUOutput[mAverageEUOutputIndex] += amount; decreaseStoredEU((int)amount, true);} - public int injectEnergy(ForgeDirection aForgeDirection, int aAmount) {return injectEnergyUnits((byte)aForgeDirection.ordinal(), aAmount, 1)>0?0:aAmount;} - - public int addEnergy(int aEnergy) { - if (!canAccessData()) return 0; - if (aEnergy > 0) - increaseStoredEnergyUnits( aEnergy, true); - else - decreaseStoredEU(-aEnergy, true); - return (int)Math.min(Integer.MAX_VALUE, mMetaTileEntity.getEUVar()); - } - - public boolean isAddedToEnergyNet() {return false;} - public void setStored(int aEU) {if (canAccessData()) setStoredEU(aEU);} - public int demandsEnergy() {if (mReleaseEnergy || !canAccessData() || !mMetaTileEntity.isEnetInput()) return 0; return getCapacity() - getStored();} - public int getCapacity() {return (int)Math.min(Integer.MAX_VALUE, getEUCapacity());} - public int getStored() {return (int)Math.min(Integer.MAX_VALUE, Math.min(getStoredEU(), getCapacity()));} - public int getMaxSafeInput() {return (int)Math.min(Integer.MAX_VALUE, getInputVoltage());} - public int getMaxEnergyOutput() {if (mReleaseEnergy) return Integer.MAX_VALUE; return getOutput();} - public int getOutput() {return (int)Math.min(Integer.MAX_VALUE, oOutput);} - public int injectEnergy(Direction aDirection, int aAmount) {return injectEnergyUnits((byte)aDirection.toSideValue(), aAmount, 1)>0?0:aAmount;} - public boolean isTeleporterCompatible(Direction aSide) {return canAccessData() && mMetaTileEntity.isTeleporterCompatible();} - public boolean acceptsEnergyFrom(TileEntity aReceiver, Direction aDirection) {return inputEnergyFrom((byte)aDirection.toSideValue());} - public boolean emitsEnergyTo(TileEntity aReceiver, Direction aDirection) {return outputsEnergyTo((byte)aDirection.toSideValue());} - - @Override - public boolean isInvalidTileEntity() { - return isInvalid(); - } - - @Override - public boolean addStackToSlot(int aIndex, ItemStack aStack) { - if (GT_Utility.isStackInvalid(aStack)) return true; - if (aIndex < 0 || aIndex >= getSizeInventory()) return false; - ItemStack tStack = getStackInSlot(aIndex); - if (GT_Utility.isStackInvalid(tStack)) { - setInventorySlotContents(aIndex, aStack); - return true; - } - aStack = GT_OreDictUnificator.get(aStack); - if (GT_Utility.areStacksEqual(tStack, aStack) && tStack.stackSize + aStack.stackSize <= Math.min(aStack.getMaxStackSize(), getInventoryStackLimit())) { - tStack.stackSize+=aStack.stackSize; - return true; - } - return false; - } - - @Override - public boolean addStackToSlot(int aIndex, ItemStack aStack, int aAmount) { - return addStackToSlot(aIndex, GT_Utility.copyAmount(aAmount, aStack)); - } - - @Override - public void setMetaTileEntity(IMetaTileEntity aMetaTileEntity) { - mMetaTileEntity = (MetaTileEntity)aMetaTileEntity; - } - - @Override - public byte getColorization() { - return (byte)(mColor-1); - } - - @Override - public byte setColorization(byte aColor) { - if (aColor > 15 || aColor < -1) aColor = -1; - if (canAccessData()) mMetaTileEntity.onColorChangeServer(aColor); - return mColor = (byte)(aColor+1); - } - - @Override - public float getBlastResistance(byte aSide) { - return canAccessData()?Math.max(0, getMetaTileEntity().getExplosionResistance(aSide)):10.0F; - } - - @Override - public boolean isUniversalEnergyStored(long aEnergyAmount) { - if (getUniversalEnergyStored() >= aEnergyAmount) return true; - mHasEnoughEnergy = false; - return false; - } - - @Override - public String[] getInfoData() { - {if (canAccessData()) return getMetaTileEntity().getInfoData(); return new String[]{};} - } - - @Override + + @Override + public FluidStack drain(ForgeDirection aSide, int maxDrain, boolean doDrain) { + if (mTickTimer > 5 && canAccessData() && (mRunningThroughTick || !mOutputDisabled) && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidOutput((byte) aSide.ordinal()) && getCoverBehaviorAtSide((byte) aSide.ordinal()).letsFluidOut((byte) aSide.ordinal(), getCoverIDAtSide((byte) aSide.ordinal()), getCoverDataAtSide((byte) aSide.ordinal()), mMetaTileEntity.getFluid() == null ? null : mMetaTileEntity.getFluid().getFluid(), this)))) + return mMetaTileEntity.drain(aSide, maxDrain, doDrain); + return null; + } + + @Override + public FluidStack drain(ForgeDirection aSide, FluidStack aFluid, boolean doDrain) { + if (mTickTimer > 5 && canAccessData() && (mRunningThroughTick || !mOutputDisabled) && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidOutput((byte) aSide.ordinal()) && getCoverBehaviorAtSide((byte) aSide.ordinal()).letsFluidOut((byte) aSide.ordinal(), getCoverIDAtSide((byte) aSide.ordinal()), getCoverDataAtSide((byte) aSide.ordinal()), aFluid == null ? null : aFluid.getFluid(), this)))) + return mMetaTileEntity.drain(aSide, aFluid, doDrain); + return null; + } + + @Override + public boolean canFill(ForgeDirection aSide, Fluid aFluid) { + if (mTickTimer > 5 && canAccessData() && (mRunningThroughTick || !mInputDisabled) && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidInput((byte) aSide.ordinal()) && getCoverBehaviorAtSide((byte) aSide.ordinal()).letsFluidIn((byte) aSide.ordinal(), getCoverIDAtSide((byte) aSide.ordinal()), getCoverDataAtSide((byte) aSide.ordinal()), aFluid, this)))) + return mMetaTileEntity.canFill(aSide, aFluid); + return false; + } + + @Override + public boolean canDrain(ForgeDirection aSide, Fluid aFluid) { + if (mTickTimer > 5 && canAccessData() && (mRunningThroughTick || !mOutputDisabled) && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidOutput((byte) aSide.ordinal()) && getCoverBehaviorAtSide((byte) aSide.ordinal()).letsFluidOut((byte) aSide.ordinal(), getCoverIDAtSide((byte) aSide.ordinal()), getCoverDataAtSide((byte) aSide.ordinal()), aFluid, this)))) + return mMetaTileEntity.canDrain(aSide, aFluid); + return false; + } + + @Override + public FluidTankInfo[] getTankInfo(ForgeDirection aSide) { + if (canAccessData() && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidInput((byte) aSide.ordinal()) && getCoverBehaviorAtSide((byte) aSide.ordinal()).letsFluidIn((byte) aSide.ordinal(), getCoverIDAtSide((byte) aSide.ordinal()), getCoverDataAtSide((byte) aSide.ordinal()), null, this)) || (mMetaTileEntity.isLiquidOutput((byte) aSide.ordinal()) && getCoverBehaviorAtSide((byte) aSide.ordinal()).letsFluidOut((byte) aSide.ordinal(), getCoverIDAtSide((byte) aSide.ordinal()), getCoverDataAtSide((byte) aSide.ordinal()), null, this)))) + return mMetaTileEntity.getTankInfo(aSide); + return new FluidTankInfo[]{}; + } + + public double getOutputEnergyUnitsPerTick() { + return oOutput; + } + + public boolean isTeleporterCompatible(ForgeDirection aSide) { + return canAccessData() && mMetaTileEntity.isTeleporterCompatible(); + } + + public double demandedEnergyUnits() { + if (mReleaseEnergy || !canAccessData() || !mMetaTileEntity.isEnetInput()) return 0; + return getEUCapacity() - getStoredEU(); + } + + public double injectEnergyUnits(ForgeDirection aDirection, double aAmount) { + return injectEnergyUnits((byte) aDirection.ordinal(), (int) aAmount, 1) > 0 ? 0 : aAmount; + } + + public boolean acceptsEnergyFrom(TileEntity aEmitter, ForgeDirection aDirection) { + return inputEnergyFrom((byte) aDirection.ordinal()); + } + + public boolean emitsEnergyTo(TileEntity aReceiver, ForgeDirection aDirection) { + return outputsEnergyTo((byte) aDirection.ordinal()); + } + + public double getOfferedEnergy() { + return (canAccessData() && getStoredEU() - mMetaTileEntity.getMinimumStoredEU() >= oOutput) ? Math.max(0, oOutput) : 0; + } + + public void drawEnergy(double amount) { + mAverageEUOutput[mAverageEUOutputIndex] += amount; + decreaseStoredEU((int) amount, true); + } + + public int injectEnergy(ForgeDirection aForgeDirection, int aAmount) { + return injectEnergyUnits((byte) aForgeDirection.ordinal(), aAmount, 1) > 0 ? 0 : aAmount; + } + + public int addEnergy(int aEnergy) { + if (!canAccessData()) return 0; + if (aEnergy > 0) + increaseStoredEnergyUnits(aEnergy, true); + else + decreaseStoredEU(-aEnergy, true); + return (int) Math.min(Integer.MAX_VALUE, mMetaTileEntity.getEUVar()); + } + + public boolean isAddedToEnergyNet() { + return false; + } + + public int demandsEnergy() { + if (mReleaseEnergy || !canAccessData() || !mMetaTileEntity.isEnetInput()) return 0; + return getCapacity() - getStored(); + } + + public int getCapacity() { + return (int) Math.min(Integer.MAX_VALUE, getEUCapacity()); + } + + public int getStored() { + return (int) Math.min(Integer.MAX_VALUE, Math.min(getStoredEU(), getCapacity())); + } + + public void setStored(int aEU) { + if (canAccessData()) setStoredEU(aEU); + } + + public int getMaxSafeInput() { + return (int) Math.min(Integer.MAX_VALUE, getInputVoltage()); + } + + public int getMaxEnergyOutput() { + if (mReleaseEnergy) return Integer.MAX_VALUE; + return getOutput(); + } + + public int getOutput() { + return (int) Math.min(Integer.MAX_VALUE, oOutput); + } + + public int injectEnergy(Direction aDirection, int aAmount) { + return injectEnergyUnits((byte) aDirection.toSideValue(), aAmount, 1) > 0 ? 0 : aAmount; + } + + public boolean isTeleporterCompatible(Direction aSide) { + return canAccessData() && mMetaTileEntity.isTeleporterCompatible(); + } + + public boolean acceptsEnergyFrom(TileEntity aReceiver, Direction aDirection) { + return inputEnergyFrom((byte) aDirection.toSideValue()); + } + + public boolean emitsEnergyTo(TileEntity aReceiver, Direction aDirection) { + return outputsEnergyTo((byte) aDirection.toSideValue()); + } + + @Override + public boolean isInvalidTileEntity() { + return isInvalid(); + } + + @Override + public boolean addStackToSlot(int aIndex, ItemStack aStack) { + if (GT_Utility.isStackInvalid(aStack)) return true; + if (aIndex < 0 || aIndex >= getSizeInventory()) return false; + ItemStack tStack = getStackInSlot(aIndex); + if (GT_Utility.isStackInvalid(tStack)) { + setInventorySlotContents(aIndex, aStack); + return true; + } + aStack = GT_OreDictUnificator.get(aStack); + if (GT_Utility.areStacksEqual(tStack, aStack) && tStack.stackSize + aStack.stackSize <= Math.min(aStack.getMaxStackSize(), getInventoryStackLimit())) { + tStack.stackSize += aStack.stackSize; + return true; + } + return false; + } + + @Override + public boolean addStackToSlot(int aIndex, ItemStack aStack, int aAmount) { + return addStackToSlot(aIndex, GT_Utility.copyAmount(aAmount, aStack)); + } + + @Override + public byte getColorization() { + return (byte) (mColor - 1); + } + + @Override + public byte setColorization(byte aColor) { + if (aColor > 15 || aColor < -1) aColor = -1; + if (canAccessData()) mMetaTileEntity.onColorChangeServer(aColor); + return mColor = (byte) (aColor + 1); + } + + @Override + public float getBlastResistance(byte aSide) { + return canAccessData() ? Math.max(0, getMetaTileEntity().getExplosionResistance(aSide)) : 10.0F; + } + + @Override + public boolean isUniversalEnergyStored(long aEnergyAmount) { + if (getUniversalEnergyStored() >= aEnergyAmount) return true; + mHasEnoughEnergy = false; + return false; + } + + @Override + public String[] getInfoData() { + { + if (canAccessData()) return getMetaTileEntity().getInfoData(); + return new String[]{}; + } + } + + @Override public void markDirty() { - super.markDirty(); - mInventoryChanged = true; + super.markDirty(); + mInventoryChanged = true; + } + + @Override + public int getLightOpacity() { + return mMetaTileEntity == null ? getLightValue() > 0 ? 0 : 255 : mMetaTileEntity.getLightOpacity(); + } + + @Override + public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List outputAABB, Entity collider) { + mMetaTileEntity.addCollisionBoxesToList(aWorld, aX, aY, aZ, inputAABB, outputAABB, collider); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) { + return mMetaTileEntity.getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ); + } + + @Override + public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider) { + mMetaTileEntity.onEntityCollidedWithBlock(aWorld, aX, aY, aZ, collider); } - - @Override - public int getLightOpacity() { - return mMetaTileEntity == null ? getLightValue() > 0 ? 0 : 255 : mMetaTileEntity.getLightOpacity(); - } - - @Override - public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List outputAABB, Entity collider) { - mMetaTileEntity.addCollisionBoxesToList(aWorld, aX, aY, aZ, inputAABB, outputAABB, collider); - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) { - return mMetaTileEntity.getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ); - } - - @Override - public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider) { - mMetaTileEntity.onEntityCollidedWithBlock(aWorld, aX, aY, aZ, collider); - } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntityUE.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntityUE.java index d18ddeb2..26388bd1 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntityUE.java +++ b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntityUE.java @@ -3,16 +3,16 @@ package gregtech.api.metatileentity; /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* This file contains all the needed 'implements' of the Interfaces for the Universal Electricity Stuff. - * + *

* I am using the BC3 Ratio, since that is a constant in comparison to IC² Energy (1 MJ is always 2,5 EU). */ public class BaseMetaTileEntityUE extends BaseMetaTileEntity /*implements IUETileEntity*/ { - public BaseMetaTileEntityUE() { - super(); - } - /* + public BaseMetaTileEntityUE() { + super(); + } + /* @Override public void updateStatus() { super.updateStatus(); diff --git a/src/main/java/gregtech/api/metatileentity/BaseTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseTileEntity.java index d8a798d1..f60c24b2 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/BaseTileEntity.java @@ -1,7 +1,5 @@ package gregtech.api.metatileentity; -import static gregtech.api.enums.GT_Values.GT; -import static gregtech.api.enums.GT_Values.NW; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.interfaces.tileentity.IHasWorldObjectAndCoords; import gregtech.api.net.GT_Packet_Block_Event; @@ -17,211 +15,423 @@ import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.IFluidHandler; +import static gregtech.api.enums.GT_Values.GT; +import static gregtech.api.enums.GT_Values.NW; + /** * The Functions my old TileEntities and my BaseMetaTileEntities have in common. - * + *

* Basically everything a TileEntity should have. */ public abstract class BaseTileEntity extends TileEntity implements IHasWorldObjectAndCoords { - /** - * If this TileEntity checks for the Chunk to be loaded before returning World based values. - * The AdvPump hacks this to false to ensure everything runs properly even when far Chunks are not actively loaded. - * But anything else should not cause worfin' Chunks, uhh I mean orphan Chunks. - */ - public boolean ignoreUnloadedChunks = true; - - /** - * This Variable checks if this TileEntity is dead, because Minecraft is too stupid to have proper TileEntity unloading. - */ - public boolean isDead = false; - - /** - * Buffers adjacent TileEntities for faster access - * - * "this" means that there is no TileEntity, while "null" means that it doesn't know if there is even a TileEntity and still needs to check that if needed. - */ - private final TileEntity[] mBufferedTileEntities = new TileEntity[6]; - + /** + * Buffers adjacent TileEntities for faster access + *

+ * "this" means that there is no TileEntity, while "null" means that it doesn't know if there is even a TileEntity and still needs to check that if needed. + */ + private final TileEntity[] mBufferedTileEntities = new TileEntity[6]; + /** + * If this TileEntity checks for the Chunk to be loaded before returning World based values. + * The AdvPump hacks this to false to ensure everything runs properly even when far Chunks are not actively loaded. + * But anything else should not cause worfin' Chunks, uhh I mean orphan Chunks. + */ + public boolean ignoreUnloadedChunks = true; + /** + * This Variable checks if this TileEntity is dead, because Minecraft is too stupid to have proper TileEntity unloading. + */ + public boolean isDead = false; + private final void clearNullMarkersFromTileEntityBuffer() { - for (int i = 0; i < mBufferedTileEntities.length; i++) if (mBufferedTileEntities[i] == this) mBufferedTileEntities[i] = null; + for (int i = 0; i < mBufferedTileEntities.length; i++) + if (mBufferedTileEntities[i] == this) mBufferedTileEntities[i] = null; } - + /** * Called automatically when the Coordinates of this TileEntity have been changed */ protected final void clearTileEntityBuffer() { - for (int i = 0; i < mBufferedTileEntities.length; i++) mBufferedTileEntities[i] = null; + for (int i = 0; i < mBufferedTileEntities.length; i++) mBufferedTileEntities[i] = null; } - - @Override public final World getWorld () {return worldObj;} - @Override public final int getXCoord() {return xCoord;} - @Override public final short getYCoord() {return (short)yCoord;} - @Override public final int getZCoord() {return zCoord;} - @Override public final int getOffsetX(byte aSide, int aMultiplier) {return xCoord + ForgeDirection.getOrientation(aSide).offsetX * aMultiplier ;} - @Override public final short getOffsetY(byte aSide, int aMultiplier) {return (short)(yCoord + ForgeDirection.getOrientation(aSide).offsetY * aMultiplier);} - @Override public final int getOffsetZ(byte aSide, int aMultiplier) {return zCoord + ForgeDirection.getOrientation(aSide).offsetZ * aMultiplier ;} - @Override public final boolean isServerSide() {return !worldObj.isRemote;} - @Override public final boolean isClientSide() {return worldObj.isRemote;} - @Override public final boolean openGUI(EntityPlayer aPlayer) {return openGUI(aPlayer, 0);} - @Override public final boolean openGUI(EntityPlayer aPlayer, int aID) {if (aPlayer == null) return false; aPlayer.openGui(GT, aID, worldObj, xCoord, yCoord, zCoord); return true;} - @Override public final int getRandomNumber(int aRange) {return worldObj.rand.nextInt(aRange);} - @Override public final BiomeGenBase getBiome(int aX, int aZ) {return worldObj.getBiomeGenForCoords(aX, aZ);} - @Override public final BiomeGenBase getBiome() {return getBiome(xCoord, zCoord);} - @Override public final Block getBlockOffset(int aX, int aY, int aZ) {return getBlock(xCoord+aX, yCoord+aY, zCoord+aZ);} - @Override public final Block getBlockAtSide(byte aSide) {return getBlockAtSideAndDistance(aSide, 1);} - @Override public final Block getBlockAtSideAndDistance(byte aSide, int aDistance) {return getBlock(getOffsetX(aSide, aDistance), getOffsetY(aSide, aDistance), getOffsetZ(aSide, aDistance));} - @Override public final byte getMetaIDOffset(int aX, int aY, int aZ) {return getMetaID(xCoord+aX, yCoord+aY, zCoord+aZ);} - @Override public final byte getMetaIDAtSide(byte aSide) {return getMetaIDAtSideAndDistance(aSide, 1);} - @Override public final byte getMetaIDAtSideAndDistance(byte aSide, int aDistance) {return getMetaID(getOffsetX(aSide, aDistance), getOffsetY(aSide, aDistance), getOffsetZ(aSide, aDistance));} - @Override public final byte getLightLevelOffset(int aX, int aY, int aZ) {return getLightLevel(xCoord+aX, yCoord+aY, zCoord+aZ);} - @Override public final byte getLightLevelAtSide(byte aSide) {return getLightLevelAtSideAndDistance(aSide, 1);} - @Override public final byte getLightLevelAtSideAndDistance(byte aSide, int aDistance) {return getLightLevel(getOffsetX(aSide, aDistance), getOffsetY(aSide, aDistance), getOffsetZ(aSide, aDistance));} - @Override public final boolean getOpacityOffset(int aX, int aY, int aZ) {return getOpacity(xCoord+aX, yCoord+aY, zCoord+aZ);} - @Override public final boolean getOpacityAtSide(byte aSide) {return getOpacityAtSideAndDistance(aSide, 1);} - @Override public final boolean getOpacityAtSideAndDistance(byte aSide, int aDistance) {return getOpacity(getOffsetX(aSide, aDistance), getOffsetY(aSide, aDistance), getOffsetZ(aSide, aDistance));} - @Override public final boolean getSkyOffset(int aX, int aY, int aZ) {return getSky(xCoord+aX, yCoord+aY, zCoord+aZ);} - @Override public final boolean getSkyAtSide(byte aSide) {return getSkyAtSideAndDistance(aSide, 1);} - @Override public final boolean getSkyAtSideAndDistance(byte aSide, int aDistance) {return getSky(getOffsetX(aSide, aDistance), getOffsetY(aSide, aDistance), getOffsetZ(aSide, aDistance));} - @Override public final boolean getAirOffset(int aX, int aY, int aZ) {return getAir(xCoord+aX, yCoord+aY, zCoord+aZ);} - @Override public final boolean getAirAtSide(byte aSide) {return getAirAtSideAndDistance(aSide, 1);} - @Override public final boolean getAirAtSideAndDistance(byte aSide, int aDistance) {return getAir(getOffsetX(aSide, aDistance), getOffsetY(aSide, aDistance), getOffsetZ(aSide, aDistance));} - @Override public final TileEntity getTileEntityOffset(int aX, int aY, int aZ) {return getTileEntity(xCoord+aX, yCoord+aY, zCoord+aZ);} - @Override public final TileEntity getTileEntityAtSideAndDistance(byte aSide, int aDistance) {if (aDistance == 1) return getTileEntityAtSide(aSide); return getTileEntity(getOffsetX(aSide, aDistance), getOffsetY(aSide, aDistance), getOffsetZ(aSide, aDistance));} - @Override public final IInventory getIInventory(int aX, int aY, int aZ) {TileEntity tTileEntity = getTileEntity(aX, aY, aZ); if (tTileEntity instanceof IInventory) return (IInventory)tTileEntity; return null;} - @Override public final IInventory getIInventoryOffset(int aX, int aY, int aZ) {TileEntity tTileEntity = getTileEntityOffset(aX, aY, aZ); if (tTileEntity instanceof IInventory) return (IInventory)tTileEntity; return null;} - @Override public final IInventory getIInventoryAtSide(byte aSide) {TileEntity tTileEntity = getTileEntityAtSide(aSide); if (tTileEntity instanceof IInventory) return (IInventory)tTileEntity; return null;} - @Override public final IInventory getIInventoryAtSideAndDistance(byte aSide, int aDistance) {TileEntity tTileEntity = getTileEntityAtSideAndDistance(aSide, aDistance); if (tTileEntity instanceof IInventory) return (IInventory)tTileEntity; return null;} - @Override public final IFluidHandler getITankContainer(int aX, int aY, int aZ) {TileEntity tTileEntity = getTileEntity(aX, aY, aZ); if (tTileEntity instanceof IFluidHandler) return (IFluidHandler)tTileEntity; return null;} - @Override public final IFluidHandler getITankContainerOffset(int aX, int aY, int aZ) {TileEntity tTileEntity = getTileEntityOffset(aX, aY, aZ); if (tTileEntity instanceof IFluidHandler) return (IFluidHandler)tTileEntity; return null;} - @Override public final IFluidHandler getITankContainerAtSide(byte aSide) {TileEntity tTileEntity = getTileEntityAtSide(aSide); if (tTileEntity instanceof IFluidHandler) return (IFluidHandler)tTileEntity; return null;} - @Override public final IFluidHandler getITankContainerAtSideAndDistance(byte aSide, int aDistance) {TileEntity tTileEntity = getTileEntityAtSideAndDistance(aSide, aDistance); if (tTileEntity instanceof IFluidHandler) return (IFluidHandler)tTileEntity; return null;} - @Override public final IGregTechTileEntity getIGregTechTileEntity(int aX, int aY, int aZ) {TileEntity tTileEntity = getTileEntity(aX, aY, aZ); if (tTileEntity instanceof IGregTechTileEntity) return (IGregTechTileEntity)tTileEntity; return null;} - @Override public final IGregTechTileEntity getIGregTechTileEntityOffset(int aX, int aY, int aZ) {TileEntity tTileEntity = getTileEntityOffset(aX, aY, aZ); if (tTileEntity instanceof IGregTechTileEntity) return (IGregTechTileEntity)tTileEntity; return null;} - @Override public final IGregTechTileEntity getIGregTechTileEntityAtSide(byte aSide) {TileEntity tTileEntity = getTileEntityAtSide(aSide); if (tTileEntity instanceof IGregTechTileEntity) return (IGregTechTileEntity)tTileEntity; return null;} - @Override public final IGregTechTileEntity getIGregTechTileEntityAtSideAndDistance(byte aSide, int aDistance) {TileEntity tTileEntity = getTileEntityAtSideAndDistance(aSide, aDistance); if (tTileEntity instanceof IGregTechTileEntity) return (IGregTechTileEntity)tTileEntity; return null;} - + + @Override + public final World getWorld() { + return worldObj; + } + + @Override + public final int getXCoord() { + return xCoord; + } + + @Override + public final short getYCoord() { + return (short) yCoord; + } + + @Override + public final int getZCoord() { + return zCoord; + } + + @Override + public final int getOffsetX(byte aSide, int aMultiplier) { + return xCoord + ForgeDirection.getOrientation(aSide).offsetX * aMultiplier; + } + + @Override + public final short getOffsetY(byte aSide, int aMultiplier) { + return (short) (yCoord + ForgeDirection.getOrientation(aSide).offsetY * aMultiplier); + } + + @Override + public final int getOffsetZ(byte aSide, int aMultiplier) { + return zCoord + ForgeDirection.getOrientation(aSide).offsetZ * aMultiplier; + } + + @Override + public final boolean isServerSide() { + return !worldObj.isRemote; + } + + @Override + public final boolean isClientSide() { + return worldObj.isRemote; + } + + @Override + public final boolean openGUI(EntityPlayer aPlayer) { + return openGUI(aPlayer, 0); + } + + @Override + public final boolean openGUI(EntityPlayer aPlayer, int aID) { + if (aPlayer == null) return false; + aPlayer.openGui(GT, aID, worldObj, xCoord, yCoord, zCoord); + return true; + } + + @Override + public final int getRandomNumber(int aRange) { + return worldObj.rand.nextInt(aRange); + } + + @Override + public final BiomeGenBase getBiome(int aX, int aZ) { + return worldObj.getBiomeGenForCoords(aX, aZ); + } + + @Override + public final BiomeGenBase getBiome() { + return getBiome(xCoord, zCoord); + } + + @Override + public final Block getBlockOffset(int aX, int aY, int aZ) { + return getBlock(xCoord + aX, yCoord + aY, zCoord + aZ); + } + + @Override + public final Block getBlockAtSide(byte aSide) { + return getBlockAtSideAndDistance(aSide, 1); + } + + @Override + public final Block getBlockAtSideAndDistance(byte aSide, int aDistance) { + return getBlock(getOffsetX(aSide, aDistance), getOffsetY(aSide, aDistance), getOffsetZ(aSide, aDistance)); + } + + @Override + public final byte getMetaIDOffset(int aX, int aY, int aZ) { + return getMetaID(xCoord + aX, yCoord + aY, zCoord + aZ); + } + + @Override + public final byte getMetaIDAtSide(byte aSide) { + return getMetaIDAtSideAndDistance(aSide, 1); + } + + @Override + public final byte getMetaIDAtSideAndDistance(byte aSide, int aDistance) { + return getMetaID(getOffsetX(aSide, aDistance), getOffsetY(aSide, aDistance), getOffsetZ(aSide, aDistance)); + } + + @Override + public final byte getLightLevelOffset(int aX, int aY, int aZ) { + return getLightLevel(xCoord + aX, yCoord + aY, zCoord + aZ); + } + + @Override + public final byte getLightLevelAtSide(byte aSide) { + return getLightLevelAtSideAndDistance(aSide, 1); + } + + @Override + public final byte getLightLevelAtSideAndDistance(byte aSide, int aDistance) { + return getLightLevel(getOffsetX(aSide, aDistance), getOffsetY(aSide, aDistance), getOffsetZ(aSide, aDistance)); + } + + @Override + public final boolean getOpacityOffset(int aX, int aY, int aZ) { + return getOpacity(xCoord + aX, yCoord + aY, zCoord + aZ); + } + + @Override + public final boolean getOpacityAtSide(byte aSide) { + return getOpacityAtSideAndDistance(aSide, 1); + } + + @Override + public final boolean getOpacityAtSideAndDistance(byte aSide, int aDistance) { + return getOpacity(getOffsetX(aSide, aDistance), getOffsetY(aSide, aDistance), getOffsetZ(aSide, aDistance)); + } + + @Override + public final boolean getSkyOffset(int aX, int aY, int aZ) { + return getSky(xCoord + aX, yCoord + aY, zCoord + aZ); + } + + @Override + public final boolean getSkyAtSide(byte aSide) { + return getSkyAtSideAndDistance(aSide, 1); + } + + @Override + public final boolean getSkyAtSideAndDistance(byte aSide, int aDistance) { + return getSky(getOffsetX(aSide, aDistance), getOffsetY(aSide, aDistance), getOffsetZ(aSide, aDistance)); + } + + @Override + public final boolean getAirOffset(int aX, int aY, int aZ) { + return getAir(xCoord + aX, yCoord + aY, zCoord + aZ); + } + + @Override + public final boolean getAirAtSide(byte aSide) { + return getAirAtSideAndDistance(aSide, 1); + } + + @Override + public final boolean getAirAtSideAndDistance(byte aSide, int aDistance) { + return getAir(getOffsetX(aSide, aDistance), getOffsetY(aSide, aDistance), getOffsetZ(aSide, aDistance)); + } + + @Override + public final TileEntity getTileEntityOffset(int aX, int aY, int aZ) { + return getTileEntity(xCoord + aX, yCoord + aY, zCoord + aZ); + } + + @Override + public final TileEntity getTileEntityAtSideAndDistance(byte aSide, int aDistance) { + if (aDistance == 1) return getTileEntityAtSide(aSide); + return getTileEntity(getOffsetX(aSide, aDistance), getOffsetY(aSide, aDistance), getOffsetZ(aSide, aDistance)); + } + + @Override + public final IInventory getIInventory(int aX, int aY, int aZ) { + TileEntity tTileEntity = getTileEntity(aX, aY, aZ); + if (tTileEntity instanceof IInventory) return (IInventory) tTileEntity; + return null; + } + + @Override + public final IInventory getIInventoryOffset(int aX, int aY, int aZ) { + TileEntity tTileEntity = getTileEntityOffset(aX, aY, aZ); + if (tTileEntity instanceof IInventory) return (IInventory) tTileEntity; + return null; + } + + @Override + public final IInventory getIInventoryAtSide(byte aSide) { + TileEntity tTileEntity = getTileEntityAtSide(aSide); + if (tTileEntity instanceof IInventory) return (IInventory) tTileEntity; + return null; + } + + @Override + public final IInventory getIInventoryAtSideAndDistance(byte aSide, int aDistance) { + TileEntity tTileEntity = getTileEntityAtSideAndDistance(aSide, aDistance); + if (tTileEntity instanceof IInventory) return (IInventory) tTileEntity; + return null; + } + + @Override + public final IFluidHandler getITankContainer(int aX, int aY, int aZ) { + TileEntity tTileEntity = getTileEntity(aX, aY, aZ); + if (tTileEntity instanceof IFluidHandler) return (IFluidHandler) tTileEntity; + return null; + } + + @Override + public final IFluidHandler getITankContainerOffset(int aX, int aY, int aZ) { + TileEntity tTileEntity = getTileEntityOffset(aX, aY, aZ); + if (tTileEntity instanceof IFluidHandler) return (IFluidHandler) tTileEntity; + return null; + } + + @Override + public final IFluidHandler getITankContainerAtSide(byte aSide) { + TileEntity tTileEntity = getTileEntityAtSide(aSide); + if (tTileEntity instanceof IFluidHandler) return (IFluidHandler) tTileEntity; + return null; + } + + @Override + public final IFluidHandler getITankContainerAtSideAndDistance(byte aSide, int aDistance) { + TileEntity tTileEntity = getTileEntityAtSideAndDistance(aSide, aDistance); + if (tTileEntity instanceof IFluidHandler) return (IFluidHandler) tTileEntity; + return null; + } + + @Override + public final IGregTechTileEntity getIGregTechTileEntity(int aX, int aY, int aZ) { + TileEntity tTileEntity = getTileEntity(aX, aY, aZ); + if (tTileEntity instanceof IGregTechTileEntity) return (IGregTechTileEntity) tTileEntity; + return null; + } + + @Override + public final IGregTechTileEntity getIGregTechTileEntityOffset(int aX, int aY, int aZ) { + TileEntity tTileEntity = getTileEntityOffset(aX, aY, aZ); + if (tTileEntity instanceof IGregTechTileEntity) return (IGregTechTileEntity) tTileEntity; + return null; + } + + @Override + public final IGregTechTileEntity getIGregTechTileEntityAtSide(byte aSide) { + TileEntity tTileEntity = getTileEntityAtSide(aSide); + if (tTileEntity instanceof IGregTechTileEntity) return (IGregTechTileEntity) tTileEntity; + return null; + } + + @Override + public final IGregTechTileEntity getIGregTechTileEntityAtSideAndDistance(byte aSide, int aDistance) { + TileEntity tTileEntity = getTileEntityAtSideAndDistance(aSide, aDistance); + if (tTileEntity instanceof IGregTechTileEntity) return (IGregTechTileEntity) tTileEntity; + return null; + } + @Override public final Block getBlock(int aX, int aY, int aZ) { - if (ignoreUnloadedChunks && crossedChunkBorder(aX, aZ) && !worldObj.blockExists(aX, aY, aZ)) return Blocks.air; - return worldObj.getBlock(aX, aY, aZ); + if (ignoreUnloadedChunks && crossedChunkBorder(aX, aZ) && !worldObj.blockExists(aX, aY, aZ)) return Blocks.air; + return worldObj.getBlock(aX, aY, aZ); } - + @Override public final byte getMetaID(int aX, int aY, int aZ) { - if (ignoreUnloadedChunks && crossedChunkBorder(aX, aZ) && !worldObj.blockExists(aX, aY, aZ)) return 0; - return (byte)worldObj.getBlockMetadata(aX, aY, aZ); + if (ignoreUnloadedChunks && crossedChunkBorder(aX, aZ) && !worldObj.blockExists(aX, aY, aZ)) return 0; + return (byte) worldObj.getBlockMetadata(aX, aY, aZ); } - + @Override public final byte getLightLevel(int aX, int aY, int aZ) { - if (ignoreUnloadedChunks && crossedChunkBorder(aX, aZ) && !worldObj.blockExists(aX, aY, aZ)) return 0; - return (byte)(worldObj.getLightBrightness(aX, aY, aZ)*15); + if (ignoreUnloadedChunks && crossedChunkBorder(aX, aZ) && !worldObj.blockExists(aX, aY, aZ)) return 0; + return (byte) (worldObj.getLightBrightness(aX, aY, aZ) * 15); } - + @Override public final boolean getSky(int aX, int aY, int aZ) { - if (ignoreUnloadedChunks && crossedChunkBorder(aX, aZ) && !worldObj.blockExists(aX, aY, aZ)) return true; - return worldObj.canBlockSeeTheSky(aX, aY, aZ); + if (ignoreUnloadedChunks && crossedChunkBorder(aX, aZ) && !worldObj.blockExists(aX, aY, aZ)) return true; + return worldObj.canBlockSeeTheSky(aX, aY, aZ); } - + @Override public final boolean getOpacity(int aX, int aY, int aZ) { - if (ignoreUnloadedChunks && crossedChunkBorder(aX, aZ) && !worldObj.blockExists(aX, aY, aZ)) return false; - return GT_Utility.isOpaqueBlock(worldObj, aX, aY, aZ); + if (ignoreUnloadedChunks && crossedChunkBorder(aX, aZ) && !worldObj.blockExists(aX, aY, aZ)) return false; + return GT_Utility.isOpaqueBlock(worldObj, aX, aY, aZ); } - + @Override public final boolean getAir(int aX, int aY, int aZ) { - if (ignoreUnloadedChunks && crossedChunkBorder(aX, aZ) && !worldObj.blockExists(aX, aY, aZ)) return true; - return GT_Utility.isBlockAir(worldObj, aX, aY, aZ); + if (ignoreUnloadedChunks && crossedChunkBorder(aX, aZ) && !worldObj.blockExists(aX, aY, aZ)) return true; + return GT_Utility.isBlockAir(worldObj, aX, aY, aZ); } - + @Override public final TileEntity getTileEntity(int aX, int aY, int aZ) { - if (ignoreUnloadedChunks && crossedChunkBorder(aX, aZ) && !worldObj.blockExists(aX, aY, aZ)) return null; - return worldObj.getTileEntity(aX, aY, aZ); + if (ignoreUnloadedChunks && crossedChunkBorder(aX, aZ) && !worldObj.blockExists(aX, aY, aZ)) return null; + return worldObj.getTileEntity(aX, aY, aZ); } - + @Override public final TileEntity getTileEntityAtSide(byte aSide) { - if (aSide < 0 || aSide >= 6 || mBufferedTileEntities[aSide] == this) return null; - int tX = getOffsetX(aSide, 1), tY = getOffsetY(aSide, 1), tZ = getOffsetZ(aSide, 1); - if (crossedChunkBorder(tX, tZ)) { - mBufferedTileEntities[aSide] = null; - if (ignoreUnloadedChunks && !worldObj.blockExists(tX, tY, tZ)) return null; - } - if (mBufferedTileEntities[aSide] == null) { - mBufferedTileEntities[aSide] = worldObj.getTileEntity(tX, tY, tZ); - if (mBufferedTileEntities[aSide] == null) { - mBufferedTileEntities[aSide] = this; - return null; - } - return mBufferedTileEntities[aSide]; - } - if (mBufferedTileEntities[aSide].isInvalid()) { - mBufferedTileEntities[aSide] = null; - return getTileEntityAtSide(aSide); - } - if (mBufferedTileEntities[aSide].xCoord == tX && mBufferedTileEntities[aSide].yCoord == tY && mBufferedTileEntities[aSide].zCoord == tZ) { - return mBufferedTileEntities[aSide]; - } - return null; + if (aSide < 0 || aSide >= 6 || mBufferedTileEntities[aSide] == this) return null; + int tX = getOffsetX(aSide, 1), tY = getOffsetY(aSide, 1), tZ = getOffsetZ(aSide, 1); + if (crossedChunkBorder(tX, tZ)) { + mBufferedTileEntities[aSide] = null; + if (ignoreUnloadedChunks && !worldObj.blockExists(tX, tY, tZ)) return null; + } + if (mBufferedTileEntities[aSide] == null) { + mBufferedTileEntities[aSide] = worldObj.getTileEntity(tX, tY, tZ); + if (mBufferedTileEntities[aSide] == null) { + mBufferedTileEntities[aSide] = this; + return null; + } + return mBufferedTileEntities[aSide]; + } + if (mBufferedTileEntities[aSide].isInvalid()) { + mBufferedTileEntities[aSide] = null; + return getTileEntityAtSide(aSide); + } + if (mBufferedTileEntities[aSide].xCoord == tX && mBufferedTileEntities[aSide].yCoord == tY && mBufferedTileEntities[aSide].zCoord == tZ) { + return mBufferedTileEntities[aSide]; + } + return null; } - - @Override + + @Override public void writeToNBT(NBTTagCompound aNBT) { - super.writeToNBT(aNBT); - //isDead = true; - } - + super.writeToNBT(aNBT); + //isDead = true; + } + @Override public boolean isDead() { - return isDead || isInvalidTileEntity(); + return isDead || isInvalidTileEntity(); } - + @Override public void validate() { - clearNullMarkersFromTileEntityBuffer(); - super.validate(); + clearNullMarkersFromTileEntityBuffer(); + super.validate(); } - + @Override public void invalidate() { - clearNullMarkersFromTileEntityBuffer(); - super.invalidate(); + clearNullMarkersFromTileEntityBuffer(); + super.invalidate(); } - + @Override public void onChunkUnload() { - clearNullMarkersFromTileEntityBuffer(); - super.onChunkUnload(); - isDead = true; + clearNullMarkersFromTileEntityBuffer(); + super.onChunkUnload(); + isDead = true; } - + @Override public void updateEntity() { - // Well if the TileEntity gets ticked it is alive. - isDead = false; + // Well if the TileEntity gets ticked it is alive. + isDead = false; } - + public final void onAdjacentBlockChange(int aX, int aY, int aZ) { - clearNullMarkersFromTileEntityBuffer(); + clearNullMarkersFromTileEntityBuffer(); + } + + @Override + public final void sendBlockEvent(byte aID, byte aValue) { + NW.sendPacketToAllPlayersInRange(worldObj, new GT_Packet_Block_Event(xCoord, (short) yCoord, zCoord, aID, aValue), xCoord, zCoord); + } + + private boolean crossedChunkBorder(int aX, int aZ) { + return aX >> 4 != xCoord >> 4 || aZ >> 4 != zCoord >> 4; + } + + public final void setOnFire() { + GT_Utility.setCoordsOnFire(worldObj, xCoord, yCoord, zCoord, false); + } + + public final void setToFire() { + worldObj.setBlock(xCoord, yCoord, zCoord, Blocks.fire); } - - @Override - public final void sendBlockEvent(byte aID, byte aValue) { - NW.sendPacketToAllPlayersInRange(worldObj, new GT_Packet_Block_Event(xCoord, (short)yCoord, zCoord, aID, aValue), xCoord, zCoord); - } - - private boolean crossedChunkBorder(int aX, int aZ) { - return aX >> 4 != xCoord >> 4 || aZ >> 4 != zCoord >> 4; - } - - public final void setOnFire() { - GT_Utility.setCoordsOnFire(worldObj, xCoord, yCoord, zCoord, false); - } - - public final void setToFire() { - worldObj.setBlock(xCoord, yCoord, zCoord, Blocks.fire); - } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java index d82a23b6..ecf2ba4f 100644 --- a/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java +++ b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java @@ -1,7 +1,7 @@ package gregtech.api.metatileentity; -import static gregtech.api.enums.GT_Values.GT; -import static gregtech.api.enums.GT_Values.V; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -9,11 +9,6 @@ import gregtech.api.objects.GT_ItemStack; import gregtech.api.util.GT_Config; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Utility; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.texture.IIconRegister; @@ -30,505 +25,615 @@ import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTankInfo; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import static gregtech.api.enums.GT_Values.GT; +import static gregtech.api.enums.GT_Values.V; /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* Extend this Class to add a new MetaPipe * Call the Constructor with the desired ID at the load-phase (not preload and also not postload!) * Implement the newMetaEntity-Method to return a new ready instance of your MetaTileEntity - * - * Call the Constructor like the following example inside the Load Phase, to register it. + *

+ * Call the Constructor like the following example inside the Load Phase, to register it. * "new GT_MetaTileEntity_E_Furnace(54, "GT_E_Furnace", "Automatic E-Furnace");" */ public abstract class MetaPipeEntity implements IMetaTileEntity { - /** - * This variable tells, which directions the Block is connected to. It is a Bitmask. - */ - public byte mConnections = 0; + /** + * The Inventory of the MetaTileEntity. Amount of Slots can be larger than 256. HAYO! + */ + public final ItemStack[] mInventory; + /** + * This variable tells, which directions the Block is connected to. It is a Bitmask. + */ + public byte mConnections = 0; + /** + * Only assigned for the MetaTileEntity in the List! Also only used to get the localized Name for the ItemStack and for getInvName. + */ + public String mName; + public boolean doTickProfilingInThisTick = true; + /** + * accessibility to this Field is no longer given, see below + */ + private IGregTechTileEntity mBaseMetaTileEntity; - /** - * For Pipe Rendering - */ - public abstract float getThickNess(); - - /** - * For Pipe Rendering - */ - public abstract boolean renderInside(byte aSide); - - /** - * Only assigned for the MetaTileEntity in the List! Also only used to get the localized Name for the ItemStack and for getInvName. - */ - public String mName; - - public boolean doTickProfilingInThisTick = true; - - /** - * accessibility to this Field is no longer given, see below - */ - private IGregTechTileEntity mBaseMetaTileEntity; - - @Override - public IGregTechTileEntity getBaseMetaTileEntity() { - return mBaseMetaTileEntity; - } - - @Override - public ItemStack getStackForm(long aAmount) { - return new ItemStack(GregTech_API.sBlockMachines, (int)aAmount, getBaseMetaTileEntity().getMetaTileID()); - } - - /** - * The Inventory of the MetaTileEntity. Amount of Slots can be larger than 256. HAYO! - */ - public final ItemStack[] mInventory; - - /** - * This registers your Machine at the List. - * Use only ID's larger than 2048, because i reserved these ones. - * See also the List in the API, as it has a Description containing all the reservations. - * @param aID the ID - * @example for Constructor overload. - * - * public GT_MetaTileEntity_EBench(int aID, String mName, String mNameRegional) { - * super(aID, mName, mNameRegional); - * } - */ - public MetaPipeEntity(int aID, String aBasicName, String aRegionalName, int aInvSlotCount) { - if (GregTech_API.sPostloadStarted || !GregTech_API.sPreloadStarted) throw new IllegalAccessError("This Constructor has to be called in the load Phase"); - if (GregTech_API.METATILEENTITIES[aID] == null) { - GregTech_API.METATILEENTITIES[aID] = this; - } else { - throw new IllegalArgumentException("MetaMachine-Slot Nr. " + aID + " is already occupied!"); - } - mName = aBasicName.replaceAll(" ", "_").toLowerCase(); - setBaseMetaTileEntity(new BaseMetaPipeEntity()); - getBaseMetaTileEntity().setMetaTileID((short)aID); - GT_LanguageManager.addStringLocalization("gt.blockmachines." + mName + ".name", aRegionalName); - mInventory = new ItemStack[aInvSlotCount]; - - if (GT.isClientSide()) { - ItemStack tStack = new ItemStack(GregTech_API.sBlockMachines, 1, aID); - tStack.getItem().addInformation(tStack, null, new ArrayList(), true); - } - } - - @Override - public void setBaseMetaTileEntity(IGregTechTileEntity aBaseMetaTileEntity) { - if (mBaseMetaTileEntity != null && aBaseMetaTileEntity == null) { - mBaseMetaTileEntity.getMetaTileEntity().inValidate(); - mBaseMetaTileEntity.setMetaTileEntity(null); - } - mBaseMetaTileEntity = aBaseMetaTileEntity; - if (mBaseMetaTileEntity != null) { - mBaseMetaTileEntity.setMetaTileEntity(this); - } - } - - /** - * This is the normal Constructor. - */ - public MetaPipeEntity(String aName, int aInvSlotCount) { - mInventory = new ItemStack[aInvSlotCount]; - mName = aName; - } - - @Override - public void onServerStart() {/*Do nothing*/} - @Override - public void onWorldSave(File aSaveDirectory) {/*Do nothing*/} - @Override - public void onWorldLoad(File aSaveDirectory) {/*Do nothing*/} - @Override - public void onConfigLoad(GT_Config aConfig) {/*Do nothing*/} - @Override - public void setItemNBT(NBTTagCompound aNBT) {/*Do nothing*/} - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister aBlockIconRegister) {/*Do nothing*/} - - @Override - public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCoverID) {return true;} - @Override - public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {/*Do nothing*/} - @Override - public boolean onWrenchRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {return false;} - @Override - public void onExplosion() {/*Do nothing*/} - @Override - public void onFirstTick(IGregTechTileEntity aBaseMetaTileEntity) {/*Do nothing*/} - @Override - public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {/*Do nothing*/} - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {/*Do nothing*/} - @Override - public void inValidate() {/*Do nothing*/} - @Override - public void onRemoval() {/*Do nothing*/} - @Override - public void initDefaultModes(NBTTagCompound aNBT) {/*Do nothing*/} - - /** - * When a GUI is opened - */ - public void onOpenGUI() {/*Do nothing*/} - - /** - * When a GUI is closed - */ - public void onCloseGUI() {/*Do nothing*/} - - /** - * a Player rightclicks the Machine - * Sneaky rightclicks are not getting passed to this! - */ - @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) {return false;} - @Override - public void onLeftclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) {/*Do nothing*/} - @Override - public void onValueUpdate(byte aValue) {/*Do nothing*/} - @Override - public byte getUpdateData() {return 0;} - - @Override - public void doSound(byte aIndex, double aX, double aY, double aZ) {/*Do nothing*/} - @Override - public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) {/*Do nothing*/} - @Override - public void stopSoundLoop(byte aValue, double aX, double aY, double aZ) {/*Do nothing*/} - - @Override - public final void sendSound(byte aIndex) {if (!getBaseMetaTileEntity().hasMufflerUpgrade()) getBaseMetaTileEntity().sendBlockEvent((byte)4, aIndex);} - @Override - public final void sendLoopStart(byte aIndex) {if (!getBaseMetaTileEntity().hasMufflerUpgrade()) getBaseMetaTileEntity().sendBlockEvent((byte)5, aIndex);} - @Override - public final void sendLoopEnd(byte aIndex) {if (!getBaseMetaTileEntity().hasMufflerUpgrade()) getBaseMetaTileEntity().sendBlockEvent((byte)6, aIndex);} - - @Override - public boolean isFacingValid(byte aFacing) {return false;} - @Override - public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - @Override - public boolean isValidSlot(int aIndex) {return true;} - @Override - public boolean setStackToZeroInsteadOfNull(int aIndex) {return false;} - - @Override - public ArrayList getSpecialDebugInfo(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, int aLogLevel, ArrayList aList) { - return aList; - } - - @Override - public boolean isLiquidInput(byte aSide) { - return true; + /** + * This registers your Machine at the List. + * Use only ID's larger than 2048, because i reserved these ones. + * See also the List in the API, as it has a Description containing all the reservations. + * + * @param aID the ID + * @example for Constructor overload. + *

+ * public GT_MetaTileEntity_EBench(int aID, String mName, String mNameRegional) { + * super(aID, mName, mNameRegional); + * } + */ + public MetaPipeEntity(int aID, String aBasicName, String aRegionalName, int aInvSlotCount) { + if (GregTech_API.sPostloadStarted || !GregTech_API.sPreloadStarted) + throw new IllegalAccessError("This Constructor has to be called in the load Phase"); + if (GregTech_API.METATILEENTITIES[aID] == null) { + GregTech_API.METATILEENTITIES[aID] = this; + } else { + throw new IllegalArgumentException("MetaMachine-Slot Nr. " + aID + " is already occupied!"); + } + mName = aBasicName.replaceAll(" ", "_").toLowerCase(); + setBaseMetaTileEntity(new BaseMetaPipeEntity()); + getBaseMetaTileEntity().setMetaTileID((short) aID); + GT_LanguageManager.addStringLocalization("gt.blockmachines." + mName + ".name", aRegionalName); + mInventory = new ItemStack[aInvSlotCount]; + + if (GT.isClientSide()) { + ItemStack tStack = new ItemStack(GregTech_API.sBlockMachines, 1, aID); + tStack.getItem().addInformation(tStack, null, new ArrayList(), true); + } } - - @Override - public boolean isLiquidOutput(byte aSide) { - return true; + + /** + * This is the normal Constructor. + */ + public MetaPipeEntity(String aName, int aInvSlotCount) { + mInventory = new ItemStack[aInvSlotCount]; + mName = aName; } - - /** - * gets the contained Liquid - */ - @Override - public FluidStack getFluid() {return null;} - - /** - * tries to fill this Tank - */ - @Override - public int fill(FluidStack resource, boolean doFill) {return 0;} - - /** - * tries to empty this Tank - */ - @Override - public FluidStack drain(int maxDrain, boolean doDrain) {return null;} - - /** - * Tank pressure - */ - public int getTankPressure() {return 0;} - - /** - * Liquid Capacity - */ - @Override - public int getCapacity() {return 0;} - - /** - * Progress this machine has already made - */ - public int getProgresstime() {return 0;} - - /** - * Progress this Machine has to do to produce something - */ - public int maxProgresstime() {return 0;} - - /** - * Increases the Progress, returns the overflown Progress. - */ - public int increaseProgress(int aProgress) {return 0;} - - @Override - public void onMachineBlockUpdate() {/*Do nothing*/} - @Override - public void receiveClientEvent(byte aEventID, byte aValue) {/*Do nothing*/} - @Override - public boolean isSimpleMachine() {return false;} - - @Override - public byte getComparatorValue(byte aSide) { - return 0; - } - - @Override - public boolean acceptsRotationalEnergy(byte aSide) { - return false; - } - - @Override - public boolean injectRotationalEnergy(byte aSide, long aSpeed, long aEnergy) { - return false; - } - - @Override - public String getSpecialVoltageToolTip() {return null;} - - @Override - public boolean isGivingInformation() {return false;} - @Override - public String[] getInfoData() {return new String[]{};} - - public boolean isDigitalChest() {return false;} - public ItemStack[] getStoredItemData() {return null;} - public void setItemCount(int aCount) {/*Do nothing*/} - public int getMaxItemCount() {return 0;} - - @Override - public int getSizeInventory() {return mInventory.length;} - @Override - public ItemStack getStackInSlot(int aIndex) {if (aIndex >= 0 && aIndex < mInventory.length) return mInventory[aIndex]; return null;} - @Override - public void setInventorySlotContents(int aIndex, ItemStack aStack) {if (aIndex >= 0 && aIndex < mInventory.length) mInventory[aIndex] = aStack;} - @Override - public String getInventoryName() {if (GregTech_API.METATILEENTITIES[getBaseMetaTileEntity().getMetaTileID()] != null) return GregTech_API.METATILEENTITIES[getBaseMetaTileEntity().getMetaTileID()].getMetaName(); return "";} - @Override - public int getInventoryStackLimit() {return 64;} - @Override - public boolean isItemValidForSlot(int aIndex, ItemStack aStack) {return getBaseMetaTileEntity().isValidSlot(aIndex);} - - @Override - public ItemStack decrStackSize(int aIndex, int aAmount) { - ItemStack tStack = getStackInSlot(aIndex), rStack = GT_Utility.copy(tStack); - if (tStack != null) { - if (tStack.stackSize <= aAmount) { - if (setStackToZeroInsteadOfNull(aIndex)) tStack.stackSize = 0; else setInventorySlotContents(aIndex, null); - } else { - rStack = tStack.splitStack(aAmount); - if (tStack.stackSize == 0 && !setStackToZeroInsteadOfNull(aIndex)) setInventorySlotContents(aIndex, null); - } - } - return rStack; - } - - @Override - public int[] getAccessibleSlotsFromSide(int aSide) { - ArrayList tList = new ArrayList(); - IGregTechTileEntity tTileEntity = getBaseMetaTileEntity(); - boolean tSkip = tTileEntity.getCoverBehaviorAtSide((byte)aSide).letsItemsIn((byte)aSide, tTileEntity.getCoverIDAtSide((byte)aSide), tTileEntity.getCoverDataAtSide((byte)aSide), -2, tTileEntity) || tTileEntity.getCoverBehaviorAtSide((byte)aSide).letsItemsOut((byte)aSide, tTileEntity.getCoverIDAtSide((byte)aSide), tTileEntity.getCoverDataAtSide((byte)aSide), -2, tTileEntity); - for (int i = 0; i < getSizeInventory(); i++) if (isValidSlot(i) && (tSkip || tTileEntity.getCoverBehaviorAtSide((byte)aSide).letsItemsOut((byte)aSide, tTileEntity.getCoverIDAtSide((byte)aSide), tTileEntity.getCoverDataAtSide((byte)aSide), i, tTileEntity) || tTileEntity.getCoverBehaviorAtSide((byte)aSide).letsItemsIn((byte)aSide, tTileEntity.getCoverIDAtSide((byte)aSide), tTileEntity.getCoverDataAtSide((byte)aSide), i, tTileEntity))) tList.add(i); - int[] rArray = new int[tList.size()]; - for (int i = 0; i < rArray.length; i++) rArray[i] = tList.get(i); - return rArray; - } - - @Override - public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) { - return isValidSlot(aIndex) && aStack != null && aIndex < mInventory.length && (mInventory[aIndex] == null || GT_Utility.areStacksEqual(aStack, mInventory[aIndex])) && allowPutStack(getBaseMetaTileEntity(), aIndex, (byte)aSide, aStack); - } - - @Override - public boolean canExtractItem(int aIndex, ItemStack aStack, int aSide) { - return isValidSlot(aIndex) && aStack != null && aIndex < mInventory.length && allowPullStack(getBaseMetaTileEntity(), aIndex, (byte)aSide, aStack); - } - - @Override - public boolean canFill(ForgeDirection aSide, Fluid aFluid) { - return fill(aSide, new FluidStack(aFluid, 1), false) == 1; - } - - @Override - public boolean canDrain(ForgeDirection aSide, Fluid aFluid) { - return drain(aSide, new FluidStack(aFluid, 1), false) != null; - } - - @Override - public FluidTankInfo[] getTankInfo(ForgeDirection aSide) { - if (getCapacity() <= 0 && !getBaseMetaTileEntity().hasSteamEngineUpgrade()) return new FluidTankInfo[] {}; - return new FluidTankInfo[] {getInfo()}; - } - + + /** + * For Pipe Rendering + */ + public abstract float getThickNess(); + + /** + * For Pipe Rendering + */ + public abstract boolean renderInside(byte aSide); + + @Override + public IGregTechTileEntity getBaseMetaTileEntity() { + return mBaseMetaTileEntity; + } + + @Override + public void setBaseMetaTileEntity(IGregTechTileEntity aBaseMetaTileEntity) { + if (mBaseMetaTileEntity != null && aBaseMetaTileEntity == null) { + mBaseMetaTileEntity.getMetaTileEntity().inValidate(); + mBaseMetaTileEntity.setMetaTileEntity(null); + } + mBaseMetaTileEntity = aBaseMetaTileEntity; + if (mBaseMetaTileEntity != null) { + mBaseMetaTileEntity.setMetaTileEntity(this); + } + } + + @Override + public ItemStack getStackForm(long aAmount) { + return new ItemStack(GregTech_API.sBlockMachines, (int) aAmount, getBaseMetaTileEntity().getMetaTileID()); + } + + @Override + public void onServerStart() {/*Do nothing*/} + + @Override + public void onWorldSave(File aSaveDirectory) {/*Do nothing*/} + + @Override + public void onWorldLoad(File aSaveDirectory) {/*Do nothing*/} + + @Override + public void onConfigLoad(GT_Config aConfig) {/*Do nothing*/} + + @Override + public void setItemNBT(NBTTagCompound aNBT) {/*Do nothing*/} + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister aBlockIconRegister) {/*Do nothing*/} + + @Override + public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCoverID) { + return true; + } + + @Override + public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {/*Do nothing*/} + + @Override + public boolean onWrenchRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { + return false; + } + + @Override + public void onExplosion() {/*Do nothing*/} + + @Override + public void onFirstTick(IGregTechTileEntity aBaseMetaTileEntity) {/*Do nothing*/} + + @Override + public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {/*Do nothing*/} + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {/*Do nothing*/} + + @Override + public void inValidate() {/*Do nothing*/} + + @Override + public void onRemoval() {/*Do nothing*/} + + @Override + public void initDefaultModes(NBTTagCompound aNBT) {/*Do nothing*/} + + /** + * When a GUI is opened + */ + public void onOpenGUI() {/*Do nothing*/} + + /** + * When a GUI is closed + */ + public void onCloseGUI() {/*Do nothing*/} + + /** + * a Player rightclicks the Machine + * Sneaky rightclicks are not getting passed to this! + */ + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) { + return false; + } + + @Override + public void onLeftclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) {/*Do nothing*/} + + @Override + public void onValueUpdate(byte aValue) {/*Do nothing*/} + + @Override + public byte getUpdateData() { + return 0; + } + + @Override + public void doSound(byte aIndex, double aX, double aY, double aZ) {/*Do nothing*/} + + @Override + public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) {/*Do nothing*/} + + @Override + public void stopSoundLoop(byte aValue, double aX, double aY, double aZ) {/*Do nothing*/} + + @Override + public final void sendSound(byte aIndex) { + if (!getBaseMetaTileEntity().hasMufflerUpgrade()) getBaseMetaTileEntity().sendBlockEvent((byte) 4, aIndex); + } + + @Override + public final void sendLoopStart(byte aIndex) { + if (!getBaseMetaTileEntity().hasMufflerUpgrade()) getBaseMetaTileEntity().sendBlockEvent((byte) 5, aIndex); + } + + @Override + public final void sendLoopEnd(byte aIndex) { + if (!getBaseMetaTileEntity().hasMufflerUpgrade()) getBaseMetaTileEntity().sendBlockEvent((byte) 6, aIndex); + } + + @Override + public boolean isFacingValid(byte aFacing) { + return false; + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + @Override + public boolean isValidSlot(int aIndex) { + return true; + } + + @Override + public boolean setStackToZeroInsteadOfNull(int aIndex) { + return false; + } + + @Override + public ArrayList getSpecialDebugInfo(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, int aLogLevel, ArrayList aList) { + return aList; + } + + @Override + public boolean isLiquidInput(byte aSide) { + return true; + } + + @Override + public boolean isLiquidOutput(byte aSide) { + return true; + } + + /** + * gets the contained Liquid + */ + @Override + public FluidStack getFluid() { + return null; + } + + /** + * tries to fill this Tank + */ + @Override + public int fill(FluidStack resource, boolean doFill) { + return 0; + } + + /** + * tries to empty this Tank + */ + @Override + public FluidStack drain(int maxDrain, boolean doDrain) { + return null; + } + + /** + * Tank pressure + */ + public int getTankPressure() { + return 0; + } + + /** + * Liquid Capacity + */ + @Override + public int getCapacity() { + return 0; + } + + /** + * Progress this machine has already made + */ + public int getProgresstime() { + return 0; + } + + /** + * Progress this Machine has to do to produce something + */ + public int maxProgresstime() { + return 0; + } + + /** + * Increases the Progress, returns the overflown Progress. + */ + public int increaseProgress(int aProgress) { + return 0; + } + + @Override + public void onMachineBlockUpdate() {/*Do nothing*/} + + @Override + public void receiveClientEvent(byte aEventID, byte aValue) {/*Do nothing*/} + + @Override + public boolean isSimpleMachine() { + return false; + } + + @Override + public byte getComparatorValue(byte aSide) { + return 0; + } + + @Override + public boolean acceptsRotationalEnergy(byte aSide) { + return false; + } + + @Override + public boolean injectRotationalEnergy(byte aSide, long aSpeed, long aEnergy) { + return false; + } + + @Override + public String getSpecialVoltageToolTip() { + return null; + } + + @Override + public boolean isGivingInformation() { + return false; + } + + @Override + public String[] getInfoData() { + return new String[]{}; + } + + public boolean isDigitalChest() { + return false; + } + + public ItemStack[] getStoredItemData() { + return null; + } + + public void setItemCount(int aCount) {/*Do nothing*/} + + public int getMaxItemCount() { + return 0; + } + + @Override + public int getSizeInventory() { + return mInventory.length; + } + + @Override + public ItemStack getStackInSlot(int aIndex) { + if (aIndex >= 0 && aIndex < mInventory.length) return mInventory[aIndex]; + return null; + } + + @Override + public void setInventorySlotContents(int aIndex, ItemStack aStack) { + if (aIndex >= 0 && aIndex < mInventory.length) mInventory[aIndex] = aStack; + } + + @Override + public String getInventoryName() { + if (GregTech_API.METATILEENTITIES[getBaseMetaTileEntity().getMetaTileID()] != null) + return GregTech_API.METATILEENTITIES[getBaseMetaTileEntity().getMetaTileID()].getMetaName(); + return ""; + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + @Override + public boolean isItemValidForSlot(int aIndex, ItemStack aStack) { + return getBaseMetaTileEntity().isValidSlot(aIndex); + } + + @Override + public ItemStack decrStackSize(int aIndex, int aAmount) { + ItemStack tStack = getStackInSlot(aIndex), rStack = GT_Utility.copy(tStack); + if (tStack != null) { + if (tStack.stackSize <= aAmount) { + if (setStackToZeroInsteadOfNull(aIndex)) tStack.stackSize = 0; + else setInventorySlotContents(aIndex, null); + } else { + rStack = tStack.splitStack(aAmount); + if (tStack.stackSize == 0 && !setStackToZeroInsteadOfNull(aIndex)) + setInventorySlotContents(aIndex, null); + } + } + return rStack; + } + + @Override + public int[] getAccessibleSlotsFromSide(int aSide) { + ArrayList tList = new ArrayList(); + IGregTechTileEntity tTileEntity = getBaseMetaTileEntity(); + boolean tSkip = tTileEntity.getCoverBehaviorAtSide((byte) aSide).letsItemsIn((byte) aSide, tTileEntity.getCoverIDAtSide((byte) aSide), tTileEntity.getCoverDataAtSide((byte) aSide), -2, tTileEntity) || tTileEntity.getCoverBehaviorAtSide((byte) aSide).letsItemsOut((byte) aSide, tTileEntity.getCoverIDAtSide((byte) aSide), tTileEntity.getCoverDataAtSide((byte) aSide), -2, tTileEntity); + for (int i = 0; i < getSizeInventory(); i++) + if (isValidSlot(i) && (tSkip || tTileEntity.getCoverBehaviorAtSide((byte) aSide).letsItemsOut((byte) aSide, tTileEntity.getCoverIDAtSide((byte) aSide), tTileEntity.getCoverDataAtSide((byte) aSide), i, tTileEntity) || tTileEntity.getCoverBehaviorAtSide((byte) aSide).letsItemsIn((byte) aSide, tTileEntity.getCoverIDAtSide((byte) aSide), tTileEntity.getCoverDataAtSide((byte) aSide), i, tTileEntity))) + tList.add(i); + int[] rArray = new int[tList.size()]; + for (int i = 0; i < rArray.length; i++) rArray[i] = tList.get(i); + return rArray; + } + + @Override + public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) { + return isValidSlot(aIndex) && aStack != null && aIndex < mInventory.length && (mInventory[aIndex] == null || GT_Utility.areStacksEqual(aStack, mInventory[aIndex])) && allowPutStack(getBaseMetaTileEntity(), aIndex, (byte) aSide, aStack); + } + + @Override + public boolean canExtractItem(int aIndex, ItemStack aStack, int aSide) { + return isValidSlot(aIndex) && aStack != null && aIndex < mInventory.length && allowPullStack(getBaseMetaTileEntity(), aIndex, (byte) aSide, aStack); + } + + @Override + public boolean canFill(ForgeDirection aSide, Fluid aFluid) { + return fill(aSide, new FluidStack(aFluid, 1), false) == 1; + } + + @Override + public boolean canDrain(ForgeDirection aSide, Fluid aFluid) { + return drain(aSide, new FluidStack(aFluid, 1), false) != null; + } + + @Override + public FluidTankInfo[] getTankInfo(ForgeDirection aSide) { + if (getCapacity() <= 0 && !getBaseMetaTileEntity().hasSteamEngineUpgrade()) return new FluidTankInfo[]{}; + return new FluidTankInfo[]{getInfo()}; + } + public int fill_default(ForgeDirection aSide, FluidStack aFluid, boolean doFill) { return fill(aFluid, doFill); } - - @Override + + @Override public int fill(ForgeDirection aSide, FluidStack aFluid, boolean doFill) { return fill_default(aSide, aFluid, doFill); } - - @Override - public FluidStack drain(ForgeDirection aSide, FluidStack aFluid, boolean doDrain) { - if (getFluid() != null && aFluid != null && getFluid().isFluidEqual(aFluid)) return drain(aFluid.amount, doDrain); - return null; - } - - @Override - public FluidStack drain(ForgeDirection aSide, int maxDrain, boolean doDrain) { - return drain(maxDrain, doDrain); - } - - @Override - public int getFluidAmount() { - return 0; - } - - @Override - public FluidTankInfo getInfo() { - return new FluidTankInfo(this); - } - @Override - public String getMetaName() { - return mName; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - return null; - } - - @Override - public boolean doTickProfilingMessageDuringThisTick() { - return doTickProfilingInThisTick; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer entityplayer) { - return false; - } - - @Override - public boolean connectsToItemPipe(byte aSide) { - return false; - } - - @Override - public void openInventory() { - // - } - - @Override - public void closeInventory() { - // - } - - @Override + @Override + public FluidStack drain(ForgeDirection aSide, FluidStack aFluid, boolean doDrain) { + if (getFluid() != null && aFluid != null && getFluid().isFluidEqual(aFluid)) + return drain(aFluid.amount, doDrain); + return null; + } + + @Override + public FluidStack drain(ForgeDirection aSide, int maxDrain, boolean doDrain) { + return drain(maxDrain, doDrain); + } + + @Override + public int getFluidAmount() { + return 0; + } + + @Override + public FluidTankInfo getInfo() { + return new FluidTankInfo(this); + } + + @Override + public String getMetaName() { + return mName; + } + + @Override + public ItemStack getStackInSlotOnClosing(int i) { + return null; + } + + @Override + public boolean doTickProfilingMessageDuringThisTick() { + return doTickProfilingInThisTick; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer entityplayer) { + return false; + } + + @Override + public boolean connectsToItemPipe(byte aSide) { + return false; + } + + @Override + public void openInventory() { + // + } + + @Override + public void closeInventory() { + // + } + + @Override public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return null; + return null; } - - @Override - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return null; - } - - @Override - public float getExplosionResistance(byte aSide) { - return 10.0F; - } - - @Override - public ItemStack[] getRealInventory() { - return mInventory; - } - @Override - public boolean hasCustomInventoryName() { - return false; - } - - @Override - public void markDirty() { - // - } - - @Override - public void onColorChangeServer(byte aColor) { - // - } - - @Override - public void onColorChangeClient(byte aColor) { - // - } - - public long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage) { - return 0; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean renderInInventory(Block aBlock, int aMeta, RenderBlocks aRenderer) { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean renderInWorld(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock, RenderBlocks aRenderer) { - return false; - } - - @Override + @Override + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return null; + } + + @Override + public float getExplosionResistance(byte aSide) { + return 10.0F; + } + + @Override + public ItemStack[] getRealInventory() { + return mInventory; + } + + @Override + public boolean hasCustomInventoryName() { + return false; + } + + @Override + public void markDirty() { + // + } + + @Override + public void onColorChangeServer(byte aColor) { + // + } + + @Override + public void onColorChangeClient(byte aColor) { + // + } + + public long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage) { + return 0; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean renderInInventory(Block aBlock, int aMeta, RenderBlocks aRenderer) { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean renderInWorld(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock, RenderBlocks aRenderer) { + return false; + } + + @Override public void doExplosion(long aExplosionPower) { - float tStrength = aExplosionPower outputAABB, Entity collider) { + float tStrength = aExplosionPower < V[0] ? 1.0F : aExplosionPower < V[1] ? 2.0F : aExplosionPower < V[2] ? 3.0F : aExplosionPower < V[3] ? 4.0F : aExplosionPower < V[4] ? 5.0F : aExplosionPower < V[4] * 2 ? 6.0F : aExplosionPower < V[5] ? 7.0F : aExplosionPower < V[6] ? 8.0F : aExplosionPower < V[7] ? 9.0F : 10.0F; + int tX = getBaseMetaTileEntity().getXCoord(), tY = getBaseMetaTileEntity().getYCoord(), tZ = getBaseMetaTileEntity().getZCoord(); + World tWorld = getBaseMetaTileEntity().getWorld(); + tWorld.setBlock(tX, tY, tZ, Blocks.air); + if (GregTech_API.sMachineExplosions) + tWorld.createExplosion(null, tX + 0.5, tY + 0.5, tZ + 0.5, tStrength, true); + } + + @Override + public int getLightOpacity() { + return 0; + } + + @Override + public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List outputAABB, Entity collider) { AxisAlignedBB axisalignedbb1 = getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ); if (axisalignedbb1 != null && inputAABB.intersectsWith(axisalignedbb1)) outputAABB.add(axisalignedbb1); - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) { - return AxisAlignedBB.getBoundingBox(aX, aY, aZ, aX+1, aY+1, aZ+1); - } - - @Override - public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider) { - // - } - - @Override + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) { + return AxisAlignedBB.getBoundingBox(aX, aY, aZ, aX + 1, aY + 1, aZ + 1); + } + + @Override + public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider) { + // + } + + @Override public void onCreated(ItemStack aStack, World aWorld, EntityPlayer aPlayer) { - // - } + // + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java index ab2c3930..e410c3cf 100644 --- a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java @@ -1,7 +1,7 @@ package gregtech.api.metatileentity; -import static gregtech.api.enums.GT_Values.GT; -import static gregtech.api.enums.GT_Values.V; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -10,11 +10,6 @@ import gregtech.api.util.GT_Config; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.texture.IIconRegister; @@ -31,691 +26,840 @@ import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTankInfo; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import static gregtech.api.enums.GT_Values.GT; +import static gregtech.api.enums.GT_Values.V; /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* Extend this Class to add a new MetaMachine * Call the Constructor with the desired ID at the load-phase (not preload and also not postload!) * Implement the newMetaEntity-Method to return a new ready instance of your MetaTileEntity - * - * Call the Constructor like the following example inside the Load Phase, to register it. + *

+ * Call the Constructor like the following example inside the Load Phase, to register it. * "new GT_MetaTileEntity_E_Furnace(54, "GT_E_Furnace", "Automatic E-Furnace");" */ public abstract class MetaTileEntity implements IMetaTileEntity { - /** - * Only assigned for the MetaTileEntity in the List! Also only used to get the localized Name for the ItemStack and for getInvName. - */ - public final String mName; - - public boolean doTickProfilingInThisTick = true; - - /** - * accessibility to this Field is no longer given, see below - */ - private IGregTechTileEntity mBaseMetaTileEntity; - - @Override - public IGregTechTileEntity getBaseMetaTileEntity() { - return mBaseMetaTileEntity; - } - - @Override - public ItemStack getStackForm(long aAmount) { - return new ItemStack(GregTech_API.sBlockMachines, (int)aAmount, getBaseMetaTileEntity().getMetaTileID()); - } - - public String getLocalName() { - return GT_LanguageManager.getTranslation("gt.blockmachines." + mName + ".name"); - } - - /** - * The Inventory of the MetaTileEntity. Amount of Slots can be larger than 256. HAYO! - */ - public final ItemStack[] mInventory; - - /** - * This registers your Machine at the List. - * Use only ID's larger than 2048, because i reserved these ones. - * See also the List in the API, as it has a Description containing all the reservations. - * @param aID the ID - * @example for Constructor overload. - * - * public GT_MetaTileEntity_EBench(int aID, String mName, String mNameRegional) { - * super(aID, mName, mNameRegional); - * } - */ - public MetaTileEntity(int aID, String aBasicName, String aRegionalName, int aInvSlotCount) { - if (GregTech_API.sPostloadStarted || !GregTech_API.sPreloadStarted) throw new IllegalAccessError("This Constructor has to be called in the load Phase"); - if (GregTech_API.METATILEENTITIES[aID] == null) { - GregTech_API.METATILEENTITIES[aID] = this; - } else { - throw new IllegalArgumentException("MetaMachine-Slot Nr. " + aID + " is already occupied!"); - } - mName = aBasicName.replaceAll(" ", "_").toLowerCase(); - setBaseMetaTileEntity(GregTech_API.constructBaseMetaTileEntity()); - getBaseMetaTileEntity().setMetaTileID((short)aID); - GT_LanguageManager.addStringLocalization("gt.blockmachines." + mName + ".name", aRegionalName); - mInventory = new ItemStack[aInvSlotCount]; - - if (GT.isClientSide()) { - ItemStack tStack = new ItemStack(GregTech_API.sBlockMachines, 1, aID); - tStack.getItem().addInformation(tStack, null, new ArrayList(), true); - } - } - - @Override - public void setBaseMetaTileEntity(IGregTechTileEntity aBaseMetaTileEntity) { - if (mBaseMetaTileEntity != null && aBaseMetaTileEntity == null) { - mBaseMetaTileEntity.getMetaTileEntity().inValidate(); - mBaseMetaTileEntity.setMetaTileEntity(null); - } - mBaseMetaTileEntity = aBaseMetaTileEntity; - if (mBaseMetaTileEntity != null) { - mBaseMetaTileEntity.setMetaTileEntity(this); - } - } - - /** - * This is the normal Constructor. - */ - public MetaTileEntity(String aName, int aInvSlotCount) { - mInventory = new ItemStack[aInvSlotCount]; - mName = aName; - } - - @Override - public void onServerStart() {/*Do nothing*/} - @Override - public void onWorldSave(File aSaveDirectory) {/*Do nothing*/} - @Override - public void onWorldLoad(File aSaveDirectory) {/*Do nothing*/} - @Override - public void onConfigLoad(GT_Config aConfig) {/*Do nothing*/} - @Override - public void setItemNBT(NBTTagCompound aNBT) {/*Do nothing*/} - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister aBlockIconRegister) {/*Do nothing*/} - - @Override - public boolean allowCoverOnSide(byte aSide, GT_ItemStack aStack) {return true;} - @Override - public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {/*Do nothing*/} - @Override - public boolean onWrenchRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {if (getBaseMetaTileEntity().isValidFacing(aWrenchingSide)) {getBaseMetaTileEntity().setFrontFacing(aWrenchingSide); return true;} return false;} - @Override - public void onExplosion() {/*Do nothing*/} - @Override - public void onFirstTick(IGregTechTileEntity aBaseMetaTileEntity) {/*Do nothing*/} - @Override - public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {/*Do nothing*/} - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {/*Do nothing*/} - @Override - public void inValidate() {/*Do nothing*/} - @Override - public void onRemoval() {/*Do nothing*/} - @Override - public void initDefaultModes(NBTTagCompound aNBT) {/*Do nothing*/} - - /** - * When a GUI is opened - */ - public void onOpenGUI() {/*Do nothing*/} - - /** - * When a GUI is closed - */ - public void onCloseGUI() {/*Do nothing*/} - - /** - * a Player rightclicks the Machine - * Sneaky rightclicks are not getting passed to this! - */ - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) {return false;} - - @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) {return onRightclick(aBaseMetaTileEntity, aPlayer);} - @Override - public void onLeftclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) {/*Do nothing*/} - @Override - public void onValueUpdate(byte aValue) {/*Do nothing*/} - @Override - public byte getUpdateData() {return 0;} - + /** + * Only assigned for the MetaTileEntity in the List! Also only used to get the localized Name for the ItemStack and for getInvName. + */ + public final String mName; + /** + * The Inventory of the MetaTileEntity. Amount of Slots can be larger than 256. HAYO! + */ + public final ItemStack[] mInventory; + public boolean doTickProfilingInThisTick = true; + /** + * accessibility to this Field is no longer given, see below + */ + private IGregTechTileEntity mBaseMetaTileEntity; + + /** + * This registers your Machine at the List. + * Use only ID's larger than 2048, because i reserved these ones. + * See also the List in the API, as it has a Description containing all the reservations. + * + * @param aID the ID + * @example for Constructor overload. + *

+ * public GT_MetaTileEntity_EBench(int aID, String mName, String mNameRegional) { + * super(aID, mName, mNameRegional); + * } + */ + public MetaTileEntity(int aID, String aBasicName, String aRegionalName, int aInvSlotCount) { + if (GregTech_API.sPostloadStarted || !GregTech_API.sPreloadStarted) + throw new IllegalAccessError("This Constructor has to be called in the load Phase"); + if (GregTech_API.METATILEENTITIES[aID] == null) { + GregTech_API.METATILEENTITIES[aID] = this; + } else { + throw new IllegalArgumentException("MetaMachine-Slot Nr. " + aID + " is already occupied!"); + } + mName = aBasicName.replaceAll(" ", "_").toLowerCase(); + setBaseMetaTileEntity(GregTech_API.constructBaseMetaTileEntity()); + getBaseMetaTileEntity().setMetaTileID((short) aID); + GT_LanguageManager.addStringLocalization("gt.blockmachines." + mName + ".name", aRegionalName); + mInventory = new ItemStack[aInvSlotCount]; + + if (GT.isClientSide()) { + ItemStack tStack = new ItemStack(GregTech_API.sBlockMachines, 1, aID); + tStack.getItem().addInformation(tStack, null, new ArrayList(), true); + } + } + + /** + * This is the normal Constructor. + */ + public MetaTileEntity(String aName, int aInvSlotCount) { + mInventory = new ItemStack[aInvSlotCount]; + mName = aName; + } + @Override - public void doSound(byte aIndex, double aX, double aY, double aZ) {/*Do nothing*/} + public IGregTechTileEntity getBaseMetaTileEntity() { + return mBaseMetaTileEntity; + } + @Override - public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) {/*Do nothing*/} + public void setBaseMetaTileEntity(IGregTechTileEntity aBaseMetaTileEntity) { + if (mBaseMetaTileEntity != null && aBaseMetaTileEntity == null) { + mBaseMetaTileEntity.getMetaTileEntity().inValidate(); + mBaseMetaTileEntity.setMetaTileEntity(null); + } + mBaseMetaTileEntity = aBaseMetaTileEntity; + if (mBaseMetaTileEntity != null) { + mBaseMetaTileEntity.setMetaTileEntity(this); + } + } + @Override - public void stopSoundLoop(byte aValue, double aX, double aY, double aZ) {/*Do nothing*/} - + public ItemStack getStackForm(long aAmount) { + return new ItemStack(GregTech_API.sBlockMachines, (int) aAmount, getBaseMetaTileEntity().getMetaTileID()); + } + + public String getLocalName() { + return GT_LanguageManager.getTranslation("gt.blockmachines." + mName + ".name"); + } + @Override - public final void sendSound(byte aIndex) {if (!getBaseMetaTileEntity().hasMufflerUpgrade()) getBaseMetaTileEntity().sendBlockEvent((byte)4, aIndex);} + public void onServerStart() {/*Do nothing*/} + @Override - public final void sendLoopStart(byte aIndex) {if (!getBaseMetaTileEntity().hasMufflerUpgrade()) getBaseMetaTileEntity().sendBlockEvent((byte)5, aIndex);} + public void onWorldSave(File aSaveDirectory) {/*Do nothing*/} + @Override - public final void sendLoopEnd(byte aIndex) {if (!getBaseMetaTileEntity().hasMufflerUpgrade()) getBaseMetaTileEntity().sendBlockEvent((byte)6, aIndex);} - + public void onWorldLoad(File aSaveDirectory) {/*Do nothing*/} + + @Override + public void onConfigLoad(GT_Config aConfig) {/*Do nothing*/} + + @Override + public void setItemNBT(NBTTagCompound aNBT) {/*Do nothing*/} + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister aBlockIconRegister) {/*Do nothing*/} + + @Override + public boolean allowCoverOnSide(byte aSide, GT_ItemStack aStack) { + return true; + } + + @Override + public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {/*Do nothing*/} + + @Override + public boolean onWrenchRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { + if (getBaseMetaTileEntity().isValidFacing(aWrenchingSide)) { + getBaseMetaTileEntity().setFrontFacing(aWrenchingSide); + return true; + } + return false; + } + + @Override + public void onExplosion() {/*Do nothing*/} + + @Override + public void onFirstTick(IGregTechTileEntity aBaseMetaTileEntity) {/*Do nothing*/} + + @Override + public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {/*Do nothing*/} + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {/*Do nothing*/} + + @Override + public void inValidate() {/*Do nothing*/} + + @Override + public void onRemoval() {/*Do nothing*/} + + @Override + public void initDefaultModes(NBTTagCompound aNBT) {/*Do nothing*/} + + /** + * When a GUI is opened + */ + public void onOpenGUI() {/*Do nothing*/} + + /** + * When a GUI is closed + */ + public void onCloseGUI() {/*Do nothing*/} + + /** + * a Player rightclicks the Machine + * Sneaky rightclicks are not getting passed to this! + */ + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + return false; + } + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) { + return onRightclick(aBaseMetaTileEntity, aPlayer); + } + + @Override + public void onLeftclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) {/*Do nothing*/} + + @Override + public void onValueUpdate(byte aValue) {/*Do nothing*/} + + @Override + public byte getUpdateData() { + return 0; + } + + @Override + public void doSound(byte aIndex, double aX, double aY, double aZ) {/*Do nothing*/} + + @Override + public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) {/*Do nothing*/} + + @Override + public void stopSoundLoop(byte aValue, double aX, double aY, double aZ) {/*Do nothing*/} + + @Override + public final void sendSound(byte aIndex) { + if (!getBaseMetaTileEntity().hasMufflerUpgrade()) getBaseMetaTileEntity().sendBlockEvent((byte) 4, aIndex); + } + + @Override + public final void sendLoopStart(byte aIndex) { + if (!getBaseMetaTileEntity().hasMufflerUpgrade()) getBaseMetaTileEntity().sendBlockEvent((byte) 5, aIndex); + } + + @Override + public final void sendLoopEnd(byte aIndex) { + if (!getBaseMetaTileEntity().hasMufflerUpgrade()) getBaseMetaTileEntity().sendBlockEvent((byte) 6, aIndex); + } + /** * @return true if this Device emits Energy at all */ - public boolean isElectric() {return true;} - + public boolean isElectric() { + return true; + } + /** * @return true if this Device emits Energy at all */ - public boolean isPneumatic() {return false;} - + public boolean isPneumatic() { + return false; + } + /** * @return true if this Device emits Energy at all */ - public boolean isSteampowered() {return false;} - + public boolean isSteampowered() { + return false; + } + /** * @return true if this Device emits Energy at all */ - public boolean isEnetOutput() {return false;} - + public boolean isEnetOutput() { + return false; + } + /** * @return true if this Device consumes Energy at all */ - public boolean isEnetInput() {return false;} - + public boolean isEnetInput() { + return false; + } + /** * @return the amount of EU, which can be stored in this Device. Default is 0 EU. */ - public long maxEUStore() {return 0;} - + public long maxEUStore() { + return 0; + } + /** * @return the amount of EU/t, which can be accepted by this Device before it explodes. */ - public long maxEUInput() {return 0;} - + public long maxEUInput() { + return 0; + } + /** * @return the amount of EU/t, which can be outputted by this Device. */ - public long maxEUOutput() {return 0;} - + public long maxEUOutput() { + return 0; + } + /** * @return the amount of E-net Impulses of the maxEUOutput size, which can be outputted by this Device. * Default is 1 Pulse, this shouldn't be set to smaller Values than 1, as it won't output anything in that Case! */ - public long maxAmperesOut() {return 1;} + public long maxAmperesOut() { + return 1; + } /** * How many Amperes this Block can suck at max. Surpassing this value won't blow it up. */ - public long maxAmperesIn() {return 1;} - + public long maxAmperesIn() { + return 1; + } + /** * @return true if that Side is an Output. */ - public boolean isOutputFacing(byte aSide) {return false;} - + public boolean isOutputFacing(byte aSide) { + return false; + } + /** * @return true if that Side is an Input. */ - public boolean isInputFacing(byte aSide) {return false;} - + public boolean isInputFacing(byte aSide) { + return false; + } + /** * @return true if Transformer Upgrades increase Packet Amount. */ - public boolean isTransformingLowEnergy() {return true;} - + public boolean isTransformingLowEnergy() { + return true; + } + @Override - public boolean isFacingValid(byte aFacing) {return false;} + public boolean isFacingValid(byte aFacing) { + return false; + } + @Override - public boolean isAccessAllowed(EntityPlayer aPlayer) {return false;} + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return false; + } + @Override - public boolean isValidSlot(int aIndex) {return true;} + public boolean isValidSlot(int aIndex) { + return true; + } + @Override - public boolean setStackToZeroInsteadOfNull(int aIndex) {return false;} - - /** - * This is used to set the internal Energy to the given Parameter. I use this for the IDSU. - */ - public void setEUVar(long aEnergy) { - ((BaseMetaTileEntity)mBaseMetaTileEntity).mStoredEnergy = aEnergy; - } - + public boolean setStackToZeroInsteadOfNull(int aIndex) { + return false; + } + /** * This is used to get the internal Energy. I use this for the IDSU. */ - public long getEUVar() { - return ((BaseMetaTileEntity)mBaseMetaTileEntity).mStoredEnergy; - } - + public long getEUVar() { + return ((BaseMetaTileEntity) mBaseMetaTileEntity).mStoredEnergy; + } + /** - * This is used to set the internal Steam Energy to the given Parameter. + * This is used to set the internal Energy to the given Parameter. I use this for the IDSU. */ - public void setSteamVar(long aSteam) { - ((BaseMetaTileEntity)mBaseMetaTileEntity).mStoredSteam = aSteam; - } - + public void setEUVar(long aEnergy) { + ((BaseMetaTileEntity) mBaseMetaTileEntity).mStoredEnergy = aEnergy; + } + /** * This is used to get the internal Steam Energy. */ - public long getSteamVar() { - return ((BaseMetaTileEntity)mBaseMetaTileEntity).mStoredSteam; - } - + public long getSteamVar() { + return ((BaseMetaTileEntity) mBaseMetaTileEntity).mStoredSteam; + } + + /** + * This is used to set the internal Steam Energy to the given Parameter. + */ + public void setSteamVar(long aSteam) { + ((BaseMetaTileEntity) mBaseMetaTileEntity).mStoredSteam = aSteam; + } + /** * @return the amount of Steam, which can be stored in this Device. Default is 0 EU. */ - public long maxSteamStore() {return 0;} - - /** - * @return the amount of EU, which this Device stores before starting to emit Energy. - * useful if you don't want to emit stored Energy until a certain Level is reached. - */ - public long getMinimumStoredEU() { - return 512; - } - + public long maxSteamStore() { + return 0; + } + + /** + * @return the amount of EU, which this Device stores before starting to emit Energy. + * useful if you don't want to emit stored Energy until a certain Level is reached. + */ + public long getMinimumStoredEU() { + return 512; + } + /** * Determines the Tier of the Machine, used for de-charging Tools. */ public long getInputTier() { - return GT_Utility.getTier(getBaseMetaTileEntity().getInputVoltage()); + return GT_Utility.getTier(getBaseMetaTileEntity().getInputVoltage()); } - + /** * Determines the Tier of the Machine, used for charging Tools. */ public long getOutputTier() { - return GT_Utility.getTier(getBaseMetaTileEntity().getOutputVoltage()); + return GT_Utility.getTier(getBaseMetaTileEntity().getOutputVoltage()); } - + /** * gets the first RechargerSlot */ public int rechargerSlotStartIndex() { - return 0; + return 0; } - + /** * gets the amount of RechargerSlots */ public int rechargerSlotCount() { - return 0; + return 0; } - + /** * gets the first DechargerSlot */ public int dechargerSlotStartIndex() { - return 0; + return 0; } /** * gets the amount of DechargerSlots */ public int dechargerSlotCount() { - return 0; + return 0; } - + /** * gets if this is protected from other Players per default or not */ public boolean ownerControl() { - return false; + return false; } - - @Override - public ArrayList getSpecialDebugInfo(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, int aLogLevel, ArrayList aList) { - return aList; - } - + @Override - public boolean isLiquidInput(byte aSide) { - return true; + public ArrayList getSpecialDebugInfo(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, int aLogLevel, ArrayList aList) { + return aList; } - + @Override - public boolean isLiquidOutput(byte aSide) { - return true; + public boolean isLiquidInput(byte aSide) { + return true; } - - /** - * gets the contained Liquid - */ - @Override - public FluidStack getFluid() {return null;} - - /** - * tries to fill this Tank - */ - @Override - public int fill(FluidStack resource, boolean doFill) {return 0;} - - /** - * tries to empty this Tank - */ - @Override - public FluidStack drain(int maxDrain, boolean doDrain) {return null;} - - /** - * Tank pressure - */ - public int getTankPressure() {return 0;} - - /** - * Liquid Capacity - */ - @Override - public int getCapacity() {return 0;} - - @Override - public void onMachineBlockUpdate() {/*Do nothing*/} - @Override - public void receiveClientEvent(byte aEventID, byte aValue) {/*Do nothing*/} - @Override - public boolean isSimpleMachine() {return false;} - - /** - * If this accepts up to 4 Overclockers - */ - public boolean isOverclockerUpgradable() {return false;} - - /** - * If this accepts Transformer Upgrades - */ - public boolean isTransformerUpgradable() {return false;} - - /** - * Progress this machine has already made - */ - public int getProgresstime() {return 0;} - - /** - * Progress this Machine has to do to produce something - */ - public int maxProgresstime() {return 0;} - - /** - * Increases the Progress, returns the overflown Progress. - */ - public int increaseProgress(int aProgress) {return 0;} - - /** - * If this TileEntity makes use of Sided Redstone behaviors. - * Determines only, if the Output Redstone Array is getting filled with 0 for true, or 15 for false. - */ - public boolean hasSidedRedstoneOutputBehavior() { - return false; - } - - /** - * When the Facing gets changed. - */ - public void onFacingChange() {/*Do nothing*/} - - /** - * if the IC2 Teleporter can drain from this. - */ - public boolean isTeleporterCompatible() { - return isEnetOutput() && getBaseMetaTileEntity().getOutputVoltage() >= 128 && getBaseMetaTileEntity().getUniversalEnergyCapacity() >= 500000; - } - - /** - * Gets the Output for the comparator on the given Side - */ - @Override - public byte getComparatorValue(byte aSide) { - return 0; - } - - @Override - public boolean acceptsRotationalEnergy(byte aSide) { - return false; - } - - @Override - public boolean injectRotationalEnergy(byte aSide, long aSpeed, long aEnergy) { - return false; - } - - @Override - public String getSpecialVoltageToolTip() {return null;} - - @Override - public boolean isGivingInformation() {return false;} - @Override - public String[] getInfoData() {return new String[]{};} - - public boolean isDigitalChest() {return false;} - public ItemStack[] getStoredItemData() {return null;} - public void setItemCount(int aCount) {/*Do nothing*/} - public int getMaxItemCount() {return 0;} - - @Override - public int getSizeInventory() {return mInventory.length;} - @Override - public ItemStack getStackInSlot(int aIndex) {if (aIndex >= 0 && aIndex < mInventory.length) return mInventory[aIndex]; return null;} - @Override - public void setInventorySlotContents(int aIndex, ItemStack aStack) {if (aIndex >= 0 && aIndex < mInventory.length) mInventory[aIndex] = aStack;} - @Override - public String getInventoryName() {if (GregTech_API.METATILEENTITIES[getBaseMetaTileEntity().getMetaTileID()] != null) return GregTech_API.METATILEENTITIES[getBaseMetaTileEntity().getMetaTileID()].getMetaName(); return "";} - @Override - public int getInventoryStackLimit() {return 64;} - @Override - public boolean isItemValidForSlot(int aIndex, ItemStack aStack) {return getBaseMetaTileEntity().isValidSlot(aIndex);} - - @Override - public ItemStack decrStackSize(int aIndex, int aAmount) { - ItemStack tStack = getStackInSlot(aIndex), rStack = GT_Utility.copy(tStack); - if (tStack != null) { - if (tStack.stackSize <= aAmount) { - if (setStackToZeroInsteadOfNull(aIndex)) tStack.stackSize = 0; else setInventorySlotContents(aIndex, null); - } else { - rStack = tStack.splitStack(aAmount); - if (tStack.stackSize == 0 && !setStackToZeroInsteadOfNull(aIndex)) setInventorySlotContents(aIndex, null); - } - } - return rStack; - } - - @Override - public int[] getAccessibleSlotsFromSide(int aSide) { - ArrayList tList = new ArrayList(); - IGregTechTileEntity tTileEntity = getBaseMetaTileEntity(); - boolean tSkip = tTileEntity.getCoverBehaviorAtSide((byte)aSide).letsItemsIn((byte)aSide, tTileEntity.getCoverIDAtSide((byte)aSide), tTileEntity.getCoverDataAtSide((byte)aSide), -2, tTileEntity) || tTileEntity.getCoverBehaviorAtSide((byte)aSide).letsItemsOut((byte)aSide, tTileEntity.getCoverIDAtSide((byte)aSide), tTileEntity.getCoverDataAtSide((byte)aSide), -2, tTileEntity); - for (int i = 0; i < getSizeInventory(); i++) if (isValidSlot(i) && (tSkip || tTileEntity.getCoverBehaviorAtSide((byte)aSide).letsItemsOut((byte)aSide, tTileEntity.getCoverIDAtSide((byte)aSide), tTileEntity.getCoverDataAtSide((byte)aSide), i, tTileEntity) || tTileEntity.getCoverBehaviorAtSide((byte)aSide).letsItemsIn((byte)aSide, tTileEntity.getCoverIDAtSide((byte)aSide), tTileEntity.getCoverDataAtSide((byte)aSide), i, tTileEntity))) tList.add(i); - int[] rArray = new int[tList.size()]; - for (int i = 0; i < rArray.length; i++) rArray[i] = tList.get(i); - return rArray; - } - - @Override - public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) { - return isValidSlot(aIndex) && aStack != null && aIndex < mInventory.length && (mInventory[aIndex] == null || GT_Utility.areStacksEqual(aStack, mInventory[aIndex])) && allowPutStack(getBaseMetaTileEntity(), aIndex, (byte)aSide, aStack); - } - - @Override - public boolean canExtractItem(int aIndex, ItemStack aStack, int aSide) { - return isValidSlot(aIndex) && aStack != null && aIndex < mInventory.length && allowPullStack(getBaseMetaTileEntity(), aIndex, (byte)aSide, aStack); - } - - @Override - public boolean canFill(ForgeDirection aSide, Fluid aFluid) { - return fill(aSide, new FluidStack(aFluid, 1), false) == 1; - } - - @Override - public boolean canDrain(ForgeDirection aSide, Fluid aFluid) { - return drain(aSide, new FluidStack(aFluid, 1), false) != null; - } - - @Override - public FluidTankInfo[] getTankInfo(ForgeDirection aSide) { - if (getCapacity() <= 0 && !getBaseMetaTileEntity().hasSteamEngineUpgrade()) return new FluidTankInfo[] {}; - return new FluidTankInfo[] {getInfo()}; - } - + + @Override + public boolean isLiquidOutput(byte aSide) { + return true; + } + + /** + * gets the contained Liquid + */ + @Override + public FluidStack getFluid() { + return null; + } + + /** + * tries to fill this Tank + */ + @Override + public int fill(FluidStack resource, boolean doFill) { + return 0; + } + + /** + * tries to empty this Tank + */ + @Override + public FluidStack drain(int maxDrain, boolean doDrain) { + return null; + } + + /** + * Tank pressure + */ + public int getTankPressure() { + return 0; + } + + /** + * Liquid Capacity + */ + @Override + public int getCapacity() { + return 0; + } + + @Override + public void onMachineBlockUpdate() {/*Do nothing*/} + + @Override + public void receiveClientEvent(byte aEventID, byte aValue) {/*Do nothing*/} + + @Override + public boolean isSimpleMachine() { + return false; + } + + /** + * If this accepts up to 4 Overclockers + */ + public boolean isOverclockerUpgradable() { + return false; + } + + /** + * If this accepts Transformer Upgrades + */ + public boolean isTransformerUpgradable() { + return false; + } + + /** + * Progress this machine has already made + */ + public int getProgresstime() { + return 0; + } + + /** + * Progress this Machine has to do to produce something + */ + public int maxProgresstime() { + return 0; + } + + /** + * Increases the Progress, returns the overflown Progress. + */ + public int increaseProgress(int aProgress) { + return 0; + } + + /** + * If this TileEntity makes use of Sided Redstone behaviors. + * Determines only, if the Output Redstone Array is getting filled with 0 for true, or 15 for false. + */ + public boolean hasSidedRedstoneOutputBehavior() { + return false; + } + + /** + * When the Facing gets changed. + */ + public void onFacingChange() {/*Do nothing*/} + + /** + * if the IC2 Teleporter can drain from this. + */ + public boolean isTeleporterCompatible() { + return isEnetOutput() && getBaseMetaTileEntity().getOutputVoltage() >= 128 && getBaseMetaTileEntity().getUniversalEnergyCapacity() >= 500000; + } + + /** + * Gets the Output for the comparator on the given Side + */ + @Override + public byte getComparatorValue(byte aSide) { + return 0; + } + + @Override + public boolean acceptsRotationalEnergy(byte aSide) { + return false; + } + + @Override + public boolean injectRotationalEnergy(byte aSide, long aSpeed, long aEnergy) { + return false; + } + + @Override + public String getSpecialVoltageToolTip() { + return null; + } + + @Override + public boolean isGivingInformation() { + return false; + } + + @Override + public String[] getInfoData() { + return new String[]{}; + } + + public boolean isDigitalChest() { + return false; + } + + public ItemStack[] getStoredItemData() { + return null; + } + + public void setItemCount(int aCount) {/*Do nothing*/} + + public int getMaxItemCount() { + return 0; + } + + @Override + public int getSizeInventory() { + return mInventory.length; + } + + @Override + public ItemStack getStackInSlot(int aIndex) { + if (aIndex >= 0 && aIndex < mInventory.length) return mInventory[aIndex]; + return null; + } + + @Override + public void setInventorySlotContents(int aIndex, ItemStack aStack) { + if (aIndex >= 0 && aIndex < mInventory.length) mInventory[aIndex] = aStack; + } + + @Override + public String getInventoryName() { + if (GregTech_API.METATILEENTITIES[getBaseMetaTileEntity().getMetaTileID()] != null) + return GregTech_API.METATILEENTITIES[getBaseMetaTileEntity().getMetaTileID()].getMetaName(); + return ""; + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + @Override + public boolean isItemValidForSlot(int aIndex, ItemStack aStack) { + return getBaseMetaTileEntity().isValidSlot(aIndex); + } + + @Override + public ItemStack decrStackSize(int aIndex, int aAmount) { + ItemStack tStack = getStackInSlot(aIndex), rStack = GT_Utility.copy(tStack); + if (tStack != null) { + if (tStack.stackSize <= aAmount) { + if (setStackToZeroInsteadOfNull(aIndex)) tStack.stackSize = 0; + else setInventorySlotContents(aIndex, null); + } else { + rStack = tStack.splitStack(aAmount); + if (tStack.stackSize == 0 && !setStackToZeroInsteadOfNull(aIndex)) + setInventorySlotContents(aIndex, null); + } + } + return rStack; + } + + @Override + public int[] getAccessibleSlotsFromSide(int aSide) { + ArrayList tList = new ArrayList(); + IGregTechTileEntity tTileEntity = getBaseMetaTileEntity(); + boolean tSkip = tTileEntity.getCoverBehaviorAtSide((byte) aSide).letsItemsIn((byte) aSide, tTileEntity.getCoverIDAtSide((byte) aSide), tTileEntity.getCoverDataAtSide((byte) aSide), -2, tTileEntity) || tTileEntity.getCoverBehaviorAtSide((byte) aSide).letsItemsOut((byte) aSide, tTileEntity.getCoverIDAtSide((byte) aSide), tTileEntity.getCoverDataAtSide((byte) aSide), -2, tTileEntity); + for (int i = 0; i < getSizeInventory(); i++) + if (isValidSlot(i) && (tSkip || tTileEntity.getCoverBehaviorAtSide((byte) aSide).letsItemsOut((byte) aSide, tTileEntity.getCoverIDAtSide((byte) aSide), tTileEntity.getCoverDataAtSide((byte) aSide), i, tTileEntity) || tTileEntity.getCoverBehaviorAtSide((byte) aSide).letsItemsIn((byte) aSide, tTileEntity.getCoverIDAtSide((byte) aSide), tTileEntity.getCoverDataAtSide((byte) aSide), i, tTileEntity))) + tList.add(i); + int[] rArray = new int[tList.size()]; + for (int i = 0; i < rArray.length; i++) rArray[i] = tList.get(i); + return rArray; + } + + @Override + public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) { + return isValidSlot(aIndex) && aStack != null && aIndex < mInventory.length && (mInventory[aIndex] == null || GT_Utility.areStacksEqual(aStack, mInventory[aIndex])) && allowPutStack(getBaseMetaTileEntity(), aIndex, (byte) aSide, aStack); + } + + @Override + public boolean canExtractItem(int aIndex, ItemStack aStack, int aSide) { + return isValidSlot(aIndex) && aStack != null && aIndex < mInventory.length && allowPullStack(getBaseMetaTileEntity(), aIndex, (byte) aSide, aStack); + } + + @Override + public boolean canFill(ForgeDirection aSide, Fluid aFluid) { + return fill(aSide, new FluidStack(aFluid, 1), false) == 1; + } + + @Override + public boolean canDrain(ForgeDirection aSide, Fluid aFluid) { + return drain(aSide, new FluidStack(aFluid, 1), false) != null; + } + + @Override + public FluidTankInfo[] getTankInfo(ForgeDirection aSide) { + if (getCapacity() <= 0 && !getBaseMetaTileEntity().hasSteamEngineUpgrade()) return new FluidTankInfo[]{}; + return new FluidTankInfo[]{getInfo()}; + } + public int fill_default(ForgeDirection aSide, FluidStack aFluid, boolean doFill) { return fill(aFluid, doFill); } - - @Override - public int fill(ForgeDirection aSide, FluidStack aFluid, boolean doFill) { - if (getBaseMetaTileEntity().hasSteamEngineUpgrade() && GT_ModHandler.isSteam(aFluid) && aFluid.amount > 1) { - int tSteam = (int)Math.min(Integer.MAX_VALUE, Math.min(aFluid.amount/2, getBaseMetaTileEntity().getSteamCapacity() - getBaseMetaTileEntity().getStoredSteam())); - if (tSteam > 0) { - if (doFill) getBaseMetaTileEntity().increaseStoredSteam(tSteam, true); - return tSteam*2; - } - } else { - return fill_default(aSide, aFluid, doFill); - } - return 0; - } - - @Override - public FluidStack drain(ForgeDirection aSide, FluidStack aFluid, boolean doDrain) { - if (getFluid() != null && aFluid != null && getFluid().isFluidEqual(aFluid)) return drain(aFluid.amount, doDrain); - return null; - } - - @Override - public FluidStack drain(ForgeDirection aSide, int maxDrain, boolean doDrain) { - return drain(maxDrain, doDrain); - } - - @Override - public int getFluidAmount() { - return 0; - } - - @Override - public FluidTankInfo getInfo() { - return new FluidTankInfo(this); - } - @Override - public String getMetaName() { - return mName; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - return null; - } - - @Override - public boolean hasCustomInventoryName() { - return false; - } - - @Override - public boolean doTickProfilingMessageDuringThisTick() { - return doTickProfilingInThisTick; - } - - @Override - public void markDirty() { - // - } - - @Override - public boolean isUseableByPlayer(EntityPlayer entityplayer) { - return false; - } - - @Override - public void openInventory() { - // - } - - @Override - public void closeInventory() { - // - } - - @Override + @Override + public int fill(ForgeDirection aSide, FluidStack aFluid, boolean doFill) { + if (getBaseMetaTileEntity().hasSteamEngineUpgrade() && GT_ModHandler.isSteam(aFluid) && aFluid.amount > 1) { + int tSteam = (int) Math.min(Integer.MAX_VALUE, Math.min(aFluid.amount / 2, getBaseMetaTileEntity().getSteamCapacity() - getBaseMetaTileEntity().getStoredSteam())); + if (tSteam > 0) { + if (doFill) getBaseMetaTileEntity().increaseStoredSteam(tSteam, true); + return tSteam * 2; + } + } else { + return fill_default(aSide, aFluid, doFill); + } + return 0; + } + + @Override + public FluidStack drain(ForgeDirection aSide, FluidStack aFluid, boolean doDrain) { + if (getFluid() != null && aFluid != null && getFluid().isFluidEqual(aFluid)) + return drain(aFluid.amount, doDrain); + return null; + } + + @Override + public FluidStack drain(ForgeDirection aSide, int maxDrain, boolean doDrain) { + return drain(maxDrain, doDrain); + } + + @Override + public int getFluidAmount() { + return 0; + } + + @Override + public FluidTankInfo getInfo() { + return new FluidTankInfo(this); + } + + @Override + public String getMetaName() { + return mName; + } + + @Override + public ItemStack getStackInSlotOnClosing(int i) { + return null; + } + + @Override + public boolean hasCustomInventoryName() { + return false; + } + + @Override + public boolean doTickProfilingMessageDuringThisTick() { + return doTickProfilingInThisTick; + } + + @Override + public void markDirty() { + // + } + + @Override + public boolean isUseableByPlayer(EntityPlayer entityplayer) { + return false; + } + + @Override + public void openInventory() { + // + } + + @Override + public void closeInventory() { + // + } + + @Override public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return null; + return null; } - - @Override + + @Override public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return null; + return null; } - - @Override - public boolean connectsToItemPipe(byte aSide) { - return false; - } - - @Override - public float getExplosionResistance(byte aSide) { - return 10.0F; - } - - @Override - public ItemStack[] getRealInventory() { - return mInventory; - } - - @Override - public void onColorChangeServer(byte aColor) { - // - } - - @Override - public void onColorChangeClient(byte aColor) { - // - } - - @Override - @SideOnly(Side.CLIENT) - public boolean renderInInventory(Block aBlock, int aMeta, RenderBlocks aRenderer) { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean renderInWorld(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock, RenderBlocks aRenderer) { - return false; - } - - @Override + + @Override + public boolean connectsToItemPipe(byte aSide) { + return false; + } + + @Override + public float getExplosionResistance(byte aSide) { + return 10.0F; + } + + @Override + public ItemStack[] getRealInventory() { + return mInventory; + } + + @Override + public void onColorChangeServer(byte aColor) { + // + } + + @Override + public void onColorChangeClient(byte aColor) { + // + } + + @Override + @SideOnly(Side.CLIENT) + public boolean renderInInventory(Block aBlock, int aMeta, RenderBlocks aRenderer) { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean renderInWorld(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock, RenderBlocks aRenderer) { + return false; + } + + @Override public void doExplosion(long aExplosionPower) { - float tStrength = aExplosionPower 0 ? 0 : 255; - } - - @Override - public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List outputAABB, Entity collider) { + float tStrength = aExplosionPower < V[0] ? 1.0F : aExplosionPower < V[1] ? 2.0F : aExplosionPower < V[2] ? 3.0F : aExplosionPower < V[3] ? 4.0F : aExplosionPower < V[4] ? 5.0F : aExplosionPower < V[4] * 2 ? 6.0F : aExplosionPower < V[5] ? 7.0F : aExplosionPower < V[6] ? 8.0F : aExplosionPower < V[7] ? 9.0F : 10.0F; + int tX = getBaseMetaTileEntity().getXCoord(), tY = getBaseMetaTileEntity().getYCoord(), tZ = getBaseMetaTileEntity().getZCoord(); + World tWorld = getBaseMetaTileEntity().getWorld(); + GT_Utility.sendSoundToPlayers(tWorld, GregTech_API.sSoundList.get(209), 1.0F, -1, tX, tY, tZ); + tWorld.setBlock(tX, tY, tZ, Blocks.air); + if (GregTech_API.sMachineExplosions) + tWorld.createExplosion(null, tX + 0.5, tY + 0.5, tZ + 0.5, tStrength, true); + } + + @Override + public int getLightOpacity() { + return ((BaseMetaTileEntity) getBaseMetaTileEntity()).getLightValue() > 0 ? 0 : 255; + } + + @Override + public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List outputAABB, Entity collider) { AxisAlignedBB axisalignedbb1 = getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ); if (axisalignedbb1 != null && inputAABB.intersectsWith(axisalignedbb1)) outputAABB.add(axisalignedbb1); - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) { - return AxisAlignedBB.getBoundingBox(aX, aY, aZ, aX+1, aY+1, aZ+1); - } - - @Override - public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider) { - // - } - - @Override + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) { + return AxisAlignedBB.getBoundingBox(aX, aY, aZ, aX + 1, aY + 1, aZ + 1); + } + + @Override + public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider) { + // + } + + @Override public void onCreated(ItemStack aStack, World aWorld, EntityPlayer aPlayer) { - // - } + // + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/metatileentity/examples/GT_MetaTileEntity_E_Furnace.java b/src/main/java/gregtech/api/metatileentity/examples/GT_MetaTileEntity_E_Furnace.java index a393ae5d..683fe8aa 100644 --- a/src/main/java/gregtech/api/metatileentity/examples/GT_MetaTileEntity_E_Furnace.java +++ b/src/main/java/gregtech/api/metatileentity/examples/GT_MetaTileEntity_E_Furnace.java @@ -15,42 +15,42 @@ import net.minecraft.item.ItemStack; * This Example Implementation still works, however I use something completely different in my own Code. */ public class GT_MetaTileEntity_E_Furnace extends GT_MetaTileEntity_BasicMachine { - public GT_MetaTileEntity_E_Furnace(int aID, String aName, String aNameRegional, int aTier) { - super(aID, aName, aNameRegional, aTier, 1, "Not like using a Commodore 64", 1, 1, "E_Furnace.png", "smelting", new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_FURNACE_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_FURNACE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_FURNACE_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_FURNACE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_FURNACE_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_FURNACE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_FURNACE_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_FURNACE)); - } - - public GT_MetaTileEntity_E_Furnace(String aName, int aTier, String aDescription, ITexture[][][] aTextures, String aGUIName, String aNEIName) { - super(aName, aTier, 1, aDescription, aTextures, 1, 1, aGUIName, aNEIName); - } - - @Override - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_E_Furnace(mName, mTier, mDescription, mTextures, mGUIName, mNEIName); - } - - @Override - public int checkRecipe() { - if (null != (mOutputItems[0] = GT_ModHandler.getSmeltingOutput(getInputAt(0), true, getOutputAt(0)))) { - mEUt = 4 * (1 << (mTier-1)) * (1 << (mTier-1)); - mMaxProgresstime = 128 / (1 << (mTier-1)); - return 2; - } - return 0; + public GT_MetaTileEntity_E_Furnace(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 1, "Not like using a Commodore 64", 1, 1, "E_Furnace.png", "smelting", new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_FURNACE_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_FURNACE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_FURNACE_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_FURNACE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_FURNACE_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_FURNACE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_FURNACE_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_FURNACE)); + } + + public GT_MetaTileEntity_E_Furnace(String aName, int aTier, String aDescription, ITexture[][][] aTextures, String aGUIName, String aNEIName) { + super(aName, aTier, 1, aDescription, aTextures, 1, 1, aGUIName, aNEIName); + } + + @Override + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_E_Furnace(mName, mTier, mDescription, mTextures, mGUIName, mNEIName); + } + + @Override + public int checkRecipe() { + if (null != (mOutputItems[0] = GT_ModHandler.getSmeltingOutput(getInputAt(0), true, getOutputAt(0)))) { + mEUt = 4 * (1 << (mTier - 1)) * (1 << (mTier - 1)); + mMaxProgresstime = 128 / (1 << (mTier - 1)); + return 2; + } + return 0; + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack) && GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(64, aStack), false, null) != null; + } + + @Override + public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) { + super.startSoundLoop(aIndex, aX, aY, aZ); + if (aIndex == 1) GT_Utility.doSoundAtClient(GregTech_API.sSoundList.get(207), 10, 1.0F, aX, aY, aZ); + } + + @Override + public void startProcess() { + sendLoopStart((byte) 1); } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack) && GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(64, aStack), false, null) != null; - } - - @Override - public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) { - super.startSoundLoop(aIndex, aX, aY, aZ); - if (aIndex == 1) GT_Utility.doSoundAtClient(GregTech_API.sSoundList.get(207), 10, 1.0F, aX, aY, aZ); - } - - @Override - public void startProcess() { - sendLoopStart((byte)1); - } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java index 85104f45..767d96a5 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java @@ -1,6 +1,6 @@ package gregtech.api.metatileentity.implementations; -import static gregtech.api.enums.GT_Values.VN; +import cofh.api.energy.IEnergyReceiver; import gregtech.api.GregTech_API; import gregtech.api.enums.Dyes; import gregtech.api.enums.Materials; @@ -17,11 +17,6 @@ import gregtech.api.metatileentity.MetaPipeEntity; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Utility; import ic2.api.energy.tile.IEnergySink; - -import java.util.ArrayList; -import java.util.Arrays; - -import cofh.api.energy.IEnergyReceiver; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; @@ -32,222 +27,261 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.ArrayList; +import java.util.Arrays; + +import static gregtech.api.enums.GT_Values.VN; + public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTileEntityCable { - public long mTransferredAmperage = 0, mTransferredAmperageLast20 = 0, mTransferredVoltageLast20 = 0; - - public final float mThickNess; - public final Materials mMaterial; - public final long mCableLossPerMeter, mAmperage, mVoltage; - public final boolean mInsulated, mCanShock; - public long mRestRF; - - public GT_MetaPipeEntity_Cable(int aID, String aName, String aNameRegional, float aThickNess, Materials aMaterial, long aCableLossPerMeter, long aAmperage, long aVoltage, boolean aInsulated, boolean aCanShock) { - super(aID, aName, aNameRegional, 0); - mThickNess = aThickNess; - mMaterial = aMaterial; - mAmperage = aAmperage; - mVoltage = aVoltage; - mInsulated = aInsulated; - mCanShock = aCanShock; - mCableLossPerMeter = aCableLossPerMeter; - } - - public GT_MetaPipeEntity_Cable(String aName, float aThickNess, Materials aMaterial, long aCableLossPerMeter, long aAmperage, long aVoltage, boolean aInsulated, boolean aCanShock) { - super(aName, 0); - mThickNess = aThickNess; - mMaterial = aMaterial; - mAmperage = aAmperage; - mVoltage = aVoltage; - mInsulated = aInsulated; - mCanShock = aCanShock; - mCableLossPerMeter = aCableLossPerMeter; - } - - @Override - public byte getTileEntityBaseType() { - return (byte)(mInsulated?9:8); - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaPipeEntity_Cable(mName, mThickNess, mMaterial, mCableLossPerMeter, mAmperage, mVoltage, mInsulated, mCanShock); - } - - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aConnections, byte aColorIndex, boolean aConnected, boolean aRedstone) { - if (!mInsulated) return new ITexture[] {new GT_RenderedTexture(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa)}; - if (aConnected) { - float tThickNess = getThickNess(); - if (tThickNess < 0.37F) return new ITexture[] {new GT_RenderedTexture(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), new GT_RenderedTexture(Textures.BlockIcons.INSULATION_TINY , Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa))}; - if (tThickNess < 0.49F) return new ITexture[] {new GT_RenderedTexture(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), new GT_RenderedTexture(Textures.BlockIcons.INSULATION_SMALL , Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa))}; - if (tThickNess < 0.74F) return new ITexture[] {new GT_RenderedTexture(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), new GT_RenderedTexture(Textures.BlockIcons.INSULATION_MEDIUM , Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa))}; - if (tThickNess < 0.99F) return new ITexture[] {new GT_RenderedTexture(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), new GT_RenderedTexture(Textures.BlockIcons.INSULATION_LARGE , Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa))}; - return new ITexture[] {new GT_RenderedTexture(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), new GT_RenderedTexture(Textures.BlockIcons.INSULATION_HUGE , Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa))}; - } - return new ITexture[] {new GT_RenderedTexture(Textures.BlockIcons.INSULATION_FULL, Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa))}; - } - - @Override - public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity aEntity) { - if (mCanShock && (((BaseMetaPipeEntity)getBaseMetaTileEntity()).mConnections & -128) == 0 && aEntity instanceof EntityLivingBase) GT_Utility.applyElectricityDamage((EntityLivingBase)aEntity, mTransferredVoltageLast20, mTransferredAmperageLast20); - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) { - if (!mCanShock) return super.getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ); - return AxisAlignedBB.getBoundingBox(aX+0.125D, aY+0.125D, aZ+0.125D, aX+0.875D, aY+0.875D, aZ+0.875D); - } - - @Override public boolean isSimpleMachine() {return true;} - @Override public boolean isFacingValid(byte aFacing) {return false;} - @Override public boolean isValidSlot(int aIndex) {return true;} - @Override public final boolean renderInside(byte aSide) {return false;} - @Override public int getProgresstime() {return (int)mTransferredAmperage*64;} - @Override public int maxProgresstime() {return (int)mAmperage*64;} - + public final float mThickNess; + public final Materials mMaterial; + public final long mCableLossPerMeter, mAmperage, mVoltage; + public final boolean mInsulated, mCanShock; + public long mTransferredAmperage = 0, mTransferredAmperageLast20 = 0, mTransferredVoltageLast20 = 0; + public long mRestRF; + + public GT_MetaPipeEntity_Cable(int aID, String aName, String aNameRegional, float aThickNess, Materials aMaterial, long aCableLossPerMeter, long aAmperage, long aVoltage, boolean aInsulated, boolean aCanShock) { + super(aID, aName, aNameRegional, 0); + mThickNess = aThickNess; + mMaterial = aMaterial; + mAmperage = aAmperage; + mVoltage = aVoltage; + mInsulated = aInsulated; + mCanShock = aCanShock; + mCableLossPerMeter = aCableLossPerMeter; + } + + public GT_MetaPipeEntity_Cable(String aName, float aThickNess, Materials aMaterial, long aCableLossPerMeter, long aAmperage, long aVoltage, boolean aInsulated, boolean aCanShock) { + super(aName, 0); + mThickNess = aThickNess; + mMaterial = aMaterial; + mAmperage = aAmperage; + mVoltage = aVoltage; + mInsulated = aInsulated; + mCanShock = aCanShock; + mCableLossPerMeter = aCableLossPerMeter; + } + @Override - public long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage) { - if (!getBaseMetaTileEntity().getCoverBehaviorAtSide(aSide).letsEnergyIn(aSide, getBaseMetaTileEntity().getCoverIDAtSide(aSide), getBaseMetaTileEntity().getCoverDataAtSide(aSide), getBaseMetaTileEntity())) return 0; - return transferElectricity(aSide, aVoltage, aAmperage, new ArrayList(Arrays.asList((TileEntity)getBaseMetaTileEntity()))); - } - + public byte getTileEntityBaseType() { + return (byte) (mInsulated ? 9 : 8); + } + @Override - public long transferElectricity(byte aSide, long aVoltage, long aAmperage, ArrayList aAlreadyPassedTileEntityList) { - long rUsedAmperes = 0; - aVoltage -= mCableLossPerMeter; - if (aVoltage > 0) for (byte i = 0; i < 6 && aAmperage > rUsedAmperes; i++) if (i != aSide && (mConnections & (1<= 0) { - byte tColor = ((IEnergyConnected)tTileEntity).getColorization(); - if (tColor >= 0 && tColor != getBaseMetaTileEntity().getColorization()) continue; - } - if (tTileEntity instanceof IGregTechTileEntity && ((IGregTechTileEntity)tTileEntity).getMetaTileEntity() instanceof IMetaTileEntityCable && ((IGregTechTileEntity)tTileEntity).getCoverBehaviorAtSide(GT_Utility.getOppositeSide(i)).letsEnergyIn(GT_Utility.getOppositeSide(i), ((IGregTechTileEntity)tTileEntity).getCoverIDAtSide(GT_Utility.getOppositeSide(i)), ((IGregTechTileEntity)tTileEntity).getCoverDataAtSide(GT_Utility.getOppositeSide(i)), ((IGregTechTileEntity)tTileEntity))) { - if (((IGregTechTileEntity)tTileEntity).getTimer() > 50) rUsedAmperes += ((IMetaTileEntityCable)((IGregTechTileEntity)tTileEntity).getMetaTileEntity()).transferElectricity(GT_Utility.getOppositeSide(i), aVoltage, aAmperage-rUsedAmperes, aAlreadyPassedTileEntityList); - } else { - rUsedAmperes += ((IEnergyConnected)tTileEntity).injectEnergyUnits(GT_Utility.getOppositeSide(i), aVoltage, aAmperage-rUsedAmperes); - } + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaPipeEntity_Cable(mName, mThickNess, mMaterial, mCableLossPerMeter, mAmperage, mVoltage, mInsulated, mCanShock); + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aConnections, byte aColorIndex, boolean aConnected, boolean aRedstone) { + if (!mInsulated) + return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa)}; + if (aConnected) { + float tThickNess = getThickNess(); + if (tThickNess < 0.37F) + return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), new GT_RenderedTexture(Textures.BlockIcons.INSULATION_TINY, Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa))}; + if (tThickNess < 0.49F) + return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), new GT_RenderedTexture(Textures.BlockIcons.INSULATION_SMALL, Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa))}; + if (tThickNess < 0.74F) + return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), new GT_RenderedTexture(Textures.BlockIcons.INSULATION_MEDIUM, Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa))}; + if (tThickNess < 0.99F) + return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), new GT_RenderedTexture(Textures.BlockIcons.INSULATION_LARGE, Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa))}; + return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), new GT_RenderedTexture(Textures.BlockIcons.INSULATION_HUGE, Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa))}; + } + return new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.INSULATION_FULL, Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa))}; + } + + @Override + public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity aEntity) { + if (mCanShock && (((BaseMetaPipeEntity) getBaseMetaTileEntity()).mConnections & -128) == 0 && aEntity instanceof EntityLivingBase) + GT_Utility.applyElectricityDamage((EntityLivingBase) aEntity, mTransferredVoltageLast20, mTransferredAmperageLast20); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) { + if (!mCanShock) return super.getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ); + return AxisAlignedBB.getBoundingBox(aX + 0.125D, aY + 0.125D, aZ + 0.125D, aX + 0.875D, aY + 0.875D, aZ + 0.875D); + } + + @Override + public boolean isSimpleMachine() { + return true; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return false; + } + + @Override + public boolean isValidSlot(int aIndex) { + return true; + } + + @Override + public final boolean renderInside(byte aSide) { + return false; + } + + @Override + public int getProgresstime() { + return (int) mTransferredAmperage * 64; + } + + @Override + public int maxProgresstime() { + return (int) mAmperage * 64; + } + + @Override + public long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage) { + if (!getBaseMetaTileEntity().getCoverBehaviorAtSide(aSide).letsEnergyIn(aSide, getBaseMetaTileEntity().getCoverIDAtSide(aSide), getBaseMetaTileEntity().getCoverDataAtSide(aSide), getBaseMetaTileEntity())) + return 0; + return transferElectricity(aSide, aVoltage, aAmperage, new ArrayList(Arrays.asList((TileEntity) getBaseMetaTileEntity()))); + } + + @Override + public long transferElectricity(byte aSide, long aVoltage, long aAmperage, ArrayList aAlreadyPassedTileEntityList) { + long rUsedAmperes = 0; + aVoltage -= mCableLossPerMeter; + if (aVoltage > 0) for (byte i = 0; i < 6 && aAmperage > rUsedAmperes; i++) + if (i != aSide && (mConnections & (1 << i)) != 0 && getBaseMetaTileEntity().getCoverBehaviorAtSide(i).letsEnergyOut(i, getBaseMetaTileEntity().getCoverIDAtSide(i), getBaseMetaTileEntity().getCoverDataAtSide(i), getBaseMetaTileEntity())) { + TileEntity tTileEntity = getBaseMetaTileEntity().getTileEntityAtSide(i); + if (!aAlreadyPassedTileEntityList.contains(tTileEntity)) { + aAlreadyPassedTileEntityList.add(tTileEntity); + if (tTileEntity instanceof IEnergyConnected) { + if (getBaseMetaTileEntity().getColorization() >= 0) { + byte tColor = ((IEnergyConnected) tTileEntity).getColorization(); + if (tColor >= 0 && tColor != getBaseMetaTileEntity().getColorization()) continue; + } + if (tTileEntity instanceof IGregTechTileEntity && ((IGregTechTileEntity) tTileEntity).getMetaTileEntity() instanceof IMetaTileEntityCable && ((IGregTechTileEntity) tTileEntity).getCoverBehaviorAtSide(GT_Utility.getOppositeSide(i)).letsEnergyIn(GT_Utility.getOppositeSide(i), ((IGregTechTileEntity) tTileEntity).getCoverIDAtSide(GT_Utility.getOppositeSide(i)), ((IGregTechTileEntity) tTileEntity).getCoverDataAtSide(GT_Utility.getOppositeSide(i)), ((IGregTechTileEntity) tTileEntity))) { + if (((IGregTechTileEntity) tTileEntity).getTimer() > 50) + rUsedAmperes += ((IMetaTileEntityCable) ((IGregTechTileEntity) tTileEntity).getMetaTileEntity()).transferElectricity(GT_Utility.getOppositeSide(i), aVoltage, aAmperage - rUsedAmperes, aAlreadyPassedTileEntityList); + } else { + rUsedAmperes += ((IEnergyConnected) tTileEntity).injectEnergyUnits(GT_Utility.getOppositeSide(i), aVoltage, aAmperage - rUsedAmperes); + } // } else if (tTileEntity instanceof IEnergySink) { // ForgeDirection tDirection = ForgeDirection.getOrientation(i).getOpposite(); // if (((IEnergySink)tTileEntity).acceptsEnergyFrom((TileEntity)getBaseMetaTileEntity(), tDirection)) { // if (((IEnergySink)tTileEntity).demandedEnergyUnits() > 0 && ((IEnergySink)tTileEntity).injectEnergyUnits(tDirection, aVoltage) < aVoltage) rUsedAmperes++; // } - } else if (tTileEntity instanceof IEnergySink) { - ForgeDirection tDirection = ForgeDirection.getOrientation(i).getOpposite(); - if (((IEnergySink)tTileEntity).acceptsEnergyFrom((TileEntity)getBaseMetaTileEntity(), tDirection)) { - if (((IEnergySink)tTileEntity).getDemandedEnergy() > 0 && ((IEnergySink)tTileEntity).injectEnergy(tDirection, aVoltage, aVoltage) < aVoltage) rUsedAmperes++; - } - } else if(GregTech_API.mOutputRF && tTileEntity instanceof IEnergyReceiver){ - ForgeDirection tDirection = ForgeDirection.getOrientation(i).getOpposite(); - int rfOut = (int) (aVoltage * GregTech_API.mEUtoRF / 100); - if(((IEnergyReceiver)tTileEntity).receiveEnergy(tDirection, rfOut, true)==rfOut){ - ((IEnergyReceiver)tTileEntity).receiveEnergy(tDirection, rfOut, false); rUsedAmperes++; - }else if(((IEnergyReceiver)tTileEntity).receiveEnergy(tDirection, rfOut, true)>0){ - if(mRestRF==0){ - int RFtrans = ((IEnergyReceiver)tTileEntity).receiveEnergy(tDirection, (int) rfOut, false);rUsedAmperes++; - mRestRF = rfOut - RFtrans; - }else{ - int RFtrans = ((IEnergyReceiver)tTileEntity).receiveEnergy(tDirection, (int) mRestRF, false); - mRestRF = mRestRF - RFtrans; - } - } - if(GregTech_API.mRFExplosions && ((IEnergyReceiver)tTileEntity).getMaxEnergyStored(tDirection) < rfOut * 600){ - if(rfOut > 32 * GregTech_API.mEUtoRF / 100) this.doExplosion(rfOut); - } - } - } - } - mTransferredAmperage += rUsedAmperes; - mTransferredVoltageLast20 = Math.max(mTransferredVoltageLast20, aVoltage); - mTransferredAmperageLast20 = Math.max(mTransferredAmperageLast20, mTransferredAmperage); - if (aVoltage > mVoltage || mTransferredAmperage > mAmperage) { - getBaseMetaTileEntity().setToFire(); - return aAmperage; - } - return rUsedAmperes; - } - + } else if (tTileEntity instanceof IEnergySink) { + ForgeDirection tDirection = ForgeDirection.getOrientation(i).getOpposite(); + if (((IEnergySink) tTileEntity).acceptsEnergyFrom((TileEntity) getBaseMetaTileEntity(), tDirection)) { + if (((IEnergySink) tTileEntity).getDemandedEnergy() > 0 && ((IEnergySink) tTileEntity).injectEnergy(tDirection, aVoltage, aVoltage) < aVoltage) + rUsedAmperes++; + } + } else if (GregTech_API.mOutputRF && tTileEntity instanceof IEnergyReceiver) { + ForgeDirection tDirection = ForgeDirection.getOrientation(i).getOpposite(); + int rfOut = (int) (aVoltage * GregTech_API.mEUtoRF / 100); + if (((IEnergyReceiver) tTileEntity).receiveEnergy(tDirection, rfOut, true) == rfOut) { + ((IEnergyReceiver) tTileEntity).receiveEnergy(tDirection, rfOut, false); + rUsedAmperes++; + } else if (((IEnergyReceiver) tTileEntity).receiveEnergy(tDirection, rfOut, true) > 0) { + if (mRestRF == 0) { + int RFtrans = ((IEnergyReceiver) tTileEntity).receiveEnergy(tDirection, (int) rfOut, false); + rUsedAmperes++; + mRestRF = rfOut - RFtrans; + } else { + int RFtrans = ((IEnergyReceiver) tTileEntity).receiveEnergy(tDirection, (int) mRestRF, false); + mRestRF = mRestRF - RFtrans; + } + } + if (GregTech_API.mRFExplosions && ((IEnergyReceiver) tTileEntity).getMaxEnergyStored(tDirection) < rfOut * 600) { + if (rfOut > 32 * GregTech_API.mEUtoRF / 100) this.doExplosion(rfOut); + } + } + } + } + mTransferredAmperage += rUsedAmperes; + mTransferredVoltageLast20 = Math.max(mTransferredVoltageLast20, aVoltage); + mTransferredAmperageLast20 = Math.max(mTransferredAmperageLast20, mTransferredAmperage); + if (aVoltage > mVoltage || mTransferredAmperage > mAmperage) { + getBaseMetaTileEntity().setToFire(); + return aAmperage; + } + return rUsedAmperes; + } + @Override public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - if (aBaseMetaTileEntity.isServerSide()) { - mTransferredAmperage = 0; - - if (aTick % 20 == 0) { - mTransferredVoltageLast20 = 0; - mTransferredAmperageLast20 = 0; - mConnections = 0; - for (byte i = 0, j = 0; i < 6; i++) { - j = GT_Utility.getOppositeSide(i); - if (aBaseMetaTileEntity.getCoverBehaviorAtSide(i).alwaysLookConnected(i, aBaseMetaTileEntity.getCoverIDAtSide(i), aBaseMetaTileEntity.getCoverDataAtSide(i), aBaseMetaTileEntity) || aBaseMetaTileEntity.getCoverBehaviorAtSide(i).letsEnergyIn(i, aBaseMetaTileEntity.getCoverIDAtSide(i), aBaseMetaTileEntity.getCoverDataAtSide(i), aBaseMetaTileEntity) || aBaseMetaTileEntity.getCoverBehaviorAtSide(i).letsEnergyOut(i, aBaseMetaTileEntity.getCoverIDAtSide(i), aBaseMetaTileEntity.getCoverDataAtSide(i), aBaseMetaTileEntity)) { - TileEntity tTileEntity = aBaseMetaTileEntity.getTileEntityAtSide(i); - if (tTileEntity instanceof IColoredTileEntity) { - if (aBaseMetaTileEntity.getColorization() >= 0) { - byte tColor = ((IColoredTileEntity)tTileEntity).getColorization(); - if (tColor >= 0 && tColor != aBaseMetaTileEntity.getColorization()) continue; - } - } - if (tTileEntity instanceof IEnergyConnected && (((IEnergyConnected)tTileEntity).inputEnergyFrom(j) || ((IEnergyConnected)tTileEntity).outputsEnergyTo(j))) { - mConnections |= (1<= 0) { + byte tColor = ((IColoredTileEntity) tTileEntity).getColorization(); + if (tColor >= 0 && tColor != aBaseMetaTileEntity.getColorization()) continue; + } + } + if (tTileEntity instanceof IEnergyConnected && (((IEnergyConnected) tTileEntity).inputEnergyFrom(j) || ((IEnergyConnected) tTileEntity).outputsEnergyTo(j))) { + mConnections |= (1 << i); + continue; + } + if (tTileEntity instanceof IGregTechTileEntity && ((IGregTechTileEntity) tTileEntity).getMetaTileEntity() instanceof IMetaTileEntityCable) { + if (((IGregTechTileEntity) tTileEntity).getCoverBehaviorAtSide(j).alwaysLookConnected(j, ((IGregTechTileEntity) tTileEntity).getCoverIDAtSide(j), ((IGregTechTileEntity) tTileEntity).getCoverDataAtSide(j), ((IGregTechTileEntity) tTileEntity)) || ((IGregTechTileEntity) tTileEntity).getCoverBehaviorAtSide(j).letsEnergyIn(j, ((IGregTechTileEntity) tTileEntity).getCoverIDAtSide(j), ((IGregTechTileEntity) tTileEntity).getCoverDataAtSide(j), ((IGregTechTileEntity) tTileEntity)) || ((IGregTechTileEntity) tTileEntity).getCoverBehaviorAtSide(j).letsEnergyOut(j, ((IGregTechTileEntity) tTileEntity).getCoverIDAtSide(j), ((IGregTechTileEntity) tTileEntity).getCoverDataAtSide(j), ((IGregTechTileEntity) tTileEntity))) { + mConnections |= (1 << i); + continue; + } + } + if (tTileEntity instanceof IEnergySink && ((IEnergySink) tTileEntity).acceptsEnergyFrom((TileEntity) aBaseMetaTileEntity, ForgeDirection.getOrientation(j))) { + mConnections |= (1 << i); + continue; + } + if (GregTech_API.mOutputRF && tTileEntity instanceof IEnergyReceiver && ((IEnergyReceiver) tTileEntity).canConnectEnergy(ForgeDirection.getOrientation(j))) { + mConnections |= (1 << i); + continue; + } + /* if (tTileEntity instanceof IEnergyEmitter && ((IEnergyEmitter)tTileEntity).emitsEnergyTo((TileEntity)aBaseMetaTileEntity, ForgeDirection.getOrientation(j))) { mConnections |= (1< 320) { - GT_Utility.applyHeatDamage((EntityLivingBase)aEntity, (tTemperature - 300) / 50.0F); - } else if (tTemperature < 260) { - GT_Utility.applyFrostDamage((EntityLivingBase)aEntity, (270 - tTemperature) / 25.0F); - } - } - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) { - return AxisAlignedBB.getBoundingBox(aX+0.125D, aY+0.125D, aZ+0.125D, aX+0.875D, aY+0.875D, aZ+0.875D); - } - + public final float mThickNess; + public final Materials mMaterial; + public final int mCapacity, mHeatResistance; + public final boolean mGasProof; + public FluidStack mFluid; + public byte mLastReceivedFrom = 0, oLastReceivedFrom = 0; + + public GT_MetaPipeEntity_Fluid(int aID, String aName, String aNameRegional, float aThickNess, Materials aMaterial, int aCapacity, int aHeatResistance, boolean aGasProof) { + super(aID, aName, aNameRegional, 0); + mThickNess = aThickNess; + mMaterial = aMaterial; + mCapacity = aCapacity; + mGasProof = aGasProof; + mHeatResistance = aHeatResistance; + } + + public GT_MetaPipeEntity_Fluid(String aName, float aThickNess, Materials aMaterial, int aCapacity, int aHeatResistance, boolean aGasProof) { + super(aName, 0); + mThickNess = aThickNess; + mMaterial = aMaterial; + mCapacity = aCapacity; + mGasProof = aGasProof; + mHeatResistance = aHeatResistance; + } + + @Override + public byte getTileEntityBaseType() { + return mMaterial == null ? 4 : (byte) ((mMaterial.contains(SubTag.WOOD) ? 12 : 4) + Math.max(0, Math.min(3, mMaterial.mToolQuality))); + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaPipeEntity_Fluid(mName, mThickNess, mMaterial, mCapacity, mHeatResistance, mGasProof); + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aConnections, byte aColorIndex, boolean aConnected, boolean aRedstone) { + if (aConnected) { + float tThickNess = getThickNess(); + if (tThickNess < 0.37F) + return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeTiny.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))}; + if (tThickNess < 0.49F) + return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeSmall.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))}; + if (tThickNess < 0.74F) + return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeMedium.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))}; + if (tThickNess < 0.99F) + return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeLarge.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))}; + return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeHuge.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))}; + } + return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipe.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))}; + } + + @Override + public boolean isSimpleMachine() { + return true; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return false; + } + + @Override + public boolean isValidSlot(int aIndex) { + return false; + } + + @Override + public final boolean renderInside(byte aSide) { + return false; + } + + @Override + public int getProgresstime() { + return getFluidAmount(); + } + + @Override + public int maxProgresstime() { + return getCapacity(); + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + if (mFluid != null) aNBT.setTag("mFluid", mFluid.writeToNBT(new NBTTagCompound())); + aNBT.setByte("mLastReceivedFrom", mLastReceivedFrom); + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + mFluid = FluidStack.loadFluidStackFromNBT(aNBT.getCompoundTag("mFluid")); + mLastReceivedFrom = aNBT.getByte("mLastReceivedFrom"); + } + + @Override + public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity aEntity) { + if (mFluid != null && (((BaseMetaPipeEntity) getBaseMetaTileEntity()).mConnections & -128) == 0 && aEntity instanceof EntityLivingBase) { + int tTemperature = mFluid.getFluid().getTemperature(mFluid); + if (tTemperature > 320) { + GT_Utility.applyHeatDamage((EntityLivingBase) aEntity, (tTemperature - 300) / 50.0F); + } else if (tTemperature < 260) { + GT_Utility.applyFrostDamage((EntityLivingBase) aEntity, (270 - tTemperature) / 25.0F); + } + } + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) { + return AxisAlignedBB.getBoundingBox(aX + 0.125D, aY + 0.125D, aZ + 0.125D, aX + 0.875D, aY + 0.875D, aZ + 0.875D); + } + @Override public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - if (aBaseMetaTileEntity.isServerSide() && aTick % 5 == 0) { - mLastReceivedFrom &= 63; - if (mLastReceivedFrom == 63) { - mLastReceivedFrom = 0; - } - - if (mFluid != null && mFluid.amount > 0) { - int tTemperature = mFluid.getFluid().getTemperature(mFluid); - if (tTemperature > mHeatResistance) { - if (aBaseMetaTileEntity.getRandomNumber(100) == 0) { - aBaseMetaTileEntity.setToFire(); - return; - } - aBaseMetaTileEntity.setOnFire(); - } - if (!mGasProof && mFluid.getFluid().isGaseous(mFluid)) { - mFluid.amount -= 5; - sendSound((byte)9); - if (tTemperature > 320) { - try { - for (EntityLivingBase tLiving : (ArrayList)getBaseMetaTileEntity().getWorld().getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(getBaseMetaTileEntity().getXCoord()-2, getBaseMetaTileEntity().getYCoord()-2, getBaseMetaTileEntity().getZCoord()-2, getBaseMetaTileEntity().getXCoord()+3, getBaseMetaTileEntity().getYCoord()+3, getBaseMetaTileEntity().getZCoord()+3))) { - GT_Utility.applyHeatDamage(tLiving, (tTemperature - 300) / 25.0F); - } - } catch(Throwable e) { - if (D1) e.printStackTrace(GT_Log.err); - } - } else if (tTemperature < 260) { - try { - for (EntityLivingBase tLiving : (ArrayList)getBaseMetaTileEntity().getWorld().getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(getBaseMetaTileEntity().getXCoord()-2, getBaseMetaTileEntity().getYCoord()-2, getBaseMetaTileEntity().getZCoord()-2, getBaseMetaTileEntity().getXCoord()+3, getBaseMetaTileEntity().getYCoord()+3, getBaseMetaTileEntity().getZCoord()+3))) { - GT_Utility.applyFrostDamage(tLiving, (270 - tTemperature) / 12.5F); - } - } catch(Throwable e) { - if (D1) e.printStackTrace(GT_Log.err); - } - } - if (mFluid.amount <= 0) mFluid = null; - } - } - - if (mLastReceivedFrom == oLastReceivedFrom) { - HashMap tTanks = new HashMap(); - - mConnections = 0; - - for (byte tSide = 0, i = 0, j = (byte)aBaseMetaTileEntity.getRandomNumber(6); i < 6; i++) { - tSide = (byte)((j + i) % 6); - - IFluidHandler tTileEntity = aBaseMetaTileEntity.getITankContainerAtSide(tSide); - if (tTileEntity != null) { - if (tTileEntity instanceof IGregTechTileEntity) { - if (aBaseMetaTileEntity.getColorization() >= 0) { - byte tColor = ((IGregTechTileEntity)tTileEntity).getColorization(); - if (tColor >= 0 && (tColor & 15) != (aBaseMetaTileEntity.getColorization() & 15)) { - continue; - } - } - } - FluidTankInfo[] tInfo = tTileEntity.getTankInfo(ForgeDirection.getOrientation(tSide).getOpposite()); - if (tInfo != null && tInfo.length > 0) { - if (tTileEntity instanceof ICoverable && ((ICoverable)tTileEntity).getCoverBehaviorAtSide(GT_Utility.getOppositeSide(tSide)).alwaysLookConnected(GT_Utility.getOppositeSide(tSide), ((ICoverable)tTileEntity).getCoverIDAtSide(GT_Utility.getOppositeSide(tSide)), ((ICoverable)tTileEntity).getCoverDataAtSide(GT_Utility.getOppositeSide(tSide)), ((ICoverable)tTileEntity))) { - mConnections |= (1< 0) { - int tAmount = Math.max(1, Math.min(mCapacity*10, mFluid.amount / 2)), tSuccessfulTankAmount = 0; - - for (Entry tEntry : tTanks.entrySet()) if (tEntry.getKey().fill(tEntry.getValue(), drain(tAmount, false), false) > 0) tSuccessfulTankAmount++; - - if (tSuccessfulTankAmount > 0) { - if (tAmount >= tSuccessfulTankAmount) { - tAmount /= tSuccessfulTankAmount; - for (Entry tTileEntity : tTanks.entrySet()) { - if (mFluid == null || mFluid.amount <= 0) break; - int tFilledAmount = tTileEntity.getKey().fill(tTileEntity.getValue(), drain(tAmount, false), false); - if (tFilledAmount > 0) tTileEntity.getKey().fill(tTileEntity.getValue(), drain(tFilledAmount, true), true); - } - } else { - for (Entry tTileEntity : tTanks.entrySet()) { - if (mFluid == null || mFluid.amount <= 0) break; - int tFilledAmount = tTileEntity.getKey().fill(tTileEntity.getValue(), drain(mFluid.amount, false), false); - if (tFilledAmount > 0) tTileEntity.getKey().fill(tTileEntity.getValue(), drain(tFilledAmount, true), true); - } - } - } - } - - mLastReceivedFrom = 0; - } - - oLastReceivedFrom = mLastReceivedFrom; - } + if (aBaseMetaTileEntity.isServerSide() && aTick % 5 == 0) { + mLastReceivedFrom &= 63; + if (mLastReceivedFrom == 63) { + mLastReceivedFrom = 0; + } + + if (mFluid != null && mFluid.amount > 0) { + int tTemperature = mFluid.getFluid().getTemperature(mFluid); + if (tTemperature > mHeatResistance) { + if (aBaseMetaTileEntity.getRandomNumber(100) == 0) { + aBaseMetaTileEntity.setToFire(); + return; + } + aBaseMetaTileEntity.setOnFire(); + } + if (!mGasProof && mFluid.getFluid().isGaseous(mFluid)) { + mFluid.amount -= 5; + sendSound((byte) 9); + if (tTemperature > 320) { + try { + for (EntityLivingBase tLiving : (ArrayList) getBaseMetaTileEntity().getWorld().getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(getBaseMetaTileEntity().getXCoord() - 2, getBaseMetaTileEntity().getYCoord() - 2, getBaseMetaTileEntity().getZCoord() - 2, getBaseMetaTileEntity().getXCoord() + 3, getBaseMetaTileEntity().getYCoord() + 3, getBaseMetaTileEntity().getZCoord() + 3))) { + GT_Utility.applyHeatDamage(tLiving, (tTemperature - 300) / 25.0F); + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + } else if (tTemperature < 260) { + try { + for (EntityLivingBase tLiving : (ArrayList) getBaseMetaTileEntity().getWorld().getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(getBaseMetaTileEntity().getXCoord() - 2, getBaseMetaTileEntity().getYCoord() - 2, getBaseMetaTileEntity().getZCoord() - 2, getBaseMetaTileEntity().getXCoord() + 3, getBaseMetaTileEntity().getYCoord() + 3, getBaseMetaTileEntity().getZCoord() + 3))) { + GT_Utility.applyFrostDamage(tLiving, (270 - tTemperature) / 12.5F); + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + } + if (mFluid.amount <= 0) mFluid = null; + } + } + + if (mLastReceivedFrom == oLastReceivedFrom) { + HashMap tTanks = new HashMap(); + + mConnections = 0; + + for (byte tSide = 0, i = 0, j = (byte) aBaseMetaTileEntity.getRandomNumber(6); i < 6; i++) { + tSide = (byte) ((j + i) % 6); + + IFluidHandler tTileEntity = aBaseMetaTileEntity.getITankContainerAtSide(tSide); + if (tTileEntity != null) { + if (tTileEntity instanceof IGregTechTileEntity) { + if (aBaseMetaTileEntity.getColorization() >= 0) { + byte tColor = ((IGregTechTileEntity) tTileEntity).getColorization(); + if (tColor >= 0 && (tColor & 15) != (aBaseMetaTileEntity.getColorization() & 15)) { + continue; + } + } + } + FluidTankInfo[] tInfo = tTileEntity.getTankInfo(ForgeDirection.getOrientation(tSide).getOpposite()); + if (tInfo != null && tInfo.length > 0) { + if (tTileEntity instanceof ICoverable && ((ICoverable) tTileEntity).getCoverBehaviorAtSide(GT_Utility.getOppositeSide(tSide)).alwaysLookConnected(GT_Utility.getOppositeSide(tSide), ((ICoverable) tTileEntity).getCoverIDAtSide(GT_Utility.getOppositeSide(tSide)), ((ICoverable) tTileEntity).getCoverDataAtSide(GT_Utility.getOppositeSide(tSide)), ((ICoverable) tTileEntity))) { + mConnections |= (1 << tSide); + } + if (aBaseMetaTileEntity.getCoverBehaviorAtSide(tSide).letsFluidIn(tSide, aBaseMetaTileEntity.getCoverIDAtSide(tSide), aBaseMetaTileEntity.getCoverDataAtSide(tSide), null, aBaseMetaTileEntity)) { + mConnections |= (1 << tSide); + } + if (aBaseMetaTileEntity.getCoverBehaviorAtSide(tSide).letsFluidOut(tSide, aBaseMetaTileEntity.getCoverIDAtSide(tSide), aBaseMetaTileEntity.getCoverDataAtSide(tSide), null, aBaseMetaTileEntity)) { + mConnections |= (1 << tSide); + if (((1 << tSide) & mLastReceivedFrom) == 0) + tTanks.put(tTileEntity, ForgeDirection.getOrientation(tSide).getOpposite()); + } + if (aBaseMetaTileEntity.getCoverBehaviorAtSide(tSide).alwaysLookConnected(tSide, aBaseMetaTileEntity.getCoverIDAtSide(tSide), aBaseMetaTileEntity.getCoverDataAtSide(tSide), aBaseMetaTileEntity)) { + mConnections |= (1 << tSide); + } + } + } + } + + if (mFluid != null && mFluid.amount > 0) { + int tAmount = Math.max(1, Math.min(mCapacity * 10, mFluid.amount / 2)), tSuccessfulTankAmount = 0; + + for (Entry tEntry : tTanks.entrySet()) + if (tEntry.getKey().fill(tEntry.getValue(), drain(tAmount, false), false) > 0) + tSuccessfulTankAmount++; + + if (tSuccessfulTankAmount > 0) { + if (tAmount >= tSuccessfulTankAmount) { + tAmount /= tSuccessfulTankAmount; + for (Entry tTileEntity : tTanks.entrySet()) { + if (mFluid == null || mFluid.amount <= 0) break; + int tFilledAmount = tTileEntity.getKey().fill(tTileEntity.getValue(), drain(tAmount, false), false); + if (tFilledAmount > 0) + tTileEntity.getKey().fill(tTileEntity.getValue(), drain(tFilledAmount, true), true); + } + } else { + for (Entry tTileEntity : tTanks.entrySet()) { + if (mFluid == null || mFluid.amount <= 0) break; + int tFilledAmount = tTileEntity.getKey().fill(tTileEntity.getValue(), drain(mFluid.amount, false), false); + if (tFilledAmount > 0) + tTileEntity.getKey().fill(tTileEntity.getValue(), drain(tFilledAmount, true), true); + } + } + } + } + + mLastReceivedFrom = 0; + } + + oLastReceivedFrom = mLastReceivedFrom; + } } - - @Override + + @Override public void doSound(byte aIndex, double aX, double aY, double aZ) { - super.doSound(aIndex, aX, aY, aZ); - if (aIndex == 9) { - GT_Utility.doSoundAtClient(GregTech_API.sSoundList.get(4), 5, 1.0F, aX, aY, aZ); - for (byte i = 0; i < 6; i++) for (int l = 0; l < 2; ++l) getBaseMetaTileEntity().getWorld().spawnParticle("largesmoke", aX - 0.5 + Math.random(), aY - 0.5 + Math.random(), aZ - 0.5 + Math.random(), ForgeDirection.getOrientation(i).offsetX / 5.0, ForgeDirection.getOrientation(i).offsetY / 5.0, ForgeDirection.getOrientation(i).offsetZ / 5.0); - } - } - - @Override - public final int getCapacity() { - return mCapacity * 20; - } - - @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } - - @Override - public final FluidStack getFluid() { - return mFluid; - } - - @Override - public final int getFluidAmount() { - return mFluid != null ? mFluid.amount : 0; - } - - @Override - public final int fill_default(ForgeDirection aSide, FluidStack aFluid, boolean doFill) { - if (aFluid == null || aFluid.getFluid().getID() <= 0) return 0; - - if (mFluid == null || mFluid.getFluid().getID() <= 0) { - if(aFluid.amount <= getCapacity()) { - if (doFill) { - mFluid = aFluid.copy(); - mLastReceivedFrom |= (1<= 0) { - byte tColor = ((IGregTechTileEntity)tTileEntity).getColorization(); - if (tColor >= 0 && tColor != aBaseMetaTileEntity.getColorization()) { - continue; - } - } - if (((IGregTechTileEntity)tTileEntity).getMetaTileEntity().connectsToItemPipe(GT_Utility.getOppositeSide(i))) { - mConnections |= (1< tPipeList = new ArrayList(); - - for (boolean temp = true; temp && !isInventoryEmpty() && pipeCapacityCheck();) { - temp = false; - tPipeList.clear(); - for (IMetaTileEntityItemPipe tTileEntity : GT_Utility.sortMapByValuesAcending(IMetaTileEntityItemPipe.Util.scanPipes(this, new HashMap(), 0, false, false)).keySet()) { - if (temp) break; - tPipeList.add(tTileEntity); - while (!temp && !isInventoryEmpty() && tTileEntity.sendItemStack(aBaseMetaTileEntity)) for (IMetaTileEntityItemPipe tPipe : tPipeList) if (!tPipe.incrementTransferCounter(1)) temp = true; - } - } - } - - if (isInventoryEmpty()) mLastReceivedFrom = 6; - oLastReceivedFrom = mLastReceivedFrom; - } - } - - @Override - public boolean incrementTransferCounter(int aIncrement) { - mTransferredItems += aIncrement; - return pipeCapacityCheck(); - } - - @Override - public boolean sendItemStack(Object aSender) { - if (pipeCapacityCheck()) { - byte tOffset = (byte)getBaseMetaTileEntity().getRandomNumber(6), tSide = 0; - for (byte i = 0; i < 6; i++) { - tSide = (byte)((i+tOffset)%6); - if (isInventoryEmpty() || (tSide != mLastReceivedFrom || aSender != getBaseMetaTileEntity())) { - if (insertItemStackIntoTileEntity(aSender, tSide)) return true; - } - } - } - return false; - } - - @Override - public boolean insertItemStackIntoTileEntity(Object aSender, byte aSide) { - if (getBaseMetaTileEntity().getCoverBehaviorAtSide(aSide).letsItemsOut(aSide, getBaseMetaTileEntity().getCoverIDAtSide(aSide), getBaseMetaTileEntity().getCoverDataAtSide(aSide), -1, getBaseMetaTileEntity())) { - TileEntity tInventory = getBaseMetaTileEntity().getTileEntityAtSide(aSide); - if (tInventory != null && !(tInventory instanceof BaseMetaPipeEntity)) { - if ((!(tInventory instanceof TileEntityHopper) && !(tInventory instanceof TileEntityDispenser)) || getBaseMetaTileEntity().getMetaIDAtSide(aSide) != GT_Utility.getOppositeSide(aSide)) { - return GT_Utility.moveOneItemStack(aSender, tInventory, (byte)6, GT_Utility.getOppositeSide(aSide), null, false, (byte)64, (byte)1, (byte)64, (byte)1) > 0; - } - } - } - return false; - } - - @Override - public boolean pipeCapacityCheck() { - return mTransferredItems <= 0 || getPipeContent() < getMaxPipeCapacity(); - } - - private int getPipeContent() { - return mTransferredItems; - } - - private int getMaxPipeCapacity() { - return Math.max(1, getPipeCapacity()); - } - - /** - * Amount of ItemStacks this Pipe can conduct per Second. - */ - public int getPipeCapacity() { - return mInventory.length; - } - - @Override - public int getStepSize() { - return mStepSize; - } - - @Override - public boolean canExtractItem(int aIndex, ItemStack aStack, int aSide) { - return true; - } - - @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return true; - } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - if (isInventoryEmpty()) mLastReceivedFrom = aSide; - return mLastReceivedFrom == aSide && mInventory[aIndex] == null; - } - - @Override - public String[] getDescription() { - return new String[] {"Item Capacity: "+getMaxPipeCapacity()+" Stacks/sec", "Routing Value: " + mStepSize}; - } - - private boolean isInventoryEmpty() { - for (ItemStack tStack : mInventory) if (tStack != null) return false; - return true; - } + if (aBaseMetaTileEntity.isServerSide() && aTick % 10 == 0) { + mConnections = 0; + if (aTick % 20 == 0) mTransferredItems = 0; - @Override - public float getThickNess() { - return mThickNess; - } + for (byte i = 0; i < 6; i++) { + TileEntity tTileEntity = aBaseMetaTileEntity.getTileEntityAtSide(i); + if (tTileEntity != null) { + boolean temp = GT_Utility.isConnectableNonInventoryPipe(tTileEntity, GT_Utility.getOppositeSide(i)); + if (tTileEntity instanceof IGregTechTileEntity) { + temp = true; + if (((IGregTechTileEntity) tTileEntity).getMetaTileEntity() == null) continue; + if (aBaseMetaTileEntity.getColorization() >= 0) { + byte tColor = ((IGregTechTileEntity) tTileEntity).getColorization(); + if (tColor >= 0 && tColor != aBaseMetaTileEntity.getColorization()) { + continue; + } + } + if (((IGregTechTileEntity) tTileEntity).getMetaTileEntity().connectsToItemPipe(GT_Utility.getOppositeSide(i))) { + mConnections |= (1 << i); + continue; + } + } + if (tTileEntity instanceof IInventory) { + temp = true; + if (((IInventory) tTileEntity).getSizeInventory() <= 0) { + continue; + } + } + if (tTileEntity instanceof ISidedInventory) { + temp = true; + int[] tSlots = ((ISidedInventory) tTileEntity).getAccessibleSlotsFromSide(GT_Utility.getOppositeSide(i)); + if (tSlots == null || tSlots.length <= 0) { + continue; + } + } + if (temp) { + if (tTileEntity instanceof ICoverable && ((ICoverable) tTileEntity).getCoverBehaviorAtSide(GT_Utility.getOppositeSide(i)).alwaysLookConnected(GT_Utility.getOppositeSide(i), ((ICoverable) tTileEntity).getCoverIDAtSide(GT_Utility.getOppositeSide(i)), ((ICoverable) tTileEntity).getCoverDataAtSide(GT_Utility.getOppositeSide(i)), ((ICoverable) tTileEntity))) { + mConnections |= (1 << i); + continue; + } + if (aBaseMetaTileEntity.getCoverBehaviorAtSide(i).alwaysLookConnected(i, aBaseMetaTileEntity.getCoverIDAtSide(i), aBaseMetaTileEntity.getCoverDataAtSide(i), aBaseMetaTileEntity)) { + mConnections |= (1 << i); + continue; + } + if (aBaseMetaTileEntity.getCoverBehaviorAtSide(i).letsItemsIn(i, aBaseMetaTileEntity.getCoverIDAtSide(i), aBaseMetaTileEntity.getCoverDataAtSide(i), -1, aBaseMetaTileEntity)) { + mConnections |= (1 << i); + continue; + } + if (aBaseMetaTileEntity.getCoverBehaviorAtSide(i).letsItemsOut(i, aBaseMetaTileEntity.getCoverIDAtSide(i), aBaseMetaTileEntity.getCoverDataAtSide(i), -1, aBaseMetaTileEntity)) { + mConnections |= (1 << i); + continue; + } + } + } + } + + if (oLastReceivedFrom == mLastReceivedFrom) { + doTickProfilingInThisTick = false; + + ArrayList tPipeList = new ArrayList(); + + for (boolean temp = true; temp && !isInventoryEmpty() && pipeCapacityCheck(); ) { + temp = false; + tPipeList.clear(); + for (IMetaTileEntityItemPipe tTileEntity : GT_Utility.sortMapByValuesAcending(IMetaTileEntityItemPipe.Util.scanPipes(this, new HashMap(), 0, false, false)).keySet()) { + if (temp) break; + tPipeList.add(tTileEntity); + while (!temp && !isInventoryEmpty() && tTileEntity.sendItemStack(aBaseMetaTileEntity)) + for (IMetaTileEntityItemPipe tPipe : tPipeList) + if (!tPipe.incrementTransferCounter(1)) temp = true; + } + } + } + + if (isInventoryEmpty()) mLastReceivedFrom = 6; + oLastReceivedFrom = mLastReceivedFrom; + } + } + + @Override + public boolean incrementTransferCounter(int aIncrement) { + mTransferredItems += aIncrement; + return pipeCapacityCheck(); + } + + @Override + public boolean sendItemStack(Object aSender) { + if (pipeCapacityCheck()) { + byte tOffset = (byte) getBaseMetaTileEntity().getRandomNumber(6), tSide = 0; + for (byte i = 0; i < 6; i++) { + tSide = (byte) ((i + tOffset) % 6); + if (isInventoryEmpty() || (tSide != mLastReceivedFrom || aSender != getBaseMetaTileEntity())) { + if (insertItemStackIntoTileEntity(aSender, tSide)) return true; + } + } + } + return false; + } + + @Override + public boolean insertItemStackIntoTileEntity(Object aSender, byte aSide) { + if (getBaseMetaTileEntity().getCoverBehaviorAtSide(aSide).letsItemsOut(aSide, getBaseMetaTileEntity().getCoverIDAtSide(aSide), getBaseMetaTileEntity().getCoverDataAtSide(aSide), -1, getBaseMetaTileEntity())) { + TileEntity tInventory = getBaseMetaTileEntity().getTileEntityAtSide(aSide); + if (tInventory != null && !(tInventory instanceof BaseMetaPipeEntity)) { + if ((!(tInventory instanceof TileEntityHopper) && !(tInventory instanceof TileEntityDispenser)) || getBaseMetaTileEntity().getMetaIDAtSide(aSide) != GT_Utility.getOppositeSide(aSide)) { + return GT_Utility.moveOneItemStack(aSender, tInventory, (byte) 6, GT_Utility.getOppositeSide(aSide), null, false, (byte) 64, (byte) 1, (byte) 64, (byte) 1) > 0; + } + } + } + return false; + } + + @Override + public boolean pipeCapacityCheck() { + return mTransferredItems <= 0 || getPipeContent() < getMaxPipeCapacity(); + } + + private int getPipeContent() { + return mTransferredItems; + } + + private int getMaxPipeCapacity() { + return Math.max(1, getPipeCapacity()); + } + + /** + * Amount of ItemStacks this Pipe can conduct per Second. + */ + public int getPipeCapacity() { + return mInventory.length; + } + + @Override + public int getStepSize() { + return mStepSize; + } + + @Override + public boolean canExtractItem(int aIndex, ItemStack aStack, int aSide) { + return true; + } + + @Override + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return true; + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + if (isInventoryEmpty()) mLastReceivedFrom = aSide; + return mLastReceivedFrom == aSide && mInventory[aIndex] == null; + } + + @Override + public String[] getDescription() { + return new String[]{"Item Capacity: " + getMaxPipeCapacity() + " Stacks/sec", "Routing Value: " + mStepSize}; + } + + private boolean isInventoryEmpty() { + for (ItemStack tStack : mInventory) if (tStack != null) return false; + return true; + } + + @Override + public float getThickNess() { + return mThickNess; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java index 72df4d7c..40c45c5c 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java @@ -1,213 +1,308 @@ package gregtech.api.metatileentity.implementations; -import static gregtech.api.enums.GT_Values.V; -import ic2.api.item.IElectricItem; -import gregtech.api.enums.ItemList; import gregtech.api.enums.Textures; import gregtech.api.gui.*; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.items.GT_MetaBase_Item; -import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; +import ic2.api.item.IElectricItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import static gregtech.api.enums.GT_Values.V; + /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* This is the main construct for my Basic Machines such as the Automatic Extractor * Extend this class to make a simple Machine */ public class GT_MetaTileEntity_BasicBatteryBuffer extends GT_MetaTileEntity_TieredMachineBlock { - public boolean mCharge = false, mDecharge = false; - public int mBatteryCount = 0, mChargeableCount = 0; - - public GT_MetaTileEntity_BasicBatteryBuffer(int aID, String aName, String aNameRegional, int aTier, String aDescription, int aSlotCount) { - super(aID, aName, aNameRegional, aTier, aSlotCount, aDescription); - } - - public GT_MetaTileEntity_BasicBatteryBuffer(String aName, int aTier, String aDescription, ITexture[][][] aTextures, int aSlotCount) { - super(aName, aTier, aSlotCount, aDescription, aTextures); - } - - @Override - public String[] getDescription() { - return new String[] {mDescription, mInventory.length + " Slots"}; - } - - @Override - public ITexture[][][] getTextureSet(ITexture[] aTextures) { - ITexture[][][] rTextures = new ITexture[2][17][]; - for (byte i = -1; i < 16; i++) { - rTextures[ 0][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1]}; - rTextures[ 1][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1], mInventory.length > 4 ? Textures.BlockIcons.OVERLAYS_ENERGY_OUT_MULTI[mTier] : Textures.BlockIcons.OVERLAYS_ENERGY_OUT[mTier]}; - } - return rTextures; - } - - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { - return mTextures[aSide == aFacing ? 1 : 0][aColorIndex+1]; - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_BasicBatteryBuffer(mName, mTier, mDescription, mTextures, mInventory.length); - } - - @Override public boolean isSimpleMachine() {return false;} - @Override public boolean isElectric() {return true;} - @Override public boolean isValidSlot(int aIndex) {return true;} - @Override public boolean isFacingValid(byte aFacing) {return true;} - @Override public boolean isEnetInput() {return true;} - @Override public boolean isEnetOutput() {return true;} - @Override public boolean isInputFacing(byte aSide) {return aSide!=getBaseMetaTileEntity().getFrontFacing();} - @Override public boolean isOutputFacing(byte aSide) {return aSide==getBaseMetaTileEntity().getFrontFacing();} - @Override public boolean isTeleporterCompatible() {return false;} - @Override public long getMinimumStoredEU() {return V[mTier]*16*mInventory.length;} - @Override public long maxEUStore() {return V[mTier]*64*mInventory.length;} - @Override public long maxEUInput() {return V[mTier];} - @Override public long maxEUOutput() {return V[mTier];} - @Override public long maxAmperesIn() {return mChargeableCount * 2;} - @Override public long maxAmperesOut() {return mBatteryCount;} - @Override public int rechargerSlotStartIndex() {return 0;} - @Override public int dechargerSlotStartIndex() {return 0;} - @Override public int rechargerSlotCount() {return mCharge?mInventory.length:0;} - @Override public int dechargerSlotCount() {return mDecharge?mInventory.length:0;} - @Override public int getProgresstime() {return (int)getBaseMetaTileEntity().getUniversalEnergyStored();} - @Override public int maxProgresstime() {return (int)getBaseMetaTileEntity().getUniversalEnergyCapacity();} - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - - @Override - public void saveNBTData(NBTTagCompound aNBT) { - // - } - - @Override - public void loadNBTData(NBTTagCompound aNBT) { - // - } - - @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) return true; - aBaseMetaTileEntity.openGUI(aPlayer); - return true; - } - - @Override + public boolean mCharge = false, mDecharge = false; + public int mBatteryCount = 0, mChargeableCount = 0; + private long count = 0; + private long mStored = 0; + private long mMax = 0; + + public GT_MetaTileEntity_BasicBatteryBuffer(int aID, String aName, String aNameRegional, int aTier, String aDescription, int aSlotCount) { + super(aID, aName, aNameRegional, aTier, aSlotCount, aDescription); + } + + public GT_MetaTileEntity_BasicBatteryBuffer(String aName, int aTier, String aDescription, ITexture[][][] aTextures, int aSlotCount) { + super(aName, aTier, aSlotCount, aDescription, aTextures); + } + + @Override + public String[] getDescription() { + return new String[]{mDescription, mInventory.length + " Slots"}; + } + + @Override + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + ITexture[][][] rTextures = new ITexture[2][17][]; + for (byte i = -1; i < 16; i++) { + rTextures[0][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1]}; + rTextures[1][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], mInventory.length > 4 ? Textures.BlockIcons.OVERLAYS_ENERGY_OUT_MULTI[mTier] : Textures.BlockIcons.OVERLAYS_ENERGY_OUT[mTier]}; + } + return rTextures; + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + return mTextures[aSide == aFacing ? 1 : 0][aColorIndex + 1]; + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_BasicBatteryBuffer(mName, mTier, mDescription, mTextures, mInventory.length); + } + + @Override + public boolean isSimpleMachine() { + return false; + } + + @Override + public boolean isElectric() { + return true; + } + + @Override + public boolean isValidSlot(int aIndex) { + return true; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return true; + } + + @Override + public boolean isEnetInput() { + return true; + } + + @Override + public boolean isEnetOutput() { + return true; + } + + @Override + public boolean isInputFacing(byte aSide) { + return aSide != getBaseMetaTileEntity().getFrontFacing(); + } + + @Override + public boolean isOutputFacing(byte aSide) { + return aSide == getBaseMetaTileEntity().getFrontFacing(); + } + + @Override + public boolean isTeleporterCompatible() { + return false; + } + + @Override + public long getMinimumStoredEU() { + return V[mTier] * 16 * mInventory.length; + } + + @Override + public long maxEUStore() { + return V[mTier] * 64 * mInventory.length; + } + + @Override + public long maxEUInput() { + return V[mTier]; + } + + @Override + public long maxEUOutput() { + return V[mTier]; + } + + @Override + public long maxAmperesIn() { + return mChargeableCount * 2; + } + + @Override + public long maxAmperesOut() { + return mBatteryCount; + } + + @Override + public int rechargerSlotStartIndex() { + return 0; + } + + @Override + public int dechargerSlotStartIndex() { + return 0; + } + + @Override + public int rechargerSlotCount() { + return mCharge ? mInventory.length : 0; + } + + @Override + public int dechargerSlotCount() { + return mDecharge ? mInventory.length : 0; + } + + @Override + public int getProgresstime() { + return (int) getBaseMetaTileEntity().getUniversalEnergyStored(); + } + + @Override + public int maxProgresstime() { + return (int) getBaseMetaTileEntity().getUniversalEnergyCapacity(); + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + // + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + // + } + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + if (aBaseMetaTileEntity.isClientSide()) return true; + aBaseMetaTileEntity.openGUI(aPlayer); + return true; + } + + @Override public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - switch (mInventory.length) { - case 1: return new GT_Container_1by1(aPlayerInventory, aBaseMetaTileEntity); - case 4: return new GT_Container_2by2(aPlayerInventory, aBaseMetaTileEntity); - case 9: return new GT_Container_3by3(aPlayerInventory, aBaseMetaTileEntity); - case 16: return new GT_Container_4by4(aPlayerInventory, aBaseMetaTileEntity); - } - return new GT_Container_1by1(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override + switch (mInventory.length) { + case 1: + return new GT_Container_1by1(aPlayerInventory, aBaseMetaTileEntity); + case 4: + return new GT_Container_2by2(aPlayerInventory, aBaseMetaTileEntity); + case 9: + return new GT_Container_3by3(aPlayerInventory, aBaseMetaTileEntity); + case 16: + return new GT_Container_4by4(aPlayerInventory, aBaseMetaTileEntity); + } + return new GT_Container_1by1(aPlayerInventory, aBaseMetaTileEntity); + } + + @Override public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - switch (mInventory.length) { - case 1: return new GT_GUIContainer_1by1(aPlayerInventory, aBaseMetaTileEntity, getLocalName()); - case 4: return new GT_GUIContainer_2by2(aPlayerInventory, aBaseMetaTileEntity, getLocalName()); - case 9: return new GT_GUIContainer_3by3(aPlayerInventory, aBaseMetaTileEntity, getLocalName()); - case 16: return new GT_GUIContainer_4by4(aPlayerInventory, aBaseMetaTileEntity, getLocalName()); - } - return new GT_GUIContainer_1by1(aPlayerInventory, aBaseMetaTileEntity, getLocalName()); - } - - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - if (aBaseMetaTileEntity.isServerSide()) { - mCharge = aBaseMetaTileEntity.getStoredEU() / 2 > aBaseMetaTileEntity.getEUCapacity() / 3; - mDecharge = aBaseMetaTileEntity.getStoredEU() < aBaseMetaTileEntity.getEUCapacity() / 3; - mBatteryCount = 0; - mChargeableCount = 0; - for (ItemStack tStack : mInventory) if (GT_ModHandler.isElectricItem(tStack, mTier)) { - if (GT_ModHandler.isChargerItem(tStack)) mBatteryCount++; - mChargeableCount++; - } - } - } - - @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - if(GT_ModHandler.isElectricItem(aStack)&&aStack.getUnlocalizedName().startsWith("gt.metaitem.01.")){ - String name = aStack.getUnlocalizedName(); - if(name.equals("gt.metaitem.01.32510")|| - name.equals("gt.metaitem.01.32511")|| - name.equals("gt.metaitem.01.32520")|| - name.equals("gt.metaitem.01.32521")|| - name.equals("gt.metaitem.01.32530")|| - name.equals("gt.metaitem.01.32531")){ - return true;} - } - return false; - } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - if(!GT_Utility.isStackValid(aStack)){ - return false; - } - if(GT_ModHandler.isElectricItem(aStack, this.mTier)){ - return true; - } - return false; - } - - public long[] getStoredEnergy(){ - long tScale = getBaseMetaTileEntity().getEUCapacity(); - long tStored = getBaseMetaTileEntity().getStoredEU(); - if(mInventory!=null){ - for(ItemStack aStack : mInventory){ - if (GT_ModHandler.isElectricItem(aStack)) { - - if(aStack.getItem() instanceof GT_MetaBase_Item){ - Long[] stats = ((GT_MetaBase_Item)aStack.getItem()).getElectricStats(aStack); - if(stats!=null){ - tScale = tScale + stats[0]; - tStored = tStored + ((GT_MetaBase_Item)aStack.getItem()).getRealCharge(aStack); - } - }else if(aStack.getItem() instanceof IElectricItem){ - tStored = tStored + (long)ic2.api.item.ElectricItem.manager.getCharge(aStack); - tScale = tScale + (long)((IElectricItem)aStack.getItem()).getMaxCharge(aStack); - } - } - } - - } - return new long[] {tStored,tScale}; - } - - private long count=0; - private long mStored=0; - private long mMax=0; - - @Override - public String[] getInfoData() { - count++; - if(mMax==0||count%20==0){ - long[] tmp = getStoredEnergy(); - mStored=tmp[0]; - mMax=tmp[1]; - } - - return new String[] { - getLocalName(), - "Stored Items:", - GT_Utility.formatNumbers(mStored)+" EU /", - GT_Utility.formatNumbers(mMax)+" EU"}; - } - - @Override - public boolean isGivingInformation() { - return true; - } + switch (mInventory.length) { + case 1: + return new GT_GUIContainer_1by1(aPlayerInventory, aBaseMetaTileEntity, getLocalName()); + case 4: + return new GT_GUIContainer_2by2(aPlayerInventory, aBaseMetaTileEntity, getLocalName()); + case 9: + return new GT_GUIContainer_3by3(aPlayerInventory, aBaseMetaTileEntity, getLocalName()); + case 16: + return new GT_GUIContainer_4by4(aPlayerInventory, aBaseMetaTileEntity, getLocalName()); + } + return new GT_GUIContainer_1by1(aPlayerInventory, aBaseMetaTileEntity, getLocalName()); + } + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + if (aBaseMetaTileEntity.isServerSide()) { + mCharge = aBaseMetaTileEntity.getStoredEU() / 2 > aBaseMetaTileEntity.getEUCapacity() / 3; + mDecharge = aBaseMetaTileEntity.getStoredEU() < aBaseMetaTileEntity.getEUCapacity() / 3; + mBatteryCount = 0; + mChargeableCount = 0; + for (ItemStack tStack : mInventory) + if (GT_ModHandler.isElectricItem(tStack, mTier)) { + if (GT_ModHandler.isChargerItem(tStack)) mBatteryCount++; + mChargeableCount++; + } + } + } + + @Override + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + if (GT_ModHandler.isElectricItem(aStack) && aStack.getUnlocalizedName().startsWith("gt.metaitem.01.")) { + String name = aStack.getUnlocalizedName(); + if (name.equals("gt.metaitem.01.32510") || + name.equals("gt.metaitem.01.32511") || + name.equals("gt.metaitem.01.32520") || + name.equals("gt.metaitem.01.32521") || + name.equals("gt.metaitem.01.32530") || + name.equals("gt.metaitem.01.32531")) { + return true; + } + } + return false; + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + if (!GT_Utility.isStackValid(aStack)) { + return false; + } + if (GT_ModHandler.isElectricItem(aStack, this.mTier)) { + return true; + } + return false; + } + + public long[] getStoredEnergy() { + long tScale = getBaseMetaTileEntity().getEUCapacity(); + long tStored = getBaseMetaTileEntity().getStoredEU(); + if (mInventory != null) { + for (ItemStack aStack : mInventory) { + if (GT_ModHandler.isElectricItem(aStack)) { + + if (aStack.getItem() instanceof GT_MetaBase_Item) { + Long[] stats = ((GT_MetaBase_Item) aStack.getItem()).getElectricStats(aStack); + if (stats != null) { + tScale = tScale + stats[0]; + tStored = tStored + ((GT_MetaBase_Item) aStack.getItem()).getRealCharge(aStack); + } + } else if (aStack.getItem() instanceof IElectricItem) { + tStored = tStored + (long) ic2.api.item.ElectricItem.manager.getCharge(aStack); + tScale = tScale + (long) ((IElectricItem) aStack.getItem()).getMaxCharge(aStack); + } + } + } + + } + return new long[]{tStored, tScale}; + } + + @Override + public String[] getInfoData() { + count++; + if (mMax == 0 || count % 20 == 0) { + long[] tmp = getStoredEnergy(); + mStored = tmp[0]; + mMax = tmp[1]; + } + + return new String[]{ + getLocalName(), + "Stored Items:", + GT_Utility.formatNumbers(mStored) + " EU /", + GT_Utility.formatNumbers(mMax) + " EU"}; + } + + @Override + public boolean isGivingInformation() { + return true; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java index 97d18917..d6353e01 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java @@ -1,167 +1,259 @@ package gregtech.api.metatileentity.implementations; -import static gregtech.api.enums.GT_Values.V; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; - -import java.util.Collection; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; +import java.util.Collection; + +import static gregtech.api.enums.GT_Values.V; + public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity_BasicTank { - public GT_MetaTileEntity_BasicGenerator(int aID, String aName, String aNameRegional, int aTier, String aDescription, ITexture... aTextures) { - super(aID, aName, aNameRegional, aTier, 3, aDescription, aTextures); - } - - public GT_MetaTileEntity_BasicGenerator(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { - super(aName, aTier, 3, aDescription, aTextures); - } - - @Override - public ITexture[][][] getTextureSet(ITexture[] aTextures) { - ITexture[][][] rTextures = new ITexture[10][17][]; - for (byte i = -1; i < 16; i++) { - rTextures[ 0][i+1] = getFront(i); - rTextures[ 1][i+1] = getBack(i); - rTextures[ 2][i+1] = getBottom(i); - rTextures[ 3][i+1] = getTop(i); - rTextures[ 4][i+1] = getSides(i); - rTextures[ 5][i+1] = getFrontActive(i); - rTextures[ 6][i+1] = getBackActive(i); - rTextures[ 7][i+1] = getBottomActive(i); - rTextures[ 8][i+1] = getTopActive(i); - rTextures[ 9][i+1] = getSidesActive(i); - } - return rTextures; - } - - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { - return mTextures[(aActive?5:0)+(aSide==aFacing?0:aSide==GT_Utility.getOppositeSide(aFacing)?1:aSide==0?2:aSide==1?3:4)][aColorIndex+1]; - } - - @Override - public String[] getDescription() { - return new String[] {mDescription, "Fuel Efficiency: " + getEfficiency() + "%"}; - } - - @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) return true; - aBaseMetaTileEntity.openGUI(aPlayer); - return true; - } - - public ITexture[] getFront(byte aColor) {return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor+1]};} - public ITexture[] getBack(byte aColor) {return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor+1]};} - public ITexture[] getBottom(byte aColor) {return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor+1]};} - public ITexture[] getTop(byte aColor) {return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor+1]};} - public ITexture[] getSides(byte aColor) {return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor+1]};} - - public ITexture[] getFrontActive(byte aColor) {return getFront(aColor);} - public ITexture[] getBackActive(byte aColor) {return getBack(aColor);} - public ITexture[] getBottomActive(byte aColor) {return getBottom(aColor);} - public ITexture[] getTopActive(byte aColor) {return getTop(aColor);} - public ITexture[] getSidesActive(byte aColor) {return getSides(aColor);} - - @Override public boolean isFacingValid(byte aSide) {return aSide > 1;} - @Override public boolean isSimpleMachine() {return false;} - @Override public boolean isValidSlot(int aIndex) {return aIndex < 2;} - @Override public boolean isEnetOutput() {return true;} - @Override public boolean isOutputFacing(byte aSide) {return true;} - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - @Override public long maxEUOutput() {return getBaseMetaTileEntity().isAllowedToWork()?V[mTier]:0;} - @Override public long maxEUStore() {return Math.max(getEUVar(), V[mTier] * 20 + getMinimumStoredEU());} - - @Override public boolean doesFillContainers() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean doesEmptyContainers() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean canTankBeFilled() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean canTankBeEmptied() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean displaysItemStack() {return true;} - @Override public boolean displaysStackSize() {return false;} - @Override public boolean isFluidInputAllowed(FluidStack aFluid) {return getFuelValue(aFluid) > 0;} - + public GT_MetaTileEntity_BasicGenerator(int aID, String aName, String aNameRegional, int aTier, String aDescription, ITexture... aTextures) { + super(aID, aName, aNameRegional, aTier, 3, aDescription, aTextures); + } + + public GT_MetaTileEntity_BasicGenerator(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 3, aDescription, aTextures); + } + + @Override + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + ITexture[][][] rTextures = new ITexture[10][17][]; + for (byte i = -1; i < 16; i++) { + rTextures[0][i + 1] = getFront(i); + rTextures[1][i + 1] = getBack(i); + rTextures[2][i + 1] = getBottom(i); + rTextures[3][i + 1] = getTop(i); + rTextures[4][i + 1] = getSides(i); + rTextures[5][i + 1] = getFrontActive(i); + rTextures[6][i + 1] = getBackActive(i); + rTextures[7][i + 1] = getBottomActive(i); + rTextures[8][i + 1] = getTopActive(i); + rTextures[9][i + 1] = getSidesActive(i); + } + return rTextures; + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + return mTextures[(aActive ? 5 : 0) + (aSide == aFacing ? 0 : aSide == GT_Utility.getOppositeSide(aFacing) ? 1 : aSide == 0 ? 2 : aSide == 1 ? 3 : 4)][aColorIndex + 1]; + } + + @Override + public String[] getDescription() { + return new String[]{mDescription, "Fuel Efficiency: " + getEfficiency() + "%"}; + } + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + if (aBaseMetaTileEntity.isClientSide()) return true; + aBaseMetaTileEntity.openGUI(aPlayer); + return true; + } + + public ITexture[] getFront(byte aColor) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]}; + } + + public ITexture[] getBack(byte aColor) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]}; + } + + public ITexture[] getBottom(byte aColor) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]}; + } + + public ITexture[] getTop(byte aColor) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]}; + } + + public ITexture[] getSides(byte aColor) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]}; + } + + public ITexture[] getFrontActive(byte aColor) { + return getFront(aColor); + } + + public ITexture[] getBackActive(byte aColor) { + return getBack(aColor); + } + + public ITexture[] getBottomActive(byte aColor) { + return getBottom(aColor); + } + + public ITexture[] getTopActive(byte aColor) { + return getTop(aColor); + } + + public ITexture[] getSidesActive(byte aColor) { + return getSides(aColor); + } + + @Override + public boolean isFacingValid(byte aSide) { + return aSide > 1; + } + + @Override + public boolean isSimpleMachine() { + return false; + } + + @Override + public boolean isValidSlot(int aIndex) { + return aIndex < 2; + } + + @Override + public boolean isEnetOutput() { + return true; + } + + @Override + public boolean isOutputFacing(byte aSide) { + return true; + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + @Override + public long maxEUOutput() { + return getBaseMetaTileEntity().isAllowedToWork() ? V[mTier] : 0; + } + + @Override + public long maxEUStore() { + return Math.max(getEUVar(), V[mTier] * 20 + getMinimumStoredEU()); + } + + @Override + public boolean doesFillContainers() { + return getBaseMetaTileEntity().isAllowedToWork(); + } + + @Override + public boolean doesEmptyContainers() { + return getBaseMetaTileEntity().isAllowedToWork(); + } + + @Override + public boolean canTankBeFilled() { + return getBaseMetaTileEntity().isAllowedToWork(); + } + + @Override + public boolean canTankBeEmptied() { + return getBaseMetaTileEntity().isAllowedToWork(); + } + + @Override + public boolean displaysItemStack() { + return true; + } + + @Override + public boolean displaysStackSize() { + return false; + } + + @Override + public boolean isFluidInputAllowed(FluidStack aFluid) { + return getFuelValue(aFluid) > 0; + } + @Override public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.isAllowedToWork() && aTick%10==0) { - if (mFluid == null) { - if (aBaseMetaTileEntity.getUniversalEnergyStored() < maxEUOutput() + getMinimumStoredEU()) { - mInventory[getStackDisplaySlot()] = null; - } else { - if (mInventory[getStackDisplaySlot()] == null) mInventory[getStackDisplaySlot()] = new ItemStack(Blocks.fire, 1); - mInventory[getStackDisplaySlot()].setStackDisplayName("Generating: " + (aBaseMetaTileEntity.getUniversalEnergyStored() - getMinimumStoredEU()) + " EU"); - } - } else { - int tFuelValue = getFuelValue(mFluid), tConsumed = consumedFluidPerOperation(mFluid); - if (tFuelValue > 0 && tConsumed > 0 && mFluid.amount > tConsumed) { - long tFluidAmountToUse = Math.min(mFluid.amount / tConsumed, (maxEUOutput() * 20 + getMinimumStoredEU() - aBaseMetaTileEntity.getUniversalEnergyStored()) / tFuelValue); - if (tFluidAmountToUse > 0 && aBaseMetaTileEntity.increaseStoredEnergyUnits(tFluidAmountToUse * tFuelValue, true)) mFluid.amount -= tFluidAmountToUse * tConsumed; - } - } - if (mInventory[getInputSlot()] != null && aBaseMetaTileEntity.getUniversalEnergyStored() < (maxEUOutput() * 20 + getMinimumStoredEU()) && GT_Utility.getFluidForFilledItem(mInventory[getInputSlot()], true) == null) { - int tFuelValue = getFuelValue(mInventory[getInputSlot()]); - if (tFuelValue > 0) { - ItemStack tEmptyContainer = getEmptyContainer(mInventory[getInputSlot()]); - if (aBaseMetaTileEntity.addStackToSlot(getOutputSlot(), tEmptyContainer)) { - aBaseMetaTileEntity.increaseStoredEnergyUnits(tFuelValue, true); - aBaseMetaTileEntity.decrStackSize(getInputSlot(), 1); - } - } - } - } - - if (aBaseMetaTileEntity.isServerSide()) aBaseMetaTileEntity.setActive(aBaseMetaTileEntity.isAllowedToWork() && aBaseMetaTileEntity.getUniversalEnergyStored() >= maxEUOutput() + getMinimumStoredEU()); + if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.isAllowedToWork() && aTick % 10 == 0) { + if (mFluid == null) { + if (aBaseMetaTileEntity.getUniversalEnergyStored() < maxEUOutput() + getMinimumStoredEU()) { + mInventory[getStackDisplaySlot()] = null; + } else { + if (mInventory[getStackDisplaySlot()] == null) + mInventory[getStackDisplaySlot()] = new ItemStack(Blocks.fire, 1); + mInventory[getStackDisplaySlot()].setStackDisplayName("Generating: " + (aBaseMetaTileEntity.getUniversalEnergyStored() - getMinimumStoredEU()) + " EU"); + } + } else { + int tFuelValue = getFuelValue(mFluid), tConsumed = consumedFluidPerOperation(mFluid); + if (tFuelValue > 0 && tConsumed > 0 && mFluid.amount > tConsumed) { + long tFluidAmountToUse = Math.min(mFluid.amount / tConsumed, (maxEUOutput() * 20 + getMinimumStoredEU() - aBaseMetaTileEntity.getUniversalEnergyStored()) / tFuelValue); + if (tFluidAmountToUse > 0 && aBaseMetaTileEntity.increaseStoredEnergyUnits(tFluidAmountToUse * tFuelValue, true)) + mFluid.amount -= tFluidAmountToUse * tConsumed; + } + } + if (mInventory[getInputSlot()] != null && aBaseMetaTileEntity.getUniversalEnergyStored() < (maxEUOutput() * 20 + getMinimumStoredEU()) && GT_Utility.getFluidForFilledItem(mInventory[getInputSlot()], true) == null) { + int tFuelValue = getFuelValue(mInventory[getInputSlot()]); + if (tFuelValue > 0) { + ItemStack tEmptyContainer = getEmptyContainer(mInventory[getInputSlot()]); + if (aBaseMetaTileEntity.addStackToSlot(getOutputSlot(), tEmptyContainer)) { + aBaseMetaTileEntity.increaseStoredEnergyUnits(tFuelValue, true); + aBaseMetaTileEntity.decrStackSize(getInputSlot(), 1); + } + } + } + } + + if (aBaseMetaTileEntity.isServerSide()) + aBaseMetaTileEntity.setActive(aBaseMetaTileEntity.isAllowedToWork() && aBaseMetaTileEntity.getUniversalEnergyStored() >= maxEUOutput() + getMinimumStoredEU()); } - + public abstract GT_Recipe_Map getRecipes(); - + public abstract int getEfficiency(); - + public int consumedFluidPerOperation(FluidStack aLiquid) { - return 1; + return 1; } - + public int getFuelValue(FluidStack aLiquid) { - if (aLiquid == null || getRecipes() == null) return 0; - FluidStack tLiquid; - Collection tRecipeList = getRecipes().mRecipeList; - if (tRecipeList != null) for (GT_Recipe tFuel : tRecipeList) if ((tLiquid = GT_Utility.getFluidForFilledItem(tFuel.getRepresentativeInput(0), true)) != null) if (aLiquid.isFluidEqual(tLiquid)) return (int)(((long)tFuel.mSpecialValue * getEfficiency() * consumedFluidPerOperation(tLiquid)) / 100); - return 0; + if (aLiquid == null || getRecipes() == null) return 0; + FluidStack tLiquid; + Collection tRecipeList = getRecipes().mRecipeList; + if (tRecipeList != null) for (GT_Recipe tFuel : tRecipeList) + if ((tLiquid = GT_Utility.getFluidForFilledItem(tFuel.getRepresentativeInput(0), true)) != null) + if (aLiquid.isFluidEqual(tLiquid)) + return (int) (((long) tFuel.mSpecialValue * getEfficiency() * consumedFluidPerOperation(tLiquid)) / 100); + return 0; } - + public int getFuelValue(ItemStack aStack) { - if (GT_Utility.isStackInvalid(aStack) || getRecipes() == null) return 0; - GT_Recipe tFuel = getRecipes().findRecipe(getBaseMetaTileEntity(), false, Long.MAX_VALUE, null, aStack); - if (tFuel != null) return (int)((tFuel.mSpecialValue * 1000L * getEfficiency()) / 100); - return 0; + if (GT_Utility.isStackInvalid(aStack) || getRecipes() == null) return 0; + GT_Recipe tFuel = getRecipes().findRecipe(getBaseMetaTileEntity(), false, Long.MAX_VALUE, null, aStack); + if (tFuel != null) return (int) ((tFuel.mSpecialValue * 1000L * getEfficiency()) / 100); + return 0; } - + public ItemStack getEmptyContainer(ItemStack aStack) { - if (GT_Utility.isStackInvalid(aStack) || getRecipes() == null) return null; - GT_Recipe tFuel = getRecipes().findRecipe(getBaseMetaTileEntity(), false, Long.MAX_VALUE, null, aStack); - if (tFuel != null) return GT_Utility.copy(tFuel.getOutput(0)); - return GT_Utility.getContainerItem(aStack, true); + if (GT_Utility.isStackInvalid(aStack) || getRecipes() == null) return null; + GT_Recipe tFuel = getRecipes().findRecipe(getBaseMetaTileEntity(), false, Long.MAX_VALUE, null, aStack); + if (tFuel != null) return GT_Utility.copy(tFuel.getOutput(0)); + return GT_Utility.getContainerItem(aStack, true); + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack) && (getFuelValue(aStack) > 0 || getFuelValue(GT_Utility.getFluidForFilledItem(aStack, true)) > 0); + } + + @Override + public int getCapacity() { + return 16000; + } + + @Override + public int getTankPressure() { + return -100; } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack) && (getFuelValue(aStack) > 0 || getFuelValue(GT_Utility.getFluidForFilledItem(aStack, true)) > 0); - } - - @Override - public int getCapacity() { - return 16000; - } - - @Override - public int getTankPressure() { - return -100; - } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull.java index b74310f8..37a1c967 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull.java @@ -1,6 +1,5 @@ package gregtech.api.metatileentity.implementations; -import static gregtech.api.enums.GT_Values.V; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -8,92 +7,152 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import static gregtech.api.enums.GT_Values.V; + public class GT_MetaTileEntity_BasicHull extends GT_MetaTileEntity_BasicTank { - public GT_MetaTileEntity_BasicHull(int aID, String aName, String aNameRegional, int aTier, String aDescription, ITexture... aTextures) { - super(aID, aName, aNameRegional, aTier, 1, aDescription, aTextures); - } - - public GT_MetaTileEntity_BasicHull(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String aDescription, ITexture... aTextures) { - super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription, aTextures); - } - - public GT_MetaTileEntity_BasicHull(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) { - super(aName, aTier, aInvSlotCount, aDescription, aTextures); - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_BasicHull(mName, mTier, mInventory.length, mDescription, mTextures); - } - - @Override public boolean isElectric() {return true;} - @Override public boolean isEnetInput() {return true;} - @Override public boolean isEnetOutput() {return true;} - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - @Override public boolean isInputFacing(byte aSide) {return !isOutputFacing(aSide);} - @Override public boolean isOutputFacing(byte aSide) {return aSide == getBaseMetaTileEntity().getFrontFacing();} - @Override public long getMinimumStoredEU() {return 512;} - @Override public long maxEUStore() {return 512+V[mTier]*50;} - @Override public long maxEUInput() {return V[mTier];} - @Override public long maxEUOutput() {return V[mTier];} - - @Override public boolean isSimpleMachine() {return true;} - @Override public boolean isFacingValid(byte aFacing) {return true;} - @Override public boolean isValidSlot(int aIndex) {return true;} - @Override public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {return true;} - @Override public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {return true;} - - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aConnected, boolean aRedstone) { - return mTextures[Math.min(2, aSide) + (aSide==aFacing?3:0)][aColorIndex+1]; - } - - @Override - public ITexture[][][] getTextureSet(ITexture[] aTextures) { - ITexture[][][] rTextures = new ITexture[6][17][]; - for (byte i = -1; i < 16; i++) { - rTextures[ 0][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1]}; - rTextures[ 1][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1]}; - rTextures[ 2][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1]}; - rTextures[ 3][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1], Textures.BlockIcons.OVERLAYS_ENERGY_OUT[mTier]}; - rTextures[ 4][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1], Textures.BlockIcons.OVERLAYS_ENERGY_OUT[mTier]}; - rTextures[ 5][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1], Textures.BlockIcons.OVERLAYS_ENERGY_OUT[mTier]}; - } - return rTextures; - } - - @Override - public boolean doesFillContainers() { - return false; - } - - @Override - public boolean doesEmptyContainers() { - return false; - } - - @Override - public boolean canTankBeFilled() { - return true; - } - - @Override - public boolean canTankBeEmptied() { - return true; - } - - @Override - public boolean displaysItemStack() { - return false; - } - - @Override - public boolean displaysStackSize() { - return false; - } - - @Override - public int getCapacity() { - return (mTier + 1) * 1000; - } + public GT_MetaTileEntity_BasicHull(int aID, String aName, String aNameRegional, int aTier, String aDescription, ITexture... aTextures) { + super(aID, aName, aNameRegional, aTier, 1, aDescription, aTextures); + } + + public GT_MetaTileEntity_BasicHull(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String aDescription, ITexture... aTextures) { + super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription, aTextures); + } + + public GT_MetaTileEntity_BasicHull(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aInvSlotCount, aDescription, aTextures); + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_BasicHull(mName, mTier, mInventory.length, mDescription, mTextures); + } + + @Override + public boolean isElectric() { + return true; + } + + @Override + public boolean isEnetInput() { + return true; + } + + @Override + public boolean isEnetOutput() { + return true; + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + @Override + public boolean isInputFacing(byte aSide) { + return !isOutputFacing(aSide); + } + + @Override + public boolean isOutputFacing(byte aSide) { + return aSide == getBaseMetaTileEntity().getFrontFacing(); + } + + @Override + public long getMinimumStoredEU() { + return 512; + } + + @Override + public long maxEUStore() { + return 512 + V[mTier] * 50; + } + + @Override + public long maxEUInput() { + return V[mTier]; + } + + @Override + public long maxEUOutput() { + return V[mTier]; + } + + @Override + public boolean isSimpleMachine() { + return true; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return true; + } + + @Override + public boolean isValidSlot(int aIndex) { + return true; + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return true; + } + + @Override + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return true; + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aConnected, boolean aRedstone) { + return mTextures[Math.min(2, aSide) + (aSide == aFacing ? 3 : 0)][aColorIndex + 1]; + } + + @Override + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + ITexture[][][] rTextures = new ITexture[6][17][]; + for (byte i = -1; i < 16; i++) { + rTextures[0][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1]}; + rTextures[1][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1]}; + rTextures[2][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1]}; + rTextures[3][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], Textures.BlockIcons.OVERLAYS_ENERGY_OUT[mTier]}; + rTextures[4][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], Textures.BlockIcons.OVERLAYS_ENERGY_OUT[mTier]}; + rTextures[5][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], Textures.BlockIcons.OVERLAYS_ENERGY_OUT[mTier]}; + } + return rTextures; + } + + @Override + public boolean doesFillContainers() { + return false; + } + + @Override + public boolean doesEmptyContainers() { + return false; + } + + @Override + public boolean canTankBeFilled() { + return true; + } + + @Override + public boolean canTankBeEmptied() { + return true; + } + + @Override + public boolean displaysItemStack() { + return false; + } + + @Override + public boolean displaysStackSize() { + return false; + } + + @Override + public int getCapacity() { + return (mTier + 1) * 1000; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull_NonElectric.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull_NonElectric.java index 948e6312..6294add7 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull_NonElectric.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull_NonElectric.java @@ -4,29 +4,64 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; public abstract class GT_MetaTileEntity_BasicHull_NonElectric extends GT_MetaTileEntity_BasicHull { - public GT_MetaTileEntity_BasicHull_NonElectric(int aID, String aName, String aNameRegional, int aTier, String aDescription) { - super(aID, aName, aNameRegional, aTier, aDescription); - } - - public GT_MetaTileEntity_BasicHull_NonElectric(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { - super(aName, aTier, 1, aDescription, aTextures); - } - - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aConnections, byte aColorIndex, boolean aConnected, boolean aRedstone) { - return mTextures[Math.min(2, aSide)][aColorIndex+1]; - } - - @Override public boolean isElectric() {return false;} - @Override public boolean isEnetInput() {return false;} - @Override public boolean isEnetOutput() {return false;} - @Override public boolean isInputFacing(byte aSide) {return false;} - @Override public boolean isOutputFacing(byte aSide) {return false;} - @Override public long getMinimumStoredEU() {return 0;} - @Override public long maxEUStore() {return 0;} - @Override public long maxEUInput() {return 0;} - @Override public long maxEUOutput() {return 0;} - - @Override - public abstract ITexture[][][] getTextureSet(ITexture[] aTextures); + public GT_MetaTileEntity_BasicHull_NonElectric(int aID, String aName, String aNameRegional, int aTier, String aDescription) { + super(aID, aName, aNameRegional, aTier, aDescription); + } + + public GT_MetaTileEntity_BasicHull_NonElectric(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 1, aDescription, aTextures); + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aConnections, byte aColorIndex, boolean aConnected, boolean aRedstone) { + return mTextures[Math.min(2, aSide)][aColorIndex + 1]; + } + + @Override + public boolean isElectric() { + return false; + } + + @Override + public boolean isEnetInput() { + return false; + } + + @Override + public boolean isEnetOutput() { + return false; + } + + @Override + public boolean isInputFacing(byte aSide) { + return false; + } + + @Override + public boolean isOutputFacing(byte aSide) { + return false; + } + + @Override + public long getMinimumStoredEU() { + return 0; + } + + @Override + public long maxEUStore() { + return 0; + } + + @Override + public long maxEUInput() { + return 0; + } + + @Override + public long maxEUOutput() { + return 0; + } + + @Override + public abstract ITexture[][][] getTextureSet(ITexture[] aTextures); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java index b0cba502..4ab9ad53 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java @@ -1,6 +1,5 @@ package gregtech.api.metatileentity.implementations; -import static gregtech.api.enums.GT_Values.V; import gregtech.api.GregTech_API; import gregtech.api.enums.ItemList; import gregtech.api.enums.Textures; @@ -14,9 +13,6 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; - -import java.util.Arrays; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; @@ -26,577 +22,773 @@ import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidHandler; +import java.util.Arrays; + +import static gregtech.api.enums.GT_Values.V; + /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* This is the main construct for my Basic Machines such as the Automatic Extractor * Extend this class to make a simple Machine */ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_BasicTank { - public boolean mAllowInputFromOutputSide = false, mFluidTransfer = false, mItemTransfer = false, mHasBeenUpdated = false, mStuttering = false, mCharge = false, mDecharge = false; - public int mMainFacing = -1, mProgresstime = 0, mMaxProgresstime = 0, mEUt = 0, mOutputBlocked = 0; - public FluidStack mOutputFluid; - private FluidStack mFluidOut; - public String mGUIName = "", mNEIName = ""; - - public final ItemStack[] mOutputItems; - public final int mInputSlotCount, mAmperage; - - private static final int OTHER_SLOT_COUNT = 4; - - /** - * @param aOverlays - * 0 = SideFacingActive - * 1 = SideFacingInactive - * 2 = FrontFacingActive - * 3 = FrontFacingInactive - * 4 = TopFacingActive - * 5 = TopFacingInactive - * 6 = BottomFacingActive - * 7 = BottomFacingInactive - * ----- Not all Array Elements have to be initialised, you can also just use 8 Parameters for the Default Pipe Texture Overlays ----- - * 8 = BottomFacingPipeActive - * 9 = BottomFacingPipeInactive - * 10 = TopFacingPipeActive - * 11 = TopFacingPipeInactive - * 12 = SideFacingPipeActive - * 13 = SideFacingPipeInactive - */ - public GT_MetaTileEntity_BasicMachine(int aID, String aName, String aNameRegional, int aTier, int aAmperage, String aDescription, int aInputSlotCount, int aOutputSlotCount, String aGUIName, String aNEIName, ITexture... aOverlays) { - super(aID, aName, aNameRegional, aTier, OTHER_SLOT_COUNT+aInputSlotCount+aOutputSlotCount+1, aDescription, aOverlays); - mInputSlotCount = Math.max(0, aInputSlotCount); - mOutputItems = new ItemStack[Math.max(0, aOutputSlotCount)]; - mAmperage = aAmperage; - mGUIName = aGUIName; - mNEIName = aNEIName; - } - - public GT_MetaTileEntity_BasicMachine(String aName, int aTier, int aAmperage, String aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, String aGUIName, String aNEIName) { - super(aName, aTier, OTHER_SLOT_COUNT+aInputSlotCount+aOutputSlotCount+1, aDescription, aTextures); - mInputSlotCount = Math.max(0, aInputSlotCount); - mOutputItems = new ItemStack[Math.max(0, aOutputSlotCount)]; - mAmperage = aAmperage; - mGUIName = aGUIName; - mNEIName = aNEIName; - } - - @Override - public ITexture[][][] getTextureSet(ITexture[] aTextures) { - ITexture[][][] rTextures = new ITexture[14][17][]; - aTextures = Arrays.copyOf(aTextures, 14); - - for (int i = 0; i < aTextures.length; i++) if (aTextures[i] != null) for (byte c = -1; c < 16; c++) { - if (rTextures[ i][c+1] == null) rTextures[ i][c+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][c+1], aTextures[i]}; - } - - for (byte c = -1; c < 16; c++) { - if (rTextures[ 0][c+1] == null) rTextures[ 0][c+1] = getSideFacingActive(c); - if (rTextures[ 1][c+1] == null) rTextures[ 1][c+1] = getSideFacingInactive(c); - if (rTextures[ 2][c+1] == null) rTextures[ 2][c+1] = getFrontFacingActive(c); - if (rTextures[ 3][c+1] == null) rTextures[ 3][c+1] = getFrontFacingInactive(c); - if (rTextures[ 4][c+1] == null) rTextures[ 4][c+1] = getTopFacingActive(c); - if (rTextures[ 5][c+1] == null) rTextures[ 5][c+1] = getTopFacingInactive(c); - if (rTextures[ 6][c+1] == null) rTextures[ 6][c+1] = getBottomFacingActive(c); - if (rTextures[ 7][c+1] == null) rTextures[ 7][c+1] = getBottomFacingInactive(c); - if (rTextures[ 8][c+1] == null) rTextures[ 8][c+1] = getBottomFacingPipeActive(c); - if (rTextures[ 9][c+1] == null) rTextures[ 9][c+1] = getBottomFacingPipeInactive(c); - if (rTextures[10][c+1] == null) rTextures[10][c+1] = getTopFacingPipeActive(c); - if (rTextures[11][c+1] == null) rTextures[11][c+1] = getTopFacingPipeInactive(c); - if (rTextures[12][c+1] == null) rTextures[12][c+1] = getSideFacingPipeActive(c); - if (rTextures[13][c+1] == null) rTextures[13][c+1] = getSideFacingPipeInactive(c); - } - return rTextures; - } - - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { - return mTextures[mMainFacing<2?aSide==aFacing?aActive?2:3:aSide==0?aActive?6:7:aSide==1?aActive?4:5:aActive?0:1:aSide==mMainFacing?aActive?2:3:(showPipeFacing()&&aSide==aFacing)?aSide==0?aActive?8:9:aSide==1?aActive?10:11:aActive?12:13:aSide==0?aActive?6:7:aSide==1?aActive?4:5:aActive?0:1][aColorIndex+1]; - } - - @Override public boolean isSimpleMachine() {return false;} - @Override public boolean isOverclockerUpgradable() {return false;} - @Override public boolean isTransformerUpgradable() {return false;} - @Override public boolean isElectric() {return true;} - @Override public boolean isValidSlot(int aIndex) {return aIndex > 0 && super.isValidSlot(aIndex) && aIndex != OTHER_SLOT_COUNT+mInputSlotCount+mOutputItems.length;} - @Override public boolean isFacingValid(byte aFacing) {return mMainFacing > 1 || aFacing > 1;} - @Override public boolean isEnetInput() {return true;} - @Override public boolean isInputFacing(byte aSide) {return aSide!=mMainFacing;} - @Override public boolean isOutputFacing(byte aSide) {return false;} - @Override public boolean isTeleporterCompatible() {return false;} - @Override public boolean isLiquidInput(byte aSide) {return aSide!=mMainFacing && (mAllowInputFromOutputSide || aSide != getBaseMetaTileEntity().getFrontFacing());} - @Override public boolean isLiquidOutput(byte aSide) {return aSide!=mMainFacing;} - @Override public long getMinimumStoredEU() {return V[mTier]*16;} - @Override public long maxEUStore() {return V[mTier]*64;} - @Override public long maxEUInput() {return V[mTier];} - @Override public long maxSteamStore() {return maxEUStore();} - @Override public long maxAmperesIn() {return (mEUt * 2) / V[mTier] + 1;} - @Override public int getInputSlot() {return OTHER_SLOT_COUNT;} - @Override public int getOutputSlot() {return OTHER_SLOT_COUNT+mInputSlotCount;} - @Override public int getStackDisplaySlot() {return 2;} - @Override public int rechargerSlotStartIndex() {return 1;} - @Override public int dechargerSlotStartIndex() {return 1;} - @Override public int rechargerSlotCount() {return mCharge?1:0;} - @Override public int dechargerSlotCount() {return mDecharge?1:0;} - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - @Override public int getProgresstime() {return mProgresstime;} - @Override public int maxProgresstime() {return mMaxProgresstime;} - @Override public int increaseProgress(int aProgress) {mProgresstime += aProgress; return mMaxProgresstime-mProgresstime;} - @Override public boolean isFluidInputAllowed(FluidStack aFluid) {return getFillableStack() != null || (getRecipeList() != null && getRecipeList().containsInput(aFluid));} - @Override public boolean isFluidChangingAllowed() {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 true;} - @Override public boolean displaysItemStack() {return true;} - @Override public boolean displaysStackSize() {return true;} - @Override public FluidStack getDisplayedFluid() {return displaysOutputFluid()?getDrainableStack():null;} - @Override public FluidStack getDrainableStack() {return mFluidOut;} - @Override public FluidStack setDrainableStack(FluidStack aFluid){mFluidOut = aFluid; return mFluidOut;} - - @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) return true; - aBaseMetaTileEntity.openGUI(aPlayer); - return true; - } - - @Override + /** + * return values for checkRecipe() + */ + protected static final int + DID_NOT_FIND_RECIPE = 0, + FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS = 1, + FOUND_AND_SUCCESSFULLY_USED_RECIPE = 2; + private static final int OTHER_SLOT_COUNT = 4; + public final ItemStack[] mOutputItems; + public final int mInputSlotCount, mAmperage; + public boolean mAllowInputFromOutputSide = false, mFluidTransfer = false, mItemTransfer = false, mHasBeenUpdated = false, mStuttering = false, mCharge = false, mDecharge = false; + public int mMainFacing = -1, mProgresstime = 0, mMaxProgresstime = 0, mEUt = 0, mOutputBlocked = 0; + public FluidStack mOutputFluid; + public String mGUIName = "", mNEIName = ""; + /** + * Contains the Recipe which has been previously used, or null if there was no previous Recipe, which could have been buffered + */ + protected GT_Recipe mLastRecipe = null; + private FluidStack mFluidOut; + + /** + * @param aOverlays 0 = SideFacingActive + * 1 = SideFacingInactive + * 2 = FrontFacingActive + * 3 = FrontFacingInactive + * 4 = TopFacingActive + * 5 = TopFacingInactive + * 6 = BottomFacingActive + * 7 = BottomFacingInactive + * ----- Not all Array Elements have to be initialised, you can also just use 8 Parameters for the Default Pipe Texture Overlays ----- + * 8 = BottomFacingPipeActive + * 9 = BottomFacingPipeInactive + * 10 = TopFacingPipeActive + * 11 = TopFacingPipeInactive + * 12 = SideFacingPipeActive + * 13 = SideFacingPipeInactive + */ + public GT_MetaTileEntity_BasicMachine(int aID, String aName, String aNameRegional, int aTier, int aAmperage, String aDescription, int aInputSlotCount, int aOutputSlotCount, String aGUIName, String aNEIName, ITexture... aOverlays) { + super(aID, aName, aNameRegional, aTier, OTHER_SLOT_COUNT + aInputSlotCount + aOutputSlotCount + 1, aDescription, aOverlays); + mInputSlotCount = Math.max(0, aInputSlotCount); + mOutputItems = new ItemStack[Math.max(0, aOutputSlotCount)]; + mAmperage = aAmperage; + mGUIName = aGUIName; + mNEIName = aNEIName; + } + + public GT_MetaTileEntity_BasicMachine(String aName, int aTier, int aAmperage, String aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, String aGUIName, String aNEIName) { + super(aName, aTier, OTHER_SLOT_COUNT + aInputSlotCount + aOutputSlotCount + 1, aDescription, aTextures); + mInputSlotCount = Math.max(0, aInputSlotCount); + mOutputItems = new ItemStack[Math.max(0, aOutputSlotCount)]; + mAmperage = aAmperage; + mGUIName = aGUIName; + mNEIName = aNEIName; + } + + @Override + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + ITexture[][][] rTextures = new ITexture[14][17][]; + aTextures = Arrays.copyOf(aTextures, 14); + + for (int i = 0; i < aTextures.length; i++) + if (aTextures[i] != null) for (byte c = -1; c < 16; c++) { + if (rTextures[i][c + 1] == null) + rTextures[i][c + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][c + 1], aTextures[i]}; + } + + for (byte c = -1; c < 16; c++) { + if (rTextures[0][c + 1] == null) rTextures[0][c + 1] = getSideFacingActive(c); + if (rTextures[1][c + 1] == null) rTextures[1][c + 1] = getSideFacingInactive(c); + if (rTextures[2][c + 1] == null) rTextures[2][c + 1] = getFrontFacingActive(c); + if (rTextures[3][c + 1] == null) rTextures[3][c + 1] = getFrontFacingInactive(c); + if (rTextures[4][c + 1] == null) rTextures[4][c + 1] = getTopFacingActive(c); + if (rTextures[5][c + 1] == null) rTextures[5][c + 1] = getTopFacingInactive(c); + if (rTextures[6][c + 1] == null) rTextures[6][c + 1] = getBottomFacingActive(c); + if (rTextures[7][c + 1] == null) rTextures[7][c + 1] = getBottomFacingInactive(c); + if (rTextures[8][c + 1] == null) rTextures[8][c + 1] = getBottomFacingPipeActive(c); + if (rTextures[9][c + 1] == null) rTextures[9][c + 1] = getBottomFacingPipeInactive(c); + if (rTextures[10][c + 1] == null) rTextures[10][c + 1] = getTopFacingPipeActive(c); + if (rTextures[11][c + 1] == null) rTextures[11][c + 1] = getTopFacingPipeInactive(c); + if (rTextures[12][c + 1] == null) rTextures[12][c + 1] = getSideFacingPipeActive(c); + if (rTextures[13][c + 1] == null) rTextures[13][c + 1] = getSideFacingPipeInactive(c); + } + return rTextures; + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + return mTextures[mMainFacing < 2 ? aSide == aFacing ? aActive ? 2 : 3 : aSide == 0 ? aActive ? 6 : 7 : aSide == 1 ? aActive ? 4 : 5 : aActive ? 0 : 1 : aSide == mMainFacing ? aActive ? 2 : 3 : (showPipeFacing() && aSide == aFacing) ? aSide == 0 ? aActive ? 8 : 9 : aSide == 1 ? aActive ? 10 : 11 : aActive ? 12 : 13 : aSide == 0 ? aActive ? 6 : 7 : aSide == 1 ? aActive ? 4 : 5 : aActive ? 0 : 1][aColorIndex + 1]; + } + + @Override + public boolean isSimpleMachine() { + return false; + } + + @Override + public boolean isOverclockerUpgradable() { + return false; + } + + @Override + public boolean isTransformerUpgradable() { + return false; + } + + @Override + public boolean isElectric() { + return true; + } + + @Override + public boolean isValidSlot(int aIndex) { + return aIndex > 0 && super.isValidSlot(aIndex) && aIndex != OTHER_SLOT_COUNT + mInputSlotCount + mOutputItems.length; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return mMainFacing > 1 || aFacing > 1; + } + + @Override + public boolean isEnetInput() { + return true; + } + + @Override + public boolean isInputFacing(byte aSide) { + return aSide != mMainFacing; + } + + @Override + public boolean isOutputFacing(byte aSide) { + return false; + } + + @Override + public boolean isTeleporterCompatible() { + return false; + } + + @Override + public boolean isLiquidInput(byte aSide) { + return aSide != mMainFacing && (mAllowInputFromOutputSide || aSide != getBaseMetaTileEntity().getFrontFacing()); + } + + @Override + public boolean isLiquidOutput(byte aSide) { + return aSide != mMainFacing; + } + + @Override + public long getMinimumStoredEU() { + return V[mTier] * 16; + } + + @Override + public long maxEUStore() { + return V[mTier] * 64; + } + + @Override + public long maxEUInput() { + return V[mTier]; + } + + @Override + public long maxSteamStore() { + return maxEUStore(); + } + + @Override + public long maxAmperesIn() { + return (mEUt * 2) / V[mTier] + 1; + } + + @Override + public int getInputSlot() { + return OTHER_SLOT_COUNT; + } + + @Override + public int getOutputSlot() { + return OTHER_SLOT_COUNT + mInputSlotCount; + } + + @Override + public int getStackDisplaySlot() { + return 2; + } + + @Override + public int rechargerSlotStartIndex() { + return 1; + } + + @Override + public int dechargerSlotStartIndex() { + return 1; + } + + @Override + public int rechargerSlotCount() { + return mCharge ? 1 : 0; + } + + @Override + public int dechargerSlotCount() { + return mDecharge ? 1 : 0; + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + @Override + public int getProgresstime() { + return mProgresstime; + } + + @Override + public int maxProgresstime() { + return mMaxProgresstime; + } + + @Override + public int increaseProgress(int aProgress) { + mProgresstime += aProgress; + return mMaxProgresstime - mProgresstime; + } + + @Override + public boolean isFluidInputAllowed(FluidStack aFluid) { + return getFillableStack() != null || (getRecipeList() != null && getRecipeList().containsInput(aFluid)); + } + + @Override + public boolean isFluidChangingAllowed() { + 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 true; + } + + @Override + public boolean displaysItemStack() { + return true; + } + + @Override + public boolean displaysStackSize() { + return true; + } + + @Override + public FluidStack getDisplayedFluid() { + return displaysOutputFluid() ? getDrainableStack() : null; + } + + @Override + public FluidStack getDrainableStack() { + return mFluidOut; + } + + @Override + public FluidStack setDrainableStack(FluidStack aFluid) { + mFluidOut = aFluid; + return mFluidOut; + } + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + if (aBaseMetaTileEntity.isClientSide()) return true; + aBaseMetaTileEntity.openGUI(aPlayer); + return true; + } + + @Override public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_Container_BasicMachine(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override + return new GT_Container_BasicMachine(aPlayerInventory, aBaseMetaTileEntity); + } + + @Override public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), mGUIName, GT_Utility.isStringValid(mNEIName) ? mNEIName : getRecipeList() != null ? getRecipeList().mUnlocalizedName : ""); - } + return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), mGUIName, GT_Utility.isStringValid(mNEIName) ? mNEIName : getRecipeList() != null ? getRecipeList().mUnlocalizedName : ""); + } + + @Override + public void initDefaultModes(NBTTagCompound aNBT) { + mMainFacing = -1; + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + aNBT.setBoolean("mFluidTransfer", mFluidTransfer); + aNBT.setBoolean("mItemTransfer", mItemTransfer); + aNBT.setBoolean("mHasBeenUpdated", mHasBeenUpdated); + aNBT.setBoolean("mAllowInputFromOutputSide", mAllowInputFromOutputSide); + aNBT.setInteger("mEUt", mEUt); + aNBT.setInteger("mMainFacing", mMainFacing); + aNBT.setInteger("mProgresstime", mProgresstime); + aNBT.setInteger("mMaxProgresstime", mMaxProgresstime); + if (mOutputFluid != null) aNBT.setTag("mOutputFluid", mOutputFluid.writeToNBT(new NBTTagCompound())); + if (mFluidOut != null) aNBT.setTag("mFluidOut", mFluidOut.writeToNBT(new NBTTagCompound())); + + for (int i = 0; i < mOutputItems.length; i++) + if (mOutputItems[i] != null) + aNBT.setTag("mOutputItem" + i, mOutputItems[i].writeToNBT(new NBTTagCompound())); + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + mFluidTransfer = aNBT.getBoolean("mFluidTransfer"); + mItemTransfer = aNBT.getBoolean("mItemTransfer"); + mHasBeenUpdated = aNBT.getBoolean("mHasBeenUpdated"); + mAllowInputFromOutputSide = aNBT.getBoolean("mAllowInputFromOutputSide"); + mEUt = aNBT.getInteger("mEUt"); + mMainFacing = aNBT.getInteger("mMainFacing"); + mProgresstime = aNBT.getInteger("mProgresstime"); + mMaxProgresstime = aNBT.getInteger("mMaxProgresstime"); + mOutputFluid = FluidStack.loadFluidStackFromNBT(aNBT.getCompoundTag("mOutputFluid")); + mFluidOut = FluidStack.loadFluidStackFromNBT(aNBT.getCompoundTag("mFluidOut")); + + for (int i = 0; i < mOutputItems.length; i++) mOutputItems[i] = GT_Utility.loadItem(aNBT, "mOutputItem" + i); + } + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + super.onPostTick(aBaseMetaTileEntity, aTick); + + if (aBaseMetaTileEntity.isServerSide()) { + mCharge = aBaseMetaTileEntity.getStoredEU() / 2 > aBaseMetaTileEntity.getEUCapacity() / 3; + mDecharge = aBaseMetaTileEntity.getStoredEU() < aBaseMetaTileEntity.getEUCapacity() / 3; + + doDisplayThings(); + + boolean tSucceeded = false; + + if (mMaxProgresstime > 0 && (mProgresstime >= 0 || aBaseMetaTileEntity.isAllowedToWork())) { + aBaseMetaTileEntity.setActive(true); + if (mProgresstime < 0 || drainEnergyForProcess(mEUt)) { + if (++mProgresstime >= mMaxProgresstime) { + for (int i = 0; i < mOutputItems.length; i++) + for (int j = 0; j < mOutputItems.length; j++) + if (aBaseMetaTileEntity.addStackToSlot(getOutputSlot() + ((j + i) % mOutputItems.length), mOutputItems[i])) + break; + if (mOutputFluid != null) + if (getDrainableStack() == null) setDrainableStack(mOutputFluid.copy()); + else if (mOutputFluid.isFluidEqual(getDrainableStack())) + getDrainableStack().amount += mOutputFluid.amount; + for (int i = 0; i < mOutputItems.length; i++) mOutputItems[i] = null; + mOutputFluid = null; + mEUt = 0; + mProgresstime = 0; + mMaxProgresstime = 0; + mStuttering = false; + tSucceeded = true; + endProcess(); + } + if (mProgresstime > 5) mStuttering = false; + } else { + if (!mStuttering) { + stutterProcess(); + if (canHaveInsufficientEnergy()) mProgresstime = -100; + mStuttering = true; + } + } + } else { + aBaseMetaTileEntity.setActive(false); + } + + boolean tRemovedOutputFluid = false; + + if (doesAutoOutputFluids() && getDrainableStack() != null && aBaseMetaTileEntity.getFrontFacing() != mMainFacing && (tSucceeded || aTick % 20 == 0)) { + IFluidHandler tTank = aBaseMetaTileEntity.getITankContainerAtSide(aBaseMetaTileEntity.getFrontFacing()); + if (tTank != null) { + FluidStack tDrained = drain(1000, false); + if (tDrained != null) { + int tFilledAmount = tTank.fill(ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()), tDrained, false); + if (tFilledAmount > 0) + tTank.fill(ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()), drain(tFilledAmount, true), true); + } + } + if (getDrainableStack() == null) tRemovedOutputFluid = true; + } + + if (doesAutoOutput() && !isOutputEmpty() && aBaseMetaTileEntity.getFrontFacing() != mMainFacing && (tSucceeded || mOutputBlocked % 300 == 1 || aBaseMetaTileEntity.hasInventoryBeenModified() || aTick % 600 == 0)) { + TileEntity tTileEntity2 = aBaseMetaTileEntity.getTileEntityAtSide(aBaseMetaTileEntity.getFrontFacing()); + for (int i = 0, tCosts = 1; i < mOutputItems.length && tCosts > 0 && aBaseMetaTileEntity.isUniversalEnergyStored(128); i++) { + tCosts = GT_Utility.moveOneItemStack(aBaseMetaTileEntity, tTileEntity2, aBaseMetaTileEntity.getFrontFacing(), aBaseMetaTileEntity.getBackFacing(), null, false, (byte) 64, (byte) 1, (byte) 64, (byte) 1); + if (tCosts > 0) aBaseMetaTileEntity.decreaseStoredEnergyUnits(tCosts, true); + } + } + + if (mOutputBlocked != 0) if (isOutputEmpty()) mOutputBlocked = 0; + else mOutputBlocked++; + + if (allowToCheckRecipe()) { + if (mMaxProgresstime <= 0 && aBaseMetaTileEntity.isAllowedToWork() && (tRemovedOutputFluid || tSucceeded || aBaseMetaTileEntity.hasInventoryBeenModified() || aTick % 600 == 0 || aBaseMetaTileEntity.hasWorkJustBeenEnabled()) && hasEnoughEnergyToCheckRecipe()) { + if (checkRecipe() == 2) { + if (mInventory[3] != null && mInventory[3].stackSize <= 0) mInventory[3] = null; + for (int i = getInputSlot(), j = i + mInputSlotCount; i < j; i++) + if (mInventory[i] != null && mInventory[i].stackSize <= 0) mInventory[i] = null; + for (int i = 0; i < mOutputItems.length; i++) { + mOutputItems[i] = GT_Utility.copy(mOutputItems[i]); + if (mOutputItems[i] != null && mOutputItems[i].stackSize > 64) + mOutputItems[i].stackSize = 64; + mOutputItems[i] = GT_OreDictUnificator.get(true, mOutputItems[i]); + } + if (mFluid != null && mFluid.amount <= 0) mFluid = null; + mMaxProgresstime = Math.max(1, mMaxProgresstime); + if (GT_Utility.isDebugItem(mInventory[dechargerSlotStartIndex()])) { + mEUt = mMaxProgresstime = 1; + } + startProcess(); + } else { + mMaxProgresstime = 0; + for (int i = 0; i < mOutputItems.length; i++) mOutputItems[i] = null; + mOutputFluid = null; + } + } + } else { + if (!mStuttering) { + stutterProcess(); + mStuttering = true; + } + } + } + } + + protected void doDisplayThings() { + if (mMainFacing < 2 && getBaseMetaTileEntity().getFrontFacing() > 1) { + mMainFacing = getBaseMetaTileEntity().getFrontFacing(); + } + if (mMainFacing >= 2 && !mHasBeenUpdated) { + mHasBeenUpdated = true; + getBaseMetaTileEntity().setFrontFacing(getBaseMetaTileEntity().getBackFacing()); + } + + if (displaysInputFluid()) { + int tDisplayStackSlot = OTHER_SLOT_COUNT + mInputSlotCount + mOutputItems.length; + if (getFillableStack() == null) { + if (ItemList.Display_Fluid.isStackEqual(mInventory[tDisplayStackSlot], true, true)) + mInventory[tDisplayStackSlot] = null; + } else { + mInventory[tDisplayStackSlot] = GT_Utility.getFluidDisplayStack(getFillableStack(), displaysStackSize()); + } + } + } + + protected boolean hasEnoughEnergyToCheckRecipe() { + return getBaseMetaTileEntity().isUniversalEnergyStored(getMinimumStoredEU() / 2); + } + + protected boolean drainEnergyForProcess(long aEUt) { + return getBaseMetaTileEntity().decreaseStoredEnergyUnits(aEUt, false); + } + + protected void calculateOverclockedNess(GT_Recipe aRecipe) { + calculateOverclockedNess(aRecipe.mEUt, aRecipe.mDuration); + } + + protected void calculateOverclockedNess(int aEUt, int aDuration) { + if (aEUt <= 16) { + mEUt = aEUt * (1 << (mTier - 1)) * (1 << (mTier - 1)); + mMaxProgresstime = aDuration / (1 << (mTier - 1)); + } else { + mEUt = aEUt; + mMaxProgresstime = aDuration; + while (mEUt <= V[mTier - 1] * mAmperage) { + mEUt *= 4; + mMaxProgresstime /= 2; + } + } + } + + protected ItemStack getSpecialSlot() { + return mInventory[3]; + } + + protected ItemStack getOutputAt(int aIndex) { + return mInventory[getOutputSlot() + aIndex]; + } + + protected ItemStack[] getAllOutputs() { + ItemStack[] rOutputs = new ItemStack[mOutputItems.length]; + for (int i = 0; i < mOutputItems.length; i++) rOutputs[i] = getOutputAt(i); + return rOutputs; + } + + protected boolean canOutput(GT_Recipe aRecipe) { + return aRecipe != null && (aRecipe.mNeedsEmptyOutput ? isOutputEmpty() && getDrainableStack() == null : canOutput(aRecipe.getFluidOutput(0)) && canOutput(aRecipe.mOutputs)); + } - @Override - public void initDefaultModes(NBTTagCompound aNBT) { - mMainFacing = -1; - } - - @Override - public void saveNBTData(NBTTagCompound aNBT) { - super.saveNBTData(aNBT); - aNBT.setBoolean("mFluidTransfer", mFluidTransfer); - aNBT.setBoolean("mItemTransfer", mItemTransfer); - aNBT.setBoolean("mHasBeenUpdated", mHasBeenUpdated); - aNBT.setBoolean("mAllowInputFromOutputSide", mAllowInputFromOutputSide); - aNBT.setInteger("mEUt", mEUt); - aNBT.setInteger("mMainFacing", mMainFacing); - aNBT.setInteger("mProgresstime", mProgresstime); - aNBT.setInteger("mMaxProgresstime", mMaxProgresstime); - if (mOutputFluid != null) aNBT.setTag("mOutputFluid", mOutputFluid.writeToNBT(new NBTTagCompound())); - if (mFluidOut != null) aNBT.setTag("mFluidOut", mFluidOut.writeToNBT(new NBTTagCompound())); - - for (int i = 0; i < mOutputItems.length; i++) if (mOutputItems[i] != null) aNBT.setTag("mOutputItem"+i, mOutputItems[i].writeToNBT(new NBTTagCompound())); - } - - @Override - public void loadNBTData(NBTTagCompound aNBT) { - super.loadNBTData(aNBT); - mFluidTransfer = aNBT.getBoolean("mFluidTransfer"); - mItemTransfer = aNBT.getBoolean("mItemTransfer"); - mHasBeenUpdated = aNBT.getBoolean("mHasBeenUpdated"); - mAllowInputFromOutputSide = aNBT.getBoolean("mAllowInputFromOutputSide"); - mEUt = aNBT.getInteger("mEUt"); - mMainFacing = aNBT.getInteger("mMainFacing"); - mProgresstime = aNBT.getInteger("mProgresstime"); - mMaxProgresstime = aNBT.getInteger("mMaxProgresstime"); - mOutputFluid = FluidStack.loadFluidStackFromNBT(aNBT.getCompoundTag("mOutputFluid")); - mFluidOut = FluidStack.loadFluidStackFromNBT(aNBT.getCompoundTag("mFluidOut")); - - for (int i = 0; i < mOutputItems.length; i++) mOutputItems[i] = GT_Utility.loadItem(aNBT, "mOutputItem"+i); - } - - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - super.onPostTick(aBaseMetaTileEntity, aTick); - - if (aBaseMetaTileEntity.isServerSide()) { - mCharge = aBaseMetaTileEntity.getStoredEU() / 2 > aBaseMetaTileEntity.getEUCapacity() / 3; - mDecharge = aBaseMetaTileEntity.getStoredEU() < aBaseMetaTileEntity.getEUCapacity() / 3; - - doDisplayThings(); - - boolean tSucceeded = false; - - if (mMaxProgresstime > 0 && (mProgresstime >= 0 || aBaseMetaTileEntity.isAllowedToWork())) { - aBaseMetaTileEntity.setActive(true); - if (mProgresstime < 0 || drainEnergyForProcess(mEUt)) { - if (++mProgresstime>=mMaxProgresstime) { - for (int i = 0; i < mOutputItems.length; i++) for (int j = 0; j < mOutputItems.length; j++) if (aBaseMetaTileEntity.addStackToSlot(getOutputSlot()+((j+i)%mOutputItems.length), mOutputItems[i])) break; - if (mOutputFluid != null) if (getDrainableStack() == null) setDrainableStack(mOutputFluid.copy()); else if (mOutputFluid.isFluidEqual(getDrainableStack())) getDrainableStack().amount += mOutputFluid.amount; - for (int i = 0; i < mOutputItems.length; i++) mOutputItems[i] = null; - mOutputFluid = null; - mEUt = 0; - mProgresstime = 0; - mMaxProgresstime = 0; - mStuttering = false; - tSucceeded = true; - endProcess(); - } - if (mProgresstime > 5) mStuttering = false; - } else { - if (!mStuttering) { - stutterProcess(); - if (canHaveInsufficientEnergy()) mProgresstime = -100; - mStuttering = true; - } - } - } else { - aBaseMetaTileEntity.setActive(false); - } - - boolean tRemovedOutputFluid = false; - - if (doesAutoOutputFluids() && getDrainableStack() != null && aBaseMetaTileEntity.getFrontFacing() != mMainFacing && (tSucceeded || aTick%20 == 0)) { - IFluidHandler tTank = aBaseMetaTileEntity.getITankContainerAtSide(aBaseMetaTileEntity.getFrontFacing()); - if (tTank != null) { - FluidStack tDrained = drain(1000, false); - if (tDrained != null) { - int tFilledAmount = tTank.fill(ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()), tDrained, false); - if (tFilledAmount > 0) tTank.fill(ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()), drain(tFilledAmount, true), true); - } - } - if (getDrainableStack() == null) tRemovedOutputFluid = true; - } - - if (doesAutoOutput() && !isOutputEmpty() && aBaseMetaTileEntity.getFrontFacing() != mMainFacing && (tSucceeded || mOutputBlocked%300 == 1 || aBaseMetaTileEntity.hasInventoryBeenModified() || aTick%600 == 0)) { - TileEntity tTileEntity2 = aBaseMetaTileEntity.getTileEntityAtSide(aBaseMetaTileEntity.getFrontFacing()); - for (int i = 0, tCosts = 1; i < mOutputItems.length && tCosts > 0 && aBaseMetaTileEntity.isUniversalEnergyStored(128); i++) { - tCosts = GT_Utility.moveOneItemStack(aBaseMetaTileEntity, tTileEntity2, aBaseMetaTileEntity.getFrontFacing(), aBaseMetaTileEntity.getBackFacing(), null, false, (byte)64, (byte)1, (byte)64, (byte)1); - if (tCosts > 0) aBaseMetaTileEntity.decreaseStoredEnergyUnits(tCosts, true); - } - } - - if (mOutputBlocked != 0) if (isOutputEmpty()) mOutputBlocked = 0; else mOutputBlocked++; - - if (allowToCheckRecipe()) { - if (mMaxProgresstime <= 0 && aBaseMetaTileEntity.isAllowedToWork() && (tRemovedOutputFluid || tSucceeded || aBaseMetaTileEntity.hasInventoryBeenModified() || aTick%600 == 0 || aBaseMetaTileEntity.hasWorkJustBeenEnabled()) && hasEnoughEnergyToCheckRecipe()) { - if (checkRecipe() == 2) { - if (mInventory[3] != null && mInventory[3].stackSize <= 0) mInventory[3] = null; - for (int i=getInputSlot() , j=i+mInputSlotCount ; i64) mOutputItems[i].stackSize=64; - mOutputItems[i] = GT_OreDictUnificator.get(true, mOutputItems[i]); - } - if (mFluid != null && mFluid.amount <= 0) mFluid = null; - mMaxProgresstime = Math.max(1, mMaxProgresstime); - if (GT_Utility.isDebugItem(mInventory[dechargerSlotStartIndex()])) { - mEUt = mMaxProgresstime = 1; - } - startProcess(); - } else { - mMaxProgresstime = 0; - for (int i = 0; i < mOutputItems.length; i++) mOutputItems[i] = null; - mOutputFluid = null; - } - } - } else { - if (!mStuttering) { - stutterProcess(); - mStuttering = true; - } - } - } - } - - protected void doDisplayThings() { - if (mMainFacing < 2 && getBaseMetaTileEntity().getFrontFacing() > 1) { - mMainFacing = getBaseMetaTileEntity().getFrontFacing(); - } - if (mMainFacing >= 2 && !mHasBeenUpdated) { - mHasBeenUpdated = true; - getBaseMetaTileEntity().setFrontFacing(getBaseMetaTileEntity().getBackFacing()); - } - - if (displaysInputFluid()) { - int tDisplayStackSlot = OTHER_SLOT_COUNT+mInputSlotCount+mOutputItems.length; - if (getFillableStack() == null) { - if (ItemList.Display_Fluid.isStackEqual(mInventory[tDisplayStackSlot], true, true)) mInventory[tDisplayStackSlot] = null; - } else { - mInventory[tDisplayStackSlot] = GT_Utility.getFluidDisplayStack(getFillableStack(), displaysStackSize()); - } - } - } - - protected boolean hasEnoughEnergyToCheckRecipe() { - return getBaseMetaTileEntity().isUniversalEnergyStored(getMinimumStoredEU() / 2); - } - - protected boolean drainEnergyForProcess(long aEUt) { - return getBaseMetaTileEntity().decreaseStoredEnergyUnits(aEUt, false); - } - - protected void calculateOverclockedNess(GT_Recipe aRecipe) { - calculateOverclockedNess(aRecipe.mEUt, aRecipe.mDuration); - } - - protected void calculateOverclockedNess(int aEUt, int aDuration) { - if (aEUt <= 16) { - mEUt = aEUt * (1 << (mTier-1)) * (1 << (mTier-1)); - mMaxProgresstime = aDuration / (1 << (mTier-1)); - } else { - mEUt = aEUt; - mMaxProgresstime = aDuration; - while (mEUt <= V[mTier-1] * mAmperage) { - mEUt *= 4; - mMaxProgresstime /= 2; - } - } - } - - protected ItemStack getSpecialSlot() { - return mInventory[3]; - } - - protected ItemStack getOutputAt(int aIndex) { - return mInventory[getOutputSlot()+aIndex]; - } - - protected ItemStack[] getAllOutputs() { - ItemStack[] rOutputs = new ItemStack[mOutputItems.length]; - for (int i = 0; i < mOutputItems.length; i++) rOutputs[i] = getOutputAt(i); - return rOutputs; - } - - protected boolean canOutput(GT_Recipe aRecipe) { - return aRecipe != null && (aRecipe.mNeedsEmptyOutput ? isOutputEmpty() && getDrainableStack() == null : canOutput(aRecipe.getFluidOutput(0)) && canOutput(aRecipe.mOutputs)); - } - protected boolean canOutput(ItemStack... aOutputs) { - if (aOutputs == null) return true; - ItemStack[] tOutputSlots = getAllOutputs(); - for (int i = 0; i < tOutputSlots.length && i < aOutputs.length; i++) if (tOutputSlots[i] != null && aOutputs[i] != null && (!GT_Utility.areStacksEqual(tOutputSlots[i], aOutputs[i], false) || tOutputSlots[i].stackSize + aOutputs[i].stackSize > tOutputSlots[i].getMaxStackSize())) { - mOutputBlocked++; - return false; - } - return true; + if (aOutputs == null) return true; + ItemStack[] tOutputSlots = getAllOutputs(); + for (int i = 0; i < tOutputSlots.length && i < aOutputs.length; i++) + if (tOutputSlots[i] != null && aOutputs[i] != null && (!GT_Utility.areStacksEqual(tOutputSlots[i], aOutputs[i], false) || tOutputSlots[i].stackSize + aOutputs[i].stackSize > tOutputSlots[i].getMaxStackSize())) { + mOutputBlocked++; + return false; + } + return true; } - - protected boolean canOutput(FluidStack aOutput) { - return getDrainableStack() == null || aOutput == null || (getDrainableStack().isFluidEqual(aOutput) && (getDrainableStack().amount <= 0 || getDrainableStack().amount + aOutput.amount <= getCapacity())); - } - - protected ItemStack getInputAt(int aIndex) { - return mInventory[getInputSlot()+aIndex]; - } - - protected ItemStack[] getAllInputs() { - ItemStack[] rInputs = new ItemStack[mInputSlotCount]; - for (int i = 0; i < mInputSlotCount; i++) rInputs[i] = getInputAt(i); - return rInputs; - } - - protected boolean isOutputEmpty() { - boolean rIsEmpty = true; - for (ItemStack tOutputSlotContent : getAllOutputs()) if (tOutputSlotContent != null) rIsEmpty = false; - return rIsEmpty; - } - - protected boolean displaysInputFluid() { - return true; - } - - protected boolean displaysOutputFluid() { - return true; - } - - @Override - public void onValueUpdate(byte aValue) { - mMainFacing = aValue; - } - - @Override - public byte getUpdateData() { - return (byte)mMainFacing; - } - - @Override - public void doSound(byte aIndex, double aX, double aY, double aZ) { - super.doSound(aIndex, aX, aY, aZ); - if (aIndex == 8) GT_Utility.doSoundAtClient(GregTech_API.sSoundList.get(210), 100, 1.0F, aX, aY, aZ); - } - public boolean doesAutoOutput() { - return mItemTransfer; - } - - public boolean doesAutoOutputFluids() { - return mFluidTransfer; - } - - public boolean allowToCheckRecipe() { - return true; - } - - public boolean showPipeFacing() { - return true; - } - - /** Called whenever the Machine successfully started a Process, useful for Sound Effects */ - public void startProcess() { - // - } - - /** Called whenever the Machine successfully finished a Process, useful for Sound Effects */ - public void endProcess() { - // - } - - /** Called whenever the Machine aborted a Process, useful for Sound Effects */ - public void abortProcess() { - // - } - - /** Called whenever the Machine aborted a Process but still works on it, useful for Sound Effects */ - public void stutterProcess() { - if (useStandardStutterSound()) sendSound((byte)8); - } - - /** If this Machine can have the Insufficient Energy Line Problem */ - public boolean canHaveInsufficientEnergy() { - return true; - } - - public boolean useStandardStutterSound() { - return true; - } - - @Override - public String[] getInfoData() { - return new String[] { - mNEIName, - "Progress:", (mProgresstime/20)+" secs", - (mMaxProgresstime/20)+" secs", - "Stored Energy:", - getBaseMetaTileEntity().getStoredEU()+"EU", - getBaseMetaTileEntity().getEUCapacity()+"EU"}; - } - - @Override - public boolean isGivingInformation() { - return true; - } - - @Override - public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { - if (aSide == getBaseMetaTileEntity().getFrontFacing() || aSide == mMainFacing) { - mAllowInputFromOutputSide = !mAllowInputFromOutputSide; - GT_Utility.sendChatToPlayer(aPlayer, mAllowInputFromOutputSide?"Input from Output Side allowed":"Input from Output Side forbidden"); - } - } - - @Override - public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCoverID) { - return (aSide!=mMainFacing||GregTech_API.getCoverBehavior(aCoverID.toStack()).isGUIClickable(aSide, GT_Utility.stackToInt(aCoverID.toStack()), 0, getBaseMetaTileEntity())); - } - - @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aSide!=mMainFacing&&aIndex>=getOutputSlot()&&aIndex=getInputSlot()+mInputSlotCount||(!mAllowInputFromOutputSide&&aSide==aBaseMetaTileEntity.getFrontFacing())) return false; - for (int i=getInputSlot(), j=i+mInputSlotCount; i= getOutputSlot() && aIndex < getOutputSlot() + mOutputItems.length; + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + if (aSide == mMainFacing || aIndex < getInputSlot() || aIndex >= getInputSlot() + mInputSlotCount || (!mAllowInputFromOutputSide && aSide == aBaseMetaTileEntity.getFrontFacing())) + return false; + for (int i = getInputSlot(), j = i + mInputSlotCount; i < j; i++) + if (GT_Utility.areStacksEqual(GT_OreDictUnificator.get(aStack), mInventory[i])) return i == aIndex; + return true; + } + + /** + * @return the Recipe List which is used for this Machine, this is a useful Default Handler + */ + public GT_Recipe_Map getRecipeList() { + return null; + } + + /** + * Override this to check the Recipes yourself, super calls to this could be useful if you just want to add a special case + *

+ * I thought about Enum too, but Enum doesn't add support for people adding other return Systems. + *

+ * Funny how Eclipse marks the word Enum as not correctly spelled. + * + * @return see constants above + */ public int checkRecipe() { - GT_Recipe_Map tMap = getRecipeList(); - if (tMap == null) return DID_NOT_FIND_RECIPE; - GT_Recipe tRecipe = tMap.findRecipe(getBaseMetaTileEntity(), mLastRecipe, false, V[mTier], new FluidStack[] {getFillableStack()}, getSpecialSlot(), getAllInputs()); - if (tRecipe == null) return DID_NOT_FIND_RECIPE; - if (tRecipe.mCanBeBuffered) mLastRecipe = tRecipe; - if (!canOutput(tRecipe)) {mOutputBlocked++; return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS;} - if (!tRecipe.isRecipeInputEqual(true, new FluidStack[] {getFillableStack()}, getAllInputs())) return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; - - for (int i = 0; i < mOutputItems.length; i++) if (getBaseMetaTileEntity().getRandomNumber(10000) < tRecipe.getOutputChance(i)) mOutputItems[i] = tRecipe.getOutput(i); + GT_Recipe_Map tMap = getRecipeList(); + if (tMap == null) return DID_NOT_FIND_RECIPE; + GT_Recipe tRecipe = tMap.findRecipe(getBaseMetaTileEntity(), mLastRecipe, false, V[mTier], new FluidStack[]{getFillableStack()}, getSpecialSlot(), getAllInputs()); + if (tRecipe == null) return DID_NOT_FIND_RECIPE; + if (tRecipe.mCanBeBuffered) mLastRecipe = tRecipe; + if (!canOutput(tRecipe)) { + mOutputBlocked++; + return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; + } + if (!tRecipe.isRecipeInputEqual(true, new FluidStack[]{getFillableStack()}, getAllInputs())) + return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; + + for (int i = 0; i < mOutputItems.length; i++) + if (getBaseMetaTileEntity().getRandomNumber(10000) < tRecipe.getOutputChance(i)) + mOutputItems[i] = tRecipe.getOutput(i); mOutputFluid = tRecipe.getFluidOutput(0); calculateOverclockedNess(tRecipe); return FOUND_AND_SUCCESSFULLY_USED_RECIPE; } - - public ITexture[] getSideFacingActive(byte aColor) { - return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor+1]}; - } - - public ITexture[] getSideFacingInactive(byte aColor) { - return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor+1]}; - } - - public ITexture[] getFrontFacingActive(byte aColor) { - return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor+1]}; - } - - public ITexture[] getFrontFacingInactive(byte aColor) { - return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor+1]}; - } - - public ITexture[] getTopFacingActive(byte aColor) { - return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor+1]}; - } - - public ITexture[] getTopFacingInactive(byte aColor) { - return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor+1]}; - } - - public ITexture[] getBottomFacingActive(byte aColor) { - return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor+1]}; - } - - public ITexture[] getBottomFacingInactive(byte aColor) { - return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor+1]}; - } - - public ITexture[] getBottomFacingPipeActive(byte aColor) { - return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor+1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; - } - - public ITexture[] getBottomFacingPipeInactive(byte aColor) { - return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor+1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; - } - - public ITexture[] getTopFacingPipeActive(byte aColor) { - return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor+1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; - } - - public ITexture[] getTopFacingPipeInactive(byte aColor) { - return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor+1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; - } - - public ITexture[] getSideFacingPipeActive(byte aColor) { - return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor+1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; - } - - public ITexture[] getSideFacingPipeInactive(byte aColor) { - return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor+1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; - } + + public ITexture[] getSideFacingActive(byte aColor) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]}; + } + + public ITexture[] getSideFacingInactive(byte aColor) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]}; + } + + public ITexture[] getFrontFacingActive(byte aColor) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]}; + } + + public ITexture[] getFrontFacingInactive(byte aColor) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]}; + } + + public ITexture[] getTopFacingActive(byte aColor) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]}; + } + + public ITexture[] getTopFacingInactive(byte aColor) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]}; + } + + public ITexture[] getBottomFacingActive(byte aColor) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]}; + } + + public ITexture[] getBottomFacingInactive(byte aColor) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]}; + } + + public ITexture[] getBottomFacingPipeActive(byte aColor) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; + } + + public ITexture[] getBottomFacingPipeInactive(byte aColor) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; + } + + public ITexture[] getTopFacingPipeActive(byte aColor) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; + } + + public ITexture[] getTopFacingPipeInactive(byte aColor) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; + } + + public ITexture[] getSideFacingPipeActive(byte aColor) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; + } + + public ITexture[] getSideFacingPipeInactive(byte aColor) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java index 3d923db5..026ecc27 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java @@ -1,6 +1,5 @@ package gregtech.api.metatileentity.implementations; -import static gregtech.api.enums.GT_Values.D1; import gregtech.api.GregTech_API; import gregtech.api.enums.Dyes; import gregtech.api.enums.Textures; @@ -9,179 +8,232 @@ import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_Utility; - -import java.util.ArrayList; - import net.minecraft.entity.EntityLivingBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; +import java.util.ArrayList; + +import static gregtech.api.enums.GT_Values.D1; + /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* This is the main construct for my Basic Machines such as the Automatic Extractor * Extend this class to make a simple Machine */ public abstract class GT_MetaTileEntity_BasicMachine_Bronze extends GT_MetaTileEntity_BasicMachine { - public GT_MetaTileEntity_BasicMachine_Bronze(int aID, String aName, String aNameRegional, String aDescription, int aInputSlotCount, int aOutputSlotCount, boolean aBricked) { - super(aID, aName, aNameRegional, aBricked?1:0, 0, aDescription, aInputSlotCount, aOutputSlotCount, "", ""); - } - - public GT_MetaTileEntity_BasicMachine_Bronze(String aName, String aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, boolean aBricked) { - super(aName, aBricked?1:0, 0, aDescription, aTextures, aInputSlotCount, aOutputSlotCount, "", ""); - } - /* - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_BasicMachine_Bronze(mTier, mDescription, mTextures); - } - */ - public boolean mNeedsSteamVenting = false; - - @Override - public void saveNBTData(NBTTagCompound aNBT) { - super.saveNBTData(aNBT); - aNBT.setBoolean("mNeedsSteamVenting", mNeedsSteamVenting); - } - - @Override - public void loadNBTData(NBTTagCompound aNBT) { - super.loadNBTData(aNBT); - mNeedsSteamVenting = aNBT.getBoolean("mNeedsSteamVenting"); - } - - @Override public boolean isElectric() {return false;} - @Override public boolean isEnetInput() {return false;} - @Override public boolean isInputFacing(byte aSide) {return false;} - @Override public long maxEUStore() {return 0;} - @Override public long maxEUInput() {return 0;} - @Override public int rechargerSlotCount() {return 0;} - @Override public int dechargerSlotCount() {return 0;} - - @Override public boolean isSteampowered() {return true;} - @Override public boolean isFacingValid(byte aFacing) {return super.isFacingValid(aFacing) && aFacing != mMainFacing;} - @Override public long getMinimumStoredEU() {return 1000;} - @Override public long maxSteamStore() {return 16000;} - @Override public boolean isLiquidInput (byte aSide) {return aSide != mMainFacing;} - @Override public boolean isLiquidOutput(byte aSide) {return aSide != mMainFacing;} - - @Override - public boolean doesAutoOutput() { - return false; - } - - @Override - public boolean allowToCheckRecipe() { - if (mNeedsSteamVenting && getBaseMetaTileEntity().getCoverIDAtSide(getBaseMetaTileEntity().getFrontFacing()) == 0 && !GT_Utility.hasBlockHitBox(getBaseMetaTileEntity().getWorld(), getBaseMetaTileEntity().getOffsetX(getBaseMetaTileEntity().getFrontFacing(), 1), getBaseMetaTileEntity().getOffsetY(getBaseMetaTileEntity().getFrontFacing(), 1), getBaseMetaTileEntity().getOffsetZ(getBaseMetaTileEntity().getFrontFacing(), 1))) { - sendSound((byte)9); - mNeedsSteamVenting = false; - try { - for (EntityLivingBase tLiving : (ArrayList)getBaseMetaTileEntity().getWorld().getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(getBaseMetaTileEntity().getOffsetX(getBaseMetaTileEntity().getFrontFacing(), 1), getBaseMetaTileEntity().getOffsetY(getBaseMetaTileEntity().getFrontFacing(), 1), getBaseMetaTileEntity().getOffsetZ(getBaseMetaTileEntity().getFrontFacing(), 1), getBaseMetaTileEntity().getOffsetX(getBaseMetaTileEntity().getFrontFacing(), 1)+1, getBaseMetaTileEntity().getOffsetY(getBaseMetaTileEntity().getFrontFacing(), 1)+1, getBaseMetaTileEntity().getOffsetZ(getBaseMetaTileEntity().getFrontFacing(), 1)+1))) { - GT_Utility.applyHeatDamage(tLiving, getSteamDamage()); - } - } catch(Throwable e) { - if (D1) e.printStackTrace(GT_Log.err); - } - } - return !mNeedsSteamVenting; - } - - @Override - public void endProcess() { - if (isSteampowered()) mNeedsSteamVenting = true; - } - - @Override + /* + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_BasicMachine_Bronze(mTier, mDescription, mTextures); + } + */ + public boolean mNeedsSteamVenting = false; + + public GT_MetaTileEntity_BasicMachine_Bronze(int aID, String aName, String aNameRegional, String aDescription, int aInputSlotCount, int aOutputSlotCount, boolean aBricked) { + super(aID, aName, aNameRegional, aBricked ? 1 : 0, 0, aDescription, aInputSlotCount, aOutputSlotCount, "", ""); + } + + public GT_MetaTileEntity_BasicMachine_Bronze(String aName, String aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, boolean aBricked) { + super(aName, aBricked ? 1 : 0, 0, aDescription, aTextures, aInputSlotCount, aOutputSlotCount, "", ""); + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + aNBT.setBoolean("mNeedsSteamVenting", mNeedsSteamVenting); + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + mNeedsSteamVenting = aNBT.getBoolean("mNeedsSteamVenting"); + } + + @Override + public boolean isElectric() { + return false; + } + + @Override + public boolean isEnetInput() { + return false; + } + + @Override + public boolean isInputFacing(byte aSide) { + return false; + } + + @Override + public long maxEUStore() { + return 0; + } + + @Override + public long maxEUInput() { + return 0; + } + + @Override + public int rechargerSlotCount() { + return 0; + } + + @Override + public int dechargerSlotCount() { + return 0; + } + + @Override + public boolean isSteampowered() { + return true; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return super.isFacingValid(aFacing) && aFacing != mMainFacing; + } + + @Override + public long getMinimumStoredEU() { + return 1000; + } + + @Override + public long maxSteamStore() { + return 16000; + } + + @Override + public boolean isLiquidInput(byte aSide) { + return aSide != mMainFacing; + } + + @Override + public boolean isLiquidOutput(byte aSide) { + return aSide != mMainFacing; + } + + @Override + public boolean doesAutoOutput() { + return false; + } + + @Override + public boolean allowToCheckRecipe() { + if (mNeedsSteamVenting && getBaseMetaTileEntity().getCoverIDAtSide(getBaseMetaTileEntity().getFrontFacing()) == 0 && !GT_Utility.hasBlockHitBox(getBaseMetaTileEntity().getWorld(), getBaseMetaTileEntity().getOffsetX(getBaseMetaTileEntity().getFrontFacing(), 1), getBaseMetaTileEntity().getOffsetY(getBaseMetaTileEntity().getFrontFacing(), 1), getBaseMetaTileEntity().getOffsetZ(getBaseMetaTileEntity().getFrontFacing(), 1))) { + sendSound((byte) 9); + mNeedsSteamVenting = false; + try { + for (EntityLivingBase tLiving : (ArrayList) getBaseMetaTileEntity().getWorld().getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(getBaseMetaTileEntity().getOffsetX(getBaseMetaTileEntity().getFrontFacing(), 1), getBaseMetaTileEntity().getOffsetY(getBaseMetaTileEntity().getFrontFacing(), 1), getBaseMetaTileEntity().getOffsetZ(getBaseMetaTileEntity().getFrontFacing(), 1), getBaseMetaTileEntity().getOffsetX(getBaseMetaTileEntity().getFrontFacing(), 1) + 1, getBaseMetaTileEntity().getOffsetY(getBaseMetaTileEntity().getFrontFacing(), 1) + 1, getBaseMetaTileEntity().getOffsetZ(getBaseMetaTileEntity().getFrontFacing(), 1) + 1))) { + GT_Utility.applyHeatDamage(tLiving, getSteamDamage()); + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + } + return !mNeedsSteamVenting; + } + + @Override + public void endProcess() { + if (isSteampowered()) mNeedsSteamVenting = true; + } + + @Override public void doSound(byte aIndex, double aX, double aY, double aZ) { - super.doSound(aIndex, aX, aY, aZ); - if (aIndex == 9) { - GT_Utility.doSoundAtClient(GregTech_API.sSoundList.get(4), 5, 1.0F, aX, aY, aZ); - for (int l = 0; l < 8; ++l) getBaseMetaTileEntity().getWorld().spawnParticle("largesmoke", aX - 0.5 + Math.random(), aY - 0.5 + Math.random(), aZ - 0.5 + Math.random(), ForgeDirection.getOrientation(getBaseMetaTileEntity().getFrontFacing()).offsetX / 5.0, ForgeDirection.getOrientation(getBaseMetaTileEntity().getFrontFacing()).offsetY / 5.0, ForgeDirection.getOrientation(getBaseMetaTileEntity().getFrontFacing()).offsetZ / 5.0); - } - } - - @Override - public boolean isGivingInformation() { - return false; - } - - @Override - public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCoverID) { - return GregTech_API.getCoverBehavior(aCoverID.toStack()).isSimpleCover() && super.allowCoverOnSide(aSide, aCoverID); - } - - public float getSteamDamage() { - return 6.0F; - } - - @Override - public ITexture[] getSideFacingActive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE:Textures.BlockIcons.MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; - } - - @Override - public ITexture[] getSideFacingInactive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE:Textures.BlockIcons.MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; - } - - @Override - public ITexture[] getFrontFacingActive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE:Textures.BlockIcons.MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; - } - - @Override - public ITexture[] getFrontFacingInactive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE:Textures.BlockIcons.MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; - } - - @Override - public ITexture[] getTopFacingActive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_BRONZEBRICKS_TOP:Textures.BlockIcons.MACHINE_BRONZE_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; - } - - @Override - public ITexture[] getTopFacingInactive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_BRONZEBRICKS_TOP:Textures.BlockIcons.MACHINE_BRONZE_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; - } - - @Override - public ITexture[] getBottomFacingActive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_BRONZEBRICKS_BOTTOM:Textures.BlockIcons.MACHINE_BRONZE_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; - } - - @Override - public ITexture[] getBottomFacingInactive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_BRONZEBRICKS_BOTTOM:Textures.BlockIcons.MACHINE_BRONZE_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; - } - - @Override - public ITexture[] getBottomFacingPipeActive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_BRONZEBRICKS_BOTTOM:Textures.BlockIcons.MACHINE_BRONZE_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; - } - - @Override - public ITexture[] getBottomFacingPipeInactive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_BRONZEBRICKS_BOTTOM:Textures.BlockIcons.MACHINE_BRONZE_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; - } - - @Override - public ITexture[] getTopFacingPipeActive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_BRONZEBRICKS_TOP:Textures.BlockIcons.MACHINE_BRONZE_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; - } - - @Override - public ITexture[] getTopFacingPipeInactive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_BRONZEBRICKS_TOP:Textures.BlockIcons.MACHINE_BRONZE_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; - } - - @Override - public ITexture[] getSideFacingPipeActive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE:Textures.BlockIcons.MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; - } - - @Override - public ITexture[] getSideFacingPipeInactive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE:Textures.BlockIcons.MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; - } + super.doSound(aIndex, aX, aY, aZ); + if (aIndex == 9) { + GT_Utility.doSoundAtClient(GregTech_API.sSoundList.get(4), 5, 1.0F, aX, aY, aZ); + for (int l = 0; l < 8; ++l) + getBaseMetaTileEntity().getWorld().spawnParticle("largesmoke", aX - 0.5 + Math.random(), aY - 0.5 + Math.random(), aZ - 0.5 + Math.random(), ForgeDirection.getOrientation(getBaseMetaTileEntity().getFrontFacing()).offsetX / 5.0, ForgeDirection.getOrientation(getBaseMetaTileEntity().getFrontFacing()).offsetY / 5.0, ForgeDirection.getOrientation(getBaseMetaTileEntity().getFrontFacing()).offsetZ / 5.0); + } + } + + @Override + public boolean isGivingInformation() { + return false; + } + + @Override + public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCoverID) { + return GregTech_API.getCoverBehavior(aCoverID.toStack()).isSimpleCover() && super.allowCoverOnSide(aSide, aCoverID); + } + + public float getSteamDamage() { + return 6.0F; + } + + @Override + public ITexture[] getSideFacingActive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE : Textures.BlockIcons.MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + } + + @Override + public ITexture[] getSideFacingInactive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE : Textures.BlockIcons.MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + } + + @Override + public ITexture[] getFrontFacingActive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE : Textures.BlockIcons.MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + } + + @Override + public ITexture[] getFrontFacingInactive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE : Textures.BlockIcons.MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + } + + @Override + public ITexture[] getTopFacingActive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_BRONZEBRICKS_TOP : Textures.BlockIcons.MACHINE_BRONZE_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + } + + @Override + public ITexture[] getTopFacingInactive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_BRONZEBRICKS_TOP : Textures.BlockIcons.MACHINE_BRONZE_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + } + + @Override + public ITexture[] getBottomFacingActive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_BRONZEBRICKS_BOTTOM : Textures.BlockIcons.MACHINE_BRONZE_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + } + + @Override + public ITexture[] getBottomFacingInactive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_BRONZEBRICKS_BOTTOM : Textures.BlockIcons.MACHINE_BRONZE_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + } + + @Override + public ITexture[] getBottomFacingPipeActive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_BRONZEBRICKS_BOTTOM : Textures.BlockIcons.MACHINE_BRONZE_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; + } + + @Override + public ITexture[] getBottomFacingPipeInactive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_BRONZEBRICKS_BOTTOM : Textures.BlockIcons.MACHINE_BRONZE_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; + } + + @Override + public ITexture[] getTopFacingPipeActive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_BRONZEBRICKS_TOP : Textures.BlockIcons.MACHINE_BRONZE_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; + } + + @Override + public ITexture[] getTopFacingPipeInactive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_BRONZEBRICKS_TOP : Textures.BlockIcons.MACHINE_BRONZE_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; + } + + @Override + public ITexture[] getSideFacingPipeActive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE : Textures.BlockIcons.MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; + } + + @Override + public ITexture[] getSideFacingPipeInactive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE : Textures.BlockIcons.MACHINE_BRONZE_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java index 30272cee..e40d505e 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java @@ -1,7 +1,5 @@ package gregtech.api.metatileentity.implementations; -import static gregtech.api.enums.GT_Values.V; -import static gregtech.api.enums.GT_Values.W; import gregtech.api.enums.*; import gregtech.api.gui.GT_Container_BasicMachine; import gregtech.api.gui.GT_GUIContainer_BasicMachine; @@ -13,307 +11,613 @@ import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_ModHandler.RecipeBits; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; - -import java.util.Random; - import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; +import java.util.Random; + +import static gregtech.api.enums.GT_Values.V; +import static gregtech.api.enums.GT_Values.W; + /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* This is the main construct for my Basic Machines such as the Automatic Extractor * Extend this class to make a simple Machine */ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_BasicMachine { - public static enum X {PUMP, WIRE, WIRE4, HULL, PIPE, GLASS, PLATE, MOTOR, ROTOR, SENSOR, PISTON, CIRCUIT, EMITTER, CONVEYOR, ROBOT_ARM, COIL_HEATING, COIL_ELECTRIC, STICK_MAGNETIC, STICK_DISTILLATION, BETTER_CIRCUIT, FIELD_GENERATOR, COIL_HEATING_DOUBLE, STICK_ELECTROMAGNETIC;} - - private final GT_Recipe_Map mRecipes; - private final int mTankCapacity, mSpecialEffect; - private final String mSound; - private final boolean mSharedTank, mRequiresFluidForFiltering; - private final byte mGUIParameterA, mGUIParameterB; - - public GT_MetaTileEntity_BasicMachine_GT_Recipe(int aID, String aName, String aNameRegional, int aTier, String aDescription, GT_Recipe_Map aRecipes, int aInputSlots, int aOutputSlots, int aTankCapacity, int aGUIParameterA, int aGUIParameterB, String aGUIName, String aSound, boolean aSharedTank, boolean aRequiresFluidForFiltering, int aSpecialEffect, String aOverlays, Object[] aRecipe) { - super(aID, aName, aNameRegional, aTier, aRecipes.mAmperage, aDescription, aInputSlots, aOutputSlots, aGUIName, aRecipes.mNEIName, new ITexture[] {new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/" + aOverlays.toLowerCase() + "/OVERLAY_SIDE_ACTIVE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/" + aOverlays.toLowerCase() + "/OVERLAY_SIDE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/" + aOverlays.toLowerCase() + "/OVERLAY_FRONT_ACTIVE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/" + aOverlays.toLowerCase() + "/OVERLAY_FRONT")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/" + aOverlays.toLowerCase() + "/OVERLAY_TOP_ACTIVE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/" + aOverlays.toLowerCase() + "/OVERLAY_TOP")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/" + aOverlays.toLowerCase() + "/OVERLAY_BOTTOM_ACTIVE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/" + aOverlays.toLowerCase() + "/OVERLAY_BOTTOM"))}); - mSharedTank = aSharedTank; - mTankCapacity = aTankCapacity; - mSpecialEffect = aSpecialEffect; - mRequiresFluidForFiltering = aRequiresFluidForFiltering; - mRecipes = aRecipes; - mSound = aSound; - mGUIParameterA = (byte)aGUIParameterA; - mGUIParameterB = (byte)aGUIParameterB; - - if (aRecipe != null) { - for (int i = 3; i < aRecipe.length; i++) { - if (aRecipe[i] == X.CIRCUIT) {aRecipe[i] = Tier.ELECTRIC[mTier].mManagingObject; continue;} - if (aRecipe[i] == X.BETTER_CIRCUIT) {aRecipe[i] = Tier.ELECTRIC[mTier].mBetterManagingObject; continue;} - if (aRecipe[i] == X.HULL) {aRecipe[i] = Tier.ELECTRIC[mTier].mHullObject; continue;} - if (aRecipe[i] == X.WIRE) {aRecipe[i] = Tier.ELECTRIC[mTier].mConductingObject; continue;} - if (aRecipe[i] == X.WIRE4) {aRecipe[i] = Tier.ELECTRIC[mTier].mLargerConductingObject; continue;} - - if (aRecipe[i] == X.GLASS) {switch(mTier) { - default: aRecipe[i] = new ItemStack(Blocks.glass, 1, W); break; - }continue;} - - if (aRecipe[i] == X.PLATE) {switch(mTier) { - case 0: case 1: aRecipe[i] = OrePrefixes.plate.get(Materials.Steel); break; - case 2: aRecipe[i] = OrePrefixes.plate.get(Materials.Aluminium); break; - case 3: aRecipe[i] = OrePrefixes.plate.get(Materials.StainlessSteel); break; - case 4: aRecipe[i] = OrePrefixes.plate.get(Materials.Titanium); break; - default: aRecipe[i] = OrePrefixes.plate.get(Materials.TungstenSteel); break; - }continue;} - - if (aRecipe[i] == X.PIPE) {switch(mTier) { - case 0: case 1: aRecipe[i] = OrePrefixes.pipeMedium.get(Materials.Bronze); break; - case 2: aRecipe[i] = OrePrefixes.pipeMedium.get(Materials.Steel); break; - case 3: aRecipe[i] = OrePrefixes.pipeMedium.get(Materials.StainlessSteel); break; - case 4: aRecipe[i] = OrePrefixes.pipeMedium.get(Materials.Titanium); break; - default: aRecipe[i] = OrePrefixes.pipeMedium.get(Materials.TungstenSteel); break; - }continue;} - - if (aRecipe[i] == X.COIL_HEATING) {switch(mTier) { - case 0: case 1: aRecipe[i] = OrePrefixes.wireGt02.get(Materials.AnyCopper); break; - case 2: aRecipe[i] = OrePrefixes.wireGt02.get(Materials.Cupronickel); break; - case 3: aRecipe[i] = OrePrefixes.wireGt02.get(Materials.Kanthal); break; - case 4: aRecipe[i] = OrePrefixes.wireGt02.get(Materials.Nichrome); break; - default: aRecipe[i] = OrePrefixes.wireGt08.get(Materials.Nichrome); break; - }continue;} - - if (aRecipe[i] == X.COIL_HEATING_DOUBLE) {switch(mTier) { - case 0: case 1: aRecipe[i] = OrePrefixes.wireGt04.get(Materials.AnyCopper); break; - case 2: aRecipe[i] = OrePrefixes.wireGt04.get(Materials.Cupronickel); break; - case 3: aRecipe[i] = OrePrefixes.wireGt04.get(Materials.Kanthal); break; - case 4: aRecipe[i] = OrePrefixes.wireGt04.get(Materials.Nichrome); break; - default: aRecipe[i] = OrePrefixes.wireGt16.get(Materials.Nichrome); break; - }continue;} - - if (aRecipe[i] == X.STICK_DISTILLATION) {switch(mTier) { - default: aRecipe[i] = OrePrefixes.stick.get(Materials.Blaze); break; - }continue;} - - if (aRecipe[i] == X.STICK_MAGNETIC) {switch(mTier) { - case 0: case 1: aRecipe[i] = OrePrefixes.stick.get(Materials.IronMagnetic); break; - case 2: case 3: aRecipe[i] = OrePrefixes.stick.get(Materials.SteelMagnetic); break; - default: aRecipe[i] = OrePrefixes.stick.get(Materials.NeodymiumMagnetic); break; - }continue;} - - if (aRecipe[i] == X.STICK_ELECTROMAGNETIC) {switch(mTier) { - case 0: case 1: aRecipe[i] = OrePrefixes.stick.get(Materials.AnyIron); break; - case 2: case 3: aRecipe[i] = OrePrefixes.stick.get(Materials.Steel); break; - case 4: aRecipe[i] = OrePrefixes.stick.get(Materials.Neodymium); break; - default: aRecipe[i] = OrePrefixes.stick.get(Materials.VanadiumGallium); break; - }continue;} - - if (aRecipe[i] == X.COIL_ELECTRIC) {switch(mTier) { - case 0: aRecipe[i] = OrePrefixes.wireGt01.get(Materials.Tin); break; - case 1: aRecipe[i] = OrePrefixes.wireGt02.get(Materials.Tin); break; - case 2: aRecipe[i] = OrePrefixes.wireGt02.get(Materials.AnyCopper); break; - case 3: aRecipe[i] = OrePrefixes.wireGt04.get(Materials.AnyCopper); break; - case 4: aRecipe[i] = OrePrefixes.wireGt08.get(Materials.AnnealedCopper); break; - default: aRecipe[i] = OrePrefixes.wireGt16.get(Materials.AnnealedCopper); break; - }continue;} - - if (aRecipe[i] == X.ROBOT_ARM) {switch(mTier) { - case 0: case 1: aRecipe[i] = ItemList.Robot_Arm_LV; break; - case 2: aRecipe[i] = ItemList.Robot_Arm_MV; break; - case 3: aRecipe[i] = ItemList.Robot_Arm_HV; break; - case 4: aRecipe[i] = ItemList.Robot_Arm_EV; break; - case 5: aRecipe[i] = ItemList.Robot_Arm_IV; break; - case 6: aRecipe[i] = ItemList.Robot_Arm_LuV; break; - case 7: aRecipe[i] = ItemList.Robot_Arm_ZPM; break; - default: aRecipe[i] = ItemList.Robot_Arm_UV; break; - }continue;} - - if (aRecipe[i] == X.PUMP) {switch(mTier) { - case 0: case 1: aRecipe[i] = ItemList.Electric_Pump_LV; break; - case 2: aRecipe[i] = ItemList.Electric_Pump_MV; break; - case 3: aRecipe[i] = ItemList.Electric_Pump_HV; break; - case 4: aRecipe[i] = ItemList.Electric_Pump_EV; break; - case 5: aRecipe[i] = ItemList.Electric_Pump_IV; break; - case 6: aRecipe[i] = ItemList.Electric_Pump_LuV; break; - case 7: aRecipe[i] = ItemList.Electric_Pump_ZPM; break; - default: aRecipe[i] = ItemList.Electric_Pump_UV; break; - }continue;} - - if (aRecipe[i] == X.ROTOR) {switch(mTier) { - case 0: case 1: aRecipe[i] = OrePrefixes.rotor.get(Materials.Tin); break; - case 2: aRecipe[i] = OrePrefixes.rotor.get(Materials.Bronze); break; - case 3: aRecipe[i] = OrePrefixes.rotor.get(Materials.Steel); break; - case 4: aRecipe[i] = OrePrefixes.rotor.get(Materials.StainlessSteel); break; - case 5: aRecipe[i] = OrePrefixes.rotor.get(Materials.TungstenSteel); break; - case 6: aRecipe[i] = OrePrefixes.rotor.get(Materials.TungstenSteel); break; - case 7: aRecipe[i] = OrePrefixes.rotor.get(Materials.TungstenSteel); break; - default: aRecipe[i] = OrePrefixes.rotor.get(Materials.TungstenSteel); break; - }continue;} - - if (aRecipe[i] == X.MOTOR) {switch(mTier) { - case 0: case 1: aRecipe[i] = ItemList.Electric_Motor_LV; break; - case 2: aRecipe[i] = ItemList.Electric_Motor_MV; break; - case 3: aRecipe[i] = ItemList.Electric_Motor_HV; break; - case 4: aRecipe[i] = ItemList.Electric_Motor_EV; break; - case 5: aRecipe[i] = ItemList.Electric_Motor_IV; break; - case 6: aRecipe[i] = ItemList.Electric_Motor_LuV; break; - case 7: aRecipe[i] = ItemList.Electric_Motor_ZPM; break; - default: aRecipe[i] = ItemList.Electric_Motor_UV; break; - }continue;} - - if (aRecipe[i] == X.PISTON) {switch(mTier) { - case 0: case 1: aRecipe[i] = ItemList.Electric_Piston_LV; break; - case 2: aRecipe[i] = ItemList.Electric_Piston_MV; break; - case 3: aRecipe[i] = ItemList.Electric_Piston_HV; break; - case 4: aRecipe[i] = ItemList.Electric_Piston_EV; break; - case 5: aRecipe[i] = ItemList.Electric_Piston_IV; break; - case 6: aRecipe[i] = ItemList.Electric_Piston_LuV; break; - case 7: aRecipe[i] = ItemList.Electric_Piston_ZPM; break; - default: aRecipe[i] = ItemList.Electric_Piston_UV; break; - }continue;} - - if (aRecipe[i] == X.CONVEYOR) {switch(mTier) { - case 0: case 1: aRecipe[i] = ItemList.Conveyor_Module_LV; break; - case 2: aRecipe[i] = ItemList.Conveyor_Module_MV; break; - case 3: aRecipe[i] = ItemList.Conveyor_Module_HV; break; - case 4: aRecipe[i] = ItemList.Conveyor_Module_EV; break; - case 5: aRecipe[i] = ItemList.Conveyor_Module_IV; break; - case 6: aRecipe[i] = ItemList.Conveyor_Module_LuV; break; - case 7: aRecipe[i] = ItemList.Conveyor_Module_ZPM; break; - default: aRecipe[i] = ItemList.Conveyor_Module_UV; break; - }continue;} - - if (aRecipe[i] == X.EMITTER) {switch(mTier) { - case 0: case 1: aRecipe[i] = ItemList.Emitter_LV; break; - case 2: aRecipe[i] = ItemList.Emitter_MV; break; - case 3: aRecipe[i] = ItemList.Emitter_HV; break; - case 4: aRecipe[i] = ItemList.Emitter_EV; break; - case 5: aRecipe[i] = ItemList.Emitter_IV; break; - case 6: aRecipe[i] = ItemList.Emitter_LuV; break; - case 7: aRecipe[i] = ItemList.Emitter_ZPM; break; - default: aRecipe[i] = ItemList.Emitter_UV; break; - }continue;} - - if (aRecipe[i] == X.SENSOR) {switch(mTier) { - case 0: case 1: aRecipe[i] = ItemList.Sensor_LV; break; - case 2: aRecipe[i] = ItemList.Sensor_MV; break; - case 3: aRecipe[i] = ItemList.Sensor_HV; break; - case 4: aRecipe[i] = ItemList.Sensor_EV; break; - case 5: aRecipe[i] = ItemList.Sensor_IV; break; - case 6: aRecipe[i] = ItemList.Sensor_LuV; break; - case 7: aRecipe[i] = ItemList.Sensor_ZPM; break; - default: aRecipe[i] = ItemList.Sensor_UV; break; - }continue;} - - if (aRecipe[i] == X.FIELD_GENERATOR) {switch(mTier) { - case 0: case 1: aRecipe[i] = ItemList.Field_Generator_LV; break; - case 2: aRecipe[i] = ItemList.Field_Generator_MV; break; - case 3: aRecipe[i] = ItemList.Field_Generator_HV; break; - case 4: aRecipe[i] = ItemList.Field_Generator_EV; break; - case 5: aRecipe[i] = ItemList.Field_Generator_IV; break; - case 6: aRecipe[i] = ItemList.Field_Generator_LuV; break; - case 7: aRecipe[i] = ItemList.Field_Generator_ZPM; break; - default: aRecipe[i] = ItemList.Field_Generator_UV; break; - }continue;} - - if (aRecipe[i] instanceof X) throw new IllegalArgumentException("MISSING TIER MAPPING FOR: " + aRecipe[i] + " AT TIER " + mTier); - } - - if (!GT_ModHandler.addCraftingRecipe(getStackForm(1), RecipeBits.DISMANTLEABLE | RecipeBits.BUFFERED | RecipeBits.NOT_REMOVABLE | RecipeBits.REVERSIBLE, aRecipe)) { - throw new IllegalArgumentException("INVALID CRAFTING RECIPE FOR: " + getStackForm(1).getDisplayName()); - } - } - } - - public GT_MetaTileEntity_BasicMachine_GT_Recipe(String aName, int aTier, String aDescription, GT_Recipe_Map aRecipes, int aInputSlots, int aOutputSlots, int aTankCapacity, int aAmperage, int aGUIParameterA, int aGUIParameterB, ITexture[][][] aTextures, String aGUIName, String aNEIName, String aSound, boolean aSharedTank, boolean aRequiresFluidForFiltering, int aSpecialEffect) { - super(aName, aTier, aAmperage, aDescription, aTextures, aInputSlots, aOutputSlots, aGUIName, aNEIName); - mSharedTank = aSharedTank; - mTankCapacity = aTankCapacity; - mSpecialEffect = aSpecialEffect; - mRequiresFluidForFiltering = aRequiresFluidForFiltering; - mRecipes = aRecipes; - mSound = aSound; - mGUIParameterA = (byte)aGUIParameterA; - mGUIParameterB = (byte)aGUIParameterB; - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_BasicMachine_GT_Recipe(mName, mTier, mDescription, mRecipes, mInputSlotCount, mOutputItems==null?0:mOutputItems.length, mTankCapacity, mAmperage, mGUIParameterA, mGUIParameterB, mTextures, mGUIName, mNEIName, mSound, mSharedTank, mRequiresFluidForFiltering, mSpecialEffect); - } - - @Override + private final GT_Recipe_Map mRecipes; + private final int mTankCapacity, mSpecialEffect; + private final String mSound; + private final boolean mSharedTank, mRequiresFluidForFiltering; + private final byte mGUIParameterA, mGUIParameterB; + public GT_MetaTileEntity_BasicMachine_GT_Recipe(int aID, String aName, String aNameRegional, int aTier, String aDescription, GT_Recipe_Map aRecipes, int aInputSlots, int aOutputSlots, int aTankCapacity, int aGUIParameterA, int aGUIParameterB, String aGUIName, String aSound, boolean aSharedTank, boolean aRequiresFluidForFiltering, int aSpecialEffect, String aOverlays, Object[] aRecipe) { + super(aID, aName, aNameRegional, aTier, aRecipes.mAmperage, aDescription, aInputSlots, aOutputSlots, aGUIName, aRecipes.mNEIName, new ITexture[]{new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/" + aOverlays.toLowerCase() + "/OVERLAY_SIDE_ACTIVE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/" + aOverlays.toLowerCase() + "/OVERLAY_SIDE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/" + aOverlays.toLowerCase() + "/OVERLAY_FRONT_ACTIVE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/" + aOverlays.toLowerCase() + "/OVERLAY_FRONT")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/" + aOverlays.toLowerCase() + "/OVERLAY_TOP_ACTIVE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/" + aOverlays.toLowerCase() + "/OVERLAY_TOP")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/" + aOverlays.toLowerCase() + "/OVERLAY_BOTTOM_ACTIVE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/" + aOverlays.toLowerCase() + "/OVERLAY_BOTTOM"))}); + mSharedTank = aSharedTank; + mTankCapacity = aTankCapacity; + mSpecialEffect = aSpecialEffect; + mRequiresFluidForFiltering = aRequiresFluidForFiltering; + mRecipes = aRecipes; + mSound = aSound; + mGUIParameterA = (byte) aGUIParameterA; + mGUIParameterB = (byte) aGUIParameterB; + + if (aRecipe != null) { + for (int i = 3; i < aRecipe.length; i++) { + if (aRecipe[i] == X.CIRCUIT) { + aRecipe[i] = Tier.ELECTRIC[mTier].mManagingObject; + continue; + } + if (aRecipe[i] == X.BETTER_CIRCUIT) { + aRecipe[i] = Tier.ELECTRIC[mTier].mBetterManagingObject; + continue; + } + if (aRecipe[i] == X.HULL) { + aRecipe[i] = Tier.ELECTRIC[mTier].mHullObject; + continue; + } + if (aRecipe[i] == X.WIRE) { + aRecipe[i] = Tier.ELECTRIC[mTier].mConductingObject; + continue; + } + if (aRecipe[i] == X.WIRE4) { + aRecipe[i] = Tier.ELECTRIC[mTier].mLargerConductingObject; + continue; + } + + if (aRecipe[i] == X.GLASS) { + switch (mTier) { + default: + aRecipe[i] = new ItemStack(Blocks.glass, 1, W); + break; + } + continue; + } + + if (aRecipe[i] == X.PLATE) { + switch (mTier) { + case 0: + case 1: + aRecipe[i] = OrePrefixes.plate.get(Materials.Steel); + break; + case 2: + aRecipe[i] = OrePrefixes.plate.get(Materials.Aluminium); + break; + case 3: + aRecipe[i] = OrePrefixes.plate.get(Materials.StainlessSteel); + break; + case 4: + aRecipe[i] = OrePrefixes.plate.get(Materials.Titanium); + break; + default: + aRecipe[i] = OrePrefixes.plate.get(Materials.TungstenSteel); + break; + } + continue; + } + + if (aRecipe[i] == X.PIPE) { + switch (mTier) { + case 0: + case 1: + aRecipe[i] = OrePrefixes.pipeMedium.get(Materials.Bronze); + break; + case 2: + aRecipe[i] = OrePrefixes.pipeMedium.get(Materials.Steel); + break; + case 3: + aRecipe[i] = OrePrefixes.pipeMedium.get(Materials.StainlessSteel); + break; + case 4: + aRecipe[i] = OrePrefixes.pipeMedium.get(Materials.Titanium); + break; + default: + aRecipe[i] = OrePrefixes.pipeMedium.get(Materials.TungstenSteel); + break; + } + continue; + } + + if (aRecipe[i] == X.COIL_HEATING) { + switch (mTier) { + case 0: + case 1: + aRecipe[i] = OrePrefixes.wireGt02.get(Materials.AnyCopper); + break; + case 2: + aRecipe[i] = OrePrefixes.wireGt02.get(Materials.Cupronickel); + break; + case 3: + aRecipe[i] = OrePrefixes.wireGt02.get(Materials.Kanthal); + break; + case 4: + aRecipe[i] = OrePrefixes.wireGt02.get(Materials.Nichrome); + break; + default: + aRecipe[i] = OrePrefixes.wireGt08.get(Materials.Nichrome); + break; + } + continue; + } + + if (aRecipe[i] == X.COIL_HEATING_DOUBLE) { + switch (mTier) { + case 0: + case 1: + aRecipe[i] = OrePrefixes.wireGt04.get(Materials.AnyCopper); + break; + case 2: + aRecipe[i] = OrePrefixes.wireGt04.get(Materials.Cupronickel); + break; + case 3: + aRecipe[i] = OrePrefixes.wireGt04.get(Materials.Kanthal); + break; + case 4: + aRecipe[i] = OrePrefixes.wireGt04.get(Materials.Nichrome); + break; + default: + aRecipe[i] = OrePrefixes.wireGt16.get(Materials.Nichrome); + break; + } + continue; + } + + if (aRecipe[i] == X.STICK_DISTILLATION) { + switch (mTier) { + default: + aRecipe[i] = OrePrefixes.stick.get(Materials.Blaze); + break; + } + continue; + } + + if (aRecipe[i] == X.STICK_MAGNETIC) { + switch (mTier) { + case 0: + case 1: + aRecipe[i] = OrePrefixes.stick.get(Materials.IronMagnetic); + break; + case 2: + case 3: + aRecipe[i] = OrePrefixes.stick.get(Materials.SteelMagnetic); + break; + default: + aRecipe[i] = OrePrefixes.stick.get(Materials.NeodymiumMagnetic); + break; + } + continue; + } + + if (aRecipe[i] == X.STICK_ELECTROMAGNETIC) { + switch (mTier) { + case 0: + case 1: + aRecipe[i] = OrePrefixes.stick.get(Materials.AnyIron); + break; + case 2: + case 3: + aRecipe[i] = OrePrefixes.stick.get(Materials.Steel); + break; + case 4: + aRecipe[i] = OrePrefixes.stick.get(Materials.Neodymium); + break; + default: + aRecipe[i] = OrePrefixes.stick.get(Materials.VanadiumGallium); + break; + } + continue; + } + + if (aRecipe[i] == X.COIL_ELECTRIC) { + switch (mTier) { + case 0: + aRecipe[i] = OrePrefixes.wireGt01.get(Materials.Tin); + break; + case 1: + aRecipe[i] = OrePrefixes.wireGt02.get(Materials.Tin); + break; + case 2: + aRecipe[i] = OrePrefixes.wireGt02.get(Materials.AnyCopper); + break; + case 3: + aRecipe[i] = OrePrefixes.wireGt04.get(Materials.AnyCopper); + break; + case 4: + aRecipe[i] = OrePrefixes.wireGt08.get(Materials.AnnealedCopper); + break; + default: + aRecipe[i] = OrePrefixes.wireGt16.get(Materials.AnnealedCopper); + break; + } + continue; + } + + if (aRecipe[i] == X.ROBOT_ARM) { + switch (mTier) { + case 0: + case 1: + aRecipe[i] = ItemList.Robot_Arm_LV; + break; + case 2: + aRecipe[i] = ItemList.Robot_Arm_MV; + break; + case 3: + aRecipe[i] = ItemList.Robot_Arm_HV; + break; + case 4: + aRecipe[i] = ItemList.Robot_Arm_EV; + break; + case 5: + aRecipe[i] = ItemList.Robot_Arm_IV; + break; + case 6: + aRecipe[i] = ItemList.Robot_Arm_LuV; + break; + case 7: + aRecipe[i] = ItemList.Robot_Arm_ZPM; + break; + default: + aRecipe[i] = ItemList.Robot_Arm_UV; + break; + } + continue; + } + + if (aRecipe[i] == X.PUMP) { + switch (mTier) { + case 0: + case 1: + aRecipe[i] = ItemList.Electric_Pump_LV; + break; + case 2: + aRecipe[i] = ItemList.Electric_Pump_MV; + break; + case 3: + aRecipe[i] = ItemList.Electric_Pump_HV; + break; + case 4: + aRecipe[i] = ItemList.Electric_Pump_EV; + break; + case 5: + aRecipe[i] = ItemList.Electric_Pump_IV; + break; + case 6: + aRecipe[i] = ItemList.Electric_Pump_LuV; + break; + case 7: + aRecipe[i] = ItemList.Electric_Pump_ZPM; + break; + default: + aRecipe[i] = ItemList.Electric_Pump_UV; + break; + } + continue; + } + + if (aRecipe[i] == X.ROTOR) { + switch (mTier) { + case 0: + case 1: + aRecipe[i] = OrePrefixes.rotor.get(Materials.Tin); + break; + case 2: + aRecipe[i] = OrePrefixes.rotor.get(Materials.Bronze); + break; + case 3: + aRecipe[i] = OrePrefixes.rotor.get(Materials.Steel); + break; + case 4: + aRecipe[i] = OrePrefixes.rotor.get(Materials.StainlessSteel); + break; + case 5: + aRecipe[i] = OrePrefixes.rotor.get(Materials.TungstenSteel); + break; + case 6: + aRecipe[i] = OrePrefixes.rotor.get(Materials.TungstenSteel); + break; + case 7: + aRecipe[i] = OrePrefixes.rotor.get(Materials.TungstenSteel); + break; + default: + aRecipe[i] = OrePrefixes.rotor.get(Materials.TungstenSteel); + break; + } + continue; + } + + if (aRecipe[i] == X.MOTOR) { + switch (mTier) { + case 0: + case 1: + aRecipe[i] = ItemList.Electric_Motor_LV; + break; + case 2: + aRecipe[i] = ItemList.Electric_Motor_MV; + break; + case 3: + aRecipe[i] = ItemList.Electric_Motor_HV; + break; + case 4: + aRecipe[i] = ItemList.Electric_Motor_EV; + break; + case 5: + aRecipe[i] = ItemList.Electric_Motor_IV; + break; + case 6: + aRecipe[i] = ItemList.Electric_Motor_LuV; + break; + case 7: + aRecipe[i] = ItemList.Electric_Motor_ZPM; + break; + default: + aRecipe[i] = ItemList.Electric_Motor_UV; + break; + } + continue; + } + + if (aRecipe[i] == X.PISTON) { + switch (mTier) { + case 0: + case 1: + aRecipe[i] = ItemList.Electric_Piston_LV; + break; + case 2: + aRecipe[i] = ItemList.Electric_Piston_MV; + break; + case 3: + aRecipe[i] = ItemList.Electric_Piston_HV; + break; + case 4: + aRecipe[i] = ItemList.Electric_Piston_EV; + break; + case 5: + aRecipe[i] = ItemList.Electric_Piston_IV; + break; + case 6: + aRecipe[i] = ItemList.Electric_Piston_LuV; + break; + case 7: + aRecipe[i] = ItemList.Electric_Piston_ZPM; + break; + default: + aRecipe[i] = ItemList.Electric_Piston_UV; + break; + } + continue; + } + + if (aRecipe[i] == X.CONVEYOR) { + switch (mTier) { + case 0: + case 1: + aRecipe[i] = ItemList.Conveyor_Module_LV; + break; + case 2: + aRecipe[i] = ItemList.Conveyor_Module_MV; + break; + case 3: + aRecipe[i] = ItemList.Conveyor_Module_HV; + break; + case 4: + aRecipe[i] = ItemList.Conveyor_Module_EV; + break; + case 5: + aRecipe[i] = ItemList.Conveyor_Module_IV; + break; + case 6: + aRecipe[i] = ItemList.Conveyor_Module_LuV; + break; + case 7: + aRecipe[i] = ItemList.Conveyor_Module_ZPM; + break; + default: + aRecipe[i] = ItemList.Conveyor_Module_UV; + break; + } + continue; + } + + if (aRecipe[i] == X.EMITTER) { + switch (mTier) { + case 0: + case 1: + aRecipe[i] = ItemList.Emitter_LV; + break; + case 2: + aRecipe[i] = ItemList.Emitter_MV; + break; + case 3: + aRecipe[i] = ItemList.Emitter_HV; + break; + case 4: + aRecipe[i] = ItemList.Emitter_EV; + break; + case 5: + aRecipe[i] = ItemList.Emitter_IV; + break; + case 6: + aRecipe[i] = ItemList.Emitter_LuV; + break; + case 7: + aRecipe[i] = ItemList.Emitter_ZPM; + break; + default: + aRecipe[i] = ItemList.Emitter_UV; + break; + } + continue; + } + + if (aRecipe[i] == X.SENSOR) { + switch (mTier) { + case 0: + case 1: + aRecipe[i] = ItemList.Sensor_LV; + break; + case 2: + aRecipe[i] = ItemList.Sensor_MV; + break; + case 3: + aRecipe[i] = ItemList.Sensor_HV; + break; + case 4: + aRecipe[i] = ItemList.Sensor_EV; + break; + case 5: + aRecipe[i] = ItemList.Sensor_IV; + break; + case 6: + aRecipe[i] = ItemList.Sensor_LuV; + break; + case 7: + aRecipe[i] = ItemList.Sensor_ZPM; + break; + default: + aRecipe[i] = ItemList.Sensor_UV; + break; + } + continue; + } + + if (aRecipe[i] == X.FIELD_GENERATOR) { + switch (mTier) { + case 0: + case 1: + aRecipe[i] = ItemList.Field_Generator_LV; + break; + case 2: + aRecipe[i] = ItemList.Field_Generator_MV; + break; + case 3: + aRecipe[i] = ItemList.Field_Generator_HV; + break; + case 4: + aRecipe[i] = ItemList.Field_Generator_EV; + break; + case 5: + aRecipe[i] = ItemList.Field_Generator_IV; + break; + case 6: + aRecipe[i] = ItemList.Field_Generator_LuV; + break; + case 7: + aRecipe[i] = ItemList.Field_Generator_ZPM; + break; + default: + aRecipe[i] = ItemList.Field_Generator_UV; + break; + } + continue; + } + + if (aRecipe[i] instanceof X) + throw new IllegalArgumentException("MISSING TIER MAPPING FOR: " + aRecipe[i] + " AT TIER " + mTier); + } + + if (!GT_ModHandler.addCraftingRecipe(getStackForm(1), RecipeBits.DISMANTLEABLE | RecipeBits.BUFFERED | RecipeBits.NOT_REMOVABLE | RecipeBits.REVERSIBLE, aRecipe)) { + throw new IllegalArgumentException("INVALID CRAFTING RECIPE FOR: " + getStackForm(1).getDisplayName()); + } + } + } + + public GT_MetaTileEntity_BasicMachine_GT_Recipe(String aName, int aTier, String aDescription, GT_Recipe_Map aRecipes, int aInputSlots, int aOutputSlots, int aTankCapacity, int aAmperage, int aGUIParameterA, int aGUIParameterB, ITexture[][][] aTextures, String aGUIName, String aNEIName, String aSound, boolean aSharedTank, boolean aRequiresFluidForFiltering, int aSpecialEffect) { + super(aName, aTier, aAmperage, aDescription, aTextures, aInputSlots, aOutputSlots, aGUIName, aNEIName); + mSharedTank = aSharedTank; + mTankCapacity = aTankCapacity; + mSpecialEffect = aSpecialEffect; + mRequiresFluidForFiltering = aRequiresFluidForFiltering; + mRecipes = aRecipes; + mSound = aSound; + mGUIParameterA = (byte) aGUIParameterA; + mGUIParameterB = (byte) aGUIParameterB; + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_BasicMachine_GT_Recipe(mName, mTier, mDescription, mRecipes, mInputSlotCount, mOutputItems == null ? 0 : mOutputItems.length, mTankCapacity, mAmperage, mGUIParameterA, mGUIParameterB, mTextures, mGUIName, mNEIName, mSound, mSharedTank, mRequiresFluidForFiltering, mSpecialEffect); + } + + @Override public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_Container_BasicMachine(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override + return new GT_Container_BasicMachine(aPlayerInventory, aBaseMetaTileEntity); + } + + @Override public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), mGUIName, GT_Utility.isStringValid(mNEIName) ? mNEIName : getRecipeList() != null ? getRecipeList().mUnlocalizedName : "", mGUIParameterA, mGUIParameterB); - } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) return false; - if (mInventory[aIndex] != null) return true; - switch (mInputSlotCount) { - case 0: return false; - case 1: return getFillableStack() == null ? !mRequiresFluidForFiltering && getRecipeList().containsInput(aStack) : null!=getRecipeList().findRecipe(getBaseMetaTileEntity(), mLastRecipe, true, V[mTier], new FluidStack[] {getFillableStack()}, getSpecialSlot(), new ItemStack[] {aStack}); - case 2: return (!mRequiresFluidForFiltering || getFillableStack() != null) && (((getInputAt(0)!=null&&getInputAt(1)!=null) || (getInputAt(0)==null&&getInputAt(1)==null?getRecipeList().containsInput(aStack):null!=getRecipeList().findRecipe(getBaseMetaTileEntity(), mLastRecipe, true, V[mTier], new FluidStack[] {getFillableStack()}, getSpecialSlot(), aIndex == getInputSlot() ? new ItemStack[] {aStack, getInputAt(1)} : new ItemStack[] {getInputAt(0), aStack})))); - default: return getRecipeList().containsInput(aStack); - } - } - - @Override - public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - super.onPreTick(aBaseMetaTileEntity, aTick); - if (aBaseMetaTileEntity.isClientSide() && aBaseMetaTileEntity.isActive()) { - switch (mSpecialEffect) { - case 0: - break; - case 1: - if (aBaseMetaTileEntity.getFrontFacing() != 1 && aBaseMetaTileEntity.getCoverIDAtSide((byte)1) == 0 && !aBaseMetaTileEntity.getOpacityAtSide((byte)1)) { - Random tRandom = aBaseMetaTileEntity.getWorld().rand; - aBaseMetaTileEntity.getWorld().spawnParticle("smoke", aBaseMetaTileEntity.getXCoord() + 0.8F -tRandom.nextFloat()*0.6F, aBaseMetaTileEntity.getYCoord() + 0.9F + tRandom.nextFloat()*0.2F, aBaseMetaTileEntity.getZCoord() + 0.8F -tRandom.nextFloat()*0.6F, 0.0D, 0.0D, 0.0D); - } - break; - } - } - } - - @Override - public GT_Recipe_Map getRecipeList() { - return mRecipes; - } - - @Override - public int getCapacity() { - return mTankCapacity; - } - - @Override - public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) { - super.startSoundLoop(aIndex, aX, aY, aZ); - if (aIndex == 1 && GT_Utility.isStringValid(mSound)) GT_Utility.doSoundAtClient(mSound, 100, 1.0F, aX, aY, aZ); - } - - @Override - public void startProcess() { - if (GT_Utility.isStringValid(mSound)) sendLoopStart((byte)1); - } - - @Override - public FluidStack getFillableStack() { - return mSharedTank ? getDrainableStack() : super.getFillableStack(); - } - - @Override - public FluidStack setFillableStack(FluidStack aFluid) { - return mSharedTank ? setDrainableStack(aFluid) : super.setFillableStack(aFluid); - } - - @Override - protected boolean displaysOutputFluid() { - return !mSharedTank; - } + return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), mGUIName, GT_Utility.isStringValid(mNEIName) ? mNEIName : getRecipeList() != null ? getRecipeList().mUnlocalizedName : "", mGUIParameterA, mGUIParameterB); + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) return false; + if (mInventory[aIndex] != null) return true; + switch (mInputSlotCount) { + case 0: + return false; + case 1: + return getFillableStack() == null ? !mRequiresFluidForFiltering && getRecipeList().containsInput(aStack) : null != getRecipeList().findRecipe(getBaseMetaTileEntity(), mLastRecipe, true, V[mTier], new FluidStack[]{getFillableStack()}, getSpecialSlot(), new ItemStack[]{aStack}); + case 2: + return (!mRequiresFluidForFiltering || getFillableStack() != null) && (((getInputAt(0) != null && getInputAt(1) != null) || (getInputAt(0) == null && getInputAt(1) == null ? getRecipeList().containsInput(aStack) : null != getRecipeList().findRecipe(getBaseMetaTileEntity(), mLastRecipe, true, V[mTier], new FluidStack[]{getFillableStack()}, getSpecialSlot(), aIndex == getInputSlot() ? new ItemStack[]{aStack, getInputAt(1)} : new ItemStack[]{getInputAt(0), aStack})))); + default: + return getRecipeList().containsInput(aStack); + } + } + + @Override + public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + super.onPreTick(aBaseMetaTileEntity, aTick); + if (aBaseMetaTileEntity.isClientSide() && aBaseMetaTileEntity.isActive()) { + switch (mSpecialEffect) { + case 0: + break; + case 1: + if (aBaseMetaTileEntity.getFrontFacing() != 1 && aBaseMetaTileEntity.getCoverIDAtSide((byte) 1) == 0 && !aBaseMetaTileEntity.getOpacityAtSide((byte) 1)) { + Random tRandom = aBaseMetaTileEntity.getWorld().rand; + aBaseMetaTileEntity.getWorld().spawnParticle("smoke", aBaseMetaTileEntity.getXCoord() + 0.8F - tRandom.nextFloat() * 0.6F, aBaseMetaTileEntity.getYCoord() + 0.9F + tRandom.nextFloat() * 0.2F, aBaseMetaTileEntity.getZCoord() + 0.8F - tRandom.nextFloat() * 0.6F, 0.0D, 0.0D, 0.0D); + } + break; + } + } + } + + @Override + public GT_Recipe_Map getRecipeList() { + return mRecipes; + } + + @Override + public int getCapacity() { + return mTankCapacity; + } + + @Override + public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) { + super.startSoundLoop(aIndex, aX, aY, aZ); + if (aIndex == 1 && GT_Utility.isStringValid(mSound)) GT_Utility.doSoundAtClient(mSound, 100, 1.0F, aX, aY, aZ); + } + + @Override + public void startProcess() { + if (GT_Utility.isStringValid(mSound)) sendLoopStart((byte) 1); + } + + @Override + public FluidStack getFillableStack() { + return mSharedTank ? getDrainableStack() : super.getFillableStack(); + } + + @Override + public FluidStack setFillableStack(FluidStack aFluid) { + return mSharedTank ? setDrainableStack(aFluid) : super.setFillableStack(aFluid); + } + + @Override + protected boolean displaysOutputFluid() { + return !mSharedTank; + } + + public static enum X {PUMP, WIRE, WIRE4, HULL, PIPE, GLASS, PLATE, MOTOR, ROTOR, SENSOR, PISTON, CIRCUIT, EMITTER, CONVEYOR, ROBOT_ARM, COIL_HEATING, COIL_ELECTRIC, STICK_MAGNETIC, STICK_DISTILLATION, BETTER_CIRCUIT, FIELD_GENERATOR, COIL_HEATING_DOUBLE, STICK_ELECTROMAGNETIC;} } \ No newline at end of file diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Steel.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Steel.java index a9a172bb..00a79f26 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Steel.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Steel.java @@ -8,96 +8,97 @@ import gregtech.api.objects.GT_RenderedTexture; /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* This is the main construct for my Basic Machines such as the Automatic Extractor * Extend this class to make a simple Machine */ public abstract class GT_MetaTileEntity_BasicMachine_Steel extends GT_MetaTileEntity_BasicMachine_Bronze { - public GT_MetaTileEntity_BasicMachine_Steel(int aID, String aName, String aNameRegional, String aDescription, int aInputSlotCount, int aOutputSlotCount, boolean aBricked) { - super(aID, aName, aNameRegional, aDescription, aInputSlotCount, aOutputSlotCount, aBricked); - } - - public GT_MetaTileEntity_BasicMachine_Steel(String aName, String aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, boolean aBricked) { - super(aName, aDescription, aTextures, aInputSlotCount, aOutputSlotCount, aBricked); - } - /* - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_BasicMachine_Steel(mTier, mDescription, mTextures); - } - */ - @Override - public float getSteamDamage() { - return 12.0F; - } - - @Override - public ITexture[] getSideFacingActive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE:Textures.BlockIcons.MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; - } - - @Override - public ITexture[] getSideFacingInactive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE:Textures.BlockIcons.MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; - } - - @Override - public ITexture[] getFrontFacingActive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE:Textures.BlockIcons.MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; - } - - @Override - public ITexture[] getFrontFacingInactive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE:Textures.BlockIcons.MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; - } - - @Override - public ITexture[] getTopFacingActive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_STEELBRICKS_TOP:Textures.BlockIcons.MACHINE_STEEL_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; - } - - @Override - public ITexture[] getTopFacingInactive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_STEELBRICKS_TOP:Textures.BlockIcons.MACHINE_STEEL_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; - } - - @Override - public ITexture[] getBottomFacingActive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_STEELBRICKS_BOTTOM:Textures.BlockIcons.MACHINE_STEEL_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; - } - - @Override - public ITexture[] getBottomFacingInactive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_STEELBRICKS_BOTTOM:Textures.BlockIcons.MACHINE_STEEL_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; - } - - @Override - public ITexture[] getBottomFacingPipeActive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_STEELBRICKS_BOTTOM:Textures.BlockIcons.MACHINE_STEEL_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; - } - - @Override - public ITexture[] getBottomFacingPipeInactive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_STEELBRICKS_BOTTOM:Textures.BlockIcons.MACHINE_STEEL_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; - } - - @Override - public ITexture[] getTopFacingPipeActive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_STEELBRICKS_TOP:Textures.BlockIcons.MACHINE_STEEL_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; - } - - @Override - public ITexture[] getTopFacingPipeInactive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_STEELBRICKS_TOP:Textures.BlockIcons.MACHINE_STEEL_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; - } - - @Override - public ITexture[] getSideFacingPipeActive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE:Textures.BlockIcons.MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; - } - - @Override - public ITexture[] getSideFacingPipeInactive(byte aColor) { - return new ITexture[] {new GT_RenderedTexture(mTier==1?Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE:Textures.BlockIcons.MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; - } + public GT_MetaTileEntity_BasicMachine_Steel(int aID, String aName, String aNameRegional, String aDescription, int aInputSlotCount, int aOutputSlotCount, boolean aBricked) { + super(aID, aName, aNameRegional, aDescription, aInputSlotCount, aOutputSlotCount, aBricked); + } + + public GT_MetaTileEntity_BasicMachine_Steel(String aName, String aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, boolean aBricked) { + super(aName, aDescription, aTextures, aInputSlotCount, aOutputSlotCount, aBricked); + } + + /* + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_BasicMachine_Steel(mTier, mDescription, mTextures); + } + */ + @Override + public float getSteamDamage() { + return 12.0F; + } + + @Override + public ITexture[] getSideFacingActive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE : Textures.BlockIcons.MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + } + + @Override + public ITexture[] getSideFacingInactive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE : Textures.BlockIcons.MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + } + + @Override + public ITexture[] getFrontFacingActive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE : Textures.BlockIcons.MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + } + + @Override + public ITexture[] getFrontFacingInactive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE : Textures.BlockIcons.MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + } + + @Override + public ITexture[] getTopFacingActive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_STEELBRICKS_TOP : Textures.BlockIcons.MACHINE_STEEL_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + } + + @Override + public ITexture[] getTopFacingInactive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_STEELBRICKS_TOP : Textures.BlockIcons.MACHINE_STEEL_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + } + + @Override + public ITexture[] getBottomFacingActive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_STEELBRICKS_BOTTOM : Textures.BlockIcons.MACHINE_STEEL_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + } + + @Override + public ITexture[] getBottomFacingInactive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_STEELBRICKS_BOTTOM : Textures.BlockIcons.MACHINE_STEEL_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa))}; + } + + @Override + public ITexture[] getBottomFacingPipeActive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_STEELBRICKS_BOTTOM : Textures.BlockIcons.MACHINE_STEEL_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; + } + + @Override + public ITexture[] getBottomFacingPipeInactive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_STEELBRICKS_BOTTOM : Textures.BlockIcons.MACHINE_STEEL_BOTTOM, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; + } + + @Override + public ITexture[] getTopFacingPipeActive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_STEELBRICKS_TOP : Textures.BlockIcons.MACHINE_STEEL_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; + } + + @Override + public ITexture[] getTopFacingPipeInactive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_STEELBRICKS_TOP : Textures.BlockIcons.MACHINE_STEEL_TOP, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; + } + + @Override + public ITexture[] getSideFacingPipeActive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE : Textures.BlockIcons.MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; + } + + @Override + public ITexture[] getSideFacingPipeInactive(byte aColor) { + return new ITexture[]{new GT_RenderedTexture(mTier == 1 ? Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE : Textures.BlockIcons.MACHINE_STEEL_SIDE, Dyes.getModulation(aColor, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicTank.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicTank.java index 594411c3..b6d3e3ca 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicTank.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicTank.java @@ -13,194 +13,239 @@ import net.minecraftforge.fluids.FluidStack; /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* This is the main construct for my generic Tanks. Filling and emptying behavior have to be implemented manually */ public abstract class GT_MetaTileEntity_BasicTank extends GT_MetaTileEntity_TieredMachineBlock { - - public FluidStack mFluid; - - /** - * @param aInvSlotCount should be 3 - */ - public GT_MetaTileEntity_BasicTank(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String aDescription, ITexture... aTextures) { - super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription, aTextures); - } - - public GT_MetaTileEntity_BasicTank(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) { - super(aName, aTier, aInvSlotCount, aDescription, aTextures); - } - - @Override public boolean isSimpleMachine() {return false;} - @Override public boolean isValidSlot(int aIndex) {return aIndex != getStackDisplaySlot();} - - @Override - public void saveNBTData(NBTTagCompound aNBT) { - if (mFluid != null) aNBT.setTag("mFluid", mFluid.writeToNBT(new NBTTagCompound())); - } - - @Override - public void loadNBTData(NBTTagCompound aNBT) { - mFluid = FluidStack.loadFluidStackFromNBT(aNBT.getCompoundTag("mFluid")); - } - - public abstract boolean doesFillContainers(); - public abstract boolean doesEmptyContainers(); - public abstract boolean canTankBeFilled(); - public abstract boolean canTankBeEmptied(); - public abstract boolean displaysItemStack(); - public abstract boolean displaysStackSize(); - public int getInputSlot() {return 0;} - public int getOutputSlot() {return 1;} - public int getStackDisplaySlot() {return 2;} - - public boolean isFluidInputAllowed(FluidStack aFluid) {return true;} - public boolean isFluidChangingAllowed() {return true;} - - public FluidStack getFillableStack() {return mFluid;} - public FluidStack setFillableStack(FluidStack aFluid) {mFluid = aFluid; return mFluid;} - public FluidStack getDrainableStack() {return mFluid;} - public FluidStack setDrainableStack(FluidStack aFluid) {mFluid = aFluid; return mFluid;} - public FluidStack getDisplayedFluid() {return getDrainableStack();} - - @Override - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_Container_BasicTank(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_BasicTank(aPlayerInventory, aBaseMetaTileEntity, getLocalName()); - } - - @Override - public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - if (aBaseMetaTileEntity.isServerSide()) { - if (isFluidChangingAllowed() && getFillableStack() != null && getFillableStack().amount <= 0) setFillableStack(null); - - if (displaysItemStack() && getStackDisplaySlot() >= 0 && getStackDisplaySlot() < mInventory.length) { - if (getDisplayedFluid() == null) { - if (ItemList.Display_Fluid.isStackEqual(mInventory[getStackDisplaySlot()], true, true)) mInventory[getStackDisplaySlot()] = null; - } else { - mInventory[getStackDisplaySlot()] = GT_Utility.getFluidDisplayStack(getDisplayedFluid(), displaysStackSize()); - } - } - - if (doesEmptyContainers()) { - FluidStack tFluid = GT_Utility.getFluidForFilledItem(mInventory[getInputSlot()], true); - if (tFluid != null && isFluidInputAllowed(tFluid)) { - if (getFillableStack() == null) { - if (isFluidInputAllowed(tFluid) && tFluid.amount <= getCapacity()) { - if (aBaseMetaTileEntity.addStackToSlot(getOutputSlot(), GT_Utility.getContainerItem(mInventory[getInputSlot()], true), 1)) { - setFillableStack(tFluid.copy()); - aBaseMetaTileEntity.decrStackSize(getInputSlot(), 1); - } - } - } else { - if (tFluid.isFluidEqual(getFillableStack()) && tFluid.amount + getFillableStack().amount <= getCapacity()) { - if (aBaseMetaTileEntity.addStackToSlot(getOutputSlot(), GT_Utility.getContainerItem(mInventory[getInputSlot()], true), 1)) { - getFillableStack().amount+=tFluid.amount; - aBaseMetaTileEntity.decrStackSize(getInputSlot(), 1); - } - } - } - } - } - - if (doesFillContainers()) { - ItemStack tOutput = GT_Utility.fillFluidContainer(getDrainableStack(), mInventory[getInputSlot()], false, true); - if (tOutput != null && aBaseMetaTileEntity.addStackToSlot(getOutputSlot(), tOutput, 1)) { - FluidStack tFluid = GT_Utility.getFluidForFilledItem(tOutput, true); - aBaseMetaTileEntity.decrStackSize(getInputSlot(), 1); - if (tFluid != null) getDrainableStack().amount -= tFluid.amount; - if (getDrainableStack().amount <= 0 && isFluidChangingAllowed()) setDrainableStack(null); - } - } - } - } - - @Override - public FluidStack getFluid() { - return getDrainableStack(); - } - - @Override - public int getFluidAmount() { - return getDrainableStack() != null ? getDrainableStack().amount : 0; - } - - @Override - public int fill(FluidStack aFluid, boolean doFill) { - if (aFluid == null || aFluid.getFluid().getID() <= 0 || aFluid.amount <= 0 || !canTankBeFilled() || !isFluidInputAllowed(aFluid)) return 0; - - if (getFillableStack() == null || getFillableStack().getFluid().getID() <= 0) { - if(aFluid.amount <= getCapacity()) { - if (doFill) { - setFillableStack(aFluid.copy()); - getBaseMetaTileEntity().markDirty(); - } - return aFluid.amount; - } - if (doFill) { - setFillableStack(aFluid.copy()); - getFillableStack().amount = getCapacity(); - getBaseMetaTileEntity().markDirty(); - } - return getCapacity(); - } - - if (!getFillableStack().isFluidEqual(aFluid)) - return 0; - int space = getCapacity() - getFillableStack().amount; - if (aFluid.amount <= space) { - if (doFill) { - getFillableStack().amount += aFluid.amount; - getBaseMetaTileEntity().markDirty(); - } - return aFluid.amount; - } - if (doFill) - getFillableStack().amount = getCapacity(); - return space; - } - - @Override - public FluidStack drain(int maxDrain, boolean doDrain) { - if (getDrainableStack() == null || !canTankBeEmptied()) return null; - if (getDrainableStack().amount <= 0 && isFluidChangingAllowed()) { - setDrainableStack(null); - getBaseMetaTileEntity().markDirty(); - return null; - } - - int used = maxDrain; - if (getDrainableStack().amount < used) - used = getDrainableStack().amount; - - if (doDrain) { - getDrainableStack().amount -= used; - getBaseMetaTileEntity().markDirty(); - } - - FluidStack drained = getDrainableStack().copy(); - drained.amount = used; - - if (getDrainableStack().amount <= 0 && isFluidChangingAllowed()) { - setDrainableStack(null); - getBaseMetaTileEntity().markDirty(); - } - - return drained; - } - - @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aIndex==getOutputSlot(); - } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aIndex==getInputSlot(); - } + public FluidStack mFluid; + + /** + * @param aInvSlotCount should be 3 + */ + public GT_MetaTileEntity_BasicTank(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String aDescription, ITexture... aTextures) { + super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription, aTextures); + } + + public GT_MetaTileEntity_BasicTank(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aInvSlotCount, aDescription, aTextures); + } + + @Override + public boolean isSimpleMachine() { + return false; + } + + @Override + public boolean isValidSlot(int aIndex) { + return aIndex != getStackDisplaySlot(); + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + if (mFluid != null) aNBT.setTag("mFluid", mFluid.writeToNBT(new NBTTagCompound())); + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + mFluid = FluidStack.loadFluidStackFromNBT(aNBT.getCompoundTag("mFluid")); + } + + public abstract boolean doesFillContainers(); + + public abstract boolean doesEmptyContainers(); + + public abstract boolean canTankBeFilled(); + + public abstract boolean canTankBeEmptied(); + + public abstract boolean displaysItemStack(); + + public abstract boolean displaysStackSize(); + + public int getInputSlot() { + return 0; + } + + public int getOutputSlot() { + return 1; + } + + public int getStackDisplaySlot() { + return 2; + } + + public boolean isFluidInputAllowed(FluidStack aFluid) { + return true; + } + + public boolean isFluidChangingAllowed() { + return true; + } + + public FluidStack getFillableStack() { + return mFluid; + } + + public FluidStack setFillableStack(FluidStack aFluid) { + mFluid = aFluid; + return mFluid; + } + + public FluidStack getDrainableStack() { + return mFluid; + } + + public FluidStack setDrainableStack(FluidStack aFluid) { + mFluid = aFluid; + return mFluid; + } + + public FluidStack getDisplayedFluid() { + return getDrainableStack(); + } + + @Override + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_Container_BasicTank(aPlayerInventory, aBaseMetaTileEntity); + } + + @Override + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_BasicTank(aPlayerInventory, aBaseMetaTileEntity, getLocalName()); + } + + @Override + public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + if (aBaseMetaTileEntity.isServerSide()) { + if (isFluidChangingAllowed() && getFillableStack() != null && getFillableStack().amount <= 0) + setFillableStack(null); + + if (displaysItemStack() && getStackDisplaySlot() >= 0 && getStackDisplaySlot() < mInventory.length) { + if (getDisplayedFluid() == null) { + if (ItemList.Display_Fluid.isStackEqual(mInventory[getStackDisplaySlot()], true, true)) + mInventory[getStackDisplaySlot()] = null; + } else { + mInventory[getStackDisplaySlot()] = GT_Utility.getFluidDisplayStack(getDisplayedFluid(), displaysStackSize()); + } + } + + if (doesEmptyContainers()) { + FluidStack tFluid = GT_Utility.getFluidForFilledItem(mInventory[getInputSlot()], true); + if (tFluid != null && isFluidInputAllowed(tFluid)) { + if (getFillableStack() == null) { + if (isFluidInputAllowed(tFluid) && tFluid.amount <= getCapacity()) { + if (aBaseMetaTileEntity.addStackToSlot(getOutputSlot(), GT_Utility.getContainerItem(mInventory[getInputSlot()], true), 1)) { + setFillableStack(tFluid.copy()); + aBaseMetaTileEntity.decrStackSize(getInputSlot(), 1); + } + } + } else { + if (tFluid.isFluidEqual(getFillableStack()) && tFluid.amount + getFillableStack().amount <= getCapacity()) { + if (aBaseMetaTileEntity.addStackToSlot(getOutputSlot(), GT_Utility.getContainerItem(mInventory[getInputSlot()], true), 1)) { + getFillableStack().amount += tFluid.amount; + aBaseMetaTileEntity.decrStackSize(getInputSlot(), 1); + } + } + } + } + } + + if (doesFillContainers()) { + ItemStack tOutput = GT_Utility.fillFluidContainer(getDrainableStack(), mInventory[getInputSlot()], false, true); + if (tOutput != null && aBaseMetaTileEntity.addStackToSlot(getOutputSlot(), tOutput, 1)) { + FluidStack tFluid = GT_Utility.getFluidForFilledItem(tOutput, true); + aBaseMetaTileEntity.decrStackSize(getInputSlot(), 1); + if (tFluid != null) getDrainableStack().amount -= tFluid.amount; + if (getDrainableStack().amount <= 0 && isFluidChangingAllowed()) setDrainableStack(null); + } + } + } + } + + @Override + public FluidStack getFluid() { + return getDrainableStack(); + } + + @Override + public int getFluidAmount() { + return getDrainableStack() != null ? getDrainableStack().amount : 0; + } + + @Override + public int fill(FluidStack aFluid, boolean doFill) { + if (aFluid == null || aFluid.getFluid().getID() <= 0 || aFluid.amount <= 0 || !canTankBeFilled() || !isFluidInputAllowed(aFluid)) + return 0; + + if (getFillableStack() == null || getFillableStack().getFluid().getID() <= 0) { + if (aFluid.amount <= getCapacity()) { + if (doFill) { + setFillableStack(aFluid.copy()); + getBaseMetaTileEntity().markDirty(); + } + return aFluid.amount; + } + if (doFill) { + setFillableStack(aFluid.copy()); + getFillableStack().amount = getCapacity(); + getBaseMetaTileEntity().markDirty(); + } + return getCapacity(); + } + + if (!getFillableStack().isFluidEqual(aFluid)) + return 0; + + int space = getCapacity() - getFillableStack().amount; + if (aFluid.amount <= space) { + if (doFill) { + getFillableStack().amount += aFluid.amount; + getBaseMetaTileEntity().markDirty(); + } + return aFluid.amount; + } + if (doFill) + getFillableStack().amount = getCapacity(); + return space; + } + + @Override + public FluidStack drain(int maxDrain, boolean doDrain) { + if (getDrainableStack() == null || !canTankBeEmptied()) return null; + if (getDrainableStack().amount <= 0 && isFluidChangingAllowed()) { + setDrainableStack(null); + getBaseMetaTileEntity().markDirty(); + return null; + } + + int used = maxDrain; + if (getDrainableStack().amount < used) + used = getDrainableStack().amount; + + if (doDrain) { + getDrainableStack().amount -= used; + getBaseMetaTileEntity().markDirty(); + } + + FluidStack drained = getDrainableStack().copy(); + drained.amount = used; + + if (getDrainableStack().amount <= 0 && isFluidChangingAllowed()) { + setDrainableStack(null); + getBaseMetaTileEntity().markDirty(); + } + + return drained; + } + + @Override + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return aIndex == getOutputSlot(); + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return aIndex == getInputSlot(); + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java index e6d5fe73..d631cf41 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java @@ -1,6 +1,5 @@ package gregtech.api.metatileentity.implementations; -import static gregtech.api.enums.GT_Values.V; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -10,163 +9,245 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import static gregtech.api.enums.GT_Values.V; + public abstract class GT_MetaTileEntity_Buffer extends GT_MetaTileEntity_TieredMachineBlock { - public boolean bOutput = false, bRedstoneIfFull = false, bInvert = false; - public int mSuccess = 0, mTargetStackSize = 0; - - public GT_MetaTileEntity_Buffer(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String aDescription) { - super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription); - } - - public GT_MetaTileEntity_Buffer(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) { - super(aName, aTier, aInvSlotCount, aDescription, aTextures); - } - - @Override - public ITexture[][][] getTextureSet(ITexture[] aTextures) { - ITexture[][][] rTextures = new ITexture[6][17][]; - ITexture tIcon = getOverlayIcon(), tOut = new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT), tUp = new GT_RenderedTexture(Textures.BlockIcons.ARROW_UP), tDown = new GT_RenderedTexture(Textures.BlockIcons.ARROW_DOWN), tLeft = new GT_RenderedTexture(Textures.BlockIcons.ARROW_LEFT), tRight = new GT_RenderedTexture(Textures.BlockIcons.ARROW_RIGHT); - for (byte i = -1; i < 16; i++) { - rTextures[ 0][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1], tOut }; - rTextures[ 1][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1], tRight , tIcon }; - rTextures[ 2][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1], tDown , tIcon }; - rTextures[ 3][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1], tLeft , tIcon }; - rTextures[ 4][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1], tUp , tIcon }; - rTextures[ 5][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1] , tIcon }; - } - return rTextures; - } - - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { - if (aSide == aFacing) return mTextures[5][aColorIndex+1]; - if (GT_Utility.getOppositeSide(aSide) == aFacing) return mTextures[0][aColorIndex+1]; - switch (aFacing) { - case 0: - return mTextures[4][aColorIndex+1]; - case 1: - return mTextures[2][aColorIndex+1]; - case 2: switch (aSide) { - case 0: return mTextures[2][aColorIndex+1]; - case 1: return mTextures[2][aColorIndex+1]; - case 4: return mTextures[1][aColorIndex+1]; - case 5: return mTextures[3][aColorIndex+1]; - } - case 3: switch (aSide) { - case 0: return mTextures[4][aColorIndex+1]; - case 1: return mTextures[4][aColorIndex+1]; - case 4: return mTextures[3][aColorIndex+1]; - case 5: return mTextures[1][aColorIndex+1]; - } - case 4: switch (aSide) { - case 0: return mTextures[3][aColorIndex+1]; - case 1: return mTextures[1][aColorIndex+1]; - case 2: return mTextures[3][aColorIndex+1]; - case 3: return mTextures[1][aColorIndex+1]; - } - case 5: switch (aSide) { - case 0: return mTextures[1][aColorIndex+1]; - case 1: return mTextures[3][aColorIndex+1]; - case 2: return mTextures[1][aColorIndex+1]; - case 3: return mTextures[3][aColorIndex+1]; - } - } - return mTextures[5][aColorIndex+1]; - } - - @Override public boolean isSimpleMachine() {return false;} - @Override public boolean isValidSlot(int aIndex) {return aIndex 0) aNBT.setInteger("mTargetStackSize", mTargetStackSize); - } - - @Override - public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { - if (aSide == getBaseMetaTileEntity().getBackFacing()) { - mTargetStackSize=(byte)((mTargetStackSize+1)%65); - if (mTargetStackSize == 0) { - GT_Utility.sendChatToPlayer(aPlayer, "Do not regulate Item Stack Size"); - } else { - GT_Utility.sendChatToPlayer(aPlayer, "Regulate Item Stack Size to: " + mTargetStackSize); - } - } - } - - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) { - if (aBaseMetaTileEntity.isAllowedToWork() && aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.isUniversalEnergyStored(getMinimumStoredEU()) && (aBaseMetaTileEntity.hasWorkJustBeenEnabled() || aBaseMetaTileEntity.hasInventoryBeenModified() || aTimer%200 == 0 || mSuccess > 0)) { - mSuccess--; - moveItems(aBaseMetaTileEntity, aTimer); - aBaseMetaTileEntity.setGenericRedstoneOutput(bInvert); - if (bRedstoneIfFull) { - aBaseMetaTileEntity.setGenericRedstoneOutput(!bInvert); - for (int i = 0; i < mInventory.length; i++) if (isValidSlot(i)) { - if (mInventory[i] == null) { - aBaseMetaTileEntity.setGenericRedstoneOutput(bInvert); - aBaseMetaTileEntity.decreaseStoredEnergyUnits(1, true); - break; - } - } - } - } - } - - protected void moveItems(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) { - int tCost = GT_Utility.moveOneItemStack(aBaseMetaTileEntity, aBaseMetaTileEntity.getTileEntityAtSide(aBaseMetaTileEntity.getBackFacing()), aBaseMetaTileEntity.getBackFacing(), aBaseMetaTileEntity.getFrontFacing(), null, false, mTargetStackSize==0?64:(byte)mTargetStackSize, mTargetStackSize==0?1:(byte)mTargetStackSize, (byte)64, (byte)1); - if (tCost > 0 || aBaseMetaTileEntity.hasInventoryBeenModified()) { - mSuccess = 50; - aBaseMetaTileEntity.decreaseStoredEnergyUnits(Math.abs(tCost), true); - } - } - - @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return true; - } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aSide != aBaseMetaTileEntity.getBackFacing(); - } + public boolean bOutput = false, bRedstoneIfFull = false, bInvert = false; + public int mSuccess = 0, mTargetStackSize = 0; + + public GT_MetaTileEntity_Buffer(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String aDescription) { + super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription); + } + + public GT_MetaTileEntity_Buffer(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aInvSlotCount, aDescription, aTextures); + } + + @Override + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + ITexture[][][] rTextures = new ITexture[6][17][]; + ITexture tIcon = getOverlayIcon(), tOut = new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT), tUp = new GT_RenderedTexture(Textures.BlockIcons.ARROW_UP), tDown = new GT_RenderedTexture(Textures.BlockIcons.ARROW_DOWN), tLeft = new GT_RenderedTexture(Textures.BlockIcons.ARROW_LEFT), tRight = new GT_RenderedTexture(Textures.BlockIcons.ARROW_RIGHT); + for (byte i = -1; i < 16; i++) { + rTextures[0][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], tOut}; + rTextures[1][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], tRight, tIcon}; + rTextures[2][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], tDown, tIcon}; + rTextures[3][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], tLeft, tIcon}; + rTextures[4][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], tUp, tIcon}; + rTextures[5][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], tIcon}; + } + return rTextures; + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + if (aSide == aFacing) return mTextures[5][aColorIndex + 1]; + if (GT_Utility.getOppositeSide(aSide) == aFacing) return mTextures[0][aColorIndex + 1]; + switch (aFacing) { + case 0: + return mTextures[4][aColorIndex + 1]; + case 1: + return mTextures[2][aColorIndex + 1]; + case 2: + switch (aSide) { + case 0: + return mTextures[2][aColorIndex + 1]; + case 1: + return mTextures[2][aColorIndex + 1]; + case 4: + return mTextures[1][aColorIndex + 1]; + case 5: + return mTextures[3][aColorIndex + 1]; + } + case 3: + switch (aSide) { + case 0: + return mTextures[4][aColorIndex + 1]; + case 1: + return mTextures[4][aColorIndex + 1]; + case 4: + return mTextures[3][aColorIndex + 1]; + case 5: + return mTextures[1][aColorIndex + 1]; + } + case 4: + switch (aSide) { + case 0: + return mTextures[3][aColorIndex + 1]; + case 1: + return mTextures[1][aColorIndex + 1]; + case 2: + return mTextures[3][aColorIndex + 1]; + case 3: + return mTextures[1][aColorIndex + 1]; + } + case 5: + switch (aSide) { + case 0: + return mTextures[1][aColorIndex + 1]; + case 1: + return mTextures[3][aColorIndex + 1]; + case 2: + return mTextures[1][aColorIndex + 1]; + case 3: + return mTextures[3][aColorIndex + 1]; + } + } + return mTextures[5][aColorIndex + 1]; + } + + @Override + public boolean isSimpleMachine() { + return false; + } + + @Override + public boolean isValidSlot(int aIndex) { + return aIndex < mInventory.length - 1; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return true; + } + + @Override + public boolean isEnetInput() { + return true; + } + + @Override + public boolean isEnetOutput() { + return true; + } + + @Override + public boolean isInputFacing(byte aSide) { + return !isOutputFacing(aSide); + } + + @Override + public boolean isOutputFacing(byte aSide) { + return getBaseMetaTileEntity().getBackFacing() == aSide; + } + + @Override + public boolean isTeleporterCompatible() { + return false; + } + + @Override + public long getMinimumStoredEU() { + return 512; + } + + @Override + public long maxEUStore() { + return 512 + V[mTier] * 50; + } + + @Override + public long maxEUInput() { + return V[mTier]; + } + + @Override + public long maxEUOutput() { + return bOutput ? V[mTier] : 0; + } + + @Override + public long maxAmperesIn() { + return 2; + } + + @Override + public long maxAmperesOut() { + return 2; + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + public abstract ITexture getOverlayIcon(); + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + if (aBaseMetaTileEntity.isClientSide()) return true; + aBaseMetaTileEntity.openGUI(aPlayer); + return true; + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + aNBT.setBoolean("bInvert", bInvert); + aNBT.setBoolean("bOutput", bOutput); + aNBT.setBoolean("bRedstoneIfFull", bRedstoneIfFull); + aNBT.setInteger("mTargetStackSize", mTargetStackSize); + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + bInvert = aNBT.getBoolean("bInvert"); + bOutput = aNBT.getBoolean("bOutput"); + bRedstoneIfFull = aNBT.getBoolean("bRedstoneIfFull"); + mTargetStackSize = aNBT.getInteger("mTargetStackSize"); + } + + @Override + public void setItemNBT(NBTTagCompound aNBT) { + super.setItemNBT(aNBT); + if (mTargetStackSize > 0) aNBT.setInteger("mTargetStackSize", mTargetStackSize); + } + + @Override + public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { + if (aSide == getBaseMetaTileEntity().getBackFacing()) { + mTargetStackSize = (byte) ((mTargetStackSize + 1) % 65); + if (mTargetStackSize == 0) { + GT_Utility.sendChatToPlayer(aPlayer, "Do not regulate Item Stack Size"); + } else { + GT_Utility.sendChatToPlayer(aPlayer, "Regulate Item Stack Size to: " + mTargetStackSize); + } + } + } + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) { + if (aBaseMetaTileEntity.isAllowedToWork() && aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.isUniversalEnergyStored(getMinimumStoredEU()) && (aBaseMetaTileEntity.hasWorkJustBeenEnabled() || aBaseMetaTileEntity.hasInventoryBeenModified() || aTimer % 200 == 0 || mSuccess > 0)) { + mSuccess--; + moveItems(aBaseMetaTileEntity, aTimer); + aBaseMetaTileEntity.setGenericRedstoneOutput(bInvert); + if (bRedstoneIfFull) { + aBaseMetaTileEntity.setGenericRedstoneOutput(!bInvert); + for (int i = 0; i < mInventory.length; i++) + if (isValidSlot(i)) { + if (mInventory[i] == null) { + aBaseMetaTileEntity.setGenericRedstoneOutput(bInvert); + aBaseMetaTileEntity.decreaseStoredEnergyUnits(1, true); + break; + } + } + } + } + } + + protected void moveItems(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) { + int tCost = GT_Utility.moveOneItemStack(aBaseMetaTileEntity, aBaseMetaTileEntity.getTileEntityAtSide(aBaseMetaTileEntity.getBackFacing()), aBaseMetaTileEntity.getBackFacing(), aBaseMetaTileEntity.getFrontFacing(), null, false, mTargetStackSize == 0 ? 64 : (byte) mTargetStackSize, mTargetStackSize == 0 ? 1 : (byte) mTargetStackSize, (byte) 64, (byte) 1); + if (tCost > 0 || aBaseMetaTileEntity.hasInventoryBeenModified()) { + mSuccess = 50; + aBaseMetaTileEntity.decreaseStoredEnergyUnits(Math.abs(tCost), true); + } + } + + @Override + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return true; + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return aSide != aBaseMetaTileEntity.getBackFacing(); + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java index 709f3d4f..619f4f8b 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java @@ -6,84 +6,84 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.nbt.NBTTagCompound; public abstract class GT_MetaTileEntity_Hatch extends GT_MetaTileEntity_BasicTank { - - public byte mMachineBlock = 0; - - public static int getSlots(int aTier) - { - return aTier < 1 ? 1 : aTier == 1 ? 4 : aTier == 2 ? 9 : 16; - } - - public GT_MetaTileEntity_Hatch(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String aDescription, ITexture... aTextures) { - super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription, aTextures); - } - - public GT_MetaTileEntity_Hatch(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) { - super(aName, aTier, aInvSlotCount, aDescription, aTextures); - } - - @Override - public ITexture[][][] getTextureSet(ITexture[] aTextures) { - return new ITexture[0][0][0]; - } - - public abstract ITexture[] getTexturesActive(ITexture aBaseTexture); - public abstract ITexture[] getTexturesInactive(ITexture aBaseTexture); - - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { - return aSide != aFacing ? mMachineBlock != 0 ? new ITexture[] {Textures.BlockIcons.CASING_BLOCKS[mMachineBlock]} : new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex+1]} : mMachineBlock != 0 ? aActive ? getTexturesActive(Textures.BlockIcons.CASING_BLOCKS[mMachineBlock]) : getTexturesInactive(Textures.BlockIcons.CASING_BLOCKS[mMachineBlock]) : aActive ? getTexturesActive(Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex+1]) : getTexturesInactive(Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex+1]); - } - - @Override - public void saveNBTData(NBTTagCompound aNBT) { - super.saveNBTData(aNBT); - aNBT.setByte("mMachineBlock", mMachineBlock); - } - - @Override - public void loadNBTData(NBTTagCompound aNBT) { - super.loadNBTData(aNBT); - mMachineBlock = aNBT.getByte("mMachineBlock"); - } - - @Override - public final void onValueUpdate(byte aValue) { - mMachineBlock = (byte)(aValue & 127); - } - - @Override - public final byte getUpdateData() { - return (byte)(mMachineBlock & 127); - } - - @Override - public boolean doesFillContainers() { - return false; - } - - @Override - public boolean doesEmptyContainers() { - return false; - } - - @Override - public boolean canTankBeFilled() { - return false; - } - - @Override - public boolean canTankBeEmptied() { - return false; - } - - @Override - public boolean displaysItemStack() { - return false; - } - - @Override - public boolean displaysStackSize() { - return false; - } + + public byte mMachineBlock = 0; + + public GT_MetaTileEntity_Hatch(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String aDescription, ITexture... aTextures) { + super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription, aTextures); + } + + public GT_MetaTileEntity_Hatch(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aInvSlotCount, aDescription, aTextures); + } + + public static int getSlots(int aTier) { + return aTier < 1 ? 1 : aTier == 1 ? 4 : aTier == 2 ? 9 : 16; + } + + @Override + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + return new ITexture[0][0][0]; + } + + public abstract ITexture[] getTexturesActive(ITexture aBaseTexture); + + public abstract ITexture[] getTexturesInactive(ITexture aBaseTexture); + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + return aSide != aFacing ? mMachineBlock != 0 ? new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[mMachineBlock]} : new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1]} : mMachineBlock != 0 ? aActive ? getTexturesActive(Textures.BlockIcons.CASING_BLOCKS[mMachineBlock]) : getTexturesInactive(Textures.BlockIcons.CASING_BLOCKS[mMachineBlock]) : aActive ? getTexturesActive(Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1]) : getTexturesInactive(Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1]); + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + aNBT.setByte("mMachineBlock", mMachineBlock); + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + mMachineBlock = aNBT.getByte("mMachineBlock"); + } + + @Override + public final void onValueUpdate(byte aValue) { + mMachineBlock = (byte) (aValue & 127); + } + + @Override + public final byte getUpdateData() { + return (byte) (mMachineBlock & 127); + } + + @Override + public boolean doesFillContainers() { + return false; + } + + @Override + public boolean doesEmptyContainers() { + return false; + } + + @Override + public boolean canTankBeFilled() { + return false; + } + + @Override + public boolean canTankBeEmptied() { + return false; + } + + @Override + public boolean displaysItemStack() { + return false; + } + + @Override + public boolean displaysStackSize() { + return false; + } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Dynamo.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Dynamo.java index caeec17b..2eda016f 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Dynamo.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Dynamo.java @@ -1,6 +1,5 @@ package gregtech.api.metatileentity.implementations; -import static gregtech.api.enums.GT_Values.V; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -8,47 +7,84 @@ import gregtech.api.metatileentity.MetaTileEntity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import static gregtech.api.enums.GT_Values.V; + public class GT_MetaTileEntity_Hatch_Dynamo extends GT_MetaTileEntity_Hatch { - public GT_MetaTileEntity_Hatch_Dynamo(int aID, String aName, String aNameRegional, int aTier) { - super(aID, aName, aNameRegional, aTier, 0, "Generating electric Energy from Multiblocks"); - } - - public GT_MetaTileEntity_Hatch_Dynamo(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { - super(aName, aTier, 0, aDescription, aTextures); - } - - @Override - public ITexture[] getTexturesActive(ITexture aBaseTexture) { - return new ITexture[] {aBaseTexture, Textures.BlockIcons.OVERLAYS_ENERGY_OUT_MULTI[mTier]}; - } - - @Override - public ITexture[] getTexturesInactive(ITexture aBaseTexture) { - return new ITexture[] {aBaseTexture, Textures.BlockIcons.OVERLAYS_ENERGY_OUT_MULTI[mTier]}; - } - - @Override public boolean isSimpleMachine() {return true;} - @Override public boolean isFacingValid(byte aFacing) {return true;} - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - @Override public boolean isEnetOutput() {return true;} - @Override public boolean isOutputFacing(byte aSide) {return aSide==getBaseMetaTileEntity().getFrontFacing();} - @Override public boolean isValidSlot(int aIndex) {return false;} - @Override public long getMinimumStoredEU() {return 512;} - @Override public long maxEUOutput() {return V[mTier];} - @Override public long maxEUStore() {return 512+V[mTier+1]*2;} - - @Override - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_Hatch_Dynamo(mName, mTier, mDescription, mTextures); - } - - @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } + public GT_MetaTileEntity_Hatch_Dynamo(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 0, "Generating electric Energy from Multiblocks"); + } + + public GT_MetaTileEntity_Hatch_Dynamo(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 0, aDescription, aTextures); + } + + @Override + public ITexture[] getTexturesActive(ITexture aBaseTexture) { + return new ITexture[]{aBaseTexture, Textures.BlockIcons.OVERLAYS_ENERGY_OUT_MULTI[mTier]}; + } + + @Override + public ITexture[] getTexturesInactive(ITexture aBaseTexture) { + return new ITexture[]{aBaseTexture, Textures.BlockIcons.OVERLAYS_ENERGY_OUT_MULTI[mTier]}; + } + + @Override + public boolean isSimpleMachine() { + return true; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return true; + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + @Override + public boolean isEnetOutput() { + return true; + } + + @Override + public boolean isOutputFacing(byte aSide) { + return aSide == getBaseMetaTileEntity().getFrontFacing(); + } + + @Override + public boolean isValidSlot(int aIndex) { + return false; + } + + @Override + public long getMinimumStoredEU() { + return 512; + } + + @Override + public long maxEUOutput() { + return V[mTier]; + } + + @Override + public long maxEUStore() { + return 512 + V[mTier + 1] * 2; + } + + @Override + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Hatch_Dynamo(mName, mTier, mDescription, mTextures); + } + + @Override + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return false; + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return false; + } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy.java index 571fbe01..91bf149e 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy.java @@ -1,6 +1,5 @@ package gregtech.api.metatileentity.implementations; -import static gregtech.api.enums.GT_Values.V; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -8,48 +7,89 @@ import gregtech.api.metatileentity.MetaTileEntity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import static gregtech.api.enums.GT_Values.V; + public class GT_MetaTileEntity_Hatch_Energy extends GT_MetaTileEntity_Hatch { - public GT_MetaTileEntity_Hatch_Energy(int aID, String aName, String aNameRegional, int aTier) { - super(aID, aName, aNameRegional, aTier, 0, "Energy Injector for Multiblocks"); - } - - public GT_MetaTileEntity_Hatch_Energy(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { - super(aName, aTier, 0, aDescription, aTextures); - } - - @Override - public ITexture[] getTexturesActive(ITexture aBaseTexture) { - return new ITexture[] {aBaseTexture, Textures.BlockIcons.OVERLAYS_ENERGY_IN_MULTI[mTier]}; - } - - @Override - public ITexture[] getTexturesInactive(ITexture aBaseTexture) { - return new ITexture[] {aBaseTexture, Textures.BlockIcons.OVERLAYS_ENERGY_IN_MULTI[mTier]}; - } - - @Override public boolean isSimpleMachine() {return true;} - @Override public boolean isFacingValid(byte aFacing) {return true;} - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - @Override public boolean isEnetInput() {return true;} - @Override public boolean isInputFacing(byte aSide) {return aSide==getBaseMetaTileEntity().getFrontFacing();} - @Override public boolean isValidSlot(int aIndex) {return false;} - @Override public long getMinimumStoredEU() {return 512;} - @Override public long maxEUInput() {return V[mTier];} - @Override public long maxEUStore() {return 512+V[mTier]*8;} - @Override public long maxAmperesIn() {return 2;} - - @Override - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_Hatch_Energy(mName, mTier, mDescription, mTextures); - } - - @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } + public GT_MetaTileEntity_Hatch_Energy(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 0, "Energy Injector for Multiblocks"); + } + + public GT_MetaTileEntity_Hatch_Energy(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 0, aDescription, aTextures); + } + + @Override + public ITexture[] getTexturesActive(ITexture aBaseTexture) { + return new ITexture[]{aBaseTexture, Textures.BlockIcons.OVERLAYS_ENERGY_IN_MULTI[mTier]}; + } + + @Override + public ITexture[] getTexturesInactive(ITexture aBaseTexture) { + return new ITexture[]{aBaseTexture, Textures.BlockIcons.OVERLAYS_ENERGY_IN_MULTI[mTier]}; + } + + @Override + public boolean isSimpleMachine() { + return true; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return true; + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + @Override + public boolean isEnetInput() { + return true; + } + + @Override + public boolean isInputFacing(byte aSide) { + return aSide == getBaseMetaTileEntity().getFrontFacing(); + } + + @Override + public boolean isValidSlot(int aIndex) { + return false; + } + + @Override + public long getMinimumStoredEU() { + return 512; + } + + @Override + public long maxEUInput() { + return V[mTier]; + } + + @Override + public long maxEUStore() { + return 512 + V[mTier] * 8; + } + + @Override + public long maxAmperesIn() { + return 2; + } + + @Override + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Hatch_Energy(mName, mTier, mDescription, mTextures); + } + + @Override + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return false; + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return false; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Input.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Input.java index 64f2aaad..4484347b 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Input.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Input.java @@ -12,75 +12,110 @@ import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; public class GT_MetaTileEntity_Hatch_Input extends GT_MetaTileEntity_Hatch { - public GT_Recipe_Map mRecipeMap = null; - - public GT_MetaTileEntity_Hatch_Input(int aID, String aName, String aNameRegional, int aTier) { - super(aID, aName, aNameRegional, aTier, 3, "Fluid Input for Multiblocks (" + 8000 * (aTier + 1) + "L)"); - } - - public GT_MetaTileEntity_Hatch_Input(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { - super(aName, aTier, 3, aDescription, aTextures); - } - - @Override - public ITexture[] getTexturesActive(ITexture aBaseTexture) { - return new ITexture[] {aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_IN)}; - } - - @Override - public ITexture[] getTexturesInactive(ITexture aBaseTexture) { - return new ITexture[] {aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_IN)}; - } - - @Override public boolean isSimpleMachine() {return true;} - @Override public boolean isFacingValid(byte aFacing) {return true;} - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - - @Override - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_Hatch_Input(mName, mTier, mDescription, mTextures); - } - - @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) return true; - aBaseMetaTileEntity.openGUI(aPlayer); - return true; - } - - @Override public boolean doesFillContainers() {return true;} - @Override public boolean doesEmptyContainers() {return true;} - @Override public boolean canTankBeFilled() {return true;} - @Override public boolean canTankBeEmptied() {return true;} - @Override public boolean displaysItemStack() {return true;} - @Override public boolean displaysStackSize() {return false;} - - public void updateSlots() { - if (mInventory[getInputSlot()] != null && mInventory[getInputSlot()].stackSize <= 0) mInventory[getInputSlot()] = null; - } - - @Override - public boolean isFluidInputAllowed(FluidStack aFluid) { - return mRecipeMap == null || mRecipeMap.containsInput(aFluid); - } - - @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aSide == aBaseMetaTileEntity.getFrontFacing() && aIndex == 1; - } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aSide == aBaseMetaTileEntity.getFrontFacing() && aIndex == 0 && (mRecipeMap == null || mRecipeMap.containsInput(aStack) || mRecipeMap.containsInput(GT_Utility.getFluidForFilledItem(aStack, true))); - } - - @Override - public int getCapacity() { - return 8000 * (mTier + 1); - } - - @Override - public int getTankPressure() { - return -100; - } + public GT_Recipe_Map mRecipeMap = null; + + public GT_MetaTileEntity_Hatch_Input(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 3, "Fluid Input for Multiblocks (" + 8000 * (aTier + 1) + "L)"); + } + + public GT_MetaTileEntity_Hatch_Input(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 3, aDescription, aTextures); + } + + @Override + public ITexture[] getTexturesActive(ITexture aBaseTexture) { + return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_IN)}; + } + + @Override + public ITexture[] getTexturesInactive(ITexture aBaseTexture) { + return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_IN)}; + } + + @Override + public boolean isSimpleMachine() { + return true; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return true; + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + @Override + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Hatch_Input(mName, mTier, mDescription, mTextures); + } + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + if (aBaseMetaTileEntity.isClientSide()) return true; + aBaseMetaTileEntity.openGUI(aPlayer); + return true; + } + + @Override + public boolean doesFillContainers() { + return true; + } + + @Override + public boolean doesEmptyContainers() { + return true; + } + + @Override + public boolean canTankBeFilled() { + return true; + } + + @Override + public boolean canTankBeEmptied() { + return true; + } + + @Override + public boolean displaysItemStack() { + return true; + } + + @Override + public boolean displaysStackSize() { + return false; + } + + public void updateSlots() { + if (mInventory[getInputSlot()] != null && mInventory[getInputSlot()].stackSize <= 0) + mInventory[getInputSlot()] = null; + } + + @Override + public boolean isFluidInputAllowed(FluidStack aFluid) { + return mRecipeMap == null || mRecipeMap.containsInput(aFluid); + } + + @Override + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return aSide == aBaseMetaTileEntity.getFrontFacing() && aIndex == 1; + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return aSide == aBaseMetaTileEntity.getFrontFacing() && aIndex == 0 && (mRecipeMap == null || mRecipeMap.containsInput(aStack) || mRecipeMap.containsInput(GT_Utility.getFluidForFilledItem(aStack, true))); + } + + @Override + public int getCapacity() { + return 8000 * (mTier + 1); + } + + @Override + public int getTankPressure() { + return -100; + } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java index ac66ea6c..13b269c7 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java @@ -13,89 +13,116 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; public class GT_MetaTileEntity_Hatch_InputBus extends GT_MetaTileEntity_Hatch { - public GT_Recipe_Map mRecipeMap = null; - - public GT_MetaTileEntity_Hatch_InputBus(int aID, String aName, String aNameRegional, int aTier) { - super(aID, aName, aNameRegional, aTier, getSlots(aTier), "Item Input for Multiblocks (" + getSlots(aTier) + " slot" + (getSlots(aTier) >= 2 ? "s" : "") + ")"); - } - - public GT_MetaTileEntity_Hatch_InputBus(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { - super(aName, aTier, aTier<1?1:aTier==1?4:aTier==2?9:16, aDescription, aTextures); - } - - @Override - public ITexture[] getTexturesActive(ITexture aBaseTexture) { - return new ITexture[] {aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_IN)}; - } - - @Override - public ITexture[] getTexturesInactive(ITexture aBaseTexture) { - return new ITexture[] {aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_IN)}; - } - - @Override public boolean isSimpleMachine() {return true;} - @Override public boolean isFacingValid(byte aFacing) {return true;} - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - @Override public boolean isValidSlot(int aIndex) {return true;} - - @Override - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_Hatch_InputBus(mName, mTier, mDescription, mTextures); - } - - @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) return true; - aBaseMetaTileEntity.openGUI(aPlayer); - return true; - } - - @Override + public GT_Recipe_Map mRecipeMap = null; + + public GT_MetaTileEntity_Hatch_InputBus(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, getSlots(aTier), "Item Input for Multiblocks (" + getSlots(aTier) + " slot" + (getSlots(aTier) >= 2 ? "s" : "") + ")"); + } + + public GT_MetaTileEntity_Hatch_InputBus(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aTier < 1 ? 1 : aTier == 1 ? 4 : aTier == 2 ? 9 : 16, aDescription, aTextures); + } + + @Override + public ITexture[] getTexturesActive(ITexture aBaseTexture) { + return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_IN)}; + } + + @Override + public ITexture[] getTexturesInactive(ITexture aBaseTexture) { + return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_IN)}; + } + + @Override + public boolean isSimpleMachine() { + return true; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return true; + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + @Override + public boolean isValidSlot(int aIndex) { + return true; + } + + @Override + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Hatch_InputBus(mName, mTier, mDescription, mTextures); + } + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + if (aBaseMetaTileEntity.isClientSide()) return true; + aBaseMetaTileEntity.openGUI(aPlayer); + return true; + } + + @Override public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - switch (mTier) { - case 0: return new GT_Container_1by1(aPlayerInventory, aBaseMetaTileEntity); - case 1: return new GT_Container_2by2(aPlayerInventory, aBaseMetaTileEntity); - case 2: return new GT_Container_3by3(aPlayerInventory, aBaseMetaTileEntity); - default: return new GT_Container_4by4(aPlayerInventory, aBaseMetaTileEntity); - } - } - - @Override + switch (mTier) { + case 0: + return new GT_Container_1by1(aPlayerInventory, aBaseMetaTileEntity); + case 1: + return new GT_Container_2by2(aPlayerInventory, aBaseMetaTileEntity); + case 2: + return new GT_Container_3by3(aPlayerInventory, aBaseMetaTileEntity); + default: + return new GT_Container_4by4(aPlayerInventory, aBaseMetaTileEntity); + } + } + + @Override public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - switch (mInventory.length) { - case 1: return new GT_GUIContainer_1by1(aPlayerInventory, aBaseMetaTileEntity, "Input Bus"); - case 4: return new GT_GUIContainer_2by2(aPlayerInventory, aBaseMetaTileEntity, "Input Bus"); - case 9: return new GT_GUIContainer_3by3(aPlayerInventory, aBaseMetaTileEntity, "Input Bus"); - case 16: return new GT_GUIContainer_4by4(aPlayerInventory, aBaseMetaTileEntity, "Input Bus"); - default: return new GT_GUIContainer_4by4(aPlayerInventory, aBaseMetaTileEntity, "Input Bus"); - } - } - - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) { - if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.hasInventoryBeenModified()) { - fillStacksIntoFirstSlots(); - } - } - - public void updateSlots() { - for (int i = 0; i < mInventory.length; i++) if (mInventory[i] != null && mInventory[i].stackSize <= 0) mInventory[i] = null; - fillStacksIntoFirstSlots(); - } - - protected void fillStacksIntoFirstSlots() { - for (int i = 0; i < mInventory.length; i++) for (int j = i + 1; j < mInventory.length; j++) if (mInventory[j] != null && (mInventory[i] == null || GT_Utility.areStacksEqual(mInventory[i], mInventory[j]))) { - GT_Utility.moveStackFromSlotAToSlotB(getBaseMetaTileEntity(), getBaseMetaTileEntity(), j, i, (byte)64, (byte)1, (byte)64, (byte)1); - } - } - - @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aSide == getBaseMetaTileEntity().getFrontFacing() && (mRecipeMap == null || mRecipeMap.containsInput(aStack)); - } + switch (mInventory.length) { + case 1: + return new GT_GUIContainer_1by1(aPlayerInventory, aBaseMetaTileEntity, "Input Bus"); + case 4: + return new GT_GUIContainer_2by2(aPlayerInventory, aBaseMetaTileEntity, "Input Bus"); + case 9: + return new GT_GUIContainer_3by3(aPlayerInventory, aBaseMetaTileEntity, "Input Bus"); + case 16: + return new GT_GUIContainer_4by4(aPlayerInventory, aBaseMetaTileEntity, "Input Bus"); + default: + return new GT_GUIContainer_4by4(aPlayerInventory, aBaseMetaTileEntity, "Input Bus"); + } + } + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) { + if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.hasInventoryBeenModified()) { + fillStacksIntoFirstSlots(); + } + } + + public void updateSlots() { + for (int i = 0; i < mInventory.length; i++) + if (mInventory[i] != null && mInventory[i].stackSize <= 0) mInventory[i] = null; + fillStacksIntoFirstSlots(); + } + + protected void fillStacksIntoFirstSlots() { + for (int i = 0; i < mInventory.length; i++) + for (int j = i + 1; j < mInventory.length; j++) + if (mInventory[j] != null && (mInventory[i] == null || GT_Utility.areStacksEqual(mInventory[i], mInventory[j]))) { + GT_Utility.moveStackFromSlotAToSlotB(getBaseMetaTileEntity(), getBaseMetaTileEntity(), j, i, (byte) 64, (byte) 1, (byte) 64, (byte) 1); + } + } + + @Override + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return false; + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return aSide == getBaseMetaTileEntity().getFrontFacing() && (mRecipeMap == null || mRecipeMap.containsInput(aStack)); + } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java index cd04a07d..ee45c536 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java @@ -20,89 +20,112 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch { - public boolean mWrench = false, mScrewdriver = false, mSoftHammer = false, mHardHammer = false, mSolderingTool = false, mCrowbar = false; + public boolean mWrench = false, mScrewdriver = false, mSoftHammer = false, mHardHammer = false, mSolderingTool = false, mCrowbar = false; - public GT_MetaTileEntity_Hatch_Maintenance(int aID, String aName, String aNameRegional, int aTier) { - super(aID, aName, aNameRegional, aTier, 1, "For maintaining Multiblocks"); - } - - public GT_MetaTileEntity_Hatch_Maintenance(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { - super(aName, aTier, 1, aDescription, aTextures); - } - - @Override - public String[] getDescription() { - return new String[] {mDescription, "Cannot be shared between Multiblocks!"}; - } - - @Override - public ITexture[] getTexturesActive(ITexture aBaseTexture) { - return new ITexture[] {aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_MAINTENANCE)}; - } - - @Override - public ITexture[] getTexturesInactive(ITexture aBaseTexture) { - return new ITexture[] {aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_MAINTENANCE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_DUCTTAPE)}; - } - - @Override - public void initDefaultModes(NBTTagCompound aNBT) { - getBaseMetaTileEntity().setActive(true); - } - - @Override public boolean isSimpleMachine() {return true;} - @Override public boolean isFacingValid(byte aFacing) {return true;} - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - @Override public boolean isValidSlot(int aIndex) {return false;} - - @Override - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_Hatch_Maintenance(mName, mTier, mDescription, mTextures); - } - - @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) { - if (aBaseMetaTileEntity.isClientSide()) return true; - if (aSide == aBaseMetaTileEntity.getFrontFacing()) aBaseMetaTileEntity.openGUI(aPlayer); - return true; - } - - @Override + public GT_MetaTileEntity_Hatch_Maintenance(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 1, "For maintaining Multiblocks"); + } + + public GT_MetaTileEntity_Hatch_Maintenance(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 1, aDescription, aTextures); + } + + @Override + public String[] getDescription() { + return new String[]{mDescription, "Cannot be shared between Multiblocks!"}; + } + + @Override + public ITexture[] getTexturesActive(ITexture aBaseTexture) { + return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_MAINTENANCE)}; + } + + @Override + public ITexture[] getTexturesInactive(ITexture aBaseTexture) { + return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_MAINTENANCE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_DUCTTAPE)}; + } + + @Override + public void initDefaultModes(NBTTagCompound aNBT) { + getBaseMetaTileEntity().setActive(true); + } + + @Override + public boolean isSimpleMachine() { + return true; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return true; + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + @Override + public boolean isValidSlot(int aIndex) { + return false; + } + + @Override + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Hatch_Maintenance(mName, mTier, mDescription, mTextures); + } + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) { + if (aBaseMetaTileEntity.isClientSide()) return true; + if (aSide == aBaseMetaTileEntity.getFrontFacing()) aBaseMetaTileEntity.openGUI(aPlayer); + return true; + } + + @Override public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_Container_MaintenanceHatch(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override + return new GT_Container_MaintenanceHatch(aPlayerInventory, aBaseMetaTileEntity); + } + + @Override public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_MaintenanceHatch(aPlayerInventory, aBaseMetaTileEntity); - } - - public void onToolClick(ItemStack aStack, EntityLivingBase aPlayer) { - if (aStack == null || aPlayer == null) return; - if (GT_Utility.isStackInList(aStack, GregTech_API.sWrenchList ) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) mWrench = true; - if (GT_Utility.isStackInList(aStack, GregTech_API.sScrewdriverList ) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) mScrewdriver = true; - if (GT_Utility.isStackInList(aStack, GregTech_API.sSoftHammerList ) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) mSoftHammer = true; - if (GT_Utility.isStackInList(aStack, GregTech_API.sHardHammerList ) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) mHardHammer = true; - if (GT_Utility.isStackInList(aStack, GregTech_API.sCrowbarList ) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) mCrowbar = true; - if (GT_ModHandler.useSolderingIron(aStack, aPlayer)) mSolderingTool = true; - if (GT_OreDictUnificator.isItemStackInstanceOf(aStack, "craftingDuctTape")) { - mWrench = mScrewdriver = mSoftHammer = mHardHammer = mCrowbar = mSolderingTool = true; - getBaseMetaTileEntity().setActive(false); - aStack.stackSize--; - } - if(mSolderingTool&&aPlayer instanceof EntityPlayerMP){ - EntityPlayerMP tPlayer = (EntityPlayerMP) aPlayer; - try{GT_Mod.instance.achievements.issueAchievement( tPlayer, "maintainance");}catch(Exception e){} - } - } - - @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } + return new GT_GUIContainer_MaintenanceHatch(aPlayerInventory, aBaseMetaTileEntity); + } + + public void onToolClick(ItemStack aStack, EntityLivingBase aPlayer) { + if (aStack == null || aPlayer == null) return; + if (GT_Utility.isStackInList(aStack, GregTech_API.sWrenchList) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) + mWrench = true; + if (GT_Utility.isStackInList(aStack, GregTech_API.sScrewdriverList) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) + mScrewdriver = true; + if (GT_Utility.isStackInList(aStack, GregTech_API.sSoftHammerList) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) + mSoftHammer = true; + if (GT_Utility.isStackInList(aStack, GregTech_API.sHardHammerList) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) + mHardHammer = true; + if (GT_Utility.isStackInList(aStack, GregTech_API.sCrowbarList) && GT_ModHandler.damageOrDechargeItem(aStack, 1, 1000, aPlayer)) + mCrowbar = true; + if (GT_ModHandler.useSolderingIron(aStack, aPlayer)) mSolderingTool = true; + if (GT_OreDictUnificator.isItemStackInstanceOf(aStack, "craftingDuctTape")) { + mWrench = mScrewdriver = mSoftHammer = mHardHammer = mCrowbar = mSolderingTool = true; + getBaseMetaTileEntity().setActive(false); + aStack.stackSize--; + } + if (mSolderingTool && aPlayer instanceof EntityPlayerMP) { + EntityPlayerMP tPlayer = (EntityPlayerMP) aPlayer; + try { + GT_Mod.instance.achievements.issueAchievement(tPlayer, "maintainance"); + } catch (Exception e) { + } + } + } + + @Override + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return false; + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return false; + } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java index de3b9968..8d6a3c0e 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java @@ -9,50 +9,65 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; public class GT_MetaTileEntity_Hatch_Muffler extends GT_MetaTileEntity_Hatch { - public GT_MetaTileEntity_Hatch_Muffler(int aID, String aName, String aNameRegional, int aTier) { - super(aID, aName, aNameRegional, aTier, 0, "Outputs the Pollution (Pollution might come later)"); - } - - public GT_MetaTileEntity_Hatch_Muffler(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { - super(aName, aTier, 0, aDescription, aTextures); - } - - @Override - public String[] getDescription() { - return new String[] {mDescription, "DO NOT OBSTRUCT THE OUTPUT!"}; - } - - @Override - public ITexture[] getTexturesActive(ITexture aBaseTexture) { - return new ITexture[] {aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_MUFFLER)}; - } - - @Override - public ITexture[] getTexturesInactive(ITexture aBaseTexture) { - return new ITexture[] {aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_MUFFLER)}; - } - - @Override public boolean isSimpleMachine() {return true;} - @Override public boolean isFacingValid(byte aFacing) {return true;} - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - @Override public boolean isValidSlot(int aIndex) {return false;} - - @Override - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_Hatch_Muffler(mName, mTier, mDescription, mTextures); - } - - public boolean polluteEnvironment() { - return (mTier > 1 && getBaseMetaTileEntity().getRandomNumber(mTier) != 0) || getBaseMetaTileEntity().getAirAtSide(getBaseMetaTileEntity().getFrontFacing()); - } - - @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } + public GT_MetaTileEntity_Hatch_Muffler(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 0, "Outputs the Pollution (Pollution might come later)"); + } + + public GT_MetaTileEntity_Hatch_Muffler(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 0, aDescription, aTextures); + } + + @Override + public String[] getDescription() { + return new String[]{mDescription, "DO NOT OBSTRUCT THE OUTPUT!"}; + } + + @Override + public ITexture[] getTexturesActive(ITexture aBaseTexture) { + return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_MUFFLER)}; + } + + @Override + public ITexture[] getTexturesInactive(ITexture aBaseTexture) { + return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_MUFFLER)}; + } + + @Override + public boolean isSimpleMachine() { + return true; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return true; + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + @Override + public boolean isValidSlot(int aIndex) { + return false; + } + + @Override + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Hatch_Muffler(mName, mTier, mDescription, mTextures); + } + + public boolean polluteEnvironment() { + return (mTier > 1 && getBaseMetaTileEntity().getRandomNumber(mTier) != 0) || getBaseMetaTileEntity().getAirAtSide(getBaseMetaTileEntity().getFrontFacing()); + } + + @Override + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return false; + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return false; + } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java index ecf6627a..036f5e21 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java @@ -14,128 +14,183 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidHandler; public class GT_MetaTileEntity_Hatch_Output extends GT_MetaTileEntity_Hatch { - public byte mMode = 0; + public byte mMode = 0; - public GT_MetaTileEntity_Hatch_Output(int aID, String aName, String aNameRegional, int aTier) { - super(aID, aName, aNameRegional, aTier, 3, "Fluid Output for Multiblocks (" + 8000 * (aTier + 1) + "L) (Screwdriver for output type)"); - } - - public GT_MetaTileEntity_Hatch_Output(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { - super(aName, aTier, 3, aDescription, aTextures); - } - - @Override - public ITexture[] getTexturesActive(ITexture aBaseTexture) { - return new ITexture[] {aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; - } - - @Override - public ITexture[] getTexturesInactive(ITexture aBaseTexture) { - return new ITexture[] {aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; - } - - @Override public boolean isSimpleMachine() {return true;} - @Override public boolean isFacingValid(byte aFacing) {return true;} - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - @Override public boolean isLiquidInput(byte aSide) {return false;} - - @Override - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_Hatch_Output(mName, mTier, mDescription, mTextures); - } - - @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) return true; - aBaseMetaTileEntity.openGUI(aPlayer); - return true; - } + public GT_MetaTileEntity_Hatch_Output(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 3, "Fluid Output for Multiblocks (" + 8000 * (aTier + 1) + "L) (Screwdriver for output type)"); + } - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - super.onPostTick(aBaseMetaTileEntity, aTick); - if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.isAllowedToWork()) { - IFluidHandler tTileEntity = aBaseMetaTileEntity.getITankContainerAtSide(aBaseMetaTileEntity.getFrontFacing()); - if (tTileEntity != null) { - for (boolean temp = true; temp && mFluid != null;) { - temp = false; - FluidStack tDrained = aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(aBaseMetaTileEntity.getFrontFacing()), Math.max(1, mFluid.amount), false); - if (tDrained != null) { - int tFilledAmount = tTileEntity.fill(ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()), tDrained, false); - if (tFilledAmount > 0) { - temp = true; - tTileEntity.fill(ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()), aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(aBaseMetaTileEntity.getFrontFacing()), tFilledAmount, true), true); - } - } - } - } - } - } - - @Override - public void saveNBTData(NBTTagCompound aNBT) { - super.saveNBTData(aNBT); - aNBT.setByte("mMode", mMode); - } - - @Override - public void loadNBTData(NBTTagCompound aNBT) { - super.loadNBTData(aNBT); - mMode = aNBT.getByte("mMode"); - } - - @Override public boolean doesFillContainers() {return true;} - @Override public boolean doesEmptyContainers() {return true;} - @Override public boolean canTankBeFilled() {return true;} - @Override public boolean canTankBeEmptied() {return true;} - @Override public boolean displaysItemStack() {return true;} - @Override public boolean displaysStackSize() {return false;} - - @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aSide == aBaseMetaTileEntity.getFrontFacing() && aIndex == 1; - } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aSide == aBaseMetaTileEntity.getFrontFacing() && aIndex == 0; - } - - @Override - public int getCapacity() { - return 8000 * (mTier + 1); - } - - @Override - public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { - if (!getBaseMetaTileEntity().getCoverBehaviorAtSide(aSide).isGUIClickable(aSide, getBaseMetaTileEntity().getCoverIDAtSide(aSide), getBaseMetaTileEntity().getCoverDataAtSide(aSide), getBaseMetaTileEntity())) return; - mMode = (byte)((mMode + 1) % 8); - switch (mMode) { - case 0: GT_Utility.sendChatToPlayer(aPlayer, "Outputs Liquids, Steam and Items"); break; - case 1: GT_Utility.sendChatToPlayer(aPlayer, "Outputs Steam and Items"); break; - case 2: GT_Utility.sendChatToPlayer(aPlayer, "Outputs Steam and Liquids"); break; - case 3: GT_Utility.sendChatToPlayer(aPlayer, "Outputs Steam"); break; - case 4: GT_Utility.sendChatToPlayer(aPlayer, "Outputs Liquids and Items"); break; - case 5: GT_Utility.sendChatToPlayer(aPlayer, "Outputs only Items"); break; - case 6: GT_Utility.sendChatToPlayer(aPlayer, "Outputs only Liquids"); break; - case 7: GT_Utility.sendChatToPlayer(aPlayer, "Outputs nothing"); break; - } - } - - public boolean outputsSteam() { - return mMode < 4; - } - - public boolean outputsLiquids() { - return mMode % 2 == 0; - } - - public boolean outputsItems() { - return mMode % 4 < 2; - } - - @Override - public int getTankPressure() { - return +100; - } + public GT_MetaTileEntity_Hatch_Output(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 3, aDescription, aTextures); + } + + @Override + public ITexture[] getTexturesActive(ITexture aBaseTexture) { + return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; + } + + @Override + public ITexture[] getTexturesInactive(ITexture aBaseTexture) { + return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; + } + + @Override + public boolean isSimpleMachine() { + return true; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return true; + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + @Override + public boolean isLiquidInput(byte aSide) { + return false; + } + + @Override + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Hatch_Output(mName, mTier, mDescription, mTextures); + } + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + if (aBaseMetaTileEntity.isClientSide()) return true; + aBaseMetaTileEntity.openGUI(aPlayer); + return true; + } + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + super.onPostTick(aBaseMetaTileEntity, aTick); + if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.isAllowedToWork()) { + IFluidHandler tTileEntity = aBaseMetaTileEntity.getITankContainerAtSide(aBaseMetaTileEntity.getFrontFacing()); + if (tTileEntity != null) { + for (boolean temp = true; temp && mFluid != null; ) { + temp = false; + FluidStack tDrained = aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(aBaseMetaTileEntity.getFrontFacing()), Math.max(1, mFluid.amount), false); + if (tDrained != null) { + int tFilledAmount = tTileEntity.fill(ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()), tDrained, false); + if (tFilledAmount > 0) { + temp = true; + tTileEntity.fill(ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()), aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(aBaseMetaTileEntity.getFrontFacing()), tFilledAmount, true), true); + } + } + } + } + } + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + aNBT.setByte("mMode", mMode); + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + mMode = aNBT.getByte("mMode"); + } + + @Override + public boolean doesFillContainers() { + return true; + } + + @Override + public boolean doesEmptyContainers() { + return true; + } + + @Override + public boolean canTankBeFilled() { + return true; + } + + @Override + public boolean canTankBeEmptied() { + return true; + } + + @Override + public boolean displaysItemStack() { + return true; + } + + @Override + public boolean displaysStackSize() { + return false; + } + + @Override + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return aSide == aBaseMetaTileEntity.getFrontFacing() && aIndex == 1; + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return aSide == aBaseMetaTileEntity.getFrontFacing() && aIndex == 0; + } + + @Override + public int getCapacity() { + return 8000 * (mTier + 1); + } + + @Override + public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { + if (!getBaseMetaTileEntity().getCoverBehaviorAtSide(aSide).isGUIClickable(aSide, getBaseMetaTileEntity().getCoverIDAtSide(aSide), getBaseMetaTileEntity().getCoverDataAtSide(aSide), getBaseMetaTileEntity())) + return; + mMode = (byte) ((mMode + 1) % 8); + switch (mMode) { + case 0: + GT_Utility.sendChatToPlayer(aPlayer, "Outputs Liquids, Steam and Items"); + break; + case 1: + GT_Utility.sendChatToPlayer(aPlayer, "Outputs Steam and Items"); + break; + case 2: + GT_Utility.sendChatToPlayer(aPlayer, "Outputs Steam and Liquids"); + break; + case 3: + GT_Utility.sendChatToPlayer(aPlayer, "Outputs Steam"); + break; + case 4: + GT_Utility.sendChatToPlayer(aPlayer, "Outputs Liquids and Items"); + break; + case 5: + GT_Utility.sendChatToPlayer(aPlayer, "Outputs only Items"); + break; + case 6: + GT_Utility.sendChatToPlayer(aPlayer, "Outputs only Liquids"); + break; + case 7: + GT_Utility.sendChatToPlayer(aPlayer, "Outputs nothing"); + break; + } + } + + public boolean outputsSteam() { + return mMode < 4; + } + + public boolean outputsLiquids() { + return mMode % 2 == 0; + } + + public boolean outputsItems() { + return mMode % 4 < 2; + } + + @Override + public int getTankPressure() { + return +100; + } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java index 8baff8d4..6ac3f840 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java @@ -11,69 +11,93 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; public class GT_MetaTileEntity_Hatch_OutputBus extends GT_MetaTileEntity_Hatch { - public GT_MetaTileEntity_Hatch_OutputBus(int aID, String aName, String aNameRegional, int aTier) { - super(aID, aName, aNameRegional, aTier, getSlots(aTier), "Item Output for Multiblocks (" + getSlots(aTier) + " slot" + (getSlots(aTier) >= 2 ? "s" : "") + ")"); - } - - public GT_MetaTileEntity_Hatch_OutputBus(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { - super(aName, aTier, aTier<1?1:aTier==1?4:aTier==2?9:16, aDescription, aTextures); - } - - @Override - public ITexture[] getTexturesActive(ITexture aBaseTexture) { - return new ITexture[] {aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; - } - - @Override - public ITexture[] getTexturesInactive(ITexture aBaseTexture) { - return new ITexture[] {aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; - } - - @Override public boolean isSimpleMachine() {return true;} - @Override public boolean isFacingValid(byte aFacing) {return true;} - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - @Override public boolean isValidSlot(int aIndex) {return true;} - - @Override - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_Hatch_OutputBus(mName, mTier, mDescription, mTextures); - } - - @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) return true; - aBaseMetaTileEntity.openGUI(aPlayer); - return true; - } - - @Override + public GT_MetaTileEntity_Hatch_OutputBus(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, getSlots(aTier), "Item Output for Multiblocks (" + getSlots(aTier) + " slot" + (getSlots(aTier) >= 2 ? "s" : "") + ")"); + } + + public GT_MetaTileEntity_Hatch_OutputBus(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aTier < 1 ? 1 : aTier == 1 ? 4 : aTier == 2 ? 9 : 16, aDescription, aTextures); + } + + @Override + public ITexture[] getTexturesActive(ITexture aBaseTexture) { + return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; + } + + @Override + public ITexture[] getTexturesInactive(ITexture aBaseTexture) { + return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; + } + + @Override + public boolean isSimpleMachine() { + return true; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return true; + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + @Override + public boolean isValidSlot(int aIndex) { + return true; + } + + @Override + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Hatch_OutputBus(mName, mTier, mDescription, mTextures); + } + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + if (aBaseMetaTileEntity.isClientSide()) return true; + aBaseMetaTileEntity.openGUI(aPlayer); + return true; + } + + @Override public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - switch (mTier) { - case 0: return new GT_Container_1by1(aPlayerInventory, aBaseMetaTileEntity); - case 1: return new GT_Container_2by2(aPlayerInventory, aBaseMetaTileEntity); - case 2: return new GT_Container_3by3(aPlayerInventory, aBaseMetaTileEntity); - default: return new GT_Container_4by4(aPlayerInventory, aBaseMetaTileEntity); - } - } - - @Override + switch (mTier) { + case 0: + return new GT_Container_1by1(aPlayerInventory, aBaseMetaTileEntity); + case 1: + return new GT_Container_2by2(aPlayerInventory, aBaseMetaTileEntity); + case 2: + return new GT_Container_3by3(aPlayerInventory, aBaseMetaTileEntity); + default: + return new GT_Container_4by4(aPlayerInventory, aBaseMetaTileEntity); + } + } + + @Override public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - switch (mTier) { - case 0: return new GT_GUIContainer_1by1(aPlayerInventory, aBaseMetaTileEntity, "Output Bus"); - case 1: return new GT_GUIContainer_2by2(aPlayerInventory, aBaseMetaTileEntity, "Output Bus"); - case 2: return new GT_GUIContainer_3by3(aPlayerInventory, aBaseMetaTileEntity, "Output Bus"); - case 3: return new GT_GUIContainer_4by4(aPlayerInventory, aBaseMetaTileEntity, "Output Bus"); - default: return new GT_GUIContainer_4by4(aPlayerInventory, aBaseMetaTileEntity, "Output Bus"); - } - } - - @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aSide == aBaseMetaTileEntity.getFrontFacing(); - } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } + switch (mTier) { + case 0: + return new GT_GUIContainer_1by1(aPlayerInventory, aBaseMetaTileEntity, "Output Bus"); + case 1: + return new GT_GUIContainer_2by2(aPlayerInventory, aBaseMetaTileEntity, "Output Bus"); + case 2: + return new GT_GUIContainer_3by3(aPlayerInventory, aBaseMetaTileEntity, "Output Bus"); + case 3: + return new GT_GUIContainer_4by4(aPlayerInventory, aBaseMetaTileEntity, "Output Bus"); + default: + return new GT_GUIContainer_4by4(aPlayerInventory, aBaseMetaTileEntity, "Output Bus"); + } + } + + @Override + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return aSide == aBaseMetaTileEntity.getFrontFacing(); + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return false; + } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java index 1cb3c89a..ad019bff 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java @@ -1,6 +1,5 @@ package gregtech.api.metatileentity.implementations; -import static gregtech.api.enums.GT_Values.V; import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.ConfigCategories; @@ -18,502 +17,557 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; import gregtech.common.items.GT_MetaGenerated_Tool_01; -import gregtech.common.tools.GT_Tool_Turbine; - -import java.util.ArrayList; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.FluidStack; +import java.util.ArrayList; + +import static gregtech.api.enums.GT_Values.V; + public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { - - public boolean mMachine = false, mWrench = false, mScrewdriver = false, mSoftHammer = false, mHardHammer = false, mSolderingTool = false, mCrowbar = false, mRunningOnLoad = false; - public int mPollution = 0, mProgresstime = 0, mMaxProgresstime = 0, mEUt = 0, mEfficiencyIncrease = 0, mUpdate = 0, mStartUpCheck = 100, mRuntime = 0, mEfficiency = 0; - public ItemStack[] mOutputItems = null; - public FluidStack[] mOutputFluids = null; - public static boolean disableMaintenance; - - public ArrayList mInputHatches = new ArrayList(); - public ArrayList mOutputHatches = new ArrayList(); - public ArrayList mInputBusses = new ArrayList(); - public ArrayList mOutputBusses = new ArrayList(); - public ArrayList mDynamoHatches = new ArrayList(); - public ArrayList mMufflerHatches = new ArrayList(); - public ArrayList mEnergyHatches = new ArrayList(); - public ArrayList mMaintenanceHatches = new ArrayList(); - - public GT_MetaTileEntity_MultiBlockBase(int aID, String aName, String aNameRegional) { - super(aID, aName, aNameRegional, 2); - this.disableMaintenance = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MultiBlockMachines.disableMaintenance", false); - } - - public GT_MetaTileEntity_MultiBlockBase(String aName) { - super(aName, 2); - this.disableMaintenance = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MultiBlockMachines.disableMaintenance", false); - } - - @Override - public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCoverID) { - return aSide != getBaseMetaTileEntity().getFrontFacing(); - } - - @Override public boolean isSimpleMachine() {return false;} - @Override public boolean isFacingValid(byte aFacing) {return true;} - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - @Override public boolean isValidSlot(int aIndex) {return aIndex > 0;} - @Override public int getProgresstime() {return mProgresstime;} - @Override public int maxProgresstime() {return mMaxProgresstime;} - @Override public int increaseProgress(int aProgress) {return aProgress;} - - @Override - public void saveNBTData(NBTTagCompound aNBT) { - aNBT.setInteger("mEUt", mEUt); - aNBT.setInteger("mProgresstime", mProgresstime); - aNBT.setInteger("mMaxProgresstime", mMaxProgresstime); - aNBT.setInteger("mEfficiencyIncrease", mEfficiencyIncrease); - aNBT.setInteger("mEfficiency", mEfficiency); - aNBT.setInteger("mPollution", mPollution); - aNBT.setInteger("mRuntime", mRuntime); - - if (mOutputItems != null) for (int i = 0; i < mOutputItems.length; i++) if (mOutputItems[i] != null) { - NBTTagCompound tNBT = new NBTTagCompound(); - mOutputItems[i].writeToNBT(tNBT); - aNBT.setTag("mOutputItem"+i, tNBT); - } - if (mOutputFluids != null) for (int i = 0; i < mOutputFluids.length; i++) if (mOutputFluids[i] != null) { - NBTTagCompound tNBT = new NBTTagCompound(); - mOutputFluids[i].writeToNBT(tNBT); - aNBT.setTag("mOutputFluids"+i, tNBT); - } - - aNBT.setBoolean("mWrench", mWrench); - aNBT.setBoolean("mScrewdriver", mScrewdriver); - aNBT.setBoolean("mSoftHammer", mSoftHammer); - aNBT.setBoolean("mHardHammer", mHardHammer); - aNBT.setBoolean("mSolderingTool", mSolderingTool); - aNBT.setBoolean("mCrowbar", mCrowbar); - } - - @Override - public void loadNBTData(NBTTagCompound aNBT) { - mEUt = aNBT.getInteger("mEUt"); - mProgresstime = aNBT.getInteger("mProgresstime"); - mMaxProgresstime = aNBT.getInteger("mMaxProgresstime"); - if(mMaxProgresstime>0)mRunningOnLoad=true; - mEfficiencyIncrease = aNBT.getInteger("mEfficiencyIncrease"); - mEfficiency = aNBT.getInteger("mEfficiency"); - mPollution = aNBT.getInteger("mPollution"); - mRuntime = aNBT.getInteger("mRuntime"); - mOutputItems = new ItemStack[getAmountOfOutputs()]; - for (int i = 0; i < mOutputItems.length; i++) mOutputItems[i] = GT_Utility.loadItem(aNBT, "mOutputItem" + i); - mOutputFluids = new FluidStack[getAmountOfOutputs()]; - for (int i = 0; i < mOutputFluids.length; i++) mOutputFluids[i] = GT_Utility.loadFluid(aNBT, "mOutputFluids" + i); - mWrench = aNBT.getBoolean("mWrench"); - mScrewdriver = aNBT.getBoolean("mScrewdriver"); - mSoftHammer = aNBT.getBoolean("mSoftHammer"); - mHardHammer = aNBT.getBoolean("mHardHammer"); - mSolderingTool = aNBT.getBoolean("mSolderingTool"); - mCrowbar = aNBT.getBoolean("mCrowbar"); - } - - @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) return true; - aBaseMetaTileEntity.openGUI(aPlayer); - return true; - } - - @Override + + public static boolean disableMaintenance; + public boolean mMachine = false, mWrench = false, mScrewdriver = false, mSoftHammer = false, mHardHammer = false, mSolderingTool = false, mCrowbar = false, mRunningOnLoad = false; + public int mPollution = 0, mProgresstime = 0, mMaxProgresstime = 0, mEUt = 0, mEfficiencyIncrease = 0, mUpdate = 0, mStartUpCheck = 100, mRuntime = 0, mEfficiency = 0; + public ItemStack[] mOutputItems = null; + public FluidStack[] mOutputFluids = null; + public ArrayList mInputHatches = new ArrayList(); + public ArrayList mOutputHatches = new ArrayList(); + public ArrayList mInputBusses = new ArrayList(); + public ArrayList mOutputBusses = new ArrayList(); + public ArrayList mDynamoHatches = new ArrayList(); + public ArrayList mMufflerHatches = new ArrayList(); + public ArrayList mEnergyHatches = new ArrayList(); + public ArrayList mMaintenanceHatches = new ArrayList(); + + public GT_MetaTileEntity_MultiBlockBase(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional, 2); + this.disableMaintenance = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MultiBlockMachines.disableMaintenance", false); + } + + public GT_MetaTileEntity_MultiBlockBase(String aName) { + super(aName, 2); + this.disableMaintenance = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MultiBlockMachines.disableMaintenance", false); + } + + public static boolean isValidMetaTileEntity(MetaTileEntity aMetaTileEntity) { + return aMetaTileEntity.getBaseMetaTileEntity() != null && aMetaTileEntity.getBaseMetaTileEntity().getMetaTileEntity() == aMetaTileEntity && !aMetaTileEntity.getBaseMetaTileEntity().isDead(); + } + + @Override + public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCoverID) { + return aSide != getBaseMetaTileEntity().getFrontFacing(); + } + + @Override + public boolean isSimpleMachine() { + return false; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return true; + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + @Override + public boolean isValidSlot(int aIndex) { + return aIndex > 0; + } + + @Override + public int getProgresstime() { + return mProgresstime; + } + + @Override + public int maxProgresstime() { + return mMaxProgresstime; + } + + @Override + public int increaseProgress(int aProgress) { + return aProgress; + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + aNBT.setInteger("mEUt", mEUt); + aNBT.setInteger("mProgresstime", mProgresstime); + aNBT.setInteger("mMaxProgresstime", mMaxProgresstime); + aNBT.setInteger("mEfficiencyIncrease", mEfficiencyIncrease); + aNBT.setInteger("mEfficiency", mEfficiency); + aNBT.setInteger("mPollution", mPollution); + aNBT.setInteger("mRuntime", mRuntime); + + if (mOutputItems != null) for (int i = 0; i < mOutputItems.length; i++) + if (mOutputItems[i] != null) { + NBTTagCompound tNBT = new NBTTagCompound(); + mOutputItems[i].writeToNBT(tNBT); + aNBT.setTag("mOutputItem" + i, tNBT); + } + if (mOutputFluids != null) for (int i = 0; i < mOutputFluids.length; i++) + if (mOutputFluids[i] != null) { + NBTTagCompound tNBT = new NBTTagCompound(); + mOutputFluids[i].writeToNBT(tNBT); + aNBT.setTag("mOutputFluids" + i, tNBT); + } + + aNBT.setBoolean("mWrench", mWrench); + aNBT.setBoolean("mScrewdriver", mScrewdriver); + aNBT.setBoolean("mSoftHammer", mSoftHammer); + aNBT.setBoolean("mHardHammer", mHardHammer); + aNBT.setBoolean("mSolderingTool", mSolderingTool); + aNBT.setBoolean("mCrowbar", mCrowbar); + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + mEUt = aNBT.getInteger("mEUt"); + mProgresstime = aNBT.getInteger("mProgresstime"); + mMaxProgresstime = aNBT.getInteger("mMaxProgresstime"); + if (mMaxProgresstime > 0) mRunningOnLoad = true; + mEfficiencyIncrease = aNBT.getInteger("mEfficiencyIncrease"); + mEfficiency = aNBT.getInteger("mEfficiency"); + mPollution = aNBT.getInteger("mPollution"); + mRuntime = aNBT.getInteger("mRuntime"); + mOutputItems = new ItemStack[getAmountOfOutputs()]; + for (int i = 0; i < mOutputItems.length; i++) mOutputItems[i] = GT_Utility.loadItem(aNBT, "mOutputItem" + i); + mOutputFluids = new FluidStack[getAmountOfOutputs()]; + for (int i = 0; i < mOutputFluids.length; i++) + mOutputFluids[i] = GT_Utility.loadFluid(aNBT, "mOutputFluids" + i); + mWrench = aNBT.getBoolean("mWrench"); + mScrewdriver = aNBT.getBoolean("mScrewdriver"); + mSoftHammer = aNBT.getBoolean("mSoftHammer"); + mHardHammer = aNBT.getBoolean("mHardHammer"); + mSolderingTool = aNBT.getBoolean("mSolderingTool"); + mCrowbar = aNBT.getBoolean("mCrowbar"); + } + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + if (aBaseMetaTileEntity.isClientSide()) return true; + aBaseMetaTileEntity.openGUI(aPlayer); + return true; + } + + @Override public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_Container_MultiMachine(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override + return new GT_Container_MultiMachine(aPlayerInventory, aBaseMetaTileEntity); + } + + @Override public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "MultiblockDisplay.png"); - } - - @Override - public byte getTileEntityBaseType() { - return 2; - } - + return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "MultiblockDisplay.png"); + } + + @Override + public byte getTileEntityBaseType() { + return 2; + } + @Override public void onMachineBlockUpdate() { - mUpdate = 50; + mUpdate = 50; } - - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - if (aBaseMetaTileEntity.isServerSide()) { - if (mEfficiency < 0) mEfficiency = 0; - if (--mUpdate==0 || --mStartUpCheck==0) { - mInputHatches.clear(); - mInputBusses.clear(); - mOutputHatches.clear(); - mOutputBusses.clear(); - mDynamoHatches.clear(); - mEnergyHatches.clear(); - mMufflerHatches.clear(); - mMaintenanceHatches.clear(); - mMachine = checkMachine(aBaseMetaTileEntity, mInventory[1]); - } - if (mStartUpCheck < 0) { - if (mMachine) { - for (GT_MetaTileEntity_Hatch_Maintenance tHatch : mMaintenanceHatches) { - if (isValidMetaTileEntity(tHatch)) { - if(!this.disableMaintenance){ - if (tHatch.mWrench) mWrench = true; - if (tHatch.mScrewdriver) mScrewdriver = true; - if (tHatch.mSoftHammer) mSoftHammer = true; - if (tHatch.mHardHammer) mHardHammer = true; - if (tHatch.mSolderingTool) mSolderingTool = true; - if (tHatch.mCrowbar) mCrowbar = true;}else{ - mWrench = true; - mScrewdriver = true; - mSoftHammer = true; - mHardHammer = true; - mSolderingTool = true; - mCrowbar = true; - } - - tHatch.mWrench = false; - tHatch.mScrewdriver = false; - tHatch.mSoftHammer = false; - tHatch.mHardHammer = false; - tHatch.mSolderingTool = false; - tHatch.mCrowbar = false; - } - } - if (getRepairStatus() > 0) { - if (mMaxProgresstime > 0 && doRandomMaintenanceDamage()) { - if (onRunningTick(mInventory[1])) { - if (!polluteEnvironment(getPollutionPerTick(mInventory[1]))) { - stopMachine(); - } - if (mMaxProgresstime > 0 && ++mProgresstime>=mMaxProgresstime) { - if (mOutputItems != null) for (ItemStack tStack : mOutputItems) if (tStack != null) { - try{GT_Mod.instance.achievements.issueAchivementHatch(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), tStack);}catch(Exception e){} - addOutput(tStack);} - if (mOutputFluids != null&&mOutputFluids.length==1) {for (FluidStack tStack : mOutputFluids) if (tStack != null) {addOutput(tStack);}} - else if(mOutputFluids!=null&&mOutputFluids.length>1){ - addFluidOutputs(mOutputFluids);} - mEfficiency = Math.max(0, Math.min(mEfficiency + mEfficiencyIncrease, getMaxEfficiency(mInventory[1]) - ((getIdealStatus() - getRepairStatus()) * 1000))); - mOutputItems = null; - mProgresstime = 0; - mMaxProgresstime = 0; - mEfficiencyIncrease = 0; - if (aBaseMetaTileEntity.isAllowedToWork()) checkRecipe(mInventory[1]); - if(mOutputFluids!=null&&mOutputFluids.length>0){ - if(mOutputFluids.length>1){GT_Mod.instance.achievements.issueAchievement(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), "oilplant");} - } - } - } - } else { - if (aTick % 100 == 0 || aBaseMetaTileEntity.hasWorkJustBeenEnabled() || aBaseMetaTileEntity.hasInventoryBeenModified()) { - - if (aBaseMetaTileEntity.isAllowedToWork()) { - checkRecipe(mInventory[1]);} - if (mMaxProgresstime <= 0) mEfficiency = Math.max(0, mEfficiency - 1000); - } - } - } else { - stopMachine(); - } - } else { - stopMachine(); - } - } - aBaseMetaTileEntity.setErrorDisplayID((aBaseMetaTileEntity.getErrorDisplayID()&~127)|(mWrench?0:1)|(mScrewdriver?0:2)|(mSoftHammer?0:4)|(mHardHammer?0:8)|(mSolderingTool?0:16)|(mCrowbar?0:32)|(mMachine?0:64)); - aBaseMetaTileEntity.setActive(mMaxProgresstime>0); - } - } - public boolean polluteEnvironment(int aPollutionLevel) { - mPollution += aPollutionLevel; - for (GT_MetaTileEntity_Hatch_Muffler tHatch : mMufflerHatches) { - if (isValidMetaTileEntity(tHatch)) { - if (mPollution >= 10000) { - if (tHatch.polluteEnvironment()) { - mPollution -= 10000; - } - } else { - break; - } - } - } - return mPollution < 10000; - } - - /** - * Called every tick the Machine runs - */ - public boolean onRunningTick(ItemStack aStack) { - if (mEUt > 0) { - addEnergyOutput(((long)mEUt * mEfficiency) / 10000); - return true; - } - if (mEUt < 0) { - if (!drainEnergyInput(((long)-mEUt * 10000) / Math.max(1000, mEfficiency))) { - stopMachine(); - return false; - } - } - return true; - } - - /** - * Checks if this is a Correct Machine Part for this kind of Machine (Turbine Rotor for example) - */ - public abstract boolean isCorrectMachinePart(ItemStack aStack); - - /** - * Checks the Recipe - */ - public abstract boolean checkRecipe(ItemStack aStack); - - /** - * Checks the Machine. You have to assign the MetaTileEntities for the Hatches here. - */ - public abstract boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack); - - /** - * Gets the maximum Efficiency that spare Part can get (0 - 10000) - */ - public abstract int getMaxEfficiency(ItemStack aStack); - - /** - * Gets the pollution this Device outputs to a Muffler per tick (10000 = one Pullution Block) - */ - public abstract int getPollutionPerTick(ItemStack aStack); - - /** - * Gets the damage to the ItemStack, usually 0 or 1. - */ - public abstract int getDamageToComponent(ItemStack aStack); - - /** - * Gets the Amount of possibly outputted Items for loading the Output Stack Array from NBT. - * This should be the largest Amount that can ever happen legitimately. - */ - public abstract int getAmountOfOutputs(); - - /** - * If it explodes when the Component has to be replaced. - */ - public abstract boolean explodesOnComponentBreak(ItemStack aStack); - - public void stopMachine() { - mOutputItems = null; - mEUt = 0; - mEfficiency = 0; - mProgresstime = 0; - mMaxProgresstime = 0; - mEfficiencyIncrease = 0; - getBaseMetaTileEntity().disableWorking(); - } - - public int getRepairStatus() { - return (mWrench?1:0) + (mScrewdriver?1:0) + (mSoftHammer?1:0) + (mHardHammer?1:0) + (mSolderingTool?1:0) + (mCrowbar?1:0); - } - - public int getIdealStatus() { - return 6; - } - - public static boolean isValidMetaTileEntity(MetaTileEntity aMetaTileEntity) { - return aMetaTileEntity.getBaseMetaTileEntity() != null && aMetaTileEntity.getBaseMetaTileEntity().getMetaTileEntity() == aMetaTileEntity && !aMetaTileEntity.getBaseMetaTileEntity().isDead(); - } - - public boolean doRandomMaintenanceDamage() { - if (!isCorrectMachinePart(mInventory[1]) || getRepairStatus() == 0) { - stopMachine(); - return false; - } - if (mRuntime++>1000) { - mRuntime = 0; - if (getBaseMetaTileEntity().getRandomNumber(6000) == 0) { - switch (getBaseMetaTileEntity().getRandomNumber(6)) { - case 0: mWrench = false; break; - case 1: mScrewdriver = false; break; - case 2: mSoftHammer = false; break; - case 3: mHardHammer = false; break; - case 4: mSolderingTool = false; break; - case 5: mCrowbar = false; break; - } - } - if (mInventory[1] != null && getBaseMetaTileEntity().getRandomNumber(2) == 0 &&!mInventory[1].getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.")) { - if(mInventory[1].getItem() instanceof GT_MetaGenerated_Tool_01){ - NBTTagCompound tNBT = mInventory[1].getTagCompound(); - if (tNBT != null) - { - NBTTagCompound tNBT2 = tNBT.getCompoundTag("GT.CraftingComponents"); - if (!tNBT.getBoolean("mDis")) - { - tNBT2 = new NBTTagCompound(); - Materials tMaterial = GT_MetaGenerated_Tool.getPrimaryMaterial(mInventory[1]); - ItemStack tTurbine = GT_OreDictUnificator.get(OrePrefixes.turbineBlade, tMaterial, 1); - int i = mInventory[1].getItemDamage(); - if(i == 170){ - ItemStack tStack = GT_Utility.copyAmount(1, tTurbine); - tNBT2.setTag("Ingredient.0", tStack.writeToNBT(new NBTTagCompound())); - tNBT2.setTag("Ingredient.1", tStack.writeToNBT(new NBTTagCompound())); - tNBT2.setTag("Ingredient.2", tStack.writeToNBT(new NBTTagCompound())); - tNBT2.setTag("Ingredient.3", tStack.writeToNBT(new NBTTagCompound())); - tStack = GT_OreDictUnificator.get(OrePrefixes.stickLong,Materials.Magnalium,1); - tNBT2.setTag("Ingredient.4", tStack.writeToNBT(new NBTTagCompound())); - }else if(i == 172){ - ItemStack tStack = GT_Utility.copyAmount(1, tTurbine); - tNBT2.setTag("Ingredient.0", tStack.writeToNBT(new NBTTagCompound())); - tNBT2.setTag("Ingredient.1", tStack.writeToNBT(new NBTTagCompound())); - tNBT2.setTag("Ingredient.2", tStack.writeToNBT(new NBTTagCompound())); - tNBT2.setTag("Ingredient.3", tStack.writeToNBT(new NBTTagCompound())); - tNBT2.setTag("Ingredient.5", tStack.writeToNBT(new NBTTagCompound())); - tNBT2.setTag("Ingredient.6", tStack.writeToNBT(new NBTTagCompound())); - tNBT2.setTag("Ingredient.7", tStack.writeToNBT(new NBTTagCompound())); - tNBT2.setTag("Ingredient.8", tStack.writeToNBT(new NBTTagCompound())); - tStack = GT_OreDictUnificator.get(OrePrefixes.stickLong,Materials.Titanium,1); - tNBT2.setTag("Ingredient.4", tStack.writeToNBT(new NBTTagCompound())); - }else if(i == 174){ - ItemStack tStack = GT_Utility.copyAmount(2, tTurbine); - tNBT2.setTag("Ingredient.0", tStack.writeToNBT(new NBTTagCompound())); - tNBT2.setTag("Ingredient.1", tStack.writeToNBT(new NBTTagCompound())); - tNBT2.setTag("Ingredient.2", tStack.writeToNBT(new NBTTagCompound())); - tNBT2.setTag("Ingredient.3", tStack.writeToNBT(new NBTTagCompound())); - tNBT2.setTag("Ingredient.5", tStack.writeToNBT(new NBTTagCompound())); - tNBT2.setTag("Ingredient.6", tStack.writeToNBT(new NBTTagCompound())); - tStack = GT_OreDictUnificator.get(OrePrefixes.stickLong,Materials.TungstenSteel,1); - tNBT2.setTag("Ingredient.4", tStack.writeToNBT(new NBTTagCompound())); - }else if(i == 176){ - ItemStack tStack = GT_Utility.copyAmount(2, tTurbine); - tNBT2.setTag("Ingredient.0", tStack.writeToNBT(new NBTTagCompound())); - tNBT2.setTag("Ingredient.1", tStack.writeToNBT(new NBTTagCompound())); - tNBT2.setTag("Ingredient.2", tStack.writeToNBT(new NBTTagCompound())); - tNBT2.setTag("Ingredient.3", tStack.writeToNBT(new NBTTagCompound())); - tNBT2.setTag("Ingredient.5", tStack.writeToNBT(new NBTTagCompound())); - tNBT2.setTag("Ingredient.6", tStack.writeToNBT(new NBTTagCompound())); - tNBT2.setTag("Ingredient.7", tStack.writeToNBT(new NBTTagCompound())); - tNBT2.setTag("Ingredient.8", tStack.writeToNBT(new NBTTagCompound())); - tStack = GT_OreDictUnificator.get(OrePrefixes.stickLong,Materials.Americium,1); - tNBT2.setTag("Ingredient.4", tStack.writeToNBT(new NBTTagCompound())); - } - tNBT.setTag("GT.CraftingComponents", tNBT2); - tNBT.setBoolean("mDis", true); - mInventory[1].setTagCompound(tNBT); - - } - } - - ((GT_MetaGenerated_Tool)mInventory[1].getItem()).doDamage(mInventory[1], (long) Math.min(mEUt/5, Math.pow(mEUt, 0.7))); - if(mInventory[1].stackSize==0)mInventory[1]=null; - } - } - } - return true; - } - - public void explodeMultiblock() { - mInventory[1] = null; - for (MetaTileEntity tTileEntity : mInputBusses) tTileEntity.getBaseMetaTileEntity().doExplosion(V[8]); - for (MetaTileEntity tTileEntity : mOutputBusses) tTileEntity.getBaseMetaTileEntity().doExplosion(V[8]); - for (MetaTileEntity tTileEntity : mInputHatches) tTileEntity.getBaseMetaTileEntity().doExplosion(V[8]); - for (MetaTileEntity tTileEntity : mOutputHatches) tTileEntity.getBaseMetaTileEntity().doExplosion(V[8]); - for (MetaTileEntity tTileEntity : mDynamoHatches) tTileEntity.getBaseMetaTileEntity().doExplosion(V[8]); - for (MetaTileEntity tTileEntity : mMufflerHatches) tTileEntity.getBaseMetaTileEntity().doExplosion(V[8]); - for (MetaTileEntity tTileEntity : mEnergyHatches) tTileEntity.getBaseMetaTileEntity().doExplosion(V[8]); - for (MetaTileEntity tTileEntity : mMaintenanceHatches) tTileEntity.getBaseMetaTileEntity().doExplosion(V[8]); - getBaseMetaTileEntity().doExplosion(V[8]); - } - - public boolean addEnergyOutput(long aEU) { - if (aEU <= 0) return true; - for (GT_MetaTileEntity_Hatch_Dynamo tHatch : mDynamoHatches) { - if (isValidMetaTileEntity(tHatch)) { - if (tHatch.getBaseMetaTileEntity().increaseStoredEnergyUnits(aEU, false)) { - return true; - } - } - } - return false; - } - - public long getMaxInputVoltage() { - long rVoltage = 0; - for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) if (isValidMetaTileEntity(tHatch)) rVoltage += tHatch.getBaseMetaTileEntity().getInputVoltage(); - return rVoltage; - } - - public boolean drainEnergyInput(long aEU) { - if (aEU <= 0) return true; - for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) if (isValidMetaTileEntity(tHatch)) { - if (tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(aEU, false)) return true; - } - return false; - } - - public boolean addOutput(FluidStack aLiquid) { - if (aLiquid == null) return false; - FluidStack tLiquid = aLiquid.copy(); - for (GT_MetaTileEntity_Hatch_Output tHatch : mOutputHatches) { - if (isValidMetaTileEntity(tHatch) && GT_ModHandler.isSteam(aLiquid)?tHatch.outputsSteam():tHatch.outputsLiquids()) { - int tAmount = tHatch.fill(tLiquid, false); - if (tAmount >= tLiquid.amount) { - return tHatch.fill(tLiquid, true) >= tLiquid.amount; - }else if(tAmount>0){ - tLiquid.amount = tLiquid.amount - tHatch.fill(tLiquid, true); - } - } - } - return false; - } - - private void addFluidOutputs(FluidStack[] mOutputFluids2) { - for(int i=0;ii&&mOutputHatches.get(i)!=null&&mOutputFluids2[i]!=null&&isValidMetaTileEntity(mOutputHatches.get(i))){ - mOutputHatches.get(i).fill(mOutputFluids2[i], true); - } - } - - } - - public boolean depleteInput(FluidStack aLiquid) { - if (aLiquid == null) return false; - for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) { - tHatch.mRecipeMap = getRecipeMap(); - if (isValidMetaTileEntity(tHatch)) { - FluidStack tLiquid = tHatch.getFluid(); - if (tLiquid != null && tLiquid.isFluidEqual(aLiquid)) { - tLiquid = tHatch.drain(aLiquid.amount, false); - if (tLiquid != null && tLiquid.amount >= aLiquid.amount) { - tLiquid = tHatch.drain(aLiquid.amount, true); - return tLiquid != null && tLiquid.amount >= aLiquid.amount; - } - } - } - } - return false; - } - - public boolean addOutput(ItemStack aStack) { - if (GT_Utility.isStackInvalid(aStack)) return false; - aStack = GT_Utility.copy(aStack); + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + if (aBaseMetaTileEntity.isServerSide()) { + if (mEfficiency < 0) mEfficiency = 0; + if (--mUpdate == 0 || --mStartUpCheck == 0) { + mInputHatches.clear(); + mInputBusses.clear(); + mOutputHatches.clear(); + mOutputBusses.clear(); + mDynamoHatches.clear(); + mEnergyHatches.clear(); + mMufflerHatches.clear(); + mMaintenanceHatches.clear(); + mMachine = checkMachine(aBaseMetaTileEntity, mInventory[1]); + } + if (mStartUpCheck < 0) { + if (mMachine) { + for (GT_MetaTileEntity_Hatch_Maintenance tHatch : mMaintenanceHatches) { + if (isValidMetaTileEntity(tHatch)) { + if (!this.disableMaintenance) { + if (tHatch.mWrench) mWrench = true; + if (tHatch.mScrewdriver) mScrewdriver = true; + if (tHatch.mSoftHammer) mSoftHammer = true; + if (tHatch.mHardHammer) mHardHammer = true; + if (tHatch.mSolderingTool) mSolderingTool = true; + if (tHatch.mCrowbar) mCrowbar = true; + } else { + mWrench = true; + mScrewdriver = true; + mSoftHammer = true; + mHardHammer = true; + mSolderingTool = true; + mCrowbar = true; + } + + tHatch.mWrench = false; + tHatch.mScrewdriver = false; + tHatch.mSoftHammer = false; + tHatch.mHardHammer = false; + tHatch.mSolderingTool = false; + tHatch.mCrowbar = false; + } + } + if (getRepairStatus() > 0) { + if (mMaxProgresstime > 0 && doRandomMaintenanceDamage()) { + if (onRunningTick(mInventory[1])) { + if (!polluteEnvironment(getPollutionPerTick(mInventory[1]))) { + stopMachine(); + } + if (mMaxProgresstime > 0 && ++mProgresstime >= mMaxProgresstime) { + if (mOutputItems != null) for (ItemStack tStack : mOutputItems) + if (tStack != null) { + try { + GT_Mod.instance.achievements.issueAchivementHatch(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), tStack); + } catch (Exception e) { + } + addOutput(tStack); + } + if (mOutputFluids != null && mOutputFluids.length == 1) { + for (FluidStack tStack : mOutputFluids) + if (tStack != null) { + addOutput(tStack); + } + } else if (mOutputFluids != null && mOutputFluids.length > 1) { + addFluidOutputs(mOutputFluids); + } + mEfficiency = Math.max(0, Math.min(mEfficiency + mEfficiencyIncrease, getMaxEfficiency(mInventory[1]) - ((getIdealStatus() - getRepairStatus()) * 1000))); + mOutputItems = null; + mProgresstime = 0; + mMaxProgresstime = 0; + mEfficiencyIncrease = 0; + if (aBaseMetaTileEntity.isAllowedToWork()) checkRecipe(mInventory[1]); + if (mOutputFluids != null && mOutputFluids.length > 0) { + if (mOutputFluids.length > 1) { + GT_Mod.instance.achievements.issueAchievement(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), "oilplant"); + } + } + } + } + } else { + if (aTick % 100 == 0 || aBaseMetaTileEntity.hasWorkJustBeenEnabled() || aBaseMetaTileEntity.hasInventoryBeenModified()) { + + if (aBaseMetaTileEntity.isAllowedToWork()) { + checkRecipe(mInventory[1]); + } + if (mMaxProgresstime <= 0) mEfficiency = Math.max(0, mEfficiency - 1000); + } + } + } else { + stopMachine(); + } + } else { + stopMachine(); + } + } + aBaseMetaTileEntity.setErrorDisplayID((aBaseMetaTileEntity.getErrorDisplayID() & ~127) | (mWrench ? 0 : 1) | (mScrewdriver ? 0 : 2) | (mSoftHammer ? 0 : 4) | (mHardHammer ? 0 : 8) | (mSolderingTool ? 0 : 16) | (mCrowbar ? 0 : 32) | (mMachine ? 0 : 64)); + aBaseMetaTileEntity.setActive(mMaxProgresstime > 0); + } + } + + public boolean polluteEnvironment(int aPollutionLevel) { + mPollution += aPollutionLevel; + for (GT_MetaTileEntity_Hatch_Muffler tHatch : mMufflerHatches) { + if (isValidMetaTileEntity(tHatch)) { + if (mPollution >= 10000) { + if (tHatch.polluteEnvironment()) { + mPollution -= 10000; + } + } else { + break; + } + } + } + return mPollution < 10000; + } + + /** + * Called every tick the Machine runs + */ + public boolean onRunningTick(ItemStack aStack) { + if (mEUt > 0) { + addEnergyOutput(((long) mEUt * mEfficiency) / 10000); + return true; + } + if (mEUt < 0) { + if (!drainEnergyInput(((long) -mEUt * 10000) / Math.max(1000, mEfficiency))) { + stopMachine(); + return false; + } + } + return true; + } + + /** + * Checks if this is a Correct Machine Part for this kind of Machine (Turbine Rotor for example) + */ + public abstract boolean isCorrectMachinePart(ItemStack aStack); + + /** + * Checks the Recipe + */ + public abstract boolean checkRecipe(ItemStack aStack); + + /** + * Checks the Machine. You have to assign the MetaTileEntities for the Hatches here. + */ + public abstract boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack); + + /** + * Gets the maximum Efficiency that spare Part can get (0 - 10000) + */ + public abstract int getMaxEfficiency(ItemStack aStack); + + /** + * Gets the pollution this Device outputs to a Muffler per tick (10000 = one Pullution Block) + */ + public abstract int getPollutionPerTick(ItemStack aStack); + + /** + * Gets the damage to the ItemStack, usually 0 or 1. + */ + public abstract int getDamageToComponent(ItemStack aStack); + + /** + * Gets the Amount of possibly outputted Items for loading the Output Stack Array from NBT. + * This should be the largest Amount that can ever happen legitimately. + */ + public abstract int getAmountOfOutputs(); + + /** + * If it explodes when the Component has to be replaced. + */ + public abstract boolean explodesOnComponentBreak(ItemStack aStack); + + public void stopMachine() { + mOutputItems = null; + mEUt = 0; + mEfficiency = 0; + mProgresstime = 0; + mMaxProgresstime = 0; + mEfficiencyIncrease = 0; + getBaseMetaTileEntity().disableWorking(); + } + + public int getRepairStatus() { + return (mWrench ? 1 : 0) + (mScrewdriver ? 1 : 0) + (mSoftHammer ? 1 : 0) + (mHardHammer ? 1 : 0) + (mSolderingTool ? 1 : 0) + (mCrowbar ? 1 : 0); + } + + public int getIdealStatus() { + return 6; + } + + public boolean doRandomMaintenanceDamage() { + if (!isCorrectMachinePart(mInventory[1]) || getRepairStatus() == 0) { + stopMachine(); + return false; + } + if (mRuntime++ > 1000) { + mRuntime = 0; + if (getBaseMetaTileEntity().getRandomNumber(6000) == 0) { + switch (getBaseMetaTileEntity().getRandomNumber(6)) { + case 0: + mWrench = false; + break; + case 1: + mScrewdriver = false; + break; + case 2: + mSoftHammer = false; + break; + case 3: + mHardHammer = false; + break; + case 4: + mSolderingTool = false; + break; + case 5: + mCrowbar = false; + break; + } + } + if (mInventory[1] != null && getBaseMetaTileEntity().getRandomNumber(2) == 0 && !mInventory[1].getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.")) { + if (mInventory[1].getItem() instanceof GT_MetaGenerated_Tool_01) { + NBTTagCompound tNBT = mInventory[1].getTagCompound(); + if (tNBT != null) { + NBTTagCompound tNBT2 = tNBT.getCompoundTag("GT.CraftingComponents"); + if (!tNBT.getBoolean("mDis")) { + tNBT2 = new NBTTagCompound(); + Materials tMaterial = GT_MetaGenerated_Tool.getPrimaryMaterial(mInventory[1]); + ItemStack tTurbine = GT_OreDictUnificator.get(OrePrefixes.turbineBlade, tMaterial, 1); + int i = mInventory[1].getItemDamage(); + if (i == 170) { + ItemStack tStack = GT_Utility.copyAmount(1, tTurbine); + tNBT2.setTag("Ingredient.0", tStack.writeToNBT(new NBTTagCompound())); + tNBT2.setTag("Ingredient.1", tStack.writeToNBT(new NBTTagCompound())); + tNBT2.setTag("Ingredient.2", tStack.writeToNBT(new NBTTagCompound())); + tNBT2.setTag("Ingredient.3", tStack.writeToNBT(new NBTTagCompound())); + tStack = GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Magnalium, 1); + tNBT2.setTag("Ingredient.4", tStack.writeToNBT(new NBTTagCompound())); + } else if (i == 172) { + ItemStack tStack = GT_Utility.copyAmount(1, tTurbine); + tNBT2.setTag("Ingredient.0", tStack.writeToNBT(new NBTTagCompound())); + tNBT2.setTag("Ingredient.1", tStack.writeToNBT(new NBTTagCompound())); + tNBT2.setTag("Ingredient.2", tStack.writeToNBT(new NBTTagCompound())); + tNBT2.setTag("Ingredient.3", tStack.writeToNBT(new NBTTagCompound())); + tNBT2.setTag("Ingredient.5", tStack.writeToNBT(new NBTTagCompound())); + tNBT2.setTag("Ingredient.6", tStack.writeToNBT(new NBTTagCompound())); + tNBT2.setTag("Ingredient.7", tStack.writeToNBT(new NBTTagCompound())); + tNBT2.setTag("Ingredient.8", tStack.writeToNBT(new NBTTagCompound())); + tStack = GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Titanium, 1); + tNBT2.setTag("Ingredient.4", tStack.writeToNBT(new NBTTagCompound())); + } else if (i == 174) { + ItemStack tStack = GT_Utility.copyAmount(2, tTurbine); + tNBT2.setTag("Ingredient.0", tStack.writeToNBT(new NBTTagCompound())); + tNBT2.setTag("Ingredient.1", tStack.writeToNBT(new NBTTagCompound())); + tNBT2.setTag("Ingredient.2", tStack.writeToNBT(new NBTTagCompound())); + tNBT2.setTag("Ingredient.3", tStack.writeToNBT(new NBTTagCompound())); + tNBT2.setTag("Ingredient.5", tStack.writeToNBT(new NBTTagCompound())); + tNBT2.setTag("Ingredient.6", tStack.writeToNBT(new NBTTagCompound())); + tStack = GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.TungstenSteel, 1); + tNBT2.setTag("Ingredient.4", tStack.writeToNBT(new NBTTagCompound())); + } else if (i == 176) { + ItemStack tStack = GT_Utility.copyAmount(2, tTurbine); + tNBT2.setTag("Ingredient.0", tStack.writeToNBT(new NBTTagCompound())); + tNBT2.setTag("Ingredient.1", tStack.writeToNBT(new NBTTagCompound())); + tNBT2.setTag("Ingredient.2", tStack.writeToNBT(new NBTTagCompound())); + tNBT2.setTag("Ingredient.3", tStack.writeToNBT(new NBTTagCompound())); + tNBT2.setTag("Ingredient.5", tStack.writeToNBT(new NBTTagCompound())); + tNBT2.setTag("Ingredient.6", tStack.writeToNBT(new NBTTagCompound())); + tNBT2.setTag("Ingredient.7", tStack.writeToNBT(new NBTTagCompound())); + tNBT2.setTag("Ingredient.8", tStack.writeToNBT(new NBTTagCompound())); + tStack = GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Americium, 1); + tNBT2.setTag("Ingredient.4", tStack.writeToNBT(new NBTTagCompound())); + } + tNBT.setTag("GT.CraftingComponents", tNBT2); + tNBT.setBoolean("mDis", true); + mInventory[1].setTagCompound(tNBT); + + } + } + + ((GT_MetaGenerated_Tool) mInventory[1].getItem()).doDamage(mInventory[1], (long) Math.min(mEUt / 5, Math.pow(mEUt, 0.7))); + if (mInventory[1].stackSize == 0) mInventory[1] = null; + } + } + } + return true; + } + + public void explodeMultiblock() { + mInventory[1] = null; + for (MetaTileEntity tTileEntity : mInputBusses) tTileEntity.getBaseMetaTileEntity().doExplosion(V[8]); + for (MetaTileEntity tTileEntity : mOutputBusses) tTileEntity.getBaseMetaTileEntity().doExplosion(V[8]); + for (MetaTileEntity tTileEntity : mInputHatches) tTileEntity.getBaseMetaTileEntity().doExplosion(V[8]); + for (MetaTileEntity tTileEntity : mOutputHatches) tTileEntity.getBaseMetaTileEntity().doExplosion(V[8]); + for (MetaTileEntity tTileEntity : mDynamoHatches) tTileEntity.getBaseMetaTileEntity().doExplosion(V[8]); + for (MetaTileEntity tTileEntity : mMufflerHatches) tTileEntity.getBaseMetaTileEntity().doExplosion(V[8]); + for (MetaTileEntity tTileEntity : mEnergyHatches) tTileEntity.getBaseMetaTileEntity().doExplosion(V[8]); + for (MetaTileEntity tTileEntity : mMaintenanceHatches) tTileEntity.getBaseMetaTileEntity().doExplosion(V[8]); + getBaseMetaTileEntity().doExplosion(V[8]); + } + + public boolean addEnergyOutput(long aEU) { + if (aEU <= 0) return true; + for (GT_MetaTileEntity_Hatch_Dynamo tHatch : mDynamoHatches) { + if (isValidMetaTileEntity(tHatch)) { + if (tHatch.getBaseMetaTileEntity().increaseStoredEnergyUnits(aEU, false)) { + return true; + } + } + } + return false; + } + + public long getMaxInputVoltage() { + long rVoltage = 0; + for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) + if (isValidMetaTileEntity(tHatch)) rVoltage += tHatch.getBaseMetaTileEntity().getInputVoltage(); + return rVoltage; + } + + public boolean drainEnergyInput(long aEU) { + if (aEU <= 0) return true; + for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) + if (isValidMetaTileEntity(tHatch)) { + if (tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(aEU, false)) return true; + } + return false; + } + + public boolean addOutput(FluidStack aLiquid) { + if (aLiquid == null) return false; + FluidStack tLiquid = aLiquid.copy(); + for (GT_MetaTileEntity_Hatch_Output tHatch : mOutputHatches) { + if (isValidMetaTileEntity(tHatch) && GT_ModHandler.isSteam(aLiquid) ? tHatch.outputsSteam() : tHatch.outputsLiquids()) { + int tAmount = tHatch.fill(tLiquid, false); + if (tAmount >= tLiquid.amount) { + return tHatch.fill(tLiquid, true) >= tLiquid.amount; + } else if (tAmount > 0) { + tLiquid.amount = tLiquid.amount - tHatch.fill(tLiquid, true); + } + } + } + return false; + } + + private void addFluidOutputs(FluidStack[] mOutputFluids2) { + for (int i = 0; i < mOutputFluids2.length; i++) { + if (mOutputHatches.size() > i && mOutputHatches.get(i) != null && mOutputFluids2[i] != null && isValidMetaTileEntity(mOutputHatches.get(i))) { + mOutputHatches.get(i).fill(mOutputFluids2[i], true); + } + } + + } + + public boolean depleteInput(FluidStack aLiquid) { + if (aLiquid == null) return false; + for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) { + tHatch.mRecipeMap = getRecipeMap(); + if (isValidMetaTileEntity(tHatch)) { + FluidStack tLiquid = tHatch.getFluid(); + if (tLiquid != null && tLiquid.isFluidEqual(aLiquid)) { + tLiquid = tHatch.drain(aLiquid.amount, false); + if (tLiquid != null && tLiquid.amount >= aLiquid.amount) { + tLiquid = tHatch.drain(aLiquid.amount, true); + return tLiquid != null && tLiquid.amount >= aLiquid.amount; + } + } + } + } + return false; + } + + public boolean addOutput(ItemStack aStack) { + if (GT_Utility.isStackInvalid(aStack)) return false; + aStack = GT_Utility.copy(aStack); // FluidStack aLiquid = GT_Utility.getFluidForFilledItem(aStack, true); // if (aLiquid == null) { - for (GT_MetaTileEntity_Hatch_OutputBus tHatch : mOutputBusses) { - if (isValidMetaTileEntity(tHatch)) { - for (int i = tHatch.getSizeInventory() - 1; i >= 0; i--) { - if (tHatch.getBaseMetaTileEntity().addStackToSlot(i, aStack)) return true; - } - } - } - for (GT_MetaTileEntity_Hatch_Output tHatch : mOutputHatches) { - if (isValidMetaTileEntity(tHatch) && tHatch.outputsItems()) { - if (tHatch.getBaseMetaTileEntity().addStackToSlot(1, aStack)) return true; - } - } + for (GT_MetaTileEntity_Hatch_OutputBus tHatch : mOutputBusses) { + if (isValidMetaTileEntity(tHatch)) { + for (int i = tHatch.getSizeInventory() - 1; i >= 0; i--) { + if (tHatch.getBaseMetaTileEntity().addStackToSlot(i, aStack)) return true; + } + } + } + for (GT_MetaTileEntity_Hatch_Output tHatch : mOutputHatches) { + if (isValidMetaTileEntity(tHatch) && tHatch.outputsItems()) { + if (tHatch.getBaseMetaTileEntity().addStackToSlot(1, aStack)) return true; + } + } // }else { // for (GT_MetaTileEntity_Hatch_Output tHatch : mOutputHatches) { // if (isValidMetaTileEntity(tHatch) && GT_ModHandler.isSteam(aLiquid)?tHatch.outputsSteam():tHatch.outputsLiquids()) { @@ -524,206 +578,219 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { // } // } // } - return false; - } - - public boolean depleteInput(ItemStack aStack) { - if (GT_Utility.isStackInvalid(aStack)) return false; - FluidStack aLiquid = GT_Utility.getFluidForFilledItem(aStack, true); - if (aLiquid != null) return depleteInput(aLiquid); - for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) { - tHatch.mRecipeMap = getRecipeMap(); - if (isValidMetaTileEntity(tHatch)) { - if (GT_Utility.areStacksEqual(aStack, tHatch.getBaseMetaTileEntity().getStackInSlot(0))) { - if (tHatch.getBaseMetaTileEntity().getStackInSlot(0).stackSize >= aStack.stackSize) { - tHatch.getBaseMetaTileEntity().decrStackSize(0, aStack.stackSize); - return true; - } - } - } - } - for (GT_MetaTileEntity_Hatch_InputBus tHatch : mInputBusses) { - tHatch.mRecipeMap = getRecipeMap(); - if (isValidMetaTileEntity(tHatch)) { - for (int i = tHatch.getBaseMetaTileEntity().getSizeInventory() - 1; i >= 0; i--) { - if (GT_Utility.areStacksEqual(aStack, tHatch.getBaseMetaTileEntity().getStackInSlot(i))) { - if (tHatch.getBaseMetaTileEntity().getStackInSlot(0).stackSize >= aStack.stackSize) { - tHatch.getBaseMetaTileEntity().decrStackSize(0, aStack.stackSize); - return true; - } - } - } - } - } - return false; - } - - public ArrayList getStoredOutputs() { - ArrayList rList = new ArrayList(); - for (GT_MetaTileEntity_Hatch_Output tHatch : mOutputHatches) { - if (isValidMetaTileEntity(tHatch)) { - rList.add(tHatch.getBaseMetaTileEntity().getStackInSlot(1)); - } - } - for (GT_MetaTileEntity_Hatch_OutputBus tHatch : mOutputBusses) { - if (isValidMetaTileEntity(tHatch)) { - for (int i = tHatch.getBaseMetaTileEntity().getSizeInventory() - 1; i >= 0; i--) { - rList.add(tHatch.getBaseMetaTileEntity().getStackInSlot(i)); - } - } - } - return rList; - } - - public ArrayList getStoredFluids() { - ArrayList rList = new ArrayList(); - for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) { - tHatch.mRecipeMap = getRecipeMap(); - if (isValidMetaTileEntity(tHatch) && tHatch.getFillableStack() != null) { - rList.add(tHatch.getFillableStack()); - } - } - return rList; - } - - public ArrayList getStoredInputs() { - ArrayList rList = new ArrayList(); - for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) { - tHatch.mRecipeMap = getRecipeMap(); - if (isValidMetaTileEntity(tHatch) && tHatch.getBaseMetaTileEntity().getStackInSlot(0) != null) { - rList.add(tHatch.getBaseMetaTileEntity().getStackInSlot(0)); - } - } - for (GT_MetaTileEntity_Hatch_InputBus tHatch : mInputBusses) { - tHatch.mRecipeMap = getRecipeMap(); - if (isValidMetaTileEntity(tHatch)) { - for (int i = tHatch.getBaseMetaTileEntity().getSizeInventory() - 1; i >= 0; i--) { - if (tHatch.getBaseMetaTileEntity().getStackInSlot(i) != null) rList.add(tHatch.getBaseMetaTileEntity().getStackInSlot(i)); - } - } - } - return rList; - } - - public GT_Recipe_Map getRecipeMap() { - return null; - } - - public void updateSlots() { - for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) if (isValidMetaTileEntity(tHatch)) tHatch.updateSlots(); - for (GT_MetaTileEntity_Hatch_InputBus tHatch : mInputBusses) if (isValidMetaTileEntity(tHatch)) tHatch.updateSlots(); - } - - public boolean addToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { - if (aTileEntity == null) return false; - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity == null) return false; - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch) ((GT_MetaTileEntity_Hatch)aMetaTileEntity).mMachineBlock = (byte)aBaseCasingIndex; - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) return mInputHatches.add((GT_MetaTileEntity_Hatch_Input)aMetaTileEntity); - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBus) return mInputBusses.add((GT_MetaTileEntity_Hatch_InputBus)aMetaTileEntity); - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output) return mOutputHatches.add((GT_MetaTileEntity_Hatch_Output)aMetaTileEntity); - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_OutputBus) return mOutputBusses.add((GT_MetaTileEntity_Hatch_OutputBus)aMetaTileEntity); - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Energy) return mEnergyHatches.add((GT_MetaTileEntity_Hatch_Energy)aMetaTileEntity); - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Dynamo) return mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo)aMetaTileEntity); - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance) return mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance)aMetaTileEntity); - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Muffler) return mMufflerHatches.add((GT_MetaTileEntity_Hatch_Muffler)aMetaTileEntity); - return false; - } - - public boolean addMaintenanceToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { - if (aTileEntity == null) return false; - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity == null) return false; - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance) { - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).mMachineBlock = (byte)aBaseCasingIndex; - return mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance)aMetaTileEntity); - } - return false; - } - - public boolean addEnergyInputToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { - if (aTileEntity == null) { - return false;} - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity == null) return false; - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Energy) { - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).mMachineBlock = (byte)aBaseCasingIndex; - return mEnergyHatches.add((GT_MetaTileEntity_Hatch_Energy)aMetaTileEntity); - } - return false; - } - - public boolean addDynamoToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { - if (aTileEntity == null) return false; - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity == null) return false; - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Dynamo) { - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).mMachineBlock = (byte)aBaseCasingIndex; - return mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo)aMetaTileEntity); - } - return false; - } - - public boolean addMufflerToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { - if (aTileEntity == null) return false; - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity == null) return false; - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Muffler) { - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).mMachineBlock = (byte)aBaseCasingIndex; - return mMufflerHatches.add((GT_MetaTileEntity_Hatch_Muffler)aMetaTileEntity); - } - return false; - } - - public boolean addInputToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { - if (aTileEntity == null) return false; - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity == null) return false; - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) { - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).mMachineBlock = (byte)aBaseCasingIndex; - ((GT_MetaTileEntity_Hatch_Input)aMetaTileEntity).mRecipeMap = getRecipeMap(); - return mInputHatches.add((GT_MetaTileEntity_Hatch_Input)aMetaTileEntity); - } - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBus) { - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).mMachineBlock = (byte)aBaseCasingIndex; - ((GT_MetaTileEntity_Hatch_InputBus)aMetaTileEntity).mRecipeMap = getRecipeMap(); - return mInputBusses.add((GT_MetaTileEntity_Hatch_InputBus)aMetaTileEntity); - } - return false; - } - - public boolean addOutputToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { - if (aTileEntity == null) return false; - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity == null) return false; - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output) { - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).mMachineBlock = (byte)aBaseCasingIndex; - return mOutputHatches.add((GT_MetaTileEntity_Hatch_Output)aMetaTileEntity); - } - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_OutputBus) { - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).mMachineBlock = (byte)aBaseCasingIndex; - return mOutputBusses.add((GT_MetaTileEntity_Hatch_OutputBus)aMetaTileEntity); - } - return false; - } - - @Override - public String[] getInfoData() { - return new String[] {"Progress:", (mProgresstime/20)+"secs", (mMaxProgresstime/20)+"secs", "Efficiency:", (mEfficiency/100.0F)+"%", "Problems:", ""+(getIdealStatus() - getRepairStatus())}; - } - - @Override - public boolean isGivingInformation() { - return true; - } - - @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } + return false; + } + + public boolean depleteInput(ItemStack aStack) { + if (GT_Utility.isStackInvalid(aStack)) return false; + FluidStack aLiquid = GT_Utility.getFluidForFilledItem(aStack, true); + if (aLiquid != null) return depleteInput(aLiquid); + for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) { + tHatch.mRecipeMap = getRecipeMap(); + if (isValidMetaTileEntity(tHatch)) { + if (GT_Utility.areStacksEqual(aStack, tHatch.getBaseMetaTileEntity().getStackInSlot(0))) { + if (tHatch.getBaseMetaTileEntity().getStackInSlot(0).stackSize >= aStack.stackSize) { + tHatch.getBaseMetaTileEntity().decrStackSize(0, aStack.stackSize); + return true; + } + } + } + } + for (GT_MetaTileEntity_Hatch_InputBus tHatch : mInputBusses) { + tHatch.mRecipeMap = getRecipeMap(); + if (isValidMetaTileEntity(tHatch)) { + for (int i = tHatch.getBaseMetaTileEntity().getSizeInventory() - 1; i >= 0; i--) { + if (GT_Utility.areStacksEqual(aStack, tHatch.getBaseMetaTileEntity().getStackInSlot(i))) { + if (tHatch.getBaseMetaTileEntity().getStackInSlot(0).stackSize >= aStack.stackSize) { + tHatch.getBaseMetaTileEntity().decrStackSize(0, aStack.stackSize); + return true; + } + } + } + } + } + return false; + } + + public ArrayList getStoredOutputs() { + ArrayList rList = new ArrayList(); + for (GT_MetaTileEntity_Hatch_Output tHatch : mOutputHatches) { + if (isValidMetaTileEntity(tHatch)) { + rList.add(tHatch.getBaseMetaTileEntity().getStackInSlot(1)); + } + } + for (GT_MetaTileEntity_Hatch_OutputBus tHatch : mOutputBusses) { + if (isValidMetaTileEntity(tHatch)) { + for (int i = tHatch.getBaseMetaTileEntity().getSizeInventory() - 1; i >= 0; i--) { + rList.add(tHatch.getBaseMetaTileEntity().getStackInSlot(i)); + } + } + } + return rList; + } + + public ArrayList getStoredFluids() { + ArrayList rList = new ArrayList(); + for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) { + tHatch.mRecipeMap = getRecipeMap(); + if (isValidMetaTileEntity(tHatch) && tHatch.getFillableStack() != null) { + rList.add(tHatch.getFillableStack()); + } + } + return rList; + } + + public ArrayList getStoredInputs() { + ArrayList rList = new ArrayList(); + for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) { + tHatch.mRecipeMap = getRecipeMap(); + if (isValidMetaTileEntity(tHatch) && tHatch.getBaseMetaTileEntity().getStackInSlot(0) != null) { + rList.add(tHatch.getBaseMetaTileEntity().getStackInSlot(0)); + } + } + for (GT_MetaTileEntity_Hatch_InputBus tHatch : mInputBusses) { + tHatch.mRecipeMap = getRecipeMap(); + if (isValidMetaTileEntity(tHatch)) { + for (int i = tHatch.getBaseMetaTileEntity().getSizeInventory() - 1; i >= 0; i--) { + if (tHatch.getBaseMetaTileEntity().getStackInSlot(i) != null) + rList.add(tHatch.getBaseMetaTileEntity().getStackInSlot(i)); + } + } + } + return rList; + } + + public GT_Recipe_Map getRecipeMap() { + return null; + } + + public void updateSlots() { + for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) + if (isValidMetaTileEntity(tHatch)) tHatch.updateSlots(); + for (GT_MetaTileEntity_Hatch_InputBus tHatch : mInputBusses) + if (isValidMetaTileEntity(tHatch)) tHatch.updateSlots(); + } + + public boolean addToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { + if (aTileEntity == null) return false; + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity == null) return false; + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch) + ((GT_MetaTileEntity_Hatch) aMetaTileEntity).mMachineBlock = (byte) aBaseCasingIndex; + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) + return mInputHatches.add((GT_MetaTileEntity_Hatch_Input) aMetaTileEntity); + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBus) + return mInputBusses.add((GT_MetaTileEntity_Hatch_InputBus) aMetaTileEntity); + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output) + return mOutputHatches.add((GT_MetaTileEntity_Hatch_Output) aMetaTileEntity); + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_OutputBus) + return mOutputBusses.add((GT_MetaTileEntity_Hatch_OutputBus) aMetaTileEntity); + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Energy) + return mEnergyHatches.add((GT_MetaTileEntity_Hatch_Energy) aMetaTileEntity); + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Dynamo) + return mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo) aMetaTileEntity); + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance) + return mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance) aMetaTileEntity); + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Muffler) + return mMufflerHatches.add((GT_MetaTileEntity_Hatch_Muffler) aMetaTileEntity); + return false; + } + + public boolean addMaintenanceToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { + if (aTileEntity == null) return false; + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity == null) return false; + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance) { + ((GT_MetaTileEntity_Hatch) aMetaTileEntity).mMachineBlock = (byte) aBaseCasingIndex; + return mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance) aMetaTileEntity); + } + return false; + } + + public boolean addEnergyInputToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { + if (aTileEntity == null) { + return false; + } + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity == null) return false; + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Energy) { + ((GT_MetaTileEntity_Hatch) aMetaTileEntity).mMachineBlock = (byte) aBaseCasingIndex; + return mEnergyHatches.add((GT_MetaTileEntity_Hatch_Energy) aMetaTileEntity); + } + return false; + } + + public boolean addDynamoToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { + if (aTileEntity == null) return false; + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity == null) return false; + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Dynamo) { + ((GT_MetaTileEntity_Hatch) aMetaTileEntity).mMachineBlock = (byte) aBaseCasingIndex; + return mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo) aMetaTileEntity); + } + return false; + } + + public boolean addMufflerToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { + if (aTileEntity == null) return false; + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity == null) return false; + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Muffler) { + ((GT_MetaTileEntity_Hatch) aMetaTileEntity).mMachineBlock = (byte) aBaseCasingIndex; + return mMufflerHatches.add((GT_MetaTileEntity_Hatch_Muffler) aMetaTileEntity); + } + return false; + } + + public boolean addInputToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { + if (aTileEntity == null) return false; + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity == null) return false; + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) { + ((GT_MetaTileEntity_Hatch) aMetaTileEntity).mMachineBlock = (byte) aBaseCasingIndex; + ((GT_MetaTileEntity_Hatch_Input) aMetaTileEntity).mRecipeMap = getRecipeMap(); + return mInputHatches.add((GT_MetaTileEntity_Hatch_Input) aMetaTileEntity); + } + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBus) { + ((GT_MetaTileEntity_Hatch) aMetaTileEntity).mMachineBlock = (byte) aBaseCasingIndex; + ((GT_MetaTileEntity_Hatch_InputBus) aMetaTileEntity).mRecipeMap = getRecipeMap(); + return mInputBusses.add((GT_MetaTileEntity_Hatch_InputBus) aMetaTileEntity); + } + return false; + } + + public boolean addOutputToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { + if (aTileEntity == null) return false; + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity == null) return false; + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output) { + ((GT_MetaTileEntity_Hatch) aMetaTileEntity).mMachineBlock = (byte) aBaseCasingIndex; + return mOutputHatches.add((GT_MetaTileEntity_Hatch_Output) aMetaTileEntity); + } + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_OutputBus) { + ((GT_MetaTileEntity_Hatch) aMetaTileEntity).mMachineBlock = (byte) aBaseCasingIndex; + return mOutputBusses.add((GT_MetaTileEntity_Hatch_OutputBus) aMetaTileEntity); + } + return false; + } + + @Override + public String[] getInfoData() { + return new String[]{"Progress:", (mProgresstime / 20) + "secs", (mMaxProgresstime / 20) + "secs", "Efficiency:", (mEfficiency / 100.0F) + "%", "Problems:", "" + (getIdealStatus() - getRepairStatus())}; + } + + @Override + public boolean isGivingInformation() { + return true; + } + + @Override + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return false; + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return false; + } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_TieredMachineBlock.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_TieredMachineBlock.java index daffadec..a37bacff 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_TieredMachineBlock.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_TieredMachineBlock.java @@ -1,65 +1,68 @@ package gregtech.api.metatileentity.implementations; -import static gregtech.api.enums.GT_Values.GT; import gregtech.api.interfaces.ITexture; import gregtech.api.metatileentity.MetaTileEntity; +import static gregtech.api.enums.GT_Values.GT; + public abstract class GT_MetaTileEntity_TieredMachineBlock extends MetaTileEntity { - /** - * Value between [0 - 9] to describe the Tier of this Machine. - */ - public final byte mTier; - - /** - * A simple Description. - */ - public final String mDescription; - - /** - * Contains all Textures used by this Block. - */ - public final ITexture[][][] mTextures; - - public GT_MetaTileEntity_TieredMachineBlock(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String aDescription, ITexture... aTextures) { - super(aID, aName, aNameRegional, aInvSlotCount); - mTier = (byte)Math.max(0, Math.min(aTier, 9)); - mDescription = aDescription; - - // must always be the last call! - if (GT.isClientSide()) mTextures = getTextureSet(aTextures); else mTextures = null; - } - - public GT_MetaTileEntity_TieredMachineBlock(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) { - super(aName, aInvSlotCount); - mTier = (byte)aTier; - mDescription = aDescription; - mTextures = aTextures; - } - - @Override - public byte getTileEntityBaseType() { - return (byte)(Math.min(3, mTier<=0?0:1+((mTier-1) / 4))); - } - - @Override - public long getInputTier() { - return mTier; + /** + * Value between [0 - 9] to describe the Tier of this Machine. + */ + public final byte mTier; + + /** + * A simple Description. + */ + public final String mDescription; + + /** + * Contains all Textures used by this Block. + */ + public final ITexture[][][] mTextures; + + public GT_MetaTileEntity_TieredMachineBlock(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String aDescription, ITexture... aTextures) { + super(aID, aName, aNameRegional, aInvSlotCount); + mTier = (byte) Math.max(0, Math.min(aTier, 9)); + mDescription = aDescription; + + // must always be the last call! + if (GT.isClientSide()) mTextures = getTextureSet(aTextures); + else mTextures = null; } - - @Override - public long getOutputTier() { - return mTier; + + public GT_MetaTileEntity_TieredMachineBlock(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) { + super(aName, aInvSlotCount); + mTier = (byte) aTier; + mDescription = aDescription; + mTextures = aTextures; } - - @Override - public String[] getDescription() { - return new String[] {mDescription}; - } - - /** - * Used Client Side to get a Texture Set for this Block. - * Called after setting the Tier and the Description so that those two are accessible. - * @param aTextures is the optional Array you can give to the Constructor. - */ - public abstract ITexture[][][] getTextureSet(ITexture[] aTextures); + + @Override + public byte getTileEntityBaseType() { + return (byte) (Math.min(3, mTier <= 0 ? 0 : 1 + ((mTier - 1) / 4))); + } + + @Override + public long getInputTier() { + return mTier; + } + + @Override + public long getOutputTier() { + return mTier; + } + + @Override + public String[] getDescription() { + return new String[]{mDescription}; + } + + /** + * Used Client Side to get a Texture Set for this Block. + * Called after setting the Tier and the Description so that those two are accessible. + * + * @param aTextures is the optional Array you can give to the Constructor. + */ + public abstract ITexture[][][] getTextureSet(ITexture[] aTextures); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java index c0d8a4ba..d91aafaa 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java @@ -1,6 +1,5 @@ package gregtech.api.metatileentity.implementations; -import static gregtech.api.enums.GT_Values.V; import cofh.api.energy.IEnergyProvider; import cofh.api.energy.IEnergyStorage; import crazypants.enderio.machine.capbank.TileCapBank; @@ -19,126 +18,184 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; +import static gregtech.api.enums.GT_Values.V; + /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* This is the main construct for my Basic Machines such as the Automatic Extractor * Extend this class to make a simple Machine */ public class GT_MetaTileEntity_Transformer extends GT_MetaTileEntity_TieredMachineBlock { - public GT_MetaTileEntity_Transformer(int aID, String aName, String aNameRegional, int aTier, String aDescription) { - super(aID, aName, aNameRegional, aTier, 0, aDescription); - } - - public GT_MetaTileEntity_Transformer(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { - super(aName, aTier, 0, aDescription, aTextures); - } - - @Override - public ITexture[][][] getTextureSet(ITexture[] aTextures) { - ITexture[][][] rTextures = new ITexture[12][17][]; - for (byte i = -1; i < 16; i++) { - rTextures[ 0][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1], Textures.BlockIcons.OVERLAYS_ENERGY_OUT[mTier]}; - rTextures[ 1][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1], Textures.BlockIcons.OVERLAYS_ENERGY_OUT[mTier]}; - rTextures[ 2][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1], Textures.BlockIcons.OVERLAYS_ENERGY_OUT[mTier]}; - rTextures[ 3][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1], Textures.BlockIcons.OVERLAYS_ENERGY_IN_MULTI[mTier]}; - rTextures[ 4][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1], Textures.BlockIcons.OVERLAYS_ENERGY_IN_MULTI[mTier]}; - rTextures[ 5][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1], Textures.BlockIcons.OVERLAYS_ENERGY_IN_MULTI[mTier]}; - rTextures[ 6][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1], Textures.BlockIcons.OVERLAYS_ENERGY_IN[mTier]}; - rTextures[ 7][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1], Textures.BlockIcons.OVERLAYS_ENERGY_IN[mTier]}; - rTextures[ 8][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1], Textures.BlockIcons.OVERLAYS_ENERGY_IN[mTier]}; - rTextures[ 9][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1], Textures.BlockIcons.OVERLAYS_ENERGY_OUT_MULTI[mTier]}; - rTextures[10][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1], Textures.BlockIcons.OVERLAYS_ENERGY_OUT_MULTI[mTier]}; - rTextures[11][i+1] = new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][i+1], Textures.BlockIcons.OVERLAYS_ENERGY_OUT_MULTI[mTier]}; - } - return rTextures; - } - - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { - return mTextures[Math.min(2,aSide)+(aSide==aFacing?3:0)+(aActive?0:6)][aColorIndex+1]; - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_Transformer(mName, mTier, mDescription, mTextures); - } - - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - @Override public boolean isSimpleMachine() {return true;} - @Override public boolean isFacingValid(byte aFacing) {return true;} - @Override public boolean isEnetInput() {return true;} - @Override public boolean isEnetOutput() {return true;} - @Override public boolean isInputFacing(byte aSide) {return getBaseMetaTileEntity().isAllowedToWork()?aSide==getBaseMetaTileEntity().getFrontFacing():aSide!=getBaseMetaTileEntity().getFrontFacing();} - @Override public boolean isOutputFacing(byte aSide) {return !isInputFacing(aSide);} - @Override public boolean isTeleporterCompatible() {return false;} - @Override public long getMinimumStoredEU() {return 512;} - @Override public long maxEUStore() {return 512+V[mTier+1]*2;} - @Override public long maxEUInput() {return V[getBaseMetaTileEntity().isAllowedToWork()?mTier+1:mTier];} - @Override public long maxEUOutput() {return V[getBaseMetaTileEntity().isAllowedToWork()?mTier:mTier+1];} - @Override public long maxAmperesOut() {return getBaseMetaTileEntity().isAllowedToWork()?V[mTier+1]/V[mTier]:1;} - @Override public long maxAmperesIn() {return getBaseMetaTileEntity().isAllowedToWork()?1:V[mTier+1]/V[mTier];} - - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - if (aBaseMetaTileEntity.isServerSide()) { - aBaseMetaTileEntity.setActive(aBaseMetaTileEntity.isAllowedToWork()); - for (byte i = 0; i < 6 && aBaseMetaTileEntity.getStoredEU() < aBaseMetaTileEntity.getEUCapacity(); i++) if (aBaseMetaTileEntity.inputEnergyFrom(i)) { - TileEntity tTileEntity = aBaseMetaTileEntity.getTileEntityAtSide(i); - if (tTileEntity instanceof IEnergySource && ((IEnergySource)tTileEntity).emitsEnergyTo((TileEntity)aBaseMetaTileEntity, ForgeDirection.getOrientation(GT_Utility.getOppositeSide(i)))) { - long tEU = Math.min(maxEUInput(), (long)((IEnergySource)tTileEntity).getOfferedEnergy()); - ((IEnergySource)tTileEntity).drawEnergy(tEU); - aBaseMetaTileEntity.injectEnergyUnits((byte)6, tEU, 1); - }else if (GregTech_API.mInputRF && tTileEntity instanceof IEnergyProvider&& ((IEnergyProvider)tTileEntity).extractEnergy(ForgeDirection.getOrientation(GT_Utility.getOppositeSide(i)),1,true)==1) { - long tEU = (long)((IEnergyProvider)tTileEntity).extractEnergy(ForgeDirection.getOrientation(GT_Utility.getOppositeSide(i)),(int) maxEUInput()* 100 / GregTech_API.mRFtoEU ,false); - tEU = tEU * GregTech_API.mRFtoEU / 100; - aBaseMetaTileEntity.injectEnergyUnits((byte)6, Math.min(tEU,maxEUInput()), 1); - }else if (GregTech_API.mInputRF && tTileEntity instanceof IEnergyStorage&& ((IEnergyStorage)tTileEntity).extractEnergy(1,true)==1) { - long tEU = (long)((IEnergyStorage)tTileEntity).extractEnergy((int) maxEUInput()* 100 / GregTech_API.mRFtoEU ,false); - tEU = tEU * GregTech_API.mRFtoEU / 100; - aBaseMetaTileEntity.injectEnergyUnits((byte)6, Math.min(tEU,maxEUInput()), 1); - }else if (GregTech_API.mInputRF && GregTech_API.meIOLoaded && tTileEntity instanceof IPowerContainer && ((IPowerContainer)tTileEntity).getEnergyStored()>0) { - int storedRF = ((IPowerContainer)tTileEntity).getEnergyStored(); - int extractRF = (int) maxEUInput()* 100 / GregTech_API.mRFtoEU; - long tEU =0; - if(tTileEntity instanceof TileCapBank){ - ICapBankNetwork network = ((TileCapBank)tTileEntity).getNetwork(); - if(network!=null&&network.getEnergyStoredL()>0){ - tEU = Math.min((Math.min(Math.min(network.getEnergyStoredL(), storedRF-extractRF),network.getMaxOutput())) * GregTech_API.mRFtoEU / 100,maxEUInput()); - network.addEnergy((int) -(tEU * 100 / GregTech_API.mRFtoEU)); - } - }else{ - if(storedRF>extractRF){ - ((IPowerContainer)tTileEntity).setEnergyStored(storedRF-extractRF); - tEU = maxEUInput(); - }else{ - ((IPowerContainer)tTileEntity).setEnergyStored(0); - tEU = storedRF * GregTech_API.mRFtoEU / 100 ; - } - } - aBaseMetaTileEntity.injectEnergyUnits((byte)6, Math.min(tEU,maxEUInput()), 1); - } - } - } - } - - @Override - public void saveNBTData(NBTTagCompound aNBT) { - // - } + public GT_MetaTileEntity_Transformer(int aID, String aName, String aNameRegional, int aTier, String aDescription) { + super(aID, aName, aNameRegional, aTier, 0, aDescription); + } - @Override - public void loadNBTData(NBTTagCompound aNBT) { - // - } + public GT_MetaTileEntity_Transformer(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 0, aDescription, aTextures); + } - @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } + @Override + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + ITexture[][][] rTextures = new ITexture[12][17][]; + for (byte i = -1; i < 16; i++) { + rTextures[0][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], Textures.BlockIcons.OVERLAYS_ENERGY_OUT[mTier]}; + rTextures[1][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], Textures.BlockIcons.OVERLAYS_ENERGY_OUT[mTier]}; + rTextures[2][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], Textures.BlockIcons.OVERLAYS_ENERGY_OUT[mTier]}; + rTextures[3][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], Textures.BlockIcons.OVERLAYS_ENERGY_IN_MULTI[mTier]}; + rTextures[4][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], Textures.BlockIcons.OVERLAYS_ENERGY_IN_MULTI[mTier]}; + rTextures[5][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], Textures.BlockIcons.OVERLAYS_ENERGY_IN_MULTI[mTier]}; + rTextures[6][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], Textures.BlockIcons.OVERLAYS_ENERGY_IN[mTier]}; + rTextures[7][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], Textures.BlockIcons.OVERLAYS_ENERGY_IN[mTier]}; + rTextures[8][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], Textures.BlockIcons.OVERLAYS_ENERGY_IN[mTier]}; + rTextures[9][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], Textures.BlockIcons.OVERLAYS_ENERGY_OUT_MULTI[mTier]}; + rTextures[10][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], Textures.BlockIcons.OVERLAYS_ENERGY_OUT_MULTI[mTier]}; + rTextures[11][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], Textures.BlockIcons.OVERLAYS_ENERGY_OUT_MULTI[mTier]}; + } + return rTextures; + } - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + return mTextures[Math.min(2, aSide) + (aSide == aFacing ? 3 : 0) + (aActive ? 0 : 6)][aColorIndex + 1]; + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Transformer(mName, mTier, mDescription, mTextures); + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + @Override + public boolean isSimpleMachine() { + return true; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return true; + } + + @Override + public boolean isEnetInput() { + return true; + } + + @Override + public boolean isEnetOutput() { + return true; + } + + @Override + public boolean isInputFacing(byte aSide) { + return getBaseMetaTileEntity().isAllowedToWork() ? aSide == getBaseMetaTileEntity().getFrontFacing() : aSide != getBaseMetaTileEntity().getFrontFacing(); + } + + @Override + public boolean isOutputFacing(byte aSide) { + return !isInputFacing(aSide); + } + + @Override + public boolean isTeleporterCompatible() { + return false; + } + + @Override + public long getMinimumStoredEU() { + return 512; + } + + @Override + public long maxEUStore() { + return 512 + V[mTier + 1] * 2; + } + + @Override + public long maxEUInput() { + return V[getBaseMetaTileEntity().isAllowedToWork() ? mTier + 1 : mTier]; + } + + @Override + public long maxEUOutput() { + return V[getBaseMetaTileEntity().isAllowedToWork() ? mTier : mTier + 1]; + } + + @Override + public long maxAmperesOut() { + return getBaseMetaTileEntity().isAllowedToWork() ? V[mTier + 1] / V[mTier] : 1; + } + + @Override + public long maxAmperesIn() { + return getBaseMetaTileEntity().isAllowedToWork() ? 1 : V[mTier + 1] / V[mTier]; + } + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + if (aBaseMetaTileEntity.isServerSide()) { + aBaseMetaTileEntity.setActive(aBaseMetaTileEntity.isAllowedToWork()); + for (byte i = 0; i < 6 && aBaseMetaTileEntity.getStoredEU() < aBaseMetaTileEntity.getEUCapacity(); i++) + if (aBaseMetaTileEntity.inputEnergyFrom(i)) { + TileEntity tTileEntity = aBaseMetaTileEntity.getTileEntityAtSide(i); + if (tTileEntity instanceof IEnergySource && ((IEnergySource) tTileEntity).emitsEnergyTo((TileEntity) aBaseMetaTileEntity, ForgeDirection.getOrientation(GT_Utility.getOppositeSide(i)))) { + long tEU = Math.min(maxEUInput(), (long) ((IEnergySource) tTileEntity).getOfferedEnergy()); + ((IEnergySource) tTileEntity).drawEnergy(tEU); + aBaseMetaTileEntity.injectEnergyUnits((byte) 6, tEU, 1); + } else if (GregTech_API.mInputRF && tTileEntity instanceof IEnergyProvider && ((IEnergyProvider) tTileEntity).extractEnergy(ForgeDirection.getOrientation(GT_Utility.getOppositeSide(i)), 1, true) == 1) { + long tEU = (long) ((IEnergyProvider) tTileEntity).extractEnergy(ForgeDirection.getOrientation(GT_Utility.getOppositeSide(i)), (int) maxEUInput() * 100 / GregTech_API.mRFtoEU, false); + tEU = tEU * GregTech_API.mRFtoEU / 100; + aBaseMetaTileEntity.injectEnergyUnits((byte) 6, Math.min(tEU, maxEUInput()), 1); + } else if (GregTech_API.mInputRF && tTileEntity instanceof IEnergyStorage && ((IEnergyStorage) tTileEntity).extractEnergy(1, true) == 1) { + long tEU = (long) ((IEnergyStorage) tTileEntity).extractEnergy((int) maxEUInput() * 100 / GregTech_API.mRFtoEU, false); + tEU = tEU * GregTech_API.mRFtoEU / 100; + aBaseMetaTileEntity.injectEnergyUnits((byte) 6, Math.min(tEU, maxEUInput()), 1); + } else if (GregTech_API.mInputRF && GregTech_API.meIOLoaded && tTileEntity instanceof IPowerContainer && ((IPowerContainer) tTileEntity).getEnergyStored() > 0) { + int storedRF = ((IPowerContainer) tTileEntity).getEnergyStored(); + int extractRF = (int) maxEUInput() * 100 / GregTech_API.mRFtoEU; + long tEU = 0; + if (tTileEntity instanceof TileCapBank) { + ICapBankNetwork network = ((TileCapBank) tTileEntity).getNetwork(); + if (network != null && network.getEnergyStoredL() > 0) { + tEU = Math.min((Math.min(Math.min(network.getEnergyStoredL(), storedRF - extractRF), network.getMaxOutput())) * GregTech_API.mRFtoEU / 100, maxEUInput()); + network.addEnergy((int) -(tEU * 100 / GregTech_API.mRFtoEU)); + } + } else { + if (storedRF > extractRF) { + ((IPowerContainer) tTileEntity).setEnergyStored(storedRF - extractRF); + tEU = maxEUInput(); + } else { + ((IPowerContainer) tTileEntity).setEnergyStored(0); + tEU = storedRF * GregTech_API.mRFtoEU / 100; + } + } + aBaseMetaTileEntity.injectEnergyUnits((byte) 6, Math.min(tEU, maxEUInput()), 1); + } + } + } + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + // + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + // + } + + @Override + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return false; + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return false; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/net/GT_Packet.java b/src/main/java/gregtech/api/net/GT_Packet.java index 79e2e986..6fdd013d 100644 --- a/src/main/java/gregtech/api/net/GT_Packet.java +++ b/src/main/java/gregtech/api/net/GT_Packet.java @@ -1,29 +1,29 @@ package gregtech.api.net; +import com.google.common.io.ByteArrayDataInput; import net.minecraft.world.IBlockAccess; -import com.google.common.io.ByteArrayDataInput; - public abstract class GT_Packet { - public GT_Packet(boolean aIsReference) { - // - } - - /** - * I use constant IDs instead of Dynamic ones, since that is much more fail safe - * @return a Packet ID for this Class - */ - public abstract byte getPacketID(); - - /** - * @return encoded byte Stream - */ - public abstract byte[] encode(); - - /** - * @return encoded byte Stream - */ - public abstract GT_Packet decode(ByteArrayDataInput aData); - - public abstract void process(IBlockAccess aWorld); + public GT_Packet(boolean aIsReference) { + // + } + + /** + * I use constant IDs instead of Dynamic ones, since that is much more fail safe + * + * @return a Packet ID for this Class + */ + public abstract byte getPacketID(); + + /** + * @return encoded byte Stream + */ + public abstract byte[] encode(); + + /** + * @return encoded byte Stream + */ + public abstract GT_Packet decode(ByteArrayDataInput aData); + + public abstract void process(IBlockAccess aWorld); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/net/GT_Packet_Block_Event.java b/src/main/java/gregtech/api/net/GT_Packet_Block_Event.java index 95932d58..d8cab48b 100644 --- a/src/main/java/gregtech/api/net/GT_Packet_Block_Event.java +++ b/src/main/java/gregtech/api/net/GT_Packet_Block_Event.java @@ -1,59 +1,58 @@ package gregtech.api.net; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.IBlockAccess; - import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.IBlockAccess; /** * Used to transfer Block Events in a much better fashion */ public class GT_Packet_Block_Event extends GT_Packet { - private int mX, mZ; - private short mY; - private byte mID, mValue; - - public GT_Packet_Block_Event() { - super(true); - } - - public GT_Packet_Block_Event(int aX, short aY, int aZ, byte aID, byte aValue) { - super(false); - mX = aX; - mY = aY; - mZ = aZ; - mID = aID; - mValue = aValue; - } + private int mX, mZ; + private short mY; + private byte mID, mValue; - @Override - public byte[] encode() { + public GT_Packet_Block_Event() { + super(true); + } + + public GT_Packet_Block_Event(int aX, short aY, int aZ, byte aID, byte aValue) { + super(false); + mX = aX; + mY = aY; + mZ = aZ; + mID = aID; + mValue = aValue; + } + + @Override + public byte[] encode() { ByteArrayDataOutput tOut = ByteStreams.newDataOutput(10); tOut.writeInt(mX); tOut.writeShort(mY); tOut.writeInt(mZ); tOut.writeByte(mID); tOut.writeByte(mValue); - return tOut.toByteArray(); - } - - @Override - public GT_Packet decode(ByteArrayDataInput aData) { + return tOut.toByteArray(); + } + + @Override + public GT_Packet decode(ByteArrayDataInput aData) { return new GT_Packet_Block_Event(aData.readInt(), aData.readShort(), aData.readInt(), aData.readByte(), aData.readByte()); - } - - @Override - public void process(IBlockAccess aWorld) { - if (aWorld != null) { - TileEntity tTileEntity = aWorld.getTileEntity(mX, mY, mZ); - if (tTileEntity != null) tTileEntity.receiveClientEvent(mID, mValue); - } - } - - @Override - public byte getPacketID() { - return 2; - } + } + + @Override + public void process(IBlockAccess aWorld) { + if (aWorld != null) { + TileEntity tTileEntity = aWorld.getTileEntity(mX, mY, mZ); + if (tTileEntity != null) tTileEntity.receiveClientEvent(mID, mValue); + } + } + + @Override + public byte getPacketID() { + return 2; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/net/GT_Packet_Sound.java b/src/main/java/gregtech/api/net/GT_Packet_Sound.java index 74e48bb3..5490d0d3 100644 --- a/src/main/java/gregtech/api/net/GT_Packet_Sound.java +++ b/src/main/java/gregtech/api/net/GT_Packet_Sound.java @@ -1,34 +1,33 @@ package gregtech.api.net; -import gregtech.api.util.GT_Utility; -import net.minecraft.world.IBlockAccess; - import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; +import gregtech.api.util.GT_Utility; +import net.minecraft.world.IBlockAccess; public class GT_Packet_Sound extends GT_Packet { - private int mX, mZ; - private short mY; - private String mSoundName; - private float mSoundStrength, mSoundPitch; - - public GT_Packet_Sound() { - super(true); - } - - public GT_Packet_Sound(String aSoundName, float aSoundStrength, float aSoundPitch, int aX, short aY, int aZ) { - super(false); - mX = aX; - mY = aY; - mZ = aZ; - mSoundName = aSoundName; - mSoundStrength = aSoundStrength; - mSoundPitch = aSoundPitch; - } - - @Override - public byte[] encode() { + private int mX, mZ; + private short mY; + private String mSoundName; + private float mSoundStrength, mSoundPitch; + + public GT_Packet_Sound() { + super(true); + } + + public GT_Packet_Sound(String aSoundName, float aSoundStrength, float aSoundPitch, int aX, short aY, int aZ) { + super(false); + mX = aX; + mY = aY; + mZ = aZ; + mSoundName = aSoundName; + mSoundStrength = aSoundStrength; + mSoundPitch = aSoundPitch; + } + + @Override + public byte[] encode() { ByteArrayDataOutput tOut = ByteStreams.newDataOutput(10); tOut.writeUTF(mSoundName); tOut.writeFloat(mSoundStrength); @@ -36,21 +35,21 @@ public class GT_Packet_Sound extends GT_Packet { tOut.writeInt(mX); tOut.writeShort(mY); tOut.writeInt(mZ); - return tOut.toByteArray(); - } - - @Override - public GT_Packet decode(ByteArrayDataInput aData) { + return tOut.toByteArray(); + } + + @Override + public GT_Packet decode(ByteArrayDataInput aData) { return new GT_Packet_Sound(aData.readUTF(), aData.readFloat(), aData.readFloat(), aData.readInt(), aData.readShort(), aData.readInt()); - } - - @Override - public void process(IBlockAccess aWorld) { - GT_Utility.doSoundAtClient(mSoundName, 1, mSoundStrength, mSoundPitch, mX, mY, mZ); - } - - @Override - public byte getPacketID() { - return 1; - } + } + + @Override + public void process(IBlockAccess aWorld) { + GT_Utility.doSoundAtClient(mSoundName, 1, mSoundStrength, mSoundPitch, mX, mY, mZ); + } + + @Override + public byte getPacketID() { + return 1; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/net/GT_Packet_TileEntity.java b/src/main/java/gregtech/api/net/GT_Packet_TileEntity.java index a5d84244..b916da27 100644 --- a/src/main/java/gregtech/api/net/GT_Packet_TileEntity.java +++ b/src/main/java/gregtech/api/net/GT_Packet_TileEntity.java @@ -1,83 +1,84 @@ package gregtech.api.net; +import com.google.common.io.ByteArrayDataInput; +import com.google.common.io.ByteArrayDataOutput; +import com.google.common.io.ByteStreams; import gregtech.api.metatileentity.BaseMetaPipeEntity; import gregtech.api.metatileentity.BaseMetaTileEntity; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; -import com.google.common.io.ByteArrayDataInput; -import com.google.common.io.ByteArrayDataOutput; -import com.google.common.io.ByteStreams; - public class GT_Packet_TileEntity extends GT_Packet { - private int mX, mZ, mC0, mC1, mC2, mC3, mC4, mC5; - private short mY, mID; - private byte mTexture, mUpdate, mRedstone, mColor; - - public GT_Packet_TileEntity() { - super(true); - } - - public GT_Packet_TileEntity(int aX, short aY, int aZ, short aID, int aC0, int aC1, int aC2, int aC3, int aC4, int aC5, byte aTexture, byte aUpdate, byte aRedstone, byte aColor) { - super(false); - mX = aX; - mY = aY; - mZ = aZ; - mC0 = aC0; - mC1 = aC1; - mC2 = aC2; - mC3 = aC3; - mC4 = aC4; - mC5 = aC5; - mID = aID; - mTexture = aTexture; - mUpdate = aUpdate; - mRedstone = aRedstone; - mColor = aColor; - } - - @Override - public byte[] encode() { + private int mX, mZ, mC0, mC1, mC2, mC3, mC4, mC5; + private short mY, mID; + private byte mTexture, mUpdate, mRedstone, mColor; + + public GT_Packet_TileEntity() { + super(true); + } + + public GT_Packet_TileEntity(int aX, short aY, int aZ, short aID, int aC0, int aC1, int aC2, int aC3, int aC4, int aC5, byte aTexture, byte aUpdate, byte aRedstone, byte aColor) { + super(false); + mX = aX; + mY = aY; + mZ = aZ; + mC0 = aC0; + mC1 = aC1; + mC2 = aC2; + mC3 = aC3; + mC4 = aC4; + mC5 = aC5; + mID = aID; + mTexture = aTexture; + mUpdate = aUpdate; + mRedstone = aRedstone; + mColor = aColor; + } + + @Override + public byte[] encode() { ByteArrayDataOutput tOut = ByteStreams.newDataOutput(40); - + tOut.writeInt(mX); tOut.writeShort(mY); tOut.writeInt(mZ); tOut.writeShort(mID); - + tOut.writeInt(mC0); tOut.writeInt(mC1); tOut.writeInt(mC2); tOut.writeInt(mC3); tOut.writeInt(mC4); tOut.writeInt(mC5); - + tOut.writeByte(mTexture); tOut.writeByte(mUpdate); tOut.writeByte(mRedstone); tOut.writeByte(mColor); - - return tOut.toByteArray(); - } - - @Override - public GT_Packet decode(ByteArrayDataInput aData) { + + return tOut.toByteArray(); + } + + @Override + public GT_Packet decode(ByteArrayDataInput aData) { return new GT_Packet_TileEntity(aData.readInt(), aData.readShort(), aData.readInt(), aData.readShort(), aData.readInt(), aData.readInt(), aData.readInt(), aData.readInt(), aData.readInt(), aData.readInt(), aData.readByte(), aData.readByte(), aData.readByte(), aData.readByte()); - } - - @Override - public void process(IBlockAccess aWorld) { - if (aWorld != null) { - TileEntity tTileEntity = aWorld.getTileEntity(mX, mY, mZ); - if (tTileEntity != null) { - if (tTileEntity instanceof BaseMetaTileEntity) ((BaseMetaTileEntity)tTileEntity).receiveMetaTileEntityData(mID, mC0, mC1, mC2, mC3, mC4, mC5, mTexture, mUpdate, mRedstone, mColor); - else if (tTileEntity instanceof BaseMetaPipeEntity) ((BaseMetaPipeEntity)tTileEntity).receiveMetaTileEntityData(mID, mC0, mC1, mC2, mC3, mC4, mC5, mTexture, mUpdate, mRedstone, mColor); - } - } - } - - @Override - public byte getPacketID() { - return 0; - } + } + + @Override + public void process(IBlockAccess aWorld) { + if (aWorld != null) { + TileEntity tTileEntity = aWorld.getTileEntity(mX, mY, mZ); + if (tTileEntity != null) { + if (tTileEntity instanceof BaseMetaTileEntity) + ((BaseMetaTileEntity) tTileEntity).receiveMetaTileEntityData(mID, mC0, mC1, mC2, mC3, mC4, mC5, mTexture, mUpdate, mRedstone, mColor); + else if (tTileEntity instanceof BaseMetaPipeEntity) + ((BaseMetaPipeEntity) tTileEntity).receiveMetaTileEntityData(mID, mC0, mC1, mC2, mC3, mC4, mC5, mTexture, mUpdate, mRedstone, mColor); + } + } + } + + @Override + public byte getPacketID() { + return 0; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/net/IGT_NetworkHandler.java b/src/main/java/gregtech/api/net/IGT_NetworkHandler.java index db278882..488e2559 100644 --- a/src/main/java/gregtech/api/net/IGT_NetworkHandler.java +++ b/src/main/java/gregtech/api/net/IGT_NetworkHandler.java @@ -1,12 +1,15 @@ package gregtech.api.net; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.world.World; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; public interface IGT_NetworkHandler { public void sendToPlayer(GT_Packet aPacket, EntityPlayerMP aPlayer); + public void sendToAllAround(GT_Packet aPacket, TargetPoint aPosition); + public void sendToServer(GT_Packet aPacket); - public void sendPacketToAllPlayersInRange(World aWorld, GT_Packet aPacket, int aX, int aZ); + + public void sendPacketToAllPlayersInRange(World aWorld, GT_Packet aPacket, int aX, int aZ); } \ No newline at end of file diff --git a/src/main/java/gregtech/api/objects/ElementStack.java b/src/main/java/gregtech/api/objects/ElementStack.java index 38443dff..f3e15436 100644 --- a/src/main/java/gregtech/api/objects/ElementStack.java +++ b/src/main/java/gregtech/api/objects/ElementStack.java @@ -3,39 +3,40 @@ package gregtech.api.objects; import gregtech.api.enums.Element; public class ElementStack implements Cloneable { - public int mAmount; - public Element mElement; - - public ElementStack(Element aElement, int aAmount) { - mElement = aElement==null?Element._NULL:aElement; - mAmount = aAmount; - } - - public ElementStack copy(int aAmount) { - return new ElementStack(mElement, aAmount); - } - - @Override - public ElementStack clone() { - return new ElementStack(mElement, mAmount); - } - - @Override - public boolean equals(Object aObject) { - if (aObject == this) return true; - if (aObject == null) return false; - if (aObject instanceof Element) return aObject == mElement; - if (aObject instanceof ElementStack) return ((ElementStack)aObject).mElement == mElement && (mAmount < 0 || ((ElementStack)aObject).mAmount < 0 || ((ElementStack)aObject).mAmount == mAmount); - return false; - } - - @Override - public String toString() { - return mElement.toString()+mAmount; - } - - @Override - public int hashCode() { - return mElement.hashCode(); - } + public int mAmount; + public Element mElement; + + public ElementStack(Element aElement, int aAmount) { + mElement = aElement == null ? Element._NULL : aElement; + mAmount = aAmount; + } + + public ElementStack copy(int aAmount) { + return new ElementStack(mElement, aAmount); + } + + @Override + public ElementStack clone() { + return new ElementStack(mElement, mAmount); + } + + @Override + public boolean equals(Object aObject) { + if (aObject == this) return true; + if (aObject == null) return false; + if (aObject instanceof Element) return aObject == mElement; + if (aObject instanceof ElementStack) + return ((ElementStack) aObject).mElement == mElement && (mAmount < 0 || ((ElementStack) aObject).mAmount < 0 || ((ElementStack) aObject).mAmount == mAmount); + return false; + } + + @Override + public String toString() { + return mElement.toString() + mAmount; + } + + @Override + public int hashCode() { + return mElement.hashCode(); + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/objects/GT_ArrayList.java b/src/main/java/gregtech/api/objects/GT_ArrayList.java index a6c07502..5bc781e2 100644 --- a/src/main/java/gregtech/api/objects/GT_ArrayList.java +++ b/src/main/java/gregtech/api/objects/GT_ArrayList.java @@ -5,55 +5,55 @@ import java.util.Arrays; import java.util.Collection; public class GT_ArrayList extends ArrayList { - private static final long serialVersionUID = 1L; - - private final boolean mAllowNulls; - - public GT_ArrayList(boolean aAllowNulls, int aCapacity) { - super(aCapacity); - mAllowNulls = aAllowNulls; - } - - public GT_ArrayList(boolean aAllowNulls, E... aArray) { - super(Arrays.asList(aArray)); - mAllowNulls = aAllowNulls; - if (!mAllowNulls) for (int i = 0; i < size(); i++) if (get(i) == null) remove(i--); - } - - public GT_ArrayList(boolean aAllowNulls, Collection aList) { - super(aList); - mAllowNulls = aAllowNulls; - if (!mAllowNulls) for (int i = 0; i < size(); i++) if (get(i) == null) remove(i--); + private static final long serialVersionUID = 1L; + + private final boolean mAllowNulls; + + public GT_ArrayList(boolean aAllowNulls, int aCapacity) { + super(aCapacity); + mAllowNulls = aAllowNulls; } - + + public GT_ArrayList(boolean aAllowNulls, E... aArray) { + super(Arrays.asList(aArray)); + mAllowNulls = aAllowNulls; + if (!mAllowNulls) for (int i = 0; i < size(); i++) if (get(i) == null) remove(i--); + } + + public GT_ArrayList(boolean aAllowNulls, Collection aList) { + super(aList); + mAllowNulls = aAllowNulls; + if (!mAllowNulls) for (int i = 0; i < size(); i++) if (get(i) == null) remove(i--); + } + @Override - public E set(int aIndex, E aElement) { - if (mAllowNulls || aElement != null) return super.set(aIndex, aElement); + public E set(int aIndex, E aElement) { + if (mAllowNulls || aElement != null) return super.set(aIndex, aElement); return null; } - + @Override - public boolean add(E aElement) { - if (mAllowNulls || aElement != null) return super.add(aElement); + public boolean add(E aElement) { + if (mAllowNulls || aElement != null) return super.add(aElement); return false; } - + @Override - public void add(int aIndex, E aElement) { - if (mAllowNulls || aElement != null) super.add(aIndex, aElement); + public void add(int aIndex, E aElement) { + if (mAllowNulls || aElement != null) super.add(aIndex, aElement); } - + @Override - public boolean addAll(Collection aList) { + public boolean addAll(Collection aList) { boolean rReturn = super.addAll(aList); - if (!mAllowNulls) for (int i = 0; i < size(); i++) if (get(i) == null) remove(i--); - return rReturn; + if (!mAllowNulls) for (int i = 0; i < size(); i++) if (get(i) == null) remove(i--); + return rReturn; } - + @Override - public boolean addAll(int aIndex, Collection aList) { - boolean rReturn = super.addAll(aIndex, aList); - if (!mAllowNulls) for (int i = 0; i < size(); i++) if (get(i) == null) remove(i--); - return rReturn; + public boolean addAll(int aIndex, Collection aList) { + boolean rReturn = super.addAll(aIndex, aList); + if (!mAllowNulls) for (int i = 0; i < size(); i++) if (get(i) == null) remove(i--); + return rReturn; } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/objects/GT_CopiedBlockTexture.java b/src/main/java/gregtech/api/objects/GT_CopiedBlockTexture.java index ffbbe09e..caf46b39 100644 --- a/src/main/java/gregtech/api/objects/GT_CopiedBlockTexture.java +++ b/src/main/java/gregtech/api/objects/GT_CopiedBlockTexture.java @@ -8,89 +8,87 @@ import net.minecraft.client.renderer.Tessellator; import net.minecraft.util.IIcon; public class GT_CopiedBlockTexture implements ITexture { - private final Block mBlock; - private final byte mSide, mMeta; - - /** - * DO NOT MANIPULATE THE VALUES INSIDE THIS ARRAY!!! - * - * Just set this variable to another different Array instead. - * Otherwise some colored things will get Problems. - */ - public short[] mRGBa; - - private final boolean mAllowAlpha; - - public GT_CopiedBlockTexture(Block aBlock, int aSide, int aMeta, short[] aRGBa, boolean aAllowAlpha) { - if (aRGBa.length != 4) throw new IllegalArgumentException("RGBa doesn't have 4 Values @ GT_CopiedBlockTexture"); - mBlock = aBlock; - mRGBa = aRGBa; - mSide = (byte)aSide; - mMeta = (byte)aMeta; - mAllowAlpha = aAllowAlpha; - } - - public GT_CopiedBlockTexture(Block aBlock, int aSide, int aMeta, short[] aRGBa) { - this(aBlock, aSide, aMeta, aRGBa, true); - } - - public GT_CopiedBlockTexture(Block aBlock, int aSide, int aMeta) { - this(aBlock, aSide, aMeta, Dyes._NULL.mRGBa); - } - - private IIcon getIcon(int aSide) { - if (mSide == 6) return mBlock.getIcon(aSide, mMeta); - return mBlock.getIcon(mSide, mMeta); - } - - @Override - public void renderXPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - IIcon aIcon = getIcon(5); - Tessellator.instance.setColorRGBA((int)(mRGBa[0] * 0.6F), (int)(mRGBa[1] * 0.6F), (int)(mRGBa[2] * 0.6F), mAllowAlpha?255-mRGBa[3]:255); + private final Block mBlock; + private final byte mSide, mMeta; + private final boolean mAllowAlpha; + /** + * DO NOT MANIPULATE THE VALUES INSIDE THIS ARRAY!!! + *

+ * Just set this variable to another different Array instead. + * Otherwise some colored things will get Problems. + */ + public short[] mRGBa; + + public GT_CopiedBlockTexture(Block aBlock, int aSide, int aMeta, short[] aRGBa, boolean aAllowAlpha) { + if (aRGBa.length != 4) throw new IllegalArgumentException("RGBa doesn't have 4 Values @ GT_CopiedBlockTexture"); + mBlock = aBlock; + mRGBa = aRGBa; + mSide = (byte) aSide; + mMeta = (byte) aMeta; + mAllowAlpha = aAllowAlpha; + } + + public GT_CopiedBlockTexture(Block aBlock, int aSide, int aMeta, short[] aRGBa) { + this(aBlock, aSide, aMeta, aRGBa, true); + } + + public GT_CopiedBlockTexture(Block aBlock, int aSide, int aMeta) { + this(aBlock, aSide, aMeta, Dyes._NULL.mRGBa); + } + + private IIcon getIcon(int aSide) { + if (mSide == 6) return mBlock.getIcon(aSide, mMeta); + return mBlock.getIcon(mSide, mMeta); + } + + @Override + public void renderXPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + IIcon aIcon = getIcon(5); + Tessellator.instance.setColorRGBA((int) (mRGBa[0] * 0.6F), (int) (mRGBa[1] * 0.6F), (int) (mRGBa[2] * 0.6F), mAllowAlpha ? 255 - mRGBa[3] : 255); // aRenderer.flipTexture = !aRenderer.flipTexture; - aRenderer.renderFaceXPos(aBlock, aX, aY, aZ, aIcon); + aRenderer.renderFaceXPos(aBlock, aX, aY, aZ, aIcon); // aRenderer.flipTexture = !aRenderer.flipTexture; - } - - @Override - public void renderXNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - IIcon aIcon = getIcon(4); - Tessellator.instance.setColorRGBA((int)(mRGBa[0] * 0.6F), (int)(mRGBa[1] * 0.6F), (int)(mRGBa[2] * 0.6F), mAllowAlpha?255-mRGBa[3]:255); - aRenderer.renderFaceXNeg(aBlock, aX, aY, aZ, aIcon); - } - - @Override - public void renderYPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - IIcon aIcon = getIcon(1); - Tessellator.instance.setColorRGBA((int)(mRGBa[0] * 1.0F), (int)(mRGBa[1] * 1.0F), (int)(mRGBa[2] * 1.0F), mAllowAlpha?255-mRGBa[3]:255); - aRenderer.renderFaceYPos(aBlock, aX, aY, aZ, aIcon); - } - - @Override - public void renderYNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - IIcon aIcon = getIcon(0); - Tessellator.instance.setColorRGBA((int)(mRGBa[0] * 0.5F), (int)(mRGBa[1] * 0.5F), (int)(mRGBa[2] * 0.5F), mAllowAlpha?255-mRGBa[3]:255); - aRenderer.renderFaceYNeg(aBlock, aX, aY, aZ, aIcon); - } - - @Override - public void renderZPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - IIcon aIcon = getIcon(3); - Tessellator.instance.setColorRGBA((int)(mRGBa[0] * 0.8F), (int)(mRGBa[1] * 0.8F), (int)(mRGBa[2] * 0.8F), mAllowAlpha?255-mRGBa[3]:255); - aRenderer.renderFaceZPos(aBlock, aX, aY, aZ, aIcon); - } - - @Override - public void renderZNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - IIcon aIcon = getIcon(2); - Tessellator.instance.setColorRGBA((int)(mRGBa[0] * 0.8F), (int)(mRGBa[1] * 0.8F), (int)(mRGBa[2] * 0.8F), mAllowAlpha?255-mRGBa[3]:255); + } + + @Override + public void renderXNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + IIcon aIcon = getIcon(4); + Tessellator.instance.setColorRGBA((int) (mRGBa[0] * 0.6F), (int) (mRGBa[1] * 0.6F), (int) (mRGBa[2] * 0.6F), mAllowAlpha ? 255 - mRGBa[3] : 255); + aRenderer.renderFaceXNeg(aBlock, aX, aY, aZ, aIcon); + } + + @Override + public void renderYPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + IIcon aIcon = getIcon(1); + Tessellator.instance.setColorRGBA((int) (mRGBa[0] * 1.0F), (int) (mRGBa[1] * 1.0F), (int) (mRGBa[2] * 1.0F), mAllowAlpha ? 255 - mRGBa[3] : 255); + aRenderer.renderFaceYPos(aBlock, aX, aY, aZ, aIcon); + } + + @Override + public void renderYNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + IIcon aIcon = getIcon(0); + Tessellator.instance.setColorRGBA((int) (mRGBa[0] * 0.5F), (int) (mRGBa[1] * 0.5F), (int) (mRGBa[2] * 0.5F), mAllowAlpha ? 255 - mRGBa[3] : 255); + aRenderer.renderFaceYNeg(aBlock, aX, aY, aZ, aIcon); + } + + @Override + public void renderZPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + IIcon aIcon = getIcon(3); + Tessellator.instance.setColorRGBA((int) (mRGBa[0] * 0.8F), (int) (mRGBa[1] * 0.8F), (int) (mRGBa[2] * 0.8F), mAllowAlpha ? 255 - mRGBa[3] : 255); + aRenderer.renderFaceZPos(aBlock, aX, aY, aZ, aIcon); + } + + @Override + public void renderZNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + IIcon aIcon = getIcon(2); + Tessellator.instance.setColorRGBA((int) (mRGBa[0] * 0.8F), (int) (mRGBa[1] * 0.8F), (int) (mRGBa[2] * 0.8F), mAllowAlpha ? 255 - mRGBa[3] : 255); // aRenderer.flipTexture = !aRenderer.flipTexture; - aRenderer.renderFaceZNeg(aBlock, aX, aY, aZ, aIcon); + aRenderer.renderFaceZNeg(aBlock, aX, aY, aZ, aIcon); // aRenderer.flipTexture = !aRenderer.flipTexture; - } - - @Override - public boolean isValidTexture() { - return mBlock != null; - } + } + + @Override + public boolean isValidTexture() { + return mBlock != null; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/objects/GT_Cover_Default.java b/src/main/java/gregtech/api/objects/GT_Cover_Default.java index b317e0e5..bf3bc844 100644 --- a/src/main/java/gregtech/api/objects/GT_Cover_Default.java +++ b/src/main/java/gregtech/api/objects/GT_Cover_Default.java @@ -7,62 +7,62 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.fluids.Fluid; public class GT_Cover_Default extends GT_CoverBehavior { - /** - * This is the Dummy, if there is a generic Cover without behavior - */ - public GT_Cover_Default() { - super(); - } - - @Override - public boolean isSimpleCover() { - return true; - } - - @Override - public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { - aCoverVariable=((aCoverVariable+1)&15); - GT_Utility.sendChatToPlayer(aPlayer, ((aCoverVariable & 1) != 0?"Redstone ":"") + ((aCoverVariable & 2) != 0?"Energy ":"") + ((aCoverVariable & 4) != 0?"Fluids ":"") + ((aCoverVariable & 8) != 0?"Items ":"")); - return aCoverVariable; - } - - @Override - public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return (aCoverVariable & 1) != 0; - } - - @Override - public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return (aCoverVariable & 1) != 0; - } - - @Override - public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return (aCoverVariable & 2) != 0; - } - - @Override - public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return (aCoverVariable & 2) != 0; - } - - @Override - public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { - return (aCoverVariable & 4) != 0; - } - - @Override - public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { - return (aCoverVariable & 4) != 0; - } - - @Override - public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { - return (aCoverVariable & 8) != 0; - } - - @Override - public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { - return (aCoverVariable & 8) != 0; - } + /** + * This is the Dummy, if there is a generic Cover without behavior + */ + public GT_Cover_Default() { + super(); + } + + @Override + public boolean isSimpleCover() { + return true; + } + + @Override + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + aCoverVariable = ((aCoverVariable + 1) & 15); + GT_Utility.sendChatToPlayer(aPlayer, ((aCoverVariable & 1) != 0 ? "Redstone " : "") + ((aCoverVariable & 2) != 0 ? "Energy " : "") + ((aCoverVariable & 4) != 0 ? "Fluids " : "") + ((aCoverVariable & 8) != 0 ? "Items " : "")); + return aCoverVariable; + } + + @Override + public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return (aCoverVariable & 1) != 0; + } + + @Override + public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return (aCoverVariable & 1) != 0; + } + + @Override + public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return (aCoverVariable & 2) != 0; + } + + @Override + public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return (aCoverVariable & 2) != 0; + } + + @Override + public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return (aCoverVariable & 4) != 0; + } + + @Override + public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return (aCoverVariable & 4) != 0; + } + + @Override + public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return (aCoverVariable & 8) != 0; + } + + @Override + public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return (aCoverVariable & 8) != 0; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/objects/GT_Cover_None.java b/src/main/java/gregtech/api/objects/GT_Cover_None.java index 89a0e17d..65145719 100644 --- a/src/main/java/gregtech/api/objects/GT_Cover_None.java +++ b/src/main/java/gregtech/api/objects/GT_Cover_None.java @@ -6,84 +6,85 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.fluids.Fluid; public class GT_Cover_None extends GT_CoverBehavior { - - /** - * This is the Dummy, if there is no Cover - */ - public GT_Cover_None() {} - - @Override - public float getBlastProofLevel(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return 10.0F; - } - - @Override - public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return true; - } - - @Override - public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return true; - } - - @Override - public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return true; - } - - @Override - public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return true; - } - - @Override - public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { - return true; - } - - @Override - public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { - return true; - } - - @Override - public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { - return true; - } - - @Override - public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { - return true; - } - - @Override - public boolean isGUIClickable(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return true; - } - - @Override - public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return false; - } - - @Override - public boolean onCoverRightclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { - return false; - } - - @Override - public boolean onCoverRemoval(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, boolean aForced) { - return true; - } - - @Override - public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { - return 0; - } - - @Override - public boolean isSimpleCover() { - return true; - } + + /** + * This is the Dummy, if there is no Cover + */ + public GT_Cover_None() { + } + + @Override + public float getBlastProofLevel(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 10.0F; + } + + @Override + public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + @Override + public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + @Override + public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + @Override + public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + @Override + public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + @Override + public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + @Override + public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + @Override + public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + @Override + public boolean isGUIClickable(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + @Override + public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return false; + } + + @Override + public boolean onCoverRightclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + return false; + } + + @Override + public boolean onCoverRemoval(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, boolean aForced) { + return true; + } + + @Override + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + return 0; + } + + @Override + public boolean isSimpleCover() { + return true; + } } diff --git a/src/main/java/gregtech/api/objects/GT_Fluid.java b/src/main/java/gregtech/api/objects/GT_Fluid.java index 8e7a71c9..119b32a2 100644 --- a/src/main/java/gregtech/api/objects/GT_Fluid.java +++ b/src/main/java/gregtech/api/objects/GT_Fluid.java @@ -1,28 +1,28 @@ package gregtech.api.objects; -import static gregtech.api.enums.GT_Values.RES_PATH_BLOCK; import gregtech.api.GregTech_API; import net.minecraftforge.fluids.Fluid; +import static gregtech.api.enums.GT_Values.RES_PATH_BLOCK; + public class GT_Fluid extends Fluid implements Runnable { - private final short[] mRGBa; - - public final String mTextureName; - - public GT_Fluid(String aName, String aTextureName, short[] aRGBa) { - super(aName); - mRGBa = aRGBa; - mTextureName = aTextureName; - GregTech_API.sGTBlockIconload.add(this); - } - + public final String mTextureName; + private final short[] mRGBa; + + public GT_Fluid(String aName, String aTextureName, short[] aRGBa) { + super(aName); + mRGBa = aRGBa; + mTextureName = aTextureName; + GregTech_API.sGTBlockIconload.add(this); + } + @Override - public int getColor() { + public int getColor() { return (Math.max(0, Math.min(255, mRGBa[0])) << 16) | (Math.max(0, Math.min(255, mRGBa[1])) << 8) | Math.max(0, Math.min(255, mRGBa[2])); } - - @Override - public void run() { - setIcons(GregTech_API.sBlockIcons.registerIcon(RES_PATH_BLOCK + "fluids/fluid." + mTextureName)); - } + + @Override + public void run() { + setIcons(GregTech_API.sBlockIcons.registerIcon(RES_PATH_BLOCK + "fluids/fluid." + mTextureName)); + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/objects/GT_FluidStack.java b/src/main/java/gregtech/api/objects/GT_FluidStack.java index ac54003d..9b15009f 100644 --- a/src/main/java/gregtech/api/objects/GT_FluidStack.java +++ b/src/main/java/gregtech/api/objects/GT_FluidStack.java @@ -3,53 +3,73 @@ package gregtech.api.objects; import gregtech.api.GregTech_API; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_Utility; +import net.minecraftforge.common.ForgeVersion; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; import java.util.ArrayList; import java.util.Collection; import java.util.Map; -import net.minecraftforge.common.ForgeVersion; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; - /** * Because Forge fucked this one up royally. */ public class GT_FluidStack extends FluidStack { - private static final Collection sAllFluidStacks = new ArrayList(5000); - private Fluid mFluid; - private static boolean lock=false; - + private static final Collection sAllFluidStacks = new ArrayList(5000); + private static boolean lock = false; + private Fluid mFluid; + public GT_FluidStack(Fluid aFluid, int aAmount) { - super(aFluid, aAmount); - mFluid = aFluid; - sAllFluidStacks.add(this); + super(aFluid, aAmount); + mFluid = aFluid; + sAllFluidStacks.add(this); } - + public GT_FluidStack(FluidStack aFluid) { - this(aFluid.getFluid(), aFluid.amount); + this(aFluid.getFluid(), aFluid.amount); } - + public static void fixAllThoseFuckingFluidIDs() { - if(ForgeVersion.getBuildVersion()<1355){ - while(lock){try {Thread.sleep(1);} catch (InterruptedException e) {}} - lock=true; - for (GT_FluidStack tFluid : sAllFluidStacks) tFluid.fixFluidIDForFucksSake(); - for (Map tMap : GregTech_API.sFluidMappings) try {GT_Utility.reMap(tMap);} catch(Throwable e) {e.printStackTrace(GT_Log.err);} - lock=false;} - } - - public void fixFluidIDForFucksSake() { - if(ForgeVersion.getBuildVersion()<1355){ - int fluidID; - try {fluidID = this.getFluid().getID();} catch(Throwable e){System.err.println(e);} - try {fluidID = mFluid.getID();} catch(Throwable e) {fluidID = -1;}} + if (ForgeVersion.getBuildVersion() < 1355) { + while (lock) { + try { + Thread.sleep(1); + } catch (InterruptedException e) { + } + } + lock = true; + for (GT_FluidStack tFluid : sAllFluidStacks) tFluid.fixFluidIDForFucksSake(); + for (Map tMap : GregTech_API.sFluidMappings) + try { + GT_Utility.reMap(tMap); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + lock = false; + } } - + + public void fixFluidIDForFucksSake() { + if (ForgeVersion.getBuildVersion() < 1355) { + int fluidID; + try { + fluidID = this.getFluid().getID(); + } catch (Throwable e) { + System.err.println(e); + } + try { + fluidID = mFluid.getID(); + } catch (Throwable e) { + fluidID = -1; + } + } + } + @Override - public FluidStack copy() { - if(ForgeVersion.getBuildVersion()<1355){ - fixFluidIDForFucksSake();} + public FluidStack copy() { + if (ForgeVersion.getBuildVersion() < 1355) { + fixFluidIDForFucksSake(); + } return new GT_FluidStack(this); } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/objects/GT_HashSet.java b/src/main/java/gregtech/api/objects/GT_HashSet.java index 5a883076..cec00690 100644 --- a/src/main/java/gregtech/api/objects/GT_HashSet.java +++ b/src/main/java/gregtech/api/objects/GT_HashSet.java @@ -2,80 +2,81 @@ package gregtech.api.objects; import gregtech.api.GregTech_API; import gregtech.api.util.GT_Utility; +import net.minecraft.item.ItemStack; import java.util.*; -import net.minecraft.item.ItemStack; - public class GT_HashSet extends AbstractSet { - private transient HashMap map; private static final Object OBJECT = new Object(); - + private transient HashMap map; + public GT_HashSet() { map = new HashMap(); GregTech_API.sItemStackMappings.add(map); } - + public GT_HashSet(Collection c) { - map = new HashMap(Math.max((int) (c.size()/.75f) + 1, 16)); + map = new HashMap(Math.max((int) (c.size() / .75f) + 1, 16)); addAll(c); GregTech_API.sItemStackMappings.add(map); } - + public GT_HashSet(int initialCapacity, float loadFactor) { map = new HashMap(initialCapacity, loadFactor); GregTech_API.sItemStackMappings.add(map); } - + public GT_HashSet(int initialCapacity) { map = new HashMap(initialCapacity); GregTech_API.sItemStackMappings.add(map); } - + GT_HashSet(int initialCapacity, float loadFactor, boolean dummy) { map = new LinkedHashMap(initialCapacity, loadFactor); GregTech_API.sItemStackMappings.add(map); } - - public HashMap getMap(){return map;} - - @Override - public Iterator iterator() { - return (Iterator)map.keySet().iterator(); + + public HashMap getMap() { + return map; } - + @Override - public int size() { + public Iterator iterator() { + return (Iterator) map.keySet().iterator(); + } + + @Override + public int size() { return map.size(); } - + @Override - public boolean isEmpty() { + public boolean isEmpty() { return map.isEmpty(); } - + @Override - public boolean contains(Object o) { + public boolean contains(Object o) { return map.containsKey(o); } - + public boolean add(ItemStack aStack) { - if (GT_Utility.isStackInvalid(aStack)) return false; - return map.put(new GT_ItemStack(aStack), OBJECT)==null; + if (GT_Utility.isStackInvalid(aStack)) return false; + return map.put(new GT_ItemStack(aStack), OBJECT) == null; } - + @Override - public boolean add(E e) { - return map.put(e, OBJECT)==null; + public boolean add(E e) { + return map.put(e, OBJECT) == null; } - + @Override - public boolean remove(Object o) { - return map.remove(o)==OBJECT; + public boolean remove(Object o) { + return map.remove(o) == OBJECT; } - + @Override - public void clear() { + public void clear() { map.clear(); } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/objects/GT_ItemStack.java b/src/main/java/gregtech/api/objects/GT_ItemStack.java index 8881d276..f865b348 100644 --- a/src/main/java/gregtech/api/objects/GT_ItemStack.java +++ b/src/main/java/gregtech/api/objects/GT_ItemStack.java @@ -6,47 +6,48 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class GT_ItemStack { - public final Item mItem; - public final byte mStackSize; - public final short mMetaData; - - public GT_ItemStack(Item aItem, long aStackSize, long aMetaData) { - mItem = aItem; - mStackSize = (byte)aStackSize; - mMetaData = (short)aMetaData; - } - - public GT_ItemStack(ItemStack aStack) { - this(aStack==null?null:aStack.getItem(), aStack==null?0:aStack.stackSize, aStack==null?0:Items.feather.getDamage(aStack)); - } - - public GT_ItemStack(int aHashCode) { - this(GT_Utility.intToStack(aHashCode)); - } - - public ItemStack toStack() { - if (mItem == null) return null; - return new ItemStack(mItem, 1, mMetaData); - } - - public boolean isStackEqual(ItemStack aStack) { - return GT_Utility.areStacksEqual(toStack(), aStack); - } - - public boolean isStackEqual(GT_ItemStack aStack) { - return GT_Utility.areStacksEqual(toStack(), aStack.toStack()); - } - - @Override - public boolean equals(Object aStack) { - if (aStack == this) return true; - if (aStack instanceof GT_ItemStack) { - return ((GT_ItemStack)aStack).mItem == mItem && ((GT_ItemStack)aStack).mMetaData == mMetaData;} - return false; - } - - @Override - public int hashCode() { - return GT_Utility.stackToInt(toStack()); - } + public final Item mItem; + public final byte mStackSize; + public final short mMetaData; + + public GT_ItemStack(Item aItem, long aStackSize, long aMetaData) { + mItem = aItem; + mStackSize = (byte) aStackSize; + mMetaData = (short) aMetaData; + } + + public GT_ItemStack(ItemStack aStack) { + this(aStack == null ? null : aStack.getItem(), aStack == null ? 0 : aStack.stackSize, aStack == null ? 0 : Items.feather.getDamage(aStack)); + } + + public GT_ItemStack(int aHashCode) { + this(GT_Utility.intToStack(aHashCode)); + } + + public ItemStack toStack() { + if (mItem == null) return null; + return new ItemStack(mItem, 1, mMetaData); + } + + public boolean isStackEqual(ItemStack aStack) { + return GT_Utility.areStacksEqual(toStack(), aStack); + } + + public boolean isStackEqual(GT_ItemStack aStack) { + return GT_Utility.areStacksEqual(toStack(), aStack.toStack()); + } + + @Override + public boolean equals(Object aStack) { + if (aStack == this) return true; + if (aStack instanceof GT_ItemStack) { + return ((GT_ItemStack) aStack).mItem == mItem && ((GT_ItemStack) aStack).mMetaData == mMetaData; + } + return false; + } + + @Override + public int hashCode() { + return GT_Utility.stackToInt(toStack()); + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/objects/GT_MultiTexture.java b/src/main/java/gregtech/api/objects/GT_MultiTexture.java index 295e5111..8f1dbc7a 100644 --- a/src/main/java/gregtech/api/objects/GT_MultiTexture.java +++ b/src/main/java/gregtech/api/objects/GT_MultiTexture.java @@ -6,48 +6,54 @@ import net.minecraft.client.renderer.RenderBlocks; /** * Lets Multiple ITextures Render overlay over each other. - * + *

* I should have done this much earlier... */ public class GT_MultiTexture implements ITexture { - private final ITexture[] mTextures; - - public GT_MultiTexture(ITexture... aTextures) { - mTextures = aTextures; - } - - @Override - public void renderXPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - for (ITexture tTexture : mTextures) if (tTexture != null && tTexture.isValidTexture()) tTexture.renderXPos(aRenderer, aBlock, aX, aY, aZ); - } - - @Override - public void renderXNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - for (ITexture tTexture : mTextures) if (tTexture != null && tTexture.isValidTexture()) tTexture.renderXNeg(aRenderer, aBlock, aX, aY, aZ); - } - - @Override - public void renderYPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - for (ITexture tTexture : mTextures) if (tTexture != null && tTexture.isValidTexture()) tTexture.renderYPos(aRenderer, aBlock, aX, aY, aZ); - } - - @Override - public void renderYNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - for (ITexture tTexture : mTextures) if (tTexture != null && tTexture.isValidTexture()) tTexture.renderYNeg(aRenderer, aBlock, aX, aY, aZ); - } - - @Override - public void renderZPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - for (ITexture tTexture : mTextures) if (tTexture != null && tTexture.isValidTexture()) tTexture.renderZPos(aRenderer, aBlock, aX, aY, aZ); - } - - @Override - public void renderZNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - for (ITexture tTexture : mTextures) if (tTexture != null && tTexture.isValidTexture()) tTexture.renderZNeg(aRenderer, aBlock, aX, aY, aZ); - } - - @Override - public boolean isValidTexture() { - return true; - } + private final ITexture[] mTextures; + + public GT_MultiTexture(ITexture... aTextures) { + mTextures = aTextures; + } + + @Override + public void renderXPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + for (ITexture tTexture : mTextures) + if (tTexture != null && tTexture.isValidTexture()) tTexture.renderXPos(aRenderer, aBlock, aX, aY, aZ); + } + + @Override + public void renderXNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + for (ITexture tTexture : mTextures) + if (tTexture != null && tTexture.isValidTexture()) tTexture.renderXNeg(aRenderer, aBlock, aX, aY, aZ); + } + + @Override + public void renderYPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + for (ITexture tTexture : mTextures) + if (tTexture != null && tTexture.isValidTexture()) tTexture.renderYPos(aRenderer, aBlock, aX, aY, aZ); + } + + @Override + public void renderYNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + for (ITexture tTexture : mTextures) + if (tTexture != null && tTexture.isValidTexture()) tTexture.renderYNeg(aRenderer, aBlock, aX, aY, aZ); + } + + @Override + public void renderZPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + for (ITexture tTexture : mTextures) + if (tTexture != null && tTexture.isValidTexture()) tTexture.renderZPos(aRenderer, aBlock, aX, aY, aZ); + } + + @Override + public void renderZNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + for (ITexture tTexture : mTextures) + if (tTexture != null && tTexture.isValidTexture()) tTexture.renderZNeg(aRenderer, aBlock, aX, aY, aZ); + } + + @Override + public boolean isValidTexture() { + return true; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/objects/GT_RenderedTexture.java b/src/main/java/gregtech/api/objects/GT_RenderedTexture.java index 356d6879..e1627da2 100644 --- a/src/main/java/gregtech/api/objects/GT_RenderedTexture.java +++ b/src/main/java/gregtech/api/objects/GT_RenderedTexture.java @@ -10,131 +10,129 @@ import net.minecraft.client.renderer.Tessellator; import net.minecraft.util.IIcon; public class GT_RenderedTexture implements ITexture, IColorModulationContainer { - private final IIconContainer mIconContainer; - - /** - * DO NOT MANIPULATE THE VALUES INSIDE THIS ARRAY!!! - * - * Just set this variable to another different Array instead. - * Otherwise some colored things will get Problems. - */ - public short[] mRGBa; - - private final boolean mAllowAlpha; - - public GT_RenderedTexture(IIconContainer aIcon, short[] aRGBa, boolean aAllowAlpha) { - if (aRGBa.length != 4) throw new IllegalArgumentException("RGBa doesn't have 4 Values @ GT_RenderedTexture"); - mIconContainer = aIcon; - mAllowAlpha = aAllowAlpha; - mRGBa = aRGBa; - } - - public GT_RenderedTexture(IIconContainer aIcon, short[] aRGBa) { - this(aIcon, aRGBa, true); - } - - public GT_RenderedTexture(IIconContainer aIcon) { - this(aIcon, Dyes._NULL.mRGBa); - } - - @Override - public void renderXPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - Tessellator.instance.setColorRGBA((int)(mRGBa[0] * 0.6F), (int)(mRGBa[1] * 0.6F), (int)(mRGBa[2] * 0.6F), mAllowAlpha?255-mRGBa[3]:255); - aRenderer.renderFaceXPos(aBlock, aX, aY, aZ, mIconContainer.getIcon()); - if (mIconContainer.getOverlayIcon() != null) { - Tessellator.instance.setColorRGBA(153, 153, 153, 255); - aRenderer.renderFaceXPos(aBlock, aX, aY, aZ, mIconContainer.getOverlayIcon()); - } - } - - @Override - public void renderXNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - Tessellator.instance.setColorRGBA((int)(mRGBa[0] * 0.6F), (int)(mRGBa[1] * 0.6F), (int)(mRGBa[2] * 0.6F), mAllowAlpha?255-mRGBa[3]:255); - aRenderer.renderFaceXNeg(aBlock, aX, aY, aZ, mIconContainer.getIcon()); - if (mIconContainer.getOverlayIcon() != null) { - Tessellator.instance.setColorRGBA(153, 153, 153, 255); - aRenderer.renderFaceXNeg(aBlock, aX, aY, aZ, mIconContainer.getOverlayIcon()); - } - } - - @Override - public void renderYPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - Tessellator.instance.setColorRGBA((int)(mRGBa[0] * 1.0F), (int)(mRGBa[1] * 1.0F), (int)(mRGBa[2] * 1.0F), mAllowAlpha?255-mRGBa[3]:255); - aRenderer.renderFaceYPos(aBlock, aX, aY, aZ, mIconContainer.getIcon()); - if (mIconContainer.getOverlayIcon() != null) { - Tessellator.instance.setColorRGBA(255, 255, 255, 255); - aRenderer.renderFaceYPos(aBlock, aX, aY, aZ, mIconContainer.getOverlayIcon()); - } - } - - @Override - public void renderYNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - Tessellator.instance.setColorRGBA((int)(mRGBa[0] * 0.5F), (int)(mRGBa[1] * 0.5F), (int)(mRGBa[2] * 0.5F), mAllowAlpha?255-mRGBa[3]:255); - IIcon aIcon = mIconContainer.getIcon(); - + private final IIconContainer mIconContainer; + private final boolean mAllowAlpha; + /** + * DO NOT MANIPULATE THE VALUES INSIDE THIS ARRAY!!! + *

+ * Just set this variable to another different Array instead. + * Otherwise some colored things will get Problems. + */ + public short[] mRGBa; + + public GT_RenderedTexture(IIconContainer aIcon, short[] aRGBa, boolean aAllowAlpha) { + if (aRGBa.length != 4) throw new IllegalArgumentException("RGBa doesn't have 4 Values @ GT_RenderedTexture"); + mIconContainer = aIcon; + mAllowAlpha = aAllowAlpha; + mRGBa = aRGBa; + } + + public GT_RenderedTexture(IIconContainer aIcon, short[] aRGBa) { + this(aIcon, aRGBa, true); + } + + public GT_RenderedTexture(IIconContainer aIcon) { + this(aIcon, Dyes._NULL.mRGBa); + } + + @Override + public void renderXPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + Tessellator.instance.setColorRGBA((int) (mRGBa[0] * 0.6F), (int) (mRGBa[1] * 0.6F), (int) (mRGBa[2] * 0.6F), mAllowAlpha ? 255 - mRGBa[3] : 255); + aRenderer.renderFaceXPos(aBlock, aX, aY, aZ, mIconContainer.getIcon()); + if (mIconContainer.getOverlayIcon() != null) { + Tessellator.instance.setColorRGBA(153, 153, 153, 255); + aRenderer.renderFaceXPos(aBlock, aX, aY, aZ, mIconContainer.getOverlayIcon()); + } + } + + @Override + public void renderXNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + Tessellator.instance.setColorRGBA((int) (mRGBa[0] * 0.6F), (int) (mRGBa[1] * 0.6F), (int) (mRGBa[2] * 0.6F), mAllowAlpha ? 255 - mRGBa[3] : 255); + aRenderer.renderFaceXNeg(aBlock, aX, aY, aZ, mIconContainer.getIcon()); + if (mIconContainer.getOverlayIcon() != null) { + Tessellator.instance.setColorRGBA(153, 153, 153, 255); + aRenderer.renderFaceXNeg(aBlock, aX, aY, aZ, mIconContainer.getOverlayIcon()); + } + } + + @Override + public void renderYPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + Tessellator.instance.setColorRGBA((int) (mRGBa[0] * 1.0F), (int) (mRGBa[1] * 1.0F), (int) (mRGBa[2] * 1.0F), mAllowAlpha ? 255 - mRGBa[3] : 255); + aRenderer.renderFaceYPos(aBlock, aX, aY, aZ, mIconContainer.getIcon()); + if (mIconContainer.getOverlayIcon() != null) { + Tessellator.instance.setColorRGBA(255, 255, 255, 255); + aRenderer.renderFaceYPos(aBlock, aX, aY, aZ, mIconContainer.getOverlayIcon()); + } + } + + @Override + public void renderYNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + Tessellator.instance.setColorRGBA((int) (mRGBa[0] * 0.5F), (int) (mRGBa[1] * 0.5F), (int) (mRGBa[2] * 0.5F), mAllowAlpha ? 255 - mRGBa[3] : 255); + IIcon aIcon = mIconContainer.getIcon(); + double d3 = aIcon.getInterpolatedU(aRenderer.renderMaxX * 16.0D); double d4 = aIcon.getInterpolatedU(aRenderer.renderMinX * 16.0D); double d5 = aIcon.getInterpolatedV(aRenderer.renderMinZ * 16.0D); double d6 = aIcon.getInterpolatedV(aRenderer.renderMaxZ * 16.0D); - + if (aRenderer.renderMinX < 0.0D || aRenderer.renderMaxX > 1.0D) { d3 = aIcon.getMaxU(); d4 = aIcon.getMinU(); } - + if (aRenderer.renderMinZ < 0.0D || aRenderer.renderMaxZ > 1.0D) { d5 = aIcon.getMinV(); d6 = aIcon.getMaxV(); } - + double d11 = aX + aRenderer.renderMinX; double d12 = aX + aRenderer.renderMaxX; double d13 = aY + aRenderer.renderMinY; double d14 = aZ + aRenderer.renderMinZ; double d15 = aZ + aRenderer.renderMaxZ; - + Tessellator.instance.addVertexWithUV(d11, d13, d15, d3, d6); Tessellator.instance.addVertexWithUV(d11, d13, d14, d3, d5); Tessellator.instance.addVertexWithUV(d12, d13, d14, d4, d5); Tessellator.instance.addVertexWithUV(d12, d13, d15, d4, d6); - if ((aIcon = mIconContainer.getOverlayIcon()) != null) { - Tessellator.instance.setColorRGBA(128, 128, 128, 255); - + if ((aIcon = mIconContainer.getOverlayIcon()) != null) { + Tessellator.instance.setColorRGBA(128, 128, 128, 255); + Tessellator.instance.addVertexWithUV(d11, d13, d15, d3, d6); Tessellator.instance.addVertexWithUV(d11, d13, d14, d3, d5); Tessellator.instance.addVertexWithUV(d12, d13, d14, d4, d5); Tessellator.instance.addVertexWithUV(d12, d13, d15, d4, d6); - } - } - - @Override - public void renderZPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - Tessellator.instance.setColorRGBA((int)(mRGBa[0] * 0.8F), (int)(mRGBa[1] * 0.8F), (int)(mRGBa[2] * 0.8F), mAllowAlpha?255-mRGBa[3]:255); - aRenderer.renderFaceZPos(aBlock, aX, aY, aZ, mIconContainer.getIcon()); - if (mIconContainer.getOverlayIcon() != null) { - Tessellator.instance.setColorRGBA(204, 204, 204, 255); - aRenderer.renderFaceZPos(aBlock, aX, aY, aZ, mIconContainer.getOverlayIcon()); - } - } - - @Override - public void renderZNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - Tessellator.instance.setColorRGBA((int)(mRGBa[0] * 0.8F), (int)(mRGBa[1] * 0.8F), (int)(mRGBa[2] * 0.8F), mAllowAlpha?255-mRGBa[3]:255); - aRenderer.renderFaceZNeg(aBlock, aX, aY, aZ, mIconContainer.getIcon()); - if (mIconContainer.getOverlayIcon() != null) { - Tessellator.instance.setColorRGBA(204, 204, 204, 255); - aRenderer.renderFaceZNeg(aBlock, aX, aY, aZ, mIconContainer.getOverlayIcon()); - } - } - - @Override - public short[] getRGBA() { - return mRGBa; - } + } + } - @Override - public boolean isValidTexture() { - return mIconContainer != null; - } + @Override + public void renderZPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + Tessellator.instance.setColorRGBA((int) (mRGBa[0] * 0.8F), (int) (mRGBa[1] * 0.8F), (int) (mRGBa[2] * 0.8F), mAllowAlpha ? 255 - mRGBa[3] : 255); + aRenderer.renderFaceZPos(aBlock, aX, aY, aZ, mIconContainer.getIcon()); + if (mIconContainer.getOverlayIcon() != null) { + Tessellator.instance.setColorRGBA(204, 204, 204, 255); + aRenderer.renderFaceZPos(aBlock, aX, aY, aZ, mIconContainer.getOverlayIcon()); + } + } + + @Override + public void renderZNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + Tessellator.instance.setColorRGBA((int) (mRGBa[0] * 0.8F), (int) (mRGBa[1] * 0.8F), (int) (mRGBa[2] * 0.8F), mAllowAlpha ? 255 - mRGBa[3] : 255); + aRenderer.renderFaceZNeg(aBlock, aX, aY, aZ, mIconContainer.getIcon()); + if (mIconContainer.getOverlayIcon() != null) { + Tessellator.instance.setColorRGBA(204, 204, 204, 255); + aRenderer.renderFaceZNeg(aBlock, aX, aY, aZ, mIconContainer.getOverlayIcon()); + } + } + + @Override + public short[] getRGBA() { + return mRGBa; + } + + @Override + public boolean isValidTexture() { + return mIconContainer != null; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/objects/GT_SidedTexture.java b/src/main/java/gregtech/api/objects/GT_SidedTexture.java index 183d5b84..2d27ecbc 100644 --- a/src/main/java/gregtech/api/objects/GT_SidedTexture.java +++ b/src/main/java/gregtech/api/objects/GT_SidedTexture.java @@ -10,160 +10,158 @@ import net.minecraft.client.renderer.Tessellator; import net.minecraft.util.IIcon; public class GT_SidedTexture implements ITexture, IColorModulationContainer { - private final IIconContainer[] mIconContainer; - - /** - * DO NOT MANIPULATE THE VALUES INSIDE THIS ARRAY!!! - * - * Just set this variable to another different Array instead. - * Otherwise some colored things will get Problems. - */ - public short[] mRGBa; - - private final boolean mAllowAlpha; - - public GT_SidedTexture(IIconContainer aIcon0, IIconContainer aIcon1, IIconContainer aIcon2, IIconContainer aIcon3, IIconContainer aIcon4, IIconContainer aIcon5, short[] aRGBa, boolean aAllowAlpha) { - if (aRGBa.length != 4) throw new IllegalArgumentException("RGBa doesn't have 4 Values @ GT_RenderedTexture"); - mIconContainer = new IIconContainer[] {aIcon0, aIcon1, aIcon2, aIcon3, aIcon4, aIcon5}; - mAllowAlpha = aAllowAlpha; - mRGBa = aRGBa; - } - - public GT_SidedTexture(IIconContainer aIcon0, IIconContainer aIcon1, IIconContainer aIcon2, IIconContainer aIcon3, IIconContainer aIcon4, IIconContainer aIcon5, short[] aRGBa) { - this(aIcon0, aIcon1, aIcon2, aIcon3, aIcon4, aIcon5, aRGBa, true); - } - - public GT_SidedTexture(IIconContainer aIcon0, IIconContainer aIcon1, IIconContainer aIcon2, IIconContainer aIcon3, IIconContainer aIcon4, IIconContainer aIcon5) { - this(aIcon0, aIcon1, aIcon2, aIcon3, aIcon4, aIcon5, Dyes._NULL.mRGBa); - } - - public GT_SidedTexture(IIconContainer aBottom, IIconContainer aTop, IIconContainer aSides, short[] aRGBa) { - this(aBottom, aTop, aSides, aSides, aSides, aSides, aRGBa); - } - - public GT_SidedTexture(IIconContainer aBottom, IIconContainer aTop, IIconContainer aSides) { - this(aBottom, aTop, aSides, Dyes._NULL.mRGBa); - } - - @Override - public void renderXPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - Tessellator.instance.setColorRGBA((int)(mRGBa[0] * 0.6F), (int)(mRGBa[1] * 0.6F), (int)(mRGBa[2] * 0.6F), mAllowAlpha?255-mRGBa[3]:255); - aRenderer.renderFaceXPos(aBlock, aX, aY, aZ, mIconContainer[5].getIcon()); - if (mIconContainer[5].getOverlayIcon() != null) { - Tessellator.instance.setColorRGBA(153, 153, 153, 255); - aRenderer.renderFaceXPos(aBlock, aX, aY, aZ, mIconContainer[5].getOverlayIcon()); - } - } - - @Override - public void renderXNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - Tessellator.instance.setColorRGBA((int)(mRGBa[0] * 0.6F), (int)(mRGBa[1] * 0.6F), (int)(mRGBa[2] * 0.6F), mAllowAlpha?255-mRGBa[3]:255); - aRenderer.renderFaceXNeg(aBlock, aX, aY, aZ, mIconContainer[4].getIcon()); - if (mIconContainer[4].getOverlayIcon() != null) { - Tessellator.instance.setColorRGBA(153, 153, 153, 255); - aRenderer.renderFaceXNeg(aBlock, aX, aY, aZ, mIconContainer[4].getOverlayIcon()); - } - } - - @Override - public void renderYPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - Tessellator.instance.setColorRGBA((int)(mRGBa[0] * 1.0F), (int)(mRGBa[1] * 1.0F), (int)(mRGBa[2] * 1.0F), mAllowAlpha?255-mRGBa[3]:255); - aRenderer.renderFaceYPos(aBlock, aX, aY, aZ, mIconContainer[1].getIcon()); - if (mIconContainer[1].getOverlayIcon() != null) { - Tessellator.instance.setColorRGBA(255, 255, 255, 255); - aRenderer.renderFaceYPos(aBlock, aX, aY, aZ, mIconContainer[1].getOverlayIcon()); - } - } - - @Override - public void renderYNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - Tessellator.instance.setColorRGBA((int)(mRGBa[0] * 0.5F), (int)(mRGBa[1] * 0.5F), (int)(mRGBa[2] * 0.5F), mAllowAlpha?255-mRGBa[3]:255); - IIcon aIcon = mIconContainer[0].getIcon(); - + private final IIconContainer[] mIconContainer; + private final boolean mAllowAlpha; + /** + * DO NOT MANIPULATE THE VALUES INSIDE THIS ARRAY!!! + *

+ * Just set this variable to another different Array instead. + * Otherwise some colored things will get Problems. + */ + public short[] mRGBa; + + public GT_SidedTexture(IIconContainer aIcon0, IIconContainer aIcon1, IIconContainer aIcon2, IIconContainer aIcon3, IIconContainer aIcon4, IIconContainer aIcon5, short[] aRGBa, boolean aAllowAlpha) { + if (aRGBa.length != 4) throw new IllegalArgumentException("RGBa doesn't have 4 Values @ GT_RenderedTexture"); + mIconContainer = new IIconContainer[]{aIcon0, aIcon1, aIcon2, aIcon3, aIcon4, aIcon5}; + mAllowAlpha = aAllowAlpha; + mRGBa = aRGBa; + } + + public GT_SidedTexture(IIconContainer aIcon0, IIconContainer aIcon1, IIconContainer aIcon2, IIconContainer aIcon3, IIconContainer aIcon4, IIconContainer aIcon5, short[] aRGBa) { + this(aIcon0, aIcon1, aIcon2, aIcon3, aIcon4, aIcon5, aRGBa, true); + } + + public GT_SidedTexture(IIconContainer aIcon0, IIconContainer aIcon1, IIconContainer aIcon2, IIconContainer aIcon3, IIconContainer aIcon4, IIconContainer aIcon5) { + this(aIcon0, aIcon1, aIcon2, aIcon3, aIcon4, aIcon5, Dyes._NULL.mRGBa); + } + + public GT_SidedTexture(IIconContainer aBottom, IIconContainer aTop, IIconContainer aSides, short[] aRGBa) { + this(aBottom, aTop, aSides, aSides, aSides, aSides, aRGBa); + } + + public GT_SidedTexture(IIconContainer aBottom, IIconContainer aTop, IIconContainer aSides) { + this(aBottom, aTop, aSides, Dyes._NULL.mRGBa); + } + + @Override + public void renderXPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + Tessellator.instance.setColorRGBA((int) (mRGBa[0] * 0.6F), (int) (mRGBa[1] * 0.6F), (int) (mRGBa[2] * 0.6F), mAllowAlpha ? 255 - mRGBa[3] : 255); + aRenderer.renderFaceXPos(aBlock, aX, aY, aZ, mIconContainer[5].getIcon()); + if (mIconContainer[5].getOverlayIcon() != null) { + Tessellator.instance.setColorRGBA(153, 153, 153, 255); + aRenderer.renderFaceXPos(aBlock, aX, aY, aZ, mIconContainer[5].getOverlayIcon()); + } + } + + @Override + public void renderXNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + Tessellator.instance.setColorRGBA((int) (mRGBa[0] * 0.6F), (int) (mRGBa[1] * 0.6F), (int) (mRGBa[2] * 0.6F), mAllowAlpha ? 255 - mRGBa[3] : 255); + aRenderer.renderFaceXNeg(aBlock, aX, aY, aZ, mIconContainer[4].getIcon()); + if (mIconContainer[4].getOverlayIcon() != null) { + Tessellator.instance.setColorRGBA(153, 153, 153, 255); + aRenderer.renderFaceXNeg(aBlock, aX, aY, aZ, mIconContainer[4].getOverlayIcon()); + } + } + + @Override + public void renderYPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + Tessellator.instance.setColorRGBA((int) (mRGBa[0] * 1.0F), (int) (mRGBa[1] * 1.0F), (int) (mRGBa[2] * 1.0F), mAllowAlpha ? 255 - mRGBa[3] : 255); + aRenderer.renderFaceYPos(aBlock, aX, aY, aZ, mIconContainer[1].getIcon()); + if (mIconContainer[1].getOverlayIcon() != null) { + Tessellator.instance.setColorRGBA(255, 255, 255, 255); + aRenderer.renderFaceYPos(aBlock, aX, aY, aZ, mIconContainer[1].getOverlayIcon()); + } + } + + @Override + public void renderYNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + Tessellator.instance.setColorRGBA((int) (mRGBa[0] * 0.5F), (int) (mRGBa[1] * 0.5F), (int) (mRGBa[2] * 0.5F), mAllowAlpha ? 255 - mRGBa[3] : 255); + IIcon aIcon = mIconContainer[0].getIcon(); + double d3 = aIcon.getInterpolatedU(aRenderer.renderMaxX * 16.0D); double d4 = aIcon.getInterpolatedU(aRenderer.renderMinX * 16.0D); double d5 = aIcon.getInterpolatedV(aRenderer.renderMinZ * 16.0D); double d6 = aIcon.getInterpolatedV(aRenderer.renderMaxZ * 16.0D); - + if (aRenderer.renderMinX < 0.0D || aRenderer.renderMaxX > 1.0D) { d3 = aIcon.getMaxU(); d4 = aIcon.getMinU(); } - + if (aRenderer.renderMinZ < 0.0D || aRenderer.renderMaxZ > 1.0D) { d5 = aIcon.getMinV(); d6 = aIcon.getMaxV(); } - + double d11 = aX + aRenderer.renderMinX; double d12 = aX + aRenderer.renderMaxX; double d13 = aY + aRenderer.renderMinY; double d14 = aZ + aRenderer.renderMinZ; double d15 = aZ + aRenderer.renderMaxZ; - + Tessellator.instance.addVertexWithUV(d11, d13, d15, d3, d6); Tessellator.instance.addVertexWithUV(d11, d13, d14, d3, d5); Tessellator.instance.addVertexWithUV(d12, d13, d14, d4, d5); Tessellator.instance.addVertexWithUV(d12, d13, d15, d4, d6); - if ((aIcon = mIconContainer[0].getOverlayIcon()) != null) { - Tessellator.instance.setColorRGBA(128, 128, 128, 255); - + if ((aIcon = mIconContainer[0].getOverlayIcon()) != null) { + Tessellator.instance.setColorRGBA(128, 128, 128, 255); + d3 = aIcon.getInterpolatedU(aRenderer.renderMaxX * 16.0D); d4 = aIcon.getInterpolatedU(aRenderer.renderMinX * 16.0D); d5 = aIcon.getInterpolatedV(aRenderer.renderMinZ * 16.0D); d6 = aIcon.getInterpolatedV(aRenderer.renderMaxZ * 16.0D); - + if (aRenderer.renderMinX < 0.0D || aRenderer.renderMaxX > 1.0D) { d3 = aIcon.getMaxU(); d4 = aIcon.getMinU(); } - + if (aRenderer.renderMinZ < 0.0D || aRenderer.renderMaxZ > 1.0D) { d5 = aIcon.getMinV(); d6 = aIcon.getMaxV(); } - + d11 = aX + aRenderer.renderMinX; d12 = aX + aRenderer.renderMaxX; d13 = aY + aRenderer.renderMinY; d14 = aZ + aRenderer.renderMinZ; d15 = aZ + aRenderer.renderMaxZ; - + Tessellator.instance.addVertexWithUV(d11, d13, d15, d3, d6); Tessellator.instance.addVertexWithUV(d11, d13, d14, d3, d5); Tessellator.instance.addVertexWithUV(d12, d13, d14, d4, d5); Tessellator.instance.addVertexWithUV(d12, d13, d15, d4, d6); - } - } - - @Override - public void renderZPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - Tessellator.instance.setColorRGBA((int)(mRGBa[0] * 0.8F), (int)(mRGBa[1] * 0.8F), (int)(mRGBa[2] * 0.8F), mAllowAlpha?255-mRGBa[3]:255); - aRenderer.renderFaceZPos(aBlock, aX, aY, aZ, mIconContainer[3].getIcon()); - if (mIconContainer[3].getOverlayIcon() != null) { - Tessellator.instance.setColorRGBA(204, 204, 204, 255); - aRenderer.renderFaceZPos(aBlock, aX, aY, aZ, mIconContainer[3].getOverlayIcon()); - } - } - - @Override - public void renderZNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - Tessellator.instance.setColorRGBA((int)(mRGBa[0] * 0.8F), (int)(mRGBa[1] * 0.8F), (int)(mRGBa[2] * 0.8F), mAllowAlpha?255-mRGBa[3]:255); - aRenderer.renderFaceZNeg(aBlock, aX, aY, aZ, mIconContainer[2].getIcon()); - if (mIconContainer[2].getOverlayIcon() != null) { - Tessellator.instance.setColorRGBA(204, 204, 204, 255); - aRenderer.renderFaceZNeg(aBlock, aX, aY, aZ, mIconContainer[2].getOverlayIcon()); - } - } - - @Override - public short[] getRGBA() { - return mRGBa; - } - - @Override - public boolean isValidTexture() { - return mIconContainer != null && mIconContainer[0] != null && mIconContainer[1] != null && mIconContainer[2] != null && mIconContainer[3] != null && mIconContainer[4] != null && mIconContainer[5] != null; - } + } + } + + @Override + public void renderZPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + Tessellator.instance.setColorRGBA((int) (mRGBa[0] * 0.8F), (int) (mRGBa[1] * 0.8F), (int) (mRGBa[2] * 0.8F), mAllowAlpha ? 255 - mRGBa[3] : 255); + aRenderer.renderFaceZPos(aBlock, aX, aY, aZ, mIconContainer[3].getIcon()); + if (mIconContainer[3].getOverlayIcon() != null) { + Tessellator.instance.setColorRGBA(204, 204, 204, 255); + aRenderer.renderFaceZPos(aBlock, aX, aY, aZ, mIconContainer[3].getOverlayIcon()); + } + } + + @Override + public void renderZNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + Tessellator.instance.setColorRGBA((int) (mRGBa[0] * 0.8F), (int) (mRGBa[1] * 0.8F), (int) (mRGBa[2] * 0.8F), mAllowAlpha ? 255 - mRGBa[3] : 255); + aRenderer.renderFaceZNeg(aBlock, aX, aY, aZ, mIconContainer[2].getIcon()); + if (mIconContainer[2].getOverlayIcon() != null) { + Tessellator.instance.setColorRGBA(204, 204, 204, 255); + aRenderer.renderFaceZNeg(aBlock, aX, aY, aZ, mIconContainer[2].getOverlayIcon()); + } + } + + @Override + public short[] getRGBA() { + return mRGBa; + } + + @Override + public boolean isValidTexture() { + return mIconContainer != null && mIconContainer[0] != null && mIconContainer[1] != null && mIconContainer[2] != null && mIconContainer[3] != null && mIconContainer[4] != null && mIconContainer[5] != null; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/objects/ItemData.java b/src/main/java/gregtech/api/objects/ItemData.java index e0f1f32f..aedc48db 100644 --- a/src/main/java/gregtech/api/objects/ItemData.java +++ b/src/main/java/gregtech/api/objects/ItemData.java @@ -2,115 +2,123 @@ package gregtech.api.objects; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; +import net.minecraft.item.ItemStack; import java.util.*; -import net.minecraft.item.ItemStack; - public class ItemData { - private static final MaterialStack[] EMPTY_MATERIALSTACK_ARRAY = new MaterialStack[0]; - - public final List mExtraData = new GT_ArrayList(false, 1); - - public boolean mBlackListed = false; - public ItemStack mUnificationTarget = null; - - public final OrePrefixes mPrefix; - public final MaterialStack mMaterial; - public final MaterialStack[] mByProducts; - - public ItemData(OrePrefixes aPrefix, Materials aMaterial, boolean aBlackListed) { - mPrefix = aPrefix; - mMaterial = aMaterial==null?null:new MaterialStack(aMaterial, aPrefix.mMaterialAmount); - mBlackListed = aBlackListed; - mByProducts = aPrefix.mSecondaryMaterial==null||aPrefix.mSecondaryMaterial.mMaterial==null?EMPTY_MATERIALSTACK_ARRAY:new MaterialStack[] {aPrefix.mSecondaryMaterial.clone()}; - } - - public ItemData(OrePrefixes aPrefix, Materials aMaterial) { - this(aPrefix, aMaterial, false); - } - - public ItemData(MaterialStack aMaterial, MaterialStack... aByProducts) { - mPrefix = null; - mMaterial = aMaterial.mMaterial==null?null:aMaterial.clone(); - mBlackListed = true; - if (aByProducts == null) { - mByProducts = EMPTY_MATERIALSTACK_ARRAY; - } else { - MaterialStack[] tByProducts = aByProducts.length<1?EMPTY_MATERIALSTACK_ARRAY:new MaterialStack[aByProducts.length]; - int j = 0; - for (int i = 0; i < aByProducts.length; i++) if (aByProducts[i] != null && aByProducts[i].mMaterial != null) tByProducts[j++] = aByProducts[i].clone(); - mByProducts = j>0?new MaterialStack[j]:EMPTY_MATERIALSTACK_ARRAY; - for (int i = 0; i < mByProducts.length; i++) mByProducts[i] = tByProducts[i]; - } - } - - public ItemData(Materials aMaterial, long aAmount, MaterialStack... aByProducts) { - this(new MaterialStack(aMaterial, aAmount), aByProducts); - } - - public ItemData(Materials aMaterial, long aAmount, Materials aByProduct, long aByProductAmount) { - this(new MaterialStack(aMaterial, aAmount), new MaterialStack(aByProduct, aByProductAmount)); - } - - public ItemData(ItemData... aData) { - mPrefix = null; - mBlackListed = true; - - ArrayList aList = new ArrayList(), rList = new ArrayList(); - - for (ItemData tData : aData) if (tData != null) { - if (tData.hasValidMaterialData() && tData.mMaterial.mAmount > 0) aList.add(tData.mMaterial.clone()); - for (MaterialStack tMaterial : tData.mByProducts) if (tMaterial.mAmount > 0) aList.add(tMaterial.clone()); - } - - for (MaterialStack aMaterial : aList) { - boolean temp = true; - for (MaterialStack tMaterial : rList) if (aMaterial.mMaterial == tMaterial.mMaterial) { - tMaterial.mAmount += aMaterial.mAmount; - temp = false; break; - } - if (temp) rList.add(aMaterial.clone()); - } - - Collections.sort(rList, new Comparator() {@Override public int compare(MaterialStack a, MaterialStack b) {return a.mAmount == b.mAmount ? 0 : a.mAmount > b.mAmount ? -1 : +1;}}); - - if (rList.isEmpty()) { - mMaterial = null; - } else { - mMaterial = rList.get(0); - rList.remove(0); - } - - mByProducts = rList.toArray(new MaterialStack[rList.size()]); - } - - public boolean hasValidPrefixMaterialData() { - return mPrefix != null && mMaterial != null && mMaterial.mMaterial != null; - } - - public boolean hasValidPrefixData() { - return mPrefix != null; - } - - public boolean hasValidMaterialData() { - return mMaterial != null && mMaterial.mMaterial != null; - } - - public ArrayList getAllMaterialStacks() { - ArrayList rList = new ArrayList(); - if (hasValidMaterialData()) rList.add(mMaterial); - rList.addAll(Arrays.asList(mByProducts)); - return rList; - } - - public MaterialStack getByProduct(int aIndex) { - return aIndex>=0&&aIndex mExtraData = new GT_ArrayList(false, 1); + public final OrePrefixes mPrefix; + public final MaterialStack mMaterial; + public final MaterialStack[] mByProducts; + public boolean mBlackListed = false; + public ItemStack mUnificationTarget = null; + + public ItemData(OrePrefixes aPrefix, Materials aMaterial, boolean aBlackListed) { + mPrefix = aPrefix; + mMaterial = aMaterial == null ? null : new MaterialStack(aMaterial, aPrefix.mMaterialAmount); + mBlackListed = aBlackListed; + mByProducts = aPrefix.mSecondaryMaterial == null || aPrefix.mSecondaryMaterial.mMaterial == null ? EMPTY_MATERIALSTACK_ARRAY : new MaterialStack[]{aPrefix.mSecondaryMaterial.clone()}; + } + + public ItemData(OrePrefixes aPrefix, Materials aMaterial) { + this(aPrefix, aMaterial, false); + } + + public ItemData(MaterialStack aMaterial, MaterialStack... aByProducts) { + mPrefix = null; + mMaterial = aMaterial.mMaterial == null ? null : aMaterial.clone(); + mBlackListed = true; + if (aByProducts == null) { + mByProducts = EMPTY_MATERIALSTACK_ARRAY; + } else { + MaterialStack[] tByProducts = aByProducts.length < 1 ? EMPTY_MATERIALSTACK_ARRAY : new MaterialStack[aByProducts.length]; + int j = 0; + for (int i = 0; i < aByProducts.length; i++) + if (aByProducts[i] != null && aByProducts[i].mMaterial != null) + tByProducts[j++] = aByProducts[i].clone(); + mByProducts = j > 0 ? new MaterialStack[j] : EMPTY_MATERIALSTACK_ARRAY; + for (int i = 0; i < mByProducts.length; i++) mByProducts[i] = tByProducts[i]; + } + } + + public ItemData(Materials aMaterial, long aAmount, MaterialStack... aByProducts) { + this(new MaterialStack(aMaterial, aAmount), aByProducts); + } + + public ItemData(Materials aMaterial, long aAmount, Materials aByProduct, long aByProductAmount) { + this(new MaterialStack(aMaterial, aAmount), new MaterialStack(aByProduct, aByProductAmount)); + } + + public ItemData(ItemData... aData) { + mPrefix = null; + mBlackListed = true; + + ArrayList aList = new ArrayList(), rList = new ArrayList(); + + for (ItemData tData : aData) + if (tData != null) { + if (tData.hasValidMaterialData() && tData.mMaterial.mAmount > 0) aList.add(tData.mMaterial.clone()); + for (MaterialStack tMaterial : tData.mByProducts) + if (tMaterial.mAmount > 0) aList.add(tMaterial.clone()); + } + + for (MaterialStack aMaterial : aList) { + boolean temp = true; + for (MaterialStack tMaterial : rList) + if (aMaterial.mMaterial == tMaterial.mMaterial) { + tMaterial.mAmount += aMaterial.mAmount; + temp = false; + break; + } + if (temp) rList.add(aMaterial.clone()); + } + + Collections.sort(rList, new Comparator() { + @Override + public int compare(MaterialStack a, MaterialStack b) { + return a.mAmount == b.mAmount ? 0 : a.mAmount > b.mAmount ? -1 : +1; + } + }); + + if (rList.isEmpty()) { + mMaterial = null; + } else { + mMaterial = rList.get(0); + rList.remove(0); + } + + mByProducts = rList.toArray(new MaterialStack[rList.size()]); + } + + public boolean hasValidPrefixMaterialData() { + return mPrefix != null && mMaterial != null && mMaterial.mMaterial != null; + } + + public boolean hasValidPrefixData() { + return mPrefix != null; + } + + public boolean hasValidMaterialData() { + return mMaterial != null && mMaterial.mMaterial != null; + } + + public ArrayList getAllMaterialStacks() { + ArrayList rList = new ArrayList(); + if (hasValidMaterialData()) rList.add(mMaterial); + rList.addAll(Arrays.asList(mByProducts)); + return rList; + } + + public MaterialStack getByProduct(int aIndex) { + return aIndex >= 0 && aIndex < mByProducts.length ? mByProducts[aIndex] : null; + } + + @Override + public String toString() { + if (mPrefix == null || mMaterial == null || mMaterial.mMaterial == null) return ""; + return mPrefix.name() + mMaterial.mMaterial.name(); + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/objects/MaterialStack.java b/src/main/java/gregtech/api/objects/MaterialStack.java index 3d9479eb..5ddb8842 100644 --- a/src/main/java/gregtech/api/objects/MaterialStack.java +++ b/src/main/java/gregtech/api/objects/MaterialStack.java @@ -3,39 +3,40 @@ package gregtech.api.objects; import gregtech.api.enums.Materials; public class MaterialStack implements Cloneable { - public long mAmount; - public Materials mMaterial; - - public MaterialStack(Materials aMaterial, long aAmount) { - mMaterial = aMaterial==null?Materials._NULL:aMaterial; - mAmount = aAmount; - } - - public MaterialStack copy(long aAmount) { - return new MaterialStack(mMaterial, aAmount); - } - - @Override - public MaterialStack clone() { - return new MaterialStack(mMaterial, mAmount); - } - - @Override - public boolean equals(Object aObject) { - if (aObject == this) return true; - if (aObject == null) return false; - if (aObject instanceof Materials) return aObject == mMaterial; - if (aObject instanceof MaterialStack) return ((MaterialStack)aObject).mMaterial == mMaterial && (mAmount < 0 || ((MaterialStack)aObject).mAmount < 0 || ((MaterialStack)aObject).mAmount == mAmount); - return false; - } - - @Override - public String toString() { - return (mMaterial.mMaterialList.size() > 1 && mAmount > 1 ? "(" : "") + mMaterial.getToolTip(true) + (mMaterial.mMaterialList.size() > 1 && mAmount > 1 ? ")" : "") + (mAmount > 1 ? mAmount : ""); - } - - @Override - public int hashCode() { - return mMaterial.hashCode(); - } + public long mAmount; + public Materials mMaterial; + + public MaterialStack(Materials aMaterial, long aAmount) { + mMaterial = aMaterial == null ? Materials._NULL : aMaterial; + mAmount = aAmount; + } + + public MaterialStack copy(long aAmount) { + return new MaterialStack(mMaterial, aAmount); + } + + @Override + public MaterialStack clone() { + return new MaterialStack(mMaterial, mAmount); + } + + @Override + public boolean equals(Object aObject) { + if (aObject == this) return true; + if (aObject == null) return false; + if (aObject instanceof Materials) return aObject == mMaterial; + if (aObject instanceof MaterialStack) + return ((MaterialStack) aObject).mMaterial == mMaterial && (mAmount < 0 || ((MaterialStack) aObject).mAmount < 0 || ((MaterialStack) aObject).mAmount == mAmount); + return false; + } + + @Override + public String toString() { + return (mMaterial.mMaterialList.size() > 1 && mAmount > 1 ? "(" : "") + mMaterial.getToolTip(true) + (mMaterial.mMaterialList.size() > 1 && mAmount > 1 ? ")" : "") + (mAmount > 1 ? mAmount : ""); + } + + @Override + public int hashCode() { + return mMaterial.hashCode(); + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/threads/GT_Runnable_MachineBlockUpdate.java b/src/main/java/gregtech/api/threads/GT_Runnable_MachineBlockUpdate.java index deed269a..0909229d 100644 --- a/src/main/java/gregtech/api/threads/GT_Runnable_MachineBlockUpdate.java +++ b/src/main/java/gregtech/api/threads/GT_Runnable_MachineBlockUpdate.java @@ -2,37 +2,42 @@ package gregtech.api.threads; import gregtech.api.GregTech_API; import gregtech.api.interfaces.tileentity.IMachineBlockUpdateable; - -import java.util.ArrayList; - import net.minecraft.tileentity.TileEntity; import net.minecraft.world.ChunkPosition; import net.minecraft.world.World; +import java.util.ArrayList; + public class GT_Runnable_MachineBlockUpdate implements Runnable { - private final int mX, mY, mZ; - private final World mWorld; - - public GT_Runnable_MachineBlockUpdate(World aWorld, int aX, int aY, int aZ) { - mWorld = aWorld; mX = aX; mY = aY; mZ = aZ; - } - - @Override - public void run() { - try {stepToUpdateMachine(mWorld, mX, mY, mZ, new ArrayList());} catch(Throwable e) {/**/} - } - - private static void stepToUpdateMachine(World aWorld, int aX, int aY, int aZ, ArrayList aList) { - aList.add(new ChunkPosition(aX, aY, aZ)); - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if (tTileEntity != null && tTileEntity instanceof IMachineBlockUpdateable) ((IMachineBlockUpdateable)tTileEntity).onMachineBlockUpdate(); - if (aList.size() < 5 || (tTileEntity != null && tTileEntity instanceof IMachineBlockUpdateable) || GregTech_API.isMachineBlock(aWorld.getBlock(aX, aY, aZ), aWorld.getBlockMetadata(aX, aY, aZ))) { - if (!aList.contains(new ChunkPosition(aX + 1, aY, aZ))) stepToUpdateMachine(aWorld, aX + 1, aY, aZ, aList); - if (!aList.contains(new ChunkPosition(aX - 1, aY, aZ))) stepToUpdateMachine(aWorld, aX - 1, aY, aZ, aList); - if (!aList.contains(new ChunkPosition(aX, aY + 1, aZ))) stepToUpdateMachine(aWorld, aX, aY + 1, aZ, aList); - if (!aList.contains(new ChunkPosition(aX, aY - 1, aZ))) stepToUpdateMachine(aWorld, aX, aY - 1, aZ, aList); - if (!aList.contains(new ChunkPosition(aX, aY, aZ + 1))) stepToUpdateMachine(aWorld, aX, aY, aZ + 1, aList); - if (!aList.contains(new ChunkPosition(aX, aY, aZ - 1))) stepToUpdateMachine(aWorld, aX, aY, aZ - 1, aList); - } - } + private final int mX, mY, mZ; + private final World mWorld; + + public GT_Runnable_MachineBlockUpdate(World aWorld, int aX, int aY, int aZ) { + mWorld = aWorld; + mX = aX; + mY = aY; + mZ = aZ; + } + + private static void stepToUpdateMachine(World aWorld, int aX, int aY, int aZ, ArrayList aList) { + aList.add(new ChunkPosition(aX, aY, aZ)); + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if (tTileEntity != null && tTileEntity instanceof IMachineBlockUpdateable) + ((IMachineBlockUpdateable) tTileEntity).onMachineBlockUpdate(); + if (aList.size() < 5 || (tTileEntity != null && tTileEntity instanceof IMachineBlockUpdateable) || GregTech_API.isMachineBlock(aWorld.getBlock(aX, aY, aZ), aWorld.getBlockMetadata(aX, aY, aZ))) { + if (!aList.contains(new ChunkPosition(aX + 1, aY, aZ))) stepToUpdateMachine(aWorld, aX + 1, aY, aZ, aList); + if (!aList.contains(new ChunkPosition(aX - 1, aY, aZ))) stepToUpdateMachine(aWorld, aX - 1, aY, aZ, aList); + if (!aList.contains(new ChunkPosition(aX, aY + 1, aZ))) stepToUpdateMachine(aWorld, aX, aY + 1, aZ, aList); + if (!aList.contains(new ChunkPosition(aX, aY - 1, aZ))) stepToUpdateMachine(aWorld, aX, aY - 1, aZ, aList); + if (!aList.contains(new ChunkPosition(aX, aY, aZ + 1))) stepToUpdateMachine(aWorld, aX, aY, aZ + 1, aList); + if (!aList.contains(new ChunkPosition(aX, aY, aZ - 1))) stepToUpdateMachine(aWorld, aX, aY, aZ - 1, aList); + } + } + + @Override + public void run() { + try { + stepToUpdateMachine(mWorld, mX, mY, mZ, new ArrayList()); + } catch (Throwable e) {/**/} + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/threads/GT_Runnable_Sound.java b/src/main/java/gregtech/api/threads/GT_Runnable_Sound.java index aaa8b840..65887806 100644 --- a/src/main/java/gregtech/api/threads/GT_Runnable_Sound.java +++ b/src/main/java/gregtech/api/threads/GT_Runnable_Sound.java @@ -5,22 +5,30 @@ import gregtech.api.util.GT_Utility; import net.minecraft.world.World; public class GT_Runnable_Sound implements Runnable { - private final int mX, mY, mZ, mTimeUntilNextSound; - private final World mWorld; - private final String mSoundName; - private final float mSoundStrength, mSoundModulation; - - public GT_Runnable_Sound(World aWorld, int aX, int aY, int aZ, int aTimeUntilNextSound, String aSoundName, float aSoundStrength, float aSoundModulation) { - mWorld = aWorld; mX = aX; mY = aY; mZ = aZ; mTimeUntilNextSound = aTimeUntilNextSound; mSoundName = aSoundName; mSoundStrength = aSoundStrength; mSoundModulation = aSoundModulation; - } - - @Override - public void run() { - try { - GT_PlayedSound tSound; - if (GT_Utility.sPlayedSoundMap.keySet().contains(tSound = new GT_PlayedSound(mSoundName, mX, mY, mZ))) return; - mWorld.playSound(mX, mY, mZ, mSoundName, mSoundStrength, mSoundModulation, false); - GT_Utility.sPlayedSoundMap.put(tSound, mTimeUntilNextSound); - } catch(Throwable e) {/**/} - } + private final int mX, mY, mZ, mTimeUntilNextSound; + private final World mWorld; + private final String mSoundName; + private final float mSoundStrength, mSoundModulation; + + public GT_Runnable_Sound(World aWorld, int aX, int aY, int aZ, int aTimeUntilNextSound, String aSoundName, float aSoundStrength, float aSoundModulation) { + mWorld = aWorld; + mX = aX; + mY = aY; + mZ = aZ; + mTimeUntilNextSound = aTimeUntilNextSound; + mSoundName = aSoundName; + mSoundStrength = aSoundStrength; + mSoundModulation = aSoundModulation; + } + + @Override + public void run() { + try { + GT_PlayedSound tSound; + if (GT_Utility.sPlayedSoundMap.keySet().contains(tSound = new GT_PlayedSound(mSoundName, mX, mY, mZ))) + return; + mWorld.playSound(mX, mY, mZ, mSoundName, mSoundStrength, mSoundModulation, false); + GT_Utility.sPlayedSoundMap.put(tSound, mTimeUntilNextSound); + } catch (Throwable e) {/**/} + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/util/GT_BaseCrop.java b/src/main/java/gregtech/api/util/GT_BaseCrop.java index e7cef2c5..4b0e4a55 100644 --- a/src/main/java/gregtech/api/util/GT_BaseCrop.java +++ b/src/main/java/gregtech/api/util/GT_BaseCrop.java @@ -1,129 +1,130 @@ package gregtech.api.util; -import static gregtech.api.enums.GT_Values.E; import gregtech.api.enums.ConfigCategories; import ic2.api.crops.CropCard; import ic2.api.crops.Crops; import ic2.api.crops.ICropTile; - -import java.util.ArrayList; -import java.util.Random; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; +import java.util.ArrayList; +import java.util.Random; + +import static gregtech.api.enums.GT_Values.E; + public class GT_BaseCrop extends CropCard { - private String mName = E, mDiscoveredBy = "Gregorius Techneticies", mAttributes[]; - private int mTier = 0, mMaxSize = 0, mAfterHarvestSize = 0, mHarvestSize = 0, mStats[] = new int[5]; - private ItemStack mDrop = null, mSpecialDrops[] = null; - - public static ArrayList sCropList = new ArrayList(); - - /** - * To create new Crops - * @param aID Default ID - * @param aCropName Name of the Crop - * @param aDiscoveredBy The one who discovered the Crop - * @param aDrop The Item which is dropped by the Crop. must be != null - * @param aBaseSeed Baseseed to plant this Crop. null == crossbreed only - * @param aTier tier of the Crop. forced to be >= 1 - * @param aMaxSize maximum Size of the Crop. forced to be >= 3 - * @param aGrowthSpeed how fast the Crop grows. if < 0 then its set to Tier*300 - * @param aHarvestSize the size the Crop needs to be harvested. forced to be between 2 and max size - */ - public GT_BaseCrop(int aID, String aCropName, String aDiscoveredBy, ItemStack aDrop, ItemStack[] aSpecialDrops, ItemStack aBaseSeed, int aTier, int aMaxSize, int aGrowthSpeed, int aAfterHarvestSize, int aHarvestSize, int aStatChemical, int aStatFood, int aStatDefensive, int aStatColor, int aStatWeed, String[] aAttributes) { - mName = aCropName; - aID = GT_Config.addIDConfig(ConfigCategories.IDs.crops, mName.replaceAll(" ", "_"), aID); - if (aDiscoveredBy != null && !aDiscoveredBy.equals(E)) mDiscoveredBy = aDiscoveredBy; - if (aDrop != null && aID > 0 && aID < 256) { - mDrop = GT_Utility.copy(aDrop); - mSpecialDrops = aSpecialDrops; - mTier = Math.max(1, aTier); - mMaxSize = Math.max(3, aMaxSize); + public static ArrayList sCropList = new ArrayList(); + private String mName = E, mDiscoveredBy = "Gregorius Techneticies", mAttributes[]; + private int mTier = 0, mMaxSize = 0, mAfterHarvestSize = 0, mHarvestSize = 0, mStats[] = new int[5]; + private ItemStack mDrop = null, mSpecialDrops[] = null; + + /** + * To create new Crops + * + * @param aID Default ID + * @param aCropName Name of the Crop + * @param aDiscoveredBy The one who discovered the Crop + * @param aDrop The Item which is dropped by the Crop. must be != null + * @param aBaseSeed Baseseed to plant this Crop. null == crossbreed only + * @param aTier tier of the Crop. forced to be >= 1 + * @param aMaxSize maximum Size of the Crop. forced to be >= 3 + * @param aGrowthSpeed how fast the Crop grows. if < 0 then its set to Tier*300 + * @param aHarvestSize the size the Crop needs to be harvested. forced to be between 2 and max size + */ + public GT_BaseCrop(int aID, String aCropName, String aDiscoveredBy, ItemStack aDrop, ItemStack[] aSpecialDrops, ItemStack aBaseSeed, int aTier, int aMaxSize, int aGrowthSpeed, int aAfterHarvestSize, int aHarvestSize, int aStatChemical, int aStatFood, int aStatDefensive, int aStatColor, int aStatWeed, String[] aAttributes) { + mName = aCropName; + aID = GT_Config.addIDConfig(ConfigCategories.IDs.crops, mName.replaceAll(" ", "_"), aID); + if (aDiscoveredBy != null && !aDiscoveredBy.equals(E)) mDiscoveredBy = aDiscoveredBy; + if (aDrop != null && aID > 0 && aID < 256) { + mDrop = GT_Utility.copy(aDrop); + mSpecialDrops = aSpecialDrops; + mTier = Math.max(1, aTier); + mMaxSize = Math.max(3, aMaxSize); // mGrowthSpeed = aGrowthSpeed>0?aGrowthSpeed:mTier*300; - mHarvestSize = Math.min(Math.max(aHarvestSize, 2), mMaxSize); - mAfterHarvestSize = Math.min(Math.max(aAfterHarvestSize, 1), mMaxSize-1); - mStats[0] = aStatChemical; - mStats[1] = aStatFood; - mStats[2] = aStatDefensive; - mStats[3] = aStatColor; - mStats[4] = aStatWeed; - mAttributes = aAttributes; - if (!Crops.instance.registerCrop(this, aID)) throw new GT_ItsNotMyFaultException("Make sure the Crop ID is valid!"); - if (aBaseSeed != null) Crops.instance.registerBaseSeed(aBaseSeed, aID, 1, 1, 1, 1); - sCropList.add(this); - } - } - - @Override - public byte getSizeAfterHarvest(ICropTile crop) { - return (byte)mAfterHarvestSize; - } - - @Override - public String[] attributes() { - return mAttributes; - } - - @Override - public String discoveredBy() { - return mDiscoveredBy; - } - - @Override - public final boolean canGrow(ICropTile aCrop) { - return aCrop.getSize() < maxSize(); + mHarvestSize = Math.min(Math.max(aHarvestSize, 2), mMaxSize); + mAfterHarvestSize = Math.min(Math.max(aAfterHarvestSize, 1), mMaxSize - 1); + mStats[0] = aStatChemical; + mStats[1] = aStatFood; + mStats[2] = aStatDefensive; + mStats[3] = aStatColor; + mStats[4] = aStatWeed; + mAttributes = aAttributes; + if (!Crops.instance.registerCrop(this, aID)) + throw new GT_ItsNotMyFaultException("Make sure the Crop ID is valid!"); + if (aBaseSeed != null) Crops.instance.registerBaseSeed(aBaseSeed, aID, 1, 1, 1, 1); + sCropList.add(this); + } } - - @Override + + @Override + public byte getSizeAfterHarvest(ICropTile crop) { + return (byte) mAfterHarvestSize; + } + + @Override + public String[] attributes() { + return mAttributes; + } + + @Override + public String discoveredBy() { + return mDiscoveredBy; + } + + @Override + public final boolean canGrow(ICropTile aCrop) { + return aCrop.getSize() < maxSize(); + } + + @Override public final boolean canBeHarvested(ICropTile aCrop) { return aCrop.getSize() >= mHarvestSize; } - - @Override - public boolean canCross(ICropTile aCrop) { - return aCrop.getSize() + 2 > maxSize(); - } - - @Override - public int stat(int n) { - if (n < 0 || n >= mStats.length) return 0; - return mStats[n]; + + @Override + public boolean canCross(ICropTile aCrop) { + return aCrop.getSize() + 2 > maxSize(); } - - @Override - public String name() { - return mName; - } - - @Override - public int tier() { - return mTier; - } - - @Override - public int maxSize() { - return mMaxSize; - } - - @Override - public ItemStack getGain(ICropTile aCrop) { - int tDrop = 0; - if (mSpecialDrops != null && (tDrop = new Random().nextInt(mSpecialDrops.length+4)) < mSpecialDrops.length && mSpecialDrops[tDrop] != null) { - return GT_Utility.copy(mSpecialDrops[tDrop]); - } - return GT_Utility.copy(mDrop); - } - + + @Override + public int stat(int n) { + if (n < 0 || n >= mStats.length) return 0; + return mStats[n]; + } + + @Override + public String name() { + return mName; + } + + @Override + public int tier() { + return mTier; + } + + @Override + public int maxSize() { + return mMaxSize; + } + + @Override + public ItemStack getGain(ICropTile aCrop) { + int tDrop = 0; + if (mSpecialDrops != null && (tDrop = new Random().nextInt(mSpecialDrops.length + 4)) < mSpecialDrops.length && mSpecialDrops[tDrop] != null) { + return GT_Utility.copy(mSpecialDrops[tDrop]); + } + return GT_Utility.copy(mDrop); + } + @Override public boolean rightclick(ICropTile aCrop, EntityPlayer aPlayer) { - if (!canBeHarvested(aCrop)) return false; - return aCrop.harvest(aPlayer==null?false:aPlayer instanceof EntityPlayerMP); + if (!canBeHarvested(aCrop)) return false; + return aCrop.harvest(aPlayer == null ? false : aPlayer instanceof EntityPlayerMP); + } + + @Override + public int getOptimalHavestSize(ICropTile crop) { + return maxSize(); } - - @Override - public int getOptimalHavestSize(ICropTile crop) { - return maxSize(); - } } diff --git a/src/main/java/gregtech/api/util/GT_CircuitryBehavior.java b/src/main/java/gregtech/api/util/GT_CircuitryBehavior.java index 6cda3c20..4adf7e0f 100644 --- a/src/main/java/gregtech/api/util/GT_CircuitryBehavior.java +++ b/src/main/java/gregtech/api/util/GT_CircuitryBehavior.java @@ -1,178 +1,181 @@ package gregtech.api.util; -import gregtech.api.GregTech_API; -import gregtech.api.interfaces.IRedstoneCircuitBlock; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import gregtech.api.GregTech_API; +import gregtech.api.interfaces.IRedstoneCircuitBlock; /** * Redstone Circuit Control Code - * + *

* This should make everything possible what a Redstone Computer or BuildCraft Gate could do. * It is intended to use this similar to BC-Gates (for acquiring Data) and RP Logic Gates. * You could write an extremely specified and complex Logic Gate, which works only for you Setup, like * with ComputerCraft, but you would have to write an extra Mod to add that, as it doesn't work Ingame. - * + *

* One can make use of the fact, that ItemStacks can be stored as Integer, so that you can scan * Inventories for specific Items using that. Luckily the Buttons in the GUI enable Copy/Paste of * ItemID+MetaData to Integer, including the WildCard Damage Value when you use rightclick to place it. * You just need to use @GT_Utility.stackToInt(ItemStack aStack) to get it. - * + *

* All Functions run usually in a seperate try/catch Block, so that failed Logic won't crash the TileEntity. */ public abstract class GT_CircuitryBehavior { - /** - * @param aIndex 0 - 1023 are my own Indices, so use other Numbers! - */ - public GT_CircuitryBehavior(int aIndex) { - GregTech_API.sCircuitryBehaviors.put(aIndex, this); - } - - /** - * Initializes the Parameters of this Circuit, all Parameters have been set to 0 right before calling this - * @param aCircuitData, The Data Storage you can use (8 Slots) - * @param aRedstoneCircuitBlock, The Circuit Block MetaTileEntity itself - */ - public abstract void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock); - - /** - * Validates the Parameters of this Circuit when a value has been changed by the GUI - * Also called right after @initParameters and when the Chunk reloads - * @param aCircuitData, The Data Storage you can use (8 Slots and only the first 4 are User definable) - * @param aRedstoneCircuitBlock, The Circuit Block MetaTileEntity itself - */ - public abstract void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock); - - /** - * Called every tick if the Block has enough Energy and if the Block is Active - * @param aCircuitData, The Data Storage you can use (8 Slots) - * @param aRedstoneCircuitBlock, The Circuit Block MetaTileEntity itself - */ - public abstract void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock); + /** + * @param aIndex 0 - 1023 are my own Indices, so use other Numbers! + */ + public GT_CircuitryBehavior(int aIndex) { + GregTech_API.sCircuitryBehaviors.put(aIndex, this); + } - /** - * If the ItemStack should be displayed. Parameters are between 0 and 3. - */ - public abstract boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex); + /** + * returns if there is Redstone applied to any of the valid Inputs (OR) + */ + public static final boolean getAnyRedstone(IRedstoneCircuitBlock aRedstoneCircuitBlock) { + for (byte i = 0; i < 6; i++) { + if (i != aRedstoneCircuitBlock.getOutputFacing() && aRedstoneCircuitBlock.getCover(i).letsRedstoneGoIn(i, aRedstoneCircuitBlock.getCoverID(i), aRedstoneCircuitBlock.getCoverVariable(i), aRedstoneCircuitBlock.getOwnTileEntity())) { + if (aRedstoneCircuitBlock.getInputRedstone(i) > 0) { + return true; + } + } + } + return false; + } - /***************** - * GUI Functions * - *****************/ - - /** - * The Name of the Gate for the GUI - */ - @SideOnly(Side.CLIENT) - public abstract String getName(); - - /** - * The Description of the Gate for the GUI - */ - @SideOnly(Side.CLIENT) - public abstract String getDescription(); - - /** - * The Description of the Data Field for the GUI - */ - @SideOnly(Side.CLIENT) - public abstract String getDataDescription(int[] aCircuitData, int aCircuitDataIndex); - - /** - * How the Integer should be displayed in the GUI. - * null means, that it just displays as regular Number. - */ - @SideOnly(Side.CLIENT) - public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { - return null; - } - - - /**************************** - * Useful Utility Functions * - ****************************/ - - /** - * returns if there is Redstone applied to any of the valid Inputs (OR) - */ - public static final boolean getAnyRedstone(IRedstoneCircuitBlock aRedstoneCircuitBlock) { - for (byte i = 0; i < 6; i++) { - if (i != aRedstoneCircuitBlock.getOutputFacing() && aRedstoneCircuitBlock.getCover(i).letsRedstoneGoIn(i, aRedstoneCircuitBlock.getCoverID(i), aRedstoneCircuitBlock.getCoverVariable(i), aRedstoneCircuitBlock.getOwnTileEntity())) { - if (aRedstoneCircuitBlock.getInputRedstone(i) > 0) { - return true; - } - } - } - return false; - } - - /** - * returns if there is Redstone applied to all the valid Inputs (AND) - */ - public static final boolean getAllRedstone(IRedstoneCircuitBlock aRedstoneCircuitBlock) { - for (byte i = 0; i < 6; i++) { - if (i != aRedstoneCircuitBlock.getOutputFacing() && aRedstoneCircuitBlock.getCover(i).letsRedstoneGoIn(i, aRedstoneCircuitBlock.getCoverID(i), aRedstoneCircuitBlock.getCoverVariable(i), aRedstoneCircuitBlock.getOwnTileEntity())) { - if (aRedstoneCircuitBlock.getInputRedstone(i) == 0) { - return false; - } - } - } - return true; - } - - /** - * returns if there is Redstone applied to exactly one of the valid Inputs (XOR) - */ - public static final boolean getOneRedstone(IRedstoneCircuitBlock aRedstoneCircuitBlock) { - int tRedstoneAmount = 0; - for (byte i = 0; i < 6; i++) { - if (i != aRedstoneCircuitBlock.getOutputFacing() && aRedstoneCircuitBlock.getCover(i).letsRedstoneGoIn(i, aRedstoneCircuitBlock.getCoverID(i), aRedstoneCircuitBlock.getCoverVariable(i), aRedstoneCircuitBlock.getOwnTileEntity())) { - if (aRedstoneCircuitBlock.getInputRedstone(i) > 0) { - tRedstoneAmount++; - } - } - } - return tRedstoneAmount == 1; - } - - /** - * returns the strongest incoming RS-Power - */ - public static final byte getStrongestRedstone(IRedstoneCircuitBlock aRedstoneCircuitBlock) { - byte tRedstoneAmount = 0; - for (byte i = 0; i < 6; i++) { - if (i != aRedstoneCircuitBlock.getOutputFacing() && aRedstoneCircuitBlock.getCover(i).letsRedstoneGoIn(i, aRedstoneCircuitBlock.getCoverID(i), aRedstoneCircuitBlock.getCoverVariable(i), aRedstoneCircuitBlock.getOwnTileEntity())) { - tRedstoneAmount = (byte)Math.max(tRedstoneAmount, aRedstoneCircuitBlock.getInputRedstone(i)); - } - } - return tRedstoneAmount; - } - - /** - * returns the weakest incoming non-zero RS-Power - */ - public static final byte getWeakestNonZeroRedstone(IRedstoneCircuitBlock aRedstoneCircuitBlock) { - if (!getAnyRedstone(aRedstoneCircuitBlock)) return 0; - byte tRedstoneAmount = 15; - for (byte i = 0; i < 6; i++) { - if (i != aRedstoneCircuitBlock.getOutputFacing() && aRedstoneCircuitBlock.getCover(i).letsRedstoneGoIn(i, aRedstoneCircuitBlock.getCoverID(i), aRedstoneCircuitBlock.getCoverVariable(i), aRedstoneCircuitBlock.getOwnTileEntity())) { - if (aRedstoneCircuitBlock.getInputRedstone(i) > 0) - tRedstoneAmount = (byte)Math.min(tRedstoneAmount, aRedstoneCircuitBlock.getInputRedstone(i)); - } - } - return tRedstoneAmount; - } - - /** - * returns the weakest incoming RS-Power - */ - public static final byte getWeakestRedstone(IRedstoneCircuitBlock aRedstoneCircuitBlock) { - if (!getAnyRedstone(aRedstoneCircuitBlock)) return 0; - byte tRedstoneAmount = 15; - for (byte i = 0; i < 6; i++) { - if (i != aRedstoneCircuitBlock.getOutputFacing() && aRedstoneCircuitBlock.getCover(i).letsRedstoneGoIn(i, aRedstoneCircuitBlock.getCoverID(i), aRedstoneCircuitBlock.getCoverVariable(i), aRedstoneCircuitBlock.getOwnTileEntity())) { - tRedstoneAmount = (byte)Math.min(tRedstoneAmount, aRedstoneCircuitBlock.getInputRedstone(i)); - } - } - return tRedstoneAmount; - } + /** + * returns if there is Redstone applied to all the valid Inputs (AND) + */ + public static final boolean getAllRedstone(IRedstoneCircuitBlock aRedstoneCircuitBlock) { + for (byte i = 0; i < 6; i++) { + if (i != aRedstoneCircuitBlock.getOutputFacing() && aRedstoneCircuitBlock.getCover(i).letsRedstoneGoIn(i, aRedstoneCircuitBlock.getCoverID(i), aRedstoneCircuitBlock.getCoverVariable(i), aRedstoneCircuitBlock.getOwnTileEntity())) { + if (aRedstoneCircuitBlock.getInputRedstone(i) == 0) { + return false; + } + } + } + return true; + } + + /** + * returns if there is Redstone applied to exactly one of the valid Inputs (XOR) + */ + public static final boolean getOneRedstone(IRedstoneCircuitBlock aRedstoneCircuitBlock) { + int tRedstoneAmount = 0; + for (byte i = 0; i < 6; i++) { + if (i != aRedstoneCircuitBlock.getOutputFacing() && aRedstoneCircuitBlock.getCover(i).letsRedstoneGoIn(i, aRedstoneCircuitBlock.getCoverID(i), aRedstoneCircuitBlock.getCoverVariable(i), aRedstoneCircuitBlock.getOwnTileEntity())) { + if (aRedstoneCircuitBlock.getInputRedstone(i) > 0) { + tRedstoneAmount++; + } + } + } + return tRedstoneAmount == 1; + } + + /** + * returns the strongest incoming RS-Power + */ + public static final byte getStrongestRedstone(IRedstoneCircuitBlock aRedstoneCircuitBlock) { + byte tRedstoneAmount = 0; + for (byte i = 0; i < 6; i++) { + if (i != aRedstoneCircuitBlock.getOutputFacing() && aRedstoneCircuitBlock.getCover(i).letsRedstoneGoIn(i, aRedstoneCircuitBlock.getCoverID(i), aRedstoneCircuitBlock.getCoverVariable(i), aRedstoneCircuitBlock.getOwnTileEntity())) { + tRedstoneAmount = (byte) Math.max(tRedstoneAmount, aRedstoneCircuitBlock.getInputRedstone(i)); + } + } + return tRedstoneAmount; + } + + /***************** + * GUI Functions * + *****************/ + + /** + * returns the weakest incoming non-zero RS-Power + */ + public static final byte getWeakestNonZeroRedstone(IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (!getAnyRedstone(aRedstoneCircuitBlock)) return 0; + byte tRedstoneAmount = 15; + for (byte i = 0; i < 6; i++) { + if (i != aRedstoneCircuitBlock.getOutputFacing() && aRedstoneCircuitBlock.getCover(i).letsRedstoneGoIn(i, aRedstoneCircuitBlock.getCoverID(i), aRedstoneCircuitBlock.getCoverVariable(i), aRedstoneCircuitBlock.getOwnTileEntity())) { + if (aRedstoneCircuitBlock.getInputRedstone(i) > 0) + tRedstoneAmount = (byte) Math.min(tRedstoneAmount, aRedstoneCircuitBlock.getInputRedstone(i)); + } + } + return tRedstoneAmount; + } + + /** + * returns the weakest incoming RS-Power + */ + public static final byte getWeakestRedstone(IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (!getAnyRedstone(aRedstoneCircuitBlock)) return 0; + byte tRedstoneAmount = 15; + for (byte i = 0; i < 6; i++) { + if (i != aRedstoneCircuitBlock.getOutputFacing() && aRedstoneCircuitBlock.getCover(i).letsRedstoneGoIn(i, aRedstoneCircuitBlock.getCoverID(i), aRedstoneCircuitBlock.getCoverVariable(i), aRedstoneCircuitBlock.getOwnTileEntity())) { + tRedstoneAmount = (byte) Math.min(tRedstoneAmount, aRedstoneCircuitBlock.getInputRedstone(i)); + } + } + return tRedstoneAmount; + } + + /** + * Initializes the Parameters of this Circuit, all Parameters have been set to 0 right before calling this + * + * @param aCircuitData, The Data Storage you can use (8 Slots) + * @param aRedstoneCircuitBlock, The Circuit Block MetaTileEntity itself + */ + public abstract void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock); + + /** + * Validates the Parameters of this Circuit when a value has been changed by the GUI + * Also called right after @initParameters and when the Chunk reloads + * + * @param aCircuitData, The Data Storage you can use (8 Slots and only the first 4 are User definable) + * @param aRedstoneCircuitBlock, The Circuit Block MetaTileEntity itself + */ + public abstract void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock); + + + /**************************** + * Useful Utility Functions * + ****************************/ + + /** + * Called every tick if the Block has enough Energy and if the Block is Active + * + * @param aCircuitData, The Data Storage you can use (8 Slots) + * @param aRedstoneCircuitBlock, The Circuit Block MetaTileEntity itself + */ + public abstract void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock); + + /** + * If the ItemStack should be displayed. Parameters are between 0 and 3. + */ + public abstract boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex); + + /** + * The Name of the Gate for the GUI + */ + @SideOnly(Side.CLIENT) + public abstract String getName(); + + /** + * The Description of the Gate for the GUI + */ + @SideOnly(Side.CLIENT) + public abstract String getDescription(); + + /** + * The Description of the Data Field for the GUI + */ + @SideOnly(Side.CLIENT) + public abstract String getDataDescription(int[] aCircuitData, int aCircuitDataIndex); + + /** + * How the Integer should be displayed in the GUI. + * null means, that it just displays as regular Number. + */ + @SideOnly(Side.CLIENT) + public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { + return null; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/util/GT_Config.java b/src/main/java/gregtech/api/util/GT_Config.java index 3ba96031..f4631f5d 100644 --- a/src/main/java/gregtech/api/util/GT_Config.java +++ b/src/main/java/gregtech/api/util/GT_Config.java @@ -1,85 +1,87 @@ package gregtech.api.util; -import static gregtech.api.enums.GT_Values.E; import gregtech.api.GregTech_API; import net.minecraft.item.ItemStack; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Property; -public class GT_Config implements Runnable { - public static boolean troll = false; - - public static Configuration sConfigFileIDs; - - public static int addIDConfig(Object aCategory, String aName, int aDefault) { - if (GT_Utility.isStringInvalid(aName)) return aDefault; - Property tProperty = sConfigFileIDs.get(aCategory.toString().replaceAll("\\|", "."), aName.replaceAll("\\|", "."), aDefault); - int rResult = tProperty.getInt(aDefault); - if (!tProperty.wasRead() && GregTech_API.sPostloadFinished) sConfigFileIDs.save(); - return rResult; - } - - public final Configuration mConfig; - - public GT_Config(Configuration aConfig) { - mConfig = aConfig; - mConfig.load(); - mConfig.save(); - GregTech_API.sAfterGTPreload.add(this); // in case of crash on startup - GregTech_API.sAfterGTLoad.add(this); // in case of crash on startup - GregTech_API.sAfterGTPostload.add(this); - } - - public static String getStackConfigName(ItemStack aStack) { - if (GT_Utility.isStackInvalid(aStack)) return E; - Object rName = GT_OreDictUnificator.getAssociation(aStack); - if (rName != null) return rName.toString(); - try {if (GT_Utility.isStringValid(rName = aStack.getUnlocalizedName())) return rName.toString();} catch (Throwable e) {/*Do nothing*/} - String sName = aStack.getItem().toString(); - String[] tmp = sName.split("@"); - if(tmp.length>0)sName=tmp[0]; - return sName + "." + aStack.getItemDamage(); - } - - public boolean get(Object aCategory, ItemStack aStack, boolean aDefault) { - String aName = getStackConfigName(aStack); - return get(aCategory, aName , aDefault); - } - - public boolean get(Object aCategory, String aName, boolean aDefault) { - if (GT_Utility.isStringInvalid(aName)) return aDefault; - Property tProperty = mConfig.get(aCategory.toString().replaceAll("\\|", "_"), (aName+"_"+aDefault).replaceAll("\\|", "_"), aDefault); - boolean rResult = tProperty.getBoolean(aDefault); - if (!tProperty.wasRead() && GregTech_API.sPostloadFinished) mConfig.save(); - return rResult; - } - - public int get(Object aCategory, ItemStack aStack, int aDefault) { - return get(aCategory, getStackConfigName(aStack), aDefault); - } - - public int get(Object aCategory, String aName, int aDefault) { - if (GT_Utility.isStringInvalid(aName)) return aDefault; - Property tProperty = mConfig.get(aCategory.toString().replaceAll("\\|", "_"), (aName+"_"+aDefault).replaceAll("\\|", "_"), aDefault); - int rResult = tProperty.getInt(aDefault); - if (!tProperty.wasRead() && GregTech_API.sPostloadFinished) mConfig.save(); - return rResult; - } - - public double get(Object aCategory, ItemStack aStack, double aDefault) { - return get(aCategory, getStackConfigName(aStack), aDefault); - } - - public double get(Object aCategory, String aName, double aDefault) { - if (GT_Utility.isStringInvalid(aName)) return aDefault; - Property tProperty = mConfig.get(aCategory.toString().replaceAll("\\|", "_"), (aName+"_"+aDefault).replaceAll("\\|", "_"), aDefault); - double rResult = tProperty.getDouble(aDefault); - if (!tProperty.wasRead() && GregTech_API.sPostloadFinished) mConfig.save(); - return rResult; - } +import static gregtech.api.enums.GT_Values.E; - @Override - public void run() { - mConfig.save(); - } +public class GT_Config implements Runnable { + public static boolean troll = false; + + public static Configuration sConfigFileIDs; + public final Configuration mConfig; + + public GT_Config(Configuration aConfig) { + mConfig = aConfig; + mConfig.load(); + mConfig.save(); + GregTech_API.sAfterGTPreload.add(this); // in case of crash on startup + GregTech_API.sAfterGTLoad.add(this); // in case of crash on startup + GregTech_API.sAfterGTPostload.add(this); + } + + public static int addIDConfig(Object aCategory, String aName, int aDefault) { + if (GT_Utility.isStringInvalid(aName)) return aDefault; + Property tProperty = sConfigFileIDs.get(aCategory.toString().replaceAll("\\|", "."), aName.replaceAll("\\|", "."), aDefault); + int rResult = tProperty.getInt(aDefault); + if (!tProperty.wasRead() && GregTech_API.sPostloadFinished) sConfigFileIDs.save(); + return rResult; + } + + public static String getStackConfigName(ItemStack aStack) { + if (GT_Utility.isStackInvalid(aStack)) return E; + Object rName = GT_OreDictUnificator.getAssociation(aStack); + if (rName != null) return rName.toString(); + try { + if (GT_Utility.isStringValid(rName = aStack.getUnlocalizedName())) return rName.toString(); + } catch (Throwable e) {/*Do nothing*/} + String sName = aStack.getItem().toString(); + String[] tmp = sName.split("@"); + if (tmp.length > 0) sName = tmp[0]; + return sName + "." + aStack.getItemDamage(); + } + + public boolean get(Object aCategory, ItemStack aStack, boolean aDefault) { + String aName = getStackConfigName(aStack); + return get(aCategory, aName, aDefault); + } + + public boolean get(Object aCategory, String aName, boolean aDefault) { + if (GT_Utility.isStringInvalid(aName)) return aDefault; + Property tProperty = mConfig.get(aCategory.toString().replaceAll("\\|", "_"), (aName + "_" + aDefault).replaceAll("\\|", "_"), aDefault); + boolean rResult = tProperty.getBoolean(aDefault); + if (!tProperty.wasRead() && GregTech_API.sPostloadFinished) mConfig.save(); + return rResult; + } + + public int get(Object aCategory, ItemStack aStack, int aDefault) { + return get(aCategory, getStackConfigName(aStack), aDefault); + } + + public int get(Object aCategory, String aName, int aDefault) { + if (GT_Utility.isStringInvalid(aName)) return aDefault; + Property tProperty = mConfig.get(aCategory.toString().replaceAll("\\|", "_"), (aName + "_" + aDefault).replaceAll("\\|", "_"), aDefault); + int rResult = tProperty.getInt(aDefault); + if (!tProperty.wasRead() && GregTech_API.sPostloadFinished) mConfig.save(); + return rResult; + } + + public double get(Object aCategory, ItemStack aStack, double aDefault) { + return get(aCategory, getStackConfigName(aStack), aDefault); + } + + public double get(Object aCategory, String aName, double aDefault) { + if (GT_Utility.isStringInvalid(aName)) return aDefault; + Property tProperty = mConfig.get(aCategory.toString().replaceAll("\\|", "_"), (aName + "_" + aDefault).replaceAll("\\|", "_"), aDefault); + double rResult = tProperty.getDouble(aDefault); + if (!tProperty.wasRead() && GregTech_API.sPostloadFinished) mConfig.save(); + return rResult; + } + + @Override + public void run() { + mConfig.save(); + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/util/GT_CoverBehavior.java b/src/main/java/gregtech/api/util/GT_CoverBehavior.java index cfc75f36..f3ba021a 100644 --- a/src/main/java/gregtech/api/util/GT_CoverBehavior.java +++ b/src/main/java/gregtech/api/util/GT_CoverBehavior.java @@ -1,217 +1,218 @@ package gregtech.api.util; -import static gregtech.api.enums.GT_Values.E; import gregtech.api.interfaces.tileentity.ICoverable; import gregtech.api.objects.GT_ItemStack; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; +import static gregtech.api.enums.GT_Values.E; + /** * For Covers with a special behavior. */ public abstract class GT_CoverBehavior { - /** - * Called by updateEntity inside the covered TileEntity. aCoverVariable is the Value you returned last time. - */ - public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { - return aCoverVariable; - } - - /** - * Called when someone rightclicks this Cover. - * - * return true, if something actually happens. - */ - public boolean onCoverRightclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { - return false; - } - - /** - * Called when someone rightclicks this Cover Client Side - * - * return true, if something actually happens. - */ - public boolean onCoverRightclickClient(byte aSide, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { - return false; - } - - /** - * Called when someone rightclicks this Cover with a Screwdriver. Doesn't call @onCoverRightclick in this Case. - * - * return the new Value of the Cover Variable - */ - public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { - return aCoverVariable; - } - - /** - * Checks if the Cover can be placed on this. - */ - public boolean isCoverPlaceable(byte aSide, GT_ItemStack aStack, ICoverable aTileEntity) { - return true; - } - - /** - * Removes the Cover if this returns true, or if aForced is true. - * Doesn't get called when the Machine Block is getting broken, only if you break the Cover away from the Machine. - */ - public boolean onCoverRemoval(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, boolean aForced) { - return true; - } - - /** - * Gives a small Text for the status of the Cover. - */ - public String getDescription(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return E; - } - - /** - * How Blast Proof the Cover is. 30 is normal. - */ - public float getBlastProofLevel(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return 10.0F; - } + /** + * Called by updateEntity inside the covered TileEntity. aCoverVariable is the Value you returned last time. + */ + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + return aCoverVariable; + } - /** - * If it lets RS-Signals into the Block - * - * This is just Informative so that Machines know if their Redstone Input is blocked or not - */ - public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return false; - } - - /** - * If it lets RS-Signals out of the Block - */ - public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return false; - } - - /** - * If it lets Fibre-Signals into the Block - * - * This is just Informative so that Machines know if their Redstone Input is blocked or not - */ - public boolean letsFibreGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return false; - } - - /** - * If it lets Fibre-Signals out of the Block - */ - public boolean letsFibreGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return false; - } - - /** - * If it lets Energy into the Block - */ - public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return false; - } - - /** - * If it lets Energy out of the Block - */ - public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return false; - } - - /** - * If it lets Liquids into the Block, aFluid can be null meaning if this is generally allowing Fluids or not. - */ - public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { - return false; - } - - /** - * If it lets Liquids out of the Block, aFluid can be null meaning if this is generally allowing Fluids or not. - */ - public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { - return false; - } - - /** - * If it lets Items into the Block, aSlot = -1 means if it is generally accepting Items (return false for no Interaction at all), aSlot = -2 means if it would accept for all Slots (return true to skip the Checks for each Slot). - */ - public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { - return false; - } - - /** - * If it lets Items out of the Block, aSlot = -1 means if it is generally accepting Items (return false for no Interaction at all), aSlot = -2 means if it would accept for all Slots (return true to skip the Checks for each Slot). - */ - public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { - return false; - } - - /** - * If it lets you rightclick the Machine normally - */ - public boolean isGUIClickable(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return false; - } - - /** - * Needs to return true for Covers, which have a Redstone Output on their Facing. - */ - public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return false; - } - - /** - * if this Cover should let Pipe Connections look connected even if it is not the case. - */ - public boolean alwaysLookConnected(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return false; - } - - /** - * Called to determine the incoming Redstone Signal of a Machine. - * Returns the original Redstone per default. - * The Cover should @letsRedstoneGoIn or the aInputRedstone Parameter is always 0. - */ - public byte getRedstoneInput(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return letsRedstoneGoIn(aSide, aCoverID, aCoverVariable, aTileEntity)?aInputRedstone:0; - } - - /** - * Gets the Tick Rate for doCoverThings of the Cover - * - * 0 = No Ticks! Yes, 0 is Default, you have to override this - */ - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return 0; - } - - /** - * If this is a simple Cover, which can also be used on Bronze Machines and similar. - */ - public boolean isSimpleCover() { - return false; - } - - /** - * The MC Color of this Lens. -1 for no Color (meaning this isn't a Lens then). - */ - public byte getLensColor(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return -1; - } - - /** - * @return the ItemStack dropped by this Cover - */ - public ItemStack getDrop(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return GT_OreDictUnificator.get(true, aTileEntity.getCoverItemAtSide(aSide)); - } - - /** - * @return sets the Cover upon placement. - */ - public void placeCover(byte aSide, ItemStack aCover, ICoverable aTileEntity) { - aTileEntity.setCoverIDAtSide(aSide, GT_Utility.stackToInt(aCover)); - } + /** + * Called when someone rightclicks this Cover. + *

+ * return true, if something actually happens. + */ + public boolean onCoverRightclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + return false; + } + + /** + * Called when someone rightclicks this Cover Client Side + *

+ * return true, if something actually happens. + */ + public boolean onCoverRightclickClient(byte aSide, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + return false; + } + + /** + * Called when someone rightclicks this Cover with a Screwdriver. Doesn't call @onCoverRightclick in this Case. + *

+ * return the new Value of the Cover Variable + */ + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + return aCoverVariable; + } + + /** + * Checks if the Cover can be placed on this. + */ + public boolean isCoverPlaceable(byte aSide, GT_ItemStack aStack, ICoverable aTileEntity) { + return true; + } + + /** + * Removes the Cover if this returns true, or if aForced is true. + * Doesn't get called when the Machine Block is getting broken, only if you break the Cover away from the Machine. + */ + public boolean onCoverRemoval(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, boolean aForced) { + return true; + } + + /** + * Gives a small Text for the status of the Cover. + */ + public String getDescription(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return E; + } + + /** + * How Blast Proof the Cover is. 30 is normal. + */ + public float getBlastProofLevel(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 10.0F; + } + + /** + * If it lets RS-Signals into the Block + *

+ * This is just Informative so that Machines know if their Redstone Input is blocked or not + */ + public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return false; + } + + /** + * If it lets RS-Signals out of the Block + */ + public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return false; + } + + /** + * If it lets Fibre-Signals into the Block + *

+ * This is just Informative so that Machines know if their Redstone Input is blocked or not + */ + public boolean letsFibreGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return false; + } + + /** + * If it lets Fibre-Signals out of the Block + */ + public boolean letsFibreGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return false; + } + + /** + * If it lets Energy into the Block + */ + public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return false; + } + + /** + * If it lets Energy out of the Block + */ + public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return false; + } + + /** + * If it lets Liquids into the Block, aFluid can be null meaning if this is generally allowing Fluids or not. + */ + public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return false; + } + + /** + * If it lets Liquids out of the Block, aFluid can be null meaning if this is generally allowing Fluids or not. + */ + public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return false; + } + + /** + * If it lets Items into the Block, aSlot = -1 means if it is generally accepting Items (return false for no Interaction at all), aSlot = -2 means if it would accept for all Slots (return true to skip the Checks for each Slot). + */ + public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return false; + } + + /** + * If it lets Items out of the Block, aSlot = -1 means if it is generally accepting Items (return false for no Interaction at all), aSlot = -2 means if it would accept for all Slots (return true to skip the Checks for each Slot). + */ + public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return false; + } + + /** + * If it lets you rightclick the Machine normally + */ + public boolean isGUIClickable(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return false; + } + + /** + * Needs to return true for Covers, which have a Redstone Output on their Facing. + */ + public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return false; + } + + /** + * if this Cover should let Pipe Connections look connected even if it is not the case. + */ + public boolean alwaysLookConnected(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return false; + } + + /** + * Called to determine the incoming Redstone Signal of a Machine. + * Returns the original Redstone per default. + * The Cover should @letsRedstoneGoIn or the aInputRedstone Parameter is always 0. + */ + public byte getRedstoneInput(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return letsRedstoneGoIn(aSide, aCoverID, aCoverVariable, aTileEntity) ? aInputRedstone : 0; + } + + /** + * Gets the Tick Rate for doCoverThings of the Cover + *

+ * 0 = No Ticks! Yes, 0 is Default, you have to override this + */ + public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 0; + } + + /** + * If this is a simple Cover, which can also be used on Bronze Machines and similar. + */ + public boolean isSimpleCover() { + return false; + } + + /** + * The MC Color of this Lens. -1 for no Color (meaning this isn't a Lens then). + */ + public byte getLensColor(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return -1; + } + + /** + * @return the ItemStack dropped by this Cover + */ + public ItemStack getDrop(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return GT_OreDictUnificator.get(true, aTileEntity.getCoverItemAtSide(aSide)); + } + + /** + * @return sets the Cover upon placement. + */ + public void placeCover(byte aSide, ItemStack aCover, ICoverable aTileEntity) { + aTileEntity.setCoverIDAtSide(aSide, GT_Utility.stackToInt(aCover)); + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/util/GT_CreativeTab.java b/src/main/java/gregtech/api/util/GT_CreativeTab.java index d789fdc8..80dac95d 100644 --- a/src/main/java/gregtech/api/util/GT_CreativeTab.java +++ b/src/main/java/gregtech/api/util/GT_CreativeTab.java @@ -7,18 +7,18 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class GT_CreativeTab extends CreativeTabs { - public GT_CreativeTab(String aName, String aLocalName) { - super("GregTech." + aName); - GT_LanguageManager.addStringLocalization("itemGroup.GregTech." + aName, aLocalName); - } - - @Override + public GT_CreativeTab(String aName, String aLocalName) { + super("GregTech." + aName); + GT_LanguageManager.addStringLocalization("itemGroup.GregTech." + aName, aLocalName); + } + + @Override public ItemStack getIconItemStack() { return ItemList.Tool_Cheat.get(1, new ItemStack(Blocks.iron_block, 1)); } - - @Override - public Item getTabIconItem() { - return ItemList.Circuit_Integrated.getItem(); - } + + @Override + public Item getTabIconItem() { + return ItemList.Circuit_Integrated.getItem(); + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/util/GT_FoodStat.java b/src/main/java/gregtech/api/util/GT_FoodStat.java index 336aeeab..d0fe9bdb 100644 --- a/src/main/java/gregtech/api/util/GT_FoodStat.java +++ b/src/main/java/gregtech/api/util/GT_FoodStat.java @@ -10,92 +10,93 @@ import net.minecraft.item.ItemStack; import net.minecraft.potion.PotionEffect; public class GT_FoodStat implements IFoodStat { - private final int mFoodLevel; - private final int[] mPotionEffects; - private final float mSaturation; - private final EnumAction mAction; - private final ItemStack mEmptyContainer; - private final boolean mAlwaysEdible, mInvisibleParticles, mIsRotten; - private boolean mExplosive = false, mMilk = false; - - /** - * @param aFoodLevel Amount of Food in Half Bacon [0 - 20] - * @param aSaturation Amount of Saturation [0.0F - 1.0F] - * @param aAction The Action to be used. If this is null, it uses the Eating Action - * @param aEmptyContainer An empty Container (Optional) - * @param aAlwaysEdible If this Item is always edible, like Golden Apples or Potions - * @param aInvisibleParticles If the Particles of the Potion Effects are invisible - * @param aPotionEffects An Array of Potion Effects with %4==0 Elements as follows - * ID of a Potion Effect. 0 for none - * Duration of the Potion in Ticks - * Level of the Effect. [0, 1, 2] are for [I, II, III] - * The likelihood that this Potion Effect takes place upon being eaten [1 - 100] - */ - public GT_FoodStat(int aFoodLevel, float aSaturation, EnumAction aAction, ItemStack aEmptyContainer, boolean aAlwaysEdible, boolean aInvisibleParticles, boolean aIsRotten, int... aPotionEffects) { - mFoodLevel = aFoodLevel; - mSaturation = aSaturation; - mAction = aAction==null?EnumAction.eat:aAction; - mPotionEffects = aPotionEffects; - mEmptyContainer = GT_Utility.copy(aEmptyContainer); - mInvisibleParticles = aInvisibleParticles; - mAlwaysEdible = aAlwaysEdible; - mIsRotten = aIsRotten; - } - - public GT_FoodStat setExplosive() { - mExplosive = true; - return this; - } - - public GT_FoodStat setMilk() { - mMilk = true; - return this; - } - - @Override - public int getFoodLevel(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer) { - return mFoodLevel; - } - - @Override - public float getSaturation(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer) { - return mSaturation; - } - - @Override - public void onEaten(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer) { + private final int mFoodLevel; + private final int[] mPotionEffects; + private final float mSaturation; + private final EnumAction mAction; + private final ItemStack mEmptyContainer; + private final boolean mAlwaysEdible, mInvisibleParticles, mIsRotten; + private boolean mExplosive = false, mMilk = false; + + /** + * @param aFoodLevel Amount of Food in Half Bacon [0 - 20] + * @param aSaturation Amount of Saturation [0.0F - 1.0F] + * @param aAction The Action to be used. If this is null, it uses the Eating Action + * @param aEmptyContainer An empty Container (Optional) + * @param aAlwaysEdible If this Item is always edible, like Golden Apples or Potions + * @param aInvisibleParticles If the Particles of the Potion Effects are invisible + * @param aPotionEffects An Array of Potion Effects with %4==0 Elements as follows + * ID of a Potion Effect. 0 for none + * Duration of the Potion in Ticks + * Level of the Effect. [0, 1, 2] are for [I, II, III] + * The likelihood that this Potion Effect takes place upon being eaten [1 - 100] + */ + public GT_FoodStat(int aFoodLevel, float aSaturation, EnumAction aAction, ItemStack aEmptyContainer, boolean aAlwaysEdible, boolean aInvisibleParticles, boolean aIsRotten, int... aPotionEffects) { + mFoodLevel = aFoodLevel; + mSaturation = aSaturation; + mAction = aAction == null ? EnumAction.eat : aAction; + mPotionEffects = aPotionEffects; + mEmptyContainer = GT_Utility.copy(aEmptyContainer); + mInvisibleParticles = aInvisibleParticles; + mAlwaysEdible = aAlwaysEdible; + mIsRotten = aIsRotten; + } + + public GT_FoodStat setExplosive() { + mExplosive = true; + return this; + } + + public GT_FoodStat setMilk() { + mMilk = true; + return this; + } + + @Override + public int getFoodLevel(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer) { + return mFoodLevel; + } + + @Override + public float getSaturation(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer) { + return mSaturation; + } + + @Override + public void onEaten(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer) { aStack.stackSize--; ItemStack tStack = GT_OreDictUnificator.get(GT_Utility.copy(mEmptyContainer)); - if (tStack != null && !aPlayer.inventory.addItemStackToInventory(tStack)) aPlayer.dropPlayerItemWithRandomChoice(tStack, true); - aPlayer.worldObj.playSoundAtEntity(aPlayer, "random.burp", 0.5F, aPlayer.worldObj.rand.nextFloat() * 0.1F + 0.9F); - if (!aPlayer.worldObj.isRemote) { - if (mMilk) { - aPlayer.curePotionEffects(new ItemStack(Items.milk_bucket, 1, 0)); - } - for (int i = 3; i < mPotionEffects.length; i+=4) { - if (aPlayer.worldObj.rand.nextInt(100) < mPotionEffects[i]) { - aPlayer.addPotionEffect(new PotionEffect(mPotionEffects[i-3], mPotionEffects[i-2], mPotionEffects[i-1], mInvisibleParticles)); - } - } - if (mExplosive) { - aPlayer.worldObj.newExplosion(aPlayer, aPlayer.posX, aPlayer.posY, aPlayer.posZ, 4, true, true); - aPlayer.attackEntityFrom(GT_DamageSources.getExplodingDamage(), Float.MAX_VALUE); - } - } - } - - @Override - public EnumAction getFoodAction(GT_MetaBase_Item aItem, ItemStack aStack) { - return mAction; - } - - @Override - public boolean alwaysEdible(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer) { - return mAlwaysEdible; - } - - @Override - public boolean isRotten(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer) { - return mIsRotten; - } + if (tStack != null && !aPlayer.inventory.addItemStackToInventory(tStack)) + aPlayer.dropPlayerItemWithRandomChoice(tStack, true); + aPlayer.worldObj.playSoundAtEntity(aPlayer, "random.burp", 0.5F, aPlayer.worldObj.rand.nextFloat() * 0.1F + 0.9F); + if (!aPlayer.worldObj.isRemote) { + if (mMilk) { + aPlayer.curePotionEffects(new ItemStack(Items.milk_bucket, 1, 0)); + } + for (int i = 3; i < mPotionEffects.length; i += 4) { + if (aPlayer.worldObj.rand.nextInt(100) < mPotionEffects[i]) { + aPlayer.addPotionEffect(new PotionEffect(mPotionEffects[i - 3], mPotionEffects[i - 2], mPotionEffects[i - 1], mInvisibleParticles)); + } + } + if (mExplosive) { + aPlayer.worldObj.newExplosion(aPlayer, aPlayer.posX, aPlayer.posY, aPlayer.posZ, 4, true, true); + aPlayer.attackEntityFrom(GT_DamageSources.getExplodingDamage(), Float.MAX_VALUE); + } + } + } + + @Override + public EnumAction getFoodAction(GT_MetaBase_Item aItem, ItemStack aStack) { + return mAction; + } + + @Override + public boolean alwaysEdible(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer) { + return mAlwaysEdible; + } + + @Override + public boolean isRotten(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer) { + return mIsRotten; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/util/GT_IBoxableWrapper.java b/src/main/java/gregtech/api/util/GT_IBoxableWrapper.java index 03ffc675..fd1d2292 100644 --- a/src/main/java/gregtech/api/util/GT_IBoxableWrapper.java +++ b/src/main/java/gregtech/api/util/GT_IBoxableWrapper.java @@ -4,8 +4,8 @@ import ic2.api.item.IBoxable; import net.minecraft.item.ItemStack; public class GT_IBoxableWrapper implements IBoxable { - @Override - public boolean canBeStoredInToolbox(ItemStack itemstack) { - return true; - } + @Override + public boolean canBeStoredInToolbox(ItemStack itemstack) { + return true; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/util/GT_ItsNotMyFaultException.java b/src/main/java/gregtech/api/util/GT_ItsNotMyFaultException.java index 0c159704..c3b7d34e 100644 --- a/src/main/java/gregtech/api/util/GT_ItsNotMyFaultException.java +++ b/src/main/java/gregtech/api/util/GT_ItsNotMyFaultException.java @@ -1,16 +1,16 @@ package gregtech.api.util; public class GT_ItsNotMyFaultException extends RuntimeException { - private static final long serialVersionUID = -8752778866486460495L; - - private String mError; - - public GT_ItsNotMyFaultException(String aError) { - mError = aError; - } - - @Override - public String toString() { - return "The GregTech-Addon has a Problem.\nIT'S NOT MY FAULT!!! Below is how to fix it.\n" + mError + "\nDO NOT COME TO ME WITH THIS CRASH. YOU CAUSED IT YOURSELF, AND I TOLD YOU HOW TO FIX IT!!!"; - } + private static final long serialVersionUID = -8752778866486460495L; + + private String mError; + + public GT_ItsNotMyFaultException(String aError) { + mError = aError; + } + + @Override + public String toString() { + return "The GregTech-Addon has a Problem.\nIT'S NOT MY FAULT!!! Below is how to fix it.\n" + mError + "\nDO NOT COME TO ME WITH THIS CRASH. YOU CAUSED IT YOURSELF, AND I TOLD YOU HOW TO FIX IT!!!"; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/util/GT_LanguageManager.java b/src/main/java/gregtech/api/util/GT_LanguageManager.java index b419b710..a60189ea 100644 --- a/src/main/java/gregtech/api/util/GT_LanguageManager.java +++ b/src/main/java/gregtech/api/util/GT_LanguageManager.java @@ -1,95 +1,95 @@ package gregtech.api.util; -import static gregtech.api.enums.GT_Values.E; +import cpw.mods.fml.common.registry.LanguageRegistry; import gregtech.api.GregTech_API; - -import java.util.HashMap; -import java.util.Map.Entry; - import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.StatCollector; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Property; -import cpw.mods.fml.common.registry.LanguageRegistry; + +import java.util.HashMap; +import java.util.Map.Entry; + +import static gregtech.api.enums.GT_Values.E; public class GT_LanguageManager { - public static Configuration sEnglishFile; - public static final HashMap TEMPMAP = new HashMap(), BUFFERMAP = new HashMap(); - - public static String addStringLocalization(String aKey, String aEnglish) { - return addStringLocalization(aKey, aEnglish, true); - } - - public static String addStringLocalization(String aKey, String aEnglish, boolean aWriteIntoLangFile) { - if (aKey == null) return E; - if (aWriteIntoLangFile) aEnglish = writeToLangFile(aKey, aEnglish); - TEMPMAP.put(aKey.trim(), aEnglish); - LanguageRegistry.instance().injectLanguage("en_US", TEMPMAP); - TEMPMAP.clear(); - return aEnglish; - } - - private static synchronized String writeToLangFile(String aKey, String aEnglish) { - if (aKey == null) return E; - if (sEnglishFile == null) { - BUFFERMAP.put(aKey.trim(), aEnglish); - } else { - if (!BUFFERMAP.isEmpty()) { - for (Entry tEntry : BUFFERMAP.entrySet()) { - Property tProperty = sEnglishFile.get("LanguageFile", tEntry.getKey(), tEntry.getValue()); - if (!tProperty.wasRead() && GregTech_API.sPostloadFinished) sEnglishFile.save(); - } - BUFFERMAP.clear(); - } - Property tProperty = sEnglishFile.get("LanguageFile", aKey.trim(), aEnglish); - if (!tProperty.wasRead() && GregTech_API.sPostloadFinished) sEnglishFile.save(); - if (sEnglishFile.get("EnableLangFile", "UseThisFileAsLanguageFile", false).getBoolean(false)) aEnglish = tProperty.getString(); - } - return aEnglish; - } - - public static String getTranslation(String aKey) { - if (aKey == null) return E; - String tTrimmedKey = aKey.trim(), rTranslation = LanguageRegistry.instance().getStringLocalization(tTrimmedKey); - if (GT_Utility.isStringInvalid(rTranslation)) { - rTranslation = StatCollector.translateToLocal(tTrimmedKey); - if (GT_Utility.isStringInvalid(rTranslation) || tTrimmedKey.equals(rTranslation)) { - if (aKey.endsWith(".name")) { - rTranslation = StatCollector.translateToLocal(tTrimmedKey.substring(0, tTrimmedKey.length() - 5)); - if (GT_Utility.isStringInvalid(rTranslation) || tTrimmedKey.substring(0, tTrimmedKey.length() - 5).equals(rTranslation)) { - return aKey; - } - } else { - rTranslation = StatCollector.translateToLocal(tTrimmedKey + ".name"); - if (GT_Utility.isStringInvalid(rTranslation) || (tTrimmedKey + ".name").equals(rTranslation)) { - return aKey; - } - } - } - } - return rTranslation; - } - - public static String getTranslation(String aKey, String aSeperator) { - if (aKey == null) return E; - String rTranslation = E; - for (String tString : aKey.split(aSeperator)) { - rTranslation += getTranslation(tString); - } - return rTranslation; - } - - public static String getTranslateableItemStackName(ItemStack aStack) { - if (GT_Utility.isStackInvalid(aStack)) return "null"; - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT != null && tNBT.hasKey("display")) { - String tName = tNBT.getCompoundTag("display").getString("Name"); - if (GT_Utility.isStringValid(tName)) { - return tName; - } - } - return aStack.getUnlocalizedName() + ".name"; - } + public static Configuration sEnglishFile; + + public static String addStringLocalization(String aKey, String aEnglish) { + return addStringLocalization(aKey, aEnglish, true); + } + + public static String addStringLocalization(String aKey, String aEnglish, boolean aWriteIntoLangFile) { + if (aKey == null) return E; + if (aWriteIntoLangFile) aEnglish = writeToLangFile(aKey, aEnglish); + TEMPMAP.put(aKey.trim(), aEnglish); + LanguageRegistry.instance().injectLanguage("en_US", TEMPMAP); + TEMPMAP.clear(); + return aEnglish; + } + + private static synchronized String writeToLangFile(String aKey, String aEnglish) { + if (aKey == null) return E; + if (sEnglishFile == null) { + BUFFERMAP.put(aKey.trim(), aEnglish); + } else { + if (!BUFFERMAP.isEmpty()) { + for (Entry tEntry : BUFFERMAP.entrySet()) { + Property tProperty = sEnglishFile.get("LanguageFile", tEntry.getKey(), tEntry.getValue()); + if (!tProperty.wasRead() && GregTech_API.sPostloadFinished) sEnglishFile.save(); + } + BUFFERMAP.clear(); + } + Property tProperty = sEnglishFile.get("LanguageFile", aKey.trim(), aEnglish); + if (!tProperty.wasRead() && GregTech_API.sPostloadFinished) sEnglishFile.save(); + if (sEnglishFile.get("EnableLangFile", "UseThisFileAsLanguageFile", false).getBoolean(false)) + aEnglish = tProperty.getString(); + } + return aEnglish; + } + + public static String getTranslation(String aKey) { + if (aKey == null) return E; + String tTrimmedKey = aKey.trim(), rTranslation = LanguageRegistry.instance().getStringLocalization(tTrimmedKey); + if (GT_Utility.isStringInvalid(rTranslation)) { + rTranslation = StatCollector.translateToLocal(tTrimmedKey); + if (GT_Utility.isStringInvalid(rTranslation) || tTrimmedKey.equals(rTranslation)) { + if (aKey.endsWith(".name")) { + rTranslation = StatCollector.translateToLocal(tTrimmedKey.substring(0, tTrimmedKey.length() - 5)); + if (GT_Utility.isStringInvalid(rTranslation) || tTrimmedKey.substring(0, tTrimmedKey.length() - 5).equals(rTranslation)) { + return aKey; + } + } else { + rTranslation = StatCollector.translateToLocal(tTrimmedKey + ".name"); + if (GT_Utility.isStringInvalid(rTranslation) || (tTrimmedKey + ".name").equals(rTranslation)) { + return aKey; + } + } + } + } + return rTranslation; + } + + public static String getTranslation(String aKey, String aSeperator) { + if (aKey == null) return E; + String rTranslation = E; + for (String tString : aKey.split(aSeperator)) { + rTranslation += getTranslation(tString); + } + return rTranslation; + } + + public static String getTranslateableItemStackName(ItemStack aStack) { + if (GT_Utility.isStackInvalid(aStack)) return "null"; + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT != null && tNBT.hasKey("display")) { + String tName = tNBT.getCompoundTag("display").getString("Name"); + if (GT_Utility.isStringValid(tName)) { + return tName; + } + } + return aStack.getUnlocalizedName() + ".name"; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/util/GT_Log.java b/src/main/java/gregtech/api/util/GT_Log.java index 06a00917..2b840c1b 100644 --- a/src/main/java/gregtech/api/util/GT_Log.java +++ b/src/main/java/gregtech/api/util/GT_Log.java @@ -8,28 +8,31 @@ import java.util.List; /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* Just a simple Logging Function. If on Server, then this will point to System.out and System.err */ public class GT_Log { - public static PrintStream out = System.out; - public static PrintStream err = System.err; - public static PrintStream ore = new LogBuffer(); - public static PrintStream pal = null; + public static PrintStream out = System.out; + public static PrintStream err = System.err; + public static PrintStream ore = new LogBuffer(); + public static PrintStream pal = null; public static File mLogFile; public static File mOreDictLogFile; public static File mPlayerActivityLogFile; - + public static class LogBuffer extends PrintStream { public final List mBufferedOreDictLog = new ArrayList(); - - public LogBuffer() { - super(new OutputStream() {@Override public void write(int arg0) {/*Do nothing*/}}); - } - - @Override - public void println(String aString) { - mBufferedOreDictLog.add(aString); - } + + public LogBuffer() { + super(new OutputStream() { + @Override + public void write(int arg0) {/*Do nothing*/} + }); + } + + @Override + public void println(String aString) { + mBufferedOreDictLog.add(aString); + } } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/util/GT_ModHandler.java b/src/main/java/gregtech/api/util/GT_ModHandler.java index e7c95e59..809a5219 100644 --- a/src/main/java/gregtech/api/util/GT_ModHandler.java +++ b/src/main/java/gregtech/api/util/GT_ModHandler.java @@ -1,6 +1,7 @@ package gregtech.api.util; -import static gregtech.api.enums.GT_Values.*; +import cpw.mods.fml.common.event.FMLInterModComms; +import cpw.mods.fml.common.registry.GameRegistry; import gregtech.api.GregTech_API; import gregtech.api.enums.*; import gregtech.api.interfaces.IDamagableItem; @@ -16,10 +17,6 @@ import ic2.api.reactor.IReactorComponent; import ic2.api.recipe.IRecipeInput; import ic2.api.recipe.RecipeInputItemStack; import ic2.api.recipe.RecipeOutput; - -import java.util.*; -import java.util.Map.Entry; - import net.minecraft.block.Block; import net.minecraft.enchantment.Enchantment; import net.minecraft.entity.EntityLivingBase; @@ -39,1089 +36,1151 @@ import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.ShapedOreRecipe; import net.minecraftforge.oredict.ShapelessOreRecipe; -import cpw.mods.fml.common.event.FMLInterModComms; -import cpw.mods.fml.common.registry.GameRegistry; + +import java.util.*; +import java.util.Map.Entry; + +import static gregtech.api.enums.GT_Values.*; /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* This is the Interface I use for interacting with other Mods. - * + *

* Due to the many imports, this File can cause compile Problems if not all the APIs are installed */ public class GT_ModHandler { - public static volatile int VERSION = 508; - - /** - * Returns if that Liquid is Water or Distilled Water - */ - public static boolean isWater(FluidStack aFluid) { - if (aFluid == null) return false; - return aFluid.isFluidEqual(getWater(1)) || aFluid.isFluidEqual(getDistilledWater(1)); - } - - /** - * Returns a Liquid Stack with given amount of Water. - */ - public static FluidStack getWater(long aAmount) { - return FluidRegistry.getFluidStack("water", (int)aAmount); - } - - /** - * Returns a Liquid Stack with given amount of distilled Water. - */ - public static FluidStack getDistilledWater(long aAmount) { - return FluidRegistry.getFluidStack("ic2distilledwater", (int)aAmount); - } - - /** - * Returns if that Liquid is Lava - */ - public static boolean isLava(FluidStack aFluid) { - if (aFluid == null) return false; - return aFluid.isFluidEqual(getLava(1)); - } - - /** - * Returns a Liquid Stack with given amount of Lava. - */ - public static FluidStack getLava(long aAmount) { - return FluidRegistry.getFluidStack("lava", (int)aAmount); - } - - /** - * Returns if that Liquid is Steam - */ - public static boolean isSteam(FluidStack aFluid) { - if (aFluid == null) return false; - return aFluid.isFluidEqual(getSteam(1)); - } - - /** - * Returns a Liquid Stack with given amount of Steam. - */ - public static FluidStack getSteam(long aAmount) { - return FluidRegistry.getFluidStack("steam", (int)aAmount); - } - - /** - * Returns if that Liquid is Milk - */ - public static boolean isMilk(FluidStack aFluid) { - if (aFluid == null) return false; - return aFluid.isFluidEqual(getMilk(1)); - } - - /** - * Returns a Liquid Stack with given amount of Milk. - */ - public static FluidStack getMilk(long aAmount) { - return FluidRegistry.getFluidStack("milk", (int)aAmount); - } - - public static ItemStack getEmptyFuelCan(long aAmount) { - return ItemList.IC2_Fuel_Can_Empty.get(aAmount); - } - - public static ItemStack getEmptyCell(long aAmount) { - return ItemList.Cell_Empty.get(aAmount); - } - - public static ItemStack getAirCell(long aAmount) { - return ItemList.Cell_Air.get(aAmount); - } - - public static ItemStack getWaterCell(long aAmount) { - return ItemList.Cell_Water.get(aAmount); - } - - public static ItemStack getLavaCell(long aAmount) { - return ItemList.Cell_Lava.get(aAmount); - } - - /** - * @param aValue the Value of this Stack, when burning inside a Furnace (200 = 1 Burn Process = 500 EU, max = 32767 (that is 81917.5 EU)), limited to Short because the vanilla Furnace otherwise can't handle it properly, stupid Mojang... - */ - public static ItemStack setFuelValue(ItemStack aStack, short aValue) { + public static final List sSingleNonBlockDamagableRecipeList = new ArrayList(1000); + private static final Map sIC2ItemMap = new HashMap(); + private static final List sAllRecipeList = Collections.synchronizedList(new ArrayList(5000)), sBufferRecipeList = new ArrayList(1000); + public static volatile int VERSION = 508; + public static Collection sNativeRecipeClasses = new HashSet(), sSpecialRecipeClasses = new HashSet(); + public static GT_HashSet sNonReplaceableItems = new GT_HashSet(); + public static Object sBoxableWrapper = GT_Utility.callConstructor("gregtechmod.api.util.GT_IBoxableWrapper", 0, null, false); + private static Map sExtractorRecipes = new HashMap(); + private static Map sMaceratorRecipes = new HashMap(); + private static Map sCompressorRecipes = new HashMap(); + private static Map sOreWashingRecipes = new HashMap(); + private static Map sThermalCentrifugeRecipes = new HashMap(); + private static Map sMassfabRecipes = new HashMap(); + private static boolean sBufferCraftingRecipes = true; + + static { + sNativeRecipeClasses.add(ShapedRecipes.class.getName()); + sNativeRecipeClasses.add(ShapedOreRecipe.class.getName()); + sNativeRecipeClasses.add(GT_Shaped_Recipe.class.getName()); + sNativeRecipeClasses.add(ShapelessRecipes.class.getName()); + sNativeRecipeClasses.add(ShapelessOreRecipe.class.getName()); + sNativeRecipeClasses.add(GT_Shapeless_Recipe.class.getName()); + sNativeRecipeClasses.add(ic2.core.AdvRecipe.class.getName()); + sNativeRecipeClasses.add(ic2.core.AdvShapelessRecipe.class.getName()); + sNativeRecipeClasses.add("appeng.recipes.game.ShapedRecipe"); + sNativeRecipeClasses.add("appeng.recipes.game.ShapelessRecipe"); + sNativeRecipeClasses.add("forestry.core.utils.ShapedRecipeCustom"); + + // Recipe Classes, which should never be removed. + sSpecialRecipeClasses.add(net.minecraft.item.crafting.RecipeFireworks.class.getName()); + sSpecialRecipeClasses.add(net.minecraft.item.crafting.RecipesArmorDyes.class.getName()); + sSpecialRecipeClasses.add(net.minecraft.item.crafting.RecipeBookCloning.class.getName()); + sSpecialRecipeClasses.add(net.minecraft.item.crafting.RecipesMapCloning.class.getName()); + sSpecialRecipeClasses.add(net.minecraft.item.crafting.RecipesMapExtending.class.getName()); + sSpecialRecipeClasses.add("jds.bibliocraft.BiblioSpecialRecipes"); + sSpecialRecipeClasses.add("dan200.qcraft.shared.EntangledQBlockRecipe"); + sSpecialRecipeClasses.add("dan200.qcraft.shared.EntangledQuantumComputerRecipe"); + sSpecialRecipeClasses.add("dan200.qcraft.shared.QBlockRecipe"); + sSpecialRecipeClasses.add("appeng.recipes.game.FacadeRecipe"); + sSpecialRecipeClasses.add("appeng.recipes.game.DisassembleRecipe"); + sSpecialRecipeClasses.add("mods.railcraft.common.carts.LocomotivePaintingRecipe"); + sSpecialRecipeClasses.add("mods.railcraft.common.util.crafting.RotorRepairRecipe"); + sSpecialRecipeClasses.add("mods.railcraft.common.util.crafting.RoutingTableCopyRecipe"); + sSpecialRecipeClasses.add("mods.railcraft.common.util.crafting.RoutingTicketCopyRecipe"); + sSpecialRecipeClasses.add("mods.railcraft.common.util.crafting.TankCartFilterRecipe"); + sSpecialRecipeClasses.add("mods.railcraft.common.emblems.LocomotiveEmblemRecipe"); + sSpecialRecipeClasses.add("mods.railcraft.common.emblems.EmblemPostColorRecipe"); + sSpecialRecipeClasses.add("mods.railcraft.common.emblems.EmblemPostEmblemRecipe"); + sSpecialRecipeClasses.add("mods.immibis.redlogic.interaction.RecipeDyeLumarButton"); + sSpecialRecipeClasses.add("thaumcraft.common.items.armor.RecipesRobeArmorDyes"); + sSpecialRecipeClasses.add("thaumcraft.common.items.armor.RecipesVoidRobeArmorDyes"); + sSpecialRecipeClasses.add("thaumcraft.common.lib.crafting.ShapelessNBTOreRecipe"); + sSpecialRecipeClasses.add("twilightforest.item.TFMapCloningRecipe"); + sSpecialRecipeClasses.add("forestry.lepidopterology.MatingRecipe"); + sSpecialRecipeClasses.add("micdoodle8.mods.galacticraft.planets.asteroids.recipe.CanisterRecipes"); + sSpecialRecipeClasses.add("shedar.mods.ic2.nuclearcontrol.StorageArrayRecipe"); + } + + /** + * Returns if that Liquid is Water or Distilled Water + */ + public static boolean isWater(FluidStack aFluid) { + if (aFluid == null) return false; + return aFluid.isFluidEqual(getWater(1)) || aFluid.isFluidEqual(getDistilledWater(1)); + } + + /** + * Returns a Liquid Stack with given amount of Water. + */ + public static FluidStack getWater(long aAmount) { + return FluidRegistry.getFluidStack("water", (int) aAmount); + } + + /** + * Returns a Liquid Stack with given amount of distilled Water. + */ + public static FluidStack getDistilledWater(long aAmount) { + return FluidRegistry.getFluidStack("ic2distilledwater", (int) aAmount); + } + + /** + * Returns if that Liquid is Lava + */ + public static boolean isLava(FluidStack aFluid) { + if (aFluid == null) return false; + return aFluid.isFluidEqual(getLava(1)); + } + + /** + * Returns a Liquid Stack with given amount of Lava. + */ + public static FluidStack getLava(long aAmount) { + return FluidRegistry.getFluidStack("lava", (int) aAmount); + } + + /** + * Returns if that Liquid is Steam + */ + public static boolean isSteam(FluidStack aFluid) { + if (aFluid == null) return false; + return aFluid.isFluidEqual(getSteam(1)); + } + + /** + * Returns a Liquid Stack with given amount of Steam. + */ + public static FluidStack getSteam(long aAmount) { + return FluidRegistry.getFluidStack("steam", (int) aAmount); + } + + /** + * Returns if that Liquid is Milk + */ + public static boolean isMilk(FluidStack aFluid) { + if (aFluid == null) return false; + return aFluid.isFluidEqual(getMilk(1)); + } + + /** + * Returns a Liquid Stack with given amount of Milk. + */ + public static FluidStack getMilk(long aAmount) { + return FluidRegistry.getFluidStack("milk", (int) aAmount); + } + + public static ItemStack getEmptyFuelCan(long aAmount) { + return ItemList.IC2_Fuel_Can_Empty.get(aAmount); + } + + public static ItemStack getEmptyCell(long aAmount) { + return ItemList.Cell_Empty.get(aAmount); + } + + public static ItemStack getAirCell(long aAmount) { + return ItemList.Cell_Air.get(aAmount); + } + + public static ItemStack getWaterCell(long aAmount) { + return ItemList.Cell_Water.get(aAmount); + } + + public static ItemStack getLavaCell(long aAmount) { + return ItemList.Cell_Lava.get(aAmount); + } + + /** + * @param aValue the Value of this Stack, when burning inside a Furnace (200 = 1 Burn Process = 500 EU, max = 32767 (that is 81917.5 EU)), limited to Short because the vanilla Furnace otherwise can't handle it properly, stupid Mojang... + */ + public static ItemStack setFuelValue(ItemStack aStack, short aValue) { aStack.setTagCompound(GT_Utility.getNBTContainingShort(aStack.getTagCompound(), "GT.ItemFuelValue", aValue)); return aStack; - } - - /** - * @return the Value of this Stack, when burning inside a Furnace (200 = 1 Burn Process = 500 EU, max = 32767 (that is 81917.5 EU)), limited to Short because the vanilla Furnace otherwise can't handle it properly, stupid Mojang... - */ - public static short getFuelValue(ItemStack aStack) { - return (short)TileEntityFurnace.getItemBurnTime(aStack); - } - - /** - * @param aValue Fuel value in EU - */ - public static ItemStack getFuelCan(int aValue) { - if (aValue < 5) return ItemList.IC2_Fuel_Can_Empty.get(1); - ItemStack rFuelCanStack = ItemList.IC2_Fuel_Can_Filled.get(1); - if (rFuelCanStack == null) return null; - NBTTagCompound tNBT = new NBTTagCompound(); - tNBT.setInteger("value", aValue/5); + } + + /** + * @return the Value of this Stack, when burning inside a Furnace (200 = 1 Burn Process = 500 EU, max = 32767 (that is 81917.5 EU)), limited to Short because the vanilla Furnace otherwise can't handle it properly, stupid Mojang... + */ + public static short getFuelValue(ItemStack aStack) { + return (short) TileEntityFurnace.getItemBurnTime(aStack); + } + + /** + * @param aValue Fuel value in EU + */ + public static ItemStack getFuelCan(int aValue) { + if (aValue < 5) return ItemList.IC2_Fuel_Can_Empty.get(1); + ItemStack rFuelCanStack = ItemList.IC2_Fuel_Can_Filled.get(1); + if (rFuelCanStack == null) return null; + NBTTagCompound tNBT = new NBTTagCompound(); + tNBT.setInteger("value", aValue / 5); rFuelCanStack.setTagCompound(tNBT); return rFuelCanStack; - } - - /** - * @param aFuelCan the Item you want to check - * @return the exact Value in EU the Fuel Can is worth if its even a Fuel Can. - */ - public static int getFuelCanValue(ItemStack aFuelCan) { - if (GT_Utility.isStackInvalid(aFuelCan) || !ItemList.IC2_Fuel_Can_Filled.isStackEqual(aFuelCan, false, true)) return 0; - NBTTagCompound tNBT = aFuelCan.getTagCompound(); - return tNBT==null?0:tNBT.getInteger("value")*5; - } - - private static final Map sIC2ItemMap = new HashMap(); - - /** - * Gets an Item from IndustrialCraft, and returns a Replacement Item if not possible - */ - public static ItemStack getIC2Item(String aItem, long aAmount, ItemStack aReplacement) { - if (GT_Utility.isStringInvalid(aItem) || !GregTech_API.sPreloadStarted) return null; - //if (D1) GT_Log.out.println("Requested the Item '" + aItem + "' from the IC2-API"); - if (!sIC2ItemMap.containsKey(aItem)) try {ItemStack tStack = IC2Items.getItem(aItem); sIC2ItemMap.put(aItem, tStack); if (tStack == null && D1) GT_Log.err.println(aItem + " is not found in the IC2 Items!");} catch (Throwable e) {/*Do nothing*/} - return GT_Utility.copyAmount(aAmount, sIC2ItemMap.get(aItem), aReplacement); - } - - /** - * Gets an Item from IndustrialCraft, but the Damage Value can be specified, and returns a Replacement Item with the same Damage if not possible - */ - public static ItemStack getIC2Item(String aItem, long aAmount, int aMeta, ItemStack aReplacement) { - ItemStack rStack = getIC2Item(aItem, aAmount, aReplacement); - if (rStack == null) return null; - Items.feather.setDamage(rStack, aMeta); - return rStack; - } - - /** - * Gets an Item from IndustrialCraft, but the Damage Value can be specified - */ - public static ItemStack getIC2Item(String aItem, long aAmount, int aMeta) { - return getIC2Item(aItem, aAmount, aMeta, null); - } - - /** - * Gets an Item from IndustrialCraft - */ - public static ItemStack getIC2Item(String aItem, long aAmount) { - return getIC2Item(aItem, aAmount, null); - } - - /** - * Gets an Item from RailCraft - */ - public static ItemStack getModItem(String aModID, String aItem, long aAmount) { - return getModItem(aModID, aItem, aAmount, null); - } - - /** - * Gets an Item from RailCraft, and returns a Replacement Item if not possible - */ - public static ItemStack getModItem(String aModID, String aItem, long aAmount, ItemStack aReplacement) { - if (GT_Utility.isStringInvalid(aItem) || !GregTech_API.sPreloadStarted) return null; - return GT_Utility.copyAmount(aAmount, GameRegistry.findItemStack(aModID, aItem, (int)aAmount), aReplacement); - } - - /** - * Gets an Item from RailCraft, but the Damage Value can be specified - */ - public static ItemStack getModItem(String aModID, String aItem, long aAmount, int aMeta) { - ItemStack rStack = getModItem(aModID, aItem, aAmount); - if (rStack == null) return null; - Items.feather.setDamage(rStack, aMeta); - return rStack; - } - - /** - * Gets an Item from RailCraft, but the Damage Value can be specified, and returns a Replacement Item with the same Damage if not possible - */ - public static ItemStack getModItem(String aModID, String aItem, long aAmount, int aMeta, ItemStack aReplacement) { - ItemStack rStack = getModItem(aModID, aItem, aAmount, aReplacement); - if (rStack == null) return null; - Items.feather.setDamage(rStack, aMeta); - return rStack; - } - - /** - * OUT OF ORDER - */ - public static boolean getModeKeyDown(EntityPlayer aPlayer) { - return false; - } - - /** - * OUT OF ORDER - */ - public static boolean getBoostKeyDown(EntityPlayer aPlayer) { - return false; - } - - /** - * OUT OF ORDER - */ - public static boolean getJumpKeyDown(EntityPlayer aPlayer) { - return false; - } - - /** - * Adds a Valuable Ore to the Miner - */ - public static boolean addValuableOre(Block aBlock, int aMeta, int aValue) { - if (aValue <= 0) return false; - try { - Class.forName("ic2.core.IC2").getMethod("addValuableOre", IRecipeInput.class, int.class).invoke(null, new RecipeInputItemStack(new ItemStack(aBlock, 1, aMeta)), aValue); - } catch (Throwable e) {/*Do nothing*/} - return true; - } - - /** - * Adds a Scrapbox Drop. Fails at April first for the "suddenly Hoes"-Feature of IC2 - */ - public static boolean addScrapboxDrop(float aChance, ItemStack aOutput) { - aOutput = GT_OreDictUnificator.get(true, aOutput); - if (aOutput == null || aChance <= 0) return false; - aOutput.stackSize = 1; - if (GT_Config.troll && !GT_Utility.areStacksEqual(aOutput, new ItemStack(Items.wooden_hoe, 1, 0))) return false; - aChance = (float)GregTech_API.sRecipeFile.get(ConfigCategories.Machines.scrapboxdrops, aOutput, aChance); - if (aChance <= 0) return false; - try { - GT_Utility.callMethod(GT_Utility.getFieldContent("ic2.api.recipe.Recipes", "scrapboxDrops", true , true), "addDrop", true , false, true , GT_Utility.copy(aOutput), aChance); - GT_Utility.callMethod(GT_Utility.getFieldContent("ic2.api.recipe.Recipes", "scrapboxDrops", true , true), "addRecipe", true , true , false, GT_Utility.copy(aOutput), aChance); - } catch (Throwable e) {/*Do nothing*/} - return true; - } - - /** - * Adds an Item to the Recycler Blacklist - */ - public static boolean addToRecyclerBlackList(ItemStack aRecycledStack) { - if (aRecycledStack == null) return false; - try { - ic2.api.recipe.Recipes.recyclerBlacklist.add(new RecipeInputItemStack(aRecycledStack)); - } catch (Throwable e) {/*Do nothing*/} - return true; - } - - /** - * Just simple Furnace smelting. Unbelievable how Minecraft fails at making a simple ItemStack->ItemStack mapping... - */ - public static boolean addSmeltingRecipe(ItemStack aInput, ItemStack aOutput) { - aOutput = GT_OreDictUnificator.get(true, aOutput); - if (aInput == null || aOutput == null || GT_Utility.getContainerItem(aInput, false) != null) return false; - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.smelting, aInput, true)) return false; - FurnaceRecipes.smelting().func_151394_a(aInput, GT_Utility.copy(aOutput), 0.0F); - return true; - } - - /** - * Adds to Furnace AND Alloysmelter AND Induction Smelter - */ - public static boolean addSmeltingAndAlloySmeltingRecipe(ItemStack aInput, ItemStack aOutput) { - if (aInput == null || aOutput == null) return false; - boolean temp = false; - if (aInput.stackSize == 1 && addSmeltingRecipe(aInput, aOutput)) temp = true; - if (RA.addAlloySmelterRecipe(aInput, OrePrefixes.ingot.contains(aOutput)?ItemList.Shape_Mold_Ingot.get(0):OrePrefixes.block.contains(aOutput)?ItemList.Shape_Mold_Block.get(0):OrePrefixes.nugget.contains(aOutput)?ItemList.Shape_Mold_Nugget.get(0):null, aOutput, 130, 3)) temp = true; - if (addInductionSmelterRecipe(aInput, null, aOutput, null, aOutput.stackSize*1600, 0)) temp = true; - return temp; - } - - /** - * LiquidTransposer Recipe for both directions - */ - public static boolean addLiquidTransposerRecipe(ItemStack aEmptyContainer, FluidStack aLiquid, ItemStack aFullContainer, int aMJ) { - aFullContainer = GT_OreDictUnificator.get(true, aFullContainer); - if (aEmptyContainer == null || aFullContainer == null || aLiquid == null) return false; - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.liquidtransposer, aFullContainer, true)) return false; - try { - ThermalExpansion.addTransposerFill(aMJ*10, aEmptyContainer, aFullContainer, aLiquid, true); - } catch(Throwable e) {/*Do nothing*/} - return true; - } - - /** - * LiquidTransposer Recipe for filling Containers - */ - public static boolean addLiquidTransposerFillRecipe(ItemStack aEmptyContainer, FluidStack aLiquid, ItemStack aFullContainer, int aMJ) { - aFullContainer = GT_OreDictUnificator.get(true, aFullContainer); - if (aEmptyContainer == null || aFullContainer == null || aLiquid == null) return false; - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.liquidtransposerfilling, aFullContainer, true)) return false; - try { - ThermalExpansion.addTransposerFill(aMJ*10, aEmptyContainer, aFullContainer, aLiquid, false); - } catch(Throwable e) {/*Do nothing*/} - return true; - } - - /** - * LiquidTransposer Recipe for emptying Containers - */ - public static boolean addLiquidTransposerEmptyRecipe(ItemStack aFullContainer, FluidStack aLiquid, ItemStack aEmptyContainer, int aMJ) { - aEmptyContainer = GT_OreDictUnificator.get(true, aEmptyContainer); - if (aFullContainer == null || aEmptyContainer == null || aLiquid == null) return false; - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.liquidtransposeremptying, aFullContainer, true)) return false; - try { - ThermalExpansion.addTransposerExtract(aMJ*10, aFullContainer, aEmptyContainer, aLiquid, 100, false); - } catch(Throwable e) {/*Do nothing*/} - return true; - } - - /** - * IC2-Extractor Recipe. Overloads old Recipes automatically - */ - public static boolean addExtractionRecipe(ItemStack aInput, ItemStack aOutput) { - aOutput = GT_OreDictUnificator.get(true, aOutput); - if (aInput == null || aOutput == null) return false; - GT_Utility.removeSimpleIC2MachineRecipe(aInput, getExtractorRecipeList(), null); - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.extractor, aInput, true)) return false; - GT_Utility.addSimpleIC2MachineRecipe(aInput, getExtractorRecipeList(), null, aOutput); - return true; - } - - /** - * RC-BlastFurnace Recipes - */ - public static boolean addRCBlastFurnaceRecipe(ItemStack aInput, ItemStack aOutput, int aTime) { - aOutput = GT_OreDictUnificator.get(true, aOutput); - if (aInput == null || aOutput == null || aTime <= 0) return false; - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.rcblastfurnace, aInput, true)) return false; - aInput = GT_Utility.copy(aInput); - aOutput = GT_Utility.copy(aOutput); - try { - mods.railcraft.api.crafting.RailcraftCraftingManager.blastFurnace.addRecipe(aInput, true , false, aTime, aOutput); - } catch (Throwable e) { - return false; - } - return true; - } - - public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1) { - return addPulverisationRecipe(aInput, aOutput1, null, 0, false); - } - - public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2) { - return addPulverisationRecipe(aInput, aOutput1, aOutput2, 100, false); - } - - public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aChance) { - return addPulverisationRecipe(aInput, aOutput1, aOutput2, aChance, false); - } - - public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, boolean aOverwrite) { - return addPulverisationRecipe(aInput, aOutput1, null, 0, aOverwrite); - } + } - public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, boolean aOverwrite) { - return addPulverisationRecipe(aInput, aOutput1, aOutput2, 100, aOverwrite); - } - - public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aChance, boolean aOverwrite) { - return addPulverisationRecipe(aInput, aOutput1, aOutput2, aChance, null, 0, aOverwrite); - } - - /** - * Adds Several Pulverizer-Type Recipes. - */ - public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aChance2, ItemStack aOutput3, int aChance3, boolean aOverwrite) { - aOutput1 = GT_OreDictUnificator.get(true, aOutput1); - aOutput2 = GT_OreDictUnificator.get(true, aOutput2); - if (GT_Utility.isStackInvalid(aInput) || GT_Utility.isStackInvalid(aOutput1)) return false; - GT_Utility.removeSimpleIC2MachineRecipe(aInput, getMaceratorRecipeList(), null); - - if (GT_Utility.getContainerItem(aInput, false) == null) { - if (GregTech_API.sRecipeFile.get(ConfigCategories.Machines.maceration, aInput, true)) { - GT_Utility.addSimpleIC2MachineRecipe(aInput, getMaceratorRecipeList(), null, aOutput1); - } - - RA.addPulveriserRecipe(aInput, new ItemStack[] {aOutput1, aOutput2, aOutput3}, new int[] {10000, aChance2<=0?1000:100*aChance2, aChance3<=0?1000:100*aChance3}, 400, 2); - - if (!OrePrefixes.log.contains(aInput)) { - if (Materials.Wood.contains(aOutput1)) { - if (GregTech_API.sRecipeFile.get(ConfigCategories.Machines.pulverization, aInput, true)) { - if (aOutput2 == null) - ThermalExpansion.addSawmillRecipe(32000, GT_Utility.copy(aInput), GT_Utility.copy(aOutput1)); - else - ThermalExpansion.addSawmillRecipe(32000, GT_Utility.copy(aInput), GT_Utility.copy(aOutput1), GT_Utility.copy(aOutput2), aChance2<=0?10:aChance2); - } - } else { - if (GregTech_API.sRecipeFile.get(ConfigCategories.Machines.rockcrushing, aInput, true)) { - try { - if (GT_Utility.getBlockFromStack(aInput) != Blocks.obsidian && GT_Utility.getBlockFromStack(aInput) != Blocks.gravel) { - mods.railcraft.api.crafting.IRockCrusherRecipe tRecipe = mods.railcraft.api.crafting.RailcraftCraftingManager.rockCrusher.createNewRecipe(GT_Utility.copyAmount(1, aInput), aInput.getItemDamage() != W, false); - tRecipe.addOutput(GT_Utility.copy(aOutput1), 1.0F/aInput.stackSize); - if (aOutput2 != null) tRecipe.addOutput(GT_Utility.copy(aOutput2), (0.01F*(aChance2<=0?10:aChance2))/aInput.stackSize); - if (aOutput3 != null) tRecipe.addOutput(GT_Utility.copy(aOutput3), (0.01F*(aChance3<=0?10:aChance3))/aInput.stackSize); - } - } catch(Throwable e) {/*Do nothing*/} - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Machines.pulverization, aInput, true)) { - if (aOutput2 == null) - ThermalExpansion.addPulverizerRecipe(32000, GT_Utility.copy(aInput), GT_Utility.copy(aOutput1)); - else - ThermalExpansion.addPulverizerRecipe(32000, GT_Utility.copy(aInput), GT_Utility.copy(aOutput1), GT_Utility.copy(aOutput2), aChance2<=0?10:aChance2); - } - } - } - } - return true; - } - - /** - * Adds a Recipe to the Sawmills of GregTech and ThermalCraft - */ - public static boolean addSawmillRecipe(ItemStack aInput1, ItemStack aOutput1, ItemStack aOutput2) { - aOutput1 = GT_OreDictUnificator.get(true, aOutput1); - aOutput2 = GT_OreDictUnificator.get(true, aOutput2); - if (aInput1 == null || aOutput1 == null) return false; - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.sawmill, aInput1, true)) return false; - try { - ThermalExpansion.addSawmillRecipe(1600, aInput1, aOutput1, aOutput2, 100); - } catch(Throwable e) {/*Do nothing*/} - return true; - } - - /** - * Induction Smelter Recipes and Alloy Smelter Recipes - */ - public static boolean addAlloySmelterRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt, boolean aAllowSecondaryInputEmpty) { - if (aInput1 == null || (aInput2 == null && !aAllowSecondaryInputEmpty) || aOutput1 == null) return false; - aOutput1 = GT_OreDictUnificator.get(true, aOutput1); - boolean temp = false; - if (RA.addAlloySmelterRecipe(aInput1, aInput2, aOutput1, aDuration, aEUt)) temp = true; - if (addInductionSmelterRecipe(aInput1, aInput2, aOutput1, null, aDuration * aEUt * 2, 0)) temp = true; - return temp; - } - - /** - * Induction Smelter Recipes for TE - */ - public static boolean addInductionSmelterRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, ItemStack aOutput2, int aEnergy, int aChance) { - aOutput1 = GT_OreDictUnificator.get(true, aOutput1); - aOutput2 = GT_OreDictUnificator.get(true, aOutput2); - if (aInput1 == null || aOutput1 == null || GT_Utility.getContainerItem(aInput1, false) != null) return false; - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.inductionsmelter, aInput2==null?aInput1:aOutput1, true)) return false; - try { - ThermalExpansion.addSmelterRecipe(aEnergy*10, GT_Utility.copy(aInput1), aInput2==null?new ItemStack(Blocks.sand, 1, 0):aInput2, aOutput1, aOutput2, aChance); - } catch(Throwable e) {/*Do nothing*/} - return true; - } - - /** - * Smelts Ores to Ingots - */ - public static boolean addOreToIngotSmeltingRecipe(ItemStack aInput, ItemStack aOutput) { - aOutput = GT_OreDictUnificator.get(true, aOutput); - if (aInput == null || aOutput == null) return false; - FurnaceRecipes.smelting().func_151394_a(aInput, GT_Utility.copy(aOutput), 0.0F); - return true; - } - - private static Map sExtractorRecipes = new HashMap(); - private static Map sMaceratorRecipes = new HashMap(); - private static Map sCompressorRecipes = new HashMap(); - private static Map sOreWashingRecipes = new HashMap(); - private static Map sThermalCentrifugeRecipes = new HashMap(); - private static Map sMassfabRecipes = new HashMap(); - - public static Map getExtractorRecipeList() { - try { - return ic2.api.recipe.Recipes.extractor.getRecipes(); - } catch(Throwable e) {/*Do nothing*/} - return sExtractorRecipes; - } - - public static Map getCompressorRecipeList() { - try { - return ic2.api.recipe.Recipes.compressor.getRecipes(); - } catch(Throwable e) {/*Do nothing*/} - return sCompressorRecipes; - } - - public static Map getMaceratorRecipeList() { - try { - return ic2.api.recipe.Recipes.macerator.getRecipes(); - } catch(Throwable e) {/*Do nothing*/} - return sMaceratorRecipes; - } + /** + * @param aFuelCan the Item you want to check + * @return the exact Value in EU the Fuel Can is worth if its even a Fuel Can. + */ + public static int getFuelCanValue(ItemStack aFuelCan) { + if (GT_Utility.isStackInvalid(aFuelCan) || !ItemList.IC2_Fuel_Can_Filled.isStackEqual(aFuelCan, false, true)) + return 0; + NBTTagCompound tNBT = aFuelCan.getTagCompound(); + return tNBT == null ? 0 : tNBT.getInteger("value") * 5; + } - public static Map getThermalCentrifugeRecipeList() { - try { - return ic2.api.recipe.Recipes.centrifuge.getRecipes(); - } catch(Throwable e) {/*Do nothing*/} - return sThermalCentrifugeRecipes; - } - - public static Map getOreWashingRecipeList() { - try { - return ic2.api.recipe.Recipes.oreWashing.getRecipes(); - } catch(Throwable e) {/*Do nothing*/} - return sOreWashingRecipes; - } - - public static Map getMassFabricatorList() { - try { - return ic2.api.recipe.Recipes.matterAmplifier.getRecipes(); - } catch(Throwable e) {/*Do nothing*/} - return sMassfabRecipes; - } - - /** - * IC2-ThermalCentrifuge Recipe. Overloads old Recipes automatically - */ - public static boolean addThermalCentrifugeRecipe(ItemStack aInput, int aHeat, Object... aOutput) { - if (aInput == null || aOutput == null || aOutput.length <= 0 || aOutput[0] == null) return false; - GT_Utility.removeSimpleIC2MachineRecipe(aInput, getThermalCentrifugeRecipeList(), null); - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.thermalcentrifuge, aInput, true)) return false; - NBTTagCompound tNBT = new NBTTagCompound(); - tNBT.setInteger("minHeat", aHeat); - GT_Utility.addSimpleIC2MachineRecipe(aInput, getThermalCentrifugeRecipeList(), tNBT, aOutput); - return true; - } - - /** - * IC2-OreWasher Recipe. Overloads old Recipes automatically - */ - public static boolean addOreWasherRecipe(ItemStack aInput, int aWaterAmount, Object... aOutput) { - if (aInput == null || aOutput == null || aOutput.length <= 0 || aOutput[0] == null) return false; - GT_Utility.removeSimpleIC2MachineRecipe(aInput, getOreWashingRecipeList(), null); - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.orewashing, aInput, true)) return false; - NBTTagCompound tNBT = new NBTTagCompound(); - tNBT.setInteger("amount", aWaterAmount); - GT_Utility.addSimpleIC2MachineRecipe(aInput, getOreWashingRecipeList(), tNBT, aOutput); - return true; - } - - /** - * IC2-Compressor Recipe. Overloads old Recipes automatically - */ - public static boolean addCompressionRecipe(ItemStack aInput, ItemStack aOutput) { - aOutput = GT_OreDictUnificator.get(true, aOutput); - if (aInput == null || aOutput == null) return false; - GT_Utility.removeSimpleIC2MachineRecipe(aInput, getCompressorRecipeList(), null); - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.compression, aInput, true)) return false; - GT_Utility.addSimpleIC2MachineRecipe(aInput, getCompressorRecipeList(), null, aOutput); - return true; - } - - /** - * @param aValue Scrap = 5000, Scrapbox = 45000, Diamond Dust 125000 - */ - public static boolean addIC2MatterAmplifier(ItemStack aAmplifier, int aValue) { - if (aAmplifier == null || aValue <= 0) return false; - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.massfabamplifier, aAmplifier, true)) return false; - try { - NBTTagCompound tNBT = new NBTTagCompound(); - tNBT.setInteger("amplification", aValue); - GT_Utility.callMethod(ic2.api.recipe.Recipes.matterAmplifier, "addRecipe", false, false, false, aAmplifier, tNBT); - } catch(Throwable e) {/*Do nothing*/} - return true; - } - - /** - * Rolling Machine Crafting Recipe - */ - public static boolean addRollingMachineRecipe(ItemStack aResult, Object[] aRecipe) { - aResult = GT_OreDictUnificator.get(true, aResult); - if (aResult == null || aRecipe == null || aResult.stackSize <= 0) return false; - try { - mods.railcraft.api.crafting.RailcraftCraftingManager.rollingMachine.getRecipeList().add(new ShapedOreRecipe(GT_Utility.copy(aResult), aRecipe)); - } catch(Throwable e) { - return addCraftingRecipe(GT_Utility.copy(aResult), aRecipe); - } - return true; - } - - private static boolean sBufferCraftingRecipes = true; - private static final List sAllRecipeList = Collections.synchronizedList(new ArrayList(5000)), sBufferRecipeList = new ArrayList(1000); - public static final List sSingleNonBlockDamagableRecipeList = new ArrayList(1000); - - public static void stopBufferingCraftingRecipes() { - sBufferCraftingRecipes = false; - for (IRecipe tRecipe : sBufferRecipeList) GameRegistry.addRecipe(tRecipe); - sBufferRecipeList.clear(); - } - - public static class RecipeBits { - /** Mirrors the Recipe */ - public static long MIRRORED = B[0]; - /** Buffers the Recipe for later addition. This makes things more efficient. */ - public static long BUFFERED = B[1]; - /** This is a special Tag I used for crafting Coins up and down. */ - public static long KEEPNBT = B[2]; - /** Makes the Recipe Reverse Craftable in the Disassembler. */ - public static long DISMANTLEABLE = B[3]; - /** Prevents the Recipe from accidentally getting removed by my own Handlers. */ - public static long NOT_REMOVABLE = B[4]; - /** Reverses the Output of the Recipe for smelting and pulverising. */ - public static long REVERSIBLE = B[5]; - /** Removes all Recipes with the same Output Item regardless of NBT, unless another Recipe Deletion Bit is added too. */ - public static long DELETE_ALL_OTHER_RECIPES = B[6]; - /** Removes all Recipes with the same Output Item limited to the same NBT. */ - public static long DELETE_ALL_OTHER_RECIPES_IF_SAME_NBT = B[7]; - /** Removes all Recipes with the same Output Item limited to Shaped Recipes. */ - public static long DELETE_ALL_OTHER_SHAPED_RECIPES = B[8]; - /** Removes all Recipes with the same Output Item limited to native Recipe Handlers. */ - public static long DELETE_ALL_OTHER_NATIVE_RECIPES = B[9]; - /** Disables the check for colliding Recipes. */ - public static long DO_NOT_CHECK_FOR_COLLISIONS = B[10]; - /** Only adds the Recipe if there is another Recipe having that Output */ - public static long ONLY_ADD_IF_THERE_IS_ANOTHER_RECIPE_FOR_IT = B[11]; - /** Only adds the Recipe if it has an Output */ - public static long ONLY_ADD_IF_RESULT_IS_NOT_NULL = B[12]; - } - - /** - * Shapeless Crafting Recipes. Deletes conflicting Recipes too. - */ - public static boolean addCraftingRecipe(ItemStack aResult, Enchantment[] aEnchantmentsAdded, int[] aEnchantmentLevelsAdded, Object[] aRecipe) { - return addCraftingRecipe(aResult, aEnchantmentsAdded, aEnchantmentLevelsAdded, false, true , false, false, false, false, false, false, false, false, false, false, true, aRecipe); - } - - /** - * Regular Crafting Recipes. Deletes conflicting Recipes too. - * - * You can insert instances of IItemContainer into the Recipe Input Array directly without having to call "get(1)" on them. - * - * Enums are automatically getting their "name()"-Method called in order to deliver an OreDict String. - * - * Lowercase Letters are reserved for Tools. They are as follows: - * - * 'b' ToolDictNames.craftingToolBlade - * 'c' ToolDictNames.craftingToolCrowbar, - * 'd' ToolDictNames.craftingToolScrewdriver, - * 'f' ToolDictNames.craftingToolFile, - * 'h' ToolDictNames.craftingToolHardHammer, - * 'i' ToolDictNames.craftingToolSolderingIron, - * 'j' ToolDictNames.craftingToolSolderingMetal, - * 'k' ToolDictNames.craftingToolKnive - * 'm' ToolDictNames.craftingToolMortar, - * 'p' ToolDictNames.craftingToolDrawplate, - * 'r' ToolDictNames.craftingToolSoftHammer, - * 's' ToolDictNames.craftingToolSaw, - * 'w' ToolDictNames.craftingToolWrench, - * 'x' ToolDictNames.craftingToolWireCutter, - */ - public static boolean addCraftingRecipe(ItemStack aResult, Object[] aRecipe) { - return addCraftingRecipe(aResult, 0, aRecipe); - } - - /** - * Regular Crafting Recipes. Deletes conflicting Recipes too. - * - * You can insert instances of IItemContainer into the Recipe Input Array directly without having to call "get(1)" on them. - * - * Enums are automatically getting their "name()"-Method called in order to deliver an OreDict String. - * - * Lowercase Letters are reserved for Tools. They are as follows: - * - * 'b' ToolDictNames.craftingToolBlade - * 'c' ToolDictNames.craftingToolCrowbar, - * 'd' ToolDictNames.craftingToolScrewdriver, - * 'f' ToolDictNames.craftingToolFile, - * 'h' ToolDictNames.craftingToolHardHammer, - * 'i' ToolDictNames.craftingToolSolderingIron, - * 'j' ToolDictNames.craftingToolSolderingMetal, - * 'k' ToolDictNames.craftingToolKnive - * 'm' ToolDictNames.craftingToolMortar, - * 'p' ToolDictNames.craftingToolDrawplate, - * 'r' ToolDictNames.craftingToolSoftHammer, - * 's' ToolDictNames.craftingToolSaw, - * 'w' ToolDictNames.craftingToolWrench, - * 'x' ToolDictNames.craftingToolWireCutter, - */ - public static boolean addCraftingRecipe(ItemStack aResult, long aBitMask, Object[] aRecipe) { - return addCraftingRecipe(aResult, new Enchantment[0], new int[0], (aBitMask & RecipeBits.MIRRORED) != 0, (aBitMask & RecipeBits.BUFFERED) != 0, (aBitMask & RecipeBits.KEEPNBT) != 0, (aBitMask & RecipeBits.DISMANTLEABLE) != 0, (aBitMask & RecipeBits.NOT_REMOVABLE) == 0, (aBitMask & RecipeBits.REVERSIBLE) != 0, (aBitMask & RecipeBits.DELETE_ALL_OTHER_RECIPES) != 0, (aBitMask & RecipeBits.DELETE_ALL_OTHER_RECIPES_IF_SAME_NBT) != 0, (aBitMask & RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES) != 0, (aBitMask & RecipeBits.DELETE_ALL_OTHER_NATIVE_RECIPES) != 0, (aBitMask & RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS) == 0, (aBitMask & RecipeBits.ONLY_ADD_IF_THERE_IS_ANOTHER_RECIPE_FOR_IT) != 0, (aBitMask & RecipeBits.ONLY_ADD_IF_RESULT_IS_NOT_NULL) != 0, aRecipe); - } - - /** - * Internal realisation of the Crafting Recipe adding Process. - */ - private static boolean addCraftingRecipe(ItemStack aResult, Enchantment[] aEnchantmentsAdded, int[] aEnchantmentLevelsAdded, boolean aMirrored, boolean aBuffered, boolean aKeepNBT, boolean aDismantleable, boolean aRemovable, boolean aReversible, boolean aRemoveAllOthersWithSameOutput, boolean aRemoveAllOthersWithSameOutputIfTheyHaveSameNBT, boolean aRemoveAllOtherShapedsWithSameOutput, boolean aRemoveAllOtherNativeRecipes, boolean aCheckForCollisions, boolean aOnlyAddIfThereIsAnyRecipeOutputtingThis, boolean aOnlyAddIfResultIsNotNull, Object[] aRecipe) { - aResult = GT_OreDictUnificator.get(true, aResult); - if (aOnlyAddIfResultIsNotNull && aResult == null) return false; - if (aResult != null && Items.feather.getDamage(aResult) == W) Items.feather.setDamage(aResult, 0); - if (aRecipe == null || aRecipe.length <= 0) return false; - - boolean tThereWasARecipe = false; - - for (byte i = 0; i < aRecipe.length; i++) { - if (aRecipe[i] instanceof IItemContainer) - aRecipe[i] = ((IItemContainer)aRecipe[i]).get(1); - else if (aRecipe[i] instanceof Enum) - aRecipe[i] = ((Enum)aRecipe[i]).name(); - else if (!(aRecipe[i] == null || aRecipe[i] instanceof ItemStack || aRecipe[i] instanceof ItemData || aRecipe[i] instanceof String || aRecipe[i] instanceof Character)) - aRecipe[i] = aRecipe[i].toString(); - } - - try { - String shape = E; - int idx = 0; - if (aRecipe[idx] instanceof Boolean) { - throw new IllegalArgumentException(); - } - - ArrayList tRecipeList = new ArrayList(Arrays.asList(aRecipe)); - - while (aRecipe[idx] instanceof String) { - String s = (String)aRecipe[idx++]; - shape += s; - while (s.length() < 3) s+=" "; - if (s.length() > 3) throw new IllegalArgumentException(); - - for (char c : s.toCharArray()) { - switch(c) { - case 'b': tRecipeList.add(c); tRecipeList.add(ToolDictNames.craftingToolBlade .name()); break; - case 'c': tRecipeList.add(c); tRecipeList.add(ToolDictNames.craftingToolCrowbar .name()); break; - case 'd': tRecipeList.add(c); tRecipeList.add(ToolDictNames.craftingToolScrewdriver .name()); break; - case 'f': tRecipeList.add(c); tRecipeList.add(ToolDictNames.craftingToolFile .name()); break; - case 'h': tRecipeList.add(c); tRecipeList.add(ToolDictNames.craftingToolHardHammer .name()); break; - case 'i': tRecipeList.add(c); tRecipeList.add(ToolDictNames.craftingToolSolderingIron .name()); break; - case 'j': tRecipeList.add(c); tRecipeList.add(ToolDictNames.craftingToolSolderingMetal .name()); break; - case 'k': tRecipeList.add(c); tRecipeList.add(ToolDictNames.craftingToolKnife .name()); break; - case 'm': tRecipeList.add(c); tRecipeList.add(ToolDictNames.craftingToolMortar .name()); break; - case 'p': tRecipeList.add(c); tRecipeList.add(ToolDictNames.craftingToolDrawplate .name()); break; - case 'r': tRecipeList.add(c); tRecipeList.add(ToolDictNames.craftingToolSoftHammer .name()); break; - case 's': tRecipeList.add(c); tRecipeList.add(ToolDictNames.craftingToolSaw .name()); break; - case 'w': tRecipeList.add(c); tRecipeList.add(ToolDictNames.craftingToolWrench .name()); break; - case 'x': tRecipeList.add(c); tRecipeList.add(ToolDictNames.craftingToolWireCutter .name()); break; - } - } - } - - aRecipe = tRecipeList.toArray(); - - if (aRecipe[idx] instanceof Boolean) { - idx++; - } - HashMap tItemStackMap = new HashMap(); - HashMap tItemDataMap = new HashMap(); - tItemStackMap.put(' ', null); - - boolean tRemoveRecipe = true; - - for (; idx < aRecipe.length; idx += 2) { - if (aRecipe[idx] == null || aRecipe[idx + 1] == null) { - if (D1) { - GT_Log.err.println("WARNING: Missing Item for shaped Recipe: " + (aResult==null?"null":aResult.getDisplayName())); - for (Object tContent : aRecipe) GT_Log.err.println(tContent); - } - return false; - } - Character chr = (Character)aRecipe[idx]; - Object in = aRecipe[idx + 1]; - if (in instanceof ItemStack) { - tItemStackMap.put(chr, GT_Utility.copy((ItemStack)in)); - tItemDataMap.put(chr, GT_OreDictUnificator.getItemData((ItemStack)in)); - } else if (in instanceof ItemData) { - String tString = in.toString(); - if (tString.equals("plankWood")) { - tItemDataMap.put(chr, new ItemData(Materials.Wood, M)); - } else if (tString.equals("stoneNetherrack")) { - tItemDataMap.put(chr, new ItemData(Materials.Netherrack, M)); - } else if (tString.equals("stoneObsidian")) { - tItemDataMap.put(chr, new ItemData(Materials.Obsidian, M)); - } else if (tString.equals("stoneEndstone")) { - tItemDataMap.put(chr, new ItemData(Materials.Endstone, M)); - } else { - tItemDataMap.put(chr, (ItemData)in); - } - ItemStack tStack = GT_OreDictUnificator.getFirstOre(in, 1); - if (tStack == null) tRemoveRecipe = false; else tItemStackMap.put(chr, tStack); - in = aRecipe[idx + 1] = in.toString(); - } else if (in instanceof String) { - if (in.equals(OreDictNames.craftingChest .toString())) tItemDataMap.put(chr, new ItemData(Materials.Wood, M * 8)); - else if (in.equals(OreDictNames.craftingBook .toString())) tItemDataMap.put(chr, new ItemData(Materials.Paper, M * 3)); - else if (in.equals(OreDictNames.craftingPiston .toString())) tItemDataMap.put(chr, new ItemData(Materials.Stone, M * 4, Materials.Wood, M * 3)); - else if (in.equals(OreDictNames.craftingFurnace .toString())) tItemDataMap.put(chr, new ItemData(Materials.Stone, M * 8)); - else if (in.equals(OreDictNames.craftingIndustrialDiamond .toString())) tItemDataMap.put(chr, new ItemData(Materials.Diamond, M)); - else if (in.equals(OreDictNames.craftingAnvil .toString())) tItemDataMap.put(chr, new ItemData(Materials.Iron, M * 10)); - ItemStack tStack = GT_OreDictUnificator.getFirstOre(in, 1); - if (tStack == null) tRemoveRecipe = false; else tItemStackMap.put(chr, tStack); - } else { - throw new IllegalArgumentException(); - } - } - - if (aReversible && aResult != null) { - ItemData[] tData = new ItemData[9]; - int x = -1; - for (char chr : shape.toCharArray()) tData[++x] = tItemDataMap.get(chr); - if (GT_Utility.arrayContainsNonNull(tData)) GT_OreDictUnificator.addItemData(aResult, new ItemData(tData)); - } - - if (aCheckForCollisions && tRemoveRecipe) { - ItemStack[] tRecipe = new ItemStack[9]; - int x = -1; - for (char chr : shape.toCharArray()) { - tRecipe[++x] = tItemStackMap.get(chr); - if (tRecipe[x] != null && Items.feather.getDamage(tRecipe[x]) == W) Items.feather.setDamage(tRecipe[x], 0); - } - tThereWasARecipe = removeRecipe(tRecipe) != null || tThereWasARecipe; - } - } catch(Throwable e) {e.printStackTrace(GT_Log.err);} - - if (aResult == null || aResult.stackSize <= 0) return false; - - if (aRemoveAllOthersWithSameOutput || aRemoveAllOthersWithSameOutputIfTheyHaveSameNBT || aRemoveAllOtherShapedsWithSameOutput || aRemoveAllOtherNativeRecipes) - tThereWasARecipe = removeRecipeByOutput(aResult, !aRemoveAllOthersWithSameOutputIfTheyHaveSameNBT, aRemoveAllOtherShapedsWithSameOutput, aRemoveAllOtherNativeRecipes) || tThereWasARecipe; - - if (aOnlyAddIfThereIsAnyRecipeOutputtingThis && !tThereWasARecipe) { - ArrayList tList = (ArrayList)CraftingManager.getInstance().getRecipeList(); - for (int i = 0; i < tList.size() && !tThereWasARecipe; i++) { - IRecipe tRecipe = tList.get(i); - if (sSpecialRecipeClasses.contains(tRecipe.getClass().getName())) continue; - if (GT_Utility.areStacksEqual(GT_OreDictUnificator.get(tRecipe.getRecipeOutput()), aResult, true)) { - tList.remove(i--); - tThereWasARecipe = true; - } - } - } - - if (Items.feather.getDamage(aResult) == W || Items.feather.getDamage(aResult) < 0) Items.feather.setDamage(aResult, 0); - - GT_Utility.updateItemStack(aResult); - - if (tThereWasARecipe || !aOnlyAddIfThereIsAnyRecipeOutputtingThis) { - if (sBufferCraftingRecipes && aBuffered) - sBufferRecipeList.add(new GT_Shaped_Recipe(GT_Utility.copy(aResult), aDismantleable, aRemovable, aKeepNBT, aEnchantmentsAdded, aEnchantmentLevelsAdded, aRecipe).setMirrored(aMirrored)); - else - GameRegistry.addRecipe(new GT_Shaped_Recipe(GT_Utility.copy(aResult), aDismantleable, aRemovable, aKeepNBT, aEnchantmentsAdded, aEnchantmentLevelsAdded, aRecipe).setMirrored(aMirrored)); - } - return true; - } - - /** - * Shapeless Crafting Recipes. Deletes conflicting Recipes too. - */ - public static boolean addShapelessEnchantingRecipe(ItemStack aResult, Enchantment[] aEnchantmentsAdded, int[] aEnchantmentLevelsAdded, Object[] aRecipe) { - return addShapelessCraftingRecipe(aResult, aEnchantmentsAdded, aEnchantmentLevelsAdded, true , false, false, false, aRecipe); - } - - /** - * Shapeless Crafting Recipes. Deletes conflicting Recipes too. - */ - public static boolean addShapelessCraftingRecipe(ItemStack aResult, Object[] aRecipe) { - return addShapelessCraftingRecipe(aResult, RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | RecipeBits.BUFFERED, aRecipe); - } - - /** - * Shapeless Crafting Recipes. Deletes conflicting Recipes too. - */ - public static boolean addShapelessCraftingRecipe(ItemStack aResult, long aBitMask, Object[] aRecipe) { - return addShapelessCraftingRecipe(aResult, new Enchantment[0], new int[0], (aBitMask & RecipeBits.BUFFERED) != 0, (aBitMask & RecipeBits.KEEPNBT) != 0, (aBitMask & RecipeBits.DISMANTLEABLE) != 0, (aBitMask & RecipeBits.NOT_REMOVABLE) == 0, aRecipe); - } - - /** - * Shapeless Crafting Recipes. Deletes conflicting Recipes too. - */ - private static boolean addShapelessCraftingRecipe(ItemStack aResult, Enchantment[] aEnchantmentsAdded, int[] aEnchantmentLevelsAdded, boolean aBuffered, boolean aKeepNBT, boolean aDismantleable, boolean aRemovable, Object[] aRecipe) { - aResult = GT_OreDictUnificator.get(true, aResult); - if (aRecipe == null || aRecipe.length <= 0) return false; - for (byte i = 0; i < aRecipe.length; i++) { - if (aRecipe[i] instanceof IItemContainer) - aRecipe[i] = ((IItemContainer)aRecipe[i]).get(1); - else if (aRecipe[i] instanceof Enum) - aRecipe[i] = ((Enum)aRecipe[i]).name(); - else if (!(aRecipe[i] == null || aRecipe[i] instanceof ItemStack || aRecipe[i] instanceof String || aRecipe[i] instanceof Character)) - aRecipe[i] = aRecipe[i].toString(); - } - try { - ItemStack[] tRecipe = new ItemStack[9]; - int i = 0; - for (Object tObject : aRecipe) { - if (tObject == null) { - if (D1) GT_Log.err.println("WARNING: Missing Item for shapeless Recipe: " + (aResult==null?"null":aResult.getDisplayName())); - for (Object tContent : aRecipe) GT_Log.err.println(tContent); - return false; - } - if (tObject instanceof ItemStack) { - tRecipe[i] = (ItemStack)tObject; - } else if (tObject instanceof String) { - tRecipe[i] = GT_OreDictUnificator.getFirstOre(tObject, 1); - if (tRecipe[i] == null) break; - } else if (tObject instanceof Boolean) { - // - } else { - throw new IllegalArgumentException(); - } - i++; - } - removeRecipe(tRecipe); - } catch(Throwable e) {e.printStackTrace(GT_Log.err);} - - if (aResult == null || aResult.stackSize <= 0) return false; - - if (Items.feather.getDamage(aResult) == W || Items.feather.getDamage(aResult) < 0) Items.feather.setDamage(aResult, 0); - - GT_Utility.updateItemStack(aResult); - - if (sBufferCraftingRecipes && aBuffered) - sBufferRecipeList.add(new GT_Shapeless_Recipe(GT_Utility.copy(aResult), aDismantleable, aRemovable, aKeepNBT, aEnchantmentsAdded, aEnchantmentLevelsAdded, aRecipe)); - else - GameRegistry.addRecipe(new GT_Shapeless_Recipe(GT_Utility.copy(aResult), aDismantleable, aRemovable, aKeepNBT, aEnchantmentsAdded, aEnchantmentLevelsAdded, aRecipe)); - return true; - } - - /** - * Removes a Smelting Recipe - */ - public static boolean removeFurnaceSmelting(ItemStack aInput) { - if (aInput != null) { - for (Object tInput : FurnaceRecipes.smelting().getSmeltingList().keySet()) { - if (GT_Utility.isStackValid(tInput) && GT_Utility.areStacksEqual(aInput, (ItemStack)tInput, true)) { - FurnaceRecipes.smelting().getSmeltingList().remove(tInput); - return true; - } - } - } - return false; - } - - /** - * Removes a Crafting Recipe and gives you the former output of it. - * @param aRecipe The content of the Crafting Grid as ItemStackArray with length 9 - * @return the output of the old Recipe or null if there was nothing. - */ + /** + * Gets an Item from IndustrialCraft, and returns a Replacement Item if not possible + */ + public static ItemStack getIC2Item(String aItem, long aAmount, ItemStack aReplacement) { + if (GT_Utility.isStringInvalid(aItem) || !GregTech_API.sPreloadStarted) return null; + //if (D1) GT_Log.out.println("Requested the Item '" + aItem + "' from the IC2-API"); + if (!sIC2ItemMap.containsKey(aItem)) try { + ItemStack tStack = IC2Items.getItem(aItem); + sIC2ItemMap.put(aItem, tStack); + if (tStack == null && D1) GT_Log.err.println(aItem + " is not found in the IC2 Items!"); + } catch (Throwable e) {/*Do nothing*/} + return GT_Utility.copyAmount(aAmount, sIC2ItemMap.get(aItem), aReplacement); + } + + /** + * Gets an Item from IndustrialCraft, but the Damage Value can be specified, and returns a Replacement Item with the same Damage if not possible + */ + public static ItemStack getIC2Item(String aItem, long aAmount, int aMeta, ItemStack aReplacement) { + ItemStack rStack = getIC2Item(aItem, aAmount, aReplacement); + if (rStack == null) return null; + Items.feather.setDamage(rStack, aMeta); + return rStack; + } + + /** + * Gets an Item from IndustrialCraft, but the Damage Value can be specified + */ + public static ItemStack getIC2Item(String aItem, long aAmount, int aMeta) { + return getIC2Item(aItem, aAmount, aMeta, null); + } + + /** + * Gets an Item from IndustrialCraft + */ + public static ItemStack getIC2Item(String aItem, long aAmount) { + return getIC2Item(aItem, aAmount, null); + } + + /** + * Gets an Item from RailCraft + */ + public static ItemStack getModItem(String aModID, String aItem, long aAmount) { + return getModItem(aModID, aItem, aAmount, null); + } + + /** + * Gets an Item from RailCraft, and returns a Replacement Item if not possible + */ + public static ItemStack getModItem(String aModID, String aItem, long aAmount, ItemStack aReplacement) { + if (GT_Utility.isStringInvalid(aItem) || !GregTech_API.sPreloadStarted) return null; + return GT_Utility.copyAmount(aAmount, GameRegistry.findItemStack(aModID, aItem, (int) aAmount), aReplacement); + } + + /** + * Gets an Item from RailCraft, but the Damage Value can be specified + */ + public static ItemStack getModItem(String aModID, String aItem, long aAmount, int aMeta) { + ItemStack rStack = getModItem(aModID, aItem, aAmount); + if (rStack == null) return null; + Items.feather.setDamage(rStack, aMeta); + return rStack; + } + + /** + * Gets an Item from RailCraft, but the Damage Value can be specified, and returns a Replacement Item with the same Damage if not possible + */ + public static ItemStack getModItem(String aModID, String aItem, long aAmount, int aMeta, ItemStack aReplacement) { + ItemStack rStack = getModItem(aModID, aItem, aAmount, aReplacement); + if (rStack == null) return null; + Items.feather.setDamage(rStack, aMeta); + return rStack; + } + + /** + * OUT OF ORDER + */ + public static boolean getModeKeyDown(EntityPlayer aPlayer) { + return false; + } + + /** + * OUT OF ORDER + */ + public static boolean getBoostKeyDown(EntityPlayer aPlayer) { + return false; + } + + /** + * OUT OF ORDER + */ + public static boolean getJumpKeyDown(EntityPlayer aPlayer) { + return false; + } + + /** + * Adds a Valuable Ore to the Miner + */ + public static boolean addValuableOre(Block aBlock, int aMeta, int aValue) { + if (aValue <= 0) return false; + try { + Class.forName("ic2.core.IC2").getMethod("addValuableOre", IRecipeInput.class, int.class).invoke(null, new RecipeInputItemStack(new ItemStack(aBlock, 1, aMeta)), aValue); + } catch (Throwable e) {/*Do nothing*/} + return true; + } + + /** + * Adds a Scrapbox Drop. Fails at April first for the "suddenly Hoes"-Feature of IC2 + */ + public static boolean addScrapboxDrop(float aChance, ItemStack aOutput) { + aOutput = GT_OreDictUnificator.get(true, aOutput); + if (aOutput == null || aChance <= 0) return false; + aOutput.stackSize = 1; + if (GT_Config.troll && !GT_Utility.areStacksEqual(aOutput, new ItemStack(Items.wooden_hoe, 1, 0))) return false; + aChance = (float) GregTech_API.sRecipeFile.get(ConfigCategories.Machines.scrapboxdrops, aOutput, aChance); + if (aChance <= 0) return false; + try { + GT_Utility.callMethod(GT_Utility.getFieldContent("ic2.api.recipe.Recipes", "scrapboxDrops", true, true), "addDrop", true, false, true, GT_Utility.copy(aOutput), aChance); + GT_Utility.callMethod(GT_Utility.getFieldContent("ic2.api.recipe.Recipes", "scrapboxDrops", true, true), "addRecipe", true, true, false, GT_Utility.copy(aOutput), aChance); + } catch (Throwable e) {/*Do nothing*/} + return true; + } + + /** + * Adds an Item to the Recycler Blacklist + */ + public static boolean addToRecyclerBlackList(ItemStack aRecycledStack) { + if (aRecycledStack == null) return false; + try { + ic2.api.recipe.Recipes.recyclerBlacklist.add(new RecipeInputItemStack(aRecycledStack)); + } catch (Throwable e) {/*Do nothing*/} + return true; + } + + /** + * Just simple Furnace smelting. Unbelievable how Minecraft fails at making a simple ItemStack->ItemStack mapping... + */ + public static boolean addSmeltingRecipe(ItemStack aInput, ItemStack aOutput) { + aOutput = GT_OreDictUnificator.get(true, aOutput); + if (aInput == null || aOutput == null || GT_Utility.getContainerItem(aInput, false) != null) return false; + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.smelting, aInput, true)) return false; + FurnaceRecipes.smelting().func_151394_a(aInput, GT_Utility.copy(aOutput), 0.0F); + return true; + } + + /** + * Adds to Furnace AND Alloysmelter AND Induction Smelter + */ + public static boolean addSmeltingAndAlloySmeltingRecipe(ItemStack aInput, ItemStack aOutput) { + if (aInput == null || aOutput == null) return false; + boolean temp = false; + if (aInput.stackSize == 1 && addSmeltingRecipe(aInput, aOutput)) temp = true; + if (RA.addAlloySmelterRecipe(aInput, OrePrefixes.ingot.contains(aOutput) ? ItemList.Shape_Mold_Ingot.get(0) : OrePrefixes.block.contains(aOutput) ? ItemList.Shape_Mold_Block.get(0) : OrePrefixes.nugget.contains(aOutput) ? ItemList.Shape_Mold_Nugget.get(0) : null, aOutput, 130, 3)) + temp = true; + if (addInductionSmelterRecipe(aInput, null, aOutput, null, aOutput.stackSize * 1600, 0)) temp = true; + return temp; + } + + /** + * LiquidTransposer Recipe for both directions + */ + public static boolean addLiquidTransposerRecipe(ItemStack aEmptyContainer, FluidStack aLiquid, ItemStack aFullContainer, int aMJ) { + aFullContainer = GT_OreDictUnificator.get(true, aFullContainer); + if (aEmptyContainer == null || aFullContainer == null || aLiquid == null) return false; + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.liquidtransposer, aFullContainer, true)) + return false; + try { + ThermalExpansion.addTransposerFill(aMJ * 10, aEmptyContainer, aFullContainer, aLiquid, true); + } catch (Throwable e) {/*Do nothing*/} + return true; + } + + /** + * LiquidTransposer Recipe for filling Containers + */ + public static boolean addLiquidTransposerFillRecipe(ItemStack aEmptyContainer, FluidStack aLiquid, ItemStack aFullContainer, int aMJ) { + aFullContainer = GT_OreDictUnificator.get(true, aFullContainer); + if (aEmptyContainer == null || aFullContainer == null || aLiquid == null) return false; + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.liquidtransposerfilling, aFullContainer, true)) + return false; + try { + ThermalExpansion.addTransposerFill(aMJ * 10, aEmptyContainer, aFullContainer, aLiquid, false); + } catch (Throwable e) {/*Do nothing*/} + return true; + } + + /** + * LiquidTransposer Recipe for emptying Containers + */ + public static boolean addLiquidTransposerEmptyRecipe(ItemStack aFullContainer, FluidStack aLiquid, ItemStack aEmptyContainer, int aMJ) { + aEmptyContainer = GT_OreDictUnificator.get(true, aEmptyContainer); + if (aFullContainer == null || aEmptyContainer == null || aLiquid == null) return false; + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.liquidtransposeremptying, aFullContainer, true)) + return false; + try { + ThermalExpansion.addTransposerExtract(aMJ * 10, aFullContainer, aEmptyContainer, aLiquid, 100, false); + } catch (Throwable e) {/*Do nothing*/} + return true; + } + + /** + * IC2-Extractor Recipe. Overloads old Recipes automatically + */ + public static boolean addExtractionRecipe(ItemStack aInput, ItemStack aOutput) { + aOutput = GT_OreDictUnificator.get(true, aOutput); + if (aInput == null || aOutput == null) return false; + GT_Utility.removeSimpleIC2MachineRecipe(aInput, getExtractorRecipeList(), null); + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.extractor, aInput, true)) return false; + GT_Utility.addSimpleIC2MachineRecipe(aInput, getExtractorRecipeList(), null, aOutput); + return true; + } + + /** + * RC-BlastFurnace Recipes + */ + public static boolean addRCBlastFurnaceRecipe(ItemStack aInput, ItemStack aOutput, int aTime) { + aOutput = GT_OreDictUnificator.get(true, aOutput); + if (aInput == null || aOutput == null || aTime <= 0) return false; + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.rcblastfurnace, aInput, true)) return false; + aInput = GT_Utility.copy(aInput); + aOutput = GT_Utility.copy(aOutput); + try { + mods.railcraft.api.crafting.RailcraftCraftingManager.blastFurnace.addRecipe(aInput, true, false, aTime, aOutput); + } catch (Throwable e) { + return false; + } + return true; + } + + public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1) { + return addPulverisationRecipe(aInput, aOutput1, null, 0, false); + } + + public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2) { + return addPulverisationRecipe(aInput, aOutput1, aOutput2, 100, false); + } + + public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aChance) { + return addPulverisationRecipe(aInput, aOutput1, aOutput2, aChance, false); + } + + public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, boolean aOverwrite) { + return addPulverisationRecipe(aInput, aOutput1, null, 0, aOverwrite); + } + + public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, boolean aOverwrite) { + return addPulverisationRecipe(aInput, aOutput1, aOutput2, 100, aOverwrite); + } + + public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aChance, boolean aOverwrite) { + return addPulverisationRecipe(aInput, aOutput1, aOutput2, aChance, null, 0, aOverwrite); + } + + /** + * Adds Several Pulverizer-Type Recipes. + */ + public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aChance2, ItemStack aOutput3, int aChance3, boolean aOverwrite) { + aOutput1 = GT_OreDictUnificator.get(true, aOutput1); + aOutput2 = GT_OreDictUnificator.get(true, aOutput2); + if (GT_Utility.isStackInvalid(aInput) || GT_Utility.isStackInvalid(aOutput1)) return false; + GT_Utility.removeSimpleIC2MachineRecipe(aInput, getMaceratorRecipeList(), null); + + if (GT_Utility.getContainerItem(aInput, false) == null) { + if (GregTech_API.sRecipeFile.get(ConfigCategories.Machines.maceration, aInput, true)) { + GT_Utility.addSimpleIC2MachineRecipe(aInput, getMaceratorRecipeList(), null, aOutput1); + } + + RA.addPulveriserRecipe(aInput, new ItemStack[]{aOutput1, aOutput2, aOutput3}, new int[]{10000, aChance2 <= 0 ? 1000 : 100 * aChance2, aChance3 <= 0 ? 1000 : 100 * aChance3}, 400, 2); + + if (!OrePrefixes.log.contains(aInput)) { + if (Materials.Wood.contains(aOutput1)) { + if (GregTech_API.sRecipeFile.get(ConfigCategories.Machines.pulverization, aInput, true)) { + if (aOutput2 == null) + ThermalExpansion.addSawmillRecipe(32000, GT_Utility.copy(aInput), GT_Utility.copy(aOutput1)); + else + ThermalExpansion.addSawmillRecipe(32000, GT_Utility.copy(aInput), GT_Utility.copy(aOutput1), GT_Utility.copy(aOutput2), aChance2 <= 0 ? 10 : aChance2); + } + } else { + if (GregTech_API.sRecipeFile.get(ConfigCategories.Machines.rockcrushing, aInput, true)) { + try { + if (GT_Utility.getBlockFromStack(aInput) != Blocks.obsidian && GT_Utility.getBlockFromStack(aInput) != Blocks.gravel) { + mods.railcraft.api.crafting.IRockCrusherRecipe tRecipe = mods.railcraft.api.crafting.RailcraftCraftingManager.rockCrusher.createNewRecipe(GT_Utility.copyAmount(1, aInput), aInput.getItemDamage() != W, false); + tRecipe.addOutput(GT_Utility.copy(aOutput1), 1.0F / aInput.stackSize); + if (aOutput2 != null) + tRecipe.addOutput(GT_Utility.copy(aOutput2), (0.01F * (aChance2 <= 0 ? 10 : aChance2)) / aInput.stackSize); + if (aOutput3 != null) + tRecipe.addOutput(GT_Utility.copy(aOutput3), (0.01F * (aChance3 <= 0 ? 10 : aChance3)) / aInput.stackSize); + } + } catch (Throwable e) {/*Do nothing*/} + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Machines.pulverization, aInput, true)) { + if (aOutput2 == null) + ThermalExpansion.addPulverizerRecipe(32000, GT_Utility.copy(aInput), GT_Utility.copy(aOutput1)); + else + ThermalExpansion.addPulverizerRecipe(32000, GT_Utility.copy(aInput), GT_Utility.copy(aOutput1), GT_Utility.copy(aOutput2), aChance2 <= 0 ? 10 : aChance2); + } + } + } + } + return true; + } + + /** + * Adds a Recipe to the Sawmills of GregTech and ThermalCraft + */ + public static boolean addSawmillRecipe(ItemStack aInput1, ItemStack aOutput1, ItemStack aOutput2) { + aOutput1 = GT_OreDictUnificator.get(true, aOutput1); + aOutput2 = GT_OreDictUnificator.get(true, aOutput2); + if (aInput1 == null || aOutput1 == null) return false; + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.sawmill, aInput1, true)) return false; + try { + ThermalExpansion.addSawmillRecipe(1600, aInput1, aOutput1, aOutput2, 100); + } catch (Throwable e) {/*Do nothing*/} + return true; + } + + /** + * Induction Smelter Recipes and Alloy Smelter Recipes + */ + public static boolean addAlloySmelterRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt, boolean aAllowSecondaryInputEmpty) { + if (aInput1 == null || (aInput2 == null && !aAllowSecondaryInputEmpty) || aOutput1 == null) return false; + aOutput1 = GT_OreDictUnificator.get(true, aOutput1); + boolean temp = false; + if (RA.addAlloySmelterRecipe(aInput1, aInput2, aOutput1, aDuration, aEUt)) temp = true; + if (addInductionSmelterRecipe(aInput1, aInput2, aOutput1, null, aDuration * aEUt * 2, 0)) temp = true; + return temp; + } + + /** + * Induction Smelter Recipes for TE + */ + public static boolean addInductionSmelterRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, ItemStack aOutput2, int aEnergy, int aChance) { + aOutput1 = GT_OreDictUnificator.get(true, aOutput1); + aOutput2 = GT_OreDictUnificator.get(true, aOutput2); + if (aInput1 == null || aOutput1 == null || GT_Utility.getContainerItem(aInput1, false) != null) return false; + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.inductionsmelter, aInput2 == null ? aInput1 : aOutput1, true)) + return false; + try { + ThermalExpansion.addSmelterRecipe(aEnergy * 10, GT_Utility.copy(aInput1), aInput2 == null ? new ItemStack(Blocks.sand, 1, 0) : aInput2, aOutput1, aOutput2, aChance); + } catch (Throwable e) {/*Do nothing*/} + return true; + } + + /** + * Smelts Ores to Ingots + */ + public static boolean addOreToIngotSmeltingRecipe(ItemStack aInput, ItemStack aOutput) { + aOutput = GT_OreDictUnificator.get(true, aOutput); + if (aInput == null || aOutput == null) return false; + FurnaceRecipes.smelting().func_151394_a(aInput, GT_Utility.copy(aOutput), 0.0F); + return true; + } + + public static Map getExtractorRecipeList() { + try { + return ic2.api.recipe.Recipes.extractor.getRecipes(); + } catch (Throwable e) {/*Do nothing*/} + return sExtractorRecipes; + } + + public static Map getCompressorRecipeList() { + try { + return ic2.api.recipe.Recipes.compressor.getRecipes(); + } catch (Throwable e) {/*Do nothing*/} + return sCompressorRecipes; + } + + public static Map getMaceratorRecipeList() { + try { + return ic2.api.recipe.Recipes.macerator.getRecipes(); + } catch (Throwable e) {/*Do nothing*/} + return sMaceratorRecipes; + } + + public static Map getThermalCentrifugeRecipeList() { + try { + return ic2.api.recipe.Recipes.centrifuge.getRecipes(); + } catch (Throwable e) {/*Do nothing*/} + return sThermalCentrifugeRecipes; + } + + public static Map getOreWashingRecipeList() { + try { + return ic2.api.recipe.Recipes.oreWashing.getRecipes(); + } catch (Throwable e) {/*Do nothing*/} + return sOreWashingRecipes; + } + + public static Map getMassFabricatorList() { + try { + return ic2.api.recipe.Recipes.matterAmplifier.getRecipes(); + } catch (Throwable e) {/*Do nothing*/} + return sMassfabRecipes; + } + + /** + * IC2-ThermalCentrifuge Recipe. Overloads old Recipes automatically + */ + public static boolean addThermalCentrifugeRecipe(ItemStack aInput, int aHeat, Object... aOutput) { + if (aInput == null || aOutput == null || aOutput.length <= 0 || aOutput[0] == null) return false; + GT_Utility.removeSimpleIC2MachineRecipe(aInput, getThermalCentrifugeRecipeList(), null); + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.thermalcentrifuge, aInput, true)) return false; + NBTTagCompound tNBT = new NBTTagCompound(); + tNBT.setInteger("minHeat", aHeat); + GT_Utility.addSimpleIC2MachineRecipe(aInput, getThermalCentrifugeRecipeList(), tNBT, aOutput); + return true; + } + + /** + * IC2-OreWasher Recipe. Overloads old Recipes automatically + */ + public static boolean addOreWasherRecipe(ItemStack aInput, int aWaterAmount, Object... aOutput) { + if (aInput == null || aOutput == null || aOutput.length <= 0 || aOutput[0] == null) return false; + GT_Utility.removeSimpleIC2MachineRecipe(aInput, getOreWashingRecipeList(), null); + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.orewashing, aInput, true)) return false; + NBTTagCompound tNBT = new NBTTagCompound(); + tNBT.setInteger("amount", aWaterAmount); + GT_Utility.addSimpleIC2MachineRecipe(aInput, getOreWashingRecipeList(), tNBT, aOutput); + return true; + } + + /** + * IC2-Compressor Recipe. Overloads old Recipes automatically + */ + public static boolean addCompressionRecipe(ItemStack aInput, ItemStack aOutput) { + aOutput = GT_OreDictUnificator.get(true, aOutput); + if (aInput == null || aOutput == null) return false; + GT_Utility.removeSimpleIC2MachineRecipe(aInput, getCompressorRecipeList(), null); + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.compression, aInput, true)) return false; + GT_Utility.addSimpleIC2MachineRecipe(aInput, getCompressorRecipeList(), null, aOutput); + return true; + } + + /** + * @param aValue Scrap = 5000, Scrapbox = 45000, Diamond Dust 125000 + */ + public static boolean addIC2MatterAmplifier(ItemStack aAmplifier, int aValue) { + if (aAmplifier == null || aValue <= 0) return false; + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.massfabamplifier, aAmplifier, true)) return false; + try { + NBTTagCompound tNBT = new NBTTagCompound(); + tNBT.setInteger("amplification", aValue); + GT_Utility.callMethod(ic2.api.recipe.Recipes.matterAmplifier, "addRecipe", false, false, false, aAmplifier, tNBT); + } catch (Throwable e) {/*Do nothing*/} + return true; + } + + /** + * Rolling Machine Crafting Recipe + */ + public static boolean addRollingMachineRecipe(ItemStack aResult, Object[] aRecipe) { + aResult = GT_OreDictUnificator.get(true, aResult); + if (aResult == null || aRecipe == null || aResult.stackSize <= 0) return false; + try { + mods.railcraft.api.crafting.RailcraftCraftingManager.rollingMachine.getRecipeList().add(new ShapedOreRecipe(GT_Utility.copy(aResult), aRecipe)); + } catch (Throwable e) { + return addCraftingRecipe(GT_Utility.copy(aResult), aRecipe); + } + return true; + } + + public static void stopBufferingCraftingRecipes() { + sBufferCraftingRecipes = false; + for (IRecipe tRecipe : sBufferRecipeList) GameRegistry.addRecipe(tRecipe); + sBufferRecipeList.clear(); + } + + /** + * Shapeless Crafting Recipes. Deletes conflicting Recipes too. + */ + public static boolean addCraftingRecipe(ItemStack aResult, Enchantment[] aEnchantmentsAdded, int[] aEnchantmentLevelsAdded, Object[] aRecipe) { + return addCraftingRecipe(aResult, aEnchantmentsAdded, aEnchantmentLevelsAdded, false, true, false, false, false, false, false, false, false, false, false, false, true, aRecipe); + } + + /** + * Regular Crafting Recipes. Deletes conflicting Recipes too. + *

+ * You can insert instances of IItemContainer into the Recipe Input Array directly without having to call "get(1)" on them. + *

+ * Enums are automatically getting their "name()"-Method called in order to deliver an OreDict String. + *

+ * Lowercase Letters are reserved for Tools. They are as follows: + *

+ * 'b' ToolDictNames.craftingToolBlade + * 'c' ToolDictNames.craftingToolCrowbar, + * 'd' ToolDictNames.craftingToolScrewdriver, + * 'f' ToolDictNames.craftingToolFile, + * 'h' ToolDictNames.craftingToolHardHammer, + * 'i' ToolDictNames.craftingToolSolderingIron, + * 'j' ToolDictNames.craftingToolSolderingMetal, + * 'k' ToolDictNames.craftingToolKnive + * 'm' ToolDictNames.craftingToolMortar, + * 'p' ToolDictNames.craftingToolDrawplate, + * 'r' ToolDictNames.craftingToolSoftHammer, + * 's' ToolDictNames.craftingToolSaw, + * 'w' ToolDictNames.craftingToolWrench, + * 'x' ToolDictNames.craftingToolWireCutter, + */ + public static boolean addCraftingRecipe(ItemStack aResult, Object[] aRecipe) { + return addCraftingRecipe(aResult, 0, aRecipe); + } + + /** + * Regular Crafting Recipes. Deletes conflicting Recipes too. + *

+ * You can insert instances of IItemContainer into the Recipe Input Array directly without having to call "get(1)" on them. + *

+ * Enums are automatically getting their "name()"-Method called in order to deliver an OreDict String. + *

+ * Lowercase Letters are reserved for Tools. They are as follows: + *

+ * 'b' ToolDictNames.craftingToolBlade + * 'c' ToolDictNames.craftingToolCrowbar, + * 'd' ToolDictNames.craftingToolScrewdriver, + * 'f' ToolDictNames.craftingToolFile, + * 'h' ToolDictNames.craftingToolHardHammer, + * 'i' ToolDictNames.craftingToolSolderingIron, + * 'j' ToolDictNames.craftingToolSolderingMetal, + * 'k' ToolDictNames.craftingToolKnive + * 'm' ToolDictNames.craftingToolMortar, + * 'p' ToolDictNames.craftingToolDrawplate, + * 'r' ToolDictNames.craftingToolSoftHammer, + * 's' ToolDictNames.craftingToolSaw, + * 'w' ToolDictNames.craftingToolWrench, + * 'x' ToolDictNames.craftingToolWireCutter, + */ + public static boolean addCraftingRecipe(ItemStack aResult, long aBitMask, Object[] aRecipe) { + return addCraftingRecipe(aResult, new Enchantment[0], new int[0], (aBitMask & RecipeBits.MIRRORED) != 0, (aBitMask & RecipeBits.BUFFERED) != 0, (aBitMask & RecipeBits.KEEPNBT) != 0, (aBitMask & RecipeBits.DISMANTLEABLE) != 0, (aBitMask & RecipeBits.NOT_REMOVABLE) == 0, (aBitMask & RecipeBits.REVERSIBLE) != 0, (aBitMask & RecipeBits.DELETE_ALL_OTHER_RECIPES) != 0, (aBitMask & RecipeBits.DELETE_ALL_OTHER_RECIPES_IF_SAME_NBT) != 0, (aBitMask & RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES) != 0, (aBitMask & RecipeBits.DELETE_ALL_OTHER_NATIVE_RECIPES) != 0, (aBitMask & RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS) == 0, (aBitMask & RecipeBits.ONLY_ADD_IF_THERE_IS_ANOTHER_RECIPE_FOR_IT) != 0, (aBitMask & RecipeBits.ONLY_ADD_IF_RESULT_IS_NOT_NULL) != 0, aRecipe); + } + + /** + * Internal realisation of the Crafting Recipe adding Process. + */ + private static boolean addCraftingRecipe(ItemStack aResult, Enchantment[] aEnchantmentsAdded, int[] aEnchantmentLevelsAdded, boolean aMirrored, boolean aBuffered, boolean aKeepNBT, boolean aDismantleable, boolean aRemovable, boolean aReversible, boolean aRemoveAllOthersWithSameOutput, boolean aRemoveAllOthersWithSameOutputIfTheyHaveSameNBT, boolean aRemoveAllOtherShapedsWithSameOutput, boolean aRemoveAllOtherNativeRecipes, boolean aCheckForCollisions, boolean aOnlyAddIfThereIsAnyRecipeOutputtingThis, boolean aOnlyAddIfResultIsNotNull, Object[] aRecipe) { + aResult = GT_OreDictUnificator.get(true, aResult); + if (aOnlyAddIfResultIsNotNull && aResult == null) return false; + if (aResult != null && Items.feather.getDamage(aResult) == W) Items.feather.setDamage(aResult, 0); + if (aRecipe == null || aRecipe.length <= 0) return false; + + boolean tThereWasARecipe = false; + + for (byte i = 0; i < aRecipe.length; i++) { + if (aRecipe[i] instanceof IItemContainer) + aRecipe[i] = ((IItemContainer) aRecipe[i]).get(1); + else if (aRecipe[i] instanceof Enum) + aRecipe[i] = ((Enum) aRecipe[i]).name(); + else if (!(aRecipe[i] == null || aRecipe[i] instanceof ItemStack || aRecipe[i] instanceof ItemData || aRecipe[i] instanceof String || aRecipe[i] instanceof Character)) + aRecipe[i] = aRecipe[i].toString(); + } + + try { + String shape = E; + int idx = 0; + if (aRecipe[idx] instanceof Boolean) { + throw new IllegalArgumentException(); + } + + ArrayList tRecipeList = new ArrayList(Arrays.asList(aRecipe)); + + while (aRecipe[idx] instanceof String) { + String s = (String) aRecipe[idx++]; + shape += s; + while (s.length() < 3) s += " "; + if (s.length() > 3) throw new IllegalArgumentException(); + + for (char c : s.toCharArray()) { + switch (c) { + case 'b': + tRecipeList.add(c); + tRecipeList.add(ToolDictNames.craftingToolBlade.name()); + break; + case 'c': + tRecipeList.add(c); + tRecipeList.add(ToolDictNames.craftingToolCrowbar.name()); + break; + case 'd': + tRecipeList.add(c); + tRecipeList.add(ToolDictNames.craftingToolScrewdriver.name()); + break; + case 'f': + tRecipeList.add(c); + tRecipeList.add(ToolDictNames.craftingToolFile.name()); + break; + case 'h': + tRecipeList.add(c); + tRecipeList.add(ToolDictNames.craftingToolHardHammer.name()); + break; + case 'i': + tRecipeList.add(c); + tRecipeList.add(ToolDictNames.craftingToolSolderingIron.name()); + break; + case 'j': + tRecipeList.add(c); + tRecipeList.add(ToolDictNames.craftingToolSolderingMetal.name()); + break; + case 'k': + tRecipeList.add(c); + tRecipeList.add(ToolDictNames.craftingToolKnife.name()); + break; + case 'm': + tRecipeList.add(c); + tRecipeList.add(ToolDictNames.craftingToolMortar.name()); + break; + case 'p': + tRecipeList.add(c); + tRecipeList.add(ToolDictNames.craftingToolDrawplate.name()); + break; + case 'r': + tRecipeList.add(c); + tRecipeList.add(ToolDictNames.craftingToolSoftHammer.name()); + break; + case 's': + tRecipeList.add(c); + tRecipeList.add(ToolDictNames.craftingToolSaw.name()); + break; + case 'w': + tRecipeList.add(c); + tRecipeList.add(ToolDictNames.craftingToolWrench.name()); + break; + case 'x': + tRecipeList.add(c); + tRecipeList.add(ToolDictNames.craftingToolWireCutter.name()); + break; + } + } + } + + aRecipe = tRecipeList.toArray(); + + if (aRecipe[idx] instanceof Boolean) { + idx++; + } + HashMap tItemStackMap = new HashMap(); + HashMap tItemDataMap = new HashMap(); + tItemStackMap.put(' ', null); + + boolean tRemoveRecipe = true; + + for (; idx < aRecipe.length; idx += 2) { + if (aRecipe[idx] == null || aRecipe[idx + 1] == null) { + if (D1) { + GT_Log.err.println("WARNING: Missing Item for shaped Recipe: " + (aResult == null ? "null" : aResult.getDisplayName())); + for (Object tContent : aRecipe) GT_Log.err.println(tContent); + } + return false; + } + Character chr = (Character) aRecipe[idx]; + Object in = aRecipe[idx + 1]; + if (in instanceof ItemStack) { + tItemStackMap.put(chr, GT_Utility.copy((ItemStack) in)); + tItemDataMap.put(chr, GT_OreDictUnificator.getItemData((ItemStack) in)); + } else if (in instanceof ItemData) { + String tString = in.toString(); + if (tString.equals("plankWood")) { + tItemDataMap.put(chr, new ItemData(Materials.Wood, M)); + } else if (tString.equals("stoneNetherrack")) { + tItemDataMap.put(chr, new ItemData(Materials.Netherrack, M)); + } else if (tString.equals("stoneObsidian")) { + tItemDataMap.put(chr, new ItemData(Materials.Obsidian, M)); + } else if (tString.equals("stoneEndstone")) { + tItemDataMap.put(chr, new ItemData(Materials.Endstone, M)); + } else { + tItemDataMap.put(chr, (ItemData) in); + } + ItemStack tStack = GT_OreDictUnificator.getFirstOre(in, 1); + if (tStack == null) tRemoveRecipe = false; + else tItemStackMap.put(chr, tStack); + in = aRecipe[idx + 1] = in.toString(); + } else if (in instanceof String) { + if (in.equals(OreDictNames.craftingChest.toString())) + tItemDataMap.put(chr, new ItemData(Materials.Wood, M * 8)); + else if (in.equals(OreDictNames.craftingBook.toString())) + tItemDataMap.put(chr, new ItemData(Materials.Paper, M * 3)); + else if (in.equals(OreDictNames.craftingPiston.toString())) + tItemDataMap.put(chr, new ItemData(Materials.Stone, M * 4, Materials.Wood, M * 3)); + else if (in.equals(OreDictNames.craftingFurnace.toString())) + tItemDataMap.put(chr, new ItemData(Materials.Stone, M * 8)); + else if (in.equals(OreDictNames.craftingIndustrialDiamond.toString())) + tItemDataMap.put(chr, new ItemData(Materials.Diamond, M)); + else if (in.equals(OreDictNames.craftingAnvil.toString())) + tItemDataMap.put(chr, new ItemData(Materials.Iron, M * 10)); + ItemStack tStack = GT_OreDictUnificator.getFirstOre(in, 1); + if (tStack == null) tRemoveRecipe = false; + else tItemStackMap.put(chr, tStack); + } else { + throw new IllegalArgumentException(); + } + } + + if (aReversible && aResult != null) { + ItemData[] tData = new ItemData[9]; + int x = -1; + for (char chr : shape.toCharArray()) tData[++x] = tItemDataMap.get(chr); + if (GT_Utility.arrayContainsNonNull(tData)) + GT_OreDictUnificator.addItemData(aResult, new ItemData(tData)); + } + + if (aCheckForCollisions && tRemoveRecipe) { + ItemStack[] tRecipe = new ItemStack[9]; + int x = -1; + for (char chr : shape.toCharArray()) { + tRecipe[++x] = tItemStackMap.get(chr); + if (tRecipe[x] != null && Items.feather.getDamage(tRecipe[x]) == W) + Items.feather.setDamage(tRecipe[x], 0); + } + tThereWasARecipe = removeRecipe(tRecipe) != null || tThereWasARecipe; + } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + + if (aResult == null || aResult.stackSize <= 0) return false; + + if (aRemoveAllOthersWithSameOutput || aRemoveAllOthersWithSameOutputIfTheyHaveSameNBT || aRemoveAllOtherShapedsWithSameOutput || aRemoveAllOtherNativeRecipes) + tThereWasARecipe = removeRecipeByOutput(aResult, !aRemoveAllOthersWithSameOutputIfTheyHaveSameNBT, aRemoveAllOtherShapedsWithSameOutput, aRemoveAllOtherNativeRecipes) || tThereWasARecipe; + + if (aOnlyAddIfThereIsAnyRecipeOutputtingThis && !tThereWasARecipe) { + ArrayList tList = (ArrayList) CraftingManager.getInstance().getRecipeList(); + for (int i = 0; i < tList.size() && !tThereWasARecipe; i++) { + IRecipe tRecipe = tList.get(i); + if (sSpecialRecipeClasses.contains(tRecipe.getClass().getName())) continue; + if (GT_Utility.areStacksEqual(GT_OreDictUnificator.get(tRecipe.getRecipeOutput()), aResult, true)) { + tList.remove(i--); + tThereWasARecipe = true; + } + } + } + + if (Items.feather.getDamage(aResult) == W || Items.feather.getDamage(aResult) < 0) + Items.feather.setDamage(aResult, 0); + + GT_Utility.updateItemStack(aResult); + + if (tThereWasARecipe || !aOnlyAddIfThereIsAnyRecipeOutputtingThis) { + if (sBufferCraftingRecipes && aBuffered) + sBufferRecipeList.add(new GT_Shaped_Recipe(GT_Utility.copy(aResult), aDismantleable, aRemovable, aKeepNBT, aEnchantmentsAdded, aEnchantmentLevelsAdded, aRecipe).setMirrored(aMirrored)); + else + GameRegistry.addRecipe(new GT_Shaped_Recipe(GT_Utility.copy(aResult), aDismantleable, aRemovable, aKeepNBT, aEnchantmentsAdded, aEnchantmentLevelsAdded, aRecipe).setMirrored(aMirrored)); + } + return true; + } + + /** + * Shapeless Crafting Recipes. Deletes conflicting Recipes too. + */ + public static boolean addShapelessEnchantingRecipe(ItemStack aResult, Enchantment[] aEnchantmentsAdded, int[] aEnchantmentLevelsAdded, Object[] aRecipe) { + return addShapelessCraftingRecipe(aResult, aEnchantmentsAdded, aEnchantmentLevelsAdded, true, false, false, false, aRecipe); + } + + /** + * Shapeless Crafting Recipes. Deletes conflicting Recipes too. + */ + public static boolean addShapelessCraftingRecipe(ItemStack aResult, Object[] aRecipe) { + return addShapelessCraftingRecipe(aResult, RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | RecipeBits.BUFFERED, aRecipe); + } + + /** + * Shapeless Crafting Recipes. Deletes conflicting Recipes too. + */ + public static boolean addShapelessCraftingRecipe(ItemStack aResult, long aBitMask, Object[] aRecipe) { + return addShapelessCraftingRecipe(aResult, new Enchantment[0], new int[0], (aBitMask & RecipeBits.BUFFERED) != 0, (aBitMask & RecipeBits.KEEPNBT) != 0, (aBitMask & RecipeBits.DISMANTLEABLE) != 0, (aBitMask & RecipeBits.NOT_REMOVABLE) == 0, aRecipe); + } + + /** + * Shapeless Crafting Recipes. Deletes conflicting Recipes too. + */ + private static boolean addShapelessCraftingRecipe(ItemStack aResult, Enchantment[] aEnchantmentsAdded, int[] aEnchantmentLevelsAdded, boolean aBuffered, boolean aKeepNBT, boolean aDismantleable, boolean aRemovable, Object[] aRecipe) { + aResult = GT_OreDictUnificator.get(true, aResult); + if (aRecipe == null || aRecipe.length <= 0) return false; + for (byte i = 0; i < aRecipe.length; i++) { + if (aRecipe[i] instanceof IItemContainer) + aRecipe[i] = ((IItemContainer) aRecipe[i]).get(1); + else if (aRecipe[i] instanceof Enum) + aRecipe[i] = ((Enum) aRecipe[i]).name(); + else if (!(aRecipe[i] == null || aRecipe[i] instanceof ItemStack || aRecipe[i] instanceof String || aRecipe[i] instanceof Character)) + aRecipe[i] = aRecipe[i].toString(); + } + try { + ItemStack[] tRecipe = new ItemStack[9]; + int i = 0; + for (Object tObject : aRecipe) { + if (tObject == null) { + if (D1) + GT_Log.err.println("WARNING: Missing Item for shapeless Recipe: " + (aResult == null ? "null" : aResult.getDisplayName())); + for (Object tContent : aRecipe) GT_Log.err.println(tContent); + return false; + } + if (tObject instanceof ItemStack) { + tRecipe[i] = (ItemStack) tObject; + } else if (tObject instanceof String) { + tRecipe[i] = GT_OreDictUnificator.getFirstOre(tObject, 1); + if (tRecipe[i] == null) break; + } else if (tObject instanceof Boolean) { + // + } else { + throw new IllegalArgumentException(); + } + i++; + } + removeRecipe(tRecipe); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + + if (aResult == null || aResult.stackSize <= 0) return false; + + if (Items.feather.getDamage(aResult) == W || Items.feather.getDamage(aResult) < 0) + Items.feather.setDamage(aResult, 0); + + GT_Utility.updateItemStack(aResult); + + if (sBufferCraftingRecipes && aBuffered) + sBufferRecipeList.add(new GT_Shapeless_Recipe(GT_Utility.copy(aResult), aDismantleable, aRemovable, aKeepNBT, aEnchantmentsAdded, aEnchantmentLevelsAdded, aRecipe)); + else + GameRegistry.addRecipe(new GT_Shapeless_Recipe(GT_Utility.copy(aResult), aDismantleable, aRemovable, aKeepNBT, aEnchantmentsAdded, aEnchantmentLevelsAdded, aRecipe)); + return true; + } + + /** + * Removes a Smelting Recipe + */ + public static boolean removeFurnaceSmelting(ItemStack aInput) { + if (aInput != null) { + for (Object tInput : FurnaceRecipes.smelting().getSmeltingList().keySet()) { + if (GT_Utility.isStackValid(tInput) && GT_Utility.areStacksEqual(aInput, (ItemStack) tInput, true)) { + FurnaceRecipes.smelting().getSmeltingList().remove(tInput); + return true; + } + } + } + return false; + } + + /** + * Removes a Crafting Recipe and gives you the former output of it. + * + * @param aRecipe The content of the Crafting Grid as ItemStackArray with length 9 + * @return the output of the old Recipe or null if there was nothing. + */ public static ItemStack removeRecipe(ItemStack... aRecipe) { - if (aRecipe == null) return null; - boolean temp = false; - for (byte i = 0; i < aRecipe.length; i++) { - if (aRecipe[i] != null) { - temp = true; - break; - } - } - if (!temp) return null; - ItemStack rReturn = null; - InventoryCrafting aCrafting = new InventoryCrafting(new Container() {@Override public boolean canInteractWith(EntityPlayer var1) {return false;}}, 3, 3); - for (int i = 0; i < aRecipe.length && i < 9; i++) aCrafting.setInventorySlotContents(i, aRecipe[i]); - ArrayList tList = (ArrayList)CraftingManager.getInstance().getRecipeList(); - for (int i = 0; i < tList.size(); i++) {try {for (; i < tList.size(); i++) { - if ((!(tList.get(i) instanceof IGT_CraftingRecipe) || ((IGT_CraftingRecipe)tList.get(i)).isRemovable()) && tList.get(i).matches(aCrafting, DW)) { - rReturn = tList.get(i).getCraftingResult(aCrafting); - if (rReturn != null) tList.remove(i--); - } - }} catch(Throwable e) {e.printStackTrace(GT_Log.err);}} - return rReturn; + if (aRecipe == null) return null; + boolean temp = false; + for (byte i = 0; i < aRecipe.length; i++) { + if (aRecipe[i] != null) { + temp = true; + break; + } + } + if (!temp) return null; + ItemStack rReturn = null; + InventoryCrafting aCrafting = new InventoryCrafting(new Container() { + @Override + public boolean canInteractWith(EntityPlayer var1) { + return false; + } + }, 3, 3); + for (int i = 0; i < aRecipe.length && i < 9; i++) aCrafting.setInventorySlotContents(i, aRecipe[i]); + ArrayList tList = (ArrayList) CraftingManager.getInstance().getRecipeList(); + for (int i = 0; i < tList.size(); i++) { + try { + for (; i < tList.size(); i++) { + if ((!(tList.get(i) instanceof IGT_CraftingRecipe) || ((IGT_CraftingRecipe) tList.get(i)).isRemovable()) && tList.get(i).matches(aCrafting, DW)) { + rReturn = tList.get(i).getCraftingResult(aCrafting); + if (rReturn != null) tList.remove(i--); + } + } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } + return rReturn; } public static boolean removeRecipeByOutput(ItemStack aOutput) { - return removeRecipeByOutput(aOutput, true , false, false); + return removeRecipeByOutput(aOutput, true, false, false); } - public static Collection sNativeRecipeClasses = new HashSet(), sSpecialRecipeClasses = new HashSet(); - - static { - sNativeRecipeClasses.add(ShapedRecipes.class.getName()); - sNativeRecipeClasses.add(ShapedOreRecipe.class.getName()); - sNativeRecipeClasses.add(GT_Shaped_Recipe.class.getName()); - sNativeRecipeClasses.add(ShapelessRecipes.class.getName()); - sNativeRecipeClasses.add(ShapelessOreRecipe.class.getName()); - sNativeRecipeClasses.add(GT_Shapeless_Recipe.class.getName()); - sNativeRecipeClasses.add(ic2.core.AdvRecipe.class.getName()); - sNativeRecipeClasses.add(ic2.core.AdvShapelessRecipe.class.getName()); - sNativeRecipeClasses.add("appeng.recipes.game.ShapedRecipe"); - sNativeRecipeClasses.add("appeng.recipes.game.ShapelessRecipe"); - sNativeRecipeClasses.add("forestry.core.utils.ShapedRecipeCustom"); - - // Recipe Classes, which should never be removed. - sSpecialRecipeClasses.add(net.minecraft.item.crafting.RecipeFireworks.class.getName()); - sSpecialRecipeClasses.add(net.minecraft.item.crafting.RecipesArmorDyes.class.getName()); - sSpecialRecipeClasses.add(net.minecraft.item.crafting.RecipeBookCloning.class.getName()); - sSpecialRecipeClasses.add(net.minecraft.item.crafting.RecipesMapCloning.class.getName()); - sSpecialRecipeClasses.add(net.minecraft.item.crafting.RecipesMapExtending.class.getName()); - sSpecialRecipeClasses.add("jds.bibliocraft.BiblioSpecialRecipes"); - sSpecialRecipeClasses.add("dan200.qcraft.shared.EntangledQBlockRecipe"); - sSpecialRecipeClasses.add("dan200.qcraft.shared.EntangledQuantumComputerRecipe"); - sSpecialRecipeClasses.add("dan200.qcraft.shared.QBlockRecipe"); - sSpecialRecipeClasses.add("appeng.recipes.game.FacadeRecipe"); - sSpecialRecipeClasses.add("appeng.recipes.game.DisassembleRecipe"); - sSpecialRecipeClasses.add("mods.railcraft.common.carts.LocomotivePaintingRecipe"); - sSpecialRecipeClasses.add("mods.railcraft.common.util.crafting.RotorRepairRecipe"); - sSpecialRecipeClasses.add("mods.railcraft.common.util.crafting.RoutingTableCopyRecipe"); - sSpecialRecipeClasses.add("mods.railcraft.common.util.crafting.RoutingTicketCopyRecipe"); - sSpecialRecipeClasses.add("mods.railcraft.common.util.crafting.TankCartFilterRecipe"); - sSpecialRecipeClasses.add("mods.railcraft.common.emblems.LocomotiveEmblemRecipe"); - sSpecialRecipeClasses.add("mods.railcraft.common.emblems.EmblemPostColorRecipe"); - sSpecialRecipeClasses.add("mods.railcraft.common.emblems.EmblemPostEmblemRecipe"); - sSpecialRecipeClasses.add("mods.immibis.redlogic.interaction.RecipeDyeLumarButton"); - sSpecialRecipeClasses.add("thaumcraft.common.items.armor.RecipesRobeArmorDyes"); - sSpecialRecipeClasses.add("thaumcraft.common.items.armor.RecipesVoidRobeArmorDyes"); - sSpecialRecipeClasses.add("thaumcraft.common.lib.crafting.ShapelessNBTOreRecipe"); - sSpecialRecipeClasses.add("twilightforest.item.TFMapCloningRecipe"); - sSpecialRecipeClasses.add("forestry.lepidopterology.MatingRecipe"); - sSpecialRecipeClasses.add("micdoodle8.mods.galacticraft.planets.asteroids.recipe.CanisterRecipes"); - sSpecialRecipeClasses.add("shedar.mods.ic2.nuclearcontrol.StorageArrayRecipe"); - } - - /** - * Removes a Crafting Recipe. - * @param aOutput The output of the Recipe. - * @return if it has removed at least one Recipe. - */ + /** + * Removes a Crafting Recipe. + * + * @param aOutput The output of the Recipe. + * @return if it has removed at least one Recipe. + */ public static boolean removeRecipeByOutput(ItemStack aOutput, boolean aIgnoreNBT, boolean aNotRemoveShapelessRecipes, boolean aOnlyRemoveNativeHandlers) { - if (aOutput == null) return false; - boolean rReturn = false; - ArrayList tList = (ArrayList)CraftingManager.getInstance().getRecipeList(); - aOutput = GT_OreDictUnificator.get(aOutput); - for (int i = 0; i < tList.size(); i++) { - IRecipe tRecipe = tList.get(i); - if (aNotRemoveShapelessRecipes && (tRecipe instanceof ShapelessRecipes || tRecipe instanceof ShapelessOreRecipe)) continue; - if (aOnlyRemoveNativeHandlers) { - if (!sNativeRecipeClasses.contains(tRecipe.getClass().getName())) continue; - } else { - if (sSpecialRecipeClasses.contains(tRecipe.getClass().getName())) continue; - } - ItemStack tStack = tRecipe.getRecipeOutput(); - if ((!(tRecipe instanceof IGT_CraftingRecipe) || ((IGT_CraftingRecipe)tRecipe).isRemovable()) && GT_Utility.areStacksEqual(GT_OreDictUnificator.get(tStack), aOutput, aIgnoreNBT)) { - tList.remove(i--); - rReturn = true; - } - } - return rReturn; + if (aOutput == null) return false; + boolean rReturn = false; + ArrayList tList = (ArrayList) CraftingManager.getInstance().getRecipeList(); + aOutput = GT_OreDictUnificator.get(aOutput); + for (int i = 0; i < tList.size(); i++) { + IRecipe tRecipe = tList.get(i); + if (aNotRemoveShapelessRecipes && (tRecipe instanceof ShapelessRecipes || tRecipe instanceof ShapelessOreRecipe)) + continue; + if (aOnlyRemoveNativeHandlers) { + if (!sNativeRecipeClasses.contains(tRecipe.getClass().getName())) continue; + } else { + if (sSpecialRecipeClasses.contains(tRecipe.getClass().getName())) continue; + } + ItemStack tStack = tRecipe.getRecipeOutput(); + if ((!(tRecipe instanceof IGT_CraftingRecipe) || ((IGT_CraftingRecipe) tRecipe).isRemovable()) && GT_Utility.areStacksEqual(GT_OreDictUnificator.get(tStack), aOutput, aIgnoreNBT)) { + tList.remove(i--); + rReturn = true; + } + } + return rReturn; } - + /** * Checks all Crafting Handlers for Recipe Output * Used for the Autocrafting Table */ public static ItemStack getAllRecipeOutput(World aWorld, ItemStack... aRecipe) { - if (aRecipe == null || aRecipe.length == 0) return null; - - if (aWorld == null) aWorld = DW; - - boolean temp = false; - for (byte i = 0; i < aRecipe.length; i++) { - if (aRecipe[i] != null) { - temp = true; - break; - } - } - if (!temp) return null; - InventoryCrafting aCrafting = new InventoryCrafting(new Container() {@Override public boolean canInteractWith(EntityPlayer var1) {return false;}}, 3, 3); - for (int i = 0; i < 9 && i < aRecipe.length; i++) aCrafting.setInventorySlotContents(i, aRecipe[i]); - List tList = CraftingManager.getInstance().getRecipeList(); - synchronized(sAllRecipeList) { - if (sAllRecipeList.size() != tList.size()) { - sAllRecipeList.clear(); - sAllRecipeList.addAll(tList); - } - for (int i = 0, j = sAllRecipeList.size(); i < j; i++) { - IRecipe tRecipe = sAllRecipeList.get(i); - if (tRecipe.matches(aCrafting, aWorld)) { - if (i > 10) { - sAllRecipeList.remove(i); - sAllRecipeList.add(i-10, tRecipe); - } - return tRecipe.getCraftingResult(aCrafting); - } - } - } - + if (aRecipe == null || aRecipe.length == 0) return null; + + if (aWorld == null) aWorld = DW; + + boolean temp = false; + for (byte i = 0; i < aRecipe.length; i++) { + if (aRecipe[i] != null) { + temp = true; + break; + } + } + if (!temp) return null; + InventoryCrafting aCrafting = new InventoryCrafting(new Container() { + @Override + public boolean canInteractWith(EntityPlayer var1) { + return false; + } + }, 3, 3); + for (int i = 0; i < 9 && i < aRecipe.length; i++) aCrafting.setInventorySlotContents(i, aRecipe[i]); + List tList = CraftingManager.getInstance().getRecipeList(); + synchronized (sAllRecipeList) { + if (sAllRecipeList.size() != tList.size()) { + sAllRecipeList.clear(); + sAllRecipeList.addAll(tList); + } + for (int i = 0, j = sAllRecipeList.size(); i < j; i++) { + IRecipe tRecipe = sAllRecipeList.get(i); + if (tRecipe.matches(aCrafting, aWorld)) { + if (i > 10) { + sAllRecipeList.remove(i); + sAllRecipeList.add(i - 10, tRecipe); + } + return tRecipe.getCraftingResult(aCrafting); + } + } + } + int tIndex = 0; ItemStack tStack1 = null, tStack2 = null; for (int i = 0, j = aCrafting.getSizeInventory(); i < j; i++) { @@ -1132,597 +1191,679 @@ public class GT_ModHandler { tIndex++; } } - + if (tIndex == 2) { assert tStack1 != null && tStack2 != null; - if (tStack1.getItem() == tStack2.getItem() && tStack1.stackSize == 1 && tStack2.stackSize == 1 && tStack1.getItem().isRepairable()) { - int tNewDamage = tStack1.getMaxDamage() + tStack1.getItemDamage() - tStack2.getItemDamage() + tStack1.getMaxDamage() / 20; - return new ItemStack(tStack1.getItem(), 1, tNewDamage<0?0:tNewDamage); + if (tStack1.getItem() == tStack2.getItem() && tStack1.stackSize == 1 && tStack2.stackSize == 1 && tStack1.getItem().isRepairable()) { + int tNewDamage = tStack1.getMaxDamage() + tStack1.getItemDamage() - tStack2.getItemDamage() + tStack1.getMaxDamage() / 20; + return new ItemStack(tStack1.getItem(), 1, tNewDamage < 0 ? 0 : tNewDamage); } } - - return null; + + return null; } - + /** * Gives you a copy of the Output from a Crafting Recipe * Used for Recipe Detection. */ public static ItemStack getRecipeOutput(ItemStack... aRecipe) { - return getRecipeOutput(false, aRecipe); + return getRecipeOutput(false, aRecipe); } - + /** * Gives you a copy of the Output from a Crafting Recipe * Used for Recipe Detection. */ public static ItemStack getRecipeOutput(boolean aUncopiedStack, ItemStack... aRecipe) { - if (aRecipe == null) return null; - boolean temp = false; - for (byte i = 0; i < aRecipe.length; i++) { - if (aRecipe[i] != null) { - temp = true; - break; - } - } - if (!temp) return null; - InventoryCrafting aCrafting = new InventoryCrafting(new Container() {@Override public boolean canInteractWith(EntityPlayer var1) {return false;}}, 3, 3); - for (int i = 0; i < 9 && i < aRecipe.length; i++) aCrafting.setInventorySlotContents(i, aRecipe[i]); - ArrayList tList = (ArrayList)CraftingManager.getInstance().getRecipeList(); - for (int i = 0; i < tList.size(); i++) {temp = false; - try { - temp = tList.get(i).matches(aCrafting, DW); - } catch(Throwable e) {e.printStackTrace(GT_Log.err);} - if (temp) { - ItemStack tOutput = aUncopiedStack?tList.get(i).getRecipeOutput():tList.get(i).getCraftingResult(aCrafting); - if (tOutput == null || tOutput.stackSize <= 0) { - // Seriously, who would ever do that shit? - if (!GregTech_API.sPostloadFinished) throw new GT_ItsNotMyFaultException("Seems another Mod added a Crafting Recipe with null Output. Tell the Developer of said Mod to fix that."); - } else { - if (aUncopiedStack) return tOutput; - return GT_Utility.copy(tOutput); - } - } - } - return null; + if (aRecipe == null) return null; + boolean temp = false; + for (byte i = 0; i < aRecipe.length; i++) { + if (aRecipe[i] != null) { + temp = true; + break; + } + } + if (!temp) return null; + InventoryCrafting aCrafting = new InventoryCrafting(new Container() { + @Override + public boolean canInteractWith(EntityPlayer var1) { + return false; + } + }, 3, 3); + for (int i = 0; i < 9 && i < aRecipe.length; i++) aCrafting.setInventorySlotContents(i, aRecipe[i]); + ArrayList tList = (ArrayList) CraftingManager.getInstance().getRecipeList(); + for (int i = 0; i < tList.size(); i++) { + temp = false; + try { + temp = tList.get(i).matches(aCrafting, DW); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + if (temp) { + ItemStack tOutput = aUncopiedStack ? tList.get(i).getRecipeOutput() : tList.get(i).getCraftingResult(aCrafting); + if (tOutput == null || tOutput.stackSize <= 0) { + // Seriously, who would ever do that shit? + if (!GregTech_API.sPostloadFinished) + throw new GT_ItsNotMyFaultException("Seems another Mod added a Crafting Recipe with null Output. Tell the Developer of said Mod to fix that."); + } else { + if (aUncopiedStack) return tOutput; + return GT_Utility.copy(tOutput); + } + } + } + return null; } - - public static GT_HashSet sNonReplaceableItems = new GT_HashSet(); - + /** * Gives you a list of the Outputs from a Crafting Recipe * If you have multiple Mods, which add Bronze Armor for example * This also removes old Recipes from the List. */ public static ArrayList getVanillyToolRecipeOutputs(ItemStack... aRecipe) { - if (!GregTech_API.sPostloadStarted || GregTech_API.sPostloadFinished) sSingleNonBlockDamagableRecipeList.clear(); - if (sSingleNonBlockDamagableRecipeList.isEmpty()) { - for (IRecipe tRecipe : (ArrayList)CraftingManager.getInstance().getRecipeList()) { - ItemStack tStack = tRecipe.getRecipeOutput(); - if (GT_Utility.isStackValid(tStack) && tStack.getMaxStackSize() == 1 && tStack.getMaxDamage() > 0 && !(tStack.getItem() instanceof ItemBlock) && !(tStack.getItem() instanceof IReactorComponent) && !isElectricItem(tStack) && !GT_Utility.isStackInList(tStack, sNonReplaceableItems)) { - if (!(tRecipe instanceof ShapelessRecipes || tRecipe instanceof ShapelessOreRecipe)) { - if (tRecipe instanceof ShapedOreRecipe) { - boolean temp = true; - for (Object tObject : ((ShapedOreRecipe)tRecipe).getInput()) if (tObject != null) { - if (tObject instanceof ItemStack && (((ItemStack)tObject).getItem() == null || ((ItemStack)tObject).getMaxStackSize() < 2 || ((ItemStack)tObject).getMaxDamage() > 0 || ((ItemStack)tObject).getItem() instanceof ItemBlock)) { - temp = false; - break; - } - if (tObject instanceof List && ((List)tObject).isEmpty()) { - temp = false; - break; - } - } - if (temp) sSingleNonBlockDamagableRecipeList.add(tRecipe); - } else if (tRecipe instanceof ShapedRecipes) { - boolean temp = true; - for (ItemStack tObject : ((ShapedRecipes)tRecipe).recipeItems) { - if (tObject != null && (tObject.getItem() == null || tObject.getMaxStackSize() < 2 || tObject.getMaxDamage() > 0 || tObject.getItem() instanceof ItemBlock)) { - temp = false; - break; - } - } - if (temp) sSingleNonBlockDamagableRecipeList.add(tRecipe); - } else { - sSingleNonBlockDamagableRecipeList.add(tRecipe); - } - } - } - } - GT_Log.out.println("GT_Mod: Created a List of Tool Recipes containing " + sSingleNonBlockDamagableRecipeList.size() + " Recipes for recycling." + (sSingleNonBlockDamagableRecipeList.size()>1024?" Scanning all these Recipes is the reason for the startup Lag you receive right now.":E)); - } - ArrayList rList = getRecipeOutputs(sSingleNonBlockDamagableRecipeList, true, aRecipe); - if (!GregTech_API.sPostloadStarted || GregTech_API.sPostloadFinished) sSingleNonBlockDamagableRecipeList.clear(); - return rList; + if (!GregTech_API.sPostloadStarted || GregTech_API.sPostloadFinished) + sSingleNonBlockDamagableRecipeList.clear(); + if (sSingleNonBlockDamagableRecipeList.isEmpty()) { + for (IRecipe tRecipe : (ArrayList) CraftingManager.getInstance().getRecipeList()) { + ItemStack tStack = tRecipe.getRecipeOutput(); + if (GT_Utility.isStackValid(tStack) && tStack.getMaxStackSize() == 1 && tStack.getMaxDamage() > 0 && !(tStack.getItem() instanceof ItemBlock) && !(tStack.getItem() instanceof IReactorComponent) && !isElectricItem(tStack) && !GT_Utility.isStackInList(tStack, sNonReplaceableItems)) { + if (!(tRecipe instanceof ShapelessRecipes || tRecipe instanceof ShapelessOreRecipe)) { + if (tRecipe instanceof ShapedOreRecipe) { + boolean temp = true; + for (Object tObject : ((ShapedOreRecipe) tRecipe).getInput()) + if (tObject != null) { + if (tObject instanceof ItemStack && (((ItemStack) tObject).getItem() == null || ((ItemStack) tObject).getMaxStackSize() < 2 || ((ItemStack) tObject).getMaxDamage() > 0 || ((ItemStack) tObject).getItem() instanceof ItemBlock)) { + temp = false; + break; + } + if (tObject instanceof List && ((List) tObject).isEmpty()) { + temp = false; + break; + } + } + if (temp) sSingleNonBlockDamagableRecipeList.add(tRecipe); + } else if (tRecipe instanceof ShapedRecipes) { + boolean temp = true; + for (ItemStack tObject : ((ShapedRecipes) tRecipe).recipeItems) { + if (tObject != null && (tObject.getItem() == null || tObject.getMaxStackSize() < 2 || tObject.getMaxDamage() > 0 || tObject.getItem() instanceof ItemBlock)) { + temp = false; + break; + } + } + if (temp) sSingleNonBlockDamagableRecipeList.add(tRecipe); + } else { + sSingleNonBlockDamagableRecipeList.add(tRecipe); + } + } + } + } + GT_Log.out.println("GT_Mod: Created a List of Tool Recipes containing " + sSingleNonBlockDamagableRecipeList.size() + " Recipes for recycling." + (sSingleNonBlockDamagableRecipeList.size() > 1024 ? " Scanning all these Recipes is the reason for the startup Lag you receive right now." : E)); + } + ArrayList rList = getRecipeOutputs(sSingleNonBlockDamagableRecipeList, true, aRecipe); + if (!GregTech_API.sPostloadStarted || GregTech_API.sPostloadFinished) + sSingleNonBlockDamagableRecipeList.clear(); + return rList; } - + /** * Gives you a list of the Outputs from a Crafting Recipe * If you have multiple Mods, which add Bronze Armor for example */ public static ArrayList getRecipeOutputs(ItemStack... aRecipe) { - return getRecipeOutputs(CraftingManager.getInstance().getRecipeList(), false, aRecipe); + return getRecipeOutputs(CraftingManager.getInstance().getRecipeList(), false, aRecipe); } - + /** * Gives you a list of the Outputs from a Crafting Recipe * If you have multiple Mods, which add Bronze Armor for example */ public static ArrayList getRecipeOutputs(List aList, boolean aDeleteFromList, ItemStack... aRecipe) { - ArrayList rList = new ArrayList(); - if (aRecipe == null) return rList; - boolean temp = false; - for (byte i = 0; i < aRecipe.length; i++) { - if (aRecipe[i] != null) { - temp = true; - break; - } - } - if (!temp) return rList; - InventoryCrafting aCrafting = new InventoryCrafting(new Container() {@Override - public boolean canInteractWith(EntityPlayer var1) {return false;}}, 3, 3); - for (int i = 0; i < 9 && i < aRecipe.length; i++) aCrafting.setInventorySlotContents(i, aRecipe[i]); - for (int i = 0; i < aList.size(); i++) { - temp = false; - try { - temp = aList.get(i).matches(aCrafting, DW); - } catch(Throwable e) {e.printStackTrace(GT_Log.err);} - if (temp) { - ItemStack tOutput = aList.get(i).getCraftingResult(aCrafting); - if (tOutput == null || tOutput.stackSize <= 0) { - // Seriously, who would ever do that shit? - if (!GregTech_API.sPostloadFinished) throw new GT_ItsNotMyFaultException("Seems another Mod added a Crafting Recipe with null Output. Tell the Developer of said Mod to fix that."); - } else { - rList.add(GT_Utility.copy(tOutput)); - if (aDeleteFromList) aList.remove(i--); - } - } - } - return rList; + ArrayList rList = new ArrayList(); + if (aRecipe == null) return rList; + boolean temp = false; + for (byte i = 0; i < aRecipe.length; i++) { + if (aRecipe[i] != null) { + temp = true; + break; + } + } + if (!temp) return rList; + InventoryCrafting aCrafting = new InventoryCrafting(new Container() { + @Override + public boolean canInteractWith(EntityPlayer var1) { + return false; + } + }, 3, 3); + for (int i = 0; i < 9 && i < aRecipe.length; i++) aCrafting.setInventorySlotContents(i, aRecipe[i]); + for (int i = 0; i < aList.size(); i++) { + temp = false; + try { + temp = aList.get(i).matches(aCrafting, DW); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + if (temp) { + ItemStack tOutput = aList.get(i).getCraftingResult(aCrafting); + if (tOutput == null || tOutput.stackSize <= 0) { + // Seriously, who would ever do that shit? + if (!GregTech_API.sPostloadFinished) + throw new GT_ItsNotMyFaultException("Seems another Mod added a Crafting Recipe with null Output. Tell the Developer of said Mod to fix that."); + } else { + rList.add(GT_Utility.copy(tOutput)); + if (aDeleteFromList) aList.remove(i--); + } + } + } + return rList; } - + /** * Used in my own Macerator. Decreases StackSize of the Input if wanted. */ public static ItemStack getMaceratorOutput(ItemStack aInput, boolean aRemoveInput, ItemStack aOutputSlot) { - return GT_Utility.copy(getMachineOutput(aInput, getMaceratorRecipeList(), aRemoveInput, new NBTTagCompound(), aOutputSlot)[0]); + return GT_Utility.copy(getMachineOutput(aInput, getMaceratorRecipeList(), aRemoveInput, new NBTTagCompound(), aOutputSlot)[0]); } - + /** * Used in my own Extractor. Decreases StackSize of the Input if wanted. */ public static ItemStack getExtractorOutput(ItemStack aInput, boolean aRemoveInput, ItemStack aOutputSlot) { - return GT_Utility.copy(getMachineOutput(aInput, getExtractorRecipeList(), aRemoveInput, new NBTTagCompound(), aOutputSlot)[0]); + return GT_Utility.copy(getMachineOutput(aInput, getExtractorRecipeList(), aRemoveInput, new NBTTagCompound(), aOutputSlot)[0]); } - + /** * Used in my own Compressor. Decreases StackSize of the Input if wanted. */ public static ItemStack getCompressorOutput(ItemStack aInput, boolean aRemoveInput, ItemStack aOutputSlot) { - return GT_Utility.copy(getMachineOutput(aInput, getCompressorRecipeList(), aRemoveInput, new NBTTagCompound(), aOutputSlot)[0]); + return GT_Utility.copy(getMachineOutput(aInput, getCompressorRecipeList(), aRemoveInput, new NBTTagCompound(), aOutputSlot)[0]); } - + /** * Used in my own Furnace. */ public static ItemStack getSmeltingOutput(ItemStack aInput, boolean aRemoveInput, ItemStack aOutputSlot) { - if (aInput == null || aInput.stackSize < 1) return null; - ItemStack rStack = GT_OreDictUnificator.get(FurnaceRecipes.smelting().getSmeltingResult(aInput)); - if (rStack != null && (aOutputSlot == null || (GT_Utility.areStacksEqual(rStack, aOutputSlot) && rStack.stackSize + aOutputSlot.stackSize <= aOutputSlot.getMaxStackSize()))) { - if (aRemoveInput) aInput.stackSize--; - return rStack; - } - return null; + if (aInput == null || aInput.stackSize < 1) return null; + ItemStack rStack = GT_OreDictUnificator.get(FurnaceRecipes.smelting().getSmeltingResult(aInput)); + if (rStack != null && (aOutputSlot == null || (GT_Utility.areStacksEqual(rStack, aOutputSlot) && rStack.stackSize + aOutputSlot.stackSize <= aOutputSlot.getMaxStackSize()))) { + if (aRemoveInput) aInput.stackSize--; + return rStack; + } + return null; } - + /** * Used in my own Machines. Decreases StackSize of the Input if wanted. - * + *

* Checks also if there is enough Space in the Output Slots. */ public static ItemStack[] getMachineOutput(ItemStack aInput, Map aRecipeList, boolean aRemoveInput, NBTTagCompound rRecipeMetaData, ItemStack... aOutputSlots) { - if (aOutputSlots == null || aOutputSlots.length <= 0) return new ItemStack[0]; - if (aInput == null) return new ItemStack[aOutputSlots.length]; - try { - for (Entry tEntry : aRecipeList.entrySet()) { - if (tEntry.getKey().matches(aInput)) { - if (tEntry.getKey().getAmount() <= aInput.stackSize) { - ItemStack[] tList = (ItemStack[])tEntry.getValue().items.toArray(); - if (tList.length == 0) break; - ItemStack[] rList = new ItemStack[aOutputSlots.length]; - rRecipeMetaData.setTag("return", tEntry.getValue().metadata); - for (byte i = 0; i < aOutputSlots.length && i < tList.length; i++) { - if (tList[i] != null) { - if (aOutputSlots[i] == null || (GT_Utility.areStacksEqual(tList[i], aOutputSlots[i]) && tList[i].stackSize + aOutputSlots[i].stackSize <= aOutputSlots[i].getMaxStackSize())) { - rList[i] = GT_Utility.copy(tList[i]); - } else { - return new ItemStack[aOutputSlots.length]; - } - } - } - - if (aRemoveInput) aInput.stackSize-=tEntry.getKey().getAmount(); - return rList; - } - break; - } - } - } catch(Throwable e) { - if (D1) e.printStackTrace(GT_Log.err); - } - return new ItemStack[aOutputSlots.length]; + if (aOutputSlots == null || aOutputSlots.length <= 0) return new ItemStack[0]; + if (aInput == null) return new ItemStack[aOutputSlots.length]; + try { + for (Entry tEntry : aRecipeList.entrySet()) { + if (tEntry.getKey().matches(aInput)) { + if (tEntry.getKey().getAmount() <= aInput.stackSize) { + ItemStack[] tList = (ItemStack[]) tEntry.getValue().items.toArray(); + if (tList.length == 0) break; + ItemStack[] rList = new ItemStack[aOutputSlots.length]; + rRecipeMetaData.setTag("return", tEntry.getValue().metadata); + for (byte i = 0; i < aOutputSlots.length && i < tList.length; i++) { + if (tList[i] != null) { + if (aOutputSlots[i] == null || (GT_Utility.areStacksEqual(tList[i], aOutputSlots[i]) && tList[i].stackSize + aOutputSlots[i].stackSize <= aOutputSlots[i].getMaxStackSize())) { + rList[i] = GT_Utility.copy(tList[i]); + } else { + return new ItemStack[aOutputSlots.length]; + } + } + } + + if (aRemoveInput) aInput.stackSize -= tEntry.getKey().getAmount(); + return rList; + } + break; + } + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + return new ItemStack[aOutputSlots.length]; } - + /** * Used in my own Recycler. - * + *

* Only produces Scrap if aScrapChance == 0. aScrapChance is usually the random Number I give to the Function * If you directly insert 0 as aScrapChance then you can check if its Recycler-Blacklisted or similar */ public static ItemStack getRecyclerOutput(ItemStack aInput, int aScrapChance) { - if (aInput == null || aScrapChance != 0) return null; - try { - if (ic2.api.recipe.Recipes.recyclerWhitelist.isEmpty()) return ic2.api.recipe.Recipes.recyclerBlacklist.contains(aInput)?null:ItemList.IC2_Scrap.get(1); - return ic2.api.recipe.Recipes.recyclerWhitelist.contains(aInput)?ItemList.IC2_Scrap.get(1):null; - } catch (Throwable e) {/*Do nothing*/} - try { - return ic2.api.recipe.Recipes.recyclerBlacklist.contains(aInput)?null:ItemList.IC2_Scrap.get(1); - } catch (Throwable e) {/*Do nothing*/} - return null; + if (aInput == null || aScrapChance != 0) return null; + try { + if (ic2.api.recipe.Recipes.recyclerWhitelist.isEmpty()) + return ic2.api.recipe.Recipes.recyclerBlacklist.contains(aInput) ? null : ItemList.IC2_Scrap.get(1); + return ic2.api.recipe.Recipes.recyclerWhitelist.contains(aInput) ? ItemList.IC2_Scrap.get(1) : null; + } catch (Throwable e) {/*Do nothing*/} + try { + return ic2.api.recipe.Recipes.recyclerBlacklist.contains(aInput) ? null : ItemList.IC2_Scrap.get(1); + } catch (Throwable e) {/*Do nothing*/} + return null; } - + /** * For the Scrapboxinator */ - public static ItemStack getRandomScrapboxDrop() { - return ic2.api.recipe.Recipes.scrapboxDrops.getDrop(ItemList.IC2_Scrapbox.get(1), false); - } - - /** - * Charges an Electric Item. Only if it's a valid Electric Item of course. - * This forces the Usage of proper Voltages (so not the transfer limits defined by the Items) unless you ignore the Transfer Limit. - * If aTier is Integer.MAX_VALUE it will ignore Tier based Limitations. - * @return the actually used Energy. - */ - public static int chargeElectricItem(ItemStack aStack, int aCharge, int aTier, boolean aIgnoreLimit, boolean aSimulate) { - try { - if (isElectricItem(aStack)) { - int tTier = ((ic2.api.item.IElectricItem)aStack.getItem()).getTier(aStack); - if (tTier < 0 || tTier == aTier || aTier == Integer.MAX_VALUE) { - if (!aIgnoreLimit && tTier >= 0) aCharge = (int)Math.min(aCharge, V[Math.max(0, Math.min(V.length-1, tTier))]); - if (aCharge > 0) { - int rCharge = (int)Math.max(0.0, ic2.api.item.ElectricItem.manager.charge(aStack, aCharge, tTier, true, aSimulate)); - return rCharge + (rCharge * 4 > aTier ? aTier : 0); - } - } - } - } catch (Throwable e) {/*Do nothing*/} - return 0; - } - - /** - * Discharges an Electric Item. Only if it's a valid Electric Item for that of course. - * This forces the Usage of proper Voltages (so not the transfer limits defined by the Items) unless you ignore the Transfer Limit. - * If aTier is Integer.MAX_VALUE it will ignore Tier based Limitations. - * @return the Energy got from the Item. - */ - public static int dischargeElectricItem(ItemStack aStack, int aCharge, int aTier, boolean aIgnoreLimit, boolean aSimulate, boolean aIgnoreDischargability) { - try { + public static ItemStack getRandomScrapboxDrop() { + return ic2.api.recipe.Recipes.scrapboxDrops.getDrop(ItemList.IC2_Scrapbox.get(1), false); + } + + /** + * Charges an Electric Item. Only if it's a valid Electric Item of course. + * This forces the Usage of proper Voltages (so not the transfer limits defined by the Items) unless you ignore the Transfer Limit. + * If aTier is Integer.MAX_VALUE it will ignore Tier based Limitations. + * + * @return the actually used Energy. + */ + public static int chargeElectricItem(ItemStack aStack, int aCharge, int aTier, boolean aIgnoreLimit, boolean aSimulate) { + try { + if (isElectricItem(aStack)) { + int tTier = ((ic2.api.item.IElectricItem) aStack.getItem()).getTier(aStack); + if (tTier < 0 || tTier == aTier || aTier == Integer.MAX_VALUE) { + if (!aIgnoreLimit && tTier >= 0) + aCharge = (int) Math.min(aCharge, V[Math.max(0, Math.min(V.length - 1, tTier))]); + if (aCharge > 0) { + int rCharge = (int) Math.max(0.0, ic2.api.item.ElectricItem.manager.charge(aStack, aCharge, tTier, true, aSimulate)); + return rCharge + (rCharge * 4 > aTier ? aTier : 0); + } + } + } + } catch (Throwable e) {/*Do nothing*/} + return 0; + } + + /** + * Discharges an Electric Item. Only if it's a valid Electric Item for that of course. + * This forces the Usage of proper Voltages (so not the transfer limits defined by the Items) unless you ignore the Transfer Limit. + * If aTier is Integer.MAX_VALUE it will ignore Tier based Limitations. + * + * @return the Energy got from the Item. + */ + public static int dischargeElectricItem(ItemStack aStack, int aCharge, int aTier, boolean aIgnoreLimit, boolean aSimulate, boolean aIgnoreDischargability) { + try { // if (isElectricItem(aStack) && (aIgnoreDischargability || ((ic2.api.item.IElectricItem)aStack.getItem()).canProvideEnergy(aStack))) { - if (isElectricItem(aStack)) { - int tTier = ((ic2.api.item.IElectricItem)aStack.getItem()).getTier(aStack); - if (tTier < 0 || tTier == aTier || aTier == Integer.MAX_VALUE) { - if (!aIgnoreLimit && tTier >= 0) aCharge = (int)Math.min(aCharge, V[Math.max(0, Math.min(V.length-1, tTier))]); - if (aCharge > 0) { + if (isElectricItem(aStack)) { + int tTier = ((ic2.api.item.IElectricItem) aStack.getItem()).getTier(aStack); + if (tTier < 0 || tTier == aTier || aTier == Integer.MAX_VALUE) { + if (!aIgnoreLimit && tTier >= 0) + aCharge = (int) Math.min(aCharge, V[Math.max(0, Math.min(V.length - 1, tTier))]); + if (aCharge > 0) { // int rCharge = Math.max(0, ic2.api.item.ElectricItem.manager.discharge(aStack, aCharge + (aCharge * 4 > aTier ? aTier : 0), tTier, T, aSimulate)); - int rCharge = (int)Math.max(0, ic2.api.item.ElectricItem.manager.discharge(aStack, aCharge + (aCharge * 4 > aTier ? aTier : 0), tTier, true , !aIgnoreDischargability, aSimulate)); - return rCharge - (rCharge * 4 > aTier ? aTier : 0); - } - } - } - } catch (Throwable e) {/*Do nothing*/} - return 0; - } - - /** - * Uses an Electric Item. Only if it's a valid Electric Item for that of course. - * @return if the action was successful - */ - public static boolean canUseElectricItem(ItemStack aStack, int aCharge) { - try { - if (isElectricItem(aStack)) { - return ic2.api.item.ElectricItem.manager.canUse(aStack, aCharge); - } - } catch (Throwable e) {/*Do nothing*/} - return false; - } - - /** - * Uses an Electric Item. Only if it's a valid Electric Item for that of course. - * @return if the action was successful - */ - public static boolean useElectricItem(ItemStack aStack, int aCharge, EntityPlayer aPlayer) { - try { - if (isElectricItem(aStack)) { - ic2.api.item.ElectricItem.manager.use(aStack, 0, aPlayer); - if (ic2.api.item.ElectricItem.manager.canUse(aStack, aCharge)) { - return ic2.api.item.ElectricItem.manager.use(aStack, aCharge, aPlayer); - } - } - } catch (Throwable e) {/*Do nothing*/} - return false; - } - - /** - * Uses an Item. Tries to discharge in case of Electric Items - */ - public static boolean damageOrDechargeItem(ItemStack aStack, int aDamage, int aDecharge, EntityLivingBase aPlayer) { - if (GT_Utility.isStackInvalid(aStack) || (aStack.getMaxStackSize() <= 1 && aStack.stackSize > 1)) return false; - if (aPlayer != null && aPlayer instanceof EntityPlayer && ((EntityPlayer)aPlayer).capabilities.isCreativeMode) return true; - if (aStack.getItem() instanceof IDamagableItem) { - return ((IDamagableItem)aStack.getItem()).doDamageToItem(aStack, aDamage); - } else if (GT_ModHandler.isElectricItem(aStack)) { - if (canUseElectricItem(aStack, aDecharge)) { - if (aPlayer != null && aPlayer instanceof EntityPlayer) { - return GT_ModHandler.useElectricItem(aStack, aDecharge, (EntityPlayer)aPlayer); - } - return GT_ModHandler.dischargeElectricItem(aStack, aDecharge, Integer.MAX_VALUE, true , false, true) >= aDecharge; - } - } else if (aStack.getItem().isDamageable()) { - if (aPlayer == null) { - aStack.setItemDamage(aStack.getItemDamage() + aDamage); - } else { - aStack.damageItem(aDamage, aPlayer); - } - if (aStack.getItemDamage() >= aStack.getMaxDamage()) { - aStack.setItemDamage(aStack.getMaxDamage()+1); - ItemStack tStack = GT_Utility.getContainerItem(aStack, true); - if (tStack != null) { - aStack.func_150996_a(tStack.getItem()); - aStack.setItemDamage(tStack.getItemDamage()); - aStack.stackSize = tStack.stackSize; - aStack.setTagCompound(tStack.getTagCompound()); - } - } - return true; - } - return false; - } - - /** - * Uses a Soldering Iron - */ - public static boolean useSolderingIron(ItemStack aStack, EntityLivingBase aPlayer) { - if (aPlayer == null || aStack == null) return false; - if (GT_Utility.isStackInList(aStack, GregTech_API.sSolderingToolList)) { - if (aPlayer instanceof EntityPlayer) { - EntityPlayer tPlayer = (EntityPlayer)aPlayer; - if (tPlayer.capabilities.isCreativeMode) return true; - if(isElectricItem(aStack)&&ic2.api.item.ElectricItem.manager.getCharge(aStack)>1000.0d){ - for (int i = 0; i < tPlayer.inventory.mainInventory.length; i++) { - if (GT_Utility.isStackInList(tPlayer.inventory.mainInventory[i], GregTech_API.sSolderingMetalList)) { - if(tPlayer.inventory.mainInventory[i].stackSize<1)return false; - if(tPlayer.inventory.mainInventory[i].stackSize==1){tPlayer.inventory.mainInventory[i]=null;}else{ - tPlayer.inventory.mainInventory[i].stackSize--;} - - if (tPlayer.inventoryContainer != null) tPlayer.inventoryContainer.detectAndSendChanges(); - if (canUseElectricItem(aStack, 10000)) { - return GT_ModHandler.useElectricItem(aStack, 10000, (EntityPlayer)aPlayer); - } - GT_ModHandler.useElectricItem(aStack, (int) ic2.api.item.ElectricItem.manager.getCharge(aStack), (EntityPlayer)aPlayer); - return false; - } - } - } - } else { - damageOrDechargeItem(aStack, 1, 1000, aPlayer); - return true; - } - } - return false; - } - - /** - * Is this an electric Item, which can charge other Items? - */ - public static boolean isChargerItem(ItemStack aStack) { - try { - if (isElectricItem(aStack)) { - return ((ic2.api.item.IElectricItem)aStack.getItem()).canProvideEnergy(aStack); - } - } catch (Throwable e) {/*Do nothing*/} - return false; - } - - /** - * Is this an electric Item? - */ - public static boolean isElectricItem(ItemStack aStack) { - try { - return aStack != null && aStack.getItem() instanceof ic2.api.item.IElectricItem && ((IElectricItem)aStack.getItem()).getTier(aStack) < Integer.MAX_VALUE; - } catch (Throwable e) {/*Do nothing*/} - return false; - } - - public static boolean isElectricItem(ItemStack aStack, byte aTier) { - try { - return aStack != null && aStack.getItem() instanceof ic2.api.item.IElectricItem && ((IElectricItem)aStack.getItem()).getTier(aStack) == aTier; - } catch (Throwable e) {/*Do nothing*/} - return false; - } - - public static Object sBoxableWrapper = GT_Utility.callConstructor("gregtechmod.api.util.GT_IBoxableWrapper", 0, null, false); - - public static void registerBoxableItemToToolBox(ItemStack aStack) { - if (aStack != null) registerBoxableItemToToolBox(aStack.getItem()); - } - - public static void registerBoxableItemToToolBox(Item aItem) { - if (aItem != null && sBoxableWrapper != null) { - try { - ic2.api.item.ItemWrapper.registerBoxable(aItem, (IBoxable)sBoxableWrapper); - } catch(Throwable e) {/*Do nothing*/} - } - } - - public static int getCapsuleCellContainerCountMultipliedWithStackSize(ItemStack... aStacks) { - int rAmount = 0; - for (ItemStack tStack : aStacks) if (tStack != null) rAmount += getCapsuleCellContainerCount(tStack) * tStack.stackSize; - return rAmount; - } - - public static int getCapsuleCellContainerCount(ItemStack aStack) { - if (aStack == null) return 0; - return GT_Utility.areStacksEqual(GT_Utility.getContainerForFilledItem(aStack, true), ItemList.Cell_Empty.get(1)) || OrePrefixes.cell.contains(aStack) || OrePrefixes.cellPlasma.contains(aStack) || GT_Utility.areStacksEqual(aStack, getIC2Item("waterCell", 1, W)) ? 1 : 0; - } - - /** - * Copy of the original Helper Class of Thermal Expansion, just to make sure it works even when other Mods include TE-APIs - */ - public static class ThermalExpansion { - public static void addFurnaceRecipe(int energy, ItemStack input, ItemStack output) { - NBTTagCompound toSend = new NBTTagCompound(); - toSend.setInteger("energy", energy); - toSend.setTag("input", new NBTTagCompound()); - toSend.setTag("output", new NBTTagCompound()); - input.writeToNBT(toSend.getCompoundTag("input")); - output.writeToNBT(toSend.getCompoundTag("output")); - FMLInterModComms.sendMessage("ThermalExpansion", "FurnaceRecipe", toSend); - } - - public static void addPulverizerRecipe(int energy, ItemStack input, ItemStack primaryOutput) { - addPulverizerRecipe(energy, input, primaryOutput, null, 0); - } - - public static void addPulverizerRecipe(int energy, ItemStack input, ItemStack primaryOutput, ItemStack secondaryOutput) { - addPulverizerRecipe(energy, input, primaryOutput, secondaryOutput, 100); - } - - public static void addPulverizerRecipe(int energy, ItemStack input, ItemStack primaryOutput, ItemStack secondaryOutput, int secondaryChance) { - if (input == null || primaryOutput == null) return; - NBTTagCompound toSend = new NBTTagCompound(); - toSend.setInteger("energy", energy); - toSend.setTag("input", new NBTTagCompound()); - toSend.setTag("primaryOutput", new NBTTagCompound()); - toSend.setTag("secondaryOutput", new NBTTagCompound()); - input.writeToNBT(toSend.getCompoundTag("input")); - primaryOutput.writeToNBT(toSend.getCompoundTag("primaryOutput")); - if (secondaryOutput != null) secondaryOutput.writeToNBT(toSend.getCompoundTag("secondaryOutput")); - toSend.setInteger("secondaryChance", secondaryChance); - FMLInterModComms.sendMessage("ThermalExpansion", "PulverizerRecipe", toSend); - } - - public static void addSawmillRecipe(int energy, ItemStack input, ItemStack primaryOutput) { - addSawmillRecipe(energy, input, primaryOutput, null, 0); - } - - public static void addSawmillRecipe(int energy, ItemStack input, ItemStack primaryOutput, ItemStack secondaryOutput) { - addSawmillRecipe(energy, input, primaryOutput, secondaryOutput, 100); - } - - public static void addSawmillRecipe(int energy, ItemStack input, ItemStack primaryOutput, ItemStack secondaryOutput, int secondaryChance) { - if (input == null || primaryOutput == null) return; - NBTTagCompound toSend = new NBTTagCompound(); - toSend.setInteger("energy", energy); - toSend.setTag("input", new NBTTagCompound()); - toSend.setTag("primaryOutput", new NBTTagCompound()); - toSend.setTag("secondaryOutput", new NBTTagCompound()); - input.writeToNBT(toSend.getCompoundTag("input")); - primaryOutput.writeToNBT(toSend.getCompoundTag("primaryOutput")); - if (secondaryOutput != null) secondaryOutput.writeToNBT(toSend.getCompoundTag("secondaryOutput")); - toSend.setInteger("secondaryChance", secondaryChance); - FMLInterModComms.sendMessage("ThermalExpansion", "SawmillRecipe", toSend); - } - - public static void addSmelterRecipe(int energy, ItemStack primaryInput, ItemStack secondaryInput, ItemStack primaryOutput) { - addSmelterRecipe(energy, primaryInput, secondaryInput, primaryOutput, null, 0); - } - - public static void addSmelterRecipe(int energy, ItemStack primaryInput, ItemStack secondaryInput, ItemStack primaryOutput, ItemStack secondaryOutput) { - addSmelterRecipe(energy, primaryInput, secondaryInput, primaryOutput, secondaryOutput, 100); - } - - public static void addSmelterRecipe(int energy, ItemStack primaryInput, ItemStack secondaryInput, ItemStack primaryOutput, ItemStack secondaryOutput, int secondaryChance) { - if (primaryInput == null || secondaryInput == null || primaryOutput == null) return; - NBTTagCompound toSend = new NBTTagCompound(); - toSend.setInteger("energy", energy); - toSend.setTag("primaryInput", new NBTTagCompound()); - toSend.setTag("secondaryInput", new NBTTagCompound()); - toSend.setTag("primaryOutput", new NBTTagCompound()); - toSend.setTag("secondaryOutput", new NBTTagCompound()); - primaryInput.writeToNBT(toSend.getCompoundTag("primaryInput")); - secondaryInput.writeToNBT(toSend.getCompoundTag("secondaryInput")); - primaryOutput.writeToNBT(toSend.getCompoundTag("primaryOutput")); - if (secondaryOutput != null) secondaryOutput.writeToNBT(toSend.getCompoundTag("secondaryOutput")); - toSend.setInteger("secondaryChance", secondaryChance); - FMLInterModComms.sendMessage("ThermalExpansion", "SmelterRecipe", toSend); - } - - public static void addSmelterBlastOre(Materials aMaterial) { - NBTTagCompound toSend = new NBTTagCompound(); - toSend.setString("oreType", aMaterial.toString()); - FMLInterModComms.sendMessage("ThermalExpansion", "SmelterBlastOreType", toSend); - } - - public static void addCrucibleRecipe(int energy, ItemStack input, FluidStack output) { - if (input == null || output == null) return; - NBTTagCompound toSend = new NBTTagCompound(); - toSend.setInteger("energy", energy); - toSend.setTag("input", new NBTTagCompound()); - toSend.setTag("output", new NBTTagCompound()); - input.writeToNBT(toSend.getCompoundTag("input")); - output.writeToNBT(toSend.getCompoundTag("output")); - FMLInterModComms.sendMessage("ThermalExpansion", "CrucibleRecipe", toSend); - } - - public static void addTransposerFill(int energy, ItemStack input, ItemStack output, FluidStack fluid, boolean reversible) { - if (input == null || output == null || fluid == null) return; - NBTTagCompound toSend = new NBTTagCompound(); - toSend.setInteger("energy", energy); - toSend.setTag("input", new NBTTagCompound()); - toSend.setTag("output", new NBTTagCompound()); - toSend.setTag("fluid", new NBTTagCompound()); - input.writeToNBT(toSend.getCompoundTag("input")); - output.writeToNBT(toSend.getCompoundTag("output")); - toSend.setBoolean("reversible", reversible); - fluid.writeToNBT(toSend.getCompoundTag("fluid")); - FMLInterModComms.sendMessage("ThermalExpansion", "TransposerFillRecipe", toSend); - } - - public static void addTransposerExtract(int energy, ItemStack input, ItemStack output, FluidStack fluid, int chance, boolean reversible) { - if (input == null || output == null || fluid == null) return; - NBTTagCompound toSend = new NBTTagCompound(); - toSend.setInteger("energy", energy); - toSend.setTag("input", new NBTTagCompound()); - toSend.setTag("output", new NBTTagCompound()); - toSend.setTag("fluid", new NBTTagCompound()); - input.writeToNBT(toSend.getCompoundTag("input")); - output.writeToNBT(toSend.getCompoundTag("output")); - toSend.setBoolean("reversible", reversible); - toSend.setInteger("chance", chance); - fluid.writeToNBT(toSend.getCompoundTag("fluid")); - FMLInterModComms.sendMessage("ThermalExpansion", "TransposerExtractRecipe", toSend); - } - - public static void addMagmaticFuel(String fluidName, int energy) { - NBTTagCompound toSend = new NBTTagCompound(); - toSend.setString("fluidName", fluidName); - toSend.setInteger("energy", energy); - FMLInterModComms.sendMessage("ThermalExpansion", "MagmaticFuel", toSend); - } - - public static void addCompressionFuel(String fluidName, int energy) { - NBTTagCompound toSend = new NBTTagCompound(); - toSend.setString("fluidName", fluidName); - toSend.setInteger("energy", energy); - FMLInterModComms.sendMessage("ThermalExpansion", "CompressionFuel", toSend); - } - - public static void addCoolant(String fluidName, int energy) { - NBTTagCompound toSend = new NBTTagCompound(); - toSend.setString("fluidName", fluidName); - toSend.setInteger("energy", energy); - FMLInterModComms.sendMessage("ThermalExpansion", "Coolant", toSend); - } - } + int rCharge = (int) Math.max(0, ic2.api.item.ElectricItem.manager.discharge(aStack, aCharge + (aCharge * 4 > aTier ? aTier : 0), tTier, true, !aIgnoreDischargability, aSimulate)); + return rCharge - (rCharge * 4 > aTier ? aTier : 0); + } + } + } + } catch (Throwable e) {/*Do nothing*/} + return 0; + } + + /** + * Uses an Electric Item. Only if it's a valid Electric Item for that of course. + * + * @return if the action was successful + */ + public static boolean canUseElectricItem(ItemStack aStack, int aCharge) { + try { + if (isElectricItem(aStack)) { + return ic2.api.item.ElectricItem.manager.canUse(aStack, aCharge); + } + } catch (Throwable e) {/*Do nothing*/} + return false; + } + + /** + * Uses an Electric Item. Only if it's a valid Electric Item for that of course. + * + * @return if the action was successful + */ + public static boolean useElectricItem(ItemStack aStack, int aCharge, EntityPlayer aPlayer) { + try { + if (isElectricItem(aStack)) { + ic2.api.item.ElectricItem.manager.use(aStack, 0, aPlayer); + if (ic2.api.item.ElectricItem.manager.canUse(aStack, aCharge)) { + return ic2.api.item.ElectricItem.manager.use(aStack, aCharge, aPlayer); + } + } + } catch (Throwable e) {/*Do nothing*/} + return false; + } + + /** + * Uses an Item. Tries to discharge in case of Electric Items + */ + public static boolean damageOrDechargeItem(ItemStack aStack, int aDamage, int aDecharge, EntityLivingBase aPlayer) { + if (GT_Utility.isStackInvalid(aStack) || (aStack.getMaxStackSize() <= 1 && aStack.stackSize > 1)) return false; + if (aPlayer != null && aPlayer instanceof EntityPlayer && ((EntityPlayer) aPlayer).capabilities.isCreativeMode) + return true; + if (aStack.getItem() instanceof IDamagableItem) { + return ((IDamagableItem) aStack.getItem()).doDamageToItem(aStack, aDamage); + } else if (GT_ModHandler.isElectricItem(aStack)) { + if (canUseElectricItem(aStack, aDecharge)) { + if (aPlayer != null && aPlayer instanceof EntityPlayer) { + return GT_ModHandler.useElectricItem(aStack, aDecharge, (EntityPlayer) aPlayer); + } + return GT_ModHandler.dischargeElectricItem(aStack, aDecharge, Integer.MAX_VALUE, true, false, true) >= aDecharge; + } + } else if (aStack.getItem().isDamageable()) { + if (aPlayer == null) { + aStack.setItemDamage(aStack.getItemDamage() + aDamage); + } else { + aStack.damageItem(aDamage, aPlayer); + } + if (aStack.getItemDamage() >= aStack.getMaxDamage()) { + aStack.setItemDamage(aStack.getMaxDamage() + 1); + ItemStack tStack = GT_Utility.getContainerItem(aStack, true); + if (tStack != null) { + aStack.func_150996_a(tStack.getItem()); + aStack.setItemDamage(tStack.getItemDamage()); + aStack.stackSize = tStack.stackSize; + aStack.setTagCompound(tStack.getTagCompound()); + } + } + return true; + } + return false; + } + + /** + * Uses a Soldering Iron + */ + public static boolean useSolderingIron(ItemStack aStack, EntityLivingBase aPlayer) { + if (aPlayer == null || aStack == null) return false; + if (GT_Utility.isStackInList(aStack, GregTech_API.sSolderingToolList)) { + if (aPlayer instanceof EntityPlayer) { + EntityPlayer tPlayer = (EntityPlayer) aPlayer; + if (tPlayer.capabilities.isCreativeMode) return true; + if (isElectricItem(aStack) && ic2.api.item.ElectricItem.manager.getCharge(aStack) > 1000.0d) { + for (int i = 0; i < tPlayer.inventory.mainInventory.length; i++) { + if (GT_Utility.isStackInList(tPlayer.inventory.mainInventory[i], GregTech_API.sSolderingMetalList)) { + if (tPlayer.inventory.mainInventory[i].stackSize < 1) return false; + if (tPlayer.inventory.mainInventory[i].stackSize == 1) { + tPlayer.inventory.mainInventory[i] = null; + } else { + tPlayer.inventory.mainInventory[i].stackSize--; + } + + if (tPlayer.inventoryContainer != null) tPlayer.inventoryContainer.detectAndSendChanges(); + if (canUseElectricItem(aStack, 10000)) { + return GT_ModHandler.useElectricItem(aStack, 10000, (EntityPlayer) aPlayer); + } + GT_ModHandler.useElectricItem(aStack, (int) ic2.api.item.ElectricItem.manager.getCharge(aStack), (EntityPlayer) aPlayer); + return false; + } + } + } + } else { + damageOrDechargeItem(aStack, 1, 1000, aPlayer); + return true; + } + } + return false; + } + + /** + * Is this an electric Item, which can charge other Items? + */ + public static boolean isChargerItem(ItemStack aStack) { + try { + if (isElectricItem(aStack)) { + return ((ic2.api.item.IElectricItem) aStack.getItem()).canProvideEnergy(aStack); + } + } catch (Throwable e) {/*Do nothing*/} + return false; + } + + /** + * Is this an electric Item? + */ + public static boolean isElectricItem(ItemStack aStack) { + try { + return aStack != null && aStack.getItem() instanceof ic2.api.item.IElectricItem && ((IElectricItem) aStack.getItem()).getTier(aStack) < Integer.MAX_VALUE; + } catch (Throwable e) {/*Do nothing*/} + return false; + } + + public static boolean isElectricItem(ItemStack aStack, byte aTier) { + try { + return aStack != null && aStack.getItem() instanceof ic2.api.item.IElectricItem && ((IElectricItem) aStack.getItem()).getTier(aStack) == aTier; + } catch (Throwable e) {/*Do nothing*/} + return false; + } + + public static void registerBoxableItemToToolBox(ItemStack aStack) { + if (aStack != null) registerBoxableItemToToolBox(aStack.getItem()); + } + + public static void registerBoxableItemToToolBox(Item aItem) { + if (aItem != null && sBoxableWrapper != null) { + try { + ic2.api.item.ItemWrapper.registerBoxable(aItem, (IBoxable) sBoxableWrapper); + } catch (Throwable e) {/*Do nothing*/} + } + } + + public static int getCapsuleCellContainerCountMultipliedWithStackSize(ItemStack... aStacks) { + int rAmount = 0; + for (ItemStack tStack : aStacks) + if (tStack != null) rAmount += getCapsuleCellContainerCount(tStack) * tStack.stackSize; + return rAmount; + } + + public static int getCapsuleCellContainerCount(ItemStack aStack) { + if (aStack == null) return 0; + return GT_Utility.areStacksEqual(GT_Utility.getContainerForFilledItem(aStack, true), ItemList.Cell_Empty.get(1)) || OrePrefixes.cell.contains(aStack) || OrePrefixes.cellPlasma.contains(aStack) || GT_Utility.areStacksEqual(aStack, getIC2Item("waterCell", 1, W)) ? 1 : 0; + } + + public static class RecipeBits { + /** + * Mirrors the Recipe + */ + public static long MIRRORED = B[0]; + /** + * Buffers the Recipe for later addition. This makes things more efficient. + */ + public static long BUFFERED = B[1]; + /** + * This is a special Tag I used for crafting Coins up and down. + */ + public static long KEEPNBT = B[2]; + /** + * Makes the Recipe Reverse Craftable in the Disassembler. + */ + public static long DISMANTLEABLE = B[3]; + /** + * Prevents the Recipe from accidentally getting removed by my own Handlers. + */ + public static long NOT_REMOVABLE = B[4]; + /** + * Reverses the Output of the Recipe for smelting and pulverising. + */ + public static long REVERSIBLE = B[5]; + /** + * Removes all Recipes with the same Output Item regardless of NBT, unless another Recipe Deletion Bit is added too. + */ + public static long DELETE_ALL_OTHER_RECIPES = B[6]; + /** + * Removes all Recipes with the same Output Item limited to the same NBT. + */ + public static long DELETE_ALL_OTHER_RECIPES_IF_SAME_NBT = B[7]; + /** + * Removes all Recipes with the same Output Item limited to Shaped Recipes. + */ + public static long DELETE_ALL_OTHER_SHAPED_RECIPES = B[8]; + /** + * Removes all Recipes with the same Output Item limited to native Recipe Handlers. + */ + public static long DELETE_ALL_OTHER_NATIVE_RECIPES = B[9]; + /** + * Disables the check for colliding Recipes. + */ + public static long DO_NOT_CHECK_FOR_COLLISIONS = B[10]; + /** + * Only adds the Recipe if there is another Recipe having that Output + */ + public static long ONLY_ADD_IF_THERE_IS_ANOTHER_RECIPE_FOR_IT = B[11]; + /** + * Only adds the Recipe if it has an Output + */ + public static long ONLY_ADD_IF_RESULT_IS_NOT_NULL = B[12]; + } + + /** + * Copy of the original Helper Class of Thermal Expansion, just to make sure it works even when other Mods include TE-APIs + */ + public static class ThermalExpansion { + public static void addFurnaceRecipe(int energy, ItemStack input, ItemStack output) { + NBTTagCompound toSend = new NBTTagCompound(); + toSend.setInteger("energy", energy); + toSend.setTag("input", new NBTTagCompound()); + toSend.setTag("output", new NBTTagCompound()); + input.writeToNBT(toSend.getCompoundTag("input")); + output.writeToNBT(toSend.getCompoundTag("output")); + FMLInterModComms.sendMessage("ThermalExpansion", "FurnaceRecipe", toSend); + } + + public static void addPulverizerRecipe(int energy, ItemStack input, ItemStack primaryOutput) { + addPulverizerRecipe(energy, input, primaryOutput, null, 0); + } + + public static void addPulverizerRecipe(int energy, ItemStack input, ItemStack primaryOutput, ItemStack secondaryOutput) { + addPulverizerRecipe(energy, input, primaryOutput, secondaryOutput, 100); + } + + public static void addPulverizerRecipe(int energy, ItemStack input, ItemStack primaryOutput, ItemStack secondaryOutput, int secondaryChance) { + if (input == null || primaryOutput == null) return; + NBTTagCompound toSend = new NBTTagCompound(); + toSend.setInteger("energy", energy); + toSend.setTag("input", new NBTTagCompound()); + toSend.setTag("primaryOutput", new NBTTagCompound()); + toSend.setTag("secondaryOutput", new NBTTagCompound()); + input.writeToNBT(toSend.getCompoundTag("input")); + primaryOutput.writeToNBT(toSend.getCompoundTag("primaryOutput")); + if (secondaryOutput != null) secondaryOutput.writeToNBT(toSend.getCompoundTag("secondaryOutput")); + toSend.setInteger("secondaryChance", secondaryChance); + FMLInterModComms.sendMessage("ThermalExpansion", "PulverizerRecipe", toSend); + } + + public static void addSawmillRecipe(int energy, ItemStack input, ItemStack primaryOutput) { + addSawmillRecipe(energy, input, primaryOutput, null, 0); + } + + public static void addSawmillRecipe(int energy, ItemStack input, ItemStack primaryOutput, ItemStack secondaryOutput) { + addSawmillRecipe(energy, input, primaryOutput, secondaryOutput, 100); + } + + public static void addSawmillRecipe(int energy, ItemStack input, ItemStack primaryOutput, ItemStack secondaryOutput, int secondaryChance) { + if (input == null || primaryOutput == null) return; + NBTTagCompound toSend = new NBTTagCompound(); + toSend.setInteger("energy", energy); + toSend.setTag("input", new NBTTagCompound()); + toSend.setTag("primaryOutput", new NBTTagCompound()); + toSend.setTag("secondaryOutput", new NBTTagCompound()); + input.writeToNBT(toSend.getCompoundTag("input")); + primaryOutput.writeToNBT(toSend.getCompoundTag("primaryOutput")); + if (secondaryOutput != null) secondaryOutput.writeToNBT(toSend.getCompoundTag("secondaryOutput")); + toSend.setInteger("secondaryChance", secondaryChance); + FMLInterModComms.sendMessage("ThermalExpansion", "SawmillRecipe", toSend); + } + + public static void addSmelterRecipe(int energy, ItemStack primaryInput, ItemStack secondaryInput, ItemStack primaryOutput) { + addSmelterRecipe(energy, primaryInput, secondaryInput, primaryOutput, null, 0); + } + + public static void addSmelterRecipe(int energy, ItemStack primaryInput, ItemStack secondaryInput, ItemStack primaryOutput, ItemStack secondaryOutput) { + addSmelterRecipe(energy, primaryInput, secondaryInput, primaryOutput, secondaryOutput, 100); + } + + public static void addSmelterRecipe(int energy, ItemStack primaryInput, ItemStack secondaryInput, ItemStack primaryOutput, ItemStack secondaryOutput, int secondaryChance) { + if (primaryInput == null || secondaryInput == null || primaryOutput == null) return; + NBTTagCompound toSend = new NBTTagCompound(); + toSend.setInteger("energy", energy); + toSend.setTag("primaryInput", new NBTTagCompound()); + toSend.setTag("secondaryInput", new NBTTagCompound()); + toSend.setTag("primaryOutput", new NBTTagCompound()); + toSend.setTag("secondaryOutput", new NBTTagCompound()); + primaryInput.writeToNBT(toSend.getCompoundTag("primaryInput")); + secondaryInput.writeToNBT(toSend.getCompoundTag("secondaryInput")); + primaryOutput.writeToNBT(toSend.getCompoundTag("primaryOutput")); + if (secondaryOutput != null) secondaryOutput.writeToNBT(toSend.getCompoundTag("secondaryOutput")); + toSend.setInteger("secondaryChance", secondaryChance); + FMLInterModComms.sendMessage("ThermalExpansion", "SmelterRecipe", toSend); + } + + public static void addSmelterBlastOre(Materials aMaterial) { + NBTTagCompound toSend = new NBTTagCompound(); + toSend.setString("oreType", aMaterial.toString()); + FMLInterModComms.sendMessage("ThermalExpansion", "SmelterBlastOreType", toSend); + } + + public static void addCrucibleRecipe(int energy, ItemStack input, FluidStack output) { + if (input == null || output == null) return; + NBTTagCompound toSend = new NBTTagCompound(); + toSend.setInteger("energy", energy); + toSend.setTag("input", new NBTTagCompound()); + toSend.setTag("output", new NBTTagCompound()); + input.writeToNBT(toSend.getCompoundTag("input")); + output.writeToNBT(toSend.getCompoundTag("output")); + FMLInterModComms.sendMessage("ThermalExpansion", "CrucibleRecipe", toSend); + } + + public static void addTransposerFill(int energy, ItemStack input, ItemStack output, FluidStack fluid, boolean reversible) { + if (input == null || output == null || fluid == null) return; + NBTTagCompound toSend = new NBTTagCompound(); + toSend.setInteger("energy", energy); + toSend.setTag("input", new NBTTagCompound()); + toSend.setTag("output", new NBTTagCompound()); + toSend.setTag("fluid", new NBTTagCompound()); + input.writeToNBT(toSend.getCompoundTag("input")); + output.writeToNBT(toSend.getCompoundTag("output")); + toSend.setBoolean("reversible", reversible); + fluid.writeToNBT(toSend.getCompoundTag("fluid")); + FMLInterModComms.sendMessage("ThermalExpansion", "TransposerFillRecipe", toSend); + } + + public static void addTransposerExtract(int energy, ItemStack input, ItemStack output, FluidStack fluid, int chance, boolean reversible) { + if (input == null || output == null || fluid == null) return; + NBTTagCompound toSend = new NBTTagCompound(); + toSend.setInteger("energy", energy); + toSend.setTag("input", new NBTTagCompound()); + toSend.setTag("output", new NBTTagCompound()); + toSend.setTag("fluid", new NBTTagCompound()); + input.writeToNBT(toSend.getCompoundTag("input")); + output.writeToNBT(toSend.getCompoundTag("output")); + toSend.setBoolean("reversible", reversible); + toSend.setInteger("chance", chance); + fluid.writeToNBT(toSend.getCompoundTag("fluid")); + FMLInterModComms.sendMessage("ThermalExpansion", "TransposerExtractRecipe", toSend); + } + + public static void addMagmaticFuel(String fluidName, int energy) { + NBTTagCompound toSend = new NBTTagCompound(); + toSend.setString("fluidName", fluidName); + toSend.setInteger("energy", energy); + FMLInterModComms.sendMessage("ThermalExpansion", "MagmaticFuel", toSend); + } + + public static void addCompressionFuel(String fluidName, int energy) { + NBTTagCompound toSend = new NBTTagCompound(); + toSend.setString("fluidName", fluidName); + toSend.setInteger("energy", energy); + FMLInterModComms.sendMessage("ThermalExpansion", "CompressionFuel", toSend); + } + + public static void addCoolant(String fluidName, int energy) { + NBTTagCompound toSend = new NBTTagCompound(); + toSend.setString("fluidName", fluidName); + toSend.setInteger("energy", energy); + FMLInterModComms.sendMessage("ThermalExpansion", "Coolant", toSend); + } + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/util/GT_OreDictUnificator.java b/src/main/java/gregtech/api/util/GT_OreDictUnificator.java index 6425e5b8..63b66992 100644 --- a/src/main/java/gregtech/api/util/GT_OreDictUnificator.java +++ b/src/main/java/gregtech/api/util/GT_OreDictUnificator.java @@ -1,8 +1,5 @@ package gregtech.api.util; -import static gregtech.api.enums.GT_Values.E; -import static gregtech.api.enums.GT_Values.M; -import static gregtech.api.enums.GT_Values.W; import gregtech.api.GregTech_API; import gregtech.api.enums.Dyes; import gregtech.api.enums.Materials; @@ -12,321 +9,345 @@ import gregtech.api.objects.GT_HashSet; import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.ItemData; import gregtech.api.objects.MaterialStack; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; import java.util.ArrayList; import java.util.HashMap; import java.util.Map.Entry; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; +import static gregtech.api.enums.GT_Values.*; /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* This is the Core of my OreDict Unification Code - * + *

* If you just want to use this to unificate your Items, then use the Function in the GregTech_API File - * + *

* P.S. It is intended to be named "Unificator" and not "Unifier", because that sounds more awesome. */ public class GT_OreDictUnificator { - public static volatile int VERSION = 508; - - private static final HashMap sName2StackMap = new HashMap(); - private static final HashMap sItemStack2DataMap = new HashMap(); - private static final GT_HashSet sNoUnificationList = new GT_HashSet(); - - private static int isRegisteringOre = 0, isAddingOre = 0; - - static { - GregTech_API.sItemStackMappings.add(sItemStack2DataMap); - } - - /** - * The Blacklist just prevents the Item from being unificated into something else. - * Useful if you have things like the Industrial Diamond, which is better than regular Diamond, but also usable in absolutely all Diamond Recipes. - */ - public static void addToBlacklist(ItemStack aStack) { - if (GT_Utility.isStackValid(aStack) && !GT_Utility.isStackInList(aStack, sNoUnificationList)) sNoUnificationList.add(aStack); - } - - public static boolean isBlacklisted(ItemStack aStack) { - return GT_Utility.isStackInList(aStack, sNoUnificationList); - } - - public static void add(OrePrefixes aPrefix, Materials aMaterial, ItemStack aStack) { - set(aPrefix, aMaterial, aStack, false, false); - } - - public static void set(OrePrefixes aPrefix, Materials aMaterial, ItemStack aStack) { - set(aPrefix, aMaterial, aStack, true, false); - } - - public static void set(OrePrefixes aPrefix, Materials aMaterial, ItemStack aStack, boolean aOverwrite, boolean aAlreadyRegistered) { - if (aMaterial == null || aPrefix == null || GT_Utility.isStackInvalid(aStack) || Items.feather.getDamage(aStack) == W) return; - isAddingOre++; - aStack = GT_Utility.copyAmount(1, aStack); - if (!aAlreadyRegistered) registerOre(aPrefix.get(aMaterial), aStack); - addAssociation(aPrefix, aMaterial, aStack, isBlacklisted(aStack)); - if (aOverwrite || GT_Utility.isStackInvalid(sName2StackMap.get(aPrefix.get(aMaterial).toString()))) sName2StackMap.put(aPrefix.get(aMaterial).toString(), aStack); - isAddingOre--; - } - - public static ItemStack getFirstOre(Object aName, long aAmount) { - if (GT_Utility.isStringInvalid(aName)) return null; - ItemStack tStack = sName2StackMap.get(aName.toString()); - if (GT_Utility.isStackValid(tStack)) return GT_Utility.copyAmount(aAmount, tStack); - return GT_Utility.copyAmount(aAmount, getOres(aName).toArray()); - } - - public static ItemStack get(Object aName, long aAmount) { - return get(aName, null, aAmount, true, true); - } - - public static ItemStack get(Object aName, ItemStack aReplacement, long aAmount) { - return get(aName, aReplacement, aAmount, true, true); - } - - public static ItemStack get(OrePrefixes aPrefix, Object aMaterial, long aAmount) { - return get(aPrefix, aMaterial, null, aAmount); - } - - public static ItemStack get(OrePrefixes aPrefix, Object aMaterial, ItemStack aReplacement, long aAmount) { - return get(aPrefix.get(aMaterial), aReplacement, aAmount, false, true); - } - - public static ItemStack get(Object aName, ItemStack aReplacement, long aAmount, boolean aMentionPossibleTypos, boolean aNoInvalidAmounts) { - if (aNoInvalidAmounts && aAmount < 1) return null; - if (!sName2StackMap.containsKey(aName.toString()) && aMentionPossibleTypos) GT_Log.err.println("Unknown Key for Unification, Typo? " + aName); - return GT_Utility.copyAmount(aAmount, sName2StackMap.get(aName.toString()), getFirstOre(aName, aAmount), aReplacement); - } - - public static ItemStack[] setStackArray(boolean aUseBlackList, ItemStack... aStacks) { - for (int i = 0; i < aStacks.length; i++) aStacks[i] = get(aUseBlackList, GT_Utility.copy(aStacks[i])); - return aStacks; - } - - public static ItemStack[] getStackArray(boolean aUseBlackList, Object... aStacks) { - ItemStack[] rStacks = new ItemStack[aStacks.length]; - for (int i = 0; i < aStacks.length; i++) rStacks[i] = get(aUseBlackList, GT_Utility.copy(aStacks[i])); - return rStacks; - } - - public static ItemStack setStack(ItemStack aStack) { - return setStack(true, aStack); - } - - public static ItemStack setStack(boolean aUseBlackList, ItemStack aStack) { - if (GT_Utility.isStackInvalid(aStack)) return aStack; - ItemStack tStack = get(aUseBlackList, aStack); - if (GT_Utility.areStacksEqual(aStack, tStack)) return aStack; - aStack.func_150996_a(tStack.getItem()); - Items.feather.setDamage(aStack, Items.feather.getDamage(tStack)); - return aStack; - } - - public static ItemStack get(ItemStack aStack) { - return get(true, aStack); - } - - public static ItemStack get(boolean aUseBlackList, ItemStack aStack) { - if (GT_Utility.isStackInvalid(aStack)) return null; - ItemData tPrefixMaterial = getAssociation(aStack); - ItemStack rStack = null; - if (tPrefixMaterial == null || !tPrefixMaterial.hasValidPrefixMaterialData() || (aUseBlackList && tPrefixMaterial.mBlackListed)) return GT_Utility.copy(aStack); - if (aUseBlackList && !GregTech_API.sUnificationEntriesRegistered && isBlacklisted(aStack)) {tPrefixMaterial.mBlackListed = true; return GT_Utility.copy(aStack);} - if (tPrefixMaterial.mUnificationTarget == null) tPrefixMaterial.mUnificationTarget = sName2StackMap.get(tPrefixMaterial.toString()); - rStack = tPrefixMaterial.mUnificationTarget; - if (GT_Utility.isStackInvalid(rStack)) return GT_Utility.copy(aStack); - assert rStack != null; - rStack.setTagCompound(aStack.getTagCompound()); - return GT_Utility.copyAmount(aStack.stackSize, rStack); - } - - public static void addItemData(ItemStack aStack, ItemData aData) { - if (GT_Utility.isStackValid(aStack) && getItemData(aStack) == null && aData != null) setItemData(aStack, aData); - } - - private static boolean mRunThroughTheList = true; - - public static void setItemData(ItemStack aStack, ItemData aData) { - if (GT_Utility.isStackInvalid(aStack) || aData == null) return; - ItemData tData = getItemData(aStack); - if (tData == null || !tData.hasValidPrefixMaterialData()) { - if (tData != null) for (Object tObject : tData.mExtraData) if (!aData.mExtraData.contains(tObject)) aData.mExtraData.add(tObject); - if (aStack.stackSize > 1) { - if (aData.mMaterial != null) aData.mMaterial.mAmount /= aStack.stackSize; - for (MaterialStack tMaterial : aData.mByProducts) tMaterial.mAmount /= aStack.stackSize; - aStack = GT_Utility.copyAmount(1, aStack); - } - sItemStack2DataMap.put(new GT_ItemStack(aStack), aData); - if (aData.hasValidMaterialData()) { - long tValidMaterialAmount = aData.mMaterial.mMaterial.contains(SubTag.NO_RECYCLING)?0:aData.mMaterial.mAmount>=0?aData.mMaterial.mAmount:M; - for (MaterialStack tMaterial : aData.mByProducts) tValidMaterialAmount += tMaterial.mMaterial.contains(SubTag.NO_RECYCLING)?0:tMaterial.mAmount>=0?tMaterial.mAmount:M; - if (tValidMaterialAmount < M) GT_ModHandler.addToRecyclerBlackList(aStack); - } - if (mRunThroughTheList) { - if (GregTech_API.sLoadStarted) { - mRunThroughTheList = false; - for (Entry tEntry : sItemStack2DataMap.entrySet()) if (!tEntry.getValue().hasValidPrefixData() || tEntry.getValue().mPrefix.mAllowNormalRecycling) GT_RecipeRegistrator.registerMaterialRecycling(tEntry.getKey().toStack(), tEntry.getValue()); - } - } else { - if (!aData.hasValidPrefixData() || aData.mPrefix.mAllowNormalRecycling) GT_RecipeRegistrator.registerMaterialRecycling(aStack, aData); - } - } else { - for (Object tObject : aData.mExtraData) if (!tData.mExtraData.contains(tObject)) tData.mExtraData.add(tObject); - } - } - - public static void addAssociation(OrePrefixes aPrefix, Materials aMaterial, ItemStack aStack, boolean aBlackListed) { - if (aPrefix == null || aMaterial == null || GT_Utility.isStackInvalid(aStack)) return; - if (Items.feather.getDamage(aStack) == W) for (byte i = 0; i < 16; i++) setItemData(GT_Utility.copyAmountAndMetaData(1, i, aStack), new ItemData(aPrefix, aMaterial, aBlackListed)); - setItemData(aStack, new ItemData(aPrefix, aMaterial, aBlackListed)); - } - - public static ItemData getItemData(ItemStack aStack) { - if (GT_Utility.isStackInvalid(aStack)) return null; - ItemData rData = sItemStack2DataMap.get(new GT_ItemStack(aStack)); - if (rData == null) rData = sItemStack2DataMap.get(new GT_ItemStack(GT_Utility.copyMetaData(W, aStack))); - return rData; - } - - public static ItemData getAssociation(ItemStack aStack) { - ItemData rData = getItemData(aStack); - return rData != null && rData.hasValidPrefixMaterialData() ? rData : null; - } - - public static boolean isItemStackInstanceOf(ItemStack aStack, Object aName) { - if (GT_Utility.isStringInvalid(aName) || GT_Utility.isStackInvalid(aStack)) return false; - for (ItemStack tOreStack : getOres(aName.toString())) if (GT_Utility.areStacksEqual(tOreStack, aStack, true)) return true; - return false; - } - - public static boolean isItemStackDye(ItemStack aStack) { - if (GT_Utility.isStackInvalid(aStack)) return false; - for (Dyes tDye : Dyes.VALUES) if (isItemStackInstanceOf(aStack, tDye.toString())) return true; - return false; - } - + private static final HashMap sName2StackMap = new HashMap(); + private static final HashMap sItemStack2DataMap = new HashMap(); + private static final GT_HashSet sNoUnificationList = new GT_HashSet(); + public static volatile int VERSION = 508; + private static int isRegisteringOre = 0, isAddingOre = 0; + private static boolean mRunThroughTheList = true; + + static { + GregTech_API.sItemStackMappings.add(sItemStack2DataMap); + } + + /** + * The Blacklist just prevents the Item from being unificated into something else. + * Useful if you have things like the Industrial Diamond, which is better than regular Diamond, but also usable in absolutely all Diamond Recipes. + */ + public static void addToBlacklist(ItemStack aStack) { + if (GT_Utility.isStackValid(aStack) && !GT_Utility.isStackInList(aStack, sNoUnificationList)) + sNoUnificationList.add(aStack); + } + + public static boolean isBlacklisted(ItemStack aStack) { + return GT_Utility.isStackInList(aStack, sNoUnificationList); + } + + public static void add(OrePrefixes aPrefix, Materials aMaterial, ItemStack aStack) { + set(aPrefix, aMaterial, aStack, false, false); + } + + public static void set(OrePrefixes aPrefix, Materials aMaterial, ItemStack aStack) { + set(aPrefix, aMaterial, aStack, true, false); + } + + public static void set(OrePrefixes aPrefix, Materials aMaterial, ItemStack aStack, boolean aOverwrite, boolean aAlreadyRegistered) { + if (aMaterial == null || aPrefix == null || GT_Utility.isStackInvalid(aStack) || Items.feather.getDamage(aStack) == W) + return; + isAddingOre++; + aStack = GT_Utility.copyAmount(1, aStack); + if (!aAlreadyRegistered) registerOre(aPrefix.get(aMaterial), aStack); + addAssociation(aPrefix, aMaterial, aStack, isBlacklisted(aStack)); + if (aOverwrite || GT_Utility.isStackInvalid(sName2StackMap.get(aPrefix.get(aMaterial).toString()))) + sName2StackMap.put(aPrefix.get(aMaterial).toString(), aStack); + isAddingOre--; + } + + public static ItemStack getFirstOre(Object aName, long aAmount) { + if (GT_Utility.isStringInvalid(aName)) return null; + ItemStack tStack = sName2StackMap.get(aName.toString()); + if (GT_Utility.isStackValid(tStack)) return GT_Utility.copyAmount(aAmount, tStack); + return GT_Utility.copyAmount(aAmount, getOres(aName).toArray()); + } + + public static ItemStack get(Object aName, long aAmount) { + return get(aName, null, aAmount, true, true); + } + + public static ItemStack get(Object aName, ItemStack aReplacement, long aAmount) { + return get(aName, aReplacement, aAmount, true, true); + } + + public static ItemStack get(OrePrefixes aPrefix, Object aMaterial, long aAmount) { + return get(aPrefix, aMaterial, null, aAmount); + } + + public static ItemStack get(OrePrefixes aPrefix, Object aMaterial, ItemStack aReplacement, long aAmount) { + return get(aPrefix.get(aMaterial), aReplacement, aAmount, false, true); + } + + public static ItemStack get(Object aName, ItemStack aReplacement, long aAmount, boolean aMentionPossibleTypos, boolean aNoInvalidAmounts) { + if (aNoInvalidAmounts && aAmount < 1) return null; + if (!sName2StackMap.containsKey(aName.toString()) && aMentionPossibleTypos) + GT_Log.err.println("Unknown Key for Unification, Typo? " + aName); + return GT_Utility.copyAmount(aAmount, sName2StackMap.get(aName.toString()), getFirstOre(aName, aAmount), aReplacement); + } + + public static ItemStack[] setStackArray(boolean aUseBlackList, ItemStack... aStacks) { + for (int i = 0; i < aStacks.length; i++) aStacks[i] = get(aUseBlackList, GT_Utility.copy(aStacks[i])); + return aStacks; + } + + public static ItemStack[] getStackArray(boolean aUseBlackList, Object... aStacks) { + ItemStack[] rStacks = new ItemStack[aStacks.length]; + for (int i = 0; i < aStacks.length; i++) rStacks[i] = get(aUseBlackList, GT_Utility.copy(aStacks[i])); + return rStacks; + } + + public static ItemStack setStack(ItemStack aStack) { + return setStack(true, aStack); + } + + public static ItemStack setStack(boolean aUseBlackList, ItemStack aStack) { + if (GT_Utility.isStackInvalid(aStack)) return aStack; + ItemStack tStack = get(aUseBlackList, aStack); + if (GT_Utility.areStacksEqual(aStack, tStack)) return aStack; + aStack.func_150996_a(tStack.getItem()); + Items.feather.setDamage(aStack, Items.feather.getDamage(tStack)); + return aStack; + } + + public static ItemStack get(ItemStack aStack) { + return get(true, aStack); + } + + public static ItemStack get(boolean aUseBlackList, ItemStack aStack) { + if (GT_Utility.isStackInvalid(aStack)) return null; + ItemData tPrefixMaterial = getAssociation(aStack); + ItemStack rStack = null; + if (tPrefixMaterial == null || !tPrefixMaterial.hasValidPrefixMaterialData() || (aUseBlackList && tPrefixMaterial.mBlackListed)) + return GT_Utility.copy(aStack); + if (aUseBlackList && !GregTech_API.sUnificationEntriesRegistered && isBlacklisted(aStack)) { + tPrefixMaterial.mBlackListed = true; + return GT_Utility.copy(aStack); + } + if (tPrefixMaterial.mUnificationTarget == null) + tPrefixMaterial.mUnificationTarget = sName2StackMap.get(tPrefixMaterial.toString()); + rStack = tPrefixMaterial.mUnificationTarget; + if (GT_Utility.isStackInvalid(rStack)) return GT_Utility.copy(aStack); + assert rStack != null; + rStack.setTagCompound(aStack.getTagCompound()); + return GT_Utility.copyAmount(aStack.stackSize, rStack); + } + + public static void addItemData(ItemStack aStack, ItemData aData) { + if (GT_Utility.isStackValid(aStack) && getItemData(aStack) == null && aData != null) setItemData(aStack, aData); + } + + public static void setItemData(ItemStack aStack, ItemData aData) { + if (GT_Utility.isStackInvalid(aStack) || aData == null) return; + ItemData tData = getItemData(aStack); + if (tData == null || !tData.hasValidPrefixMaterialData()) { + if (tData != null) for (Object tObject : tData.mExtraData) + if (!aData.mExtraData.contains(tObject)) aData.mExtraData.add(tObject); + if (aStack.stackSize > 1) { + if (aData.mMaterial != null) aData.mMaterial.mAmount /= aStack.stackSize; + for (MaterialStack tMaterial : aData.mByProducts) tMaterial.mAmount /= aStack.stackSize; + aStack = GT_Utility.copyAmount(1, aStack); + } + sItemStack2DataMap.put(new GT_ItemStack(aStack), aData); + if (aData.hasValidMaterialData()) { + long tValidMaterialAmount = aData.mMaterial.mMaterial.contains(SubTag.NO_RECYCLING) ? 0 : aData.mMaterial.mAmount >= 0 ? aData.mMaterial.mAmount : M; + for (MaterialStack tMaterial : aData.mByProducts) + tValidMaterialAmount += tMaterial.mMaterial.contains(SubTag.NO_RECYCLING) ? 0 : tMaterial.mAmount >= 0 ? tMaterial.mAmount : M; + if (tValidMaterialAmount < M) GT_ModHandler.addToRecyclerBlackList(aStack); + } + if (mRunThroughTheList) { + if (GregTech_API.sLoadStarted) { + mRunThroughTheList = false; + for (Entry tEntry : sItemStack2DataMap.entrySet()) + if (!tEntry.getValue().hasValidPrefixData() || tEntry.getValue().mPrefix.mAllowNormalRecycling) + GT_RecipeRegistrator.registerMaterialRecycling(tEntry.getKey().toStack(), tEntry.getValue()); + } + } else { + if (!aData.hasValidPrefixData() || aData.mPrefix.mAllowNormalRecycling) + GT_RecipeRegistrator.registerMaterialRecycling(aStack, aData); + } + } else { + for (Object tObject : aData.mExtraData) + if (!tData.mExtraData.contains(tObject)) tData.mExtraData.add(tObject); + } + } + + public static void addAssociation(OrePrefixes aPrefix, Materials aMaterial, ItemStack aStack, boolean aBlackListed) { + if (aPrefix == null || aMaterial == null || GT_Utility.isStackInvalid(aStack)) return; + if (Items.feather.getDamage(aStack) == W) for (byte i = 0; i < 16; i++) + setItemData(GT_Utility.copyAmountAndMetaData(1, i, aStack), new ItemData(aPrefix, aMaterial, aBlackListed)); + setItemData(aStack, new ItemData(aPrefix, aMaterial, aBlackListed)); + } + + public static ItemData getItemData(ItemStack aStack) { + if (GT_Utility.isStackInvalid(aStack)) return null; + ItemData rData = sItemStack2DataMap.get(new GT_ItemStack(aStack)); + if (rData == null) rData = sItemStack2DataMap.get(new GT_ItemStack(GT_Utility.copyMetaData(W, aStack))); + return rData; + } + + public static ItemData getAssociation(ItemStack aStack) { + ItemData rData = getItemData(aStack); + return rData != null && rData.hasValidPrefixMaterialData() ? rData : null; + } + + public static boolean isItemStackInstanceOf(ItemStack aStack, Object aName) { + if (GT_Utility.isStringInvalid(aName) || GT_Utility.isStackInvalid(aStack)) return false; + for (ItemStack tOreStack : getOres(aName.toString())) + if (GT_Utility.areStacksEqual(tOreStack, aStack, true)) return true; + return false; + } + + public static boolean isItemStackDye(ItemStack aStack) { + if (GT_Utility.isStackInvalid(aStack)) return false; + for (Dyes tDye : Dyes.VALUES) if (isItemStackInstanceOf(aStack, tDye.toString())) return true; + return false; + } + public static boolean registerOre(OrePrefixes aPrefix, Object aMaterial, ItemStack aStack) { - return registerOre(aPrefix.get(aMaterial), aStack); + return registerOre(aPrefix.get(aMaterial), aStack); } - + public static boolean registerOre(Object aName, ItemStack aStack) { - if (aName == null || GT_Utility.isStackInvalid(aStack)) return false; - String tName = aName.toString(); - if (GT_Utility.isStringInvalid(tName)) return false; - ArrayList tList = getOres(tName); - for (int i = 0; i < tList.size(); i++) if (GT_Utility.areStacksEqual(tList.get(i), aStack, true)) return false; - isRegisteringOre++; - OreDictionary.registerOre(tName, GT_Utility.copyAmount(1, aStack)); - isRegisteringOre--; - return true; + if (aName == null || GT_Utility.isStackInvalid(aStack)) return false; + String tName = aName.toString(); + if (GT_Utility.isStringInvalid(tName)) return false; + ArrayList tList = getOres(tName); + for (int i = 0; i < tList.size(); i++) if (GT_Utility.areStacksEqual(tList.get(i), aStack, true)) return false; + isRegisteringOre++; + OreDictionary.registerOre(tName, GT_Utility.copyAmount(1, aStack)); + isRegisteringOre--; + return true; } - + public static boolean isRegisteringOres() { - return isRegisteringOre > 0; + return isRegisteringOre > 0; } - + public static boolean isAddingOres() { - return isAddingOre > 0; + return isAddingOre > 0; } - + public static void resetUnificationEntries() { - for (ItemData tPrefixMaterial : sItemStack2DataMap.values()) tPrefixMaterial.mUnificationTarget = null; + for (ItemData tPrefixMaterial : sItemStack2DataMap.values()) tPrefixMaterial.mUnificationTarget = null; } - + public static ItemStack getGem(MaterialStack aMaterial) { - return aMaterial==null?null:getGem(aMaterial.mMaterial, aMaterial.mAmount); + return aMaterial == null ? null : getGem(aMaterial.mMaterial, aMaterial.mAmount); } - + public static ItemStack getGem(Materials aMaterial, OrePrefixes aPrefix) { - return aMaterial==null?null:getGem(aMaterial, aPrefix.mMaterialAmount); + return aMaterial == null ? null : getGem(aMaterial, aPrefix.mMaterialAmount); } - + public static ItemStack getGem(Materials aMaterial, long aMaterialAmount) { - ItemStack rStack = null; - if ( (( aMaterialAmount >= M ) || aMaterialAmount >= M * 32)) rStack = get(OrePrefixes.gem , aMaterial, aMaterialAmount / M ); - if (rStack == null && (((aMaterialAmount * 2) % M == 0) || aMaterialAmount >= M * 16)) rStack = get(OrePrefixes.gemFlawed , aMaterial, (aMaterialAmount * 2) / M ); - if (rStack == null && (((aMaterialAmount * 4) >= M ) )) rStack = get(OrePrefixes.gemChipped , aMaterial, (aMaterialAmount * 4) / M ); - return rStack; + ItemStack rStack = null; + if (((aMaterialAmount >= M) || aMaterialAmount >= M * 32)) + rStack = get(OrePrefixes.gem, aMaterial, aMaterialAmount / M); + if (rStack == null && (((aMaterialAmount * 2) % M == 0) || aMaterialAmount >= M * 16)) + rStack = get(OrePrefixes.gemFlawed, aMaterial, (aMaterialAmount * 2) / M); + if (rStack == null && (((aMaterialAmount * 4) >= M))) + rStack = get(OrePrefixes.gemChipped, aMaterial, (aMaterialAmount * 4) / M); + return rStack; } - + public static ItemStack getDust(MaterialStack aMaterial) { - return aMaterial==null?null:getDust(aMaterial.mMaterial, aMaterial.mAmount); + return aMaterial == null ? null : getDust(aMaterial.mMaterial, aMaterial.mAmount); } - + public static ItemStack getDust(Materials aMaterial, OrePrefixes aPrefix) { - return aMaterial==null?null:getDust(aMaterial, aPrefix.mMaterialAmount); + return aMaterial == null ? null : getDust(aMaterial, aPrefix.mMaterialAmount); } - + public static ItemStack getDust(Materials aMaterial, long aMaterialAmount) { - if (aMaterialAmount <= 0) return null; - ItemStack rStack = null; - if ( (( aMaterialAmount % M == 0) || aMaterialAmount >= M * 16)) rStack = get(OrePrefixes.dust , aMaterial, aMaterialAmount / M ); - if (rStack == null && (((aMaterialAmount * 4) % M == 0) || aMaterialAmount >= M * 8)) rStack = get(OrePrefixes.dustSmall , aMaterial, (aMaterialAmount * 4) / M ); - if (rStack == null && (((aMaterialAmount * 9) >= M ) )) rStack = get(OrePrefixes.dustTiny , aMaterial, (aMaterialAmount * 9) / M ); - return rStack; + if (aMaterialAmount <= 0) return null; + ItemStack rStack = null; + if (((aMaterialAmount % M == 0) || aMaterialAmount >= M * 16)) + rStack = get(OrePrefixes.dust, aMaterial, aMaterialAmount / M); + if (rStack == null && (((aMaterialAmount * 4) % M == 0) || aMaterialAmount >= M * 8)) + rStack = get(OrePrefixes.dustSmall, aMaterial, (aMaterialAmount * 4) / M); + if (rStack == null && (((aMaterialAmount * 9) >= M))) + rStack = get(OrePrefixes.dustTiny, aMaterial, (aMaterialAmount * 9) / M); + return rStack; } - + public static ItemStack getIngot(MaterialStack aMaterial) { - return aMaterial==null?null:getIngot(aMaterial.mMaterial, aMaterial.mAmount); + return aMaterial == null ? null : getIngot(aMaterial.mMaterial, aMaterial.mAmount); } - + public static ItemStack getIngot(Materials aMaterial, OrePrefixes aPrefix) { - return aMaterial==null?null:getIngot(aMaterial, aPrefix.mMaterialAmount); + return aMaterial == null ? null : getIngot(aMaterial, aPrefix.mMaterialAmount); } - + public static ItemStack getIngot(Materials aMaterial, long aMaterialAmount) { - if (aMaterialAmount <= 0) return null; - ItemStack rStack = null; - if ( (( aMaterialAmount % (M *9) == 0 && aMaterialAmount / (M * 9) > 1) || aMaterialAmount >= M * 72)) rStack = get(OrePrefixes.block , aMaterial, aMaterialAmount / (M * 9)); - if (rStack == null && (( aMaterialAmount % M == 0 ) || aMaterialAmount >= M * 8)) rStack = get(OrePrefixes.ingot , aMaterial, aMaterialAmount / M ); - if (rStack == null && (((aMaterialAmount * 9) >= M ) )) rStack = get(OrePrefixes.nugget , aMaterial, (aMaterialAmount * 9) / M ); - return rStack; + if (aMaterialAmount <= 0) return null; + ItemStack rStack = null; + if (((aMaterialAmount % (M * 9) == 0 && aMaterialAmount / (M * 9) > 1) || aMaterialAmount >= M * 72)) + rStack = get(OrePrefixes.block, aMaterial, aMaterialAmount / (M * 9)); + if (rStack == null && ((aMaterialAmount % M == 0) || aMaterialAmount >= M * 8)) + rStack = get(OrePrefixes.ingot, aMaterial, aMaterialAmount / M); + if (rStack == null && (((aMaterialAmount * 9) >= M))) + rStack = get(OrePrefixes.nugget, aMaterial, (aMaterialAmount * 9) / M); + return rStack; } - + public static ItemStack getIngotOrDust(Materials aMaterial, long aMaterialAmount) { - if (aMaterialAmount <= 0) return null; - ItemStack rStack = getIngot(aMaterial, aMaterialAmount); - if (rStack == null) rStack = getDust(aMaterial, aMaterialAmount); - return rStack; + if (aMaterialAmount <= 0) return null; + ItemStack rStack = getIngot(aMaterial, aMaterialAmount); + if (rStack == null) rStack = getDust(aMaterial, aMaterialAmount); + return rStack; } - + public static ItemStack getIngotOrDust(MaterialStack aMaterial) { - ItemStack rStack = getIngot(aMaterial); - if (rStack == null) rStack = getDust(aMaterial); - return rStack; + ItemStack rStack = getIngot(aMaterial); + if (rStack == null) rStack = getDust(aMaterial); + return rStack; } - + public static ItemStack getDustOrIngot(Materials aMaterial, long aMaterialAmount) { - if (aMaterialAmount <= 0) return null; - ItemStack rStack = getDust(aMaterial, aMaterialAmount); - if (rStack == null) rStack = getIngot(aMaterial, aMaterialAmount); - return rStack; + if (aMaterialAmount <= 0) return null; + ItemStack rStack = getDust(aMaterial, aMaterialAmount); + if (rStack == null) rStack = getIngot(aMaterial, aMaterialAmount); + return rStack; } - + public static ItemStack getDustOrIngot(MaterialStack aMaterial) { - ItemStack rStack = getDust(aMaterial); - if (rStack == null) rStack = getIngot(aMaterial); - return rStack; + ItemStack rStack = getDust(aMaterial); + if (rStack == null) rStack = getIngot(aMaterial); + return rStack; } - + /** * @return a Copy of the OreDictionary.getOres() List */ public static ArrayList getOres(OrePrefixes aPrefix, Object aMaterial) { - return getOres(aPrefix.get(aMaterial)); + return getOres(aPrefix.get(aMaterial)); } - + /** * @return a Copy of the OreDictionary.getOres() List */ public static ArrayList getOres(Object aOreName) { - String aName = aOreName==null?E:aOreName.toString(); - ArrayList rList = new ArrayList(); - if (GT_Utility.isStringValid(aName)) rList.addAll(OreDictionary.getOres(aName)); - return rList; + String aName = aOreName == null ? E : aOreName.toString(); + ArrayList rList = new ArrayList(); + if (GT_Utility.isStringValid(aName)) rList.addAll(OreDictionary.getOres(aName)); + return rList; } } diff --git a/src/main/java/gregtech/api/util/GT_PlayedSound.java b/src/main/java/gregtech/api/util/GT_PlayedSound.java index fa986939..858f3b82 100644 --- a/src/main/java/gregtech/api/util/GT_PlayedSound.java +++ b/src/main/java/gregtech/api/util/GT_PlayedSound.java @@ -3,26 +3,26 @@ package gregtech.api.util; import static gregtech.api.enums.GT_Values.E; public class GT_PlayedSound { - public final String mSoundName; - public final int mX, mY, mZ; - - public GT_PlayedSound(String aSoundName, double aX, double aY, double aZ) { - mSoundName = aSoundName==null?E:aSoundName; - mX = (int)aX; - mY = (int)aY; - mZ = (int)aZ; - } - - @Override - public boolean equals(Object aObject) { - if (aObject != null && aObject instanceof GT_PlayedSound) { - return ((GT_PlayedSound)aObject).mX == mX && ((GT_PlayedSound)aObject).mY == mY && ((GT_PlayedSound)aObject).mZ == mZ && ((GT_PlayedSound)aObject).mSoundName.equals(mSoundName); - } - return false; - } - - @Override - public int hashCode() { - return mX+mY+mZ+mSoundName.hashCode(); - } + public final String mSoundName; + public final int mX, mY, mZ; + + public GT_PlayedSound(String aSoundName, double aX, double aY, double aZ) { + mSoundName = aSoundName == null ? E : aSoundName; + mX = (int) aX; + mY = (int) aY; + mZ = (int) aZ; + } + + @Override + public boolean equals(Object aObject) { + if (aObject != null && aObject instanceof GT_PlayedSound) { + return ((GT_PlayedSound) aObject).mX == mX && ((GT_PlayedSound) aObject).mY == mY && ((GT_PlayedSound) aObject).mZ == mZ && ((GT_PlayedSound) aObject).mSoundName.equals(mSoundName); + } + return false; + } + + @Override + public int hashCode() { + return mX + mY + mZ + mSoundName.hashCode(); + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/util/GT_Recipe.java b/src/main/java/gregtech/api/util/GT_Recipe.java index 6c1af65f..61b6fde2 100644 --- a/src/main/java/gregtech/api/util/GT_Recipe.java +++ b/src/main/java/gregtech/api/util/GT_Recipe.java @@ -1,6 +1,5 @@ package gregtech.api.util; -import static gregtech.api.enums.GT_Values.*; import gregtech.api.GregTech_API; import gregtech.api.enums.Dyes; import gregtech.api.enums.ItemList; @@ -12,9 +11,6 @@ import gregtech.api.objects.GT_FluidStack; import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.ItemData; import gregtech.api.objects.MaterialStack; - -import java.util.*; - import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -24,1023 +20,1252 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidContainerItem; +import java.util.*; + +import static gregtech.api.enums.GT_Values.*; + /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* This File contains the functions used for Recipes. Please do not include this File AT ALL in your Moddownload as it ruins compatibility * This is just the Core of my Recipe System, if you just want to GET the Recipes I add, then you can access this File. * Do NOT add Recipes using the Constructors inside this Class, The GregTech_API File calls the correct Functions for these Constructors. - * + *

* I know this File causes some Errors, because of missing Main Functions, but if you just need to compile Stuff, then remove said erroreous Functions. */ public class GT_Recipe { - public static volatile int VERSION = 508; - - public static class GT_Recipe_Map { - /** Contains all Recipe Maps */ - public static final Collection sMappings = new ArrayList(); - - public static final GT_Recipe_Map sOreWasherRecipes = new GT_Recipe_Map_OreWasher (new HashSet( 0), "ic.recipe.orewasher" , "Ore Washer" , "ic2.blockOreWashingPlant" , RES_PATH_GUI+"basicmachines/OreWasher" , 1, 3, 1, 1, 1, E , 1, E , true , false); - public static final GT_Recipe_Map sThermalCentrifugeRecipes = new GT_Recipe_Map_ThermalCentrifuge (new HashSet( 0), "ic.recipe.thermalcentrifuge" , "Thermal Centrifuge" , "ic2.blockCentrifuge" , RES_PATH_GUI+"basicmachines/ThermalCentrifuge" , 1, 3, 1, 0, 2, E , 1, E , true , false); - public static final GT_Recipe_Map sCompressorRecipes = new GT_Recipe_Map_Compressor (new HashSet( 0), "ic.recipe.compressor" , "Compressor" , "ic2.compressor" , RES_PATH_GUI+"basicmachines/Compressor" , 1, 1, 1, 0, 1, E , 1, E , true , false); - public static final GT_Recipe_Map sExtractorRecipes = new GT_Recipe_Map_Extractor (new HashSet( 0), "ic.recipe.extractor" , "Extractor" , "ic2.extractor" , RES_PATH_GUI+"basicmachines/Extractor" , 1, 1, 1, 0, 1, E , 1, E , true , false); - public static final GT_Recipe_Map sRecyclerRecipes = new GT_Recipe_Map_Recycler (new HashSet( 0), "ic.recipe.recycler" , "Recycler" , "ic2.recycler" , RES_PATH_GUI+"basicmachines/Recycler" , 1, 1, 1, 0, 1, E , 1, E , true , false); - public static final GT_Recipe_Map sFurnaceRecipes = new GT_Recipe_Map_Furnace (new HashSet( 0), "mc.recipe.furnace" , "Furnace" , "smelting" , RES_PATH_GUI+"basicmachines/E_Furnace" , 1, 1, 1, 0, 1, E , 1, E , true , false); - public static final GT_Recipe_Map sMicrowaveRecipes = new GT_Recipe_Map_Microwave (new HashSet( 0), "gt.recipe.microwave" , "Microwave" , "smelting" , RES_PATH_GUI+"basicmachines/E_Furnace" , 1, 1, 1, 0, 1, E , 1, E , true , false); - - public static final GT_Recipe_Map sScannerFakeRecipes = new GT_Recipe_Map (new HashSet( 3), "gt.recipe.scanner" , "Scanner" , null , RES_PATH_GUI+"basicmachines/Scanner" , 1, 1, 1, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sRockBreakerFakeRecipes = new GT_Recipe_Map (new HashSet( 3), "gt.recipe.rockbreaker" , "Rock Breaker" , null , RES_PATH_GUI+"basicmachines/RockBreaker" , 1, 1, 0, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sByProductList = new GT_Recipe_Map (new HashSet( 1000), "gt.recipe.byproductlist" , "Ore Byproduct List" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 6, 1, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sRepicatorFakeRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.replicator" , "Replicator" , null , RES_PATH_GUI+"basicmachines/Replicator" , 0, 1, 0, 1, 1, E , 1, E , true , true); - - public static final GT_Recipe_Map sPlasmaArcFurnaceRecipes = new GT_Recipe_Map (new HashSet(10000), "gt.recipe.plasmaarcfurnace" , "Plasma Arc Furnace" , null , RES_PATH_GUI+"basicmachines/PlasmaArcFurnace" , 1, 4, 1, 1, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sArcFurnaceRecipes = new GT_Recipe_Map (new HashSet(10000), "gt.recipe.arcfurnace" , "Arc Furnace" , null , RES_PATH_GUI+"basicmachines/ArcFurnace" , 1, 4, 1, 1, 3, E , 1, E , true , true); - public static final GT_Recipe_Map sPrinterRecipes = new GT_Recipe_Map_Printer (new HashSet( 100), "gt.recipe.printer" , "Printer" , null , RES_PATH_GUI+"basicmachines/Printer" , 1, 1, 1, 1, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sSifterRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.sifter" , "Sifter" , null , RES_PATH_GUI+"basicmachines/Sifter" , 1, 9, 1, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sPressRecipes = new GT_Recipe_Map_FormingPress (new HashSet( 100), "gt.recipe.press" , "Forming Press" , null , RES_PATH_GUI+"basicmachines/Press" , 2, 1, 2, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sLaserEngraverRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.laserengraver" , "Precision Laser Engraver" , null , RES_PATH_GUI+"basicmachines/LaserEngraver" , 2, 1, 2, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sMixerRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.mixer" , "Mixer" , null , RES_PATH_GUI+"basicmachines/Mixer" , 4, 1, 1, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sAutoclaveRecipes = new GT_Recipe_Map (new HashSet( 200), "gt.recipe.autoclave" , "Autoclave" , null , RES_PATH_GUI+"basicmachines/Autoclave" , 1, 1, 1, 1, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sElectroMagneticSeparatorRecipes = new GT_Recipe_Map (new HashSet( 50), "gt.recipe.electromagneticseparator" , "Electromagnetic Separator" , null , RES_PATH_GUI+"basicmachines/ElectromagneticSeparator" , 1, 3, 1, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sPolarizerRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.polarizer" , "Electromagnetic Polarizer" , null , RES_PATH_GUI+"basicmachines/Polarizer" , 1, 1, 1, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sMaceratorRecipes = new GT_Recipe_Map_Macerator (new HashSet(10000), "gt.recipe.macerator" , "Pulverization" , null , RES_PATH_GUI+"basicmachines/Macerator4" , 1, 4, 1, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sChemicalBathRecipes = new GT_Recipe_Map (new HashSet( 200), "gt.recipe.chemicalbath" , "Chemical Bath" , null , RES_PATH_GUI+"basicmachines/ChemicalBath" , 1, 3, 1, 1, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sFluidCannerRecipes = new GT_Recipe_Map_FluidCanner (new HashSet( 100), "gt.recipe.fluidcanner" , "Fluid Canning Machine" , null , RES_PATH_GUI+"basicmachines/FluidCannerNEI" , 1, 1, 1, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sBrewingRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.brewer" , "Brewing Machine" , null , RES_PATH_GUI+"basicmachines/PotionBrewer" , 1, 0, 1, 1, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sFluidHeaterRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.fluidheater" , "Fluid Heater" , null , RES_PATH_GUI+"basicmachines/FluidHeater" , 1, 0, 1, 1, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sDistilleryRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.distillery" , "Distillery" , null , RES_PATH_GUI+"basicmachines/Distillery" , 1, 0, 1, 1, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sFermentingRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.fermenter" , "Fermenter" , null , RES_PATH_GUI+"basicmachines/Fermenter" , 0, 0, 0, 1, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sFluidSolidficationRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.fluidsolidifier" , "Fluid Solidifier" , null , RES_PATH_GUI+"basicmachines/FluidSolidifier" , 1, 1, 1, 1, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sFluidExtractionRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.fluidextractor" , "Fluid Extractor" , null , RES_PATH_GUI+"basicmachines/FluidExtractor" , 1, 1, 1, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sBoxinatorRecipes = new GT_Recipe_Map (new HashSet( 2500), "gt.recipe.packager" , "Packager" , null , RES_PATH_GUI+"basicmachines/Packager" , 2, 1, 2, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sUnboxinatorRecipes = new GT_Recipe_Map_Unboxinator (new HashSet( 2500), "gt.recipe.unpackager" , "Unpackager" , null , RES_PATH_GUI+"basicmachines/Unpackager" , 1, 2, 1, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sFusionRecipes = new GT_Recipe_Map (new HashSet( 50), "gt.recipe.fusionreactor" , "Fusion Reactor" , null , RES_PATH_GUI+"basicmachines/Default" , 0, 0, 0, 2, 1, "Start: " , 1, " EU" , true , true); - public static final GT_Recipe_Map sCentrifugeRecipes = new GT_Recipe_Map (new HashSet( 1000), "gt.recipe.centrifuge" , "Centrifuge" , null , RES_PATH_GUI+"basicmachines/Centrifuge" , 2, 6, 0, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sElectrolyzerRecipes = new GT_Recipe_Map (new HashSet( 200), "gt.recipe.electrolyzer" , "Electrolyzer" , null , RES_PATH_GUI+"basicmachines/Electrolyzer" , 2, 6, 0, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sBlastRecipes = new GT_Recipe_Map (new HashSet( 500), "gt.recipe.blastfurnace" , "Blast Furnace" , null , RES_PATH_GUI+"basicmachines/Default" , 2, 2, 1, 0, 1, "Heat Capacity: " , 1, " K" , false, true); - public static final GT_Recipe_Map sImplosionRecipes = new GT_Recipe_Map (new HashSet( 50), "gt.recipe.implosioncompressor" , "Implosion Compressor" , null , RES_PATH_GUI+"basicmachines/Default" , 2, 2, 2, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sVacuumRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.vacuumfreezer" , "Vacuum Freezer" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 1, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sChemicalRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.chemicalreactor" , "Chemical Reactor" , null , RES_PATH_GUI+"basicmachines/ChemicalReactor" , 2, 1, 1, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sDistillationRecipes = new GT_Recipe_Map (new HashSet( 50), "gt.recipe.distillationtower" , "Distillation Tower" , null , RES_PATH_GUI+"basicmachines/Default" , 2, 4, 0, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sWiremillRecipes = new GT_Recipe_Map (new HashSet( 50), "gt.recipe.wiremill" , "Wiremill" , null , RES_PATH_GUI+"basicmachines/Wiremill" , 1, 1, 1, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sBenderRecipes = new GT_Recipe_Map (new HashSet( 400), "gt.recipe.metalbender" , "Metal Bender" , null , RES_PATH_GUI+"basicmachines/Bender" , 2, 1, 2, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sAlloySmelterRecipes = new GT_Recipe_Map (new HashSet( 3000), "gt.recipe.alloysmelter" , "Alloy Smelter" , null , RES_PATH_GUI+"basicmachines/AlloySmelter" , 2, 1, 2, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sAssemblerRecipes = new GT_Recipe_Map_Assembler (new HashSet( 300), "gt.recipe.assembler" , "Assembler" , null , RES_PATH_GUI+"basicmachines/Assembler" , 2, 1, 1, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sCannerRecipes = new GT_Recipe_Map (new HashSet( 300), "gt.recipe.canner" , "Canning Machine" , null , RES_PATH_GUI+"basicmachines/Canner" , 2, 2, 1, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sCNCRecipes = new GT_Recipe_Map (new HashSet( 100), "gt.recipe.cncmachine" , "CNC Machine" , null , RES_PATH_GUI+"basicmachines/Default" , 2, 1, 2, 1, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sLatheRecipes = new GT_Recipe_Map (new HashSet( 400), "gt.recipe.lathe" , "Lathe" , null , RES_PATH_GUI+"basicmachines/Lathe" , 1, 2, 1, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sCutterRecipes = new GT_Recipe_Map (new HashSet( 200), "gt.recipe.cuttingsaw" , "Cutting Saw" , null , RES_PATH_GUI+"basicmachines/Cutter" , 1, 2, 1, 1, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sSlicerRecipes = new GT_Recipe_Map (new HashSet( 200), "gt.recipe.slicer" , "Slicer" , null , RES_PATH_GUI+"basicmachines/Slicer" , 2, 1, 2, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sExtruderRecipes = new GT_Recipe_Map (new HashSet( 1000), "gt.recipe.extruder" , "Extruder" , null , RES_PATH_GUI+"basicmachines/Extruder" , 2, 1, 2, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sHammerRecipes = new GT_Recipe_Map (new HashSet( 200), "gt.recipe.hammer" , "Hammer" , null , RES_PATH_GUI+"basicmachines/Hammer" , 1, 1, 1, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map sAmplifiers = new GT_Recipe_Map (new HashSet( 10), "gt.recipe.uuamplifier" , "UU Amplifier" , null , RES_PATH_GUI+"basicmachines/Amplifabricator" , 1, 0, 1, 0, 1, E , 1, E , true , true); - public static final GT_Recipe_Map_Fuel sDieselFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.dieselgeneratorfuel" , "Diesel Generator Fuel" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , true , true); - public static final GT_Recipe_Map_Fuel sTurbineFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.gasturbinefuel" , "Gas Turbine Fuel" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , true , true); - public static final GT_Recipe_Map_Fuel sHotFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.thermalgeneratorfuel" , "Thermal Generator Fuel" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , true , false); - public static final GT_Recipe_Map_Fuel sDenseLiquidFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.semifluidboilerfuels" , "Semifluid Boiler Fuels" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , true , true); - public static final GT_Recipe_Map_Fuel sPlasmaFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.plasmageneratorfuels" , "Plasma generator Fuels" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , true , true); - public static final GT_Recipe_Map_Fuel sMagicFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.magicfuels" , "Magic Fuels" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , true , true); - public static final GT_Recipe_Map_Fuel sSmallNaquadahReactorFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.smallnaquadahreactor" , "Small Naquadah Reactor" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , true , true); - public static final GT_Recipe_Map_Fuel sLargeNaquadahReactorFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.largenaquadahreactor" , "Large Naquadah Reactor" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , true , true); - public static final GT_Recipe_Map_Fuel sFluidNaquadahReactorFuels = new GT_Recipe_Map_Fuel (new HashSet( 10), "gt.recipe.fluidnaquadahreactor" , "Fluid Naquadah Reactor" , null , RES_PATH_GUI+"basicmachines/Default" , 1, 1, 0, 0, 1, "Fuel Value: " , 1000, " EU" , true , true); - - /** HashMap of Recipes based on their Items */ - public final Map> mRecipeItemMap = new HashMap>(); - /** HashMap of Recipes based on their Fluids */ - public final Map> mRecipeFluidMap = new HashMap>(); - /** The List of all Recipes */ - public final Collection mRecipeList; - /** String used as an unlocalised Name. */ - public final String mUnlocalizedName; - /** String used in NEI for the Recipe Lists. If null it will use the unlocalised Name instead*/ - public final String mNEIName; - /** GUI used for NEI Display. Usually the GUI of the Machine itself */ - public final String mNEIGUIPath; - public final String mNEISpecialValuePre, mNEISpecialValuePost; - public final int mUsualInputCount, mUsualOutputCount, mNEISpecialValueMultiplier, mMinimalInputItems, mMinimalInputFluids, mAmperage; - public final boolean mNEIAllowed, mShowVoltageAmperageInNEI; - - /** - * Initialises a new type of Recipe Handler. - * @param aRecipeList a List you specify as Recipe List. Usually just an ArrayList with a pre-initialised Size. - * @param aUnlocalizedName the unlocalised Name of this Recipe Handler, used mainly for NEI. - * @param aLocalName the displayed Name inside the NEI Recipe GUI. - * @param aNEIGUIPath the displayed GUI Texture, usually just a Machine GUI. Auto-Attaches ".png" if forgotten. - * @param aUsualInputCount the usual amount of Input Slots this Recipe Class has. - * @param aUsualOutputCount the usual amount of Output Slots this Recipe Class has. - * @param aNEISpecialValuePre the String in front of the Special Value in NEI. - * @param aNEISpecialValueMultiplier the Value the Special Value is getting Multiplied with before displaying - * @param aNEISpecialValuePost the String after the Special Value. Usually for a Unit or something. - * @param aNEIAllowed if NEI is allowed to display this Recipe Handler in general. - */ - public GT_Recipe_Map(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - sMappings.add(this); - mNEIAllowed = aNEIAllowed; - mShowVoltageAmperageInNEI = aShowVoltageAmperageInNEI; - mRecipeList = aRecipeList; - mNEIName = aNEIName == null ? aUnlocalizedName : aNEIName; - mNEIGUIPath = aNEIGUIPath.endsWith(".png")?aNEIGUIPath:aNEIGUIPath + ".png"; - mNEISpecialValuePre = aNEISpecialValuePre; - mNEISpecialValueMultiplier = aNEISpecialValueMultiplier; - mNEISpecialValuePost = aNEISpecialValuePost; - mAmperage = aAmperage; - mUsualInputCount = aUsualInputCount; - mUsualOutputCount = aUsualOutputCount; - mMinimalInputItems = aMinimalInputItems; - mMinimalInputFluids = aMinimalInputFluids; - GregTech_API.sFluidMappings.add(mRecipeFluidMap); - GregTech_API.sItemStackMappings.add(mRecipeItemMap); - GT_LanguageManager.addStringLocalization(mUnlocalizedName = aUnlocalizedName, aLocalName); - } - - public GT_Recipe addRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { - return addRecipe(new GT_Recipe(aOptimize, aInputs, aOutputs, aSpecial, aOutputChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue)); - } - - public GT_Recipe addRecipe(int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { - return addRecipe(new GT_Recipe(false, null, null, null, aOutputChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue), false, false, false); - } - - public GT_Recipe addRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { - return addRecipe(new GT_Recipe(aOptimize, aInputs, aOutputs, aSpecial, null, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue)); - } - - public GT_Recipe addRecipe(GT_Recipe aRecipe) { - return addRecipe(aRecipe, true , false, false); - } - - protected GT_Recipe addRecipe(GT_Recipe aRecipe, boolean aCheckForCollisions, boolean aFakeRecipe, boolean aHidden) { - aRecipe.mHidden = aHidden; - aRecipe.mFakeRecipe = aFakeRecipe; - if (aRecipe.mFluidInputs.length < mMinimalInputFluids && aRecipe.mInputs.length < mMinimalInputItems) return null; - if (aCheckForCollisions && findRecipe(null, false, Long.MAX_VALUE, aRecipe.mFluidInputs, aRecipe.mInputs) != null) return null; - return add(aRecipe); - } - - /** Only used for fake Recipe Handlers to show something in NEI, do not use this for adding actual Recipes! findRecipe wont find fake Recipes, containsInput WILL find fake Recipes */ - public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { - return addFakeRecipe(aCheckForCollisions, new GT_Recipe(false, aInputs, aOutputs, aSpecial, aOutputChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue)); - } - - /** Only used for fake Recipe Handlers to show something in NEI, do not use this for adding actual Recipes! findRecipe wont find fake Recipes, containsInput WILL find fake Recipes */ - public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { - return addFakeRecipe(aCheckForCollisions, new GT_Recipe(false, aInputs, aOutputs, aSpecial, null, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue)); - } - - /** Only used for fake Recipe Handlers to show something in NEI, do not use this for adding actual Recipes! findRecipe wont find fake Recipes, containsInput WILL find fake Recipes */ - public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, GT_Recipe aRecipe) { - return addRecipe(aRecipe, aCheckForCollisions, true , false); - } - - public GT_Recipe add(GT_Recipe aRecipe) { - mRecipeList.add(aRecipe); - for (FluidStack aFluid : aRecipe.mFluidInputs) if (aFluid != null) { - Collection tList = mRecipeFluidMap.get(aFluid.getFluid()); - if (tList == null) mRecipeFluidMap.put(aFluid.getFluid(), tList = new HashSet(1)); - tList.add(aRecipe); - } - return addToItemMap(aRecipe); - } - - public void reInit() { - Map> tMap = mRecipeItemMap; - if (tMap != null) tMap.clear(); - for (GT_Recipe tRecipe : mRecipeList) { - GT_OreDictUnificator.setStackArray(true , tRecipe.mInputs); - GT_OreDictUnificator.setStackArray(true , tRecipe.mOutputs); - if (tMap != null) addToItemMap(tRecipe); - } - } - - /** @return if this Item is a valid Input for any for the Recipes */ - public boolean containsInput(ItemStack aStack) { - return aStack != null && (mRecipeItemMap.containsKey(new GT_ItemStack(aStack)) || mRecipeItemMap.containsKey(new GT_ItemStack(GT_Utility.copyMetaData(W, aStack)))); - } - - /** @return if this Fluid is a valid Input for any for the Recipes */ - public boolean containsInput(FluidStack aFluid) { - return aFluid != null && containsInput(aFluid.getFluid()); - } - - /** @return if this Fluid is a valid Input for any for the Recipes */ - public boolean containsInput(Fluid aFluid) { - return aFluid != null && mRecipeFluidMap.containsKey(aFluid); - } - - public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack... aInputs) { - return findRecipe(aTileEntity, null, aNotUnificated, aVoltage, aFluids, null, aInputs); - } - - public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack... aInputs) { - return findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, null, aInputs); - } - - /** - * finds a Recipe matching the aFluid and ItemStack Inputs. - * @param aTileEntity an Object representing the current coordinates of the executing Block/Entity/Whatever. This may be null, especially during Startup. - * @param aRecipe in case this is != null it will try to use this Recipe first when looking things up. - * @param aNotUnificated if this is T the Recipe searcher will unificate the ItemStack Inputs - * @param aVoltage Voltage of the Machine or Long.MAX_VALUE if it has no Voltage - * @param aFluids the Fluid Inputs - * @param aSpecialSlot the content of the Special Slot, the regular Manager doesn't do anything with this, but some custom ones do. - * @param aInputs the Item Inputs - * @return the Recipe it has found or null for no matching Recipe - */ - public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { - // No Recipes? Well, nothing to be found then. - if (mRecipeList.isEmpty()) return null; - - // Some Recipe Classes require a certain amount of Inputs of certain kinds. Like "at least 1 Fluid + 1 Stack" or "at least 2 Stacks" before they start searching for Recipes. - // This improves Performance massively, especially if people leave things like Circuits, Molds or Shapes in their Machines to select Sub Recipes. - if (GregTech_API.sPostloadFinished) { - if (mMinimalInputFluids > 0) { - if (aFluids == null) return null; - int tAmount = 0; - for (FluidStack aFluid : aFluids) if (aFluid != null) tAmount++; - if (tAmount < mMinimalInputFluids) return null; - } - if (mMinimalInputItems > 0) { - if (aInputs == null) return null; - int tAmount = 0; - for (ItemStack aInput : aInputs) if (aInput != null) tAmount++; - if (tAmount < mMinimalInputItems) return null; - } - } - - // Unification happens here in case the Input isn't already unificated. - if (aNotUnificated) aInputs = GT_OreDictUnificator.getStackArray(true , (Object[])aInputs); - - // Check the Recipe which has been used last time in order to not have to search for it again, if possible. - if (aRecipe != null) if (!aRecipe.mFakeRecipe && aRecipe.mCanBeBuffered && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe.mEnabled&&aVoltage*mAmperage>=aRecipe.mEUt?aRecipe:null; - - // Now look for the Recipes inside the Item HashMaps, but only when the Recipes usually have Items. - if (mUsualInputCount > 0 && aInputs != null) for (ItemStack tStack : aInputs) if (tStack != null) { - Collection - tRecipes = mRecipeItemMap.get(new GT_ItemStack(tStack)); - if (tRecipes != null) for (GT_Recipe tRecipe : tRecipes) if (!tRecipe.mFakeRecipe && tRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return tRecipe.mEnabled&&aVoltage*mAmperage>=tRecipe.mEUt?tRecipe:null; - tRecipes = mRecipeItemMap.get(new GT_ItemStack(GT_Utility.copyMetaData(W, tStack))); - if (tRecipes != null) for (GT_Recipe tRecipe : tRecipes) if (!tRecipe.mFakeRecipe && tRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return tRecipe.mEnabled&&aVoltage*mAmperage>=tRecipe.mEUt?tRecipe:null; - } - - // If the minimal Amount of Items for the Recipe is 0, then it could be a Fluid-Only Recipe, so check that Map too. - if (mMinimalInputItems == 0 && aFluids != null) for (FluidStack aFluid : aFluids) if (aFluid != null) { - Collection - tRecipes = mRecipeFluidMap.get(aFluid.getFluid()); - if (tRecipes != null) for (GT_Recipe tRecipe : tRecipes) if (!tRecipe.mFakeRecipe && tRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return tRecipe.mEnabled&&aVoltage*mAmperage>=tRecipe.mEUt?tRecipe:null; - } - - // And nothing has been found. - return null; - } - - protected GT_Recipe addToItemMap(GT_Recipe aRecipe) { - for (ItemStack aStack : aRecipe.mInputs) if (aStack != null) { - GT_ItemStack tStack = new GT_ItemStack(aStack); - Collection tList = mRecipeItemMap.get(tStack); - if (tList == null) mRecipeItemMap.put(tStack, tList = new HashSet(1)); - tList.add(aRecipe); - } - return aRecipe; - } - } - - public static void reInit() { + public static volatile int VERSION = 508; + /** + * If you want to change the Output, feel free to modify or even replace the whole ItemStack Array, for Inputs, please add a new Recipe, because of the HashMaps. + */ + public ItemStack[] mInputs, mOutputs; + /** + * If you want to change the Output, feel free to modify or even replace the whole ItemStack Array, for Inputs, please add a new Recipe, because of the HashMaps. + */ + public FluidStack[] mFluidInputs, mFluidOutputs; + /** + * If you changed the amount of Array-Items inside the Output Array then the length of this Array must be larger or equal to the Output Array. A chance of 10000 equals 100% + */ + public int[] mChances; + /** + * An Item that needs to be inside the Special Slot, like for example the Copy Slot inside the Printer. This is only useful for Fake Recipes in NEI, since findRecipe() and containsInput() don't give a shit about this Field. Lists are also possible. + */ + public Object mSpecialItems; + public int mDuration, mEUt, mSpecialValue; + /** + * Use this to just disable a specific Recipe, but the Configuration enables that already for every single Recipe. + */ + public boolean mEnabled = true; + /** + * If this Recipe is hidden from NEI + */ + public boolean mHidden = false; + /** + * If this Recipe is Fake and therefore doesn't get found by the findRecipe Function (It is still in the HashMaps, so that containsInput does return T on those fake Inputs) + */ + public boolean mFakeRecipe = false; + /** + * If this Recipe can be stored inside a Machine in order to make Recipe searching more Efficient by trying the previously used Recipe first. In case you have a Recipe Map overriding things and returning one time use Recipes, you have to set this to F. + */ + public boolean mCanBeBuffered = true; + /** + * If this Recipe needs the Output Slots to be completely empty. Needed in case you have randomised Outputs + */ + public boolean mNeedsEmptyOutput = false; + private GT_Recipe(GT_Recipe aRecipe) { + mInputs = GT_Utility.copyStackArray((Object[]) aRecipe.mInputs); + mOutputs = GT_Utility.copyStackArray((Object[]) aRecipe.mOutputs); + mSpecialItems = aRecipe.mSpecialItems; + mChances = aRecipe.mChances; + mFluidInputs = GT_Utility.copyFluidArray(aRecipe.mFluidInputs); + mFluidOutputs = GT_Utility.copyFluidArray(aRecipe.mFluidOutputs); + mDuration = aRecipe.mDuration; + mSpecialValue = aRecipe.mSpecialValue; + mEUt = aRecipe.mEUt; + mNeedsEmptyOutput = aRecipe.mNeedsEmptyOutput; + mCanBeBuffered = aRecipe.mCanBeBuffered; + mFakeRecipe = aRecipe.mFakeRecipe; + mEnabled = aRecipe.mEnabled; + mHidden = aRecipe.mHidden; + } + protected GT_Recipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems, int[] aChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { + if (aInputs == null) aInputs = new ItemStack[0]; + if (aOutputs == null) aOutputs = new ItemStack[0]; + if (aFluidInputs == null) aFluidInputs = new FluidStack[0]; + if (aFluidOutputs == null) aFluidOutputs = new FluidStack[0]; + if (aChances == null) aChances = new int[aOutputs.length]; + if (aChances.length < aOutputs.length) aChances = Arrays.copyOf(aChances, aOutputs.length); + + aInputs = GT_Utility.getArrayListWithoutTrailingNulls(aInputs).toArray(new ItemStack[0]); + aOutputs = GT_Utility.getArrayListWithoutTrailingNulls(aOutputs).toArray(new ItemStack[0]); + aFluidInputs = GT_Utility.getArrayListWithoutNulls(aFluidInputs).toArray(new FluidStack[0]); + aFluidOutputs = GT_Utility.getArrayListWithoutNulls(aFluidOutputs).toArray(new FluidStack[0]); + + GT_OreDictUnificator.setStackArray(true, aInputs); + GT_OreDictUnificator.setStackArray(true, aOutputs); + + for (ItemStack tStack : aOutputs) GT_Utility.updateItemStack(tStack); + + for (int i = 0; i < aChances.length; i++) if (aChances[i] <= 0) aChances[i] = 10000; + for (int i = 0; i < aFluidInputs.length; i++) aFluidInputs[i] = new GT_FluidStack(aFluidInputs[i]); + for (int i = 0; i < aFluidOutputs.length; i++) aFluidOutputs[i] = new GT_FluidStack(aFluidOutputs[i]); + + for (int i = 0; i < aInputs.length; i++) + if (aInputs[i] != null && Items.feather.getDamage(aInputs[i]) != W) + for (int j = 0; j < aOutputs.length; j++) { + if (GT_Utility.areStacksEqual(aInputs[i], aOutputs[j])) { + if (aInputs[i].stackSize >= aOutputs[j].stackSize) { + aInputs[i].stackSize -= aOutputs[j].stackSize; + aOutputs[j] = null; + } else { + aOutputs[j].stackSize -= aInputs[i].stackSize; + } + } + } + + if (aOptimize && aDuration >= 32) { + ArrayList tList = new ArrayList(); + tList.addAll(Arrays.asList(aInputs)); + tList.addAll(Arrays.asList(aOutputs)); + for (int i = 0; i < tList.size(); i++) if (tList.get(i) == null) tList.remove(i--); + + for (byte i = (byte) Math.min(64, aDuration / 16); i > 1; i--) + if (aDuration / i >= 16) { + boolean temp = true; + for (int j = 0, k = tList.size(); temp && j < k; j++) + if (tList.get(j).stackSize % i != 0) temp = false; + for (int j = 0; temp && j < aFluidInputs.length; j++) + if (aFluidInputs[j].amount % i != 0) temp = false; + for (int j = 0; temp && j < aFluidOutputs.length; j++) + if (aFluidOutputs[j].amount % i != 0) temp = false; + if (temp) { + for (int j = 0, k = tList.size(); j < k; j++) tList.get(j).stackSize /= i; + for (int j = 0; j < aFluidInputs.length; j++) aFluidInputs[j].amount /= i; + for (int j = 0; j < aFluidOutputs.length; j++) aFluidOutputs[j].amount /= i; + aDuration /= i; + } + } + } + + mInputs = aInputs; + mOutputs = aOutputs; + mSpecialItems = aSpecialItems; + mChances = aChances; + mFluidInputs = aFluidInputs; + mFluidOutputs = aFluidOutputs; + mDuration = aDuration; + mSpecialValue = aSpecialValue; + mEUt = aEUt; + +// checkCellBalance(); + } + + public GT_Recipe(ItemStack aInput1, ItemStack aOutput1, int aFuelValue, int aType) { + this(aInput1, aOutput1, null, null, null, aFuelValue, aType); + } + + // aSpecialValue = EU per Liter! If there is no Liquid for this Object, then it gets multiplied with 1000! + public GT_Recipe(ItemStack aInput1, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, int aSpecialValue, int aType) { + this(true, new ItemStack[]{aInput1}, new ItemStack[]{aOutput1, aOutput2, aOutput3, aOutput4}, null, null, null, null, 0, 0, Math.max(1, aSpecialValue)); + + if (mInputs.length > 0 && aSpecialValue > 0) { + switch (aType) { + // Diesel Generator + case 0: + GT_Recipe_Map.sDieselFuels.addRecipe(this); + break; + // Gas Turbine + case 1: + GT_Recipe_Map.sTurbineFuels.addRecipe(this); + break; + // Thermal Generator + case 2: + GT_Recipe_Map.sHotFuels.addRecipe(this); + break; + // Plasma Generator + case 4: + GT_Recipe_Map.sPlasmaFuels.addRecipe(this); + break; + // Magic Generator + case 5: + GT_Recipe_Map.sMagicFuels.addRecipe(this); + break; + // Fluid Generator. Usually 3. Every wrong Type ends up in the Semifluid Generator + default: + GT_Recipe_Map.sDenseLiquidFuels.addRecipe(this); + break; + } + } + } + + public GT_Recipe(FluidStack aInput1, FluidStack aInput2, FluidStack aOutput1, int aDuration, int aEUt, int aSpecialValue) { + this(true, null, null, null, null, new FluidStack[]{aInput1, aInput2}, new FluidStack[]{aOutput1}, Math.max(aDuration, 1), aEUt, Math.max(Math.min(aSpecialValue, 160000000), 0)); + if (mInputs.length > 1) { + GT_Recipe_Map.sFusionRecipes.addRecipe(this); + } + } + + public GT_Recipe(ItemStack aInput1, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt) { + this(true, new ItemStack[]{aInput1}, new ItemStack[]{aOutput1, aOutput2}, null, null, null, null, aDuration, aEUt, 0); + if (mInputs.length > 0 && mOutputs[0] != null) { + GT_Recipe_Map.sLatheRecipes.addRecipe(this); + } + } + + public GT_Recipe(ItemStack aInput1, int aCellAmount, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, int aDuration, int aEUt) { + this(true, new ItemStack[]{aInput1, aCellAmount > 0 ? ItemList.Cell_Empty.get(Math.min(64, Math.max(1, aCellAmount))) : null}, new ItemStack[]{aOutput1, aOutput2, aOutput3, aOutput4}, null, null, null, null, Math.max(aDuration, 1), Math.max(aEUt, 1), 0); + if (mInputs.length > 0 && mOutputs[0] != null) { + GT_Recipe_Map.sDistillationRecipes.addRecipe(this); + } + } + + public GT_Recipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2) { + this(true, new ItemStack[]{aInput1, GT_ModHandler.getIC2Item("industrialTnt", aInput2 > 0 ? aInput2 < 64 ? aInput2 : 64 : 1, new ItemStack(Blocks.tnt, aInput2 > 0 ? aInput2 < 64 ? aInput2 : 64 : 1))}, new ItemStack[]{aOutput1, aOutput2}, null, null, null, null, 20, 30, 0); + if (mInputs.length > 0 && mOutputs[0] != null) { + GT_Recipe_Map.sImplosionRecipes.addRecipe(this); + } + } + + public GT_Recipe(int aEUt, int aDuration, ItemStack aInput1, ItemStack aOutput1) { + this(true, new ItemStack[]{aInput1, ItemList.Circuit_Integrated.getWithDamage(0, aInput1.stackSize)}, new ItemStack[]{aOutput1}, null, null, null, null, Math.max(aDuration, 1), Math.max(aEUt, 1), 0); + if (mInputs.length > 0 && mOutputs[0] != null) { + GT_Recipe_Map.sBenderRecipes.addRecipe(this); + } + } + + public GT_Recipe(ItemStack aInput1, ItemStack aInput2, int aEUt, int aDuration, ItemStack aOutput1) { + this(true, aInput2 == null ? new ItemStack[]{aInput1} : new ItemStack[]{aInput1, aInput2}, new ItemStack[]{aOutput1}, null, null, null, null, Math.max(aDuration, 1), Math.max(aEUt, 1), 0); + if (mInputs.length > 0 && mOutputs[0] != null) { + GT_Recipe_Map.sAlloySmelterRecipes.addRecipe(this); + } + } + + public GT_Recipe(ItemStack aInput1, int aEUt, ItemStack aInput2, int aDuration, ItemStack aOutput1, ItemStack aOutput2) { + this(true, aInput2 == null ? new ItemStack[]{aInput1} : new ItemStack[]{aInput1, aInput2}, new ItemStack[]{aOutput1, aOutput2}, null, null, null, null, Math.max(aDuration, 1), Math.max(aEUt, 1), 0); + if (mInputs.length > 0 && mOutputs[0] != null) { + GT_Recipe_Map.sCannerRecipes.addRecipe(this); + } + } + + public GT_Recipe(ItemStack aInput1, ItemStack aOutput1, int aDuration) { + this(true, new ItemStack[]{aInput1}, new ItemStack[]{aOutput1}, null, null, null, null, Math.max(aDuration, 1), 120, 0); + if (mInputs.length > 0 && mOutputs[0] != null) { + GT_Recipe_Map.sVacuumRecipes.addRecipe(this); + } + } + + public static void reInit() { GT_Log.out.println("GT_Mod: Re-Unificating Recipes."); for (GT_Recipe_Map tMapEntry : GT_Recipe_Map.sMappings) tMapEntry.reInit(); - } - - /** If you want to change the Output, feel free to modify or even replace the whole ItemStack Array, for Inputs, please add a new Recipe, because of the HashMaps. */ - public ItemStack[] mInputs, mOutputs; - /** If you want to change the Output, feel free to modify or even replace the whole ItemStack Array, for Inputs, please add a new Recipe, because of the HashMaps. */ - public FluidStack[] mFluidInputs, mFluidOutputs; - /** If you changed the amount of Array-Items inside the Output Array then the length of this Array must be larger or equal to the Output Array. A chance of 10000 equals 100% */ - public int[] mChances; - /** An Item that needs to be inside the Special Slot, like for example the Copy Slot inside the Printer. This is only useful for Fake Recipes in NEI, since findRecipe() and containsInput() don't give a shit about this Field. Lists are also possible. */ - public Object mSpecialItems; - - public int mDuration, mEUt, mSpecialValue; - - /** Use this to just disable a specific Recipe, but the Configuration enables that already for every single Recipe. */ - public boolean mEnabled = true; - /** If this Recipe is hidden from NEI */ - public boolean mHidden = false; - /** If this Recipe is Fake and therefore doesn't get found by the findRecipe Function (It is still in the HashMaps, so that containsInput does return T on those fake Inputs) */ - public boolean mFakeRecipe = false; - /** If this Recipe can be stored inside a Machine in order to make Recipe searching more Efficient by trying the previously used Recipe first. In case you have a Recipe Map overriding things and returning one time use Recipes, you have to set this to F. */ - public boolean mCanBeBuffered = true; - /** If this Recipe needs the Output Slots to be completely empty. Needed in case you have randomised Outputs */ - public boolean mNeedsEmptyOutput = false; - - public ItemStack getRepresentativeInput(int aIndex) {if (aIndex < 0 || aIndex >= mInputs.length) return null; return GT_Utility.copy(mInputs[aIndex]);} - public ItemStack getOutput(int aIndex) {if (aIndex < 0 || aIndex >= mOutputs.length) return null; return GT_Utility.copy(mOutputs[aIndex]);} - - public int getOutputChance(int aIndex) {if (aIndex < 0 || aIndex >= mChances.length) return 10000; return mChances[aIndex];} - - public FluidStack getRepresentativeFluidInput(int aIndex) {if (aIndex < 0 || aIndex >= mFluidInputs.length || mFluidInputs[aIndex] == null) return null; return mFluidInputs[aIndex].copy();} - public FluidStack getFluidOutput(int aIndex) {if (aIndex < 0 || aIndex >= mFluidOutputs.length || mFluidOutputs[aIndex] == null) return null; return mFluidOutputs[aIndex].copy();} - - public void checkCellBalance() { - if (!D2 || mInputs.length < 1) return; - - int tInputAmount = GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(mInputs); - int tOutputAmount = GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(mOutputs); - - if (tInputAmount < tOutputAmount) { - if (!Materials.Tin.contains(mInputs)) { - GT_Log.err.println("You get more Cells, than you put in? There must be something wrong."); - new Exception().printStackTrace(GT_Log.err); - } - } else if (tInputAmount > tOutputAmount) { - if (!Materials.Tin.contains(mOutputs)) { - GT_Log.err.println("You get less Cells, than you put in? GT Machines usually don't destroy Cells."); - new Exception().printStackTrace(GT_Log.err); - } - } - } - - public GT_Recipe copy() { - return new GT_Recipe(this); - } - - public boolean isRecipeInputEqual(boolean aDecreaseStacksizeBySuccess, FluidStack[] aFluidInputs, ItemStack... aInputs) { - return isRecipeInputEqual(aDecreaseStacksizeBySuccess, false, aFluidInputs, aInputs); - } - - public boolean isRecipeInputEqual(boolean aDecreaseStacksizeBySuccess, boolean aDontCheckStackSizes, FluidStack[] aFluidInputs, ItemStack... aInputs) { - if (mFluidInputs.length > 0 && aFluidInputs == null) return false; - for (FluidStack tFluid : mFluidInputs) if (tFluid != null) { - boolean temp = true; - for (FluidStack aFluid : aFluidInputs) if (aFluid != null && aFluid.isFluidEqual(tFluid) && (aDontCheckStackSizes || aFluid.amount >= tFluid.amount)) {temp = false; break;} - if (temp) return false; - } - - if (mInputs.length > 0 && aInputs == null) return false; - - for (ItemStack tStack : mInputs) if (tStack != null) { - boolean temp = true; - for (ItemStack aStack : aInputs) if ((GT_Utility.areUnificationsEqual(aStack, tStack, true) || GT_Utility.areUnificationsEqual(GT_OreDictUnificator.get(false, aStack), tStack, true)) && (aDontCheckStackSizes || aStack.stackSize >= tStack.stackSize)) {temp = false; break;} - if (temp) return false; - } - - if (aDecreaseStacksizeBySuccess) { - if (aFluidInputs != null) { - for (FluidStack tFluid : mFluidInputs) if (tFluid != null) { - for (FluidStack aFluid : aFluidInputs) if (aFluid != null && aFluid.isFluidEqual(tFluid) && (aDontCheckStackSizes || aFluid.amount >= tFluid.amount)) {aFluid.amount -= tFluid.amount; break;} - } - } - - if (aInputs != null) { - for (ItemStack tStack : mInputs) if (tStack != null) { - for (ItemStack aStack : aInputs) if ((GT_Utility.areUnificationsEqual(aStack, tStack, true) || GT_Utility.areUnificationsEqual(GT_OreDictUnificator.get(false, aStack), tStack, true)) && (aDontCheckStackSizes || aStack.stackSize >= tStack.stackSize)) {aStack.stackSize -= tStack.stackSize; break;} - } - } - } - - return true; - } - - private GT_Recipe(GT_Recipe aRecipe) { - mInputs = GT_Utility.copyStackArray((Object[])aRecipe.mInputs); - mOutputs = GT_Utility.copyStackArray((Object[])aRecipe.mOutputs); - mSpecialItems = aRecipe.mSpecialItems; - mChances = aRecipe.mChances; - mFluidInputs = GT_Utility.copyFluidArray(aRecipe.mFluidInputs); - mFluidOutputs = GT_Utility.copyFluidArray(aRecipe.mFluidOutputs); - mDuration = aRecipe.mDuration; - mSpecialValue = aRecipe.mSpecialValue; - mEUt = aRecipe.mEUt; - mNeedsEmptyOutput = aRecipe.mNeedsEmptyOutput; - mCanBeBuffered = aRecipe.mCanBeBuffered; - mFakeRecipe = aRecipe.mFakeRecipe; - mEnabled = aRecipe.mEnabled; - mHidden = aRecipe.mHidden; - } - - protected GT_Recipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems, int[] aChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { - if (aInputs == null) aInputs = new ItemStack[0]; - if (aOutputs == null) aOutputs = new ItemStack[0]; - if (aFluidInputs == null) aFluidInputs = new FluidStack[0]; - if (aFluidOutputs == null) aFluidOutputs = new FluidStack[0]; - if (aChances == null) aChances = new int[aOutputs.length]; - if (aChances.length < aOutputs.length) aChances = Arrays.copyOf(aChances, aOutputs.length); - - aInputs = GT_Utility.getArrayListWithoutTrailingNulls(aInputs ).toArray(new ItemStack[0]); - aOutputs = GT_Utility.getArrayListWithoutTrailingNulls(aOutputs ).toArray(new ItemStack[0]); - aFluidInputs = GT_Utility.getArrayListWithoutNulls(aFluidInputs ).toArray(new FluidStack[0]); - aFluidOutputs = GT_Utility.getArrayListWithoutNulls(aFluidOutputs ).toArray(new FluidStack[0]); - - GT_OreDictUnificator.setStackArray(true, aInputs); - GT_OreDictUnificator.setStackArray(true, aOutputs); - - for (ItemStack tStack : aOutputs) GT_Utility.updateItemStack(tStack); - - for (int i = 0; i < aChances .length; i++) if (aChances[i] <= 0) aChances[i] = 10000; - for (int i = 0; i < aFluidInputs .length; i++) aFluidInputs [i] = new GT_FluidStack(aFluidInputs [i]); - for (int i = 0; i < aFluidOutputs .length; i++) aFluidOutputs[i] = new GT_FluidStack(aFluidOutputs[i]); - - for (int i = 0; i < aInputs.length; i++) if (aInputs[i] != null && Items.feather.getDamage(aInputs[i]) != W) for (int j = 0; j < aOutputs.length; j++) { - if (GT_Utility.areStacksEqual(aInputs[i], aOutputs[j])) { - if (aInputs[i].stackSize >= aOutputs[j].stackSize) { - aInputs[i].stackSize -= aOutputs[j].stackSize; - aOutputs[j] = null; - } else { - aOutputs[j].stackSize -= aInputs[i].stackSize; - } - } - } - - if (aOptimize && aDuration >= 32) { - ArrayList tList = new ArrayList(); - tList.addAll(Arrays.asList(aInputs)); - tList.addAll(Arrays.asList(aOutputs)); - for (int i = 0; i < tList.size(); i++) if (tList.get(i) == null) tList.remove(i--); - - for (byte i = (byte)Math.min(64, aDuration / 16); i > 1; i--) if (aDuration / i >= 16) { - boolean temp = true; - for (int j = 0, k = tList.size(); temp && j < k; j++) if (tList.get(j).stackSize % i != 0) temp = false; - for (int j = 0; temp && j < aFluidInputs .length; j++) if (aFluidInputs [j].amount % i != 0) temp = false; - for (int j = 0; temp && j < aFluidOutputs.length; j++) if (aFluidOutputs[j].amount % i != 0) temp = false; - if (temp) { - for (int j = 0, k = tList.size(); j < k; j++) tList.get(j).stackSize /= i; - for (int j = 0; j < aFluidInputs .length; j++) aFluidInputs [j].amount /= i; - for (int j = 0; j < aFluidOutputs.length; j++) aFluidOutputs[j].amount /= i; - aDuration /= i; - } - } - } - - mInputs = aInputs; - mOutputs = aOutputs; - mSpecialItems = aSpecialItems; - mChances = aChances; - mFluidInputs = aFluidInputs; - mFluidOutputs = aFluidOutputs; - mDuration = aDuration; - mSpecialValue = aSpecialValue; - mEUt = aEUt; - -// checkCellBalance(); - } - - // ----- - // Old Constructors, do not use! - // ----- - - public GT_Recipe(ItemStack aInput1, ItemStack aOutput1, int aFuelValue, int aType) { - this(aInput1, aOutput1, null, null, null, aFuelValue, aType); - } - - // aSpecialValue = EU per Liter! If there is no Liquid for this Object, then it gets multiplied with 1000! - public GT_Recipe(ItemStack aInput1, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, int aSpecialValue, int aType) { - this(true , new ItemStack[] {aInput1}, new ItemStack[] {aOutput1, aOutput2, aOutput3, aOutput4}, null, null, null, null, 0, 0, Math.max(1, aSpecialValue)); - - if (mInputs.length > 0 && aSpecialValue > 0) { - switch (aType) { - // Diesel Generator - case 0: - GT_Recipe_Map.sDieselFuels.addRecipe(this); - break; - // Gas Turbine - case 1: - GT_Recipe_Map.sTurbineFuels.addRecipe(this); - break; - // Thermal Generator - case 2: - GT_Recipe_Map.sHotFuels.addRecipe(this); - break; - // Plasma Generator - case 4: - GT_Recipe_Map.sPlasmaFuels.addRecipe(this); - break; - // Magic Generator - case 5: - GT_Recipe_Map.sMagicFuels.addRecipe(this); - break; - // Fluid Generator. Usually 3. Every wrong Type ends up in the Semifluid Generator - default: - GT_Recipe_Map.sDenseLiquidFuels.addRecipe(this); - break; - } - } - } - - public GT_Recipe(FluidStack aInput1, FluidStack aInput2, FluidStack aOutput1, int aDuration, int aEUt, int aSpecialValue) { - this(true , null, null, null, null,new FluidStack[] {aInput1, aInput2}, new FluidStack[] {aOutput1}, Math.max(aDuration, 1), aEUt, Math.max(Math.min(aSpecialValue, 160000000), 0)); - if (mInputs.length > 1) { - GT_Recipe_Map.sFusionRecipes.addRecipe(this); - } - } - - public GT_Recipe(ItemStack aInput1, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt) { - this(true , new ItemStack[] {aInput1}, new ItemStack[] {aOutput1, aOutput2}, null, null, null, null, aDuration, aEUt, 0); - if (mInputs.length > 0 && mOutputs[0] != null) { - GT_Recipe_Map.sLatheRecipes.addRecipe(this); - } - } - - public GT_Recipe(ItemStack aInput1, int aCellAmount, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, int aDuration, int aEUt) { - this(true , new ItemStack[] {aInput1, aCellAmount>0?ItemList.Cell_Empty.get(Math.min(64, Math.max(1, aCellAmount))):null}, new ItemStack[] {aOutput1, aOutput2, aOutput3, aOutput4}, null, null, null, null, Math.max(aDuration, 1), Math.max(aEUt, 1), 0); - if (mInputs.length > 0 && mOutputs[0] != null) { - GT_Recipe_Map.sDistillationRecipes.addRecipe(this); - } - } - - public GT_Recipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2) { - this(true , new ItemStack[] {aInput1, GT_ModHandler.getIC2Item("industrialTnt", aInput2>0?aInput2<64?aInput2:64:1, new ItemStack(Blocks.tnt, aInput2>0?aInput2<64?aInput2:64:1))}, new ItemStack[] {aOutput1, aOutput2}, null, null, null, null, 20, 30, 0); - if (mInputs.length > 0 && mOutputs[0] != null) { - GT_Recipe_Map.sImplosionRecipes.addRecipe(this); - } - } - - public GT_Recipe(int aEUt, int aDuration, ItemStack aInput1, ItemStack aOutput1) { - this(true , new ItemStack[] {aInput1, ItemList.Circuit_Integrated.getWithDamage(0, aInput1.stackSize)}, new ItemStack[] {aOutput1}, null, null, null, null, Math.max(aDuration, 1), Math.max(aEUt, 1), 0); - if (mInputs.length > 0 && mOutputs[0] != null) { - GT_Recipe_Map.sBenderRecipes.addRecipe(this); - } - } - - public GT_Recipe(ItemStack aInput1, ItemStack aInput2, int aEUt, int aDuration, ItemStack aOutput1) { - this(true, aInput2==null ? new ItemStack[] {aInput1} : new ItemStack[] {aInput1, aInput2}, new ItemStack[] {aOutput1}, null, null, null, null, Math.max(aDuration, 1), Math.max(aEUt, 1), 0); - if (mInputs.length > 0 && mOutputs[0] != null) { - GT_Recipe_Map.sAlloySmelterRecipes.addRecipe(this); - } - } - - public GT_Recipe(ItemStack aInput1, int aEUt, ItemStack aInput2, int aDuration, ItemStack aOutput1, ItemStack aOutput2) { - this(true, aInput2==null?new ItemStack[] {aInput1}:new ItemStack[] {aInput1, aInput2}, new ItemStack[] {aOutput1, aOutput2}, null, null, null, null, Math.max(aDuration, 1), Math.max(aEUt, 1), 0); - if (mInputs.length > 0 && mOutputs[0] != null) { - GT_Recipe_Map.sCannerRecipes.addRecipe(this); - } - } - - public GT_Recipe(ItemStack aInput1, ItemStack aOutput1, int aDuration) { - this(true , new ItemStack[] {aInput1}, new ItemStack[] {aOutput1}, null, null, null, null, Math.max(aDuration, 1), 120, 0); - if (mInputs.length > 0 && mOutputs[0] != null) { - GT_Recipe_Map.sVacuumRecipes.addRecipe(this); - } - } - - // ----------------------------------------------------------------------------------------------------------------- - // Here are a few Classes I use for Special Cases in some Machines without having to write a separate Machine Class. - // ----------------------------------------------------------------------------------------------------------------- - - /** - * Abstract Class for general Recipe Handling of non GT Recipes - */ - public static abstract class GT_Recipe_Map_NonGTRecipes extends GT_Recipe_Map { - public GT_Recipe_Map_NonGTRecipes(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); - } - - @Override public boolean containsInput(ItemStack aStack) {return false;} - @Override public boolean containsInput(FluidStack aFluid) {return false;} - @Override public boolean containsInput(Fluid aFluid) {return false;} - - @Override public GT_Recipe addRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) {return null;} - @Override public GT_Recipe addRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) {return null;} - @Override public GT_Recipe addRecipe(GT_Recipe aRecipe) {return null;} - @Override public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) {return null;} - @Override public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) {return null;} - @Override public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, GT_Recipe aRecipe) {return null;} - @Override public GT_Recipe add(GT_Recipe aRecipe) {return null;} - @Override public void reInit() {/**/} - @Override protected GT_Recipe addToItemMap(GT_Recipe aRecipe) {return null;} - } - - /** - * Just a Recipe Map with Utility specifically for Fuels. - */ - public static class GT_Recipe_Map_Fuel extends GT_Recipe_Map { - public GT_Recipe_Map_Fuel(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); - } - - public GT_Recipe addFuel(ItemStack aInput, ItemStack aOutput, int aFuelValueInEU) { - return addFuel(aInput, aOutput, null, null, 10000, aFuelValueInEU); - } - - public GT_Recipe addFuel(ItemStack aInput, ItemStack aOutput, int aChance, int aFuelValueInEU) { - return addFuel(aInput, aOutput, null, null, aChance, aFuelValueInEU); - } - - public GT_Recipe addFuel(FluidStack aFluidInput, FluidStack aFluidOutput, int aFuelValueInEU) { - return addFuel(null, null, aFluidInput, aFluidOutput, 10000, aFuelValueInEU); - } - - public GT_Recipe addFuel(ItemStack aInput, ItemStack aOutput, FluidStack aFluidInput, FluidStack aFluidOutput, int aFuelValueInEU) { - return addFuel(aInput, aOutput, aFluidInput, aFluidOutput, 10000, aFuelValueInEU); - } - - public GT_Recipe addFuel(ItemStack aInput, ItemStack aOutput, FluidStack aFluidInput, FluidStack aFluidOutput, int aChance, int aFuelValueInEU) { - return addRecipe(true , new ItemStack[] {aInput}, new ItemStack[] {aOutput}, null, new int[] {aChance}, new FluidStack[] {aFluidInput}, new FluidStack[] {aFluidOutput}, 0, 0, aFuelValueInEU); - } - } - - /** - * Special Class for Furnace Recipe handling. - */ - public static class GT_Recipe_Map_Furnace extends GT_Recipe_Map_NonGTRecipes { - public GT_Recipe_Map_Furnace(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); - } - - @Override - public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { - if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null) return null; - if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe; - ItemStack tOutput = GT_ModHandler.getSmeltingOutput(aInputs[0], false, null); - return tOutput == null ? null : new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[] {tOutput}, null, null, null, null, 128, 4, 0); - } - - @Override public boolean containsInput(ItemStack aStack) {return GT_ModHandler.getSmeltingOutput(aStack, false, null) != null;} - } - - /** - * Special Class for Microwave Recipe handling. - */ - public static class GT_Recipe_Map_Microwave extends GT_Recipe_Map_NonGTRecipes { - public GT_Recipe_Map_Microwave(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); - } - - @Override - public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { - if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null) return null; - if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe; - ItemStack tOutput = GT_ModHandler.getSmeltingOutput(aInputs[0], false, null); - - if (GT_Utility.areStacksEqual(aInputs[0], new ItemStack(Items.book, 1, W))) { - return new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[] {GT_Utility.getWrittenBook("Manual_Microwave", ItemList.Book_Written_03.get(1))}, null, null, null, null, 32, 4, 0); - } - - // Check Container Item of Input since it is around the Input, then the Input itself, then Container Item of Output and last check the Output itself - for (ItemStack tStack : new ItemStack[] {GT_Utility.getContainerItem(aInputs[0], true), aInputs[0], GT_Utility.getContainerItem(tOutput, true), tOutput}) if (tStack != null) { - if (GT_Utility.areStacksEqual(tStack, new ItemStack(Blocks.netherrack, 1, W), true) - || GT_Utility.areStacksEqual(tStack, new ItemStack(Blocks.tnt, 1, W), true) - || GT_Utility.areStacksEqual(tStack, new ItemStack(Items.egg, 1, W), true) - || GT_Utility.areStacksEqual(tStack, new ItemStack(Items.firework_charge, 1, W), true) - || GT_Utility.areStacksEqual(tStack, new ItemStack(Items.fireworks, 1, W), true) - || GT_Utility.areStacksEqual(tStack, new ItemStack(Items.fire_charge, 1, W), true) - ) { - if (aTileEntity instanceof IGregTechTileEntity) ((IGregTechTileEntity)aTileEntity).doExplosion(aVoltage * 4); - return null; - } - ItemData tData = GT_OreDictUnificator.getItemData(tStack); - - - - if (tData != null) { - if (tData.mMaterial != null && tData.mMaterial.mMaterial != null) { - if (tData.mMaterial.mMaterial.contains(SubTag.METAL) || tData.mMaterial.mMaterial.contains(SubTag.EXPLOSIVE)) { - if (aTileEntity instanceof IGregTechTileEntity) ((IGregTechTileEntity)aTileEntity).doExplosion(aVoltage * 4); - return null; - } - if (tData.mMaterial.mMaterial.contains(SubTag.FLAMMABLE)) { - if (aTileEntity instanceof IGregTechTileEntity) ((IGregTechTileEntity)aTileEntity).setOnFire(); - return null; - } - } - for (MaterialStack tMaterial : tData.mByProducts) if (tMaterial != null) { - if (tMaterial.mMaterial.contains(SubTag.METAL) || tMaterial.mMaterial.contains(SubTag.EXPLOSIVE)) { - if (aTileEntity instanceof IGregTechTileEntity) ((IGregTechTileEntity)aTileEntity).doExplosion(aVoltage * 4); - return null; - } - if (tMaterial.mMaterial.contains(SubTag.FLAMMABLE)) { - if (aTileEntity instanceof IGregTechTileEntity) ((IGregTechTileEntity)aTileEntity).setOnFire(); - return null; - } - } - } - if (TileEntityFurnace.getItemBurnTime(tStack) > 0) { - if (aTileEntity instanceof IGregTechTileEntity) ((IGregTechTileEntity)aTileEntity).setOnFire(); - return null; - } - - } - - return tOutput == null ? null : new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[] {tOutput}, null, null, null, null, 32, 4, 0); - } - - @Override public boolean containsInput(ItemStack aStack) {return GT_ModHandler.getSmeltingOutput(aStack, false, null) != null;} - } - - /** - * Special Class for Unboxinator handling. - */ - public static class GT_Recipe_Map_Unboxinator extends GT_Recipe_Map { - public GT_Recipe_Map_Unboxinator(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); - } - - @Override - public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { - if (aInputs == null || aInputs.length <= 0 || !ItemList.IC2_Scrapbox.isStackEqual(aInputs[0], false, true)) return super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs); - ItemStack tOutput = GT_ModHandler.getRandomScrapboxDrop(); - if (tOutput == null) return super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs); - GT_Recipe rRecipe = new GT_Recipe(false, new ItemStack[] {ItemList.IC2_Scrapbox.get(1)}, new ItemStack[] {tOutput}, null, null, null, null, 16, 1, 0); - // It is not allowed to be buffered due to the random Output - rRecipe.mCanBeBuffered = false; - // Due to its randomness it is not good if there are Items in the Output Slot, because those Items could manipulate the outcome. - rRecipe.mNeedsEmptyOutput = true; - return rRecipe; - } - - @Override public boolean containsInput(ItemStack aStack) {return ItemList.IC2_Scrapbox.isStackEqual(aStack, false, true) || super.containsInput(aStack);} - } - - /** - * Special Class for Fluid Canner handling. - */ - public static class GT_Recipe_Map_FluidCanner extends GT_Recipe_Map { - public GT_Recipe_Map_FluidCanner(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); - } - - @Override - public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { - GT_Recipe rRecipe = super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs); - if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null || rRecipe != null || !GregTech_API.sPostloadFinished) return rRecipe; - if (aFluids != null && aFluids.length > 0 && aFluids[0] != null) { - ItemStack tOutput = GT_Utility.fillFluidContainer(aFluids[0], aInputs[0], false, true); - FluidStack tFluid = GT_Utility.getFluidForFilledItem(tOutput, true); - if (tFluid != null) rRecipe = new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[] {tOutput}, null, null, new FluidStack[] {tFluid}, null, Math.max(tFluid.amount / 64, 16), 1, 0); - } - if (rRecipe == null) { - FluidStack tFluid = GT_Utility.getFluidForFilledItem(aInputs[0], true); - if (tFluid != null) rRecipe = new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[] {GT_Utility.getContainerItem(aInputs[0], true)}, null, null, null, new FluidStack[] {tFluid}, Math.max(tFluid.amount / 64, 16), 1, 0); - } - if (rRecipe != null) rRecipe.mCanBeBuffered = false; - return rRecipe; - } - - @Override public boolean containsInput(ItemStack aStack) {return aStack != null && (super.containsInput(aStack) || (aStack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem)aStack.getItem()).getCapacity(aStack) > 0));} - @Override public boolean containsInput(FluidStack aFluid) {return true;} - @Override public boolean containsInput(Fluid aFluid) {return true;} - } - - /** - * Special Class for Recycler Recipe handling. - */ - public static class GT_Recipe_Map_Recycler extends GT_Recipe_Map_NonGTRecipes { - public GT_Recipe_Map_Recycler(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); - } - - @Override - public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { - if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null) return null; - if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe; - return new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, GT_ModHandler.getRecyclerOutput(GT_Utility.copyAmount(64, aInputs[0]), 0) == null ? null : new ItemStack[] {ItemList.IC2_Scrap.get(1)}, null, new int[] {1250}, null, null, 45, 1, 0); - } - - @Override public boolean containsInput(ItemStack aStack) {return GT_ModHandler.getRecyclerOutput(GT_Utility.copyAmount(64, aStack), 0) != null;} - } - - /** - * Special Class for Compressor Recipe handling. - */ - public static class GT_Recipe_Map_Compressor extends GT_Recipe_Map_NonGTRecipes { - public GT_Recipe_Map_Compressor(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); - } - - @Override - public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { - if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null) return null; - if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe; - ItemStack tComparedInput = GT_Utility.copy(aInputs[0]); - ItemStack[] tOutputItems = GT_ModHandler.getMachineOutput(tComparedInput, ic2.api.recipe.Recipes.compressor.getRecipes(), true , new NBTTagCompound(), null, null, null); - return GT_Utility.arrayContainsNonNull(tOutputItems) ? new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(aInputs[0].stackSize - tComparedInput.stackSize, aInputs[0])}, tOutputItems, null, null, null, null, 400, 2, 0) : null; - } - - @Override public boolean containsInput(ItemStack aStack) {return GT_Utility.arrayContainsNonNull(GT_ModHandler.getMachineOutput(GT_Utility.copyAmount(64, aStack), ic2.api.recipe.Recipes.compressor.getRecipes(), false, new NBTTagCompound(), null, null, null));} - } - - /** - * Special Class for Extractor Recipe handling. - */ - public static class GT_Recipe_Map_Extractor extends GT_Recipe_Map_NonGTRecipes { - public GT_Recipe_Map_Extractor(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); - } - - @Override - public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { - if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null) return null; - if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe; - ItemStack tComparedInput = GT_Utility.copy(aInputs[0]); - ItemStack[] tOutputItems = GT_ModHandler.getMachineOutput(tComparedInput, ic2.api.recipe.Recipes.extractor.getRecipes(), true , new NBTTagCompound(), null, null, null); - return GT_Utility.arrayContainsNonNull(tOutputItems) ? new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(aInputs[0].stackSize - tComparedInput.stackSize, aInputs[0])}, tOutputItems, null, null, null, null, 400, 2, 0) : null; - } - - @Override public boolean containsInput(ItemStack aStack) {return GT_Utility.arrayContainsNonNull(GT_ModHandler.getMachineOutput(GT_Utility.copyAmount(64, aStack), ic2.api.recipe.Recipes.extractor.getRecipes(), false, new NBTTagCompound(), null, null, null));} - } - - /** - * Special Class for Thermal Centrifuge Recipe handling. - */ - public static class GT_Recipe_Map_ThermalCentrifuge extends GT_Recipe_Map_NonGTRecipes { - public GT_Recipe_Map_ThermalCentrifuge(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); - } - - @Override - public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { - if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null) return null; - if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe; - ItemStack tComparedInput = GT_Utility.copy(aInputs[0]); - ItemStack[] tOutputItems = GT_ModHandler.getMachineOutput(tComparedInput, ic2.api.recipe.Recipes.centrifuge.getRecipes(), true , new NBTTagCompound(), null, null, null); - return GT_Utility.arrayContainsNonNull(tOutputItems) ? new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(aInputs[0].stackSize - tComparedInput.stackSize, aInputs[0])}, tOutputItems, null, null, null, null, 400, 48, 0) : null; - } - - @Override public boolean containsInput(ItemStack aStack) {return GT_Utility.arrayContainsNonNull(GT_ModHandler.getMachineOutput(GT_Utility.copyAmount(64, aStack), ic2.api.recipe.Recipes.centrifuge.getRecipes(), false, new NBTTagCompound(), null, null, null));} - } - - /** - * Special Class for Ore Washer Recipe handling. - */ - public static class GT_Recipe_Map_OreWasher extends GT_Recipe_Map_NonGTRecipes { - public GT_Recipe_Map_OreWasher(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); - } - - @Override - public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { - if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null || aFluids == null || aFluids.length < 1 || !GT_ModHandler.isWater(aFluids[0])) return null; - if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe; - ItemStack tComparedInput = GT_Utility.copy(aInputs[0]); - NBTTagCompound aRecipeMetaData = new NBTTagCompound(); - ItemStack[] tOutputItems = GT_ModHandler.getMachineOutput(tComparedInput, ic2.api.recipe.Recipes.oreWashing.getRecipes(), true, aRecipeMetaData, null, null, null); - return GT_Utility.arrayContainsNonNull(tOutputItems) ? new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(aInputs[0].stackSize - tComparedInput.stackSize, aInputs[0])}, tOutputItems, null, null, new FluidStack[] {new FluidStack(aFluids[0].getFluid(), ((NBTTagCompound)aRecipeMetaData.getTag("return")).getInteger("amount"))}, null, 400, 16, 0) : null; - } - - @Override public boolean containsInput(ItemStack aStack) {return GT_Utility.arrayContainsNonNull(GT_ModHandler.getMachineOutput(GT_Utility.copyAmount(64, aStack), ic2.api.recipe.Recipes.oreWashing.getRecipes(), false, new NBTTagCompound(), null, null, null));} - @Override public boolean containsInput(FluidStack aFluid) {return GT_ModHandler.isWater(aFluid);} - @Override public boolean containsInput(Fluid aFluid) {return GT_ModHandler.isWater(new FluidStack(aFluid, 0));} - } - - /** - * Special Class for Macerator/RockCrusher Recipe handling. - */ - public static class GT_Recipe_Map_Macerator extends GT_Recipe_Map { - public GT_Recipe_Map_Macerator(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); - } - - @Override - public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { - if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null || !GregTech_API.sPostloadFinished) return super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs); - aRecipe = super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs); - if (aRecipe != null) return aRecipe; - - try { - List tRecipeOutputs = mods.railcraft.api.crafting.RailcraftCraftingManager.rockCrusher.getRecipe(GT_Utility.copyAmount(1, aInputs[0])).getRandomizedOuputs(); - if (tRecipeOutputs != null) { - aRecipe = new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, tRecipeOutputs.toArray(new ItemStack[tRecipeOutputs.size()]), null, null, null, null, 800, 2, 0); - aRecipe.mCanBeBuffered = false; - aRecipe.mNeedsEmptyOutput = true; - return aRecipe; - } - } catch(NoClassDefFoundError e) {if (D1) GT_Log.err.println("Railcraft Not loaded");} catch(NullPointerException e) {/**/} - - ItemStack tComparedInput = GT_Utility.copy(aInputs[0]); - ItemStack[] tOutputItems = GT_ModHandler.getMachineOutput(tComparedInput, ic2.api.recipe.Recipes.macerator.getRecipes(), true , new NBTTagCompound(), null, null, null); - return GT_Utility.arrayContainsNonNull(tOutputItems) ? new GT_Recipe(false, new ItemStack[] {GT_Utility.copyAmount(aInputs[0].stackSize - tComparedInput.stackSize, aInputs[0])}, tOutputItems, null, null, null, null, 400, 2, 0) : null; - } - - @Override public boolean containsInput(ItemStack aStack) {return super.containsInput(aStack) || GT_Utility.arrayContainsNonNull(GT_ModHandler.getMachineOutput(GT_Utility.copyAmount(64, aStack), ic2.api.recipe.Recipes.macerator.getRecipes(), false, new NBTTagCompound(), null, null, null));} - } - - /** - * Special Class for Assembler handling. - */ - public static class GT_Recipe_Map_Assembler extends GT_Recipe_Map { - public GT_Recipe_Map_Assembler(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); - } - - @Override - public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { - GT_Recipe rRecipe = super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs); - if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null || rRecipe == null || !GregTech_API.sPostloadFinished) return rRecipe; - for (ItemStack aInput : aInputs) { - if (ItemList.Paper_Printed_Pages.isStackEqual(aInput, false, true)) { - rRecipe = rRecipe.copy(); - rRecipe.mCanBeBuffered = false; - rRecipe.mOutputs[0].setTagCompound(aInput.getTagCompound()); - } - } - return rRecipe; - } - } - - /** - * Special Class for Forming Press handling. - */ - public static class GT_Recipe_Map_FormingPress extends GT_Recipe_Map { - public GT_Recipe_Map_FormingPress(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); - } - - @Override - public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { - GT_Recipe rRecipe = super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs); - if (aInputs == null || aInputs.length < 2 || aInputs[0] == null || aInputs[1] == null || !GregTech_API.sPostloadFinished) return rRecipe; - if (rRecipe == null) { - if (ItemList.Shape_Mold_Name.isStackEqual(aInputs[0], false, true)) { - ItemStack tOutput = GT_Utility.copyAmount(1, aInputs[1]); - tOutput.setStackDisplayName(aInputs[0].getDisplayName()); - rRecipe = new GT_Recipe(false, new ItemStack[] {ItemList.Shape_Mold_Name.get(0), GT_Utility.copyAmount(1, aInputs[1])}, new ItemStack[] {tOutput}, null, null, null, null, 128, 8, 0); - rRecipe.mCanBeBuffered = false; - return rRecipe; - } - if (ItemList.Shape_Mold_Name.isStackEqual(aInputs[1], false, true)) { - ItemStack tOutput = GT_Utility.copyAmount(1, aInputs[0]); - tOutput.setStackDisplayName(aInputs[1].getDisplayName()); - rRecipe = new GT_Recipe(false, new ItemStack[] {ItemList.Shape_Mold_Name.get(0), GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[] {tOutput}, null, null, null, null, 128, 8, 0); - rRecipe.mCanBeBuffered = false; - return rRecipe; - } - return null; - } - for (ItemStack aMold : aInputs) { - if (ItemList.Shape_Mold_Credit.isStackEqual(aMold, false, true)) { - NBTTagCompound tNBT = aMold.getTagCompound(); - if (tNBT == null) tNBT = new NBTTagCompound(); - if (!tNBT.hasKey("credit_security_id")) tNBT.setLong("credit_security_id", System.nanoTime()); - aMold.setTagCompound(tNBT); - - rRecipe = rRecipe.copy(); - rRecipe.mCanBeBuffered = false; - rRecipe.mOutputs[0].setTagCompound(tNBT); - return rRecipe; - } - } - return rRecipe; - } - } - - /** - * Special Class for Printer handling. - */ - public static class GT_Recipe_Map_Printer extends GT_Recipe_Map { - public GT_Recipe_Map_Printer(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { - super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); - } - - @Override - public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { - GT_Recipe rRecipe = super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs); - if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null || aFluids == null || aFluids.length <= 0 || aFluids[0] == null || !GregTech_API.sPostloadFinished) return rRecipe; - - Dyes aDye = null; for (Dyes tDye : Dyes.VALUES) if (tDye.isFluidDye(aFluids[0])) {aDye = tDye; break;} - - if (aDye == null) return rRecipe; - - if (rRecipe == null) { - ItemStack - tOutput = GT_ModHandler.getAllRecipeOutput(aTileEntity==null?null:aTileEntity.getWorld(), aInputs[0], aInputs[0], aInputs[0], aInputs[0], ItemList.DYE_ONLY_ITEMS[aDye.mIndex].get(1), aInputs[0], aInputs[0], aInputs[0], aInputs[0]); - if (tOutput != null) return addRecipe(new GT_Recipe(true , new ItemStack[] {GT_Utility.copyAmount(8, aInputs[0])}, new ItemStack[] {tOutput}, null, null, new FluidStack[] {new FluidStack(aFluids[0].getFluid(), (int)L)}, null, 256, 2, 0), false, false, true); - - tOutput = GT_ModHandler.getAllRecipeOutput(aTileEntity==null?null:aTileEntity.getWorld(), aInputs[0], ItemList.DYE_ONLY_ITEMS[aDye.mIndex].get(1)); - if (tOutput != null) return addRecipe(new GT_Recipe(true , new ItemStack[] {GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[] {tOutput}, null, null, new FluidStack[] {new FluidStack(aFluids[0].getFluid(), (int)L)}, null, 32, 2, 0), false, false, true); - } else { - if (aInputs[0].getItem() == Items.paper) { - if (!ItemList.Tool_DataStick.isStackEqual(aSpecialSlot, false, true)) return null; - NBTTagCompound tNBT = aSpecialSlot.getTagCompound(); - if (tNBT == null || GT_Utility.isStringInvalid(tNBT.getString("title")) || GT_Utility.isStringInvalid(tNBT.getString("author"))) return null; - - rRecipe = rRecipe.copy(); - rRecipe.mCanBeBuffered = false; - rRecipe.mOutputs[0].setTagCompound(tNBT); - return rRecipe; - } - if (aInputs[0].getItem() == Items.map) { - if (!ItemList.Tool_DataStick.isStackEqual(aSpecialSlot, false, true)) return null; - NBTTagCompound tNBT = aSpecialSlot.getTagCompound(); - if (tNBT == null || !tNBT.hasKey("map_id")) return null; - - rRecipe = rRecipe.copy(); - rRecipe.mCanBeBuffered = false; - rRecipe.mOutputs[0].setItemDamage(tNBT.getShort("map_id")); - return rRecipe; - } - if (ItemList.Paper_Punch_Card_Empty.isStackEqual(aInputs[0], false, true)) { - if (!ItemList.Tool_DataStick.isStackEqual(aSpecialSlot, false, true)) return null; - NBTTagCompound tNBT = aSpecialSlot.getTagCompound(); - if (tNBT == null || !tNBT.hasKey("GT.PunchCardData")) return null; - - rRecipe = rRecipe.copy(); - rRecipe.mCanBeBuffered = false; - rRecipe.mOutputs[0].setTagCompound(GT_Utility.getNBTContainingString(new NBTTagCompound(), "GT.PunchCardData", tNBT.getString("GT.PunchCardData"))); - return rRecipe; - } - } - return rRecipe; - } - - @Override public boolean containsInput(ItemStack aStack) {return true;} - @Override public boolean containsInput(FluidStack aFluid) {return super.containsInput(aFluid) || Dyes.isAnyFluidDye(aFluid);} - @Override public boolean containsInput(Fluid aFluid) {return super.containsInput(aFluid) || Dyes.isAnyFluidDye(aFluid);} - } + } + + // ----- + // Old Constructors, do not use! + // ----- + + public ItemStack getRepresentativeInput(int aIndex) { + if (aIndex < 0 || aIndex >= mInputs.length) return null; + return GT_Utility.copy(mInputs[aIndex]); + } + + public ItemStack getOutput(int aIndex) { + if (aIndex < 0 || aIndex >= mOutputs.length) return null; + return GT_Utility.copy(mOutputs[aIndex]); + } + + public int getOutputChance(int aIndex) { + if (aIndex < 0 || aIndex >= mChances.length) return 10000; + return mChances[aIndex]; + } + + public FluidStack getRepresentativeFluidInput(int aIndex) { + if (aIndex < 0 || aIndex >= mFluidInputs.length || mFluidInputs[aIndex] == null) return null; + return mFluidInputs[aIndex].copy(); + } + + public FluidStack getFluidOutput(int aIndex) { + if (aIndex < 0 || aIndex >= mFluidOutputs.length || mFluidOutputs[aIndex] == null) return null; + return mFluidOutputs[aIndex].copy(); + } + + public void checkCellBalance() { + if (!D2 || mInputs.length < 1) return; + + int tInputAmount = GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(mInputs); + int tOutputAmount = GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(mOutputs); + + if (tInputAmount < tOutputAmount) { + if (!Materials.Tin.contains(mInputs)) { + GT_Log.err.println("You get more Cells, than you put in? There must be something wrong."); + new Exception().printStackTrace(GT_Log.err); + } + } else if (tInputAmount > tOutputAmount) { + if (!Materials.Tin.contains(mOutputs)) { + GT_Log.err.println("You get less Cells, than you put in? GT Machines usually don't destroy Cells."); + new Exception().printStackTrace(GT_Log.err); + } + } + } + + public GT_Recipe copy() { + return new GT_Recipe(this); + } + + public boolean isRecipeInputEqual(boolean aDecreaseStacksizeBySuccess, FluidStack[] aFluidInputs, ItemStack... aInputs) { + return isRecipeInputEqual(aDecreaseStacksizeBySuccess, false, aFluidInputs, aInputs); + } + + public boolean isRecipeInputEqual(boolean aDecreaseStacksizeBySuccess, boolean aDontCheckStackSizes, FluidStack[] aFluidInputs, ItemStack... aInputs) { + if (mFluidInputs.length > 0 && aFluidInputs == null) return false; + for (FluidStack tFluid : mFluidInputs) + if (tFluid != null) { + boolean temp = true; + for (FluidStack aFluid : aFluidInputs) + if (aFluid != null && aFluid.isFluidEqual(tFluid) && (aDontCheckStackSizes || aFluid.amount >= tFluid.amount)) { + temp = false; + break; + } + if (temp) return false; + } + + if (mInputs.length > 0 && aInputs == null) return false; + + for (ItemStack tStack : mInputs) + if (tStack != null) { + boolean temp = true; + for (ItemStack aStack : aInputs) + if ((GT_Utility.areUnificationsEqual(aStack, tStack, true) || GT_Utility.areUnificationsEqual(GT_OreDictUnificator.get(false, aStack), tStack, true)) && (aDontCheckStackSizes || aStack.stackSize >= tStack.stackSize)) { + temp = false; + break; + } + if (temp) return false; + } + + if (aDecreaseStacksizeBySuccess) { + if (aFluidInputs != null) { + for (FluidStack tFluid : mFluidInputs) + if (tFluid != null) { + for (FluidStack aFluid : aFluidInputs) + if (aFluid != null && aFluid.isFluidEqual(tFluid) && (aDontCheckStackSizes || aFluid.amount >= tFluid.amount)) { + aFluid.amount -= tFluid.amount; + break; + } + } + } + + if (aInputs != null) { + for (ItemStack tStack : mInputs) + if (tStack != null) { + for (ItemStack aStack : aInputs) + if ((GT_Utility.areUnificationsEqual(aStack, tStack, true) || GT_Utility.areUnificationsEqual(GT_OreDictUnificator.get(false, aStack), tStack, true)) && (aDontCheckStackSizes || aStack.stackSize >= tStack.stackSize)) { + aStack.stackSize -= tStack.stackSize; + break; + } + } + } + } + + return true; + } + + public static class GT_Recipe_Map { + /** + * Contains all Recipe Maps + */ + public static final Collection sMappings = new ArrayList(); + + public static final GT_Recipe_Map sOreWasherRecipes = new GT_Recipe_Map_OreWasher(new HashSet(0), "ic.recipe.orewasher", "Ore Washer", "ic2.blockOreWashingPlant", RES_PATH_GUI + "basicmachines/OreWasher", 1, 3, 1, 1, 1, E, 1, E, true, false); + public static final GT_Recipe_Map sThermalCentrifugeRecipes = new GT_Recipe_Map_ThermalCentrifuge(new HashSet(0), "ic.recipe.thermalcentrifuge", "Thermal Centrifuge", "ic2.blockCentrifuge", RES_PATH_GUI + "basicmachines/ThermalCentrifuge", 1, 3, 1, 0, 2, E, 1, E, true, false); + public static final GT_Recipe_Map sCompressorRecipes = new GT_Recipe_Map_Compressor(new HashSet(0), "ic.recipe.compressor", "Compressor", "ic2.compressor", RES_PATH_GUI + "basicmachines/Compressor", 1, 1, 1, 0, 1, E, 1, E, true, false); + public static final GT_Recipe_Map sExtractorRecipes = new GT_Recipe_Map_Extractor(new HashSet(0), "ic.recipe.extractor", "Extractor", "ic2.extractor", RES_PATH_GUI + "basicmachines/Extractor", 1, 1, 1, 0, 1, E, 1, E, true, false); + public static final GT_Recipe_Map sRecyclerRecipes = new GT_Recipe_Map_Recycler(new HashSet(0), "ic.recipe.recycler", "Recycler", "ic2.recycler", RES_PATH_GUI + "basicmachines/Recycler", 1, 1, 1, 0, 1, E, 1, E, true, false); + public static final GT_Recipe_Map sFurnaceRecipes = new GT_Recipe_Map_Furnace(new HashSet(0), "mc.recipe.furnace", "Furnace", "smelting", RES_PATH_GUI + "basicmachines/E_Furnace", 1, 1, 1, 0, 1, E, 1, E, true, false); + public static final GT_Recipe_Map sMicrowaveRecipes = new GT_Recipe_Map_Microwave(new HashSet(0), "gt.recipe.microwave", "Microwave", "smelting", RES_PATH_GUI + "basicmachines/E_Furnace", 1, 1, 1, 0, 1, E, 1, E, true, false); + + public static final GT_Recipe_Map sScannerFakeRecipes = new GT_Recipe_Map(new HashSet(3), "gt.recipe.scanner", "Scanner", null, RES_PATH_GUI + "basicmachines/Scanner", 1, 1, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sRockBreakerFakeRecipes = new GT_Recipe_Map(new HashSet(3), "gt.recipe.rockbreaker", "Rock Breaker", null, RES_PATH_GUI + "basicmachines/RockBreaker", 1, 1, 0, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sByProductList = new GT_Recipe_Map(new HashSet(1000), "gt.recipe.byproductlist", "Ore Byproduct List", null, RES_PATH_GUI + "basicmachines/Default", 1, 6, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sRepicatorFakeRecipes = new GT_Recipe_Map(new HashSet(100), "gt.recipe.replicator", "Replicator", null, RES_PATH_GUI + "basicmachines/Replicator", 0, 1, 0, 1, 1, E, 1, E, true, true); + + public static final GT_Recipe_Map sPlasmaArcFurnaceRecipes = new GT_Recipe_Map(new HashSet(10000), "gt.recipe.plasmaarcfurnace", "Plasma Arc Furnace", null, RES_PATH_GUI + "basicmachines/PlasmaArcFurnace", 1, 4, 1, 1, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sArcFurnaceRecipes = new GT_Recipe_Map(new HashSet(10000), "gt.recipe.arcfurnace", "Arc Furnace", null, RES_PATH_GUI + "basicmachines/ArcFurnace", 1, 4, 1, 1, 3, E, 1, E, true, true); + public static final GT_Recipe_Map sPrinterRecipes = new GT_Recipe_Map_Printer(new HashSet(100), "gt.recipe.printer", "Printer", null, RES_PATH_GUI + "basicmachines/Printer", 1, 1, 1, 1, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sSifterRecipes = new GT_Recipe_Map(new HashSet(100), "gt.recipe.sifter", "Sifter", null, RES_PATH_GUI + "basicmachines/Sifter", 1, 9, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sPressRecipes = new GT_Recipe_Map_FormingPress(new HashSet(100), "gt.recipe.press", "Forming Press", null, RES_PATH_GUI + "basicmachines/Press", 2, 1, 2, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sLaserEngraverRecipes = new GT_Recipe_Map(new HashSet(100), "gt.recipe.laserengraver", "Precision Laser Engraver", null, RES_PATH_GUI + "basicmachines/LaserEngraver", 2, 1, 2, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sMixerRecipes = new GT_Recipe_Map(new HashSet(100), "gt.recipe.mixer", "Mixer", null, RES_PATH_GUI + "basicmachines/Mixer", 4, 1, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sAutoclaveRecipes = new GT_Recipe_Map(new HashSet(200), "gt.recipe.autoclave", "Autoclave", null, RES_PATH_GUI + "basicmachines/Autoclave", 1, 1, 1, 1, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sElectroMagneticSeparatorRecipes = new GT_Recipe_Map(new HashSet(50), "gt.recipe.electromagneticseparator", "Electromagnetic Separator", null, RES_PATH_GUI + "basicmachines/ElectromagneticSeparator", 1, 3, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sPolarizerRecipes = new GT_Recipe_Map(new HashSet(100), "gt.recipe.polarizer", "Electromagnetic Polarizer", null, RES_PATH_GUI + "basicmachines/Polarizer", 1, 1, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sMaceratorRecipes = new GT_Recipe_Map_Macerator(new HashSet(10000), "gt.recipe.macerator", "Pulverization", null, RES_PATH_GUI + "basicmachines/Macerator4", 1, 4, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sChemicalBathRecipes = new GT_Recipe_Map(new HashSet(200), "gt.recipe.chemicalbath", "Chemical Bath", null, RES_PATH_GUI + "basicmachines/ChemicalBath", 1, 3, 1, 1, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sFluidCannerRecipes = new GT_Recipe_Map_FluidCanner(new HashSet(100), "gt.recipe.fluidcanner", "Fluid Canning Machine", null, RES_PATH_GUI + "basicmachines/FluidCannerNEI", 1, 1, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sBrewingRecipes = new GT_Recipe_Map(new HashSet(100), "gt.recipe.brewer", "Brewing Machine", null, RES_PATH_GUI + "basicmachines/PotionBrewer", 1, 0, 1, 1, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sFluidHeaterRecipes = new GT_Recipe_Map(new HashSet(100), "gt.recipe.fluidheater", "Fluid Heater", null, RES_PATH_GUI + "basicmachines/FluidHeater", 1, 0, 1, 1, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sDistilleryRecipes = new GT_Recipe_Map(new HashSet(100), "gt.recipe.distillery", "Distillery", null, RES_PATH_GUI + "basicmachines/Distillery", 1, 0, 1, 1, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sFermentingRecipes = new GT_Recipe_Map(new HashSet(100), "gt.recipe.fermenter", "Fermenter", null, RES_PATH_GUI + "basicmachines/Fermenter", 0, 0, 0, 1, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sFluidSolidficationRecipes = new GT_Recipe_Map(new HashSet(100), "gt.recipe.fluidsolidifier", "Fluid Solidifier", null, RES_PATH_GUI + "basicmachines/FluidSolidifier", 1, 1, 1, 1, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sFluidExtractionRecipes = new GT_Recipe_Map(new HashSet(100), "gt.recipe.fluidextractor", "Fluid Extractor", null, RES_PATH_GUI + "basicmachines/FluidExtractor", 1, 1, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sBoxinatorRecipes = new GT_Recipe_Map(new HashSet(2500), "gt.recipe.packager", "Packager", null, RES_PATH_GUI + "basicmachines/Packager", 2, 1, 2, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sUnboxinatorRecipes = new GT_Recipe_Map_Unboxinator(new HashSet(2500), "gt.recipe.unpackager", "Unpackager", null, RES_PATH_GUI + "basicmachines/Unpackager", 1, 2, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sFusionRecipes = new GT_Recipe_Map(new HashSet(50), "gt.recipe.fusionreactor", "Fusion Reactor", null, RES_PATH_GUI + "basicmachines/Default", 0, 0, 0, 2, 1, "Start: ", 1, " EU", true, true); + public static final GT_Recipe_Map sCentrifugeRecipes = new GT_Recipe_Map(new HashSet(1000), "gt.recipe.centrifuge", "Centrifuge", null, RES_PATH_GUI + "basicmachines/Centrifuge", 2, 6, 0, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sElectrolyzerRecipes = new GT_Recipe_Map(new HashSet(200), "gt.recipe.electrolyzer", "Electrolyzer", null, RES_PATH_GUI + "basicmachines/Electrolyzer", 2, 6, 0, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sBlastRecipes = new GT_Recipe_Map(new HashSet(500), "gt.recipe.blastfurnace", "Blast Furnace", null, RES_PATH_GUI + "basicmachines/Default", 2, 2, 1, 0, 1, "Heat Capacity: ", 1, " K", false, true); + public static final GT_Recipe_Map sImplosionRecipes = new GT_Recipe_Map(new HashSet(50), "gt.recipe.implosioncompressor", "Implosion Compressor", null, RES_PATH_GUI + "basicmachines/Default", 2, 2, 2, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sVacuumRecipes = new GT_Recipe_Map(new HashSet(100), "gt.recipe.vacuumfreezer", "Vacuum Freezer", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sChemicalRecipes = new GT_Recipe_Map(new HashSet(100), "gt.recipe.chemicalreactor", "Chemical Reactor", null, RES_PATH_GUI + "basicmachines/ChemicalReactor", 2, 1, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sDistillationRecipes = new GT_Recipe_Map(new HashSet(50), "gt.recipe.distillationtower", "Distillation Tower", null, RES_PATH_GUI + "basicmachines/Default", 2, 4, 0, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sWiremillRecipes = new GT_Recipe_Map(new HashSet(50), "gt.recipe.wiremill", "Wiremill", null, RES_PATH_GUI + "basicmachines/Wiremill", 1, 1, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sBenderRecipes = new GT_Recipe_Map(new HashSet(400), "gt.recipe.metalbender", "Metal Bender", null, RES_PATH_GUI + "basicmachines/Bender", 2, 1, 2, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sAlloySmelterRecipes = new GT_Recipe_Map(new HashSet(3000), "gt.recipe.alloysmelter", "Alloy Smelter", null, RES_PATH_GUI + "basicmachines/AlloySmelter", 2, 1, 2, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sAssemblerRecipes = new GT_Recipe_Map_Assembler(new HashSet(300), "gt.recipe.assembler", "Assembler", null, RES_PATH_GUI + "basicmachines/Assembler", 2, 1, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sCannerRecipes = new GT_Recipe_Map(new HashSet(300), "gt.recipe.canner", "Canning Machine", null, RES_PATH_GUI + "basicmachines/Canner", 2, 2, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sCNCRecipes = new GT_Recipe_Map(new HashSet(100), "gt.recipe.cncmachine", "CNC Machine", null, RES_PATH_GUI + "basicmachines/Default", 2, 1, 2, 1, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sLatheRecipes = new GT_Recipe_Map(new HashSet(400), "gt.recipe.lathe", "Lathe", null, RES_PATH_GUI + "basicmachines/Lathe", 1, 2, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sCutterRecipes = new GT_Recipe_Map(new HashSet(200), "gt.recipe.cuttingsaw", "Cutting Saw", null, RES_PATH_GUI + "basicmachines/Cutter", 1, 2, 1, 1, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sSlicerRecipes = new GT_Recipe_Map(new HashSet(200), "gt.recipe.slicer", "Slicer", null, RES_PATH_GUI + "basicmachines/Slicer", 2, 1, 2, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sExtruderRecipes = new GT_Recipe_Map(new HashSet(1000), "gt.recipe.extruder", "Extruder", null, RES_PATH_GUI + "basicmachines/Extruder", 2, 1, 2, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sHammerRecipes = new GT_Recipe_Map(new HashSet(200), "gt.recipe.hammer", "Hammer", null, RES_PATH_GUI + "basicmachines/Hammer", 1, 1, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sAmplifiers = new GT_Recipe_Map(new HashSet(10), "gt.recipe.uuamplifier", "UU Amplifier", null, RES_PATH_GUI + "basicmachines/Amplifabricator", 1, 0, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map_Fuel sDieselFuels = new GT_Recipe_Map_Fuel(new HashSet(10), "gt.recipe.dieselgeneratorfuel", "Diesel Generator Fuel", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true); + public static final GT_Recipe_Map_Fuel sTurbineFuels = new GT_Recipe_Map_Fuel(new HashSet(10), "gt.recipe.gasturbinefuel", "Gas Turbine Fuel", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true); + public static final GT_Recipe_Map_Fuel sHotFuels = new GT_Recipe_Map_Fuel(new HashSet(10), "gt.recipe.thermalgeneratorfuel", "Thermal Generator Fuel", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, false); + public static final GT_Recipe_Map_Fuel sDenseLiquidFuels = new GT_Recipe_Map_Fuel(new HashSet(10), "gt.recipe.semifluidboilerfuels", "Semifluid Boiler Fuels", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true); + public static final GT_Recipe_Map_Fuel sPlasmaFuels = new GT_Recipe_Map_Fuel(new HashSet(10), "gt.recipe.plasmageneratorfuels", "Plasma generator Fuels", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true); + public static final GT_Recipe_Map_Fuel sMagicFuels = new GT_Recipe_Map_Fuel(new HashSet(10), "gt.recipe.magicfuels", "Magic Fuels", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true); + public static final GT_Recipe_Map_Fuel sSmallNaquadahReactorFuels = new GT_Recipe_Map_Fuel(new HashSet(10), "gt.recipe.smallnaquadahreactor", "Small Naquadah Reactor", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true); + public static final GT_Recipe_Map_Fuel sLargeNaquadahReactorFuels = new GT_Recipe_Map_Fuel(new HashSet(10), "gt.recipe.largenaquadahreactor", "Large Naquadah Reactor", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true); + public static final GT_Recipe_Map_Fuel sFluidNaquadahReactorFuels = new GT_Recipe_Map_Fuel(new HashSet(10), "gt.recipe.fluidnaquadahreactor", "Fluid Naquadah Reactor", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true); + + /** + * HashMap of Recipes based on their Items + */ + public final Map> mRecipeItemMap = new HashMap>(); + /** + * HashMap of Recipes based on their Fluids + */ + public final Map> mRecipeFluidMap = new HashMap>(); + /** + * The List of all Recipes + */ + public final Collection mRecipeList; + /** + * String used as an unlocalised Name. + */ + public final String mUnlocalizedName; + /** + * String used in NEI for the Recipe Lists. If null it will use the unlocalised Name instead + */ + public final String mNEIName; + /** + * GUI used for NEI Display. Usually the GUI of the Machine itself + */ + public final String mNEIGUIPath; + public final String mNEISpecialValuePre, mNEISpecialValuePost; + public final int mUsualInputCount, mUsualOutputCount, mNEISpecialValueMultiplier, mMinimalInputItems, mMinimalInputFluids, mAmperage; + public final boolean mNEIAllowed, mShowVoltageAmperageInNEI; + + /** + * Initialises a new type of Recipe Handler. + * + * @param aRecipeList a List you specify as Recipe List. Usually just an ArrayList with a pre-initialised Size. + * @param aUnlocalizedName the unlocalised Name of this Recipe Handler, used mainly for NEI. + * @param aLocalName the displayed Name inside the NEI Recipe GUI. + * @param aNEIGUIPath the displayed GUI Texture, usually just a Machine GUI. Auto-Attaches ".png" if forgotten. + * @param aUsualInputCount the usual amount of Input Slots this Recipe Class has. + * @param aUsualOutputCount the usual amount of Output Slots this Recipe Class has. + * @param aNEISpecialValuePre the String in front of the Special Value in NEI. + * @param aNEISpecialValueMultiplier the Value the Special Value is getting Multiplied with before displaying + * @param aNEISpecialValuePost the String after the Special Value. Usually for a Unit or something. + * @param aNEIAllowed if NEI is allowed to display this Recipe Handler in general. + */ + public GT_Recipe_Map(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { + sMappings.add(this); + mNEIAllowed = aNEIAllowed; + mShowVoltageAmperageInNEI = aShowVoltageAmperageInNEI; + mRecipeList = aRecipeList; + mNEIName = aNEIName == null ? aUnlocalizedName : aNEIName; + mNEIGUIPath = aNEIGUIPath.endsWith(".png") ? aNEIGUIPath : aNEIGUIPath + ".png"; + mNEISpecialValuePre = aNEISpecialValuePre; + mNEISpecialValueMultiplier = aNEISpecialValueMultiplier; + mNEISpecialValuePost = aNEISpecialValuePost; + mAmperage = aAmperage; + mUsualInputCount = aUsualInputCount; + mUsualOutputCount = aUsualOutputCount; + mMinimalInputItems = aMinimalInputItems; + mMinimalInputFluids = aMinimalInputFluids; + GregTech_API.sFluidMappings.add(mRecipeFluidMap); + GregTech_API.sItemStackMappings.add(mRecipeItemMap); + GT_LanguageManager.addStringLocalization(mUnlocalizedName = aUnlocalizedName, aLocalName); + } + + public GT_Recipe addRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { + return addRecipe(new GT_Recipe(aOptimize, aInputs, aOutputs, aSpecial, aOutputChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue)); + } + + public GT_Recipe addRecipe(int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { + return addRecipe(new GT_Recipe(false, null, null, null, aOutputChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue), false, false, false); + } + + public GT_Recipe addRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { + return addRecipe(new GT_Recipe(aOptimize, aInputs, aOutputs, aSpecial, null, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue)); + } + + public GT_Recipe addRecipe(GT_Recipe aRecipe) { + return addRecipe(aRecipe, true, false, false); + } + + protected GT_Recipe addRecipe(GT_Recipe aRecipe, boolean aCheckForCollisions, boolean aFakeRecipe, boolean aHidden) { + aRecipe.mHidden = aHidden; + aRecipe.mFakeRecipe = aFakeRecipe; + if (aRecipe.mFluidInputs.length < mMinimalInputFluids && aRecipe.mInputs.length < mMinimalInputItems) + return null; + if (aCheckForCollisions && findRecipe(null, false, Long.MAX_VALUE, aRecipe.mFluidInputs, aRecipe.mInputs) != null) + return null; + return add(aRecipe); + } + + /** + * Only used for fake Recipe Handlers to show something in NEI, do not use this for adding actual Recipes! findRecipe wont find fake Recipes, containsInput WILL find fake Recipes + */ + public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { + return addFakeRecipe(aCheckForCollisions, new GT_Recipe(false, aInputs, aOutputs, aSpecial, aOutputChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue)); + } + + /** + * Only used for fake Recipe Handlers to show something in NEI, do not use this for adding actual Recipes! findRecipe wont find fake Recipes, containsInput WILL find fake Recipes + */ + public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { + return addFakeRecipe(aCheckForCollisions, new GT_Recipe(false, aInputs, aOutputs, aSpecial, null, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue)); + } + + /** + * Only used for fake Recipe Handlers to show something in NEI, do not use this for adding actual Recipes! findRecipe wont find fake Recipes, containsInput WILL find fake Recipes + */ + public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, GT_Recipe aRecipe) { + return addRecipe(aRecipe, aCheckForCollisions, true, false); + } + + public GT_Recipe add(GT_Recipe aRecipe) { + mRecipeList.add(aRecipe); + for (FluidStack aFluid : aRecipe.mFluidInputs) + if (aFluid != null) { + Collection tList = mRecipeFluidMap.get(aFluid.getFluid()); + if (tList == null) mRecipeFluidMap.put(aFluid.getFluid(), tList = new HashSet(1)); + tList.add(aRecipe); + } + return addToItemMap(aRecipe); + } + + public void reInit() { + Map> tMap = mRecipeItemMap; + if (tMap != null) tMap.clear(); + for (GT_Recipe tRecipe : mRecipeList) { + GT_OreDictUnificator.setStackArray(true, tRecipe.mInputs); + GT_OreDictUnificator.setStackArray(true, tRecipe.mOutputs); + if (tMap != null) addToItemMap(tRecipe); + } + } + + /** + * @return if this Item is a valid Input for any for the Recipes + */ + public boolean containsInput(ItemStack aStack) { + return aStack != null && (mRecipeItemMap.containsKey(new GT_ItemStack(aStack)) || mRecipeItemMap.containsKey(new GT_ItemStack(GT_Utility.copyMetaData(W, aStack)))); + } + + /** + * @return if this Fluid is a valid Input for any for the Recipes + */ + public boolean containsInput(FluidStack aFluid) { + return aFluid != null && containsInput(aFluid.getFluid()); + } + + /** + * @return if this Fluid is a valid Input for any for the Recipes + */ + public boolean containsInput(Fluid aFluid) { + return aFluid != null && mRecipeFluidMap.containsKey(aFluid); + } + + public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack... aInputs) { + return findRecipe(aTileEntity, null, aNotUnificated, aVoltage, aFluids, null, aInputs); + } + + public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack... aInputs) { + return findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, null, aInputs); + } + + /** + * finds a Recipe matching the aFluid and ItemStack Inputs. + * + * @param aTileEntity an Object representing the current coordinates of the executing Block/Entity/Whatever. This may be null, especially during Startup. + * @param aRecipe in case this is != null it will try to use this Recipe first when looking things up. + * @param aNotUnificated if this is T the Recipe searcher will unificate the ItemStack Inputs + * @param aVoltage Voltage of the Machine or Long.MAX_VALUE if it has no Voltage + * @param aFluids the Fluid Inputs + * @param aSpecialSlot the content of the Special Slot, the regular Manager doesn't do anything with this, but some custom ones do. + * @param aInputs the Item Inputs + * @return the Recipe it has found or null for no matching Recipe + */ + public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { + // No Recipes? Well, nothing to be found then. + if (mRecipeList.isEmpty()) return null; + + // Some Recipe Classes require a certain amount of Inputs of certain kinds. Like "at least 1 Fluid + 1 Stack" or "at least 2 Stacks" before they start searching for Recipes. + // This improves Performance massively, especially if people leave things like Circuits, Molds or Shapes in their Machines to select Sub Recipes. + if (GregTech_API.sPostloadFinished) { + if (mMinimalInputFluids > 0) { + if (aFluids == null) return null; + int tAmount = 0; + for (FluidStack aFluid : aFluids) if (aFluid != null) tAmount++; + if (tAmount < mMinimalInputFluids) return null; + } + if (mMinimalInputItems > 0) { + if (aInputs == null) return null; + int tAmount = 0; + for (ItemStack aInput : aInputs) if (aInput != null) tAmount++; + if (tAmount < mMinimalInputItems) return null; + } + } + + // Unification happens here in case the Input isn't already unificated. + if (aNotUnificated) aInputs = GT_OreDictUnificator.getStackArray(true, (Object[]) aInputs); + + // Check the Recipe which has been used last time in order to not have to search for it again, if possible. + if (aRecipe != null) + if (!aRecipe.mFakeRecipe && aRecipe.mCanBeBuffered && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) + return aRecipe.mEnabled && aVoltage * mAmperage >= aRecipe.mEUt ? aRecipe : null; + + // Now look for the Recipes inside the Item HashMaps, but only when the Recipes usually have Items. + if (mUsualInputCount > 0 && aInputs != null) for (ItemStack tStack : aInputs) + if (tStack != null) { + Collection + tRecipes = mRecipeItemMap.get(new GT_ItemStack(tStack)); + if (tRecipes != null) for (GT_Recipe tRecipe : tRecipes) + if (!tRecipe.mFakeRecipe && tRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) + return tRecipe.mEnabled && aVoltage * mAmperage >= tRecipe.mEUt ? tRecipe : null; + tRecipes = mRecipeItemMap.get(new GT_ItemStack(GT_Utility.copyMetaData(W, tStack))); + if (tRecipes != null) for (GT_Recipe tRecipe : tRecipes) + if (!tRecipe.mFakeRecipe && tRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) + return tRecipe.mEnabled && aVoltage * mAmperage >= tRecipe.mEUt ? tRecipe : null; + } + + // If the minimal Amount of Items for the Recipe is 0, then it could be a Fluid-Only Recipe, so check that Map too. + if (mMinimalInputItems == 0 && aFluids != null) for (FluidStack aFluid : aFluids) + if (aFluid != null) { + Collection + tRecipes = mRecipeFluidMap.get(aFluid.getFluid()); + if (tRecipes != null) for (GT_Recipe tRecipe : tRecipes) + if (!tRecipe.mFakeRecipe && tRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) + return tRecipe.mEnabled && aVoltage * mAmperage >= tRecipe.mEUt ? tRecipe : null; + } + + // And nothing has been found. + return null; + } + + protected GT_Recipe addToItemMap(GT_Recipe aRecipe) { + for (ItemStack aStack : aRecipe.mInputs) + if (aStack != null) { + GT_ItemStack tStack = new GT_ItemStack(aStack); + Collection tList = mRecipeItemMap.get(tStack); + if (tList == null) mRecipeItemMap.put(tStack, tList = new HashSet(1)); + tList.add(aRecipe); + } + return aRecipe; + } + } + + // ----------------------------------------------------------------------------------------------------------------- + // Here are a few Classes I use for Special Cases in some Machines without having to write a separate Machine Class. + // ----------------------------------------------------------------------------------------------------------------- + + /** + * Abstract Class for general Recipe Handling of non GT Recipes + */ + public static abstract class GT_Recipe_Map_NonGTRecipes extends GT_Recipe_Map { + public GT_Recipe_Map_NonGTRecipes(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { + super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); + } + + @Override + public boolean containsInput(ItemStack aStack) { + return false; + } + + @Override + public boolean containsInput(FluidStack aFluid) { + return false; + } + + @Override + public boolean containsInput(Fluid aFluid) { + return false; + } + + @Override + public GT_Recipe addRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { + return null; + } + + @Override + public GT_Recipe addRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { + return null; + } + + @Override + public GT_Recipe addRecipe(GT_Recipe aRecipe) { + return null; + } + + @Override + public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { + return null; + } + + @Override + public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { + return null; + } + + @Override + public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, GT_Recipe aRecipe) { + return null; + } + + @Override + public GT_Recipe add(GT_Recipe aRecipe) { + return null; + } + + @Override + public void reInit() {/**/} + + @Override + protected GT_Recipe addToItemMap(GT_Recipe aRecipe) { + return null; + } + } + + /** + * Just a Recipe Map with Utility specifically for Fuels. + */ + public static class GT_Recipe_Map_Fuel extends GT_Recipe_Map { + public GT_Recipe_Map_Fuel(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { + super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); + } + + public GT_Recipe addFuel(ItemStack aInput, ItemStack aOutput, int aFuelValueInEU) { + return addFuel(aInput, aOutput, null, null, 10000, aFuelValueInEU); + } + + public GT_Recipe addFuel(ItemStack aInput, ItemStack aOutput, int aChance, int aFuelValueInEU) { + return addFuel(aInput, aOutput, null, null, aChance, aFuelValueInEU); + } + + public GT_Recipe addFuel(FluidStack aFluidInput, FluidStack aFluidOutput, int aFuelValueInEU) { + return addFuel(null, null, aFluidInput, aFluidOutput, 10000, aFuelValueInEU); + } + + public GT_Recipe addFuel(ItemStack aInput, ItemStack aOutput, FluidStack aFluidInput, FluidStack aFluidOutput, int aFuelValueInEU) { + return addFuel(aInput, aOutput, aFluidInput, aFluidOutput, 10000, aFuelValueInEU); + } + + public GT_Recipe addFuel(ItemStack aInput, ItemStack aOutput, FluidStack aFluidInput, FluidStack aFluidOutput, int aChance, int aFuelValueInEU) { + return addRecipe(true, new ItemStack[]{aInput}, new ItemStack[]{aOutput}, null, new int[]{aChance}, new FluidStack[]{aFluidInput}, new FluidStack[]{aFluidOutput}, 0, 0, aFuelValueInEU); + } + } + + /** + * Special Class for Furnace Recipe handling. + */ + public static class GT_Recipe_Map_Furnace extends GT_Recipe_Map_NonGTRecipes { + public GT_Recipe_Map_Furnace(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { + super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); + } + + @Override + public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { + if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null) return null; + if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe; + ItemStack tOutput = GT_ModHandler.getSmeltingOutput(aInputs[0], false, null); + return tOutput == null ? null : new GT_Recipe(false, new ItemStack[]{GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[]{tOutput}, null, null, null, null, 128, 4, 0); + } + + @Override + public boolean containsInput(ItemStack aStack) { + return GT_ModHandler.getSmeltingOutput(aStack, false, null) != null; + } + } + + /** + * Special Class for Microwave Recipe handling. + */ + public static class GT_Recipe_Map_Microwave extends GT_Recipe_Map_NonGTRecipes { + public GT_Recipe_Map_Microwave(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { + super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); + } + + @Override + public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { + if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null) return null; + if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe; + ItemStack tOutput = GT_ModHandler.getSmeltingOutput(aInputs[0], false, null); + + if (GT_Utility.areStacksEqual(aInputs[0], new ItemStack(Items.book, 1, W))) { + return new GT_Recipe(false, new ItemStack[]{GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[]{GT_Utility.getWrittenBook("Manual_Microwave", ItemList.Book_Written_03.get(1))}, null, null, null, null, 32, 4, 0); + } + + // Check Container Item of Input since it is around the Input, then the Input itself, then Container Item of Output and last check the Output itself + for (ItemStack tStack : new ItemStack[]{GT_Utility.getContainerItem(aInputs[0], true), aInputs[0], GT_Utility.getContainerItem(tOutput, true), tOutput}) + if (tStack != null) { + if (GT_Utility.areStacksEqual(tStack, new ItemStack(Blocks.netherrack, 1, W), true) + || GT_Utility.areStacksEqual(tStack, new ItemStack(Blocks.tnt, 1, W), true) + || GT_Utility.areStacksEqual(tStack, new ItemStack(Items.egg, 1, W), true) + || GT_Utility.areStacksEqual(tStack, new ItemStack(Items.firework_charge, 1, W), true) + || GT_Utility.areStacksEqual(tStack, new ItemStack(Items.fireworks, 1, W), true) + || GT_Utility.areStacksEqual(tStack, new ItemStack(Items.fire_charge, 1, W), true) + ) { + if (aTileEntity instanceof IGregTechTileEntity) + ((IGregTechTileEntity) aTileEntity).doExplosion(aVoltage * 4); + return null; + } + ItemData tData = GT_OreDictUnificator.getItemData(tStack); + + + if (tData != null) { + if (tData.mMaterial != null && tData.mMaterial.mMaterial != null) { + if (tData.mMaterial.mMaterial.contains(SubTag.METAL) || tData.mMaterial.mMaterial.contains(SubTag.EXPLOSIVE)) { + if (aTileEntity instanceof IGregTechTileEntity) + ((IGregTechTileEntity) aTileEntity).doExplosion(aVoltage * 4); + return null; + } + if (tData.mMaterial.mMaterial.contains(SubTag.FLAMMABLE)) { + if (aTileEntity instanceof IGregTechTileEntity) + ((IGregTechTileEntity) aTileEntity).setOnFire(); + return null; + } + } + for (MaterialStack tMaterial : tData.mByProducts) + if (tMaterial != null) { + if (tMaterial.mMaterial.contains(SubTag.METAL) || tMaterial.mMaterial.contains(SubTag.EXPLOSIVE)) { + if (aTileEntity instanceof IGregTechTileEntity) + ((IGregTechTileEntity) aTileEntity).doExplosion(aVoltage * 4); + return null; + } + if (tMaterial.mMaterial.contains(SubTag.FLAMMABLE)) { + if (aTileEntity instanceof IGregTechTileEntity) + ((IGregTechTileEntity) aTileEntity).setOnFire(); + return null; + } + } + } + if (TileEntityFurnace.getItemBurnTime(tStack) > 0) { + if (aTileEntity instanceof IGregTechTileEntity) ((IGregTechTileEntity) aTileEntity).setOnFire(); + return null; + } + + } + + return tOutput == null ? null : new GT_Recipe(false, new ItemStack[]{GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[]{tOutput}, null, null, null, null, 32, 4, 0); + } + + @Override + public boolean containsInput(ItemStack aStack) { + return GT_ModHandler.getSmeltingOutput(aStack, false, null) != null; + } + } + + /** + * Special Class for Unboxinator handling. + */ + public static class GT_Recipe_Map_Unboxinator extends GT_Recipe_Map { + public GT_Recipe_Map_Unboxinator(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { + super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); + } + + @Override + public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { + if (aInputs == null || aInputs.length <= 0 || !ItemList.IC2_Scrapbox.isStackEqual(aInputs[0], false, true)) + return super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs); + ItemStack tOutput = GT_ModHandler.getRandomScrapboxDrop(); + if (tOutput == null) + return super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs); + GT_Recipe rRecipe = new GT_Recipe(false, new ItemStack[]{ItemList.IC2_Scrapbox.get(1)}, new ItemStack[]{tOutput}, null, null, null, null, 16, 1, 0); + // It is not allowed to be buffered due to the random Output + rRecipe.mCanBeBuffered = false; + // Due to its randomness it is not good if there are Items in the Output Slot, because those Items could manipulate the outcome. + rRecipe.mNeedsEmptyOutput = true; + return rRecipe; + } + + @Override + public boolean containsInput(ItemStack aStack) { + return ItemList.IC2_Scrapbox.isStackEqual(aStack, false, true) || super.containsInput(aStack); + } + } + + /** + * Special Class for Fluid Canner handling. + */ + public static class GT_Recipe_Map_FluidCanner extends GT_Recipe_Map { + public GT_Recipe_Map_FluidCanner(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { + super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); + } + + @Override + public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { + GT_Recipe rRecipe = super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs); + if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null || rRecipe != null || !GregTech_API.sPostloadFinished) + return rRecipe; + if (aFluids != null && aFluids.length > 0 && aFluids[0] != null) { + ItemStack tOutput = GT_Utility.fillFluidContainer(aFluids[0], aInputs[0], false, true); + FluidStack tFluid = GT_Utility.getFluidForFilledItem(tOutput, true); + if (tFluid != null) + rRecipe = new GT_Recipe(false, new ItemStack[]{GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[]{tOutput}, null, null, new FluidStack[]{tFluid}, null, Math.max(tFluid.amount / 64, 16), 1, 0); + } + if (rRecipe == null) { + FluidStack tFluid = GT_Utility.getFluidForFilledItem(aInputs[0], true); + if (tFluid != null) + rRecipe = new GT_Recipe(false, new ItemStack[]{GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[]{GT_Utility.getContainerItem(aInputs[0], true)}, null, null, null, new FluidStack[]{tFluid}, Math.max(tFluid.amount / 64, 16), 1, 0); + } + if (rRecipe != null) rRecipe.mCanBeBuffered = false; + return rRecipe; + } + + @Override + public boolean containsInput(ItemStack aStack) { + return aStack != null && (super.containsInput(aStack) || (aStack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem) aStack.getItem()).getCapacity(aStack) > 0)); + } + + @Override + public boolean containsInput(FluidStack aFluid) { + return true; + } + + @Override + public boolean containsInput(Fluid aFluid) { + return true; + } + } + + /** + * Special Class for Recycler Recipe handling. + */ + public static class GT_Recipe_Map_Recycler extends GT_Recipe_Map_NonGTRecipes { + public GT_Recipe_Map_Recycler(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { + super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); + } + + @Override + public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { + if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null) return null; + if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe; + return new GT_Recipe(false, new ItemStack[]{GT_Utility.copyAmount(1, aInputs[0])}, GT_ModHandler.getRecyclerOutput(GT_Utility.copyAmount(64, aInputs[0]), 0) == null ? null : new ItemStack[]{ItemList.IC2_Scrap.get(1)}, null, new int[]{1250}, null, null, 45, 1, 0); + } + + @Override + public boolean containsInput(ItemStack aStack) { + return GT_ModHandler.getRecyclerOutput(GT_Utility.copyAmount(64, aStack), 0) != null; + } + } + + /** + * Special Class for Compressor Recipe handling. + */ + public static class GT_Recipe_Map_Compressor extends GT_Recipe_Map_NonGTRecipes { + public GT_Recipe_Map_Compressor(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { + super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); + } + + @Override + public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { + if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null) return null; + if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe; + ItemStack tComparedInput = GT_Utility.copy(aInputs[0]); + ItemStack[] tOutputItems = GT_ModHandler.getMachineOutput(tComparedInput, ic2.api.recipe.Recipes.compressor.getRecipes(), true, new NBTTagCompound(), null, null, null); + return GT_Utility.arrayContainsNonNull(tOutputItems) ? new GT_Recipe(false, new ItemStack[]{GT_Utility.copyAmount(aInputs[0].stackSize - tComparedInput.stackSize, aInputs[0])}, tOutputItems, null, null, null, null, 400, 2, 0) : null; + } + + @Override + public boolean containsInput(ItemStack aStack) { + return GT_Utility.arrayContainsNonNull(GT_ModHandler.getMachineOutput(GT_Utility.copyAmount(64, aStack), ic2.api.recipe.Recipes.compressor.getRecipes(), false, new NBTTagCompound(), null, null, null)); + } + } + + /** + * Special Class for Extractor Recipe handling. + */ + public static class GT_Recipe_Map_Extractor extends GT_Recipe_Map_NonGTRecipes { + public GT_Recipe_Map_Extractor(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { + super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); + } + + @Override + public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { + if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null) return null; + if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe; + ItemStack tComparedInput = GT_Utility.copy(aInputs[0]); + ItemStack[] tOutputItems = GT_ModHandler.getMachineOutput(tComparedInput, ic2.api.recipe.Recipes.extractor.getRecipes(), true, new NBTTagCompound(), null, null, null); + return GT_Utility.arrayContainsNonNull(tOutputItems) ? new GT_Recipe(false, new ItemStack[]{GT_Utility.copyAmount(aInputs[0].stackSize - tComparedInput.stackSize, aInputs[0])}, tOutputItems, null, null, null, null, 400, 2, 0) : null; + } + + @Override + public boolean containsInput(ItemStack aStack) { + return GT_Utility.arrayContainsNonNull(GT_ModHandler.getMachineOutput(GT_Utility.copyAmount(64, aStack), ic2.api.recipe.Recipes.extractor.getRecipes(), false, new NBTTagCompound(), null, null, null)); + } + } + + /** + * Special Class for Thermal Centrifuge Recipe handling. + */ + public static class GT_Recipe_Map_ThermalCentrifuge extends GT_Recipe_Map_NonGTRecipes { + public GT_Recipe_Map_ThermalCentrifuge(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { + super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); + } + + @Override + public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { + if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null) return null; + if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe; + ItemStack tComparedInput = GT_Utility.copy(aInputs[0]); + ItemStack[] tOutputItems = GT_ModHandler.getMachineOutput(tComparedInput, ic2.api.recipe.Recipes.centrifuge.getRecipes(), true, new NBTTagCompound(), null, null, null); + return GT_Utility.arrayContainsNonNull(tOutputItems) ? new GT_Recipe(false, new ItemStack[]{GT_Utility.copyAmount(aInputs[0].stackSize - tComparedInput.stackSize, aInputs[0])}, tOutputItems, null, null, null, null, 400, 48, 0) : null; + } + + @Override + public boolean containsInput(ItemStack aStack) { + return GT_Utility.arrayContainsNonNull(GT_ModHandler.getMachineOutput(GT_Utility.copyAmount(64, aStack), ic2.api.recipe.Recipes.centrifuge.getRecipes(), false, new NBTTagCompound(), null, null, null)); + } + } + + /** + * Special Class for Ore Washer Recipe handling. + */ + public static class GT_Recipe_Map_OreWasher extends GT_Recipe_Map_NonGTRecipes { + public GT_Recipe_Map_OreWasher(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { + super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); + } + + @Override + public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { + if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null || aFluids == null || aFluids.length < 1 || !GT_ModHandler.isWater(aFluids[0])) + return null; + if (aRecipe != null && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) return aRecipe; + ItemStack tComparedInput = GT_Utility.copy(aInputs[0]); + NBTTagCompound aRecipeMetaData = new NBTTagCompound(); + ItemStack[] tOutputItems = GT_ModHandler.getMachineOutput(tComparedInput, ic2.api.recipe.Recipes.oreWashing.getRecipes(), true, aRecipeMetaData, null, null, null); + return GT_Utility.arrayContainsNonNull(tOutputItems) ? new GT_Recipe(false, new ItemStack[]{GT_Utility.copyAmount(aInputs[0].stackSize - tComparedInput.stackSize, aInputs[0])}, tOutputItems, null, null, new FluidStack[]{new FluidStack(aFluids[0].getFluid(), ((NBTTagCompound) aRecipeMetaData.getTag("return")).getInteger("amount"))}, null, 400, 16, 0) : null; + } + + @Override + public boolean containsInput(ItemStack aStack) { + return GT_Utility.arrayContainsNonNull(GT_ModHandler.getMachineOutput(GT_Utility.copyAmount(64, aStack), ic2.api.recipe.Recipes.oreWashing.getRecipes(), false, new NBTTagCompound(), null, null, null)); + } + + @Override + public boolean containsInput(FluidStack aFluid) { + return GT_ModHandler.isWater(aFluid); + } + + @Override + public boolean containsInput(Fluid aFluid) { + return GT_ModHandler.isWater(new FluidStack(aFluid, 0)); + } + } + + /** + * Special Class for Macerator/RockCrusher Recipe handling. + */ + public static class GT_Recipe_Map_Macerator extends GT_Recipe_Map { + public GT_Recipe_Map_Macerator(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { + super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); + } + + @Override + public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { + if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null || !GregTech_API.sPostloadFinished) + return super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs); + aRecipe = super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs); + if (aRecipe != null) return aRecipe; + + try { + List tRecipeOutputs = mods.railcraft.api.crafting.RailcraftCraftingManager.rockCrusher.getRecipe(GT_Utility.copyAmount(1, aInputs[0])).getRandomizedOuputs(); + if (tRecipeOutputs != null) { + aRecipe = new GT_Recipe(false, new ItemStack[]{GT_Utility.copyAmount(1, aInputs[0])}, tRecipeOutputs.toArray(new ItemStack[tRecipeOutputs.size()]), null, null, null, null, 800, 2, 0); + aRecipe.mCanBeBuffered = false; + aRecipe.mNeedsEmptyOutput = true; + return aRecipe; + } + } catch (NoClassDefFoundError e) { + if (D1) GT_Log.err.println("Railcraft Not loaded"); + } catch (NullPointerException e) {/**/} + + ItemStack tComparedInput = GT_Utility.copy(aInputs[0]); + ItemStack[] tOutputItems = GT_ModHandler.getMachineOutput(tComparedInput, ic2.api.recipe.Recipes.macerator.getRecipes(), true, new NBTTagCompound(), null, null, null); + return GT_Utility.arrayContainsNonNull(tOutputItems) ? new GT_Recipe(false, new ItemStack[]{GT_Utility.copyAmount(aInputs[0].stackSize - tComparedInput.stackSize, aInputs[0])}, tOutputItems, null, null, null, null, 400, 2, 0) : null; + } + + @Override + public boolean containsInput(ItemStack aStack) { + return super.containsInput(aStack) || GT_Utility.arrayContainsNonNull(GT_ModHandler.getMachineOutput(GT_Utility.copyAmount(64, aStack), ic2.api.recipe.Recipes.macerator.getRecipes(), false, new NBTTagCompound(), null, null, null)); + } + } + + /** + * Special Class for Assembler handling. + */ + public static class GT_Recipe_Map_Assembler extends GT_Recipe_Map { + public GT_Recipe_Map_Assembler(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { + super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); + } + + @Override + public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { + GT_Recipe rRecipe = super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs); + if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null || rRecipe == null || !GregTech_API.sPostloadFinished) + return rRecipe; + for (ItemStack aInput : aInputs) { + if (ItemList.Paper_Printed_Pages.isStackEqual(aInput, false, true)) { + rRecipe = rRecipe.copy(); + rRecipe.mCanBeBuffered = false; + rRecipe.mOutputs[0].setTagCompound(aInput.getTagCompound()); + } + } + return rRecipe; + } + } + + /** + * Special Class for Forming Press handling. + */ + public static class GT_Recipe_Map_FormingPress extends GT_Recipe_Map { + public GT_Recipe_Map_FormingPress(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { + super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); + } + + @Override + public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { + GT_Recipe rRecipe = super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs); + if (aInputs == null || aInputs.length < 2 || aInputs[0] == null || aInputs[1] == null || !GregTech_API.sPostloadFinished) + return rRecipe; + if (rRecipe == null) { + if (ItemList.Shape_Mold_Name.isStackEqual(aInputs[0], false, true)) { + ItemStack tOutput = GT_Utility.copyAmount(1, aInputs[1]); + tOutput.setStackDisplayName(aInputs[0].getDisplayName()); + rRecipe = new GT_Recipe(false, new ItemStack[]{ItemList.Shape_Mold_Name.get(0), GT_Utility.copyAmount(1, aInputs[1])}, new ItemStack[]{tOutput}, null, null, null, null, 128, 8, 0); + rRecipe.mCanBeBuffered = false; + return rRecipe; + } + if (ItemList.Shape_Mold_Name.isStackEqual(aInputs[1], false, true)) { + ItemStack tOutput = GT_Utility.copyAmount(1, aInputs[0]); + tOutput.setStackDisplayName(aInputs[1].getDisplayName()); + rRecipe = new GT_Recipe(false, new ItemStack[]{ItemList.Shape_Mold_Name.get(0), GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[]{tOutput}, null, null, null, null, 128, 8, 0); + rRecipe.mCanBeBuffered = false; + return rRecipe; + } + return null; + } + for (ItemStack aMold : aInputs) { + if (ItemList.Shape_Mold_Credit.isStackEqual(aMold, false, true)) { + NBTTagCompound tNBT = aMold.getTagCompound(); + if (tNBT == null) tNBT = new NBTTagCompound(); + if (!tNBT.hasKey("credit_security_id")) tNBT.setLong("credit_security_id", System.nanoTime()); + aMold.setTagCompound(tNBT); + + rRecipe = rRecipe.copy(); + rRecipe.mCanBeBuffered = false; + rRecipe.mOutputs[0].setTagCompound(tNBT); + return rRecipe; + } + } + return rRecipe; + } + } + + /** + * Special Class for Printer handling. + */ + public static class GT_Recipe_Map_Printer extends GT_Recipe_Map { + public GT_Recipe_Map_Printer(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) { + super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); + } + + @Override + public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) { + GT_Recipe rRecipe = super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs); + if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null || aFluids == null || aFluids.length <= 0 || aFluids[0] == null || !GregTech_API.sPostloadFinished) + return rRecipe; + + Dyes aDye = null; + for (Dyes tDye : Dyes.VALUES) + if (tDye.isFluidDye(aFluids[0])) { + aDye = tDye; + break; + } + + if (aDye == null) return rRecipe; + + if (rRecipe == null) { + ItemStack + tOutput = GT_ModHandler.getAllRecipeOutput(aTileEntity == null ? null : aTileEntity.getWorld(), aInputs[0], aInputs[0], aInputs[0], aInputs[0], ItemList.DYE_ONLY_ITEMS[aDye.mIndex].get(1), aInputs[0], aInputs[0], aInputs[0], aInputs[0]); + if (tOutput != null) + return addRecipe(new GT_Recipe(true, new ItemStack[]{GT_Utility.copyAmount(8, aInputs[0])}, new ItemStack[]{tOutput}, null, null, new FluidStack[]{new FluidStack(aFluids[0].getFluid(), (int) L)}, null, 256, 2, 0), false, false, true); + + tOutput = GT_ModHandler.getAllRecipeOutput(aTileEntity == null ? null : aTileEntity.getWorld(), aInputs[0], ItemList.DYE_ONLY_ITEMS[aDye.mIndex].get(1)); + if (tOutput != null) + return addRecipe(new GT_Recipe(true, new ItemStack[]{GT_Utility.copyAmount(1, aInputs[0])}, new ItemStack[]{tOutput}, null, null, new FluidStack[]{new FluidStack(aFluids[0].getFluid(), (int) L)}, null, 32, 2, 0), false, false, true); + } else { + if (aInputs[0].getItem() == Items.paper) { + if (!ItemList.Tool_DataStick.isStackEqual(aSpecialSlot, false, true)) return null; + NBTTagCompound tNBT = aSpecialSlot.getTagCompound(); + if (tNBT == null || GT_Utility.isStringInvalid(tNBT.getString("title")) || GT_Utility.isStringInvalid(tNBT.getString("author"))) + return null; + + rRecipe = rRecipe.copy(); + rRecipe.mCanBeBuffered = false; + rRecipe.mOutputs[0].setTagCompound(tNBT); + return rRecipe; + } + if (aInputs[0].getItem() == Items.map) { + if (!ItemList.Tool_DataStick.isStackEqual(aSpecialSlot, false, true)) return null; + NBTTagCompound tNBT = aSpecialSlot.getTagCompound(); + if (tNBT == null || !tNBT.hasKey("map_id")) return null; + + rRecipe = rRecipe.copy(); + rRecipe.mCanBeBuffered = false; + rRecipe.mOutputs[0].setItemDamage(tNBT.getShort("map_id")); + return rRecipe; + } + if (ItemList.Paper_Punch_Card_Empty.isStackEqual(aInputs[0], false, true)) { + if (!ItemList.Tool_DataStick.isStackEqual(aSpecialSlot, false, true)) return null; + NBTTagCompound tNBT = aSpecialSlot.getTagCompound(); + if (tNBT == null || !tNBT.hasKey("GT.PunchCardData")) return null; + + rRecipe = rRecipe.copy(); + rRecipe.mCanBeBuffered = false; + rRecipe.mOutputs[0].setTagCompound(GT_Utility.getNBTContainingString(new NBTTagCompound(), "GT.PunchCardData", tNBT.getString("GT.PunchCardData"))); + return rRecipe; + } + } + return rRecipe; + } + + @Override + public boolean containsInput(ItemStack aStack) { + return true; + } + + @Override + public boolean containsInput(FluidStack aFluid) { + return super.containsInput(aFluid) || Dyes.isAnyFluidDye(aFluid); + } + + @Override + public boolean containsInput(Fluid aFluid) { + return super.containsInput(aFluid) || Dyes.isAnyFluidDye(aFluid); + } + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java b/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java index a11a4a1a..3eea2478 100644 --- a/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java +++ b/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java @@ -1,313 +1,332 @@ package gregtech.api.util; -import static gregtech.api.enums.GT_Values.L; -import static gregtech.api.enums.GT_Values.M; -import static gregtech.api.enums.GT_Values.RA; import gregtech.api.GregTech_API; import gregtech.api.enums.*; import gregtech.api.enums.TC_Aspects.TC_AspectStack; import gregtech.api.interfaces.internal.IThaumcraftCompat; import gregtech.api.objects.ItemData; import gregtech.api.objects.MaterialStack; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; +import static gregtech.api.enums.GT_Values.*; /** * Class for Automatic Recipe registering. */ public class GT_RecipeRegistrator { - public static volatile int VERSION = 508; - - /** List of Materials, which are used in the Creation of Sticks. All Rod Materials are automatically added to this List. */ - public static final List sRodMaterialList = new ArrayList(); - - public static void registerMaterialRecycling(ItemStack aStack, Materials aMaterial, long aMaterialAmount, MaterialStack aByproduct) { - if (GT_Utility.isStackInvalid(aStack)) return; - if (aByproduct != null) {aByproduct = aByproduct.clone(); aByproduct.mAmount /= aStack.stackSize;} - GT_OreDictUnificator.addItemData(GT_Utility.copyAmount(1, aStack), new ItemData(aMaterial, aMaterialAmount / aStack.stackSize, aByproduct)); - } - - public static void registerMaterialRecycling(ItemStack aStack, ItemData aData) { - if (GT_Utility.isStackInvalid(aStack) || GT_Utility.areStacksEqual(new ItemStack(Items.blaze_rod), aStack) || aData == null || !aData.hasValidMaterialData() || aData.mMaterial.mAmount <= 0 || GT_Utility.getFluidForFilledItem(aStack, false) != null) return; - registerReverseMacerating (GT_Utility.copyAmount(1, aStack), aData, aData.mPrefix == null); - registerReverseSmelting (GT_Utility.copyAmount(1, aStack), aData.mMaterial.mMaterial, aData.mMaterial.mAmount, true); - registerReverseFluidSmelting (GT_Utility.copyAmount(1, aStack), aData.mMaterial.mMaterial, aData.mMaterial.mAmount, aData.getByProduct(0)); - registerReverseArcSmelting (GT_Utility.copyAmount(1, aStack), aData); - } - - /** - * @param aStack the stack to be recycled. - * @param aMaterial the Material. - * @param aMaterialAmount the amount of it in Material Units. - */ - public static void registerReverseFluidSmelting(ItemStack aStack, Materials aMaterial, long aMaterialAmount, MaterialStack aByproduct) { - if (aStack == null || aMaterial == null || aMaterial.mSmeltInto.mStandardMoltenFluid == null || !aMaterial.contains(SubTag.SMELTING_TO_FLUID) || (L * aMaterialAmount) / (M * aStack.stackSize) <= 0) return; - RA.addFluidSmelterRecipe(GT_Utility.copyAmount(1, aStack), aByproduct==null?null:aByproduct.mMaterial.contains(SubTag.NO_SMELTING)||!aByproduct.mMaterial.contains(SubTag.METAL)?aByproduct.mMaterial.contains(SubTag.FLAMMABLE)?GT_OreDictUnificator.getDust(Materials.Ash, aByproduct.mAmount/2):aByproduct.mMaterial.contains(SubTag.UNBURNABLE)?GT_OreDictUnificator.getDustOrIngot(aByproduct.mMaterial.mSmeltInto, aByproduct.mAmount):null:GT_OreDictUnificator.getIngotOrDust(aByproduct.mMaterial.mSmeltInto, aByproduct.mAmount), aMaterial.mSmeltInto.getMolten((L * aMaterialAmount) / (M * aStack.stackSize)), 10000, (int)Math.max(1, (24 * aMaterialAmount) / M), Math.max(8, (int)Math.sqrt(2*aMaterial.mSmeltInto.mStandardMoltenFluid.getTemperature()))); - } - - /** - * @param aStack the stack to be recycled. - * @param aMaterial the Material. - * @param aMaterialAmount the amount of it in Material Units. - * @param aAllowAlloySmelter if it is allowed to be recycled inside the Alloy Smelter. - */ - public static void registerReverseSmelting(ItemStack aStack, Materials aMaterial, long aMaterialAmount, boolean aAllowAlloySmelter) { - if (aStack == null || aMaterial == null || aMaterialAmount <= 0 || aMaterial.contains(SubTag.NO_SMELTING) || (aMaterialAmount > M && aMaterial.contains(SubTag.METAL))) return; - aMaterialAmount /= aStack.stackSize; - if (aAllowAlloySmelter) - GT_ModHandler.addSmeltingAndAlloySmeltingRecipe(GT_Utility.copyAmount(1, aStack), GT_OreDictUnificator.getIngot(aMaterial.mSmeltInto, aMaterialAmount)); - else - GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1, aStack), GT_OreDictUnificator.getIngot(aMaterial.mSmeltInto, aMaterialAmount)); - } - - public static void registerReverseArcSmelting(ItemStack aStack, Materials aMaterial, long aMaterialAmount, MaterialStack aByProduct01, MaterialStack aByProduct02, MaterialStack aByProduct03) { - registerReverseArcSmelting(aStack, new ItemData(aMaterial==null?null:new MaterialStack(aMaterial, aMaterialAmount), aByProduct01, aByProduct02, aByProduct03)); - } - - public static void registerReverseArcSmelting(ItemStack aStack, ItemData aData) { - if (aStack == null || aData == null) return; - aData = new ItemData(aData); - - if (!aData.hasValidMaterialData()) return; - - for (MaterialStack tMaterial : aData.getAllMaterialStacks()) { - if (tMaterial.mMaterial.contains(SubTag.UNBURNABLE)) { - tMaterial.mMaterial = tMaterial.mMaterial.mSmeltInto.mArcSmeltInto; - continue; - } - if (tMaterial.mMaterial.contains(SubTag.EXPLOSIVE)) { - tMaterial.mMaterial = Materials.Ash; - tMaterial.mAmount /= 4; - continue; - } - if (tMaterial.mMaterial.contains(SubTag.FLAMMABLE)) { - tMaterial.mMaterial = Materials.Ash; - tMaterial.mAmount /= 2; - continue; - } - if (tMaterial.mMaterial.contains(SubTag.NO_SMELTING)) { - tMaterial.mAmount = 0; - continue; - } - if (tMaterial.mMaterial.contains(SubTag.METAL)) { - tMaterial.mMaterial = tMaterial.mMaterial.mSmeltInto.mArcSmeltInto; - continue; - } - tMaterial.mAmount = 0; - } - - aData = new ItemData(aData); - - if (aData.mByProducts.length > 3) for (MaterialStack tMaterial : aData.getAllMaterialStacks()) if (tMaterial.mMaterial == Materials.Ash) tMaterial.mAmount = 0; - - aData = new ItemData(aData); - - if (!aData.hasValidMaterialData()) return; - - long tAmount = 0; for (MaterialStack tMaterial : aData.getAllMaterialStacks()) tAmount += tMaterial.mAmount * tMaterial.mMaterial.getMass(); - - RA.addArcFurnaceRecipe(aStack, new ItemStack[] {GT_OreDictUnificator.getIngotOrDust(aData.mMaterial), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(0)), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(1)), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(2))}, null, (int)Math.max(16, tAmount / M), 96); - } - - public static void registerReverseMacerating(ItemStack aStack, Materials aMaterial, long aMaterialAmount, MaterialStack aByProduct01, MaterialStack aByProduct02, MaterialStack aByProduct03, boolean aAllowHammer) { - registerReverseMacerating(aStack, new ItemData(aMaterial==null?null:new MaterialStack(aMaterial, aMaterialAmount), aByProduct01, aByProduct02, aByProduct03), aAllowHammer); - } - - public static void registerReverseMacerating(ItemStack aStack, ItemData aData, boolean aAllowHammer) { - if (aStack == null || aData == null) return; - aData = new ItemData(aData); - - if (!aData.hasValidMaterialData()) return; - - for (MaterialStack tMaterial : aData.getAllMaterialStacks()) tMaterial.mMaterial = tMaterial.mMaterial.mMacerateInto; - - aData = new ItemData(aData); - - if (!aData.hasValidMaterialData()) return; - - long tAmount = 0; for (MaterialStack tMaterial : aData.getAllMaterialStacks()) tAmount += tMaterial.mAmount * tMaterial.mMaterial.getMass(); - - RA.addPulveriserRecipe(aStack, new ItemStack[] {GT_OreDictUnificator.getDust(aData.mMaterial), GT_OreDictUnificator.getDust(aData.getByProduct(0)), GT_OreDictUnificator.getDust(aData.getByProduct(1)), GT_OreDictUnificator.getDust(aData.getByProduct(2))}, null, (int)Math.max(16, tAmount / M), 4); - - if (aAllowHammer) for (MaterialStack tMaterial : aData.getAllMaterialStacks()) if (tMaterial.mMaterial.contains(SubTag.CRYSTAL) && !tMaterial.mMaterial.contains(SubTag.METAL)) { - if (RA.addForgeHammerRecipe(GT_Utility.copyAmount(1, aStack), GT_OreDictUnificator.getGem(aData.mMaterial), 200, 32)) break; - } - ItemStack tDust = GT_OreDictUnificator.getDust(aData.mMaterial); - if (tDust != null && GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1, aStack), tDust, GT_OreDictUnificator.getDust(aData.getByProduct(0)), 100, GT_OreDictUnificator.getDust(aData.getByProduct(1)), 100, true)) { - if (GregTech_API.sThaumcraftCompat != null) GregTech_API.sThaumcraftCompat.addCrucibleRecipe(IThaumcraftCompat.ADVANCEDENTROPICPROCESSING, aStack, tDust, Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, Math.max(1, (aData.mMaterial.mAmount * 2) / M)))); - } - } - - /** - * You give this Function a Material and it will scan almost everything for adding recycling Recipes - * - * @param aMat a Material, for example an Ingot or a Gem. - * @param aOutput the Dust you usually get from macerating aMat - * @param aRecipeReplacing allows to replace the Recipe with a Plate variant - */ - public static synchronized void registerUsagesForMaterials(ItemStack aMat, String aPlate, boolean aRecipeReplacing) { - if (aMat == null) return; - aMat = GT_Utility.copy(aMat); - ItemStack tStack; - ItemData aItemData = GT_OreDictUnificator.getItemData(aMat); - if (aItemData == null || aItemData.mPrefix != OrePrefixes.ingot) aPlate = null; - if (aPlate != null && GT_OreDictUnificator.getFirstOre(aPlate, 1) == null) aPlate = null; - - sMt1.func_150996_a(aMat.getItem()); - sMt1.stackSize = 1; - Items.feather.setDamage(sMt1, Items.feather.getDamage(aMat)); - - sMt2.func_150996_a(new ItemStack(Blocks.dirt).getItem()); - sMt2.stackSize = 1; - Items.feather.setDamage(sMt2, 0); - - for (ItemStack[] tRecipe : sShapes1) { - int tAmount1 = 0; - for (ItemStack tMat : tRecipe) { - if (tMat == sMt1) tAmount1++; - } - if (aItemData != null && aItemData.hasValidPrefixMaterialData()) for (ItemStack tCrafted : GT_ModHandler.getRecipeOutputs(tRecipe)) { - GT_OreDictUnificator.addItemData(tCrafted, new ItemData(aItemData.mMaterial.mMaterial, aItemData.mMaterial.mAmount * tAmount1)); - } - } - - for (Materials tMaterial : sRodMaterialList) { - ItemStack tMt2 = GT_OreDictUnificator.get(OrePrefixes.stick, tMaterial, 1); - if (tMt2 != null) { - sMt2.func_150996_a(tMt2.getItem()); - sMt2.stackSize = 1; - Items.feather.setDamage(sMt2, Items.feather.getDamage(tMt2)); - - for (int i = 0; i < sShapes1.length; i++) { - ItemStack[] tRecipe = sShapes1[i]; - - int tAmount1 = 0, tAmount2 = 0; - for (ItemStack tMat : tRecipe) { - if (tMat == sMt1) tAmount1++; - if (tMat == sMt2) tAmount2++; - } - for (ItemStack tCrafted : GT_ModHandler.getVanillyToolRecipeOutputs(tRecipe)) { - if (aItemData != null && aItemData.hasValidPrefixMaterialData()) GT_OreDictUnificator.addItemData(tCrafted, new ItemData(aItemData.mMaterial.mMaterial, aItemData.mMaterial.mAmount * tAmount1, new MaterialStack(tMaterial, OrePrefixes.stick.mMaterialAmount * tAmount2))); - - if (aRecipeReplacing && aPlate != null && sShapesA[i] != null && sShapesA[i].length > 1) { - assert aItemData != null; - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.recipereplacements, aItemData.mMaterial.mMaterial+"."+sShapesA[i][0], true)) { - if (null != (tStack = GT_ModHandler.removeRecipe(tRecipe))) { - switch (sShapesA[i].length) { - case 2: GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.BUFFERED, new Object[] {sShapesA[i][1] , s_P.charAt(0), aPlate, s_R.charAt(0), OrePrefixes.stick.get(tMaterial), s_I.charAt(0), aItemData}); break; - case 3: GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.BUFFERED, new Object[] {sShapesA[i][1], sShapesA[i][2] , s_P.charAt(0), aPlate, s_R.charAt(0), OrePrefixes.stick.get(tMaterial), s_I.charAt(0), aItemData}); break; - default: GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.BUFFERED, new Object[] {sShapesA[i][1], sShapesA[i][2], sShapesA[i][3] , s_P.charAt(0), aPlate, s_R.charAt(0), OrePrefixes.stick.get(tMaterial), s_I.charAt(0), aItemData}); break; - } - } - } - } - } - } - } - } - } - - private static final ItemStack sMt1 = new ItemStack(Blocks.dirt, 1, 0), sMt2 = new ItemStack(Blocks.dirt, 1, 0); - private static final String s_H = "h", s_F = "f", s_I = "I", s_P = "P", s_R = "R"; - - private static final ItemStack[][] - sShapes1 = new ItemStack[][] { - {sMt1, null, sMt1, sMt1, sMt1, sMt1, null, sMt1, null}, - {sMt1, null, sMt1, sMt1, null, sMt1, sMt1, sMt1, sMt1}, - {null, sMt1, null, sMt1, sMt1, sMt1, sMt1, null, sMt1}, - {sMt1, sMt1, sMt1, sMt1, null, sMt1, null, null, null}, - {sMt1, null, sMt1, sMt1, sMt1, sMt1, sMt1, sMt1, sMt1}, - {sMt1, sMt1, sMt1, sMt1, null, sMt1, sMt1, null, sMt1}, - {null, null, null, sMt1, null, sMt1, sMt1, null, sMt1}, - {null, sMt1, null, null, sMt1, null, null, sMt2, null}, - {sMt1, sMt1, sMt1, null, sMt2, null, null, sMt2, null}, - {null, sMt1, null, null, sMt2, null, null, sMt2, null}, - {sMt1, sMt1, null, sMt1, sMt2, null, null, sMt2, null}, - {null, sMt1, sMt1, null, sMt2, sMt1, null, sMt2, null}, - {sMt1, sMt1, null, null, sMt2, null, null, sMt2, null}, - {null, sMt1, sMt1, null, sMt2, null, null, sMt2, null}, - {null, sMt1, null, sMt1, null, null, null, sMt1, sMt2}, - {null, sMt1, null, null, null, sMt1, sMt2, sMt1, null}, - {null, sMt1, null, sMt1, null, sMt1, null, null, sMt2}, - {null, sMt1, null, sMt1, null, sMt1, sMt2, null, null}, - {null, sMt2, null, null, sMt1, null, null, sMt1, null}, - {null, sMt2, null, null, sMt2, null, sMt1, sMt1, sMt1}, - {null, sMt2, null, null, sMt2, null, null, sMt1, null}, - {null, sMt2, null, sMt1, sMt2, null, sMt1, sMt1, null}, - {null, sMt2, null, null, sMt2, sMt1, null, sMt1, sMt1}, - {null, sMt2, null, null, sMt2, null, sMt1, sMt1, null}, - {sMt1, null, null, null, sMt2, null, null, null, sMt2}, - {null, null, sMt1, null, sMt2, null, sMt2, null, null}, - {sMt1, null, null, null, sMt2, null, null, null, null}, - {null, null, sMt1, null, sMt2, null, null, null, null}, - {sMt1, sMt2, null, null, null, null, null, null, null}, - {sMt2, sMt1, null, null, null, null, null, null, null}, - {sMt1, null, null, sMt2, null, null, null, null, null}, - {sMt2, null, null, sMt1, null, null, null, null, null}, - {sMt1, sMt1, sMt1, sMt1, sMt1, sMt1, null, sMt2, null}, - {sMt1, sMt1, null, sMt1, sMt1, sMt2, sMt1, sMt1, null}, - {null, sMt1, sMt1, sMt2, sMt1, sMt1, null, sMt1, sMt1}, - {null, sMt2, null, sMt1, sMt1, sMt1, sMt1, sMt1, sMt1}, - {sMt1, sMt1, sMt1, sMt1, sMt2, sMt1, null, sMt2, null}, - {sMt1, sMt1, null, sMt1, sMt2, sMt2, sMt1, sMt1, null}, - {null, sMt1, sMt1, sMt2, sMt2, sMt1, null, sMt1, sMt1}, - {null, sMt2, null, sMt1, sMt2, sMt1, sMt1, sMt1, sMt1}, - {sMt1, null, null, null, sMt1, null, null, null, null}, - {null, sMt1, null, sMt1, null, null, null, null, null}, - {sMt1, sMt1, null, sMt2, null, sMt1, sMt2, null, null}, - {null, sMt1, sMt1, sMt1, null, sMt2, null, null, sMt2} - }; - - private static final String[][] sShapesA = new String[][] { - null, - null, - null, - {"Helmet" , s_P+s_P+s_P, s_P+s_H+s_P}, - {"ChestPlate" , s_P+s_H+s_P, s_P+s_P+s_P, s_P+s_P+s_P}, - {"Pants" , s_P+s_P+s_P, s_P+s_H+s_P, s_P+" "+s_P}, - {"Boots" , s_P+" "+s_P, s_P+s_H+s_P}, - {"Sword" , " "+s_P+" ", s_F+s_P+s_H, " "+s_R+" "}, - {"Pickaxe" , s_P+s_I+s_I, s_F+s_R+s_H, " "+s_R+" "}, - {"Shovel" , s_F+s_P+s_H, " "+s_R+" ", " "+s_R+" "}, - {"Axe" , s_P+s_I+s_H, s_P+s_R+" ", s_F+s_R+" "}, - {"Axe" , s_P+s_I+s_H, s_P+s_R+" ", s_F+s_R+" "}, - {"Hoe" , s_P+s_I+s_H, s_F+s_R+" ", " "+s_R+" "}, - {"Hoe" , s_P+s_I+s_H, s_F+s_R+" ", " "+s_R+" "}, - {"Sickle" , " "+s_P+" ", s_P+s_F+" ", s_H+s_P+s_R}, - {"Sickle" , " "+s_P+" ", s_P+s_F+" ", s_H+s_P+s_R}, - {"Sickle" , " "+s_P+" ", s_P+s_F+" ", s_H+s_P+s_R}, - {"Sickle" , " "+s_P+" ", s_P+s_F+" ", s_H+s_P+s_R}, - {"Sword" , " "+s_R+" ", s_F+s_P+s_H, " "+s_P+" "}, - {"Pickaxe" , " "+s_R+" ", s_F+s_R+s_H, s_P+s_I+s_I}, - {"Shovel" , " "+s_R+" ", " "+s_R+" ", s_F+s_P+s_H}, - {"Axe" , s_F+s_R+" ", s_P+s_R+" ", s_P+s_I+s_H}, - {"Axe" , s_F+s_R+" ", s_P+s_R+" ", s_P+s_I+s_H}, - {"Hoe" , " "+s_R+" ", s_F+s_R+" ", s_P+s_I+s_H}, - {"Hoe" , " "+s_R+" ", s_F+s_R+" ", s_P+s_I+s_H}, - {"Spear" , s_P+s_H+" ", s_F+s_R+" ", " "+" "+s_R}, - {"Spear" , s_P+s_H+" ", s_F+s_R+" ", " "+" "+s_R}, - {"Knive" , s_H+s_P, s_R+s_F}, - {"Knive" , s_F+s_H, s_P+s_R}, - {"Knive" , s_F+s_H, s_P+s_R}, - {"Knive" , s_P+s_F, s_R+s_H}, - {"Knive" , s_P+s_F, s_R+s_H}, - null, - null, - null, - null, - {"WarAxe" , s_P+s_P+s_P, s_P+s_R+s_P, s_F+s_R+s_H}, - null, - null, - null, - {"Shears" , s_H+s_P, s_P+s_F}, - {"Shears" , s_H+s_P, s_P+s_F}, - {"Scythe" , s_I+s_P+s_H, s_R+s_F+s_P, s_R+" "+" "}, - {"Scythe" , s_H+s_P+s_I, s_P+s_F+s_R, " "+" "+s_R} - }; + /** + * List of Materials, which are used in the Creation of Sticks. All Rod Materials are automatically added to this List. + */ + public static final List sRodMaterialList = new ArrayList(); + private static final ItemStack sMt1 = new ItemStack(Blocks.dirt, 1, 0), sMt2 = new ItemStack(Blocks.dirt, 1, 0); + private static final String s_H = "h", s_F = "f", s_I = "I", s_P = "P", s_R = "R"; + private static final ItemStack[][] + sShapes1 = new ItemStack[][]{ + {sMt1, null, sMt1, sMt1, sMt1, sMt1, null, sMt1, null}, + {sMt1, null, sMt1, sMt1, null, sMt1, sMt1, sMt1, sMt1}, + {null, sMt1, null, sMt1, sMt1, sMt1, sMt1, null, sMt1}, + {sMt1, sMt1, sMt1, sMt1, null, sMt1, null, null, null}, + {sMt1, null, sMt1, sMt1, sMt1, sMt1, sMt1, sMt1, sMt1}, + {sMt1, sMt1, sMt1, sMt1, null, sMt1, sMt1, null, sMt1}, + {null, null, null, sMt1, null, sMt1, sMt1, null, sMt1}, + {null, sMt1, null, null, sMt1, null, null, sMt2, null}, + {sMt1, sMt1, sMt1, null, sMt2, null, null, sMt2, null}, + {null, sMt1, null, null, sMt2, null, null, sMt2, null}, + {sMt1, sMt1, null, sMt1, sMt2, null, null, sMt2, null}, + {null, sMt1, sMt1, null, sMt2, sMt1, null, sMt2, null}, + {sMt1, sMt1, null, null, sMt2, null, null, sMt2, null}, + {null, sMt1, sMt1, null, sMt2, null, null, sMt2, null}, + {null, sMt1, null, sMt1, null, null, null, sMt1, sMt2}, + {null, sMt1, null, null, null, sMt1, sMt2, sMt1, null}, + {null, sMt1, null, sMt1, null, sMt1, null, null, sMt2}, + {null, sMt1, null, sMt1, null, sMt1, sMt2, null, null}, + {null, sMt2, null, null, sMt1, null, null, sMt1, null}, + {null, sMt2, null, null, sMt2, null, sMt1, sMt1, sMt1}, + {null, sMt2, null, null, sMt2, null, null, sMt1, null}, + {null, sMt2, null, sMt1, sMt2, null, sMt1, sMt1, null}, + {null, sMt2, null, null, sMt2, sMt1, null, sMt1, sMt1}, + {null, sMt2, null, null, sMt2, null, sMt1, sMt1, null}, + {sMt1, null, null, null, sMt2, null, null, null, sMt2}, + {null, null, sMt1, null, sMt2, null, sMt2, null, null}, + {sMt1, null, null, null, sMt2, null, null, null, null}, + {null, null, sMt1, null, sMt2, null, null, null, null}, + {sMt1, sMt2, null, null, null, null, null, null, null}, + {sMt2, sMt1, null, null, null, null, null, null, null}, + {sMt1, null, null, sMt2, null, null, null, null, null}, + {sMt2, null, null, sMt1, null, null, null, null, null}, + {sMt1, sMt1, sMt1, sMt1, sMt1, sMt1, null, sMt2, null}, + {sMt1, sMt1, null, sMt1, sMt1, sMt2, sMt1, sMt1, null}, + {null, sMt1, sMt1, sMt2, sMt1, sMt1, null, sMt1, sMt1}, + {null, sMt2, null, sMt1, sMt1, sMt1, sMt1, sMt1, sMt1}, + {sMt1, sMt1, sMt1, sMt1, sMt2, sMt1, null, sMt2, null}, + {sMt1, sMt1, null, sMt1, sMt2, sMt2, sMt1, sMt1, null}, + {null, sMt1, sMt1, sMt2, sMt2, sMt1, null, sMt1, sMt1}, + {null, sMt2, null, sMt1, sMt2, sMt1, sMt1, sMt1, sMt1}, + {sMt1, null, null, null, sMt1, null, null, null, null}, + {null, sMt1, null, sMt1, null, null, null, null, null}, + {sMt1, sMt1, null, sMt2, null, sMt1, sMt2, null, null}, + {null, sMt1, sMt1, sMt1, null, sMt2, null, null, sMt2} + }; + private static final String[][] sShapesA = new String[][]{ + null, + null, + null, + {"Helmet", s_P + s_P + s_P, s_P + s_H + s_P}, + {"ChestPlate", s_P + s_H + s_P, s_P + s_P + s_P, s_P + s_P + s_P}, + {"Pants", s_P + s_P + s_P, s_P + s_H + s_P, s_P + " " + s_P}, + {"Boots", s_P + " " + s_P, s_P + s_H + s_P}, + {"Sword", " " + s_P + " ", s_F + s_P + s_H, " " + s_R + " "}, + {"Pickaxe", s_P + s_I + s_I, s_F + s_R + s_H, " " + s_R + " "}, + {"Shovel", s_F + s_P + s_H, " " + s_R + " ", " " + s_R + " "}, + {"Axe", s_P + s_I + s_H, s_P + s_R + " ", s_F + s_R + " "}, + {"Axe", s_P + s_I + s_H, s_P + s_R + " ", s_F + s_R + " "}, + {"Hoe", s_P + s_I + s_H, s_F + s_R + " ", " " + s_R + " "}, + {"Hoe", s_P + s_I + s_H, s_F + s_R + " ", " " + s_R + " "}, + {"Sickle", " " + s_P + " ", s_P + s_F + " ", s_H + s_P + s_R}, + {"Sickle", " " + s_P + " ", s_P + s_F + " ", s_H + s_P + s_R}, + {"Sickle", " " + s_P + " ", s_P + s_F + " ", s_H + s_P + s_R}, + {"Sickle", " " + s_P + " ", s_P + s_F + " ", s_H + s_P + s_R}, + {"Sword", " " + s_R + " ", s_F + s_P + s_H, " " + s_P + " "}, + {"Pickaxe", " " + s_R + " ", s_F + s_R + s_H, s_P + s_I + s_I}, + {"Shovel", " " + s_R + " ", " " + s_R + " ", s_F + s_P + s_H}, + {"Axe", s_F + s_R + " ", s_P + s_R + " ", s_P + s_I + s_H}, + {"Axe", s_F + s_R + " ", s_P + s_R + " ", s_P + s_I + s_H}, + {"Hoe", " " + s_R + " ", s_F + s_R + " ", s_P + s_I + s_H}, + {"Hoe", " " + s_R + " ", s_F + s_R + " ", s_P + s_I + s_H}, + {"Spear", s_P + s_H + " ", s_F + s_R + " ", " " + " " + s_R}, + {"Spear", s_P + s_H + " ", s_F + s_R + " ", " " + " " + s_R}, + {"Knive", s_H + s_P, s_R + s_F}, + {"Knive", s_F + s_H, s_P + s_R}, + {"Knive", s_F + s_H, s_P + s_R}, + {"Knive", s_P + s_F, s_R + s_H}, + {"Knive", s_P + s_F, s_R + s_H}, + null, + null, + null, + null, + {"WarAxe", s_P + s_P + s_P, s_P + s_R + s_P, s_F + s_R + s_H}, + null, + null, + null, + {"Shears", s_H + s_P, s_P + s_F}, + {"Shears", s_H + s_P, s_P + s_F}, + {"Scythe", s_I + s_P + s_H, s_R + s_F + s_P, s_R + " " + " "}, + {"Scythe", s_H + s_P + s_I, s_P + s_F + s_R, " " + " " + s_R} + }; + public static volatile int VERSION = 508; + + public static void registerMaterialRecycling(ItemStack aStack, Materials aMaterial, long aMaterialAmount, MaterialStack aByproduct) { + if (GT_Utility.isStackInvalid(aStack)) return; + if (aByproduct != null) { + aByproduct = aByproduct.clone(); + aByproduct.mAmount /= aStack.stackSize; + } + GT_OreDictUnificator.addItemData(GT_Utility.copyAmount(1, aStack), new ItemData(aMaterial, aMaterialAmount / aStack.stackSize, aByproduct)); + } + + public static void registerMaterialRecycling(ItemStack aStack, ItemData aData) { + if (GT_Utility.isStackInvalid(aStack) || GT_Utility.areStacksEqual(new ItemStack(Items.blaze_rod), aStack) || aData == null || !aData.hasValidMaterialData() || aData.mMaterial.mAmount <= 0 || GT_Utility.getFluidForFilledItem(aStack, false) != null) + return; + registerReverseMacerating(GT_Utility.copyAmount(1, aStack), aData, aData.mPrefix == null); + registerReverseSmelting(GT_Utility.copyAmount(1, aStack), aData.mMaterial.mMaterial, aData.mMaterial.mAmount, true); + registerReverseFluidSmelting(GT_Utility.copyAmount(1, aStack), aData.mMaterial.mMaterial, aData.mMaterial.mAmount, aData.getByProduct(0)); + registerReverseArcSmelting(GT_Utility.copyAmount(1, aStack), aData); + } + + /** + * @param aStack the stack to be recycled. + * @param aMaterial the Material. + * @param aMaterialAmount the amount of it in Material Units. + */ + public static void registerReverseFluidSmelting(ItemStack aStack, Materials aMaterial, long aMaterialAmount, MaterialStack aByproduct) { + if (aStack == null || aMaterial == null || aMaterial.mSmeltInto.mStandardMoltenFluid == null || !aMaterial.contains(SubTag.SMELTING_TO_FLUID) || (L * aMaterialAmount) / (M * aStack.stackSize) <= 0) + return; + RA.addFluidSmelterRecipe(GT_Utility.copyAmount(1, aStack), aByproduct == null ? null : aByproduct.mMaterial.contains(SubTag.NO_SMELTING) || !aByproduct.mMaterial.contains(SubTag.METAL) ? aByproduct.mMaterial.contains(SubTag.FLAMMABLE) ? GT_OreDictUnificator.getDust(Materials.Ash, aByproduct.mAmount / 2) : aByproduct.mMaterial.contains(SubTag.UNBURNABLE) ? GT_OreDictUnificator.getDustOrIngot(aByproduct.mMaterial.mSmeltInto, aByproduct.mAmount) : null : GT_OreDictUnificator.getIngotOrDust(aByproduct.mMaterial.mSmeltInto, aByproduct.mAmount), aMaterial.mSmeltInto.getMolten((L * aMaterialAmount) / (M * aStack.stackSize)), 10000, (int) Math.max(1, (24 * aMaterialAmount) / M), Math.max(8, (int) Math.sqrt(2 * aMaterial.mSmeltInto.mStandardMoltenFluid.getTemperature()))); + } + + /** + * @param aStack the stack to be recycled. + * @param aMaterial the Material. + * @param aMaterialAmount the amount of it in Material Units. + * @param aAllowAlloySmelter if it is allowed to be recycled inside the Alloy Smelter. + */ + public static void registerReverseSmelting(ItemStack aStack, Materials aMaterial, long aMaterialAmount, boolean aAllowAlloySmelter) { + if (aStack == null || aMaterial == null || aMaterialAmount <= 0 || aMaterial.contains(SubTag.NO_SMELTING) || (aMaterialAmount > M && aMaterial.contains(SubTag.METAL))) + return; + aMaterialAmount /= aStack.stackSize; + if (aAllowAlloySmelter) + GT_ModHandler.addSmeltingAndAlloySmeltingRecipe(GT_Utility.copyAmount(1, aStack), GT_OreDictUnificator.getIngot(aMaterial.mSmeltInto, aMaterialAmount)); + else + GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1, aStack), GT_OreDictUnificator.getIngot(aMaterial.mSmeltInto, aMaterialAmount)); + } + + public static void registerReverseArcSmelting(ItemStack aStack, Materials aMaterial, long aMaterialAmount, MaterialStack aByProduct01, MaterialStack aByProduct02, MaterialStack aByProduct03) { + registerReverseArcSmelting(aStack, new ItemData(aMaterial == null ? null : new MaterialStack(aMaterial, aMaterialAmount), aByProduct01, aByProduct02, aByProduct03)); + } + + public static void registerReverseArcSmelting(ItemStack aStack, ItemData aData) { + if (aStack == null || aData == null) return; + aData = new ItemData(aData); + + if (!aData.hasValidMaterialData()) return; + + for (MaterialStack tMaterial : aData.getAllMaterialStacks()) { + if (tMaterial.mMaterial.contains(SubTag.UNBURNABLE)) { + tMaterial.mMaterial = tMaterial.mMaterial.mSmeltInto.mArcSmeltInto; + continue; + } + if (tMaterial.mMaterial.contains(SubTag.EXPLOSIVE)) { + tMaterial.mMaterial = Materials.Ash; + tMaterial.mAmount /= 4; + continue; + } + if (tMaterial.mMaterial.contains(SubTag.FLAMMABLE)) { + tMaterial.mMaterial = Materials.Ash; + tMaterial.mAmount /= 2; + continue; + } + if (tMaterial.mMaterial.contains(SubTag.NO_SMELTING)) { + tMaterial.mAmount = 0; + continue; + } + if (tMaterial.mMaterial.contains(SubTag.METAL)) { + tMaterial.mMaterial = tMaterial.mMaterial.mSmeltInto.mArcSmeltInto; + continue; + } + tMaterial.mAmount = 0; + } + + aData = new ItemData(aData); + + if (aData.mByProducts.length > 3) for (MaterialStack tMaterial : aData.getAllMaterialStacks()) + if (tMaterial.mMaterial == Materials.Ash) tMaterial.mAmount = 0; + + aData = new ItemData(aData); + + if (!aData.hasValidMaterialData()) return; + + long tAmount = 0; + for (MaterialStack tMaterial : aData.getAllMaterialStacks()) + tAmount += tMaterial.mAmount * tMaterial.mMaterial.getMass(); + + RA.addArcFurnaceRecipe(aStack, new ItemStack[]{GT_OreDictUnificator.getIngotOrDust(aData.mMaterial), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(0)), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(1)), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(2))}, null, (int) Math.max(16, tAmount / M), 96); + } + + public static void registerReverseMacerating(ItemStack aStack, Materials aMaterial, long aMaterialAmount, MaterialStack aByProduct01, MaterialStack aByProduct02, MaterialStack aByProduct03, boolean aAllowHammer) { + registerReverseMacerating(aStack, new ItemData(aMaterial == null ? null : new MaterialStack(aMaterial, aMaterialAmount), aByProduct01, aByProduct02, aByProduct03), aAllowHammer); + } + + public static void registerReverseMacerating(ItemStack aStack, ItemData aData, boolean aAllowHammer) { + if (aStack == null || aData == null) return; + aData = new ItemData(aData); + + if (!aData.hasValidMaterialData()) return; + + for (MaterialStack tMaterial : aData.getAllMaterialStacks()) + tMaterial.mMaterial = tMaterial.mMaterial.mMacerateInto; + + aData = new ItemData(aData); + + if (!aData.hasValidMaterialData()) return; + + long tAmount = 0; + for (MaterialStack tMaterial : aData.getAllMaterialStacks()) + tAmount += tMaterial.mAmount * tMaterial.mMaterial.getMass(); + + RA.addPulveriserRecipe(aStack, new ItemStack[]{GT_OreDictUnificator.getDust(aData.mMaterial), GT_OreDictUnificator.getDust(aData.getByProduct(0)), GT_OreDictUnificator.getDust(aData.getByProduct(1)), GT_OreDictUnificator.getDust(aData.getByProduct(2))}, null, (int) Math.max(16, tAmount / M), 4); + + if (aAllowHammer) for (MaterialStack tMaterial : aData.getAllMaterialStacks()) + if (tMaterial.mMaterial.contains(SubTag.CRYSTAL) && !tMaterial.mMaterial.contains(SubTag.METAL)) { + if (RA.addForgeHammerRecipe(GT_Utility.copyAmount(1, aStack), GT_OreDictUnificator.getGem(aData.mMaterial), 200, 32)) + break; + } + ItemStack tDust = GT_OreDictUnificator.getDust(aData.mMaterial); + if (tDust != null && GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1, aStack), tDust, GT_OreDictUnificator.getDust(aData.getByProduct(0)), 100, GT_OreDictUnificator.getDust(aData.getByProduct(1)), 100, true)) { + if (GregTech_API.sThaumcraftCompat != null) + GregTech_API.sThaumcraftCompat.addCrucibleRecipe(IThaumcraftCompat.ADVANCEDENTROPICPROCESSING, aStack, tDust, Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, Math.max(1, (aData.mMaterial.mAmount * 2) / M)))); + } + } + + /** + * You give this Function a Material and it will scan almost everything for adding recycling Recipes + * + * @param aMat a Material, for example an Ingot or a Gem. + * @param aOutput the Dust you usually get from macerating aMat + * @param aRecipeReplacing allows to replace the Recipe with a Plate variant + */ + public static synchronized void registerUsagesForMaterials(ItemStack aMat, String aPlate, boolean aRecipeReplacing) { + if (aMat == null) return; + aMat = GT_Utility.copy(aMat); + ItemStack tStack; + ItemData aItemData = GT_OreDictUnificator.getItemData(aMat); + if (aItemData == null || aItemData.mPrefix != OrePrefixes.ingot) aPlate = null; + if (aPlate != null && GT_OreDictUnificator.getFirstOre(aPlate, 1) == null) aPlate = null; + + sMt1.func_150996_a(aMat.getItem()); + sMt1.stackSize = 1; + Items.feather.setDamage(sMt1, Items.feather.getDamage(aMat)); + + sMt2.func_150996_a(new ItemStack(Blocks.dirt).getItem()); + sMt2.stackSize = 1; + Items.feather.setDamage(sMt2, 0); + + for (ItemStack[] tRecipe : sShapes1) { + int tAmount1 = 0; + for (ItemStack tMat : tRecipe) { + if (tMat == sMt1) tAmount1++; + } + if (aItemData != null && aItemData.hasValidPrefixMaterialData()) + for (ItemStack tCrafted : GT_ModHandler.getRecipeOutputs(tRecipe)) { + GT_OreDictUnificator.addItemData(tCrafted, new ItemData(aItemData.mMaterial.mMaterial, aItemData.mMaterial.mAmount * tAmount1)); + } + } + + for (Materials tMaterial : sRodMaterialList) { + ItemStack tMt2 = GT_OreDictUnificator.get(OrePrefixes.stick, tMaterial, 1); + if (tMt2 != null) { + sMt2.func_150996_a(tMt2.getItem()); + sMt2.stackSize = 1; + Items.feather.setDamage(sMt2, Items.feather.getDamage(tMt2)); + + for (int i = 0; i < sShapes1.length; i++) { + ItemStack[] tRecipe = sShapes1[i]; + + int tAmount1 = 0, tAmount2 = 0; + for (ItemStack tMat : tRecipe) { + if (tMat == sMt1) tAmount1++; + if (tMat == sMt2) tAmount2++; + } + for (ItemStack tCrafted : GT_ModHandler.getVanillyToolRecipeOutputs(tRecipe)) { + if (aItemData != null && aItemData.hasValidPrefixMaterialData()) + GT_OreDictUnificator.addItemData(tCrafted, new ItemData(aItemData.mMaterial.mMaterial, aItemData.mMaterial.mAmount * tAmount1, new MaterialStack(tMaterial, OrePrefixes.stick.mMaterialAmount * tAmount2))); + + if (aRecipeReplacing && aPlate != null && sShapesA[i] != null && sShapesA[i].length > 1) { + assert aItemData != null; + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.recipereplacements, aItemData.mMaterial.mMaterial + "." + sShapesA[i][0], true)) { + if (null != (tStack = GT_ModHandler.removeRecipe(tRecipe))) { + switch (sShapesA[i].length) { + case 2: + GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.BUFFERED, new Object[]{sShapesA[i][1], s_P.charAt(0), aPlate, s_R.charAt(0), OrePrefixes.stick.get(tMaterial), s_I.charAt(0), aItemData}); + break; + case 3: + GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.BUFFERED, new Object[]{sShapesA[i][1], sShapesA[i][2], s_P.charAt(0), aPlate, s_R.charAt(0), OrePrefixes.stick.get(tMaterial), s_I.charAt(0), aItemData}); + break; + default: + GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.BUFFERED, new Object[]{sShapesA[i][1], sShapesA[i][2], sShapesA[i][3], s_P.charAt(0), aPlate, s_R.charAt(0), OrePrefixes.stick.get(tMaterial), s_I.charAt(0), aItemData}); + break; + } + } + } + } + } + } + } + } + } } diff --git a/src/main/java/gregtech/api/util/GT_Shaped_Recipe.java b/src/main/java/gregtech/api/util/GT_Shaped_Recipe.java index dcf46598..fe78d6a8 100644 --- a/src/main/java/gregtech/api/util/GT_Shaped_Recipe.java +++ b/src/main/java/gregtech/api/util/GT_Shaped_Recipe.java @@ -11,85 +11,88 @@ import net.minecraft.world.World; import net.minecraftforge.oredict.ShapedOreRecipe; public class GT_Shaped_Recipe extends ShapedOreRecipe implements IGT_CraftingRecipe { - public final boolean mDismantleable, mRemovableByGT, mKeepingNBT; - private final Enchantment[] mEnchantmentsAdded; - private final int[] mEnchantmentLevelsAdded; - - public GT_Shaped_Recipe(ItemStack aResult, boolean aDismantleAble, boolean aRemovableByGT, boolean aKeepingNBT, Enchantment[] aEnchantmentsAdded, int[] aEnchantmentLevelsAdded, Object... aRecipe) { - super(aResult, aRecipe); - mEnchantmentsAdded = aEnchantmentsAdded; - mEnchantmentLevelsAdded = aEnchantmentLevelsAdded; - mRemovableByGT = aRemovableByGT; - mKeepingNBT = aKeepingNBT; - mDismantleable = aDismantleAble; - } - - @Override - public boolean matches(InventoryCrafting aGrid, World aWorld) { - if (mKeepingNBT) { - ItemStack tStack = null; - for (int i = 0; i < aGrid.getSizeInventory(); i++) { - if (aGrid.getStackInSlot(i) != null) { - if (tStack != null) { - if ((tStack.hasTagCompound() != aGrid.getStackInSlot(i).hasTagCompound()) || (tStack.hasTagCompound() && !tStack.getTagCompound().equals(aGrid.getStackInSlot(i).getTagCompound()))) return false; - } - tStack = aGrid.getStackInSlot(i); - } - } - } - return super.matches(aGrid, aWorld); - } - - @Override - public ItemStack getCraftingResult(InventoryCrafting aGrid) { - ItemStack rStack = super.getCraftingResult(aGrid); - if (rStack != null) { - // Update the Stack - GT_Utility.updateItemStack(rStack); - - // Keeping NBT - if (mKeepingNBT) for (int i = 0; i < aGrid.getSizeInventory(); i++) { - if (aGrid.getStackInSlot(i) != null && aGrid.getStackInSlot(i).hasTagCompound()) { - rStack.setTagCompound((NBTTagCompound)aGrid.getStackInSlot(i).getTagCompound().copy()); - break; - } - } - - // Charge Values - if (GT_ModHandler.isElectricItem(rStack)) { - GT_ModHandler.dischargeElectricItem(rStack, Integer.MAX_VALUE, Integer.MAX_VALUE, true, false, true); - int tCharge = 0; - for (int i = 0; i < aGrid.getSizeInventory(); i++) tCharge += GT_ModHandler.dischargeElectricItem(aGrid.getStackInSlot(i), Integer.MAX_VALUE, Integer.MAX_VALUE, true, true, true); - if (tCharge > 0) GT_ModHandler.chargeElectricItem(rStack, tCharge, Integer.MAX_VALUE, true, false); - } - - // Saving Ingredients inside the Item. - if (mDismantleable) { - NBTTagCompound rNBT = rStack.getTagCompound(), tNBT = new NBTTagCompound(); - if (rNBT == null) rNBT = new NBTTagCompound(); - for (int i = 0; i < 9; i++) { - ItemStack tStack = aGrid.getStackInSlot(i); - if (tStack != null && GT_Utility.getContainerItem(tStack, true) == null && !(tStack.getItem() instanceof GT_MetaGenerated_Tool)) { - tStack = GT_Utility.copyAmount(1, tStack); - GT_ModHandler.dischargeElectricItem(tStack, Integer.MAX_VALUE, Integer.MAX_VALUE, true, false, true); - tNBT.setTag("Ingredient."+i, tStack.writeToNBT(new NBTTagCompound())); - } - } - rNBT.setTag("GT.CraftingComponents", tNBT); - rStack.setTagCompound(rNBT); - } - - // Add Enchantments - for (int i = 0; i < mEnchantmentsAdded.length; i++) GT_Utility.ItemNBT.addEnchantment(rStack, mEnchantmentsAdded[i], EnchantmentHelper.getEnchantmentLevel(mEnchantmentsAdded[i].effectId, rStack) + mEnchantmentLevelsAdded[i]); - - // Update the Stack again - GT_Utility.updateItemStack(rStack); - } - return rStack; - } - - @Override - public boolean isRemovable() { - return mRemovableByGT; - } + public final boolean mDismantleable, mRemovableByGT, mKeepingNBT; + private final Enchantment[] mEnchantmentsAdded; + private final int[] mEnchantmentLevelsAdded; + + public GT_Shaped_Recipe(ItemStack aResult, boolean aDismantleAble, boolean aRemovableByGT, boolean aKeepingNBT, Enchantment[] aEnchantmentsAdded, int[] aEnchantmentLevelsAdded, Object... aRecipe) { + super(aResult, aRecipe); + mEnchantmentsAdded = aEnchantmentsAdded; + mEnchantmentLevelsAdded = aEnchantmentLevelsAdded; + mRemovableByGT = aRemovableByGT; + mKeepingNBT = aKeepingNBT; + mDismantleable = aDismantleAble; + } + + @Override + public boolean matches(InventoryCrafting aGrid, World aWorld) { + if (mKeepingNBT) { + ItemStack tStack = null; + for (int i = 0; i < aGrid.getSizeInventory(); i++) { + if (aGrid.getStackInSlot(i) != null) { + if (tStack != null) { + if ((tStack.hasTagCompound() != aGrid.getStackInSlot(i).hasTagCompound()) || (tStack.hasTagCompound() && !tStack.getTagCompound().equals(aGrid.getStackInSlot(i).getTagCompound()))) + return false; + } + tStack = aGrid.getStackInSlot(i); + } + } + } + return super.matches(aGrid, aWorld); + } + + @Override + public ItemStack getCraftingResult(InventoryCrafting aGrid) { + ItemStack rStack = super.getCraftingResult(aGrid); + if (rStack != null) { + // Update the Stack + GT_Utility.updateItemStack(rStack); + + // Keeping NBT + if (mKeepingNBT) for (int i = 0; i < aGrid.getSizeInventory(); i++) { + if (aGrid.getStackInSlot(i) != null && aGrid.getStackInSlot(i).hasTagCompound()) { + rStack.setTagCompound((NBTTagCompound) aGrid.getStackInSlot(i).getTagCompound().copy()); + break; + } + } + + // Charge Values + if (GT_ModHandler.isElectricItem(rStack)) { + GT_ModHandler.dischargeElectricItem(rStack, Integer.MAX_VALUE, Integer.MAX_VALUE, true, false, true); + int tCharge = 0; + for (int i = 0; i < aGrid.getSizeInventory(); i++) + tCharge += GT_ModHandler.dischargeElectricItem(aGrid.getStackInSlot(i), Integer.MAX_VALUE, Integer.MAX_VALUE, true, true, true); + if (tCharge > 0) GT_ModHandler.chargeElectricItem(rStack, tCharge, Integer.MAX_VALUE, true, false); + } + + // Saving Ingredients inside the Item. + if (mDismantleable) { + NBTTagCompound rNBT = rStack.getTagCompound(), tNBT = new NBTTagCompound(); + if (rNBT == null) rNBT = new NBTTagCompound(); + for (int i = 0; i < 9; i++) { + ItemStack tStack = aGrid.getStackInSlot(i); + if (tStack != null && GT_Utility.getContainerItem(tStack, true) == null && !(tStack.getItem() instanceof GT_MetaGenerated_Tool)) { + tStack = GT_Utility.copyAmount(1, tStack); + GT_ModHandler.dischargeElectricItem(tStack, Integer.MAX_VALUE, Integer.MAX_VALUE, true, false, true); + tNBT.setTag("Ingredient." + i, tStack.writeToNBT(new NBTTagCompound())); + } + } + rNBT.setTag("GT.CraftingComponents", tNBT); + rStack.setTagCompound(rNBT); + } + + // Add Enchantments + for (int i = 0; i < mEnchantmentsAdded.length; i++) + GT_Utility.ItemNBT.addEnchantment(rStack, mEnchantmentsAdded[i], EnchantmentHelper.getEnchantmentLevel(mEnchantmentsAdded[i].effectId, rStack) + mEnchantmentLevelsAdded[i]); + + // Update the Stack again + GT_Utility.updateItemStack(rStack); + } + return rStack; + } + + @Override + public boolean isRemovable() { + return mRemovableByGT; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/util/GT_Shapeless_Recipe.java b/src/main/java/gregtech/api/util/GT_Shapeless_Recipe.java index 1fcca080..937ba0a8 100644 --- a/src/main/java/gregtech/api/util/GT_Shapeless_Recipe.java +++ b/src/main/java/gregtech/api/util/GT_Shapeless_Recipe.java @@ -11,85 +11,88 @@ import net.minecraft.world.World; import net.minecraftforge.oredict.ShapelessOreRecipe; public class GT_Shapeless_Recipe extends ShapelessOreRecipe implements IGT_CraftingRecipe { - public final boolean mDismantleable, mRemovableByGT, mKeepingNBT; - private final Enchantment[] mEnchantmentsAdded; - private final int[] mEnchantmentLevelsAdded; - - public GT_Shapeless_Recipe(ItemStack aResult, boolean aDismantleAble, boolean aRemovableByGT, boolean aKeepingNBT, Enchantment[] aEnchantmentsAdded, int[] aEnchantmentLevelsAdded, Object... aRecipe) { - super(aResult, aRecipe); - mEnchantmentsAdded = aEnchantmentsAdded; - mEnchantmentLevelsAdded = aEnchantmentLevelsAdded; - mRemovableByGT = aRemovableByGT; - mKeepingNBT = aKeepingNBT; - mDismantleable = aDismantleAble; - } - - @Override - public boolean matches(InventoryCrafting aGrid, World aWorld) { - if (mKeepingNBT) { - ItemStack tStack = null; - for (int i = 0; i < aGrid.getSizeInventory(); i++) { - if (aGrid.getStackInSlot(i) != null) { - if (tStack != null) { - if ((tStack.hasTagCompound() != aGrid.getStackInSlot(i).hasTagCompound()) || (tStack.hasTagCompound() && !tStack.getTagCompound().equals(aGrid.getStackInSlot(i).getTagCompound()))) return false; - } - tStack = aGrid.getStackInSlot(i); - } - } - } - return super.matches(aGrid, aWorld); - } - - @Override - public ItemStack getCraftingResult(InventoryCrafting aGrid) { - ItemStack rStack = super.getCraftingResult(aGrid); - if (rStack != null) { - // Update the Stack - GT_Utility.updateItemStack(rStack); - - // Keeping NBT - if (mKeepingNBT) for (int i = 0; i < aGrid.getSizeInventory(); i++) { - if (aGrid.getStackInSlot(i) != null && aGrid.getStackInSlot(i).hasTagCompound()) { - rStack.setTagCompound((NBTTagCompound)aGrid.getStackInSlot(i).getTagCompound().copy()); - break; - } - } - - // Charge Values - if (GT_ModHandler.isElectricItem(rStack)) { - GT_ModHandler.dischargeElectricItem(rStack, Integer.MAX_VALUE, Integer.MAX_VALUE, true, false, true); - int tCharge = 0; - for (int i = 0; i < aGrid.getSizeInventory(); i++) tCharge += GT_ModHandler.dischargeElectricItem(aGrid.getStackInSlot(i), Integer.MAX_VALUE, Integer.MAX_VALUE, true, true, true); - if (tCharge > 0) GT_ModHandler.chargeElectricItem(rStack, tCharge, Integer.MAX_VALUE, true, false); - } - - // Saving Ingredients inside the Item. - if (mDismantleable) { - NBTTagCompound rNBT = rStack.getTagCompound(), tNBT = new NBTTagCompound(); - if (rNBT == null) rNBT = new NBTTagCompound(); - for (int i = 0; i < 9; i++) { - ItemStack tStack = aGrid.getStackInSlot(i); - if (tStack != null && GT_Utility.getContainerItem(tStack, true) == null && !(tStack.getItem() instanceof GT_MetaGenerated_Tool)) { - tStack = GT_Utility.copyAmount(1, tStack); - GT_ModHandler.dischargeElectricItem(tStack, Integer.MAX_VALUE, Integer.MAX_VALUE, true, false, true); - tNBT.setTag("Ingredient."+i, tStack.writeToNBT(new NBTTagCompound())); - } - } - rNBT.setTag("GT.CraftingComponents", tNBT); - rStack.setTagCompound(rNBT); - } - - // Add Enchantments - for (int i = 0; i < mEnchantmentsAdded.length; i++) GT_Utility.ItemNBT.addEnchantment(rStack, mEnchantmentsAdded[i], EnchantmentHelper.getEnchantmentLevel(mEnchantmentsAdded[i].effectId, rStack) + mEnchantmentLevelsAdded[i]); - - // Update the Stack again - GT_Utility.updateItemStack(rStack); - } - return rStack; - } - - @Override - public boolean isRemovable() { - return mRemovableByGT; - } + public final boolean mDismantleable, mRemovableByGT, mKeepingNBT; + private final Enchantment[] mEnchantmentsAdded; + private final int[] mEnchantmentLevelsAdded; + + public GT_Shapeless_Recipe(ItemStack aResult, boolean aDismantleAble, boolean aRemovableByGT, boolean aKeepingNBT, Enchantment[] aEnchantmentsAdded, int[] aEnchantmentLevelsAdded, Object... aRecipe) { + super(aResult, aRecipe); + mEnchantmentsAdded = aEnchantmentsAdded; + mEnchantmentLevelsAdded = aEnchantmentLevelsAdded; + mRemovableByGT = aRemovableByGT; + mKeepingNBT = aKeepingNBT; + mDismantleable = aDismantleAble; + } + + @Override + public boolean matches(InventoryCrafting aGrid, World aWorld) { + if (mKeepingNBT) { + ItemStack tStack = null; + for (int i = 0; i < aGrid.getSizeInventory(); i++) { + if (aGrid.getStackInSlot(i) != null) { + if (tStack != null) { + if ((tStack.hasTagCompound() != aGrid.getStackInSlot(i).hasTagCompound()) || (tStack.hasTagCompound() && !tStack.getTagCompound().equals(aGrid.getStackInSlot(i).getTagCompound()))) + return false; + } + tStack = aGrid.getStackInSlot(i); + } + } + } + return super.matches(aGrid, aWorld); + } + + @Override + public ItemStack getCraftingResult(InventoryCrafting aGrid) { + ItemStack rStack = super.getCraftingResult(aGrid); + if (rStack != null) { + // Update the Stack + GT_Utility.updateItemStack(rStack); + + // Keeping NBT + if (mKeepingNBT) for (int i = 0; i < aGrid.getSizeInventory(); i++) { + if (aGrid.getStackInSlot(i) != null && aGrid.getStackInSlot(i).hasTagCompound()) { + rStack.setTagCompound((NBTTagCompound) aGrid.getStackInSlot(i).getTagCompound().copy()); + break; + } + } + + // Charge Values + if (GT_ModHandler.isElectricItem(rStack)) { + GT_ModHandler.dischargeElectricItem(rStack, Integer.MAX_VALUE, Integer.MAX_VALUE, true, false, true); + int tCharge = 0; + for (int i = 0; i < aGrid.getSizeInventory(); i++) + tCharge += GT_ModHandler.dischargeElectricItem(aGrid.getStackInSlot(i), Integer.MAX_VALUE, Integer.MAX_VALUE, true, true, true); + if (tCharge > 0) GT_ModHandler.chargeElectricItem(rStack, tCharge, Integer.MAX_VALUE, true, false); + } + + // Saving Ingredients inside the Item. + if (mDismantleable) { + NBTTagCompound rNBT = rStack.getTagCompound(), tNBT = new NBTTagCompound(); + if (rNBT == null) rNBT = new NBTTagCompound(); + for (int i = 0; i < 9; i++) { + ItemStack tStack = aGrid.getStackInSlot(i); + if (tStack != null && GT_Utility.getContainerItem(tStack, true) == null && !(tStack.getItem() instanceof GT_MetaGenerated_Tool)) { + tStack = GT_Utility.copyAmount(1, tStack); + GT_ModHandler.dischargeElectricItem(tStack, Integer.MAX_VALUE, Integer.MAX_VALUE, true, false, true); + tNBT.setTag("Ingredient." + i, tStack.writeToNBT(new NBTTagCompound())); + } + } + rNBT.setTag("GT.CraftingComponents", tNBT); + rStack.setTagCompound(rNBT); + } + + // Add Enchantments + for (int i = 0; i < mEnchantmentsAdded.length; i++) + GT_Utility.ItemNBT.addEnchantment(rStack, mEnchantmentsAdded[i], EnchantmentHelper.getEnchantmentLevel(mEnchantmentsAdded[i].effectId, rStack) + mEnchantmentLevelsAdded[i]); + + // Update the Stack again + GT_Utility.updateItemStack(rStack); + } + return rStack; + } + + @Override + public boolean isRemovable() { + return mRemovableByGT; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/util/GT_SpawnEventHandler.java b/src/main/java/gregtech/api/util/GT_SpawnEventHandler.java index d4d4c65d..9063b1f7 100644 --- a/src/main/java/gregtech/api/util/GT_SpawnEventHandler.java +++ b/src/main/java/gregtech/api/util/GT_SpawnEventHandler.java @@ -1,46 +1,45 @@ package gregtech.api.util; -import gregtech.api.metatileentity.BaseMetaTileEntity; -import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_MonsterRepellent; - -import java.util.ArrayList; -import java.util.List; - import cpw.mods.fml.common.eventhandler.Event; import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import gregtech.api.metatileentity.BaseMetaTileEntity; +import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_MonsterRepellent; import net.minecraft.entity.EnumCreatureType; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.living.LivingSpawnEvent.CheckSpawn; +import java.util.ArrayList; +import java.util.List; + public class GT_SpawnEventHandler { - public static volatile List mobReps = new ArrayList(); - - public GT_SpawnEventHandler(){ - MinecraftForge.EVENT_BUS.register(this); - } - - @SubscribeEvent - public void denyMobSpawn(CheckSpawn event) - { - if (event.getResult() == Event.Result.ALLOW) {return;} - if (event.entityLiving.isCreatureType(EnumCreatureType.monster, false)) - { - for(int[] rep : mobReps){ - if(rep[3] == event.entity.worldObj.provider.dimensionId){ - TileEntity tTile = event.entity.worldObj.getTileEntity(rep[0], rep[1], rep[2]); - if(tTile instanceof BaseMetaTileEntity && ((BaseMetaTileEntity)tTile).getMetaTileEntity() instanceof GT_MetaTileEntity_MonsterRepellent){ - int r = ((GT_MetaTileEntity_MonsterRepellent)((BaseMetaTileEntity)tTile).getMetaTileEntity()).mRange; - double dx = rep[0] + 0.5F - event.entity.posX; - double dy = rep[1] + 0.5F - event.entity.posY; - double dz = rep[2] + 0.5F - event.entity.posZ; - if ((dx * dx + dz * dz + dy * dy) <= Math.pow(r, 2)) { - event.setResult(Event.Result.DENY); - } - } - } - } - } - } + public static volatile List mobReps = new ArrayList(); + + public GT_SpawnEventHandler() { + MinecraftForge.EVENT_BUS.register(this); + } + + @SubscribeEvent + public void denyMobSpawn(CheckSpawn event) { + if (event.getResult() == Event.Result.ALLOW) { + return; + } + if (event.entityLiving.isCreatureType(EnumCreatureType.monster, false)) { + for (int[] rep : mobReps) { + if (rep[3] == event.entity.worldObj.provider.dimensionId) { + TileEntity tTile = event.entity.worldObj.getTileEntity(rep[0], rep[1], rep[2]); + if (tTile instanceof BaseMetaTileEntity && ((BaseMetaTileEntity) tTile).getMetaTileEntity() instanceof GT_MetaTileEntity_MonsterRepellent) { + int r = ((GT_MetaTileEntity_MonsterRepellent) ((BaseMetaTileEntity) tTile).getMetaTileEntity()).mRange; + double dx = rep[0] + 0.5F - event.entity.posX; + double dy = rep[1] + 0.5F - event.entity.posY; + double dz = rep[2] + 0.5F - event.entity.posZ; + if ((dx * dx + dz * dz + dy * dy) <= Math.pow(r, 2)) { + event.setResult(Event.Result.DENY); + } + } + } + } + } + } } diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java index 9ee95b36..06615a68 100644 --- a/src/main/java/gregtech/api/util/GT_Utility.java +++ b/src/main/java/gregtech/api/util/GT_Utility.java @@ -1,6 +1,7 @@ package gregtech.api.util; -import static gregtech.api.enums.GT_Values.*; +import cofh.api.transport.IItemDuct; +import cpw.mods.fml.common.FMLCommonHandler; import gregtech.api.GregTech_API; import gregtech.api.damagesources.GT_DamageSources; import gregtech.api.enchants.Enchantment_Radioactivity; @@ -20,16 +21,6 @@ import ic2.api.recipe.IRecipeInput; import ic2.api.recipe.RecipeInputItemStack; import ic2.api.recipe.RecipeInputOreDict; import ic2.api.recipe.RecipeOutput; - -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.text.DecimalFormat; -import java.text.DecimalFormatSymbols; -import java.text.NumberFormat; -import java.util.*; -import java.util.Map.Entry; - import net.minecraft.block.Block; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; @@ -43,8 +34,11 @@ import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.*; +import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTBase.NBTPrimitive; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.nbt.NBTTagString; import net.minecraft.network.play.server.S07PacketRespawn; import net.minecraft.network.play.server.S1DPacketEntityEffect; import net.minecraft.potion.Potion; @@ -62,323 +56,178 @@ import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.*; import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData; -import cpw.mods.fml.common.FMLCommonHandler; -import cofh.api.transport.*; + +import java.lang.reflect.Constructor; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.text.DecimalFormat; +import java.text.DecimalFormatSymbols; +import java.text.NumberFormat; +import java.util.*; +import java.util.Map.Entry; + +import static gregtech.api.enums.GT_Values.*; /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * + *

* Just a few Utility Functions I use. */ public class GT_Utility { - public static volatile int VERSION = 508; - - public static class ItemNBT { - public static void setNBT(ItemStack aStack, NBTTagCompound aNBT) { - if (aNBT == null) {aStack.setTagCompound(null); return;} - ArrayList tTagsToRemove = new ArrayList(); - for (Object tKey : aNBT.func_150296_c()) { - NBTBase tValue = aNBT.getTag((String)tKey); - if (tValue == null || (tValue instanceof NBTPrimitive && ((NBTPrimitive)tValue).func_150291_c() == 0) || (tValue instanceof NBTTagString && isStringInvalid(((NBTTagString)tValue).func_150285_a_()))) tTagsToRemove.add((String)tKey); - } - for (Object tKey : tTagsToRemove) aNBT.removeTag((String)tKey); - aStack.setTagCompound(aNBT.hasNoTags()?null:aNBT); - } - - public static NBTTagCompound getNBT(ItemStack aStack) { - NBTTagCompound rNBT = aStack.getTagCompound(); - return rNBT==null?new NBTTagCompound():rNBT; - } - - public static void setPunchCardData(ItemStack aStack, String aPunchCardData) { - NBTTagCompound tNBT = getNBT(aStack); - tNBT.setString("GT.PunchCardData", aPunchCardData); - setNBT(aStack, tNBT); - } - public static String getPunchCardData(ItemStack aStack) { - NBTTagCompound tNBT = getNBT(aStack); - return tNBT.getString("GT.PunchCardData"); - } - - public static void setLighterFuel(ItemStack aStack, long aFuel) { - NBTTagCompound tNBT = getNBT(aStack); - tNBT.setLong("GT.LighterFuel", aFuel); - setNBT(aStack, tNBT); - } - public static long getLighterFuel(ItemStack aStack) { - NBTTagCompound tNBT = getNBT(aStack); - return tNBT.getLong("GT.LighterFuel"); - } - - public static void setMapID(ItemStack aStack, short aMapID) { - NBTTagCompound tNBT = getNBT(aStack); - tNBT.setShort("map_id", aMapID); - setNBT(aStack, tNBT); - } - public static short getMapID(ItemStack aStack) { - NBTTagCompound tNBT = getNBT(aStack); - if (!tNBT.hasKey("map_id")) return -1; - return tNBT.getShort("map_id"); - } - - public static void setBookTitle(ItemStack aStack, String aTitle) { - NBTTagCompound tNBT = getNBT(aStack); - tNBT.setString("title", aTitle); - setNBT(aStack, tNBT); - } - public static String getBookTitle(ItemStack aStack) { - NBTTagCompound tNBT = getNBT(aStack); - return tNBT.getString("title"); - } - - public static void setBookAuthor(ItemStack aStack, String aAuthor) { - NBTTagCompound tNBT = getNBT(aStack); - tNBT.setString("author", aAuthor); - setNBT(aStack, tNBT); - } - public static String getBookAuthor(ItemStack aStack) { - NBTTagCompound tNBT = getNBT(aStack); - return tNBT.getString("author"); - } - - public static void addEnchantment(ItemStack aStack, Enchantment aEnchantment, int aLevel) { - NBTTagCompound tNBT = getNBT(aStack), tEnchantmentTag; - if (!tNBT.hasKey("ench", 9)) tNBT.setTag("ench", new NBTTagList()); - NBTTagList tList = tNBT.getTagList("ench", 10); - - boolean temp = true; - - for (int i = 0; i < tList.tagCount(); i++) { - tEnchantmentTag = tList.getCompoundTagAt(i); - if (tEnchantmentTag.getShort("id") == aEnchantment.effectId) { - tEnchantmentTag.setShort("id", (short)aEnchantment.effectId); - tEnchantmentTag.setShort("lvl", (byte)aLevel); - temp = false; - break; - } - } - - if (temp) { - tEnchantmentTag = new NBTTagCompound(); - tEnchantmentTag.setShort("id", (short)aEnchantment.effectId); - tEnchantmentTag.setShort("lvl", (byte)aLevel); - tList.appendTag(tEnchantmentTag); - } - aStack.setTagCompound(tNBT); - } - } - - /** - * THIS IS BULLSHIT!!! WHY DO I HAVE TO DO THIS SHIT JUST TO HAVE ENCHANTS PROPERLY!?! - */ - public static class GT_EnchantmentHelper { - private static final BullshitIteratorA mBullshitIteratorA = new BullshitIteratorA(); - private static final BullshitIteratorB mBullshitIteratorB = new BullshitIteratorB(); - - private static void applyBullshit(IBullshit aBullshitModifier, ItemStack aStack) { - if (aStack != null) { - NBTTagList nbttaglist = aStack.getEnchantmentTagList(); - if (nbttaglist != null) { - for (int i = 0; i < nbttaglist.tagCount(); ++i) { - try { - short short1 = nbttaglist.getCompoundTagAt(i).getShort("id"); - short short2 = nbttaglist.getCompoundTagAt(i).getShort("lvl"); - if (Enchantment.enchantmentsList[short1] != null) aBullshitModifier.calculateModifier(Enchantment.enchantmentsList[short1], short2); - } catch(Throwable e) { - // - } - } - } - } - } - - private static void applyArrayOfBullshit(IBullshit aBullshitModifier, ItemStack[] aStacks) { - ItemStack[] aitemstack1 = aStacks; - int i = aStacks.length; - for (int j = 0; j < i; ++j) { - ItemStack itemstack = aitemstack1[j]; - applyBullshit(aBullshitModifier, itemstack); - } - } - - public static void applyBullshitA(EntityLivingBase aPlayer, Entity aEntity, ItemStack aStack) { - mBullshitIteratorA.mPlayer = aPlayer; - mBullshitIteratorA.mEntity = aEntity; - if (aPlayer != null) applyArrayOfBullshit(mBullshitIteratorA, aPlayer.getLastActiveItems()); - if (aStack != null) applyBullshit(mBullshitIteratorA, aStack); - } - - public static void applyBullshitB(EntityLivingBase aPlayer, Entity aEntity, ItemStack aStack) { - mBullshitIteratorB.mPlayer = aPlayer; - mBullshitIteratorB.mEntity = aEntity; - if (aPlayer != null) applyArrayOfBullshit(mBullshitIteratorB, aPlayer.getLastActiveItems()); - if (aStack != null) applyBullshit(mBullshitIteratorB, aStack); - } - - static final class BullshitIteratorA implements IBullshit { - public EntityLivingBase mPlayer; - public Entity mEntity; - BullshitIteratorA() {} - - @Override - public void calculateModifier(Enchantment aEnchantment, int aLevel) { - aEnchantment.func_151367_b(mPlayer, mEntity, aLevel); - } - } - - static final class BullshitIteratorB implements IBullshit { - public EntityLivingBase mPlayer; - public Entity mEntity; - BullshitIteratorB() {} - - @Override - public void calculateModifier(Enchantment aEnchantment, int aLevel) { - aEnchantment.func_151368_a(mPlayer, mEntity, aLevel); - } - } - - interface IBullshit { - void calculateModifier(Enchantment aEnchantment, int aLevel); - } - } - - public static Field getPublicField(Object aObject, String aField) { - Field rField = null; - try { - rField = aObject.getClass().getDeclaredField(aField); - } catch (Throwable e) {/*Do nothing*/} - return rField; - } - - public static Field getField(Object aObject, String aField) { - Field rField = null; - try { - rField = aObject.getClass().getDeclaredField(aField); - rField.setAccessible(true); - } catch (Throwable e) {/*Do nothing*/} - return rField; - } - - public static Field getField(Class aObject, String aField) { - Field rField = null; - try { - rField = aObject.getDeclaredField(aField); - rField.setAccessible(true); - } catch (Throwable e) {/*Do nothing*/} - return rField; - } - - public static Method getMethod(Class aObject, String aMethod, Class... aParameterTypes) { - Method rMethod = null; - try { - rMethod = aObject.getMethod(aMethod, aParameterTypes); - rMethod.setAccessible(true); - } catch (Throwable e) {/*Do nothing*/} - return rMethod; - } + /** + * Forge screwed the Fluid Registry up again, so I make my own, which is also much more efficient than the stupid Stuff over there. + */ + private static final List sFluidContainerList = new ArrayList(); + private static final Map sFilledContainerToData = new HashMap(); + private static final Map> sEmptyContainerToFluidToData = new HashMap>(); + public static volatile int VERSION = 508; + public static boolean TE_CHECK = false, BC_CHECK = false, CHECK_ALL = true; + public static Map sPlayedSoundMap = new HashMap(); + private static int sBookCount = 0; - public static Method getMethod(Object aObject, String aMethod, Class... aParameterTypes) { - Method rMethod = null; - try { - rMethod = aObject.getClass().getMethod(aMethod, aParameterTypes); - rMethod.setAccessible(true); - } catch (Throwable e) {/*Do nothing*/} - return rMethod; - } + static { + GregTech_API.sItemStackMappings.add(sFilledContainerToData); + GregTech_API.sItemStackMappings.add(sEmptyContainerToFluidToData); + } - public static Field getField(Object aObject, String aField, boolean aPrivate, boolean aLogErrors) { - try { - Field tField = (aObject instanceof Class)?((Class)aObject).getDeclaredField(aField):(aObject instanceof String)?Class.forName((String)aObject).getDeclaredField(aField):aObject.getClass().getDeclaredField(aField); - if (aPrivate) tField.setAccessible(true); - return tField; - } catch (Throwable e) { - if (aLogErrors) e.printStackTrace(GT_Log.err); - } - return null; - } - - public static Object getFieldContent(Object aObject, String aField, boolean aPrivate, boolean aLogErrors) { - try { - Field tField = (aObject instanceof Class)?((Class)aObject).getDeclaredField(aField):(aObject instanceof String)?Class.forName((String)aObject).getDeclaredField(aField):aObject.getClass().getDeclaredField(aField); - if (aPrivate) tField.setAccessible(true); - return tField.get(aObject instanceof Class || aObject instanceof String ? null : aObject); - } catch (Throwable e) { - if (aLogErrors) e.printStackTrace(GT_Log.err); - } - return null; - } - - public static Object callPublicMethod(Object aObject, String aMethod, Object... aParameters) { - return callMethod(aObject, aMethod, false, false, true, aParameters); - } + public static Field getPublicField(Object aObject, String aField) { + Field rField = null; + try { + rField = aObject.getClass().getDeclaredField(aField); + } catch (Throwable e) {/*Do nothing*/} + return rField; + } + + public static Field getField(Object aObject, String aField) { + Field rField = null; + try { + rField = aObject.getClass().getDeclaredField(aField); + rField.setAccessible(true); + } catch (Throwable e) {/*Do nothing*/} + return rField; + } + + public static Field getField(Class aObject, String aField) { + Field rField = null; + try { + rField = aObject.getDeclaredField(aField); + rField.setAccessible(true); + } catch (Throwable e) {/*Do nothing*/} + return rField; + } + + public static Method getMethod(Class aObject, String aMethod, Class... aParameterTypes) { + Method rMethod = null; + try { + rMethod = aObject.getMethod(aMethod, aParameterTypes); + rMethod.setAccessible(true); + } catch (Throwable e) {/*Do nothing*/} + return rMethod; + } + + public static Method getMethod(Object aObject, String aMethod, Class... aParameterTypes) { + Method rMethod = null; + try { + rMethod = aObject.getClass().getMethod(aMethod, aParameterTypes); + rMethod.setAccessible(true); + } catch (Throwable e) {/*Do nothing*/} + return rMethod; + } + + public static Field getField(Object aObject, String aField, boolean aPrivate, boolean aLogErrors) { + try { + Field tField = (aObject instanceof Class) ? ((Class) aObject).getDeclaredField(aField) : (aObject instanceof String) ? Class.forName((String) aObject).getDeclaredField(aField) : aObject.getClass().getDeclaredField(aField); + if (aPrivate) tField.setAccessible(true); + return tField; + } catch (Throwable e) { + if (aLogErrors) e.printStackTrace(GT_Log.err); + } + return null; + } + + public static Object getFieldContent(Object aObject, String aField, boolean aPrivate, boolean aLogErrors) { + try { + Field tField = (aObject instanceof Class) ? ((Class) aObject).getDeclaredField(aField) : (aObject instanceof String) ? Class.forName((String) aObject).getDeclaredField(aField) : aObject.getClass().getDeclaredField(aField); + if (aPrivate) tField.setAccessible(true); + return tField.get(aObject instanceof Class || aObject instanceof String ? null : aObject); + } catch (Throwable e) { + if (aLogErrors) e.printStackTrace(GT_Log.err); + } + return null; + } + + public static Object callPublicMethod(Object aObject, String aMethod, Object... aParameters) { + return callMethod(aObject, aMethod, false, false, true, aParameters); + } + + public static Object callPrivateMethod(Object aObject, String aMethod, Object... aParameters) { + return callMethod(aObject, aMethod, true, false, true, aParameters); + } + + public static Object callMethod(Object aObject, String aMethod, boolean aPrivate, boolean aUseUpperCasedDataTypes, boolean aLogErrors, Object... aParameters) { + try { + Class[] tParameterTypes = new Class[aParameters.length]; + for (byte i = 0; i < aParameters.length; i++) { + if (aParameters[i] instanceof Class) { + tParameterTypes[i] = (Class) aParameters[i]; + aParameters[i] = null; + } else { + tParameterTypes[i] = aParameters[i].getClass(); + } + if (!aUseUpperCasedDataTypes) { + if (tParameterTypes[i] == Boolean.class) tParameterTypes[i] = boolean.class; + else if (tParameterTypes[i] == Byte.class) tParameterTypes[i] = byte.class; + else if (tParameterTypes[i] == Short.class) tParameterTypes[i] = short.class; + else if (tParameterTypes[i] == Integer.class) tParameterTypes[i] = int.class; + else if (tParameterTypes[i] == Long.class) tParameterTypes[i] = long.class; + else if (tParameterTypes[i] == Float.class) tParameterTypes[i] = float.class; + else if (tParameterTypes[i] == Double.class) tParameterTypes[i] = double.class; + } + } + + Method tMethod = (aObject instanceof Class) ? ((Class) aObject).getMethod(aMethod, tParameterTypes) : aObject.getClass().getMethod(aMethod, tParameterTypes); + if (aPrivate) tMethod.setAccessible(true); + return tMethod.invoke(aObject, aParameters); + } catch (Throwable e) { + if (aLogErrors) e.printStackTrace(GT_Log.err); + } + return null; + } + + public static Object callConstructor(String aClass, int aConstructorIndex, Object aReplacementObject, boolean aLogErrors, Object... aParameters) { + if (aConstructorIndex < 0) { + try { + for (Constructor tConstructor : Class.forName(aClass).getConstructors()) { + try { + return tConstructor.newInstance(aParameters); + } catch (Throwable e) {/*Do nothing*/} + } + } catch (Throwable e) { + if (aLogErrors) e.printStackTrace(GT_Log.err); + } + } else { + try { + return Class.forName(aClass).getConstructors()[aConstructorIndex].newInstance(aParameters); + } catch (Throwable e) { + if (aLogErrors) e.printStackTrace(GT_Log.err); + } + } + return aReplacementObject; + } + + public static String capitalizeString(String aString) { + if (aString != null && aString.length() > 0) + return aString.substring(0, 1).toUpperCase() + aString.substring(1); + return E; + } - public static Object callPrivateMethod(Object aObject, String aMethod, Object... aParameters) { - return callMethod(aObject, aMethod, true , false, true, aParameters); - } - - public static Object callMethod(Object aObject, String aMethod, boolean aPrivate, boolean aUseUpperCasedDataTypes, boolean aLogErrors, Object... aParameters) { - try { - Class[] tParameterTypes = new Class[aParameters.length]; - for (byte i = 0; i < aParameters.length; i++) { - if (aParameters[i] instanceof Class) { - tParameterTypes[i] = (Class)aParameters[i]; - aParameters[i] = null; - } else { - tParameterTypes[i] = aParameters[i].getClass(); - } - if (!aUseUpperCasedDataTypes) { - if (tParameterTypes[i] == Boolean.class ) tParameterTypes[i] = boolean.class; else - if (tParameterTypes[i] == Byte.class ) tParameterTypes[i] = byte.class; else - if (tParameterTypes[i] == Short.class ) tParameterTypes[i] = short.class; else - if (tParameterTypes[i] == Integer.class ) tParameterTypes[i] = int.class; else - if (tParameterTypes[i] == Long.class ) tParameterTypes[i] = long.class; else - if (tParameterTypes[i] == Float.class ) tParameterTypes[i] = float.class; else - if (tParameterTypes[i] == Double.class ) tParameterTypes[i] = double.class; - } - } - - Method tMethod = (aObject instanceof Class)?((Class)aObject).getMethod(aMethod, tParameterTypes):aObject.getClass().getMethod(aMethod, tParameterTypes); - if (aPrivate) tMethod.setAccessible(true); - return tMethod.invoke(aObject, aParameters); - } catch (Throwable e) { - if (aLogErrors) e.printStackTrace(GT_Log.err); - } - return null; - } - - public static Object callConstructor(String aClass, int aConstructorIndex, Object aReplacementObject, boolean aLogErrors, Object... aParameters) { - if (aConstructorIndex < 0) { - try { - for (Constructor tConstructor : Class.forName(aClass).getConstructors()) { - try { - return tConstructor.newInstance(aParameters); - } catch (Throwable e) {/*Do nothing*/} - } - } catch (Throwable e) { - if (aLogErrors) e.printStackTrace(GT_Log.err); - } - } else { - try { - return Class.forName(aClass).getConstructors()[aConstructorIndex].newInstance(aParameters); - } catch (Throwable e) { - if (aLogErrors) e.printStackTrace(GT_Log.err); - } - } - return aReplacementObject; - } - - public static String capitalizeString(String aString) { - if (aString != null && aString.length() > 0) return aString.substring(0, 1).toUpperCase() + aString.substring(1); - return E; - } - public static boolean getPotion(EntityLivingBase aPlayer, int aPotionIndex) { - try { - Field tPotionHashmap = null; - + try { + Field tPotionHashmap = null; + Field[] var3 = EntityLiving.class.getDeclaredFields(); int var4 = var3.length; - + for (int var5 = 0; var5 < var4; ++var5) { Field var6 = var3[var5]; if (var6.getType() == HashMap.class) { @@ -387,23 +236,24 @@ public class GT_Utility { break; } } - - if (tPotionHashmap != null) return ((HashMap)tPotionHashmap.get(aPlayer)).get(Integer.valueOf(aPotionIndex)) != null; + + if (tPotionHashmap != null) + return ((HashMap) tPotionHashmap.get(aPlayer)).get(Integer.valueOf(aPotionIndex)) != null; } catch (Throwable e) { - if (D1) e.printStackTrace(GT_Log.err); + if (D1) e.printStackTrace(GT_Log.err); } - return false; + return false; } - + public static String getClassName(Object aObject) { - if (aObject == null) return "null"; - return aObject.getClass().getName().substring(aObject.getClass().getName().lastIndexOf(".")+1); + if (aObject == null) return "null"; + return aObject.getClass().getName().substring(aObject.getClass().getName().lastIndexOf(".") + 1); } - + public static void removePotion(EntityLivingBase aPlayer, int aPotionIndex) { - try { - Field tPotionHashmap = null; - + try { + Field tPotionHashmap = null; + Field[] var3 = EntityLiving.class.getDeclaredFields(); int var4 = var3.length; @@ -416,1375 +266,1687 @@ public class GT_Utility { } } - if (tPotionHashmap != null) ((HashMap)tPotionHashmap.get(aPlayer)).remove(Integer.valueOf(aPotionIndex)); + if (tPotionHashmap != null) ((HashMap) tPotionHashmap.get(aPlayer)).remove(Integer.valueOf(aPotionIndex)); } catch (Throwable e) { - if (D1) e.printStackTrace(GT_Log.err); + if (D1) e.printStackTrace(GT_Log.err); } } - - public static boolean getFullInvisibility(EntityPlayer aPlayer) { - try { - if (aPlayer.isInvisible()) { - for (int i = 0; i < 4; i++) { - if (aPlayer.inventory.armorInventory[i] != null) { - if (aPlayer.inventory.armorInventory[i].getItem() instanceof GT_EnergyArmor_Item) { - if ((((GT_EnergyArmor_Item)aPlayer.inventory.armorInventory[i].getItem()).mSpecials & 512) != 0) { - if (GT_ModHandler.canUseElectricItem(aPlayer.inventory.armorInventory[i], 10000)) { - return true; - } - } - } - } - } - } - } catch(Throwable e) {if (D1) e.printStackTrace(GT_Log.err);} - return false; - } - - public static ItemStack suckOneItemStackAt(World aWorld, double aX, double aY, double aZ, double aL, double aH, double aW) { - for (EntityItem tItem : (ArrayList)aWorld.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(aX, aY, aZ, aX+aL, aY+aH, aZ+aW))) { - if (!tItem.isDead) { - aWorld.removeEntity(tItem); - tItem.setDead(); - return tItem.getEntityItem(); - } - } - return null; - } - public static byte getOppositeSide(int aSide) { - return (byte)ForgeDirection.getOrientation(aSide).getOpposite().ordinal(); - } - - public static byte getTier(long l) { - byte i = -1; - while (++i < V.length) if (l <= V[i]) return i; - return i; - } - - public static void sendChatToPlayer(EntityPlayer aPlayer, String aChatMessage) { - if (aPlayer != null && aPlayer instanceof EntityPlayerMP && aChatMessage != null) { - aPlayer.addChatComponentMessage(new ChatComponentText(aChatMessage)); - } - } - - public static boolean TE_CHECK = false, BC_CHECK = false, CHECK_ALL = true; - - public static void checkAvailabilities() { - if (CHECK_ALL) { - try { - Class tClass = IItemDuct.class; - tClass.getCanonicalName(); - TE_CHECK = true; - } catch(Throwable e) {/**/} - try { - Class tClass = buildcraft.api.transport.IPipeTile.class; - tClass.getCanonicalName(); - BC_CHECK = true; - } catch(Throwable e) {/**/} - CHECK_ALL = false; - } - } - - public static boolean isConnectableNonInventoryPipe(Object aTileEntity, int aSide) { - if (aTileEntity == null) return false; - checkAvailabilities(); - if (TE_CHECK) if (aTileEntity instanceof IItemDuct) return true; - if (BC_CHECK) if (aTileEntity instanceof buildcraft.api.transport.IPipeTile) return ((buildcraft.api.transport.IPipeTile)aTileEntity).isPipeConnected(ForgeDirection.getOrientation(aSide)); - return false; - } - - /** - * Moves Stack from Inv-Slot to Inv-Slot, without checking if its even allowed. - * @return the Amount of moved Items - */ - public static byte moveStackIntoPipe(IInventory aTileEntity1, Object aTileEntity2, int[] aGrabSlots, int aGrabFrom, int aPutTo, List aFilter, boolean aInvertFilter, byte aMaxTargetStackSize, byte aMinTargetStackSize, byte aMaxMoveAtOnce, byte aMinMoveAtOnce) { - if (aTileEntity1 == null || aMaxTargetStackSize <= 0 || aMinTargetStackSize <= 0 || aMinTargetStackSize > aMaxTargetStackSize || aMaxMoveAtOnce <= 0 || aMinMoveAtOnce > aMaxMoveAtOnce) return 0; - if (aTileEntity2 != null) { - checkAvailabilities(); - if (TE_CHECK && aTileEntity2 instanceof IItemDuct) { - for (int i = 0; i < aGrabSlots.length; i++) { - if (listContainsItem(aFilter, aTileEntity1.getStackInSlot(aGrabSlots[i]), true, aInvertFilter)) { - if (isAllowedToTakeFromSlot(aTileEntity1, aGrabSlots[i], (byte)aGrabFrom, aTileEntity1.getStackInSlot(aGrabSlots[i]))) { - if (Math.max(aMinMoveAtOnce, aMinTargetStackSize) <= aTileEntity1.getStackInSlot(aGrabSlots[i]).stackSize) { - ItemStack tStack = copyAmount(Math.min(aTileEntity1.getStackInSlot(aGrabSlots[i]).stackSize, Math.min(aMaxMoveAtOnce, aMaxTargetStackSize)), aTileEntity1.getStackInSlot(aGrabSlots[i])); - ItemStack rStack = ((IItemDuct)aTileEntity2).insertItem(ForgeDirection.getOrientation(aPutTo), copy(tStack)); - byte tMovedItemCount = (byte)(tStack.stackSize - (rStack == null ? 0 : rStack.stackSize)); - if (tMovedItemCount >= 1/*Math.max(aMinMoveAtOnce, aMinTargetStackSize)*/) { - //((cofh.api.transport.IItemConduit)aTileEntity2).insertItem(ForgeDirection.getOrientation(aPutTo), copyAmount(tMovedItemCount, tStack), F); - aTileEntity1.decrStackSize(aGrabSlots[i], tMovedItemCount); - aTileEntity1.markDirty(); - return tMovedItemCount; - } - } - } - } - } - return 0; - } - if (BC_CHECK && aTileEntity2 instanceof buildcraft.api.transport.IPipeTile) { - for (int i = 0; i < aGrabSlots.length; i++) { - if (listContainsItem(aFilter, aTileEntity1.getStackInSlot(aGrabSlots[i]), true, aInvertFilter)) { - if (isAllowedToTakeFromSlot(aTileEntity1, aGrabSlots[i], (byte)aGrabFrom, aTileEntity1.getStackInSlot(aGrabSlots[i]))) { - if (Math.max(aMinMoveAtOnce, aMinTargetStackSize) <= aTileEntity1.getStackInSlot(aGrabSlots[i]).stackSize) { - ItemStack tStack = copyAmount(Math.min(aTileEntity1.getStackInSlot(aGrabSlots[i]).stackSize, Math.min(aMaxMoveAtOnce, aMaxTargetStackSize)), aTileEntity1.getStackInSlot(aGrabSlots[i])); - byte tMovedItemCount = (byte)((buildcraft.api.transport.IPipeTile)aTileEntity2).injectItem(copy(tStack), false, ForgeDirection.getOrientation(aPutTo)); - if (tMovedItemCount >= Math.max(aMinMoveAtOnce, aMinTargetStackSize)) { - tMovedItemCount = (byte)(((buildcraft.api.transport.IPipeTile)aTileEntity2).injectItem(copyAmount(tMovedItemCount, tStack), true , ForgeDirection.getOrientation(aPutTo))); - aTileEntity1.decrStackSize(aGrabSlots[i], tMovedItemCount); - aTileEntity1.markDirty(); - return tMovedItemCount; - } - } - } - } - } - return 0; - } - } - - ForgeDirection tDirection = ForgeDirection.getOrientation(aGrabFrom); - if (aTileEntity1 instanceof TileEntity && tDirection != ForgeDirection.UNKNOWN && tDirection.getOpposite() == ForgeDirection.getOrientation(aPutTo)) { - int tX = ((TileEntity)aTileEntity1).xCoord + tDirection.offsetX, tY = ((TileEntity)aTileEntity1).yCoord + tDirection.offsetY, tZ = ((TileEntity)aTileEntity1).zCoord + tDirection.offsetZ; - if (!hasBlockHitBox(((TileEntity)aTileEntity1).getWorldObj(), tX, tY, tZ)) { - for (int i = 0; i < aGrabSlots.length; i++) { - if (listContainsItem(aFilter, aTileEntity1.getStackInSlot(aGrabSlots[i]), true, aInvertFilter)) { - if (isAllowedToTakeFromSlot(aTileEntity1, aGrabSlots[i], (byte)aGrabFrom, aTileEntity1.getStackInSlot(aGrabSlots[i]))) { - if (Math.max(aMinMoveAtOnce, aMinTargetStackSize) <= aTileEntity1.getStackInSlot(aGrabSlots[i]).stackSize) { - ItemStack tStack = copyAmount(Math.min(aTileEntity1.getStackInSlot(aGrabSlots[i]).stackSize, Math.min(aMaxMoveAtOnce, aMaxTargetStackSize)), aTileEntity1.getStackInSlot(aGrabSlots[i])); - EntityItem tEntity = new EntityItem(((TileEntity)aTileEntity1).getWorldObj(), tX+0.5, tY+0.5, tZ+0.5, tStack); - tEntity.motionX = tEntity.motionY = tEntity.motionZ = 0; - ((TileEntity)aTileEntity1).getWorldObj().spawnEntityInWorld(tEntity); - aTileEntity1.decrStackSize(aGrabSlots[i], tStack.stackSize); - aTileEntity1.markDirty(); - return (byte)tStack.stackSize; - } - } - } - } - } - } - return 0; - } - - /** - * Moves Stack from Inv-Slot to Inv-Slot, without checking if its even allowed. (useful for internal Inventory Operations) - * @return the Amount of moved Items - */ - public static byte moveStackFromSlotAToSlotB(IInventory aTileEntity1, IInventory aTileEntity2, int aGrabFrom, int aPutTo, byte aMaxTargetStackSize, byte aMinTargetStackSize, byte aMaxMoveAtOnce, byte aMinMoveAtOnce) { - if (aTileEntity1 == null || aTileEntity2 == null || aMaxTargetStackSize <= 0 || aMinTargetStackSize <= 0 || aMinTargetStackSize > aMaxTargetStackSize || aMaxMoveAtOnce <= 0 || aMinMoveAtOnce > aMaxMoveAtOnce) return 0; - - ItemStack tStack1 = aTileEntity1.getStackInSlot(aGrabFrom), tStack2 = aTileEntity2.getStackInSlot(aPutTo), tStack3 = null; - if (tStack1 != null) { - if (tStack2 != null && !areStacksEqual(tStack1, tStack2)) return 0; - tStack3 = copy(tStack1); - aMaxTargetStackSize = (byte)Math.min(aMaxTargetStackSize, Math.min(tStack3.getMaxStackSize(), Math.min(tStack2==null?Integer.MAX_VALUE:tStack2.getMaxStackSize(), aTileEntity2.getInventoryStackLimit()))); - tStack3.stackSize = Math.min(tStack3.stackSize, aMaxTargetStackSize - (tStack2 == null?0:tStack2.stackSize)); - if (tStack3.stackSize > aMaxMoveAtOnce) tStack3.stackSize = aMaxMoveAtOnce; - if (tStack3.stackSize + (tStack2==null?0:tStack2.stackSize) >= Math.min(tStack3.getMaxStackSize(), aMinTargetStackSize) && tStack3.stackSize >= aMinMoveAtOnce) { - tStack3 = aTileEntity1.decrStackSize(aGrabFrom, tStack3.stackSize); - aTileEntity1.markDirty(); - if (tStack3 != null) { - if (tStack2 == null) { - aTileEntity2.setInventorySlotContents(aPutTo, copy(tStack3)); - aTileEntity2.markDirty(); - } else { - tStack2.stackSize += tStack3.stackSize; - aTileEntity2.markDirty(); - } - return (byte)tStack3.stackSize; - } - } - } - return 0; - } - - public static boolean isAllowedToTakeFromSlot(IInventory aTileEntity, int aSlot, byte aSide, ItemStack aStack) { - if (ForgeDirection.getOrientation(aSide) == ForgeDirection.UNKNOWN) { - return isAllowedToTakeFromSlot(aTileEntity, aSlot, (byte)0, aStack) - || isAllowedToTakeFromSlot(aTileEntity, aSlot, (byte)1, aStack) - || isAllowedToTakeFromSlot(aTileEntity, aSlot, (byte)2, aStack) - || isAllowedToTakeFromSlot(aTileEntity, aSlot, (byte)3, aStack) - || isAllowedToTakeFromSlot(aTileEntity, aSlot, (byte)4, aStack) - || isAllowedToTakeFromSlot(aTileEntity, aSlot, (byte)5, aStack); - } - if (aTileEntity instanceof ISidedInventory) return ((ISidedInventory)aTileEntity).canExtractItem(aSlot, aStack, aSide); - return true; - } - - public static boolean isAllowedToPutIntoSlot(IInventory aTileEntity, int aSlot, byte aSide, ItemStack aStack, byte aMaxStackSize) { - ItemStack tStack = aTileEntity.getStackInSlot(aSlot); - if (tStack != null && (!areStacksEqual(tStack, aStack) || tStack.stackSize >= tStack.getMaxStackSize())) return false; - if (ForgeDirection.getOrientation(aSide) == ForgeDirection.UNKNOWN) { - return isAllowedToPutIntoSlot(aTileEntity, aSlot, (byte)0, aStack, aMaxStackSize) - || isAllowedToPutIntoSlot(aTileEntity, aSlot, (byte)1, aStack, aMaxStackSize) - || isAllowedToPutIntoSlot(aTileEntity, aSlot, (byte)2, aStack, aMaxStackSize) - || isAllowedToPutIntoSlot(aTileEntity, aSlot, (byte)3, aStack, aMaxStackSize) - || isAllowedToPutIntoSlot(aTileEntity, aSlot, (byte)4, aStack, aMaxStackSize) - || isAllowedToPutIntoSlot(aTileEntity, aSlot, (byte)5, aStack, aMaxStackSize); - } - if (aTileEntity instanceof ISidedInventory && !((ISidedInventory)aTileEntity).canInsertItem(aSlot, aStack, aSide)) return false; - return aTileEntity.isItemValidForSlot(aSlot, aStack); - } - - /** - * Moves Stack from Inv-Side to Inv-Side. - * @return the Amount of moved Items - */ - public static byte moveOneItemStack(Object aTileEntity1, Object aTileEntity2, byte aGrabFrom, byte aPutTo, List aFilter, boolean aInvertFilter, byte aMaxTargetStackSize, byte aMinTargetStackSize, byte aMaxMoveAtOnce, byte aMinMoveAtOnce) { - if (aTileEntity1 != null && aTileEntity1 instanceof IInventory) return moveOneItemStack((IInventory)aTileEntity1, aTileEntity2, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, true); - return 0; - } - - /** - * This is only because I needed an additional Parameter for the Double Chest Check. - */ - private static byte moveOneItemStack(IInventory aTileEntity1, Object aTileEntity2, byte aGrabFrom, byte aPutTo, List aFilter, boolean aInvertFilter, byte aMaxTargetStackSize, byte aMinTargetStackSize, byte aMaxMoveAtOnce, byte aMinMoveAtOnce, boolean aDoCheckChests) { - if (aTileEntity1 == null || aMaxTargetStackSize <= 0 || aMinTargetStackSize <= 0 || aMaxMoveAtOnce <= 0 || aMinTargetStackSize > aMaxTargetStackSize || aMinMoveAtOnce > aMaxMoveAtOnce) return 0; - - int[] tGrabSlots = null; - if (aTileEntity1 instanceof ISidedInventory) tGrabSlots = ((ISidedInventory)aTileEntity1).getAccessibleSlotsFromSide(aGrabFrom); - if (tGrabSlots == null) { - tGrabSlots = new int[aTileEntity1.getSizeInventory()]; - for (int i = 0; i < tGrabSlots.length; i++) tGrabSlots[i] = i; - } - - if (aTileEntity2 != null && aTileEntity2 instanceof IInventory) { - int[] tPutSlots = null; - if (aTileEntity2 instanceof ISidedInventory) tPutSlots = ((ISidedInventory)aTileEntity2).getAccessibleSlotsFromSide(aPutTo); - - if (tPutSlots == null) { - tPutSlots = new int[((IInventory)aTileEntity2).getSizeInventory()]; - for (int i = 0; i < tPutSlots.length; i++) tPutSlots[i] = i; - } - - for (int i = 0; i < tGrabSlots.length; i++) { - for (int j = 0; j < tPutSlots.length; j++) { - if (listContainsItem(aFilter, aTileEntity1.getStackInSlot(tGrabSlots[i]), true, aInvertFilter)) { - if (isAllowedToTakeFromSlot(aTileEntity1, tGrabSlots[i], aGrabFrom, aTileEntity1.getStackInSlot(tGrabSlots[i]))) { - if (isAllowedToPutIntoSlot((IInventory)aTileEntity2, tPutSlots[j], aPutTo, aTileEntity1.getStackInSlot(tGrabSlots[i]), aMaxTargetStackSize)) { - byte tMovedItemCount = moveStackFromSlotAToSlotB(aTileEntity1, (IInventory)aTileEntity2, tGrabSlots[i], tPutSlots[j], aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce); - if (tMovedItemCount > 0) return tMovedItemCount; - } - } - } - } - } - - if (aDoCheckChests && aTileEntity1 instanceof TileEntityChest) { - TileEntityChest tTileEntity1 = (TileEntityChest)aTileEntity1; - if (tTileEntity1.adjacentChestChecked) { - byte tAmount = 0; - if (tTileEntity1.adjacentChestXNeg != null) { - tAmount = moveOneItemStack(tTileEntity1.adjacentChestXNeg, aTileEntity2, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); - } else if (tTileEntity1.adjacentChestZNeg != null) { - tAmount = moveOneItemStack(tTileEntity1.adjacentChestZNeg, aTileEntity2, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); - } else if (tTileEntity1.adjacentChestXPos != null) { - tAmount = moveOneItemStack(tTileEntity1.adjacentChestXPos, aTileEntity2, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); - } else if (tTileEntity1.adjacentChestZPos != null) { - tAmount = moveOneItemStack(tTileEntity1.adjacentChestZPos, aTileEntity2, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); - } - if (tAmount != 0) return tAmount; - } - } - if (aDoCheckChests && aTileEntity2 instanceof TileEntityChest) { - TileEntityChest tTileEntity2 = (TileEntityChest)aTileEntity2; - if (tTileEntity2.adjacentChestChecked) { - byte tAmount = 0; - if (tTileEntity2.adjacentChestXNeg != null) { - tAmount = moveOneItemStack(aTileEntity1, tTileEntity2.adjacentChestXNeg, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); - } else if (tTileEntity2.adjacentChestZNeg != null) { - tAmount = moveOneItemStack(aTileEntity1, tTileEntity2.adjacentChestZNeg, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); - } else if (tTileEntity2.adjacentChestXPos != null) { - tAmount = moveOneItemStack(aTileEntity1, tTileEntity2.adjacentChestXPos, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); - } else if (tTileEntity2.adjacentChestZPos != null) { - tAmount = moveOneItemStack(aTileEntity1, tTileEntity2.adjacentChestZPos, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); - } - if (tAmount != 0) return tAmount; - } - } - } - - return moveStackIntoPipe(aTileEntity1, aTileEntity2, tGrabSlots, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce); - } - - /** - * Moves Stack from Inv-Side to Inv-Slot. - * @return the Amount of moved Items - */ - public static byte moveOneItemStackIntoSlot(Object aTileEntity1, Object aTileEntity2, byte aGrabFrom, int aPutTo, List aFilter, boolean aInvertFilter, byte aMaxTargetStackSize, byte aMinTargetStackSize, byte aMaxMoveAtOnce, byte aMinMoveAtOnce) { - if (aTileEntity1 == null || !(aTileEntity1 instanceof IInventory) || aPutTo < 0 || aMaxTargetStackSize <= 0 || aMinTargetStackSize <= 0 || aMaxMoveAtOnce <= 0 || aMinTargetStackSize > aMaxTargetStackSize || aMinMoveAtOnce > aMaxMoveAtOnce) return 0; - - int[] tGrabSlots = null; - if (aTileEntity1 instanceof ISidedInventory) tGrabSlots = ((ISidedInventory)aTileEntity1).getAccessibleSlotsFromSide(aGrabFrom); - if (tGrabSlots == null) { - tGrabSlots = new int[((IInventory)aTileEntity1).getSizeInventory()]; - for (int i = 0; i < tGrabSlots.length; i++) tGrabSlots[i] = i; - } - - if (aTileEntity2 != null && aTileEntity2 instanceof IInventory) { - for (int i = 0; i < tGrabSlots.length; i++) { - if (listContainsItem(aFilter, ((IInventory)aTileEntity1).getStackInSlot(tGrabSlots[i]), true, aInvertFilter)) { - if (isAllowedToTakeFromSlot((IInventory)aTileEntity1, tGrabSlots[i], aGrabFrom, ((IInventory)aTileEntity1).getStackInSlot(tGrabSlots[i]))) { - if (isAllowedToPutIntoSlot((IInventory)aTileEntity2, aPutTo, (byte)6, ((IInventory)aTileEntity1).getStackInSlot(tGrabSlots[i]), aMaxTargetStackSize)) { - byte tMovedItemCount = moveStackFromSlotAToSlotB((IInventory)aTileEntity1, (IInventory)aTileEntity2, tGrabSlots[i], aPutTo, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce); - if (tMovedItemCount > 0) return tMovedItemCount; - } - } - } - } - } - - moveStackIntoPipe(((IInventory)aTileEntity1), aTileEntity2, tGrabSlots, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce); - return 0; - } - - /** - * Moves Stack from Inv-Slot to Inv-Slot. - * @return the Amount of moved Items - */ - public static byte moveFromSlotToSlot(IInventory aTileEntity1, IInventory aTileEntity2, int aGrabFrom, int aPutTo, List aFilter, boolean aInvertFilter, byte aMaxTargetStackSize, byte aMinTargetStackSize, byte aMaxMoveAtOnce, byte aMinMoveAtOnce) { - if (aTileEntity1 == null || aTileEntity2 == null || aGrabFrom < 0 || aPutTo < 0 || aMaxTargetStackSize <= 0 || aMinTargetStackSize <= 0 || aMaxMoveAtOnce <= 0 || aMinTargetStackSize > aMaxTargetStackSize || aMinMoveAtOnce > aMaxMoveAtOnce) return 0; - if (listContainsItem(aFilter, aTileEntity1.getStackInSlot(aGrabFrom), true, aInvertFilter)) { - if (isAllowedToTakeFromSlot(aTileEntity1, aGrabFrom, (byte)6, aTileEntity1.getStackInSlot(aGrabFrom))) { - if (isAllowedToPutIntoSlot(aTileEntity2, aPutTo, (byte)6, aTileEntity1.getStackInSlot(aGrabFrom), aMaxTargetStackSize)) { - byte tMovedItemCount = moveStackFromSlotAToSlotB(aTileEntity1, aTileEntity2, aGrabFrom, aPutTo, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce); - if (tMovedItemCount > 0) return tMovedItemCount; - } - } - } - return 0; - } - - public static boolean listContainsItem(Collection aList, ItemStack aStack, boolean aTIfListEmpty, boolean aInvertFilter) { - if (aStack == null || aStack.stackSize < 1) return false; - if (aList == null) return aTIfListEmpty; - while (aList.contains(null)) aList.remove(null); - if (aList.size() < 1) return aTIfListEmpty; - Iterator tIterator = aList.iterator(); - ItemStack tStack = null; - while (tIterator.hasNext()) if ((tStack = tIterator.next())!= null && areStacksEqual(aStack, tStack)) return !aInvertFilter; - return aInvertFilter; - } - - public static boolean areStacksOrToolsEqual(ItemStack aStack1, ItemStack aStack2) { - if (aStack1 != null && aStack2 != null && aStack1.getItem() == aStack2.getItem()) { - if (aStack1.getItem().isDamageable()) return true; - return ((aStack1.getTagCompound() == null) == (aStack2.getTagCompound() == null)) && (aStack1.getTagCompound() == null || aStack1.getTagCompound().equals(aStack2.getTagCompound())) && (Items.feather.getDamage(aStack1) == Items.feather.getDamage(aStack2) || Items.feather.getDamage(aStack1) == W || Items.feather.getDamage(aStack2) == W); - } - return false; - } - - public static boolean areFluidsEqual(FluidStack aFluid1, FluidStack aFluid2) { - return areFluidsEqual(aFluid1, aFluid2, false); - } - - public static boolean areFluidsEqual(FluidStack aFluid1, FluidStack aFluid2, boolean aIgnoreNBT) { - return aFluid1 != null && aFluid2 != null && aFluid1.getFluid() == aFluid2.getFluid() && (aIgnoreNBT || ((aFluid1.tag == null) == (aFluid2.tag == null)) && (aFluid1.tag == null || aFluid1.tag.equals(aFluid2.tag))); - } - - public static boolean areStacksEqual(ItemStack aStack1, ItemStack aStack2) { - return areStacksEqual(aStack1, aStack2, false); - } - - public static boolean areStacksEqual(ItemStack aStack1, ItemStack aStack2, boolean aIgnoreNBT) { - return aStack1 != null && aStack2 != null && aStack1.getItem() == aStack2.getItem() && (aIgnoreNBT || ((aStack1.getTagCompound() == null) == (aStack2.getTagCompound() == null)) && (aStack1.getTagCompound() == null || aStack1.getTagCompound().equals(aStack2.getTagCompound()))) && (Items.feather.getDamage(aStack1) == Items.feather.getDamage(aStack2) || Items.feather.getDamage(aStack1) == W || Items.feather.getDamage(aStack2) == W); - } - - public static boolean areUnificationsEqual(ItemStack aStack1, ItemStack aStack2) { - return areUnificationsEqual(aStack1, aStack2, false); - } - - public static boolean areUnificationsEqual(ItemStack aStack1, ItemStack aStack2, boolean aIgnoreNBT) { - return areStacksEqual(GT_OreDictUnificator.get(aStack1), GT_OreDictUnificator.get(aStack2), aIgnoreNBT); - } - - public static String getFluidName(Fluid aFluid, boolean aLocalized) { - if (aFluid == null) return E; - String rName = aLocalized?aFluid.getLocalizedName(new FluidStack(aFluid, 0)):aFluid.getUnlocalizedName(); - if (rName.contains("fluid.") || rName.contains("tile.")) return capitalizeString(rName.replaceAll("fluid.", E).replaceAll("tile.", E)); - return rName; - } - - public static String getFluidName(FluidStack aFluid, boolean aLocalized) { - if (aFluid == null) return E; - return getFluidName(aFluid.getFluid(), aLocalized); - } - - /** - * Forge screwed the Fluid Registry up again, so I make my own, which is also much more efficient than the stupid Stuff over there. - */ - private static final List sFluidContainerList = new ArrayList(); - private static final Map sFilledContainerToData = new HashMap(); - private static final Map> sEmptyContainerToFluidToData = new HashMap>(); - - static { - GregTech_API.sItemStackMappings.add(sFilledContainerToData); - GregTech_API.sItemStackMappings.add(sEmptyContainerToFluidToData); - } - - public static void reInit() { - sFilledContainerToData.clear(); - sEmptyContainerToFluidToData.clear(); - for (FluidContainerData tData : sFluidContainerList) { - sFilledContainerToData.put(new GT_ItemStack(tData.filledContainer), tData); - Map tFluidToContainer = sEmptyContainerToFluidToData.get(new GT_ItemStack(tData.emptyContainer)); - if (tFluidToContainer == null) { - sEmptyContainerToFluidToData.put(new GT_ItemStack(tData.emptyContainer), tFluidToContainer = new HashMap()); - GregTech_API.sFluidMappings.add(tFluidToContainer); - } - tFluidToContainer.put(tData.fluid.getFluid(), tData); - } - } - - public static void addFluidContainerData(FluidContainerData aData) { - sFluidContainerList.add(aData); - sFilledContainerToData.put(new GT_ItemStack(aData.filledContainer), aData); - Map tFluidToContainer = sEmptyContainerToFluidToData.get(new GT_ItemStack(aData.emptyContainer)); - if (tFluidToContainer == null) { - sEmptyContainerToFluidToData.put(new GT_ItemStack(aData.emptyContainer), tFluidToContainer = new HashMap()); - GregTech_API.sFluidMappings.add(tFluidToContainer); - } - tFluidToContainer.put(aData.fluid.getFluid(), aData); - } - + public static boolean getFullInvisibility(EntityPlayer aPlayer) { + try { + if (aPlayer.isInvisible()) { + for (int i = 0; i < 4; i++) { + if (aPlayer.inventory.armorInventory[i] != null) { + if (aPlayer.inventory.armorInventory[i].getItem() instanceof GT_EnergyArmor_Item) { + if ((((GT_EnergyArmor_Item) aPlayer.inventory.armorInventory[i].getItem()).mSpecials & 512) != 0) { + if (GT_ModHandler.canUseElectricItem(aPlayer.inventory.armorInventory[i], 10000)) { + return true; + } + } + } + } + } + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + return false; + } + + public static ItemStack suckOneItemStackAt(World aWorld, double aX, double aY, double aZ, double aL, double aH, double aW) { + for (EntityItem tItem : (ArrayList) aWorld.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(aX, aY, aZ, aX + aL, aY + aH, aZ + aW))) { + if (!tItem.isDead) { + aWorld.removeEntity(tItem); + tItem.setDead(); + return tItem.getEntityItem(); + } + } + return null; + } + + public static byte getOppositeSide(int aSide) { + return (byte) ForgeDirection.getOrientation(aSide).getOpposite().ordinal(); + } + + public static byte getTier(long l) { + byte i = -1; + while (++i < V.length) if (l <= V[i]) return i; + return i; + } + + public static void sendChatToPlayer(EntityPlayer aPlayer, String aChatMessage) { + if (aPlayer != null && aPlayer instanceof EntityPlayerMP && aChatMessage != null) { + aPlayer.addChatComponentMessage(new ChatComponentText(aChatMessage)); + } + } + + public static void checkAvailabilities() { + if (CHECK_ALL) { + try { + Class tClass = IItemDuct.class; + tClass.getCanonicalName(); + TE_CHECK = true; + } catch (Throwable e) {/**/} + try { + Class tClass = buildcraft.api.transport.IPipeTile.class; + tClass.getCanonicalName(); + BC_CHECK = true; + } catch (Throwable e) {/**/} + CHECK_ALL = false; + } + } + + public static boolean isConnectableNonInventoryPipe(Object aTileEntity, int aSide) { + if (aTileEntity == null) return false; + checkAvailabilities(); + if (TE_CHECK) if (aTileEntity instanceof IItemDuct) return true; + if (BC_CHECK) if (aTileEntity instanceof buildcraft.api.transport.IPipeTile) + return ((buildcraft.api.transport.IPipeTile) aTileEntity).isPipeConnected(ForgeDirection.getOrientation(aSide)); + return false; + } + + /** + * Moves Stack from Inv-Slot to Inv-Slot, without checking if its even allowed. + * + * @return the Amount of moved Items + */ + public static byte moveStackIntoPipe(IInventory aTileEntity1, Object aTileEntity2, int[] aGrabSlots, int aGrabFrom, int aPutTo, List aFilter, boolean aInvertFilter, byte aMaxTargetStackSize, byte aMinTargetStackSize, byte aMaxMoveAtOnce, byte aMinMoveAtOnce) { + if (aTileEntity1 == null || aMaxTargetStackSize <= 0 || aMinTargetStackSize <= 0 || aMinTargetStackSize > aMaxTargetStackSize || aMaxMoveAtOnce <= 0 || aMinMoveAtOnce > aMaxMoveAtOnce) + return 0; + if (aTileEntity2 != null) { + checkAvailabilities(); + if (TE_CHECK && aTileEntity2 instanceof IItemDuct) { + for (int i = 0; i < aGrabSlots.length; i++) { + if (listContainsItem(aFilter, aTileEntity1.getStackInSlot(aGrabSlots[i]), true, aInvertFilter)) { + if (isAllowedToTakeFromSlot(aTileEntity1, aGrabSlots[i], (byte) aGrabFrom, aTileEntity1.getStackInSlot(aGrabSlots[i]))) { + if (Math.max(aMinMoveAtOnce, aMinTargetStackSize) <= aTileEntity1.getStackInSlot(aGrabSlots[i]).stackSize) { + ItemStack tStack = copyAmount(Math.min(aTileEntity1.getStackInSlot(aGrabSlots[i]).stackSize, Math.min(aMaxMoveAtOnce, aMaxTargetStackSize)), aTileEntity1.getStackInSlot(aGrabSlots[i])); + ItemStack rStack = ((IItemDuct) aTileEntity2).insertItem(ForgeDirection.getOrientation(aPutTo), copy(tStack)); + byte tMovedItemCount = (byte) (tStack.stackSize - (rStack == null ? 0 : rStack.stackSize)); + if (tMovedItemCount >= 1/*Math.max(aMinMoveAtOnce, aMinTargetStackSize)*/) { + //((cofh.api.transport.IItemConduit)aTileEntity2).insertItem(ForgeDirection.getOrientation(aPutTo), copyAmount(tMovedItemCount, tStack), F); + aTileEntity1.decrStackSize(aGrabSlots[i], tMovedItemCount); + aTileEntity1.markDirty(); + return tMovedItemCount; + } + } + } + } + } + return 0; + } + if (BC_CHECK && aTileEntity2 instanceof buildcraft.api.transport.IPipeTile) { + for (int i = 0; i < aGrabSlots.length; i++) { + if (listContainsItem(aFilter, aTileEntity1.getStackInSlot(aGrabSlots[i]), true, aInvertFilter)) { + if (isAllowedToTakeFromSlot(aTileEntity1, aGrabSlots[i], (byte) aGrabFrom, aTileEntity1.getStackInSlot(aGrabSlots[i]))) { + if (Math.max(aMinMoveAtOnce, aMinTargetStackSize) <= aTileEntity1.getStackInSlot(aGrabSlots[i]).stackSize) { + ItemStack tStack = copyAmount(Math.min(aTileEntity1.getStackInSlot(aGrabSlots[i]).stackSize, Math.min(aMaxMoveAtOnce, aMaxTargetStackSize)), aTileEntity1.getStackInSlot(aGrabSlots[i])); + byte tMovedItemCount = (byte) ((buildcraft.api.transport.IPipeTile) aTileEntity2).injectItem(copy(tStack), false, ForgeDirection.getOrientation(aPutTo)); + if (tMovedItemCount >= Math.max(aMinMoveAtOnce, aMinTargetStackSize)) { + tMovedItemCount = (byte) (((buildcraft.api.transport.IPipeTile) aTileEntity2).injectItem(copyAmount(tMovedItemCount, tStack), true, ForgeDirection.getOrientation(aPutTo))); + aTileEntity1.decrStackSize(aGrabSlots[i], tMovedItemCount); + aTileEntity1.markDirty(); + return tMovedItemCount; + } + } + } + } + } + return 0; + } + } + + ForgeDirection tDirection = ForgeDirection.getOrientation(aGrabFrom); + if (aTileEntity1 instanceof TileEntity && tDirection != ForgeDirection.UNKNOWN && tDirection.getOpposite() == ForgeDirection.getOrientation(aPutTo)) { + int tX = ((TileEntity) aTileEntity1).xCoord + tDirection.offsetX, tY = ((TileEntity) aTileEntity1).yCoord + tDirection.offsetY, tZ = ((TileEntity) aTileEntity1).zCoord + tDirection.offsetZ; + if (!hasBlockHitBox(((TileEntity) aTileEntity1).getWorldObj(), tX, tY, tZ)) { + for (int i = 0; i < aGrabSlots.length; i++) { + if (listContainsItem(aFilter, aTileEntity1.getStackInSlot(aGrabSlots[i]), true, aInvertFilter)) { + if (isAllowedToTakeFromSlot(aTileEntity1, aGrabSlots[i], (byte) aGrabFrom, aTileEntity1.getStackInSlot(aGrabSlots[i]))) { + if (Math.max(aMinMoveAtOnce, aMinTargetStackSize) <= aTileEntity1.getStackInSlot(aGrabSlots[i]).stackSize) { + ItemStack tStack = copyAmount(Math.min(aTileEntity1.getStackInSlot(aGrabSlots[i]).stackSize, Math.min(aMaxMoveAtOnce, aMaxTargetStackSize)), aTileEntity1.getStackInSlot(aGrabSlots[i])); + EntityItem tEntity = new EntityItem(((TileEntity) aTileEntity1).getWorldObj(), tX + 0.5, tY + 0.5, tZ + 0.5, tStack); + tEntity.motionX = tEntity.motionY = tEntity.motionZ = 0; + ((TileEntity) aTileEntity1).getWorldObj().spawnEntityInWorld(tEntity); + aTileEntity1.decrStackSize(aGrabSlots[i], tStack.stackSize); + aTileEntity1.markDirty(); + return (byte) tStack.stackSize; + } + } + } + } + } + } + return 0; + } + + /** + * Moves Stack from Inv-Slot to Inv-Slot, without checking if its even allowed. (useful for internal Inventory Operations) + * + * @return the Amount of moved Items + */ + public static byte moveStackFromSlotAToSlotB(IInventory aTileEntity1, IInventory aTileEntity2, int aGrabFrom, int aPutTo, byte aMaxTargetStackSize, byte aMinTargetStackSize, byte aMaxMoveAtOnce, byte aMinMoveAtOnce) { + if (aTileEntity1 == null || aTileEntity2 == null || aMaxTargetStackSize <= 0 || aMinTargetStackSize <= 0 || aMinTargetStackSize > aMaxTargetStackSize || aMaxMoveAtOnce <= 0 || aMinMoveAtOnce > aMaxMoveAtOnce) + return 0; + + ItemStack tStack1 = aTileEntity1.getStackInSlot(aGrabFrom), tStack2 = aTileEntity2.getStackInSlot(aPutTo), tStack3 = null; + if (tStack1 != null) { + if (tStack2 != null && !areStacksEqual(tStack1, tStack2)) return 0; + tStack3 = copy(tStack1); + aMaxTargetStackSize = (byte) Math.min(aMaxTargetStackSize, Math.min(tStack3.getMaxStackSize(), Math.min(tStack2 == null ? Integer.MAX_VALUE : tStack2.getMaxStackSize(), aTileEntity2.getInventoryStackLimit()))); + tStack3.stackSize = Math.min(tStack3.stackSize, aMaxTargetStackSize - (tStack2 == null ? 0 : tStack2.stackSize)); + if (tStack3.stackSize > aMaxMoveAtOnce) tStack3.stackSize = aMaxMoveAtOnce; + if (tStack3.stackSize + (tStack2 == null ? 0 : tStack2.stackSize) >= Math.min(tStack3.getMaxStackSize(), aMinTargetStackSize) && tStack3.stackSize >= aMinMoveAtOnce) { + tStack3 = aTileEntity1.decrStackSize(aGrabFrom, tStack3.stackSize); + aTileEntity1.markDirty(); + if (tStack3 != null) { + if (tStack2 == null) { + aTileEntity2.setInventorySlotContents(aPutTo, copy(tStack3)); + aTileEntity2.markDirty(); + } else { + tStack2.stackSize += tStack3.stackSize; + aTileEntity2.markDirty(); + } + return (byte) tStack3.stackSize; + } + } + } + return 0; + } + + public static boolean isAllowedToTakeFromSlot(IInventory aTileEntity, int aSlot, byte aSide, ItemStack aStack) { + if (ForgeDirection.getOrientation(aSide) == ForgeDirection.UNKNOWN) { + return isAllowedToTakeFromSlot(aTileEntity, aSlot, (byte) 0, aStack) + || isAllowedToTakeFromSlot(aTileEntity, aSlot, (byte) 1, aStack) + || isAllowedToTakeFromSlot(aTileEntity, aSlot, (byte) 2, aStack) + || isAllowedToTakeFromSlot(aTileEntity, aSlot, (byte) 3, aStack) + || isAllowedToTakeFromSlot(aTileEntity, aSlot, (byte) 4, aStack) + || isAllowedToTakeFromSlot(aTileEntity, aSlot, (byte) 5, aStack); + } + if (aTileEntity instanceof ISidedInventory) + return ((ISidedInventory) aTileEntity).canExtractItem(aSlot, aStack, aSide); + return true; + } + + public static boolean isAllowedToPutIntoSlot(IInventory aTileEntity, int aSlot, byte aSide, ItemStack aStack, byte aMaxStackSize) { + ItemStack tStack = aTileEntity.getStackInSlot(aSlot); + if (tStack != null && (!areStacksEqual(tStack, aStack) || tStack.stackSize >= tStack.getMaxStackSize())) + return false; + if (ForgeDirection.getOrientation(aSide) == ForgeDirection.UNKNOWN) { + return isAllowedToPutIntoSlot(aTileEntity, aSlot, (byte) 0, aStack, aMaxStackSize) + || isAllowedToPutIntoSlot(aTileEntity, aSlot, (byte) 1, aStack, aMaxStackSize) + || isAllowedToPutIntoSlot(aTileEntity, aSlot, (byte) 2, aStack, aMaxStackSize) + || isAllowedToPutIntoSlot(aTileEntity, aSlot, (byte) 3, aStack, aMaxStackSize) + || isAllowedToPutIntoSlot(aTileEntity, aSlot, (byte) 4, aStack, aMaxStackSize) + || isAllowedToPutIntoSlot(aTileEntity, aSlot, (byte) 5, aStack, aMaxStackSize); + } + if (aTileEntity instanceof ISidedInventory && !((ISidedInventory) aTileEntity).canInsertItem(aSlot, aStack, aSide)) + return false; + return aTileEntity.isItemValidForSlot(aSlot, aStack); + } + + /** + * Moves Stack from Inv-Side to Inv-Side. + * + * @return the Amount of moved Items + */ + public static byte moveOneItemStack(Object aTileEntity1, Object aTileEntity2, byte aGrabFrom, byte aPutTo, List aFilter, boolean aInvertFilter, byte aMaxTargetStackSize, byte aMinTargetStackSize, byte aMaxMoveAtOnce, byte aMinMoveAtOnce) { + if (aTileEntity1 != null && aTileEntity1 instanceof IInventory) + return moveOneItemStack((IInventory) aTileEntity1, aTileEntity2, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, true); + return 0; + } + + /** + * This is only because I needed an additional Parameter for the Double Chest Check. + */ + private static byte moveOneItemStack(IInventory aTileEntity1, Object aTileEntity2, byte aGrabFrom, byte aPutTo, List aFilter, boolean aInvertFilter, byte aMaxTargetStackSize, byte aMinTargetStackSize, byte aMaxMoveAtOnce, byte aMinMoveAtOnce, boolean aDoCheckChests) { + if (aTileEntity1 == null || aMaxTargetStackSize <= 0 || aMinTargetStackSize <= 0 || aMaxMoveAtOnce <= 0 || aMinTargetStackSize > aMaxTargetStackSize || aMinMoveAtOnce > aMaxMoveAtOnce) + return 0; + + int[] tGrabSlots = null; + if (aTileEntity1 instanceof ISidedInventory) + tGrabSlots = ((ISidedInventory) aTileEntity1).getAccessibleSlotsFromSide(aGrabFrom); + if (tGrabSlots == null) { + tGrabSlots = new int[aTileEntity1.getSizeInventory()]; + for (int i = 0; i < tGrabSlots.length; i++) tGrabSlots[i] = i; + } + + if (aTileEntity2 != null && aTileEntity2 instanceof IInventory) { + int[] tPutSlots = null; + if (aTileEntity2 instanceof ISidedInventory) + tPutSlots = ((ISidedInventory) aTileEntity2).getAccessibleSlotsFromSide(aPutTo); + + if (tPutSlots == null) { + tPutSlots = new int[((IInventory) aTileEntity2).getSizeInventory()]; + for (int i = 0; i < tPutSlots.length; i++) tPutSlots[i] = i; + } + + for (int i = 0; i < tGrabSlots.length; i++) { + for (int j = 0; j < tPutSlots.length; j++) { + if (listContainsItem(aFilter, aTileEntity1.getStackInSlot(tGrabSlots[i]), true, aInvertFilter)) { + if (isAllowedToTakeFromSlot(aTileEntity1, tGrabSlots[i], aGrabFrom, aTileEntity1.getStackInSlot(tGrabSlots[i]))) { + if (isAllowedToPutIntoSlot((IInventory) aTileEntity2, tPutSlots[j], aPutTo, aTileEntity1.getStackInSlot(tGrabSlots[i]), aMaxTargetStackSize)) { + byte tMovedItemCount = moveStackFromSlotAToSlotB(aTileEntity1, (IInventory) aTileEntity2, tGrabSlots[i], tPutSlots[j], aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce); + if (tMovedItemCount > 0) return tMovedItemCount; + } + } + } + } + } + + if (aDoCheckChests && aTileEntity1 instanceof TileEntityChest) { + TileEntityChest tTileEntity1 = (TileEntityChest) aTileEntity1; + if (tTileEntity1.adjacentChestChecked) { + byte tAmount = 0; + if (tTileEntity1.adjacentChestXNeg != null) { + tAmount = moveOneItemStack(tTileEntity1.adjacentChestXNeg, aTileEntity2, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); + } else if (tTileEntity1.adjacentChestZNeg != null) { + tAmount = moveOneItemStack(tTileEntity1.adjacentChestZNeg, aTileEntity2, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); + } else if (tTileEntity1.adjacentChestXPos != null) { + tAmount = moveOneItemStack(tTileEntity1.adjacentChestXPos, aTileEntity2, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); + } else if (tTileEntity1.adjacentChestZPos != null) { + tAmount = moveOneItemStack(tTileEntity1.adjacentChestZPos, aTileEntity2, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); + } + if (tAmount != 0) return tAmount; + } + } + if (aDoCheckChests && aTileEntity2 instanceof TileEntityChest) { + TileEntityChest tTileEntity2 = (TileEntityChest) aTileEntity2; + if (tTileEntity2.adjacentChestChecked) { + byte tAmount = 0; + if (tTileEntity2.adjacentChestXNeg != null) { + tAmount = moveOneItemStack(aTileEntity1, tTileEntity2.adjacentChestXNeg, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); + } else if (tTileEntity2.adjacentChestZNeg != null) { + tAmount = moveOneItemStack(aTileEntity1, tTileEntity2.adjacentChestZNeg, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); + } else if (tTileEntity2.adjacentChestXPos != null) { + tAmount = moveOneItemStack(aTileEntity1, tTileEntity2.adjacentChestXPos, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); + } else if (tTileEntity2.adjacentChestZPos != null) { + tAmount = moveOneItemStack(aTileEntity1, tTileEntity2.adjacentChestZPos, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce, false); + } + if (tAmount != 0) return tAmount; + } + } + } + + return moveStackIntoPipe(aTileEntity1, aTileEntity2, tGrabSlots, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce); + } + + /** + * Moves Stack from Inv-Side to Inv-Slot. + * + * @return the Amount of moved Items + */ + public static byte moveOneItemStackIntoSlot(Object aTileEntity1, Object aTileEntity2, byte aGrabFrom, int aPutTo, List aFilter, boolean aInvertFilter, byte aMaxTargetStackSize, byte aMinTargetStackSize, byte aMaxMoveAtOnce, byte aMinMoveAtOnce) { + if (aTileEntity1 == null || !(aTileEntity1 instanceof IInventory) || aPutTo < 0 || aMaxTargetStackSize <= 0 || aMinTargetStackSize <= 0 || aMaxMoveAtOnce <= 0 || aMinTargetStackSize > aMaxTargetStackSize || aMinMoveAtOnce > aMaxMoveAtOnce) + return 0; + + int[] tGrabSlots = null; + if (aTileEntity1 instanceof ISidedInventory) + tGrabSlots = ((ISidedInventory) aTileEntity1).getAccessibleSlotsFromSide(aGrabFrom); + if (tGrabSlots == null) { + tGrabSlots = new int[((IInventory) aTileEntity1).getSizeInventory()]; + for (int i = 0; i < tGrabSlots.length; i++) tGrabSlots[i] = i; + } + + if (aTileEntity2 != null && aTileEntity2 instanceof IInventory) { + for (int i = 0; i < tGrabSlots.length; i++) { + if (listContainsItem(aFilter, ((IInventory) aTileEntity1).getStackInSlot(tGrabSlots[i]), true, aInvertFilter)) { + if (isAllowedToTakeFromSlot((IInventory) aTileEntity1, tGrabSlots[i], aGrabFrom, ((IInventory) aTileEntity1).getStackInSlot(tGrabSlots[i]))) { + if (isAllowedToPutIntoSlot((IInventory) aTileEntity2, aPutTo, (byte) 6, ((IInventory) aTileEntity1).getStackInSlot(tGrabSlots[i]), aMaxTargetStackSize)) { + byte tMovedItemCount = moveStackFromSlotAToSlotB((IInventory) aTileEntity1, (IInventory) aTileEntity2, tGrabSlots[i], aPutTo, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce); + if (tMovedItemCount > 0) return tMovedItemCount; + } + } + } + } + } + + moveStackIntoPipe(((IInventory) aTileEntity1), aTileEntity2, tGrabSlots, aGrabFrom, aPutTo, aFilter, aInvertFilter, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce); + return 0; + } + + /** + * Moves Stack from Inv-Slot to Inv-Slot. + * + * @return the Amount of moved Items + */ + public static byte moveFromSlotToSlot(IInventory aTileEntity1, IInventory aTileEntity2, int aGrabFrom, int aPutTo, List aFilter, boolean aInvertFilter, byte aMaxTargetStackSize, byte aMinTargetStackSize, byte aMaxMoveAtOnce, byte aMinMoveAtOnce) { + if (aTileEntity1 == null || aTileEntity2 == null || aGrabFrom < 0 || aPutTo < 0 || aMaxTargetStackSize <= 0 || aMinTargetStackSize <= 0 || aMaxMoveAtOnce <= 0 || aMinTargetStackSize > aMaxTargetStackSize || aMinMoveAtOnce > aMaxMoveAtOnce) + return 0; + if (listContainsItem(aFilter, aTileEntity1.getStackInSlot(aGrabFrom), true, aInvertFilter)) { + if (isAllowedToTakeFromSlot(aTileEntity1, aGrabFrom, (byte) 6, aTileEntity1.getStackInSlot(aGrabFrom))) { + if (isAllowedToPutIntoSlot(aTileEntity2, aPutTo, (byte) 6, aTileEntity1.getStackInSlot(aGrabFrom), aMaxTargetStackSize)) { + byte tMovedItemCount = moveStackFromSlotAToSlotB(aTileEntity1, aTileEntity2, aGrabFrom, aPutTo, aMaxTargetStackSize, aMinTargetStackSize, aMaxMoveAtOnce, aMinMoveAtOnce); + if (tMovedItemCount > 0) return tMovedItemCount; + } + } + } + return 0; + } + + public static boolean listContainsItem(Collection aList, ItemStack aStack, boolean aTIfListEmpty, boolean aInvertFilter) { + if (aStack == null || aStack.stackSize < 1) return false; + if (aList == null) return aTIfListEmpty; + while (aList.contains(null)) aList.remove(null); + if (aList.size() < 1) return aTIfListEmpty; + Iterator tIterator = aList.iterator(); + ItemStack tStack = null; + while (tIterator.hasNext()) + if ((tStack = tIterator.next()) != null && areStacksEqual(aStack, tStack)) return !aInvertFilter; + return aInvertFilter; + } + + public static boolean areStacksOrToolsEqual(ItemStack aStack1, ItemStack aStack2) { + if (aStack1 != null && aStack2 != null && aStack1.getItem() == aStack2.getItem()) { + if (aStack1.getItem().isDamageable()) return true; + return ((aStack1.getTagCompound() == null) == (aStack2.getTagCompound() == null)) && (aStack1.getTagCompound() == null || aStack1.getTagCompound().equals(aStack2.getTagCompound())) && (Items.feather.getDamage(aStack1) == Items.feather.getDamage(aStack2) || Items.feather.getDamage(aStack1) == W || Items.feather.getDamage(aStack2) == W); + } + return false; + } + + public static boolean areFluidsEqual(FluidStack aFluid1, FluidStack aFluid2) { + return areFluidsEqual(aFluid1, aFluid2, false); + } + + public static boolean areFluidsEqual(FluidStack aFluid1, FluidStack aFluid2, boolean aIgnoreNBT) { + return aFluid1 != null && aFluid2 != null && aFluid1.getFluid() == aFluid2.getFluid() && (aIgnoreNBT || ((aFluid1.tag == null) == (aFluid2.tag == null)) && (aFluid1.tag == null || aFluid1.tag.equals(aFluid2.tag))); + } + + public static boolean areStacksEqual(ItemStack aStack1, ItemStack aStack2) { + return areStacksEqual(aStack1, aStack2, false); + } + + public static boolean areStacksEqual(ItemStack aStack1, ItemStack aStack2, boolean aIgnoreNBT) { + return aStack1 != null && aStack2 != null && aStack1.getItem() == aStack2.getItem() && (aIgnoreNBT || ((aStack1.getTagCompound() == null) == (aStack2.getTagCompound() == null)) && (aStack1.getTagCompound() == null || aStack1.getTagCompound().equals(aStack2.getTagCompound()))) && (Items.feather.getDamage(aStack1) == Items.feather.getDamage(aStack2) || Items.feather.getDamage(aStack1) == W || Items.feather.getDamage(aStack2) == W); + } + + public static boolean areUnificationsEqual(ItemStack aStack1, ItemStack aStack2) { + return areUnificationsEqual(aStack1, aStack2, false); + } + + public static boolean areUnificationsEqual(ItemStack aStack1, ItemStack aStack2, boolean aIgnoreNBT) { + return areStacksEqual(GT_OreDictUnificator.get(aStack1), GT_OreDictUnificator.get(aStack2), aIgnoreNBT); + } + + public static String getFluidName(Fluid aFluid, boolean aLocalized) { + if (aFluid == null) return E; + String rName = aLocalized ? aFluid.getLocalizedName(new FluidStack(aFluid, 0)) : aFluid.getUnlocalizedName(); + if (rName.contains("fluid.") || rName.contains("tile.")) + return capitalizeString(rName.replaceAll("fluid.", E).replaceAll("tile.", E)); + return rName; + } + + public static String getFluidName(FluidStack aFluid, boolean aLocalized) { + if (aFluid == null) return E; + return getFluidName(aFluid.getFluid(), aLocalized); + } + + public static void reInit() { + sFilledContainerToData.clear(); + sEmptyContainerToFluidToData.clear(); + for (FluidContainerData tData : sFluidContainerList) { + sFilledContainerToData.put(new GT_ItemStack(tData.filledContainer), tData); + Map tFluidToContainer = sEmptyContainerToFluidToData.get(new GT_ItemStack(tData.emptyContainer)); + if (tFluidToContainer == null) { + sEmptyContainerToFluidToData.put(new GT_ItemStack(tData.emptyContainer), tFluidToContainer = new HashMap()); + GregTech_API.sFluidMappings.add(tFluidToContainer); + } + tFluidToContainer.put(tData.fluid.getFluid(), tData); + } + } + + public static void addFluidContainerData(FluidContainerData aData) { + sFluidContainerList.add(aData); + sFilledContainerToData.put(new GT_ItemStack(aData.filledContainer), aData); + Map tFluidToContainer = sEmptyContainerToFluidToData.get(new GT_ItemStack(aData.emptyContainer)); + if (tFluidToContainer == null) { + sEmptyContainerToFluidToData.put(new GT_ItemStack(aData.emptyContainer), tFluidToContainer = new HashMap()); + GregTech_API.sFluidMappings.add(tFluidToContainer); + } + tFluidToContainer.put(aData.fluid.getFluid(), aData); + } + public static ItemStack fillFluidContainer(FluidStack aFluid, ItemStack aStack, boolean aRemoveFluidDirectly, boolean aCheckIFluidContainerItems) { - if (isStackInvalid(aStack) || aFluid == null) return null; - if (GT_ModHandler.isWater(aFluid) && ItemList.Bottle_Empty.isStackEqual(aStack)) { - if (aFluid.amount >= 250) { - if (aRemoveFluidDirectly) aFluid.amount -= 250; - return new ItemStack(Items.potionitem, 1, 0); - } - return null; - } - if (aCheckIFluidContainerItems && aStack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem)aStack.getItem()).getFluid(aStack) == null && ((IFluidContainerItem)aStack.getItem()).getCapacity(aStack) <= aFluid.amount) { - if (aRemoveFluidDirectly) - aFluid.amount -= ((IFluidContainerItem)aStack.getItem()).fill(aStack = copyAmount(1, aStack), aFluid, true); - else - ((IFluidContainerItem)aStack.getItem()).fill(aStack = copyAmount(1, aStack), aFluid, true); - return aStack; - } - Map tFluidToContainer = sEmptyContainerToFluidToData.get(new GT_ItemStack(aStack)); - if (tFluidToContainer == null) return null; - FluidContainerData tData = tFluidToContainer.get(aFluid.getFluid()); - if (tData == null || tData.fluid.amount > aFluid.amount) return null; - if (aRemoveFluidDirectly) aFluid.amount -= tData.fluid.amount; - return copyAmount(1, tData.filledContainer); + if (isStackInvalid(aStack) || aFluid == null) return null; + if (GT_ModHandler.isWater(aFluid) && ItemList.Bottle_Empty.isStackEqual(aStack)) { + if (aFluid.amount >= 250) { + if (aRemoveFluidDirectly) aFluid.amount -= 250; + return new ItemStack(Items.potionitem, 1, 0); + } + return null; + } + if (aCheckIFluidContainerItems && aStack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem) aStack.getItem()).getFluid(aStack) == null && ((IFluidContainerItem) aStack.getItem()).getCapacity(aStack) <= aFluid.amount) { + if (aRemoveFluidDirectly) + aFluid.amount -= ((IFluidContainerItem) aStack.getItem()).fill(aStack = copyAmount(1, aStack), aFluid, true); + else + ((IFluidContainerItem) aStack.getItem()).fill(aStack = copyAmount(1, aStack), aFluid, true); + return aStack; + } + Map tFluidToContainer = sEmptyContainerToFluidToData.get(new GT_ItemStack(aStack)); + if (tFluidToContainer == null) return null; + FluidContainerData tData = tFluidToContainer.get(aFluid.getFluid()); + if (tData == null || tData.fluid.amount > aFluid.amount) return null; + if (aRemoveFluidDirectly) aFluid.amount -= tData.fluid.amount; + return copyAmount(1, tData.filledContainer); } - + public static ItemStack getFluidDisplayStack(Fluid aFluid) { - return aFluid==null?null:getFluidDisplayStack(new FluidStack(aFluid, 0), false); + return aFluid == null ? null : getFluidDisplayStack(new FluidStack(aFluid, 0), false); } - + public static ItemStack getFluidDisplayStack(FluidStack aFluid, boolean aUseStackSize) { - if (aFluid == null || aFluid.getFluid() == null) return null; - int tmp = 0; - try{ - tmp = aFluid.getFluid().getID(); - }catch(Exception e){ - System.err.println(e); - } - ItemStack rStack = ItemList.Display_Fluid.getWithDamage(aUseStackSize ? aFluid.amount / 1000 : 1, tmp); - NBTTagCompound tNBT = new NBTTagCompound(); - tNBT.setLong("mFluidDisplayAmount", aFluid.amount); - tNBT.setLong("mFluidDisplayHeat", aFluid.getFluid().getTemperature(aFluid)); - tNBT.setBoolean("mFluidState", aFluid.getFluid().isGaseous(aFluid)); - rStack.setTagCompound(tNBT); - return rStack; + if (aFluid == null || aFluid.getFluid() == null) return null; + int tmp = 0; + try { + tmp = aFluid.getFluid().getID(); + } catch (Exception e) { + System.err.println(e); + } + ItemStack rStack = ItemList.Display_Fluid.getWithDamage(aUseStackSize ? aFluid.amount / 1000 : 1, tmp); + NBTTagCompound tNBT = new NBTTagCompound(); + tNBT.setLong("mFluidDisplayAmount", aFluid.amount); + tNBT.setLong("mFluidDisplayHeat", aFluid.getFluid().getTemperature(aFluid)); + tNBT.setBoolean("mFluidState", aFluid.getFluid().isGaseous(aFluid)); + rStack.setTagCompound(tNBT); + return rStack; } - + public static boolean containsFluid(ItemStack aStack, FluidStack aFluid, boolean aCheckIFluidContainerItems) { - if (isStackInvalid(aStack) || aFluid == null) return false; - if (aCheckIFluidContainerItems && aStack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem)aStack.getItem()).getCapacity(aStack) > 0) return aFluid.isFluidEqual(((IFluidContainerItem)aStack.getItem()).getFluid(aStack = copyAmount(1, aStack))); - FluidContainerData tData = sFilledContainerToData.get(new GT_ItemStack(aStack)); - return tData==null? false :tData.fluid.isFluidEqual(aFluid); + if (isStackInvalid(aStack) || aFluid == null) return false; + if (aCheckIFluidContainerItems && aStack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem) aStack.getItem()).getCapacity(aStack) > 0) + return aFluid.isFluidEqual(((IFluidContainerItem) aStack.getItem()).getFluid(aStack = copyAmount(1, aStack))); + FluidContainerData tData = sFilledContainerToData.get(new GT_ItemStack(aStack)); + return tData == null ? false : tData.fluid.isFluidEqual(aFluid); } - - public static FluidStack getFluidForFilledItem(ItemStack aStack, boolean aCheckIFluidContainerItems) { - if (isStackInvalid(aStack)) return null; - if (aCheckIFluidContainerItems && aStack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem)aStack.getItem()).getCapacity(aStack) > 0) return ((IFluidContainerItem)aStack.getItem()).drain(copyAmount(1, aStack), Integer.MAX_VALUE, true); - FluidContainerData tData = sFilledContainerToData.get(new GT_ItemStack(aStack)); - return tData==null?null:tData.fluid.copy(); - } - - public static ItemStack getContainerForFilledItem(ItemStack aStack, boolean aCheckIFluidContainerItems) { - if (isStackInvalid(aStack)) return null; - FluidContainerData tData = sFilledContainerToData.get(new GT_ItemStack(aStack)); - if (tData != null) return copyAmount(1, tData.emptyContainer); - if (aCheckIFluidContainerItems && aStack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem)aStack.getItem()).getCapacity(aStack) > 0) { - ((IFluidContainerItem)aStack.getItem()).drain(aStack = copyAmount(1, aStack), Integer.MAX_VALUE, true); - return aStack; - } - return null; - } - - public static ItemStack getContainerItem(ItemStack aStack, boolean aCheckIFluidContainerItems) { - if (isStackInvalid(aStack)) return null; - if (aStack.getItem().hasContainerItem(aStack)) return aStack.getItem().getContainerItem(aStack); - /** These are all special Cases, in which it is intended to have only GT Blocks outputting those Container Items */ - if (ItemList.Cell_Empty.isStackEqual(aStack, false, true)) return null; - if (ItemList.IC2_Fuel_Can_Filled.isStackEqual(aStack, false, true)) return ItemList.IC2_Fuel_Can_Empty.get(1); - if (aStack.getItem() == Items.potionitem || aStack.getItem() == Items.experience_bottle || ItemList.TF_Vial_FieryBlood.isStackEqual(aStack) || ItemList.TF_Vial_FieryTears.isStackEqual(aStack)) return ItemList.Bottle_Empty.get(1); - - if (aCheckIFluidContainerItems && aStack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem)aStack.getItem()).getCapacity(aStack) > 0) { - ItemStack tStack = copyAmount(1, aStack); - ((IFluidContainerItem)aStack.getItem()).drain(tStack, Integer.MAX_VALUE, true); - if (!areStacksEqual(aStack, tStack)) return tStack; - return null; - } - - int tCapsuleCount = GT_ModHandler.getCapsuleCellContainerCount(aStack); - if (tCapsuleCount > 0) return ItemList.Cell_Empty.get(tCapsuleCount); - - if (ItemList.IC2_ForgeHammer.isStackEqual(aStack) || ItemList.IC2_WireCutter.isStackEqual(aStack)) return copyMetaData(Items.feather.getDamage(aStack) + 1, aStack); - return null; - } - - public static synchronized boolean removeSimpleIC2MachineRecipe(ItemStack aInput, Map aRecipeList, ItemStack aOutput) { - if ((isStackInvalid(aInput) && isStackInvalid(aOutput)) || aRecipeList == null) return false; - boolean rReturn = false; - Iterator> tIterator = aRecipeList.entrySet().iterator(); - aOutput = GT_OreDictUnificator.get(aOutput); - while (tIterator.hasNext()) { - Map.Entry tEntry = tIterator.next(); - if (aInput == null || tEntry.getKey().matches(aInput)) { - List tList = tEntry.getValue().items; - if (tList != null) for (ItemStack tOutput : tList) if (aOutput == null || areStacksEqual(GT_OreDictUnificator.get(tOutput), aOutput)) { - tIterator.remove(); - rReturn = true; - break; - } - } - } - return rReturn; - } - - public static boolean addSimpleIC2MachineRecipe(ItemStack aInput, Map aRecipeList, NBTTagCompound aNBT, Object... aOutput) { - if (isStackInvalid(aInput) || aOutput.length == 0 || aRecipeList == null) return false; - ItemData tOreName = GT_OreDictUnificator.getAssociation(aInput); - for(int i = 0;i 0) + return ((IFluidContainerItem) aStack.getItem()).drain(copyAmount(1, aStack), Integer.MAX_VALUE, true); + FluidContainerData tData = sFilledContainerToData.get(new GT_ItemStack(aStack)); + return tData == null ? null : tData.fluid.copy(); + } + + public static ItemStack getContainerForFilledItem(ItemStack aStack, boolean aCheckIFluidContainerItems) { + if (isStackInvalid(aStack)) return null; + FluidContainerData tData = sFilledContainerToData.get(new GT_ItemStack(aStack)); + if (tData != null) return copyAmount(1, tData.emptyContainer); + if (aCheckIFluidContainerItems && aStack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem) aStack.getItem()).getCapacity(aStack) > 0) { + ((IFluidContainerItem) aStack.getItem()).drain(aStack = copyAmount(1, aStack), Integer.MAX_VALUE, true); + return aStack; + } + return null; + } + + public static ItemStack getContainerItem(ItemStack aStack, boolean aCheckIFluidContainerItems) { + if (isStackInvalid(aStack)) return null; + if (aStack.getItem().hasContainerItem(aStack)) return aStack.getItem().getContainerItem(aStack); + /** These are all special Cases, in which it is intended to have only GT Blocks outputting those Container Items */ + if (ItemList.Cell_Empty.isStackEqual(aStack, false, true)) return null; + if (ItemList.IC2_Fuel_Can_Filled.isStackEqual(aStack, false, true)) return ItemList.IC2_Fuel_Can_Empty.get(1); + if (aStack.getItem() == Items.potionitem || aStack.getItem() == Items.experience_bottle || ItemList.TF_Vial_FieryBlood.isStackEqual(aStack) || ItemList.TF_Vial_FieryTears.isStackEqual(aStack)) + return ItemList.Bottle_Empty.get(1); + + if (aCheckIFluidContainerItems && aStack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem) aStack.getItem()).getCapacity(aStack) > 0) { + ItemStack tStack = copyAmount(1, aStack); + ((IFluidContainerItem) aStack.getItem()).drain(tStack, Integer.MAX_VALUE, true); + if (!areStacksEqual(aStack, tStack)) return tStack; + return null; + } + + int tCapsuleCount = GT_ModHandler.getCapsuleCellContainerCount(aStack); + if (tCapsuleCount > 0) return ItemList.Cell_Empty.get(tCapsuleCount); + + if (ItemList.IC2_ForgeHammer.isStackEqual(aStack) || ItemList.IC2_WireCutter.isStackEqual(aStack)) + return copyMetaData(Items.feather.getDamage(aStack) + 1, aStack); + return null; + } + + public static synchronized boolean removeSimpleIC2MachineRecipe(ItemStack aInput, Map aRecipeList, ItemStack aOutput) { + if ((isStackInvalid(aInput) && isStackInvalid(aOutput)) || aRecipeList == null) return false; + boolean rReturn = false; + Iterator> tIterator = aRecipeList.entrySet().iterator(); + aOutput = GT_OreDictUnificator.get(aOutput); + while (tIterator.hasNext()) { + Map.Entry tEntry = tIterator.next(); + if (aInput == null || tEntry.getKey().matches(aInput)) { + List tList = tEntry.getValue().items; + if (tList != null) for (ItemStack tOutput : tList) + if (aOutput == null || areStacksEqual(GT_OreDictUnificator.get(tOutput), aOutput)) { + tIterator.remove(); + rReturn = true; + break; + } + } + } + return rReturn; + } + + public static boolean addSimpleIC2MachineRecipe(ItemStack aInput, Map aRecipeList, NBTTagCompound aNBT, Object... aOutput) { + if (isStackInvalid(aInput) || aOutput.length == 0 || aRecipeList == null) return false; + ItemData tOreName = GT_OreDictUnificator.getAssociation(aInput); + for (int i = 0; i < aOutput.length; i++) { + if (aOutput[i] == null) { + System.out.println("EmptyIC2Output!" + aInput.getUnlocalizedName()); + return false; + } + } + if (tOreName != null) { + aRecipeList.put(new RecipeInputOreDict(tOreName.toString(), aInput.stackSize), new RecipeOutput(aNBT, GT_OreDictUnificator.getStackArray(true, aOutput))); + } else { + aRecipeList.put(new RecipeInputItemStack(copy(aInput), aInput.stackSize), new RecipeOutput(aNBT, GT_OreDictUnificator.getStackArray(true, aOutput))); + } + return true; + } + + public static ItemStack getWrittenBook(String aMapping, ItemStack aStackToPutNBT) { + if (isStringInvalid(aMapping)) return null; + ItemStack rStack = GregTech_API.sBookList.get(aMapping); + if (rStack == null) return aStackToPutNBT; + if (aStackToPutNBT != null) { + aStackToPutNBT.setTagCompound(rStack.getTagCompound()); + return aStackToPutNBT; + } + return copyAmount(1, rStack); + } + + public static ItemStack getWrittenBook(String aMapping, String aTitle, String aAuthor, String... aPages) { + if (isStringInvalid(aMapping)) return null; + ItemStack rStack = GregTech_API.sBookList.get(aMapping); + if (rStack != null) return copyAmount(1, rStack); + if (isStringInvalid(aTitle) || isStringInvalid(aAuthor) || aPages.length <= 0) return null; + sBookCount++; + rStack = new ItemStack(Items.written_book, 1); NBTTagCompound tNBT = new NBTTagCompound(); tNBT.setString("title", GT_LanguageManager.addStringLocalization("Book." + aTitle + ".Name", aTitle)); tNBT.setString("author", aAuthor); NBTTagList tNBTList = new NBTTagList(); for (byte i = 0; i < aPages.length; i++) { - aPages[i] = GT_LanguageManager.addStringLocalization("Book." + aTitle + ".Page" + ((i<10)?"0"+i:i), aPages[i]); - if (i < 48) { - if (aPages[i].length() < 256) - tNBTList.appendTag(new NBTTagString(aPages[i])); - else - GT_Log.err.println("WARNING: String for written Book too long! -> " + aPages[i]); - } else { - GT_Log.err.println("WARNING: Too much Pages for written Book! -> " + aTitle); - break; - } + aPages[i] = GT_LanguageManager.addStringLocalization("Book." + aTitle + ".Page" + ((i < 10) ? "0" + i : i), aPages[i]); + if (i < 48) { + if (aPages[i].length() < 256) + tNBTList.appendTag(new NBTTagString(aPages[i])); + else + GT_Log.err.println("WARNING: String for written Book too long! -> " + aPages[i]); + } else { + GT_Log.err.println("WARNING: Too much Pages for written Book! -> " + aTitle); + break; + } } - tNBTList.appendTag(new NBTTagString("Credits to " + aAuthor + " for writing this Book. This was Book Nr. " + sBookCount + " at its creation. Gotta get 'em all!")); + tNBTList.appendTag(new NBTTagString("Credits to " + aAuthor + " for writing this Book. This was Book Nr. " + sBookCount + " at its creation. Gotta get 'em all!")); tNBT.setTag("pages", tNBTList); rStack.setTagCompound(tNBT); - GT_Log.out.println("GT_Mod: Added Book to Book List - Mapping: '"+aMapping+"' - Name: '"+aTitle+"' - Author: '"+aAuthor+"'"); + GT_Log.out.println("GT_Mod: Added Book to Book List - Mapping: '" + aMapping + "' - Name: '" + aTitle + "' - Author: '" + aAuthor + "'"); GregTech_API.sBookList.put(aMapping, rStack); - return copy(rStack); - } - - public static Map sPlayedSoundMap = new HashMap(); - - public static boolean doSoundAtClient(String aSoundName, int aTimeUntilNextSound, float aSoundStrength) { - return doSoundAtClient(aSoundName, aTimeUntilNextSound, aSoundStrength, GT.getThePlayer()); - } - - public static boolean doSoundAtClient(String aSoundName, int aTimeUntilNextSound, float aSoundStrength, Entity aEntity) { - if (aEntity == null) return false; - return doSoundAtClient(aSoundName, aTimeUntilNextSound, aSoundStrength, aEntity.posX, aEntity.posY, aEntity.posZ); - } - - public static boolean doSoundAtClient(String aSoundName, int aTimeUntilNextSound, float aSoundStrength, double aX, double aY, double aZ) { - return doSoundAtClient(aSoundName, aTimeUntilNextSound, aSoundStrength, 0.9F + new Random().nextFloat() * 0.2F, aX, aY, aZ); - } - - public static boolean doSoundAtClient(String aSoundName, int aTimeUntilNextSound, float aSoundStrength, float aSoundModulation, double aX, double aY, double aZ) { - if (isStringInvalid(aSoundName) || !FMLCommonHandler.instance().getEffectiveSide().isClient() || GT.getThePlayer() == null || !GT.getThePlayer().worldObj.isRemote) return false; - if (GregTech_API.sMultiThreadedSounds) - new Thread(new GT_Runnable_Sound(GT.getThePlayer().worldObj, MathHelper.floor_double(aX), MathHelper.floor_double(aY), MathHelper.floor_double(aZ), aTimeUntilNextSound, aSoundName, aSoundStrength, aSoundModulation), "Sound Effect").start(); - else - new GT_Runnable_Sound(GT.getThePlayer().worldObj, MathHelper.floor_double(aX), MathHelper.floor_double(aY), MathHelper.floor_double(aZ), aTimeUntilNextSound, aSoundName, aSoundStrength, aSoundModulation).run(); - return true; - } - - public static boolean sendSoundToPlayers(World aWorld, String aSoundName, float aSoundStrength, float aSoundModulation, int aX, int aY, int aZ) { - if (isStringInvalid(aSoundName) || aWorld == null || aWorld.isRemote) return false; - NW.sendPacketToAllPlayersInRange(aWorld, new GT_Packet_Sound(aSoundName, aSoundStrength, aSoundModulation, aX, (short)aY, aZ), aX, aZ); - return true; - } - - public static int stackToInt(ItemStack aStack) { - if (isStackInvalid(aStack)) return 0; - return Item.getIdFromItem(aStack.getItem()) | (Items.feather.getDamage(aStack)<<16); - } - - public static int stackToWildcard(ItemStack aStack) { - if (isStackInvalid(aStack)) return 0; - return Item.getIdFromItem(aStack.getItem()) | (W<<16); - } - - public static ItemStack intToStack(int aStack) { - int tID = aStack&(~0>>>16), tMeta = aStack>>>16; - Item tItem = Item.getItemById(tID); - if (tItem != null) return new ItemStack(tItem, 1, tMeta); - return null; - } - - public static Integer[] stacksToIntegerArray(ItemStack... aStacks) { - Integer[] rArray = new Integer[aStacks.length]; - for (int i = 0; i < rArray.length; i++) { - rArray[i] = stackToInt(aStacks[i]); - } - return rArray; - } - - public static int[] stacksToIntArray(ItemStack... aStacks) { - int[] rArray = new int[aStacks.length]; - for (int i = 0; i < rArray.length; i++) { - rArray[i] = stackToInt(aStacks[i]); - } - return rArray; - } - - public static boolean arrayContains(Object aObject, Object... aObjects) { - return listContains(aObject, Arrays.asList(aObjects)); - } - - public static boolean listContains(Object aObject, Collection aObjects) { - if (aObjects == null) return false; - return aObjects.contains(aObject); - } - - public static boolean arrayContainsNonNull(T... aArray) { - if (aArray != null) for (Object tObject : aArray) if (tObject != null) return true; - return false; - } - - public static ArrayList getArrayListWithoutNulls(T... aArray) { - if (aArray == null) return new ArrayList(); - ArrayList rList = new ArrayList(Arrays.asList(aArray)); - for (int i = 0; i < rList.size(); i++) if (rList.get(i) == null) rList.remove(i--); - return rList; - } - - public static ArrayList getArrayListWithoutTrailingNulls(T... aArray) { - if (aArray == null) return new ArrayList(); - ArrayList rList = new ArrayList(Arrays.asList(aArray)); - for (int i = rList.size() - 1; i >= 0 && rList.get(i) == null;) rList.remove(i--); - return rList; - } - - public static Block getBlock(Object aBlock) { - return (Block)aBlock; - } - - public static Block getBlockFromStack(Object aStack) { - if (isStackInvalid(aStack)) return Blocks.air; - return Block.getBlockFromItem(((ItemStack)aStack).getItem()); - } - - public static boolean isBlockValid(Object aBlock) { - return aBlock != null && (aBlock instanceof Block); - } - - public static boolean isBlockInvalid(Object aBlock) { - return aBlock == null || !(aBlock instanceof Block); - } - - public static boolean isStringValid(Object aString) { - return aString != null && !aString.toString().isEmpty(); - } - - public static boolean isStringInvalid(Object aString) { - return aString == null || aString.toString().isEmpty(); - } - - public static boolean isStackValid(Object aStack) { - return aStack != null && (aStack instanceof ItemStack) && ((ItemStack)aStack).getItem() != null && ((ItemStack)aStack).stackSize >= 0; - } - - public static boolean isStackInvalid(Object aStack) { - return aStack == null || !(aStack instanceof ItemStack) || ((ItemStack)aStack).getItem() == null || ((ItemStack)aStack).stackSize < 0; - } - - public static boolean isDebugItem(ItemStack aStack) { - return /*ItemList.Armor_Cheat.isStackEqual(aStack, T, T) || */areStacksEqual(GT_ModHandler.getIC2Item("debug", 1), aStack, true); - } - - public static ItemStack updateItemStack(ItemStack aStack) { - if (isStackValid(aStack) && aStack.getItem() instanceof GT_Generic_Item) ((GT_Generic_Item)aStack.getItem()).isItemStackUsable(aStack); - return aStack; - } - - public static boolean isOpaqueBlock(World aWorld, int aX, int aY, int aZ) { - return aWorld.getBlock(aX, aY, aZ).isOpaqueCube(); - } - - public static boolean isBlockAir(World aWorld, int aX, int aY, int aZ) { - return aWorld.getBlock(aX, aY, aZ).isAir(aWorld, aX, aY, aZ); - } - - public static boolean hasBlockHitBox(World aWorld, int aX, int aY, int aZ) { - return aWorld.getBlock(aX, aY, aZ).getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ) != null; - } - - public static void setCoordsOnFire(World aWorld, int aX, int aY, int aZ, boolean aReplaceCenter) { - if (aReplaceCenter) - if (aWorld.getBlock(aX , aY , aZ ).getCollisionBoundingBoxFromPool(aWorld, aX , aY , aZ ) == null) aWorld.setBlock(aX , aY , aZ , Blocks.fire); - if (aWorld.getBlock(aX+1, aY , aZ ).getCollisionBoundingBoxFromPool(aWorld, aX+1, aY , aZ ) == null) aWorld.setBlock(aX+1, aY , aZ , Blocks.fire); - if (aWorld.getBlock(aX-1, aY , aZ ).getCollisionBoundingBoxFromPool(aWorld, aX-1, aY , aZ ) == null) aWorld.setBlock(aX-1, aY , aZ , Blocks.fire); - if (aWorld.getBlock(aX , aY+1, aZ ).getCollisionBoundingBoxFromPool(aWorld, aX , aY+1, aZ ) == null) aWorld.setBlock(aX , aY+1, aZ , Blocks.fire); - if (aWorld.getBlock(aX , aY-1, aZ ).getCollisionBoundingBoxFromPool(aWorld, aX , aY-1, aZ ) == null) aWorld.setBlock(aX , aY-1, aZ , Blocks.fire); - if (aWorld.getBlock(aX , aY , aZ+1).getCollisionBoundingBoxFromPool(aWorld, aX , aY , aZ+1) == null) aWorld.setBlock(aX , aY , aZ+1, Blocks.fire); - if (aWorld.getBlock(aX , aY , aZ-1).getCollisionBoundingBoxFromPool(aWorld, aX , aY , aZ-1) == null) aWorld.setBlock(aX , aY , aZ-1, Blocks.fire); - } - - public static ItemStack getProjectile(SubTag aProjectileType, IInventory aInventory) { - if (aInventory != null) for (int i = 0, j = aInventory.getSizeInventory(); i < j; i++) { - ItemStack rStack = aInventory.getStackInSlot(i); - if (isStackValid(rStack) && rStack.getItem() instanceof IProjectileItem && ((IProjectileItem)rStack.getItem()).hasProjectile(aProjectileType, rStack)) return updateItemStack(rStack); - } - return null; - } - - public static void removeNullStacksFromInventory(IInventory aInventory) { - if (aInventory != null) for (int i = 0, j = aInventory.getSizeInventory(); i < j; i++) { - ItemStack tStack = aInventory.getStackInSlot(i); - if (tStack != null && (tStack.stackSize == 0 || tStack.getItem() == null)) aInventory.setInventorySlotContents(i, null); - } - } - - /** - * Converts a Number to a String - */ - public static String parseNumberToString(int aNumber) { - String tString = E; - boolean temp = true , negative = false; - - if (aNumber<0) { - aNumber *= -1; - negative = true; - } - - for (int i = 1000000000; i > 0; i /= 10) { - int tDigit = (aNumber/i)%10; - if ( temp && tDigit != 0) temp = false; - if (!temp) { - tString += tDigit; - if (i != 1) for (int j = i; j > 0; j /= 1000) if (j == 1) tString += ","; - } - } - - if (tString.equals(E)) tString = "0"; - - return negative?"-"+tString:tString; + return copy(rStack); + } + + public static boolean doSoundAtClient(String aSoundName, int aTimeUntilNextSound, float aSoundStrength) { + return doSoundAtClient(aSoundName, aTimeUntilNextSound, aSoundStrength, GT.getThePlayer()); + } + + public static boolean doSoundAtClient(String aSoundName, int aTimeUntilNextSound, float aSoundStrength, Entity aEntity) { + if (aEntity == null) return false; + return doSoundAtClient(aSoundName, aTimeUntilNextSound, aSoundStrength, aEntity.posX, aEntity.posY, aEntity.posZ); + } + + public static boolean doSoundAtClient(String aSoundName, int aTimeUntilNextSound, float aSoundStrength, double aX, double aY, double aZ) { + return doSoundAtClient(aSoundName, aTimeUntilNextSound, aSoundStrength, 0.9F + new Random().nextFloat() * 0.2F, aX, aY, aZ); + } + + public static boolean doSoundAtClient(String aSoundName, int aTimeUntilNextSound, float aSoundStrength, float aSoundModulation, double aX, double aY, double aZ) { + if (isStringInvalid(aSoundName) || !FMLCommonHandler.instance().getEffectiveSide().isClient() || GT.getThePlayer() == null || !GT.getThePlayer().worldObj.isRemote) + return false; + if (GregTech_API.sMultiThreadedSounds) + new Thread(new GT_Runnable_Sound(GT.getThePlayer().worldObj, MathHelper.floor_double(aX), MathHelper.floor_double(aY), MathHelper.floor_double(aZ), aTimeUntilNextSound, aSoundName, aSoundStrength, aSoundModulation), "Sound Effect").start(); + else + new GT_Runnable_Sound(GT.getThePlayer().worldObj, MathHelper.floor_double(aX), MathHelper.floor_double(aY), MathHelper.floor_double(aZ), aTimeUntilNextSound, aSoundName, aSoundStrength, aSoundModulation).run(); + return true; + } + + public static boolean sendSoundToPlayers(World aWorld, String aSoundName, float aSoundStrength, float aSoundModulation, int aX, int aY, int aZ) { + if (isStringInvalid(aSoundName) || aWorld == null || aWorld.isRemote) return false; + NW.sendPacketToAllPlayersInRange(aWorld, new GT_Packet_Sound(aSoundName, aSoundStrength, aSoundModulation, aX, (short) aY, aZ), aX, aZ); + return true; + } + + public static int stackToInt(ItemStack aStack) { + if (isStackInvalid(aStack)) return 0; + return Item.getIdFromItem(aStack.getItem()) | (Items.feather.getDamage(aStack) << 16); + } + + public static int stackToWildcard(ItemStack aStack) { + if (isStackInvalid(aStack)) return 0; + return Item.getIdFromItem(aStack.getItem()) | (W << 16); + } + + public static ItemStack intToStack(int aStack) { + int tID = aStack & (~0 >>> 16), tMeta = aStack >>> 16; + Item tItem = Item.getItemById(tID); + if (tItem != null) return new ItemStack(tItem, 1, tMeta); + return null; + } + + public static Integer[] stacksToIntegerArray(ItemStack... aStacks) { + Integer[] rArray = new Integer[aStacks.length]; + for (int i = 0; i < rArray.length; i++) { + rArray[i] = stackToInt(aStacks[i]); + } + return rArray; + } + + public static int[] stacksToIntArray(ItemStack... aStacks) { + int[] rArray = new int[aStacks.length]; + for (int i = 0; i < rArray.length; i++) { + rArray[i] = stackToInt(aStacks[i]); + } + return rArray; + } + + public static boolean arrayContains(Object aObject, Object... aObjects) { + return listContains(aObject, Arrays.asList(aObjects)); + } + + public static boolean listContains(Object aObject, Collection aObjects) { + if (aObjects == null) return false; + return aObjects.contains(aObject); + } + + public static boolean arrayContainsNonNull(T... aArray) { + if (aArray != null) for (Object tObject : aArray) if (tObject != null) return true; + return false; + } + + public static ArrayList getArrayListWithoutNulls(T... aArray) { + if (aArray == null) return new ArrayList(); + ArrayList rList = new ArrayList(Arrays.asList(aArray)); + for (int i = 0; i < rList.size(); i++) if (rList.get(i) == null) rList.remove(i--); + return rList; + } + + public static ArrayList getArrayListWithoutTrailingNulls(T... aArray) { + if (aArray == null) return new ArrayList(); + ArrayList rList = new ArrayList(Arrays.asList(aArray)); + for (int i = rList.size() - 1; i >= 0 && rList.get(i) == null; ) rList.remove(i--); + return rList; + } + + public static Block getBlock(Object aBlock) { + return (Block) aBlock; + } + + public static Block getBlockFromStack(Object aStack) { + if (isStackInvalid(aStack)) return Blocks.air; + return Block.getBlockFromItem(((ItemStack) aStack).getItem()); + } + + public static boolean isBlockValid(Object aBlock) { + return aBlock != null && (aBlock instanceof Block); + } + + public static boolean isBlockInvalid(Object aBlock) { + return aBlock == null || !(aBlock instanceof Block); + } + + public static boolean isStringValid(Object aString) { + return aString != null && !aString.toString().isEmpty(); + } + + public static boolean isStringInvalid(Object aString) { + return aString == null || aString.toString().isEmpty(); + } + + public static boolean isStackValid(Object aStack) { + return aStack != null && (aStack instanceof ItemStack) && ((ItemStack) aStack).getItem() != null && ((ItemStack) aStack).stackSize >= 0; + } + + public static boolean isStackInvalid(Object aStack) { + return aStack == null || !(aStack instanceof ItemStack) || ((ItemStack) aStack).getItem() == null || ((ItemStack) aStack).stackSize < 0; + } + + public static boolean isDebugItem(ItemStack aStack) { + return /*ItemList.Armor_Cheat.isStackEqual(aStack, T, T) || */areStacksEqual(GT_ModHandler.getIC2Item("debug", 1), aStack, true); + } + + public static ItemStack updateItemStack(ItemStack aStack) { + if (isStackValid(aStack) && aStack.getItem() instanceof GT_Generic_Item) + ((GT_Generic_Item) aStack.getItem()).isItemStackUsable(aStack); + return aStack; + } + + public static boolean isOpaqueBlock(World aWorld, int aX, int aY, int aZ) { + return aWorld.getBlock(aX, aY, aZ).isOpaqueCube(); + } + + public static boolean isBlockAir(World aWorld, int aX, int aY, int aZ) { + return aWorld.getBlock(aX, aY, aZ).isAir(aWorld, aX, aY, aZ); + } + + public static boolean hasBlockHitBox(World aWorld, int aX, int aY, int aZ) { + return aWorld.getBlock(aX, aY, aZ).getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ) != null; + } + + public static void setCoordsOnFire(World aWorld, int aX, int aY, int aZ, boolean aReplaceCenter) { + if (aReplaceCenter) + if (aWorld.getBlock(aX, aY, aZ).getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ) == null) + aWorld.setBlock(aX, aY, aZ, Blocks.fire); + if (aWorld.getBlock(aX + 1, aY, aZ).getCollisionBoundingBoxFromPool(aWorld, aX + 1, aY, aZ) == null) + aWorld.setBlock(aX + 1, aY, aZ, Blocks.fire); + if (aWorld.getBlock(aX - 1, aY, aZ).getCollisionBoundingBoxFromPool(aWorld, aX - 1, aY, aZ) == null) + aWorld.setBlock(aX - 1, aY, aZ, Blocks.fire); + if (aWorld.getBlock(aX, aY + 1, aZ).getCollisionBoundingBoxFromPool(aWorld, aX, aY + 1, aZ) == null) + aWorld.setBlock(aX, aY + 1, aZ, Blocks.fire); + if (aWorld.getBlock(aX, aY - 1, aZ).getCollisionBoundingBoxFromPool(aWorld, aX, aY - 1, aZ) == null) + aWorld.setBlock(aX, aY - 1, aZ, Blocks.fire); + if (aWorld.getBlock(aX, aY, aZ + 1).getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ + 1) == null) + aWorld.setBlock(aX, aY, aZ + 1, Blocks.fire); + if (aWorld.getBlock(aX, aY, aZ - 1).getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ - 1) == null) + aWorld.setBlock(aX, aY, aZ - 1, Blocks.fire); + } + + public static ItemStack getProjectile(SubTag aProjectileType, IInventory aInventory) { + if (aInventory != null) for (int i = 0, j = aInventory.getSizeInventory(); i < j; i++) { + ItemStack rStack = aInventory.getStackInSlot(i); + if (isStackValid(rStack) && rStack.getItem() instanceof IProjectileItem && ((IProjectileItem) rStack.getItem()).hasProjectile(aProjectileType, rStack)) + return updateItemStack(rStack); + } + return null; + } + + public static void removeNullStacksFromInventory(IInventory aInventory) { + if (aInventory != null) for (int i = 0, j = aInventory.getSizeInventory(); i < j; i++) { + ItemStack tStack = aInventory.getStackInSlot(i); + if (tStack != null && (tStack.stackSize == 0 || tStack.getItem() == null)) + aInventory.setInventorySlotContents(i, null); + } + } + + /** + * Converts a Number to a String + */ + public static String parseNumberToString(int aNumber) { + String tString = E; + boolean temp = true, negative = false; + + if (aNumber < 0) { + aNumber *= -1; + negative = true; + } + + for (int i = 1000000000; i > 0; i /= 10) { + int tDigit = (aNumber / i) % 10; + if (temp && tDigit != 0) temp = false; + if (!temp) { + tString += tDigit; + if (i != 1) for (int j = i; j > 0; j /= 1000) if (j == 1) tString += ","; + } + } + + if (tString.equals(E)) tString = "0"; + + return negative ? "-" + tString : tString; + } + + public static NBTTagCompound getNBTContainingBoolean(NBTTagCompound aNBT, Object aTag, boolean aValue) { + if (aNBT == null) aNBT = new NBTTagCompound(); + aNBT.setBoolean(aTag.toString(), aValue); + return aNBT; + } + + public static NBTTagCompound getNBTContainingByte(NBTTagCompound aNBT, Object aTag, byte aValue) { + if (aNBT == null) aNBT = new NBTTagCompound(); + aNBT.setByte(aTag.toString(), aValue); + return aNBT; + } + + public static NBTTagCompound getNBTContainingShort(NBTTagCompound aNBT, Object aTag, short aValue) { + if (aNBT == null) aNBT = new NBTTagCompound(); + aNBT.setShort(aTag.toString(), aValue); + return aNBT; + } + + public static NBTTagCompound getNBTContainingInteger(NBTTagCompound aNBT, Object aTag, int aValue) { + if (aNBT == null) aNBT = new NBTTagCompound(); + aNBT.setInteger(aTag.toString(), aValue); + return aNBT; + } + + public static NBTTagCompound getNBTContainingFloat(NBTTagCompound aNBT, Object aTag, float aValue) { + if (aNBT == null) aNBT = new NBTTagCompound(); + aNBT.setFloat(aTag.toString(), aValue); + return aNBT; + } + + public static NBTTagCompound getNBTContainingDouble(NBTTagCompound aNBT, Object aTag, double aValue) { + if (aNBT == null) aNBT = new NBTTagCompound(); + aNBT.setDouble(aTag.toString(), aValue); + return aNBT; + } + + public static NBTTagCompound getNBTContainingString(NBTTagCompound aNBT, Object aTag, Object aValue) { + if (aNBT == null) aNBT = new NBTTagCompound(); + if (aValue == null) return aNBT; + aNBT.setString(aTag.toString(), aValue.toString()); + return aNBT; + } + + public static boolean isWearingFullFrostHazmat(EntityLivingBase aEntity) { + for (byte i = 1; i < 5; i++) + if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sFrostHazmatList)) return false; + return true; + } + + public static boolean isWearingFullHeatHazmat(EntityLivingBase aEntity) { + for (byte i = 1; i < 5; i++) + if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sHeatHazmatList)) return false; + return true; + } + + public static boolean isWearingFullBioHazmat(EntityLivingBase aEntity) { + for (byte i = 1; i < 5; i++) + if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sBioHazmatList)) return false; + return true; + } + + public static boolean isWearingFullRadioHazmat(EntityLivingBase aEntity) { + for (byte i = 1; i < 5; i++) + if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sRadioHazmatList)) return false; + return true; + } + + public static boolean isWearingFullElectroHazmat(EntityLivingBase aEntity) { + for (byte i = 1; i < 5; i++) + if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sElectroHazmatList)) return false; + return true; + } + + public static boolean isWearingFullGasHazmat(EntityLivingBase aEntity) { + for (byte i = 1; i < 5; i++) + if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sGasHazmatList)) return false; + return true; + } + + public static float getHeatDamageFromItem(ItemStack aStack) { + ItemData tData = GT_OreDictUnificator.getItemData(aStack); + return tData == null ? 0 : (tData.mPrefix == null ? 0 : tData.mPrefix.mHeatDamage) + (tData.hasValidMaterialData() ? tData.mMaterial.mMaterial.mHeatDamage : 0); + } + + public static int getRadioactivityLevel(ItemStack aStack) { + ItemData tData = GT_OreDictUnificator.getItemData(aStack); + if (tData != null && tData.hasValidMaterialData()) { + if (tData.mMaterial.mMaterial.mEnchantmentArmors instanceof Enchantment_Radioactivity) + return tData.mMaterial.mMaterial.mEnchantmentArmorsLevel; + if (tData.mMaterial.mMaterial.mEnchantmentTools instanceof Enchantment_Radioactivity) + return tData.mMaterial.mMaterial.mEnchantmentToolsLevel; + } + return EnchantmentHelper.getEnchantmentLevel(Enchantment_Radioactivity.INSTANCE.effectId, aStack); + } + + public static boolean isImmuneToBreathingGasses(EntityLivingBase aEntity) { + return isWearingFullGasHazmat(aEntity); + } + + public static boolean applyHeatDamage(EntityLivingBase aEntity, float aDamage) { + if (aDamage > 0 && aEntity != null && aEntity.getActivePotionEffect(Potion.fireResistance) == null && !isWearingFullHeatHazmat(aEntity)) { + aEntity.attackEntityFrom(GT_DamageSources.getHeatDamage(), aDamage); + return true; + } + return false; + } + + public static boolean applyFrostDamage(EntityLivingBase aEntity, float aDamage) { + if (aDamage > 0 && aEntity != null && !isWearingFullFrostHazmat(aEntity)) { + aEntity.attackEntityFrom(GT_DamageSources.getFrostDamage(), aDamage); + return true; + } + return false; + } + + public static boolean applyElectricityDamage(EntityLivingBase aEntity, long aVoltage, long aAmperage) { + long aDamage = getTier(aVoltage) * aAmperage * 4; + if (aDamage > 0 && aEntity != null && !isWearingFullElectroHazmat(aEntity)) { + aEntity.attackEntityFrom(GT_DamageSources.getElectricDamage(), aDamage); + return true; + } + return false; + } + + public static boolean applyRadioactivity(EntityLivingBase aEntity, int aLevel, int aAmountOfItems) { + if (aLevel > 0 && aEntity != null && aEntity.getCreatureAttribute() != EnumCreatureAttribute.UNDEAD && aEntity.getCreatureAttribute() != EnumCreatureAttribute.ARTHROPOD && !isWearingFullRadioHazmat(aEntity)) { + PotionEffect tEffect = null; + aEntity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, aLevel * 140 * aAmountOfItems + Math.max(0, ((tEffect = aEntity.getActivePotionEffect(Potion.moveSlowdown)) == null ? 0 : tEffect.getDuration())), Math.max(0, (5 * aLevel) / 7))); + aEntity.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, aLevel * 150 * aAmountOfItems + Math.max(0, ((tEffect = aEntity.getActivePotionEffect(Potion.digSlowdown)) == null ? 0 : tEffect.getDuration())), Math.max(0, (5 * aLevel) / 7))); + aEntity.addPotionEffect(new PotionEffect(Potion.confusion.id, aLevel * 130 * aAmountOfItems + Math.max(0, ((tEffect = aEntity.getActivePotionEffect(Potion.confusion)) == null ? 0 : tEffect.getDuration())), Math.max(0, (5 * aLevel) / 7))); + aEntity.addPotionEffect(new PotionEffect(Potion.weakness.id, aLevel * 150 * aAmountOfItems + Math.max(0, ((tEffect = aEntity.getActivePotionEffect(Potion.weakness)) == null ? 0 : tEffect.getDuration())), Math.max(0, (5 * aLevel) / 7))); + aEntity.addPotionEffect(new PotionEffect(Potion.hunger.id, aLevel * 130 * aAmountOfItems + Math.max(0, ((tEffect = aEntity.getActivePotionEffect(Potion.hunger)) == null ? 0 : tEffect.getDuration())), Math.max(0, (5 * aLevel) / 7))); + aEntity.addPotionEffect(new PotionEffect(24 /* IC2 Radiation */, aLevel * 180 * aAmountOfItems + Math.max(0, ((tEffect = aEntity.getActivePotionEffect(Potion.potionTypes[24])) == null ? 0 : tEffect.getDuration())), Math.max(0, (5 * aLevel) / 7))); + return true; + } + return false; + } + + public static ItemStack setStack(Object aSetStack, Object aToStack) { + if (isStackInvalid(aSetStack) || isStackInvalid(aToStack)) return null; + ((ItemStack) aSetStack).func_150996_a(((ItemStack) aToStack).getItem()); + ((ItemStack) aSetStack).stackSize = ((ItemStack) aToStack).stackSize; + Items.feather.setDamage((ItemStack) aSetStack, Items.feather.getDamage((ItemStack) aToStack)); + ((ItemStack) aSetStack).setTagCompound(((ItemStack) aToStack).getTagCompound()); + return (ItemStack) aSetStack; + } + + public static FluidStack[] copyFluidArray(FluidStack... aStacks) { + FluidStack[] rStacks = new FluidStack[aStacks.length]; + for (int i = 0; i < aStacks.length; i++) if (aStacks[i] != null) rStacks[i] = aStacks[i].copy(); + return rStacks; + } + + public static ItemStack[] copyStackArray(Object... aStacks) { + ItemStack[] rStacks = new ItemStack[aStacks.length]; + for (int i = 0; i < aStacks.length; i++) rStacks[i] = copy(aStacks[i]); + return rStacks; + } + + public static ItemStack copy(Object... aStacks) { + for (Object tStack : aStacks) if (isStackValid(tStack)) return ((ItemStack) tStack).copy(); + return null; + } + + public static ItemStack copyAmount(long aAmount, Object... aStacks) { + ItemStack rStack = copy(aStacks); + if (isStackInvalid(rStack)) return null; + if (aAmount > 64) aAmount = 64; + else if (aAmount == -1) aAmount = 111; + else if (aAmount < 0) aAmount = 0; + rStack.stackSize = (byte) aAmount; + return rStack; + } + + public static ItemStack copyMetaData(long aMetaData, Object... aStacks) { + ItemStack rStack = copy(aStacks); + if (isStackInvalid(rStack)) return null; + Items.feather.setDamage(rStack, (short) aMetaData); + return rStack; + } + + public static ItemStack copyAmountAndMetaData(long aAmount, long aMetaData, Object... aStacks) { + ItemStack rStack = copyAmount(aAmount, aStacks); + if (isStackInvalid(rStack)) return null; + Items.feather.setDamage(rStack, (short) aMetaData); + return rStack; + } + + /** + * returns a copy of an ItemStack with its Stacksize being multiplied by aMultiplier + */ + public static ItemStack mul(long aMultiplier, Object... aStacks) { + ItemStack rStack = copy(aStacks); + if (rStack == null) return null; + rStack.stackSize *= aMultiplier; + return rStack; + } + + /** + * Loads an ItemStack properly. + */ + public static ItemStack loadItem(NBTTagCompound aNBT, String aTagName) { + return loadItem(aNBT.getCompoundTag(aTagName)); + } + + /** + * Loads an ItemStack properly. + */ + public static FluidStack loadFluid(NBTTagCompound aNBT, String aTagName) { + return loadFluid(aNBT.getCompoundTag(aTagName)); + } + + /** + * Loads an ItemStack properly. + */ + public static ItemStack loadItem(NBTTagCompound aNBT) { + if (aNBT == null) return null; + ItemStack rStack = ItemStack.loadItemStackFromNBT(aNBT); + try { + if (rStack != null && (rStack.getItem().getClass().getName().startsWith("ic2.core.migration"))) { + rStack.getItem().onUpdate(rStack, DW, null, 0, false); + } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + return GT_OreDictUnificator.get(true, rStack); + } + + /** + * Loads an ItemStack properly. + */ + public static FluidStack loadFluid(NBTTagCompound aNBT) { + if (aNBT == null) return null; + return FluidStack.loadFluidStackFromNBT(aNBT); + } + + public static E selectItemInList(int aIndex, E aReplacement, List aList) { + if (aList == null || aList.isEmpty()) return aReplacement; + if (aList.size() <= aIndex) return aList.get(aList.size() - 1); + if (aIndex < 0) return aList.get(0); + return aList.get(aIndex); + } + + public static E selectItemInList(int aIndex, E aReplacement, E... aList) { + if (aList == null || aList.length == 0) return aReplacement; + if (aList.length <= aIndex) return aList[aList.length - 1]; + if (aIndex < 0) return aList[0]; + return aList[aIndex]; + } + + public static boolean isStackInList(ItemStack aStack, Collection aList) { + if (aStack == null) { + return false; + } + return isStackInList(new GT_ItemStack(aStack), aList); + } + + public static boolean isStackInList(GT_ItemStack aStack, Collection aList) { + return aStack != null && (aList.contains(aStack) || aList.contains(new GT_ItemStack(aStack.mItem, aStack.mStackSize, W))); } - - public static NBTTagCompound getNBTContainingBoolean(NBTTagCompound aNBT, Object aTag, boolean aValue) { - if (aNBT == null) aNBT = new NBTTagCompound(); - aNBT.setBoolean(aTag.toString(), aValue); - return aNBT; - } - - public static NBTTagCompound getNBTContainingByte(NBTTagCompound aNBT, Object aTag, byte aValue) { - if (aNBT == null) aNBT = new NBTTagCompound(); - aNBT.setByte(aTag.toString(), aValue); - return aNBT; - } - - public static NBTTagCompound getNBTContainingShort(NBTTagCompound aNBT, Object aTag, short aValue) { - if (aNBT == null) aNBT = new NBTTagCompound(); - aNBT.setShort(aTag.toString(), aValue); - return aNBT; - } - - public static NBTTagCompound getNBTContainingInteger(NBTTagCompound aNBT, Object aTag, int aValue) { - if (aNBT == null) aNBT = new NBTTagCompound(); - aNBT.setInteger(aTag.toString(), aValue); - return aNBT; - } - - public static NBTTagCompound getNBTContainingFloat(NBTTagCompound aNBT, Object aTag, float aValue) { - if (aNBT == null) aNBT = new NBTTagCompound(); - aNBT.setFloat(aTag.toString(), aValue); - return aNBT; - } - - public static NBTTagCompound getNBTContainingDouble(NBTTagCompound aNBT, Object aTag, double aValue) { - if (aNBT == null) aNBT = new NBTTagCompound(); - aNBT.setDouble(aTag.toString(), aValue); - return aNBT; - } - - public static NBTTagCompound getNBTContainingString(NBTTagCompound aNBT, Object aTag, Object aValue) { - if (aNBT == null) aNBT = new NBTTagCompound(); - if (aValue == null) return aNBT; - aNBT.setString(aTag.toString(), aValue.toString()); - return aNBT; - } - - public static boolean isWearingFullFrostHazmat(EntityLivingBase aEntity) { - for (byte i = 1; i < 5; i++) if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sFrostHazmatList)) return false; - return true; - } - - public static boolean isWearingFullHeatHazmat(EntityLivingBase aEntity) { - for (byte i = 1; i < 5; i++) if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sHeatHazmatList)) return false; - return true; - } - - public static boolean isWearingFullBioHazmat(EntityLivingBase aEntity) { - for (byte i = 1; i < 5; i++) if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sBioHazmatList)) return false; - return true; - } - - public static boolean isWearingFullRadioHazmat(EntityLivingBase aEntity) { - for (byte i = 1; i < 5; i++) if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sRadioHazmatList)) return false; - return true; - } - - public static boolean isWearingFullElectroHazmat(EntityLivingBase aEntity) { - for (byte i = 1; i < 5; i++) if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sElectroHazmatList)) return false; - return true; - } - - public static boolean isWearingFullGasHazmat(EntityLivingBase aEntity) { - for (byte i = 1; i < 5; i++) if (!isStackInList(aEntity.getEquipmentInSlot(i), GregTech_API.sGasHazmatList)) return false; - return true; - } - - public static float getHeatDamageFromItem(ItemStack aStack) { - ItemData tData = GT_OreDictUnificator.getItemData(aStack); - return tData==null?0:(tData.mPrefix==null?0:tData.mPrefix.mHeatDamage) + (tData.hasValidMaterialData()?tData.mMaterial.mMaterial.mHeatDamage:0); - } - - public static int getRadioactivityLevel(ItemStack aStack) { - ItemData tData = GT_OreDictUnificator.getItemData(aStack); - if (tData != null && tData.hasValidMaterialData()) { - if (tData.mMaterial.mMaterial.mEnchantmentArmors instanceof Enchantment_Radioactivity) return tData.mMaterial.mMaterial.mEnchantmentArmorsLevel; - if (tData.mMaterial.mMaterial.mEnchantmentTools instanceof Enchantment_Radioactivity) return tData.mMaterial.mMaterial.mEnchantmentToolsLevel; - } - return EnchantmentHelper.getEnchantmentLevel(Enchantment_Radioactivity.INSTANCE.effectId, aStack); - } - - public static boolean isImmuneToBreathingGasses(EntityLivingBase aEntity) { - return isWearingFullGasHazmat(aEntity); - } - - public static boolean applyHeatDamage(EntityLivingBase aEntity, float aDamage) { - if (aDamage > 0 && aEntity != null && aEntity.getActivePotionEffect(Potion.fireResistance) == null && !isWearingFullHeatHazmat(aEntity)) { - aEntity.attackEntityFrom(GT_DamageSources.getHeatDamage(), aDamage); - return true; - } - return false; - } - - public static boolean applyFrostDamage(EntityLivingBase aEntity, float aDamage) { - if (aDamage > 0 && aEntity != null && !isWearingFullFrostHazmat(aEntity)) { - aEntity.attackEntityFrom(GT_DamageSources.getFrostDamage(), aDamage); - return true; - } - return false; - } - - public static boolean applyElectricityDamage(EntityLivingBase aEntity, long aVoltage, long aAmperage) { - long aDamage = getTier(aVoltage) * aAmperage * 4; - if (aDamage > 0 && aEntity != null && !isWearingFullElectroHazmat(aEntity)) { - aEntity.attackEntityFrom(GT_DamageSources.getElectricDamage(), aDamage); - return true; - } - return false; - } - - public static boolean applyRadioactivity(EntityLivingBase aEntity, int aLevel, int aAmountOfItems) { - if (aLevel > 0 && aEntity != null && aEntity.getCreatureAttribute() != EnumCreatureAttribute.UNDEAD && aEntity.getCreatureAttribute() != EnumCreatureAttribute.ARTHROPOD && !isWearingFullRadioHazmat(aEntity)) { - PotionEffect tEffect = null; - aEntity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id , aLevel * 140 * aAmountOfItems + Math.max(0, ((tEffect = aEntity.getActivePotionEffect(Potion.moveSlowdown ))==null?0:tEffect.getDuration())), Math.max(0, (5*aLevel) / 7))); - aEntity.addPotionEffect(new PotionEffect(Potion.digSlowdown.id , aLevel * 150 * aAmountOfItems + Math.max(0, ((tEffect = aEntity.getActivePotionEffect(Potion.digSlowdown ))==null?0:tEffect.getDuration())), Math.max(0, (5*aLevel) / 7))); - aEntity.addPotionEffect(new PotionEffect(Potion.confusion.id , aLevel * 130 * aAmountOfItems + Math.max(0, ((tEffect = aEntity.getActivePotionEffect(Potion.confusion ))==null?0:tEffect.getDuration())), Math.max(0, (5*aLevel) / 7))); - aEntity.addPotionEffect(new PotionEffect(Potion.weakness.id , aLevel * 150 * aAmountOfItems + Math.max(0, ((tEffect = aEntity.getActivePotionEffect(Potion.weakness ))==null?0:tEffect.getDuration())), Math.max(0, (5*aLevel) / 7))); - aEntity.addPotionEffect(new PotionEffect(Potion.hunger.id , aLevel * 130 * aAmountOfItems + Math.max(0, ((tEffect = aEntity.getActivePotionEffect(Potion.hunger ))==null?0:tEffect.getDuration())), Math.max(0, (5*aLevel) / 7))); - aEntity.addPotionEffect(new PotionEffect(24 /* IC2 Radiation */ , aLevel * 180 * aAmountOfItems + Math.max(0, ((tEffect = aEntity.getActivePotionEffect(Potion.potionTypes[24] ))==null?0:tEffect.getDuration())), Math.max(0, (5*aLevel) / 7))); - return true; - } - return false; - } - - public static ItemStack setStack(Object aSetStack, Object aToStack) { - if (isStackInvalid(aSetStack) || isStackInvalid(aToStack)) return null; - ((ItemStack)aSetStack).func_150996_a(((ItemStack)aToStack).getItem()); - ((ItemStack)aSetStack).stackSize = ((ItemStack)aToStack).stackSize; - Items.feather.setDamage((ItemStack)aSetStack, Items.feather.getDamage((ItemStack)aToStack)); - ((ItemStack)aSetStack).setTagCompound(((ItemStack)aToStack).getTagCompound()); - return (ItemStack)aSetStack; - } - public static FluidStack[] copyFluidArray(FluidStack... aStacks) { - FluidStack[] rStacks = new FluidStack[aStacks.length]; - for (int i = 0; i < aStacks.length; i++) if (aStacks[i] != null) rStacks[i] = aStacks[i].copy(); - return rStacks; - } - - public static ItemStack[] copyStackArray(Object... aStacks) { - ItemStack[] rStacks = new ItemStack[aStacks.length]; - for (int i = 0; i < aStacks.length; i++) rStacks[i] = copy(aStacks[i]); - return rStacks; - } - - public static ItemStack copy(Object... aStacks) { - for (Object tStack : aStacks) if (isStackValid(tStack)) return ((ItemStack)tStack).copy(); - return null; - } - - public static ItemStack copyAmount(long aAmount, Object... aStacks) { - ItemStack rStack = copy(aStacks); - if (isStackInvalid(rStack)) return null; - if (aAmount > 64) aAmount = 64; else if (aAmount == -1) aAmount = 111; else if (aAmount < 0) aAmount = 0; - rStack.stackSize = (byte)aAmount; - return rStack; - } - - public static ItemStack copyMetaData(long aMetaData, Object... aStacks) { - ItemStack rStack = copy(aStacks); - if (isStackInvalid(rStack)) return null; - Items.feather.setDamage(rStack, (short)aMetaData); - return rStack; - } - - public static ItemStack copyAmountAndMetaData(long aAmount, long aMetaData, Object... aStacks) { - ItemStack rStack = copyAmount(aAmount, aStacks); - if (isStackInvalid(rStack)) return null; - Items.feather.setDamage(rStack, (short)aMetaData); - return rStack; - } - - /** - * returns a copy of an ItemStack with its Stacksize being multiplied by aMultiplier - */ - public static ItemStack mul(long aMultiplier, Object... aStacks) { - ItemStack rStack = copy(aStacks); - if (rStack == null) return null; - rStack.stackSize *= aMultiplier; - return rStack; - } - - /** - * Loads an ItemStack properly. - */ - public static ItemStack loadItem(NBTTagCompound aNBT, String aTagName) { - return loadItem(aNBT.getCompoundTag(aTagName)); - } - - /** - * Loads an ItemStack properly. - */ - public static FluidStack loadFluid(NBTTagCompound aNBT, String aTagName) { - return loadFluid(aNBT.getCompoundTag(aTagName)); - } - - /** - * Loads an ItemStack properly. - */ - public static ItemStack loadItem(NBTTagCompound aNBT) { - if (aNBT == null) return null; - ItemStack rStack = ItemStack.loadItemStackFromNBT(aNBT); - try { - if (rStack != null && (rStack.getItem().getClass().getName().startsWith("ic2.core.migration"))) { - rStack.getItem().onUpdate(rStack, DW, null, 0, false); - } - } catch(Throwable e) { - e.printStackTrace(GT_Log.err); - } - return GT_OreDictUnificator.get(true , rStack); - } - - /** - * Loads an ItemStack properly. - */ - public static FluidStack loadFluid(NBTTagCompound aNBT) { - if (aNBT == null) return null; - return FluidStack.loadFluidStackFromNBT(aNBT); - } - - public static E selectItemInList(int aIndex, E aReplacement, List aList) { - if (aList == null || aList.isEmpty()) return aReplacement; - if (aList.size() <= aIndex) return aList.get(aList.size() - 1); - if (aIndex < 0) return aList.get(0); - return aList.get(aIndex); - } - - public static E selectItemInList(int aIndex, E aReplacement, E... aList) { - if (aList == null || aList.length == 0) return aReplacement; - if (aList.length <= aIndex) return aList[aList.length - 1]; - if (aIndex < 0) return aList[0]; - return aList[aIndex]; - } - - public static boolean isStackInList(ItemStack aStack, Collection aList) { - if (aStack == null) {return false;} - return isStackInList(new GT_ItemStack(aStack), aList); - } - - public static boolean isStackInList(GT_ItemStack aStack, Collection aList) { - return aStack != null && (aList.contains(aStack) || aList.contains(new GT_ItemStack(aStack.mItem, aStack.mStackSize, W))); - } - /** * re-maps all Keys of a Map after the Keys were weakened. */ - public static Map reMap(Map aMap) { - Map tMap = new HashMap(); - tMap.putAll(aMap); - aMap.clear(); - aMap.putAll(tMap); - return aMap; - } - - /** - * Why the fuck do neither Java nor Guava have a Function to do this? - */ - public static LinkedHashMap sortMapByValuesAcending(Map aMap) { - List> tEntrySet = new LinkedList>(aMap.entrySet()); - Collections.sort(tEntrySet, new Comparator>() {@Override public int compare(Entry aValue1, Entry aValue2) {return aValue1.getValue().compareTo(aValue2.getValue());}}); - LinkedHashMap rMap = new LinkedHashMap(); - for (Map.Entry tEntry : tEntrySet) rMap.put(tEntry.getKey(), tEntry.getValue()); + public static Map reMap(Map aMap) { + Map tMap = new HashMap(); + tMap.putAll(aMap); + aMap.clear(); + aMap.putAll(tMap); + return aMap; + } + + /** + * Why the fuck do neither Java nor Guava have a Function to do this? + */ + public static LinkedHashMap sortMapByValuesAcending(Map aMap) { + List> tEntrySet = new LinkedList>(aMap.entrySet()); + Collections.sort(tEntrySet, new Comparator>() { + @Override + public int compare(Entry aValue1, Entry aValue2) { + return aValue1.getValue().compareTo(aValue2.getValue()); + } + }); + LinkedHashMap rMap = new LinkedHashMap(); + for (Map.Entry tEntry : tEntrySet) rMap.put(tEntry.getKey(), tEntry.getValue()); return rMap; } - - /** - * Why the fuck do neither Java nor Guava have a Function to do this? - */ - public static LinkedHashMap sortMapByValuesDescending(Map aMap) { - List> tEntrySet = new LinkedList>(aMap.entrySet()); - Collections.sort(tEntrySet, new Comparator>() {@Override public int compare(Entry aValue1, Entry aValue2) {return -aValue1.getValue().compareTo(aValue2.getValue());}}); - LinkedHashMap rMap = new LinkedHashMap(); - for (Map.Entry tEntry : tEntrySet) rMap.put(tEntry.getKey(), tEntry.getValue()); + + /** + * Why the fuck do neither Java nor Guava have a Function to do this? + */ + public static LinkedHashMap sortMapByValuesDescending(Map aMap) { + List> tEntrySet = new LinkedList>(aMap.entrySet()); + Collections.sort(tEntrySet, new Comparator>() { + @Override + public int compare(Entry aValue1, Entry aValue2) { + return -aValue1.getValue().compareTo(aValue2.getValue()); + } + }); + LinkedHashMap rMap = new LinkedHashMap(); + for (Map.Entry tEntry : tEntrySet) rMap.put(tEntry.getKey(), tEntry.getValue()); return rMap; } - + /** * Translates a Material Amount into an Amount of Fluid in Fluid Material Units. */ public static long translateMaterialToFluidAmount(long aMaterialAmount, boolean aRoundUp) { - return translateMaterialToAmount(aMaterialAmount, L, aRoundUp); + return translateMaterialToAmount(aMaterialAmount, L, aRoundUp); } - + /** * Translates a Material Amount into an Amount of Fluid. Second Parameter for things like Bucket Amounts (1000) and similar */ public static long translateMaterialToAmount(long aMaterialAmount, long aAmountPerUnit, boolean aRoundUp) { - return Math.max(0, ((aMaterialAmount * aAmountPerUnit) / M) + (aRoundUp && (aMaterialAmount * aAmountPerUnit) % M > 0 ? 1 : 0)); + return Math.max(0, ((aMaterialAmount * aAmountPerUnit) / M) + (aRoundUp && (aMaterialAmount * aAmountPerUnit) % M > 0 ? 1 : 0)); } - - /** - * This checks if the Dimension is really a Dimension and not another Planet or something. - * Used for my Teleporter. - */ - public static boolean isRealDimension(int aDimensionID) { - try { - if (DimensionManager.getProvider(aDimensionID).getClass().getName().contains("com.xcompwiz.mystcraft")) return true; - } catch (Throwable e) {/*Do nothing*/} - try { - if (DimensionManager.getProvider(aDimensionID).getClass().getName().contains("TwilightForest")) return true; - } catch (Throwable e) {/*Do nothing*/} - return GregTech_API.sDimensionalList.contains(aDimensionID); - } - - public static boolean moveEntityToDimensionAtCoords(Entity aEntity, int aDimension, double aX, double aY, double aZ) { - WorldServer tTargetWorld = DimensionManager.getWorld(aDimension), tOriginalWorld = DimensionManager.getWorld(aEntity.worldObj.provider.dimensionId); - if (tTargetWorld != null && tOriginalWorld != null && tTargetWorld != tOriginalWorld) { - if (aEntity.ridingEntity != null) aEntity.mountEntity(null); - if (aEntity.riddenByEntity != null) aEntity.riddenByEntity.mountEntity(null); - - if (aEntity instanceof EntityPlayerMP) { - EntityPlayerMP aPlayer = (EntityPlayerMP)aEntity; - aPlayer.dimension = aDimension; - aPlayer.playerNetServerHandler.sendPacket(new S07PacketRespawn(aPlayer.dimension, aPlayer.worldObj.difficultySetting, aPlayer.worldObj.getWorldInfo().getTerrainType(), aPlayer.theItemInWorldManager.getGameType())); - tOriginalWorld.removePlayerEntityDangerously(aPlayer); - aPlayer.isDead = false; - aPlayer.setWorld(tTargetWorld); - MinecraftServer.getServer().getConfigurationManager().func_72375_a(aPlayer, tOriginalWorld); - aPlayer.playerNetServerHandler.setPlayerLocation(aX+0.5, aY+0.5, aZ+0.5, aPlayer.rotationYaw, aPlayer.rotationPitch); - aPlayer.theItemInWorldManager.setWorld(tTargetWorld); - MinecraftServer.getServer().getConfigurationManager().updateTimeAndWeatherForPlayer(aPlayer, tTargetWorld); - MinecraftServer.getServer().getConfigurationManager().syncPlayerInventory(aPlayer); - Iterator tIterator = aPlayer.getActivePotionEffects().iterator(); - while (tIterator.hasNext()) { - PotionEffect potioneffect = (PotionEffect)tIterator.next(); - aPlayer.playerNetServerHandler.sendPacket(new S1DPacketEntityEffect(aPlayer.getEntityId(), potioneffect)); - } - aPlayer.playerNetServerHandler.setPlayerLocation(aX+0.5, aY+0.5, aZ+0.5, aPlayer.rotationYaw, aPlayer.rotationPitch); - FMLCommonHandler.instance().firePlayerChangedDimensionEvent(aPlayer, tOriginalWorld.provider.dimensionId, aDimension); - } else { - aEntity.setPosition(aX+0.5, aY+0.5, aZ+0.5); - aEntity.worldObj.removeEntity(aEntity); - aEntity.dimension = aDimension; - aEntity.isDead = false; - Entity tNewEntity = EntityList.createEntityByName(EntityList.getEntityString(aEntity), tTargetWorld); - if (tNewEntity != null) { - tNewEntity.copyDataFrom(aEntity, true); - aEntity.setDead(); - tNewEntity.isDead = false; - boolean temp = tNewEntity.forceSpawn; - tNewEntity.forceSpawn = true; - tTargetWorld.spawnEntityInWorld(tNewEntity); - tNewEntity.forceSpawn = temp; - tNewEntity.isDead = false; - aEntity = tNewEntity; - } - } - - if (aEntity instanceof EntityLivingBase) { - ((EntityLivingBase)aEntity).setPositionAndUpdate(aX, aY, aZ); - } else { - aEntity.setPosition(aX, aY, aZ); - } - + + /** + * This checks if the Dimension is really a Dimension and not another Planet or something. + * Used for my Teleporter. + */ + public static boolean isRealDimension(int aDimensionID) { + try { + if (DimensionManager.getProvider(aDimensionID).getClass().getName().contains("com.xcompwiz.mystcraft")) + return true; + } catch (Throwable e) {/*Do nothing*/} + try { + if (DimensionManager.getProvider(aDimensionID).getClass().getName().contains("TwilightForest")) return true; + } catch (Throwable e) {/*Do nothing*/} + return GregTech_API.sDimensionalList.contains(aDimensionID); + } + + public static boolean moveEntityToDimensionAtCoords(Entity aEntity, int aDimension, double aX, double aY, double aZ) { + WorldServer tTargetWorld = DimensionManager.getWorld(aDimension), tOriginalWorld = DimensionManager.getWorld(aEntity.worldObj.provider.dimensionId); + if (tTargetWorld != null && tOriginalWorld != null && tTargetWorld != tOriginalWorld) { + if (aEntity.ridingEntity != null) aEntity.mountEntity(null); + if (aEntity.riddenByEntity != null) aEntity.riddenByEntity.mountEntity(null); + + if (aEntity instanceof EntityPlayerMP) { + EntityPlayerMP aPlayer = (EntityPlayerMP) aEntity; + aPlayer.dimension = aDimension; + aPlayer.playerNetServerHandler.sendPacket(new S07PacketRespawn(aPlayer.dimension, aPlayer.worldObj.difficultySetting, aPlayer.worldObj.getWorldInfo().getTerrainType(), aPlayer.theItemInWorldManager.getGameType())); + tOriginalWorld.removePlayerEntityDangerously(aPlayer); + aPlayer.isDead = false; + aPlayer.setWorld(tTargetWorld); + MinecraftServer.getServer().getConfigurationManager().func_72375_a(aPlayer, tOriginalWorld); + aPlayer.playerNetServerHandler.setPlayerLocation(aX + 0.5, aY + 0.5, aZ + 0.5, aPlayer.rotationYaw, aPlayer.rotationPitch); + aPlayer.theItemInWorldManager.setWorld(tTargetWorld); + MinecraftServer.getServer().getConfigurationManager().updateTimeAndWeatherForPlayer(aPlayer, tTargetWorld); + MinecraftServer.getServer().getConfigurationManager().syncPlayerInventory(aPlayer); + Iterator tIterator = aPlayer.getActivePotionEffects().iterator(); + while (tIterator.hasNext()) { + PotionEffect potioneffect = (PotionEffect) tIterator.next(); + aPlayer.playerNetServerHandler.sendPacket(new S1DPacketEntityEffect(aPlayer.getEntityId(), potioneffect)); + } + aPlayer.playerNetServerHandler.setPlayerLocation(aX + 0.5, aY + 0.5, aZ + 0.5, aPlayer.rotationYaw, aPlayer.rotationPitch); + FMLCommonHandler.instance().firePlayerChangedDimensionEvent(aPlayer, tOriginalWorld.provider.dimensionId, aDimension); + } else { + aEntity.setPosition(aX + 0.5, aY + 0.5, aZ + 0.5); + aEntity.worldObj.removeEntity(aEntity); + aEntity.dimension = aDimension; + aEntity.isDead = false; + Entity tNewEntity = EntityList.createEntityByName(EntityList.getEntityString(aEntity), tTargetWorld); + if (tNewEntity != null) { + tNewEntity.copyDataFrom(aEntity, true); + aEntity.setDead(); + tNewEntity.isDead = false; + boolean temp = tNewEntity.forceSpawn; + tNewEntity.forceSpawn = true; + tTargetWorld.spawnEntityInWorld(tNewEntity); + tNewEntity.forceSpawn = temp; + tNewEntity.isDead = false; + aEntity = tNewEntity; + } + } + + if (aEntity instanceof EntityLivingBase) { + ((EntityLivingBase) aEntity).setPositionAndUpdate(aX, aY, aZ); + } else { + aEntity.setPosition(aX, aY, aZ); + } + tOriginalWorld.resetUpdateEntityTick(); tTargetWorld.resetUpdateEntityTick(); - return true; - } - return false; - } - - public static int getCoordinateScan(ArrayList aList, EntityPlayer aPlayer, World aWorld, int aScanLevel, int aX, int aY, int aZ, int aSide, float aClickX, float aClickY, float aClickZ) { - if (aList == null) return 0; - - ArrayList tList = new ArrayList(); - int rEUAmount = 0; - - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - - Block tBlock = aWorld.getBlock(aX, aY, aZ); - - tList.add("----- X: " + aX + " Y: " + aY + " Z: " + aZ + " -----"); - try { - if (tTileEntity != null && tTileEntity instanceof IInventory) - tList.add("Name: " + ((IInventory)tTileEntity).getInventoryName() + " MetaData: " + aWorld.getBlockMetadata(aX, aY, aZ)); - else - tList.add("Name: " + tBlock.getUnlocalizedName() + " MetaData: " + aWorld.getBlockMetadata(aX, aY, aZ)); - - tList.add("Hardness: " + tBlock.getBlockHardness(aWorld, aX, aY, aZ) + " Blast Resistance: " + tBlock.getExplosionResistance(aPlayer, aWorld, aX, aY, aZ, aPlayer.posX, aPlayer.posY, aPlayer.posZ)); - if (tBlock.isBeaconBase(aWorld, aX, aY, aZ, aX, aY+1, aZ)) tList.add("Is valid Beacon Pyramid Material"); - } catch(Throwable e) {if (D1) e.printStackTrace(GT_Log.err);} - if (tTileEntity != null) { - try {if (tTileEntity instanceof IFluidHandler) { - rEUAmount+=500; - FluidTankInfo[] tTanks = ((IFluidHandler)tTileEntity).getTankInfo(ForgeDirection.getOrientation(aSide)); - if (tTanks != null) for (byte i = 0; i < tTanks.length; i++) { - tList.add("Tank " + i + ": " + GT_Utility.formatNumbers((tTanks[i].fluid==null?0:tTanks[i].fluid.amount)) + " / " + GT_Utility.formatNumbers(tTanks[i].capacity) + " " + getFluidName(tTanks[i].fluid, true)); - } - }} catch(Throwable e) {if (D1) e.printStackTrace(GT_Log.err);} - try {if (tTileEntity instanceof ic2.api.reactor.IReactorChamber) { - rEUAmount+=500; - tTileEntity = (TileEntity)(((ic2.api.reactor.IReactorChamber)tTileEntity).getReactor()); - }} catch(Throwable e) {if (D1) e.printStackTrace(GT_Log.err);} - try {if (tTileEntity instanceof ic2.api.reactor.IReactor) { - rEUAmount+=500; - tList.add("Heat: " + ((ic2.api.reactor.IReactor)tTileEntity).getHeat() + "/" + ((ic2.api.reactor.IReactor)tTileEntity).getMaxHeat() - + " HEM: " + ((ic2.api.reactor.IReactor)tTileEntity).getHeatEffectModifier() + " Base EU Output: "/* + ((ic2.api.reactor.IReactor)tTileEntity).getOutput()*/); - }} catch(Throwable e) {if (D1) e.printStackTrace(GT_Log.err);} - try {if (tTileEntity instanceof ic2.api.tile.IWrenchable) { - rEUAmount+=100; - tList.add("Facing: " + ((ic2.api.tile.IWrenchable)tTileEntity).getFacing() + " / Chance: " + (((ic2.api.tile.IWrenchable)tTileEntity).getWrenchDropRate()*100) + "%"); - tList.add(((ic2.api.tile.IWrenchable)tTileEntity).wrenchCanRemove(aPlayer)?"You can remove this with a Wrench":"You can NOT remove this with a Wrench"); - }} catch(Throwable e) {if (D1) e.printStackTrace(GT_Log.err);} - try {if (tTileEntity instanceof ic2.api.energy.tile.IEnergyTile) { - rEUAmount+=200; - //aList.add(((ic2.api.energy.tile.IEnergyTile)tTileEntity).isAddedToEnergyNet()?"Added to E-net":"Not added to E-net! Bug?"); - }} catch(Throwable e) {if (D1) e.printStackTrace(GT_Log.err);} - try {if (tTileEntity instanceof ic2.api.energy.tile.IEnergySink) { - rEUAmount+=400; - //aList.add("Demanded Energy: " + ((ic2.api.energy.tile.IEnergySink)tTileEntity).demandsEnergy()); - //tList.add("Max Safe Input: " + getTier(((ic2.api.energy.tile.IEnergySink)tTileEntity).getSinkTier())); - //tList.add("Max Safe Input: " + ((ic2.api.energy.tile.IEnergySink)tTileEntity).getMaxSafeInput()); - }} catch(Throwable e) {if (D1) e.printStackTrace(GT_Log.err);} - try {if (tTileEntity instanceof ic2.api.energy.tile.IEnergySource) { - rEUAmount+=400; - //aList.add("Max Energy Output: " + ((ic2.api.energy.tile.IEnergySource)tTileEntity).getMaxEnergyOutput()); - }} catch(Throwable e) {if (D1) e.printStackTrace(GT_Log.err);} - try {if (tTileEntity instanceof ic2.api.energy.tile.IEnergyConductor) { - rEUAmount+=200; - tList.add("Conduction Loss: " + ((ic2.api.energy.tile.IEnergyConductor)tTileEntity).getConductionLoss()); - }} catch(Throwable e) {if (D1) e.printStackTrace(GT_Log.err);} - try {if (tTileEntity instanceof ic2.api.tile.IEnergyStorage) { - rEUAmount+=200; - tList.add("Contained Energy: " + ((ic2.api.tile.IEnergyStorage)tTileEntity).getStored() + " of " + ((ic2.api.tile.IEnergyStorage)tTileEntity).getCapacity()); - //aList.add(((ic2.api.tile.IEnergyStorage)tTileEntity).isTeleporterCompatible(ic2.api.Direction.YP)?"Teleporter Compatible":"Not Teleporter Compatible"); - }} catch(Throwable e) {if (D1) e.printStackTrace(GT_Log.err);} - try {if (tTileEntity instanceof IUpgradableMachine) { - rEUAmount+=500; - if (((IUpgradableMachine)tTileEntity).hasMufflerUpgrade()) tList.add("Has Muffler Upgrade"); - }} catch(Throwable e) {if (D1) e.printStackTrace(GT_Log.err);} - try {if (tTileEntity instanceof IMachineProgress) { - rEUAmount+=400; - int tValue = 0; - if (0 < (tValue = ((IMachineProgress)tTileEntity).getMaxProgress())) tList.add("Progress: " + GT_Utility.formatNumbers(tValue) + " / " + GT_Utility.formatNumbers(((IMachineProgress)tTileEntity).getProgress())); - }} catch(Throwable e) {if (D1) e.printStackTrace(GT_Log.err);} - try {if (tTileEntity instanceof ICoverable) { - rEUAmount+=300; - String tString = ((ICoverable)tTileEntity).getCoverBehaviorAtSide((byte)aSide).getDescription((byte)aSide, ((ICoverable)tTileEntity).getCoverIDAtSide((byte)aSide), ((ICoverable)tTileEntity).getCoverDataAtSide((byte)aSide), (ICoverable)tTileEntity); - if (tString != null && !tString.equals(E)) tList.add(tString); - }} catch(Throwable e) {if (D1) e.printStackTrace(GT_Log.err);} - try {if (tTileEntity instanceof IBasicEnergyContainer && ((IBasicEnergyContainer)tTileEntity).getEUCapacity() > 0) { - tList.add("Max IN: " + ((IBasicEnergyContainer)tTileEntity).getInputVoltage() + " EU"); - tList.add("Max OUT: " + ((IBasicEnergyContainer)tTileEntity).getOutputVoltage() + " EU at " + ((IBasicEnergyContainer)tTileEntity).getOutputAmperage() + " Amperes"); - tList.add("Energy: " + GT_Utility.formatNumbers(((IBasicEnergyContainer)tTileEntity).getStoredEU()) + " / " + GT_Utility.formatNumbers(((IBasicEnergyContainer)tTileEntity).getEUCapacity()) + "EU"); - }} catch(Throwable e) {if (D1) e.printStackTrace(GT_Log.err);} - try {if (tTileEntity instanceof IGregTechTileEntity) { - tList.add("Owned by: " + ((IGregTechTileEntity)tTileEntity).getOwnerName()); - }} catch(Throwable e) {if (D1) e.printStackTrace(GT_Log.err);} - try {if (tTileEntity instanceof IGregTechDeviceInformation && ((IGregTechDeviceInformation)tTileEntity).isGivingInformation()) { - tList.addAll(Arrays.asList(((IGregTechDeviceInformation)tTileEntity).getInfoData())); - }} catch(Throwable e) {if (D1) e.printStackTrace(GT_Log.err);} - try {if (tTileEntity instanceof ic2.api.crops.ICropTile) { - if (((ic2.api.crops.ICropTile)tTileEntity).getScanLevel() < 4) { - rEUAmount+=10000; - ((ic2.api.crops.ICropTile)tTileEntity).setScanLevel((byte)4); - } - if (((ic2.api.crops.ICropTile)tTileEntity).getID() >= 0 && ((ic2.api.crops.ICropTile)tTileEntity).getID() < ic2.api.crops.Crops.instance.getCropList().length && ic2.api.crops.Crops.instance.getCropList()[((ic2.api.crops.ICropTile)tTileEntity).getID()] != null) { - rEUAmount+=1000; - tList.add("Type -- Crop-Name: " + ic2.api.crops.Crops.instance.getCropList()[((ic2.api.crops.ICropTile)tTileEntity).getID()].name() - + " Growth: " + ((ic2.api.crops.ICropTile)tTileEntity).getGrowth() - + " Gain: " + ((ic2.api.crops.ICropTile)tTileEntity).getGain() - + " Resistance: " + ((ic2.api.crops.ICropTile)tTileEntity).getResistance() - ); - tList.add("Plant -- Fertilizer: " + ((ic2.api.crops.ICropTile)tTileEntity).getNutrientStorage() - + " Water: " + ((ic2.api.crops.ICropTile)tTileEntity).getHydrationStorage() - + " Weed-Ex: " + ((ic2.api.crops.ICropTile)tTileEntity).getWeedExStorage() - + " Scan-Level: " + ((ic2.api.crops.ICropTile)tTileEntity).getScanLevel() - ); - tList.add("Environment -- Nutrients: " + ((ic2.api.crops.ICropTile)tTileEntity).getNutrients() - + " Humidity: " + ((ic2.api.crops.ICropTile)tTileEntity).getHumidity() - + " Air-Quality: " + ((ic2.api.crops.ICropTile)tTileEntity).getAirQuality() - ); - String tString = E; - for (String tAttribute : ic2.api.crops.Crops.instance.getCropList()[((ic2.api.crops.ICropTile)tTileEntity).getID()].attributes()) { - tString += ", " + tAttribute; - } - tList.add("Attributes:" + tString.replaceFirst(",", E)); - tList.add("Discovered by: " + ic2.api.crops.Crops.instance.getCropList()[((ic2.api.crops.ICropTile)tTileEntity).getID()].discoveredBy()); - } - }} catch(Throwable e) {if (D1) e.printStackTrace(GT_Log.err);} - } - try {if (tBlock instanceof IDebugableBlock) { - rEUAmount+=500; - ArrayList temp = ((IDebugableBlock)tBlock).getDebugInfo(aPlayer, aX, aY, aZ, 3); - if (temp != null) tList.addAll(temp); - }} catch(Throwable e) {if (D1) e.printStackTrace(GT_Log.err);} - - BlockScanningEvent tEvent = new BlockScanningEvent(aWorld, aPlayer, aX, aY, aZ, (byte)aSide, aScanLevel, tBlock, tTileEntity, tList, aClickX, aClickY, aClickZ); - tEvent.mEUCost = rEUAmount; - MinecraftForge.EVENT_BUS.post(tEvent); - if (!tEvent.isCanceled()) aList.addAll(tList); - return tEvent.mEUCost; - } - - /** - * @return an Array containing the X and the Y Coordinate of the clicked Point, with the top left Corner as Origin, like on the Texture Sheet. return values should always be between [0.0F and 0.99F]. - */ - public static float[] getClickedFacingCoords(byte aSide, float aX, float aY, float aZ) { - switch (aSide) { - case 0: return new float[] {Math.min(0.99F, Math.max(0,1-aX)), Math.min(0.99F, Math.max(0, aZ))}; - case 1: return new float[] {Math.min(0.99F, Math.max(0, aX)), Math.min(0.99F, Math.max(0, aZ))}; - case 2: return new float[] {Math.min(0.99F, Math.max(0,1-aX)), Math.min(0.99F, Math.max(0,1-aY))}; - case 3: return new float[] {Math.min(0.99F, Math.max(0, aX)), Math.min(0.99F, Math.max(0,1-aY))}; - case 4: return new float[] {Math.min(0.99F, Math.max(0, aZ)), Math.min(0.99F, Math.max(0,1-aY))}; - case 5: return new float[] {Math.min(0.99F, Math.max(0,1-aZ)), Math.min(0.99F, Math.max(0,1-aY))}; - default: return new float[] {0.5F, 0.5F}; - } - } - - /** - * This Function determines the direction a Block gets when being Wrenched. - * returns -1 if invalid. Even though that could never happen. - */ - public static byte determineWrenchingSide(byte aSide, float aX, float aY, float aZ) { - byte tBack = getOppositeSide(aSide); - switch (aSide) { - case 0: case 1: - if (aX < 0.25) { - if (aZ < 0.25) return tBack; - if (aZ > 0.75) return tBack; - return 4; - } - if (aX > 0.75) { - if (aZ < 0.25) return tBack; - if (aZ > 0.75) return tBack; - return 5; - } - if (aZ < 0.25) return 2; - if (aZ > 0.75) return 3; - return aSide; - case 2: case 3: - if (aX < 0.25) { - if (aY < 0.25) return tBack; - if (aY > 0.75) return tBack; - return 4; - } - if (aX > 0.75) { - if (aY < 0.25) return tBack; - if (aY > 0.75) return tBack; - return 5; - } - if (aY < 0.25) return 0; - if (aY > 0.75) return 1; - return aSide; - case 4: case 5: - if (aZ < 0.25) { - if (aY < 0.25) return tBack; - if (aY > 0.75) return tBack; - return 2; - } - if (aZ > 0.75) { - if (aY < 0.25) return tBack; - if (aY > 0.75) return tBack; - return 3; - } - if (aY < 0.25) return 0; - if (aY > 0.75) return 1; - return aSide; - } - return -1; - } - - public static String formatNumbers(long aNumber){ - DecimalFormat formatter = (DecimalFormat) NumberFormat.getInstance(Locale.US); - DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols(); - symbols.setGroupingSeparator(' '); - return formatter.format(aNumber); - } - + return true; + } + return false; + } + + public static int getCoordinateScan(ArrayList aList, EntityPlayer aPlayer, World aWorld, int aScanLevel, int aX, int aY, int aZ, int aSide, float aClickX, float aClickY, float aClickZ) { + if (aList == null) return 0; + + ArrayList tList = new ArrayList(); + int rEUAmount = 0; + + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + + Block tBlock = aWorld.getBlock(aX, aY, aZ); + + tList.add("----- X: " + aX + " Y: " + aY + " Z: " + aZ + " -----"); + try { + if (tTileEntity != null && tTileEntity instanceof IInventory) + tList.add("Name: " + ((IInventory) tTileEntity).getInventoryName() + " MetaData: " + aWorld.getBlockMetadata(aX, aY, aZ)); + else + tList.add("Name: " + tBlock.getUnlocalizedName() + " MetaData: " + aWorld.getBlockMetadata(aX, aY, aZ)); + + tList.add("Hardness: " + tBlock.getBlockHardness(aWorld, aX, aY, aZ) + " Blast Resistance: " + tBlock.getExplosionResistance(aPlayer, aWorld, aX, aY, aZ, aPlayer.posX, aPlayer.posY, aPlayer.posZ)); + if (tBlock.isBeaconBase(aWorld, aX, aY, aZ, aX, aY + 1, aZ)) tList.add("Is valid Beacon Pyramid Material"); + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + if (tTileEntity != null) { + try { + if (tTileEntity instanceof IFluidHandler) { + rEUAmount += 500; + FluidTankInfo[] tTanks = ((IFluidHandler) tTileEntity).getTankInfo(ForgeDirection.getOrientation(aSide)); + if (tTanks != null) for (byte i = 0; i < tTanks.length; i++) { + tList.add("Tank " + i + ": " + GT_Utility.formatNumbers((tTanks[i].fluid == null ? 0 : tTanks[i].fluid.amount)) + " / " + GT_Utility.formatNumbers(tTanks[i].capacity) + " " + getFluidName(tTanks[i].fluid, true)); + } + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + try { + if (tTileEntity instanceof ic2.api.reactor.IReactorChamber) { + rEUAmount += 500; + tTileEntity = (TileEntity) (((ic2.api.reactor.IReactorChamber) tTileEntity).getReactor()); + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + try { + if (tTileEntity instanceof ic2.api.reactor.IReactor) { + rEUAmount += 500; + tList.add("Heat: " + ((ic2.api.reactor.IReactor) tTileEntity).getHeat() + "/" + ((ic2.api.reactor.IReactor) tTileEntity).getMaxHeat() + + " HEM: " + ((ic2.api.reactor.IReactor) tTileEntity).getHeatEffectModifier() + " Base EU Output: "/* + ((ic2.api.reactor.IReactor)tTileEntity).getOutput()*/); + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + try { + if (tTileEntity instanceof ic2.api.tile.IWrenchable) { + rEUAmount += 100; + tList.add("Facing: " + ((ic2.api.tile.IWrenchable) tTileEntity).getFacing() + " / Chance: " + (((ic2.api.tile.IWrenchable) tTileEntity).getWrenchDropRate() * 100) + "%"); + tList.add(((ic2.api.tile.IWrenchable) tTileEntity).wrenchCanRemove(aPlayer) ? "You can remove this with a Wrench" : "You can NOT remove this with a Wrench"); + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + try { + if (tTileEntity instanceof ic2.api.energy.tile.IEnergyTile) { + rEUAmount += 200; + //aList.add(((ic2.api.energy.tile.IEnergyTile)tTileEntity).isAddedToEnergyNet()?"Added to E-net":"Not added to E-net! Bug?"); + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + try { + if (tTileEntity instanceof ic2.api.energy.tile.IEnergySink) { + rEUAmount += 400; + //aList.add("Demanded Energy: " + ((ic2.api.energy.tile.IEnergySink)tTileEntity).demandsEnergy()); + //tList.add("Max Safe Input: " + getTier(((ic2.api.energy.tile.IEnergySink)tTileEntity).getSinkTier())); + //tList.add("Max Safe Input: " + ((ic2.api.energy.tile.IEnergySink)tTileEntity).getMaxSafeInput()); + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + try { + if (tTileEntity instanceof ic2.api.energy.tile.IEnergySource) { + rEUAmount += 400; + //aList.add("Max Energy Output: " + ((ic2.api.energy.tile.IEnergySource)tTileEntity).getMaxEnergyOutput()); + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + try { + if (tTileEntity instanceof ic2.api.energy.tile.IEnergyConductor) { + rEUAmount += 200; + tList.add("Conduction Loss: " + ((ic2.api.energy.tile.IEnergyConductor) tTileEntity).getConductionLoss()); + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + try { + if (tTileEntity instanceof ic2.api.tile.IEnergyStorage) { + rEUAmount += 200; + tList.add("Contained Energy: " + ((ic2.api.tile.IEnergyStorage) tTileEntity).getStored() + " of " + ((ic2.api.tile.IEnergyStorage) tTileEntity).getCapacity()); + //aList.add(((ic2.api.tile.IEnergyStorage)tTileEntity).isTeleporterCompatible(ic2.api.Direction.YP)?"Teleporter Compatible":"Not Teleporter Compatible"); + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + try { + if (tTileEntity instanceof IUpgradableMachine) { + rEUAmount += 500; + if (((IUpgradableMachine) tTileEntity).hasMufflerUpgrade()) tList.add("Has Muffler Upgrade"); + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + try { + if (tTileEntity instanceof IMachineProgress) { + rEUAmount += 400; + int tValue = 0; + if (0 < (tValue = ((IMachineProgress) tTileEntity).getMaxProgress())) + tList.add("Progress: " + GT_Utility.formatNumbers(tValue) + " / " + GT_Utility.formatNumbers(((IMachineProgress) tTileEntity).getProgress())); + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + try { + if (tTileEntity instanceof ICoverable) { + rEUAmount += 300; + String tString = ((ICoverable) tTileEntity).getCoverBehaviorAtSide((byte) aSide).getDescription((byte) aSide, ((ICoverable) tTileEntity).getCoverIDAtSide((byte) aSide), ((ICoverable) tTileEntity).getCoverDataAtSide((byte) aSide), (ICoverable) tTileEntity); + if (tString != null && !tString.equals(E)) tList.add(tString); + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + try { + if (tTileEntity instanceof IBasicEnergyContainer && ((IBasicEnergyContainer) tTileEntity).getEUCapacity() > 0) { + tList.add("Max IN: " + ((IBasicEnergyContainer) tTileEntity).getInputVoltage() + " EU"); + tList.add("Max OUT: " + ((IBasicEnergyContainer) tTileEntity).getOutputVoltage() + " EU at " + ((IBasicEnergyContainer) tTileEntity).getOutputAmperage() + " Amperes"); + tList.add("Energy: " + GT_Utility.formatNumbers(((IBasicEnergyContainer) tTileEntity).getStoredEU()) + " / " + GT_Utility.formatNumbers(((IBasicEnergyContainer) tTileEntity).getEUCapacity()) + "EU"); + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + try { + if (tTileEntity instanceof IGregTechTileEntity) { + tList.add("Owned by: " + ((IGregTechTileEntity) tTileEntity).getOwnerName()); + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + try { + if (tTileEntity instanceof IGregTechDeviceInformation && ((IGregTechDeviceInformation) tTileEntity).isGivingInformation()) { + tList.addAll(Arrays.asList(((IGregTechDeviceInformation) tTileEntity).getInfoData())); + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + try { + if (tTileEntity instanceof ic2.api.crops.ICropTile) { + if (((ic2.api.crops.ICropTile) tTileEntity).getScanLevel() < 4) { + rEUAmount += 10000; + ((ic2.api.crops.ICropTile) tTileEntity).setScanLevel((byte) 4); + } + if (((ic2.api.crops.ICropTile) tTileEntity).getID() >= 0 && ((ic2.api.crops.ICropTile) tTileEntity).getID() < ic2.api.crops.Crops.instance.getCropList().length && ic2.api.crops.Crops.instance.getCropList()[((ic2.api.crops.ICropTile) tTileEntity).getID()] != null) { + rEUAmount += 1000; + tList.add("Type -- Crop-Name: " + ic2.api.crops.Crops.instance.getCropList()[((ic2.api.crops.ICropTile) tTileEntity).getID()].name() + + " Growth: " + ((ic2.api.crops.ICropTile) tTileEntity).getGrowth() + + " Gain: " + ((ic2.api.crops.ICropTile) tTileEntity).getGain() + + " Resistance: " + ((ic2.api.crops.ICropTile) tTileEntity).getResistance() + ); + tList.add("Plant -- Fertilizer: " + ((ic2.api.crops.ICropTile) tTileEntity).getNutrientStorage() + + " Water: " + ((ic2.api.crops.ICropTile) tTileEntity).getHydrationStorage() + + " Weed-Ex: " + ((ic2.api.crops.ICropTile) tTileEntity).getWeedExStorage() + + " Scan-Level: " + ((ic2.api.crops.ICropTile) tTileEntity).getScanLevel() + ); + tList.add("Environment -- Nutrients: " + ((ic2.api.crops.ICropTile) tTileEntity).getNutrients() + + " Humidity: " + ((ic2.api.crops.ICropTile) tTileEntity).getHumidity() + + " Air-Quality: " + ((ic2.api.crops.ICropTile) tTileEntity).getAirQuality() + ); + String tString = E; + for (String tAttribute : ic2.api.crops.Crops.instance.getCropList()[((ic2.api.crops.ICropTile) tTileEntity).getID()].attributes()) { + tString += ", " + tAttribute; + } + tList.add("Attributes:" + tString.replaceFirst(",", E)); + tList.add("Discovered by: " + ic2.api.crops.Crops.instance.getCropList()[((ic2.api.crops.ICropTile) tTileEntity).getID()].discoveredBy()); + } + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + } + try { + if (tBlock instanceof IDebugableBlock) { + rEUAmount += 500; + ArrayList temp = ((IDebugableBlock) tBlock).getDebugInfo(aPlayer, aX, aY, aZ, 3); + if (temp != null) tList.addAll(temp); + } + } catch (Throwable e) { + if (D1) e.printStackTrace(GT_Log.err); + } + + BlockScanningEvent tEvent = new BlockScanningEvent(aWorld, aPlayer, aX, aY, aZ, (byte) aSide, aScanLevel, tBlock, tTileEntity, tList, aClickX, aClickY, aClickZ); + tEvent.mEUCost = rEUAmount; + MinecraftForge.EVENT_BUS.post(tEvent); + if (!tEvent.isCanceled()) aList.addAll(tList); + return tEvent.mEUCost; + } + + /** + * @return an Array containing the X and the Y Coordinate of the clicked Point, with the top left Corner as Origin, like on the Texture Sheet. return values should always be between [0.0F and 0.99F]. + */ + public static float[] getClickedFacingCoords(byte aSide, float aX, float aY, float aZ) { + switch (aSide) { + case 0: + return new float[]{Math.min(0.99F, Math.max(0, 1 - aX)), Math.min(0.99F, Math.max(0, aZ))}; + case 1: + return new float[]{Math.min(0.99F, Math.max(0, aX)), Math.min(0.99F, Math.max(0, aZ))}; + case 2: + return new float[]{Math.min(0.99F, Math.max(0, 1 - aX)), Math.min(0.99F, Math.max(0, 1 - aY))}; + case 3: + return new float[]{Math.min(0.99F, Math.max(0, aX)), Math.min(0.99F, Math.max(0, 1 - aY))}; + case 4: + return new float[]{Math.min(0.99F, Math.max(0, aZ)), Math.min(0.99F, Math.max(0, 1 - aY))}; + case 5: + return new float[]{Math.min(0.99F, Math.max(0, 1 - aZ)), Math.min(0.99F, Math.max(0, 1 - aY))}; + default: + return new float[]{0.5F, 0.5F}; + } + } + + /** + * This Function determines the direction a Block gets when being Wrenched. + * returns -1 if invalid. Even though that could never happen. + */ + public static byte determineWrenchingSide(byte aSide, float aX, float aY, float aZ) { + byte tBack = getOppositeSide(aSide); + switch (aSide) { + case 0: + case 1: + if (aX < 0.25) { + if (aZ < 0.25) return tBack; + if (aZ > 0.75) return tBack; + return 4; + } + if (aX > 0.75) { + if (aZ < 0.25) return tBack; + if (aZ > 0.75) return tBack; + return 5; + } + if (aZ < 0.25) return 2; + if (aZ > 0.75) return 3; + return aSide; + case 2: + case 3: + if (aX < 0.25) { + if (aY < 0.25) return tBack; + if (aY > 0.75) return tBack; + return 4; + } + if (aX > 0.75) { + if (aY < 0.25) return tBack; + if (aY > 0.75) return tBack; + return 5; + } + if (aY < 0.25) return 0; + if (aY > 0.75) return 1; + return aSide; + case 4: + case 5: + if (aZ < 0.25) { + if (aY < 0.25) return tBack; + if (aY > 0.75) return tBack; + return 2; + } + if (aZ > 0.75) { + if (aY < 0.25) return tBack; + if (aY > 0.75) return tBack; + return 3; + } + if (aY < 0.25) return 0; + if (aY > 0.75) return 1; + return aSide; + } + return -1; + } + + public static String formatNumbers(long aNumber) { + DecimalFormat formatter = (DecimalFormat) NumberFormat.getInstance(Locale.US); + DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols(); + symbols.setGroupingSeparator(' '); + return formatter.format(aNumber); + } + + public static class ItemNBT { + public static void setNBT(ItemStack aStack, NBTTagCompound aNBT) { + if (aNBT == null) { + aStack.setTagCompound(null); + return; + } + ArrayList tTagsToRemove = new ArrayList(); + for (Object tKey : aNBT.func_150296_c()) { + NBTBase tValue = aNBT.getTag((String) tKey); + if (tValue == null || (tValue instanceof NBTPrimitive && ((NBTPrimitive) tValue).func_150291_c() == 0) || (tValue instanceof NBTTagString && isStringInvalid(((NBTTagString) tValue).func_150285_a_()))) + tTagsToRemove.add((String) tKey); + } + for (Object tKey : tTagsToRemove) aNBT.removeTag((String) tKey); + aStack.setTagCompound(aNBT.hasNoTags() ? null : aNBT); + } + + public static NBTTagCompound getNBT(ItemStack aStack) { + NBTTagCompound rNBT = aStack.getTagCompound(); + return rNBT == null ? new NBTTagCompound() : rNBT; + } + + public static void setPunchCardData(ItemStack aStack, String aPunchCardData) { + NBTTagCompound tNBT = getNBT(aStack); + tNBT.setString("GT.PunchCardData", aPunchCardData); + setNBT(aStack, tNBT); + } + + public static String getPunchCardData(ItemStack aStack) { + NBTTagCompound tNBT = getNBT(aStack); + return tNBT.getString("GT.PunchCardData"); + } + + public static void setLighterFuel(ItemStack aStack, long aFuel) { + NBTTagCompound tNBT = getNBT(aStack); + tNBT.setLong("GT.LighterFuel", aFuel); + setNBT(aStack, tNBT); + } + + public static long getLighterFuel(ItemStack aStack) { + NBTTagCompound tNBT = getNBT(aStack); + return tNBT.getLong("GT.LighterFuel"); + } + + public static void setMapID(ItemStack aStack, short aMapID) { + NBTTagCompound tNBT = getNBT(aStack); + tNBT.setShort("map_id", aMapID); + setNBT(aStack, tNBT); + } + + public static short getMapID(ItemStack aStack) { + NBTTagCompound tNBT = getNBT(aStack); + if (!tNBT.hasKey("map_id")) return -1; + return tNBT.getShort("map_id"); + } + + public static void setBookTitle(ItemStack aStack, String aTitle) { + NBTTagCompound tNBT = getNBT(aStack); + tNBT.setString("title", aTitle); + setNBT(aStack, tNBT); + } + + public static String getBookTitle(ItemStack aStack) { + NBTTagCompound tNBT = getNBT(aStack); + return tNBT.getString("title"); + } + + public static void setBookAuthor(ItemStack aStack, String aAuthor) { + NBTTagCompound tNBT = getNBT(aStack); + tNBT.setString("author", aAuthor); + setNBT(aStack, tNBT); + } + + public static String getBookAuthor(ItemStack aStack) { + NBTTagCompound tNBT = getNBT(aStack); + return tNBT.getString("author"); + } + + public static void addEnchantment(ItemStack aStack, Enchantment aEnchantment, int aLevel) { + NBTTagCompound tNBT = getNBT(aStack), tEnchantmentTag; + if (!tNBT.hasKey("ench", 9)) tNBT.setTag("ench", new NBTTagList()); + NBTTagList tList = tNBT.getTagList("ench", 10); + + boolean temp = true; + + for (int i = 0; i < tList.tagCount(); i++) { + tEnchantmentTag = tList.getCompoundTagAt(i); + if (tEnchantmentTag.getShort("id") == aEnchantment.effectId) { + tEnchantmentTag.setShort("id", (short) aEnchantment.effectId); + tEnchantmentTag.setShort("lvl", (byte) aLevel); + temp = false; + break; + } + } + + if (temp) { + tEnchantmentTag = new NBTTagCompound(); + tEnchantmentTag.setShort("id", (short) aEnchantment.effectId); + tEnchantmentTag.setShort("lvl", (byte) aLevel); + tList.appendTag(tEnchantmentTag); + } + aStack.setTagCompound(tNBT); + } + } + + /** + * THIS IS BULLSHIT!!! WHY DO I HAVE TO DO THIS SHIT JUST TO HAVE ENCHANTS PROPERLY!?! + */ + public static class GT_EnchantmentHelper { + private static final BullshitIteratorA mBullshitIteratorA = new BullshitIteratorA(); + private static final BullshitIteratorB mBullshitIteratorB = new BullshitIteratorB(); + + private static void applyBullshit(IBullshit aBullshitModifier, ItemStack aStack) { + if (aStack != null) { + NBTTagList nbttaglist = aStack.getEnchantmentTagList(); + if (nbttaglist != null) { + for (int i = 0; i < nbttaglist.tagCount(); ++i) { + try { + short short1 = nbttaglist.getCompoundTagAt(i).getShort("id"); + short short2 = nbttaglist.getCompoundTagAt(i).getShort("lvl"); + if (Enchantment.enchantmentsList[short1] != null) + aBullshitModifier.calculateModifier(Enchantment.enchantmentsList[short1], short2); + } catch (Throwable e) { + // + } + } + } + } + } + + private static void applyArrayOfBullshit(IBullshit aBullshitModifier, ItemStack[] aStacks) { + ItemStack[] aitemstack1 = aStacks; + int i = aStacks.length; + for (int j = 0; j < i; ++j) { + ItemStack itemstack = aitemstack1[j]; + applyBullshit(aBullshitModifier, itemstack); + } + } + + public static void applyBullshitA(EntityLivingBase aPlayer, Entity aEntity, ItemStack aStack) { + mBullshitIteratorA.mPlayer = aPlayer; + mBullshitIteratorA.mEntity = aEntity; + if (aPlayer != null) applyArrayOfBullshit(mBullshitIteratorA, aPlayer.getLastActiveItems()); + if (aStack != null) applyBullshit(mBullshitIteratorA, aStack); + } + + public static void applyBullshitB(EntityLivingBase aPlayer, Entity aEntity, ItemStack aStack) { + mBullshitIteratorB.mPlayer = aPlayer; + mBullshitIteratorB.mEntity = aEntity; + if (aPlayer != null) applyArrayOfBullshit(mBullshitIteratorB, aPlayer.getLastActiveItems()); + if (aStack != null) applyBullshit(mBullshitIteratorB, aStack); + } + + interface IBullshit { + void calculateModifier(Enchantment aEnchantment, int aLevel); + } + + static final class BullshitIteratorA implements IBullshit { + public EntityLivingBase mPlayer; + public Entity mEntity; + + BullshitIteratorA() { + } + + @Override + public void calculateModifier(Enchantment aEnchantment, int aLevel) { + aEnchantment.func_151367_b(mPlayer, mEntity, aLevel); + } + } + + static final class BullshitIteratorB implements IBullshit { + public EntityLivingBase mPlayer; + public Entity mEntity; + + BullshitIteratorB() { + } + + @Override + public void calculateModifier(Enchantment aEnchantment, int aLevel) { + aEnchantment.func_151368_a(mPlayer, mEntity, aLevel); + } + } + } + } \ No newline at end of file diff --git a/src/main/java/gregtech/api/world/GT_Worldgen.java b/src/main/java/gregtech/api/world/GT_Worldgen.java index d4f52014..e41e2abe 100644 --- a/src/main/java/gregtech/api/world/GT_Worldgen.java +++ b/src/main/java/gregtech/api/world/GT_Worldgen.java @@ -1,61 +1,60 @@ package gregtech.api.world; import gregtech.api.GregTech_API; +import net.minecraft.world.World; +import net.minecraft.world.chunk.IChunkProvider; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; -import net.minecraft.world.World; -import net.minecraft.world.chunk.IChunkProvider; - public abstract class GT_Worldgen { - - public final String mWorldGenName; - public final boolean mEnabled; - private final Map mDimensionMap = new HashMap(); - - public GT_Worldgen(String aName, List aList, boolean aDefault) { - mWorldGenName = aName; - mEnabled = GregTech_API.sWorldgenFile.get("worldgen", mWorldGenName, aDefault); - if (mEnabled) aList.add(this); - } - - /** - * @param aWorld The World Object - * @param aRandom The Random Generator to use - * @param aBiome The Name of the Biome (always != null) - * @param aDimensionType The Type of Worldgeneration to add. -1 = Nether, 0 = Overworld, +1 = End - * @param aChunkX xCoord of the Chunk - * @param aChunkZ zCoord of the Chunk - * @return if the Worldgeneration has been successfully completed - */ - public boolean executeWorldgen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) { - return false; - } - - /** - * @param aWorld The World Object - * @param aRandom The Random Generator to use - * @param aBiome The Name of the Biome (always != null) - * @param aDimensionType The Type of Worldgeneration to add. -1 = Nether, 0 = Overworld, +1 = End - * @param aChunkX xCoord of the Chunk - * @param aChunkZ zCoord of the Chunk - * @return if the Worldgeneration has been successfully completed - */ - public boolean executeCavegen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) { - return false; - } - - public boolean isGenerationAllowed(World aWorld, int aDimensionType, int aAllowedDimensionType) { - String aDimName = aWorld.provider.getDimensionName(); - Boolean tAllowed = mDimensionMap.get(aDimName); - if (tAllowed == null) { - boolean tValue = GregTech_API.sWorldgenFile.get("worldgen.dimensions."+mWorldGenName, aDimName, aDimensionType == aAllowedDimensionType); - mDimensionMap.put(aDimName, tValue); - return tValue; - } - return tAllowed; - } + + public final String mWorldGenName; + public final boolean mEnabled; + private final Map mDimensionMap = new HashMap(); + + public GT_Worldgen(String aName, List aList, boolean aDefault) { + mWorldGenName = aName; + mEnabled = GregTech_API.sWorldgenFile.get("worldgen", mWorldGenName, aDefault); + if (mEnabled) aList.add(this); + } + + /** + * @param aWorld The World Object + * @param aRandom The Random Generator to use + * @param aBiome The Name of the Biome (always != null) + * @param aDimensionType The Type of Worldgeneration to add. -1 = Nether, 0 = Overworld, +1 = End + * @param aChunkX xCoord of the Chunk + * @param aChunkZ zCoord of the Chunk + * @return if the Worldgeneration has been successfully completed + */ + public boolean executeWorldgen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) { + return false; + } + + /** + * @param aWorld The World Object + * @param aRandom The Random Generator to use + * @param aBiome The Name of the Biome (always != null) + * @param aDimensionType The Type of Worldgeneration to add. -1 = Nether, 0 = Overworld, +1 = End + * @param aChunkX xCoord of the Chunk + * @param aChunkZ zCoord of the Chunk + * @return if the Worldgeneration has been successfully completed + */ + public boolean executeCavegen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) { + return false; + } + + public boolean isGenerationAllowed(World aWorld, int aDimensionType, int aAllowedDimensionType) { + String aDimName = aWorld.provider.getDimensionName(); + Boolean tAllowed = mDimensionMap.get(aDimName); + if (tAllowed == null) { + boolean tValue = GregTech_API.sWorldgenFile.get("worldgen.dimensions." + mWorldGenName, aDimName, aDimensionType == aAllowedDimensionType); + mDimensionMap.put(aDimName, tValue); + return tValue; + } + return tAllowed; + } } diff --git a/src/main/java/gregtech/api/world/GT_Worldgen_Boulder.java b/src/main/java/gregtech/api/world/GT_Worldgen_Boulder.java index 9c906395..0f54796d 100644 --- a/src/main/java/gregtech/api/world/GT_Worldgen_Boulder.java +++ b/src/main/java/gregtech/api/world/GT_Worldgen_Boulder.java @@ -1,70 +1,70 @@ package gregtech.api.world; -import java.util.Collection; -import java.util.Random; - import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkProvider; +import java.util.Collection; +import java.util.Random; + public class GT_Worldgen_Boulder extends GT_Worldgen_Ore { - public GT_Worldgen_Boulder(String aName, boolean aDefault, Block aBlock, int aBlockMeta, int aDimensionType, int aAmount, int aSize, int aProbability, int aMinY, int aMaxY, Collection aBiomeList, boolean aAllowToGenerateinVoid) { - super(aName, aDefault, aBlock, aBlockMeta, aDimensionType, aAmount, aSize, aProbability, aMinY, aMaxY, aBiomeList, aAllowToGenerateinVoid); - } - - @Override - public boolean executeWorldgen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) { - if (isGenerationAllowed(aWorld, aDimensionType, mDimensionType) && (mBiomeList.isEmpty() || mBiomeList.contains(aBiome)) && (mProbability <= 1 || aRandom.nextInt(mProbability) == 0)) { - for (int i = 0; i < mAmount; i++) { - int tX = aChunkX + aRandom.nextInt(16), tY = mMinY + aRandom.nextInt(mMaxY - mMinY), tZ = aChunkZ + aRandom.nextInt(16); - Block tBlock = aWorld.getBlock(tX, tY - 7, tZ); - if (tBlock != null && tBlock.isOpaqueCube() && aWorld.getBlock(tX, tY-6, tZ).isAir(aWorld, tX, tY-6, tZ)) { - float var6 = aRandom.nextFloat() * (float)Math.PI; - double var7 = ((tX + 8) + MathHelper.sin(var6) * mSize / 8.0F); - double var9 = ((tX + 8) - MathHelper.sin(var6) * mSize / 8.0F); - double var11 = ((tZ + 8) + MathHelper.cos(var6) * mSize / 8.0F); - double var13 = ((tZ + 8) - MathHelper.cos(var6) * mSize / 8.0F); - double var15 = (tY + aRandom.nextInt(3) - 2); - double var17 = (tY + aRandom.nextInt(3) - 2); - - for (int var19 = 0; var19 <= mSize; ++var19) { - double var20 = var7 + (var9 - var7) * var19 / mSize; - double var22 = var15 + (var17 - var15) * var19 / mSize; - double var24 = var11 + (var13 - var11) * var19 / mSize; - double var26 = aRandom.nextDouble() * mSize / 16.0D; - double var28 = (MathHelper.sin(var19 * (float)Math.PI / mSize) + 1.0F) * var26 + 1.0D; - double var30 = (MathHelper.sin(var19 * (float)Math.PI / mSize) + 1.0F) * var26 + 1.0D; - int var32 = MathHelper.floor_double(var20 - var28 / 2.0D); - int var33 = MathHelper.floor_double(var22 - var30 / 2.0D); - int var34 = MathHelper.floor_double(var24 - var28 / 2.0D); - int var35 = MathHelper.floor_double(var20 + var28 / 2.0D); - int var36 = MathHelper.floor_double(var22 + var30 / 2.0D); - int var37 = MathHelper.floor_double(var24 + var28 / 2.0D); - - for (int var38 = var32; var38 <= var35; ++var38) { - double var39 = (var38 + 0.5D - var20) / (var28 / 2.0D); - if (var39 * var39 < 1.0D) { - for (int var41 = var33; var41 <= var36; ++var41) { - double var42 = (var41 + 0.5D - var22) / (var30 / 2.0D); - if (var39 * var39 + var42 * var42 < 1.0D) { - for (int var44 = var34; var44 <= var37; ++var44) { - double var45 = (var44 + 0.5D - var24) / (var28 / 2.0D); - Block block = aWorld.getBlock(var38, var41, var44); - if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0D && ((mAllowToGenerateinVoid&&aWorld.getBlock(var38, var41, var44).isAir(aWorld, var38, var41, var44)) || (block != null && !(block instanceof BlockContainer)))) { - aWorld.setBlock(var38, var41, var44, mBlock, mBlockMeta, 0); - } - } - } - } - } - } - } - } - } - return true; - } + public GT_Worldgen_Boulder(String aName, boolean aDefault, Block aBlock, int aBlockMeta, int aDimensionType, int aAmount, int aSize, int aProbability, int aMinY, int aMaxY, Collection aBiomeList, boolean aAllowToGenerateinVoid) { + super(aName, aDefault, aBlock, aBlockMeta, aDimensionType, aAmount, aSize, aProbability, aMinY, aMaxY, aBiomeList, aAllowToGenerateinVoid); + } + + @Override + public boolean executeWorldgen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) { + if (isGenerationAllowed(aWorld, aDimensionType, mDimensionType) && (mBiomeList.isEmpty() || mBiomeList.contains(aBiome)) && (mProbability <= 1 || aRandom.nextInt(mProbability) == 0)) { + for (int i = 0; i < mAmount; i++) { + int tX = aChunkX + aRandom.nextInt(16), tY = mMinY + aRandom.nextInt(mMaxY - mMinY), tZ = aChunkZ + aRandom.nextInt(16); + Block tBlock = aWorld.getBlock(tX, tY - 7, tZ); + if (tBlock != null && tBlock.isOpaqueCube() && aWorld.getBlock(tX, tY - 6, tZ).isAir(aWorld, tX, tY - 6, tZ)) { + float var6 = aRandom.nextFloat() * (float) Math.PI; + double var7 = ((tX + 8) + MathHelper.sin(var6) * mSize / 8.0F); + double var9 = ((tX + 8) - MathHelper.sin(var6) * mSize / 8.0F); + double var11 = ((tZ + 8) + MathHelper.cos(var6) * mSize / 8.0F); + double var13 = ((tZ + 8) - MathHelper.cos(var6) * mSize / 8.0F); + double var15 = (tY + aRandom.nextInt(3) - 2); + double var17 = (tY + aRandom.nextInt(3) - 2); + + for (int var19 = 0; var19 <= mSize; ++var19) { + double var20 = var7 + (var9 - var7) * var19 / mSize; + double var22 = var15 + (var17 - var15) * var19 / mSize; + double var24 = var11 + (var13 - var11) * var19 / mSize; + double var26 = aRandom.nextDouble() * mSize / 16.0D; + double var28 = (MathHelper.sin(var19 * (float) Math.PI / mSize) + 1.0F) * var26 + 1.0D; + double var30 = (MathHelper.sin(var19 * (float) Math.PI / mSize) + 1.0F) * var26 + 1.0D; + int var32 = MathHelper.floor_double(var20 - var28 / 2.0D); + int var33 = MathHelper.floor_double(var22 - var30 / 2.0D); + int var34 = MathHelper.floor_double(var24 - var28 / 2.0D); + int var35 = MathHelper.floor_double(var20 + var28 / 2.0D); + int var36 = MathHelper.floor_double(var22 + var30 / 2.0D); + int var37 = MathHelper.floor_double(var24 + var28 / 2.0D); + + for (int var38 = var32; var38 <= var35; ++var38) { + double var39 = (var38 + 0.5D - var20) / (var28 / 2.0D); + if (var39 * var39 < 1.0D) { + for (int var41 = var33; var41 <= var36; ++var41) { + double var42 = (var41 + 0.5D - var22) / (var30 / 2.0D); + if (var39 * var39 + var42 * var42 < 1.0D) { + for (int var44 = var34; var44 <= var37; ++var44) { + double var45 = (var44 + 0.5D - var24) / (var28 / 2.0D); + Block block = aWorld.getBlock(var38, var41, var44); + if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0D && ((mAllowToGenerateinVoid && aWorld.getBlock(var38, var41, var44).isAir(aWorld, var38, var41, var44)) || (block != null && !(block instanceof BlockContainer)))) { + aWorld.setBlock(var38, var41, var44, mBlock, mBlockMeta, 0); + } + } + } + } + } + } + } + } + } + return true; + } return false; - } + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/world/GT_Worldgen_Ore.java b/src/main/java/gregtech/api/world/GT_Worldgen_Ore.java index 58e1eb28..bdba08bf 100644 --- a/src/main/java/gregtech/api/world/GT_Worldgen_Ore.java +++ b/src/main/java/gregtech/api/world/GT_Worldgen_Ore.java @@ -1,29 +1,29 @@ package gregtech.api.world; import gregtech.api.GregTech_API; +import net.minecraft.block.Block; import java.util.ArrayList; import java.util.Collection; -import net.minecraft.block.Block; - public abstract class GT_Worldgen_Ore extends GT_Worldgen { - public final int mBlockMeta, mAmount, mSize, mMinY, mMaxY, mProbability, mDimensionType; - public final Block mBlock; - public final Collection mBiomeList; - public final boolean mAllowToGenerateinVoid; - - public GT_Worldgen_Ore(String aName, boolean aDefault, Block aBlock, int aBlockMeta, int aDimensionType, int aAmount, int aSize, int aProbability, int aMinY, int aMaxY, Collection aBiomeList, boolean aAllowToGenerateinVoid) { - super(aName, GregTech_API.sWorldgenList, aDefault); - mDimensionType = aDimensionType; - mBlock = aBlock; - mBlockMeta = Math.min(Math.max(aBlockMeta, 0), 15); - mProbability = GregTech_API.sWorldgenFile.get("worldgen."+mWorldGenName, "Probability" , aProbability); - mAmount = GregTech_API.sWorldgenFile.get("worldgen."+mWorldGenName, "Amount" , aAmount); - mSize = GregTech_API.sWorldgenFile.get("worldgen."+mWorldGenName, "Size" , aSize); - mMinY = GregTech_API.sWorldgenFile.get("worldgen."+mWorldGenName, "MinHeight" , aMinY); - mMaxY = GregTech_API.sWorldgenFile.get("worldgen."+mWorldGenName, "MaxHeight" , aMaxY); - if (aBiomeList == null) mBiomeList = new ArrayList(); else mBiomeList = aBiomeList; - mAllowToGenerateinVoid = aAllowToGenerateinVoid; - } + public final int mBlockMeta, mAmount, mSize, mMinY, mMaxY, mProbability, mDimensionType; + public final Block mBlock; + public final Collection mBiomeList; + public final boolean mAllowToGenerateinVoid; + + public GT_Worldgen_Ore(String aName, boolean aDefault, Block aBlock, int aBlockMeta, int aDimensionType, int aAmount, int aSize, int aProbability, int aMinY, int aMaxY, Collection aBiomeList, boolean aAllowToGenerateinVoid) { + super(aName, GregTech_API.sWorldgenList, aDefault); + mDimensionType = aDimensionType; + mBlock = aBlock; + mBlockMeta = Math.min(Math.max(aBlockMeta, 0), 15); + mProbability = GregTech_API.sWorldgenFile.get("worldgen." + mWorldGenName, "Probability", aProbability); + mAmount = GregTech_API.sWorldgenFile.get("worldgen." + mWorldGenName, "Amount", aAmount); + mSize = GregTech_API.sWorldgenFile.get("worldgen." + mWorldGenName, "Size", aSize); + mMinY = GregTech_API.sWorldgenFile.get("worldgen." + mWorldGenName, "MinHeight", aMinY); + mMaxY = GregTech_API.sWorldgenFile.get("worldgen." + mWorldGenName, "MaxHeight", aMaxY); + if (aBiomeList == null) mBiomeList = new ArrayList(); + else mBiomeList = aBiomeList; + mAllowToGenerateinVoid = aAllowToGenerateinVoid; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/world/GT_Worldgen_Ore_Normal.java b/src/main/java/gregtech/api/world/GT_Worldgen_Ore_Normal.java index c382a6fd..73b2a13d 100644 --- a/src/main/java/gregtech/api/world/GT_Worldgen_Ore_Normal.java +++ b/src/main/java/gregtech/api/world/GT_Worldgen_Ore_Normal.java @@ -1,69 +1,69 @@ package gregtech.api.world; -import java.util.Collection; -import java.util.Random; - import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkProvider; +import java.util.Collection; +import java.util.Random; + public class GT_Worldgen_Ore_Normal extends GT_Worldgen_Ore { - public GT_Worldgen_Ore_Normal(String aName, boolean aDefault, Block aBlock, int aBlockMeta, int aDimensionType, int aAmount, int aSize, int aProbability, int aMinY, int aMaxY, Collection aBiomeList, boolean aAllowToGenerateinVoid) { - super(aName, aDefault, aBlock, aBlockMeta, aDimensionType, aAmount, aSize, aProbability, aMinY, aMaxY, aBiomeList, aAllowToGenerateinVoid); - } - - @Override - public boolean executeWorldgen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) { - if (isGenerationAllowed(aWorld, aDimensionType, mDimensionType) && (mBiomeList.isEmpty() || mBiomeList.contains(aBiome)) && (mProbability <= 1 || aRandom.nextInt(mProbability) == 0)) { - for (int i = 0; i < mAmount; i++) { - int tX = aChunkX + aRandom.nextInt(16), tY = mMinY + aRandom.nextInt(mMaxY - mMinY), tZ = aChunkZ + aRandom.nextInt(16); - if (mAllowToGenerateinVoid || aWorld.getBlock(tX, tY, tZ).isAir(aWorld, tX, tY, tZ)) { - float var6 = aRandom.nextFloat() * (float)Math.PI; - double var7 = ((tX + 8) + MathHelper.sin(var6) * mSize / 8.0F); - double var9 = ((tX + 8) - MathHelper.sin(var6) * mSize / 8.0F); - double var11 = ((tZ + 8) + MathHelper.cos(var6) * mSize / 8.0F); - double var13 = ((tZ + 8) - MathHelper.cos(var6) * mSize / 8.0F); - double var15 = (tY + aRandom.nextInt(3) - 2); - double var17 = (tY + aRandom.nextInt(3) - 2); - - for (int var19 = 0; var19 <= mSize; ++var19) { - double var20 = var7 + (var9 - var7) * var19 / mSize; - double var22 = var15 + (var17 - var15) * var19 / mSize; - double var24 = var11 + (var13 - var11) * var19 / mSize; - double var26 = aRandom.nextDouble() * mSize / 16.0D; - double var28 = (MathHelper.sin(var19 * (float)Math.PI / mSize) + 1.0F) * var26 + 1.0D; - double var30 = (MathHelper.sin(var19 * (float)Math.PI / mSize) + 1.0F) * var26 + 1.0D; - int var32 = MathHelper.floor_double(var20 - var28 / 2.0D); - int var33 = MathHelper.floor_double(var22 - var30 / 2.0D); - int var34 = MathHelper.floor_double(var24 - var28 / 2.0D); - int var35 = MathHelper.floor_double(var20 + var28 / 2.0D); - int var36 = MathHelper.floor_double(var22 + var30 / 2.0D); - int var37 = MathHelper.floor_double(var24 + var28 / 2.0D); - - for (int var38 = var32; var38 <= var35; ++var38) { - double var39 = (var38 + 0.5D - var20) / (var28 / 2.0D); - if (var39 * var39 < 1.0D) { - for (int var41 = var33; var41 <= var36; ++var41) { - double var42 = (var41 + 0.5D - var22) / (var30 / 2.0D); - if (var39 * var39 + var42 * var42 < 1.0D) { - for (int var44 = var34; var44 <= var37; ++var44) { - double var45 = (var44 + 0.5D - var24) / (var28 / 2.0D); - Block block = aWorld.getBlock(var38, var41, var44); - if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0D && ((mAllowToGenerateinVoid&&aWorld.getBlock(var38, var41, var44).isAir(aWorld, var38, var41, var44)) || (block != null && (block.isReplaceableOreGen(aWorld, var38, var41, var44, Blocks.stone) || block.isReplaceableOreGen(aWorld, var38, var41, var44, Blocks.end_stone) || block.isReplaceableOreGen(aWorld, var38, var41, var44, Blocks.netherrack))))) { - aWorld.setBlock(var38, var41, var44, mBlock, mBlockMeta, 0); - } - } - } - } - } - } - } - } - } - return true; - } + public GT_Worldgen_Ore_Normal(String aName, boolean aDefault, Block aBlock, int aBlockMeta, int aDimensionType, int aAmount, int aSize, int aProbability, int aMinY, int aMaxY, Collection aBiomeList, boolean aAllowToGenerateinVoid) { + super(aName, aDefault, aBlock, aBlockMeta, aDimensionType, aAmount, aSize, aProbability, aMinY, aMaxY, aBiomeList, aAllowToGenerateinVoid); + } + + @Override + public boolean executeWorldgen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) { + if (isGenerationAllowed(aWorld, aDimensionType, mDimensionType) && (mBiomeList.isEmpty() || mBiomeList.contains(aBiome)) && (mProbability <= 1 || aRandom.nextInt(mProbability) == 0)) { + for (int i = 0; i < mAmount; i++) { + int tX = aChunkX + aRandom.nextInt(16), tY = mMinY + aRandom.nextInt(mMaxY - mMinY), tZ = aChunkZ + aRandom.nextInt(16); + if (mAllowToGenerateinVoid || aWorld.getBlock(tX, tY, tZ).isAir(aWorld, tX, tY, tZ)) { + float var6 = aRandom.nextFloat() * (float) Math.PI; + double var7 = ((tX + 8) + MathHelper.sin(var6) * mSize / 8.0F); + double var9 = ((tX + 8) - MathHelper.sin(var6) * mSize / 8.0F); + double var11 = ((tZ + 8) + MathHelper.cos(var6) * mSize / 8.0F); + double var13 = ((tZ + 8) - MathHelper.cos(var6) * mSize / 8.0F); + double var15 = (tY + aRandom.nextInt(3) - 2); + double var17 = (tY + aRandom.nextInt(3) - 2); + + for (int var19 = 0; var19 <= mSize; ++var19) { + double var20 = var7 + (var9 - var7) * var19 / mSize; + double var22 = var15 + (var17 - var15) * var19 / mSize; + double var24 = var11 + (var13 - var11) * var19 / mSize; + double var26 = aRandom.nextDouble() * mSize / 16.0D; + double var28 = (MathHelper.sin(var19 * (float) Math.PI / mSize) + 1.0F) * var26 + 1.0D; + double var30 = (MathHelper.sin(var19 * (float) Math.PI / mSize) + 1.0F) * var26 + 1.0D; + int var32 = MathHelper.floor_double(var20 - var28 / 2.0D); + int var33 = MathHelper.floor_double(var22 - var30 / 2.0D); + int var34 = MathHelper.floor_double(var24 - var28 / 2.0D); + int var35 = MathHelper.floor_double(var20 + var28 / 2.0D); + int var36 = MathHelper.floor_double(var22 + var30 / 2.0D); + int var37 = MathHelper.floor_double(var24 + var28 / 2.0D); + + for (int var38 = var32; var38 <= var35; ++var38) { + double var39 = (var38 + 0.5D - var20) / (var28 / 2.0D); + if (var39 * var39 < 1.0D) { + for (int var41 = var33; var41 <= var36; ++var41) { + double var42 = (var41 + 0.5D - var22) / (var30 / 2.0D); + if (var39 * var39 + var42 * var42 < 1.0D) { + for (int var44 = var34; var44 <= var37; ++var44) { + double var45 = (var44 + 0.5D - var24) / (var28 / 2.0D); + Block block = aWorld.getBlock(var38, var41, var44); + if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0D && ((mAllowToGenerateinVoid && aWorld.getBlock(var38, var41, var44).isAir(aWorld, var38, var41, var44)) || (block != null && (block.isReplaceableOreGen(aWorld, var38, var41, var44, Blocks.stone) || block.isReplaceableOreGen(aWorld, var38, var41, var44, Blocks.end_stone) || block.isReplaceableOreGen(aWorld, var38, var41, var44, Blocks.netherrack))))) { + aWorld.setBlock(var38, var41, var44, mBlock, mBlockMeta, 0); + } + } + } + } + } + } + } + } + } + return true; + } return false; - } + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock.java b/src/main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock.java index 62dc220b..8cdc75c0 100644 --- a/src/main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock.java +++ b/src/main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock.java @@ -1,30 +1,30 @@ package gregtech.api.world; -import java.util.Collection; -import java.util.Random; - import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkProvider; +import java.util.Collection; +import java.util.Random; + public class GT_Worldgen_Ore_SingleBlock extends GT_Worldgen_Ore { - public GT_Worldgen_Ore_SingleBlock(String aName, boolean aDefault, Block aBlock, int aBlockMeta, int aDimensionType, int aAmount, int aSize, int aProbability, int aMinY, int aMaxY, Collection aBiomeList, boolean aAllowToGenerateinVoid) { - super(aName, aDefault, aBlock, aBlockMeta, aDimensionType, aAmount, aSize, aProbability, aMinY, aMaxY, aBiomeList, aAllowToGenerateinVoid); - } - - @Override - public boolean executeWorldgen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) { - if (isGenerationAllowed(aWorld, aDimensionType, mDimensionType) && (mBiomeList.isEmpty() || mBiomeList.contains(aBiome)) && (mProbability <= 1 || aRandom.nextInt(mProbability) == 0)) { - for (int i = 0; i < mAmount; i++) { - int tX = aChunkX + aRandom.nextInt(16), tY = mMinY + aRandom.nextInt(mMaxY - mMinY), tZ = aChunkZ + aRandom.nextInt(16); - Block tBlock = aWorld.getBlock(tX, tY, tZ); - if (((mAllowToGenerateinVoid&&aWorld.getBlock(tX, tY, tZ).isAir(aWorld, tX, tY, tZ)) || (tBlock != null && (tBlock.isReplaceableOreGen(aWorld, tX, tY, tZ, Blocks.stone) || tBlock.isReplaceableOreGen(aWorld, tX, tY, tZ, Blocks.end_stone) || tBlock.isReplaceableOreGen(aWorld, tX, tY, tZ, Blocks.netherrack))))) { - aWorld.setBlock(tX, tY, tZ, mBlock, mBlockMeta, 0); - } - } - return true; - } + public GT_Worldgen_Ore_SingleBlock(String aName, boolean aDefault, Block aBlock, int aBlockMeta, int aDimensionType, int aAmount, int aSize, int aProbability, int aMinY, int aMaxY, Collection aBiomeList, boolean aAllowToGenerateinVoid) { + super(aName, aDefault, aBlock, aBlockMeta, aDimensionType, aAmount, aSize, aProbability, aMinY, aMaxY, aBiomeList, aAllowToGenerateinVoid); + } + + @Override + public boolean executeWorldgen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) { + if (isGenerationAllowed(aWorld, aDimensionType, mDimensionType) && (mBiomeList.isEmpty() || mBiomeList.contains(aBiome)) && (mProbability <= 1 || aRandom.nextInt(mProbability) == 0)) { + for (int i = 0; i < mAmount; i++) { + int tX = aChunkX + aRandom.nextInt(16), tY = mMinY + aRandom.nextInt(mMaxY - mMinY), tZ = aChunkZ + aRandom.nextInt(16); + Block tBlock = aWorld.getBlock(tX, tY, tZ); + if (((mAllowToGenerateinVoid && aWorld.getBlock(tX, tY, tZ).isAir(aWorld, tX, tY, tZ)) || (tBlock != null && (tBlock.isReplaceableOreGen(aWorld, tX, tY, tZ, Blocks.stone) || tBlock.isReplaceableOreGen(aWorld, tX, tY, tZ, Blocks.end_stone) || tBlock.isReplaceableOreGen(aWorld, tX, tY, tZ, Blocks.netherrack))))) { + aWorld.setBlock(tX, tY, tZ, mBlock, mBlockMeta, 0); + } + } + return true; + } return false; - } + } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock_UnderLava.java b/src/main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock_UnderLava.java index fc921087..f7df9207 100644 --- a/src/main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock_UnderLava.java +++ b/src/main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock_UnderLava.java @@ -1,30 +1,31 @@ package gregtech.api.world; -import java.util.Collection; -import java.util.Random; - import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkProvider; +import java.util.Collection; +import java.util.Random; + public class GT_Worldgen_Ore_SingleBlock_UnderLava extends GT_Worldgen_Ore { - public GT_Worldgen_Ore_SingleBlock_UnderLava(String aName, boolean aDefault, Block aBlock, int aBlockMeta, int aDimensionType, int aAmount, int aSize, int aProbability, int aMinY, int aMaxY, Collection aBiomeList, boolean aAllowToGenerateinVoid) { - super(aName, aDefault, aBlock, aBlockMeta, aDimensionType, aAmount, aSize, aProbability, aMinY, aMaxY, aBiomeList, aAllowToGenerateinVoid); - } - - @Override - public boolean executeCavegen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) { - if (isGenerationAllowed(aWorld, aDimensionType, mDimensionType) && (mBiomeList.isEmpty() || mBiomeList.contains(aBiome)) && (mProbability <= 1 || aRandom.nextInt(mProbability) == 0)) { - for (int i = 0; i < mAmount; i++) { - int tX = aChunkX + aRandom.nextInt(16), tY = mMinY + aRandom.nextInt(mMaxY - mMinY), tZ = aChunkZ + aRandom.nextInt(16); - Block tBlock = aWorld.getBlock(tX, tY, tZ); - if (((mAllowToGenerateinVoid&&aWorld.getBlock(tX, tY, tZ).isAir(aWorld, tX, tY, tZ)) || (tBlock != null && (tBlock.isReplaceableOreGen(aWorld, tX, tY, tZ, Blocks.stone) || tBlock.isReplaceableOreGen(aWorld, tX, tY, tZ, Blocks.end_stone) || tBlock.isReplaceableOreGen(aWorld, tX, tY, tZ, Blocks.netherrack))))) { - if (aWorld.getBlock(tX, tY+1, tZ) == Blocks.lava || aWorld.getBlock(tX, tY, tZ) == Blocks.flowing_lava) aWorld.setBlock(tX, tY, tZ, mBlock, mBlockMeta, 0); - } - } - return true; - } + public GT_Worldgen_Ore_SingleBlock_UnderLava(String aName, boolean aDefault, Block aBlock, int aBlockMeta, int aDimensionType, int aAmount, int aSize, int aProbability, int aMinY, int aMaxY, Collection aBiomeList, boolean aAllowToGenerateinVoid) { + super(aName, aDefault, aBlock, aBlockMeta, aDimensionType, aAmount, aSize, aProbability, aMinY, aMaxY, aBiomeList, aAllowToGenerateinVoid); + } + + @Override + public boolean executeCavegen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) { + if (isGenerationAllowed(aWorld, aDimensionType, mDimensionType) && (mBiomeList.isEmpty() || mBiomeList.contains(aBiome)) && (mProbability <= 1 || aRandom.nextInt(mProbability) == 0)) { + for (int i = 0; i < mAmount; i++) { + int tX = aChunkX + aRandom.nextInt(16), tY = mMinY + aRandom.nextInt(mMaxY - mMinY), tZ = aChunkZ + aRandom.nextInt(16); + Block tBlock = aWorld.getBlock(tX, tY, tZ); + if (((mAllowToGenerateinVoid && aWorld.getBlock(tX, tY, tZ).isAir(aWorld, tX, tY, tZ)) || (tBlock != null && (tBlock.isReplaceableOreGen(aWorld, tX, tY, tZ, Blocks.stone) || tBlock.isReplaceableOreGen(aWorld, tX, tY, tZ, Blocks.end_stone) || tBlock.isReplaceableOreGen(aWorld, tX, tY, tZ, Blocks.netherrack))))) { + if (aWorld.getBlock(tX, tY + 1, tZ) == Blocks.lava || aWorld.getBlock(tX, tY, tZ) == Blocks.flowing_lava) + aWorld.setBlock(tX, tY, tZ, mBlock, mBlockMeta, 0); + } + } + return true; + } return false; - } + } } \ No newline at end of file diff --git a/src/main/java/gregtech/common/GT_Client.java b/src/main/java/gregtech/common/GT_Client.java index f893690f..a50fc174 100644 --- a/src/main/java/gregtech/common/GT_Client.java +++ b/src/main/java/gregtech/common/GT_Client.java @@ -6,36 +6,25 @@ package gregtech.common; import codechicken.lib.vec.Rotation; -import codechicken.lib.vec.Transformation; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent; -import cpw.mods.fml.relauncher.Side; import gregtech.GT_Mod; import gregtech.api.GregTech_API; -import gregtech.api.enums.*; -import gregtech.api.interfaces.internal.IGT_Mod; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.enums.ConfigCategories; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; import gregtech.api.interfaces.tileentity.ICoverable; import gregtech.api.interfaces.tileentity.ITurnable; import gregtech.api.metatileentity.BaseMetaPipeEntity; import gregtech.api.objects.GT_FluidStack; -import gregtech.api.objects.GT_ItemStack; -import gregtech.api.util.*; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_PlayedSound; +import gregtech.api.util.GT_Utility; import gregtech.common.entities.GT_Entity_Arrow; import gregtech.common.entities.GT_Entity_Arrow_Potion; -import gregtech.common.render.GT_CapeRenderer; -import gregtech.common.render.GT_MetaGenerated_Item_Renderer; -import gregtech.common.render.GT_MetaGenerated_Tool_Renderer; -import gregtech.common.render.GT_Renderer_Block; -import gregtech.common.render.GT_Renderer_Entity_Arrow; +import gregtech.common.render.*; import ic2.api.tile.IWrenchable; - -import java.io.PrintStream; -import java.lang.reflect.Field; -import java.net.URL; -import java.util.*; - import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; @@ -43,280 +32,104 @@ import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; import net.minecraftforge.client.event.DrawBlockHighlightEvent; -import net.minecraftforge.client.event.RenderPlayerEvent; - import org.lwjgl.opengl.GL11; +import java.net.URL; +import java.util.*; + // Referenced classes of package gregtech.common: // GT_Proxy public class GT_Client extends GT_Proxy - implements Runnable -{ + implements Runnable { - public boolean isServerSide() - { - return true; + private static List ROTATABLE_VANILLA_BLOCKS; + + static { + ROTATABLE_VANILLA_BLOCKS = Arrays.asList(new Block[]{ + Blocks.piston, Blocks.sticky_piston, Blocks.furnace, Blocks.lit_furnace, Blocks.dropper, Blocks.dispenser, Blocks.chest, Blocks.trapped_chest, Blocks.ender_chest, Blocks.hopper, + Blocks.pumpkin, Blocks.lit_pumpkin + }); } - public boolean isClientSide() - { - return true; - } - - public boolean isBukkitSide() - { - return false; - } - - public EntityPlayer getThePlayer() - { - return Minecraft.getMinecraft().thePlayer; - } - - public int addArmor(String aPrefix) - { - return RenderingRegistry.addNewArmourRendererPrefix(aPrefix); - } - - public GT_Client() - { + private final HashSet mCapeList = new HashSet(); + private final GT_CapeRenderer mCapeRenderer; + private final List mPosR; + private final List mPosG; + private final List mPosB; + private final List mPosA = Arrays.asList(new Object[0]); + private final List mNegR; + private final List mNegG; + private final List mNegB; + private final List mNegA = Arrays.asList(new Object[0]); + private final List mMoltenPosR; + private final List mMoltenPosG; + private final List mMoltenPosB; + private final List mMoltenPosA = Arrays.asList(new Object[0]); + private final List mMoltenNegR; + private final List mMoltenNegG; + private final List mMoltenNegB; + private final List mMoltenNegA = Arrays.asList(new Object[0]); + private long mAnimationTick; + private boolean mAnimationDirection; + private boolean isFirstClientPlayerTick; + private String mMessage; + public GT_Client() { mCapeRenderer = new GT_CapeRenderer(mCapeList); mAnimationTick = 0L; mAnimationDirection = false; isFirstClientPlayerTick = true; mMessage = ""; - mPosR = Arrays.asList(new Materials[] { - /**Materials.ChargedCertusQuartz, **/Materials.Enderium, Materials.Vinteum, Materials.Uranium235, Materials.InfusedGold, Materials.Plutonium241, Materials.NaquadahEnriched, Materials.Naquadria, Materials.InfusedOrder, Materials.Force, - Materials.Pyrotheum, Materials.Sunnarium, Materials.Glowstone, Materials.Thaumium, Materials.InfusedVis, Materials.InfusedAir, Materials.InfusedFire, Materials.FierySteel, Materials.Firestone + mPosR = Arrays.asList(new Materials[]{ + /**Materials.ChargedCertusQuartz, **/Materials.Enderium, Materials.Vinteum, Materials.Uranium235, Materials.InfusedGold, Materials.Plutonium241, Materials.NaquadahEnriched, Materials.Naquadria, Materials.InfusedOrder, Materials.Force, + Materials.Pyrotheum, Materials.Sunnarium, Materials.Glowstone, Materials.Thaumium, Materials.InfusedVis, Materials.InfusedAir, Materials.InfusedFire, Materials.FierySteel, Materials.Firestone }); - mPosG = Arrays.asList(new Materials[] { - /**Materials.ChargedCertusQuartz, **/Materials.Enderium, Materials.Vinteum, Materials.Uranium235, Materials.InfusedGold, Materials.Plutonium241, Materials.NaquadahEnriched, Materials.Naquadria, Materials.InfusedOrder, Materials.Force, - Materials.Pyrotheum, Materials.Sunnarium, Materials.Glowstone, Materials.InfusedAir, Materials.InfusedEarth + mPosG = Arrays.asList(new Materials[]{ + /**Materials.ChargedCertusQuartz, **/Materials.Enderium, Materials.Vinteum, Materials.Uranium235, Materials.InfusedGold, Materials.Plutonium241, Materials.NaquadahEnriched, Materials.Naquadria, Materials.InfusedOrder, Materials.Force, + Materials.Pyrotheum, Materials.Sunnarium, Materials.Glowstone, Materials.InfusedAir, Materials.InfusedEarth }); - mPosB = Arrays.asList(new Materials[] { - /**Materials.ChargedCertusQuartz, **/Materials.Enderium, Materials.Vinteum, Materials.Uranium235, Materials.InfusedGold, Materials.Plutonium241, Materials.NaquadahEnriched, Materials.Naquadria, Materials.InfusedOrder, Materials.InfusedVis, - Materials.InfusedWater, Materials.Thaumium + mPosB = Arrays.asList(new Materials[]{ + /**Materials.ChargedCertusQuartz, **/Materials.Enderium, Materials.Vinteum, Materials.Uranium235, Materials.InfusedGold, Materials.Plutonium241, Materials.NaquadahEnriched, Materials.Naquadria, Materials.InfusedOrder, Materials.InfusedVis, + Materials.InfusedWater, Materials.Thaumium }); - mNegR = Arrays.asList(new Materials[] { - Materials.InfusedEntropy, Materials.NetherStar + mNegR = Arrays.asList(new Materials[]{ + Materials.InfusedEntropy, Materials.NetherStar }); - mNegG = Arrays.asList(new Materials[] { - Materials.InfusedEntropy, Materials.NetherStar + mNegG = Arrays.asList(new Materials[]{ + Materials.InfusedEntropy, Materials.NetherStar }); - mNegB = Arrays.asList(new Materials[] { - Materials.InfusedEntropy, Materials.NetherStar + mNegB = Arrays.asList(new Materials[]{ + Materials.InfusedEntropy, Materials.NetherStar }); - mMoltenPosR = Arrays.asList(new Materials[] { - Materials.Enderium, Materials.NetherStar, Materials.Vinteum, Materials.Uranium235, Materials.InfusedGold, Materials.Plutonium241, Materials.NaquadahEnriched, Materials.Naquadria, Materials.InfusedOrder, Materials.Force, - Materials.Pyrotheum, Materials.Sunnarium, Materials.Glowstone, Materials.Thaumium, Materials.InfusedVis, Materials.InfusedAir, Materials.InfusedFire, Materials.FierySteel, Materials.Firestone + mMoltenPosR = Arrays.asList(new Materials[]{ + Materials.Enderium, Materials.NetherStar, Materials.Vinteum, Materials.Uranium235, Materials.InfusedGold, Materials.Plutonium241, Materials.NaquadahEnriched, Materials.Naquadria, Materials.InfusedOrder, Materials.Force, + Materials.Pyrotheum, Materials.Sunnarium, Materials.Glowstone, Materials.Thaumium, Materials.InfusedVis, Materials.InfusedAir, Materials.InfusedFire, Materials.FierySteel, Materials.Firestone }); - mMoltenPosG = Arrays.asList(new Materials[] { - Materials.Enderium, Materials.NetherStar, Materials.Vinteum, Materials.Uranium235, Materials.InfusedGold, Materials.Plutonium241, Materials.NaquadahEnriched, Materials.Naquadria, Materials.InfusedOrder, Materials.Force, - Materials.Pyrotheum, Materials.Sunnarium, Materials.Glowstone, Materials.InfusedAir, Materials.InfusedEarth + mMoltenPosG = Arrays.asList(new Materials[]{ + Materials.Enderium, Materials.NetherStar, Materials.Vinteum, Materials.Uranium235, Materials.InfusedGold, Materials.Plutonium241, Materials.NaquadahEnriched, Materials.Naquadria, Materials.InfusedOrder, Materials.Force, + Materials.Pyrotheum, Materials.Sunnarium, Materials.Glowstone, Materials.InfusedAir, Materials.InfusedEarth }); - mMoltenPosB = Arrays.asList(new Materials[] { - Materials.Enderium, Materials.NetherStar, Materials.Vinteum, Materials.Uranium235, Materials.InfusedGold, Materials.Plutonium241, Materials.NaquadahEnriched, Materials.Naquadria, Materials.InfusedOrder, Materials.InfusedVis, - Materials.InfusedWater, Materials.Thaumium + mMoltenPosB = Arrays.asList(new Materials[]{ + Materials.Enderium, Materials.NetherStar, Materials.Vinteum, Materials.Uranium235, Materials.InfusedGold, Materials.Plutonium241, Materials.NaquadahEnriched, Materials.Naquadria, Materials.InfusedOrder, Materials.InfusedVis, + Materials.InfusedWater, Materials.Thaumium }); - mMoltenNegR = Arrays.asList(new Materials[] { - Materials.InfusedEntropy + mMoltenNegR = Arrays.asList(new Materials[]{ + Materials.InfusedEntropy }); - mMoltenNegG = Arrays.asList(new Materials[] { - Materials.InfusedEntropy + mMoltenNegG = Arrays.asList(new Materials[]{ + Materials.InfusedEntropy }); - mMoltenNegB = Arrays.asList(new Materials[] { - Materials.InfusedEntropy + mMoltenNegB = Arrays.asList(new Materials[]{ + Materials.InfusedEntropy }); } - public void onPreLoad() - { - super.onPreLoad(); - String arr$[] = { - "renadi", "hanakocz", "MysteryDump", "Flaver4", "x_Fame", "Peluche321", "Goshen_Ithilien", "manf", "Bimgo", "leagris", - "IAmMinecrafter02", "Cerous", "Devilin_Pixy", "Bkarlsson87", "BadAlchemy", "CaballoCraft", "melanclock", "Resursator", "demanzke", "AndrewAmmerlaan", - "Deathlycraft", "Jirajha", "Axlegear", "kei_kouma", "Dracion", "dungi", "Dorfschwein", "Zero Tw0", "mattiagraz85", "sebastiank30", - "Plem", "invultri", "grillo126", "malcanteth", "Malevolence_", "Nicholas_Manuel", "Sirbab", "kehaan", "bpgames123", "semig0d", - "9000bowser", "Sovereignty89", "Kris1432", "xander_cage_", "samuraijp", "bsaa", "SpwnX", "tworf", "Kadah", "kanni", - "Stute", "Hegik", "Onlyme", "t3hero", "Hotchi", "jagoly", "Nullav", "BH5432", "Sibmer", "inceee", - "foxxx0", "Hartok", "TMSama", "Shlnen", "Carsso", "zessirb", "meep310", "Seldron", "yttr1um", "hohounk", - "freebug", "Sylphio", "jmarler", "Saberawr", "r00teniy", "Neonbeta", "yinscape", "voooon24", "Quintine", "peach774", - "lepthymo", "bildeman", "Kremnari", "Aerosalo", "OndraSter", "oscares91", "mr10movie", "Daxx367x2", "EGERTRONx", "aka13_404", - "Abouttabs", "Johnstaal", "djshiny99", "megatronp", "DZCreeper", "Kane_Hart", "Truculent", "vidplace7", "simon6689", "MomoNasty", - "UnknownXLV", "goreacraft", "Fluttermine", "Daddy_Cecil", "MrMaleficus", "TigersFangs", "cublikefoot", "chainman564", "NikitaBuker", "Misha999777", - "25FiveDetail", "AntiCivilBoy", "michaelbrady", "xXxIceFirexXx", "Speedynutty68", "GarretSidzaka", "HallowCharm977", "mastermind1919", "The_Hypersonic", "diamondguy2798", - "zF4ll3nPr3d4t0r", "CrafterOfMines57", "XxELIT3xSNIP3RxX", "SuterusuKusanagi", "xavier0014", "adamros", "alexbegt" - }; - int len$ = arr$.length; - for(int i$ = 0; i$ < len$; i$++) - { - String tName = arr$[i$]; - mCapeList.add(tName.toLowerCase()); - } - - (new Thread(this)).start(); - } - - public void onLoad() - { - super.onLoad(); - new GT_Renderer_Block(); - new GT_MetaGenerated_Item_Renderer(); - new GT_MetaGenerated_Tool_Renderer(); - new GT_Renderer_Entity_Arrow(GT_Entity_Arrow.class, "arrow"); - new GT_Renderer_Entity_Arrow(GT_Entity_Arrow_Potion.class, "arrow_potions"); - } - - public void onPostLoad() - { - super.onPostLoad(); -label0: - for(int i = 1; i < GregTech_API.METATILEENTITIES.length; i++) - try - { - do - { - if(i >= GregTech_API.METATILEENTITIES.length) - continue label0; - if(GregTech_API.METATILEENTITIES[i] != null) - GregTech_API.METATILEENTITIES[i].getStackForm(1L).getTooltip(null, true); - i++; - } while(true); - } - catch(Throwable e) - { - e.printStackTrace(GT_Log.err); - } - - -// super.onPostLoad(); -// -// for (int i = 1; i < GregTech_API.METATILEENTITIES.length; i++) { -// try { -// for (; i < GregTech_API.METATILEENTITIES.length; i++) if (GregTech_API.METATILEENTITIES[i] != null) GregTech_API.METATILEENTITIES[i].getStackForm(1L).getTooltip(null, true); -// } catch (Throwable e) { -// e.printStackTrace(GT_Log.err); -// } -// } - } - - public void run() - { - try - { - GT_Log.out.println("GT_Mod: Downloading Cape List."); - @SuppressWarnings("resource") - Scanner tScanner = new Scanner(new URL("http://files.minecraftforge.net/maven/com/gregoriust/gregtech/capelist.txt").openStream()); - while (tScanner.hasNextLine()) - { - String tName = tScanner.nextLine(); - if (!this.mCapeList.contains(tName.toLowerCase())) { - this.mCapeList.add(tName.toLowerCase()); - } - } - } - catch (Throwable e) {} - try - { - GT_Log.out.println("GT_Mod: Downloading News."); - @SuppressWarnings("resource") - Scanner tScanner = new Scanner(new URL("http://files.minecraftforge.net/maven/com/gregoriust/gregtech/message.txt").openStream()); - while (tScanner.hasNextLine()) { - this.mMessage = (this.mMessage + tScanner.nextLine() + " "); - } - } - catch (Throwable e) {} - } - - @SubscribeEvent - public void onPlayerTickEventClient(TickEvent.PlayerTickEvent aEvent) - { - if ((!aEvent.player.isDead) && (aEvent.phase == TickEvent.Phase.END) && (aEvent.side.isClient())) - { - ArrayList tList = new ArrayList(); - for (Map.Entry tEntry : GT_Utility.sPlayedSoundMap.entrySet()) { - if (((Integer)tEntry.getValue()).intValue() < 0) { - tList.add(tEntry.getKey()); - } else { - tEntry.setValue(Integer.valueOf(((Integer)tEntry.getValue()).intValue() - 1)); - } - } - GT_PlayedSound tKey; - for (Iterator i$ = tList.iterator(); i$.hasNext(); GT_Utility.sPlayedSoundMap.remove(tKey)) { - tKey = (GT_PlayedSound)i$.next(); - } - if ((this.isFirstClientPlayerTick) && (aEvent.player == GT_Values.GT.getThePlayer())) - { - this.isFirstClientPlayerTick = false; - GT_FluidStack.fixAllThoseFuckingFluidIDs(); - if ((this.mMessage.length() > 5) && (GregTech_API.sSpecialFile.get(ConfigCategories.news, this.mMessage, true))) { - aEvent.player.addChatComponentMessage(new ChatComponentText(this.mMessage)); - } - try - { - int tVersion = Integer.parseInt(((String)Class.forName("ic2.core.IC2").getField("VERSION").get(null)).substring(4, 7)); - if (GT_Values.D1) { - GT_Log.out.println("Industrialcraft Version: " + tVersion); - } - if (tVersion < 624) - { - aEvent.player.addChatComponentMessage(new ChatComponentText("GregTech: Please update your IndustrialCraft here:")); - aEvent.player.addChatComponentMessage(new ChatComponentText("ic2api.player.to:8080/job/IC2_experimental/" + (GT_Mod.MAX_IC2 < Integer.MAX_VALUE ? GT_Mod.MAX_IC2 : 624) + "/")); - } - else if (tVersion > GT_Mod.MAX_IC2) - { - aEvent.player.addChatComponentMessage(new ChatComponentText("GregTech: Please downgrade your IndustrialCraft here:")); - aEvent.player.addChatComponentMessage(new ChatComponentText("ic2api.player.to:8080/job/IC2_experimental/" + GT_Mod.MAX_IC2 + "/")); - } - } - catch (Throwable e) - { - aEvent.player.addChatComponentMessage(new ChatComponentText("GregTech: Please get the recommended Version of IndustrialCraft here:")); - aEvent.player.addChatComponentMessage(new ChatComponentText("ic2api.player.to:8080/job/IC2_experimental/" + (GT_Mod.MAX_IC2 < Integer.MAX_VALUE ? GT_Mod.MAX_IC2 : 624) + "/")); - } - } - } - } - - @SubscribeEvent - public void onDrawBlockHighlight(DrawBlockHighlightEvent aEvent) - { - if (GT_Utility.isStackValid(aEvent.currentItem)) - { - Block aBlock = aEvent.player.worldObj.getBlock(aEvent.target.blockX, aEvent.target.blockY, aEvent.target.blockZ); - TileEntity aTileEntity = aEvent.player.worldObj.getTileEntity(aEvent.target.blockX, aEvent.target.blockY, aEvent.target.blockZ); - try - { - Class.forName("codechicken.lib.vec.Rotation"); - if (((aTileEntity instanceof BaseMetaPipeEntity)) && (((ICoverable)aTileEntity).getCoverIDAtSide((byte)aEvent.target.sideHit) == 0) && ((GT_Utility.isStackInList(aEvent.currentItem, GregTech_API.sCovers.keySet())) || (GT_Utility.isStackInList(aEvent.currentItem, GregTech_API.sCrowbarList)) || (GT_Utility.isStackInList(aEvent.currentItem, GregTech_API.sScrewdriverList)))) - { - drawGrid(aEvent); - return; - } - if ((((aTileEntity instanceof ITurnable)) || (ROTATABLE_VANILLA_BLOCKS.contains(aBlock)) || ((aTileEntity instanceof IWrenchable))) && (GT_Utility.isStackInList(aEvent.currentItem, GregTech_API.sWrenchList))) - { - drawGrid(aEvent); - return; - } - } - catch (Throwable e) - { - if (GT_Values.D1) { - e.printStackTrace(GT_Log.err); - } - } - } - } - - private static void drawGrid(DrawBlockHighlightEvent aEvent) - { + private static void drawGrid(DrawBlockHighlightEvent aEvent) { GL11.glPushMatrix(); - GL11.glTranslated(-(aEvent.player.lastTickPosX + (aEvent.player.posX - aEvent.player.lastTickPosX) * (double)aEvent.partialTicks), -(aEvent.player.lastTickPosY + (aEvent.player.posY - aEvent.player.lastTickPosY) * (double)aEvent.partialTicks), -(aEvent.player.lastTickPosZ + (aEvent.player.posZ - aEvent.player.lastTickPosZ) * (double)aEvent.partialTicks)); - GL11.glTranslated((float)aEvent.target.blockX + 0.5F, (float)aEvent.target.blockY + 0.5F, (float)aEvent.target.blockZ + 0.5F); + GL11.glTranslated(-(aEvent.player.lastTickPosX + (aEvent.player.posX - aEvent.player.lastTickPosX) * (double) aEvent.partialTicks), -(aEvent.player.lastTickPosY + (aEvent.player.posY - aEvent.player.lastTickPosY) * (double) aEvent.partialTicks), -(aEvent.player.lastTickPosZ + (aEvent.player.posZ - aEvent.player.lastTickPosZ) * (double) aEvent.partialTicks)); + GL11.glTranslated((float) aEvent.target.blockX + 0.5F, (float) aEvent.target.blockY + 0.5F, (float) aEvent.target.blockZ + 0.5F); Rotation.sideRotations[aEvent.target.sideHit].glApply(); GL11.glTranslated(0.0D, -0.501D, 0.0D); GL11.glLineWidth(2.0F); @@ -334,247 +147,359 @@ label0: GL11.glPopMatrix(); } + public boolean isServerSide() { + return true; + } + + public boolean isClientSide() { + return true; + } + + public boolean isBukkitSide() { + return false; + } + + public EntityPlayer getThePlayer() { + return Minecraft.getMinecraft().thePlayer; + } + + public int addArmor(String aPrefix) { + return RenderingRegistry.addNewArmourRendererPrefix(aPrefix); + } + + public void onPreLoad() { + super.onPreLoad(); + String arr$[] = { + "renadi", "hanakocz", "MysteryDump", "Flaver4", "x_Fame", "Peluche321", "Goshen_Ithilien", "manf", "Bimgo", "leagris", + "IAmMinecrafter02", "Cerous", "Devilin_Pixy", "Bkarlsson87", "BadAlchemy", "CaballoCraft", "melanclock", "Resursator", "demanzke", "AndrewAmmerlaan", + "Deathlycraft", "Jirajha", "Axlegear", "kei_kouma", "Dracion", "dungi", "Dorfschwein", "Zero Tw0", "mattiagraz85", "sebastiank30", + "Plem", "invultri", "grillo126", "malcanteth", "Malevolence_", "Nicholas_Manuel", "Sirbab", "kehaan", "bpgames123", "semig0d", + "9000bowser", "Sovereignty89", "Kris1432", "xander_cage_", "samuraijp", "bsaa", "SpwnX", "tworf", "Kadah", "kanni", + "Stute", "Hegik", "Onlyme", "t3hero", "Hotchi", "jagoly", "Nullav", "BH5432", "Sibmer", "inceee", + "foxxx0", "Hartok", "TMSama", "Shlnen", "Carsso", "zessirb", "meep310", "Seldron", "yttr1um", "hohounk", + "freebug", "Sylphio", "jmarler", "Saberawr", "r00teniy", "Neonbeta", "yinscape", "voooon24", "Quintine", "peach774", + "lepthymo", "bildeman", "Kremnari", "Aerosalo", "OndraSter", "oscares91", "mr10movie", "Daxx367x2", "EGERTRONx", "aka13_404", + "Abouttabs", "Johnstaal", "djshiny99", "megatronp", "DZCreeper", "Kane_Hart", "Truculent", "vidplace7", "simon6689", "MomoNasty", + "UnknownXLV", "goreacraft", "Fluttermine", "Daddy_Cecil", "MrMaleficus", "TigersFangs", "cublikefoot", "chainman564", "NikitaBuker", "Misha999777", + "25FiveDetail", "AntiCivilBoy", "michaelbrady", "xXxIceFirexXx", "Speedynutty68", "GarretSidzaka", "HallowCharm977", "mastermind1919", "The_Hypersonic", "diamondguy2798", + "zF4ll3nPr3d4t0r", "CrafterOfMines57", "XxELIT3xSNIP3RxX", "SuterusuKusanagi", "xavier0014", "adamros", "alexbegt" + }; + int len$ = arr$.length; + for (int i$ = 0; i$ < len$; i$++) { + String tName = arr$[i$]; + mCapeList.add(tName.toLowerCase()); + } + + (new Thread(this)).start(); + } + + public void onLoad() { + super.onLoad(); + new GT_Renderer_Block(); + new GT_MetaGenerated_Item_Renderer(); + new GT_MetaGenerated_Tool_Renderer(); + new GT_Renderer_Entity_Arrow(GT_Entity_Arrow.class, "arrow"); + new GT_Renderer_Entity_Arrow(GT_Entity_Arrow_Potion.class, "arrow_potions"); + } + + public void onPostLoad() { + super.onPostLoad(); + label0: + for (int i = 1; i < GregTech_API.METATILEENTITIES.length; i++) + try { + do { + if (i >= GregTech_API.METATILEENTITIES.length) + continue label0; + if (GregTech_API.METATILEENTITIES[i] != null) + GregTech_API.METATILEENTITIES[i].getStackForm(1L).getTooltip(null, true); + i++; + } while (true); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + + +// super.onPostLoad(); +// +// for (int i = 1; i < GregTech_API.METATILEENTITIES.length; i++) { +// try { +// for (; i < GregTech_API.METATILEENTITIES.length; i++) if (GregTech_API.METATILEENTITIES[i] != null) GregTech_API.METATILEENTITIES[i].getStackForm(1L).getTooltip(null, true); +// } catch (Throwable e) { +// e.printStackTrace(GT_Log.err); +// } +// } + } + + public void run() { + try { + GT_Log.out.println("GT_Mod: Downloading Cape List."); + @SuppressWarnings("resource") + Scanner tScanner = new Scanner(new URL("http://files.minecraftforge.net/maven/com/gregoriust/gregtech/capelist.txt").openStream()); + while (tScanner.hasNextLine()) { + String tName = tScanner.nextLine(); + if (!this.mCapeList.contains(tName.toLowerCase())) { + this.mCapeList.add(tName.toLowerCase()); + } + } + } catch (Throwable e) { + } + try { + GT_Log.out.println("GT_Mod: Downloading News."); + @SuppressWarnings("resource") + Scanner tScanner = new Scanner(new URL("http://files.minecraftforge.net/maven/com/gregoriust/gregtech/message.txt").openStream()); + while (tScanner.hasNextLine()) { + this.mMessage = (this.mMessage + tScanner.nextLine() + " "); + } + } catch (Throwable e) { + } + } + @SubscribeEvent - public void receiveRenderEvent(net.minecraftforge.client.event.RenderPlayerEvent.Pre aEvent) - { - if(GT_Utility.getFullInvisibility(aEvent.entityPlayer)) - { + public void onPlayerTickEventClient(TickEvent.PlayerTickEvent aEvent) { + if ((!aEvent.player.isDead) && (aEvent.phase == TickEvent.Phase.END) && (aEvent.side.isClient())) { + ArrayList tList = new ArrayList(); + for (Map.Entry tEntry : GT_Utility.sPlayedSoundMap.entrySet()) { + if (((Integer) tEntry.getValue()).intValue() < 0) { + tList.add(tEntry.getKey()); + } else { + tEntry.setValue(Integer.valueOf(((Integer) tEntry.getValue()).intValue() - 1)); + } + } + GT_PlayedSound tKey; + for (Iterator i$ = tList.iterator(); i$.hasNext(); GT_Utility.sPlayedSoundMap.remove(tKey)) { + tKey = (GT_PlayedSound) i$.next(); + } + if ((this.isFirstClientPlayerTick) && (aEvent.player == GT_Values.GT.getThePlayer())) { + this.isFirstClientPlayerTick = false; + GT_FluidStack.fixAllThoseFuckingFluidIDs(); + if ((this.mMessage.length() > 5) && (GregTech_API.sSpecialFile.get(ConfigCategories.news, this.mMessage, true))) { + aEvent.player.addChatComponentMessage(new ChatComponentText(this.mMessage)); + } + try { + int tVersion = Integer.parseInt(((String) Class.forName("ic2.core.IC2").getField("VERSION").get(null)).substring(4, 7)); + if (GT_Values.D1) { + GT_Log.out.println("Industrialcraft Version: " + tVersion); + } + if (tVersion < 624) { + aEvent.player.addChatComponentMessage(new ChatComponentText("GregTech: Please update your IndustrialCraft here:")); + aEvent.player.addChatComponentMessage(new ChatComponentText("ic2api.player.to:8080/job/IC2_experimental/" + (GT_Mod.MAX_IC2 < Integer.MAX_VALUE ? GT_Mod.MAX_IC2 : 624) + "/")); + } else if (tVersion > GT_Mod.MAX_IC2) { + aEvent.player.addChatComponentMessage(new ChatComponentText("GregTech: Please downgrade your IndustrialCraft here:")); + aEvent.player.addChatComponentMessage(new ChatComponentText("ic2api.player.to:8080/job/IC2_experimental/" + GT_Mod.MAX_IC2 + "/")); + } + } catch (Throwable e) { + aEvent.player.addChatComponentMessage(new ChatComponentText("GregTech: Please get the recommended Version of IndustrialCraft here:")); + aEvent.player.addChatComponentMessage(new ChatComponentText("ic2api.player.to:8080/job/IC2_experimental/" + (GT_Mod.MAX_IC2 < Integer.MAX_VALUE ? GT_Mod.MAX_IC2 : 624) + "/")); + } + } + } + } + + @SubscribeEvent + public void onDrawBlockHighlight(DrawBlockHighlightEvent aEvent) { + if (GT_Utility.isStackValid(aEvent.currentItem)) { + Block aBlock = aEvent.player.worldObj.getBlock(aEvent.target.blockX, aEvent.target.blockY, aEvent.target.blockZ); + TileEntity aTileEntity = aEvent.player.worldObj.getTileEntity(aEvent.target.blockX, aEvent.target.blockY, aEvent.target.blockZ); + try { + Class.forName("codechicken.lib.vec.Rotation"); + if (((aTileEntity instanceof BaseMetaPipeEntity)) && (((ICoverable) aTileEntity).getCoverIDAtSide((byte) aEvent.target.sideHit) == 0) && ((GT_Utility.isStackInList(aEvent.currentItem, GregTech_API.sCovers.keySet())) || (GT_Utility.isStackInList(aEvent.currentItem, GregTech_API.sCrowbarList)) || (GT_Utility.isStackInList(aEvent.currentItem, GregTech_API.sScrewdriverList)))) { + drawGrid(aEvent); + return; + } + if ((((aTileEntity instanceof ITurnable)) || (ROTATABLE_VANILLA_BLOCKS.contains(aBlock)) || ((aTileEntity instanceof IWrenchable))) && (GT_Utility.isStackInList(aEvent.currentItem, GregTech_API.sWrenchList))) { + drawGrid(aEvent); + return; + } + } catch (Throwable e) { + if (GT_Values.D1) { + e.printStackTrace(GT_Log.err); + } + } + } + } + + @SubscribeEvent + public void receiveRenderEvent(net.minecraftforge.client.event.RenderPlayerEvent.Pre aEvent) { + if (GT_Utility.getFullInvisibility(aEvent.entityPlayer)) { aEvent.setCanceled(true); return; - } else - { + } else { return; } } @SubscribeEvent - public void receiveRenderSpecialsEvent(net.minecraftforge.client.event.RenderPlayerEvent.Specials.Pre aEvent) - { + public void receiveRenderSpecialsEvent(net.minecraftforge.client.event.RenderPlayerEvent.Specials.Pre aEvent) { mCapeRenderer.receiveRenderSpecialsEvent(aEvent); } @SubscribeEvent - public void onClientTickEvent(cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent aEvent) - { - if(aEvent.phase == cpw.mods.fml.common.gameevent.TickEvent.Phase.END) - { + public void onClientTickEvent(cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent aEvent) { + if (aEvent.phase == cpw.mods.fml.common.gameevent.TickEvent.Phase.END) { mAnimationTick++; - if(mAnimationTick % 50L == 0L) + if (mAnimationTick % 50L == 0L) mAnimationDirection = !mAnimationDirection; int tDirection = mAnimationDirection ? 1 : -1; - for(Iterator i$ = mPosR.iterator(); i$.hasNext();) - { - Materials tMaterial = (Materials)i$.next(); + for (Iterator i$ = mPosR.iterator(); i$.hasNext(); ) { + Materials tMaterial = (Materials) i$.next(); tMaterial.mRGBa[0] += tDirection; } - for(Iterator i$ = mPosG.iterator(); i$.hasNext();) - { - Materials tMaterial = (Materials)i$.next(); + for (Iterator i$ = mPosG.iterator(); i$.hasNext(); ) { + Materials tMaterial = (Materials) i$.next(); tMaterial.mRGBa[1] += tDirection; } - for(Iterator i$ = mPosB.iterator(); i$.hasNext();) - { - Materials tMaterial = (Materials)i$.next(); + for (Iterator i$ = mPosB.iterator(); i$.hasNext(); ) { + Materials tMaterial = (Materials) i$.next(); tMaterial.mRGBa[2] += tDirection; } - for(Iterator i$ = mPosA.iterator(); i$.hasNext();) - { - Materials tMaterial = (Materials)i$.next(); + for (Iterator i$ = mPosA.iterator(); i$.hasNext(); ) { + Materials tMaterial = (Materials) i$.next(); tMaterial.mRGBa[3] += tDirection; } - for(Iterator i$ = mNegR.iterator(); i$.hasNext();) - { - Materials tMaterial = (Materials)i$.next(); + for (Iterator i$ = mNegR.iterator(); i$.hasNext(); ) { + Materials tMaterial = (Materials) i$.next(); tMaterial.mRGBa[0] -= tDirection; } - for(Iterator i$ = mNegG.iterator(); i$.hasNext();) - { - Materials tMaterial = (Materials)i$.next(); + for (Iterator i$ = mNegG.iterator(); i$.hasNext(); ) { + Materials tMaterial = (Materials) i$.next(); tMaterial.mRGBa[1] -= tDirection; } - for(Iterator i$ = mNegB.iterator(); i$.hasNext();) - { - Materials tMaterial = (Materials)i$.next(); + for (Iterator i$ = mNegB.iterator(); i$.hasNext(); ) { + Materials tMaterial = (Materials) i$.next(); tMaterial.mRGBa[2] -= tDirection; } - for(Iterator i$ = mNegA.iterator(); i$.hasNext();) - { - Materials tMaterial = (Materials)i$.next(); + for (Iterator i$ = mNegA.iterator(); i$.hasNext(); ) { + Materials tMaterial = (Materials) i$.next(); tMaterial.mRGBa[3] -= tDirection; } - for(Iterator i$ = mMoltenPosR.iterator(); i$.hasNext();) - { - Materials tMaterial = (Materials)i$.next(); + for (Iterator i$ = mMoltenPosR.iterator(); i$.hasNext(); ) { + Materials tMaterial = (Materials) i$.next(); tMaterial.mMoltenRGBa[0] += tDirection; } - for(Iterator i$ = mMoltenPosG.iterator(); i$.hasNext();) - { - Materials tMaterial = (Materials)i$.next(); + for (Iterator i$ = mMoltenPosG.iterator(); i$.hasNext(); ) { + Materials tMaterial = (Materials) i$.next(); tMaterial.mMoltenRGBa[1] += tDirection; } - for(Iterator i$ = mMoltenPosB.iterator(); i$.hasNext();) - { - Materials tMaterial = (Materials)i$.next(); + for (Iterator i$ = mMoltenPosB.iterator(); i$.hasNext(); ) { + Materials tMaterial = (Materials) i$.next(); tMaterial.mMoltenRGBa[2] += tDirection; } - for(Iterator i$ = mMoltenPosA.iterator(); i$.hasNext();) - { - Materials tMaterial = (Materials)i$.next(); + for (Iterator i$ = mMoltenPosA.iterator(); i$.hasNext(); ) { + Materials tMaterial = (Materials) i$.next(); tMaterial.mMoltenRGBa[3] += tDirection; } - for(Iterator i$ = mMoltenNegR.iterator(); i$.hasNext();) - { - Materials tMaterial = (Materials)i$.next(); + for (Iterator i$ = mMoltenNegR.iterator(); i$.hasNext(); ) { + Materials tMaterial = (Materials) i$.next(); tMaterial.mMoltenRGBa[0] -= tDirection; } - for(Iterator i$ = mMoltenNegG.iterator(); i$.hasNext();) - { - Materials tMaterial = (Materials)i$.next(); + for (Iterator i$ = mMoltenNegG.iterator(); i$.hasNext(); ) { + Materials tMaterial = (Materials) i$.next(); tMaterial.mMoltenRGBa[1] -= tDirection; } - for(Iterator i$ = mMoltenNegB.iterator(); i$.hasNext();) - { - Materials tMaterial = (Materials)i$.next(); + for (Iterator i$ = mMoltenNegB.iterator(); i$.hasNext(); ) { + Materials tMaterial = (Materials) i$.next(); tMaterial.mMoltenRGBa[2] -= tDirection; } - for(Iterator i$ = mMoltenNegA.iterator(); i$.hasNext();) - { - Materials tMaterial = (Materials)i$.next(); + for (Iterator i$ = mMoltenNegA.iterator(); i$.hasNext(); ) { + Materials tMaterial = (Materials) i$.next(); tMaterial.mMoltenRGBa[3] -= tDirection; } } } - public void doSonictronSound(ItemStack aStack, World aWorld, double aX, double aY, double aZ) - { - if(GT_Utility.isStackInvalid(aStack)) + public void doSonictronSound(ItemStack aStack, World aWorld, double aX, double aY, double aZ) { + if (GT_Utility.isStackInvalid(aStack)) return; String tString = "note.harp"; int i = 0; int j = mSoundItems.size(); - do - { - if(i >= j) + do { + if (i >= j) break; - if(GT_Utility.areStacksEqual((ItemStack)mSoundItems.get(i), aStack)) - { - tString = (String)mSoundNames.get(i); + if (GT_Utility.areStacksEqual((ItemStack) mSoundItems.get(i), aStack)) { + tString = (String) mSoundNames.get(i); break; } i++; - } while(true); - if(tString.startsWith("random.explode")) - if(aStack.stackSize == 3) + } while (true); + if (tString.startsWith("random.explode")) + if (aStack.stackSize == 3) tString = "random.fuse"; - else - if(aStack.stackSize == 2) + else if (aStack.stackSize == 2) tString = "random.old_explode"; - if(tString.startsWith("streaming.")) - switch(aStack.stackSize) - { - case 1: // '\001' - tString = (new StringBuilder()).append(tString).append("13").toString(); - break; + if (tString.startsWith("streaming.")) + switch (aStack.stackSize) { + case 1: // '\001' + tString = (new StringBuilder()).append(tString).append("13").toString(); + break; - case 2: // '\002' - tString = (new StringBuilder()).append(tString).append("cat").toString(); - break; + case 2: // '\002' + tString = (new StringBuilder()).append(tString).append("cat").toString(); + break; - case 3: // '\003' - tString = (new StringBuilder()).append(tString).append("blocks").toString(); - break; + case 3: // '\003' + tString = (new StringBuilder()).append(tString).append("blocks").toString(); + break; - case 4: // '\004' - tString = (new StringBuilder()).append(tString).append("chirp").toString(); - break; + case 4: // '\004' + tString = (new StringBuilder()).append(tString).append("chirp").toString(); + break; - case 5: // '\005' - tString = (new StringBuilder()).append(tString).append("far").toString(); - break; + case 5: // '\005' + tString = (new StringBuilder()).append(tString).append("far").toString(); + break; - case 6: // '\006' - tString = (new StringBuilder()).append(tString).append("mall").toString(); - break; + case 6: // '\006' + tString = (new StringBuilder()).append(tString).append("mall").toString(); + break; - case 7: // '\007' - tString = (new StringBuilder()).append(tString).append("mellohi").toString(); - break; + case 7: // '\007' + tString = (new StringBuilder()).append(tString).append("mellohi").toString(); + break; - case 8: // '\b' - tString = (new StringBuilder()).append(tString).append("stal").toString(); - break; + case 8: // '\b' + tString = (new StringBuilder()).append(tString).append("stal").toString(); + break; - case 9: // '\t' - tString = (new StringBuilder()).append(tString).append("strad").toString(); - break; + case 9: // '\t' + tString = (new StringBuilder()).append(tString).append("strad").toString(); + break; - case 10: // '\n' - tString = (new StringBuilder()).append(tString).append("ward").toString(); - break; + case 10: // '\n' + tString = (new StringBuilder()).append(tString).append("ward").toString(); + break; - case 11: // '\013' - tString = (new StringBuilder()).append(tString).append("11").toString(); - break; + case 11: // '\013' + tString = (new StringBuilder()).append(tString).append("11").toString(); + break; - case 12: // '\f' - tString = (new StringBuilder()).append(tString).append("wait").toString(); - break; + case 12: // '\f' + tString = (new StringBuilder()).append(tString).append("wait").toString(); + break; - default: - tString = (new StringBuilder()).append(tString).append("wherearewenow").toString(); - break; + default: + tString = (new StringBuilder()).append(tString).append("wherearewenow").toString(); + break; } - if(tString.startsWith("streaming.")) - aWorld.playRecord(tString.substring(10, tString.length()), (int)aX, (int)aY, (int)aZ); + if (tString.startsWith("streaming.")) + aWorld.playRecord(tString.substring(10, tString.length()), (int) aX, (int) aY, (int) aZ); else - aWorld.playSound(aX, aY, aZ, tString, 3F, tString.startsWith("note.") ? (float)Math.pow(2D, (double)(aStack.stackSize - 13) / 12D) : 1.0F, false); - } - - private final HashSet mCapeList = new HashSet(); - private final GT_CapeRenderer mCapeRenderer; - private long mAnimationTick; - private boolean mAnimationDirection; - private boolean isFirstClientPlayerTick; - private String mMessage; - private static List ROTATABLE_VANILLA_BLOCKS; - private final List mPosR; - private final List mPosG; - private final List mPosB; - private final List mPosA = Arrays.asList(new Object[0]); - private final List mNegR; - private final List mNegG; - private final List mNegB; - private final List mNegA = Arrays.asList(new Object[0]); - private final List mMoltenPosR; - private final List mMoltenPosG; - private final List mMoltenPosB; - private final List mMoltenPosA = Arrays.asList(new Object[0]); - private final List mMoltenNegR; - private final List mMoltenNegG; - private final List mMoltenNegB; - private final List mMoltenNegA = Arrays.asList(new Object[0]); - - static - { - ROTATABLE_VANILLA_BLOCKS = Arrays.asList(new Block[] { - Blocks.piston, Blocks.sticky_piston, Blocks.furnace, Blocks.lit_furnace, Blocks.dropper, Blocks.dispenser, Blocks.chest, Blocks.trapped_chest, Blocks.ender_chest, Blocks.hopper, - Blocks.pumpkin, Blocks.lit_pumpkin - }); + aWorld.playSound(aX, aY, aZ, tString, 3F, tString.startsWith("note.") ? (float) Math.pow(2D, (double) (aStack.stackSize - 13) / 12D) : 1.0F, false); } } \ No newline at end of file diff --git a/src/main/java/gregtech/common/GT_DummyWorld.java b/src/main/java/gregtech/common/GT_DummyWorld.java index d7b26522..f542730b 100644 --- a/src/main/java/gregtech/common/GT_DummyWorld.java +++ b/src/main/java/gregtech/common/GT_DummyWorld.java @@ -1,6 +1,5 @@ package gregtech.common; -import java.io.File; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.init.Blocks; @@ -17,60 +16,56 @@ import net.minecraft.world.storage.IPlayerFileData; import net.minecraft.world.storage.ISaveHandler; import net.minecraft.world.storage.WorldInfo; +import java.io.File; + public class GT_DummyWorld - extends World -{ - public GT_IteratorRandom mRandom = new GT_IteratorRandom(); - public ItemStack mLastSetBlock = null; - - public GT_DummyWorld(ISaveHandler par1iSaveHandler, String par2Str, WorldProvider par3WorldProvider, WorldSettings par4WorldSettings, Profiler par5Profiler) - { - super(par1iSaveHandler, par2Str, par4WorldSettings, par3WorldProvider, par5Profiler); - this.rand = this.mRandom; - } - - public GT_DummyWorld() - { - this(new ISaveHandler() - { - public void saveWorldInfoWithPlayer(WorldInfo var1, NBTTagCompound var2) {} - - public void saveWorldInfo(WorldInfo var1) {} - - public WorldInfo loadWorldInfo() - { - return null; - } - - public IPlayerFileData getSaveHandler() - { - return null; - } - - public File getMapFileFromName(String var1) - { - return null; - } - - public IChunkLoader getChunkLoader(WorldProvider var1) - { - return null; - } - - public void flush() {} - - public void checkSessionLock() {} - - public String getWorldDirectoryName() - { - return null; - } - - public File getWorldDirectory() - { - return null; - } - }, "DUMMY_DIMENSION", null, + extends World { + public GT_IteratorRandom mRandom = new GT_IteratorRandom(); + public ItemStack mLastSetBlock = null; + + public GT_DummyWorld(ISaveHandler par1iSaveHandler, String par2Str, WorldProvider par3WorldProvider, WorldSettings par4WorldSettings, Profiler par5Profiler) { + super(par1iSaveHandler, par2Str, par4WorldSettings, par3WorldProvider, par5Profiler); + this.rand = this.mRandom; + } + + public GT_DummyWorld() { + this(new ISaveHandler() { + public void saveWorldInfoWithPlayer(WorldInfo var1, NBTTagCompound var2) { + } + + public void saveWorldInfo(WorldInfo var1) { + } + + public WorldInfo loadWorldInfo() { + return null; + } + + public IPlayerFileData getSaveHandler() { + return null; + } + + public File getMapFileFromName(String var1) { + return null; + } + + public IChunkLoader getChunkLoader(WorldProvider var1) { + return null; + } + + public void flush() { + } + + public void checkSessionLock() { + } + + public String getWorldDirectoryName() { + return null; + } + + public File getWorldDirectory() { + return null; + } + }, "DUMMY_DIMENSION", null, // new WorldProvider(), // // @@ -82,66 +77,56 @@ public class GT_DummyWorld // return "DUMMY_DIMENSION"; // } // } - new WorldSettings(new WorldInfo(new NBTTagCompound())), new Profiler()); - } - - protected IChunkProvider createChunkProvider() - { - return null; - } - - public Entity getEntityByID(int aEntityID) - { - return null; - } - - public boolean setBlock(int aX, int aY, int aZ, Block aBlock, int aMeta, int aFlags) - { - this.mLastSetBlock = new ItemStack(aBlock, 1, aMeta); - return true; - } - - public float getSunBrightnessFactor(float p_72967_1_) - { - return 1.0F; - } - - public BiomeGenBase getBiomeGenForCoords(int aX, int aZ) - { - if ((aX >= 16) && (aZ >= 16) && (aX < 32) && (aZ < 32)) { - return BiomeGenBase.plains; + new WorldSettings(new WorldInfo(new NBTTagCompound())), new Profiler()); } - return BiomeGenBase.ocean; - } - - public int getFullBlockLightValue(int aX, int aY, int aZ) - { - return 10; - } - - public Block getBlock(int aX, int aY, int aZ) - { - if ((aX >= 16) && (aZ >= 16) && (aX < 32) && (aZ < 32)) { - return aY == 64 ? Blocks.grass : Blocks.air; + + protected IChunkProvider createChunkProvider() { + return null; } - return Blocks.air; - } - - public int getBlockMetadata(int aX, int aY, int aZ) - { - return 0; - } - - public boolean canBlockSeeTheSky(int aX, int aY, int aZ) - { - if ((aX >= 16) && (aZ >= 16) && (aX < 32) && (aZ < 32)) { - return aY > 64; + + public Entity getEntityByID(int aEntityID) { + return null; + } + + public boolean setBlock(int aX, int aY, int aZ, Block aBlock, int aMeta, int aFlags) { + this.mLastSetBlock = new ItemStack(aBlock, 1, aMeta); + return true; + } + + public float getSunBrightnessFactor(float p_72967_1_) { + return 1.0F; + } + + public BiomeGenBase getBiomeGenForCoords(int aX, int aZ) { + if ((aX >= 16) && (aZ >= 16) && (aX < 32) && (aZ < 32)) { + return BiomeGenBase.plains; + } + return BiomeGenBase.ocean; + } + + public int getFullBlockLightValue(int aX, int aY, int aZ) { + return 10; + } + + public Block getBlock(int aX, int aY, int aZ) { + if ((aX >= 16) && (aZ >= 16) && (aX < 32) && (aZ < 32)) { + return aY == 64 ? Blocks.grass : Blocks.air; + } + return Blocks.air; + } + + public int getBlockMetadata(int aX, int aY, int aZ) { + return 0; + } + + public boolean canBlockSeeTheSky(int aX, int aY, int aZ) { + if ((aX >= 16) && (aZ >= 16) && (aX < 32) && (aZ < 32)) { + return aY > 64; + } + return true; + } + + protected int func_152379_p() { + return 0; } - return true; - } - - protected int func_152379_p() - { - return 0; - } } diff --git a/src/main/java/gregtech/common/GT_IteratorRandom.java b/src/main/java/gregtech/common/GT_IteratorRandom.java index d61953d5..31d2a3d0 100644 --- a/src/main/java/gregtech/common/GT_IteratorRandom.java +++ b/src/main/java/gregtech/common/GT_IteratorRandom.java @@ -3,16 +3,14 @@ package gregtech.common; import java.util.Random; public class GT_IteratorRandom - extends Random -{ - private static final long serialVersionUID = 1L; - public int mIterationStep = 2147483647; - - public int nextInt(int aParameter) - { - if ((this.mIterationStep == 0) || (this.mIterationStep > aParameter)) { - this.mIterationStep = aParameter; + extends Random { + private static final long serialVersionUID = 1L; + public int mIterationStep = 2147483647; + + public int nextInt(int aParameter) { + if ((this.mIterationStep == 0) || (this.mIterationStep > aParameter)) { + this.mIterationStep = aParameter; + } + return --this.mIterationStep; } - return --this.mIterationStep; - } } diff --git a/src/main/java/gregtech/common/GT_MinableOreGenerator.java b/src/main/java/gregtech/common/GT_MinableOreGenerator.java index 252b8896..9e772bb9 100644 --- a/src/main/java/gregtech/common/GT_MinableOreGenerator.java +++ b/src/main/java/gregtech/common/GT_MinableOreGenerator.java @@ -1,79 +1,72 @@ package gregtech.common; -import java.util.Random; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraft.world.gen.feature.WorldGenerator; +import java.util.Random; + public class GT_MinableOreGenerator - extends WorldGenerator -{ - private Block minableBlockId; - private Block mBlock; - private int minableBlockMeta = 0; - private int numberOfBlocks; - private boolean allowVoid = false; - - public GT_MinableOreGenerator(Block par1, int par2) - { - this.minableBlockId = par1; - this.numberOfBlocks = par2; - } - - public GT_MinableOreGenerator(Block id, int meta, int number, boolean aAllowVoid, Block aBlock) - { - this(id, number); - this.minableBlockMeta = meta; - this.allowVoid = aAllowVoid; - this.mBlock = aBlock; - } - - public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) - { - float var6 = par2Random.nextFloat() * 3.141593F; - double var7 = par3 + 8 + MathHelper.sin(var6) * this.numberOfBlocks / 8.0F; - double var9 = par3 + 8 - MathHelper.sin(var6) * this.numberOfBlocks / 8.0F; - double var11 = par5 + 8 + MathHelper.cos(var6) * this.numberOfBlocks / 8.0F; - double var13 = par5 + 8 - MathHelper.cos(var6) * this.numberOfBlocks / 8.0F; - double var15 = par4 + par2Random.nextInt(3) - 2; - double var17 = par4 + par2Random.nextInt(3) - 2; - for (int var19 = 0; var19 <= this.numberOfBlocks; var19++) - { - double var20 = var7 + (var9 - var7) * var19 / this.numberOfBlocks; - double var22 = var15 + (var17 - var15) * var19 / this.numberOfBlocks; - double var24 = var11 + (var13 - var11) * var19 / this.numberOfBlocks; - double var26 = par2Random.nextDouble() * this.numberOfBlocks / 16.0D; - double var28 = (MathHelper.sin(var19 * 3.141593F / this.numberOfBlocks) + 1.0F) * var26 + 1.0D; - double var30 = (MathHelper.sin(var19 * 3.141593F / this.numberOfBlocks) + 1.0F) * var26 + 1.0D; - int var32 = MathHelper.floor_double(var20 - var28 / 2.0D); - int var33 = MathHelper.floor_double(var22 - var30 / 2.0D); - int var34 = MathHelper.floor_double(var24 - var28 / 2.0D); - int var35 = MathHelper.floor_double(var20 + var28 / 2.0D); - int var36 = MathHelper.floor_double(var22 + var30 / 2.0D); - int var37 = MathHelper.floor_double(var24 + var28 / 2.0D); - for (int var38 = var32; var38 <= var35; var38++) - { - double var39 = (var38 + 0.5D - var20) / (var28 / 2.0D); - if (var39 * var39 < 1.0D) { - for (int var41 = var33; var41 <= var36; var41++) - { - double var42 = (var41 + 0.5D - var22) / (var30 / 2.0D); - if (var39 * var39 + var42 * var42 < 1.0D) { - for (int var44 = var34; var44 <= var37; var44++) - { - double var45 = (var44 + 0.5D - var24) / (var28 / 2.0D); - Block block = par1World.getBlock(var38, var41, var44); - if ((var39 * var39 + var42 * var42 + var45 * var45 < 1.0D) && (((this.allowVoid) && (par1World.getBlock(var38, var41, var44) == Blocks.air)) || ((block != null) && (block.isReplaceableOreGen(par1World, var38, var41, var44, this.mBlock))))) { - par1World.setBlock(var38, var41, var44, this.minableBlockId, this.minableBlockMeta, 0); - } - } - } - } - } - } + extends WorldGenerator { + private Block minableBlockId; + private Block mBlock; + private int minableBlockMeta = 0; + private int numberOfBlocks; + private boolean allowVoid = false; + + public GT_MinableOreGenerator(Block par1, int par2) { + this.minableBlockId = par1; + this.numberOfBlocks = par2; + } + + public GT_MinableOreGenerator(Block id, int meta, int number, boolean aAllowVoid, Block aBlock) { + this(id, number); + this.minableBlockMeta = meta; + this.allowVoid = aAllowVoid; + this.mBlock = aBlock; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) { + float var6 = par2Random.nextFloat() * 3.141593F; + double var7 = par3 + 8 + MathHelper.sin(var6) * this.numberOfBlocks / 8.0F; + double var9 = par3 + 8 - MathHelper.sin(var6) * this.numberOfBlocks / 8.0F; + double var11 = par5 + 8 + MathHelper.cos(var6) * this.numberOfBlocks / 8.0F; + double var13 = par5 + 8 - MathHelper.cos(var6) * this.numberOfBlocks / 8.0F; + double var15 = par4 + par2Random.nextInt(3) - 2; + double var17 = par4 + par2Random.nextInt(3) - 2; + for (int var19 = 0; var19 <= this.numberOfBlocks; var19++) { + double var20 = var7 + (var9 - var7) * var19 / this.numberOfBlocks; + double var22 = var15 + (var17 - var15) * var19 / this.numberOfBlocks; + double var24 = var11 + (var13 - var11) * var19 / this.numberOfBlocks; + double var26 = par2Random.nextDouble() * this.numberOfBlocks / 16.0D; + double var28 = (MathHelper.sin(var19 * 3.141593F / this.numberOfBlocks) + 1.0F) * var26 + 1.0D; + double var30 = (MathHelper.sin(var19 * 3.141593F / this.numberOfBlocks) + 1.0F) * var26 + 1.0D; + int var32 = MathHelper.floor_double(var20 - var28 / 2.0D); + int var33 = MathHelper.floor_double(var22 - var30 / 2.0D); + int var34 = MathHelper.floor_double(var24 - var28 / 2.0D); + int var35 = MathHelper.floor_double(var20 + var28 / 2.0D); + int var36 = MathHelper.floor_double(var22 + var30 / 2.0D); + int var37 = MathHelper.floor_double(var24 + var28 / 2.0D); + for (int var38 = var32; var38 <= var35; var38++) { + double var39 = (var38 + 0.5D - var20) / (var28 / 2.0D); + if (var39 * var39 < 1.0D) { + for (int var41 = var33; var41 <= var36; var41++) { + double var42 = (var41 + 0.5D - var22) / (var30 / 2.0D); + if (var39 * var39 + var42 * var42 < 1.0D) { + for (int var44 = var34; var44 <= var37; var44++) { + double var45 = (var44 + 0.5D - var24) / (var28 / 2.0D); + Block block = par1World.getBlock(var38, var41, var44); + if ((var39 * var39 + var42 * var42 + var45 * var45 < 1.0D) && (((this.allowVoid) && (par1World.getBlock(var38, var41, var44) == Blocks.air)) || ((block != null) && (block.isReplaceableOreGen(par1World, var38, var41, var44, this.mBlock))))) { + par1World.setBlock(var38, var41, var44, this.minableBlockId, this.minableBlockMeta, 0); + } + } + } + } + } + } + } + return true; } - return true; - } } diff --git a/src/main/java/gregtech/common/GT_Network.java b/src/main/java/gregtech/common/GT_Network.java index 3598b7e5..2b19b98d 100644 --- a/src/main/java/gregtech/common/GT_Network.java +++ b/src/main/java/gregtech/common/GT_Network.java @@ -4,110 +4,87 @@ import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteStreams; import cpw.mods.fml.common.network.FMLEmbeddedChannel; import cpw.mods.fml.common.network.FMLOutboundHandler; -import cpw.mods.fml.common.network.FMLOutboundHandler.OutboundTarget; import cpw.mods.fml.common.network.NetworkRegistry; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.internal.FMLProxyPacket; import cpw.mods.fml.relauncher.Side; import gregtech.api.enums.GT_Values; -import gregtech.api.interfaces.internal.IGT_Mod; -import gregtech.api.net.GT_Packet; -import gregtech.api.net.GT_Packet_Block_Event; -import gregtech.api.net.GT_Packet_Sound; -import gregtech.api.net.GT_Packet_TileEntity; -import gregtech.api.net.IGT_NetworkHandler; +import gregtech.api.net.*; import gregtech.common.blocks.GT_Packet_Ores; -import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; -import io.netty.channel.Channel; import io.netty.channel.ChannelHandler; -import io.netty.channel.ChannelHandler.Sharable; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; import io.netty.handler.codec.MessageToMessageCodec; -import io.netty.util.Attribute; -import java.util.EnumMap; -import java.util.List; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.server.management.PlayerManager; import net.minecraft.world.World; -import net.minecraft.world.WorldServer; import net.minecraft.world.chunk.Chunk; +import java.util.EnumMap; +import java.util.List; + @ChannelHandler.Sharable public class GT_Network - extends MessageToMessageCodec - implements IGT_NetworkHandler -{ - private final EnumMap mChannel; - private final GT_Packet[] mSubChannels; - - public GT_Network() - { - this.mChannel = NetworkRegistry.INSTANCE.newChannel("GregTech", new ChannelHandler[] { this, new HandlerShared() }); - this.mSubChannels = new GT_Packet[] { new GT_Packet_TileEntity(), new GT_Packet_Sound(), new GT_Packet_Block_Event(), new GT_Packet_Ores() }; - } - - protected void encode(ChannelHandlerContext aContext, GT_Packet aPacket, List aOutput) - throws Exception - { - aOutput.add(new FMLProxyPacket(Unpooled.buffer().writeByte(aPacket.getPacketID()).writeBytes(aPacket.encode()).copy(), (String)aContext.channel().attr(NetworkRegistry.FML_CHANNEL).get())); - } - - protected void decode(ChannelHandlerContext aContext, FMLProxyPacket aPacket, List aOutput) - throws Exception - { - ByteArrayDataInput aData = ByteStreams.newDataInput(aPacket.payload().array()); - aOutput.add(this.mSubChannels[aData.readByte()].decode(aData)); - } - - public void sendToPlayer(GT_Packet aPacket, EntityPlayerMP aPlayer) - { - ((FMLEmbeddedChannel)this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.PLAYER); - ((FMLEmbeddedChannel)this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(aPlayer); - ((FMLEmbeddedChannel)this.mChannel.get(Side.SERVER)).writeAndFlush(aPacket); - } - - public void sendToAllAround(GT_Packet aPacket, NetworkRegistry.TargetPoint aPosition) - { - ((FMLEmbeddedChannel)this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.ALLAROUNDPOINT); - ((FMLEmbeddedChannel)this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(aPosition); - ((FMLEmbeddedChannel)this.mChannel.get(Side.SERVER)).writeAndFlush(aPacket); - } - - public void sendToServer(GT_Packet aPacket) - { - ((FMLEmbeddedChannel)this.mChannel.get(Side.CLIENT)).attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.TOSERVER); - ((FMLEmbeddedChannel)this.mChannel.get(Side.CLIENT)).writeAndFlush(aPacket); - } - - public void sendPacketToAllPlayersInRange(World aWorld, GT_Packet aPacket, int aX, int aZ) - { - if (!aWorld.isRemote) { - for (Object tObject : aWorld.playerEntities) - { - if (!(tObject instanceof EntityPlayerMP)) { - break; - } - EntityPlayerMP tPlayer = (EntityPlayerMP)tObject; - Chunk tChunk = aWorld.getChunkFromBlockCoords(aX, aZ); - if (tPlayer.getServerForPlayer().getPlayerManager().isPlayerWatchingChunk(tPlayer, tChunk.xPosition, tChunk.zPosition)) { - sendToPlayer(aPacket, tPlayer); - } - } + extends MessageToMessageCodec + implements IGT_NetworkHandler { + private final EnumMap mChannel; + private final GT_Packet[] mSubChannels; + + public GT_Network() { + this.mChannel = NetworkRegistry.INSTANCE.newChannel("GregTech", new ChannelHandler[]{this, new HandlerShared()}); + this.mSubChannels = new GT_Packet[]{new GT_Packet_TileEntity(), new GT_Packet_Sound(), new GT_Packet_Block_Event(), new GT_Packet_Ores()}; } - } - - @ChannelHandler.Sharable - static final class HandlerShared - extends SimpleChannelInboundHandler - { - protected void channelRead0(ChannelHandlerContext ctx, GT_Packet aPacket) - throws Exception - { - EntityPlayer aPlayer = GT_Values.GT.getThePlayer(); - aPacket.process(aPlayer == null ? null : GT_Values.GT.getThePlayer().worldObj); + + protected void encode(ChannelHandlerContext aContext, GT_Packet aPacket, List aOutput) + throws Exception { + aOutput.add(new FMLProxyPacket(Unpooled.buffer().writeByte(aPacket.getPacketID()).writeBytes(aPacket.encode()).copy(), (String) aContext.channel().attr(NetworkRegistry.FML_CHANNEL).get())); + } + + protected void decode(ChannelHandlerContext aContext, FMLProxyPacket aPacket, List aOutput) + throws Exception { + ByteArrayDataInput aData = ByteStreams.newDataInput(aPacket.payload().array()); + aOutput.add(this.mSubChannels[aData.readByte()].decode(aData)); + } + + public void sendToPlayer(GT_Packet aPacket, EntityPlayerMP aPlayer) { + ((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.PLAYER); + ((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(aPlayer); + ((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).writeAndFlush(aPacket); + } + + public void sendToAllAround(GT_Packet aPacket, NetworkRegistry.TargetPoint aPosition) { + ((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.ALLAROUNDPOINT); + ((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(aPosition); + ((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).writeAndFlush(aPacket); + } + + public void sendToServer(GT_Packet aPacket) { + ((FMLEmbeddedChannel) this.mChannel.get(Side.CLIENT)).attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.TOSERVER); + ((FMLEmbeddedChannel) this.mChannel.get(Side.CLIENT)).writeAndFlush(aPacket); + } + + public void sendPacketToAllPlayersInRange(World aWorld, GT_Packet aPacket, int aX, int aZ) { + if (!aWorld.isRemote) { + for (Object tObject : aWorld.playerEntities) { + if (!(tObject instanceof EntityPlayerMP)) { + break; + } + EntityPlayerMP tPlayer = (EntityPlayerMP) tObject; + Chunk tChunk = aWorld.getChunkFromBlockCoords(aX, aZ); + if (tPlayer.getServerForPlayer().getPlayerManager().isPlayerWatchingChunk(tPlayer, tChunk.xPosition, tChunk.zPosition)) { + sendToPlayer(aPacket, tPlayer); + } + } + } + } + + @ChannelHandler.Sharable + static final class HandlerShared + extends SimpleChannelInboundHandler { + protected void channelRead0(ChannelHandlerContext ctx, GT_Packet aPacket) + throws Exception { + EntityPlayer aPlayer = GT_Values.GT.getThePlayer(); + aPacket.process(aPlayer == null ? null : GT_Values.GT.getThePlayer().worldObj); + } } - } } diff --git a/src/main/java/gregtech/common/GT_PlayerActivityLogger.java b/src/main/java/gregtech/common/GT_PlayerActivityLogger.java index 9526c21d..a3134f41 100644 --- a/src/main/java/gregtech/common/GT_PlayerActivityLogger.java +++ b/src/main/java/gregtech/common/GT_PlayerActivityLogger.java @@ -2,35 +2,30 @@ package gregtech.common; import gregtech.GT_Mod; import gregtech.api.util.GT_Log; -import java.io.PrintStream; + import java.util.ArrayList; public class GT_PlayerActivityLogger - implements Runnable -{ - public void run() - { - try - { - for (;;) - { - if (GT_Log.pal == null) { - return; + implements Runnable { + public void run() { + try { + for (; ; ) { + if (GT_Log.pal == null) { + return; + } + ArrayList tList = GT_Mod.gregtechproxy.mBufferedPlayerActivity; + GT_Mod.gregtechproxy.mBufferedPlayerActivity = new ArrayList(); + String tLastOutput = ""; + int i = 0; + for (int j = tList.size(); i < j; i++) { + if (!tLastOutput.equals(tList.get(i))) { + GT_Log.pal.println((String) tList.get(i)); + } + tLastOutput = (String) tList.get(i); + } + Thread.sleep(10000L); + } + } catch (Throwable e) { } - ArrayList tList = GT_Mod.gregtechproxy.mBufferedPlayerActivity; - GT_Mod.gregtechproxy.mBufferedPlayerActivity = new ArrayList(); - String tLastOutput = ""; - int i = 0; - for (int j = tList.size(); i < j; i++) - { - if (!tLastOutput.equals(tList.get(i))) { - GT_Log.pal.println((String)tList.get(i)); - } - tLastOutput = (String)tList.get(i); - } - Thread.sleep(10000L); - } } - catch (Throwable e) {} - } } diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java index 6d99de65..0fef7ea8 100644 --- a/src/main/java/gregtech/common/GT_Proxy.java +++ b/src/main/java/gregtech/common/GT_Proxy.java @@ -5,35 +5,16 @@ import cpw.mods.fml.common.IFuelHandler; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.ModContainer; import cpw.mods.fml.common.eventhandler.Event.Result; -import cpw.mods.fml.common.eventhandler.EventBus; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent; -import cpw.mods.fml.common.gameevent.TickEvent.Phase; -import cpw.mods.fml.common.gameevent.TickEvent.PlayerTickEvent; -import cpw.mods.fml.common.gameevent.TickEvent.ServerTickEvent; -import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; import cpw.mods.fml.common.network.FMLNetworkEvent; -import cpw.mods.fml.common.network.FMLNetworkEvent.ClientConnectedToServerEvent; import cpw.mods.fml.common.network.IGuiHandler; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; import gregtech.api.GregTech_API; -import gregtech.api.enums.ConfigCategories; -import gregtech.api.enums.ConfigCategories.Tools; -import gregtech.api.enums.Dyes; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OreDictNames; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.SubTag; -import gregtech.api.enums.TC_Aspects; -import gregtech.api.enums.TC_Aspects.TC_AspectStack; -import gregtech.api.enums.ToolDictNames; +import gregtech.api.enums.*; import gregtech.api.interfaces.IProjectileItem; import gregtech.api.interfaces.internal.IGT_Mod; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.interfaces.internal.IThaumcraftCompat; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -41,38 +22,11 @@ import gregtech.api.items.GT_MetaGenerated_Item; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.objects.GT_Fluid; import gregtech.api.objects.GT_FluidStack; -import gregtech.api.objects.GT_HashSet; import gregtech.api.objects.ItemData; import gregtech.api.objects.MaterialStack; -import gregtech.api.util.GT_Config; -import gregtech.api.util.GT_LanguageManager; -import gregtech.api.util.GT_Log; -import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_ModHandler.RecipeBits; -import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_RecipeRegistrator; -import gregtech.api.util.GT_Shaped_Recipe; -import gregtech.api.util.GT_Shapeless_Recipe; -import gregtech.api.util.GT_Utility; +import gregtech.api.util.*; import gregtech.common.entities.GT_Entity_Arrow; import gregtech.common.items.GT_MetaGenerated_Tool_01; - -import java.io.File; -import java.io.PrintStream; -import java.text.DateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Date; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Random; - import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.Entity; @@ -81,12 +35,9 @@ import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.monster.EntityEnderman; import net.minecraft.entity.monster.EntitySkeleton; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.entity.player.PlayerCapabilities; import net.minecraft.entity.projectile.EntityArrow; import net.minecraft.init.Blocks; import net.minecraft.init.Items; -import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemBow; import net.minecraft.item.ItemStack; @@ -94,1791 +45,1782 @@ import net.minecraft.item.crafting.CraftingManager; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; import net.minecraft.world.World; -import net.minecraft.world.WorldProvider; import net.minecraft.world.WorldSettings.GameType; import net.minecraft.world.gen.feature.WorldGenMinable; -import net.minecraft.world.storage.ISaveHandler; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.config.Configuration; import net.minecraftforge.event.ForgeEventFactory; import net.minecraftforge.event.entity.EntityJoinWorldEvent; import net.minecraftforge.event.entity.living.EnderTeleportEvent; import net.minecraftforge.event.entity.player.ArrowLooseEvent; import net.minecraftforge.event.entity.player.ArrowNockEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; -import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action; import net.minecraftforge.event.terraingen.OreGenEvent; -import net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable; -import net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType; import net.minecraftforge.event.world.BlockEvent; -import net.minecraftforge.event.world.BlockEvent.HarvestDropsEvent; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidContainerRegistry; -import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData; -import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerRegisterEvent; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.OreDictionary; -import net.minecraftforge.oredict.OreDictionary.OreRegisterEvent; import net.minecraftforge.oredict.RecipeSorter; -import net.minecraftforge.oredict.RecipeSorter.Category; import net.minecraftforge.oredict.ShapedOreRecipe; import net.minecraftforge.oredict.ShapelessOreRecipe; +import java.io.File; +import java.text.DateFormat; +import java.util.*; + public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { - public final HashSet mRegisteredOres = new HashSet(10000); - public final ArrayList mSoundNames = new ArrayList(); - public final ArrayList mSoundItems = new ArrayList(); - public final ArrayList mSoundCounts = new ArrayList(); - public ArrayList mBufferedPlayerActivity = new ArrayList(); - public boolean mHardcoreCables = false; - public boolean mDisableVanillaOres = true; - public boolean mNerfDustCrafting = true; - public boolean mSortToTheEnd = true; - public boolean mCraftingUnification = true; - public boolean mInventoryUnification = true; - public boolean mIncreaseDungeonLoot = true; - public boolean mAxeWhenAdventure = true; - public boolean mSurvivalIntoAdventure = false; - public boolean mNerfedWoodPlank = true; - public boolean mNerfedVanillaTools = true; - public boolean mHardRock = false; - public boolean mHungerEffect = true; - public boolean mOnline = true; - public boolean mIgnoreTcon = true; - public boolean mDisableIC2Cables = false; - public boolean mAchievements = true; - public boolean mAE2Integration = true; - public int mSkeletonsShootGTArrows = 16; - public int mMaxEqualEntitiesAtOneSpot = 3; - public int mFlintChance = 30; - public int mItemDespawnTime = 6000; - public int mUpgradeCount = 4; + private static final EnumSet PREVENTED_ORES = EnumSet.of(OreGenEvent.GenerateMinable.EventType.COAL, + new OreGenEvent.GenerateMinable.EventType[]{OreGenEvent.GenerateMinable.EventType.IRON, OreGenEvent.GenerateMinable.EventType.GOLD, + OreGenEvent.GenerateMinable.EventType.DIAMOND, OreGenEvent.GenerateMinable.EventType.REDSTONE, OreGenEvent.GenerateMinable.EventType.LAPIS, + OreGenEvent.GenerateMinable.EventType.QUARTZ}); + public final HashSet mRegisteredOres = new HashSet(10000); + public final ArrayList mSoundNames = new ArrayList(); + public final ArrayList mSoundItems = new ArrayList(); + public final ArrayList mSoundCounts = new ArrayList(); + private final Collection mEvents = new HashSet(); + private final Collection mIgnoredItems = new HashSet(Arrays.asList(new String[]{"itemGhastTear", "itemFlint", "itemClay", "itemBucketSaltWater", + "itemBucketFreshWater", "itemBucketWater", "itemRock", "itemReed", "itemArrow", "itemSaw", "itemKnife", "itemHammer", "itemChisel", "itemRubber", + "itemEssence", "itemIlluminatedPanel", "itemSkull", "itemRawRubber", "itemBacon", "itemJetpackAccelerator", "itemLazurite", "itemIridium", + "itemTear", "itemClaw", "itemFertilizer", "itemTar", "itemSlimeball", "itemCoke", "itemBeeswax", "itemBeeQueen", "itemForcicium", "itemForcillium", + "itemRoyalJelly", "itemHoneydew", "itemHoney", "itemPollen", "itemReedTypha", "itemSulfuricAcid", "itemPotash", "itemCompressedCarbon", + "itemBitumen", "itemBioFuel", "itemCokeSugar", "itemCokeCactus", "itemCharcoalSugar", "itemCharcoalCactus", "itemSludge", "itemEnrichedAlloy", + "itemQuicksilver", "itemMercury", "itemOsmium", "itemUltimateCircuit", "itemEnergizedStar", "itemAntimatterMolecule", "itemAntimatterGlob", + "itemCoal", "itemBoat", "itemHerbalMedicineCake", "itemCakeSponge", "itemFishandPumpkinCakeSponge", "itemSoulCleaver", "itemInstantCake", + "itemWhippingCream", "itemGlisteningWhippingCream", "itemCleaver", "itemHerbalMedicineWhippingCream", "itemStrangeWhippingCream", + "itemBlazeCleaver", "itemBakedCakeSponge", "itemMagmaCake", "itemGlisteningCake", "itemOgreCleaver", "itemFishandPumpkinCake", + "itemMagmaWhippingCream", "itemMultimeter", "itemSuperconductor"})); + private final Collection mIgnoredNames = new HashSet(Arrays.asList(new String[]{"grubBee", "chainLink", "candyCane", "bRedString", "bVial", + "bFlask", "anorthositeSmooth", "migmatiteSmooth", "slateSmooth", "travertineSmooth", "limestoneSmooth", "orthogneissSmooth", "marbleSmooth", + "honeyDrop", "lumpClay", "honeyEqualssugar", "flourEqualswheat", "bluestoneInsulated", "blockWaterstone", "blockSand", "blockTorch", + "blockPumpkin", "blockClothRock", "blockStainedHardenedClay", "blockQuartzPillar", "blockQuartzChiselled", "blockSpawner", "blockCloth", "mobHead", + "mobEgg", "enderFlower", "enderChest", "clayHardened", "dayGemMaterial", "nightGemMaterial", "snowLayer", "bPlaceholder", "hardenedClay", + "eternalLifeEssence", "sandstone", "wheatRice", "transdimBlock", "bambooBasket", "lexicaBotania", "livingwoodTwig", "redstoneCrystal", + "pestleAndMortar", "glowstone", "whiteStone", "stoneSlab", "transdimBlock", "clayBowl", "clayPlate", "ceramicBowl", "ceramicPlate", "ovenRack", + "clayCup", "ceramicCup", "batteryBox", "transmutationStone", "torchRedstoneActive", "coal", "charcoal", "cloth", "cobblestoneSlab", + "stoneBrickSlab", "cobblestoneWall", "stoneBrickWall", "cobblestoneStair", "stoneBrickStair", "blockCloud", "blockDirt", "blockTyrian", + "blockCarpet", "blockFft", "blockLavastone", "blockHolystone", "blockConcrete", "sunnariumPart", "brSmallMachineCyaniteProcessor", "meteoriteCoal", + "blockCobble", "pressOreProcessor", "crusherOreProcessor", "grinderOreProcessor", "blockRubber", "blockHoney", "blockHoneydew", "blockPeat", + "blockRadioactive", "blockSlime", "blockCocoa", "blockSugarCane", "blockLeather", "blockClayBrick", "solarPanelHV", "cableRedNet", "stoneBowl", + "crafterWood", "taintedSoil", "brickXyEngineering", "breederUranium", "wireMill", "chunkLazurite", "aluminumNatural", "aluminiumNatural", + "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", + "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", + "osmoniumIngot", "tapaziteGem", "zectiumIngot", "foolsRubyGem", "rubyGem", "meteoriteGem", "adamiteShard", "sapphireGem", "copperIngot", + "ironStick", "goldStick", "diamondStick", "reinforcedStick", "draconicStick", "emeraldStick", "copperStick", "tinStick", "silverStick", + "bronzeStick", "steelStick", "leadStick", "manyullynStick", "arditeStick", "cobaltStick", "aluminiumStick", "alumiteStick", "oilsandsOre", + "copperWire", "superconductorWire", "sulfuricAcid", "conveyorBelt", "ironWire", "aluminumWire", "aluminiumWire", "silverWire", "tinWire", + "dustSiliconSmall", "AluminumOre", "plateHeavyT2", "blockWool", "alloyPlateEnergizedHardened", "gasWood", "alloyPlateEnergized", "SilverOre", + "LeadOre", "TinOre", "CopperOre", "silverOre", "leadOre", "tinOre", "copperOre", "bauxiteOre", "HSLivingmetalIngot", "oilMoving", "oilStill", + "oilBucket", "petroleumOre", "dieselFuel", "diamondNugget", "planks", "wood", "stick", "sticks", "naquadah", "obsidianRod", "stoneRod", + "thaumiumRod", "steelRod", "netherrackRod", "woodRod", "ironRod", "cactusRod", "flintRod", "copperRod", "cobaltRod", "alumiteRod", "blueslimeRod", + "arditeRod", "manyullynRod", "bronzeRod", "boneRod", "slimeRod", "redalloyBundled", "bluestoneBundled", "infusedteslatiteInsulated", + "redalloyInsulated", "infusedteslatiteBundled"})); + private final DateFormat mDateFormat = DateFormat.getInstance(); + public ArrayList mBufferedPlayerActivity = new ArrayList(); + public boolean mHardcoreCables = false; + public boolean mDisableVanillaOres = true; + public boolean mNerfDustCrafting = true; + public boolean mSortToTheEnd = true; + public boolean mCraftingUnification = true; + public boolean mInventoryUnification = true; + public boolean mIncreaseDungeonLoot = true; + public boolean mAxeWhenAdventure = true; + public boolean mSurvivalIntoAdventure = false; + public boolean mNerfedWoodPlank = true; + public boolean mNerfedVanillaTools = true; + public boolean mHardRock = false; + public boolean mHungerEffect = true; + public boolean mOnline = true; + public boolean mIgnoreTcon = true; + public boolean mDisableIC2Cables = false; + public boolean mAchievements = true; + public boolean mAE2Integration = true; + public int mSkeletonsShootGTArrows = 16; + public int mMaxEqualEntitiesAtOneSpot = 3; + public int mFlintChance = 30; + public int mItemDespawnTime = 6000; + public int mUpgradeCount = 4; + private World mUniverse = null; + private boolean isFirstServerWorldTick = true; + private boolean mOreDictActivated = false; - public static class OreDictEventContainer { - public final OreDictionary.OreRegisterEvent mEvent; - public final OrePrefixes mPrefix; - public final Materials mMaterial; - public final String mModID; + public GT_Proxy() { + GameRegistry.registerFuelHandler(this); + MinecraftForge.EVENT_BUS.register(this); + MinecraftForge.ORE_GEN_BUS.register(this); + FMLCommonHandler.instance().bus().register(this); + GregTech_API.sThaumcraftCompat = (IThaumcraftCompat) GT_Utility.callConstructor("gregtech.common.GT_ThaumcraftCompat", 0, null, GT_Values.D1, + new Object[0]); + for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry.getRegisteredFluidContainerData()) { + onFluidContainerRegistration(new FluidContainerRegistry.FluidContainerRegisterEvent(tData)); + } + for (String tOreName : OreDictionary.getOreNames()) { + ItemStack tOreStack; + for (Iterator i$ = OreDictionary.getOres(tOreName).iterator(); i$.hasNext(); registerOre(new OreDictionary.OreRegisterEvent(tOreName, tOreStack))) { + tOreStack = (ItemStack) i$.next(); + } + } + } - public OreDictEventContainer(OreDictionary.OreRegisterEvent aEvent, OrePrefixes aPrefix, Materials aMaterial, String aModID) { - this.mEvent = aEvent; - this.mPrefix = aPrefix; - this.mMaterial = aMaterial; - this.mModID = ((aModID == null) || (aModID.equals("UNKNOWN")) ? null : aModID); - } - } + private static final void registerRecipes(OreDictEventContainer aOre) { + if ((aOre.mEvent.Ore == null) || (aOre.mEvent.Ore.getItem() == null)) { + return; + } + if (aOre.mEvent.Ore.stackSize != 1) { + aOre.mEvent.Ore.stackSize = 1; + } + if (aOre.mPrefix != null) { + if (!aOre.mPrefix.isIgnored(aOre.mMaterial)) { + aOre.mPrefix.processOre(aOre.mMaterial == null ? Materials._NULL : aOre.mMaterial, aOre.mEvent.Name, aOre.mModID, + GT_Utility.copyAmount(1L, new Object[]{aOre.mEvent.Ore})); + } + } else { +// System.out.println("Thingy Name: "+ aOre.mEvent.Name+ " !!!Unknown 'Thingy' detected!!! This Object seems to probably not follow a valid OreDictionary Convention, or I missed a Convention. Please report to GregTech Intergalactical for additional compatiblity. This is not an Error, an Issue nor a Lag Source, it is just an Information, which you should pass to me."); + } + } - private World mUniverse = null; - private boolean isFirstServerWorldTick = true; - private boolean mOreDictActivated = false; - private final Collection mEvents = new HashSet(); - private final Collection mIgnoredItems = new HashSet(Arrays.asList(new String[] { "itemGhastTear", "itemFlint", "itemClay", "itemBucketSaltWater", - "itemBucketFreshWater", "itemBucketWater", "itemRock", "itemReed", "itemArrow", "itemSaw", "itemKnife", "itemHammer", "itemChisel", "itemRubber", - "itemEssence", "itemIlluminatedPanel", "itemSkull", "itemRawRubber", "itemBacon", "itemJetpackAccelerator", "itemLazurite", "itemIridium", - "itemTear", "itemClaw", "itemFertilizer", "itemTar", "itemSlimeball", "itemCoke", "itemBeeswax", "itemBeeQueen", "itemForcicium", "itemForcillium", - "itemRoyalJelly", "itemHoneydew", "itemHoney", "itemPollen", "itemReedTypha", "itemSulfuricAcid", "itemPotash", "itemCompressedCarbon", - "itemBitumen", "itemBioFuel", "itemCokeSugar", "itemCokeCactus", "itemCharcoalSugar", "itemCharcoalCactus", "itemSludge", "itemEnrichedAlloy", - "itemQuicksilver", "itemMercury", "itemOsmium", "itemUltimateCircuit", "itemEnergizedStar", "itemAntimatterMolecule", "itemAntimatterGlob", - "itemCoal", "itemBoat", "itemHerbalMedicineCake", "itemCakeSponge", "itemFishandPumpkinCakeSponge", "itemSoulCleaver", "itemInstantCake", - "itemWhippingCream", "itemGlisteningWhippingCream", "itemCleaver", "itemHerbalMedicineWhippingCream", "itemStrangeWhippingCream", - "itemBlazeCleaver", "itemBakedCakeSponge", "itemMagmaCake", "itemGlisteningCake", "itemOgreCleaver", "itemFishandPumpkinCake", - "itemMagmaWhippingCream", "itemMultimeter", "itemSuperconductor" })); - private final Collection mIgnoredNames = new HashSet(Arrays.asList(new String[] { "grubBee", "chainLink", "candyCane", "bRedString", "bVial", - "bFlask", "anorthositeSmooth", "migmatiteSmooth", "slateSmooth", "travertineSmooth", "limestoneSmooth", "orthogneissSmooth", "marbleSmooth", - "honeyDrop", "lumpClay", "honeyEqualssugar", "flourEqualswheat", "bluestoneInsulated", "blockWaterstone", "blockSand", "blockTorch", - "blockPumpkin", "blockClothRock", "blockStainedHardenedClay", "blockQuartzPillar", "blockQuartzChiselled", "blockSpawner", "blockCloth", "mobHead", - "mobEgg", "enderFlower", "enderChest", "clayHardened", "dayGemMaterial", "nightGemMaterial", "snowLayer", "bPlaceholder", "hardenedClay", - "eternalLifeEssence", "sandstone", "wheatRice", "transdimBlock", "bambooBasket", "lexicaBotania", "livingwoodTwig", "redstoneCrystal", - "pestleAndMortar", "glowstone", "whiteStone", "stoneSlab", "transdimBlock", "clayBowl", "clayPlate", "ceramicBowl", "ceramicPlate", "ovenRack", - "clayCup", "ceramicCup", "batteryBox", "transmutationStone", "torchRedstoneActive", "coal", "charcoal", "cloth", "cobblestoneSlab", - "stoneBrickSlab", "cobblestoneWall", "stoneBrickWall", "cobblestoneStair", "stoneBrickStair", "blockCloud", "blockDirt", "blockTyrian", - "blockCarpet", "blockFft", "blockLavastone", "blockHolystone", "blockConcrete", "sunnariumPart", "brSmallMachineCyaniteProcessor", "meteoriteCoal", - "blockCobble", "pressOreProcessor", "crusherOreProcessor", "grinderOreProcessor", "blockRubber", "blockHoney", "blockHoneydew", "blockPeat", - "blockRadioactive", "blockSlime", "blockCocoa", "blockSugarCane", "blockLeather", "blockClayBrick", "solarPanelHV", "cableRedNet", "stoneBowl", - "crafterWood", "taintedSoil", "brickXyEngineering", "breederUranium", "wireMill", "chunkLazurite", "aluminumNatural", "aluminiumNatural", - "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", - "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", - "osmoniumIngot", "tapaziteGem", "zectiumIngot", "foolsRubyGem", "rubyGem", "meteoriteGem", "adamiteShard", "sapphireGem", "copperIngot", - "ironStick", "goldStick", "diamondStick", "reinforcedStick", "draconicStick", "emeraldStick", "copperStick", "tinStick", "silverStick", - "bronzeStick", "steelStick", "leadStick", "manyullynStick", "arditeStick", "cobaltStick", "aluminiumStick", "alumiteStick", "oilsandsOre", - "copperWire", "superconductorWire", "sulfuricAcid", "conveyorBelt", "ironWire", "aluminumWire", "aluminiumWire", "silverWire", "tinWire", - "dustSiliconSmall", "AluminumOre", "plateHeavyT2", "blockWool", "alloyPlateEnergizedHardened", "gasWood", "alloyPlateEnergized", "SilverOre", - "LeadOre", "TinOre", "CopperOre", "silverOre", "leadOre", "tinOre", "copperOre", "bauxiteOre", "HSLivingmetalIngot", "oilMoving", "oilStill", - "oilBucket", "petroleumOre", "dieselFuel", "diamondNugget", "planks", "wood", "stick", "sticks", "naquadah", "obsidianRod", "stoneRod", - "thaumiumRod", "steelRod", "netherrackRod", "woodRod", "ironRod", "cactusRod", "flintRod", "copperRod", "cobaltRod", "alumiteRod", "blueslimeRod", - "arditeRod", "manyullynRod", "bronzeRod", "boneRod", "slimeRod", "redalloyBundled", "bluestoneBundled", "infusedteslatiteInsulated", - "redalloyInsulated", "infusedteslatiteBundled" })); + public void onPreLoad() { + GT_Log.out.println("GT_Mod: Preload-Phase started!"); + GT_Log.ore.println("GT_Mod: Preload-Phase started!"); - public GT_Proxy() { - GameRegistry.registerFuelHandler(this); - MinecraftForge.EVENT_BUS.register(this); - MinecraftForge.ORE_GEN_BUS.register(this); - FMLCommonHandler.instance().bus().register(this); - GregTech_API.sThaumcraftCompat = (IThaumcraftCompat) GT_Utility.callConstructor("gregtech.common.GT_ThaumcraftCompat", 0, null, GT_Values.D1, - new Object[0]); - for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry.getRegisteredFluidContainerData()) { - onFluidContainerRegistration(new FluidContainerRegistry.FluidContainerRegisterEvent(tData)); - } - for (String tOreName : OreDictionary.getOreNames()) { - ItemStack tOreStack; - for (Iterator i$ = OreDictionary.getOres(tOreName).iterator(); i$.hasNext(); registerOre(new OreDictionary.OreRegisterEvent(tOreName, tOreStack))) { - tOreStack = (ItemStack) i$.next(); - } - } - } + 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)) { + tData.fluid.amount = 0; + break; + } + } + GT_Log.out.println("GT_Mod: Getting required Items of other Mods."); + ItemList.TE_Slag.set(GT_ModHandler.getModItem("ThermalExpansion", "slag", 1L)); + ItemList.TE_Slag_Rich.set(GT_ModHandler.getModItem("ThermalExpansion", "slagRich", 1L)); + ItemList.TE_Rockwool.set(GT_ModHandler.getModItem("ThermalExpansion", "rockwool", 1L)); + ItemList.TE_Hardened_Glass.set(GT_ModHandler.getModItem("ThermalExpansion", "glassHardened", 1L)); - public void onPreLoad() { - GT_Log.out.println("GT_Mod: Preload-Phase started!"); - GT_Log.ore.println("GT_Mod: Preload-Phase started!"); + ItemList.RC_ShuntingWire.set(GT_ModHandler.getModItem("Railcraft", "tile.railcraft.machine.delta", 1L, 0)); + ItemList.RC_ShuntingWireFrame.set(GT_ModHandler.getModItem("Railcraft", "tile.railcraft.frame", 1L, 0)); + ItemList.RC_Rail_Standard.set(GT_ModHandler.getModItem("Railcraft", "part.rail", 1L, 0)); + ItemList.RC_Rail_Adv.set(GT_ModHandler.getModItem("Railcraft", "part.rail", 1L, 1)); + ItemList.RC_Rail_Wooden.set(GT_ModHandler.getModItem("Railcraft", "part.rail", 1L, 2)); + ItemList.RC_Rail_HS.set(GT_ModHandler.getModItem("Railcraft", "part.rail", 1L, 3)); + ItemList.RC_Rail_Reinforced.set(GT_ModHandler.getModItem("Railcraft", "part.rail", 1L, 4)); + ItemList.RC_Rail_Electric.set(GT_ModHandler.getModItem("Railcraft", "part.rail", 1L, 5)); + ItemList.RC_Tie_Wood.set(GT_ModHandler.getModItem("Railcraft", "part.tie", 1L, 0)); + ItemList.RC_Tie_Stone.set(GT_ModHandler.getModItem("Railcraft", "part.tie", 1L, 1)); + ItemList.RC_Bed_Wood.set(GT_ModHandler.getModItem("Railcraft", "part.railbed", 1L, 0)); + ItemList.RC_Bed_Stone.set(GT_ModHandler.getModItem("Railcraft", "part.railbed", 1L, 1)); + ItemList.RC_Rebar.set(GT_ModHandler.getModItem("Railcraft", "part.rebar", 1L)); + ItemList.Tool_Sword_Steel.set(GT_ModHandler.getModItem("Railcraft", "tool.steel.sword", 1L)); + ItemList.Tool_Pickaxe_Steel.set(GT_ModHandler.getModItem("Railcraft", "tool.steel.pickaxe", 1L)); + ItemList.Tool_Shovel_Steel.set(GT_ModHandler.getModItem("Railcraft", "tool.steel.shovel", 1L)); + ItemList.Tool_Axe_Steel.set(GT_ModHandler.getModItem("Railcraft", "tool.steel.axe", 1L)); + ItemList.Tool_Hoe_Steel.set(GT_ModHandler.getModItem("Railcraft", "tool.steel.hoe", 1L)); - 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)) { - tData.fluid.amount = 0; - break; - } - } - GT_Log.out.println("GT_Mod: Getting required Items of other Mods."); - ItemList.TE_Slag.set(GT_ModHandler.getModItem("ThermalExpansion", "slag", 1L)); - ItemList.TE_Slag_Rich.set(GT_ModHandler.getModItem("ThermalExpansion", "slagRich", 1L)); - ItemList.TE_Rockwool.set(GT_ModHandler.getModItem("ThermalExpansion", "rockwool", 1L)); - ItemList.TE_Hardened_Glass.set(GT_ModHandler.getModItem("ThermalExpansion", "glassHardened", 1L)); + ItemList.TF_LiveRoot.set(GT_ModHandler.getModItem("TwilightForest", "item.liveRoot", 1L, 0)); + ItemList.TF_Vial_FieryBlood.set(GT_ModHandler.getModItem("TwilightForest", "item.fieryBlood", 1L)); + ItemList.TF_Vial_FieryTears.set(GT_ModHandler.getModItem("TwilightForest", "item.fieryTears", 1L)); - ItemList.RC_ShuntingWire.set(GT_ModHandler.getModItem("Railcraft", "tile.railcraft.machine.delta", 1L, 0)); - ItemList.RC_ShuntingWireFrame.set(GT_ModHandler.getModItem("Railcraft", "tile.railcraft.frame", 1L, 0)); - ItemList.RC_Rail_Standard.set(GT_ModHandler.getModItem("Railcraft", "part.rail", 1L, 0)); - ItemList.RC_Rail_Adv.set(GT_ModHandler.getModItem("Railcraft", "part.rail", 1L, 1)); - ItemList.RC_Rail_Wooden.set(GT_ModHandler.getModItem("Railcraft", "part.rail", 1L, 2)); - ItemList.RC_Rail_HS.set(GT_ModHandler.getModItem("Railcraft", "part.rail", 1L, 3)); - ItemList.RC_Rail_Reinforced.set(GT_ModHandler.getModItem("Railcraft", "part.rail", 1L, 4)); - ItemList.RC_Rail_Electric.set(GT_ModHandler.getModItem("Railcraft", "part.rail", 1L, 5)); - ItemList.RC_Tie_Wood.set(GT_ModHandler.getModItem("Railcraft", "part.tie", 1L, 0)); - ItemList.RC_Tie_Stone.set(GT_ModHandler.getModItem("Railcraft", "part.tie", 1L, 1)); - ItemList.RC_Bed_Wood.set(GT_ModHandler.getModItem("Railcraft", "part.railbed", 1L, 0)); - ItemList.RC_Bed_Stone.set(GT_ModHandler.getModItem("Railcraft", "part.railbed", 1L, 1)); - ItemList.RC_Rebar.set(GT_ModHandler.getModItem("Railcraft", "part.rebar", 1L)); - ItemList.Tool_Sword_Steel.set(GT_ModHandler.getModItem("Railcraft", "tool.steel.sword", 1L)); - ItemList.Tool_Pickaxe_Steel.set(GT_ModHandler.getModItem("Railcraft", "tool.steel.pickaxe", 1L)); - ItemList.Tool_Shovel_Steel.set(GT_ModHandler.getModItem("Railcraft", "tool.steel.shovel", 1L)); - ItemList.Tool_Axe_Steel.set(GT_ModHandler.getModItem("Railcraft", "tool.steel.axe", 1L)); - ItemList.Tool_Hoe_Steel.set(GT_ModHandler.getModItem("Railcraft", "tool.steel.hoe", 1L)); + ItemList.FR_Lemon.set(GT_ModHandler.getModItem("Forestry", "fruits", 1L, 3)); + ItemList.FR_Mulch.set(GT_ModHandler.getModItem("Forestry", "mulch", 1L)); + ItemList.FR_Fertilizer.set(GT_ModHandler.getModItem("Forestry", "fertilizerCompound", 1L)); + ItemList.FR_Compost.set(GT_ModHandler.getModItem("Forestry", "fertilizerBio", 1L)); + ItemList.FR_Silk.set(GT_ModHandler.getModItem("Forestry", "craftingMaterial", 1L, 2)); + ItemList.FR_Wax.set(GT_ModHandler.getModItem("Forestry", "beeswax", 1L)); + ItemList.FR_WaxCapsule.set(GT_ModHandler.getModItem("Forestry", "waxCapsule", 1L)); + ItemList.FR_RefractoryWax.set(GT_ModHandler.getModItem("Forestry", "refractoryWax", 1L)); + ItemList.FR_RefractoryCapsule.set(GT_ModHandler.getModItem("Forestry", "refractoryEmpty", 1L)); + ItemList.FR_Bee_Drone.set(GT_ModHandler.getModItem("Forestry", "beeDroneGE", 1L)); + ItemList.FR_Bee_Princess.set(GT_ModHandler.getModItem("Forestry", "beePrincessGE", 1L)); + ItemList.FR_Bee_Queen.set(GT_ModHandler.getModItem("Forestry", "beeQueenGE", 1L)); + ItemList.FR_Tree_Sapling.set(GT_ModHandler.getModItem("Forestry", "sapling", 1L, GT_ModHandler.getModItem("Forestry", "saplingGE", 1L))); + ItemList.FR_Butterfly.set(GT_ModHandler.getModItem("Forestry", "butterflyGE", 1L)); + ItemList.FR_Larvae.set(GT_ModHandler.getModItem("Forestry", "beeLarvaeGE", 1L)); + ItemList.FR_Serum.set(GT_ModHandler.getModItem("Forestry", "serumGE", 1L)); + ItemList.FR_Caterpillar.set(GT_ModHandler.getModItem("Forestry", "caterpillarGE", 1L)); + ItemList.FR_PollenFertile.set(GT_ModHandler.getModItem("Forestry", "pollenFertile", 1L)); + ItemList.FR_Stick.set(GT_ModHandler.getModItem("Forestry", "oakStick", 1L)); + ItemList.FR_Casing_Impregnated.set(GT_ModHandler.getModItem("Forestry", "impregnatedCasing", 1L)); + ItemList.FR_Casing_Sturdy.set(GT_ModHandler.getModItem("Forestry", "sturdyMachine", 1L)); + ItemList.FR_Casing_Hardened.set(GT_ModHandler.getModItem("Forestry", "hardenedMachine", 1L)); - ItemList.TF_LiveRoot.set(GT_ModHandler.getModItem("TwilightForest", "item.liveRoot", 1L, 0)); - ItemList.TF_Vial_FieryBlood.set(GT_ModHandler.getModItem("TwilightForest", "item.fieryBlood", 1L)); - ItemList.TF_Vial_FieryTears.set(GT_ModHandler.getModItem("TwilightForest", "item.fieryTears", 1L)); + ItemList.Bottle_Empty.set(new ItemStack(Items.glass_bottle, 1)); - ItemList.FR_Lemon.set(GT_ModHandler.getModItem("Forestry", "fruits", 1L, 3)); - ItemList.FR_Mulch.set(GT_ModHandler.getModItem("Forestry", "mulch", 1L)); - ItemList.FR_Fertilizer.set(GT_ModHandler.getModItem("Forestry", "fertilizerCompound", 1L)); - ItemList.FR_Compost.set(GT_ModHandler.getModItem("Forestry", "fertilizerBio", 1L)); - ItemList.FR_Silk.set(GT_ModHandler.getModItem("Forestry", "craftingMaterial", 1L, 2)); - ItemList.FR_Wax.set(GT_ModHandler.getModItem("Forestry", "beeswax", 1L)); - ItemList.FR_WaxCapsule.set(GT_ModHandler.getModItem("Forestry", "waxCapsule", 1L)); - ItemList.FR_RefractoryWax.set(GT_ModHandler.getModItem("Forestry", "refractoryWax", 1L)); - ItemList.FR_RefractoryCapsule.set(GT_ModHandler.getModItem("Forestry", "refractoryEmpty", 1L)); - ItemList.FR_Bee_Drone.set(GT_ModHandler.getModItem("Forestry", "beeDroneGE", 1L)); - ItemList.FR_Bee_Princess.set(GT_ModHandler.getModItem("Forestry", "beePrincessGE", 1L)); - ItemList.FR_Bee_Queen.set(GT_ModHandler.getModItem("Forestry", "beeQueenGE", 1L)); - ItemList.FR_Tree_Sapling.set(GT_ModHandler.getModItem("Forestry", "sapling", 1L, GT_ModHandler.getModItem("Forestry", "saplingGE", 1L))); - ItemList.FR_Butterfly.set(GT_ModHandler.getModItem("Forestry", "butterflyGE", 1L)); - ItemList.FR_Larvae.set(GT_ModHandler.getModItem("Forestry", "beeLarvaeGE", 1L)); - ItemList.FR_Serum.set(GT_ModHandler.getModItem("Forestry", "serumGE", 1L)); - ItemList.FR_Caterpillar.set(GT_ModHandler.getModItem("Forestry", "caterpillarGE", 1L)); - ItemList.FR_PollenFertile.set(GT_ModHandler.getModItem("Forestry", "pollenFertile", 1L)); - ItemList.FR_Stick.set(GT_ModHandler.getModItem("Forestry", "oakStick", 1L)); - ItemList.FR_Casing_Impregnated.set(GT_ModHandler.getModItem("Forestry", "impregnatedCasing", 1L)); - ItemList.FR_Casing_Sturdy.set(GT_ModHandler.getModItem("Forestry", "sturdyMachine", 1L)); - ItemList.FR_Casing_Hardened.set(GT_ModHandler.getModItem("Forestry", "hardenedMachine", 1L)); + ItemList.Cell_Universal_Fluid.set(GT_ModHandler.getIC2Item("FluidCell", 1L)); + ItemList.Cell_Empty.set(GT_ModHandler.getIC2Item("cell", 1L, GT_ModHandler.getIC2Item("cellEmpty", 1L, GT_ModHandler.getIC2Item("emptyCell", 1L)))); + ItemList.Cell_Water.set(GT_ModHandler.getIC2Item("waterCell", 1L, GT_ModHandler.getIC2Item("cellWater", 1L))); + ItemList.Cell_Lava.set(GT_ModHandler.getIC2Item("lavaCell", 1L, GT_ModHandler.getIC2Item("cellLava", 1L))); + ItemList.Cell_Air.set(GT_ModHandler.getIC2Item("airCell", 1L, GT_ModHandler.getIC2Item("cellAir", 1L, GT_ModHandler.getIC2Item("cellOxygen", 1L)))); - ItemList.Bottle_Empty.set(new ItemStack(Items.glass_bottle, 1)); + ItemList.IC2_Item_Casing_Iron.set(GT_ModHandler.getIC2Item("casingiron", 1L)); + ItemList.IC2_Item_Casing_Gold.set(GT_ModHandler.getIC2Item("casinggold", 1L)); + ItemList.IC2_Item_Casing_Bronze.set(GT_ModHandler.getIC2Item("casingbronze", 1L)); + ItemList.IC2_Item_Casing_Copper.set(GT_ModHandler.getIC2Item("casingcopper", 1L)); + ItemList.IC2_Item_Casing_Tin.set(GT_ModHandler.getIC2Item("casingtin", 1L)); + ItemList.IC2_Item_Casing_Lead.set(GT_ModHandler.getIC2Item("casinglead", 1L)); + ItemList.IC2_Item_Casing_Steel.set(GT_ModHandler.getIC2Item("casingadviron", 1L)); + ItemList.IC2_Spray_WeedEx.set(GT_ModHandler.getIC2Item("weedEx", 1L)); + ItemList.IC2_Fuel_Can_Empty.set(GT_ModHandler.getIC2Item("fuelCan", 1L, + GT_ModHandler.getIC2Item("fuelCanEmpty", 1L, GT_ModHandler.getIC2Item("emptyFuelCan", 1L)))); + ItemList.IC2_Fuel_Can_Filled.set(GT_ModHandler.getIC2Item("filledFuelCan", 1L)); + ItemList.IC2_Mixed_Metal_Ingot.set(GT_ModHandler.getIC2Item("mixedMetalIngot", 1L)); + ItemList.IC2_Fertilizer.set(GT_ModHandler.getIC2Item("fertilizer", 1L)); + ItemList.IC2_CoffeeBeans.set(GT_ModHandler.getIC2Item("coffeeBeans", 1L)); + ItemList.IC2_CoffeePowder.set(GT_ModHandler.getIC2Item("coffeePowder", 1L)); + ItemList.IC2_Hops.set(GT_ModHandler.getIC2Item("hops", 1L)); + ItemList.IC2_Resin.set(GT_ModHandler.getIC2Item("resin", 1L)); + ItemList.IC2_Plantball.set(GT_ModHandler.getIC2Item("plantBall", 1L)); + ItemList.IC2_PlantballCompressed.set(GT_ModHandler.getIC2Item("compressedPlantBall", 1L, ItemList.IC2_Plantball.get(1L, new Object[0]))); + ItemList.IC2_Crop_Seeds.set(GT_ModHandler.getIC2Item("cropSeed", 1L)); + ItemList.IC2_Grin_Powder.set(GT_ModHandler.getIC2Item("grinPowder", 1L)); + ItemList.IC2_Energium_Dust.set(GT_ModHandler.getIC2Item("energiumDust", 1L)); + ItemList.IC2_Scrap.set(GT_ModHandler.getIC2Item("scrap", 1L)); + ItemList.IC2_Scrapbox.set(GT_ModHandler.getIC2Item("scrapBox", 1L)); + ItemList.IC2_Fuel_Rod_Empty.set(GT_ModHandler.getIC2Item("fuelRod", 1L)); + ItemList.IC2_Food_Can_Empty.set(GT_ModHandler.getIC2Item("tinCan", 1L)); + ItemList.IC2_Food_Can_Filled.set(GT_ModHandler.getIC2Item("filledTinCan", 1L, 0)); + ItemList.IC2_Food_Can_Spoiled.set(GT_ModHandler.getIC2Item("filledTinCan", 1L, 1)); + ItemList.IC2_Industrial_Diamond.set(GT_ModHandler.getIC2Item("industrialDiamond", 1L, new ItemStack(Items.diamond, 1))); + ItemList.IC2_Compressed_Coal_Ball.set(GT_ModHandler.getIC2Item("compressedCoalBall", 1L)); + ItemList.IC2_Compressed_Coal_Chunk.set(GT_ModHandler.getIC2Item("coalChunk", 1L)); + ItemList.IC2_ShaftIron.set(GT_ModHandler.getIC2Item("ironshaft", 1L)); + ItemList.IC2_ShaftSteel.set(GT_ModHandler.getIC2Item("steelshaft", 1L)); - ItemList.Cell_Universal_Fluid.set(GT_ModHandler.getIC2Item("FluidCell", 1L)); - ItemList.Cell_Empty.set(GT_ModHandler.getIC2Item("cell", 1L, GT_ModHandler.getIC2Item("cellEmpty", 1L, GT_ModHandler.getIC2Item("emptyCell", 1L)))); - ItemList.Cell_Water.set(GT_ModHandler.getIC2Item("waterCell", 1L, GT_ModHandler.getIC2Item("cellWater", 1L))); - ItemList.Cell_Lava.set(GT_ModHandler.getIC2Item("lavaCell", 1L, GT_ModHandler.getIC2Item("cellLava", 1L))); - ItemList.Cell_Air.set(GT_ModHandler.getIC2Item("airCell", 1L, GT_ModHandler.getIC2Item("cellAir", 1L, GT_ModHandler.getIC2Item("cellOxygen", 1L)))); + ItemList.IC2_SuBattery.set(GT_ModHandler.getIC2Item("suBattery", 1L)); + ItemList.IC2_ReBattery.set(GT_ModHandler.getIC2Item("reBattery", 1L)); + ItemList.IC2_AdvBattery.set(GT_ModHandler.getIC2Item("advBattery", 1L)); + ItemList.IC2_EnergyCrystal.set(GT_ModHandler.getIC2Item("energyCrystal", 1L)); + ItemList.IC2_LapotronCrystal.set(GT_ModHandler.getIC2Item("lapotronCrystal", 1L)); - ItemList.IC2_Item_Casing_Iron.set(GT_ModHandler.getIC2Item("casingiron", 1L)); - ItemList.IC2_Item_Casing_Gold.set(GT_ModHandler.getIC2Item("casinggold", 1L)); - ItemList.IC2_Item_Casing_Bronze.set(GT_ModHandler.getIC2Item("casingbronze", 1L)); - ItemList.IC2_Item_Casing_Copper.set(GT_ModHandler.getIC2Item("casingcopper", 1L)); - ItemList.IC2_Item_Casing_Tin.set(GT_ModHandler.getIC2Item("casingtin", 1L)); - ItemList.IC2_Item_Casing_Lead.set(GT_ModHandler.getIC2Item("casinglead", 1L)); - ItemList.IC2_Item_Casing_Steel.set(GT_ModHandler.getIC2Item("casingadviron", 1L)); - ItemList.IC2_Spray_WeedEx.set(GT_ModHandler.getIC2Item("weedEx", 1L)); - ItemList.IC2_Fuel_Can_Empty.set(GT_ModHandler.getIC2Item("fuelCan", 1L, - GT_ModHandler.getIC2Item("fuelCanEmpty", 1L, GT_ModHandler.getIC2Item("emptyFuelCan", 1L)))); - ItemList.IC2_Fuel_Can_Filled.set(GT_ModHandler.getIC2Item("filledFuelCan", 1L)); - ItemList.IC2_Mixed_Metal_Ingot.set(GT_ModHandler.getIC2Item("mixedMetalIngot", 1L)); - ItemList.IC2_Fertilizer.set(GT_ModHandler.getIC2Item("fertilizer", 1L)); - ItemList.IC2_CoffeeBeans.set(GT_ModHandler.getIC2Item("coffeeBeans", 1L)); - ItemList.IC2_CoffeePowder.set(GT_ModHandler.getIC2Item("coffeePowder", 1L)); - ItemList.IC2_Hops.set(GT_ModHandler.getIC2Item("hops", 1L)); - ItemList.IC2_Resin.set(GT_ModHandler.getIC2Item("resin", 1L)); - ItemList.IC2_Plantball.set(GT_ModHandler.getIC2Item("plantBall", 1L)); - ItemList.IC2_PlantballCompressed.set(GT_ModHandler.getIC2Item("compressedPlantBall", 1L, ItemList.IC2_Plantball.get(1L, new Object[0]))); - ItemList.IC2_Crop_Seeds.set(GT_ModHandler.getIC2Item("cropSeed", 1L)); - ItemList.IC2_Grin_Powder.set(GT_ModHandler.getIC2Item("grinPowder", 1L)); - ItemList.IC2_Energium_Dust.set(GT_ModHandler.getIC2Item("energiumDust", 1L)); - ItemList.IC2_Scrap.set(GT_ModHandler.getIC2Item("scrap", 1L)); - ItemList.IC2_Scrapbox.set(GT_ModHandler.getIC2Item("scrapBox", 1L)); - ItemList.IC2_Fuel_Rod_Empty.set(GT_ModHandler.getIC2Item("fuelRod", 1L)); - ItemList.IC2_Food_Can_Empty.set(GT_ModHandler.getIC2Item("tinCan", 1L)); - ItemList.IC2_Food_Can_Filled.set(GT_ModHandler.getIC2Item("filledTinCan", 1L, 0)); - ItemList.IC2_Food_Can_Spoiled.set(GT_ModHandler.getIC2Item("filledTinCan", 1L, 1)); - ItemList.IC2_Industrial_Diamond.set(GT_ModHandler.getIC2Item("industrialDiamond", 1L, new ItemStack(Items.diamond, 1))); - ItemList.IC2_Compressed_Coal_Ball.set(GT_ModHandler.getIC2Item("compressedCoalBall", 1L)); - ItemList.IC2_Compressed_Coal_Chunk.set(GT_ModHandler.getIC2Item("coalChunk", 1L)); - ItemList.IC2_ShaftIron.set(GT_ModHandler.getIC2Item("ironshaft", 1L)); - ItemList.IC2_ShaftSteel.set(GT_ModHandler.getIC2Item("steelshaft", 1L)); + ItemList.IC2_LapotronCrystal.set(GT_ModHandler.getIC2Item("lapotronCrystal", 1L)); + ItemList.IC2_LapotronCrystal.set(GT_ModHandler.getIC2Item("lapotronCrystal", 1L)); + ItemList.IC2_LapotronCrystal.set(GT_ModHandler.getIC2Item("lapotronCrystal", 1L)); - ItemList.IC2_SuBattery.set(GT_ModHandler.getIC2Item("suBattery", 1L)); - ItemList.IC2_ReBattery.set(GT_ModHandler.getIC2Item("reBattery", 1L)); - ItemList.IC2_AdvBattery.set(GT_ModHandler.getIC2Item("advBattery", 1L)); - ItemList.IC2_EnergyCrystal.set(GT_ModHandler.getIC2Item("energyCrystal", 1L)); - ItemList.IC2_LapotronCrystal.set(GT_ModHandler.getIC2Item("lapotronCrystal", 1L)); + ItemList.Tool_Sword_Bronze.set(GT_ModHandler.getIC2Item("bronzeSword", 1L)); + ItemList.Tool_Pickaxe_Bronze.set(GT_ModHandler.getIC2Item("bronzePickaxe", 1L)); + ItemList.Tool_Shovel_Bronze.set(GT_ModHandler.getIC2Item("bronzeShovel", 1L)); + ItemList.Tool_Axe_Bronze.set(GT_ModHandler.getIC2Item("bronzeAxe", 1L)); + ItemList.Tool_Hoe_Bronze.set(GT_ModHandler.getIC2Item("bronzeHoe", 1L)); + ItemList.IC2_ForgeHammer.set(GT_ModHandler.getIC2Item("ForgeHammer", 1L)); + ItemList.IC2_WireCutter.set(GT_ModHandler.getIC2Item("cutter", 1L)); - ItemList.IC2_LapotronCrystal.set(GT_ModHandler.getIC2Item("lapotronCrystal", 1L)); - ItemList.IC2_LapotronCrystal.set(GT_ModHandler.getIC2Item("lapotronCrystal", 1L)); - ItemList.IC2_LapotronCrystal.set(GT_ModHandler.getIC2Item("lapotronCrystal", 1L)); + ItemList.Credit_Iron.set(GT_ModHandler.getIC2Item("coin", 1L)); - ItemList.Tool_Sword_Bronze.set(GT_ModHandler.getIC2Item("bronzeSword", 1L)); - ItemList.Tool_Pickaxe_Bronze.set(GT_ModHandler.getIC2Item("bronzePickaxe", 1L)); - ItemList.Tool_Shovel_Bronze.set(GT_ModHandler.getIC2Item("bronzeShovel", 1L)); - ItemList.Tool_Axe_Bronze.set(GT_ModHandler.getIC2Item("bronzeAxe", 1L)); - ItemList.Tool_Hoe_Bronze.set(GT_ModHandler.getIC2Item("bronzeHoe", 1L)); - ItemList.IC2_ForgeHammer.set(GT_ModHandler.getIC2Item("ForgeHammer", 1L)); - ItemList.IC2_WireCutter.set(GT_ModHandler.getIC2Item("cutter", 1L)); + ItemList.Circuit_Basic.set(GT_ModHandler.getIC2Item("electronicCircuit", 1L)); + ItemList.Circuit_Advanced.set(GT_ModHandler.getIC2Item("advancedCircuit", 1L)); - ItemList.Credit_Iron.set(GT_ModHandler.getIC2Item("coin", 1L)); + ItemList.Upgrade_Overclocker.set(GT_ModHandler.getIC2Item("overclockerUpgrade", 1L)); + ItemList.Upgrade_Battery.set(GT_ModHandler.getIC2Item("energyStorageUpgrade", 1L)); - ItemList.Circuit_Basic.set(GT_ModHandler.getIC2Item("electronicCircuit", 1L)); - ItemList.Circuit_Advanced.set(GT_ModHandler.getIC2Item("advancedCircuit", 1L)); + ItemList.Dye_Bonemeal.set(new ItemStack(Items.dye, 1, 15)); + ItemList.Dye_SquidInk.set(new ItemStack(Items.dye, 1, 0)); + ItemList.Dye_Cocoa.set(new ItemStack(Items.dye, 1, 3)); - ItemList.Upgrade_Overclocker.set(GT_ModHandler.getIC2Item("overclockerUpgrade", 1L)); - ItemList.Upgrade_Battery.set(GT_ModHandler.getIC2Item("energyStorageUpgrade", 1L)); + ItemList.Book_Written_00.set(new ItemStack(Items.written_book, 1, 0)); - ItemList.Dye_Bonemeal.set(new ItemStack(Items.dye, 1, 15)); - ItemList.Dye_SquidInk.set(new ItemStack(Items.dye, 1, 0)); - ItemList.Dye_Cocoa.set(new ItemStack(Items.dye, 1, 3)); + ItemList.Food_Baked_Bread.set(new ItemStack(Items.bread, 1, 0)); + ItemList.Food_Raw_Potato.set(new ItemStack(Items.potato, 1, 0)); + ItemList.Food_Baked_Potato.set(new ItemStack(Items.baked_potato, 1, 0)); + ItemList.Food_Poisonous_Potato.set(new ItemStack(Items.poisonous_potato, 1, 0)); - ItemList.Book_Written_00.set(new ItemStack(Items.written_book, 1, 0)); + OrePrefixes.bottle.mContainerItem = ItemList.Bottle_Empty.get(1L, new Object[0]); + OrePrefixes.bucket.mContainerItem = new ItemStack(Items.bucket, 1); + OrePrefixes.cellPlasma.mContainerItem = ItemList.Cell_Empty.get(1L, new Object[0]); + OrePrefixes.cell.mContainerItem = ItemList.Cell_Empty.get(1L, new Object[0]); - ItemList.Food_Baked_Bread.set(new ItemStack(Items.bread, 1, 0)); - ItemList.Food_Raw_Potato.set(new ItemStack(Items.potato, 1, 0)); - ItemList.Food_Baked_Potato.set(new ItemStack(Items.baked_potato, 1, 0)); - ItemList.Food_Poisonous_Potato.set(new ItemStack(Items.poisonous_potato, 1, 0)); + GregTech_API.sFrostHazmatList.add(GT_ModHandler.getIC2Item("hazmatHelmet", 1L, 32767)); + GregTech_API.sFrostHazmatList.add(GT_ModHandler.getIC2Item("hazmatChestplate", 1L, 32767)); + GregTech_API.sFrostHazmatList.add(GT_ModHandler.getIC2Item("hazmatLeggings", 1L, 32767)); + GregTech_API.sFrostHazmatList.add(GT_ModHandler.getIC2Item("hazmatBoots", 1L, 32767)); - OrePrefixes.bottle.mContainerItem = ItemList.Bottle_Empty.get(1L, new Object[0]); - OrePrefixes.bucket.mContainerItem = new ItemStack(Items.bucket, 1); - OrePrefixes.cellPlasma.mContainerItem = ItemList.Cell_Empty.get(1L, new Object[0]); - OrePrefixes.cell.mContainerItem = ItemList.Cell_Empty.get(1L, new Object[0]); + GregTech_API.sHeatHazmatList.add(GT_ModHandler.getIC2Item("hazmatHelmet", 1L, 32767)); + GregTech_API.sHeatHazmatList.add(GT_ModHandler.getIC2Item("hazmatChestplate", 1L, 32767)); + GregTech_API.sHeatHazmatList.add(GT_ModHandler.getIC2Item("hazmatLeggings", 1L, 32767)); + GregTech_API.sHeatHazmatList.add(GT_ModHandler.getIC2Item("hazmatBoots", 1L, 32767)); - GregTech_API.sFrostHazmatList.add(GT_ModHandler.getIC2Item("hazmatHelmet", 1L, 32767)); - GregTech_API.sFrostHazmatList.add(GT_ModHandler.getIC2Item("hazmatChestplate", 1L, 32767)); - GregTech_API.sFrostHazmatList.add(GT_ModHandler.getIC2Item("hazmatLeggings", 1L, 32767)); - GregTech_API.sFrostHazmatList.add(GT_ModHandler.getIC2Item("hazmatBoots", 1L, 32767)); + GregTech_API.sBioHazmatList.add(GT_ModHandler.getIC2Item("hazmatHelmet", 1L, 32767)); + GregTech_API.sBioHazmatList.add(GT_ModHandler.getIC2Item("hazmatChestplate", 1L, 32767)); + GregTech_API.sBioHazmatList.add(GT_ModHandler.getIC2Item("hazmatLeggings", 1L, 32767)); + GregTech_API.sBioHazmatList.add(GT_ModHandler.getIC2Item("hazmatBoots", 1L, 32767)); - GregTech_API.sHeatHazmatList.add(GT_ModHandler.getIC2Item("hazmatHelmet", 1L, 32767)); - GregTech_API.sHeatHazmatList.add(GT_ModHandler.getIC2Item("hazmatChestplate", 1L, 32767)); - GregTech_API.sHeatHazmatList.add(GT_ModHandler.getIC2Item("hazmatLeggings", 1L, 32767)); - GregTech_API.sHeatHazmatList.add(GT_ModHandler.getIC2Item("hazmatBoots", 1L, 32767)); + GregTech_API.sGasHazmatList.add(GT_ModHandler.getIC2Item("hazmatHelmet", 1L, 32767)); + GregTech_API.sGasHazmatList.add(GT_ModHandler.getIC2Item("hazmatChestplate", 1L, 32767)); + GregTech_API.sGasHazmatList.add(GT_ModHandler.getIC2Item("hazmatLeggings", 1L, 32767)); + GregTech_API.sGasHazmatList.add(GT_ModHandler.getIC2Item("hazmatBoots", 1L, 32767)); - GregTech_API.sBioHazmatList.add(GT_ModHandler.getIC2Item("hazmatHelmet", 1L, 32767)); - GregTech_API.sBioHazmatList.add(GT_ModHandler.getIC2Item("hazmatChestplate", 1L, 32767)); - GregTech_API.sBioHazmatList.add(GT_ModHandler.getIC2Item("hazmatLeggings", 1L, 32767)); - GregTech_API.sBioHazmatList.add(GT_ModHandler.getIC2Item("hazmatBoots", 1L, 32767)); + GregTech_API.sRadioHazmatList.add(GT_ModHandler.getIC2Item("hazmatHelmet", 1L, 32767)); + GregTech_API.sRadioHazmatList.add(GT_ModHandler.getIC2Item("hazmatChestplate", 1L, 32767)); + GregTech_API.sRadioHazmatList.add(GT_ModHandler.getIC2Item("hazmatLeggings", 1L, 32767)); + GregTech_API.sRadioHazmatList.add(GT_ModHandler.getIC2Item("hazmatBoots", 1L, 32767)); - GregTech_API.sGasHazmatList.add(GT_ModHandler.getIC2Item("hazmatHelmet", 1L, 32767)); - GregTech_API.sGasHazmatList.add(GT_ModHandler.getIC2Item("hazmatChestplate", 1L, 32767)); - GregTech_API.sGasHazmatList.add(GT_ModHandler.getIC2Item("hazmatLeggings", 1L, 32767)); - GregTech_API.sGasHazmatList.add(GT_ModHandler.getIC2Item("hazmatBoots", 1L, 32767)); + GregTech_API.sElectroHazmatList.add(GT_ModHandler.getIC2Item("hazmatHelmet", 1L, 32767)); + GregTech_API.sElectroHazmatList.add(GT_ModHandler.getIC2Item("hazmatChestplate", 1L, 32767)); + GregTech_API.sElectroHazmatList.add(GT_ModHandler.getIC2Item("hazmatLeggings", 1L, 32767)); + GregTech_API.sElectroHazmatList.add(GT_ModHandler.getIC2Item("hazmatBoots", 1L, 32767)); + GregTech_API.sElectroHazmatList.add(new ItemStack(Items.chainmail_helmet, 1, 32767)); + GregTech_API.sElectroHazmatList.add(new ItemStack(Items.chainmail_chestplate, 1, 32767)); + GregTech_API.sElectroHazmatList.add(new ItemStack(Items.chainmail_leggings, 1, 32767)); + GregTech_API.sElectroHazmatList.add(new ItemStack(Items.chainmail_boots, 1, 32767)); - GregTech_API.sRadioHazmatList.add(GT_ModHandler.getIC2Item("hazmatHelmet", 1L, 32767)); - GregTech_API.sRadioHazmatList.add(GT_ModHandler.getIC2Item("hazmatChestplate", 1L, 32767)); - GregTech_API.sRadioHazmatList.add(GT_ModHandler.getIC2Item("hazmatLeggings", 1L, 32767)); - GregTech_API.sRadioHazmatList.add(GT_ModHandler.getIC2Item("hazmatBoots", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(new ItemStack(Items.bow, 1, 32767)); + GT_ModHandler.sNonReplaceableItems.add(new ItemStack(Items.fishing_rod, 1, 32767)); + GT_ModHandler.sNonReplaceableItems.add(ItemList.IC2_ForgeHammer.getWithDamage(1L, 32767L, new Object[0])); + GT_ModHandler.sNonReplaceableItems.add(ItemList.IC2_WireCutter.getWithDamage(1L, 32767L, new Object[0])); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("painter", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("blackPainter", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("redPainter", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("greenPainter", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("brownPainter", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("bluePainter", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("purplePainter", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("cyanPainter", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("lightGreyPainter", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("darkGreyPainter", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("pinkPainter", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("limePainter", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("yellowPainter", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("cloudPainter", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("magentaPainter", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("orangePainter", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("whitePainter", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("cfPack", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("jetpack", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("treetap", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("weedEx", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("staticBoots", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("compositeArmor", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("hazmatHelmet", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("hazmatChestplate", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("hazmatLeggings", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("hazmatBoots", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Railcraft", "part.turbine.disk", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Railcraft", "part.turbine.blade", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Railcraft", "part.turbine.rotor", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Railcraft", "borehead.diamond", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Railcraft", "borehead.steel", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Railcraft", "borehead.iron", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("TwilightForest", "item.plateNaga", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("TwilightForest", "item.legsNaga", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("TwilightForest", "item.arcticHelm", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("TwilightForest", "item.arcticPlate", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("TwilightForest", "item.arcticLegs", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("TwilightForest", "item.arcticBoots", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("TwilightForest", "item.yetiHelm", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("TwilightForest", "item.yetiPlate", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("TwilightForest", "item.yetiLegs", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("TwilightForest", "item.yetiBoots", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("appliedenergistics2", "item.ToolCertusQuartzCuttingKnife", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("appliedenergistics2", "item.ToolNetherQuartzCuttingKnife", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Forestry", "apiaristHelmet", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Forestry", "apiaristChest", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Forestry", "apiaristLegs", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Forestry", "apiaristBoots", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Forestry", "frameUntreated", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Forestry", "frameImpregnated", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Forestry", "frameProven", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Forestry", "waxCast", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("GalacticraftCore", "item.sensorGlasses", 1L, 32767)); + GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("IC2NuclearControl", "ItemToolThermometer", 1L, 32767)); - GregTech_API.sElectroHazmatList.add(GT_ModHandler.getIC2Item("hazmatHelmet", 1L, 32767)); - GregTech_API.sElectroHazmatList.add(GT_ModHandler.getIC2Item("hazmatChestplate", 1L, 32767)); - GregTech_API.sElectroHazmatList.add(GT_ModHandler.getIC2Item("hazmatLeggings", 1L, 32767)); - GregTech_API.sElectroHazmatList.add(GT_ModHandler.getIC2Item("hazmatBoots", 1L, 32767)); - GregTech_API.sElectroHazmatList.add(new ItemStack(Items.chainmail_helmet, 1, 32767)); - GregTech_API.sElectroHazmatList.add(new ItemStack(Items.chainmail_chestplate, 1, 32767)); - GregTech_API.sElectroHazmatList.add(new ItemStack(Items.chainmail_leggings, 1, 32767)); - GregTech_API.sElectroHazmatList.add(new ItemStack(Items.chainmail_boots, 1, 32767)); + RecipeSorter.register("gregtech:shaped", GT_Shaped_Recipe.class, RecipeSorter.Category.SHAPED, "after:minecraft:shaped before:minecraft:shapeless"); + RecipeSorter.register("gregtech:shapeless", GT_Shapeless_Recipe.class, RecipeSorter.Category.SHAPELESS, "after:minecraft:shapeless"); + } - GT_ModHandler.sNonReplaceableItems.add(new ItemStack(Items.bow, 1, 32767)); - GT_ModHandler.sNonReplaceableItems.add(new ItemStack(Items.fishing_rod, 1, 32767)); - GT_ModHandler.sNonReplaceableItems.add(ItemList.IC2_ForgeHammer.getWithDamage(1L, 32767L, new Object[0])); - GT_ModHandler.sNonReplaceableItems.add(ItemList.IC2_WireCutter.getWithDamage(1L, 32767L, new Object[0])); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("painter", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("blackPainter", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("redPainter", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("greenPainter", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("brownPainter", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("bluePainter", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("purplePainter", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("cyanPainter", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("lightGreyPainter", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("darkGreyPainter", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("pinkPainter", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("limePainter", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("yellowPainter", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("cloudPainter", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("magentaPainter", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("orangePainter", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("whitePainter", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("cfPack", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("jetpack", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("treetap", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("weedEx", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("staticBoots", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("compositeArmor", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("hazmatHelmet", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("hazmatChestplate", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("hazmatLeggings", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getIC2Item("hazmatBoots", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Railcraft", "part.turbine.disk", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Railcraft", "part.turbine.blade", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Railcraft", "part.turbine.rotor", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Railcraft", "borehead.diamond", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Railcraft", "borehead.steel", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Railcraft", "borehead.iron", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("TwilightForest", "item.plateNaga", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("TwilightForest", "item.legsNaga", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("TwilightForest", "item.arcticHelm", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("TwilightForest", "item.arcticPlate", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("TwilightForest", "item.arcticLegs", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("TwilightForest", "item.arcticBoots", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("TwilightForest", "item.yetiHelm", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("TwilightForest", "item.yetiPlate", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("TwilightForest", "item.yetiLegs", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("TwilightForest", "item.yetiBoots", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("appliedenergistics2", "item.ToolCertusQuartzCuttingKnife", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("appliedenergistics2", "item.ToolNetherQuartzCuttingKnife", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Forestry", "apiaristHelmet", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Forestry", "apiaristChest", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Forestry", "apiaristLegs", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Forestry", "apiaristBoots", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Forestry", "frameUntreated", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Forestry", "frameImpregnated", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Forestry", "frameProven", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("Forestry", "waxCast", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("GalacticraftCore", "item.sensorGlasses", 1L, 32767)); - GT_ModHandler.sNonReplaceableItems.add(GT_ModHandler.getModItem("IC2NuclearControl", "ItemToolThermometer", 1L, 32767)); + public void onLoad() { + GT_Log.out.println("GT_Mod: Beginning Load-Phase."); + GT_Log.ore.println("GT_Mod: Beginning Load-Phase."); + GT_OreDictUnificator.registerOre("cropChilipepper", GT_ModHandler.getModItem("magicalcrops", "magicalcrops_CropProduce", 1L, 2)); + GT_OreDictUnificator.registerOre("cropTomato", GT_ModHandler.getModItem("magicalcrops", "magicalcrops_CropProduce", 1L, 8)); + GT_OreDictUnificator.registerOre("cropGrape", GT_ModHandler.getModItem("magicalcrops", "magicalcrops_CropProduce", 1L, 4)); + GT_OreDictUnificator.registerOre("cropTea", GT_ModHandler.getModItem("ganyssurface", "teaLeaves", 1L, 0)); - RecipeSorter.register("gregtech:shaped", GT_Shaped_Recipe.class, RecipeSorter.Category.SHAPED, "after:minecraft:shaped before:minecraft:shapeless"); - RecipeSorter.register("gregtech:shapeless", GT_Shapeless_Recipe.class, RecipeSorter.Category.SHAPELESS, "after:minecraft:shapeless"); - } + GregTech_API.sLoadStarted = true; + for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry.getRegisteredFluidContainerData()) { + if ((tData.filledContainer.getItem() == Items.potionitem) && (tData.filledContainer.getItemDamage() == 0)) { + tData.fluid.amount = 0; + break; + } + } + } - public void onLoad() { - GT_Log.out.println("GT_Mod: Beginning Load-Phase."); - GT_Log.ore.println("GT_Mod: Beginning Load-Phase."); - GT_OreDictUnificator.registerOre("cropChilipepper", GT_ModHandler.getModItem("magicalcrops", "magicalcrops_CropProduce", 1L, 2)); - GT_OreDictUnificator.registerOre("cropTomato", GT_ModHandler.getModItem("magicalcrops", "magicalcrops_CropProduce", 1L, 8)); - GT_OreDictUnificator.registerOre("cropGrape", GT_ModHandler.getModItem("magicalcrops", "magicalcrops_CropProduce", 1L, 4)); - GT_OreDictUnificator.registerOre("cropTea", GT_ModHandler.getModItem("ganyssurface", "teaLeaves", 1L, 0)); + public void onPostLoad() { + GT_Log.out.println("GT_Mod: Beginning PostLoad-Phase."); + GT_Log.ore.println("GT_Mod: Beginning PostLoad-Phase."); + if (GT_Log.pal != null) { + new Thread(new GT_PlayerActivityLogger()).start(); + } + GregTech_API.sPostloadStarted = true; + for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry.getRegisteredFluidContainerData()) { + if ((tData.filledContainer.getItem() == Items.potionitem) && (tData.filledContainer.getItemDamage() == 0)) { + tData.fluid.amount = 0; + break; + } + } + GT_Log.out.println("GT_Mod: Adding Configs specific for MetaTileEntities"); + for (int i = 1; i < GregTech_API.METATILEENTITIES.length; i++) { + try { + for (; i < GregTech_API.METATILEENTITIES.length; i++) { + if (GregTech_API.METATILEENTITIES[i] != null) { + GregTech_API.METATILEENTITIES[i].onConfigLoad(GregTech_API.sMachineFile); + } + } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } + GT_Log.out.println("GT_Mod: Adding Tool Usage Crafting Recipes for OreDict Items."); + long tBits = GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED + | GT_ModHandler.RecipeBits.ONLY_ADD_IF_RESULT_IS_NOT_NULL | GT_ModHandler.RecipeBits.NOT_REMOVABLE; + for (Materials aMaterial : Materials.VALUES) { + if ((aMaterial.mUnificatable) && (aMaterial.mMaterialInto == aMaterial)) { + if (!aMaterial.contains(SubTag.NO_SMASHING)) { + if (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.hammerplating, aMaterial.toString(), true)) { + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), tBits, new Object[]{"h", "X", "X", + Character.valueOf('X'), OrePrefixes.ingot.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), tBits, + new Object[]{"h", "X", Character.valueOf('X'), OrePrefixes.gem.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), tBits, + new Object[]{"H", "X", Character.valueOf('H'), ToolDictNames.craftingToolForgeHammer, Character.valueOf('X'), + OrePrefixes.ingot.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), + tBits, + new Object[]{"H", "X", Character.valueOf('H'), ToolDictNames.craftingToolForgeHammer, Character.valueOf('X'), + OrePrefixes.gem.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), tBits, + new Object[]{"h", "X", Character.valueOf('X'), OrePrefixes.ingotDouble.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 2L), tBits, + new Object[]{"H", "X", Character.valueOf('H'), ToolDictNames.craftingToolForgeHammer, Character.valueOf('X'), + OrePrefixes.ingotDouble.get(aMaterial)}); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.hammermultiingot, aMaterial.toString(), true)) { + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ingotDouble, aMaterial, 1L), tBits, new Object[]{"I", "I", "h", + Character.valueOf('I'), OrePrefixes.ingot.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ingotTriple, aMaterial, 1L), tBits, new Object[]{"I", "B", "h", + Character.valueOf('I'), OrePrefixes.ingotDouble.get(aMaterial), Character.valueOf('B'), OrePrefixes.ingot.get(aMaterial)}); + GT_ModHandler + .addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ingotQuadruple, aMaterial, 1L), tBits, + new Object[]{"I", "B", "h", Character.valueOf('I'), OrePrefixes.ingotTriple.get(aMaterial), Character.valueOf('B'), + OrePrefixes.ingot.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ingotQuintuple, aMaterial, 1L), tBits, + new Object[]{"I", "B", "h", Character.valueOf('I'), OrePrefixes.ingotQuadruple.get(aMaterial), Character.valueOf('B'), + OrePrefixes.ingot.get(aMaterial)}); + } + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, aMaterial, 1L), tBits, new Object[]{"PIh", "P ", + "f ", Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('I'), OrePrefixes.ingot.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHammer, aMaterial, 1L), tBits, new Object[]{"II ", "IIh", + "II ", Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('I'), OrePrefixes.ingot.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, aMaterial, 1L), tBits, new Object[]{"PIh", "f ", + Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('I'), OrePrefixes.ingot.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, aMaterial, 1L), tBits, new Object[]{"PII", "f h", + Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('I'), OrePrefixes.ingot.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPlow, aMaterial, 1L), tBits, new Object[]{"PP", "PP", "hf", + Character.valueOf('P'), OrePrefixes.plate.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSaw, aMaterial, 1L), tBits, new Object[]{"PP ", "fh ", + Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('I'), OrePrefixes.ingot.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSense, aMaterial, 1L), tBits, new Object[]{"PPI", "hf ", + Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('I'), OrePrefixes.ingot.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, aMaterial, 1L), + tBits, + new Object[]{"fPh", Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('I'), + OrePrefixes.ingot.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, aMaterial, 1L), tBits, new Object[]{" P ", "fPh", + Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('I'), OrePrefixes.ingot.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial, 1L), tBits, + new Object[]{"h ", " X", Character.valueOf('X'), OrePrefixes.stick.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L), tBits, + new Object[]{"ShS", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial)}); + } + if (!aMaterial.contains(SubTag.NO_WORKING)) { + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 2L), tBits, + new Object[]{"s", "X", Character.valueOf('X'), OrePrefixes.stickLong.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 1L), tBits, + new Object[]{"f ", " X", Character.valueOf('X'), OrePrefixes.ingot.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 2L), tBits, + new Object[]{"s ", " X", Character.valueOf('X'), OrePrefixes.stick.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.screw, aMaterial, 1L), tBits, + new Object[]{"fX", "X ", Character.valueOf('X'), OrePrefixes.bolt.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.round, aMaterial, 1L), tBits, + new Object[]{"fX", "X ", Character.valueOf('X'), OrePrefixes.nugget.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.rotor, aMaterial, 1L), tBits, new Object[]{"PhP", "SRf", "PdP", + Character.valueOf('P'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) : OrePrefixes.plate.get(aMaterial), + Character.valueOf('R'), OrePrefixes.ring.get(aMaterial), Character.valueOf('S'), OrePrefixes.screw.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L), tBits, + new Object[]{"sf", "G ", Character.valueOf('G'), OrePrefixes.gemFlawless.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 2L), tBits, + new Object[]{"sf", "G ", Character.valueOf('G'), OrePrefixes.gemExquisite.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 1L), tBits, + new Object[]{"Xx", Character.valueOf('X'), OrePrefixes.plate.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireFine, aMaterial, 1L), tBits, + new Object[]{"Xx", Character.valueOf('X'), OrePrefixes.foil.get(aMaterial)}); - GregTech_API.sLoadStarted = true; - for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry.getRegisteredFluidContainerData()) { - if ((tData.filledContainer.getItem() == Items.potionitem) && (tData.filledContainer.getItemDamage() == 0)) { - tData.fluid.amount = 0; - break; - } - } - } + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 1L), tBits, new Object[]{"fPd", "SPS", " P ", + Character.valueOf('P'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) : OrePrefixes.plateDouble.get(aMaterial), + Character.valueOf('R'), OrePrefixes.ring.get(aMaterial), Character.valueOf('S'), OrePrefixes.screw.get(aMaterial)}); - public void onPostLoad() { - GT_Log.out.println("GT_Mod: Beginning PostLoad-Phase."); - GT_Log.ore.println("GT_Mod: Beginning PostLoad-Phase."); - if (GT_Log.pal != null) { - new Thread(new GT_PlayerActivityLogger()).start(); - } - GregTech_API.sPostloadStarted = true; - for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry.getRegisteredFluidContainerData()) { - if ((tData.filledContainer.getItem() == Items.potionitem) && (tData.filledContainer.getItemDamage() == 0)) { - tData.fluid.amount = 0; - break; - } - } - GT_Log.out.println("GT_Mod: Adding Configs specific for MetaTileEntities"); - for (int i = 1; i < GregTech_API.METATILEENTITIES.length; i++) { - try { - for (; i < GregTech_API.METATILEENTITIES.length; i++) { - if (GregTech_API.METATILEENTITIES[i] != null) { - GregTech_API.METATILEENTITIES[i].onConfigLoad(GregTech_API.sMachineFile); - } - } - } catch (Throwable e) { - e.printStackTrace(GT_Log.err); - } - } - GT_Log.out.println("GT_Mod: Adding Tool Usage Crafting Recipes for OreDict Items."); - long tBits = GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED - | GT_ModHandler.RecipeBits.ONLY_ADD_IF_RESULT_IS_NOT_NULL | GT_ModHandler.RecipeBits.NOT_REMOVABLE; - for (Materials aMaterial : Materials.VALUES) { - if ((aMaterial.mUnificatable) && (aMaterial.mMaterialInto == aMaterial)) { - if (!aMaterial.contains(SubTag.NO_SMASHING)) { - if (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.hammerplating, aMaterial.toString(), true)) { - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), tBits, new Object[] { "h", "X", "X", - Character.valueOf('X'), OrePrefixes.ingot.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), tBits, - new Object[] { "h", "X", Character.valueOf('X'), OrePrefixes.gem.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), tBits, - new Object[] { "H", "X", Character.valueOf('H'), ToolDictNames.craftingToolForgeHammer, Character.valueOf('X'), - OrePrefixes.ingot.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe( - GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), - tBits, - new Object[] { "H", "X", Character.valueOf('H'), ToolDictNames.craftingToolForgeHammer, Character.valueOf('X'), - OrePrefixes.gem.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), tBits, - new Object[] { "h", "X", Character.valueOf('X'), OrePrefixes.ingotDouble.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 2L), tBits, - new Object[] { "H", "X", Character.valueOf('H'), ToolDictNames.craftingToolForgeHammer, Character.valueOf('X'), - OrePrefixes.ingotDouble.get(aMaterial) }); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.hammermultiingot, aMaterial.toString(), true)) { - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ingotDouble, aMaterial, 1L), tBits, new Object[] { "I", "I", "h", - Character.valueOf('I'), OrePrefixes.ingot.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ingotTriple, aMaterial, 1L), tBits, new Object[] { "I", "B", "h", - Character.valueOf('I'), OrePrefixes.ingotDouble.get(aMaterial), Character.valueOf('B'), OrePrefixes.ingot.get(aMaterial) }); - GT_ModHandler - .addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ingotQuadruple, aMaterial, 1L), tBits, - new Object[] { "I", "B", "h", Character.valueOf('I'), OrePrefixes.ingotTriple.get(aMaterial), Character.valueOf('B'), - OrePrefixes.ingot.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ingotQuintuple, aMaterial, 1L), tBits, - new Object[] { "I", "B", "h", Character.valueOf('I'), OrePrefixes.ingotQuadruple.get(aMaterial), Character.valueOf('B'), - OrePrefixes.ingot.get(aMaterial) }); - } - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, aMaterial, 1L), tBits, new Object[] { "PIh", "P ", - "f ", Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('I'), OrePrefixes.ingot.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHammer, aMaterial, 1L), tBits, new Object[] { "II ", "IIh", - "II ", Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('I'), OrePrefixes.ingot.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, aMaterial, 1L), tBits, new Object[] { "PIh", "f ", - Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('I'), OrePrefixes.ingot.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, aMaterial, 1L), tBits, new Object[] { "PII", "f h", - Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('I'), OrePrefixes.ingot.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPlow, aMaterial, 1L), tBits, new Object[] { "PP", "PP", "hf", - Character.valueOf('P'), OrePrefixes.plate.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSaw, aMaterial, 1L), tBits, new Object[] { "PP ", "fh ", - Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('I'), OrePrefixes.ingot.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSense, aMaterial, 1L), tBits, new Object[] { "PPI", "hf ", - Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('I'), OrePrefixes.ingot.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe( - GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, aMaterial, 1L), - tBits, - new Object[] { "fPh", Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('I'), - OrePrefixes.ingot.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, aMaterial, 1L), tBits, new Object[] { " P ", "fPh", - Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('I'), OrePrefixes.ingot.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial, 1L), tBits, - new Object[] { "h ", " X", Character.valueOf('X'), OrePrefixes.stick.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L), tBits, - new Object[] { "ShS", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial) }); - } - if (!aMaterial.contains(SubTag.NO_WORKING)) { - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 2L), tBits, - new Object[] { "s", "X", Character.valueOf('X'), OrePrefixes.stickLong.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 1L), tBits, - new Object[] { "f ", " X", Character.valueOf('X'), OrePrefixes.ingot.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 2L), tBits, - new Object[] { "s ", " X", Character.valueOf('X'), OrePrefixes.stick.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.screw, aMaterial, 1L), tBits, - new Object[] { "fX", "X ", Character.valueOf('X'), OrePrefixes.bolt.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.round, aMaterial, 1L), tBits, - new Object[] { "fX", "X ", Character.valueOf('X'), OrePrefixes.nugget.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.rotor, aMaterial, 1L), tBits, new Object[] { "PhP", "SRf", "PdP", - Character.valueOf('P'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) : OrePrefixes.plate.get(aMaterial), - Character.valueOf('R'), OrePrefixes.ring.get(aMaterial), Character.valueOf('S'), OrePrefixes.screw.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L), tBits, - new Object[] { "sf", "G ", Character.valueOf('G'), OrePrefixes.gemFlawless.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 2L), tBits, - new Object[] { "sf", "G ", Character.valueOf('G'), OrePrefixes.gemExquisite.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 1L), tBits, - new Object[] { "Xx", Character.valueOf('X'), OrePrefixes.plate.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireFine, aMaterial, 1L), tBits, - new Object[] { "Xx", Character.valueOf('X'), OrePrefixes.foil.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 1L), tBits, new Object[] { "fPd", "SPS", " P ", - Character.valueOf('P'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) : OrePrefixes.plateDouble.get(aMaterial), - Character.valueOf('R'), OrePrefixes.ring.get(aMaterial), Character.valueOf('S'), OrePrefixes.screw.get(aMaterial) }); - - - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.arrowGtWood, aMaterial, 1L), tBits, new Object[] { " A", " S ", - "F ", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('F'), OreDictNames.craftingFeather, - Character.valueOf('A'), OrePrefixes.toolHeadArrow.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.arrowGtPlastic, aMaterial, 1L), tBits, new Object[] { " A", " S ", - "F ", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Plastic), Character.valueOf('F'), OreDictNames.craftingFeather, - Character.valueOf('A'), OrePrefixes.toolHeadArrow.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadArrow, aMaterial, 1L), tBits, - new Object[] { "Xf", Character.valueOf('X'), OrePrefixes.gemChipped.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadArrow, aMaterial, 3L), tBits, - new Object[] { (aMaterial.contains(SubTag.WOOD) ? 115 : 'x') + "Pf", Character.valueOf('P'), OrePrefixes.plate.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, aMaterial, 1L), tBits, new Object[] { "GG ", "G ", - "f ", Character.valueOf('G'), OrePrefixes.gem.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, aMaterial, 1L), tBits, new Object[] { "GG ", "f ", - " ", Character.valueOf('G'), OrePrefixes.gem.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, aMaterial, 1L), tBits, new Object[] { "GGG", "f ", - Character.valueOf('G'), OrePrefixes.gem.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPlow, aMaterial, 1L), tBits, new Object[] { "GG", "GG", " f", - Character.valueOf('G'), OrePrefixes.gem.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSaw, aMaterial, 1L), tBits, - new Object[] { "GGf", Character.valueOf('G'), OrePrefixes.gem.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSense, aMaterial, 1L), tBits, new Object[] { "GGG", " f ", - " ", Character.valueOf('G'), OrePrefixes.gem.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, aMaterial, 1L), tBits, - new Object[] { "fG", Character.valueOf('G'), OrePrefixes.gem.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, aMaterial, 1L), tBits, new Object[] { " G", "fG", - Character.valueOf('G'), OrePrefixes.gem.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadUniversalSpade, aMaterial, 1L), tBits, new Object[] { "fX", - Character.valueOf('X'), OrePrefixes.toolHeadShovel.get(aMaterial) }); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.arrowGtWood, aMaterial, 1L), tBits, new Object[]{" A", " S ", + "F ", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('F'), OreDictNames.craftingFeather, + Character.valueOf('A'), OrePrefixes.toolHeadArrow.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.arrowGtPlastic, aMaterial, 1L), tBits, new Object[]{" A", " S ", + "F ", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Plastic), Character.valueOf('F'), OreDictNames.craftingFeather, + Character.valueOf('A'), OrePrefixes.toolHeadArrow.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadArrow, aMaterial, 1L), tBits, + new Object[]{"Xf", Character.valueOf('X'), OrePrefixes.gemChipped.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadArrow, aMaterial, 3L), tBits, + new Object[]{(aMaterial.contains(SubTag.WOOD) ? 115 : 'x') + "Pf", Character.valueOf('P'), OrePrefixes.plate.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, aMaterial, 1L), tBits, new Object[]{"GG ", "G ", + "f ", Character.valueOf('G'), OrePrefixes.gem.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, aMaterial, 1L), tBits, new Object[]{"GG ", "f ", + " ", Character.valueOf('G'), OrePrefixes.gem.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, aMaterial, 1L), tBits, new Object[]{"GGG", "f ", + Character.valueOf('G'), OrePrefixes.gem.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPlow, aMaterial, 1L), tBits, new Object[]{"GG", "GG", " f", + Character.valueOf('G'), OrePrefixes.gem.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSaw, aMaterial, 1L), tBits, + new Object[]{"GGf", Character.valueOf('G'), OrePrefixes.gem.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSense, aMaterial, 1L), tBits, new Object[]{"GGG", " f ", + " ", Character.valueOf('G'), OrePrefixes.gem.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, aMaterial, 1L), tBits, + new Object[]{"fG", Character.valueOf('G'), OrePrefixes.gem.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, aMaterial, 1L), tBits, new Object[]{" G", "fG", + Character.valueOf('G'), OrePrefixes.gem.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadUniversalSpade, aMaterial, 1L), tBits, new Object[]{"fX", + Character.valueOf('X'), OrePrefixes.toolHeadShovel.get(aMaterial)}); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadBuzzSaw, aMaterial, 1L), tBits, new Object[] { "wXh", "X X", - "fXx", Character.valueOf('X'), OrePrefixes.plate.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadWrench, aMaterial, 1L), tBits, new Object[] { "hXW", "XRX", - "WXd", Character.valueOf('X'), OrePrefixes.plate.get(aMaterial), Character.valueOf('S'), OrePrefixes.plate.get(Materials.Steel), - Character.valueOf('R'), OrePrefixes.ring.get(Materials.Steel), Character.valueOf('W'), OrePrefixes.screw.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadChainsaw, aMaterial, 1L), tBits, new Object[] { "SRS", "XhX", - "SRS", Character.valueOf('X'), OrePrefixes.plate.get(aMaterial), Character.valueOf('S'), OrePrefixes.plate.get(Materials.Steel), - Character.valueOf('R'), OrePrefixes.ring.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadDrill, aMaterial, 1L), tBits, new Object[] { "XSX", "XSX", - "ShS", Character.valueOf('X'), OrePrefixes.plate.get(aMaterial), Character.valueOf('S'), OrePrefixes.plate.get(Materials.Steel) }); - switch (aMaterial) { - case Wood: - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, aMaterial, 1L), tBits, new Object[] { "P ", " s", - Character.valueOf('P'), OrePrefixes.plank.get(aMaterial) }); - break; - case Stone: - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, aMaterial, 1L), tBits, new Object[] { "P ", " f", - Character.valueOf('P'), OrePrefixes.stoneSmooth }); - break; - default: - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, aMaterial, 1L), tBits, - new Object[] { "P ", aMaterial.contains(SubTag.WOOD) ? " s" : " h", Character.valueOf('P'), OrePrefixes.plate.get(aMaterial) }); - } - switch (aMaterial) { - case Wood: - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial, 1L), tBits, new Object[] { "SPS", "PsP", "SPS", - Character.valueOf('P'), OrePrefixes.plank.get(aMaterial), Character.valueOf('S'), OrePrefixes.stick.get(aMaterial) }); - break; - case Stone: - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial, 1L), tBits, new Object[] { "SPS", "PfP", "SPS", - Character.valueOf('P'), OrePrefixes.stoneSmooth, Character.valueOf('S'), new ItemStack(Blocks.stone_button, 1, 32767) }); - break; - default: - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial, 1L), tBits, new Object[] { "SPS", "PwP", "SPS", - Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('S'), OrePrefixes.stick.get(aMaterial) }); - } - } - if (aMaterial.contains(SubTag.SMELTING_TO_GEM)) { - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L), tBits, new Object[] { "XXX", "XXX", "XXX", - Character.valueOf('X'), OrePrefixes.nugget.get(aMaterial) }); - } else { - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L), tBits, new Object[] { "XXX", "XXX", "XXX", - Character.valueOf('X'), OrePrefixes.nugget.get(aMaterial) }); - } - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), tBits, new Object[] { "h", "X", - Character.valueOf('X'), OrePrefixes.crushedCentrifuged.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), tBits, new Object[] { "h", "X", - Character.valueOf('X'), OrePrefixes.crystalline.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), tBits, new Object[] { "h", "X", - Character.valueOf('X'), OrePrefixes.crystal.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustPure, aMaterial.mMacerateInto, 1L), tBits, new Object[] { "h", "X", - Character.valueOf('X'), OrePrefixes.crushedPurified.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustPure, aMaterial.mMacerateInto, 1L), tBits, new Object[] { "h", "X", - Character.valueOf('X'), OrePrefixes.cleanGravel.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustPure, aMaterial.mMacerateInto, 1L), tBits, new Object[] { "h", "X", - Character.valueOf('X'), OrePrefixes.reduced.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial.mMacerateInto, 1L), tBits, new Object[] { "h", "X", - Character.valueOf('X'), OrePrefixes.clump.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial.mMacerateInto, 1L), tBits, new Object[] { "h", "X", - Character.valueOf('X'), OrePrefixes.shard.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial.mMacerateInto, 1L), tBits, new Object[] { "h", "X", - Character.valueOf('X'), OrePrefixes.crushed.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial.mMacerateInto, 1L), tBits, new Object[] { "h", "X", - Character.valueOf('X'), OrePrefixes.dirtyGravel.get(aMaterial) }); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadBuzzSaw, aMaterial, 1L), tBits, new Object[]{"wXh", "X X", + "fXx", Character.valueOf('X'), OrePrefixes.plate.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadWrench, aMaterial, 1L), tBits, new Object[]{"hXW", "XRX", + "WXd", Character.valueOf('X'), OrePrefixes.plate.get(aMaterial), Character.valueOf('S'), OrePrefixes.plate.get(Materials.Steel), + Character.valueOf('R'), OrePrefixes.ring.get(Materials.Steel), Character.valueOf('W'), OrePrefixes.screw.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadChainsaw, aMaterial, 1L), tBits, new Object[]{"SRS", "XhX", + "SRS", Character.valueOf('X'), OrePrefixes.plate.get(aMaterial), Character.valueOf('S'), OrePrefixes.plate.get(Materials.Steel), + Character.valueOf('R'), OrePrefixes.ring.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadDrill, aMaterial, 1L), tBits, new Object[]{"XSX", "XSX", + "ShS", Character.valueOf('X'), OrePrefixes.plate.get(aMaterial), Character.valueOf('S'), OrePrefixes.plate.get(Materials.Steel)}); + switch (aMaterial) { + case Wood: + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, aMaterial, 1L), tBits, new Object[]{"P ", " s", + Character.valueOf('P'), OrePrefixes.plank.get(aMaterial)}); + break; + case Stone: + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, aMaterial, 1L), tBits, new Object[]{"P ", " f", + Character.valueOf('P'), OrePrefixes.stoneSmooth}); + break; + default: + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, aMaterial, 1L), tBits, + new Object[]{"P ", aMaterial.contains(SubTag.WOOD) ? " s" : " h", Character.valueOf('P'), OrePrefixes.plate.get(aMaterial)}); + } + switch (aMaterial) { + case Wood: + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial, 1L), tBits, new Object[]{"SPS", "PsP", "SPS", + Character.valueOf('P'), OrePrefixes.plank.get(aMaterial), Character.valueOf('S'), OrePrefixes.stick.get(aMaterial)}); + break; + case Stone: + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial, 1L), tBits, new Object[]{"SPS", "PfP", "SPS", + Character.valueOf('P'), OrePrefixes.stoneSmooth, Character.valueOf('S'), new ItemStack(Blocks.stone_button, 1, 32767)}); + break; + default: + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial, 1L), tBits, new Object[]{"SPS", "PwP", "SPS", + Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('S'), OrePrefixes.stick.get(aMaterial)}); + } + } + if (aMaterial.contains(SubTag.SMELTING_TO_GEM)) { + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L), tBits, new Object[]{"XXX", "XXX", "XXX", + Character.valueOf('X'), OrePrefixes.nugget.get(aMaterial)}); + } else { + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L), tBits, new Object[]{"XXX", "XXX", "XXX", + Character.valueOf('X'), OrePrefixes.nugget.get(aMaterial)}); + } + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), tBits, new Object[]{"h", "X", + Character.valueOf('X'), OrePrefixes.crushedCentrifuged.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), tBits, new Object[]{"h", "X", + Character.valueOf('X'), OrePrefixes.crystalline.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), tBits, new Object[]{"h", "X", + Character.valueOf('X'), OrePrefixes.crystal.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustPure, aMaterial.mMacerateInto, 1L), tBits, new Object[]{"h", "X", + Character.valueOf('X'), OrePrefixes.crushedPurified.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustPure, aMaterial.mMacerateInto, 1L), tBits, new Object[]{"h", "X", + Character.valueOf('X'), OrePrefixes.cleanGravel.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustPure, aMaterial.mMacerateInto, 1L), tBits, new Object[]{"h", "X", + Character.valueOf('X'), OrePrefixes.reduced.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial.mMacerateInto, 1L), tBits, new Object[]{"h", "X", + Character.valueOf('X'), OrePrefixes.clump.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial.mMacerateInto, 1L), tBits, new Object[]{"h", "X", + Character.valueOf('X'), OrePrefixes.shard.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial.mMacerateInto, 1L), tBits, new Object[]{"h", "X", + Character.valueOf('X'), OrePrefixes.crushed.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial.mMacerateInto, 1L), tBits, new Object[]{"h", "X", + Character.valueOf('X'), OrePrefixes.dirtyGravel.get(aMaterial)}); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 4L), tBits, - new Object[] { " X", " ", Character.valueOf('X'), OrePrefixes.dust.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 9L), tBits, - new Object[] { "X ", " ", Character.valueOf('X'), OrePrefixes.dust.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), tBits, - new Object[] { "XX", "XX", Character.valueOf('X'), OrePrefixes.dustSmall.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), tBits, - new Object[] { "XXX", "XXX", "XXX", Character.valueOf('X'), OrePrefixes.dustTiny.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 16L), tBits, new Object[] { "Xc", Character.valueOf('X'), - OrePrefixes.crateGtDust.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 16L), tBits, new Object[] { "Xc", Character.valueOf('X'), - OrePrefixes.crateGtGem.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 16L), tBits, new Object[] { "Xc", - Character.valueOf('X'), OrePrefixes.crateGtIngot.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 16L), tBits, new Object[] { "Xc", - Character.valueOf('X'), OrePrefixes.crateGtPlate.get(aMaterial) }); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 4L), tBits, + new Object[]{" X", " ", Character.valueOf('X'), OrePrefixes.dust.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 9L), tBits, + new Object[]{"X ", " ", Character.valueOf('X'), OrePrefixes.dust.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), tBits, + new Object[]{"XX", "XX", Character.valueOf('X'), OrePrefixes.dustSmall.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), tBits, + new Object[]{"XXX", "XXX", "XXX", Character.valueOf('X'), OrePrefixes.dustTiny.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 16L), tBits, new Object[]{"Xc", Character.valueOf('X'), + OrePrefixes.crateGtDust.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 16L), tBits, new Object[]{"Xc", Character.valueOf('X'), + OrePrefixes.crateGtGem.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 16L), tBits, new Object[]{"Xc", + Character.valueOf('X'), OrePrefixes.crateGtIngot.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 16L), tBits, new Object[]{"Xc", + Character.valueOf('X'), OrePrefixes.crateGtPlate.get(aMaterial)}); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, 2L), tBits, - new Object[] { "h", "X", Character.valueOf('X'), OrePrefixes.gemFlawed.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 2L), tBits, - new Object[] { "h", "X", Character.valueOf('X'), OrePrefixes.gem.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 2L), tBits, - new Object[] { "h", "X", Character.valueOf('X'), OrePrefixes.gemFlawless.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 2L), tBits, - new Object[] { "h", "X", Character.valueOf('X'), OrePrefixes.gemExquisite.get(aMaterial) }); - if ((aMaterial.contains(SubTag.MORTAR_GRINDABLE)) && (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.mortar, aMaterial.name(), true))) { - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L), tBits, - new Object[] { "X", "m", Character.valueOf('X'), OrePrefixes.gemChipped.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 2L), tBits, - new Object[] { "X", "m", Character.valueOf('X'), OrePrefixes.gemFlawed.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), tBits, - new Object[] { "X", "m", Character.valueOf('X'), OrePrefixes.gem.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 2L), tBits, - new Object[] { "X", "m", Character.valueOf('X'), OrePrefixes.gemFlawless.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 4L), tBits, - new Object[] { "X", "m", Character.valueOf('X'), OrePrefixes.gemExquisite.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), tBits, - new Object[] { "X", "m", Character.valueOf('X'), OrePrefixes.ingot.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), tBits, - new Object[] { "X", "m", Character.valueOf('X'), OrePrefixes.plate.get(aMaterial) }); - } - } - } - } + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, 2L), tBits, + new Object[]{"h", "X", Character.valueOf('X'), OrePrefixes.gemFlawed.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 2L), tBits, + new Object[]{"h", "X", Character.valueOf('X'), OrePrefixes.gem.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 2L), tBits, + new Object[]{"h", "X", Character.valueOf('X'), OrePrefixes.gemFlawless.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 2L), tBits, + new Object[]{"h", "X", Character.valueOf('X'), OrePrefixes.gemExquisite.get(aMaterial)}); + if ((aMaterial.contains(SubTag.MORTAR_GRINDABLE)) && (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.mortar, aMaterial.name(), true))) { + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L), tBits, + new Object[]{"X", "m", Character.valueOf('X'), OrePrefixes.gemChipped.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 2L), tBits, + new Object[]{"X", "m", Character.valueOf('X'), OrePrefixes.gemFlawed.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), tBits, + new Object[]{"X", "m", Character.valueOf('X'), OrePrefixes.gem.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 2L), tBits, + new Object[]{"X", "m", Character.valueOf('X'), OrePrefixes.gemFlawless.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 4L), tBits, + new Object[]{"X", "m", Character.valueOf('X'), OrePrefixes.gemExquisite.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), tBits, + new Object[]{"X", "m", Character.valueOf('X'), OrePrefixes.ingot.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), tBits, + new Object[]{"X", "m", Character.valueOf('X'), OrePrefixes.plate.get(aMaterial)}); + } + } + } + } - public void onServerStarting() { - GT_Log.out.println("GT_Mod: ServerStarting-Phase started!"); - GT_Log.ore.println("GT_Mod: ServerStarting-Phase started!"); + public void onServerStarting() { + GT_Log.out.println("GT_Mod: ServerStarting-Phase started!"); + GT_Log.ore.println("GT_Mod: ServerStarting-Phase started!"); - this.mUniverse = null; - this.isFirstServerWorldTick = true; - for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry.getRegisteredFluidContainerData()) { - if ((tData.filledContainer.getItem() == Items.potionitem) && (tData.filledContainer.getItemDamage() == 0)) { - tData.fluid.amount = 0; - break; - } - } - for (int i = 1; i < GregTech_API.METATILEENTITIES.length; i++) { - try { - for (; i < GregTech_API.METATILEENTITIES.length; i++) { - if (GregTech_API.METATILEENTITIES[i] != null) { - GregTech_API.METATILEENTITIES[i].onServerStart(); - } - } - } catch (Throwable e) { - e.printStackTrace(GT_Log.err); - } - } - } + this.mUniverse = null; + this.isFirstServerWorldTick = true; + for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry.getRegisteredFluidContainerData()) { + if ((tData.filledContainer.getItem() == Items.potionitem) && (tData.filledContainer.getItemDamage() == 0)) { + tData.fluid.amount = 0; + break; + } + } + for (int i = 1; i < GregTech_API.METATILEENTITIES.length; i++) { + try { + for (; i < GregTech_API.METATILEENTITIES.length; i++) { + if (GregTech_API.METATILEENTITIES[i] != null) { + GregTech_API.METATILEENTITIES[i].onServerStart(); + } + } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } + } - public void onServerStarted() { - GregTech_API.sWirelessRedstone.clear(); - GT_FluidStack.fixAllThoseFuckingFluidIDs(); + public void onServerStarted() { + GregTech_API.sWirelessRedstone.clear(); + GT_FluidStack.fixAllThoseFuckingFluidIDs(); - GT_Log.out.println("GT_Mod: Cleaning up all OreDict Crafting Recipes, which have an empty List in them, since they are never meeting any Condition."); - List tList = CraftingManager.getInstance().getRecipeList(); - for (int i = 0; i < tList.size(); i++) { - if ((tList.get(i) instanceof ShapedOreRecipe)) { - for (Object tObject : ((ShapedOreRecipe) tList.get(i)).getInput()) { - if (((tObject instanceof List)) && (((List) tObject).isEmpty())) { - tList.remove(i--); - break; - } - } - } else if ((tList.get(i) instanceof ShapelessOreRecipe)) { - for (Object tObject : ((ShapelessOreRecipe) tList.get(i)).getInput()) { - if (((tObject instanceof List)) && (((List) tObject).isEmpty())) { - tList.remove(i--); - break; - } - } - } - } - } + GT_Log.out.println("GT_Mod: Cleaning up all OreDict Crafting Recipes, which have an empty List in them, since they are never meeting any Condition."); + List tList = CraftingManager.getInstance().getRecipeList(); + for (int i = 0; i < tList.size(); i++) { + if ((tList.get(i) instanceof ShapedOreRecipe)) { + for (Object tObject : ((ShapedOreRecipe) tList.get(i)).getInput()) { + if (((tObject instanceof List)) && (((List) tObject).isEmpty())) { + tList.remove(i--); + break; + } + } + } else if ((tList.get(i) instanceof ShapelessOreRecipe)) { + for (Object tObject : ((ShapelessOreRecipe) tList.get(i)).getInput()) { + if (((tObject instanceof List)) && (((List) tObject).isEmpty())) { + tList.remove(i--); + break; + } + } + } + } + } - public void onServerStopping() { - File tSaveDirectory = getSaveDirectory(); - GregTech_API.sWirelessRedstone.clear(); - if (tSaveDirectory != null) { - for (int i = 1; i < GregTech_API.METATILEENTITIES.length; i++) { - try { - for (; i < GregTech_API.METATILEENTITIES.length; i++) { - if (GregTech_API.METATILEENTITIES[i] != null) { - GregTech_API.METATILEENTITIES[i].onWorldSave(tSaveDirectory); - } - } - } catch (Throwable e) { - e.printStackTrace(GT_Log.err); - } - } - } - this.mUniverse = null; - } + public void onServerStopping() { + File tSaveDirectory = getSaveDirectory(); + GregTech_API.sWirelessRedstone.clear(); + if (tSaveDirectory != null) { + for (int i = 1; i < GregTech_API.METATILEENTITIES.length; i++) { + try { + for (; i < GregTech_API.METATILEENTITIES.length; i++) { + if (GregTech_API.METATILEENTITIES[i] != null) { + GregTech_API.METATILEENTITIES[i].onWorldSave(tSaveDirectory); + } + } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } + } + this.mUniverse = null; + } - @SubscribeEvent - public void onClientConnectedToServerEvent(FMLNetworkEvent.ClientConnectedToServerEvent aEvent) { - } + @SubscribeEvent + public void onClientConnectedToServerEvent(FMLNetworkEvent.ClientConnectedToServerEvent aEvent) { + } - @SubscribeEvent - public void onArrowNockEvent(ArrowNockEvent aEvent) { - if ((!aEvent.isCanceled()) && (GT_Utility.isStackValid(aEvent.result)) - && (GT_Utility.getProjectile(SubTag.PROJECTILE_ARROW, aEvent.entityPlayer.inventory) != null)) { - aEvent.entityPlayer.setItemInUse(aEvent.result, aEvent.result.getItem().getMaxItemUseDuration(aEvent.result)); - aEvent.setCanceled(true); - } - } + @SubscribeEvent + public void onArrowNockEvent(ArrowNockEvent aEvent) { + if ((!aEvent.isCanceled()) && (GT_Utility.isStackValid(aEvent.result)) + && (GT_Utility.getProjectile(SubTag.PROJECTILE_ARROW, aEvent.entityPlayer.inventory) != null)) { + aEvent.entityPlayer.setItemInUse(aEvent.result, aEvent.result.getItem().getMaxItemUseDuration(aEvent.result)); + aEvent.setCanceled(true); + } + } - @SubscribeEvent - public void onArrowLooseEvent(ArrowLooseEvent aEvent) { - ItemStack aArrow = GT_Utility.getProjectile(SubTag.PROJECTILE_ARROW, aEvent.entityPlayer.inventory); - if ((!aEvent.isCanceled()) && (GT_Utility.isStackValid(aEvent.bow)) && (aArrow != null) && ((aEvent.bow.getItem() instanceof ItemBow))) { - float tSpeed = aEvent.charge / 20.0F; - tSpeed = (tSpeed * tSpeed + tSpeed * 2.0F) / 3.0F; - if (tSpeed < 0.1D) { - return; - } - if (tSpeed > 1.0D) { - tSpeed = 1.0F; - } - EntityArrow tArrowEntity = ((IProjectileItem) aArrow.getItem()).getProjectile(SubTag.PROJECTILE_ARROW, aArrow, aEvent.entityPlayer.worldObj, - aEvent.entityPlayer, tSpeed * 2.0F); - if (tSpeed >= 1.0F) { - tArrowEntity.setIsCritical(true); - } - int tLevel = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, aEvent.bow); - if (tLevel > 0) { - tArrowEntity.setDamage(tArrowEntity.getDamage() + tLevel * 0.5D + 0.5D); - } - tLevel = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, aEvent.bow); - if (tLevel > 0) { - tArrowEntity.setKnockbackStrength(tLevel); - } - tLevel = EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, aEvent.bow); - if (tLevel > 0) { - tArrowEntity.setFire(tLevel * 100); - } - aEvent.bow.damageItem(1, aEvent.entityPlayer); - aEvent.bow.getItem(); - aEvent.entityPlayer.worldObj.playSoundAtEntity(aEvent.entityPlayer, "random.bow", 1.0F, 1.0F / (new Random().nextFloat() * 0.4F + 1.2F) + tSpeed - * 0.5F); + @SubscribeEvent + public void onArrowLooseEvent(ArrowLooseEvent aEvent) { + ItemStack aArrow = GT_Utility.getProjectile(SubTag.PROJECTILE_ARROW, aEvent.entityPlayer.inventory); + if ((!aEvent.isCanceled()) && (GT_Utility.isStackValid(aEvent.bow)) && (aArrow != null) && ((aEvent.bow.getItem() instanceof ItemBow))) { + float tSpeed = aEvent.charge / 20.0F; + tSpeed = (tSpeed * tSpeed + tSpeed * 2.0F) / 3.0F; + if (tSpeed < 0.1D) { + return; + } + if (tSpeed > 1.0D) { + tSpeed = 1.0F; + } + EntityArrow tArrowEntity = ((IProjectileItem) aArrow.getItem()).getProjectile(SubTag.PROJECTILE_ARROW, aArrow, aEvent.entityPlayer.worldObj, + aEvent.entityPlayer, tSpeed * 2.0F); + if (tSpeed >= 1.0F) { + tArrowEntity.setIsCritical(true); + } + int tLevel = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, aEvent.bow); + if (tLevel > 0) { + tArrowEntity.setDamage(tArrowEntity.getDamage() + tLevel * 0.5D + 0.5D); + } + tLevel = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, aEvent.bow); + if (tLevel > 0) { + tArrowEntity.setKnockbackStrength(tLevel); + } + tLevel = EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, aEvent.bow); + if (tLevel > 0) { + tArrowEntity.setFire(tLevel * 100); + } + aEvent.bow.damageItem(1, aEvent.entityPlayer); + aEvent.bow.getItem(); + aEvent.entityPlayer.worldObj.playSoundAtEntity(aEvent.entityPlayer, "random.bow", 1.0F, 1.0F / (new Random().nextFloat() * 0.4F + 1.2F) + tSpeed + * 0.5F); - tArrowEntity.canBePickedUp = 1; - if (!aEvent.entityPlayer.capabilities.isCreativeMode) { - aArrow.stackSize -= 1; - } - if (aArrow.stackSize == 0) { - GT_Utility.removeNullStacksFromInventory(aEvent.entityPlayer.inventory); - } - if (!aEvent.entityPlayer.worldObj.isRemote) { - aEvent.entityPlayer.worldObj.spawnEntityInWorld(tArrowEntity); - } - aEvent.setCanceled(true); - } - } + tArrowEntity.canBePickedUp = 1; + if (!aEvent.entityPlayer.capabilities.isCreativeMode) { + aArrow.stackSize -= 1; + } + if (aArrow.stackSize == 0) { + GT_Utility.removeNullStacksFromInventory(aEvent.entityPlayer.inventory); + } + if (!aEvent.entityPlayer.worldObj.isRemote) { + aEvent.entityPlayer.worldObj.spawnEntityInWorld(tArrowEntity); + } + aEvent.setCanceled(true); + } + } - @SubscribeEvent - public void onEndermanTeleportEvent(EnderTeleportEvent aEvent) { - if (((aEvent.entityLiving instanceof EntityEnderman)) && (aEvent.entityLiving.getActivePotionEffect(Potion.weakness) != null)) { - aEvent.setCanceled(true); - } - } + @SubscribeEvent + public void onEndermanTeleportEvent(EnderTeleportEvent aEvent) { + if (((aEvent.entityLiving instanceof EntityEnderman)) && (aEvent.entityLiving.getActivePotionEffect(Potion.weakness) != null)) { + aEvent.setCanceled(true); + } + } - @SubscribeEvent - public void onEntitySpawningEvent(EntityJoinWorldEvent aEvent) { - if ((aEvent.entity != null) && (!aEvent.entity.worldObj.isRemote)) { - if ((aEvent.entity instanceof EntityItem)) { - ((EntityItem) aEvent.entity).setEntityItemStack(GT_OreDictUnificator.get(((EntityItem) aEvent.entity).getEntityItem())); - } - if ((this.mSkeletonsShootGTArrows > 0) && (aEvent.entity.getClass() == EntityArrow.class) - && (aEvent.entity.worldObj.rand.nextInt(this.mSkeletonsShootGTArrows) == 0) - && ((((EntityArrow) aEvent.entity).shootingEntity instanceof EntitySkeleton))) { - aEvent.entity.worldObj.spawnEntityInWorld(new GT_Entity_Arrow((EntityArrow) aEvent.entity, (ItemStack) OrePrefixes.arrowGtWood.mPrefixedItems - .get(aEvent.entity.worldObj.rand.nextInt(OrePrefixes.arrowGtWood.mPrefixedItems.size())))); - aEvent.entity.setDead(); - } - } - } + @SubscribeEvent + public void onEntitySpawningEvent(EntityJoinWorldEvent aEvent) { + if ((aEvent.entity != null) && (!aEvent.entity.worldObj.isRemote)) { + if ((aEvent.entity instanceof EntityItem)) { + ((EntityItem) aEvent.entity).setEntityItemStack(GT_OreDictUnificator.get(((EntityItem) aEvent.entity).getEntityItem())); + } + if ((this.mSkeletonsShootGTArrows > 0) && (aEvent.entity.getClass() == EntityArrow.class) + && (aEvent.entity.worldObj.rand.nextInt(this.mSkeletonsShootGTArrows) == 0) + && ((((EntityArrow) aEvent.entity).shootingEntity instanceof EntitySkeleton))) { + aEvent.entity.worldObj.spawnEntityInWorld(new GT_Entity_Arrow((EntityArrow) aEvent.entity, (ItemStack) OrePrefixes.arrowGtWood.mPrefixedItems + .get(aEvent.entity.worldObj.rand.nextInt(OrePrefixes.arrowGtWood.mPrefixedItems.size())))); + aEvent.entity.setDead(); + } + } + } - private static final EnumSet PREVENTED_ORES = EnumSet.of(OreGenEvent.GenerateMinable.EventType.COAL, - new OreGenEvent.GenerateMinable.EventType[] { OreGenEvent.GenerateMinable.EventType.IRON, OreGenEvent.GenerateMinable.EventType.GOLD, - OreGenEvent.GenerateMinable.EventType.DIAMOND, OreGenEvent.GenerateMinable.EventType.REDSTONE, OreGenEvent.GenerateMinable.EventType.LAPIS, - OreGenEvent.GenerateMinable.EventType.QUARTZ }); + @SubscribeEvent + public void onOreGenEvent(OreGenEvent.GenerateMinable aGenerator) { + if ((this.mDisableVanillaOres) && ((aGenerator.generator instanceof WorldGenMinable)) && (PREVENTED_ORES.contains(aGenerator.type))) { + aGenerator.setResult(Result.DENY); + } + } - @SubscribeEvent - public void onOreGenEvent(OreGenEvent.GenerateMinable aGenerator) { - if ((this.mDisableVanillaOres) && ((aGenerator.generator instanceof WorldGenMinable)) && (PREVENTED_ORES.contains(aGenerator.type))) { - aGenerator.setResult(Result.DENY); - } - } + private String getDataAndTime() { + return this.mDateFormat.format(new Date()); + } - private final DateFormat mDateFormat = DateFormat.getInstance(); + @SubscribeEvent + public void onPlayerInteraction(PlayerInteractEvent aEvent) { + if ((aEvent.entityPlayer == null) || (aEvent.entityPlayer.worldObj == null) || (aEvent.action == null) || (aEvent.world.provider == null)) { + return; + } + if ((!aEvent.entityPlayer.worldObj.isRemote) && (aEvent.action != null) && (aEvent.action != PlayerInteractEvent.Action.RIGHT_CLICK_AIR) + && (GT_Log.pal != null)) { + this.mBufferedPlayerActivity.add(getDataAndTime() + ";" + aEvent.action.name() + ";" + aEvent.entityPlayer.getDisplayName() + ";DIM:" + + aEvent.world.provider.dimensionId + ";" + aEvent.x + ";" + aEvent.y + ";" + aEvent.z + ";|;" + aEvent.x / 10 + ";" + aEvent.y / 10 + ";" + + aEvent.z / 10); + } + ItemStack aStack = aEvent.entityPlayer.getCurrentEquippedItem(); + if ((aStack != null) && (aEvent.action == PlayerInteractEvent.Action.RIGHT_CLICK_BLOCK) && (aStack.getItem() == Items.flint_and_steel)) { + if ((!aEvent.world.isRemote) && (!aEvent.entityPlayer.capabilities.isCreativeMode) && (aEvent.world.rand.nextInt(100) >= this.mFlintChance)) { + aEvent.setCanceled(true); + aStack.damageItem(1, aEvent.entityPlayer); + if (aStack.getItemDamage() >= aStack.getMaxDamage()) { + aStack.stackSize -= 1; + } + if (aStack.stackSize <= 0) { + ForgeEventFactory.onPlayerDestroyItem(aEvent.entityPlayer, aStack); + } + } + return; + } + } - private String getDataAndTime() { - return this.mDateFormat.format(new Date()); - } + @SubscribeEvent + public void onBlockHarvestingEvent(BlockEvent.HarvestDropsEvent aEvent) { + if (aEvent.harvester != null) { + if ((!aEvent.world.isRemote) && (GT_Log.pal != null)) { + this.mBufferedPlayerActivity.add(getDataAndTime() + ";HARVEST_BLOCK;" + aEvent.harvester.getDisplayName() + ";DIM:" + + aEvent.world.provider.dimensionId + ";" + aEvent.x + ";" + aEvent.y + ";" + aEvent.z + ";|;" + aEvent.x / 10 + ";" + aEvent.y / 10 + + ";" + aEvent.z / 10); + } + ItemStack aStack = aEvent.harvester.getCurrentEquippedItem(); + if (aStack != null) { + if ((aStack.getItem() instanceof GT_MetaGenerated_Tool)) { + ((GT_MetaGenerated_Tool) aStack.getItem()).onHarvestBlockEvent(aEvent.drops, aStack, aEvent.harvester, aEvent.block, aEvent.x, aEvent.y, + aEvent.z, (byte) aEvent.blockMetadata, aEvent.fortuneLevel, aEvent.isSilkTouching, aEvent); + } + if (EnchantmentHelper.getEnchantmentLevel(Enchantment.fireAspect.effectId, aStack) > 2) { + for (ItemStack tDrop : aEvent.drops) { + ItemStack tSmeltingOutput = GT_ModHandler.getSmeltingOutput(tDrop, false, null); + if (tSmeltingOutput != null) { + tDrop.stackSize *= tSmeltingOutput.stackSize; + tSmeltingOutput.stackSize = tDrop.stackSize; + GT_Utility.setStack(tDrop, tSmeltingOutput); + } + } + } + } + } + } - @SubscribeEvent - public void onPlayerInteraction(PlayerInteractEvent aEvent) { - if ((aEvent.entityPlayer == null) || (aEvent.entityPlayer.worldObj == null) || (aEvent.action == null) || (aEvent.world.provider == null)) { - return; - } - if ((!aEvent.entityPlayer.worldObj.isRemote) && (aEvent.action != null) && (aEvent.action != PlayerInteractEvent.Action.RIGHT_CLICK_AIR) - && (GT_Log.pal != null)) { - this.mBufferedPlayerActivity.add(getDataAndTime() + ";" + aEvent.action.name() + ";" + aEvent.entityPlayer.getDisplayName() + ";DIM:" - + aEvent.world.provider.dimensionId + ";" + aEvent.x + ";" + aEvent.y + ";" + aEvent.z + ";|;" + aEvent.x / 10 + ";" + aEvent.y / 10 + ";" - + aEvent.z / 10); - } - ItemStack aStack = aEvent.entityPlayer.getCurrentEquippedItem(); - if ((aStack != null) && (aEvent.action == PlayerInteractEvent.Action.RIGHT_CLICK_BLOCK) && (aStack.getItem() == Items.flint_and_steel)) { - if ((!aEvent.world.isRemote) && (!aEvent.entityPlayer.capabilities.isCreativeMode) && (aEvent.world.rand.nextInt(100) >= this.mFlintChance)) { - aEvent.setCanceled(true); - aStack.damageItem(1, aEvent.entityPlayer); - if (aStack.getItemDamage() >= aStack.getMaxDamage()) { - aStack.stackSize -= 1; - } - if (aStack.stackSize <= 0) { - ForgeEventFactory.onPlayerDestroyItem(aEvent.entityPlayer, aStack); - } - } - return; - } - } + @SubscribeEvent + public void registerOre(OreDictionary.OreRegisterEvent aEvent) { + ModContainer tContainer = Loader.instance().activeModContainer(); + String aMod = tContainer == null ? "UNKNOWN" : tContainer.getModId(); + String aOriginalMod = aMod; + if (GT_OreDictUnificator.isRegisteringOres()) { + aMod = "gregtech"; + } else if (aMod.equals("gregtech")) { + aMod = "UNKNOWN"; + } + if ((aEvent == null) || (aEvent.Ore == null) || (aEvent.Ore.getItem() == null) || (aEvent.Name == null) || (aEvent.Name.isEmpty()) + || (aEvent.Name.replaceAll("_", "").length() - aEvent.Name.length() == 9)) { + if (aOriginalMod.equals("gregtech")) { + aOriginalMod = "UNKNOWN"; + } + GT_Log.ore + .println(aOriginalMod + + " did something very bad! The registration is too invalid to even be shown properly. This happens only if you register null, invalid Items, empty Strings or even nonexisting Events to the OreDict."); + throw new IllegalArgumentException( + aOriginalMod + + " did something very bad! The registration is too invalid to even be shown properly. This happens only if you register null, invalid Items, empty Strings or even nonexisting Events to the OreDict."); + } + try { + aEvent.Ore.stackSize = 1; + if (this.mIgnoreTcon || aEvent.Ore.getUnlocalizedName().startsWith("item.oreberry")) { + 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; + } + if (((aEvent.Ore.getItem() instanceof ItemBlock)) || (GT_Utility.getBlockFromStack(aEvent.Ore) != Blocks.air)) { + GT_OreDictUnificator.addToBlacklist(aEvent.Ore); + } + this.mRegisteredOres.add(aEvent.Ore); + if ((aEvent.Name.startsWith("item")) && (this.mIgnoredItems.contains(aEvent.Name))) { + GT_Log.ore.println(tModToName); + if (aEvent.Name.equals("itemCopperWire")) { + GT_OreDictUnificator.registerOre(OreDictNames.craftingWireCopper, aEvent.Ore); + } + if (aEvent.Name.equals("itemRubber")) { + GT_OreDictUnificator.registerOre(OrePrefixes.ingot, Materials.Rubber, aEvent.Ore); + } + return; + } + if (this.mIgnoredNames.contains(aEvent.Name)) { + GT_Log.ore.println(tModToName + " is getting ignored via hardcode."); + return; + } + if (aEvent.Name.equals("stone")) { + GT_OreDictUnificator.registerOre("stoneSmooth", aEvent.Ore); + return; + } + if (aEvent.Name.equals("cobblestone")) { + GT_OreDictUnificator.registerOre("stoneCobble", aEvent.Ore); + return; + } + if ((aEvent.Name.contains("|")) || (aEvent.Name.contains("*")) || (aEvent.Name.contains(":")) || (aEvent.Name.contains(".")) + || (aEvent.Name.contains("$"))) { + GT_Log.ore.println(tModToName + " is using a private Prefix and is therefor getting ignored properly."); + return; + } + if (aEvent.Name.equals("copperWire")) { + GT_OreDictUnificator.registerOre(OreDictNames.craftingWireCopper, aEvent.Ore); + } + if (aEvent.Name.equals("oreHeeEndrium")) { + GT_OreDictUnificator.registerOre(OrePrefixes.ore, Materials.Endium, aEvent.Ore); + } + if (aEvent.Name.equals("sheetPlastic")) { + GT_OreDictUnificator.registerOre(OrePrefixes.plate, Materials.Plastic, aEvent.Ore); + } + if (aEvent.Name.equals("shardAir")) { + GT_OreDictUnificator.registerOre(OrePrefixes.gem, Materials.InfusedAir, aEvent.Ore); + return; + } + if (aEvent.Name.equals("shardWater")) { + GT_OreDictUnificator.registerOre(OrePrefixes.gem, Materials.InfusedWater, aEvent.Ore); + return; + } + if (aEvent.Name.equals("shardFire")) { + GT_OreDictUnificator.registerOre(OrePrefixes.gem, Materials.InfusedFire, aEvent.Ore); + return; + } + if (aEvent.Name.equals("shardEarth")) { + GT_OreDictUnificator.registerOre(OrePrefixes.gem, Materials.InfusedEarth, aEvent.Ore); + return; + } + if (aEvent.Name.equals("shardOrder")) { + GT_OreDictUnificator.registerOre(OrePrefixes.gem, Materials.InfusedOrder, aEvent.Ore); + return; + } + if (aEvent.Name.equals("shardEntropy")) { + GT_OreDictUnificator.registerOre(OrePrefixes.gem, Materials.InfusedEntropy, aEvent.Ore); + return; + } + if (aEvent.Name.equals("fieryIngot")) { + GT_OreDictUnificator.registerOre(OrePrefixes.ingot, Materials.FierySteel, aEvent.Ore); + return; + } + if (aEvent.Name.equals("ironwood")) { + GT_OreDictUnificator.registerOre(OrePrefixes.ingot, Materials.IronWood, aEvent.Ore); + return; + } + if (aEvent.Name.equals("steeleaf")) { + GT_OreDictUnificator.registerOre(OrePrefixes.ingot, Materials.Steeleaf, aEvent.Ore); + return; + } + if (aEvent.Name.equals("knightmetal")) { + GT_OreDictUnificator.registerOre(OrePrefixes.ingot, Materials.Knightmetal, aEvent.Ore); + return; + } + if (aEvent.Name.contains(" ")) { + GT_Log.ore.println(tModToName + " is getting re-registered because the OreDict Name containing invalid spaces."); + GT_OreDictUnificator.registerOre(aEvent.Name.replaceAll(" ", ""), GT_Utility.copyAmount(1L, new Object[]{aEvent.Ore})); + aEvent.Ore.setStackDisplayName("Invalid OreDictionary Tag"); + return; + } + if (this.mInvalidNames.contains(aEvent.Name)) { + GT_Log.ore.println(tModToName + " is wrongly registered and therefor getting ignored."); - @SubscribeEvent - public void onBlockHarvestingEvent(BlockEvent.HarvestDropsEvent aEvent) { - if (aEvent.harvester != null) { - if ((!aEvent.world.isRemote) && (GT_Log.pal != null)) { - this.mBufferedPlayerActivity.add(getDataAndTime() + ";HARVEST_BLOCK;" + aEvent.harvester.getDisplayName() + ";DIM:" - + aEvent.world.provider.dimensionId + ";" + aEvent.x + ";" + aEvent.y + ";" + aEvent.z + ";|;" + aEvent.x / 10 + ";" + aEvent.y / 10 - + ";" + aEvent.z / 10); - } - ItemStack aStack = aEvent.harvester.getCurrentEquippedItem(); - if (aStack != null) { - if ((aStack.getItem() instanceof GT_MetaGenerated_Tool)) { - ((GT_MetaGenerated_Tool) aStack.getItem()).onHarvestBlockEvent(aEvent.drops, aStack, aEvent.harvester, aEvent.block, aEvent.x, aEvent.y, - aEvent.z, (byte) aEvent.blockMetadata, aEvent.fortuneLevel, aEvent.isSilkTouching, aEvent); - } - if (EnchantmentHelper.getEnchantmentLevel(Enchantment.fireAspect.effectId, aStack) > 2) { - for (ItemStack tDrop : aEvent.drops) { - ItemStack tSmeltingOutput = GT_ModHandler.getSmeltingOutput(tDrop, false, null); - if (tSmeltingOutput != null) { - tDrop.stackSize *= tSmeltingOutput.stackSize; - tSmeltingOutput.stackSize = tDrop.stackSize; - GT_Utility.setStack(tDrop, tSmeltingOutput); - } - } - } - } - } - } - - @SubscribeEvent - public void registerOre(OreDictionary.OreRegisterEvent aEvent) { - ModContainer tContainer = Loader.instance().activeModContainer(); - String aMod = tContainer == null ? "UNKNOWN" : tContainer.getModId(); - String aOriginalMod = aMod; - if (GT_OreDictUnificator.isRegisteringOres()) { - aMod = "gregtech"; - } else if (aMod.equals("gregtech")) { - aMod = "UNKNOWN"; - } - if ((aEvent == null) || (aEvent.Ore == null) || (aEvent.Ore.getItem() == null) || (aEvent.Name == null) || (aEvent.Name.isEmpty()) - || (aEvent.Name.replaceAll("_", "").length() - aEvent.Name.length() == 9)) { - if (aOriginalMod.equals("gregtech")) { - aOriginalMod = "UNKNOWN"; - } - GT_Log.ore - .println(aOriginalMod - + " did something very bad! The registration is too invalid to even be shown properly. This happens only if you register null, invalid Items, empty Strings or even nonexisting Events to the OreDict."); - throw new IllegalArgumentException( - aOriginalMod - + " did something very bad! The registration is too invalid to even be shown properly. This happens only if you register null, invalid Items, empty Strings or even nonexisting Events to the OreDict."); - } - try { - aEvent.Ore.stackSize = 1; - if(this.mIgnoreTcon||aEvent.Ore.getUnlocalizedName().startsWith("item.oreberry")){ - 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; - } - if (((aEvent.Ore.getItem() instanceof ItemBlock)) || (GT_Utility.getBlockFromStack(aEvent.Ore) != Blocks.air)) { - GT_OreDictUnificator.addToBlacklist(aEvent.Ore); - } - this.mRegisteredOres.add(aEvent.Ore); - if ((aEvent.Name.startsWith("item")) && (this.mIgnoredItems.contains(aEvent.Name))) { - GT_Log.ore.println(tModToName); - if (aEvent.Name.equals("itemCopperWire")) { - GT_OreDictUnificator.registerOre(OreDictNames.craftingWireCopper, aEvent.Ore); - } - if (aEvent.Name.equals("itemRubber")) { - GT_OreDictUnificator.registerOre(OrePrefixes.ingot, Materials.Rubber, aEvent.Ore); - } - return; - } - if (this.mIgnoredNames.contains(aEvent.Name)) { - GT_Log.ore.println(tModToName + " is getting ignored via hardcode."); - return; - } - if (aEvent.Name.equals("stone")) { - GT_OreDictUnificator.registerOre("stoneSmooth", aEvent.Ore); - return; - } - if (aEvent.Name.equals("cobblestone")) { - GT_OreDictUnificator.registerOre("stoneCobble", aEvent.Ore); - return; - } - if ((aEvent.Name.contains("|")) || (aEvent.Name.contains("*")) || (aEvent.Name.contains(":")) || (aEvent.Name.contains(".")) - || (aEvent.Name.contains("$"))) { - GT_Log.ore.println(tModToName + " is using a private Prefix and is therefor getting ignored properly."); - return; - } - if (aEvent.Name.equals("copperWire")) { - GT_OreDictUnificator.registerOre(OreDictNames.craftingWireCopper, aEvent.Ore); - } - if (aEvent.Name.equals("oreHeeEndrium")) { - GT_OreDictUnificator.registerOre(OrePrefixes.ore, Materials.Endium, aEvent.Ore); - } - if (aEvent.Name.equals("sheetPlastic")) { - GT_OreDictUnificator.registerOre(OrePrefixes.plate, Materials.Plastic, aEvent.Ore); - } - if (aEvent.Name.equals("shardAir")) { - GT_OreDictUnificator.registerOre(OrePrefixes.gem, Materials.InfusedAir, aEvent.Ore); - return; - } - if (aEvent.Name.equals("shardWater")) { - GT_OreDictUnificator.registerOre(OrePrefixes.gem, Materials.InfusedWater, aEvent.Ore); - return; - } - if (aEvent.Name.equals("shardFire")) { - GT_OreDictUnificator.registerOre(OrePrefixes.gem, Materials.InfusedFire, aEvent.Ore); - return; - } - if (aEvent.Name.equals("shardEarth")) { - GT_OreDictUnificator.registerOre(OrePrefixes.gem, Materials.InfusedEarth, aEvent.Ore); - return; - } - if (aEvent.Name.equals("shardOrder")) { - GT_OreDictUnificator.registerOre(OrePrefixes.gem, Materials.InfusedOrder, aEvent.Ore); - return; - } - if (aEvent.Name.equals("shardEntropy")) { - GT_OreDictUnificator.registerOre(OrePrefixes.gem, Materials.InfusedEntropy, aEvent.Ore); - return; - } - if (aEvent.Name.equals("fieryIngot")) { - GT_OreDictUnificator.registerOre(OrePrefixes.ingot, Materials.FierySteel, aEvent.Ore); - return; - } - if (aEvent.Name.equals("ironwood")) { - GT_OreDictUnificator.registerOre(OrePrefixes.ingot, Materials.IronWood, aEvent.Ore); - return; - } - if (aEvent.Name.equals("steeleaf")) { - GT_OreDictUnificator.registerOre(OrePrefixes.ingot, Materials.Steeleaf, aEvent.Ore); - return; - } - if (aEvent.Name.equals("knightmetal")) { - GT_OreDictUnificator.registerOre(OrePrefixes.ingot, Materials.Knightmetal, aEvent.Ore); - return; - } - if (aEvent.Name.contains(" ")) { - GT_Log.ore.println(tModToName + " is getting re-registered because the OreDict Name containing invalid spaces."); - GT_OreDictUnificator.registerOre(aEvent.Name.replaceAll(" ", ""), GT_Utility.copyAmount(1L, new Object[] { aEvent.Ore })); - aEvent.Ore.setStackDisplayName("Invalid OreDictionary Tag"); - return; - } - if (this.mInvalidNames.contains(aEvent.Name)) { - GT_Log.ore.println(tModToName + " is wrongly registered and therefor getting ignored."); - - return; - } - OrePrefixes aPrefix = OrePrefixes.getOrePrefix(aEvent.Name); - Materials aMaterial = Materials._NULL; - if ((aPrefix == OrePrefixes.nugget) && (aMod.equals("Thaumcraft")) && (aEvent.Ore.getItem().getUnlocalizedName().contains("ItemResource"))) { - return; - } - if (aPrefix == null) { - if (aEvent.Name.toLowerCase().equals(aEvent.Name)) { - GT_Log.ore.println(tModToName + " is invalid due to being solely lowercased."); - return; - } - if (aEvent.Name.toUpperCase().equals(aEvent.Name)) { - GT_Log.ore.println(tModToName + " is invalid due to being solely uppercased."); - return; - } - if (Character.isUpperCase(aEvent.Name.charAt(0))) { - GT_Log.ore.println(tModToName + " is invalid due to the first character being uppercased."); - } - } else { - if (aPrefix.mDontUnificateActively) { - GT_OreDictUnificator.addToBlacklist(aEvent.Ore); - } - if (aPrefix != aPrefix.mPrefixInto) { - String tNewName = aEvent.Name.replaceFirst(aPrefix.toString(), aPrefix.mPrefixInto.toString()); - if (!GT_OreDictUnificator.isRegisteringOres()) { - GT_Log.ore.println(tModToName + " uses a depricated Prefix, and is getting re-registered as " + tNewName); - } - GT_OreDictUnificator.registerOre(tNewName, aEvent.Ore); - return; - } - String tName = aEvent.Name.replaceFirst(aPrefix.toString(), ""); - if (tName.length() > 0) { - char firstChar = tName.charAt(0); - if (Character.isUpperCase(firstChar) || Character.isLowerCase(firstChar) || firstChar == '_') { - if (aPrefix.mIsMaterialBased) { - aMaterial = Materials.get(tName); - if (aMaterial != aMaterial.mMaterialInto) { - GT_OreDictUnificator.registerOre(aPrefix, aMaterial.mMaterialInto, aEvent.Ore); - if (!GT_OreDictUnificator.isRegisteringOres()) { - GT_Log.ore.println(tModToName + " uses a deprecated Material and is getting re-registered as " - + aPrefix.get(aMaterial.mMaterialInto)); - } - return; - } - if (!aPrefix.isIgnored(aMaterial)) { - aPrefix.add(GT_Utility.copyAmount(1L, new Object[] { aEvent.Ore })); - } - if (aMaterial != Materials._NULL) { - Materials tReRegisteredMaterial; - for (Iterator i$ = aMaterial.mOreReRegistrations.iterator(); i$.hasNext(); GT_OreDictUnificator.registerOre(aPrefix, - tReRegisteredMaterial, aEvent.Ore)) { - tReRegisteredMaterial = (Materials) i$.next(); - } - aMaterial.add(GT_Utility.copyAmount(1L, new Object[] { aEvent.Ore })); - if ((GregTech_API.sThaumcraftCompat != null) && (aPrefix.doGenerateItem(aMaterial)) && (!aPrefix.isIgnored(aMaterial))) { - long tAmount = aPrefix.mMaterialAmount < 0L ? 3628800L : aPrefix.mMaterialAmount; - List tAspects = new ArrayList(); - TC_Aspects.TC_AspectStack tAspect; - for (Iterator i$ = aPrefix.mAspects.iterator(); i$.hasNext(); tAspect.addToAspectList(tAspects)) { - tAspect = (TC_Aspects.TC_AspectStack) i$.next(); - } - tAspect = null; - for (Iterator i$ = aMaterial.mAspects.iterator(); i$.hasNext(); tAspect.copy(tAspect.mAmount * tAmount / 3628800L) - .addToAspectList(tAspects)) { - tAspect = (TC_Aspects.TC_AspectStack) i$.next(); - } - GregTech_API.sThaumcraftCompat.registerThaumcraftAspectsToItem(GT_Utility.copyAmount(1L, new Object[] { aEvent.Ore }), - tAspects, aEvent.Name); - } - switch (aPrefix) { - case crystal: - if ((aMaterial == Materials.CertusQuartz) || (aMaterial == Materials.NetherQuartz) || (aMaterial == Materials.Fluix)) { - GT_OreDictUnificator.registerOre(OrePrefixes.gem, aMaterial, aEvent.Ore); - } - break; - case gem: - switch (aMaterial) { - case Lapis: - case Sodalite: - GT_OreDictUnificator.registerOre(Dyes.dyeBlue, aEvent.Ore); - break; - case Lazurite: - GT_OreDictUnificator.registerOre(Dyes.dyeCyan, aEvent.Ore); - break; - case InfusedAir: - case InfusedWater: - case InfusedFire: - case InfusedEarth: - case InfusedOrder: - case InfusedEntropy: - GT_OreDictUnificator.registerOre(aMaterial.name().replaceFirst("Infused", "shard"), aEvent.Ore); - break; - case Chocolate: - GT_OreDictUnificator.registerOre(Dyes.dyeBrown, aEvent.Ore); - break; - case CertusQuartz: - case NetherQuartz: - GT_OreDictUnificator.registerOre(OrePrefixes.item.get(aMaterial), aEvent.Ore); - case Fluix: - case Quartz: - case Quartzite: - GT_OreDictUnificator.registerOre(OrePrefixes.crystal, aMaterial, aEvent.Ore); - GT_OreDictUnificator.registerOre(OreDictNames.craftingQuartz, aEvent.Ore); - default: - break; - } - break; - case cableGt01: - if (aMaterial == Materials.Tin) { - GT_OreDictUnificator.registerOre(OreDictNames.craftingWireTin, aEvent.Ore); - } - if (aMaterial == Materials.AnyCopper) { - GT_OreDictUnificator.registerOre(OreDictNames.craftingWireCopper, aEvent.Ore); - } - if (aMaterial == Materials.Gold) { - GT_OreDictUnificator.registerOre(OreDictNames.craftingWireGold, aEvent.Ore); - } - if (aMaterial == Materials.AnyIron) { - GT_OreDictUnificator.registerOre(OreDictNames.craftingWireIron, aEvent.Ore); - } - break; - case lens: - if ((aMaterial.contains(SubTag.TRANSPARENT)) && (aMaterial.mColor != Dyes._NULL)) { - GT_OreDictUnificator.registerOre("craftingLens" + aMaterial.mColor.toString().replaceFirst("dye", ""), aEvent.Ore); - } - break; - case plate: - if ((aMaterial == Materials.Plastic) || (aMaterial == Materials.Rubber)) { - GT_OreDictUnificator.registerOre(OrePrefixes.sheet, aMaterial, aEvent.Ore); - } - if (aMaterial == Materials.Silicon) { - GT_OreDictUnificator.registerOre(OrePrefixes.item, aMaterial, aEvent.Ore); - } - if (aMaterial == Materials.Wood) { - GT_OreDictUnificator.addToBlacklist(aEvent.Ore); - GT_OreDictUnificator.registerOre(OrePrefixes.plank, aMaterial, aEvent.Ore); - } - break; - case cell: - if (aMaterial == Materials.Empty) { - GT_OreDictUnificator.addToBlacklist(aEvent.Ore); - } - break; - case gearGt: - GT_OreDictUnificator.registerOre(OrePrefixes.gear, aMaterial, aEvent.Ore); - break; - case stick: - if (!GT_RecipeRegistrator.sRodMaterialList.contains(aMaterial)) { - GT_RecipeRegistrator.sRodMaterialList.add(aMaterial); - } - if (aMaterial == Materials.Wood) { - GT_OreDictUnificator.addToBlacklist(aEvent.Ore); - } - if ((aMaterial == Materials.Tin) || (aMaterial == Materials.Lead) || (aMaterial == Materials.SolderingAlloy)) { - GT_OreDictUnificator.registerOre(ToolDictNames.craftingToolSolderingMetal, aEvent.Ore); - } - break; - case dust: - if (aMaterial == Materials.Salt) { - GT_OreDictUnificator.registerOre("itemSalt", aEvent.Ore); - } - if (aMaterial == Materials.Wood) { - GT_OreDictUnificator.registerOre("pulpWood", aEvent.Ore); - } - if (aMaterial == Materials.Wheat) { - GT_OreDictUnificator.registerOre("foodFlour", aEvent.Ore); - } - if (aMaterial == Materials.Lapis) { - GT_OreDictUnificator.registerOre(Dyes.dyeBlue, aEvent.Ore); - } - if (aMaterial == Materials.Lazurite) { - GT_OreDictUnificator.registerOre(Dyes.dyeCyan, aEvent.Ore); - } - if (aMaterial == Materials.Sodalite) { - GT_OreDictUnificator.registerOre(Dyes.dyeBlue, aEvent.Ore); - } - if (aMaterial == Materials.Cocoa) { - GT_OreDictUnificator.registerOre(Dyes.dyeBrown, aEvent.Ore); - GT_OreDictUnificator.registerOre("foodCocoapowder", aEvent.Ore); - } - if (aMaterial == Materials.Coffee) { - GT_OreDictUnificator.registerOre(Dyes.dyeBrown, aEvent.Ore); - } - if (aMaterial == Materials.BrownLimonite) { - GT_OreDictUnificator.registerOre(Dyes.dyeBrown, aEvent.Ore); - } - if (aMaterial == Materials.YellowLimonite) { - GT_OreDictUnificator.registerOre(Dyes.dyeYellow, aEvent.Ore); - } - break; - case ingot: - if (aMaterial == Materials.Rubber) { - GT_OreDictUnificator.registerOre("itemRubber", aEvent.Ore); - } - if (aMaterial == Materials.FierySteel) { - GT_OreDictUnificator.registerOre("fieryIngot", aEvent.Ore); - } - if (aMaterial == Materials.IronWood) { - GT_OreDictUnificator.registerOre("ironwood", aEvent.Ore); - } - if (aMaterial == Materials.Steeleaf) { - GT_OreDictUnificator.registerOre("steeleaf", aEvent.Ore); - } - if (aMaterial == Materials.Knightmetal) { - GT_OreDictUnificator.registerOre("knightmetal", aEvent.Ore); - } - if ((aMaterial == Materials.Brass) && (aEvent.Ore.getItemDamage() == 2) - && (aEvent.Ore.getUnlocalizedName().equals("item.ingotBrass")) - && (new ItemStack(aEvent.Ore.getItem(), 1, 0).getUnlocalizedName().contains("red"))) { - GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.RedAlloy, new ItemStack(aEvent.Ore.getItem(), 1, 0)); - GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.BlueAlloy, new ItemStack(aEvent.Ore.getItem(), 1, 1)); - GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Brass, new ItemStack(aEvent.Ore.getItem(), 1, 2)); - if(!mDisableIC2Cables){ - GT_Values.RA.addWiremillRecipe(GT_ModHandler.getIC2Item("copperCableItem", 3L), new ItemStack(aEvent.Ore.getItem(), 1, - 8), 400, 1); - GT_Values.RA.addWiremillRecipe(GT_ModHandler.getIC2Item("ironCableItem", 6L), - new ItemStack(aEvent.Ore.getItem(), 1, 9), 400, 2);} - GT_Values.RA.addCutterRecipe(new ItemStack(aEvent.Ore.getItem(), 1, 3), new ItemStack(aEvent.Ore.getItem(), 16, 4), - null, 400, 8); - } - break; - default: - break; - } - if (aPrefix.mIsUnificatable && !aMaterial.mUnificatable) { - return; - } - } else { - for (Dyes tDye : Dyes.VALUES) { - if (aEvent.Name.endsWith(tDye.name().replaceFirst("dye", ""))) { - GT_OreDictUnificator.addToBlacklist(aEvent.Ore); - GT_Log.ore.println(tModToName+ " Oh man, why the fuck would anyone need a OreDictified Color for this, that is even too much for GregTech... do not report this, this is just a random Comment about how ridiculous this is."); - return; - } - } + return; + } + OrePrefixes aPrefix = OrePrefixes.getOrePrefix(aEvent.Name); + Materials aMaterial = Materials._NULL; + if ((aPrefix == OrePrefixes.nugget) && (aMod.equals("Thaumcraft")) && (aEvent.Ore.getItem().getUnlocalizedName().contains("ItemResource"))) { + return; + } + if (aPrefix == null) { + if (aEvent.Name.toLowerCase().equals(aEvent.Name)) { + GT_Log.ore.println(tModToName + " is invalid due to being solely lowercased."); + return; + } + if (aEvent.Name.toUpperCase().equals(aEvent.Name)) { + GT_Log.ore.println(tModToName + " is invalid due to being solely uppercased."); + return; + } + if (Character.isUpperCase(aEvent.Name.charAt(0))) { + GT_Log.ore.println(tModToName + " is invalid due to the first character being uppercased."); + } + } else { + if (aPrefix.mDontUnificateActively) { + GT_OreDictUnificator.addToBlacklist(aEvent.Ore); + } + if (aPrefix != aPrefix.mPrefixInto) { + String tNewName = aEvent.Name.replaceFirst(aPrefix.toString(), aPrefix.mPrefixInto.toString()); + if (!GT_OreDictUnificator.isRegisteringOres()) { + GT_Log.ore.println(tModToName + " uses a depricated Prefix, and is getting re-registered as " + tNewName); + } + GT_OreDictUnificator.registerOre(tNewName, aEvent.Ore); + return; + } + String tName = aEvent.Name.replaceFirst(aPrefix.toString(), ""); + if (tName.length() > 0) { + char firstChar = tName.charAt(0); + if (Character.isUpperCase(firstChar) || Character.isLowerCase(firstChar) || firstChar == '_') { + if (aPrefix.mIsMaterialBased) { + aMaterial = Materials.get(tName); + if (aMaterial != aMaterial.mMaterialInto) { + GT_OreDictUnificator.registerOre(aPrefix, aMaterial.mMaterialInto, aEvent.Ore); + if (!GT_OreDictUnificator.isRegisteringOres()) { + GT_Log.ore.println(tModToName + " uses a deprecated Material and is getting re-registered as " + + aPrefix.get(aMaterial.mMaterialInto)); + } + return; + } + if (!aPrefix.isIgnored(aMaterial)) { + aPrefix.add(GT_Utility.copyAmount(1L, new Object[]{aEvent.Ore})); + } + if (aMaterial != Materials._NULL) { + Materials tReRegisteredMaterial; + for (Iterator i$ = aMaterial.mOreReRegistrations.iterator(); i$.hasNext(); GT_OreDictUnificator.registerOre(aPrefix, + tReRegisteredMaterial, aEvent.Ore)) { + tReRegisteredMaterial = (Materials) i$.next(); + } + aMaterial.add(GT_Utility.copyAmount(1L, new Object[]{aEvent.Ore})); + if ((GregTech_API.sThaumcraftCompat != null) && (aPrefix.doGenerateItem(aMaterial)) && (!aPrefix.isIgnored(aMaterial))) { + long tAmount = aPrefix.mMaterialAmount < 0L ? 3628800L : aPrefix.mMaterialAmount; + List tAspects = new ArrayList(); + TC_Aspects.TC_AspectStack tAspect; + for (Iterator i$ = aPrefix.mAspects.iterator(); i$.hasNext(); tAspect.addToAspectList(tAspects)) { + tAspect = (TC_Aspects.TC_AspectStack) i$.next(); + } + tAspect = null; + for (Iterator i$ = aMaterial.mAspects.iterator(); i$.hasNext(); tAspect.copy(tAspect.mAmount * tAmount / 3628800L) + .addToAspectList(tAspects)) { + tAspect = (TC_Aspects.TC_AspectStack) i$.next(); + } + GregTech_API.sThaumcraftCompat.registerThaumcraftAspectsToItem(GT_Utility.copyAmount(1L, new Object[]{aEvent.Ore}), + tAspects, aEvent.Name); + } + switch (aPrefix) { + case crystal: + if ((aMaterial == Materials.CertusQuartz) || (aMaterial == Materials.NetherQuartz) || (aMaterial == Materials.Fluix)) { + GT_OreDictUnificator.registerOre(OrePrefixes.gem, aMaterial, aEvent.Ore); + } + break; + case gem: + switch (aMaterial) { + case Lapis: + case Sodalite: + GT_OreDictUnificator.registerOre(Dyes.dyeBlue, aEvent.Ore); + break; + case Lazurite: + GT_OreDictUnificator.registerOre(Dyes.dyeCyan, aEvent.Ore); + break; + case InfusedAir: + case InfusedWater: + case InfusedFire: + case InfusedEarth: + case InfusedOrder: + case InfusedEntropy: + GT_OreDictUnificator.registerOre(aMaterial.name().replaceFirst("Infused", "shard"), aEvent.Ore); + break; + case Chocolate: + GT_OreDictUnificator.registerOre(Dyes.dyeBrown, aEvent.Ore); + break; + case CertusQuartz: + case NetherQuartz: + GT_OreDictUnificator.registerOre(OrePrefixes.item.get(aMaterial), aEvent.Ore); + case Fluix: + case Quartz: + case Quartzite: + GT_OreDictUnificator.registerOre(OrePrefixes.crystal, aMaterial, aEvent.Ore); + GT_OreDictUnificator.registerOre(OreDictNames.craftingQuartz, aEvent.Ore); + default: + break; + } + break; + case cableGt01: + if (aMaterial == Materials.Tin) { + GT_OreDictUnificator.registerOre(OreDictNames.craftingWireTin, aEvent.Ore); + } + if (aMaterial == Materials.AnyCopper) { + GT_OreDictUnificator.registerOre(OreDictNames.craftingWireCopper, aEvent.Ore); + } + if (aMaterial == Materials.Gold) { + GT_OreDictUnificator.registerOre(OreDictNames.craftingWireGold, aEvent.Ore); + } + if (aMaterial == Materials.AnyIron) { + GT_OreDictUnificator.registerOre(OreDictNames.craftingWireIron, aEvent.Ore); + } + break; + case lens: + if ((aMaterial.contains(SubTag.TRANSPARENT)) && (aMaterial.mColor != Dyes._NULL)) { + GT_OreDictUnificator.registerOre("craftingLens" + aMaterial.mColor.toString().replaceFirst("dye", ""), aEvent.Ore); + } + break; + case plate: + if ((aMaterial == Materials.Plastic) || (aMaterial == Materials.Rubber)) { + GT_OreDictUnificator.registerOre(OrePrefixes.sheet, aMaterial, aEvent.Ore); + } + if (aMaterial == Materials.Silicon) { + GT_OreDictUnificator.registerOre(OrePrefixes.item, aMaterial, aEvent.Ore); + } + if (aMaterial == Materials.Wood) { + GT_OreDictUnificator.addToBlacklist(aEvent.Ore); + GT_OreDictUnificator.registerOre(OrePrefixes.plank, aMaterial, aEvent.Ore); + } + break; + case cell: + if (aMaterial == Materials.Empty) { + GT_OreDictUnificator.addToBlacklist(aEvent.Ore); + } + break; + case gearGt: + GT_OreDictUnificator.registerOre(OrePrefixes.gear, aMaterial, aEvent.Ore); + break; + case stick: + if (!GT_RecipeRegistrator.sRodMaterialList.contains(aMaterial)) { + GT_RecipeRegistrator.sRodMaterialList.add(aMaterial); + } + if (aMaterial == Materials.Wood) { + GT_OreDictUnificator.addToBlacklist(aEvent.Ore); + } + if ((aMaterial == Materials.Tin) || (aMaterial == Materials.Lead) || (aMaterial == Materials.SolderingAlloy)) { + GT_OreDictUnificator.registerOre(ToolDictNames.craftingToolSolderingMetal, aEvent.Ore); + } + break; + case dust: + if (aMaterial == Materials.Salt) { + GT_OreDictUnificator.registerOre("itemSalt", aEvent.Ore); + } + if (aMaterial == Materials.Wood) { + GT_OreDictUnificator.registerOre("pulpWood", aEvent.Ore); + } + if (aMaterial == Materials.Wheat) { + GT_OreDictUnificator.registerOre("foodFlour", aEvent.Ore); + } + if (aMaterial == Materials.Lapis) { + GT_OreDictUnificator.registerOre(Dyes.dyeBlue, aEvent.Ore); + } + if (aMaterial == Materials.Lazurite) { + GT_OreDictUnificator.registerOre(Dyes.dyeCyan, aEvent.Ore); + } + if (aMaterial == Materials.Sodalite) { + GT_OreDictUnificator.registerOre(Dyes.dyeBlue, aEvent.Ore); + } + if (aMaterial == Materials.Cocoa) { + GT_OreDictUnificator.registerOre(Dyes.dyeBrown, aEvent.Ore); + GT_OreDictUnificator.registerOre("foodCocoapowder", aEvent.Ore); + } + if (aMaterial == Materials.Coffee) { + GT_OreDictUnificator.registerOre(Dyes.dyeBrown, aEvent.Ore); + } + if (aMaterial == Materials.BrownLimonite) { + GT_OreDictUnificator.registerOre(Dyes.dyeBrown, aEvent.Ore); + } + if (aMaterial == Materials.YellowLimonite) { + GT_OreDictUnificator.registerOre(Dyes.dyeYellow, aEvent.Ore); + } + break; + case ingot: + if (aMaterial == Materials.Rubber) { + GT_OreDictUnificator.registerOre("itemRubber", aEvent.Ore); + } + if (aMaterial == Materials.FierySteel) { + GT_OreDictUnificator.registerOre("fieryIngot", aEvent.Ore); + } + if (aMaterial == Materials.IronWood) { + GT_OreDictUnificator.registerOre("ironwood", aEvent.Ore); + } + if (aMaterial == Materials.Steeleaf) { + GT_OreDictUnificator.registerOre("steeleaf", aEvent.Ore); + } + if (aMaterial == Materials.Knightmetal) { + GT_OreDictUnificator.registerOre("knightmetal", aEvent.Ore); + } + if ((aMaterial == Materials.Brass) && (aEvent.Ore.getItemDamage() == 2) + && (aEvent.Ore.getUnlocalizedName().equals("item.ingotBrass")) + && (new ItemStack(aEvent.Ore.getItem(), 1, 0).getUnlocalizedName().contains("red"))) { + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.RedAlloy, new ItemStack(aEvent.Ore.getItem(), 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.BlueAlloy, new ItemStack(aEvent.Ore.getItem(), 1, 1)); + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Brass, new ItemStack(aEvent.Ore.getItem(), 1, 2)); + if (!mDisableIC2Cables) { + GT_Values.RA.addWiremillRecipe(GT_ModHandler.getIC2Item("copperCableItem", 3L), new ItemStack(aEvent.Ore.getItem(), 1, + 8), 400, 1); + GT_Values.RA.addWiremillRecipe(GT_ModHandler.getIC2Item("ironCableItem", 6L), + new ItemStack(aEvent.Ore.getItem(), 1, 9), 400, 2); + } + GT_Values.RA.addCutterRecipe(new ItemStack(aEvent.Ore.getItem(), 1, 3), new ItemStack(aEvent.Ore.getItem(), 16, 4), + null, 400, 8); + } + break; + default: + break; + } + if (aPrefix.mIsUnificatable && !aMaterial.mUnificatable) { + return; + } + } else { + for (Dyes tDye : Dyes.VALUES) { + if (aEvent.Name.endsWith(tDye.name().replaceFirst("dye", ""))) { + GT_OreDictUnificator.addToBlacklist(aEvent.Ore); + GT_Log.ore.println(tModToName + " Oh man, why the fuck would anyone need a OreDictified Color for this, that is even too much for GregTech... do not report this, this is just a random Comment about how ridiculous this is."); + return; + } + } // System.out.println("Material Name: "+aEvent.Name+ " !!!Unknown Material detected!!! Please report to GregTech Intergalactical for additional compatiblity. This is not an Error, an Issue nor a Lag Source, it is just an Information, which you should pass to me."); // GT_Log.ore.println(tModToName + " uses an unknown Material. Report this to GregTech."); - return; - } - } else { - aPrefix.add(GT_Utility.copyAmount(1L, new Object[] { aEvent.Ore })); - } - } - } else if (aPrefix.mIsSelfReferencing) { - aPrefix.add(GT_Utility.copyAmount(1L, new Object[] { aEvent.Ore })); - } else { - GT_Log.ore.println(tModToName + " uses a Prefix as full OreDict Name, and is therefor invalid."); - aEvent.Ore.setStackDisplayName("Invalid OreDictionary Tag"); - return; - } - switch (aPrefix) { - case dye: - if (GT_Utility.isStringValid(tName)) { - GT_OreDictUnificator.registerOre(OrePrefixes.dye, aEvent.Ore); - } - break; - case stoneSmooth: - GT_OreDictUnificator.registerOre("stone", aEvent.Ore); - break; - case stoneCobble: - GT_OreDictUnificator.registerOre("cobblestone", aEvent.Ore); - break; - case plank: - if (tName.equals("Wood")) { - GT_OreDictUnificator.addItemData(aEvent.Ore, new ItemData(Materials.Wood, 3628800L, new MaterialStack[0])); - } - break; - case slab: - if (tName.equals("Wood")) { - GT_OreDictUnificator.addItemData(aEvent.Ore, new ItemData(Materials.Wood, 1814400L, new MaterialStack[0])); - } - break; - case sheet: - if (tName.equals("Plastic")) { - GT_OreDictUnificator.registerOre(OrePrefixes.plate, Materials.Plastic, aEvent.Ore); - } - if (tName.equals("Rubber")) { - GT_OreDictUnificator.registerOre(OrePrefixes.plate, Materials.Rubber, aEvent.Ore); - } - break; - case crafting: - if (tName.equals("ToolSolderingMetal")) { - GregTech_API.registerSolderingMetal(aEvent.Ore); - } - if (tName.equals("IndustrialDiamond")) { - GT_OreDictUnificator.addToBlacklist(aEvent.Ore); - } - if (tName.equals("WireCopper")) { - GT_OreDictUnificator.registerOre(OrePrefixes.wire, Materials.Copper, aEvent.Ore); - } - break; - case wood: - if (tName.equals("Rubber")) { - GT_OreDictUnificator.registerOre("logRubber", aEvent.Ore); - } - break; - case food: - if (tName.equals("Cocoapowder")) { - GT_OreDictUnificator.registerOre(OrePrefixes.dust, Materials.Cocoa, aEvent.Ore); - } - break; - default: - break; - } - } - GT_Log.ore.println(tModToName); + return; + } + } else { + aPrefix.add(GT_Utility.copyAmount(1L, new Object[]{aEvent.Ore})); + } + } + } else if (aPrefix.mIsSelfReferencing) { + aPrefix.add(GT_Utility.copyAmount(1L, new Object[]{aEvent.Ore})); + } else { + GT_Log.ore.println(tModToName + " uses a Prefix as full OreDict Name, and is therefor invalid."); + aEvent.Ore.setStackDisplayName("Invalid OreDictionary Tag"); + return; + } + switch (aPrefix) { + case dye: + if (GT_Utility.isStringValid(tName)) { + GT_OreDictUnificator.registerOre(OrePrefixes.dye, aEvent.Ore); + } + break; + case stoneSmooth: + GT_OreDictUnificator.registerOre("stone", aEvent.Ore); + break; + case stoneCobble: + GT_OreDictUnificator.registerOre("cobblestone", aEvent.Ore); + break; + case plank: + if (tName.equals("Wood")) { + GT_OreDictUnificator.addItemData(aEvent.Ore, new ItemData(Materials.Wood, 3628800L, new MaterialStack[0])); + } + break; + case slab: + if (tName.equals("Wood")) { + GT_OreDictUnificator.addItemData(aEvent.Ore, new ItemData(Materials.Wood, 1814400L, new MaterialStack[0])); + } + break; + case sheet: + if (tName.equals("Plastic")) { + GT_OreDictUnificator.registerOre(OrePrefixes.plate, Materials.Plastic, aEvent.Ore); + } + if (tName.equals("Rubber")) { + GT_OreDictUnificator.registerOre(OrePrefixes.plate, Materials.Rubber, aEvent.Ore); + } + break; + case crafting: + if (tName.equals("ToolSolderingMetal")) { + GregTech_API.registerSolderingMetal(aEvent.Ore); + } + if (tName.equals("IndustrialDiamond")) { + GT_OreDictUnificator.addToBlacklist(aEvent.Ore); + } + if (tName.equals("WireCopper")) { + GT_OreDictUnificator.registerOre(OrePrefixes.wire, Materials.Copper, aEvent.Ore); + } + break; + case wood: + if (tName.equals("Rubber")) { + GT_OreDictUnificator.registerOre("logRubber", aEvent.Ore); + } + break; + case food: + if (tName.equals("Cocoapowder")) { + GT_OreDictUnificator.registerOre(OrePrefixes.dust, Materials.Cocoa, aEvent.Ore); + } + break; + default: + break; + } + } + GT_Log.ore.println(tModToName); - OreDictEventContainer tOre = new OreDictEventContainer(aEvent, aPrefix, aMaterial, aMod); - if ((!this.mOreDictActivated) || (!GregTech_API.sUnificationEntriesRegistered)) { - this.mEvents.add(tOre); - } else { - this.mEvents.clear(); - } - if (this.mOreDictActivated) { - registerRecipes(tOre); - } - } catch (Throwable e) { - e.printStackTrace(GT_Log.err); - } - } + OreDictEventContainer tOre = new OreDictEventContainer(aEvent, aPrefix, aMaterial, aMod); + if ((!this.mOreDictActivated) || (!GregTech_API.sUnificationEntriesRegistered)) { + this.mEvents.add(tOre); + } else { + this.mEvents.clear(); + } + if (this.mOreDictActivated) { + registerRecipes(tOre); + } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } - @SubscribeEvent - public void onFluidContainerRegistration(FluidContainerRegistry.FluidContainerRegisterEvent aFluidEvent) { - if ((aFluidEvent.data.filledContainer.getItem() == Items.potionitem) && (aFluidEvent.data.filledContainer.getItemDamage() == 0)) { - aFluidEvent.data.fluid.amount = 0; - } - GT_OreDictUnificator.addToBlacklist(aFluidEvent.data.emptyContainer); - GT_OreDictUnificator.addToBlacklist(aFluidEvent.data.filledContainer); - GT_Utility.addFluidContainerData(aFluidEvent.data); - } + @SubscribeEvent + public void onFluidContainerRegistration(FluidContainerRegistry.FluidContainerRegisterEvent aFluidEvent) { + if ((aFluidEvent.data.filledContainer.getItem() == Items.potionitem) && (aFluidEvent.data.filledContainer.getItemDamage() == 0)) { + aFluidEvent.data.fluid.amount = 0; + } + GT_OreDictUnificator.addToBlacklist(aFluidEvent.data.emptyContainer); + GT_OreDictUnificator.addToBlacklist(aFluidEvent.data.filledContainer); + GT_Utility.addFluidContainerData(aFluidEvent.data); + } - @SubscribeEvent - public void onServerTickEvent(TickEvent.ServerTickEvent aEvent) { - } + @SubscribeEvent + public void onServerTickEvent(TickEvent.ServerTickEvent aEvent) { + } - @SubscribeEvent - public void onWorldTickEvent(TickEvent.WorldTickEvent aEvent) { - if (aEvent.side.isServer()) { - if (this.mUniverse == null) { - this.mUniverse = aEvent.world; - } - if (this.isFirstServerWorldTick) { - File tSaveDiretory = getSaveDirectory(); - if (tSaveDiretory != null) { - this.isFirstServerWorldTick = false; - for (IMetaTileEntity tMetaTileEntity : GregTech_API.METATILEENTITIES) { - try { - if (tMetaTileEntity != null) { - tMetaTileEntity.onWorldLoad(tSaveDiretory); - } - } catch (Throwable e) { - e.printStackTrace(GT_Log.err); - } - } - } - } - if ((aEvent.world.getTotalWorldTime() % 100L == 0L) && ((this.mItemDespawnTime != 6000) || (this.mMaxEqualEntitiesAtOneSpot > 0))) { - for (int i = 0; i < aEvent.world.loadedEntityList.size(); i++) { - if ((aEvent.world.loadedEntityList.get(i) instanceof Entity)) { - Entity tEntity = (Entity) aEvent.world.loadedEntityList.get(i); - if (((tEntity instanceof EntityItem)) && (this.mItemDespawnTime != 6000) && (((EntityItem) tEntity).lifespan == 6000)) { - ((EntityItem) tEntity).lifespan = this.mItemDespawnTime; - } else if (((tEntity instanceof EntityLivingBase)) && (this.mMaxEqualEntitiesAtOneSpot > 0) && (!(tEntity instanceof EntityPlayer)) - && (((EntityLivingBase) tEntity).canBePushed()) && (((EntityLivingBase) tEntity).getHealth() > 0.0F)) { - List tList = tEntity.worldObj.getEntitiesWithinAABBExcludingEntity(tEntity, - tEntity.boundingBox.expand(0.20000000298023224D, 0.0D, 0.20000000298023224D)); - Class tClass = tEntity.getClass(); - int tEntityCount = 1; - if (tList != null) { - for (int j = 0; j < tList.size(); j++) { - if ((tList.get(j) != null) && (tList.get(j).getClass() == tClass)) { - tEntityCount++; - } - } - } - if (tEntityCount > this.mMaxEqualEntitiesAtOneSpot) { - tEntity.attackEntityFrom(DamageSource.inWall, tEntityCount - this.mMaxEqualEntitiesAtOneSpot); - } - } - } - } - } - } - } + @SubscribeEvent + public void onWorldTickEvent(TickEvent.WorldTickEvent aEvent) { + if (aEvent.side.isServer()) { + if (this.mUniverse == null) { + this.mUniverse = aEvent.world; + } + if (this.isFirstServerWorldTick) { + File tSaveDiretory = getSaveDirectory(); + if (tSaveDiretory != null) { + this.isFirstServerWorldTick = false; + for (IMetaTileEntity tMetaTileEntity : GregTech_API.METATILEENTITIES) { + try { + if (tMetaTileEntity != null) { + tMetaTileEntity.onWorldLoad(tSaveDiretory); + } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } + } + } + if ((aEvent.world.getTotalWorldTime() % 100L == 0L) && ((this.mItemDespawnTime != 6000) || (this.mMaxEqualEntitiesAtOneSpot > 0))) { + for (int i = 0; i < aEvent.world.loadedEntityList.size(); i++) { + if ((aEvent.world.loadedEntityList.get(i) instanceof Entity)) { + Entity tEntity = (Entity) aEvent.world.loadedEntityList.get(i); + if (((tEntity instanceof EntityItem)) && (this.mItemDespawnTime != 6000) && (((EntityItem) tEntity).lifespan == 6000)) { + ((EntityItem) tEntity).lifespan = this.mItemDespawnTime; + } else if (((tEntity instanceof EntityLivingBase)) && (this.mMaxEqualEntitiesAtOneSpot > 0) && (!(tEntity instanceof EntityPlayer)) + && (((EntityLivingBase) tEntity).canBePushed()) && (((EntityLivingBase) tEntity).getHealth() > 0.0F)) { + List tList = tEntity.worldObj.getEntitiesWithinAABBExcludingEntity(tEntity, + tEntity.boundingBox.expand(0.20000000298023224D, 0.0D, 0.20000000298023224D)); + Class tClass = tEntity.getClass(); + int tEntityCount = 1; + if (tList != null) { + for (int j = 0; j < tList.size(); j++) { + if ((tList.get(j) != null) && (tList.get(j).getClass() == tClass)) { + tEntityCount++; + } + } + } + if (tEntityCount > this.mMaxEqualEntitiesAtOneSpot) { + tEntity.attackEntityFrom(DamageSource.inWall, tEntityCount - this.mMaxEqualEntitiesAtOneSpot); + } + } + } + } + } + } + } - @SubscribeEvent - public void onPlayerTickEventServer(TickEvent.PlayerTickEvent aEvent) { - if ((!aEvent.player.isDead) && (aEvent.phase == TickEvent.Phase.END) && (aEvent.side.isServer())) { - if ((aEvent.player.ticksExisted % 200 == 0) && (aEvent.player.capabilities.allowEdit) && (!aEvent.player.capabilities.isCreativeMode) - && (this.mSurvivalIntoAdventure)) { - aEvent.player.setGameType(GameType.ADVENTURE); - aEvent.player.capabilities.allowEdit = false; - if (this.mAxeWhenAdventure) { - GT_Utility.sendChatToPlayer(aEvent.player, "It's dangerous to go alone! Take this."); - aEvent.player.worldObj.spawnEntityInWorld(new EntityItem(aEvent.player.worldObj, aEvent.player.posX, aEvent.player.posY, - aEvent.player.posZ, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(6, 1, Materials.Flint, Materials.Wood, null))); - } - } - boolean tHungerEffect = (this.mHungerEffect) && (aEvent.player.ticksExisted % 2400 == 1200); - if (aEvent.player.ticksExisted % 120 == 0) { - int tCount = 64; - for (int i = 0; i < 36; i++) { - ItemStack tStack; - if ((tStack = aEvent.player.inventory.getStackInSlot(i)) != null) { - if (!aEvent.player.capabilities.isCreativeMode) { - GT_Utility.applyRadioactivity(aEvent.player, GT_Utility.getRadioactivityLevel(tStack), tStack.stackSize); - float tHeat = GT_Utility.getHeatDamageFromItem(tStack); - if (tHeat != 0.0F) { - if (tHeat > 0.0F) { - GT_Utility.applyHeatDamage(aEvent.player, tHeat); - } else { - GT_Utility.applyFrostDamage(aEvent.player, -tHeat); - } - } - } - if (tHungerEffect) { - tCount += tStack.stackSize * 64 / Math.max(1, tStack.getMaxStackSize()); - } - if (this.mInventoryUnification) { - GT_OreDictUnificator.setStack(true, tStack); - } - } - } - for (int i = 0; i < 4; i++) { - ItemStack tStack; - if ((tStack = aEvent.player.inventory.armorInventory[i]) != null) { - if (!aEvent.player.capabilities.isCreativeMode) { - GT_Utility.applyRadioactivity(aEvent.player, GT_Utility.getRadioactivityLevel(tStack), tStack.stackSize); - float tHeat = GT_Utility.getHeatDamageFromItem(tStack); - if (tHeat != 0.0F) { - if (tHeat > 0.0F) { - GT_Utility.applyHeatDamage(aEvent.player, tHeat); - } else { - GT_Utility.applyFrostDamage(aEvent.player, -tHeat); - } - } - } - if (tHungerEffect) { - tCount += 256; - } - } - } - if (tHungerEffect) { - aEvent.player.addExhaustion(Math.max(1.0F, tCount / 666.6F)); - } - } - } - } + @SubscribeEvent + public void onPlayerTickEventServer(TickEvent.PlayerTickEvent aEvent) { + if ((!aEvent.player.isDead) && (aEvent.phase == TickEvent.Phase.END) && (aEvent.side.isServer())) { + if ((aEvent.player.ticksExisted % 200 == 0) && (aEvent.player.capabilities.allowEdit) && (!aEvent.player.capabilities.isCreativeMode) + && (this.mSurvivalIntoAdventure)) { + aEvent.player.setGameType(GameType.ADVENTURE); + aEvent.player.capabilities.allowEdit = false; + if (this.mAxeWhenAdventure) { + GT_Utility.sendChatToPlayer(aEvent.player, "It's dangerous to go alone! Take this."); + aEvent.player.worldObj.spawnEntityInWorld(new EntityItem(aEvent.player.worldObj, aEvent.player.posX, aEvent.player.posY, + aEvent.player.posZ, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(6, 1, Materials.Flint, Materials.Wood, null))); + } + } + boolean tHungerEffect = (this.mHungerEffect) && (aEvent.player.ticksExisted % 2400 == 1200); + if (aEvent.player.ticksExisted % 120 == 0) { + int tCount = 64; + for (int i = 0; i < 36; i++) { + ItemStack tStack; + if ((tStack = aEvent.player.inventory.getStackInSlot(i)) != null) { + if (!aEvent.player.capabilities.isCreativeMode) { + GT_Utility.applyRadioactivity(aEvent.player, GT_Utility.getRadioactivityLevel(tStack), tStack.stackSize); + float tHeat = GT_Utility.getHeatDamageFromItem(tStack); + if (tHeat != 0.0F) { + if (tHeat > 0.0F) { + GT_Utility.applyHeatDamage(aEvent.player, tHeat); + } else { + GT_Utility.applyFrostDamage(aEvent.player, -tHeat); + } + } + } + if (tHungerEffect) { + tCount += tStack.stackSize * 64 / Math.max(1, tStack.getMaxStackSize()); + } + if (this.mInventoryUnification) { + GT_OreDictUnificator.setStack(true, tStack); + } + } + } + for (int i = 0; i < 4; i++) { + ItemStack tStack; + if ((tStack = aEvent.player.inventory.armorInventory[i]) != null) { + if (!aEvent.player.capabilities.isCreativeMode) { + GT_Utility.applyRadioactivity(aEvent.player, GT_Utility.getRadioactivityLevel(tStack), tStack.stackSize); + float tHeat = GT_Utility.getHeatDamageFromItem(tStack); + if (tHeat != 0.0F) { + if (tHeat > 0.0F) { + GT_Utility.applyHeatDamage(aEvent.player, tHeat); + } else { + GT_Utility.applyFrostDamage(aEvent.player, -tHeat); + } + } + } + if (tHungerEffect) { + tCount += 256; + } + } + } + if (tHungerEffect) { + aEvent.player.addExhaustion(Math.max(1.0F, tCount / 666.6F)); + } + } + } + } - public Object getServerGuiElement(int aID, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ) { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity instanceof IGregTechTileEntity)) { - IMetaTileEntity tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity(); - if (tMetaTileEntity != null) { - return tMetaTileEntity.getServerGUI(aID, aPlayer.inventory, (IGregTechTileEntity) tTileEntity); - } - } - return null; - } + public Object getServerGuiElement(int aID, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity instanceof IGregTechTileEntity)) { + IMetaTileEntity tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity(); + if (tMetaTileEntity != null) { + return tMetaTileEntity.getServerGUI(aID, aPlayer.inventory, (IGregTechTileEntity) tTileEntity); + } + } + return null; + } - public Object getClientGuiElement(int aID, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ) { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity instanceof IGregTechTileEntity)) { - IMetaTileEntity tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity(); - if (tMetaTileEntity != null) { - return tMetaTileEntity.getClientGUI(aID, aPlayer.inventory, (IGregTechTileEntity) tTileEntity); - } - } - return null; - } + public Object getClientGuiElement(int aID, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity instanceof IGregTechTileEntity)) { + IMetaTileEntity tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity(); + if (tMetaTileEntity != null) { + return tMetaTileEntity.getClientGUI(aID, aPlayer.inventory, (IGregTechTileEntity) tTileEntity); + } + } + return null; + } - public int getBurnTime(ItemStack aFuel) { - if ((aFuel == null) || (aFuel.getItem() == null)) { - return 0; - } - short rFuelValue = 0; - if ((aFuel.getItem() instanceof GT_MetaGenerated_Item)) { - Short tFuelValue = (Short) ((GT_MetaGenerated_Item) aFuel.getItem()).mBurnValues.get(Short.valueOf((short) aFuel.getItemDamage())); - if (tFuelValue != null) { - rFuelValue = (short) Math.max(rFuelValue, tFuelValue.shortValue()); - } - } - NBTTagCompound tNBT = aFuel.getTagCompound(); - if (tNBT != null) { - short tValue = tNBT.getShort("GT.ItemFuelValue"); - rFuelValue = (short) Math.max(rFuelValue, tValue); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "gemSodium")) { - rFuelValue = (short) Math.max(rFuelValue, 4000); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "crushedSodium")) { - rFuelValue = (short) Math.max(rFuelValue, 4000); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustImpureSodium")) { - rFuelValue = (short) Math.max(rFuelValue, 4000); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustSodium")) { - rFuelValue = (short) Math.max(rFuelValue, 4000); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustSmallSodium")) { - rFuelValue = (short) Math.max(rFuelValue, 1000); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustTinySodium")) { - rFuelValue = (short) Math.max(rFuelValue, 444); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "gemLithium")) { - rFuelValue = (short) Math.max(rFuelValue, 6000); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "crushedLithium")) { - rFuelValue = (short) Math.max(rFuelValue, 6000); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustImpureLithium")) { - rFuelValue = (short) Math.max(rFuelValue, 6000); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustLithium")) { - rFuelValue = (short) Math.max(rFuelValue, 6000); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustSmallLithium")) { - rFuelValue = (short) Math.max(rFuelValue, 2000); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustTinyLithium")) { - rFuelValue = (short) Math.max(rFuelValue, 888); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "gemLignite")) { - rFuelValue = (short) Math.max(rFuelValue, 300); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "crushedLignite")) { - rFuelValue = (short) Math.max(rFuelValue, 300); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustImpureLignite")) { - rFuelValue = (short) Math.max(rFuelValue, 300); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustLignite")) { - rFuelValue = (short) Math.max(rFuelValue, 300); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustSmallLignite")) { - rFuelValue = (short) Math.max(rFuelValue, 75); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustTinyLignite")) { - rFuelValue = (short) Math.max(rFuelValue, 33); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "gemCoal")) { - rFuelValue = (short) Math.max(rFuelValue, 1600); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "crushedCoal")) { - rFuelValue = (short) Math.max(rFuelValue, 1600); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustImpureCoal")) { - rFuelValue = (short) Math.max(rFuelValue, 1600); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustCoal")) { - rFuelValue = (short) Math.max(rFuelValue, 1600); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustSmallCoal")) { - rFuelValue = (short) Math.max(rFuelValue, 400); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustTinyCoal")) { - rFuelValue = (short) Math.max(rFuelValue, 177); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "gemCharcoal")) { - rFuelValue = (short) Math.max(rFuelValue, 1600); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "crushedCharcoal")) { - rFuelValue = (short) Math.max(rFuelValue, 1600); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustImpureCharcoal")) { - rFuelValue = (short) Math.max(rFuelValue, 1600); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustCharcoal")) { - rFuelValue = (short) Math.max(rFuelValue, 1600); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustSmallCharcoal")) { - rFuelValue = (short) Math.max(rFuelValue, 400); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustTinyCharcoal")) { - rFuelValue = (short) Math.max(rFuelValue, 177); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustWood")) { - rFuelValue = (short) Math.max(rFuelValue, 100); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustSmallWood")) { - rFuelValue = (short) Math.max(rFuelValue, 25); - } - if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustTinyWood")) { - rFuelValue = (short) Math.max(rFuelValue, 11); - } - if (GT_Utility.areStacksEqual(aFuel, new ItemStack(Blocks.wooden_button, 1))) { - rFuelValue = (short) Math.max(rFuelValue, 150); - } - if (GT_Utility.areStacksEqual(aFuel, new ItemStack(Blocks.ladder, 1))) { - rFuelValue = (short) Math.max(rFuelValue, 100); - } - if (GT_Utility.areStacksEqual(aFuel, new ItemStack(Items.sign, 1))) { - rFuelValue = (short) Math.max(rFuelValue, 600); - } - if (GT_Utility.areStacksEqual(aFuel, new ItemStack(Items.wooden_door, 1))) { - rFuelValue = (short) Math.max(rFuelValue, 600); - } - return rFuelValue; - } + public int getBurnTime(ItemStack aFuel) { + if ((aFuel == null) || (aFuel.getItem() == null)) { + return 0; + } + short rFuelValue = 0; + if ((aFuel.getItem() instanceof GT_MetaGenerated_Item)) { + Short tFuelValue = (Short) ((GT_MetaGenerated_Item) aFuel.getItem()).mBurnValues.get(Short.valueOf((short) aFuel.getItemDamage())); + if (tFuelValue != null) { + rFuelValue = (short) Math.max(rFuelValue, tFuelValue.shortValue()); + } + } + NBTTagCompound tNBT = aFuel.getTagCompound(); + if (tNBT != null) { + short tValue = tNBT.getShort("GT.ItemFuelValue"); + rFuelValue = (short) Math.max(rFuelValue, tValue); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "gemSodium")) { + rFuelValue = (short) Math.max(rFuelValue, 4000); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "crushedSodium")) { + rFuelValue = (short) Math.max(rFuelValue, 4000); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustImpureSodium")) { + rFuelValue = (short) Math.max(rFuelValue, 4000); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustSodium")) { + rFuelValue = (short) Math.max(rFuelValue, 4000); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustSmallSodium")) { + rFuelValue = (short) Math.max(rFuelValue, 1000); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustTinySodium")) { + rFuelValue = (short) Math.max(rFuelValue, 444); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "gemLithium")) { + rFuelValue = (short) Math.max(rFuelValue, 6000); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "crushedLithium")) { + rFuelValue = (short) Math.max(rFuelValue, 6000); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustImpureLithium")) { + rFuelValue = (short) Math.max(rFuelValue, 6000); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustLithium")) { + rFuelValue = (short) Math.max(rFuelValue, 6000); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustSmallLithium")) { + rFuelValue = (short) Math.max(rFuelValue, 2000); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustTinyLithium")) { + rFuelValue = (short) Math.max(rFuelValue, 888); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "gemLignite")) { + rFuelValue = (short) Math.max(rFuelValue, 300); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "crushedLignite")) { + rFuelValue = (short) Math.max(rFuelValue, 300); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustImpureLignite")) { + rFuelValue = (short) Math.max(rFuelValue, 300); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustLignite")) { + rFuelValue = (short) Math.max(rFuelValue, 300); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustSmallLignite")) { + rFuelValue = (short) Math.max(rFuelValue, 75); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustTinyLignite")) { + rFuelValue = (short) Math.max(rFuelValue, 33); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "gemCoal")) { + rFuelValue = (short) Math.max(rFuelValue, 1600); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "crushedCoal")) { + rFuelValue = (short) Math.max(rFuelValue, 1600); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustImpureCoal")) { + rFuelValue = (short) Math.max(rFuelValue, 1600); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustCoal")) { + rFuelValue = (short) Math.max(rFuelValue, 1600); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustSmallCoal")) { + rFuelValue = (short) Math.max(rFuelValue, 400); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustTinyCoal")) { + rFuelValue = (short) Math.max(rFuelValue, 177); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "gemCharcoal")) { + rFuelValue = (short) Math.max(rFuelValue, 1600); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "crushedCharcoal")) { + rFuelValue = (short) Math.max(rFuelValue, 1600); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustImpureCharcoal")) { + rFuelValue = (short) Math.max(rFuelValue, 1600); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustCharcoal")) { + rFuelValue = (short) Math.max(rFuelValue, 1600); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustSmallCharcoal")) { + rFuelValue = (short) Math.max(rFuelValue, 400); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustTinyCharcoal")) { + rFuelValue = (short) Math.max(rFuelValue, 177); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustWood")) { + rFuelValue = (short) Math.max(rFuelValue, 100); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustSmallWood")) { + rFuelValue = (short) Math.max(rFuelValue, 25); + } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustTinyWood")) { + rFuelValue = (short) Math.max(rFuelValue, 11); + } + if (GT_Utility.areStacksEqual(aFuel, new ItemStack(Blocks.wooden_button, 1))) { + rFuelValue = (short) Math.max(rFuelValue, 150); + } + if (GT_Utility.areStacksEqual(aFuel, new ItemStack(Blocks.ladder, 1))) { + rFuelValue = (short) Math.max(rFuelValue, 100); + } + if (GT_Utility.areStacksEqual(aFuel, new ItemStack(Items.sign, 1))) { + rFuelValue = (short) Math.max(rFuelValue, 600); + } + if (GT_Utility.areStacksEqual(aFuel, new ItemStack(Items.wooden_door, 1))) { + rFuelValue = (short) Math.max(rFuelValue, 600); + } + return rFuelValue; + } - public Fluid addAutogeneratedMoltenFluid(Materials aMaterial) { - return addFluid("molten." + aMaterial.name().toLowerCase(), "molten.autogenerated", "Molten " + aMaterial.mDefaultLocalName, aMaterial, - aMaterial.mMoltenRGBa, 4, aMaterial.mMeltingPoint <= 0 ? 1000 : aMaterial.mMeltingPoint, null, null, 0); - } + public Fluid addAutogeneratedMoltenFluid(Materials aMaterial) { + return addFluid("molten." + aMaterial.name().toLowerCase(), "molten.autogenerated", "Molten " + aMaterial.mDefaultLocalName, aMaterial, + aMaterial.mMoltenRGBa, 4, aMaterial.mMeltingPoint <= 0 ? 1000 : aMaterial.mMeltingPoint, null, null, 0); + } - public Fluid addAutogeneratedPlasmaFluid(Materials aMaterial) { - return addFluid("plasma." + aMaterial.name().toLowerCase(), "plasma.autogenerated", aMaterial.mDefaultLocalName + " Plasma", aMaterial, - aMaterial.mMoltenRGBa, 3, 10000, GT_OreDictUnificator.get(OrePrefixes.cellPlasma, aMaterial, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), - 1000); - } + public Fluid addAutogeneratedPlasmaFluid(Materials aMaterial) { + return addFluid("plasma." + aMaterial.name().toLowerCase(), "plasma.autogenerated", aMaterial.mDefaultLocalName + " Plasma", aMaterial, + aMaterial.mMoltenRGBa, 3, 10000, GT_OreDictUnificator.get(OrePrefixes.cellPlasma, aMaterial, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), + 1000); + } - public Fluid addFluid(String aName, String aLocalized, Materials aMaterial, int aState, int aTemperatureK) { - return addFluid(aName, aLocalized, aMaterial, aState, aTemperatureK, null, null, 0); - } + public Fluid addFluid(String aName, String aLocalized, Materials aMaterial, int aState, int aTemperatureK) { + return addFluid(aName, aLocalized, aMaterial, aState, aTemperatureK, null, null, 0); + } - public Fluid addFluid(String aName, String aLocalized, Materials aMaterial, int aState, int aTemperatureK, ItemStack aFullContainer, - ItemStack aEmptyContainer, int aFluidAmount) { - return addFluid(aName, aName.toLowerCase(), aLocalized, aMaterial, null, aState, aTemperatureK, aFullContainer, aEmptyContainer, aFluidAmount); - } + public Fluid addFluid(String aName, String aLocalized, Materials aMaterial, int aState, int aTemperatureK, ItemStack aFullContainer, + ItemStack aEmptyContainer, int aFluidAmount) { + return addFluid(aName, aName.toLowerCase(), aLocalized, aMaterial, null, aState, aTemperatureK, aFullContainer, aEmptyContainer, aFluidAmount); + } - public Fluid addFluid(String aName, String aTexture, String aLocalized, Materials aMaterial, short[] aRGBa, int aState, int aTemperatureK, - ItemStack aFullContainer, ItemStack aEmptyContainer, int aFluidAmount) { - aName = aName.toLowerCase(); - Fluid rFluid = new GT_Fluid(aName, aTexture, aRGBa != null ? aRGBa : Dyes._NULL.getRGBA()); - GT_LanguageManager.addStringLocalization(rFluid.getUnlocalizedName(), aLocalized == null ? aName : aLocalized); - if (FluidRegistry.registerFluid(rFluid)) { - switch (aState) { - case 0: - rFluid.setGaseous(false); - rFluid.setViscosity(10000); - break; - case 1: - case 4: - rFluid.setGaseous(false); - rFluid.setViscosity(1000); - break; - case 2: - rFluid.setGaseous(true); - rFluid.setDensity(-100); - rFluid.setViscosity(200); - break; - case 3: - rFluid.setGaseous(true); - rFluid.setDensity(55536); - rFluid.setViscosity(10); - rFluid.setLuminosity(15); - } - } else { - rFluid = FluidRegistry.getFluid(aName); - } - if (rFluid.getTemperature() == new Fluid("test").getTemperature()) { - rFluid.setTemperature(aTemperatureK); - } - if (aMaterial != null) { - switch (aState) { - case 0: - aMaterial.mSolid = rFluid; - break; - case 1: - aMaterial.mFluid = rFluid; - break; - case 2: - aMaterial.mGas = rFluid; - break; - case 3: - aMaterial.mPlasma = rFluid; - break; - case 4: - aMaterial.mStandardMoltenFluid = rFluid; - } - } - if ((aFullContainer != null) && (aEmptyContainer != null) - && (!FluidContainerRegistry.registerFluidContainer(new FluidStack(rFluid, aFluidAmount), aFullContainer, aEmptyContainer))) { - GT_Values.RA.addFluidCannerRecipe(aFullContainer, GT_Utility.getContainerItem(aFullContainer, false), null, new FluidStack(rFluid, aFluidAmount)); - } - return rFluid; - } + public Fluid addFluid(String aName, String aTexture, String aLocalized, Materials aMaterial, short[] aRGBa, int aState, int aTemperatureK, + ItemStack aFullContainer, ItemStack aEmptyContainer, int aFluidAmount) { + aName = aName.toLowerCase(); + Fluid rFluid = new GT_Fluid(aName, aTexture, aRGBa != null ? aRGBa : Dyes._NULL.getRGBA()); + GT_LanguageManager.addStringLocalization(rFluid.getUnlocalizedName(), aLocalized == null ? aName : aLocalized); + if (FluidRegistry.registerFluid(rFluid)) { + switch (aState) { + case 0: + rFluid.setGaseous(false); + rFluid.setViscosity(10000); + break; + case 1: + case 4: + rFluid.setGaseous(false); + rFluid.setViscosity(1000); + break; + case 2: + rFluid.setGaseous(true); + rFluid.setDensity(-100); + rFluid.setViscosity(200); + break; + case 3: + rFluid.setGaseous(true); + rFluid.setDensity(55536); + rFluid.setViscosity(10); + rFluid.setLuminosity(15); + } + } else { + rFluid = FluidRegistry.getFluid(aName); + } + if (rFluid.getTemperature() == new Fluid("test").getTemperature()) { + rFluid.setTemperature(aTemperatureK); + } + if (aMaterial != null) { + switch (aState) { + case 0: + aMaterial.mSolid = rFluid; + break; + case 1: + aMaterial.mFluid = rFluid; + break; + case 2: + aMaterial.mGas = rFluid; + break; + case 3: + aMaterial.mPlasma = rFluid; + break; + case 4: + aMaterial.mStandardMoltenFluid = rFluid; + } + } + if ((aFullContainer != null) && (aEmptyContainer != null) + && (!FluidContainerRegistry.registerFluidContainer(new FluidStack(rFluid, aFluidAmount), aFullContainer, aEmptyContainer))) { + GT_Values.RA.addFluidCannerRecipe(aFullContainer, GT_Utility.getContainerItem(aFullContainer, false), null, new FluidStack(rFluid, aFluidAmount)); + } + return rFluid; + } - public File getSaveDirectory() { - return this.mUniverse == null ? null : this.mUniverse.getSaveHandler().getWorldDirectory(); - } + public File getSaveDirectory() { + return this.mUniverse == null ? null : this.mUniverse.getSaveHandler().getWorldDirectory(); + } - public void registerUnificationEntries() { - GregTech_API.sUnification.mConfig.save(); - GregTech_API.sUnification.mConfig.load(); - GT_OreDictUnificator.resetUnificationEntries(); - for (OreDictEventContainer tOre : this.mEvents) { - if ((!(tOre.mEvent.Ore.getItem() instanceof GT_MetaGenerated_Item)) && (tOre.mPrefix != null) && (tOre.mPrefix.mIsUnificatable) - && (tOre.mMaterial != null)) { - if(tOre.mModID!=null&&tOre.mModID.toLowerCase().equals("enderio")&&tOre.mPrefix==OrePrefixes.ingot&&tOre.mMaterial==Materials.DarkSteel){ - GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); - GT_OreDictUnificator.set(tOre.mPrefix,tOre.mMaterial,tOre.mEvent.Ore,(tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); - }else if(tOre.mModID!=null&&tOre.mModID.toLowerCase().equals("thermalfoundation")&&tOre.mPrefix==OrePrefixes.dust&&tOre.mMaterial==Materials.Blizz){ - GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); - GT_OreDictUnificator.set(tOre.mPrefix,tOre.mMaterial,tOre.mEvent.Ore,(tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); - }else if(tOre.mModID!=null&&tOre.mModID.toLowerCase().equals("thermalfoundation")&&tOre.mPrefix==OrePrefixes.dust&&tOre.mMaterial==Materials.Pyrotheum){ - GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); - GT_OreDictUnificator.set(tOre.mPrefix,tOre.mMaterial,tOre.mEvent.Ore,(tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); - }else if(tOre.mModID!=null&&tOre.mModID.toLowerCase().equals("arsmagica2")&&tOre.mPrefix==OrePrefixes.dust&&tOre.mMaterial==Materials.Vinteum){ - GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); - GT_OreDictUnificator.set(tOre.mPrefix,tOre.mMaterial,tOre.mEvent.Ore,(tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); - }else if(tOre.mModID!=null&&tOre.mModID.toLowerCase().equals("arsmagica2")&&tOre.mPrefix==OrePrefixes.gem&&tOre.mMaterial==Materials.BlueTopaz){ - GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); - GT_OreDictUnificator.set(tOre.mPrefix,tOre.mMaterial,tOre.mEvent.Ore,(tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); - }else if(tOre.mModID!=null&&tOre.mModID.toLowerCase().equals("arsmagica2")&&tOre.mPrefix==OrePrefixes.gem&&tOre.mMaterial==Materials.Chimerite){ - GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); - GT_OreDictUnificator.set(tOre.mPrefix,tOre.mMaterial,tOre.mEvent.Ore,(tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); - }else if(tOre.mModID!=null&&tOre.mModID.toLowerCase().equals("arsmagica2")&&tOre.mPrefix==OrePrefixes.gem&&tOre.mMaterial==Materials.Moonstone){ - GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); - GT_OreDictUnificator.set(tOre.mPrefix,tOre.mMaterial,tOre.mEvent.Ore,(tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); - }else if(tOre.mModID!=null&&tOre.mModID.toLowerCase().equals("arsmagica2")&&tOre.mPrefix==OrePrefixes.gem&&tOre.mMaterial==Materials.Sunstone){ - GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); - GT_OreDictUnificator.set(tOre.mPrefix,tOre.mMaterial,tOre.mEvent.Ore,(tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); - }else if(tOre.mModID!=null&&tOre.mModID.toLowerCase().equals("rotarycraft")&&tOre.mPrefix==OrePrefixes.ingot&&tOre.mMaterial==Materials.HSLA){ - GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); - GT_OreDictUnificator.set(tOre.mPrefix,tOre.mMaterial,tOre.mEvent.Ore,(tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); - }else if(tOre.mModID!=null&&tOre.mModID.toLowerCase().equals("appliedenergistics2")&&tOre.mPrefix==OrePrefixes.gem&&tOre.mMaterial==Materials.CertusQuartz){ - GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); - GT_OreDictUnificator.set(tOre.mPrefix,tOre.mMaterial,tOre.mEvent.Ore,(tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); - }else if(tOre.mModID!=null&&tOre.mModID.toLowerCase().equals("appliedenergistics2")&&tOre.mPrefix==OrePrefixes.dust&&tOre.mMaterial==Materials.CertusQuartz){ - GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); - GT_OreDictUnificator.set(tOre.mPrefix,tOre.mMaterial,tOre.mEvent.Ore,(tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); - }else if(GT_OreDictUnificator.isBlacklisted(tOre.mEvent.Ore)) { - GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, true); - } else { - GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); - GT_OreDictUnificator.set(tOre.mPrefix,tOre.mMaterial,tOre.mEvent.Ore,(tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, false)), true); - } - } - } - for (OreDictEventContainer tOre : this.mEvents) { - if (((tOre.mEvent.Ore.getItem() instanceof GT_MetaGenerated_Item)) && (tOre.mPrefix != null) && (tOre.mPrefix.mIsUnificatable) - && (tOre.mMaterial != null)) { - if (GT_OreDictUnificator.isBlacklisted(tOre.mEvent.Ore)) { - GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, true); - } else { - GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); - GT_OreDictUnificator.set(tOre.mPrefix,tOre.mMaterial,tOre.mEvent.Ore,(tOre.mModID != null)&& - (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name,false)), true); - } - } - } - GregTech_API.sUnificationEntriesRegistered = true; - GregTech_API.sUnification.mConfig.save(); - GT_Recipe.reInit(); - } + public void registerUnificationEntries() { + GregTech_API.sUnification.mConfig.save(); + GregTech_API.sUnification.mConfig.load(); + GT_OreDictUnificator.resetUnificationEntries(); + for (OreDictEventContainer tOre : this.mEvents) { + if ((!(tOre.mEvent.Ore.getItem() instanceof GT_MetaGenerated_Item)) && (tOre.mPrefix != null) && (tOre.mPrefix.mIsUnificatable) + && (tOre.mMaterial != null)) { + if (tOre.mModID != null && tOre.mModID.toLowerCase().equals("enderio") && tOre.mPrefix == OrePrefixes.ingot && tOre.mMaterial == Materials.DarkSteel) { + GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); + GT_OreDictUnificator.set(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, (tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); + } else if (tOre.mModID != null && tOre.mModID.toLowerCase().equals("thermalfoundation") && tOre.mPrefix == OrePrefixes.dust && tOre.mMaterial == Materials.Blizz) { + GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); + GT_OreDictUnificator.set(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, (tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); + } else if (tOre.mModID != null && tOre.mModID.toLowerCase().equals("thermalfoundation") && tOre.mPrefix == OrePrefixes.dust && tOre.mMaterial == Materials.Pyrotheum) { + GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); + GT_OreDictUnificator.set(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, (tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); + } else if (tOre.mModID != null && tOre.mModID.toLowerCase().equals("arsmagica2") && tOre.mPrefix == OrePrefixes.dust && tOre.mMaterial == Materials.Vinteum) { + GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); + GT_OreDictUnificator.set(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, (tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); + } else if (tOre.mModID != null && tOre.mModID.toLowerCase().equals("arsmagica2") && tOre.mPrefix == OrePrefixes.gem && tOre.mMaterial == Materials.BlueTopaz) { + GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); + GT_OreDictUnificator.set(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, (tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); + } else if (tOre.mModID != null && tOre.mModID.toLowerCase().equals("arsmagica2") && tOre.mPrefix == OrePrefixes.gem && tOre.mMaterial == Materials.Chimerite) { + GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); + GT_OreDictUnificator.set(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, (tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); + } else if (tOre.mModID != null && tOre.mModID.toLowerCase().equals("arsmagica2") && tOre.mPrefix == OrePrefixes.gem && tOre.mMaterial == Materials.Moonstone) { + GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); + GT_OreDictUnificator.set(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, (tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); + } else if (tOre.mModID != null && tOre.mModID.toLowerCase().equals("arsmagica2") && tOre.mPrefix == OrePrefixes.gem && tOre.mMaterial == Materials.Sunstone) { + GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); + GT_OreDictUnificator.set(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, (tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); + } else if (tOre.mModID != null && tOre.mModID.toLowerCase().equals("rotarycraft") && tOre.mPrefix == OrePrefixes.ingot && tOre.mMaterial == Materials.HSLA) { + GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); + GT_OreDictUnificator.set(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, (tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); + } else if (tOre.mModID != null && tOre.mModID.toLowerCase().equals("appliedenergistics2") && tOre.mPrefix == OrePrefixes.gem && tOre.mMaterial == Materials.CertusQuartz) { + GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); + GT_OreDictUnificator.set(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, (tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); + } else if (tOre.mModID != null && tOre.mModID.toLowerCase().equals("appliedenergistics2") && tOre.mPrefix == OrePrefixes.dust && tOre.mMaterial == Materials.CertusQuartz) { + GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); + GT_OreDictUnificator.set(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, (tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); + } else if (GT_OreDictUnificator.isBlacklisted(tOre.mEvent.Ore)) { + GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, true); + } else { + GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); + GT_OreDictUnificator.set(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, (tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, false)), true); + } + } + } + for (OreDictEventContainer tOre : this.mEvents) { + if (((tOre.mEvent.Ore.getItem() instanceof GT_MetaGenerated_Item)) && (tOre.mPrefix != null) && (tOre.mPrefix.mIsUnificatable) + && (tOre.mMaterial != null)) { + if (GT_OreDictUnificator.isBlacklisted(tOre.mEvent.Ore)) { + GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, true); + } else { + GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); + GT_OreDictUnificator.set(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, (tOre.mModID != null) && + (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, false)), true); + } + } + } + GregTech_API.sUnificationEntriesRegistered = true; + GregTech_API.sUnification.mConfig.save(); + GT_Recipe.reInit(); + } - public void activateOreDictHandler() { - this.mOreDictActivated = true; - OreDictEventContainer tEvent; - for (Iterator i$ = this.mEvents.iterator(); i$.hasNext(); registerRecipes(tEvent)) { - tEvent = (OreDictEventContainer) i$.next(); - } - } + public void activateOreDictHandler() { + this.mOreDictActivated = true; + OreDictEventContainer tEvent; + for (Iterator i$ = this.mEvents.iterator(); i$.hasNext(); registerRecipes(tEvent)) { + tEvent = (OreDictEventContainer) i$.next(); + } + } - private static final void registerRecipes(OreDictEventContainer aOre) { - if ((aOre.mEvent.Ore == null) || (aOre.mEvent.Ore.getItem() == null)) { - return; - } - if (aOre.mEvent.Ore.stackSize != 1) { - aOre.mEvent.Ore.stackSize = 1; - } - if (aOre.mPrefix != null) { - if (!aOre.mPrefix.isIgnored(aOre.mMaterial)) { - aOre.mPrefix.processOre(aOre.mMaterial == null ? Materials._NULL : aOre.mMaterial, aOre.mEvent.Name, aOre.mModID, - GT_Utility.copyAmount(1L, new Object[] { aOre.mEvent.Ore })); - } - } else { -// System.out.println("Thingy Name: "+ aOre.mEvent.Name+ " !!!Unknown 'Thingy' detected!!! This Object seems to probably not follow a valid OreDictionary Convention, or I missed a Convention. Please report to GregTech Intergalactical for additional compatiblity. This is not an Error, an Issue nor a Lag Source, it is just an Information, which you should pass to me."); - } - } + public static class OreDictEventContainer { + public final OreDictionary.OreRegisterEvent mEvent; + public final OrePrefixes mPrefix; + public final Materials mMaterial; + public final String mModID; + + public OreDictEventContainer(OreDictionary.OreRegisterEvent aEvent, OrePrefixes aPrefix, Materials aMaterial, String aModID) { + this.mEvent = aEvent; + this.mPrefix = aPrefix; + this.mMaterial = aMaterial; + this.mModID = ((aModID == null) || (aModID.equals("UNKNOWN")) ? null : aModID); + } + } } diff --git a/src/main/java/gregtech/common/GT_RecipeAdder.java b/src/main/java/gregtech/common/GT_RecipeAdder.java index bb9a1732..ebc15ea2 100644 --- a/src/main/java/gregtech/common/GT_RecipeAdder.java +++ b/src/main/java/gregtech/common/GT_RecipeAdder.java @@ -6,286 +6,256 @@ import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.interfaces.internal.IGT_RecipeAdder; -import gregtech.api.util.GT_Config; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; - -import java.util.ArrayList; - -import crazypants.enderio.material.Material; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; public class GT_RecipeAdder - implements IGT_RecipeAdder -{ - public boolean addFusionReactorRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt, int aStartEU) - { - return false; - } + implements IGT_RecipeAdder { + public boolean addFusionReactorRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt, int aStartEU) { + return false; + } - @Override - public boolean addFusionReactorRecipe(FluidStack aInput1, FluidStack aInput2,FluidStack aOutput1, int aDuration, int aEUt, int aStartEU) { - if(aInput1==null||aInput2==null||aOutput1==null||aDuration<1||aEUt<1||aStartEU<1){ - return false; - } - GT_Recipe.GT_Recipe_Map.sFusionRecipes.addRecipe( null, new FluidStack[] {aInput1, aInput2},new FluidStack[]{aOutput1}, aDuration, aEUt, aStartEU); - return true; - } - - public boolean addCentrifugeRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int aDuration) - { - return addCentrifugeRecipe(aInput1, aInput2 < 0 ? ItemList.IC2_Fuel_Can_Empty.get(-aInput2, new Object[0]) : aInput2 > 0 ? ItemList.Cell_Empty.get(aInput2, new Object[0]) : null, null, null, aOutput1, aOutput2, aOutput3, aOutput4, aOutput5, aOutput6, null, aDuration, 5); - } - - public boolean addCentrifugeRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int[] aChances, int aDuration, int aEUt) - { - if (((aInput1 == null) && (aFluidInput == null)) || ((aOutput1 == null) && (aFluidOutput == null))) { - return false; + @Override + public boolean addFusionReactorRecipe(FluidStack aInput1, FluidStack aInput2, FluidStack aOutput1, int aDuration, int aEUt, int aStartEU) { + if (aInput1 == null || aInput2 == null || aOutput1 == null || aDuration < 1 || aEUt < 1 || aStartEU < 1) { + return false; + } + GT_Recipe.GT_Recipe_Map.sFusionRecipes.addRecipe(null, new FluidStack[]{aInput1, aInput2}, new FluidStack[]{aOutput1}, aDuration, aEUt, aStartEU); + return true; } - if ((aInput1 != null) && ((aDuration = GregTech_API.sRecipeFile.get("centrifuge", aInput1, aDuration)) <= 0)) { - return false; + + public boolean addCentrifugeRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int aDuration) { + return addCentrifugeRecipe(aInput1, aInput2 < 0 ? ItemList.IC2_Fuel_Can_Empty.get(-aInput2, new Object[0]) : aInput2 > 0 ? ItemList.Cell_Empty.get(aInput2, new Object[0]) : null, null, null, aOutput1, aOutput2, aOutput3, aOutput4, aOutput5, aOutput6, null, aDuration, 5); } - if ((aFluidInput != null) && ((aDuration = GregTech_API.sRecipeFile.get("centrifuge", aFluidInput.getFluid().getName(), aDuration)) <= 0)) { - return false; + + public boolean addCentrifugeRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int[] aChances, int aDuration, int aEUt) { + if (((aInput1 == null) && (aFluidInput == null)) || ((aOutput1 == null) && (aFluidOutput == null))) { + return false; + } + if ((aInput1 != null) && ((aDuration = GregTech_API.sRecipeFile.get("centrifuge", aInput1, aDuration)) <= 0)) { + return false; + } + if ((aFluidInput != null) && ((aDuration = GregTech_API.sRecipeFile.get("centrifuge", aFluidInput.getFluid().getName(), aDuration)) <= 0)) { + return false; + } + GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.addRecipe(true, new ItemStack[]{aInput1, aInput2}, new ItemStack[]{aOutput1, aOutput2, aOutput3, aOutput4, aOutput5, aOutput6}, null, aChances, new FluidStack[]{aFluidInput}, new FluidStack[]{aFluidOutput}, aDuration, aEUt, 0); + return true; } - GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.addRecipe(true, new ItemStack[] { aInput1, aInput2 }, new ItemStack[] { aOutput1, aOutput2, aOutput3, aOutput4, aOutput5, aOutput6 }, null, aChances, new FluidStack[] { aFluidInput }, new FluidStack[] { aFluidOutput }, aDuration, aEUt, 0); - return true; - } - - public boolean addElectrolyzerRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int aDuration, int aEUt) - { - return addElectrolyzerRecipe(aInput1, aInput2 < 0 ? ItemList.IC2_Fuel_Can_Empty.get(-aInput2, new Object[0]) : aInput2 > 0 ? ItemList.Cell_Empty.get(aInput2, new Object[0]) : null, null, null, aOutput1, aOutput2, aOutput3, aOutput4, aOutput5, aOutput6, null, aDuration, aEUt); - } - - public boolean addElectrolyzerRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int[] aChances, int aDuration, int aEUt) - { - if (((aInput1 == null) && (aFluidInput == null)) || ((aOutput1 == null) && (aFluidOutput == null))) { - return false; + + public boolean addElectrolyzerRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int aDuration, int aEUt) { + return addElectrolyzerRecipe(aInput1, aInput2 < 0 ? ItemList.IC2_Fuel_Can_Empty.get(-aInput2, new Object[0]) : aInput2 > 0 ? ItemList.Cell_Empty.get(aInput2, new Object[0]) : null, null, null, aOutput1, aOutput2, aOutput3, aOutput4, aOutput5, aOutput6, null, aDuration, aEUt); } - if ((aInput1 != null) && ((aDuration = GregTech_API.sRecipeFile.get("electrolyzer", aInput1, aDuration)) <= 0)) { - return false; + + public boolean addElectrolyzerRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int[] aChances, int aDuration, int aEUt) { + if (((aInput1 == null) && (aFluidInput == null)) || ((aOutput1 == null) && (aFluidOutput == null))) { + return false; + } + if ((aInput1 != null) && ((aDuration = GregTech_API.sRecipeFile.get("electrolyzer", aInput1, aDuration)) <= 0)) { + return false; + } + if ((aFluidInput != null) && ((aDuration = GregTech_API.sRecipeFile.get("electrolyzer", aFluidInput.getFluid().getName(), aDuration)) <= 0)) { + return false; + } + GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes.addRecipe(true, new ItemStack[]{aInput1, aInput2}, new ItemStack[]{aOutput1, aOutput2, aOutput3, aOutput4, aOutput5, aOutput6}, null, aChances, new FluidStack[]{aFluidInput}, new FluidStack[]{aFluidOutput}, aDuration, aEUt, 0); + return true; } - if ((aFluidInput != null) && ((aDuration = GregTech_API.sRecipeFile.get("electrolyzer", aFluidInput.getFluid().getName(), aDuration)) <= 0)) { - return false; + + public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput, int aDuration) { + return addChemicalRecipe(aInput1, aInput2, null, null, aOutput, aDuration); } - GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes.addRecipe(true, new ItemStack[] { aInput1, aInput2 }, new ItemStack[] { aOutput1, aOutput2, aOutput3, aOutput4, aOutput5, aOutput6 }, null, aChances, new FluidStack[] { aFluidInput }, new FluidStack[] { aFluidOutput }, aDuration, aEUt, 0); - return true; - } - - public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput, int aDuration) - { - return addChemicalRecipe(aInput1, aInput2, null, null, aOutput, aDuration); - } - - public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration) - { - if (((aInput1 == null) && (aFluidInput == null)) || ((aOutput == null) && (aFluidOutput == null))) { - return false; + + public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration) { + if (((aInput1 == null) && (aFluidInput == null)) || ((aOutput == null) && (aFluidOutput == null))) { + return false; + } + if ((aOutput != null) && ((aDuration = GregTech_API.sRecipeFile.get("chemicalreactor", aOutput, aDuration)) <= 0)) { + return false; + } + if ((aFluidOutput != null) && ((aDuration = GregTech_API.sRecipeFile.get("chemicalreactor", aFluidOutput.getFluid().getName(), aDuration)) <= 0)) { + return false; + } + GT_Recipe.GT_Recipe_Map.sChemicalRecipes.addRecipe(true, new ItemStack[]{aInput1, aInput2}, new ItemStack[]{aOutput}, null, null, new FluidStack[]{aFluidInput}, new FluidStack[]{aFluidOutput}, aDuration, 30, 0); + return true; } - if ((aOutput != null) && ((aDuration = GregTech_API.sRecipeFile.get("chemicalreactor", aOutput, aDuration)) <= 0)) { - return false; + + public boolean addBlastRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt, int aLevel) { + return addBlastRecipe(aInput1, aInput2, null, null, aOutput1, aOutput2, aDuration, aEUt, aLevel); } - if ((aFluidOutput != null) && ((aDuration = GregTech_API.sRecipeFile.get("chemicalreactor", aFluidOutput.getFluid().getName(), aDuration)) <= 0)) { - return false; + + public boolean addBlastRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt, int aLevel) { + if ((aInput1 == null) || (aOutput1 == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("blastfurnace", aInput1, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sBlastRecipes.addRecipe(true, new ItemStack[]{aInput1, aInput2}, new ItemStack[]{aOutput1, aOutput2}, null, null, new FluidStack[]{aFluidInput}, null, aDuration, aEUt, aLevel); + return true; } - GT_Recipe.GT_Recipe_Map.sChemicalRecipes.addRecipe(true, new ItemStack[] { aInput1, aInput2 }, new ItemStack[] { aOutput }, null, null, new FluidStack[] { aFluidInput }, new FluidStack[] { aFluidOutput }, aDuration, 30, 0); - return true; - } - - public boolean addBlastRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt, int aLevel) - { - return addBlastRecipe(aInput1, aInput2, null, null, aOutput1, aOutput2, aDuration, aEUt, aLevel); - } - - public boolean addBlastRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt, int aLevel) - { - if ((aInput1 == null) || (aOutput1 == null)) { - return false; + + public boolean addCannerRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt) { + if ((aInput1 == null) || (aOutput1 == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("canning", aInput1, aDuration)) <= 0) { + return false; + } + new GT_Recipe(aInput1, aEUt, aInput2, aDuration, aOutput1, aOutput2); + return true; } - if ((aDuration = GregTech_API.sRecipeFile.get("blastfurnace", aInput1, aDuration)) <= 0) { - return false; + + public boolean addAlloySmelterRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt) { + if ((aInput1 == null) || (aOutput1 == null || Materials.Graphite.contains(aInput1))) { + return false; + } + if ((aInput2 == null) && ((OrePrefixes.ingot.contains(aInput1)) || (OrePrefixes.dust.contains(aInput1)) || (OrePrefixes.gem.contains(aInput1)))) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("alloysmelting", aInput2 == null ? aInput1 : aOutput1, aDuration)) <= 0) { + return false; + } + new GT_Recipe(aInput1, aInput2, aEUt, aDuration, aOutput1); + return true; } - GT_Recipe.GT_Recipe_Map.sBlastRecipes.addRecipe(true, new ItemStack[] { aInput1, aInput2 }, new ItemStack[] { aOutput1, aOutput2 }, null, null, new FluidStack[] { aFluidInput }, null, aDuration, aEUt, aLevel); - return true; - } - - public boolean addCannerRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt) - { - if ((aInput1 == null) || (aOutput1 == null)) { - return false; + + public boolean addCNCRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt) { + if ((aInput1 == null) || (aOutput1 == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("cnc", aOutput1, aDuration)) <= 0) { + return false; + } + return true; } - if ((aDuration = GregTech_API.sRecipeFile.get("canning", aInput1, aDuration)) <= 0) { - return false; + + public boolean addLatheRecipe(ItemStack aInput1, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt) { + if ((aInput1 == null) || (aOutput1 == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("lathe", aInput1, aDuration)) <= 0) { + return false; + } + new GT_Recipe(aInput1, aOutput1, aOutput2, aDuration, aEUt); + return true; } - new GT_Recipe(aInput1, aEUt, aInput2, aDuration, aOutput1, aOutput2); - return true; - } - - public boolean addAlloySmelterRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt) - { - if ((aInput1 == null) || (aOutput1 == null || Materials.Graphite.contains(aInput1))) { - return false; + + public boolean addCutterRecipe(ItemStack aInput, FluidStack aLubricant, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt) { + if ((aInput == null) || (aLubricant == null) || (aOutput1 == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("cutting", aInput, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sCutterRecipes.addRecipe(true, new ItemStack[]{aInput}, new ItemStack[]{aOutput1, aOutput2}, null, new FluidStack[]{aLubricant}, null, aDuration, aEUt, 0); + return true; } - if ((aInput2 == null) && ((OrePrefixes.ingot.contains(aInput1)) || (OrePrefixes.dust.contains(aInput1)) || (OrePrefixes.gem.contains(aInput1)))) { - return false; + + public boolean addCutterRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt) { + if ((aInput == null) || (aOutput1 == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("cutting", aInput, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sCutterRecipes.addRecipe(true, new ItemStack[]{aInput}, new ItemStack[]{aOutput1, aOutput2}, null, new FluidStack[]{Materials.Water.getFluid(Math.max(4, Math.min(1000, aDuration * aEUt / 320)))}, null, aDuration * 2, aEUt, 0); + GT_Recipe.GT_Recipe_Map.sCutterRecipes.addRecipe(true, new ItemStack[]{aInput}, new ItemStack[]{aOutput1, aOutput2}, null, new FluidStack[]{GT_ModHandler.getDistilledWater(Math.max(3, Math.min(750, aDuration * aEUt / 426)))}, null, aDuration * 2, aEUt, 0); + GT_Recipe.GT_Recipe_Map.sCutterRecipes.addRecipe(true, new ItemStack[]{aInput}, new ItemStack[]{aOutput1, aOutput2}, null, new FluidStack[]{Materials.Lubricant.getFluid(Math.max(1, Math.min(250, aDuration * aEUt / 1280)))}, null, aDuration, aEUt, 0); + return true; } - if ((aDuration = GregTech_API.sRecipeFile.get("alloysmelting", aInput2 == null ? aInput1 : aOutput1, aDuration)) <= 0) { - return false; + + public boolean addAssemblerRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt) { + if ((aInput1 == null) || (aOutput1 == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("assembling", aOutput1, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.addRecipe(true, new ItemStack[]{aInput1, aInput2 == null ? aInput1 : aInput2}, new ItemStack[]{aOutput1}, null, null, null, aDuration, aEUt, 0); + return true; } - new GT_Recipe(aInput1, aInput2, aEUt, aDuration, aOutput1); - return true; - } - - public boolean addCNCRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt) - { - if ((aInput1 == null) || (aOutput1 == null)) { - return false; + + public boolean addAssemblerRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, ItemStack aOutput1, int aDuration, int aEUt) { + if ((aInput1 == null) || (aOutput1 == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("assembling", aOutput1, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.addRecipe(true, new ItemStack[]{aInput1, (ItemStack) (aInput2 == null ? new ItemStack[]{aInput1} : aInput2)}, new ItemStack[]{aOutput1}, null, new FluidStack[]{aFluidInput == null ? null : aFluidInput}, null, aDuration, aEUt, 0); + return true; } - if ((aDuration = GregTech_API.sRecipeFile.get("cnc", aOutput1, aDuration)) <= 0) { - return false; + + public boolean addWiremillRecipe(ItemStack aInput, ItemStack aOutput, int aDuration, int aEUt) { + if ((aInput == null) || (aOutput == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("wiremill", aInput, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sWiremillRecipes.addRecipe(true, new ItemStack[]{aInput}, new ItemStack[]{aOutput}, null, null, null, aDuration, aEUt, 0); + return true; } - return true; - } - - public boolean addLatheRecipe(ItemStack aInput1, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt) - { - if ((aInput1 == null) || (aOutput1 == null)) { - return false; + + public boolean addPolarizerRecipe(ItemStack aInput, ItemStack aOutput, int aDuration, int aEUt) { + if ((aInput == null) || (aOutput == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("polarizer", aInput, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sPolarizerRecipes.addRecipe(true, new ItemStack[]{aInput}, new ItemStack[]{aOutput}, null, null, null, aDuration, aEUt, 0); + return true; } - if ((aDuration = GregTech_API.sRecipeFile.get("lathe", aInput1, aDuration)) <= 0) { - return false; + + public boolean addBenderRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt) { + if ((aInput1 == null) || (aOutput1 == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("bender", aInput1, aDuration)) <= 0) { + return false; + } + new GT_Recipe(aEUt, aDuration, aInput1, aOutput1); + return true; } - new GT_Recipe(aInput1, aOutput1, aOutput2, aDuration, aEUt); - return true; - } - - public boolean addCutterRecipe(ItemStack aInput, FluidStack aLubricant, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt) - { - if ((aInput == null) || (aLubricant == null) || (aOutput1 == null)) { - return false; + + public boolean addExtruderRecipe(ItemStack aInput, ItemStack aShape, ItemStack aOutput, int aDuration, int aEUt) { + if ((aInput == null) || (aShape == null) || (aOutput == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("extruder", aOutput, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sExtruderRecipes.addRecipe(true, new ItemStack[]{aInput, aShape}, new ItemStack[]{aOutput}, null, null, null, aDuration, aEUt, 0); + return true; } - if ((aDuration = GregTech_API.sRecipeFile.get("cutting", aInput, aDuration)) <= 0) { - return false; + + public boolean addSlicerRecipe(ItemStack aInput, ItemStack aShape, ItemStack aOutput, int aDuration, int aEUt) { + if ((aInput == null) || (aShape == null) || (aOutput == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("slicer", aOutput, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sSlicerRecipes.addRecipe(true, new ItemStack[]{aInput, aShape}, new ItemStack[]{aOutput}, null, null, null, aDuration, aEUt, 0); + return true; } - GT_Recipe.GT_Recipe_Map.sCutterRecipes.addRecipe(true, new ItemStack[] { aInput }, new ItemStack[] { aOutput1, aOutput2 }, null, new FluidStack[] { aLubricant }, null, aDuration, aEUt, 0); - return true; - } - - public boolean addCutterRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt) - { - if ((aInput == null) || (aOutput1 == null)) { - return false; + + public boolean addImplosionRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2) { + if ((aInput1 == null) || (aOutput1 == null)) { + return false; + } + if ((aInput2 = GregTech_API.sRecipeFile.get("implosion", aInput1, aInput2)) <= 0) { + return false; + } + new GT_Recipe(aInput1, aInput2, aOutput1, aOutput2); + return true; } - if ((aDuration = GregTech_API.sRecipeFile.get("cutting", aInput, aDuration)) <= 0) { - return false; - } - GT_Recipe.GT_Recipe_Map.sCutterRecipes.addRecipe(true, new ItemStack[] { aInput }, new ItemStack[] { aOutput1, aOutput2 }, null, new FluidStack[] { Materials.Water.getFluid(Math.max(4, Math.min(1000, aDuration * aEUt / 320))) }, null, aDuration * 2, aEUt, 0); - GT_Recipe.GT_Recipe_Map.sCutterRecipes.addRecipe(true, new ItemStack[] { aInput }, new ItemStack[] { aOutput1, aOutput2 }, null, new FluidStack[] { GT_ModHandler.getDistilledWater(Math.max(3, Math.min(750, aDuration * aEUt / 426))) }, null, aDuration * 2, aEUt, 0); - GT_Recipe.GT_Recipe_Map.sCutterRecipes.addRecipe(true, new ItemStack[] { aInput }, new ItemStack[] { aOutput1, aOutput2 }, null, new FluidStack[] { Materials.Lubricant.getFluid(Math.max(1, Math.min(250, aDuration * aEUt / 1280))) }, null, aDuration, aEUt, 0); - return true; - } - - public boolean addAssemblerRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt) - { - if ((aInput1 == null) || (aOutput1 == null)) { - return false; - } - if ((aDuration = GregTech_API.sRecipeFile.get("assembling", aOutput1, aDuration)) <= 0) { - return false; - } - GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.addRecipe(true, new ItemStack[] { aInput1, aInput2 == null ? aInput1 : aInput2 }, new ItemStack[] { aOutput1 }, null, null, null, aDuration, aEUt, 0); - return true; - } - - public boolean addAssemblerRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, ItemStack aOutput1, int aDuration, int aEUt) - { - if ((aInput1 == null) || (aOutput1 == null)) { - return false; - } - if ((aDuration = GregTech_API.sRecipeFile.get("assembling", aOutput1, aDuration)) <= 0) { - return false; - } - GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.addRecipe(true, new ItemStack[] { aInput1, (ItemStack) (aInput2 == null ? new ItemStack[] { aInput1 } : aInput2) }, new ItemStack[] { aOutput1 }, null, new FluidStack[] { aFluidInput == null ? null : aFluidInput }, null, aDuration, aEUt, 0); - return true; - } - - public boolean addWiremillRecipe(ItemStack aInput, ItemStack aOutput, int aDuration, int aEUt) - { - if ((aInput == null) || (aOutput == null)) { - return false; - } - if ((aDuration = GregTech_API.sRecipeFile.get("wiremill", aInput, aDuration)) <= 0) { - return false; - } - GT_Recipe.GT_Recipe_Map.sWiremillRecipes.addRecipe(true, new ItemStack[] { aInput }, new ItemStack[] { aOutput }, null, null, null, aDuration, aEUt, 0); - return true; - } - - public boolean addPolarizerRecipe(ItemStack aInput, ItemStack aOutput, int aDuration, int aEUt) - { - if ((aInput == null) || (aOutput == null)) { - return false; - } - if ((aDuration = GregTech_API.sRecipeFile.get("polarizer", aInput, aDuration)) <= 0) { - return false; - } - GT_Recipe.GT_Recipe_Map.sPolarizerRecipes.addRecipe(true, new ItemStack[] { aInput }, new ItemStack[] { aOutput }, null, null, null, aDuration, aEUt, 0); - return true; - } - - public boolean addBenderRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt) - { - if ((aInput1 == null) || (aOutput1 == null)) { - return false; - } - if ((aDuration = GregTech_API.sRecipeFile.get("bender", aInput1, aDuration)) <= 0) { - return false; - } - new GT_Recipe(aEUt, aDuration, aInput1, aOutput1); - return true; - } - - public boolean addExtruderRecipe(ItemStack aInput, ItemStack aShape, ItemStack aOutput, int aDuration, int aEUt) - { - if ((aInput == null) || (aShape == null) || (aOutput == null)) { - return false; - } - if ((aDuration = GregTech_API.sRecipeFile.get("extruder", aOutput, aDuration)) <= 0) { - return false; - } - GT_Recipe.GT_Recipe_Map.sExtruderRecipes.addRecipe(true, new ItemStack[] { aInput, aShape }, new ItemStack[] { aOutput }, null, null, null, aDuration, aEUt, 0); - return true; - } - - public boolean addSlicerRecipe(ItemStack aInput, ItemStack aShape, ItemStack aOutput, int aDuration, int aEUt) - { - if ((aInput == null) || (aShape == null) || (aOutput == null)) { - return false; - } - if ((aDuration = GregTech_API.sRecipeFile.get("slicer", aOutput, aDuration)) <= 0) { - return false; - } - GT_Recipe.GT_Recipe_Map.sSlicerRecipes.addRecipe(true, new ItemStack[] { aInput, aShape }, new ItemStack[] { aOutput }, null, null, null, aDuration, aEUt, 0); - return true; - } - - public boolean addImplosionRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2) - { - if ((aInput1 == null) || (aOutput1 == null)) { - return false; - } - if ((aInput2 = GregTech_API.sRecipeFile.get("implosion", aInput1, aInput2)) <= 0) { - return false; - } - new GT_Recipe(aInput1, aInput2, aOutput1, aOutput2); - return true; - } - @Deprecated - public boolean addDistillationRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, int aDuration, int aEUt) - { + + @Deprecated + public boolean addDistillationRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, int aDuration, int aEUt) { // if ((aInput1 == null) || (aOutput1 == null)) { // return false; // } @@ -294,436 +264,401 @@ public class GT_RecipeAdder // } // new GT_Recipe(aInput1, aInput2, aOutput1, aOutput2, aOutput3, aOutput4, aDuration, aEUt); // return true; - return false; - } + return false; + } - public boolean addDistillationTowerRecipe(FluidStack aInput, FluidStack[] aOutputs, ItemStack aOutput2, int aDuration, int aEUt){ - if(aInput==null||aOutputs==null||aOutputs.length<1||aOutputs.length>5){return false;} - if((aDuration = GregTech_API.sRecipeFile.get("distillation", aInput.getUnlocalizedName(), aDuration))<=0){ - return false; - } - GT_Recipe.GT_Recipe_Map.sDistillationRecipes.addRecipe(false, null,new ItemStack[]{ aOutput2}, null, new FluidStack[]{ aInput}, aOutputs, Math.max(1, aDuration), Math.max(1, aEUt), 0); - return false; - } - - public boolean addVacuumFreezerRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration) - { - if ((aInput1 == null) || (aOutput1 == null)) { - return false; - } - if ((aDuration = GregTech_API.sRecipeFile.get("vacuumfreezer", aInput1, aDuration)) <= 0) { - return false; - } - new GT_Recipe(aInput1, aOutput1, aDuration); - return true; - } - - public boolean addGrinderRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4) - { - return false; - } - - public boolean addFuel(ItemStack aInput1, ItemStack aOutput1, int aEU, int aType) - { - if (aInput1 == null) { - return false; - } - new GT_Recipe(aInput1, aOutput1, GregTech_API.sRecipeFile.get("fuel_" + aType, aInput1, aEU), aType); - return true; - } - - public boolean addSonictronSound(ItemStack aItemStack, String aSoundName) - { - if ((aItemStack == null) || (aSoundName == null) || (aSoundName.equals(""))) { - return false; - } - GT_Mod.gregtechproxy.mSoundItems.add(aItemStack); - GT_Mod.gregtechproxy.mSoundNames.add(aSoundName); - if (aSoundName.startsWith("note.")) { - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(25)); - } else { - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - } - return true; - } - - public boolean addForgeHammerRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt) - { - if ((aInput1 == null) || (aOutput1 == null)) { - return false; - } - if (!GregTech_API.sRecipeFile.get("forgehammer", aOutput1, true)) { - return false; - } - GT_Recipe.GT_Recipe_Map.sHammerRecipes.addRecipe(true, new ItemStack[] { aInput1 }, new ItemStack[] { aOutput1 }, null, null, null, aDuration, aEUt, 0); - return true; - } - - public boolean addBoxingRecipe(ItemStack aContainedItem, ItemStack aEmptyBox, ItemStack aFullBox, int aDuration, int aEUt) - { - if ((aContainedItem == null) || (aFullBox == null)) { - return false; - } - if (!GregTech_API.sRecipeFile.get("boxing", aFullBox, true)) { - return false; - } - GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes.addRecipe(true, new ItemStack[] { aContainedItem, aEmptyBox }, new ItemStack[] { aFullBox }, null, null, null, aDuration, aEUt, 0); - return true; - } - - public boolean addUnboxingRecipe(ItemStack aFullBox, ItemStack aContainedItem, ItemStack aEmptyBox, int aDuration, int aEUt) - { - if ((aFullBox == null) || (aContainedItem == null)) { - return false; - } - if (!GregTech_API.sRecipeFile.get("unboxing", aFullBox, true)) { - return false; - } - GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes.addRecipe(true, new ItemStack[] { aFullBox }, new ItemStack[] { aContainedItem, aEmptyBox }, null, null, null, aDuration, aEUt, 0); - return true; - } - - public boolean addAmplifier(ItemStack aAmplifierItem, int aDuration, int aAmplifierAmountOutputted) - { - if ((aAmplifierItem == null) || (aAmplifierAmountOutputted <= 0)) { - return false; - } - if ((aDuration = GregTech_API.sRecipeFile.get("amplifier", aAmplifierItem, aDuration)) <= 0) { - return false; - } - GT_Recipe.GT_Recipe_Map.sAmplifiers.addRecipe(true, new ItemStack[] { aAmplifierItem }, null, null, null, new FluidStack[] { Materials.UUAmplifier.getFluid(aAmplifierAmountOutputted) }, aDuration, 32, 0); - return true; - } - - public boolean addBrewingRecipe(ItemStack aIngredient, Fluid aInput, Fluid aOutput, boolean aHidden) - { - if ((aIngredient == null) || (aInput == null) || (aOutput == null)) { - return false; - } - if (!GregTech_API.sRecipeFile.get("brewing", aOutput.getUnlocalizedName(), true)) { - return false; - } - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sBrewingRecipes.addRecipe(false, new ItemStack[] { aIngredient }, null, null, new FluidStack[] { new FluidStack(aInput, 750) }, new FluidStack[] { new FluidStack(aOutput, 750) }, 128, 4, 0); - if ((aHidden) && (tRecipe != null)) { - tRecipe.mHidden = true; - } - return true; - } - - public boolean addFermentingRecipe(FluidStack aInput, FluidStack aOutput, int aDuration, boolean aHidden) - { - if ((aInput == null) || (aOutput == null)) { - return false; - } - if ((aDuration = GregTech_API.sRecipeFile.get("fermenting", aOutput.getFluid().getUnlocalizedName(), aDuration)) <= 0) { - return false; - } - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sFermentingRecipes.addRecipe(false, null, null, null, new FluidStack[] { aInput }, new FluidStack[] { aOutput }, aDuration, 2, 0); - if ((aHidden) && (tRecipe != null)) { - tRecipe.mHidden = true; - } - return true; - } - - public boolean addDistilleryRecipe(ItemStack aCircuit, FluidStack aInput, FluidStack aOutput, int aDuration, int aEUt, boolean aHidden) - { - if ((aInput == null) || (aOutput == null)) { - return false; - } - if ((aDuration = GregTech_API.sRecipeFile.get("distillery", aOutput.getFluid().getUnlocalizedName(), aDuration)) <= 0) { - return false; - } - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sDistilleryRecipes.addRecipe(true, new ItemStack[] { aCircuit }, null, null, new FluidStack[] { aInput }, new FluidStack[] { aOutput }, aDuration, aEUt, 0); - if ((aHidden) && (tRecipe != null)) { - tRecipe.mHidden = true; - } - return true; - } - - public boolean addFluidSolidifierRecipe(ItemStack aMold, FluidStack aInput, ItemStack aOutput, int aDuration, int aEUt) - { - if ((aMold == null) || (aInput == null) || (aOutput == null)) { - return false; - } - if(aInput.isFluidEqual(Materials.PhasedGold.getMolten(144))){ - aInput = Materials.VibrantAlloy.getMolten(aInput.amount); - } - if(aInput.isFluidEqual(Materials.PhasedIron.getMolten(144))){ - aInput = Materials.PulsatingIron.getMolten(aInput.amount); - } - - if ((aDuration = GregTech_API.sRecipeFile.get("fluidsolidifier", aOutput, aDuration)) <= 0) { - return false; - } - GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes.addRecipe(true, new ItemStack[] { aMold }, new ItemStack[] { aOutput }, null, new FluidStack[] { aInput }, null, aDuration, aEUt, 0); - return true; - } - - public boolean addFluidSmelterRecipe(ItemStack aInput, ItemStack aRemains, FluidStack aOutput, int aChance, int aDuration, int aEUt) - { - if ((aInput == null) || (aOutput == null)) { - return false; - } - if(aOutput.isFluidEqual(Materials.PhasedGold.getMolten(1))){ - aOutput = Materials.VibrantAlloy.getMolten(aOutput.amount); - } - if(aOutput.isFluidEqual(Materials.PhasedIron.getMolten(1))){ - aOutput = Materials.PulsatingIron.getMolten(aOutput.amount); - } - if ((aDuration = GregTech_API.sRecipeFile.get("fluidsmelter", aInput, aDuration)) <= 0) { - return false; - } - GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes.addRecipe(true, new ItemStack[] { aInput }, new ItemStack[] { aRemains }, null, new int[] { aChance }, null, new FluidStack[] { aOutput }, aDuration, aEUt, 0); - return true; - } - - public boolean addFluidExtractionRecipe(ItemStack aInput, ItemStack aRemains, FluidStack aOutput, int aChance, int aDuration, int aEUt) - { - if ((aInput == null) || (aOutput == null)) { - return false; - } - if(aOutput.isFluidEqual(Materials.PhasedGold.getMolten(1))){ - aOutput = Materials.VibrantAlloy.getMolten(aOutput.amount); - } - if(aOutput.isFluidEqual(Materials.PhasedIron.getMolten(1))){ - aOutput = Materials.PulsatingIron.getMolten(aOutput.amount); - } - if ((aDuration = GregTech_API.sRecipeFile.get("fluidextractor", aInput, aDuration)) <= 0) { - return false; - } - - GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes.addRecipe(true, new ItemStack[] { aInput }, new ItemStack[] { aRemains }, null, new int[] { aChance }, null, new FluidStack[] { aOutput }, aDuration, aEUt, 0); - return true; - } - - public boolean addFluidCannerRecipe(ItemStack aInput, ItemStack aOutput, FluidStack aFluidInput, FluidStack aFluidOutput) - { - if ((aInput != null) && (aOutput != null)) - { - if ((aFluidInput == null ? 1 : 0) != (aFluidOutput == null ? 1 : 0)) {} - } - else { - return false; - } - if (!GregTech_API.sRecipeFile.get("fluidcanner", aOutput, true)) { - return false; - } - GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes.addRecipe(true, new ItemStack[] { aInput }, new ItemStack[] { aOutput }, null, new FluidStack[] { aFluidInput == null ? null : aFluidInput }, new FluidStack[] { aFluidOutput == null ? null : aFluidOutput }, aFluidOutput == null ? aFluidInput.amount / 62 : aFluidOutput.amount / 62, 1, 0); - return true; - } - - public boolean addChemicalBathRecipe(ItemStack aInput, FluidStack aBathingFluid, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, int[] aChances, int aDuration, int aEUt) - { - if ((aInput == null) || (aBathingFluid == null) || (aOutput1 == null)) { - return false; - } - if ((aDuration = GregTech_API.sRecipeFile.get("chemicalbath", aInput, aDuration)) <= 0) { - return false; - } - GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes.addRecipe(true, new ItemStack[] { aInput }, new ItemStack[] { aOutput1, aOutput2, aOutput3 }, null, aChances, new FluidStack[] { aBathingFluid }, null, aDuration, aEUt, 0); - return true; - } - - public boolean addElectromagneticSeparatorRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, int[] aChances, int aDuration, int aEUt) - { - if ((aInput == null) || (aOutput1 == null)) { - return false; - } - if ((aDuration = GregTech_API.sRecipeFile.get("electromagneticseparator", aInput, aDuration)) <= 0) { - return false; - } - GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes.addRecipe(true, new ItemStack[] { aInput }, new ItemStack[] { aOutput1, aOutput2, aOutput3 }, null, aChances, null, null, aDuration, aEUt, 0); - return true; - } - - public boolean addPrinterRecipe(ItemStack aInput, FluidStack aFluid, ItemStack aSpecialSlot, ItemStack aOutput, int aDuration, int aEUt) - { - if ((aInput == null) || (aFluid == null) || (aOutput == null)) { - return false; - } - if ((aDuration = GregTech_API.sRecipeFile.get("printer", aInput, aDuration)) <= 0) { - return false; - } - GT_Recipe.GT_Recipe_Map.sPrinterRecipes.addRecipe(true, new ItemStack[] { aInput }, new ItemStack[] { aOutput }, aSpecialSlot, null, new FluidStack[] { aFluid }, null, aDuration, aEUt, 0); - return true; - } - - public boolean addAutoclaveRecipe(ItemStack aInput, FluidStack aFluid, ItemStack aOutput, int aChance, int aDuration, int aEUt) - { - if ((aInput == null) || (aFluid == null) || (aOutput == null)) { - return false; - } - if ((aDuration = GregTech_API.sRecipeFile.get("autoclave", aInput, aDuration)) <= 0) { - return false; - } - GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes.addRecipe(true, new ItemStack[] { aInput }, new ItemStack[] { aOutput }, null, new int[] { aChance }, new FluidStack[] { aFluid }, null, aDuration, aEUt, 0); - return true; - } - - public boolean addMixerRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aInput3, ItemStack aInput4, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration, int aEUt) - { - if (((aInput1 == null) && (aFluidInput == null)) || ((aOutput == null) && (aFluidOutput == null))) { - return false; - } - if ((aOutput != null) && ((aDuration = GregTech_API.sRecipeFile.get("mixer", aOutput, aDuration)) <= 0)) { - return false; - } - if ((aFluidOutput != null) && ((aDuration = GregTech_API.sRecipeFile.get("mixer", aFluidOutput.getFluid().getName(), aDuration)) <= 0)) { - return false; - } - GT_Recipe.GT_Recipe_Map.sMixerRecipes.addRecipe(true, new ItemStack[] { aInput1, aInput2, aInput3, aInput4 }, new ItemStack[] { aOutput }, null, null, new FluidStack[] { aFluidInput }, new FluidStack[] { aFluidOutput }, aDuration, aEUt, 0); - return true; - } - - public boolean addLaserEngraverRecipe(ItemStack aItemToEngrave, ItemStack aLens, ItemStack aEngravedItem, int aDuration, int aEUt) - { - if ((aItemToEngrave == null) || (aLens == null) || (aEngravedItem == null)) { - return false; - } - if ((aDuration = GregTech_API.sRecipeFile.get("laserengraving", aEngravedItem, aDuration)) <= 0) { - return false; - } - GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes.addRecipe(true, new ItemStack[] { aItemToEngrave, aLens }, new ItemStack[] { aEngravedItem }, null, null, null, aDuration, aEUt, 0); - return true; - } - - public boolean addFormingPressRecipe(ItemStack aItemToImprint, ItemStack aForm, ItemStack aImprintedItem, int aDuration, int aEUt) - { - if ((aItemToImprint == null) || (aForm == null) || (aImprintedItem == null)) { - return false; - } - if ((aDuration = GregTech_API.sRecipeFile.get("press", aImprintedItem, aDuration)) <= 0) { - return false; - } - GT_Recipe.GT_Recipe_Map.sPressRecipes.addRecipe(true, new ItemStack[] { aItemToImprint, aForm }, new ItemStack[] { aImprintedItem }, null, null, null, aDuration, aEUt, 0); - return true; - } - - public boolean addFluidHeaterRecipe(ItemStack aCircuit, FluidStack aInput, FluidStack aOutput, int aDuration, int aEUt) - { - if ((aInput == null) || (aOutput == null)) { - return false; - } - if ((aDuration = GregTech_API.sRecipeFile.get("fluidheater", aOutput.getFluid().getUnlocalizedName(), aDuration)) <= 0) { - return false; - } - GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes.addRecipe(true, new ItemStack[] { aCircuit }, null, null, new FluidStack[] { aInput }, new FluidStack[] { aOutput }, aDuration, aEUt, 0); - return true; - } - - public boolean addSifterRecipe(ItemStack aItemToSift, ItemStack[] aSiftedItems, int[] aChances, int aDuration, int aEUt) - { - if ((aItemToSift == null) || (aSiftedItems == null)) { - return false; - } - for (ItemStack tStack : aSiftedItems) { - if (tStack != null) - { - if ((aDuration = GregTech_API.sRecipeFile.get("sifter", aItemToSift, aDuration)) <= 0) { - return false; + public boolean addDistillationTowerRecipe(FluidStack aInput, FluidStack[] aOutputs, ItemStack aOutput2, int aDuration, int aEUt) { + if (aInput == null || aOutputs == null || aOutputs.length < 1 || aOutputs.length > 5) { + return false; } - GT_Recipe.GT_Recipe_Map.sSifterRecipes.addRecipe(true, new ItemStack[] { aItemToSift }, aSiftedItems, null, aChances, null, null, aDuration, aEUt, 0); - return true; - } - } - return false; - } - - public boolean addArcFurnaceRecipe(ItemStack aInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt) - { - if ((aInput == null) || (aOutputs == null)) { - return false; - } - for (ItemStack tStack : aOutputs) { - if (tStack != null) - { - if ((aDuration = GregTech_API.sRecipeFile.get("arcfurnace", aInput, aDuration)) <= 0) { - return false; + if ((aDuration = GregTech_API.sRecipeFile.get("distillation", aInput.getUnlocalizedName(), aDuration)) <= 0) { + return false; } - GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes.addRecipe(true, new ItemStack[] { aInput }, aOutputs, null, aChances, new FluidStack[] { Materials.Oxygen.getGas(aDuration) }, null, Math.max(1, aDuration), Math.max(1, aEUt), 0); - for (Materials tMaterial : new Materials[] { Materials.Argon, Materials.Nitrogen }) { - if (tMaterial.mPlasma != null) - { - int tPlasmaAmount = (int)Math.max(1L, aDuration / (tMaterial.getMass() * 16L)); - GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes.addRecipe(true, new ItemStack[] { aInput }, aOutputs, null, aChances, new FluidStack[] { tMaterial.getPlasma(tPlasmaAmount) }, new FluidStack[] { tMaterial.getGas(tPlasmaAmount) }, Math.max(1, aDuration / 16), Math.max(1, aEUt / 3), 0); - } - } - return true; - } + GT_Recipe.GT_Recipe_Map.sDistillationRecipes.addRecipe(false, null, new ItemStack[]{aOutput2}, null, new FluidStack[]{aInput}, aOutputs, Math.max(1, aDuration), Math.max(1, aEUt), 0); + return false; } - return false; - } - public boolean addSimpleArcFurnaceRecipe(ItemStack aInput, FluidStack aFluidInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt) - { - if ((aInput == null) || (aOutputs == null)||aFluidInput==null) { - return false; - } - for (ItemStack tStack : aOutputs) { - if (tStack != null) - { - if ((aDuration = GregTech_API.sRecipeFile.get("arcfurnace", aInput, aDuration)) <= 0) { - return false; + public boolean addVacuumFreezerRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration) { + if ((aInput1 == null) || (aOutput1 == null)) { + return false; } - GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes.addRecipe(true, new ItemStack[] { aInput }, aOutputs, null, aChances, new FluidStack[] { aFluidInput }, null, Math.max(1, aDuration), Math.max(1, aEUt), 0); + if ((aDuration = GregTech_API.sRecipeFile.get("vacuumfreezer", aInput1, aDuration)) <= 0) { + return false; + } + new GT_Recipe(aInput1, aOutput1, aDuration); return true; - } } - return false; - } - public boolean addPlasmaArcFurnaceRecipe(ItemStack aInput, FluidStack aFluidInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt) - { - if ((aInput == null) || (aOutputs == null)||aFluidInput==null) { - return false; + public boolean addGrinderRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4) { + return false; } - for (ItemStack tStack : aOutputs) { - if (tStack != null) - { - if ((aDuration = GregTech_API.sRecipeFile.get("arcfurnace", aInput, aDuration)) <= 0) { - return false; - } - GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes.addRecipe(true, new ItemStack[] { aInput }, aOutputs, null, aChances, new FluidStack[] { aFluidInput }, null, Math.max(1, aDuration), Math.max(1, aEUt), 0); - return true; - } - } - return false; - } - - public boolean addPlasmaArcFurnaceRecipe(ItemStack aInput, FluidStack aFluidInput, ItemStack[] aOutputs, FluidStack aFluidOutput, int[] aChances, int aDuration, int aEUt) - { - if ((aInput == null) || (aOutputs == null)||aFluidInput==null) { - return false; - } - for (ItemStack tStack : aOutputs) { - if (tStack != null) - { - if ((aDuration = GregTech_API.sRecipeFile.get("arcfurnace", aInput, aDuration)) <= 0) { - return false; - } - GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes.addRecipe(true, new ItemStack[] { aInput }, aOutputs, null, aChances, new FluidStack[] { aFluidInput }, new FluidStack[]{aFluidOutput}, Math.max(1, aDuration), Math.max(1, aEUt), 0); - return true; - } - } - return false; - } - public boolean addPulveriserRecipe(ItemStack aInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt) - { - if ((aInput == null) || (aOutputs == null)) { - return false; - } - for (ItemStack tStack : aOutputs) { - if (tStack != null) - { - if ((aDuration = GregTech_API.sRecipeFile.get("pulveriser", aInput, aDuration)) <= 0) { - return false; + public boolean addFuel(ItemStack aInput1, ItemStack aOutput1, int aEU, int aType) { + if (aInput1 == null) { + return false; } - GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.addRecipe(true, new ItemStack[] { aInput }, aOutputs, null, aChances, null, null, aDuration, aEUt, 0); + new GT_Recipe(aInput1, aOutput1, GregTech_API.sRecipeFile.get("fuel_" + aType, aInput1, aEU), aType); return true; - } } - return false; - } - } + public boolean addSonictronSound(ItemStack aItemStack, String aSoundName) { + if ((aItemStack == null) || (aSoundName == null) || (aSoundName.equals(""))) { + return false; + } + GT_Mod.gregtechproxy.mSoundItems.add(aItemStack); + GT_Mod.gregtechproxy.mSoundNames.add(aSoundName); + if (aSoundName.startsWith("note.")) { + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(25)); + } else { + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + } + return true; + } + + public boolean addForgeHammerRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt) { + if ((aInput1 == null) || (aOutput1 == null)) { + return false; + } + if (!GregTech_API.sRecipeFile.get("forgehammer", aOutput1, true)) { + return false; + } + GT_Recipe.GT_Recipe_Map.sHammerRecipes.addRecipe(true, new ItemStack[]{aInput1}, new ItemStack[]{aOutput1}, null, null, null, aDuration, aEUt, 0); + return true; + } + + public boolean addBoxingRecipe(ItemStack aContainedItem, ItemStack aEmptyBox, ItemStack aFullBox, int aDuration, int aEUt) { + if ((aContainedItem == null) || (aFullBox == null)) { + return false; + } + if (!GregTech_API.sRecipeFile.get("boxing", aFullBox, true)) { + return false; + } + GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes.addRecipe(true, new ItemStack[]{aContainedItem, aEmptyBox}, new ItemStack[]{aFullBox}, null, null, null, aDuration, aEUt, 0); + return true; + } + + public boolean addUnboxingRecipe(ItemStack aFullBox, ItemStack aContainedItem, ItemStack aEmptyBox, int aDuration, int aEUt) { + if ((aFullBox == null) || (aContainedItem == null)) { + return false; + } + if (!GregTech_API.sRecipeFile.get("unboxing", aFullBox, true)) { + return false; + } + GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes.addRecipe(true, new ItemStack[]{aFullBox}, new ItemStack[]{aContainedItem, aEmptyBox}, null, null, null, aDuration, aEUt, 0); + return true; + } + + public boolean addAmplifier(ItemStack aAmplifierItem, int aDuration, int aAmplifierAmountOutputted) { + if ((aAmplifierItem == null) || (aAmplifierAmountOutputted <= 0)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("amplifier", aAmplifierItem, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sAmplifiers.addRecipe(true, new ItemStack[]{aAmplifierItem}, null, null, null, new FluidStack[]{Materials.UUAmplifier.getFluid(aAmplifierAmountOutputted)}, aDuration, 32, 0); + return true; + } + + public boolean addBrewingRecipe(ItemStack aIngredient, Fluid aInput, Fluid aOutput, boolean aHidden) { + if ((aIngredient == null) || (aInput == null) || (aOutput == null)) { + return false; + } + if (!GregTech_API.sRecipeFile.get("brewing", aOutput.getUnlocalizedName(), true)) { + return false; + } + GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sBrewingRecipes.addRecipe(false, new ItemStack[]{aIngredient}, null, null, new FluidStack[]{new FluidStack(aInput, 750)}, new FluidStack[]{new FluidStack(aOutput, 750)}, 128, 4, 0); + if ((aHidden) && (tRecipe != null)) { + tRecipe.mHidden = true; + } + return true; + } + + public boolean addFermentingRecipe(FluidStack aInput, FluidStack aOutput, int aDuration, boolean aHidden) { + if ((aInput == null) || (aOutput == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("fermenting", aOutput.getFluid().getUnlocalizedName(), aDuration)) <= 0) { + return false; + } + GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sFermentingRecipes.addRecipe(false, null, null, null, new FluidStack[]{aInput}, new FluidStack[]{aOutput}, aDuration, 2, 0); + if ((aHidden) && (tRecipe != null)) { + tRecipe.mHidden = true; + } + return true; + } + + public boolean addDistilleryRecipe(ItemStack aCircuit, FluidStack aInput, FluidStack aOutput, int aDuration, int aEUt, boolean aHidden) { + if ((aInput == null) || (aOutput == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("distillery", aOutput.getFluid().getUnlocalizedName(), aDuration)) <= 0) { + return false; + } + GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sDistilleryRecipes.addRecipe(true, new ItemStack[]{aCircuit}, null, null, new FluidStack[]{aInput}, new FluidStack[]{aOutput}, aDuration, aEUt, 0); + if ((aHidden) && (tRecipe != null)) { + tRecipe.mHidden = true; + } + return true; + } + + public boolean addFluidSolidifierRecipe(ItemStack aMold, FluidStack aInput, ItemStack aOutput, int aDuration, int aEUt) { + if ((aMold == null) || (aInput == null) || (aOutput == null)) { + return false; + } + if (aInput.isFluidEqual(Materials.PhasedGold.getMolten(144))) { + aInput = Materials.VibrantAlloy.getMolten(aInput.amount); + } + if (aInput.isFluidEqual(Materials.PhasedIron.getMolten(144))) { + aInput = Materials.PulsatingIron.getMolten(aInput.amount); + } + + if ((aDuration = GregTech_API.sRecipeFile.get("fluidsolidifier", aOutput, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes.addRecipe(true, new ItemStack[]{aMold}, new ItemStack[]{aOutput}, null, new FluidStack[]{aInput}, null, aDuration, aEUt, 0); + return true; + } + + public boolean addFluidSmelterRecipe(ItemStack aInput, ItemStack aRemains, FluidStack aOutput, int aChance, int aDuration, int aEUt) { + if ((aInput == null) || (aOutput == null)) { + return false; + } + if (aOutput.isFluidEqual(Materials.PhasedGold.getMolten(1))) { + aOutput = Materials.VibrantAlloy.getMolten(aOutput.amount); + } + if (aOutput.isFluidEqual(Materials.PhasedIron.getMolten(1))) { + aOutput = Materials.PulsatingIron.getMolten(aOutput.amount); + } + if ((aDuration = GregTech_API.sRecipeFile.get("fluidsmelter", aInput, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes.addRecipe(true, new ItemStack[]{aInput}, new ItemStack[]{aRemains}, null, new int[]{aChance}, null, new FluidStack[]{aOutput}, aDuration, aEUt, 0); + return true; + } + + public boolean addFluidExtractionRecipe(ItemStack aInput, ItemStack aRemains, FluidStack aOutput, int aChance, int aDuration, int aEUt) { + if ((aInput == null) || (aOutput == null)) { + return false; + } + if (aOutput.isFluidEqual(Materials.PhasedGold.getMolten(1))) { + aOutput = Materials.VibrantAlloy.getMolten(aOutput.amount); + } + if (aOutput.isFluidEqual(Materials.PhasedIron.getMolten(1))) { + aOutput = Materials.PulsatingIron.getMolten(aOutput.amount); + } + if ((aDuration = GregTech_API.sRecipeFile.get("fluidextractor", aInput, aDuration)) <= 0) { + return false; + } + + GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes.addRecipe(true, new ItemStack[]{aInput}, new ItemStack[]{aRemains}, null, new int[]{aChance}, null, new FluidStack[]{aOutput}, aDuration, aEUt, 0); + return true; + } + + public boolean addFluidCannerRecipe(ItemStack aInput, ItemStack aOutput, FluidStack aFluidInput, FluidStack aFluidOutput) { + if ((aInput != null) && (aOutput != null)) { + if ((aFluidInput == null ? 1 : 0) != (aFluidOutput == null ? 1 : 0)) { + } + } else { + return false; + } + if (!GregTech_API.sRecipeFile.get("fluidcanner", aOutput, true)) { + return false; + } + GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes.addRecipe(true, new ItemStack[]{aInput}, new ItemStack[]{aOutput}, null, new FluidStack[]{aFluidInput == null ? null : aFluidInput}, new FluidStack[]{aFluidOutput == null ? null : aFluidOutput}, aFluidOutput == null ? aFluidInput.amount / 62 : aFluidOutput.amount / 62, 1, 0); + return true; + } + + public boolean addChemicalBathRecipe(ItemStack aInput, FluidStack aBathingFluid, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, int[] aChances, int aDuration, int aEUt) { + if ((aInput == null) || (aBathingFluid == null) || (aOutput1 == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("chemicalbath", aInput, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes.addRecipe(true, new ItemStack[]{aInput}, new ItemStack[]{aOutput1, aOutput2, aOutput3}, null, aChances, new FluidStack[]{aBathingFluid}, null, aDuration, aEUt, 0); + return true; + } + + public boolean addElectromagneticSeparatorRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, int[] aChances, int aDuration, int aEUt) { + if ((aInput == null) || (aOutput1 == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("electromagneticseparator", aInput, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes.addRecipe(true, new ItemStack[]{aInput}, new ItemStack[]{aOutput1, aOutput2, aOutput3}, null, aChances, null, null, aDuration, aEUt, 0); + return true; + } + + public boolean addPrinterRecipe(ItemStack aInput, FluidStack aFluid, ItemStack aSpecialSlot, ItemStack aOutput, int aDuration, int aEUt) { + if ((aInput == null) || (aFluid == null) || (aOutput == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("printer", aInput, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sPrinterRecipes.addRecipe(true, new ItemStack[]{aInput}, new ItemStack[]{aOutput}, aSpecialSlot, null, new FluidStack[]{aFluid}, null, aDuration, aEUt, 0); + return true; + } + + public boolean addAutoclaveRecipe(ItemStack aInput, FluidStack aFluid, ItemStack aOutput, int aChance, int aDuration, int aEUt) { + if ((aInput == null) || (aFluid == null) || (aOutput == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("autoclave", aInput, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes.addRecipe(true, new ItemStack[]{aInput}, new ItemStack[]{aOutput}, null, new int[]{aChance}, new FluidStack[]{aFluid}, null, aDuration, aEUt, 0); + return true; + } + + public boolean addMixerRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aInput3, ItemStack aInput4, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration, int aEUt) { + if (((aInput1 == null) && (aFluidInput == null)) || ((aOutput == null) && (aFluidOutput == null))) { + return false; + } + if ((aOutput != null) && ((aDuration = GregTech_API.sRecipeFile.get("mixer", aOutput, aDuration)) <= 0)) { + return false; + } + if ((aFluidOutput != null) && ((aDuration = GregTech_API.sRecipeFile.get("mixer", aFluidOutput.getFluid().getName(), aDuration)) <= 0)) { + return false; + } + GT_Recipe.GT_Recipe_Map.sMixerRecipes.addRecipe(true, new ItemStack[]{aInput1, aInput2, aInput3, aInput4}, new ItemStack[]{aOutput}, null, null, new FluidStack[]{aFluidInput}, new FluidStack[]{aFluidOutput}, aDuration, aEUt, 0); + return true; + } + + public boolean addLaserEngraverRecipe(ItemStack aItemToEngrave, ItemStack aLens, ItemStack aEngravedItem, int aDuration, int aEUt) { + if ((aItemToEngrave == null) || (aLens == null) || (aEngravedItem == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("laserengraving", aEngravedItem, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes.addRecipe(true, new ItemStack[]{aItemToEngrave, aLens}, new ItemStack[]{aEngravedItem}, null, null, null, aDuration, aEUt, 0); + return true; + } + + public boolean addFormingPressRecipe(ItemStack aItemToImprint, ItemStack aForm, ItemStack aImprintedItem, int aDuration, int aEUt) { + if ((aItemToImprint == null) || (aForm == null) || (aImprintedItem == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("press", aImprintedItem, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sPressRecipes.addRecipe(true, new ItemStack[]{aItemToImprint, aForm}, new ItemStack[]{aImprintedItem}, null, null, null, aDuration, aEUt, 0); + return true; + } + + public boolean addFluidHeaterRecipe(ItemStack aCircuit, FluidStack aInput, FluidStack aOutput, int aDuration, int aEUt) { + if ((aInput == null) || (aOutput == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("fluidheater", aOutput.getFluid().getUnlocalizedName(), aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes.addRecipe(true, new ItemStack[]{aCircuit}, null, null, new FluidStack[]{aInput}, new FluidStack[]{aOutput}, aDuration, aEUt, 0); + return true; + } + + public boolean addSifterRecipe(ItemStack aItemToSift, ItemStack[] aSiftedItems, int[] aChances, int aDuration, int aEUt) { + if ((aItemToSift == null) || (aSiftedItems == null)) { + return false; + } + for (ItemStack tStack : aSiftedItems) { + if (tStack != null) { + if ((aDuration = GregTech_API.sRecipeFile.get("sifter", aItemToSift, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sSifterRecipes.addRecipe(true, new ItemStack[]{aItemToSift}, aSiftedItems, null, aChances, null, null, aDuration, aEUt, 0); + return true; + } + } + return false; + } + + public boolean addArcFurnaceRecipe(ItemStack aInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt) { + if ((aInput == null) || (aOutputs == null)) { + return false; + } + for (ItemStack tStack : aOutputs) { + if (tStack != null) { + if ((aDuration = GregTech_API.sRecipeFile.get("arcfurnace", aInput, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes.addRecipe(true, new ItemStack[]{aInput}, aOutputs, null, aChances, new FluidStack[]{Materials.Oxygen.getGas(aDuration)}, null, Math.max(1, aDuration), Math.max(1, aEUt), 0); + for (Materials tMaterial : new Materials[]{Materials.Argon, Materials.Nitrogen}) { + if (tMaterial.mPlasma != null) { + int tPlasmaAmount = (int) Math.max(1L, aDuration / (tMaterial.getMass() * 16L)); + GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes.addRecipe(true, new ItemStack[]{aInput}, aOutputs, null, aChances, new FluidStack[]{tMaterial.getPlasma(tPlasmaAmount)}, new FluidStack[]{tMaterial.getGas(tPlasmaAmount)}, Math.max(1, aDuration / 16), Math.max(1, aEUt / 3), 0); + } + } + return true; + } + } + return false; + } + + public boolean addSimpleArcFurnaceRecipe(ItemStack aInput, FluidStack aFluidInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt) { + if ((aInput == null) || (aOutputs == null) || aFluidInput == null) { + return false; + } + for (ItemStack tStack : aOutputs) { + if (tStack != null) { + if ((aDuration = GregTech_API.sRecipeFile.get("arcfurnace", aInput, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes.addRecipe(true, new ItemStack[]{aInput}, aOutputs, null, aChances, new FluidStack[]{aFluidInput}, null, Math.max(1, aDuration), Math.max(1, aEUt), 0); + return true; + } + } + return false; + } + + public boolean addPlasmaArcFurnaceRecipe(ItemStack aInput, FluidStack aFluidInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt) { + if ((aInput == null) || (aOutputs == null) || aFluidInput == null) { + return false; + } + for (ItemStack tStack : aOutputs) { + if (tStack != null) { + if ((aDuration = GregTech_API.sRecipeFile.get("arcfurnace", aInput, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes.addRecipe(true, new ItemStack[]{aInput}, aOutputs, null, aChances, new FluidStack[]{aFluidInput}, null, Math.max(1, aDuration), Math.max(1, aEUt), 0); + return true; + } + } + return false; + } + + public boolean addPlasmaArcFurnaceRecipe(ItemStack aInput, FluidStack aFluidInput, ItemStack[] aOutputs, FluidStack aFluidOutput, int[] aChances, int aDuration, int aEUt) { + if ((aInput == null) || (aOutputs == null) || aFluidInput == null) { + return false; + } + for (ItemStack tStack : aOutputs) { + if (tStack != null) { + if ((aDuration = GregTech_API.sRecipeFile.get("arcfurnace", aInput, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes.addRecipe(true, new ItemStack[]{aInput}, aOutputs, null, aChances, new FluidStack[]{aFluidInput}, new FluidStack[]{aFluidOutput}, Math.max(1, aDuration), Math.max(1, aEUt), 0); + return true; + } + } + return false; + } + + public boolean addPulveriserRecipe(ItemStack aInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt) { + if ((aInput == null) || (aOutputs == null)) { + return false; + } + for (ItemStack tStack : aOutputs) { + if (tStack != null) { + if ((aDuration = GregTech_API.sRecipeFile.get("pulveriser", aInput, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.addRecipe(true, new ItemStack[]{aInput}, aOutputs, null, aChances, null, null, aDuration, aEUt, 0); + return true; + } + } + return false; + } + +} diff --git a/src/main/java/gregtech/common/GT_Server.java b/src/main/java/gregtech/common/GT_Server.java index cdcd954d..f5137f0f 100644 --- a/src/main/java/gregtech/common/GT_Server.java +++ b/src/main/java/gregtech/common/GT_Server.java @@ -5,32 +5,27 @@ import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class GT_Server - extends GT_Proxy -{ - public boolean isServerSide() - { - return true; - } - - public boolean isClientSide() - { - return false; - } - - public boolean isBukkitSide() - { - return false; - } - - public void doSonictronSound(ItemStack aStack, World aWorld, double aX, double aY, double aZ) {} - - public int addArmor(String aPrefix) - { - return 0; - } - - public EntityPlayer getThePlayer() - { - return null; - } + extends GT_Proxy { + public boolean isServerSide() { + return true; + } + + public boolean isClientSide() { + return false; + } + + public boolean isBukkitSide() { + return false; + } + + public void doSonictronSound(ItemStack aStack, World aWorld, double aX, double aY, double aZ) { + } + + public int addArmor(String aPrefix) { + return 0; + } + + public EntityPlayer getThePlayer() { + return null; + } } diff --git a/src/main/java/gregtech/common/GT_ThaumcraftCompat.java b/src/main/java/gregtech/common/GT_ThaumcraftCompat.java index aa002170..443d1ffe 100644 --- a/src/main/java/gregtech/common/GT_ThaumcraftCompat.java +++ b/src/main/java/gregtech/common/GT_ThaumcraftCompat.java @@ -2,20 +2,10 @@ package gregtech.common; import gregtech.api.GregTech_API; import gregtech.api.enums.ConfigCategories; -import gregtech.api.enums.ConfigCategories.Recipes; import gregtech.api.enums.TC_Aspects; -import gregtech.api.enums.TC_Aspects.TC_AspectStack; import gregtech.api.interfaces.internal.IThaumcraftCompat; -import gregtech.api.util.GT_Config; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Utility; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; @@ -33,212 +23,202 @@ import thaumcraft.api.research.ResearchCategoryList; import thaumcraft.api.research.ResearchItem; import thaumcraft.api.research.ResearchPage; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + public class GT_ThaumcraftCompat - implements IThaumcraftCompat -{ - public GT_ThaumcraftCompat() - { - TC_Aspects.AER.mAspect = Aspect.AIR; - TC_Aspects.ALIENIS.mAspect = Aspect.ELDRITCH; - TC_Aspects.AQUA.mAspect = Aspect.WATER; - TC_Aspects.ARBOR.mAspect = Aspect.TREE; - TC_Aspects.AURAM.mAspect = Aspect.AURA; - TC_Aspects.BESTIA.mAspect = Aspect.BEAST; - TC_Aspects.COGNITO.mAspect = Aspect.MIND; - TC_Aspects.CORPUS.mAspect = Aspect.FLESH; - TC_Aspects.EXAMINIS.mAspect = Aspect.UNDEAD; - TC_Aspects.FABRICO.mAspect = Aspect.CRAFT; - TC_Aspects.FAMES.mAspect = Aspect.HUNGER; - TC_Aspects.GELUM.mAspect = Aspect.COLD; - TC_Aspects.GRANUM.mAspect = Aspect.PLANT; - TC_Aspects.HERBA.mAspect = Aspect.PLANT; - TC_Aspects.HUMANUS.mAspect = Aspect.MAN; - TC_Aspects.IGNIS.mAspect = Aspect.FIRE; - TC_Aspects.INSTRUMENTUM.mAspect = Aspect.TOOL; - TC_Aspects.ITER.mAspect = Aspect.TRAVEL; - TC_Aspects.LIMUS.mAspect = Aspect.SLIME; - TC_Aspects.LUCRUM.mAspect = Aspect.GREED; - TC_Aspects.LUX.mAspect = Aspect.LIGHT; - TC_Aspects.MACHINA.mAspect = Aspect.MECHANISM; - TC_Aspects.MESSIS.mAspect = Aspect.CROP; - TC_Aspects.METALLUM.mAspect = Aspect.METAL; - TC_Aspects.METO.mAspect = Aspect.HARVEST; - TC_Aspects.MORTUUS.mAspect = Aspect.DEATH; - TC_Aspects.MOTUS.mAspect = Aspect.MOTION; - TC_Aspects.ORDO.mAspect = Aspect.ORDER; - TC_Aspects.PANNUS.mAspect = Aspect.CLOTH; - TC_Aspects.PERDITIO.mAspect = Aspect.ENTROPY; - TC_Aspects.PERFODIO.mAspect = Aspect.MINE; - TC_Aspects.PERMUTATIO.mAspect = Aspect.EXCHANGE; - TC_Aspects.POTENTIA.mAspect = Aspect.ENERGY; - TC_Aspects.PRAECANTIO.mAspect = Aspect.MAGIC; - TC_Aspects.SANO.mAspect = Aspect.HEAL; - TC_Aspects.SENSUS.mAspect = Aspect.SENSES; - TC_Aspects.SPIRITUS.mAspect = Aspect.SOUL; - TC_Aspects.TELUM.mAspect = Aspect.WEAPON; - TC_Aspects.TERRA.mAspect = Aspect.EARTH; - TC_Aspects.TEMPESTAS.mAspect = Aspect.WEATHER; - TC_Aspects.TENEBRAE.mAspect = Aspect.DARKNESS; - TC_Aspects.TUTAMEN.mAspect = Aspect.ARMOR; - TC_Aspects.VACUOS.mAspect = Aspect.VOID; - TC_Aspects.VENENUM.mAspect = Aspect.POISON; - TC_Aspects.VICTUS.mAspect = Aspect.LIFE; - TC_Aspects.VINCULUM.mAspect = Aspect.TRAP; - TC_Aspects.VITIUM.mAspect = Aspect.TAINT; - TC_Aspects.VITREUS.mAspect = Aspect.CRYSTAL; - TC_Aspects.VOLATUS.mAspect = Aspect.FLIGHT; - - TC_Aspects.STRONTIO.mAspect = new Aspect("strontio", 15647411, new Aspect[] { Aspect.MIND, Aspect.ENTROPY }, new ResourceLocation("gregtech:textures/aspects/" + TC_Aspects.STRONTIO.name() + ".png"), 1); - TC_Aspects.NEBRISUM.mAspect = new Aspect("nebrisum", 15658622, new Aspect[] { Aspect.MINE, Aspect.GREED }, new ResourceLocation("gregtech:textures/aspects/" + TC_Aspects.NEBRISUM.name() + ".png"), 1); - TC_Aspects.ELECTRUM.mAspect = new Aspect("electrum", 12644078, new Aspect[] { Aspect.ENERGY, Aspect.MECHANISM }, new ResourceLocation("gregtech:textures/aspects/" + TC_Aspects.ELECTRUM.name() + ".png"), 1); - TC_Aspects.MAGNETO.mAspect = new Aspect("magneto", 12632256, new Aspect[] { Aspect.METAL, Aspect.TRAVEL }, new ResourceLocation("gregtech:textures/aspects/" + TC_Aspects.MAGNETO.name() + ".png"), 1); - TC_Aspects.RADIO.mAspect = new Aspect("radio", 12648384, new Aspect[] { Aspect.LIGHT, Aspect.ENERGY }, new ResourceLocation("gregtech:textures/aspects/" + TC_Aspects.RADIO.name() + ".png"), 1); - - GT_LanguageManager.addStringLocalization("tc.aspect.strontio", "Stupidness, Incompetence"); - GT_LanguageManager.addStringLocalization("tc.aspect.nebrisum", "Cheatyness, Raiding"); - GT_LanguageManager.addStringLocalization("tc.aspect.electrum", "Electricity, Lightning"); - GT_LanguageManager.addStringLocalization("tc.aspect.magneto", "Magnetism, Attraction"); - GT_LanguageManager.addStringLocalization("tc.aspect.radio", "Radiation"); - } - - private static final AspectList getAspectList(List aAspects) - { - AspectList rAspects = new AspectList(); - TC_Aspects.TC_AspectStack tAspect; - for (Iterator i$ = aAspects.iterator(); i$.hasNext(); rAspects.add((Aspect)tAspect.mAspect.mAspect, (int)tAspect.mAmount)) { - tAspect = (TC_Aspects.TC_AspectStack)i$.next(); + implements IThaumcraftCompat { + public GT_ThaumcraftCompat() { + TC_Aspects.AER.mAspect = Aspect.AIR; + TC_Aspects.ALIENIS.mAspect = Aspect.ELDRITCH; + TC_Aspects.AQUA.mAspect = Aspect.WATER; + TC_Aspects.ARBOR.mAspect = Aspect.TREE; + TC_Aspects.AURAM.mAspect = Aspect.AURA; + TC_Aspects.BESTIA.mAspect = Aspect.BEAST; + TC_Aspects.COGNITO.mAspect = Aspect.MIND; + TC_Aspects.CORPUS.mAspect = Aspect.FLESH; + TC_Aspects.EXAMINIS.mAspect = Aspect.UNDEAD; + TC_Aspects.FABRICO.mAspect = Aspect.CRAFT; + TC_Aspects.FAMES.mAspect = Aspect.HUNGER; + TC_Aspects.GELUM.mAspect = Aspect.COLD; + TC_Aspects.GRANUM.mAspect = Aspect.PLANT; + TC_Aspects.HERBA.mAspect = Aspect.PLANT; + TC_Aspects.HUMANUS.mAspect = Aspect.MAN; + TC_Aspects.IGNIS.mAspect = Aspect.FIRE; + TC_Aspects.INSTRUMENTUM.mAspect = Aspect.TOOL; + TC_Aspects.ITER.mAspect = Aspect.TRAVEL; + TC_Aspects.LIMUS.mAspect = Aspect.SLIME; + TC_Aspects.LUCRUM.mAspect = Aspect.GREED; + TC_Aspects.LUX.mAspect = Aspect.LIGHT; + TC_Aspects.MACHINA.mAspect = Aspect.MECHANISM; + TC_Aspects.MESSIS.mAspect = Aspect.CROP; + TC_Aspects.METALLUM.mAspect = Aspect.METAL; + TC_Aspects.METO.mAspect = Aspect.HARVEST; + TC_Aspects.MORTUUS.mAspect = Aspect.DEATH; + TC_Aspects.MOTUS.mAspect = Aspect.MOTION; + TC_Aspects.ORDO.mAspect = Aspect.ORDER; + TC_Aspects.PANNUS.mAspect = Aspect.CLOTH; + TC_Aspects.PERDITIO.mAspect = Aspect.ENTROPY; + TC_Aspects.PERFODIO.mAspect = Aspect.MINE; + TC_Aspects.PERMUTATIO.mAspect = Aspect.EXCHANGE; + TC_Aspects.POTENTIA.mAspect = Aspect.ENERGY; + TC_Aspects.PRAECANTIO.mAspect = Aspect.MAGIC; + TC_Aspects.SANO.mAspect = Aspect.HEAL; + TC_Aspects.SENSUS.mAspect = Aspect.SENSES; + TC_Aspects.SPIRITUS.mAspect = Aspect.SOUL; + TC_Aspects.TELUM.mAspect = Aspect.WEAPON; + TC_Aspects.TERRA.mAspect = Aspect.EARTH; + TC_Aspects.TEMPESTAS.mAspect = Aspect.WEATHER; + TC_Aspects.TENEBRAE.mAspect = Aspect.DARKNESS; + TC_Aspects.TUTAMEN.mAspect = Aspect.ARMOR; + TC_Aspects.VACUOS.mAspect = Aspect.VOID; + TC_Aspects.VENENUM.mAspect = Aspect.POISON; + TC_Aspects.VICTUS.mAspect = Aspect.LIFE; + TC_Aspects.VINCULUM.mAspect = Aspect.TRAP; + TC_Aspects.VITIUM.mAspect = Aspect.TAINT; + TC_Aspects.VITREUS.mAspect = Aspect.CRYSTAL; + TC_Aspects.VOLATUS.mAspect = Aspect.FLIGHT; + + TC_Aspects.STRONTIO.mAspect = new Aspect("strontio", 15647411, new Aspect[]{Aspect.MIND, Aspect.ENTROPY}, new ResourceLocation("gregtech:textures/aspects/" + TC_Aspects.STRONTIO.name() + ".png"), 1); + TC_Aspects.NEBRISUM.mAspect = new Aspect("nebrisum", 15658622, new Aspect[]{Aspect.MINE, Aspect.GREED}, new ResourceLocation("gregtech:textures/aspects/" + TC_Aspects.NEBRISUM.name() + ".png"), 1); + TC_Aspects.ELECTRUM.mAspect = new Aspect("electrum", 12644078, new Aspect[]{Aspect.ENERGY, Aspect.MECHANISM}, new ResourceLocation("gregtech:textures/aspects/" + TC_Aspects.ELECTRUM.name() + ".png"), 1); + TC_Aspects.MAGNETO.mAspect = new Aspect("magneto", 12632256, new Aspect[]{Aspect.METAL, Aspect.TRAVEL}, new ResourceLocation("gregtech:textures/aspects/" + TC_Aspects.MAGNETO.name() + ".png"), 1); + TC_Aspects.RADIO.mAspect = new Aspect("radio", 12648384, new Aspect[]{Aspect.LIGHT, Aspect.ENERGY}, new ResourceLocation("gregtech:textures/aspects/" + TC_Aspects.RADIO.name() + ".png"), 1); + + GT_LanguageManager.addStringLocalization("tc.aspect.strontio", "Stupidness, Incompetence"); + GT_LanguageManager.addStringLocalization("tc.aspect.nebrisum", "Cheatyness, Raiding"); + GT_LanguageManager.addStringLocalization("tc.aspect.electrum", "Electricity, Lightning"); + GT_LanguageManager.addStringLocalization("tc.aspect.magneto", "Magnetism, Attraction"); + GT_LanguageManager.addStringLocalization("tc.aspect.radio", "Radiation"); } - return rAspects; - } - - public Object addResearch(String aResearch, String aName, String aText, String[] aParentResearches, String aCategory, ItemStack aIcon, int aComplexity, int aType, int aX, int aY, List aAspects, ItemStack[] aResearchTriggers, Object[] aPages) - { - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.researches, aResearch, true)) { - return null; - } - ResearchCategoryList tCategory = ResearchCategories.getResearchList(aCategory); - if (tCategory == null) { - return null; - } - for (Iterator i$ = tCategory.research.values().iterator(); i$.hasNext();) - { - ResearchItem tResearch = (ResearchItem)i$.next(); - if ((tResearch.displayColumn == aX) && (tResearch.displayRow == aY)) - { - aX += (aX > 0 ? 5 : -5);aY += (aY > 0 ? 5 : -5); + + private static final AspectList getAspectList(List aAspects) { + AspectList rAspects = new AspectList(); + TC_Aspects.TC_AspectStack tAspect; + for (Iterator i$ = aAspects.iterator(); i$.hasNext(); rAspects.add((Aspect) tAspect.mAspect.mAspect, (int) tAspect.mAmount)) { + tAspect = (TC_Aspects.TC_AspectStack) i$.next(); } - } - ResearchItem rResearch = new ResearchItem(aResearch, aCategory, getAspectList(aAspects), aX, aY, aComplexity, aIcon); - ArrayList tPages = new ArrayList(aPages.length); - GT_LanguageManager.addStringLocalization("tc.research_name." + aResearch, aName); - GT_LanguageManager.addStringLocalization("tc.research_text." + aResearch, "[GT] " + aText); - for (Object tPage : aPages) { - if ((tPage instanceof String)) { - tPages.add(new ResearchPage((String)tPage)); - } else if ((tPage instanceof IRecipe)) { - tPages.add(new ResearchPage((IRecipe)tPage)); - } else if ((tPage instanceof IArcaneRecipe)) { - tPages.add(new ResearchPage((IArcaneRecipe)tPage)); - } else if ((tPage instanceof CrucibleRecipe)) { - tPages.add(new ResearchPage((CrucibleRecipe)tPage)); - } else if ((tPage instanceof InfusionRecipe)) { - tPages.add(new ResearchPage((InfusionRecipe)tPage)); - } else if ((tPage instanceof InfusionEnchantmentRecipe)) { - tPages.add(new ResearchPage((InfusionEnchantmentRecipe)tPage)); - } + return rAspects; } - if ((aType & 0x40) != 0) { - rResearch.setAutoUnlock(); - } - if ((aType & 0x1) != 0) { - rResearch.setSecondary(); - } - if ((aType & 0x20) != 0) { - rResearch.setSpecial(); - } - if ((aType & 0x8) != 0) { - rResearch.setVirtual(); - } - if ((aType & 0x4) != 0) { - rResearch.setHidden(); - } - if ((aType & 0x10) != 0) { - rResearch.setRound(); - } - if ((aType & 0x2) != 0) { - rResearch.setStub(); - } - if (aParentResearches != null) - { - ArrayList tParentResearches = new ArrayList(); - for (String tParent : aParentResearches) { - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.researches, aResearch, true)) { - tParentResearches.add(tParent); + + public Object addResearch(String aResearch, String aName, String aText, String[] aParentResearches, String aCategory, ItemStack aIcon, int aComplexity, int aType, int aX, int aY, List aAspects, ItemStack[] aResearchTriggers, Object[] aPages) { + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.researches, aResearch, true)) { + return null; } - } - if (tParentResearches.size() > 0) - { - rResearch.setParents((String[])tParentResearches.toArray(new String[tParentResearches.size()])); - rResearch.setConcealed(); - } + ResearchCategoryList tCategory = ResearchCategories.getResearchList(aCategory); + if (tCategory == null) { + return null; + } + for (Iterator i$ = tCategory.research.values().iterator(); i$.hasNext(); ) { + ResearchItem tResearch = (ResearchItem) i$.next(); + if ((tResearch.displayColumn == aX) && (tResearch.displayRow == aY)) { + aX += (aX > 0 ? 5 : -5); + aY += (aY > 0 ? 5 : -5); + } + } + ResearchItem rResearch = new ResearchItem(aResearch, aCategory, getAspectList(aAspects), aX, aY, aComplexity, aIcon); + ArrayList tPages = new ArrayList(aPages.length); + GT_LanguageManager.addStringLocalization("tc.research_name." + aResearch, aName); + GT_LanguageManager.addStringLocalization("tc.research_text." + aResearch, "[GT] " + aText); + for (Object tPage : aPages) { + if ((tPage instanceof String)) { + tPages.add(new ResearchPage((String) tPage)); + } else if ((tPage instanceof IRecipe)) { + tPages.add(new ResearchPage((IRecipe) tPage)); + } else if ((tPage instanceof IArcaneRecipe)) { + tPages.add(new ResearchPage((IArcaneRecipe) tPage)); + } else if ((tPage instanceof CrucibleRecipe)) { + tPages.add(new ResearchPage((CrucibleRecipe) tPage)); + } else if ((tPage instanceof InfusionRecipe)) { + tPages.add(new ResearchPage((InfusionRecipe) tPage)); + } else if ((tPage instanceof InfusionEnchantmentRecipe)) { + tPages.add(new ResearchPage((InfusionEnchantmentRecipe) tPage)); + } + } + if ((aType & 0x40) != 0) { + rResearch.setAutoUnlock(); + } + if ((aType & 0x1) != 0) { + rResearch.setSecondary(); + } + if ((aType & 0x20) != 0) { + rResearch.setSpecial(); + } + if ((aType & 0x8) != 0) { + rResearch.setVirtual(); + } + if ((aType & 0x4) != 0) { + rResearch.setHidden(); + } + if ((aType & 0x10) != 0) { + rResearch.setRound(); + } + if ((aType & 0x2) != 0) { + rResearch.setStub(); + } + if (aParentResearches != null) { + ArrayList tParentResearches = new ArrayList(); + for (String tParent : aParentResearches) { + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.researches, aResearch, true)) { + tParentResearches.add(tParent); + } + } + if (tParentResearches.size() > 0) { + rResearch.setParents((String[]) tParentResearches.toArray(new String[tParentResearches.size()])); + rResearch.setConcealed(); + } + } + if (aResearchTriggers != null) { + rResearch.setItemTriggers(aResearchTriggers); + rResearch.setHidden(); + } + rResearch.setPages((ResearchPage[]) tPages.toArray(new ResearchPage[tPages.size()])); + return rResearch.registerResearchItem(); } - if (aResearchTriggers != null) - { - rResearch.setItemTriggers(aResearchTriggers); - rResearch.setHidden(); + + public Object addCrucibleRecipe(String aResearch, Object aInput, ItemStack aOutput, List aAspects) { + if ((GT_Utility.isStringInvalid(aResearch)) || (aInput == null) || (aOutput == null) || (aAspects == null) || (aAspects.isEmpty())) { + return null; + } + return ThaumcraftApi.addCrucibleRecipe(aResearch, GT_Utility.copy(new Object[]{aOutput}), ((aInput instanceof ItemStack)) || ((aInput instanceof ArrayList)) ? aInput : aInput.toString(), getAspectList(aAspects)); } - rResearch.setPages((ResearchPage[])tPages.toArray(new ResearchPage[tPages.size()])); - return rResearch.registerResearchItem(); - } - - public Object addCrucibleRecipe(String aResearch, Object aInput, ItemStack aOutput, List aAspects) - { - if ((GT_Utility.isStringInvalid(aResearch)) || (aInput == null) || (aOutput == null) || (aAspects == null) || (aAspects.isEmpty())) { - return null; + + public Object addInfusionRecipe(String aResearch, ItemStack aMainInput, ItemStack[] aSideInputs, ItemStack aOutput, int aInstability, List aAspects) { + if ((GT_Utility.isStringInvalid(aResearch)) || (aMainInput == null) || (aSideInputs == null) || (aOutput == null) || (aAspects == null) || (aAspects.isEmpty())) { + return null; + } + return ThaumcraftApi.addInfusionCraftingRecipe(aResearch, GT_Utility.copy(new Object[]{aOutput}), aInstability, getAspectList(aAspects), aMainInput, aSideInputs); } - return ThaumcraftApi.addCrucibleRecipe(aResearch, GT_Utility.copy(new Object[] { aOutput }), ((aInput instanceof ItemStack)) || ((aInput instanceof ArrayList)) ? aInput : aInput.toString(), getAspectList(aAspects)); - } - - public Object addInfusionRecipe(String aResearch, ItemStack aMainInput,ItemStack[] aSideInputs, ItemStack aOutput,int aInstability, List aAspects) - { - if ((GT_Utility.isStringInvalid(aResearch)) || (aMainInput == null)|| (aSideInputs==null) || (aOutput == null) || (aAspects == null) || (aAspects.isEmpty())) { - return null; + + public boolean registerThaumcraftAspectsToItem(ItemStack aExampleStack, List aAspects, String aOreDict) { + if (aAspects.isEmpty()) { + return false; + } + AspectList tAlreadyRegisteredAspects = ThaumcraftApiHelper.getObjectAspects(aExampleStack); + if ((tAlreadyRegisteredAspects == null) || (tAlreadyRegisteredAspects.size() <= 0)) { + ThaumcraftApi.registerObjectTag(aOreDict, getAspectList(aAspects)); + } + return true; } - return ThaumcraftApi.addInfusionCraftingRecipe(aResearch, GT_Utility.copy(new Object[] { aOutput }), aInstability, getAspectList(aAspects), aMainInput, aSideInputs); - } - - public boolean registerThaumcraftAspectsToItem(ItemStack aExampleStack, List aAspects, String aOreDict) - { - if (aAspects.isEmpty()) { - return false; + + public boolean registerThaumcraftAspectsToItem(ItemStack aStack, List aAspects, boolean aAdditive) { + if (aAspects.isEmpty()) { + return false; + } + if (aAdditive) { + ThaumcraftApi.registerComplexObjectTag(aStack, getAspectList(aAspects)); + return true; + } + AspectList tAlreadyRegisteredAspects = ThaumcraftApiHelper.getObjectAspects(aStack); + if ((tAlreadyRegisteredAspects == null) || (tAlreadyRegisteredAspects.size() <= 0)) { + ThaumcraftApi.registerObjectTag(aStack, getAspectList(aAspects)); + } + return true; } - AspectList tAlreadyRegisteredAspects = ThaumcraftApiHelper.getObjectAspects(aExampleStack); - if ((tAlreadyRegisteredAspects == null) || (tAlreadyRegisteredAspects.size() <= 0)) { - ThaumcraftApi.registerObjectTag(aOreDict, getAspectList(aAspects)); + + public boolean registerPortholeBlacklistedBlock(Block aBlock) { + ThaumcraftApi.portableHoleBlackList.add(aBlock); + return true; } - return true; - } - - public boolean registerThaumcraftAspectsToItem(ItemStack aStack, List aAspects, boolean aAdditive) - { - if (aAspects.isEmpty()) { - return false; - } - if (aAdditive) - { - ThaumcraftApi.registerComplexObjectTag(aStack, getAspectList(aAspects)); - return true; - } - AspectList tAlreadyRegisteredAspects = ThaumcraftApiHelper.getObjectAspects(aStack); - if ((tAlreadyRegisteredAspects == null) || (tAlreadyRegisteredAspects.size() <= 0)) { - ThaumcraftApi.registerObjectTag(aStack, getAspectList(aAspects)); - } - return true; - } - - public boolean registerPortholeBlacklistedBlock(Block aBlock) - { - ThaumcraftApi.portableHoleBlackList.add(aBlock); - return true; - } } diff --git a/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java b/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java index 6cbe3e9b..57fae198 100644 --- a/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java +++ b/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java @@ -1,99 +1,94 @@ package gregtech.common; -import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; -import gregtech.api.util.GT_Config; import gregtech.api.world.GT_Worldgen; import gregtech.common.blocks.GT_TileEntity_Ores; import gregtech.loaders.misc.GT_Achievements; +import net.minecraft.world.World; +import net.minecraft.world.chunk.IChunkProvider; import java.util.ArrayList; import java.util.Random; -import net.minecraft.world.World; -import net.minecraft.world.chunk.IChunkProvider; - public class GT_Worldgen_GT_Ore_Layer - extends GT_Worldgen -{ - public static ArrayList sList = new ArrayList(); - public static int sWeight = 0; - public final short mMinY; - public final short mMaxY; - public final short mWeight; - public final short mDensity; - public final short mSize; - public final short mPrimaryMeta; - public final short mSecondaryMeta; - public final short mBetweenMeta; - public final short mSporadicMeta; - public final boolean mOverworld; - public final boolean mNether; - public final boolean mEnd; - - public GT_Worldgen_GT_Ore_Layer(String aName, boolean aDefault, int aMinY, int aMaxY, int aWeight, int aDensity, int aSize, boolean aOverworld, boolean aNether, boolean aEnd, Materials aPrimary, Materials aSecondary, Materials aBetween, Materials aSporadic) - { - super(aName, sList, aDefault); - this.mOverworld = GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Overworld", aOverworld); - this.mNether = GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Nether", aNether); - this.mEnd = GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "TheEnd", aEnd); - this.mMinY = ((short)GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "MinHeight", aMinY)); - this.mMaxY = ((short)Math.max(this.mMinY + 5, GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "MaxHeight", aMaxY))); - this.mWeight = ((short)GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "RandomWeight", aWeight)); - this.mDensity = ((short)GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Density", aDensity)); - this.mSize = ((short)Math.max(1, GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Size", aSize))); - this.mPrimaryMeta = ((short)GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "OrePrimaryLayer", aPrimary.mMetaItemSubID)); - this.mSecondaryMeta = ((short)GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "OreSecondaryLayer", aSecondary.mMetaItemSubID)); - this.mBetweenMeta = ((short)GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "OreSporadiclyInbetween", aBetween.mMetaItemSubID)); - this.mSporadicMeta = ((short)GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "OreSporaticlyAround", aSporadic.mMetaItemSubID)); - if (this.mEnabled) { - GT_Achievements.registerOre(aPrimary,aMinY,aMaxY,aWeight,aOverworld,aNether,aEnd); - GT_Achievements.registerOre(aSecondary,aMinY,aMaxY,aWeight,aOverworld,aNether,aEnd); - GT_Achievements.registerOre(aBetween,aMinY,aMaxY,aWeight,aOverworld,aNether,aEnd); - GT_Achievements.registerOre(aSporadic,aMinY,aMaxY,aWeight,aOverworld,aNether,aEnd); - sWeight += this.mWeight; + extends GT_Worldgen { + public static ArrayList sList = new ArrayList(); + public static int sWeight = 0; + public final short mMinY; + public final short mMaxY; + public final short mWeight; + public final short mDensity; + public final short mSize; + public final short mPrimaryMeta; + public final short mSecondaryMeta; + public final short mBetweenMeta; + public final short mSporadicMeta; + public final boolean mOverworld; + public final boolean mNether; + public final boolean mEnd; + + public GT_Worldgen_GT_Ore_Layer(String aName, boolean aDefault, int aMinY, int aMaxY, int aWeight, int aDensity, int aSize, boolean aOverworld, boolean aNether, boolean aEnd, Materials aPrimary, Materials aSecondary, Materials aBetween, Materials aSporadic) { + super(aName, sList, aDefault); + this.mOverworld = GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Overworld", aOverworld); + this.mNether = GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Nether", aNether); + this.mEnd = GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "TheEnd", aEnd); + this.mMinY = ((short) GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "MinHeight", aMinY)); + this.mMaxY = ((short) Math.max(this.mMinY + 5, GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "MaxHeight", aMaxY))); + this.mWeight = ((short) GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "RandomWeight", aWeight)); + this.mDensity = ((short) GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Density", aDensity)); + this.mSize = ((short) Math.max(1, GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Size", aSize))); + this.mPrimaryMeta = ((short) GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "OrePrimaryLayer", aPrimary.mMetaItemSubID)); + this.mSecondaryMeta = ((short) GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "OreSecondaryLayer", aSecondary.mMetaItemSubID)); + this.mBetweenMeta = ((short) GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "OreSporadiclyInbetween", aBetween.mMetaItemSubID)); + this.mSporadicMeta = ((short) GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "OreSporaticlyAround", aSporadic.mMetaItemSubID)); + if (this.mEnabled) { + GT_Achievements.registerOre(aPrimary, aMinY, aMaxY, aWeight, aOverworld, aNether, aEnd); + GT_Achievements.registerOre(aSecondary, aMinY, aMaxY, aWeight, aOverworld, aNether, aEnd); + GT_Achievements.registerOre(aBetween, aMinY, aMaxY, aWeight, aOverworld, aNether, aEnd); + GT_Achievements.registerOre(aSporadic, aMinY, aMaxY, aWeight, aOverworld, aNether, aEnd); + sWeight += this.mWeight; + } } - } - - public boolean executeWorldgen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) - { - if (!isGenerationAllowed(aWorld, aDimensionType, ((aDimensionType == -1) && (this.mNether)) || ((aDimensionType == 0) && (this.mOverworld)) || ((aDimensionType == 1) && (this.mEnd)) ? aDimensionType : aDimensionType ^ 0xFFFFFFFF)) { - return false; - } - int tMinY = this.mMinY + aRandom.nextInt(this.mMaxY - this.mMinY - 5); - - int cX = aChunkX - aRandom.nextInt(this.mSize);int eX = aChunkX + 16 + aRandom.nextInt(this.mSize); - for (int tX = cX; tX <= eX; tX++) - { - int cZ = aChunkZ - aRandom.nextInt(this.mSize);int eZ = aChunkZ + 16 + aRandom.nextInt(this.mSize); - for (int tZ = cZ; tZ <= eZ; tZ++) - { - if (this.mSecondaryMeta > 0) { - for (int i = tMinY - 1; i < tMinY + 2; i++) { - if ((aRandom.nextInt(Math.max(1, Math.max(Math.abs(cZ - tZ), Math.abs(eZ - tZ)) / this.mDensity)) == 0) || (aRandom.nextInt(Math.max(1, Math.max(Math.abs(cX - tX), Math.abs(eX - tX)) / this.mDensity)) == 0)) { - GT_TileEntity_Ores.setOreBlock(aWorld, tX, i, tZ, this.mSecondaryMeta); + + public boolean executeWorldgen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) { + if (!isGenerationAllowed(aWorld, aDimensionType, ((aDimensionType == -1) && (this.mNether)) || ((aDimensionType == 0) && (this.mOverworld)) || ((aDimensionType == 1) && (this.mEnd)) ? aDimensionType : aDimensionType ^ 0xFFFFFFFF)) { + return false; + } + int tMinY = this.mMinY + aRandom.nextInt(this.mMaxY - this.mMinY - 5); + + int cX = aChunkX - aRandom.nextInt(this.mSize); + int eX = aChunkX + 16 + aRandom.nextInt(this.mSize); + for (int tX = cX; tX <= eX; tX++) { + int cZ = aChunkZ - aRandom.nextInt(this.mSize); + int eZ = aChunkZ + 16 + aRandom.nextInt(this.mSize); + for (int tZ = cZ; tZ <= eZ; tZ++) { + if (this.mSecondaryMeta > 0) { + for (int i = tMinY - 1; i < tMinY + 2; i++) { + if ((aRandom.nextInt(Math.max(1, Math.max(Math.abs(cZ - tZ), Math.abs(eZ - tZ)) / this.mDensity)) == 0) || (aRandom.nextInt(Math.max(1, Math.max(Math.abs(cX - tX), Math.abs(eX - tX)) / this.mDensity)) == 0)) { + GT_TileEntity_Ores.setOreBlock(aWorld, tX, i, tZ, this.mSecondaryMeta); + } + } + } + if ((this.mBetweenMeta > 0) && ((aRandom.nextInt(Math.max(1, Math.max(Math.abs(cZ - tZ), Math.abs(eZ - tZ)) / this.mDensity)) == 0) || (aRandom.nextInt(Math.max(1, Math.max(Math.abs(cX - tX), Math.abs(eX - tX)) / this.mDensity)) == 0))) { + GT_TileEntity_Ores.setOreBlock(aWorld, tX, tMinY + 2 + aRandom.nextInt(2), tZ, this.mBetweenMeta); + } + if (this.mPrimaryMeta > 0) { + for (int i = tMinY + 3; i < tMinY + 6; i++) { + if ((aRandom.nextInt(Math.max(1, Math.max(Math.abs(cZ - tZ), Math.abs(eZ - tZ)) / this.mDensity)) == 0) || (aRandom.nextInt(Math.max(1, Math.max(Math.abs(cX - tX), Math.abs(eX - tX)) / this.mDensity)) == 0)) { + GT_TileEntity_Ores.setOreBlock(aWorld, tX, i, tZ, this.mPrimaryMeta); + } + } + } + if ((this.mSporadicMeta > 0) && ((aRandom.nextInt(Math.max(1, Math.max(Math.abs(cZ - tZ), Math.abs(eZ - tZ)) / this.mDensity)) == 0) || (aRandom.nextInt(Math.max(1, Math.max(Math.abs(cX - tX), Math.abs(eX - tX)) / this.mDensity)) == 0))) { + GT_TileEntity_Ores.setOreBlock(aWorld, tX, tMinY - 1 + aRandom.nextInt(7), tZ, this.mSporadicMeta); + } } - } } - if ((this.mBetweenMeta > 0) && ((aRandom.nextInt(Math.max(1, Math.max(Math.abs(cZ - tZ), Math.abs(eZ - tZ)) / this.mDensity)) == 0) || (aRandom.nextInt(Math.max(1, Math.max(Math.abs(cX - tX), Math.abs(eX - tX)) / this.mDensity)) == 0))) { - GT_TileEntity_Ores.setOreBlock(aWorld, tX, tMinY + 2 + aRandom.nextInt(2), tZ, this.mBetweenMeta); + if (GT_Values.D1) { + System.out.println("Generated Orevein: " + this.mWorldGenName); } - if (this.mPrimaryMeta > 0) { - for (int i = tMinY + 3; i < tMinY + 6; i++) { - if ((aRandom.nextInt(Math.max(1, Math.max(Math.abs(cZ - tZ), Math.abs(eZ - tZ)) / this.mDensity)) == 0) || (aRandom.nextInt(Math.max(1, Math.max(Math.abs(cX - tX), Math.abs(eX - tX)) / this.mDensity)) == 0)) { - GT_TileEntity_Ores.setOreBlock(aWorld, tX, i, tZ, this.mPrimaryMeta); - } - } - } - if ((this.mSporadicMeta > 0) && ((aRandom.nextInt(Math.max(1, Math.max(Math.abs(cZ - tZ), Math.abs(eZ - tZ)) / this.mDensity)) == 0) || (aRandom.nextInt(Math.max(1, Math.max(Math.abs(cX - tX), Math.abs(eX - tX)) / this.mDensity)) == 0))) { - GT_TileEntity_Ores.setOreBlock(aWorld, tX, tMinY - 1 + aRandom.nextInt(7), tZ, this.mSporadicMeta); - } - } + return true; } - if(GT_Values.D1){ - System.out.println("Generated Orevein: "+this.mWorldGenName);} - return true; - } } diff --git a/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java b/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java index 6c7eb04d..4215ca02 100644 --- a/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java +++ b/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java @@ -2,48 +2,44 @@ package gregtech.common; import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; -import gregtech.api.util.GT_Config; import gregtech.api.world.GT_Worldgen; import gregtech.common.blocks.GT_TileEntity_Ores; -import java.util.Random; import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkProvider; +import java.util.Random; + public class GT_Worldgen_GT_Ore_SmallPieces - extends GT_Worldgen -{ - public final short mMinY; - public final short mMaxY; - public final short mAmount; - public final short mMeta; - public final boolean mOverworld; - public final boolean mNether; - public final boolean mEnd; - - public GT_Worldgen_GT_Ore_SmallPieces(String aName, boolean aDefault, int aMinY, int aMaxY, int aAmount, boolean aOverworld, boolean aNether, boolean aEnd, Materials aPrimary) - { - super(aName, GregTech_API.sWorldgenList, aDefault); - this.mOverworld = GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Overworld", aOverworld); - this.mNether = GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Nether", aNether); - this.mEnd = GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "TheEnd", aEnd); - this.mMinY = ((short)GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "MinHeight", aMinY)); - this.mMaxY = ((short)Math.max(this.mMinY + 1, GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "MaxHeight", aMaxY))); - this.mAmount = ((short)Math.max(1, GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Amount", aAmount))); - this.mMeta = ((short)GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Ore", aPrimary.mMetaItemSubID)); - } - - public boolean executeWorldgen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) - { - if (!isGenerationAllowed(aWorld, aDimensionType, ((aDimensionType == -1) && (this.mNether)) || ((aDimensionType == 0) && (this.mOverworld)) || ((aDimensionType == 1) && (this.mEnd)) ? aDimensionType : aDimensionType ^ 0xFFFFFFFF)) { - return false; + extends GT_Worldgen { + public final short mMinY; + public final short mMaxY; + public final short mAmount; + public final short mMeta; + public final boolean mOverworld; + public final boolean mNether; + public final boolean mEnd; + + public GT_Worldgen_GT_Ore_SmallPieces(String aName, boolean aDefault, int aMinY, int aMaxY, int aAmount, boolean aOverworld, boolean aNether, boolean aEnd, Materials aPrimary) { + super(aName, GregTech_API.sWorldgenList, aDefault); + this.mOverworld = GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Overworld", aOverworld); + this.mNether = GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Nether", aNether); + this.mEnd = GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "TheEnd", aEnd); + this.mMinY = ((short) GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "MinHeight", aMinY)); + this.mMaxY = ((short) Math.max(this.mMinY + 1, GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "MaxHeight", aMaxY))); + this.mAmount = ((short) Math.max(1, GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Amount", aAmount))); + this.mMeta = ((short) GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Ore", aPrimary.mMetaItemSubID)); } - if (this.mMeta > 0) - { - int i = 0; - for (int j = Math.max(1, this.mAmount / 2 + aRandom.nextInt(this.mAmount) / 2); i < j; i++) { - GT_TileEntity_Ores.setOreBlock(aWorld, aChunkX + aRandom.nextInt(16), this.mMinY + aRandom.nextInt(Math.max(1, this.mMaxY - this.mMinY)), aChunkZ + aRandom.nextInt(16), this.mMeta + 16000); - } + + public boolean executeWorldgen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) { + if (!isGenerationAllowed(aWorld, aDimensionType, ((aDimensionType == -1) && (this.mNether)) || ((aDimensionType == 0) && (this.mOverworld)) || ((aDimensionType == 1) && (this.mEnd)) ? aDimensionType : aDimensionType ^ 0xFFFFFFFF)) { + return false; + } + if (this.mMeta > 0) { + int i = 0; + for (int j = Math.max(1, this.mAmount / 2 + aRandom.nextInt(this.mAmount) / 2); i < j; i++) { + GT_TileEntity_Ores.setOreBlock(aWorld, aChunkX + aRandom.nextInt(16), this.mMinY + aRandom.nextInt(Math.max(1, this.mMaxY - this.mMinY)), aChunkZ + aRandom.nextInt(16), this.mMeta + 16000); + } + } + return true; } - return true; - } } diff --git a/src/main/java/gregtech/common/GT_Worldgen_Stone.java b/src/main/java/gregtech/common/GT_Worldgen_Stone.java index d6630a24..b71fe668 100644 --- a/src/main/java/gregtech/common/GT_Worldgen_Stone.java +++ b/src/main/java/gregtech/common/GT_Worldgen_Stone.java @@ -3,8 +3,6 @@ package gregtech.common; import gregtech.api.GregTech_API; import gregtech.api.world.GT_Worldgen_Ore; import gregtech.common.blocks.GT_TileEntity_Ores; -import java.util.Collection; -import java.util.Random; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.tileentity.TileEntity; @@ -12,80 +10,71 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkProvider; +import java.util.Collection; +import java.util.Random; + public class GT_Worldgen_Stone - extends GT_Worldgen_Ore -{ - public GT_Worldgen_Stone(String aName, boolean aDefault, Block aBlock, int aBlockMeta, int aDimensionType, int aAmount, int aSize, int aProbability, int aMinY, int aMaxY, Collection aBiomeList, boolean aAllowToGenerateinVoid) - { - super(aName, aDefault, aBlock, aBlockMeta, aDimensionType, aAmount, aSize, aProbability, aMinY, aMaxY, aBiomeList, aAllowToGenerateinVoid); - } - - public boolean executeWorldgen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) - { - if ((isGenerationAllowed(aWorld, aDimensionType, this.mDimensionType)) && ((this.mBiomeList.isEmpty()) || (this.mBiomeList.contains(aBiome))) && ((this.mProbability <= 1) || (aRandom.nextInt(this.mProbability) == 0))) - { - for (int i = 0; i < this.mAmount; i++) - { - int tX = aChunkX + aRandom.nextInt(16);int tY = this.mMinY + aRandom.nextInt(this.mMaxY - this.mMinY);int tZ = aChunkZ + aRandom.nextInt(16); - if ((this.mAllowToGenerateinVoid) || (!aWorld.getBlock(tX, tY, tZ).isAir(aWorld, tX, tY, tZ))) - { - float var6 = aRandom.nextFloat() * 3.141593F; - double var7 = tX + 8 + MathHelper.sin(var6) * this.mSize / 8.0F; - double var9 = tX + 8 - MathHelper.sin(var6) * this.mSize / 8.0F; - double var11 = tZ + 8 + MathHelper.cos(var6) * this.mSize / 8.0F; - double var13 = tZ + 8 - MathHelper.cos(var6) * this.mSize / 8.0F; - double var15 = tY + aRandom.nextInt(3) - 2; - double var17 = tY + aRandom.nextInt(3) - 2; - for (int var19 = 0; var19 <= this.mSize; var19++) - { - double var20 = var7 + (var9 - var7) * var19 / this.mSize; - double var22 = var15 + (var17 - var15) * var19 / this.mSize; - double var24 = var11 + (var13 - var11) * var19 / this.mSize; - double var26 = aRandom.nextDouble() * this.mSize / 16.0D; - double var28 = (MathHelper.sin(var19 * 3.141593F / this.mSize) + 1.0F) * var26 + 1.0D; - double var30 = (MathHelper.sin(var19 * 3.141593F / this.mSize) + 1.0F) * var26 + 1.0D; - int tMinX = MathHelper.floor_double(var20 - var28 / 2.0D); - int tMinY = MathHelper.floor_double(var22 - var30 / 2.0D); - int tMinZ = MathHelper.floor_double(var24 - var28 / 2.0D); - int tMaxX = MathHelper.floor_double(var20 + var28 / 2.0D); - int tMaxY = MathHelper.floor_double(var22 + var30 / 2.0D); - int tMaxZ = MathHelper.floor_double(var24 + var28 / 2.0D); - for (int eX = tMinX; eX <= tMaxX; eX++) - { - double var39 = (eX + 0.5D - var20) / (var28 / 2.0D); - if (var39 * var39 < 1.0D) { - for (int eY = tMinY; eY <= tMaxY; eY++) - { - double var42 = (eY + 0.5D - var22) / (var30 / 2.0D); - if (var39 * var39 + var42 * var42 < 1.0D) { - for (int eZ = tMinZ; eZ <= tMaxZ; eZ++) - { - double var45 = (eZ + 0.5D - var24) / (var28 / 2.0D); - if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0D) - { - Block tTargetedBlock = aWorld.getBlock(eX, eY, eZ); - if (tTargetedBlock == GregTech_API.sBlockOres1) - { - TileEntity tTileEntity = aWorld.getTileEntity(eX, eY, eZ); - if ((tTileEntity instanceof GT_TileEntity_Ores)) { - ((GT_TileEntity_Ores)tTileEntity).overrideOreBlockMaterial(this.mBlock, (byte)this.mBlockMeta); - } - } - else if (((this.mAllowToGenerateinVoid) && (aWorld.getBlock(eX, eY, eZ).isAir(aWorld, eX, eY, eZ))) || ((tTargetedBlock != null) && ((tTargetedBlock.isReplaceableOreGen(aWorld, eX, eY, eZ, Blocks.stone)) || (tTargetedBlock.isReplaceableOreGen(aWorld, eX, eY, eZ, Blocks.end_stone)) || (tTargetedBlock.isReplaceableOreGen(aWorld, eX, eY, eZ, Blocks.netherrack))))) - { - aWorld.setBlock(eX, eY, eZ, this.mBlock, this.mBlockMeta, 0); - } - } - } - } - } - } - } - } - } - } - return true; + extends GT_Worldgen_Ore { + public GT_Worldgen_Stone(String aName, boolean aDefault, Block aBlock, int aBlockMeta, int aDimensionType, int aAmount, int aSize, int aProbability, int aMinY, int aMaxY, Collection aBiomeList, boolean aAllowToGenerateinVoid) { + super(aName, aDefault, aBlock, aBlockMeta, aDimensionType, aAmount, aSize, aProbability, aMinY, aMaxY, aBiomeList, aAllowToGenerateinVoid); + } + + public boolean executeWorldgen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) { + if ((isGenerationAllowed(aWorld, aDimensionType, this.mDimensionType)) && ((this.mBiomeList.isEmpty()) || (this.mBiomeList.contains(aBiome))) && ((this.mProbability <= 1) || (aRandom.nextInt(this.mProbability) == 0))) { + for (int i = 0; i < this.mAmount; i++) { + int tX = aChunkX + aRandom.nextInt(16); + int tY = this.mMinY + aRandom.nextInt(this.mMaxY - this.mMinY); + int tZ = aChunkZ + aRandom.nextInt(16); + if ((this.mAllowToGenerateinVoid) || (!aWorld.getBlock(tX, tY, tZ).isAir(aWorld, tX, tY, tZ))) { + float var6 = aRandom.nextFloat() * 3.141593F; + double var7 = tX + 8 + MathHelper.sin(var6) * this.mSize / 8.0F; + double var9 = tX + 8 - MathHelper.sin(var6) * this.mSize / 8.0F; + double var11 = tZ + 8 + MathHelper.cos(var6) * this.mSize / 8.0F; + double var13 = tZ + 8 - MathHelper.cos(var6) * this.mSize / 8.0F; + double var15 = tY + aRandom.nextInt(3) - 2; + double var17 = tY + aRandom.nextInt(3) - 2; + for (int var19 = 0; var19 <= this.mSize; var19++) { + double var20 = var7 + (var9 - var7) * var19 / this.mSize; + double var22 = var15 + (var17 - var15) * var19 / this.mSize; + double var24 = var11 + (var13 - var11) * var19 / this.mSize; + double var26 = aRandom.nextDouble() * this.mSize / 16.0D; + double var28 = (MathHelper.sin(var19 * 3.141593F / this.mSize) + 1.0F) * var26 + 1.0D; + double var30 = (MathHelper.sin(var19 * 3.141593F / this.mSize) + 1.0F) * var26 + 1.0D; + int tMinX = MathHelper.floor_double(var20 - var28 / 2.0D); + int tMinY = MathHelper.floor_double(var22 - var30 / 2.0D); + int tMinZ = MathHelper.floor_double(var24 - var28 / 2.0D); + int tMaxX = MathHelper.floor_double(var20 + var28 / 2.0D); + int tMaxY = MathHelper.floor_double(var22 + var30 / 2.0D); + int tMaxZ = MathHelper.floor_double(var24 + var28 / 2.0D); + for (int eX = tMinX; eX <= tMaxX; eX++) { + double var39 = (eX + 0.5D - var20) / (var28 / 2.0D); + if (var39 * var39 < 1.0D) { + for (int eY = tMinY; eY <= tMaxY; eY++) { + double var42 = (eY + 0.5D - var22) / (var30 / 2.0D); + if (var39 * var39 + var42 * var42 < 1.0D) { + for (int eZ = tMinZ; eZ <= tMaxZ; eZ++) { + double var45 = (eZ + 0.5D - var24) / (var28 / 2.0D); + if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0D) { + Block tTargetedBlock = aWorld.getBlock(eX, eY, eZ); + if (tTargetedBlock == GregTech_API.sBlockOres1) { + TileEntity tTileEntity = aWorld.getTileEntity(eX, eY, eZ); + if ((tTileEntity instanceof GT_TileEntity_Ores)) { + ((GT_TileEntity_Ores) tTileEntity).overrideOreBlockMaterial(this.mBlock, (byte) this.mBlockMeta); + } + } else if (((this.mAllowToGenerateinVoid) && (aWorld.getBlock(eX, eY, eZ).isAir(aWorld, eX, eY, eZ))) || ((tTargetedBlock != null) && ((tTargetedBlock.isReplaceableOreGen(aWorld, eX, eY, eZ, Blocks.stone)) || (tTargetedBlock.isReplaceableOreGen(aWorld, eX, eY, eZ, Blocks.end_stone)) || (tTargetedBlock.isReplaceableOreGen(aWorld, eX, eY, eZ, Blocks.netherrack))))) { + aWorld.setBlock(eX, eY, eZ, this.mBlock, this.mBlockMeta, 0); + } + } + } + } + } + } + } + } + } + } + return true; + } + return false; } - return false; - } } diff --git a/src/main/java/gregtech/common/GT_Worldgenerator.java b/src/main/java/gregtech/common/GT_Worldgenerator.java index 77b79efd..d7f1d0bd 100644 --- a/src/main/java/gregtech/common/GT_Worldgenerator.java +++ b/src/main/java/gregtech/common/GT_Worldgenerator.java @@ -5,9 +5,6 @@ import cpw.mods.fml.common.registry.GameRegistry; import gregtech.api.GregTech_API; import gregtech.api.util.GT_Log; import gregtech.api.world.GT_Worldgen; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.chunk.Chunk; @@ -15,116 +12,100 @@ import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.gen.ChunkProviderEnd; import net.minecraft.world.gen.ChunkProviderHell; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + public class GT_Worldgenerator - implements IWorldGenerator -{ - public static boolean sAsteroids = true; - public List mList = new ArrayList(); - public boolean mIsGenerating = false; - - public GT_Worldgenerator() - { - GameRegistry.registerWorldGenerator(this, 1073741823); - } - - public void generate(Random aRandom, int aX, int aZ, World aWorld, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) - { - this.mList.add(new WorldGenContainer(new Random(aRandom.nextInt()), aX * 16, aZ * 16, ((aChunkGenerator instanceof ChunkProviderEnd)) || (aWorld.getBiomeGenForCoords(aX * 16 + 8, aZ * 16 + 8) == BiomeGenBase.sky) ? 1 : ((aChunkGenerator instanceof ChunkProviderHell)) || (aWorld.getBiomeGenForCoords(aX * 16 + 8, aZ * 16 + 8) == BiomeGenBase.hell) ? -1 : 0, aWorld, aChunkGenerator, aChunkProvider, aWorld.getBiomeGenForCoords(aX * 16 + 8, aZ * 16 + 8).biomeName)); - if (!this.mIsGenerating) - { - this.mIsGenerating = true; - for (int i = 0; i < this.mList.size(); i++) { - ((Runnable)this.mList.get(i)).run(); - } - this.mList.clear(); - this.mIsGenerating = false; + implements IWorldGenerator { + public static boolean sAsteroids = true; + public List mList = new ArrayList(); + public boolean mIsGenerating = false; + + public GT_Worldgenerator() { + GameRegistry.registerWorldGenerator(this, 1073741823); } - } - - public static class WorldGenContainer - implements Runnable - { - public final Random mRandom; - public final int mX; - public final int mZ; - public final int mDimensionType; - public final World mWorld; - public final IChunkProvider mChunkGenerator; - public final IChunkProvider mChunkProvider; - public final String mBiome; - - public WorldGenContainer(Random aRandom, int aX, int aZ, int aDimensionType, World aWorld, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider, String aBiome) - { - this.mRandom = aRandom; - this.mX = aX; - this.mZ = aZ; - this.mDimensionType = aDimensionType; - this.mWorld = aWorld; - this.mChunkGenerator = aChunkGenerator; - this.mChunkProvider = aChunkProvider; - this.mBiome = aBiome; - } - - public void run() - { - if ((Math.abs(this.mX / 16) % 3 == 1) && (Math.abs(this.mZ / 16) % 3 == 1)) - { - if ((GT_Worldgen_GT_Ore_Layer.sWeight > 0) && (GT_Worldgen_GT_Ore_Layer.sList.size() > 0)) - { - boolean temp = true; - int tRandomWeight; - for (int i = 0; (i < 256) && (temp); i++) - { - tRandomWeight = this.mRandom.nextInt(GT_Worldgen_GT_Ore_Layer.sWeight); - for (GT_Worldgen tWorldGen : GT_Worldgen_GT_Ore_Layer.sList) - { - tRandomWeight -= ((GT_Worldgen_GT_Ore_Layer)tWorldGen).mWeight; - if (tRandomWeight <= 0) { - try - { - if (tWorldGen.executeWorldgen(this.mWorld, this.mRandom, this.mBiome, this.mDimensionType, this.mX, this.mZ, this.mChunkGenerator, this.mChunkProvider)) - { - temp = false; - } - } - catch (Throwable e) - { - e.printStackTrace(GT_Log.err); - } - break; - } + + public void generate(Random aRandom, int aX, int aZ, World aWorld, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) { + this.mList.add(new WorldGenContainer(new Random(aRandom.nextInt()), aX * 16, aZ * 16, ((aChunkGenerator instanceof ChunkProviderEnd)) || (aWorld.getBiomeGenForCoords(aX * 16 + 8, aZ * 16 + 8) == BiomeGenBase.sky) ? 1 : ((aChunkGenerator instanceof ChunkProviderHell)) || (aWorld.getBiomeGenForCoords(aX * 16 + 8, aZ * 16 + 8) == BiomeGenBase.hell) ? -1 : 0, aWorld, aChunkGenerator, aChunkProvider, aWorld.getBiomeGenForCoords(aX * 16 + 8, aZ * 16 + 8).biomeName)); + if (!this.mIsGenerating) { + this.mIsGenerating = true; + for (int i = 0; i < this.mList.size(); i++) { + ((Runnable) this.mList.get(i)).run(); + } + this.mList.clear(); + this.mIsGenerating = false; + } + } + + public static class WorldGenContainer + implements Runnable { + public final Random mRandom; + public final int mX; + public final int mZ; + public final int mDimensionType; + public final World mWorld; + public final IChunkProvider mChunkGenerator; + public final IChunkProvider mChunkProvider; + public final String mBiome; + + public WorldGenContainer(Random aRandom, int aX, int aZ, int aDimensionType, World aWorld, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider, String aBiome) { + this.mRandom = aRandom; + this.mX = aX; + this.mZ = aZ; + this.mDimensionType = aDimensionType; + this.mWorld = aWorld; + this.mChunkGenerator = aChunkGenerator; + this.mChunkProvider = aChunkProvider; + this.mBiome = aBiome; + } + + public void run() { + if ((Math.abs(this.mX / 16) % 3 == 1) && (Math.abs(this.mZ / 16) % 3 == 1)) { + if ((GT_Worldgen_GT_Ore_Layer.sWeight > 0) && (GT_Worldgen_GT_Ore_Layer.sList.size() > 0)) { + boolean temp = true; + int tRandomWeight; + for (int i = 0; (i < 256) && (temp); i++) { + tRandomWeight = this.mRandom.nextInt(GT_Worldgen_GT_Ore_Layer.sWeight); + for (GT_Worldgen tWorldGen : GT_Worldgen_GT_Ore_Layer.sList) { + tRandomWeight -= ((GT_Worldgen_GT_Ore_Layer) tWorldGen).mWeight; + if (tRandomWeight <= 0) { + try { + if (tWorldGen.executeWorldgen(this.mWorld, this.mRandom, this.mBiome, this.mDimensionType, this.mX, this.mZ, this.mChunkGenerator, this.mChunkProvider)) { + temp = false; + } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + break; + } + } + } + } + int i = 0; + for (int tX = this.mX - 16; i < 3; tX += 16) { + int j = 0; + for (int tZ = this.mZ - 16; j < 3; tZ += 16) { + String tBiome = this.mWorld.getBiomeGenForCoords(tX + 8, tZ + 8).biomeName; + if (tBiome == null) { + tBiome = BiomeGenBase.plains.biomeName; + } + for (GT_Worldgen tWorldGen : GregTech_API.sWorldgenList) { + try { + tWorldGen.executeWorldgen(this.mWorld, this.mRandom, this.mBiome, this.mDimensionType, tX, tZ, this.mChunkGenerator, this.mChunkProvider); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } + j++; + } + i++; + } + } + Chunk tChunk = this.mWorld.getChunkFromBlockCoords(this.mX, this.mZ); + if (tChunk != null) { + tChunk.isModified = true; } - } } - int i = 0; - for (int tX = this.mX - 16; i < 3; tX += 16) - { - int j = 0; - for (int tZ = this.mZ - 16; j < 3; tZ += 16) - { - String tBiome = this.mWorld.getBiomeGenForCoords(tX + 8, tZ + 8).biomeName; - if (tBiome == null) { - tBiome = BiomeGenBase.plains.biomeName; - } - for (GT_Worldgen tWorldGen : GregTech_API.sWorldgenList) { - try - { - tWorldGen.executeWorldgen(this.mWorld, this.mRandom, this.mBiome, this.mDimensionType, tX, tZ, this.mChunkGenerator, this.mChunkProvider); - } - catch (Throwable e) - { - e.printStackTrace(GT_Log.err); - } - } - j++; - } - i++; - } - } - Chunk tChunk = this.mWorld.getChunkFromBlockCoords(this.mX, this.mZ); - if (tChunk != null) { - tChunk.isModified = true; - } } - } } diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Casings1.java b/src/main/java/gregtech/common/blocks/GT_Block_Casings1.java index e8d3621c..bcacbf89 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Casings1.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Casings1.java @@ -2,8 +2,6 @@ package gregtech.common.blocks; import gregtech.api.enums.ItemList; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; -import gregtech.api.interfaces.IIconContainer; import gregtech.api.objects.GT_CopiedBlockTexture; import gregtech.api.util.GT_LanguageManager; import net.minecraft.item.ItemStack; @@ -11,80 +9,74 @@ import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; public class GT_Block_Casings1 - extends GT_Block_Casings_Abstract -{ - public GT_Block_Casings1() - { - super(GT_Item_Casings1.class, "gt.blockcasings", GT_Material_Casings.INSTANCE); - for (byte i = 0; i < 16; i = (byte)(i + 1)) { - Textures.BlockIcons.CASING_BLOCKS[i] = new GT_CopiedBlockTexture(this, 6, i); + extends GT_Block_Casings_Abstract { + public GT_Block_Casings1() { + super(GT_Item_Casings1.class, "gt.blockcasings", GT_Material_Casings.INSTANCE); + for (byte i = 0; i < 16; i = (byte) (i + 1)) { + Textures.BlockIcons.CASING_BLOCKS[i] = new GT_CopiedBlockTexture(this, 6, i); + } + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "ULV Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "LV Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "MV Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "HV Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "EV Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "IV Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "LuV Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "ZPM Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "UV Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "MAX Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Bronze Plated Bricks"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".11.name", "Heat Proof Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Cupronickel Coil Block"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Kanthal Coil Block"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Nichrome Coil Block"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".15.name", "Superconducting Coil Block"); + ItemList.Casing_ULV.set(new ItemStack(this, 1, 0)); + ItemList.Casing_LV.set(new ItemStack(this, 1, 1)); + ItemList.Casing_MV.set(new ItemStack(this, 1, 2)); + ItemList.Casing_HV.set(new ItemStack(this, 1, 3)); + ItemList.Casing_EV.set(new ItemStack(this, 1, 4)); + ItemList.Casing_IV.set(new ItemStack(this, 1, 5)); + ItemList.Casing_LuV.set(new ItemStack(this, 1, 6)); + ItemList.Casing_ZPM.set(new ItemStack(this, 1, 7)); + ItemList.Casing_UV.set(new ItemStack(this, 1, 8)); + ItemList.Casing_MAX.set(new ItemStack(this, 1, 9)); + ItemList.Casing_BronzePlatedBricks.set(new ItemStack(this, 1, 10)); + ItemList.Casing_HeatProof.set(new ItemStack(this, 1, 11)); + ItemList.Casing_Coil_Cupronickel.set(new ItemStack(this, 1, 12)); + ItemList.Casing_Coil_Kanthal.set(new ItemStack(this, 1, 13)); + ItemList.Casing_Coil_Nichrome.set(new ItemStack(this, 1, 14)); + ItemList.Casing_Coil_Superconductor.set(new ItemStack(this, 1, 15)); } - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "ULV Machine Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "LV Machine Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "MV Machine Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "HV Machine Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "EV Machine Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "IV Machine Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "LuV Machine Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "ZPM Machine Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "UV Machine Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "MAX Machine Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Bronze Plated Bricks"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".11.name", "Heat Proof Machine Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Cupronickel Coil Block"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Kanthal Coil Block"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Nichrome Coil Block"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".15.name", "Superconducting Coil Block"); - ItemList.Casing_ULV.set(new ItemStack(this, 1, 0)); - ItemList.Casing_LV.set(new ItemStack(this, 1, 1)); - ItemList.Casing_MV.set(new ItemStack(this, 1, 2)); - ItemList.Casing_HV.set(new ItemStack(this, 1, 3)); - ItemList.Casing_EV.set(new ItemStack(this, 1, 4)); - ItemList.Casing_IV.set(new ItemStack(this, 1, 5)); - ItemList.Casing_LuV.set(new ItemStack(this, 1, 6)); - ItemList.Casing_ZPM.set(new ItemStack(this, 1, 7)); - ItemList.Casing_UV.set(new ItemStack(this, 1, 8)); - ItemList.Casing_MAX.set(new ItemStack(this, 1, 9)); - ItemList.Casing_BronzePlatedBricks.set(new ItemStack(this, 1, 10)); - ItemList.Casing_HeatProof.set(new ItemStack(this, 1, 11)); - ItemList.Casing_Coil_Cupronickel.set(new ItemStack(this, 1, 12)); - ItemList.Casing_Coil_Kanthal.set(new ItemStack(this, 1, 13)); - ItemList.Casing_Coil_Nichrome.set(new ItemStack(this, 1, 14)); - ItemList.Casing_Coil_Superconductor.set(new ItemStack(this, 1, 15)); - } - - public IIcon getIcon(int aSide, int aMeta) - { - if ((aMeta >= 0) && (aMeta < 16)) - { - switch (aMeta) - { - case 10: - return Textures.BlockIcons.MACHINE_BRONZEPLATEDBRICKS.getIcon(); - case 11: - return Textures.BlockIcons.MACHINE_HEATPROOFCASING.getIcon(); - case 12: - return Textures.BlockIcons.MACHINE_COIL_CUPRONICKEL.getIcon(); - case 13: - return Textures.BlockIcons.MACHINE_COIL_KANTHAL.getIcon(); - case 14: - return Textures.BlockIcons.MACHINE_COIL_NICHROME.getIcon(); - case 15: - return Textures.BlockIcons.MACHINE_COIL_SUPERCONDUCTOR.getIcon(); - } - if (aSide == 0) { - return Textures.BlockIcons.MACHINECASINGS_BOTTOM[aMeta].getIcon(); - } - if (aSide == 1) { - return Textures.BlockIcons.MACHINECASINGS_TOP[aMeta].getIcon(); - } - return Textures.BlockIcons.MACHINECASINGS_SIDE[aMeta].getIcon(); + + public IIcon getIcon(int aSide, int aMeta) { + if ((aMeta >= 0) && (aMeta < 16)) { + switch (aMeta) { + case 10: + return Textures.BlockIcons.MACHINE_BRONZEPLATEDBRICKS.getIcon(); + case 11: + return Textures.BlockIcons.MACHINE_HEATPROOFCASING.getIcon(); + case 12: + return Textures.BlockIcons.MACHINE_COIL_CUPRONICKEL.getIcon(); + case 13: + return Textures.BlockIcons.MACHINE_COIL_KANTHAL.getIcon(); + case 14: + return Textures.BlockIcons.MACHINE_COIL_NICHROME.getIcon(); + case 15: + return Textures.BlockIcons.MACHINE_COIL_SUPERCONDUCTOR.getIcon(); + } + if (aSide == 0) { + return Textures.BlockIcons.MACHINECASINGS_BOTTOM[aMeta].getIcon(); + } + if (aSide == 1) { + return Textures.BlockIcons.MACHINECASINGS_TOP[aMeta].getIcon(); + } + return Textures.BlockIcons.MACHINECASINGS_SIDE[aMeta].getIcon(); + } + return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon(); + } + + public int colorMultiplier(IBlockAccess aWorld, int aX, int aY, int aZ) { + return aWorld.getBlockMetadata(aX, aY, aZ) > 9 ? super.colorMultiplier(aWorld, aX, aY, aZ) : gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[0] << 16 | gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[1] << 8 | gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[2]; } - return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon(); - } - - public int colorMultiplier(IBlockAccess aWorld, int aX, int aY, int aZ) - { - return aWorld.getBlockMetadata(aX, aY, aZ) > 9 ? super.colorMultiplier(aWorld, aX, aY, aZ) : gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[0] << 16 | gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[1] << 8 | gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[2]; - } } diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Casings2.java b/src/main/java/gregtech/common/blocks/GT_Block_Casings2.java index 38054eb1..c9eec65b 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Casings2.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Casings2.java @@ -2,10 +2,8 @@ package gregtech.common.blocks; import gregtech.api.enums.ItemList; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.objects.GT_CopiedBlockTexture; import gregtech.api.util.GT_LanguageManager; -import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; @@ -13,90 +11,85 @@ import net.minecraft.util.IIcon; import net.minecraft.world.World; public class GT_Block_Casings2 - extends GT_Block_Casings_Abstract -{ - public GT_Block_Casings2() - { - super(GT_Item_Casings2.class, "gt.blockcasings2", GT_Material_Casings.INSTANCE); - for (byte i = 0; i < 16; i = (byte)(i + 1)) { - Textures.BlockIcons.CASING_BLOCKS[(i + 16)] = new GT_CopiedBlockTexture(this, 6, i); + extends GT_Block_Casings_Abstract { + public GT_Block_Casings2() { + super(GT_Item_Casings2.class, "gt.blockcasings2", GT_Material_Casings.INSTANCE); + for (byte i = 0; i < 16; i = (byte) (i + 1)) { + Textures.BlockIcons.CASING_BLOCKS[(i + 16)] = new GT_CopiedBlockTexture(this, 6, i); + } + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "Solid Steel Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "Frost Proof Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "Bronze Gear Box Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "Steel Gear Box Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "Titanium Gear Box Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "Tungstensteel Gear Box Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "Processor Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "Data Drive Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Containment Field Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "Assembler Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Pump Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".11.name", "Motor Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Bronze Pipe Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Steel Pipe Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Titanium Pipe Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".15.name", "Tungstensteel Pipe Machine Casing"); + ItemList.Casing_SolidSteel.set(new ItemStack(this, 1, 0)); + ItemList.Casing_FrostProof.set(new ItemStack(this, 1, 1)); + ItemList.Casing_Gearbox_Bronze.set(new ItemStack(this, 1, 2)); + ItemList.Casing_Gearbox_Steel.set(new ItemStack(this, 1, 3)); + ItemList.Casing_Gearbox_Titanium.set(new ItemStack(this, 1, 4)); + ItemList.Casing_Gearbox_TungstenSteel.set(new ItemStack(this, 1, 5)); + ItemList.Casing_Processor.set(new ItemStack(this, 1, 6)); + ItemList.Casing_DataDrive.set(new ItemStack(this, 1, 7)); + ItemList.Casing_ContainmentField.set(new ItemStack(this, 1, 8)); + ItemList.Casing_Assembler.set(new ItemStack(this, 1, 9)); + ItemList.Casing_Pump.set(new ItemStack(this, 1, 10)); + ItemList.Casing_Motor.set(new ItemStack(this, 1, 11)); + ItemList.Casing_Pipe_Bronze.set(new ItemStack(this, 1, 12)); + ItemList.Casing_Pipe_Steel.set(new ItemStack(this, 1, 13)); + ItemList.Casing_Pipe_Titanium.set(new ItemStack(this, 1, 14)); + ItemList.Casing_Pipe_TungstenSteel.set(new ItemStack(this, 1, 15)); } - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "Solid Steel Machine Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "Frost Proof Machine Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "Bronze Gear Box Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "Steel Gear Box Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "Titanium Gear Box Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "Tungstensteel Gear Box Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "Processor Machine Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "Data Drive Machine Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Containment Field Machine Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "Assembler Machine Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Pump Machine Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".11.name", "Motor Machine Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Bronze Pipe Machine Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Steel Pipe Machine Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Titanium Pipe Machine Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".15.name", "Tungstensteel Pipe Machine Casing"); - ItemList.Casing_SolidSteel.set(new ItemStack(this, 1, 0)); - ItemList.Casing_FrostProof.set(new ItemStack(this, 1, 1)); - ItemList.Casing_Gearbox_Bronze.set(new ItemStack(this, 1, 2)); - ItemList.Casing_Gearbox_Steel.set(new ItemStack(this, 1, 3)); - ItemList.Casing_Gearbox_Titanium.set(new ItemStack(this, 1, 4)); - ItemList.Casing_Gearbox_TungstenSteel.set(new ItemStack(this, 1, 5)); - ItemList.Casing_Processor.set(new ItemStack(this, 1, 6)); - ItemList.Casing_DataDrive.set(new ItemStack(this, 1, 7)); - ItemList.Casing_ContainmentField.set(new ItemStack(this, 1, 8)); - ItemList.Casing_Assembler.set(new ItemStack(this, 1, 9)); - ItemList.Casing_Pump.set(new ItemStack(this, 1, 10)); - ItemList.Casing_Motor.set(new ItemStack(this, 1, 11)); - ItemList.Casing_Pipe_Bronze.set(new ItemStack(this, 1, 12)); - ItemList.Casing_Pipe_Steel.set(new ItemStack(this, 1, 13)); - ItemList.Casing_Pipe_Titanium.set(new ItemStack(this, 1, 14)); - ItemList.Casing_Pipe_TungstenSteel.set(new ItemStack(this, 1, 15)); - } - - public IIcon getIcon(int aSide, int aMeta) - { - switch (aMeta) - { - case 0: - return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon(); - case 1: - return Textures.BlockIcons.MACHINE_CASING_FROST_PROOF.getIcon(); - case 2: - return Textures.BlockIcons.MACHINE_CASING_GEARBOX_BRONZE.getIcon(); - case 3: - return Textures.BlockIcons.MACHINE_CASING_GEARBOX_STEEL.getIcon(); - case 4: - return Textures.BlockIcons.MACHINE_CASING_GEARBOX_TITANIUM.getIcon(); - case 5: - return Textures.BlockIcons.MACHINE_CASING_GEARBOX_TUNGSTENSTEEL.getIcon(); - case 6: - return Textures.BlockIcons.MACHINE_CASING_PROCESSOR.getIcon(); - case 7: - return Textures.BlockIcons.MACHINE_CASING_DATA_DRIVE.getIcon(); - case 8: - return Textures.BlockIcons.MACHINE_CASING_CONTAINMENT_FIELD.getIcon(); - case 9: - return Textures.BlockIcons.MACHINE_CASING_ASSEMBLER.getIcon(); - case 10: - return Textures.BlockIcons.MACHINE_CASING_PUMP.getIcon(); - case 11: - return Textures.BlockIcons.MACHINE_CASING_MOTOR.getIcon(); - case 12: - return Textures.BlockIcons.MACHINE_CASING_PIPE_BRONZE.getIcon(); - case 13: - return Textures.BlockIcons.MACHINE_CASING_PIPE_STEEL.getIcon(); - case 14: - return Textures.BlockIcons.MACHINE_CASING_PIPE_TITANIUM.getIcon(); - case 15: - return Textures.BlockIcons.MACHINE_CASING_PIPE_TUNGSTENSTEEL.getIcon(); + + public IIcon getIcon(int aSide, int aMeta) { + switch (aMeta) { + case 0: + return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon(); + case 1: + return Textures.BlockIcons.MACHINE_CASING_FROST_PROOF.getIcon(); + case 2: + return Textures.BlockIcons.MACHINE_CASING_GEARBOX_BRONZE.getIcon(); + case 3: + return Textures.BlockIcons.MACHINE_CASING_GEARBOX_STEEL.getIcon(); + case 4: + return Textures.BlockIcons.MACHINE_CASING_GEARBOX_TITANIUM.getIcon(); + case 5: + return Textures.BlockIcons.MACHINE_CASING_GEARBOX_TUNGSTENSTEEL.getIcon(); + case 6: + return Textures.BlockIcons.MACHINE_CASING_PROCESSOR.getIcon(); + case 7: + return Textures.BlockIcons.MACHINE_CASING_DATA_DRIVE.getIcon(); + case 8: + return Textures.BlockIcons.MACHINE_CASING_CONTAINMENT_FIELD.getIcon(); + case 9: + return Textures.BlockIcons.MACHINE_CASING_ASSEMBLER.getIcon(); + case 10: + return Textures.BlockIcons.MACHINE_CASING_PUMP.getIcon(); + case 11: + return Textures.BlockIcons.MACHINE_CASING_MOTOR.getIcon(); + case 12: + return Textures.BlockIcons.MACHINE_CASING_PIPE_BRONZE.getIcon(); + case 13: + return Textures.BlockIcons.MACHINE_CASING_PIPE_STEEL.getIcon(); + case 14: + return Textures.BlockIcons.MACHINE_CASING_PIPE_TITANIUM.getIcon(); + case 15: + return Textures.BlockIcons.MACHINE_CASING_PIPE_TUNGSTENSTEEL.getIcon(); + } + return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon(); + } + + public float getExplosionResistance(Entity aTNT, World aWorld, int aX, int aY, int aZ, double eX, double eY, double eZ) { + return aWorld.getBlockMetadata(aX, aY, aZ) == 8 ? Blocks.bedrock.getExplosionResistance(aTNT) : super.getExplosionResistance(aTNT, aWorld, aX, aY, aZ, eX, eY, eZ); } - return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon(); - } - - public float getExplosionResistance(Entity aTNT, World aWorld, int aX, int aY, int aZ, double eX, double eY, double eZ) - { - return aWorld.getBlockMetadata(aX, aY, aZ) == 8 ? Blocks.bedrock.getExplosionResistance(aTNT) : super.getExplosionResistance(aTNT, aWorld, aX, aY, aZ, eX, eY, eZ); - } } diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Casings3.java b/src/main/java/gregtech/common/blocks/GT_Block_Casings3.java index 467efc12..a01e08dd 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Casings3.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Casings3.java @@ -2,92 +2,87 @@ package gregtech.common.blocks; import gregtech.api.enums.ItemList; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.objects.GT_CopiedBlockTexture; import gregtech.api.util.GT_LanguageManager; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; public class GT_Block_Casings3 - extends GT_Block_Casings_Abstract -{ - public GT_Block_Casings3() - { - super(GT_Item_Casings3.class, "gt.blockcasings3", GT_Material_Casings.INSTANCE); - for (byte i = 0; i < 16; i = (byte)(i + 1)) { - Textures.BlockIcons.CASING_BLOCKS[(i + 32)] = new GT_CopiedBlockTexture(this, 6, i); + extends GT_Block_Casings_Abstract { + public GT_Block_Casings3() { + super(GT_Item_Casings3.class, "gt.blockcasings3", GT_Material_Casings.INSTANCE); + for (byte i = 0; i < 16; i = (byte) (i + 1)) { + Textures.BlockIcons.CASING_BLOCKS[(i + 32)] = new GT_CopiedBlockTexture(this, 6, i); + } + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "Yellow Stripes Block"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "Yellow Stripes Block"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "Radioactive Hazard Sign Block"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "Bio Hazard Sign Block"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "Explosion Hazard Sign Block"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "Fire Hazard Sign Block"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "Acid Hazard Sign Block"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "Magic Hazard Sign Block"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Frost Hazard Sign Block"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "Noise Hazard Sign Block"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Grate Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".11.name", "Vent Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Radiation Proof Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Bronze Firebox Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Steel Firebox Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".15.name", "Tungstensteel Firebox Casing"); + ItemList.Casing_Stripes_A.set(new ItemStack(this, 1, 0)); + ItemList.Casing_Stripes_B.set(new ItemStack(this, 1, 1)); + ItemList.Casing_RadioactiveHazard.set(new ItemStack(this, 1, 2)); + ItemList.Casing_BioHazard.set(new ItemStack(this, 1, 3)); + ItemList.Casing_ExplosionHazard.set(new ItemStack(this, 1, 4)); + ItemList.Casing_FireHazard.set(new ItemStack(this, 1, 5)); + ItemList.Casing_AcidHazard.set(new ItemStack(this, 1, 6)); + ItemList.Casing_MagicHazard.set(new ItemStack(this, 1, 7)); + ItemList.Casing_FrostHazard.set(new ItemStack(this, 1, 8)); + ItemList.Casing_NoiseHazard.set(new ItemStack(this, 1, 9)); + ItemList.Casing_Grate.set(new ItemStack(this, 1, 10)); + ItemList.Casing_Vent.set(new ItemStack(this, 1, 11)); + ItemList.Casing_RadiationProof.set(new ItemStack(this, 1, 12)); + ItemList.Casing_Firebox_Bronze.set(new ItemStack(this, 1, 13)); + ItemList.Casing_Firebox_Steel.set(new ItemStack(this, 1, 14)); + ItemList.Casing_Firebox_TungstenSteel.set(new ItemStack(this, 1, 15)); } - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "Yellow Stripes Block"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "Yellow Stripes Block"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "Radioactive Hazard Sign Block"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "Bio Hazard Sign Block"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "Explosion Hazard Sign Block"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "Fire Hazard Sign Block"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "Acid Hazard Sign Block"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "Magic Hazard Sign Block"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Frost Hazard Sign Block"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "Noise Hazard Sign Block"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Grate Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".11.name", "Vent Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Radiation Proof Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Bronze Firebox Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Steel Firebox Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".15.name", "Tungstensteel Firebox Casing"); - ItemList.Casing_Stripes_A.set(new ItemStack(this, 1, 0)); - ItemList.Casing_Stripes_B.set(new ItemStack(this, 1, 1)); - ItemList.Casing_RadioactiveHazard.set(new ItemStack(this, 1, 2)); - ItemList.Casing_BioHazard.set(new ItemStack(this, 1, 3)); - ItemList.Casing_ExplosionHazard.set(new ItemStack(this, 1, 4)); - ItemList.Casing_FireHazard.set(new ItemStack(this, 1, 5)); - ItemList.Casing_AcidHazard.set(new ItemStack(this, 1, 6)); - ItemList.Casing_MagicHazard.set(new ItemStack(this, 1, 7)); - ItemList.Casing_FrostHazard.set(new ItemStack(this, 1, 8)); - ItemList.Casing_NoiseHazard.set(new ItemStack(this, 1, 9)); - ItemList.Casing_Grate.set(new ItemStack(this, 1, 10)); - ItemList.Casing_Vent.set(new ItemStack(this, 1, 11)); - ItemList.Casing_RadiationProof.set(new ItemStack(this, 1, 12)); - ItemList.Casing_Firebox_Bronze.set(new ItemStack(this, 1, 13)); - ItemList.Casing_Firebox_Steel.set(new ItemStack(this, 1, 14)); - ItemList.Casing_Firebox_TungstenSteel.set(new ItemStack(this, 1, 15)); - } - - public IIcon getIcon(int aSide, int aMeta) - { - switch (aMeta) - { - case 0: - return Textures.BlockIcons.MACHINE_CASING_STRIPES_A.getIcon(); - case 1: - return Textures.BlockIcons.MACHINE_CASING_STRIPES_B.getIcon(); - case 2: - return Textures.BlockIcons.MACHINE_CASING_RADIOACTIVEHAZARD.getIcon(); - case 3: - return Textures.BlockIcons.MACHINE_CASING_BIOHAZARD.getIcon(); - case 4: - return Textures.BlockIcons.MACHINE_CASING_EXPLOSIONHAZARD.getIcon(); - case 5: - return Textures.BlockIcons.MACHINE_CASING_FIREHAZARD.getIcon(); - case 6: - return Textures.BlockIcons.MACHINE_CASING_ACIDHAZARD.getIcon(); - case 7: - return Textures.BlockIcons.MACHINE_CASING_MAGICHAZARD.getIcon(); - case 8: - return Textures.BlockIcons.MACHINE_CASING_FROSTHAZARD.getIcon(); - case 9: - return Textures.BlockIcons.MACHINE_CASING_NOISEHAZARD.getIcon(); - case 10: - return Textures.BlockIcons.MACHINE_CASING_GRATE.getIcon(); - case 11: - return Textures.BlockIcons.MACHINE_CASING_VENT.getIcon(); - case 12: - return Textures.BlockIcons.MACHINE_CASING_RADIATIONPROOF.getIcon(); - case 13: - return aSide > 1 ? Textures.BlockIcons.MACHINE_CASING_FIREBOX_BRONZE.getIcon() : Textures.BlockIcons.MACHINE_BRONZEPLATEDBRICKS.getIcon(); - case 14: - return aSide > 1 ? Textures.BlockIcons.MACHINE_CASING_FIREBOX_STEEL.getIcon() : Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon(); - case 15: - return aSide > 1 ? Textures.BlockIcons.MACHINE_CASING_FIREBOX_TUNGSTENSTEEL.getIcon() : Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon(); + + public IIcon getIcon(int aSide, int aMeta) { + switch (aMeta) { + case 0: + return Textures.BlockIcons.MACHINE_CASING_STRIPES_A.getIcon(); + case 1: + return Textures.BlockIcons.MACHINE_CASING_STRIPES_B.getIcon(); + case 2: + return Textures.BlockIcons.MACHINE_CASING_RADIOACTIVEHAZARD.getIcon(); + case 3: + return Textures.BlockIcons.MACHINE_CASING_BIOHAZARD.getIcon(); + case 4: + return Textures.BlockIcons.MACHINE_CASING_EXPLOSIONHAZARD.getIcon(); + case 5: + return Textures.BlockIcons.MACHINE_CASING_FIREHAZARD.getIcon(); + case 6: + return Textures.BlockIcons.MACHINE_CASING_ACIDHAZARD.getIcon(); + case 7: + return Textures.BlockIcons.MACHINE_CASING_MAGICHAZARD.getIcon(); + case 8: + return Textures.BlockIcons.MACHINE_CASING_FROSTHAZARD.getIcon(); + case 9: + return Textures.BlockIcons.MACHINE_CASING_NOISEHAZARD.getIcon(); + case 10: + return Textures.BlockIcons.MACHINE_CASING_GRATE.getIcon(); + case 11: + return Textures.BlockIcons.MACHINE_CASING_VENT.getIcon(); + case 12: + return Textures.BlockIcons.MACHINE_CASING_RADIATIONPROOF.getIcon(); + case 13: + return aSide > 1 ? Textures.BlockIcons.MACHINE_CASING_FIREBOX_BRONZE.getIcon() : Textures.BlockIcons.MACHINE_BRONZEPLATEDBRICKS.getIcon(); + case 14: + return aSide > 1 ? Textures.BlockIcons.MACHINE_CASING_FIREBOX_STEEL.getIcon() : Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon(); + case 15: + return aSide > 1 ? Textures.BlockIcons.MACHINE_CASING_FIREBOX_TUNGSTENSTEEL.getIcon() : Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon(); + } + return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon(); } - return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon(); - } } diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Casings4.java b/src/main/java/gregtech/common/blocks/GT_Block_Casings4.java index a0a3221d..3705ce22 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Casings4.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Casings4.java @@ -4,7 +4,6 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.enums.ItemList; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.objects.GT_CopiedBlockTexture; @@ -16,453 +15,430 @@ import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; public class GT_Block_Casings4 - extends GT_Block_Casings_Abstract -{ - public static boolean mConnectedMachineTextures = true; - - public GT_Block_Casings4() - { - super(GT_Item_Casings4.class, "gt.blockcasings4", GT_Material_Casings.INSTANCE); - for (byte i = 0; i < 16; i = (byte)(i + 1)) { - Textures.BlockIcons.CASING_BLOCKS[(i + 48)] = new GT_CopiedBlockTexture(this, 6, i); - } - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "Robust Tungstensteel Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "Clean Stainless Steel Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "Stable Titanium Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "Titanium Firebox Casing"); + extends GT_Block_Casings_Abstract { + public static boolean mConnectedMachineTextures = true; + + public GT_Block_Casings4() { + super(GT_Item_Casings4.class, "gt.blockcasings4", GT_Material_Casings.INSTANCE); + for (byte i = 0; i < 16; i = (byte) (i + 1)) { + Textures.BlockIcons.CASING_BLOCKS[(i + 48)] = new GT_CopiedBlockTexture(this, 6, i); + } + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "Robust Tungstensteel Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "Clean Stainless Steel Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "Stable Titanium Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "Titanium Firebox Casing"); // GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "Fusion Casing"); // GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "Fusion Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "Fusion Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "Fusion Coil"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Fusion Casing MK II"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "Turbine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "Fusion Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "Fusion Coil"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Fusion Casing MK II"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "Turbine Casing"); - ItemList.Casing_RobustTungstenSteel.set(new ItemStack(this, 1, 0)); - ItemList.Casing_CleanStainlessSteel.set(new ItemStack(this, 1, 1)); - ItemList.Casing_StableTitanium.set(new ItemStack(this, 1, 2)); - ItemList.Casing_Firebox_Titanium.set(new ItemStack(this, 1, 3)); - ItemList.Casing_Fusion.set(new ItemStack(this,1,6)); - ItemList.Casing_Fusion_Coil.set(new ItemStack(this,1,7)); - ItemList.Casing_Fusion2.set(new ItemStack(this,1,8)); - ItemList.Casing_Turbine.set(new ItemStack(this,1,9)); - } - - public IIcon getIcon(int aSide, int aMeta) - { - switch (aMeta) - { - case 0: - return Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon(); - case 1: - return Textures.BlockIcons.MACHINE_CASING_CLEAN_STAINLESSSTEEL.getIcon(); - case 2: - return Textures.BlockIcons.MACHINE_CASING_STABLE_TITANIUM.getIcon(); - case 3: - return aSide > 1 ? Textures.BlockIcons.MACHINE_CASING_FIREBOX_TITANIUM.getIcon() : Textures.BlockIcons.MACHINE_CASING_STABLE_TITANIUM.getIcon(); - case 4: - return Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS_YELLOW.getIcon(); - case 5: - return Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS.getIcon(); - case 6: - return Textures.BlockIcons.MACHINE_CASING_FUSION.getIcon(); - case 7: - return Textures.BlockIcons.MACHINE_CASING_FUSION_COIL.getIcon(); - case 8: - return Textures.BlockIcons.MACHINE_CASING_FUSION_2.getIcon(); - case 9: - return Textures.BlockIcons.MACHINE_CASING_TURBINE.getIcon(); - case 10: - return Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon(); - case 11: - return Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon(); - case 12: - return Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon(); - case 13: - return Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon(); - case 14: - return Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon(); - case 15: - return Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon(); + ItemList.Casing_RobustTungstenSteel.set(new ItemStack(this, 1, 0)); + ItemList.Casing_CleanStainlessSteel.set(new ItemStack(this, 1, 1)); + ItemList.Casing_StableTitanium.set(new ItemStack(this, 1, 2)); + ItemList.Casing_Firebox_Titanium.set(new ItemStack(this, 1, 3)); + ItemList.Casing_Fusion.set(new ItemStack(this, 1, 6)); + ItemList.Casing_Fusion_Coil.set(new ItemStack(this, 1, 7)); + ItemList.Casing_Fusion2.set(new ItemStack(this, 1, 8)); + ItemList.Casing_Turbine.set(new ItemStack(this, 1, 9)); } - return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon(); - } -@SideOnly(Side.CLIENT) -public IIcon getIcon(IBlockAccess aWorld, int xCoord, int yCoord, int zCoord, int aSide) -{ - int tMeta = aWorld.getBlockMetadata(xCoord, yCoord, zCoord); - if ( ((tMeta != 6)&&(tMeta != 8)&&(tMeta != 9)) || (!mConnectedMachineTextures)) { - return getIcon(aSide, tMeta); - } - int tStartIndex = tMeta == 6 ? 1 : 13; - if (tMeta == 9) { - if ((aSide == 2) || (aSide == 3)) - { - TileEntity tTileEntity; - IMetaTileEntity tMetaTileEntity; - if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 3 ? 1 : -1), yCoord - 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity)tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity)tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) - { - if (((IGregTechTileEntity)tTileEntity).isActive()) { - return Textures.BlockIcons.TURBINE_ACTIVE[0].getIcon(); + public IIcon getIcon(int aSide, int aMeta) { + switch (aMeta) { + case 0: + return Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon(); + case 1: + return Textures.BlockIcons.MACHINE_CASING_CLEAN_STAINLESSSTEEL.getIcon(); + case 2: + return Textures.BlockIcons.MACHINE_CASING_STABLE_TITANIUM.getIcon(); + case 3: + return aSide > 1 ? Textures.BlockIcons.MACHINE_CASING_FIREBOX_TITANIUM.getIcon() : Textures.BlockIcons.MACHINE_CASING_STABLE_TITANIUM.getIcon(); + case 4: + return Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS_YELLOW.getIcon(); + case 5: + return Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS.getIcon(); + case 6: + return Textures.BlockIcons.MACHINE_CASING_FUSION.getIcon(); + case 7: + return Textures.BlockIcons.MACHINE_CASING_FUSION_COIL.getIcon(); + case 8: + return Textures.BlockIcons.MACHINE_CASING_FUSION_2.getIcon(); + case 9: + return Textures.BlockIcons.MACHINE_CASING_TURBINE.getIcon(); + case 10: + return Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon(); + case 11: + return Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon(); + case 12: + return Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon(); + case 13: + return Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon(); + case 14: + return Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon(); + case 15: + return Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon(); } - return Textures.BlockIcons.TURBINE[0].getIcon(); - } - if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 3 ? 1 : -1), yCoord, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity)tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity)tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) - { - if (((IGregTechTileEntity)tTileEntity).isActive()) { - return Textures.BlockIcons.TURBINE_ACTIVE[3].getIcon(); + return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon(); + } + + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess aWorld, int xCoord, int yCoord, int zCoord, int aSide) { + int tMeta = aWorld.getBlockMetadata(xCoord, yCoord, zCoord); + if (((tMeta != 6) && (tMeta != 8) && (tMeta != 9)) || (!mConnectedMachineTextures)) { + return getIcon(aSide, tMeta); } - return Textures.BlockIcons.TURBINE[3].getIcon(); - } - if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 3 ? 1 : -1), yCoord + 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity)tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity)tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) - { - if (((IGregTechTileEntity)tTileEntity).isActive()) { - return Textures.BlockIcons.TURBINE_ACTIVE[6].getIcon(); + int tStartIndex = tMeta == 6 ? 1 : 13; + if (tMeta == 9) { + if ((aSide == 2) || (aSide == 3)) { + TileEntity tTileEntity; + IMetaTileEntity tMetaTileEntity; + if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 3 ? 1 : -1), yCoord - 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) { + if (((IGregTechTileEntity) tTileEntity).isActive()) { + return Textures.BlockIcons.TURBINE_ACTIVE[0].getIcon(); + } + return Textures.BlockIcons.TURBINE[0].getIcon(); + } + if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 3 ? 1 : -1), yCoord, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) { + if (((IGregTechTileEntity) tTileEntity).isActive()) { + return Textures.BlockIcons.TURBINE_ACTIVE[3].getIcon(); + } + return Textures.BlockIcons.TURBINE[3].getIcon(); + } + if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 3 ? 1 : -1), yCoord + 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) { + if (((IGregTechTileEntity) tTileEntity).isActive()) { + return Textures.BlockIcons.TURBINE_ACTIVE[6].getIcon(); + } + return Textures.BlockIcons.TURBINE[6].getIcon(); + } + if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord - 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) { + if (((IGregTechTileEntity) tTileEntity).isActive()) { + return Textures.BlockIcons.TURBINE_ACTIVE[1].getIcon(); + } + return Textures.BlockIcons.TURBINE[1].getIcon(); + } + if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord + 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) { + if (((IGregTechTileEntity) tTileEntity).isActive()) { + return Textures.BlockIcons.TURBINE_ACTIVE[7].getIcon(); + } + return Textures.BlockIcons.TURBINE[7].getIcon(); + } + if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 2 ? 1 : -1), yCoord + 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) { + if (((IGregTechTileEntity) tTileEntity).isActive()) { + return Textures.BlockIcons.TURBINE_ACTIVE[8].getIcon(); + } + return Textures.BlockIcons.TURBINE[8].getIcon(); + } + if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 2 ? 1 : -1), yCoord, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) { + if (((IGregTechTileEntity) tTileEntity).isActive()) { + return Textures.BlockIcons.TURBINE_ACTIVE[5].getIcon(); + } + return Textures.BlockIcons.TURBINE[5].getIcon(); + } + if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 2 ? 1 : -1), yCoord - 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) { + if (((IGregTechTileEntity) tTileEntity).isActive()) { + return Textures.BlockIcons.TURBINE_ACTIVE[2].getIcon(); + } + return Textures.BlockIcons.TURBINE[2].getIcon(); + } + } else if ((aSide == 4) || (aSide == 5)) { + TileEntity tTileEntity; + Object tMetaTileEntity; + if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord - 1, zCoord + (aSide == 4 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) { + if (((IGregTechTileEntity) tTileEntity).isActive()) { + return Textures.BlockIcons.TURBINE_ACTIVE[0].getIcon(); + } + return Textures.BlockIcons.TURBINE[0].getIcon(); + } + if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord, zCoord + (aSide == 4 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) { + if (((IGregTechTileEntity) tTileEntity).isActive()) { + return Textures.BlockIcons.TURBINE_ACTIVE[3].getIcon(); + } + return Textures.BlockIcons.TURBINE[3].getIcon(); + } + if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord + 1, zCoord + (aSide == 4 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) { + if (((IGregTechTileEntity) tTileEntity).isActive()) { + return Textures.BlockIcons.TURBINE_ACTIVE[6].getIcon(); + } + return Textures.BlockIcons.TURBINE[6].getIcon(); + } + if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord - 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) { + if (((IGregTechTileEntity) tTileEntity).isActive()) { + return Textures.BlockIcons.TURBINE_ACTIVE[1].getIcon(); + } + return Textures.BlockIcons.TURBINE[1].getIcon(); + } + if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord + 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) { + if (((IGregTechTileEntity) tTileEntity).isActive()) { + return Textures.BlockIcons.TURBINE_ACTIVE[7].getIcon(); + } + return Textures.BlockIcons.TURBINE[7].getIcon(); + } + if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord + 1, zCoord + (aSide == 5 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) { + if (((IGregTechTileEntity) tTileEntity).isActive()) { + return Textures.BlockIcons.TURBINE_ACTIVE[8].getIcon(); + } + return Textures.BlockIcons.TURBINE[8].getIcon(); + } + if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord, zCoord + (aSide == 5 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) { + if (((IGregTechTileEntity) tTileEntity).isActive()) { + return Textures.BlockIcons.TURBINE_ACTIVE[5].getIcon(); + } + return Textures.BlockIcons.TURBINE[5].getIcon(); + } + if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord - 1, zCoord + (aSide == 5 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) { + if (((IGregTechTileEntity) tTileEntity).isActive()) { + return Textures.BlockIcons.TURBINE_ACTIVE[2].getIcon(); + } + return Textures.BlockIcons.TURBINE[2].getIcon(); + } + } + return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon(); } - return Textures.BlockIcons.TURBINE[6].getIcon(); - } - if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord - 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity)tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity)tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) - { - if (((IGregTechTileEntity)tTileEntity).isActive()) { - return Textures.BlockIcons.TURBINE_ACTIVE[1].getIcon(); + boolean[] tConnectedSides = {(aWorld.getBlock(xCoord, yCoord - 1, zCoord) == this) && (aWorld.getBlockMetadata(xCoord, yCoord - 1, zCoord) == tMeta), (aWorld.getBlock(xCoord, yCoord + 1, zCoord) == this) && (aWorld.getBlockMetadata(xCoord, yCoord + 1, zCoord) == tMeta), (aWorld.getBlock(xCoord + 1, yCoord, zCoord) == this) && (aWorld.getBlockMetadata(xCoord + 1, yCoord, zCoord) == tMeta), (aWorld.getBlock(xCoord, yCoord, zCoord + 1) == this) && (aWorld.getBlockMetadata(xCoord, yCoord, zCoord + 1) == tMeta), (aWorld.getBlock(xCoord - 1, yCoord, zCoord) == this) && (aWorld.getBlockMetadata(xCoord - 1, yCoord, zCoord) == tMeta), (aWorld.getBlock(xCoord, yCoord, zCoord - 1) == this) && (aWorld.getBlockMetadata(xCoord, yCoord, zCoord - 1) == tMeta)}; + switch (aSide) { + case 0: + if (tConnectedSides[0]) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); + } + if ((tConnectedSides[4]) && (tConnectedSides[5]) && (tConnectedSides[2]) && (tConnectedSides[3])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 6)].getIcon(); + } + if ((!tConnectedSides[4]) && (tConnectedSides[5]) && (tConnectedSides[2]) && (tConnectedSides[3])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 2)].getIcon(); + } + if ((tConnectedSides[4]) && (!tConnectedSides[5]) && (tConnectedSides[2]) && (tConnectedSides[3])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 3)].getIcon(); + } + if ((tConnectedSides[4]) && (tConnectedSides[5]) && (!tConnectedSides[2]) && (tConnectedSides[3])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 4)].getIcon(); + } + if ((tConnectedSides[4]) && (tConnectedSides[5]) && (tConnectedSides[2]) && (!tConnectedSides[3])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 5)].getIcon(); + } + if ((!tConnectedSides[4]) && (!tConnectedSides[5]) && (tConnectedSides[2]) && (tConnectedSides[3])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 8)].getIcon(); + } + if ((tConnectedSides[4]) && (!tConnectedSides[5]) && (!tConnectedSides[2]) && (tConnectedSides[3])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 9)].getIcon(); + } + if ((tConnectedSides[4]) && (tConnectedSides[5]) && (!tConnectedSides[2]) && (!tConnectedSides[3])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 10)].getIcon(); + } + if ((!tConnectedSides[4]) && (tConnectedSides[5]) && (tConnectedSides[2]) && (!tConnectedSides[3])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 11)].getIcon(); + } + if ((!tConnectedSides[4]) && (!tConnectedSides[5]) && (!tConnectedSides[2]) && (!tConnectedSides[3])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); + } + if ((!tConnectedSides[4]) && (!tConnectedSides[2])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 1)].getIcon(); + } + if ((!tConnectedSides[5]) && (!tConnectedSides[3])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 0)].getIcon(); + } + case 1: + if (tConnectedSides[1]) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); + } + if ((tConnectedSides[4]) && (tConnectedSides[5]) && (tConnectedSides[2]) && (tConnectedSides[3])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 6)].getIcon(); + } + if ((!tConnectedSides[4]) && (tConnectedSides[5]) && (tConnectedSides[2]) && (tConnectedSides[3])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 2)].getIcon(); + } + if ((tConnectedSides[4]) && (!tConnectedSides[5]) && (tConnectedSides[2]) && (tConnectedSides[3])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 3)].getIcon(); + } + if ((tConnectedSides[4]) && (tConnectedSides[5]) && (!tConnectedSides[2]) && (tConnectedSides[3])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 4)].getIcon(); + } + if ((tConnectedSides[4]) && (tConnectedSides[5]) && (tConnectedSides[2]) && (!tConnectedSides[3])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 5)].getIcon(); + } + if ((!tConnectedSides[4]) && (!tConnectedSides[5]) && (tConnectedSides[2]) && (tConnectedSides[3])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 8)].getIcon(); + } + if ((tConnectedSides[4]) && (!tConnectedSides[5]) && (!tConnectedSides[2]) && (tConnectedSides[3])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 9)].getIcon(); + } + if ((tConnectedSides[4]) && (tConnectedSides[5]) && (!tConnectedSides[2]) && (!tConnectedSides[3])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 10)].getIcon(); + } + if ((!tConnectedSides[4]) && (tConnectedSides[5]) && (tConnectedSides[2]) && (!tConnectedSides[3])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 11)].getIcon(); + } + if ((!tConnectedSides[4]) && (!tConnectedSides[5]) && (!tConnectedSides[2]) && (!tConnectedSides[3])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); + } + if ((!tConnectedSides[2]) && (!tConnectedSides[4])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 1)].getIcon(); + } + if ((!tConnectedSides[3]) && (!tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 0)].getIcon(); + } + case 2: + if (tConnectedSides[5]) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); + } + if ((tConnectedSides[2]) && (tConnectedSides[0]) && (tConnectedSides[4]) && (tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 6)].getIcon(); + } + if ((!tConnectedSides[2]) && (tConnectedSides[0]) && (tConnectedSides[4]) && (tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 2)].getIcon(); + } + if ((tConnectedSides[2]) && (!tConnectedSides[0]) && (tConnectedSides[4]) && (tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 5)].getIcon(); + } + if ((tConnectedSides[2]) && (tConnectedSides[0]) && (!tConnectedSides[4]) && (tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 4)].getIcon(); + } + if ((tConnectedSides[2]) && (tConnectedSides[0]) && (tConnectedSides[4]) && (!tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 3)].getIcon(); + } + if ((!tConnectedSides[2]) && (!tConnectedSides[0]) && (tConnectedSides[4]) && (tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 11)].getIcon(); + } + if ((tConnectedSides[2]) && (!tConnectedSides[0]) && (!tConnectedSides[4]) && (tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 10)].getIcon(); + } + if ((tConnectedSides[2]) && (tConnectedSides[0]) && (!tConnectedSides[4]) && (!tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 9)].getIcon(); + } + if ((!tConnectedSides[2]) && (tConnectedSides[0]) && (tConnectedSides[4]) && (!tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 8)].getIcon(); + } + if ((!tConnectedSides[2]) && (!tConnectedSides[0]) && (!tConnectedSides[4]) && (!tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); + } + if ((!tConnectedSides[2]) && (!tConnectedSides[4])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 1)].getIcon(); + } + if ((!tConnectedSides[0]) && (!tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 0)].getIcon(); + } + case 3: + if (tConnectedSides[3]) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); + } + if ((tConnectedSides[2]) && (tConnectedSides[0]) && (tConnectedSides[4]) && (tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 6)].getIcon(); + } + if ((!tConnectedSides[2]) && (tConnectedSides[0]) && (tConnectedSides[4]) && (tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 4)].getIcon(); + } + if ((tConnectedSides[2]) && (!tConnectedSides[0]) && (tConnectedSides[4]) && (tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 5)].getIcon(); + } + if ((tConnectedSides[2]) && (tConnectedSides[0]) && (!tConnectedSides[4]) && (tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 2)].getIcon(); + } + if ((tConnectedSides[2]) && (tConnectedSides[0]) && (tConnectedSides[4]) && (!tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 3)].getIcon(); + } + if ((!tConnectedSides[2]) && (!tConnectedSides[0]) && (tConnectedSides[4]) && (tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 10)].getIcon(); + } + if ((tConnectedSides[2]) && (!tConnectedSides[0]) && (!tConnectedSides[4]) && (tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 11)].getIcon(); + } + if ((tConnectedSides[2]) && (tConnectedSides[0]) && (!tConnectedSides[4]) && (!tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 8)].getIcon(); + } + if ((!tConnectedSides[2]) && (tConnectedSides[0]) && (tConnectedSides[4]) && (!tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 9)].getIcon(); + } + if ((!tConnectedSides[2]) && (!tConnectedSides[0]) && (!tConnectedSides[4]) && (!tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); + } + if ((!tConnectedSides[2]) && (!tConnectedSides[4])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 1)].getIcon(); + } + if ((!tConnectedSides[0]) && (!tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 0)].getIcon(); + } + case 4: + if (tConnectedSides[4]) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); + } + if ((tConnectedSides[0]) && (tConnectedSides[3]) && (tConnectedSides[1]) && (tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 6)].getIcon(); + } + if ((!tConnectedSides[0]) && (tConnectedSides[3]) && (tConnectedSides[1]) && (tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 5)].getIcon(); + } + if ((tConnectedSides[0]) && (!tConnectedSides[3]) && (tConnectedSides[1]) && (tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 4)].getIcon(); + } + if ((tConnectedSides[0]) && (tConnectedSides[3]) && (!tConnectedSides[1]) && (tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 3)].getIcon(); + } + if ((tConnectedSides[0]) && (tConnectedSides[3]) && (tConnectedSides[1]) && (!tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 2)].getIcon(); + } + if ((!tConnectedSides[0]) && (!tConnectedSides[3]) && (tConnectedSides[1]) && (tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 10)].getIcon(); + } + if ((tConnectedSides[0]) && (!tConnectedSides[3]) && (!tConnectedSides[1]) && (tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 9)].getIcon(); + } + if ((tConnectedSides[0]) && (tConnectedSides[3]) && (!tConnectedSides[1]) && (!tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 8)].getIcon(); + } + if ((!tConnectedSides[0]) && (tConnectedSides[3]) && (tConnectedSides[1]) && (!tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 11)].getIcon(); + } + if ((!tConnectedSides[0]) && (!tConnectedSides[3]) && (!tConnectedSides[1]) && (!tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); + } + if ((!tConnectedSides[0]) && (!tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 0)].getIcon(); + } + if ((!tConnectedSides[3]) && (!tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 1)].getIcon(); + } + case 5: + if (tConnectedSides[2]) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); + } + if ((tConnectedSides[0]) && (tConnectedSides[3]) && (tConnectedSides[1]) && (tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 6)].getIcon(); + } + if ((!tConnectedSides[0]) && (tConnectedSides[3]) && (tConnectedSides[1]) && (tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 5)].getIcon(); + } + if ((tConnectedSides[0]) && (!tConnectedSides[3]) && (tConnectedSides[1]) && (tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 2)].getIcon(); + } + if ((tConnectedSides[0]) && (tConnectedSides[3]) && (!tConnectedSides[1]) && (tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 3)].getIcon(); + } + if ((tConnectedSides[0]) && (tConnectedSides[3]) && (tConnectedSides[1]) && (!tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 4)].getIcon(); + } + if ((!tConnectedSides[0]) && (!tConnectedSides[3]) && (tConnectedSides[1]) && (tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 11)].getIcon(); + } + if ((tConnectedSides[0]) && (!tConnectedSides[3]) && (!tConnectedSides[1]) && (tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 8)].getIcon(); + } + if ((tConnectedSides[0]) && (tConnectedSides[3]) && (!tConnectedSides[1]) && (!tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 9)].getIcon(); + } + if ((!tConnectedSides[0]) && (tConnectedSides[3]) && (tConnectedSides[1]) && (!tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 10)].getIcon(); + } + if ((!tConnectedSides[0]) && (!tConnectedSides[3]) && (!tConnectedSides[1]) && (!tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); + } + if ((!tConnectedSides[0]) && (!tConnectedSides[1])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 0)].getIcon(); + } + if ((!tConnectedSides[3]) && (!tConnectedSides[5])) { + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 1)].getIcon(); + } + break; } - return Textures.BlockIcons.TURBINE[1].getIcon(); - } - if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord + 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity)tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity)tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) - { - if (((IGregTechTileEntity)tTileEntity).isActive()) { - return Textures.BlockIcons.TURBINE_ACTIVE[7].getIcon(); - } - return Textures.BlockIcons.TURBINE[7].getIcon(); - } - if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 2 ? 1 : -1), yCoord + 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity)tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity)tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) - { - if (((IGregTechTileEntity)tTileEntity).isActive()) { - return Textures.BlockIcons.TURBINE_ACTIVE[8].getIcon(); - } - return Textures.BlockIcons.TURBINE[8].getIcon(); - } - if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 2 ? 1 : -1), yCoord, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity)tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity)tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) - { - if (((IGregTechTileEntity)tTileEntity).isActive()) { - return Textures.BlockIcons.TURBINE_ACTIVE[5].getIcon(); - } - return Textures.BlockIcons.TURBINE[5].getIcon(); - } - if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 2 ? 1 : -1), yCoord - 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity)tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity)tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) - { - if (((IGregTechTileEntity)tTileEntity).isActive()) { - return Textures.BlockIcons.TURBINE_ACTIVE[2].getIcon(); - } - return Textures.BlockIcons.TURBINE[2].getIcon(); - } + return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); } - else if ((aSide == 4) || (aSide == 5)) - { - TileEntity tTileEntity; - Object tMetaTileEntity; - if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord - 1, zCoord + (aSide == 4 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity)tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity)tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) - { - if (((IGregTechTileEntity)tTileEntity).isActive()) { - return Textures.BlockIcons.TURBINE_ACTIVE[0].getIcon(); - } - return Textures.BlockIcons.TURBINE[0].getIcon(); - } - if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord, zCoord + (aSide == 4 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity)tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity)tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) - { - if (((IGregTechTileEntity)tTileEntity).isActive()) { - return Textures.BlockIcons.TURBINE_ACTIVE[3].getIcon(); - } - return Textures.BlockIcons.TURBINE[3].getIcon(); - } - if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord + 1, zCoord + (aSide == 4 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity)tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity)tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) - { - if (((IGregTechTileEntity)tTileEntity).isActive()) { - return Textures.BlockIcons.TURBINE_ACTIVE[6].getIcon(); - } - return Textures.BlockIcons.TURBINE[6].getIcon(); - } - if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord - 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity)tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity)tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) - { - if (((IGregTechTileEntity)tTileEntity).isActive()) { - return Textures.BlockIcons.TURBINE_ACTIVE[1].getIcon(); - } - return Textures.BlockIcons.TURBINE[1].getIcon(); - } - if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord + 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity)tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity)tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) - { - if (((IGregTechTileEntity)tTileEntity).isActive()) { - return Textures.BlockIcons.TURBINE_ACTIVE[7].getIcon(); - } - return Textures.BlockIcons.TURBINE[7].getIcon(); - } - if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord + 1, zCoord + (aSide == 5 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity)tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity)tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) - { - if (((IGregTechTileEntity)tTileEntity).isActive()) { - return Textures.BlockIcons.TURBINE_ACTIVE[8].getIcon(); - } - return Textures.BlockIcons.TURBINE[8].getIcon(); - } - if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord, zCoord + (aSide == 5 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity)tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity)tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) - { - if (((IGregTechTileEntity)tTileEntity).isActive()) { - return Textures.BlockIcons.TURBINE_ACTIVE[5].getIcon(); - } - return Textures.BlockIcons.TURBINE[5].getIcon(); - } - if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord - 1, zCoord + (aSide == 5 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity)tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity)tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GT_MetaTileEntity_LargeTurbine))) - { - if (((IGregTechTileEntity)tTileEntity).isActive()) { - return Textures.BlockIcons.TURBINE_ACTIVE[2].getIcon(); - } - return Textures.BlockIcons.TURBINE[2].getIcon(); - } - }return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon(); - } - boolean[] tConnectedSides = { (aWorld.getBlock(xCoord, yCoord - 1, zCoord) == this) && (aWorld.getBlockMetadata(xCoord, yCoord - 1, zCoord) == tMeta), (aWorld.getBlock(xCoord, yCoord + 1, zCoord) == this) && (aWorld.getBlockMetadata(xCoord, yCoord + 1, zCoord) == tMeta), (aWorld.getBlock(xCoord + 1, yCoord, zCoord) == this) && (aWorld.getBlockMetadata(xCoord + 1, yCoord, zCoord) == tMeta), (aWorld.getBlock(xCoord, yCoord, zCoord + 1) == this) && (aWorld.getBlockMetadata(xCoord, yCoord, zCoord + 1) == tMeta), (aWorld.getBlock(xCoord - 1, yCoord, zCoord) == this) && (aWorld.getBlockMetadata(xCoord - 1, yCoord, zCoord) == tMeta), (aWorld.getBlock(xCoord, yCoord, zCoord - 1) == this) && (aWorld.getBlockMetadata(xCoord, yCoord, zCoord - 1) == tMeta)}; - switch (aSide) - { - case 0: - if (tConnectedSides[0]) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); - } - if ((tConnectedSides[4]) && (tConnectedSides[5]) && (tConnectedSides[2]) && (tConnectedSides[3])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 6)].getIcon(); - } - if ((!tConnectedSides[4]) && (tConnectedSides[5]) && (tConnectedSides[2]) && (tConnectedSides[3])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 2)].getIcon(); - } - if ((tConnectedSides[4]) && (!tConnectedSides[5]) && (tConnectedSides[2]) && (tConnectedSides[3])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 3)].getIcon(); - } - if ((tConnectedSides[4]) && (tConnectedSides[5]) && (!tConnectedSides[2]) && (tConnectedSides[3])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 4)].getIcon(); - } - if ((tConnectedSides[4]) && (tConnectedSides[5]) && (tConnectedSides[2]) && (!tConnectedSides[3])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 5)].getIcon(); - } - if ((!tConnectedSides[4]) && (!tConnectedSides[5]) && (tConnectedSides[2]) && (tConnectedSides[3])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 8)].getIcon(); - } - if ((tConnectedSides[4]) && (!tConnectedSides[5]) && (!tConnectedSides[2]) && (tConnectedSides[3])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 9)].getIcon(); - } - if ((tConnectedSides[4]) && (tConnectedSides[5]) && (!tConnectedSides[2]) && (!tConnectedSides[3])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 10)].getIcon(); - } - if ((!tConnectedSides[4]) && (tConnectedSides[5]) && (tConnectedSides[2]) && (!tConnectedSides[3])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 11)].getIcon(); - } - if ((!tConnectedSides[4]) && (!tConnectedSides[5]) && (!tConnectedSides[2]) && (!tConnectedSides[3])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); - } - if ((!tConnectedSides[4]) && (!tConnectedSides[2])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 1)].getIcon(); - } - if ((!tConnectedSides[5]) && (!tConnectedSides[3])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 0)].getIcon(); - } - case 1: - if (tConnectedSides[1] ) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); - } - if ((tConnectedSides[4] ) && (tConnectedSides[5] ) && (tConnectedSides[2] ) && (tConnectedSides[3] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 6)].getIcon(); - } - if ((!tConnectedSides[4]) && (tConnectedSides[5] ) && (tConnectedSides[2] ) && (tConnectedSides[3] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 2)].getIcon(); - } - if ((tConnectedSides[4] ) && (!tConnectedSides[5]) && (tConnectedSides[2] ) && (tConnectedSides[3] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 3)].getIcon(); - } - if ((tConnectedSides[4] ) && (tConnectedSides[5] ) && (!tConnectedSides[2]) && (tConnectedSides[3] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 4)].getIcon(); - } - if ((tConnectedSides[4] ) && (tConnectedSides[5] ) && (tConnectedSides[2] ) && (!tConnectedSides[3])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 5)].getIcon(); - } - if ((!tConnectedSides[4]) && (!tConnectedSides[5]) && (tConnectedSides[2] ) && (tConnectedSides[3] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 8)].getIcon(); - } - if ((tConnectedSides[4] ) && (!tConnectedSides[5]) && (!tConnectedSides[2]) && (tConnectedSides[3] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 9)].getIcon(); - } - if ((tConnectedSides[4] ) && (tConnectedSides[5] ) && (!tConnectedSides[2]) && (!tConnectedSides[3])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 10)].getIcon(); - } - if ((!tConnectedSides[4]) && (tConnectedSides[5] ) && (tConnectedSides[2] ) && (!tConnectedSides[3])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 11)].getIcon(); - } - if ((!tConnectedSides[4]) && (!tConnectedSides[5]) && (!tConnectedSides[2]) && (!tConnectedSides[3])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); - } - if ((!tConnectedSides[2]) && (!tConnectedSides[4])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 1)].getIcon(); - } - if ((!tConnectedSides[3]) && (!tConnectedSides[5])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 0)].getIcon(); - } - case 2: - if (tConnectedSides[5] ) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); - } - if ((tConnectedSides[2] ) && (tConnectedSides[0] ) && (tConnectedSides[4] ) && (tConnectedSides[1] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 6)].getIcon(); - } - if ((!tConnectedSides[2]) && (tConnectedSides[0] ) && (tConnectedSides[4] ) && (tConnectedSides[1] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 2)].getIcon(); - } - if ((tConnectedSides[2] ) && (!tConnectedSides[0]) && (tConnectedSides[4] ) && (tConnectedSides[1] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 5)].getIcon(); - } - if ((tConnectedSides[2] ) && (tConnectedSides[0] ) && (!tConnectedSides[4]) && (tConnectedSides[1] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 4)].getIcon(); - } - if ((tConnectedSides[2] ) && (tConnectedSides[0] ) && (tConnectedSides[4] ) && (!tConnectedSides[1])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 3)].getIcon(); - } - if ((!tConnectedSides[2]) && (!tConnectedSides[0]) && (tConnectedSides[4] ) && (tConnectedSides[1] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 11)].getIcon(); - } - if ((tConnectedSides[2] ) && (!tConnectedSides[0]) && (!tConnectedSides[4]) && (tConnectedSides[1] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 10)].getIcon(); - } - if ((tConnectedSides[2] ) && (tConnectedSides[0] ) && (!tConnectedSides[4]) && (!tConnectedSides[1])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 9)].getIcon(); - } - if ((!tConnectedSides[2]) && (tConnectedSides[0] ) && (tConnectedSides[4] ) && (!tConnectedSides[1])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 8)].getIcon(); - } - if ((!tConnectedSides[2]) && (!tConnectedSides[0]) && (!tConnectedSides[4]) && (!tConnectedSides[1])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); - } - if ((!tConnectedSides[2]) && (!tConnectedSides[4])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 1)].getIcon(); - } - if ((!tConnectedSides[0]) && (!tConnectedSides[1])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 0)].getIcon(); - } - case 3: - if (tConnectedSides[3] ) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); - } - if ((tConnectedSides[2] ) && (tConnectedSides[0] ) && (tConnectedSides[4] ) && (tConnectedSides[1] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 6)].getIcon(); - } - if ((!tConnectedSides[2]) && (tConnectedSides[0] ) && (tConnectedSides[4] ) && (tConnectedSides[1] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 4)].getIcon(); - } - if ((tConnectedSides[2] ) && (!tConnectedSides[0]) && (tConnectedSides[4] ) && (tConnectedSides[1] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 5)].getIcon(); - } - if ((tConnectedSides[2] ) && (tConnectedSides[0] ) && (!tConnectedSides[4]) && (tConnectedSides[1] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 2)].getIcon(); - } - if ((tConnectedSides[2] ) && (tConnectedSides[0] ) && (tConnectedSides[4] ) && (!tConnectedSides[1])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 3)].getIcon(); - } - if ((!tConnectedSides[2]) && (!tConnectedSides[0]) && (tConnectedSides[4] ) && (tConnectedSides[1] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 10)].getIcon(); - } - if ((tConnectedSides[2] ) && (!tConnectedSides[0]) && (!tConnectedSides[4]) && (tConnectedSides[1] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 11)].getIcon(); - } - if ((tConnectedSides[2] ) && (tConnectedSides[0] ) && (!tConnectedSides[4]) && (!tConnectedSides[1])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 8)].getIcon(); - } - if ((!tConnectedSides[2]) && (tConnectedSides[0] ) && (tConnectedSides[4] ) && (!tConnectedSides[1])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 9)].getIcon(); - } - if ((!tConnectedSides[2]) && (!tConnectedSides[0]) && (!tConnectedSides[4]) && (!tConnectedSides[1])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); - } - if ((!tConnectedSides[2]) && (!tConnectedSides[4])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 1)].getIcon(); - } - if ((!tConnectedSides[0]) && (!tConnectedSides[1])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 0)].getIcon(); - } - case 4: - if (tConnectedSides[4] ) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); - } - if ((tConnectedSides[0] ) && (tConnectedSides[3] ) && (tConnectedSides[1] ) && (tConnectedSides[5] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 6)].getIcon(); - } - if ((!tConnectedSides[0]) && (tConnectedSides[3] ) && (tConnectedSides[1] ) && (tConnectedSides[5] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 5)].getIcon(); - } - if ((tConnectedSides[0] ) && (!tConnectedSides[3]) && (tConnectedSides[1] ) && (tConnectedSides[5] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 4)].getIcon(); - } - if ((tConnectedSides[0] ) && (tConnectedSides[3] ) && (!tConnectedSides[1]) && (tConnectedSides[5] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 3)].getIcon(); - } - if ((tConnectedSides[0] ) && (tConnectedSides[3] ) && (tConnectedSides[1] ) && (!tConnectedSides[5])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 2)].getIcon(); - } - if ((!tConnectedSides[0]) && (!tConnectedSides[3]) && (tConnectedSides[1] ) && (tConnectedSides[5] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 10)].getIcon(); - } - if ((tConnectedSides[0] ) && (!tConnectedSides[3]) && (!tConnectedSides[1]) && (tConnectedSides[5] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 9)].getIcon(); - } - if ((tConnectedSides[0] ) && (tConnectedSides[3] ) && (!tConnectedSides[1]) && (!tConnectedSides[5])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 8)].getIcon(); - } - if ((!tConnectedSides[0]) && (tConnectedSides[3] ) && (tConnectedSides[1] ) && (!tConnectedSides[5])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 11)].getIcon(); - } - if ((!tConnectedSides[0]) && (!tConnectedSides[3]) && (!tConnectedSides[1]) && (!tConnectedSides[5])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); - } - if ((!tConnectedSides[0]) && (!tConnectedSides[1])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 0)].getIcon(); - } - if ((!tConnectedSides[3]) && (!tConnectedSides[5])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 1)].getIcon(); - } - case 5: - if (tConnectedSides[2] ) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); - } - if ((tConnectedSides[0] ) && (tConnectedSides[3] ) && (tConnectedSides[1] ) && (tConnectedSides[5] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 6)].getIcon(); - } - if ((!tConnectedSides[0]) && (tConnectedSides[3] ) && (tConnectedSides[1] ) && (tConnectedSides[5] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 5)].getIcon(); - } - if ((tConnectedSides[0] ) && (!tConnectedSides[3]) && (tConnectedSides[1] ) && (tConnectedSides[5] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 2)].getIcon(); - } - if ((tConnectedSides[0] ) && (tConnectedSides[3] ) && (!tConnectedSides[1]) && (tConnectedSides[5] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 3)].getIcon(); - } - if ((tConnectedSides[0] ) && (tConnectedSides[3] ) && (tConnectedSides[1] ) && (!tConnectedSides[5])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 4)].getIcon(); - } - if ((!tConnectedSides[0]) && (!tConnectedSides[3]) && (tConnectedSides[1] ) && (tConnectedSides[5] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 11)].getIcon(); - } - if ((tConnectedSides[0] ) && (!tConnectedSides[3]) && (!tConnectedSides[1]) && (tConnectedSides[5] )) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 8)].getIcon(); - } - if ((tConnectedSides[0] ) && (tConnectedSides[3] ) && (!tConnectedSides[1]) && (!tConnectedSides[5])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 9)].getIcon(); - } - if ((!tConnectedSides[0]) && (tConnectedSides[3] ) && (tConnectedSides[1] ) && (!tConnectedSides[5])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 10)].getIcon(); - } - if ((!tConnectedSides[0]) && (!tConnectedSides[3]) && (!tConnectedSides[1]) && (!tConnectedSides[5])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); - } - if ((!tConnectedSides[0]) && (!tConnectedSides[1])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 0)].getIcon(); - } - if ((!tConnectedSides[3]) && (!tConnectedSides[5])) { - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 1)].getIcon(); - } - break; - } - return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); -}} \ No newline at end of file +} \ No newline at end of file diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Casings_Abstract.java b/src/main/java/gregtech/common/blocks/GT_Block_Casings_Abstract.java index eb8b5bca..6f9c7cf4 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Casings_Abstract.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Casings_Abstract.java @@ -5,8 +5,6 @@ import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; import gregtech.api.items.GT_Generic_Block; import gregtech.api.util.GT_LanguageManager; -import java.util.List; -import java.util.Random; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; @@ -21,120 +19,103 @@ import net.minecraft.util.StatCollector; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import java.util.List; +import java.util.Random; + public abstract class GT_Block_Casings_Abstract - extends GT_Generic_Block -{ - public GT_Block_Casings_Abstract(Class aItemClass, String aName, Material aMaterial) - { - super(aItemClass, aName, aMaterial); - setStepSound(soundTypeMetal); - setCreativeTab(GregTech_API.TAB_GREGTECH); - GregTech_API.registerMachineBlock(this, -1); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + 32767 + ".name", "Any Sub Block of this"); - } - - public String getHarvestTool(int aMeta) - { - return "wrench"; - } - - public int getHarvestLevel(int aMeta) - { - return 2; - } - - public float getBlockHardness(World aWorld, int aX, int aY, int aZ) - { - return Blocks.iron_block.getBlockHardness(aWorld, aX, aY, aZ); - } - - public float getExplosionResistance(Entity aTNT) - { - return Blocks.iron_block.getExplosionResistance(aTNT); - } - - protected boolean canSilkHarvest() - { - return false; - } - - public void onBlockAdded(World aWorld, int aX, int aY, int aZ) - { - if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { - GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); + extends GT_Generic_Block { + public GT_Block_Casings_Abstract(Class aItemClass, String aName, Material aMaterial) { + super(aItemClass, aName, aMaterial); + setStepSound(soundTypeMetal); + setCreativeTab(GregTech_API.TAB_GREGTECH); + GregTech_API.registerMachineBlock(this, -1); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + 32767 + ".name", "Any Sub Block of this"); } - } - - public String getUnlocalizedName() - { - return this.mUnlocalizedName; - } - - public String getLocalizedName() - { - return StatCollector.translateToLocal(this.mUnlocalizedName + ".name"); - } - - public boolean canBeReplacedByLeaves(IBlockAccess aWorld, int aX, int aY, int aZ) - { - return false; - } - - public boolean isNormalCube(IBlockAccess aWorld, int aX, int aY, int aZ) - { - return true; - } - - public boolean renderAsNormalBlock() - { - return true; - } - - public boolean isOpaqueCube() - { - return true; - } - - public void breakBlock(World aWorld, int aX, int aY, int aZ, Block aBlock, int aMetaData) - { - if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { - GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); + + public String getHarvestTool(int aMeta) { + return "wrench"; } - } - - public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) - { - return false; - } - - public int damageDropped(int par1) - { - return par1; - } - - public int getDamageValue(World par1World, int par2, int par3, int par4) - { - return par1World.getBlockMetadata(par2, par3, par4); - } - - public int quantityDropped(Random par1Random) - { - return 1; - } - - public Item getItemDropped(int par1, Random par2Random, int par3) - { - return Item.getItemFromBlock(this); - } - - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister aIconRegister) {} - - @SideOnly(Side.CLIENT) - public void getSubBlocks(Item aItem, CreativeTabs par2CreativeTabs, List aList) - { - for (int i = 0; i < 16; i++) { - aList.add(new ItemStack(aItem, 1, i)); + + public int getHarvestLevel(int aMeta) { + return 2; + } + + public float getBlockHardness(World aWorld, int aX, int aY, int aZ) { + return Blocks.iron_block.getBlockHardness(aWorld, aX, aY, aZ); + } + + public float getExplosionResistance(Entity aTNT) { + return Blocks.iron_block.getExplosionResistance(aTNT); + } + + protected boolean canSilkHarvest() { + return false; + } + + public void onBlockAdded(World aWorld, int aX, int aY, int aZ) { + if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { + GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); + } + } + + public String getUnlocalizedName() { + return this.mUnlocalizedName; + } + + public String getLocalizedName() { + return StatCollector.translateToLocal(this.mUnlocalizedName + ".name"); + } + + public boolean canBeReplacedByLeaves(IBlockAccess aWorld, int aX, int aY, int aZ) { + return false; + } + + public boolean isNormalCube(IBlockAccess aWorld, int aX, int aY, int aZ) { + return true; + } + + public boolean renderAsNormalBlock() { + return true; + } + + public boolean isOpaqueCube() { + return true; + } + + public void breakBlock(World aWorld, int aX, int aY, int aZ, Block aBlock, int aMetaData) { + if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { + GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); + } + } + + public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) { + return false; + } + + public int damageDropped(int par1) { + return par1; + } + + public int getDamageValue(World par1World, int par2, int par3, int par4) { + return par1World.getBlockMetadata(par2, par3, par4); + } + + public int quantityDropped(Random par1Random) { + return 1; + } + + public Item getItemDropped(int par1, Random par2Random, int par3) { + return Item.getItemFromBlock(this); + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister aIconRegister) { + } + + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item aItem, CreativeTabs par2CreativeTabs, List aList) { + for (int i = 0; i < 16; i++) { + aList.add(new ItemStack(aItem, 1, i)); + } } - } } diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Concretes.java b/src/main/java/gregtech/common/blocks/GT_Block_Concretes.java index ae432fa4..97ab5960 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Concretes.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Concretes.java @@ -2,7 +2,6 @@ package gregtech.common.blocks; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.IIconContainer; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_OreDictUnificator; import net.minecraft.block.Block; @@ -17,88 +16,78 @@ import net.minecraft.world.World; import net.minecraftforge.fluids.IFluidBlock; public class GT_Block_Concretes - extends GT_Block_Stones_Abstract -{ - public GT_Block_Concretes() - { - super(GT_Item_Concretes.class, "gt.blockconcretes"); - setResistance(20.0F); - this.slipperiness = 0.9F; - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "Dark Concrete"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "Dark Concrete Cobblestone"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "Mossy Dark Concrete Cobblestone"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "Dark Concrete Bricks"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "Cracked Dark Concrete Bricks"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "Mossy Dark Concrete Bricks"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "Chiseled Dark Concrete"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "Smooth Dark Concrete"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Light Concrete"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "Light Concrete Cobblestone"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Mossy Light Concrete Cobblestone"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".11.name", "Light Concrete Bricks"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Cracked Light Concrete Bricks"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Mossy Light Concrete Bricks"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Chiseled Light Concrete"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".15.name", "Smooth Light Concrete"); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 0)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 1)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 2)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 3)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 4)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 5)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 6)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 7)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 8)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 9)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 10)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 11)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 12)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 13)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 14)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 15)); - } - - public int getHarvestLevel(int aMeta) - { - return 1; - } - - public float getBlockHardness(World aWorld, int aX, int aY, int aZ) - { - return this.blockHardness = Blocks.stone.getBlockHardness(aWorld, aX, aY, aZ); - } - - public IIcon getIcon(int aSide, int aMeta) - { - if ((aMeta >= 0) && (aMeta < 16)) { - return gregtech.api.enums.Textures.BlockIcons.CONCRETES[aMeta].getIcon(); + extends GT_Block_Stones_Abstract { + public GT_Block_Concretes() { + super(GT_Item_Concretes.class, "gt.blockconcretes"); + setResistance(20.0F); + this.slipperiness = 0.9F; + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "Dark Concrete"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "Dark Concrete Cobblestone"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "Mossy Dark Concrete Cobblestone"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "Dark Concrete Bricks"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "Cracked Dark Concrete Bricks"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "Mossy Dark Concrete Bricks"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "Chiseled Dark Concrete"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "Smooth Dark Concrete"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Light Concrete"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "Light Concrete Cobblestone"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Mossy Light Concrete Cobblestone"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".11.name", "Light Concrete Bricks"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Cracked Light Concrete Bricks"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Mossy Light Concrete Bricks"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Chiseled Light Concrete"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".15.name", "Smooth Light Concrete"); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 0)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 1)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 2)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 3)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 4)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 5)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 6)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 7)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 8)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 9)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 10)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 11)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 12)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 13)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 14)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 15)); } - return gregtech.api.enums.Textures.BlockIcons.CONCRETES[0].getIcon(); - } - - public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity aEntity) - { - Block tBlock = aWorld.getBlock(aX, aY + 1, aZ); - if (((aEntity instanceof EntityLivingBase)) && (!(tBlock instanceof IFluidBlock)) && (!(tBlock instanceof BlockLiquid)) && (aEntity.onGround) && (!aEntity.isInWater()) && (!aEntity.isWet())) { - if (aEntity.isSneaking()) - { - aEntity.motionX *= 0.8999999761581421D; - aEntity.motionZ *= 0.8999999761581421D; - } - else - { - aEntity.motionX *= 1.100000023841858D; - aEntity.motionZ *= 1.100000023841858D; - } + + public int getHarvestLevel(int aMeta) { + return 1; } - } - - public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) - { - Block tBlock = aWorld.getBlock(aX, aY + 1, aZ); - if (((tBlock instanceof IFluidBlock)) || ((tBlock instanceof BlockLiquid))) { - return super.getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ); + + public float getBlockHardness(World aWorld, int aX, int aY, int aZ) { + return this.blockHardness = Blocks.stone.getBlockHardness(aWorld, aX, aY, aZ); + } + + public IIcon getIcon(int aSide, int aMeta) { + if ((aMeta >= 0) && (aMeta < 16)) { + return gregtech.api.enums.Textures.BlockIcons.CONCRETES[aMeta].getIcon(); + } + return gregtech.api.enums.Textures.BlockIcons.CONCRETES[0].getIcon(); + } + + public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity aEntity) { + Block tBlock = aWorld.getBlock(aX, aY + 1, aZ); + if (((aEntity instanceof EntityLivingBase)) && (!(tBlock instanceof IFluidBlock)) && (!(tBlock instanceof BlockLiquid)) && (aEntity.onGround) && (!aEntity.isInWater()) && (!aEntity.isWet())) { + if (aEntity.isSneaking()) { + aEntity.motionX *= 0.8999999761581421D; + aEntity.motionZ *= 0.8999999761581421D; + } else { + aEntity.motionX *= 1.100000023841858D; + aEntity.motionZ *= 1.100000023841858D; + } + } + } + + public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) { + Block tBlock = aWorld.getBlock(aX, aY + 1, aZ); + if (((tBlock instanceof IFluidBlock)) || ((tBlock instanceof BlockLiquid))) { + return super.getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ); + } + return AxisAlignedBB.getBoundingBox(aX, aY, aZ, aX + 1, aY + 0.875D, aZ + 1); } - return AxisAlignedBB.getBoundingBox(aX, aY, aZ, aX + 1, aY + 0.875D, aZ + 1); - } } diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Granites.java b/src/main/java/gregtech/common/blocks/GT_Block_Granites.java index 906a3a2a..27328452 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Granites.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Granites.java @@ -2,10 +2,8 @@ package gregtech.common.blocks; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.IIconContainer; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_OreDictUnificator; -import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.boss.EntityWither; import net.minecraft.init.Blocks; @@ -15,66 +13,60 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class GT_Block_Granites - extends GT_Block_Stones_Abstract -{ - public GT_Block_Granites() - { - super(GT_Item_Granites.class, "gt.blockgranites"); - setResistance(60.0F); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "Black Granite"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "Black Granite Cobblestone"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "Mossy Black Granite Cobblestone"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "Black Granite Bricks"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "Cracked Black Granite Bricks"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "Mossy Black Granite Bricks"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "Chiseled Black Granite"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "Smooth Black Granite"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Red Granite"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "Red Granite Cobblestone"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Mossy Red Granite Cobblestone"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".11.name", "Red Granite Bricks"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Cracked Red Granite Bricks"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Mossy Red Granite Bricks"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Chiseled Red Granite"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".15.name", "Smooth Red Granite"); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 0)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 1)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 2)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 3)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 4)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 5)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 6)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 7)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 8)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 9)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 10)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 11)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 12)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 13)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 14)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 15)); - } - - public int getHarvestLevel(int aMeta) - { - return 3; - } - - public float getBlockHardness(World aWorld, int aX, int aY, int aZ) - { - return this.blockHardness = Blocks.stone.getBlockHardness(aWorld, aX, aY, aZ) * 3.0F; - } - - public IIcon getIcon(int aSide, int aMeta) - { - if ((aMeta >= 0) && (aMeta < 16)) { - return gregtech.api.enums.Textures.BlockIcons.GRANITES[aMeta].getIcon(); + extends GT_Block_Stones_Abstract { + public GT_Block_Granites() { + super(GT_Item_Granites.class, "gt.blockgranites"); + setResistance(60.0F); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "Black Granite"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "Black Granite Cobblestone"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "Mossy Black Granite Cobblestone"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "Black Granite Bricks"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "Cracked Black Granite Bricks"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "Mossy Black Granite Bricks"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "Chiseled Black Granite"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "Smooth Black Granite"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Red Granite"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "Red Granite Cobblestone"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Mossy Red Granite Cobblestone"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".11.name", "Red Granite Bricks"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Cracked Red Granite Bricks"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Mossy Red Granite Bricks"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Chiseled Red Granite"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".15.name", "Smooth Red Granite"); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 0)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 1)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 2)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 3)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 4)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 5)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 6)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 7)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 8)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 9)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 10)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 11)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 12)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 13)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 14)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 15)); + } + + public int getHarvestLevel(int aMeta) { + return 3; + } + + public float getBlockHardness(World aWorld, int aX, int aY, int aZ) { + return this.blockHardness = Blocks.stone.getBlockHardness(aWorld, aX, aY, aZ) * 3.0F; + } + + public IIcon getIcon(int aSide, int aMeta) { + if ((aMeta >= 0) && (aMeta < 16)) { + return gregtech.api.enums.Textures.BlockIcons.GRANITES[aMeta].getIcon(); + } + return gregtech.api.enums.Textures.BlockIcons.GRANITES[0].getIcon(); + } + + public boolean canEntityDestroy(IBlockAccess world, int x, int y, int z, Entity entity) { + return !(entity instanceof EntityWither); } - return gregtech.api.enums.Textures.BlockIcons.GRANITES[0].getIcon(); - } - - public boolean canEntityDestroy(IBlockAccess world, int x, int y, int z, Entity entity) - { - return !(entity instanceof EntityWither); - } } diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Machines.java b/src/main/java/gregtech/common/blocks/GT_Block_Machines.java index 5f756973..85037d07 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Machines.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Machines.java @@ -4,7 +4,6 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.IDebugableBlock; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.ICoverable; @@ -17,12 +16,6 @@ import gregtech.api.util.GT_BaseCrop; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_Utility; import gregtech.common.render.GT_Renderer_Block; - -import java.io.PrintStream; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - import net.minecraft.block.Block; import net.minecraft.block.ITileEntityProvider; import net.minecraft.client.renderer.texture.IIconRegister; @@ -45,534 +38,462 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + public class GT_Block_Machines - extends GT_Generic_Block - implements IDebugableBlock, ITileEntityProvider -{ - public static ThreadLocal mTemporaryTileEntity = new ThreadLocal(); - - public GT_Block_Machines() - { - super(GT_Item_Machines.class, "gt.blockmachines", new GT_Material_Machines()); - GregTech_API.registerMachineBlock(this, -1); - setHardness(1.0F); - setResistance(10.0F); - setStepSound(soundTypeMetal); - setCreativeTab(GregTech_API.TAB_GREGTECH); - this.isBlockContainer = true; - } - - public String getHarvestTool(int aMeta) - { - switch (aMeta / 4) - { - case 0: - return "wrench"; - case 1: - return "wrench"; - case 2: - return "cutter"; - case 3: - return "axe"; + extends GT_Generic_Block + implements IDebugableBlock, ITileEntityProvider { + public static ThreadLocal mTemporaryTileEntity = new ThreadLocal(); + + public GT_Block_Machines() { + super(GT_Item_Machines.class, "gt.blockmachines", new GT_Material_Machines()); + GregTech_API.registerMachineBlock(this, -1); + setHardness(1.0F); + setResistance(10.0F); + setStepSound(soundTypeMetal); + setCreativeTab(GregTech_API.TAB_GREGTECH); + this.isBlockContainer = true; } - return "wrench"; - } - - public int getHarvestLevel(int aMeta) - { - return aMeta % 4; - } - - protected boolean canSilkHarvest() - { - return false; - } - - public void onNeighborChange(IBlockAccess aWorld, int aX, int aY, int aZ, int aTileX, int aTileY, int aTileZ) - { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity instanceof BaseTileEntity)) { - ((BaseTileEntity)tTileEntity).onAdjacentBlockChange(aTileX, aTileY, aTileZ); - } - } - - public void onBlockAdded(World aWorld, int aX, int aY, int aZ) - { - super.onBlockAdded(aWorld, aX, aY, aZ); - if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { - GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); - } - } - - public String getUnlocalizedName() - { - return "gt.blockmachines"; - } - - public String getLocalizedName() - { - return StatCollector.translateToLocal(getUnlocalizedName() + ".name"); - } - - public int getFlammability(IBlockAccess aWorld, int aX, int aY, int aZ, ForgeDirection face) - { - return 0; - } - - public int getFireSpreadSpeed(IBlockAccess aWorld, int aX, int aY, int aZ, ForgeDirection face) - { - return (GregTech_API.sMachineFlammable) && (aWorld.getBlockMetadata(aX, aY, aZ) == 0) ? 100 : 0; - } - - public int getRenderType() - { - if (GT_Renderer_Block.INSTANCE == null) { - return super.getRenderType(); - } - return GT_Renderer_Block.INSTANCE.mRenderID; - } - - public boolean isFireSource(World aWorld, int aX, int aY, int aZ, ForgeDirection side) - { - return (GregTech_API.sMachineFlammable) && (aWorld.getBlockMetadata(aX, aY, aZ) == 0); - } - - public boolean isFlammable(IBlockAccess aWorld, int aX, int aY, int aZ, ForgeDirection face) - { - return (GregTech_API.sMachineFlammable) && (aWorld.getBlockMetadata(aX, aY, aZ) == 0); - } - - public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess aWorld, int aX, int aY, int aZ) - { - return false; - } - - public boolean canConnectRedstone(IBlockAccess var1, int var2, int var3, int var4, int var5) - { - return true; - } - - public boolean canBeReplacedByLeaves(IBlockAccess aWorld, int aX, int aY, int aZ) - { - return false; - } - - public boolean isNormalCube(IBlockAccess aWorld, int aX, int aY, int aZ) - { - return false; - } - - public boolean hasTileEntity(int aMeta) - { - return true; - } - - public boolean hasComparatorInputOverride() - { - return true; - } - - public boolean renderAsNormalBlock() - { - return false; - } - - public boolean canProvidePower() - { - return true; - } - - public boolean isOpaqueCube() - { - return false; - } - - public TileEntity createNewTileEntity(World aWorld, int aMeta) - { - return createTileEntity(aWorld, aMeta); - } - - public IIcon getIcon(IBlockAccess aIBlockAccess, int aX, int aY, int aZ, int aSide) - { - return Textures.BlockIcons.MACHINE_LV_SIDE.getIcon(); - } - - public IIcon getIcon(int aSide, int aMeta) - { - return Textures.BlockIcons.MACHINE_LV_SIDE.getIcon(); - } - - public boolean onBlockEventReceived(World aWorld, int aX, int aY, int aZ, int aData1, int aData2) - { - super.onBlockEventReceived(aWorld, aX, aY, aZ, aData1, aData2); - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - return tTileEntity != null ? tTileEntity.receiveClientEvent(aData1, aData2) : false; - } - - public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List outputAABB, Entity collider) - { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if (((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity)tTileEntity).getMetaTileEntity() != null)) - { - ((IGregTechTileEntity)tTileEntity).addCollisionBoxesToList(aWorld, aX, aY, aZ, inputAABB, outputAABB, collider); - return; - } - super.addCollisionBoxesToList(aWorld, aX, aY, aZ, inputAABB, outputAABB, collider); - } - - public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) - { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if (((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity)tTileEntity).getMetaTileEntity() != null)) { - return ((IGregTechTileEntity)tTileEntity).getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ); - } - return super.getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ); - } - - public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider) - { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if (((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity)tTileEntity).getMetaTileEntity() != null)) - { - ((IGregTechTileEntity)tTileEntity).onEntityCollidedWithBlock(aWorld, aX, aY, aZ, collider); - return; - } - super.onEntityCollidedWithBlock(aWorld, aX, aY, aZ, collider); - } - - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister aIconRegister) - { - if (GregTech_API.sPostloadFinished) - { - GT_Log.out.println("GT_Mod: Setting up Icon Register for Blocks"); - GregTech_API.sBlockIcons = aIconRegister; - - GT_Log.out.println("GT_Mod: Registering MetaTileEntity specific Textures"); - for (IMetaTileEntity tMetaTileEntity : GregTech_API.METATILEENTITIES) { - try - { - if (tMetaTileEntity != null) { - tMetaTileEntity.registerIcons(aIconRegister); - } + + public String getHarvestTool(int aMeta) { + switch (aMeta / 4) { + case 0: + return "wrench"; + case 1: + return "wrench"; + case 2: + return "cutter"; + case 3: + return "axe"; } - catch (Throwable e) - { - e.printStackTrace(GT_Log.err); - } - } - GT_Log.out.println("GT_Mod: Registering Crop specific Textures"); - try - { - for (GT_BaseCrop tCrop : GT_BaseCrop.sCropList) { - tCrop.registerSprites(aIconRegister); - } - } - catch (Throwable e) - { - e.printStackTrace(GT_Log.err); - } - GT_Log.out.println("GT_Mod: Starting Block Icon Load Phase"); - System.out.println("GT_Mod: Starting Block Icon Load Phase"); - for (Runnable tRunnable : GregTech_API.sGTBlockIconload) { - try - { - tRunnable.run(); - } - catch (Throwable e) - { - e.printStackTrace(GT_Log.err); - } - } - GT_Log.out.println("GT_Mod: Finished Block Icon Load Phase"); - System.out.println("GT_Mod: Finished Block Icon Load Phase"); + return "wrench"; } - } - - public float getBlockHardness(World aWorld, int aX, int aY, int aZ) - { - return super.getBlockHardness(aWorld, aX, aY, aZ); - } - - public float getPlayerRelativeBlockHardness(EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ) - { + + public int getHarvestLevel(int aMeta) { + return aMeta % 4; + } + + protected boolean canSilkHarvest() { + return false; + } + + public void onNeighborChange(IBlockAccess aWorld, int aX, int aY, int aZ, int aTileX, int aTileY, int aTileZ) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity instanceof BaseTileEntity)) { + ((BaseTileEntity) tTileEntity).onAdjacentBlockChange(aTileX, aTileY, aTileZ); + } + } + + public void onBlockAdded(World aWorld, int aX, int aY, int aZ) { + super.onBlockAdded(aWorld, aX, aY, aZ); + if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { + GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); + } + } + + public String getUnlocalizedName() { + return "gt.blockmachines"; + } + + public String getLocalizedName() { + return StatCollector.translateToLocal(getUnlocalizedName() + ".name"); + } + + public int getFlammability(IBlockAccess aWorld, int aX, int aY, int aZ, ForgeDirection face) { + return 0; + } + + public int getFireSpreadSpeed(IBlockAccess aWorld, int aX, int aY, int aZ, ForgeDirection face) { + return (GregTech_API.sMachineFlammable) && (aWorld.getBlockMetadata(aX, aY, aZ) == 0) ? 100 : 0; + } + + public int getRenderType() { + if (GT_Renderer_Block.INSTANCE == null) { + return super.getRenderType(); + } + return GT_Renderer_Block.INSTANCE.mRenderID; + } + + public boolean isFireSource(World aWorld, int aX, int aY, int aZ, ForgeDirection side) { + return (GregTech_API.sMachineFlammable) && (aWorld.getBlockMetadata(aX, aY, aZ) == 0); + } + + public boolean isFlammable(IBlockAccess aWorld, int aX, int aY, int aZ, ForgeDirection face) { + return (GregTech_API.sMachineFlammable) && (aWorld.getBlockMetadata(aX, aY, aZ) == 0); + } + + public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess aWorld, int aX, int aY, int aZ) { + return false; + } + + public boolean canConnectRedstone(IBlockAccess var1, int var2, int var3, int var4, int var5) { + return true; + } + + public boolean canBeReplacedByLeaves(IBlockAccess aWorld, int aX, int aY, int aZ) { + return false; + } + + public boolean isNormalCube(IBlockAccess aWorld, int aX, int aY, int aZ) { + return false; + } + + public boolean hasTileEntity(int aMeta) { + return true; + } + + public boolean hasComparatorInputOverride() { + return true; + } + + public boolean renderAsNormalBlock() { + return false; + } + + public boolean canProvidePower() { + return true; + } + + public boolean isOpaqueCube() { + return false; + } + + public TileEntity createNewTileEntity(World aWorld, int aMeta) { + return createTileEntity(aWorld, aMeta); + } + + public IIcon getIcon(IBlockAccess aIBlockAccess, int aX, int aY, int aZ, int aSide) { + return Textures.BlockIcons.MACHINE_LV_SIDE.getIcon(); + } + + public IIcon getIcon(int aSide, int aMeta) { + return Textures.BlockIcons.MACHINE_LV_SIDE.getIcon(); + } + + public boolean onBlockEventReceived(World aWorld, int aX, int aY, int aZ, int aData1, int aData2) { + super.onBlockEventReceived(aWorld, aX, aY, aZ, aData1, aData2); + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + return tTileEntity != null ? tTileEntity.receiveClientEvent(aData1, aData2) : false; + } + + public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List outputAABB, Entity collider) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if (((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getMetaTileEntity() != null)) { + ((IGregTechTileEntity) tTileEntity).addCollisionBoxesToList(aWorld, aX, aY, aZ, inputAABB, outputAABB, collider); + return; + } + super.addCollisionBoxesToList(aWorld, aX, aY, aZ, inputAABB, outputAABB, collider); + } + + public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if (((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getMetaTileEntity() != null)) { + return ((IGregTechTileEntity) tTileEntity).getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ); + } + return super.getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ); + } + + public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if (((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getMetaTileEntity() != null)) { + ((IGregTechTileEntity) tTileEntity).onEntityCollidedWithBlock(aWorld, aX, aY, aZ, collider); + return; + } + super.onEntityCollidedWithBlock(aWorld, aX, aY, aZ, collider); + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister aIconRegister) { + if (GregTech_API.sPostloadFinished) { + GT_Log.out.println("GT_Mod: Setting up Icon Register for Blocks"); + GregTech_API.sBlockIcons = aIconRegister; + + GT_Log.out.println("GT_Mod: Registering MetaTileEntity specific Textures"); + for (IMetaTileEntity tMetaTileEntity : GregTech_API.METATILEENTITIES) { + try { + if (tMetaTileEntity != null) { + tMetaTileEntity.registerIcons(aIconRegister); + } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } + GT_Log.out.println("GT_Mod: Registering Crop specific Textures"); + try { + for (GT_BaseCrop tCrop : GT_BaseCrop.sCropList) { + tCrop.registerSprites(aIconRegister); + } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + GT_Log.out.println("GT_Mod: Starting Block Icon Load Phase"); + System.out.println("GT_Mod: Starting Block Icon Load Phase"); + for (Runnable tRunnable : GregTech_API.sGTBlockIconload) { + try { + tRunnable.run(); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } + GT_Log.out.println("GT_Mod: Finished Block Icon Load Phase"); + System.out.println("GT_Mod: Finished Block Icon Load Phase"); + } + } + + public float getBlockHardness(World aWorld, int aX, int aY, int aZ) { + return super.getBlockHardness(aWorld, aX, aY, aZ); + } + + public float getPlayerRelativeBlockHardness(EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ) { // System.out.println("player hardness"); - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if (((tTileEntity instanceof BaseMetaTileEntity)) && (((BaseMetaTileEntity)tTileEntity).privateAccess()) && (!((BaseMetaTileEntity)tTileEntity).playerOwnsThis(aPlayer, true))) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if (((tTileEntity instanceof BaseMetaTileEntity)) && (((BaseMetaTileEntity) tTileEntity).privateAccess()) && (!((BaseMetaTileEntity) tTileEntity).playerOwnsThis(aPlayer, true))) { // System.out.println("locked"); - return -1.0F; - } + return -1.0F; + } // System.out.println("unlocked"); // System.out.println("hardness: "+super.getPlayerRelativeBlockHardness(aPlayer, aWorld, aX, aY, aZ)); - return super.getPlayerRelativeBlockHardness(aPlayer, aWorld, aX, aY, aZ); - } - - public boolean onBlockActivated(World aWorld, int aX, int aY, int aZ, EntityPlayer aPlayer, int aSide, float par1, float par2, float par3) - { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity == null) || (aPlayer.isSneaking())) { - return false; + return super.getPlayerRelativeBlockHardness(aPlayer, aWorld, aX, aY, aZ); } - if ((tTileEntity instanceof IGregTechTileEntity)) - { - if (((IGregTechTileEntity)tTileEntity).getTimer() < 50L) { + + public boolean onBlockActivated(World aWorld, int aX, int aY, int aZ, EntityPlayer aPlayer, int aSide, float par1, float par2, float par3) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity == null) || (aPlayer.isSneaking())) { + return false; + } + if ((tTileEntity instanceof IGregTechTileEntity)) { + if (((IGregTechTileEntity) tTileEntity).getTimer() < 50L) { + return false; + } + if ((!aWorld.isRemote) && (!((IGregTechTileEntity) tTileEntity).isUseableByPlayer(aPlayer))) { + return true; + } + return ((IGregTechTileEntity) tTileEntity).onRightclick(aPlayer, (byte) aSide, par1, par2, par3); + } return false; - } - if ((!aWorld.isRemote) && (!((IGregTechTileEntity)tTileEntity).isUseableByPlayer(aPlayer))) { - return true; - } - return ((IGregTechTileEntity)tTileEntity).onRightclick(aPlayer, (byte)aSide, par1, par2, par3); } - return false; - } - - public void onBlockClicked(World aWorld, int aX, int aY, int aZ, EntityPlayer aPlayer) - { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity != null) && - ((tTileEntity instanceof IGregTechTileEntity))) { - ((IGregTechTileEntity)tTileEntity).onLeftclick(aPlayer); - } - } - - public int getDamageValue(World aWorld, int aX, int aY, int aZ) - { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity instanceof IGregTechTileEntity)) { - return ((IGregTechTileEntity)tTileEntity).getMetaTileID(); - } - return 0; - } - - public void onBlockExploded(World aWorld, int aX, int aY, int aZ, Explosion aExplosion) - { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity instanceof BaseMetaTileEntity)) { - ((BaseMetaTileEntity)tTileEntity).doEnergyExplosion(); - } - super.onBlockExploded(aWorld, aX, aY, aZ, aExplosion); - } - - public void breakBlock(World aWorld, int aX, int aY, int aZ, Block par5, int par6) - { - GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity instanceof IGregTechTileEntity)) - { - IGregTechTileEntity tGregTechTileEntity = (IGregTechTileEntity)tTileEntity; - Random tRandom = new Random(); - mTemporaryTileEntity.set(tGregTechTileEntity); - for (int i = 0; i < tGregTechTileEntity.getSizeInventory(); i++) - { - ItemStack tItem = tGregTechTileEntity.getStackInSlot(i); - if ((tItem != null) && (tItem.stackSize > 0) && (tGregTechTileEntity.isValidSlot(i))) - { - EntityItem tItemEntity = new EntityItem(aWorld, aX + tRandom.nextFloat() * 0.8F + 0.1F, aY + tRandom.nextFloat() * 0.8F + 0.1F, aZ + tRandom.nextFloat() * 0.8F + 0.1F, new ItemStack(tItem.getItem(), tItem.stackSize, tItem.getItemDamage())); - if (tItem.hasTagCompound()) { - tItemEntity.getEntityItem().setTagCompound((NBTTagCompound)tItem.getTagCompound().copy()); - } - tItemEntity.motionX = (tRandom.nextGaussian() * 0.0500000007450581D); - tItemEntity.motionY = (tRandom.nextGaussian() * 0.0500000007450581D + 0.2000000029802322D); - tItemEntity.motionZ = (tRandom.nextGaussian() * 0.0500000007450581D); - aWorld.spawnEntityInWorld(tItemEntity); - tItem.stackSize = 0; - tGregTechTileEntity.setInventorySlotContents(i, null); + + public void onBlockClicked(World aWorld, int aX, int aY, int aZ, EntityPlayer aPlayer) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity != null) && + ((tTileEntity instanceof IGregTechTileEntity))) { + ((IGregTechTileEntity) tTileEntity).onLeftclick(aPlayer); } - } } - super.breakBlock(aWorld, aX, aY, aZ, par5, par6); - aWorld.removeTileEntity(aX, aY, aZ); - } - - public ArrayList getDrops(World aWorld, int aX, int aY, int aZ, int aMeta, int aFortune) - { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity instanceof IGregTechTileEntity)) { - return ((IGregTechTileEntity)tTileEntity).getDrops(); - } - return mTemporaryTileEntity.get() == null ? new ArrayList() : ((IGregTechTileEntity)mTemporaryTileEntity.get()).getDrops(); - } - - public int getComparatorInputOverride(World aWorld, int aX, int aY, int aZ, int aSide) - { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity != null) && ((tTileEntity instanceof IGregTechTileEntity))) { - return ((IGregTechTileEntity)tTileEntity).getComparatorValue((byte)aSide); - } - return 0; - } - - public int isProvidingWeakPower(IBlockAccess aWorld, int aX, int aY, int aZ, int aSide) - { - if ((aSide < 0) || (aSide > 5)) { - return 0; - } - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity != null) && ((tTileEntity instanceof IGregTechTileEntity))) { - return ((IGregTechTileEntity)tTileEntity).getOutputRedstoneSignal(GT_Utility.getOppositeSide(aSide)); - } - return 0; - } - - public int isProvidingStrongPower(IBlockAccess aWorld, int aX, int aY, int aZ, int aSide) - { - if ((aSide < 0) || (aSide > 5)) { - return 0; - } - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity != null) && ((tTileEntity instanceof IGregTechTileEntity))) { - return ((IGregTechTileEntity)tTileEntity).getStrongOutputRedstoneSignal(GT_Utility.getOppositeSide(aSide)); - } - return 0; - } - - public void dropBlockAsItemWithChance(World aWorld, int aX, int aY, int aZ, int par5, float chance, int par7) - { - if (!aWorld.isRemote) - { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity != null) && (chance < 1.0F)) - { - if (((tTileEntity instanceof BaseMetaTileEntity)) && (GregTech_API.sMachineNonWrenchExplosions)) { - ((BaseMetaTileEntity)tTileEntity).doEnergyExplosion(); + + public int getDamageValue(World aWorld, int aX, int aY, int aZ) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity instanceof IGregTechTileEntity)) { + return ((IGregTechTileEntity) tTileEntity).getMetaTileID(); } - } - else { - super.dropBlockAsItemWithChance(aWorld, aX, aY, aZ, par5, chance, par7); - } + return 0; } - } - - public boolean isSideSolid(IBlockAccess aWorld, int aX, int aY, int aZ, ForgeDirection aSide) - { - if (aWorld.getBlockMetadata(aX, aY, aZ) == 0) { - return true; - } - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if (tTileEntity != null) - { - if ((tTileEntity instanceof BaseMetaTileEntity)) { - return true; - } - if (((tTileEntity instanceof BaseMetaPipeEntity)) && ((((BaseMetaPipeEntity)tTileEntity).mConnections & 0xFFFFFFC0) != 0)) { - return true; - } - if (((tTileEntity instanceof ICoverable)) && (((ICoverable)tTileEntity).getCoverIDAtSide((byte)aSide.ordinal()) != 0)) { - return true; - } - } - return false; - } - - public int getLightOpacity(IBlockAccess aWorld, int aX, int aY, int aZ) - { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if (tTileEntity == null) { - return 0; - } - if ((tTileEntity instanceof IGregTechTileEntity)) { - return ((IGregTechTileEntity)tTileEntity).getLightOpacity(); - } - return aWorld.getBlockMetadata(aX, aY, aZ) == 0 ? 255 : 0; - } - - public int getLightValue(IBlockAccess aWorld, int aX, int aY, int aZ) - { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity instanceof BaseMetaTileEntity)) { - return ((BaseMetaTileEntity)tTileEntity).getLightValue(); - } - return 0; - } - - public TileEntity createTileEntity(World aWorld, int aMeta) - { - if (aMeta < 4) { - return GregTech_API.constructBaseMetaTileEntity(); - } - return new BaseMetaPipeEntity(); - } - - public float getExplosionResistance(Entity par1Entity, World aWorld, int aX, int aY, int aZ, double explosionX, double explosionY, double explosionZ) - { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity != null) && ((tTileEntity instanceof IGregTechTileEntity))) { - return ((IGregTechTileEntity)tTileEntity).getBlastResistance((byte)6); - } - return 10.0F; - } - - @SideOnly(Side.CLIENT) - public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) - { - for (int i = 1; i < GregTech_API.METATILEENTITIES.length; i++) { - if (GregTech_API.METATILEENTITIES[i] != null) { - par3List.add(new ItemStack(par1, 1, i)); - } - } - } - - public void onBlockPlacedBy(World aWorld, int aX, int aY, int aZ, EntityLivingBase aPlayer, ItemStack aStack) - { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if (tTileEntity == null) { - return; - } - if ((tTileEntity instanceof IGregTechTileEntity)) - { - IGregTechTileEntity var6 = (IGregTechTileEntity)tTileEntity; - if (aPlayer == null) - { - var6.setFrontFacing((byte)1); - } - else - { - int var7 = MathHelper.floor_double(aPlayer.rotationYaw * 4.0F / 360.0F + 0.5D) & 0x3; - int var8 = Math.round(aPlayer.rotationPitch); - if ((var8 >= 65) && (var6.isValidFacing((byte)1))) { - var6.setFrontFacing((byte)1); - } else if ((var8 <= -65) && (var6.isValidFacing((byte)0))) { - var6.setFrontFacing((byte)0); - } else { - switch (var7) - { - case 0: - var6.setFrontFacing((byte)2); break; - case 1: - var6.setFrontFacing((byte)5); break; - case 2: - var6.setFrontFacing((byte)3); break; - case 3: - var6.setFrontFacing((byte)4); - } + + public void onBlockExploded(World aWorld, int aX, int aY, int aZ, Explosion aExplosion) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity instanceof BaseMetaTileEntity)) { + ((BaseMetaTileEntity) tTileEntity).doEnergyExplosion(); } - } + super.onBlockExploded(aWorld, aX, aY, aZ, aExplosion); } - } - - public ArrayList getDebugInfo(EntityPlayer aPlayer, int aX, int aY, int aZ, int aLogLevel) - { - TileEntity tTileEntity = aPlayer.worldObj.getTileEntity(aX, aY, aZ); - if ((tTileEntity instanceof BaseMetaTileEntity)) { - return ((BaseMetaTileEntity)tTileEntity).getDebugInfo(aPlayer, aLogLevel); + + public void breakBlock(World aWorld, int aX, int aY, int aZ, Block par5, int par6) { + GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity instanceof IGregTechTileEntity)) { + IGregTechTileEntity tGregTechTileEntity = (IGregTechTileEntity) tTileEntity; + Random tRandom = new Random(); + mTemporaryTileEntity.set(tGregTechTileEntity); + for (int i = 0; i < tGregTechTileEntity.getSizeInventory(); i++) { + ItemStack tItem = tGregTechTileEntity.getStackInSlot(i); + if ((tItem != null) && (tItem.stackSize > 0) && (tGregTechTileEntity.isValidSlot(i))) { + EntityItem tItemEntity = new EntityItem(aWorld, aX + tRandom.nextFloat() * 0.8F + 0.1F, aY + tRandom.nextFloat() * 0.8F + 0.1F, aZ + tRandom.nextFloat() * 0.8F + 0.1F, new ItemStack(tItem.getItem(), tItem.stackSize, tItem.getItemDamage())); + if (tItem.hasTagCompound()) { + tItemEntity.getEntityItem().setTagCompound((NBTTagCompound) tItem.getTagCompound().copy()); + } + tItemEntity.motionX = (tRandom.nextGaussian() * 0.0500000007450581D); + tItemEntity.motionY = (tRandom.nextGaussian() * 0.0500000007450581D + 0.2000000029802322D); + tItemEntity.motionZ = (tRandom.nextGaussian() * 0.0500000007450581D); + aWorld.spawnEntityInWorld(tItemEntity); + tItem.stackSize = 0; + tGregTechTileEntity.setInventorySlotContents(i, null); + } + } + } + super.breakBlock(aWorld, aX, aY, aZ, par5, par6); + aWorld.removeTileEntity(aX, aY, aZ); } - if ((tTileEntity instanceof BaseMetaPipeEntity)) { - return ((BaseMetaPipeEntity)tTileEntity).getDebugInfo(aPlayer, aLogLevel); + + public ArrayList getDrops(World aWorld, int aX, int aY, int aZ, int aMeta, int aFortune) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity instanceof IGregTechTileEntity)) { + return ((IGregTechTileEntity) tTileEntity).getDrops(); + } + return mTemporaryTileEntity.get() == null ? new ArrayList() : ((IGregTechTileEntity) mTemporaryTileEntity.get()).getDrops(); } - return null; - } - - public boolean recolourBlock(World aWorld, int aX, int aY, int aZ, ForgeDirection aSide, int aColor) - { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity instanceof IGregTechTileEntity)) - { - if (((IGregTechTileEntity)tTileEntity).getColorization() == (byte)((aColor ^ 0xFFFFFFFF) & 0xF)) { + + public int getComparatorInputOverride(World aWorld, int aX, int aY, int aZ, int aSide) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity != null) && ((tTileEntity instanceof IGregTechTileEntity))) { + return ((IGregTechTileEntity) tTileEntity).getComparatorValue((byte) aSide); + } + return 0; + } + + public int isProvidingWeakPower(IBlockAccess aWorld, int aX, int aY, int aZ, int aSide) { + if ((aSide < 0) || (aSide > 5)) { + return 0; + } + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity != null) && ((tTileEntity instanceof IGregTechTileEntity))) { + return ((IGregTechTileEntity) tTileEntity).getOutputRedstoneSignal(GT_Utility.getOppositeSide(aSide)); + } + return 0; + } + + public int isProvidingStrongPower(IBlockAccess aWorld, int aX, int aY, int aZ, int aSide) { + if ((aSide < 0) || (aSide > 5)) { + return 0; + } + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity != null) && ((tTileEntity instanceof IGregTechTileEntity))) { + return ((IGregTechTileEntity) tTileEntity).getStrongOutputRedstoneSignal(GT_Utility.getOppositeSide(aSide)); + } + return 0; + } + + public void dropBlockAsItemWithChance(World aWorld, int aX, int aY, int aZ, int par5, float chance, int par7) { + if (!aWorld.isRemote) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity != null) && (chance < 1.0F)) { + if (((tTileEntity instanceof BaseMetaTileEntity)) && (GregTech_API.sMachineNonWrenchExplosions)) { + ((BaseMetaTileEntity) tTileEntity).doEnergyExplosion(); + } + } else { + super.dropBlockAsItemWithChance(aWorld, aX, aY, aZ, par5, chance, par7); + } + } + } + + public boolean isSideSolid(IBlockAccess aWorld, int aX, int aY, int aZ, ForgeDirection aSide) { + if (aWorld.getBlockMetadata(aX, aY, aZ) == 0) { + return true; + } + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if (tTileEntity != null) { + if ((tTileEntity instanceof BaseMetaTileEntity)) { + return true; + } + if (((tTileEntity instanceof BaseMetaPipeEntity)) && ((((BaseMetaPipeEntity) tTileEntity).mConnections & 0xFFFFFFC0) != 0)) { + return true; + } + if (((tTileEntity instanceof ICoverable)) && (((ICoverable) tTileEntity).getCoverIDAtSide((byte) aSide.ordinal()) != 0)) { + return true; + } + } + return false; + } + + public int getLightOpacity(IBlockAccess aWorld, int aX, int aY, int aZ) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if (tTileEntity == null) { + return 0; + } + if ((tTileEntity instanceof IGregTechTileEntity)) { + return ((IGregTechTileEntity) tTileEntity).getLightOpacity(); + } + return aWorld.getBlockMetadata(aX, aY, aZ) == 0 ? 255 : 0; + } + + public int getLightValue(IBlockAccess aWorld, int aX, int aY, int aZ) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity instanceof BaseMetaTileEntity)) { + return ((BaseMetaTileEntity) tTileEntity).getLightValue(); + } + return 0; + } + + public TileEntity createTileEntity(World aWorld, int aMeta) { + if (aMeta < 4) { + return GregTech_API.constructBaseMetaTileEntity(); + } + return new BaseMetaPipeEntity(); + } + + public float getExplosionResistance(Entity par1Entity, World aWorld, int aX, int aY, int aZ, double explosionX, double explosionY, double explosionZ) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity != null) && ((tTileEntity instanceof IGregTechTileEntity))) { + return ((IGregTechTileEntity) tTileEntity).getBlastResistance((byte) 6); + } + return 10.0F; + } + + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) { + for (int i = 1; i < GregTech_API.METATILEENTITIES.length; i++) { + if (GregTech_API.METATILEENTITIES[i] != null) { + par3List.add(new ItemStack(par1, 1, i)); + } + } + } + + public void onBlockPlacedBy(World aWorld, int aX, int aY, int aZ, EntityLivingBase aPlayer, ItemStack aStack) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if (tTileEntity == null) { + return; + } + if ((tTileEntity instanceof IGregTechTileEntity)) { + IGregTechTileEntity var6 = (IGregTechTileEntity) tTileEntity; + if (aPlayer == null) { + var6.setFrontFacing((byte) 1); + } else { + int var7 = MathHelper.floor_double(aPlayer.rotationYaw * 4.0F / 360.0F + 0.5D) & 0x3; + int var8 = Math.round(aPlayer.rotationPitch); + if ((var8 >= 65) && (var6.isValidFacing((byte) 1))) { + var6.setFrontFacing((byte) 1); + } else if ((var8 <= -65) && (var6.isValidFacing((byte) 0))) { + var6.setFrontFacing((byte) 0); + } else { + switch (var7) { + case 0: + var6.setFrontFacing((byte) 2); + break; + case 1: + var6.setFrontFacing((byte) 5); + break; + case 2: + var6.setFrontFacing((byte) 3); + break; + case 3: + var6.setFrontFacing((byte) 4); + } + } + } + } + } + + public ArrayList getDebugInfo(EntityPlayer aPlayer, int aX, int aY, int aZ, int aLogLevel) { + TileEntity tTileEntity = aPlayer.worldObj.getTileEntity(aX, aY, aZ); + if ((tTileEntity instanceof BaseMetaTileEntity)) { + return ((BaseMetaTileEntity) tTileEntity).getDebugInfo(aPlayer, aLogLevel); + } + if ((tTileEntity instanceof BaseMetaPipeEntity)) { + return ((BaseMetaPipeEntity) tTileEntity).getDebugInfo(aPlayer, aLogLevel); + } + return null; + } + + public boolean recolourBlock(World aWorld, int aX, int aY, int aZ, ForgeDirection aSide, int aColor) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity instanceof IGregTechTileEntity)) { + if (((IGregTechTileEntity) tTileEntity).getColorization() == (byte) ((aColor ^ 0xFFFFFFFF) & 0xF)) { + return false; + } + ((IGregTechTileEntity) tTileEntity).setColorization((byte) ((aColor ^ 0xFFFFFFFF) & 0xF)); + return true; + } return false; - } - ((IGregTechTileEntity)tTileEntity).setColorization((byte)((aColor ^ 0xFFFFFFFF) & 0xF)); - return true; } - return false; - } } diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Ores.java b/src/main/java/gregtech/common/blocks/GT_Block_Ores.java index 746b26de..0be7e684 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Ores.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Ores.java @@ -10,8 +10,6 @@ import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.common.render.GT_Renderer_Block; -import java.util.ArrayList; -import java.util.List; import net.minecraft.block.Block; import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; @@ -28,236 +26,224 @@ import net.minecraft.util.StatCollector; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import java.util.ArrayList; +import java.util.List; + public class GT_Block_Ores - extends GT_Generic_Block - implements ITileEntityProvider -{ - public static ThreadLocal mTemporaryTileEntity = new ThreadLocal(); - - public GT_Block_Ores() - { - super(GT_Item_Ores.class, "gt.blockores", Material.rock); - this.isBlockContainer = true; - setStepSound(soundTypeStone); - setCreativeTab(GregTech_API.TAB_GREGTECH_ORES); - for (int i = 0; i < 16; i++) { - GT_ModHandler.addValuableOre(this, i, 1); - } - for (int i = 1; i < GregTech_API.sGeneratedMaterials.length; i++) { - if (GregTech_API.sGeneratedMaterials[i] != null) - { - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + i + ".name", getLocalizedName(GregTech_API.sGeneratedMaterials[i])); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (i + 1000) + ".name", getLocalizedName(GregTech_API.sGeneratedMaterials[i])); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (i + 2000) + ".name", getLocalizedName(GregTech_API.sGeneratedMaterials[i])); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (i + 3000) + ".name", getLocalizedName(GregTech_API.sGeneratedMaterials[i])); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (i + 4000) + ".name", getLocalizedName(GregTech_API.sGeneratedMaterials[i])); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (i + 16000) + ".name", "Small " + getLocalizedName(GregTech_API.sGeneratedMaterials[i])); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (i + 17000) + ".name", "Small " + getLocalizedName(GregTech_API.sGeneratedMaterials[i])); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (i + 18000) + ".name", "Small " + getLocalizedName(GregTech_API.sGeneratedMaterials[i])); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (i + 19000) + ".name", "Small " + getLocalizedName(GregTech_API.sGeneratedMaterials[i])); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (i + 20000) + ".name", "Small " + getLocalizedName(GregTech_API.sGeneratedMaterials[i])); - if ((GregTech_API.sGeneratedMaterials[i].mTypes & 0x8) != 0) - { - GT_OreDictUnificator.registerOre(OrePrefixes.ore.get(GregTech_API.sGeneratedMaterials[i]), new ItemStack(this, 1, i)); - GT_OreDictUnificator.registerOre(OrePrefixes.oreNetherrack.get(GregTech_API.sGeneratedMaterials[i]), new ItemStack(this, 1, i + 1000)); - GT_OreDictUnificator.registerOre(OrePrefixes.oreEndstone.get(GregTech_API.sGeneratedMaterials[i]), new ItemStack(this, 1, i + 2000)); - GT_OreDictUnificator.registerOre(OrePrefixes.oreBlackgranite.get(GregTech_API.sGeneratedMaterials[i]), new ItemStack(this, 1, i + 3000)); - GT_OreDictUnificator.registerOre(OrePrefixes.oreRedgranite.get(GregTech_API.sGeneratedMaterials[i]), new ItemStack(this, 1, i + 4000)); + extends GT_Generic_Block + implements ITileEntityProvider { + public static ThreadLocal mTemporaryTileEntity = new ThreadLocal(); + public static boolean FUCKING_LOCK = false; + + public GT_Block_Ores() { + super(GT_Item_Ores.class, "gt.blockores", Material.rock); + this.isBlockContainer = true; + setStepSound(soundTypeStone); + setCreativeTab(GregTech_API.TAB_GREGTECH_ORES); + for (int i = 0; i < 16; i++) { + GT_ModHandler.addValuableOre(this, i, 1); + } + for (int i = 1; i < GregTech_API.sGeneratedMaterials.length; i++) { + if (GregTech_API.sGeneratedMaterials[i] != null) { + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + i + ".name", getLocalizedName(GregTech_API.sGeneratedMaterials[i])); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (i + 1000) + ".name", getLocalizedName(GregTech_API.sGeneratedMaterials[i])); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (i + 2000) + ".name", getLocalizedName(GregTech_API.sGeneratedMaterials[i])); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (i + 3000) + ".name", getLocalizedName(GregTech_API.sGeneratedMaterials[i])); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (i + 4000) + ".name", getLocalizedName(GregTech_API.sGeneratedMaterials[i])); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (i + 16000) + ".name", "Small " + getLocalizedName(GregTech_API.sGeneratedMaterials[i])); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (i + 17000) + ".name", "Small " + getLocalizedName(GregTech_API.sGeneratedMaterials[i])); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (i + 18000) + ".name", "Small " + getLocalizedName(GregTech_API.sGeneratedMaterials[i])); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (i + 19000) + ".name", "Small " + getLocalizedName(GregTech_API.sGeneratedMaterials[i])); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (i + 20000) + ".name", "Small " + getLocalizedName(GregTech_API.sGeneratedMaterials[i])); + if ((GregTech_API.sGeneratedMaterials[i].mTypes & 0x8) != 0) { + GT_OreDictUnificator.registerOre(OrePrefixes.ore.get(GregTech_API.sGeneratedMaterials[i]), new ItemStack(this, 1, i)); + GT_OreDictUnificator.registerOre(OrePrefixes.oreNetherrack.get(GregTech_API.sGeneratedMaterials[i]), new ItemStack(this, 1, i + 1000)); + GT_OreDictUnificator.registerOre(OrePrefixes.oreEndstone.get(GregTech_API.sGeneratedMaterials[i]), new ItemStack(this, 1, i + 2000)); + GT_OreDictUnificator.registerOre(OrePrefixes.oreBlackgranite.get(GregTech_API.sGeneratedMaterials[i]), new ItemStack(this, 1, i + 3000)); + GT_OreDictUnificator.registerOre(OrePrefixes.oreRedgranite.get(GregTech_API.sGeneratedMaterials[i]), new ItemStack(this, 1, i + 4000)); + } + } } - } } - } - - public static boolean FUCKING_LOCK = false; - - public void onNeighborChange(IBlockAccess aWorld, int aX, int aY, int aZ, int aTileX, int aTileY, int aTileZ) - { - if (!FUCKING_LOCK) - { - FUCKING_LOCK = true; - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity instanceof GT_TileEntity_Ores)) { - ((GT_TileEntity_Ores)tTileEntity).onUpdated(); - } + + public void onNeighborChange(IBlockAccess aWorld, int aX, int aY, int aZ, int aTileX, int aTileY, int aTileZ) { + if (!FUCKING_LOCK) { + FUCKING_LOCK = true; + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity instanceof GT_TileEntity_Ores)) { + ((GT_TileEntity_Ores) tTileEntity).onUpdated(); + } + } + FUCKING_LOCK = false; } - FUCKING_LOCK = false; - } - - public void onNeighborBlockChange(World aWorld, int aX, int aY, int aZ, Block aBlock) - { - if (!FUCKING_LOCK) - { - FUCKING_LOCK = true; - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity instanceof GT_TileEntity_Ores)) { - ((GT_TileEntity_Ores)tTileEntity).onUpdated(); - } + + public void onNeighborBlockChange(World aWorld, int aX, int aY, int aZ, Block aBlock) { + if (!FUCKING_LOCK) { + FUCKING_LOCK = true; + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity instanceof GT_TileEntity_Ores)) { + ((GT_TileEntity_Ores) tTileEntity).onUpdated(); + } + } + FUCKING_LOCK = false; } - FUCKING_LOCK = false; - } - - public String getLocalizedName(Materials aMaterial) { - switch (aMaterial) { - case InfusedAir: case InfusedDull: case InfusedEarth: case InfusedEntropy: case InfusedFire: case InfusedOrder: case InfusedVis: case InfusedWater: - return aMaterial.mDefaultLocalName + " Infused Stone"; - case Vermiculite: case Bentonite: case Kaolinite: case Talc: case BasalticMineralSand: case GraniticMineralSand: case GlauconiteSand: case CassiteriteSand: case GarnetSand: case QuartzSand: case Pitchblende: case FullersEarth: - return aMaterial.mDefaultLocalName; - default: - return aMaterial.mDefaultLocalName + OrePrefixes.ore.mLocalizedMaterialPost; - } - - } - - public boolean onBlockEventReceived(World p_149696_1_, int p_149696_2_, int p_149696_3_, int p_149696_4_, int p_149696_5_, int p_149696_6_) - { - super.onBlockEventReceived(p_149696_1_, p_149696_2_, p_149696_3_, p_149696_4_, p_149696_5_, p_149696_6_); - TileEntity tileentity = p_149696_1_.getTileEntity(p_149696_2_, p_149696_3_, p_149696_4_); - return tileentity != null ? tileentity.receiveClientEvent(p_149696_5_, p_149696_6_) : false; - } - - public boolean canEntityDestroy(IBlockAccess world, int x, int y, int z, Entity entity) - { - return (!(entity instanceof EntityDragon)) && (super.canEntityDestroy(world, x, y, z, entity)); - } - - public String getHarvestTool(int aMeta) - { - return aMeta < 8 ? "pickaxe" : "shovel"; - } - - public int getHarvestLevel(int aMeta) - { - return aMeta % 8; - } - - public float getBlockHardness(World aWorld, int aX, int aY, int aZ) - { - return 1.0F + getHarvestLevel(aWorld.getBlockMetadata(aX, aY, aZ)) * 1.0F; - } - - public float getExplosionResistance(Entity par1Entity, World aWorld, int aX, int aY, int aZ, double explosionX, double explosionY, double explosionZ) - { - return 1.0F + getHarvestLevel(aWorld.getBlockMetadata(aX, aY, aZ)) * 1.0F; - } - - protected boolean canSilkHarvest() - { - return false; - } - - public String getUnlocalizedName() - { - return "gt.blockores"; - } - - public String getLocalizedName() - { - return StatCollector.translateToLocal(getUnlocalizedName() + ".name"); - } - - public int getRenderType() - { - if (GT_Renderer_Block.INSTANCE == null) { - return super.getRenderType(); + + public String getLocalizedName(Materials aMaterial) { + switch (aMaterial) { + case InfusedAir: + case InfusedDull: + case InfusedEarth: + case InfusedEntropy: + case InfusedFire: + case InfusedOrder: + case InfusedVis: + case InfusedWater: + return aMaterial.mDefaultLocalName + " Infused Stone"; + case Vermiculite: + case Bentonite: + case Kaolinite: + case Talc: + case BasalticMineralSand: + case GraniticMineralSand: + case GlauconiteSand: + case CassiteriteSand: + case GarnetSand: + case QuartzSand: + case Pitchblende: + case FullersEarth: + return aMaterial.mDefaultLocalName; + default: + return aMaterial.mDefaultLocalName + OrePrefixes.ore.mLocalizedMaterialPost; + } + } - return GT_Renderer_Block.INSTANCE.mRenderID; - } - - public boolean canBeReplacedByLeaves(IBlockAccess aWorld, int aX, int aY, int aZ) - { - return false; - } - - public boolean isNormalCube(IBlockAccess aWorld, int aX, int aY, int aZ) - { - return true; - } - - public boolean hasTileEntity(int aMeta) - { - return true; - } - - public boolean renderAsNormalBlock() - { - return true; - } - - public boolean isOpaqueCube() - { - return true; - } - - public TileEntity createNewTileEntity(World aWorld, int aMeta) - { - return createTileEntity(aWorld, aMeta); - } - - public IIcon getIcon(IBlockAccess aIBlockAccess, int aX, int aY, int aZ, int aSide) - { - return Blocks.stone.getIcon(0, 0); - } - - public IIcon getIcon(int aSide, int aMeta) - { - return Blocks.stone.getIcon(0, 0); - } - - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister aIconRegister) {} - - public int getDamageValue(World aWorld, int aX, int aY, int aZ) - { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity != null) && ((tTileEntity instanceof GT_TileEntity_Ores))) { - return ((GT_TileEntity_Ores)tTileEntity).getMetaData(); + + public boolean onBlockEventReceived(World p_149696_1_, int p_149696_2_, int p_149696_3_, int p_149696_4_, int p_149696_5_, int p_149696_6_) { + super.onBlockEventReceived(p_149696_1_, p_149696_2_, p_149696_3_, p_149696_4_, p_149696_5_, p_149696_6_); + TileEntity tileentity = p_149696_1_.getTileEntity(p_149696_2_, p_149696_3_, p_149696_4_); + return tileentity != null ? tileentity.receiveClientEvent(p_149696_5_, p_149696_6_) : false; } - return 0; - } - - public void breakBlock(World aWorld, int aX, int aY, int aZ, Block par5, int par6) - { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity instanceof GT_TileEntity_Ores)) { - mTemporaryTileEntity.set((GT_TileEntity_Ores)tTileEntity); + + public boolean canEntityDestroy(IBlockAccess world, int x, int y, int z, Entity entity) { + return (!(entity instanceof EntityDragon)) && (super.canEntityDestroy(world, x, y, z, entity)); } - super.breakBlock(aWorld, aX, aY, aZ, par5, par6); - aWorld.removeTileEntity(aX, aY, aZ); - } - - public ArrayList getDrops(World aWorld, int aX, int aY, int aZ, int aMeta, int aFortune) - { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity instanceof GT_TileEntity_Ores)) { - return ((GT_TileEntity_Ores)tTileEntity).getDrops(aFortune); + + public String getHarvestTool(int aMeta) { + return aMeta < 8 ? "pickaxe" : "shovel"; } - return mTemporaryTileEntity.get() == null ? new ArrayList() : ((GT_TileEntity_Ores)mTemporaryTileEntity.get()).getDrops(aFortune); - } - - public TileEntity createTileEntity(World aWorld, int aMeta) - { - return new GT_TileEntity_Ores(); - } - - @SideOnly(Side.CLIENT) - public void getSubBlocks(Item aItem, CreativeTabs aTab, List aList) - { - for (int i = 0; i < GregTech_API.sGeneratedMaterials.length; i++) - { - Materials tMaterial = GregTech_API.sGeneratedMaterials[i]; - if ((tMaterial != null) && ((tMaterial.mTypes & 0x8) != 0)) - { - aList.add(new ItemStack(aItem, 1, i)); - aList.add(new ItemStack(aItem, 1, i + 1000)); - aList.add(new ItemStack(aItem, 1, i + 2000)); - aList.add(new ItemStack(aItem, 1, i + 3000)); - aList.add(new ItemStack(aItem, 1, i + 4000)); - aList.add(new ItemStack(aItem, 1, i + 16000)); - aList.add(new ItemStack(aItem, 1, i + 17000)); - aList.add(new ItemStack(aItem, 1, i + 18000)); - aList.add(new ItemStack(aItem, 1, i + 19000)); - aList.add(new ItemStack(aItem, 1, i + 20000)); - } + + public int getHarvestLevel(int aMeta) { + return aMeta % 8; + } + + public float getBlockHardness(World aWorld, int aX, int aY, int aZ) { + return 1.0F + getHarvestLevel(aWorld.getBlockMetadata(aX, aY, aZ)) * 1.0F; + } + + public float getExplosionResistance(Entity par1Entity, World aWorld, int aX, int aY, int aZ, double explosionX, double explosionY, double explosionZ) { + return 1.0F + getHarvestLevel(aWorld.getBlockMetadata(aX, aY, aZ)) * 1.0F; + } + + protected boolean canSilkHarvest() { + return false; + } + + public String getUnlocalizedName() { + return "gt.blockores"; + } + + public String getLocalizedName() { + return StatCollector.translateToLocal(getUnlocalizedName() + ".name"); + } + + public int getRenderType() { + if (GT_Renderer_Block.INSTANCE == null) { + return super.getRenderType(); + } + return GT_Renderer_Block.INSTANCE.mRenderID; + } + + public boolean canBeReplacedByLeaves(IBlockAccess aWorld, int aX, int aY, int aZ) { + return false; + } + + public boolean isNormalCube(IBlockAccess aWorld, int aX, int aY, int aZ) { + return true; + } + + public boolean hasTileEntity(int aMeta) { + return true; + } + + public boolean renderAsNormalBlock() { + return true; + } + + public boolean isOpaqueCube() { + return true; + } + + public TileEntity createNewTileEntity(World aWorld, int aMeta) { + return createTileEntity(aWorld, aMeta); + } + + public IIcon getIcon(IBlockAccess aIBlockAccess, int aX, int aY, int aZ, int aSide) { + return Blocks.stone.getIcon(0, 0); + } + + public IIcon getIcon(int aSide, int aMeta) { + return Blocks.stone.getIcon(0, 0); + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister aIconRegister) { + } + + public int getDamageValue(World aWorld, int aX, int aY, int aZ) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity != null) && ((tTileEntity instanceof GT_TileEntity_Ores))) { + return ((GT_TileEntity_Ores) tTileEntity).getMetaData(); + } + return 0; + } + + public void breakBlock(World aWorld, int aX, int aY, int aZ, Block par5, int par6) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity instanceof GT_TileEntity_Ores)) { + mTemporaryTileEntity.set((GT_TileEntity_Ores) tTileEntity); + } + super.breakBlock(aWorld, aX, aY, aZ, par5, par6); + aWorld.removeTileEntity(aX, aY, aZ); + } + + public ArrayList getDrops(World aWorld, int aX, int aY, int aZ, int aMeta, int aFortune) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity instanceof GT_TileEntity_Ores)) { + return ((GT_TileEntity_Ores) tTileEntity).getDrops(aFortune); + } + return mTemporaryTileEntity.get() == null ? new ArrayList() : ((GT_TileEntity_Ores) mTemporaryTileEntity.get()).getDrops(aFortune); + } + + public TileEntity createTileEntity(World aWorld, int aMeta) { + return new GT_TileEntity_Ores(); + } + + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item aItem, CreativeTabs aTab, List aList) { + for (int i = 0; i < GregTech_API.sGeneratedMaterials.length; i++) { + Materials tMaterial = GregTech_API.sGeneratedMaterials[i]; + if ((tMaterial != null) && ((tMaterial.mTypes & 0x8) != 0)) { + aList.add(new ItemStack(aItem, 1, i)); + aList.add(new ItemStack(aItem, 1, i + 1000)); + aList.add(new ItemStack(aItem, 1, i + 2000)); + aList.add(new ItemStack(aItem, 1, i + 3000)); + aList.add(new ItemStack(aItem, 1, i + 4000)); + aList.add(new ItemStack(aItem, 1, i + 16000)); + aList.add(new ItemStack(aItem, 1, i + 17000)); + aList.add(new ItemStack(aItem, 1, i + 18000)); + aList.add(new ItemStack(aItem, 1, i + 19000)); + aList.add(new ItemStack(aItem, 1, i + 20000)); + } + } } - } } diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java b/src/main/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java index d3963959..5a5e49b5 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java @@ -3,21 +3,11 @@ package gregtech.common.blocks; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OreDictNames; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.IIconContainer; +import gregtech.api.enums.*; import gregtech.api.interfaces.IOreRecipeRegistrator; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.items.GT_Generic_Block; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_ModHandler.RecipeBits; import gregtech.api.util.GT_Utility; -import java.util.List; -import java.util.Random; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; @@ -31,145 +21,129 @@ import net.minecraft.util.StatCollector; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import java.util.List; +import java.util.Random; + public class GT_Block_Stones_Abstract - extends GT_Generic_Block - implements IOreRecipeRegistrator -{ - public GT_Block_Stones_Abstract(Class aItemClass, String aName) - { - super(aItemClass, aName, Material.rock); - OrePrefixes.crafting.add(this); - setStepSound(soundTypeStone); - setCreativeTab(GregTech_API.TAB_GREGTECH_MATERIALS); - GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 0), new ItemStack(this, 1, 7)); - GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 1), new ItemStack(this, 1, 0)); - GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 2), new ItemStack(this, 1, 0)); - GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 3), new ItemStack(this, 1, 0)); - GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 4), new ItemStack(this, 1, 0)); - GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 5), new ItemStack(this, 1, 0)); - GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 6), new ItemStack(this, 1, 0)); - GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 7), new ItemStack(this, 1, 0)); - GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 8), new ItemStack(this, 1, 15)); - GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 9), new ItemStack(this, 1, 8)); - GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 10), new ItemStack(this, 1, 8)); - GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 11), new ItemStack(this, 1, 8)); - GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 12), new ItemStack(this, 1, 8)); - GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 13), new ItemStack(this, 1, 8)); - GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 14), new ItemStack(this, 1, 8)); - GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 15), new ItemStack(this, 1, 8)); - GT_Values.RA.addAssemblerRecipe(new ItemStack(this, 1, 0), ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), new ItemStack(this, 1, 3), 50, 4); - GT_Values.RA.addAssemblerRecipe(new ItemStack(this, 1, 8), ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), new ItemStack(this, 1, 11), 50, 4); - GT_ModHandler.addCraftingRecipe(new ItemStack(this, 1, 6), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "f", "X", Character.valueOf('X'), new ItemStack(this, 1, 7) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(this, 1, 14), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "f", "X", Character.valueOf('X'), new ItemStack(this, 1, 15) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(this, 1, 4), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "h", "X", Character.valueOf('X'), new ItemStack(this, 1, 3) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(this, 1, 12), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "h", "X", Character.valueOf('X'), new ItemStack(this, 1, 11) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(this, 1, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "h", "X", Character.valueOf('X'), new ItemStack(this, 1, 0) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(this, 1, 9), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "h", "X", Character.valueOf('X'), new ItemStack(this, 1, 8) }); - GT_Values.RA.addForgeHammerRecipe(new ItemStack(this, 1, 3), new ItemStack(this, 1, 4), 16, 10); - GT_Values.RA.addForgeHammerRecipe(new ItemStack(this, 1, 11), new ItemStack(this, 1, 12), 16, 10); - GT_Values.RA.addForgeHammerRecipe(new ItemStack(this, 1, 0), new ItemStack(this, 1, 1), 16, 10); - GT_Values.RA.addForgeHammerRecipe(new ItemStack(this, 1, 8), new ItemStack(this, 1, 9), 16, 10); - GT_ModHandler.addCraftingRecipe(new ItemStack(this, 4, 3), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "XX", "XX", Character.valueOf('X'), new ItemStack(this, 4, 0) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(this, 4, 11), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "XX", "XX", Character.valueOf('X'), new ItemStack(this, 4, 8) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(this, 4, 3), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "XX", "XX", Character.valueOf('X'), new ItemStack(this, 4, 7) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(this, 4, 11), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "XX", "XX", Character.valueOf('X'), new ItemStack(this, 4, 15) }); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aOreDictName.equals(OreDictNames.craftingLensWhite.toString())) - { - GT_Values.RA.addLaserEngraverRecipe(new ItemStack(this, 1, 7), GT_Utility.copyAmount(0L, new Object[] { aStack }), new ItemStack(this, 1, 6), 50, 16); - GT_Values.RA.addLaserEngraverRecipe(new ItemStack(this, 1, 15), GT_Utility.copyAmount(0L, new Object[] { aStack }), new ItemStack(this, 1, 14), 50, 16); + extends GT_Generic_Block + implements IOreRecipeRegistrator { + public GT_Block_Stones_Abstract(Class aItemClass, String aName) { + super(aItemClass, aName, Material.rock); + OrePrefixes.crafting.add(this); + setStepSound(soundTypeStone); + setCreativeTab(GregTech_API.TAB_GREGTECH_MATERIALS); + GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 0), new ItemStack(this, 1, 7)); + GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 1), new ItemStack(this, 1, 0)); + GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 2), new ItemStack(this, 1, 0)); + GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 3), new ItemStack(this, 1, 0)); + GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 4), new ItemStack(this, 1, 0)); + GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 5), new ItemStack(this, 1, 0)); + GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 6), new ItemStack(this, 1, 0)); + GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 7), new ItemStack(this, 1, 0)); + GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 8), new ItemStack(this, 1, 15)); + GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 9), new ItemStack(this, 1, 8)); + GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 10), new ItemStack(this, 1, 8)); + GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 11), new ItemStack(this, 1, 8)); + GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 12), new ItemStack(this, 1, 8)); + GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 13), new ItemStack(this, 1, 8)); + GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 14), new ItemStack(this, 1, 8)); + GT_ModHandler.addSmeltingRecipe(new ItemStack(this, 1, 15), new ItemStack(this, 1, 8)); + GT_Values.RA.addAssemblerRecipe(new ItemStack(this, 1, 0), ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), new ItemStack(this, 1, 3), 50, 4); + GT_Values.RA.addAssemblerRecipe(new ItemStack(this, 1, 8), ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), new ItemStack(this, 1, 11), 50, 4); + GT_ModHandler.addCraftingRecipe(new ItemStack(this, 1, 6), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"f", "X", Character.valueOf('X'), new ItemStack(this, 1, 7)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(this, 1, 14), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"f", "X", Character.valueOf('X'), new ItemStack(this, 1, 15)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(this, 1, 4), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"h", "X", Character.valueOf('X'), new ItemStack(this, 1, 3)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(this, 1, 12), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"h", "X", Character.valueOf('X'), new ItemStack(this, 1, 11)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(this, 1, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"h", "X", Character.valueOf('X'), new ItemStack(this, 1, 0)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(this, 1, 9), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"h", "X", Character.valueOf('X'), new ItemStack(this, 1, 8)}); + GT_Values.RA.addForgeHammerRecipe(new ItemStack(this, 1, 3), new ItemStack(this, 1, 4), 16, 10); + GT_Values.RA.addForgeHammerRecipe(new ItemStack(this, 1, 11), new ItemStack(this, 1, 12), 16, 10); + GT_Values.RA.addForgeHammerRecipe(new ItemStack(this, 1, 0), new ItemStack(this, 1, 1), 16, 10); + GT_Values.RA.addForgeHammerRecipe(new ItemStack(this, 1, 8), new ItemStack(this, 1, 9), 16, 10); + GT_ModHandler.addCraftingRecipe(new ItemStack(this, 4, 3), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"XX", "XX", Character.valueOf('X'), new ItemStack(this, 4, 0)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(this, 4, 11), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"XX", "XX", Character.valueOf('X'), new ItemStack(this, 4, 8)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(this, 4, 3), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"XX", "XX", Character.valueOf('X'), new ItemStack(this, 4, 7)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(this, 4, 11), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"XX", "XX", Character.valueOf('X'), new ItemStack(this, 4, 15)}); } - } - - public String getHarvestTool(int aMeta) - { - return "pickaxe"; - } - - public int getHarvestLevel(int aMeta) - { - return 1; - } - - public float getBlockHardness(World aWorld, int aX, int aY, int aZ) - { - return this.blockHardness = Blocks.stone.getBlockHardness(aWorld, aX, aY, aZ) * 3.0F; - } - - public String getUnlocalizedName() - { - return this.mUnlocalizedName; - } - - public String getLocalizedName() - { - return StatCollector.translateToLocal(this.mUnlocalizedName + ".name"); - } - - public boolean canBeReplacedByLeaves(IBlockAccess aWorld, int aX, int aY, int aZ) - { - return false; - } - - public boolean isNormalCube(IBlockAccess aWorld, int aX, int aY, int aZ) - { - return true; - } - - public boolean renderAsNormalBlock() - { - return true; - } - - public boolean isOpaqueCube() - { - return true; - } - - public IIcon getIcon(int aSide, int aMeta) - { - if ((aMeta >= 0) && (aMeta < 16)) { - return gregtech.api.enums.Textures.BlockIcons.GRANITES[aMeta].getIcon(); + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aOreDictName.equals(OreDictNames.craftingLensWhite.toString())) { + GT_Values.RA.addLaserEngraverRecipe(new ItemStack(this, 1, 7), GT_Utility.copyAmount(0L, new Object[]{aStack}), new ItemStack(this, 1, 6), 50, 16); + GT_Values.RA.addLaserEngraverRecipe(new ItemStack(this, 1, 15), GT_Utility.copyAmount(0L, new Object[]{aStack}), new ItemStack(this, 1, 14), 50, 16); + } } - return null; - } - - public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) - { - return world.getBlockMetadata(x, y, z) % 8 < 3; - } - - public int damageDropped(int par1) - { - return par1 % 8 == 0 ? par1 + 1 : par1; - } - - public int getDamageValue(World par1World, int par2, int par3, int par4) - { - return par1World.getBlockMetadata(par2, par3, par4); - } - - public int quantityDropped(Random par1Random) - { - return 1; - } - - public Item getItemDropped(int par1, Random par2Random, int par3) - { - return Item.getItemFromBlock(this); - } - - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister aIconRegister) {} - - @SideOnly(Side.CLIENT) - public void getSubBlocks(Item aItem, CreativeTabs par2CreativeTabs, List aList) - { - for (int i = 0; i < 16; i++) { - aList.add(new ItemStack(aItem, 1, i)); + + public String getHarvestTool(int aMeta) { + return "pickaxe"; + } + + public int getHarvestLevel(int aMeta) { + return 1; + } + + public float getBlockHardness(World aWorld, int aX, int aY, int aZ) { + return this.blockHardness = Blocks.stone.getBlockHardness(aWorld, aX, aY, aZ) * 3.0F; + } + + public String getUnlocalizedName() { + return this.mUnlocalizedName; + } + + public String getLocalizedName() { + return StatCollector.translateToLocal(this.mUnlocalizedName + ".name"); + } + + public boolean canBeReplacedByLeaves(IBlockAccess aWorld, int aX, int aY, int aZ) { + return false; + } + + public boolean isNormalCube(IBlockAccess aWorld, int aX, int aY, int aZ) { + return true; + } + + public boolean renderAsNormalBlock() { + return true; + } + + public boolean isOpaqueCube() { + return true; + } + + public IIcon getIcon(int aSide, int aMeta) { + if ((aMeta >= 0) && (aMeta < 16)) { + return gregtech.api.enums.Textures.BlockIcons.GRANITES[aMeta].getIcon(); + } + return null; + } + + public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) { + return world.getBlockMetadata(x, y, z) % 8 < 3; + } + + public int damageDropped(int par1) { + return par1 % 8 == 0 ? par1 + 1 : par1; + } + + public int getDamageValue(World par1World, int par2, int par3, int par4) { + return par1World.getBlockMetadata(par2, par3, par4); + } + + public int quantityDropped(Random par1Random) { + return 1; + } + + public Item getItemDropped(int par1, Random par2Random, int par3) { + return Item.getItemFromBlock(this); + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister aIconRegister) { + } + + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item aItem, CreativeTabs par2CreativeTabs, List aList) { + for (int i = 0; i < 16; i++) { + aList.add(new ItemStack(aItem, 1, i)); + } } - } } diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Casings1.java b/src/main/java/gregtech/common/blocks/GT_Item_Casings1.java index 634222e8..a0212470 100644 --- a/src/main/java/gregtech/common/blocks/GT_Item_Casings1.java +++ b/src/main/java/gregtech/common/blocks/GT_Item_Casings1.java @@ -1,29 +1,28 @@ package gregtech.common.blocks; -import java.util.List; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import java.util.List; + public class GT_Item_Casings1 - extends GT_Item_Casings_Abstract -{ - public GT_Item_Casings1(Block par1) - { - super(par1); - } - - public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) - { - super.addInformation(aStack, aPlayer, aList, aF3_H); - switch (getDamage(aStack)) - { - case 12: - aList.add(this.mCoil01Tooltip); break; - case 13: - aList.add(this.mCoil02Tooltip); break; - case 14: - aList.add(this.mCoil03Tooltip); + extends GT_Item_Casings_Abstract { + public GT_Item_Casings1(Block par1) { + super(par1); + } + + public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) { + super.addInformation(aStack, aPlayer, aList, aF3_H); + switch (getDamage(aStack)) { + case 12: + aList.add(this.mCoil01Tooltip); + break; + case 13: + aList.add(this.mCoil02Tooltip); + break; + case 14: + aList.add(this.mCoil03Tooltip); + } } - } } diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Casings2.java b/src/main/java/gregtech/common/blocks/GT_Item_Casings2.java index a1b7f3e6..3fc89b7d 100644 --- a/src/main/java/gregtech/common/blocks/GT_Item_Casings2.java +++ b/src/main/java/gregtech/common/blocks/GT_Item_Casings2.java @@ -1,25 +1,22 @@ package gregtech.common.blocks; -import java.util.List; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import java.util.List; + public class GT_Item_Casings2 - extends GT_Item_Casings_Abstract -{ - public GT_Item_Casings2(Block par1) - { - super(par1); - } - - public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) - { - super.addInformation(aStack, aPlayer, aList, aF3_H); - switch (getDamage(aStack)) - { - case 8: - aList.add(this.mBlastProofTooltip); + extends GT_Item_Casings_Abstract { + public GT_Item_Casings2(Block par1) { + super(par1); + } + + public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) { + super.addInformation(aStack, aPlayer, aList, aF3_H); + switch (getDamage(aStack)) { + case 8: + aList.add(this.mBlastProofTooltip); + } } - } } diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Casings3.java b/src/main/java/gregtech/common/blocks/GT_Item_Casings3.java index e27214ff..71faf83f 100644 --- a/src/main/java/gregtech/common/blocks/GT_Item_Casings3.java +++ b/src/main/java/gregtech/common/blocks/GT_Item_Casings3.java @@ -3,10 +3,8 @@ package gregtech.common.blocks; import net.minecraft.block.Block; public class GT_Item_Casings3 - extends GT_Item_Casings_Abstract -{ - public GT_Item_Casings3(Block par1) - { - super(par1); - } + extends GT_Item_Casings_Abstract { + public GT_Item_Casings3(Block par1) { + super(par1); + } } diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Casings4.java b/src/main/java/gregtech/common/blocks/GT_Item_Casings4.java index 5c9e2fce..33447673 100644 --- a/src/main/java/gregtech/common/blocks/GT_Item_Casings4.java +++ b/src/main/java/gregtech/common/blocks/GT_Item_Casings4.java @@ -3,10 +3,8 @@ package gregtech.common.blocks; import net.minecraft.block.Block; public class GT_Item_Casings4 - extends GT_Item_Casings_Abstract -{ - public GT_Item_Casings4(Block par1) - { - super(par1); - } + extends GT_Item_Casings_Abstract { + public GT_Item_Casings4(Block par1) { + super(par1); + } } diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java b/src/main/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java index 14126604..0ff5b904 100644 --- a/src/main/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java +++ b/src/main/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java @@ -2,44 +2,39 @@ package gregtech.common.blocks; import gregtech.api.GregTech_API; import gregtech.api.util.GT_LanguageManager; -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 java.util.List; + public abstract class GT_Item_Casings_Abstract - extends ItemBlock -{ - public GT_Item_Casings_Abstract(Block par1) - { - super(par1); - setMaxDamage(0); - setHasSubtypes(true); - setCreativeTab(GregTech_API.TAB_GREGTECH_MATERIALS); - } - - public int getMetadata(int aMeta) - { - return aMeta; - } - - protected final String mNoMobsToolTip = GT_LanguageManager.addStringLocalization("gt.nomobspawnsonthisblock", "Mobs cannot Spawn on this Block"); - protected final String mNoTileEntityToolTip = GT_LanguageManager.addStringLocalization("gt.notileentityinthisblock", "This is NOT a TileEntity!"); - protected final String mCoil01Tooltip = GT_LanguageManager.addStringLocalization("gt.coil01tooltip", "Base Heating Capacity = 1800 Kelvin"); - protected final String mCoil02Tooltip = GT_LanguageManager.addStringLocalization("gt.coil02tooltip", "Base Heating Capacity = 2700 Kelvin"); - protected final String mCoil03Tooltip = GT_LanguageManager.addStringLocalization("gt.coil03tooltip", "Base Heating Capacity = 3600 Kelvin"); - protected final String mBlastProofTooltip = GT_LanguageManager.addStringLocalization("gt.blastprooftooltip", "This Block is Blast Proof"); - - public String getUnlocalizedName(ItemStack aStack) - { - return this.field_150939_a.getUnlocalizedName() + "." + getDamage(aStack); - } - - public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) - { - super.addInformation(aStack, aPlayer, aList, aF3_H); - aList.add(this.mNoMobsToolTip); - aList.add(this.mNoTileEntityToolTip); - } + extends ItemBlock { + protected final String mNoMobsToolTip = GT_LanguageManager.addStringLocalization("gt.nomobspawnsonthisblock", "Mobs cannot Spawn on this Block"); + protected final String mNoTileEntityToolTip = GT_LanguageManager.addStringLocalization("gt.notileentityinthisblock", "This is NOT a TileEntity!"); + protected final String mCoil01Tooltip = GT_LanguageManager.addStringLocalization("gt.coil01tooltip", "Base Heating Capacity = 1800 Kelvin"); + protected final String mCoil02Tooltip = GT_LanguageManager.addStringLocalization("gt.coil02tooltip", "Base Heating Capacity = 2700 Kelvin"); + protected final String mCoil03Tooltip = GT_LanguageManager.addStringLocalization("gt.coil03tooltip", "Base Heating Capacity = 3600 Kelvin"); + protected final String mBlastProofTooltip = GT_LanguageManager.addStringLocalization("gt.blastprooftooltip", "This Block is Blast Proof"); + public GT_Item_Casings_Abstract(Block par1) { + super(par1); + setMaxDamage(0); + setHasSubtypes(true); + setCreativeTab(GregTech_API.TAB_GREGTECH_MATERIALS); + } + + public int getMetadata(int aMeta) { + return aMeta; + } + + public String getUnlocalizedName(ItemStack aStack) { + return this.field_150939_a.getUnlocalizedName() + "." + getDamage(aStack); + } + + public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) { + super.addInformation(aStack, aPlayer, aList, aF3_H); + aList.add(this.mNoMobsToolTip); + aList.add(this.mNoTileEntityToolTip); + } } diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Concretes.java b/src/main/java/gregtech/common/blocks/GT_Item_Concretes.java index 7f4d9619..1c447ceb 100644 --- a/src/main/java/gregtech/common/blocks/GT_Item_Concretes.java +++ b/src/main/java/gregtech/common/blocks/GT_Item_Concretes.java @@ -1,24 +1,22 @@ package gregtech.common.blocks; import gregtech.api.util.GT_LanguageManager; -import java.util.List; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import java.util.List; + public class GT_Item_Concretes - extends GT_Item_Stones_Abstract -{ - public GT_Item_Concretes(Block par1) - { - super(par1); - } - - private final String mRunFasterToolTip = GT_LanguageManager.addStringLocalization("gt.runfastertooltip", "You can walk faster on this Block"); - - public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) - { - super.addInformation(aStack, aPlayer, aList, aF3_H); - aList.add(this.mRunFasterToolTip); - } + extends GT_Item_Stones_Abstract { + private final String mRunFasterToolTip = GT_LanguageManager.addStringLocalization("gt.runfastertooltip", "You can walk faster on this Block"); + + public GT_Item_Concretes(Block par1) { + super(par1); + } + + public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) { + super.addInformation(aStack, aPlayer, aList, aF3_H); + aList.add(this.mRunFasterToolTip); + } } diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Granites.java b/src/main/java/gregtech/common/blocks/GT_Item_Granites.java index 57244ea7..246e58f7 100644 --- a/src/main/java/gregtech/common/blocks/GT_Item_Granites.java +++ b/src/main/java/gregtech/common/blocks/GT_Item_Granites.java @@ -3,10 +3,8 @@ package gregtech.common.blocks; import net.minecraft.block.Block; public class GT_Item_Granites - extends GT_Item_Stones_Abstract -{ - public GT_Item_Granites(Block par1) - { - super(par1); - } + extends GT_Item_Stones_Abstract { + public GT_Item_Granites(Block par1) { + super(par1); + } } diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Machines.java b/src/main/java/gregtech/common/blocks/GT_Item_Machines.java index 0f7c4655..e03cabe7 100644 --- a/src/main/java/gregtech/common/blocks/GT_Item_Machines.java +++ b/src/main/java/gregtech/common/blocks/GT_Item_Machines.java @@ -2,13 +2,11 @@ package gregtech.common.blocks; import gregtech.api.GregTech_API; import gregtech.api.enums.GT_Values; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.util.GT_ItsNotMyFaultException; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_Utility; -import java.util.List; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemBlock; @@ -18,149 +16,131 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; +import java.util.List; + public class GT_Item_Machines - extends ItemBlock -{ - public GT_Item_Machines(Block par1) - { - super(par1); - setMaxDamage(0); - setHasSubtypes(true); - setCreativeTab(GregTech_API.TAB_GREGTECH); - } - - public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean par4) - { - try - { - int tDamage = getDamage(aStack); - if ((tDamage <= 0) || (tDamage >= GregTech_API.METATILEENTITIES.length)) { - return; - } - if (tDamage == 0) - { - aList.add("WARNING, THE EXISTENCE OF THIS ITEM IS A BUG"); - aList.add("IF YOU GOT IT IN SURVIVAL THEN PLEASE REPORT IT"); - } - else - { - TileEntity temp = GregTech_API.sBlockMachines.createTileEntity(aPlayer == null ? GT_Values.DW : aPlayer.worldObj, GregTech_API.METATILEENTITIES[tDamage] == null ? 0 : GregTech_API.METATILEENTITIES[tDamage].getTileEntityBaseType()); - if (temp != null) - { - temp.setWorldObj(aPlayer == null ? GT_Values.DW : aPlayer.worldObj);temp.xCoord = 0;temp.yCoord = 0;temp.zCoord = 0; - if ((temp instanceof IGregTechTileEntity)) - { - IGregTechTileEntity tTileEntity = (IGregTechTileEntity)temp; - tTileEntity.setInitialValuesAsNBT(new NBTTagCompound(), (short)tDamage); - if (tTileEntity.getDescription() != null) - { - int i = 0; - for (String tDescription : tTileEntity.getDescription()) { - if (GT_Utility.isStringValid(tDescription)) { - aList.add(GT_LanguageManager.addStringLocalization("TileEntity_DESCRIPTION_" + tDamage + "_Index_" + i++, tDescription, !GregTech_API.sPostloadFinished)); + extends ItemBlock { + public GT_Item_Machines(Block par1) { + super(par1); + setMaxDamage(0); + setHasSubtypes(true); + setCreativeTab(GregTech_API.TAB_GREGTECH); + } + + public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean par4) { + try { + int tDamage = getDamage(aStack); + if ((tDamage <= 0) || (tDamage >= GregTech_API.METATILEENTITIES.length)) { + return; + } + if (tDamage == 0) { + aList.add("WARNING, THE EXISTENCE OF THIS ITEM IS A BUG"); + aList.add("IF YOU GOT IT IN SURVIVAL THEN PLEASE REPORT IT"); + } else { + TileEntity temp = GregTech_API.sBlockMachines.createTileEntity(aPlayer == null ? GT_Values.DW : aPlayer.worldObj, GregTech_API.METATILEENTITIES[tDamage] == null ? 0 : GregTech_API.METATILEENTITIES[tDamage].getTileEntityBaseType()); + if (temp != null) { + temp.setWorldObj(aPlayer == null ? GT_Values.DW : aPlayer.worldObj); + temp.xCoord = 0; + temp.yCoord = 0; + temp.zCoord = 0; + if ((temp instanceof IGregTechTileEntity)) { + IGregTechTileEntity tTileEntity = (IGregTechTileEntity) temp; + tTileEntity.setInitialValuesAsNBT(new NBTTagCompound(), (short) tDamage); + if (tTileEntity.getDescription() != null) { + int i = 0; + for (String tDescription : tTileEntity.getDescription()) { + if (GT_Utility.isStringValid(tDescription)) { + aList.add(GT_LanguageManager.addStringLocalization("TileEntity_DESCRIPTION_" + tDamage + "_Index_" + i++, tDescription, !GregTech_API.sPostloadFinished)); + } + } + } + if (tTileEntity.getEUCapacity() > 0L) { + if (tTileEntity.getInputVoltage() > 0L) { + aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_IN", "Voltage IN: ", !GregTech_API.sPostloadFinished) + EnumChatFormatting.GREEN + tTileEntity.getInputVoltage() + " (" + GT_Values.VN[GT_Utility.getTier(tTileEntity.getInputVoltage())] + ")" + EnumChatFormatting.GRAY); + } + if (tTileEntity.getOutputVoltage() > 0L) { + aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_OUT", "Voltage OUT: ", !GregTech_API.sPostloadFinished) + EnumChatFormatting.GREEN + tTileEntity.getOutputVoltage() + " (" + GT_Values.VN[GT_Utility.getTier(tTileEntity.getOutputVoltage())] + ")" + EnumChatFormatting.GRAY); + } + if (tTileEntity.getOutputAmperage() > 1L) { + aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_AMOUNT", "Amperage: ", !GregTech_API.sPostloadFinished) + EnumChatFormatting.YELLOW + tTileEntity.getOutputAmperage() + EnumChatFormatting.GRAY); + } + aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_STORE", "Capacity: ", !GregTech_API.sPostloadFinished) + EnumChatFormatting.BLUE + tTileEntity.getEUCapacity() + EnumChatFormatting.GRAY); + } + } } - } } - if (tTileEntity.getEUCapacity() > 0L) - { - if (tTileEntity.getInputVoltage() > 0L) { - aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_IN", "Voltage IN: ", !GregTech_API.sPostloadFinished) + EnumChatFormatting.GREEN + tTileEntity.getInputVoltage() + " (" + GT_Values.VN[GT_Utility.getTier(tTileEntity.getInputVoltage())] + ")" + EnumChatFormatting.GRAY); - } - if (tTileEntity.getOutputVoltage() > 0L) { - aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_OUT", "Voltage OUT: ", !GregTech_API.sPostloadFinished) + EnumChatFormatting.GREEN + tTileEntity.getOutputVoltage() + " (" + GT_Values.VN[GT_Utility.getTier(tTileEntity.getOutputVoltage())] + ")" + EnumChatFormatting.GRAY); - } - if (tTileEntity.getOutputAmperage() > 1L) { - aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_AMOUNT", "Amperage: ", !GregTech_API.sPostloadFinished) + EnumChatFormatting.YELLOW + tTileEntity.getOutputAmperage() + EnumChatFormatting.GRAY); - } - aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_STORE", "Capacity: ", !GregTech_API.sPostloadFinished) + EnumChatFormatting.BLUE + tTileEntity.getEUCapacity() + EnumChatFormatting.GRAY); + NBTTagCompound aNBT = aStack.getTagCompound(); + if (aNBT != null) { + if (aNBT.getBoolean("mMuffler")) { + aList.add(GT_LanguageManager.addStringLocalization("GT_TileEntity_MUFFLER", "has Muffler Upgrade", !GregTech_API.sPostloadFinished)); + } + if (aNBT.getBoolean("mSteamConverter")) { + aList.add(GT_LanguageManager.addStringLocalization("GT_TileEntity_STEAMCONVERTER", "has Steam Upgrade", !GregTech_API.sPostloadFinished)); + } + int tAmount = 0; + if ((tAmount = aNBT.getByte("mSteamTanks")) > 0) { + aList.add(tAmount + " " + GT_LanguageManager.addStringLocalization("GT_TileEntity_STEAMTANKS", "Steam Tank Upgrades", !GregTech_API.sPostloadFinished)); + } } - } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); } - } - NBTTagCompound aNBT = aStack.getTagCompound(); - if (aNBT != null) - { - if (aNBT.getBoolean("mMuffler")) { - aList.add(GT_LanguageManager.addStringLocalization("GT_TileEntity_MUFFLER", "has Muffler Upgrade", !GregTech_API.sPostloadFinished)); - } - if (aNBT.getBoolean("mSteamConverter")) { - aList.add(GT_LanguageManager.addStringLocalization("GT_TileEntity_STEAMCONVERTER", "has Steam Upgrade", !GregTech_API.sPostloadFinished)); - } - int tAmount = 0; - if ((tAmount = aNBT.getByte("mSteamTanks")) > 0) { - aList.add(tAmount + " " + GT_LanguageManager.addStringLocalization("GT_TileEntity_STEAMTANKS", "Steam Tank Upgrades", !GregTech_API.sPostloadFinished)); - } - } } - catch (Throwable e) - { - e.printStackTrace(GT_Log.err); - } - } - - public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) - { - return false; - } - - public String getUnlocalizedName(ItemStack aStack) - { - short tDamage = (short)getDamage(aStack); - if ((tDamage < 0) || (tDamage >= GregTech_API.METATILEENTITIES.length)) { - return ""; - } - if (GregTech_API.METATILEENTITIES[tDamage] != null) { - return getUnlocalizedName() + "." + GregTech_API.METATILEENTITIES[tDamage].getMetaName(); - } - return ""; - } - - public void onCreated(ItemStack aStack, World aWorld, EntityPlayer aPlayer) - { - super.onCreated(aStack, aWorld, aPlayer); - short tDamage = (short)getDamage(aStack); - if ((tDamage < 0) || ((tDamage >= GregTech_API.METATILEENTITIES.length) && (GregTech_API.METATILEENTITIES[tDamage] != null))) { - GregTech_API.METATILEENTITIES[tDamage].onCreated(aStack, aWorld, aPlayer); - } - } - - public boolean placeBlockAt(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int side, float hitX, float hitY, float hitZ, int aMeta) - { - short tDamage = (short)getDamage(aStack); - if (tDamage > 0) - { - if (GregTech_API.METATILEENTITIES[tDamage] == null) { + + public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { return false; - } - int tMetaData = GregTech_API.METATILEENTITIES[tDamage].getTileEntityBaseType(); - if (!aWorld.setBlock(aX, aY, aZ, this.field_150939_a, tMetaData, 3)) { - return false; - } - if (aWorld.getBlock(aX, aY, aZ) != this.field_150939_a) { - throw new GT_ItsNotMyFaultException("Failed to place Block even though World.setBlock returned true. It COULD be MCPC/Bukkit causing that. In case you really have that installed, don't report this Bug to me, I don't know how to fix it."); - } - if (aWorld.getBlockMetadata(aX, aY, aZ) != tMetaData) { - throw new GT_ItsNotMyFaultException("Failed to set the MetaValue of the Block even though World.setBlock returned true. It COULD be MCPC/Bukkit causing that. In case you really have that installed, don't report this Bug to me, I don't know how to fix it."); - } - IGregTechTileEntity tTileEntity = (IGregTechTileEntity)aWorld.getTileEntity(aX, aY, aZ); - if (tTileEntity != null) - { - tTileEntity.setInitialValuesAsNBT(tTileEntity.isServerSide() ? aStack.getTagCompound() : null, tDamage); - if (aPlayer != null) { - tTileEntity.setOwnerName(aPlayer.getDisplayName()); + } + + public String getUnlocalizedName(ItemStack aStack) { + short tDamage = (short) getDamage(aStack); + if ((tDamage < 0) || (tDamage >= GregTech_API.METATILEENTITIES.length)) { + return ""; } - tTileEntity.getMetaTileEntity().initDefaultModes(aStack.getTagCompound()); - } + if (GregTech_API.METATILEENTITIES[tDamage] != null) { + return getUnlocalizedName() + "." + GregTech_API.METATILEENTITIES[tDamage].getMetaName(); + } + return ""; } - else if (!aWorld.setBlock(aX, aY, aZ, this.field_150939_a, tDamage, 3)) - { - return false; + + public void onCreated(ItemStack aStack, World aWorld, EntityPlayer aPlayer) { + super.onCreated(aStack, aWorld, aPlayer); + short tDamage = (short) getDamage(aStack); + if ((tDamage < 0) || ((tDamage >= GregTech_API.METATILEENTITIES.length) && (GregTech_API.METATILEENTITIES[tDamage] != null))) { + GregTech_API.METATILEENTITIES[tDamage].onCreated(aStack, aWorld, aPlayer); + } } - if (aWorld.getBlock(aX, aY, aZ) == this.field_150939_a) - { - this.field_150939_a.onBlockPlacedBy(aWorld, aX, aY, aZ, aPlayer, aStack); - this.field_150939_a.onPostBlockPlaced(aWorld, aX, aY, aZ, tDamage); + + public boolean placeBlockAt(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int side, float hitX, float hitY, float hitZ, int aMeta) { + short tDamage = (short) getDamage(aStack); + if (tDamage > 0) { + if (GregTech_API.METATILEENTITIES[tDamage] == null) { + return false; + } + int tMetaData = GregTech_API.METATILEENTITIES[tDamage].getTileEntityBaseType(); + if (!aWorld.setBlock(aX, aY, aZ, this.field_150939_a, tMetaData, 3)) { + return false; + } + if (aWorld.getBlock(aX, aY, aZ) != this.field_150939_a) { + throw new GT_ItsNotMyFaultException("Failed to place Block even though World.setBlock returned true. It COULD be MCPC/Bukkit causing that. In case you really have that installed, don't report this Bug to me, I don't know how to fix it."); + } + if (aWorld.getBlockMetadata(aX, aY, aZ) != tMetaData) { + throw new GT_ItsNotMyFaultException("Failed to set the MetaValue of the Block even though World.setBlock returned true. It COULD be MCPC/Bukkit causing that. In case you really have that installed, don't report this Bug to me, I don't know how to fix it."); + } + IGregTechTileEntity tTileEntity = (IGregTechTileEntity) aWorld.getTileEntity(aX, aY, aZ); + if (tTileEntity != null) { + tTileEntity.setInitialValuesAsNBT(tTileEntity.isServerSide() ? aStack.getTagCompound() : null, tDamage); + if (aPlayer != null) { + tTileEntity.setOwnerName(aPlayer.getDisplayName()); + } + tTileEntity.getMetaTileEntity().initDefaultModes(aStack.getTagCompound()); + } + } else if (!aWorld.setBlock(aX, aY, aZ, this.field_150939_a, tDamage, 3)) { + return false; + } + if (aWorld.getBlock(aX, aY, aZ) == this.field_150939_a) { + this.field_150939_a.onBlockPlacedBy(aWorld, aX, aY, aZ, aPlayer, aStack); + this.field_150939_a.onPostBlockPlaced(aWorld, aX, aY, aZ, tDamage); + } + return true; } - return true; - } } diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Ores.java b/src/main/java/gregtech/common/blocks/GT_Item_Ores.java index ab49dfdd..68b05180 100644 --- a/src/main/java/gregtech/common/blocks/GT_Item_Ores.java +++ b/src/main/java/gregtech/common/blocks/GT_Item_Ores.java @@ -8,47 +8,38 @@ import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class GT_Item_Ores - extends ItemBlock -{ - public GT_Item_Ores(Block par1) - { - super(par1); - setMaxDamage(0); - setHasSubtypes(true); - setCreativeTab(GregTech_API.TAB_GREGTECH_MATERIALS); - } - - public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) - { - return false; - } - - public String getUnlocalizedName(ItemStack aStack) - { - return this.field_150939_a.getUnlocalizedName() + "." + getDamage(aStack); - } - - public boolean placeBlockAt(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int side, float hitX, float hitY, float hitZ, int aMeta) - { - short tDamage = (short)getDamage(aStack); - if (tDamage > 0) - { - if (!aWorld.setBlock(aX, aY, aZ, this.field_150939_a, GT_TileEntity_Ores.getHarvestData(tDamage), 3)) { + extends ItemBlock { + public GT_Item_Ores(Block par1) { + super(par1); + setMaxDamage(0); + setHasSubtypes(true); + setCreativeTab(GregTech_API.TAB_GREGTECH_MATERIALS); + } + + public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { return false; - } - GT_TileEntity_Ores tTileEntity = (GT_TileEntity_Ores)aWorld.getTileEntity(aX, aY, aZ); - tTileEntity.mMetaData = tDamage; - tTileEntity.mNatural = false; } - else if (!aWorld.setBlock(aX, aY, aZ, this.field_150939_a, 0, 3)) - { - return false; + + public String getUnlocalizedName(ItemStack aStack) { + return this.field_150939_a.getUnlocalizedName() + "." + getDamage(aStack); } - if (aWorld.getBlock(aX, aY, aZ) == this.field_150939_a) - { - this.field_150939_a.onBlockPlacedBy(aWorld, aX, aY, aZ, aPlayer, aStack); - this.field_150939_a.onPostBlockPlaced(aWorld, aX, aY, aZ, tDamage); + + public boolean placeBlockAt(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int side, float hitX, float hitY, float hitZ, int aMeta) { + short tDamage = (short) getDamage(aStack); + if (tDamage > 0) { + if (!aWorld.setBlock(aX, aY, aZ, this.field_150939_a, GT_TileEntity_Ores.getHarvestData(tDamage), 3)) { + return false; + } + GT_TileEntity_Ores tTileEntity = (GT_TileEntity_Ores) aWorld.getTileEntity(aX, aY, aZ); + tTileEntity.mMetaData = tDamage; + tTileEntity.mNatural = false; + } else if (!aWorld.setBlock(aX, aY, aZ, this.field_150939_a, 0, 3)) { + return false; + } + if (aWorld.getBlock(aX, aY, aZ) == this.field_150939_a) { + this.field_150939_a.onBlockPlacedBy(aWorld, aX, aY, aZ, aPlayer, aStack); + this.field_150939_a.onPostBlockPlaced(aWorld, aX, aY, aZ, tDamage); + } + return true; } - return true; - } } diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Stones_Abstract.java b/src/main/java/gregtech/common/blocks/GT_Item_Stones_Abstract.java index 4b933609..6ca1a3bf 100644 --- a/src/main/java/gregtech/common/blocks/GT_Item_Stones_Abstract.java +++ b/src/main/java/gregtech/common/blocks/GT_Item_Stones_Abstract.java @@ -2,40 +2,36 @@ package gregtech.common.blocks; import gregtech.api.GregTech_API; import gregtech.api.util.GT_LanguageManager; -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 java.util.List; + public class GT_Item_Stones_Abstract - extends ItemBlock -{ - public GT_Item_Stones_Abstract(Block par1) - { - super(par1); - setMaxDamage(0); - setHasSubtypes(true); - setCreativeTab(GregTech_API.TAB_GREGTECH_MATERIALS); - } - - public String getUnlocalizedName(ItemStack aStack) - { - return this.field_150939_a.getUnlocalizedName() + "." + getDamage(aStack); - } - - public int getMetadata(int aMeta) - { - return aMeta; - } - - private final String mNoMobsToolTip = GT_LanguageManager.addStringLocalization("gt.nomobspawnsonthisblock", "Mobs cannot Spawn on this Block"); - - public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) - { - super.addInformation(aStack, aPlayer, aList, aF3_H); - if (aStack.getItemDamage() % 8 >= 3) { - aList.add(this.mNoMobsToolTip); + extends ItemBlock { + private final String mNoMobsToolTip = GT_LanguageManager.addStringLocalization("gt.nomobspawnsonthisblock", "Mobs cannot Spawn on this Block"); + + public GT_Item_Stones_Abstract(Block par1) { + super(par1); + setMaxDamage(0); + setHasSubtypes(true); + setCreativeTab(GregTech_API.TAB_GREGTECH_MATERIALS); + } + + public String getUnlocalizedName(ItemStack aStack) { + return this.field_150939_a.getUnlocalizedName() + "." + getDamage(aStack); + } + + public int getMetadata(int aMeta) { + return aMeta; + } + + public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) { + super.addInformation(aStack, aPlayer, aList, aF3_H); + if (aStack.getItemDamage() % 8 >= 3) { + aList.add(this.mNoMobsToolTip); + } } - } } diff --git a/src/main/java/gregtech/common/blocks/GT_Material_Casings.java b/src/main/java/gregtech/common/blocks/GT_Material_Casings.java index f2df366a..211fbdd6 100644 --- a/src/main/java/gregtech/common/blocks/GT_Material_Casings.java +++ b/src/main/java/gregtech/common/blocks/GT_Material_Casings.java @@ -4,18 +4,15 @@ import net.minecraft.block.material.MapColor; import net.minecraft.block.material.Material; public class GT_Material_Casings - extends Material -{ - public static final Material INSTANCE = new GT_Material_Casings(); - - private GT_Material_Casings() - { - super(MapColor.ironColor); - setRequiresTool(); - } - - public boolean isOpaque() - { - return false; - } + extends Material { + public static final Material INSTANCE = new GT_Material_Casings(); + + private GT_Material_Casings() { + super(MapColor.ironColor); + setRequiresTool(); + } + + public boolean isOpaque() { + return false; + } } diff --git a/src/main/java/gregtech/common/blocks/GT_Material_Machines.java b/src/main/java/gregtech/common/blocks/GT_Material_Machines.java index 5abe245c..ed47f4f9 100644 --- a/src/main/java/gregtech/common/blocks/GT_Material_Machines.java +++ b/src/main/java/gregtech/common/blocks/GT_Material_Machines.java @@ -4,18 +4,15 @@ import net.minecraft.block.material.MapColor; import net.minecraft.block.material.Material; public class GT_Material_Machines - extends Material -{ - public GT_Material_Machines() - { - super(MapColor.ironColor); - setRequiresTool(); - setImmovableMobility(); - setAdventureModeExempt(); - } - - public boolean isOpaque() - { - return false; - } + extends Material { + public GT_Material_Machines() { + super(MapColor.ironColor); + setRequiresTool(); + setImmovableMobility(); + setAdventureModeExempt(); + } + + public boolean isOpaque() { + return false; + } } diff --git a/src/main/java/gregtech/common/blocks/GT_Packet_Ores.java b/src/main/java/gregtech/common/blocks/GT_Packet_Ores.java index 4dbc01fd..04ed5b0f 100644 --- a/src/main/java/gregtech/common/blocks/GT_Packet_Ores.java +++ b/src/main/java/gregtech/common/blocks/GT_Packet_Ores.java @@ -9,60 +9,52 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class GT_Packet_Ores - extends GT_Packet -{ - private int mX; - private int mZ; - private short mY; - private short mMetaData; - - public GT_Packet_Ores() - { - super(true); - } - - public GT_Packet_Ores(int aX, short aY, int aZ, short aMetaData) - { - super(false); - this.mX = aX; - this.mY = aY; - this.mZ = aZ; - this.mMetaData = aMetaData; - } - - public byte[] encode() - { - ByteArrayDataOutput tOut = ByteStreams.newDataOutput(12); - - tOut.writeInt(this.mX); - tOut.writeShort(this.mY); - tOut.writeInt(this.mZ); - tOut.writeShort(this.mMetaData); - - return tOut.toByteArray(); - } - - public GT_Packet decode(ByteArrayDataInput aData) - { - return new GT_Packet_Ores(aData.readInt(), aData.readShort(), aData.readInt(), aData.readShort()); - } - - public void process(IBlockAccess aWorld) - { - if (aWorld != null) - { - TileEntity tTileEntity = aWorld.getTileEntity(this.mX, this.mY, this.mZ); - if ((tTileEntity instanceof GT_TileEntity_Ores)) { - ((GT_TileEntity_Ores)tTileEntity).mMetaData = this.mMetaData; - } - if (((aWorld instanceof World)) && (((World)aWorld).isRemote)) { - ((World)aWorld).markBlockForUpdate(this.mX, this.mY, this.mZ); - } + extends GT_Packet { + private int mX; + private int mZ; + private short mY; + private short mMetaData; + + public GT_Packet_Ores() { + super(true); + } + + public GT_Packet_Ores(int aX, short aY, int aZ, short aMetaData) { + super(false); + this.mX = aX; + this.mY = aY; + this.mZ = aZ; + this.mMetaData = aMetaData; + } + + public byte[] encode() { + ByteArrayDataOutput tOut = ByteStreams.newDataOutput(12); + + tOut.writeInt(this.mX); + tOut.writeShort(this.mY); + tOut.writeInt(this.mZ); + tOut.writeShort(this.mMetaData); + + return tOut.toByteArray(); + } + + public GT_Packet decode(ByteArrayDataInput aData) { + return new GT_Packet_Ores(aData.readInt(), aData.readShort(), aData.readInt(), aData.readShort()); + } + + public void process(IBlockAccess aWorld) { + if (aWorld != null) { + TileEntity tTileEntity = aWorld.getTileEntity(this.mX, this.mY, this.mZ); + if ((tTileEntity instanceof GT_TileEntity_Ores)) { + ((GT_TileEntity_Ores) tTileEntity).mMetaData = this.mMetaData; + } + if (((aWorld instanceof World)) && (((World) aWorld).isRemote)) { + ((World) aWorld).markBlockForUpdate(this.mX, this.mY, this.mZ); + } + } + } + + public byte getPacketID() { + return 3; } - } - - public byte getPacketID() - { - return 3; - } } diff --git a/src/main/java/gregtech/common/blocks/GT_TileEntity_Ores.java b/src/main/java/gregtech/common/blocks/GT_TileEntity_Ores.java index e032f781..c8706776 100644 --- a/src/main/java/gregtech/common/blocks/GT_TileEntity_Ores.java +++ b/src/main/java/gregtech/common/blocks/GT_TileEntity_Ores.java @@ -5,18 +5,12 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.ITexturedTileEntity; -import gregtech.api.net.IGT_NetworkHandler; import gregtech.api.objects.GT_CopiedBlockTexture; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; - -import java.util.ArrayList; -import java.util.Random; - import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; @@ -25,223 +19,204 @@ import net.minecraft.network.Packet; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class GT_TileEntity_Ores - extends TileEntity - implements ITexturedTileEntity -{ - private static final ITexture[] mStoneTextures = { new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.netherrack, 0, 0), new GT_CopiedBlockTexture(Blocks.end_stone, 0, 0), new GT_RenderedTexture(Textures.BlockIcons.GRANITE_BLACK_STONE), new GT_RenderedTexture(Textures.BlockIcons.GRANITE_RED_STONE), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0) }; - public short mMetaData = 0; - public boolean mNatural = false; - public boolean mBlocked = true; - - public void readFromNBT(NBTTagCompound aNBT) - { - super.readFromNBT(aNBT); - this.mMetaData = aNBT.getShort("m"); - this.mNatural = aNBT.getBoolean("n"); - } - - public void writeToNBT(NBTTagCompound aNBT) - { - super.writeToNBT(aNBT); - aNBT.setShort("m", this.mMetaData); - aNBT.setBoolean("n", this.mNatural); - } - - public void onUpdated() - { - if ((!this.worldObj.isRemote) && (this.mBlocked)) - { - this.mBlocked = false; - GT_Values.NW.sendPacketToAllPlayersInRange(this.worldObj, new GT_Packet_Ores(this.xCoord, (short)this.yCoord, this.zCoord, this.mMetaData), this.xCoord, this.zCoord); - } - } - - public Packet getDescriptionPacket() - { - if (!this.worldObj.isRemote) { - if ((this.mBlocked == (GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord + 1, this.yCoord, this.zCoord)) && (GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord - 1, this.yCoord, this.zCoord)) && (GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord, this.yCoord + 1, this.zCoord)) && (GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord, this.yCoord - 1, this.zCoord)) && (GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord, this.yCoord, this.zCoord + 1)) && (GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord, this.yCoord, this.zCoord - 1)) ? 1 : 0) == 0) { - GT_Values.NW.sendPacketToAllPlayersInRange(this.worldObj, new GT_Packet_Ores(this.xCoord, (short)this.yCoord, this.zCoord, this.mMetaData), this.xCoord, this.zCoord); - } - } - return null; - } - - public static byte getHarvestData(short aMetaData) - { - Materials aMaterial = GregTech_API.sGeneratedMaterials[(aMetaData % 1000)]; - return aMaterial == null ? 0 : (byte)Math.max((aMetaData % 16000 / 1000 == 3) || (aMetaData % 16000 / 1000 == 4) ? 3 : 0, Math.min(7, aMaterial.mToolQuality - (aMetaData < 16000 ? 0 : 1))); - } - - public void overrideOreBlockMaterial(Block aOverridingStoneBlock, byte aOverridingStoneMeta) - { - this.mMetaData = ((short)(int)(this.mMetaData % 1000L + this.mMetaData / 16000L * 16000L)); - if (aOverridingStoneBlock.isReplaceableOreGen(this.worldObj, this.xCoord, this.yCoord, this.zCoord, Blocks.netherrack)) { - this.mMetaData = ((short)(this.mMetaData + 1000)); - } else if (aOverridingStoneBlock.isReplaceableOreGen(this.worldObj, this.xCoord, this.yCoord, this.zCoord, Blocks.end_stone)) { - this.mMetaData = ((short)(this.mMetaData + 2000)); - } else if (aOverridingStoneBlock.isReplaceableOreGen(this.worldObj, this.xCoord, this.yCoord, this.zCoord, GregTech_API.sBlockGranites)) { - if (aOverridingStoneBlock == GregTech_API.sBlockGranites) - { - if (aOverridingStoneMeta < 8) { - this.mMetaData = ((short)(this.mMetaData + 3000)); - } else { - this.mMetaData = ((short)(this.mMetaData + 4000)); - } - } - else { - this.mMetaData = ((short)(this.mMetaData + 3000)); - } - } - this.worldObj.setBlockMetadataWithNotify(this.xCoord, this.yCoord, this.zCoord, getHarvestData(this.mMetaData), 0); - } - - public static boolean setOreBlock(World aWorld, int aX, int aY, int aZ, int aMetaData) - { - aY = Math.min(aWorld.getActualHeight(), Math.max(aY, 1)); - Block tBlock = aWorld.getBlock(aX, aY, aZ); - if ((aMetaData > 0) && (tBlock != Blocks.air)) - { - if (tBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.netherrack)) { - aMetaData += 1000; - } else if (tBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.end_stone)) { - aMetaData += 2000; - } else if (tBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, GregTech_API.sBlockGranites)) - { - if (tBlock == GregTech_API.sBlockGranites) - { - if (aWorld.getBlockMetadata(aX, aY, aZ) < 8) { - aMetaData += 3000; - } else { - aMetaData += 4000; - } - } - else { - aMetaData += 3000; - } - } - else if (!tBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.stone)) { - return false; - } - aWorld.setBlock(aX, aY, aZ, GregTech_API.sBlockOres1, getHarvestData((short)aMetaData), 0); - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity instanceof GT_TileEntity_Ores)) - { - ((GT_TileEntity_Ores)tTileEntity).mMetaData = ((short)aMetaData); - ((GT_TileEntity_Ores)tTileEntity).mNatural = true; - } - return true; - } - return false; - } - - public short getMetaData() - { - return this.mMetaData; - } - - public boolean canUpdate() - { - return false; - } - - public ArrayList getDrops(int aFortune) - { - ArrayList rList = new ArrayList(); - if (this.mMetaData <= 0) - { - rList.add(new ItemStack(Blocks.cobblestone, 1, 0)); - return rList; - } - if (this.mMetaData < 16000) - { - rList.add(new ItemStack(GregTech_API.sBlockOres1, 1, this.mMetaData)); - return rList; - } - Materials aMaterial = GregTech_API.sGeneratedMaterials[(this.mMetaData % 1000)]; - if (!this.mNatural) { - aFortune = 0; - } - if (aMaterial != null) - { - Random tRandom = new Random(this.xCoord ^ this.yCoord ^ this.zCoord); - ArrayList tSelector = new ArrayList(); - +import java.util.ArrayList; +import java.util.Random; - ItemStack tStack = GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L), 1L); - if (tStack != null) { - for (int i = 0; i < 1; i++) { - tSelector.add(tStack); - } - } - tStack = GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L), 1L); - if (tStack != null) { - for (int i = 0; i < 2; i++) { - tSelector.add(tStack); - } - } - tStack = GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L); - if (tStack != null) { - for (int i = 0; i < 12; i++) { - tSelector.add(tStack); - } - } - tStack = GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1L), 1L); - if (tStack != null) { - for (int i = 0; i < 5; i++) { - tSelector.add(tStack); - } - } - tStack = GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1L); - if (tStack != null) { - for (int i = 0; i < 10; i++) { - tSelector.add(tStack); - } - } - tStack = GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial, 1L), 1L); - if (tStack != null) { - for (int i = 0; i < 5; i++) { - tSelector.add(tStack); - } - } - tStack = GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial, 1L); - if (tStack != null) { - for (int i = 0; i < 10; i++) { - tSelector.add(tStack); - } - } - if (tSelector.size() > 0) - { - int i = 0; - for (int j = Math.max(1, aMaterial.mOreMultiplier + (aFortune > 0 ? tRandom.nextInt(1 + aFortune * aMaterial.mOreMultiplier) : 0) / 2); i < j; i++) { - rList.add(GT_Utility.copyAmount(1L, new Object[] { tSelector.get(tRandom.nextInt(tSelector.size())) })); - } - } - if (tRandom.nextInt(3 + aFortune) > 1) { - switch (this.mMetaData / 1000 % 16) - { - case 0: - rList.add(GT_OreDictUnificator.get(tRandom.nextInt(3) > 0 ? OrePrefixes.dustImpure : OrePrefixes.dust, Materials.Stone, 1L)); break; - case 1: - rList.add(GT_OreDictUnificator.get(tRandom.nextInt(3) > 0 ? OrePrefixes.dustImpure : OrePrefixes.dust, Materials.Netherrack, 1L)); break; - case 2: - rList.add(GT_OreDictUnificator.get(tRandom.nextInt(3) > 0 ? OrePrefixes.dustImpure : OrePrefixes.dust, Materials.Endstone, 1L)); break; - case 3: - rList.add(GT_OreDictUnificator.get(tRandom.nextInt(3) > 0 ? OrePrefixes.dustImpure : OrePrefixes.dust, Materials.GraniteBlack, 1L)); break; - case 4: - rList.add(GT_OreDictUnificator.get(tRandom.nextInt(3) > 0 ? OrePrefixes.dustImpure : OrePrefixes.dust, Materials.GraniteRed, 1L)); - } - } +public class GT_TileEntity_Ores + extends TileEntity + implements ITexturedTileEntity { + private static final ITexture[] mStoneTextures = {new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.netherrack, 0, 0), new GT_CopiedBlockTexture(Blocks.end_stone, 0, 0), new GT_RenderedTexture(Textures.BlockIcons.GRANITE_BLACK_STONE), new GT_RenderedTexture(Textures.BlockIcons.GRANITE_RED_STONE), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0)}; + public short mMetaData = 0; + public boolean mNatural = false; + public boolean mBlocked = true; + + public static byte getHarvestData(short aMetaData) { + Materials aMaterial = GregTech_API.sGeneratedMaterials[(aMetaData % 1000)]; + return aMaterial == null ? 0 : (byte) Math.max((aMetaData % 16000 / 1000 == 3) || (aMetaData % 16000 / 1000 == 4) ? 3 : 0, Math.min(7, aMaterial.mToolQuality - (aMetaData < 16000 ? 0 : 1))); } - return rList; - } - - public ITexture[] getTexture(byte aSide) - { - Materials aMaterial = GregTech_API.sGeneratedMaterials[(this.mMetaData % 1000)]; - if ((aMaterial != null) && (this.mMetaData < 32000)) { - return new ITexture[] { mStoneTextures[(this.mMetaData / 1000 % 16)], new GT_RenderedTexture(aMaterial.mIconSet.mTextures[this.mMetaData/16000 ==0 ? OrePrefixes.ore.mTextureIndex:OrePrefixes.oreSmall.mTextureIndex], aMaterial.mRGBa) }; + + public static boolean setOreBlock(World aWorld, int aX, int aY, int aZ, int aMetaData) { + aY = Math.min(aWorld.getActualHeight(), Math.max(aY, 1)); + Block tBlock = aWorld.getBlock(aX, aY, aZ); + if ((aMetaData > 0) && (tBlock != Blocks.air)) { + if (tBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.netherrack)) { + aMetaData += 1000; + } else if (tBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.end_stone)) { + aMetaData += 2000; + } else if (tBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, GregTech_API.sBlockGranites)) { + if (tBlock == GregTech_API.sBlockGranites) { + if (aWorld.getBlockMetadata(aX, aY, aZ) < 8) { + aMetaData += 3000; + } else { + aMetaData += 4000; + } + } else { + aMetaData += 3000; + } + } else if (!tBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.stone)) { + return false; + } + aWorld.setBlock(aX, aY, aZ, GregTech_API.sBlockOres1, getHarvestData((short) aMetaData), 0); + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity instanceof GT_TileEntity_Ores)) { + ((GT_TileEntity_Ores) tTileEntity).mMetaData = ((short) aMetaData); + ((GT_TileEntity_Ores) tTileEntity).mNatural = true; + } + return true; + } + return false; + } + + public void readFromNBT(NBTTagCompound aNBT) { + super.readFromNBT(aNBT); + this.mMetaData = aNBT.getShort("m"); + this.mNatural = aNBT.getBoolean("n"); + } + + public void writeToNBT(NBTTagCompound aNBT) { + super.writeToNBT(aNBT); + aNBT.setShort("m", this.mMetaData); + aNBT.setBoolean("n", this.mNatural); + } + + public void onUpdated() { + if ((!this.worldObj.isRemote) && (this.mBlocked)) { + this.mBlocked = false; + GT_Values.NW.sendPacketToAllPlayersInRange(this.worldObj, new GT_Packet_Ores(this.xCoord, (short) this.yCoord, this.zCoord, this.mMetaData), this.xCoord, this.zCoord); + } + } + + public Packet getDescriptionPacket() { + if (!this.worldObj.isRemote) { + if ((this.mBlocked == (GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord + 1, this.yCoord, this.zCoord)) && (GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord - 1, this.yCoord, this.zCoord)) && (GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord, this.yCoord + 1, this.zCoord)) && (GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord, this.yCoord - 1, this.zCoord)) && (GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord, this.yCoord, this.zCoord + 1)) && (GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord, this.yCoord, this.zCoord - 1)) ? 1 : 0) == 0) { + GT_Values.NW.sendPacketToAllPlayersInRange(this.worldObj, new GT_Packet_Ores(this.xCoord, (short) this.yCoord, this.zCoord, this.mMetaData), this.xCoord, this.zCoord); + } + } + return null; + } + + public void overrideOreBlockMaterial(Block aOverridingStoneBlock, byte aOverridingStoneMeta) { + this.mMetaData = ((short) (int) (this.mMetaData % 1000L + this.mMetaData / 16000L * 16000L)); + if (aOverridingStoneBlock.isReplaceableOreGen(this.worldObj, this.xCoord, this.yCoord, this.zCoord, Blocks.netherrack)) { + this.mMetaData = ((short) (this.mMetaData + 1000)); + } else if (aOverridingStoneBlock.isReplaceableOreGen(this.worldObj, this.xCoord, this.yCoord, this.zCoord, Blocks.end_stone)) { + this.mMetaData = ((short) (this.mMetaData + 2000)); + } else if (aOverridingStoneBlock.isReplaceableOreGen(this.worldObj, this.xCoord, this.yCoord, this.zCoord, GregTech_API.sBlockGranites)) { + if (aOverridingStoneBlock == GregTech_API.sBlockGranites) { + if (aOverridingStoneMeta < 8) { + this.mMetaData = ((short) (this.mMetaData + 3000)); + } else { + this.mMetaData = ((short) (this.mMetaData + 4000)); + } + } else { + this.mMetaData = ((short) (this.mMetaData + 3000)); + } + } + this.worldObj.setBlockMetadataWithNotify(this.xCoord, this.yCoord, this.zCoord, getHarvestData(this.mMetaData), 0); + } + + public short getMetaData() { + return this.mMetaData; + } + + public boolean canUpdate() { + return false; + } + + public ArrayList getDrops(int aFortune) { + ArrayList rList = new ArrayList(); + if (this.mMetaData <= 0) { + rList.add(new ItemStack(Blocks.cobblestone, 1, 0)); + return rList; + } + if (this.mMetaData < 16000) { + rList.add(new ItemStack(GregTech_API.sBlockOres1, 1, this.mMetaData)); + return rList; + } + Materials aMaterial = GregTech_API.sGeneratedMaterials[(this.mMetaData % 1000)]; + if (!this.mNatural) { + aFortune = 0; + } + if (aMaterial != null) { + Random tRandom = new Random(this.xCoord ^ this.yCoord ^ this.zCoord); + ArrayList tSelector = new ArrayList(); + + + ItemStack tStack = GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L), 1L); + if (tStack != null) { + for (int i = 0; i < 1; i++) { + tSelector.add(tStack); + } + } + tStack = GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L), 1L); + if (tStack != null) { + for (int i = 0; i < 2; i++) { + tSelector.add(tStack); + } + } + tStack = GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L); + if (tStack != null) { + for (int i = 0; i < 12; i++) { + tSelector.add(tStack); + } + } + tStack = GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1L), 1L); + if (tStack != null) { + for (int i = 0; i < 5; i++) { + tSelector.add(tStack); + } + } + tStack = GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1L); + if (tStack != null) { + for (int i = 0; i < 10; i++) { + tSelector.add(tStack); + } + } + tStack = GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial, 1L), 1L); + if (tStack != null) { + for (int i = 0; i < 5; i++) { + tSelector.add(tStack); + } + } + tStack = GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial, 1L); + if (tStack != null) { + for (int i = 0; i < 10; i++) { + tSelector.add(tStack); + } + } + if (tSelector.size() > 0) { + int i = 0; + for (int j = Math.max(1, aMaterial.mOreMultiplier + (aFortune > 0 ? tRandom.nextInt(1 + aFortune * aMaterial.mOreMultiplier) : 0) / 2); i < j; i++) { + rList.add(GT_Utility.copyAmount(1L, new Object[]{tSelector.get(tRandom.nextInt(tSelector.size()))})); + } + } + if (tRandom.nextInt(3 + aFortune) > 1) { + switch (this.mMetaData / 1000 % 16) { + case 0: + rList.add(GT_OreDictUnificator.get(tRandom.nextInt(3) > 0 ? OrePrefixes.dustImpure : OrePrefixes.dust, Materials.Stone, 1L)); + break; + case 1: + rList.add(GT_OreDictUnificator.get(tRandom.nextInt(3) > 0 ? OrePrefixes.dustImpure : OrePrefixes.dust, Materials.Netherrack, 1L)); + break; + case 2: + rList.add(GT_OreDictUnificator.get(tRandom.nextInt(3) > 0 ? OrePrefixes.dustImpure : OrePrefixes.dust, Materials.Endstone, 1L)); + break; + case 3: + rList.add(GT_OreDictUnificator.get(tRandom.nextInt(3) > 0 ? OrePrefixes.dustImpure : OrePrefixes.dust, Materials.GraniteBlack, 1L)); + break; + case 4: + rList.add(GT_OreDictUnificator.get(tRandom.nextInt(3) > 0 ? OrePrefixes.dustImpure : OrePrefixes.dust, Materials.GraniteRed, 1L)); + } + } + } + return rList; + } + + public ITexture[] getTexture(byte aSide) { + Materials aMaterial = GregTech_API.sGeneratedMaterials[(this.mMetaData % 1000)]; + if ((aMaterial != null) && (this.mMetaData < 32000)) { + return new ITexture[]{mStoneTextures[(this.mMetaData / 1000 % 16)], new GT_RenderedTexture(aMaterial.mIconSet.mTextures[this.mMetaData / 16000 == 0 ? OrePrefixes.ore.mTextureIndex : OrePrefixes.oreSmall.mTextureIndex], aMaterial.mRGBa)}; + } + return new ITexture[]{mStoneTextures[0], new GT_RenderedTexture(gregtech.api.enums.TextureSet.SET_NONE.mTextures[OrePrefixes.ore.mTextureIndex])}; } - return new ITexture[] { mStoneTextures[0], new GT_RenderedTexture(gregtech.api.enums.TextureSet.SET_NONE.mTextures[OrePrefixes.ore.mTextureIndex]) }; - } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Arm.java b/src/main/java/gregtech/common/covers/GT_Cover_Arm.java index 3212ce92..80f957e5 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Arm.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Arm.java @@ -9,104 +9,87 @@ import net.minecraft.tileentity.TileEntity; import net.minecraftforge.fluids.Fluid; public class GT_Cover_Arm - extends GT_CoverBehavior -{ - public final int mTickRate; - - public GT_Cover_Arm(int aTickRate) - { - this.mTickRate = aTickRate; - } - - public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) - { - if ((aCoverVariable == 0) || (((aTileEntity instanceof IMachineProgress)) && (!((IMachineProgress)aTileEntity).isAllowedToWork()))) { - return aCoverVariable; + extends GT_CoverBehavior { + public final int mTickRate; + + public GT_Cover_Arm(int aTickRate) { + this.mTickRate = aTickRate; } - TileEntity tTileEntity = aTileEntity.getTileEntityAtSide(aSide); - aTileEntity.decreaseStoredEnergyUnits(1L, true); - if (aTileEntity.getUniversalEnergyCapacity() >= 128L) - { - if (aTileEntity.isUniversalEnergyStored(256L)) { - aTileEntity.decreaseStoredEnergyUnits(4 * GT_Utility.moveOneItemStackIntoSlot(aCoverVariable > 0 ? aTileEntity : tTileEntity, aCoverVariable > 0 ? tTileEntity : aTileEntity, aCoverVariable > 0 ? aSide : GT_Utility.getOppositeSide(aSide), Math.abs(aCoverVariable) - 1, null, false, (byte)64, (byte)1, (byte)64, (byte)1), true); - } + + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + if ((aCoverVariable == 0) || (((aTileEntity instanceof IMachineProgress)) && (!((IMachineProgress) aTileEntity).isAllowedToWork()))) { + return aCoverVariable; + } + TileEntity tTileEntity = aTileEntity.getTileEntityAtSide(aSide); + aTileEntity.decreaseStoredEnergyUnits(1L, true); + if (aTileEntity.getUniversalEnergyCapacity() >= 128L) { + if (aTileEntity.isUniversalEnergyStored(256L)) { + aTileEntity.decreaseStoredEnergyUnits(4 * GT_Utility.moveOneItemStackIntoSlot(aCoverVariable > 0 ? aTileEntity : tTileEntity, aCoverVariable > 0 ? tTileEntity : aTileEntity, aCoverVariable > 0 ? aSide : GT_Utility.getOppositeSide(aSide), Math.abs(aCoverVariable) - 1, null, false, (byte) 64, (byte) 1, (byte) 64, (byte) 1), true); + } + } else { + GT_Utility.moveOneItemStackIntoSlot(aCoverVariable > 0 ? aTileEntity : tTileEntity, aCoverVariable > 0 ? tTileEntity : aTileEntity, aCoverVariable > 0 ? aSide : GT_Utility.getOppositeSide(aSide), Math.abs(aCoverVariable) - 1, null, false, (byte) 64, (byte) 1, (byte) 64, (byte) 1); + } + return aCoverVariable; } - else { - GT_Utility.moveOneItemStackIntoSlot(aCoverVariable > 0 ? aTileEntity : tTileEntity, aCoverVariable > 0 ? tTileEntity : aTileEntity, aCoverVariable > 0 ? aSide : GT_Utility.getOppositeSide(aSide), Math.abs(aCoverVariable) - 1, null, false, (byte)64, (byte)1, (byte)64, (byte)1); + + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + if (GT_Utility.getClickedFacingCoords(aSide, aX, aY, aZ)[0] >= 0.5F) { + aCoverVariable += 16; + } else { + aCoverVariable -= 16; + } + GT_Utility.sendChatToPlayer(aPlayer, (aCoverVariable > 0 ? "Puts out into adjacent Slot #" : "Grabs in for own Slot #") + (Math.abs(aCoverVariable) - 1)); + return aCoverVariable; } - return aCoverVariable; - } - - public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) - { - if (GT_Utility.getClickedFacingCoords(aSide, aX, aY, aZ)[0] >= 0.5F) { - aCoverVariable += 16; - } else { - aCoverVariable -= 16; + + public boolean onCoverRightclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + if (GT_Utility.getClickedFacingCoords(aSide, aX, aY, aZ)[0] >= 0.5F) { + aCoverVariable++; + } else { + aCoverVariable--; + } + GT_Utility.sendChatToPlayer(aPlayer, (aCoverVariable > 0 ? "Puts out into adjacent Slot #" : "Grabs in for own Slot #") + (Math.abs(aCoverVariable) - 1)); + aTileEntity.setCoverDataAtSide(aSide, aCoverVariable); + return true; } - GT_Utility.sendChatToPlayer(aPlayer, (aCoverVariable > 0 ? "Puts out into adjacent Slot #" : "Grabs in for own Slot #") + (Math.abs(aCoverVariable) - 1)); - return aCoverVariable; - } - - public boolean onCoverRightclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) - { - if (GT_Utility.getClickedFacingCoords(aSide, aX, aY, aZ)[0] >= 0.5F) { - aCoverVariable++; - } else { - aCoverVariable--; + + public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + public boolean alwaysLookConnected(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return this.mTickRate; } - GT_Utility.sendChatToPlayer(aPlayer, (aCoverVariable > 0 ? "Puts out into adjacent Slot #" : "Grabs in for own Slot #") + (Math.abs(aCoverVariable) - 1)); - aTileEntity.setCoverDataAtSide(aSide, aCoverVariable); - return true; - } - - public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public boolean alwaysLookConnected(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return this.mTickRate; - } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Blastproof.java b/src/main/java/gregtech/common/covers/GT_Cover_Blastproof.java index 8c92eb91..684ce9f3 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Blastproof.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Blastproof.java @@ -4,22 +4,18 @@ import gregtech.api.interfaces.tileentity.ICoverable; import gregtech.api.util.GT_CoverBehavior; public class GT_Cover_Blastproof - extends GT_CoverBehavior -{ - private final float mLevel; - - public GT_Cover_Blastproof(float aLevel) - { - this.mLevel = aLevel; - } - - public float getBlastProofLevel(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return this.mLevel; - } - - public boolean isSimpleCover() - { - return true; - } + extends GT_CoverBehavior { + private final float mLevel; + + public GT_Cover_Blastproof(float aLevel) { + this.mLevel = aLevel; + } + + public float getBlastProofLevel(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return this.mLevel; + } + + public boolean isSimpleCover() { + return true; + } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java b/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java index ee06b47f..ed53f298 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java @@ -8,78 +8,65 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.fluids.Fluid; public class GT_Cover_ControlsWork - extends GT_CoverBehavior -{ - public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) - { - if(aTileEntity instanceof IMachineProgress) - { - if((aInputRedstone > 0) == (aCoverVariable == 0) && aCoverVariable != 2) - ((IMachineProgress)aTileEntity).enableWorking(); - else - ((IMachineProgress)aTileEntity).disableWorking(); - ((IMachineProgress)aTileEntity).setWorkDataValue(aInputRedstone); + extends GT_CoverBehavior { + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + if (aTileEntity instanceof IMachineProgress) { + if ((aInputRedstone > 0) == (aCoverVariable == 0) && aCoverVariable != 2) + ((IMachineProgress) aTileEntity).enableWorking(); + else + ((IMachineProgress) aTileEntity).disableWorking(); + ((IMachineProgress) aTileEntity).setWorkDataValue(aInputRedstone); + } + return aCoverVariable; + } + + public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + public boolean onCoverRemoval(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, boolean aForced) { + if ((aTileEntity instanceof IMachineProgress)) { + ((IMachineProgress) aTileEntity).enableWorking(); + ((IMachineProgress) aTileEntity).setWorkDataValue((byte) 0); + } + return true; + } + + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + aCoverVariable = (aCoverVariable + 1) % 3; + if (aCoverVariable == 0) { + GT_Utility.sendChatToPlayer(aPlayer, "Normal"); + } + if (aCoverVariable == 1) { + GT_Utility.sendChatToPlayer(aPlayer, "Inverted"); + } + if (aCoverVariable == 2) { + GT_Utility.sendChatToPlayer(aPlayer, "No Work at all"); + } + return aCoverVariable; + } + + public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 1; } - return aCoverVariable; -} - - public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public boolean onCoverRemoval(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, boolean aForced) - { - if ((aTileEntity instanceof IMachineProgress)) - { - ((IMachineProgress)aTileEntity).enableWorking(); - ((IMachineProgress)aTileEntity).setWorkDataValue((byte)0); - } - return true; - } - - public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) - { - aCoverVariable = (aCoverVariable + 1) % 3; - if (aCoverVariable == 0) { - GT_Utility.sendChatToPlayer(aPlayer, "Normal"); - } - if (aCoverVariable == 1) { - GT_Utility.sendChatToPlayer(aPlayer, "Inverted"); - } - if (aCoverVariable == 2) { - GT_Utility.sendChatToPlayer(aPlayer, "No Work at all"); - } - return aCoverVariable; - } - - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return 1; - } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Conveyor.java b/src/main/java/gregtech/common/covers/GT_Cover_Conveyor.java index 10d2eb80..746b11a5 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Conveyor.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Conveyor.java @@ -9,125 +9,109 @@ import net.minecraft.tileentity.TileEntity; import net.minecraftforge.fluids.Fluid; public class GT_Cover_Conveyor - extends GT_CoverBehavior -{ - public final int mTickRate; - - public GT_Cover_Conveyor(int aTickRate) - { - this.mTickRate = aTickRate; - } - - public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) - { - if ((aCoverVariable % 6 > 1) && ((aTileEntity instanceof IMachineProgress))) { - if (((IMachineProgress)aTileEntity).isAllowedToWork() != aCoverVariable % 6 < 4) { + extends GT_CoverBehavior { + public final int mTickRate; + + public GT_Cover_Conveyor(int aTickRate) { + this.mTickRate = aTickRate; + } + + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + if ((aCoverVariable % 6 > 1) && ((aTileEntity instanceof IMachineProgress))) { + if (((IMachineProgress) aTileEntity).isAllowedToWork() != aCoverVariable % 6 < 4) { + return aCoverVariable; + } + } + TileEntity tTileEntity = aTileEntity.getTileEntityAtSide(aSide); + aTileEntity.decreaseStoredEnergyUnits(1L, true); + if (((aCoverVariable % 2 != 1) || (aSide != 1)) && ((aCoverVariable % 2 != 0) || (aSide != 0)) && (aTileEntity.getUniversalEnergyCapacity() >= 128L)) { + if (aTileEntity.isUniversalEnergyStored(256L)) { + aTileEntity.decreaseStoredEnergyUnits(4 * GT_Utility.moveOneItemStack(aCoverVariable % 2 == 0 ? aTileEntity : tTileEntity, aCoverVariable % 2 != 0 ? aTileEntity : tTileEntity, aCoverVariable % 2 != 0 ? GT_Utility.getOppositeSide(aSide) : aSide, aCoverVariable % 2 == 0 ? GT_Utility.getOppositeSide(aSide) : aSide, null, false, (byte) 64, (byte) 1, (byte) 64, (byte) 1), true); + } + } else { + GT_Utility.moveOneItemStack(aCoverVariable % 2 == 0 ? aTileEntity : tTileEntity, aCoverVariable % 2 != 0 ? aTileEntity : tTileEntity, aCoverVariable % 2 != 0 ? GT_Utility.getOppositeSide(aSide) : aSide, aCoverVariable % 2 == 0 ? GT_Utility.getOppositeSide(aSide) : aSide, null, false, (byte) 64, (byte) 1, (byte) 64, (byte) 1); + } return aCoverVariable; - } } - TileEntity tTileEntity = aTileEntity.getTileEntityAtSide(aSide); - aTileEntity.decreaseStoredEnergyUnits(1L, true); - if (((aCoverVariable % 2 != 1) || (aSide != 1)) && ((aCoverVariable % 2 != 0) || (aSide != 0)) && (aTileEntity.getUniversalEnergyCapacity() >= 128L)) - { - if (aTileEntity.isUniversalEnergyStored(256L)) { - aTileEntity.decreaseStoredEnergyUnits(4 * GT_Utility.moveOneItemStack(aCoverVariable % 2 == 0 ? aTileEntity : tTileEntity, aCoverVariable % 2 != 0 ? aTileEntity : tTileEntity, aCoverVariable % 2 != 0 ? GT_Utility.getOppositeSide(aSide) : aSide, aCoverVariable % 2 == 0 ? GT_Utility.getOppositeSide(aSide) : aSide, null, false, (byte)64, (byte)1, (byte)64, (byte)1), true); - } + + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + aCoverVariable = (aCoverVariable + 1) % 12; + if (aCoverVariable == 0) { + GT_Utility.sendChatToPlayer(aPlayer, "Export"); + } + if (aCoverVariable == 1) { + GT_Utility.sendChatToPlayer(aPlayer, "Import"); + } + if (aCoverVariable == 2) { + GT_Utility.sendChatToPlayer(aPlayer, "Export (conditional)"); + } + if (aCoverVariable == 3) { + GT_Utility.sendChatToPlayer(aPlayer, "Import (conditional)"); + } + if (aCoverVariable == 4) { + GT_Utility.sendChatToPlayer(aPlayer, "Export (invert cond)"); + } + if (aCoverVariable == 5) { + GT_Utility.sendChatToPlayer(aPlayer, "Import (invert cond)"); + } + if (aCoverVariable == 6) { + GT_Utility.sendChatToPlayer(aPlayer, "Export allow Input"); + } + if (aCoverVariable == 7) { + GT_Utility.sendChatToPlayer(aPlayer, "Import allow Output"); + } + if (aCoverVariable == 8) { + GT_Utility.sendChatToPlayer(aPlayer, "Export allow Input (conditional)"); + } + if (aCoverVariable == 9) { + GT_Utility.sendChatToPlayer(aPlayer, "Import allow Output (conditional)"); + } + if (aCoverVariable == 10) { + GT_Utility.sendChatToPlayer(aPlayer, "Export allow Input (invert cond)"); + } + if (aCoverVariable == 11) { + GT_Utility.sendChatToPlayer(aPlayer, "Import allow Output (invert cond)"); + } + return aCoverVariable; } - else { - GT_Utility.moveOneItemStack(aCoverVariable % 2 == 0 ? aTileEntity : tTileEntity, aCoverVariable % 2 != 0 ? aTileEntity : tTileEntity, aCoverVariable % 2 != 0 ? GT_Utility.getOppositeSide(aSide) : aSide, aCoverVariable % 2 == 0 ? GT_Utility.getOppositeSide(aSide) : aSide, null, false, (byte)64, (byte)1, (byte)64, (byte)1); + + public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; } - return aCoverVariable; - } - - public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) - { - aCoverVariable = (aCoverVariable + 1) % 12; - if (aCoverVariable == 0) { - GT_Utility.sendChatToPlayer(aPlayer, "Export"); + + public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; } - if (aCoverVariable == 1) { - GT_Utility.sendChatToPlayer(aPlayer, "Import"); + + public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; } - if (aCoverVariable == 2) { - GT_Utility.sendChatToPlayer(aPlayer, "Export (conditional)"); + + public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; } - if (aCoverVariable == 3) { - GT_Utility.sendChatToPlayer(aPlayer, "Import (conditional)"); + + public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; } - if (aCoverVariable == 4) { - GT_Utility.sendChatToPlayer(aPlayer, "Export (invert cond)"); + + public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; } - if (aCoverVariable == 5) { - GT_Utility.sendChatToPlayer(aPlayer, "Import (invert cond)"); + + public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return (aCoverVariable >= 6) || (aCoverVariable % 2 != 0); } - if (aCoverVariable == 6) { - GT_Utility.sendChatToPlayer(aPlayer, "Export allow Input"); + + public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return (aCoverVariable >= 6) || (aCoverVariable % 2 == 0); } - if (aCoverVariable == 7) { - GT_Utility.sendChatToPlayer(aPlayer, "Import allow Output"); + + public boolean alwaysLookConnected(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; } - if (aCoverVariable == 8) { - GT_Utility.sendChatToPlayer(aPlayer, "Export allow Input (conditional)"); + + public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return this.mTickRate; } - if (aCoverVariable == 9) { - GT_Utility.sendChatToPlayer(aPlayer, "Import allow Output (conditional)"); - } - if (aCoverVariable == 10) { - GT_Utility.sendChatToPlayer(aPlayer, "Export allow Input (invert cond)"); - } - if (aCoverVariable == 11) { - GT_Utility.sendChatToPlayer(aPlayer, "Import allow Output (invert cond)"); - } - return aCoverVariable; - } - - public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return (aCoverVariable >= 6) || (aCoverVariable % 2 != 0); - } - - public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return (aCoverVariable >= 6) || (aCoverVariable % 2 == 0); - } - - public boolean alwaysLookConnected(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return this.mTickRate; - } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Crafting.java b/src/main/java/gregtech/common/covers/GT_Cover_Crafting.java index 0198146f..d7d78833 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Crafting.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Crafting.java @@ -4,32 +4,23 @@ import gregtech.api.interfaces.tileentity.ICoverable; import gregtech.api.util.GT_CoverBehavior; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; import net.minecraft.inventory.ContainerWorkbench; -import net.minecraft.network.NetHandlerPlayServer; import net.minecraft.network.play.server.S2DPacketOpenWindow; -import net.minecraft.world.World; public class GT_Cover_Crafting - extends GT_CoverBehavior -{ - public boolean onCoverRightclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) - { - if ((aPlayer instanceof EntityPlayerMP)) - { - ((EntityPlayerMP)aPlayer).getNextWindowId(); - ((EntityPlayerMP)aPlayer).playerNetServerHandler.sendPacket(new S2DPacketOpenWindow(((EntityPlayerMP)aPlayer).currentWindowId, 1, "Crafting", 9, true)); - ((EntityPlayerMP)aPlayer).openContainer = new ContainerWorkbench(((EntityPlayerMP)aPlayer).inventory, ((EntityPlayerMP)aPlayer).worldObj, aTileEntity.getXCoord(), aTileEntity.getYCoord(), aTileEntity.getZCoord()) - { - public boolean canInteractWith(EntityPlayer par1EntityPlayer) - { - return true; + extends GT_CoverBehavior { + public boolean onCoverRightclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + if ((aPlayer instanceof EntityPlayerMP)) { + ((EntityPlayerMP) aPlayer).getNextWindowId(); + ((EntityPlayerMP) aPlayer).playerNetServerHandler.sendPacket(new S2DPacketOpenWindow(((EntityPlayerMP) aPlayer).currentWindowId, 1, "Crafting", 9, true)); + ((EntityPlayerMP) aPlayer).openContainer = new ContainerWorkbench(((EntityPlayerMP) aPlayer).inventory, ((EntityPlayerMP) aPlayer).worldObj, aTileEntity.getXCoord(), aTileEntity.getYCoord(), aTileEntity.getZCoord()) { + public boolean canInteractWith(EntityPlayer par1EntityPlayer) { + return true; + } + }; + ((EntityPlayerMP) aPlayer).openContainer.windowId = ((EntityPlayerMP) aPlayer).currentWindowId; + ((EntityPlayerMP) aPlayer).openContainer.addCraftingToCrafters((EntityPlayerMP) aPlayer); } - }; - ((EntityPlayerMP)aPlayer).openContainer.windowId = ((EntityPlayerMP)aPlayer).currentWindowId; - ((EntityPlayerMP)aPlayer).openContainer.addCraftingToCrafters((EntityPlayerMP)aPlayer); + return true; } - return true; - } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_DoesWork.java b/src/main/java/gregtech/common/covers/GT_Cover_DoesWork.java index 119e054b..cd1f0953 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_DoesWork.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_DoesWork.java @@ -8,87 +8,71 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.fluids.Fluid; public class GT_Cover_DoesWork - extends GT_CoverBehavior -{ - public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) - { - if ((aTileEntity instanceof IMachineProgress)) - { - if (aCoverVariable < 2) - { - int tScale = ((IMachineProgress)aTileEntity).getMaxProgress() / 15; - if ((tScale > 0) && (((IMachineProgress)aTileEntity).hasThingsToDo())) { - aTileEntity.setOutputRedstoneSignal(aSide, aCoverVariable % 2 == 0 ? (byte)(((IMachineProgress)aTileEntity).getProgress() / tScale) : (byte)(15 - ((IMachineProgress)aTileEntity).getProgress() / tScale)); + extends GT_CoverBehavior { + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + if ((aTileEntity instanceof IMachineProgress)) { + if (aCoverVariable < 2) { + int tScale = ((IMachineProgress) aTileEntity).getMaxProgress() / 15; + if ((tScale > 0) && (((IMachineProgress) aTileEntity).hasThingsToDo())) { + aTileEntity.setOutputRedstoneSignal(aSide, aCoverVariable % 2 == 0 ? (byte) (((IMachineProgress) aTileEntity).getProgress() / tScale) : (byte) (15 - ((IMachineProgress) aTileEntity).getProgress() / tScale)); + } else { + aTileEntity.setOutputRedstoneSignal(aSide, (byte) (aCoverVariable % 2 == 0 ? 0 : 15)); + } + } else { + aTileEntity.setOutputRedstoneSignal(aSide, (byte) ((aCoverVariable % 2 == 0 ? 1 : 0) != (((IMachineProgress) aTileEntity).getMaxProgress() == 0 ? 1 : 0) ? 0 : 15)); + } } else { - aTileEntity.setOutputRedstoneSignal(aSide, (byte)(aCoverVariable % 2 == 0 ? 0 : 15)); + aTileEntity.setOutputRedstoneSignal(aSide, (byte) 0); } - } - else - { - aTileEntity.setOutputRedstoneSignal(aSide, (byte)((aCoverVariable % 2 == 0 ? 1 : 0) != (((IMachineProgress)aTileEntity).getMaxProgress() == 0 ? 1 : 0) ? 0 : 15)); - } + return aCoverVariable; } - else { - aTileEntity.setOutputRedstoneSignal(aSide, (byte)0); + + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + aCoverVariable = (aCoverVariable + 1) % 4; + if (aCoverVariable == 0) { + GT_Utility.sendChatToPlayer(aPlayer, "Normal"); + } + if (aCoverVariable == 1) { + GT_Utility.sendChatToPlayer(aPlayer, "Inverted"); + } + if (aCoverVariable == 2) { + GT_Utility.sendChatToPlayer(aPlayer, "Ready to work"); + } + if (aCoverVariable == 3) { + GT_Utility.sendChatToPlayer(aPlayer, "Not ready to work"); + } + return aCoverVariable; } - return aCoverVariable; - } - - public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) - { - aCoverVariable = (aCoverVariable + 1) % 4; - if (aCoverVariable == 0) { - GT_Utility.sendChatToPlayer(aPlayer, "Normal"); + + public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; } - if (aCoverVariable == 1) { - GT_Utility.sendChatToPlayer(aPlayer, "Inverted"); + + public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; } - if (aCoverVariable == 2) { - GT_Utility.sendChatToPlayer(aPlayer, "Ready to work"); + + public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; } - if (aCoverVariable == 3) { - GT_Utility.sendChatToPlayer(aPlayer, "Not ready to work"); + + public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 5; } - return aCoverVariable; - } - - public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return 5; - } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Drain.java b/src/main/java/gregtech/common/covers/GT_Cover_Drain.java index a17098e8..e27346e7 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Drain.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Drain.java @@ -8,8 +8,6 @@ import gregtech.api.util.GT_Utility; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; -import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; @@ -17,92 +15,82 @@ import net.minecraftforge.fluids.IFluidBlock; import net.minecraftforge.fluids.IFluidHandler; public class GT_Cover_Drain - extends GT_CoverBehavior -{ - public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) - { - if ((aCoverVariable % 3 > 1) && ((aTileEntity instanceof IMachineProgress))) { - if (((IMachineProgress)aTileEntity).isAllowedToWork() != aCoverVariable % 3 < 2) { + extends GT_CoverBehavior { + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + if ((aCoverVariable % 3 > 1) && ((aTileEntity instanceof IMachineProgress))) { + if (((IMachineProgress) aTileEntity).isAllowedToWork() != aCoverVariable % 3 < 2) { + return aCoverVariable; + } + } + if (aSide != 6) { + Block tBlock = aTileEntity.getBlockAtSide(aSide); + if ((aCoverVariable < 3) && ((aTileEntity instanceof IFluidHandler))) { + if ((aSide == 1) && + (aTileEntity.getWorld().isRaining()) && + (aTileEntity.getWorld().getPrecipitationHeight(aTileEntity.getXCoord(), aTileEntity.getZCoord()) - 2 < aTileEntity.getYCoord())) { + int tAmount = (int) (aTileEntity.getBiome().rainfall * 10.0F); + if (tAmount > 0) { + ((IFluidHandler) aTileEntity).fill(ForgeDirection.getOrientation(aSide), Materials.Water.getFluid(aTileEntity.getWorld().isThundering() ? tAmount * 2 : tAmount), true); + } + } + FluidStack tLiquid = null; + if (tBlock != null) { + if (((tBlock == Blocks.water) || (tBlock == Blocks.flowing_water)) && (aTileEntity.getMetaIDAtSide(aSide) == 0)) { + tLiquid = Materials.Water.getFluid(1000L); + } else if (((tBlock == Blocks.lava) || (tBlock == Blocks.flowing_lava)) && (aTileEntity.getMetaIDAtSide(aSide) == 0)) { + tLiquid = Materials.Lava.getFluid(1000L); + } else if ((tBlock instanceof IFluidBlock)) { + tLiquid = ((IFluidBlock) tBlock).drain(aTileEntity.getWorld(), aTileEntity.getOffsetX(aSide, 1), aTileEntity.getOffsetY(aSide, 1), aTileEntity.getOffsetZ(aSide, 1), false); + } + if ((tLiquid != null) && (tLiquid.getFluid() != null) && ((aSide > 1) || ((aSide == 0) && (tLiquid.getFluid().getDensity() <= 0)) || ((aSide == 1) && (tLiquid.getFluid().getDensity() >= 0))) && + (((IFluidHandler) aTileEntity).fill(ForgeDirection.getOrientation(aSide), tLiquid, false) == tLiquid.amount)) { + ((IFluidHandler) aTileEntity).fill(ForgeDirection.getOrientation(aSide), tLiquid, true); + aTileEntity.getWorld().setBlockToAir(aTileEntity.getXCoord() + ForgeDirection.getOrientation(aSide).offsetX, aTileEntity.getYCoord() + ForgeDirection.getOrientation(aSide).offsetY, aTileEntity.getZCoord() + ForgeDirection.getOrientation(aSide).offsetZ); + } + } + } + if ((aCoverVariable >= 3) && (tBlock != null) && ( + (tBlock == Blocks.lava) || (tBlock == Blocks.flowing_lava) || (tBlock == Blocks.water) || (tBlock == Blocks.flowing_water) || ((tBlock instanceof IFluidBlock)))) { + aTileEntity.getWorld().setBlock(aTileEntity.getOffsetX(aSide, 1), aTileEntity.getOffsetY(aSide, 1), aTileEntity.getOffsetZ(aSide, 1), Blocks.air, 0, 0); + } + } return aCoverVariable; - } } - if (aSide != 6) - { - Block tBlock = aTileEntity.getBlockAtSide(aSide); - if ((aCoverVariable < 3) && ((aTileEntity instanceof IFluidHandler))) - { - if ((aSide == 1) && - (aTileEntity.getWorld().isRaining()) && - (aTileEntity.getWorld().getPrecipitationHeight(aTileEntity.getXCoord(), aTileEntity.getZCoord()) - 2 < aTileEntity.getYCoord())) - { - int tAmount = (int)(aTileEntity.getBiome().rainfall * 10.0F); - if (tAmount > 0) { - ((IFluidHandler)aTileEntity).fill(ForgeDirection.getOrientation(aSide), Materials.Water.getFluid(aTileEntity.getWorld().isThundering() ? tAmount * 2 : tAmount), true); - } + + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + aCoverVariable = (aCoverVariable + 1) % 6; + if (aCoverVariable == 0) { + GT_Utility.sendChatToPlayer(aPlayer, "Import"); } - FluidStack tLiquid = null; - if (tBlock != null) - { - if (((tBlock == Blocks.water) || (tBlock == Blocks.flowing_water)) && (aTileEntity.getMetaIDAtSide(aSide) == 0)) { - tLiquid = Materials.Water.getFluid(1000L); - } else if (((tBlock == Blocks.lava) || (tBlock == Blocks.flowing_lava)) && (aTileEntity.getMetaIDAtSide(aSide) == 0)) { - tLiquid = Materials.Lava.getFluid(1000L); - } else if ((tBlock instanceof IFluidBlock)) { - tLiquid = ((IFluidBlock)tBlock).drain(aTileEntity.getWorld(), aTileEntity.getOffsetX(aSide, 1), aTileEntity.getOffsetY(aSide, 1), aTileEntity.getOffsetZ(aSide, 1), false); - } - if ((tLiquid != null) && (tLiquid.getFluid() != null) && ((aSide > 1) || ((aSide == 0) && (tLiquid.getFluid().getDensity() <= 0)) || ((aSide == 1) && (tLiquid.getFluid().getDensity() >= 0))) && - (((IFluidHandler)aTileEntity).fill(ForgeDirection.getOrientation(aSide), tLiquid, false) == tLiquid.amount)) - { - ((IFluidHandler)aTileEntity).fill(ForgeDirection.getOrientation(aSide), tLiquid, true); - aTileEntity.getWorld().setBlockToAir(aTileEntity.getXCoord() + ForgeDirection.getOrientation(aSide).offsetX, aTileEntity.getYCoord() + ForgeDirection.getOrientation(aSide).offsetY, aTileEntity.getZCoord() + ForgeDirection.getOrientation(aSide).offsetZ); - } + if (aCoverVariable == 1) { + GT_Utility.sendChatToPlayer(aPlayer, "Import (conditional)"); } - } - if ((aCoverVariable >= 3) && (tBlock != null) && ( - (tBlock == Blocks.lava) || (tBlock == Blocks.flowing_lava) || (tBlock == Blocks.water) || (tBlock == Blocks.flowing_water) || ((tBlock instanceof IFluidBlock)))) { - aTileEntity.getWorld().setBlock(aTileEntity.getOffsetX(aSide, 1), aTileEntity.getOffsetY(aSide, 1), aTileEntity.getOffsetZ(aSide, 1), Blocks.air, 0, 0); - } + if (aCoverVariable == 2) { + GT_Utility.sendChatToPlayer(aPlayer, "Import (invert cond)"); + } + if (aCoverVariable == 3) { + GT_Utility.sendChatToPlayer(aPlayer, "Keep Liquids Away"); + } + if (aCoverVariable == 4) { + GT_Utility.sendChatToPlayer(aPlayer, "Keep Liquids Away (conditional)"); + } + if (aCoverVariable == 5) { + GT_Utility.sendChatToPlayer(aPlayer, "Keep Liquids Away (invert cond)"); + } + return aCoverVariable; } - return aCoverVariable; - } - - public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) - { - aCoverVariable = (aCoverVariable + 1) % 6; - if (aCoverVariable == 0) { - GT_Utility.sendChatToPlayer(aPlayer, "Import"); + + public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + if ((aCoverVariable > 1) && ((aTileEntity instanceof IMachineProgress))) { + } + return ((IMachineProgress) aTileEntity).isAllowedToWork() == aCoverVariable < 2; } - if (aCoverVariable == 1) { - GT_Utility.sendChatToPlayer(aPlayer, "Import (conditional)"); + + public boolean alwaysLookConnected(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; } - if (aCoverVariable == 2) { - GT_Utility.sendChatToPlayer(aPlayer, "Import (invert cond)"); + + public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return aCoverVariable < 3 ? 50 : 1; } - if (aCoverVariable == 3) { - GT_Utility.sendChatToPlayer(aPlayer, "Keep Liquids Away"); - } - if (aCoverVariable == 4) { - GT_Utility.sendChatToPlayer(aPlayer, "Keep Liquids Away (conditional)"); - } - if (aCoverVariable == 5) { - GT_Utility.sendChatToPlayer(aPlayer, "Keep Liquids Away (invert cond)"); - } - return aCoverVariable; - } - - public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - if ((aCoverVariable > 1) && ((aTileEntity instanceof IMachineProgress))) {} - return ((IMachineProgress)aTileEntity).isAllowedToWork() == aCoverVariable < 2; - } - - public boolean alwaysLookConnected(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return aCoverVariable < 3 ? 50 : 1; - } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_EUMeter.java b/src/main/java/gregtech/common/covers/GT_Cover_EUMeter.java index 6917e6bf..d723721b 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_EUMeter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_EUMeter.java @@ -1,187 +1,165 @@ package gregtech.common.covers; -import ic2.api.item.IElectricItem; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.ICoverable; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicBatteryBuffer; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; -import gregtech.api.util.GT_BaseCrop; import gregtech.api.util.GT_CoverBehavior; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; +import ic2.api.item.IElectricItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; public class GT_Cover_EUMeter - extends GT_CoverBehavior -{ - public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) - { - long tScale = 0L; - if (aCoverVariable < 2) - { - tScale = aTileEntity.getUniversalEnergyCapacity() / 15L; - if (tScale > 0L) { - aTileEntity.setOutputRedstoneSignal(aSide, aCoverVariable % 2 == 0 ? (byte)(int)(aTileEntity.getUniversalEnergyStored() / tScale) : (byte)(int)(15L - aTileEntity.getUniversalEnergyStored() / tScale)); - } else { - aTileEntity.setOutputRedstoneSignal(aSide, (byte)(aCoverVariable % 2 == 0 ? 0 : 15)); - } + extends GT_CoverBehavior { + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + long tScale = 0L; + if (aCoverVariable < 2) { + tScale = aTileEntity.getUniversalEnergyCapacity() / 15L; + if (tScale > 0L) { + aTileEntity.setOutputRedstoneSignal(aSide, aCoverVariable % 2 == 0 ? (byte) (int) (aTileEntity.getUniversalEnergyStored() / tScale) : (byte) (int) (15L - aTileEntity.getUniversalEnergyStored() / tScale)); + } else { + aTileEntity.setOutputRedstoneSignal(aSide, (byte) (aCoverVariable % 2 == 0 ? 0 : 15)); + } + } else if (aCoverVariable < 4) { + tScale = aTileEntity.getEUCapacity() / 15L; + if (tScale > 0L) { + aTileEntity.setOutputRedstoneSignal(aSide, aCoverVariable % 2 == 0 ? (byte) (int) (aTileEntity.getStoredEU() / tScale) : (byte) (int) (15L - aTileEntity.getStoredEU() / tScale)); + } else { + aTileEntity.setOutputRedstoneSignal(aSide, (byte) (aCoverVariable % 2 == 0 ? 0 : 15)); + } + } else if (aCoverVariable < 6) { + tScale = aTileEntity.getSteamCapacity() / 15L; + if (tScale > 0L) { + aTileEntity.setOutputRedstoneSignal(aSide, aCoverVariable % 2 == 0 ? (byte) (int) (aTileEntity.getStoredSteam() / tScale) : (byte) (int) (15L - aTileEntity.getStoredSteam() / tScale)); + } else { + aTileEntity.setOutputRedstoneSignal(aSide, (byte) (aCoverVariable % 2 == 0 ? 0 : 15)); + } + } else if (aCoverVariable < 8) { + tScale = aTileEntity.getInputVoltage() * aTileEntity.getInputAmperage() / 15L; + if (tScale > 0L) { + aTileEntity.setOutputRedstoneSignal(aSide, aCoverVariable % 2 == 0 ? (byte) (int) (aTileEntity.getAverageElectricInput() / tScale) : (byte) (int) (15L - aTileEntity.getAverageElectricInput() / tScale)); + } else { + aTileEntity.setOutputRedstoneSignal(aSide, (byte) (aCoverVariable % 2 == 0 ? 0 : 15)); + } + } else if (aCoverVariable < 10) { + tScale = aTileEntity.getOutputVoltage() * aTileEntity.getOutputAmperage() / 15L; + if (tScale > 0L) { + aTileEntity.setOutputRedstoneSignal(aSide, aCoverVariable % 2 == 0 ? (byte) (int) (aTileEntity.getAverageElectricOutput() / tScale) : (byte) (int) (15L - aTileEntity.getAverageElectricOutput() / tScale)); + } else { + aTileEntity.setOutputRedstoneSignal(aSide, (byte) (aCoverVariable % 2 == 0 ? 0 : 15)); + } + } else if (aCoverVariable < 12) { + tScale = aTileEntity.getEUCapacity(); + long tStored = aTileEntity.getStoredEU(); + if (aTileEntity instanceof IGregTechTileEntity) { + IGregTechTileEntity tTileEntity = (IGregTechTileEntity) aTileEntity; + IMetaTileEntity mTileEntity = tTileEntity.getMetaTileEntity(); + if (mTileEntity instanceof GT_MetaTileEntity_BasicBatteryBuffer) { + GT_MetaTileEntity_BasicBatteryBuffer buffer = (GT_MetaTileEntity_BasicBatteryBuffer) mTileEntity; + if (buffer.mInventory != null) { + for (ItemStack aStack : buffer.mInventory) { + if (GT_ModHandler.isElectricItem(aStack)) { + + if (aStack.getItem() instanceof GT_MetaBase_Item) { + Long[] stats = ((GT_MetaBase_Item) aStack.getItem()).getElectricStats(aStack); + if (stats != null) { + tScale = tScale + stats[0]; + tStored = tStored + ((GT_MetaBase_Item) aStack.getItem()).getRealCharge(aStack); + } + } else if (aStack.getItem() instanceof IElectricItem) { + tStored = tStored + (long) ic2.api.item.ElectricItem.manager.getCharge(aStack); + tScale = tScale + (long) ((IElectricItem) aStack.getItem()).getMaxCharge(aStack); + } + } + } + + } + } + } + tScale = tScale / 15L; + if (tScale > 0L) { + aTileEntity.setOutputRedstoneSignal(aSide, aCoverVariable % 2 == 0 ? (byte) (int) (tStored / tScale) : (byte) (int) (15L - tStored / tScale)); + } else { + aTileEntity.setOutputRedstoneSignal(aSide, (byte) (aCoverVariable % 2 == 0 ? 0 : 15)); + } + } + return aCoverVariable; } - else if (aCoverVariable < 4) - { - tScale = aTileEntity.getEUCapacity() / 15L; - if (tScale > 0L) { - aTileEntity.setOutputRedstoneSignal(aSide, aCoverVariable % 2 == 0 ? (byte)(int)(aTileEntity.getStoredEU() / tScale) : (byte)(int)(15L - aTileEntity.getStoredEU() / tScale)); - } else { - aTileEntity.setOutputRedstoneSignal(aSide, (byte)(aCoverVariable % 2 == 0 ? 0 : 15)); - } + + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + aCoverVariable = (aCoverVariable + 1) % 12; + if (aCoverVariable == 0) { + GT_Utility.sendChatToPlayer(aPlayer, "Normal Universal Storage"); + } + if (aCoverVariable == 1) { + GT_Utility.sendChatToPlayer(aPlayer, "Inverted Universal Storage"); + } + if (aCoverVariable == 2) { + GT_Utility.sendChatToPlayer(aPlayer, "Normal Electricity Storage"); + } + if (aCoverVariable == 3) { + GT_Utility.sendChatToPlayer(aPlayer, "Inverted Electricity Storage"); + } + if (aCoverVariable == 4) { + GT_Utility.sendChatToPlayer(aPlayer, "Normal Steam Storage"); + } + if (aCoverVariable == 5) { + GT_Utility.sendChatToPlayer(aPlayer, "Inverted Steam Storage"); + } + if (aCoverVariable == 6) { + GT_Utility.sendChatToPlayer(aPlayer, "Normal Average Electric Input"); + } + if (aCoverVariable == 7) { + GT_Utility.sendChatToPlayer(aPlayer, "Inverted Average Electric Input"); + } + if (aCoverVariable == 8) { + GT_Utility.sendChatToPlayer(aPlayer, "Normal Average Electric Output"); + } + if (aCoverVariable == 9) { + GT_Utility.sendChatToPlayer(aPlayer, "Inverted Average Electric Output"); + } + if (aCoverVariable == 10) { + GT_Utility.sendChatToPlayer(aPlayer, "Normal Electricity Storage(Including Batterys)"); + } + if (aCoverVariable == 11) { + GT_Utility.sendChatToPlayer(aPlayer, "Inverted Electricity Storage(Including Batterys)"); + } + return aCoverVariable; } - else if (aCoverVariable < 6) - { - tScale = aTileEntity.getSteamCapacity() / 15L; - if (tScale > 0L) { - aTileEntity.setOutputRedstoneSignal(aSide, aCoverVariable % 2 == 0 ? (byte)(int)(aTileEntity.getStoredSteam() / tScale) : (byte)(int)(15L - aTileEntity.getStoredSteam() / tScale)); - } else { - aTileEntity.setOutputRedstoneSignal(aSide, (byte)(aCoverVariable % 2 == 0 ? 0 : 15)); - } + + public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; } - else if (aCoverVariable < 8) - { - tScale = aTileEntity.getInputVoltage() * aTileEntity.getInputAmperage() / 15L; - if (tScale > 0L) { - aTileEntity.setOutputRedstoneSignal(aSide, aCoverVariable % 2 == 0 ? (byte)(int)(aTileEntity.getAverageElectricInput() / tScale) : (byte)(int)(15L - aTileEntity.getAverageElectricInput() / tScale)); - } else { - aTileEntity.setOutputRedstoneSignal(aSide, (byte)(aCoverVariable % 2 == 0 ? 0 : 15)); - } + + public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; } - else if (aCoverVariable < 10) - { - tScale = aTileEntity.getOutputVoltage() * aTileEntity.getOutputAmperage() / 15L; - if (tScale > 0L) { - aTileEntity.setOutputRedstoneSignal(aSide, aCoverVariable % 2 == 0 ? (byte)(int)(aTileEntity.getAverageElectricOutput() / tScale) : (byte)(int)(15L - aTileEntity.getAverageElectricOutput() / tScale)); - } else { - aTileEntity.setOutputRedstoneSignal(aSide, (byte)(aCoverVariable % 2 == 0 ? 0 : 15)); - } + + public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; } - else if (aCoverVariable < 12) - { - tScale = aTileEntity.getEUCapacity(); - long tStored = aTileEntity.getStoredEU(); - if(aTileEntity instanceof IGregTechTileEntity){ - IGregTechTileEntity tTileEntity = (IGregTechTileEntity) aTileEntity; - IMetaTileEntity mTileEntity = tTileEntity.getMetaTileEntity(); - if(mTileEntity instanceof GT_MetaTileEntity_BasicBatteryBuffer){ - GT_MetaTileEntity_BasicBatteryBuffer buffer = (GT_MetaTileEntity_BasicBatteryBuffer) mTileEntity; - if(buffer.mInventory!=null){ - for(ItemStack aStack : buffer.mInventory){ - if (GT_ModHandler.isElectricItem(aStack)) { - - if(aStack.getItem() instanceof GT_MetaBase_Item){ - Long[] stats = ((GT_MetaBase_Item)aStack.getItem()).getElectricStats(aStack); - if(stats!=null){ - tScale = tScale + stats[0]; - tStored = tStored + ((GT_MetaBase_Item)aStack.getItem()).getRealCharge(aStack); - } - }else if(aStack.getItem() instanceof IElectricItem){ - tStored = tStored + (long)ic2.api.item.ElectricItem.manager.getCharge(aStack); - tScale = tScale + (long)((IElectricItem)aStack.getItem()).getMaxCharge(aStack); - } - } - } - - }}} - tScale = tScale/15L; - if (tScale > 0L) { - aTileEntity.setOutputRedstoneSignal(aSide, aCoverVariable % 2 == 0 ? (byte)(int)(tStored / tScale) : (byte)(int)(15L - tStored / tScale)); - } else { - aTileEntity.setOutputRedstoneSignal(aSide, (byte)(aCoverVariable % 2 == 0 ? 0 : 15)); - } + + public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; } - return aCoverVariable; - } - - public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) - { - aCoverVariable = (aCoverVariable + 1) % 12; - if (aCoverVariable == 0) { - GT_Utility.sendChatToPlayer(aPlayer, "Normal Universal Storage"); + + public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; } - if (aCoverVariable == 1) { - GT_Utility.sendChatToPlayer(aPlayer, "Inverted Universal Storage"); + + public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; } - if (aCoverVariable == 2) { - GT_Utility.sendChatToPlayer(aPlayer, "Normal Electricity Storage"); + + public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; } - if (aCoverVariable == 3) { - GT_Utility.sendChatToPlayer(aPlayer, "Inverted Electricity Storage"); + + public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 20; } - if (aCoverVariable == 4) { - GT_Utility.sendChatToPlayer(aPlayer, "Normal Steam Storage"); - } - if (aCoverVariable == 5) { - GT_Utility.sendChatToPlayer(aPlayer, "Inverted Steam Storage"); - } - if (aCoverVariable == 6) { - GT_Utility.sendChatToPlayer(aPlayer, "Normal Average Electric Input"); - } - if (aCoverVariable == 7) { - GT_Utility.sendChatToPlayer(aPlayer, "Inverted Average Electric Input"); - } - if (aCoverVariable == 8) { - GT_Utility.sendChatToPlayer(aPlayer, "Normal Average Electric Output"); - } - if (aCoverVariable == 9) { - GT_Utility.sendChatToPlayer(aPlayer, "Inverted Average Electric Output"); - } - if (aCoverVariable == 10) { - GT_Utility.sendChatToPlayer(aPlayer, "Normal Electricity Storage(Including Batterys)"); - } - if (aCoverVariable == 11) { - GT_Utility.sendChatToPlayer(aPlayer, "Inverted Electricity Storage(Including Batterys)"); - } - return aCoverVariable; - } - - public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return 20; - } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_EnergyOnly.java b/src/main/java/gregtech/common/covers/GT_Cover_EnergyOnly.java index 4ffdcb9e..5c0f1ea0 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_EnergyOnly.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_EnergyOnly.java @@ -8,95 +8,80 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.fluids.Fluid; public class GT_Cover_EnergyOnly - extends GT_CoverBehavior -{ - public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) - { - aCoverVariable = (aCoverVariable + 1) % 3; - if (aCoverVariable == 0) { - GT_Utility.sendChatToPlayer(aPlayer, "Allow"); + extends GT_CoverBehavior { + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + aCoverVariable = (aCoverVariable + 1) % 3; + if (aCoverVariable == 0) { + GT_Utility.sendChatToPlayer(aPlayer, "Allow"); + } + if (aCoverVariable == 1) { + GT_Utility.sendChatToPlayer(aPlayer, "Allow (conditional)"); + } + if (aCoverVariable == 2) { + GT_Utility.sendChatToPlayer(aPlayer, "Disallow (conditional)"); + } + return aCoverVariable; } - if (aCoverVariable == 1) { - GT_Utility.sendChatToPlayer(aPlayer, "Allow (conditional)"); + + public float getBlastProofLevel(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 20.0F; } - if (aCoverVariable == 2) { - GT_Utility.sendChatToPlayer(aPlayer, "Disallow (conditional)"); - } - return aCoverVariable; - } - - public float getBlastProofLevel(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return 20.0F; - } - - public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return false; - } - - public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return false; - } - - public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - if ((aCoverVariable > 1) && ((aTileEntity instanceof IMachineProgress))) { - if (((IMachineProgress)aTileEntity).isAllowedToWork() != aCoverVariable < 2) { + + public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { return false; - } } - return true; - } - - public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - if ((aCoverVariable > 1) && ((aTileEntity instanceof IMachineProgress))) { - if (((IMachineProgress)aTileEntity).isAllowedToWork() != aCoverVariable < 2) { + + public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { return false; - } } - return true; - } - - public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return false; - } - - public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return false; - } - - public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return false; - } - - public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return false; - } - - public boolean isGUIClickable(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return false; - } - - public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return false; - } - - public boolean onCoverRightclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) - { - return false; - } - - public boolean onCoverRemoval(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, boolean aForced) - { - return true; - } + + public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + if ((aCoverVariable > 1) && ((aTileEntity instanceof IMachineProgress))) { + if (((IMachineProgress) aTileEntity).isAllowedToWork() != aCoverVariable < 2) { + return false; + } + } + return true; + } + + public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + if ((aCoverVariable > 1) && ((aTileEntity instanceof IMachineProgress))) { + if (((IMachineProgress) aTileEntity).isAllowedToWork() != aCoverVariable < 2) { + return false; + } + } + return true; + } + + public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return false; + } + + public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return false; + } + + public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return false; + } + + public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return false; + } + + public boolean isGUIClickable(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return false; + } + + public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return false; + } + + public boolean onCoverRightclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + return false; + } + + public boolean onCoverRemoval(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, boolean aForced) { + return true; + } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java b/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java index f2fc6a4d..874ba557 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java @@ -8,86 +8,75 @@ import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; public class GT_Cover_ItemMeter - extends GT_CoverBehavior -{ - public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) - { - int[] tSlots; - if (aCoverVariable < 2) { - tSlots = aTileEntity.getAccessibleSlotsFromSide(aSide); - } else { - tSlots = new int[] { aCoverVariable - 2 }; - } - int tAll = 0;int tFull = 0; - for (int i : tSlots) { - if ((i > 0) && (i < aTileEntity.getSizeInventory())) - { - tAll += 64; - ItemStack tStack = aTileEntity.getStackInSlot(i); - if (tStack != null) { - tFull += tStack.stackSize * 64 / tStack.getMaxStackSize(); + extends GT_CoverBehavior { + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + int[] tSlots; + if (aCoverVariable < 2) { + tSlots = aTileEntity.getAccessibleSlotsFromSide(aSide); + } else { + tSlots = new int[]{aCoverVariable - 2}; } - } + int tAll = 0; + int tFull = 0; + for (int i : tSlots) { + if ((i > 0) && (i < aTileEntity.getSizeInventory())) { + tAll += 64; + ItemStack tStack = aTileEntity.getStackInSlot(i); + if (tStack != null) { + tFull += tStack.stackSize * 64 / tStack.getMaxStackSize(); + } + } + } + tAll /= 14; + if (tAll > 0) { + aTileEntity.setOutputRedstoneSignal(aSide, aCoverVariable != 1 ? 0 : tFull > 0 ? (byte) (tFull / tAll + 1) : (byte) (15 - (tFull > 0 ? tFull / tAll + 1 : 0))); + } else { + aTileEntity.setOutputRedstoneSignal(aSide, (byte) (aCoverVariable != 1 ? 0 : 15)); + } + return aCoverVariable; } - tAll /= 14; - if (tAll > 0) { - aTileEntity.setOutputRedstoneSignal(aSide, aCoverVariable != 1 ? 0 : tFull > 0 ? (byte)(tFull / tAll + 1) : (byte)(15 - (tFull > 0 ? tFull / tAll + 1 : 0))); - } else { - aTileEntity.setOutputRedstoneSignal(aSide, (byte)(aCoverVariable != 1 ? 0 : 15)); + + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + aCoverVariable = (aCoverVariable + 1) % (2 + aTileEntity.getSizeInventory()); + if (aCoverVariable == 0) { + GT_Utility.sendChatToPlayer(aPlayer, "Normal"); + } else if (aCoverVariable == 1) { + GT_Utility.sendChatToPlayer(aPlayer, "Inverted"); + } else { + GT_Utility.sendChatToPlayer(aPlayer, "Slot: " + (aCoverVariable - 2)); + } + return aCoverVariable; } - return aCoverVariable; - } - - public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) - { - aCoverVariable = (aCoverVariable + 1) % (2 + aTileEntity.getSizeInventory()); - if (aCoverVariable == 0) { - GT_Utility.sendChatToPlayer(aPlayer, "Normal"); - } else if (aCoverVariable == 1) { - GT_Utility.sendChatToPlayer(aPlayer, "Inverted"); - } else { - GT_Utility.sendChatToPlayer(aPlayer, "Slot: " + (aCoverVariable - 2)); + + public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 5; } - return aCoverVariable; - } - - public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return 5; - } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Lens.java b/src/main/java/gregtech/common/covers/GT_Cover_Lens.java index 000acc45..5f7c9903 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Lens.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Lens.java @@ -4,17 +4,14 @@ import gregtech.api.interfaces.tileentity.ICoverable; import gregtech.api.util.GT_CoverBehavior; public class GT_Cover_Lens - extends GT_CoverBehavior -{ - private final byte mColor; - - public GT_Cover_Lens(byte aColor) - { - this.mColor = aColor; - } - - public byte getLensColor(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return this.mColor; - } + extends GT_CoverBehavior { + private final byte mColor; + + public GT_Cover_Lens(byte aColor) { + this.mColor = aColor; + } + + public byte getLensColor(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return this.mColor; + } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_LiquidMeter.java b/src/main/java/gregtech/common/covers/GT_Cover_LiquidMeter.java index 4a910152..beaf10a9 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_LiquidMeter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_LiquidMeter.java @@ -11,87 +11,73 @@ import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.IFluidHandler; public class GT_Cover_LiquidMeter - extends GT_CoverBehavior -{ - public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) - { - if ((aTileEntity instanceof IFluidHandler)) - { - FluidTankInfo[] tTanks = ((IFluidHandler)aTileEntity).getTankInfo(ForgeDirection.UNKNOWN); - long tAll = 0L;long tFull = 0L; - if (tTanks != null) { - for (FluidTankInfo tTank : tTanks) { - if (tTank != null) - { - tAll += tTank.capacity; - FluidStack tLiquid = tTank.fluid; - if (tLiquid != null) { - tFull += tLiquid.amount; + extends GT_CoverBehavior { + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + if ((aTileEntity instanceof IFluidHandler)) { + FluidTankInfo[] tTanks = ((IFluidHandler) aTileEntity).getTankInfo(ForgeDirection.UNKNOWN); + long tAll = 0L; + long tFull = 0L; + if (tTanks != null) { + for (FluidTankInfo tTank : tTanks) { + if (tTank != null) { + tAll += tTank.capacity; + FluidStack tLiquid = tTank.fluid; + if (tLiquid != null) { + tFull += tLiquid.amount; + } + } + } } - } + tAll /= 14L; + if (tAll > 0L) { + aTileEntity.setOutputRedstoneSignal(aSide, aCoverVariable != 0 ? (byte) (int) (15L - (tFull <= 0L ? 0L : tFull / tAll + 1L)) : tFull <= 0L ? 0 : (byte) (int) (tFull / tAll + 1L)); + } else { + aTileEntity.setOutputRedstoneSignal(aSide, ((byte) (aCoverVariable != 0 ? 15 : 0))); + } + } else { + aTileEntity.setOutputRedstoneSignal(aSide, (byte) 0); } - } - tAll /= 14L; - if (tAll > 0L) { - aTileEntity.setOutputRedstoneSignal(aSide, aCoverVariable != 0 ? (byte)(int)(15L - (tFull <= 0L ? 0L : tFull / tAll + 1L)) : tFull <= 0L ? 0 : (byte)(int)(tFull / tAll + 1L)); - } else { - aTileEntity.setOutputRedstoneSignal(aSide, ((byte)(aCoverVariable != 0 ? 15 : 0))); - } + return aCoverVariable; } - else - { - aTileEntity.setOutputRedstoneSignal(aSide, (byte)0); + + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + if (aCoverVariable == 0) { + GT_Utility.sendChatToPlayer(aPlayer, "Inverted"); + } else { + GT_Utility.sendChatToPlayer(aPlayer, "Normal"); + } + return aCoverVariable == 0 ? 1 : 0; } - return aCoverVariable; - } - - public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) - { - if (aCoverVariable == 0) { - GT_Utility.sendChatToPlayer(aPlayer, "Inverted"); - } else { - GT_Utility.sendChatToPlayer(aPlayer, "Normal"); + + public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 5; } - return aCoverVariable == 0 ? 1 : 0; - } - - public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return 5; - } } \ No newline at end of file diff --git a/src/main/java/gregtech/common/covers/GT_Cover_NeedMaintainance.java b/src/main/java/gregtech/common/covers/GT_Cover_NeedMaintainance.java index 39960e39..78f71e11 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_NeedMaintainance.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_NeedMaintainance.java @@ -1,122 +1,113 @@ package gregtech.common.covers; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.Fluid; -import gregtech.api.GregTech_API; 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; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraftforge.fluids.Fluid; -public class GT_Cover_NeedMaintainance extends GT_CoverBehavior{ +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)); + aTileEntity.setOutputRedstoneSignal(GT_Utility.getOppositeSide(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) { + aCoverVariable = (aCoverVariable + 1) % 10; + if (aCoverVariable == 0) { + GT_Utility.sendChatToPlayer(aPlayer, "Emit if 1 Maintainance Needed"); + } + if (aCoverVariable == 1) { + GT_Utility.sendChatToPlayer(aPlayer, "Emit if 1 Maintainance Needed(inverted)"); + } + if (aCoverVariable == 2) { + GT_Utility.sendChatToPlayer(aPlayer, "Emit if 2 Maintainance Needed"); + } + if (aCoverVariable == 3) { + GT_Utility.sendChatToPlayer(aPlayer, "Emit if 2 Maintainance Needed(inverted)"); + } + if (aCoverVariable == 4) { + GT_Utility.sendChatToPlayer(aPlayer, "Emit if 3 Maintainance Needed"); + } + if (aCoverVariable == 5) { + GT_Utility.sendChatToPlayer(aPlayer, "Emit if 3 Maintainance Needed(inverted)"); + } + if (aCoverVariable == 6) { + GT_Utility.sendChatToPlayer(aPlayer, "Emit if 4 Maintainance Needed"); + } + if (aCoverVariable == 7) { + GT_Utility.sendChatToPlayer(aPlayer, "Emit if 4 Maintainance Needed(inverted)"); + } + if (aCoverVariable == 8) { + GT_Utility.sendChatToPlayer(aPlayer, "Emit if 5 Maintainance Needed"); + } + if (aCoverVariable == 9) { + GT_Utility.sendChatToPlayer(aPlayer, "Emit if 5 Maintainance Needed(inverted)"); + } + return aCoverVariable; + } + + public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 60; + } - 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)); - aTileEntity.setOutputRedstoneSignal(GT_Utility.getOppositeSide(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) - { - aCoverVariable = (aCoverVariable + 1) % 10; - if (aCoverVariable == 0) { - GT_Utility.sendChatToPlayer(aPlayer, "Emit if 1 Maintainance Needed"); - } - if (aCoverVariable == 1) { - GT_Utility.sendChatToPlayer(aPlayer, "Emit if 1 Maintainance Needed(inverted)"); - } - if (aCoverVariable == 2) { - GT_Utility.sendChatToPlayer(aPlayer, "Emit if 2 Maintainance Needed"); - } - if (aCoverVariable == 3) { - GT_Utility.sendChatToPlayer(aPlayer, "Emit if 2 Maintainance Needed(inverted)"); - } - if (aCoverVariable == 4) { - GT_Utility.sendChatToPlayer(aPlayer, "Emit if 3 Maintainance Needed"); - } - if (aCoverVariable == 5) { - GT_Utility.sendChatToPlayer(aPlayer, "Emit if 3 Maintainance Needed(inverted)"); - } - if (aCoverVariable == 6) { - GT_Utility.sendChatToPlayer(aPlayer, "Emit if 4 Maintainance Needed"); - } - if (aCoverVariable == 7) { - GT_Utility.sendChatToPlayer(aPlayer, "Emit if 4 Maintainance Needed(inverted)"); - } - if (aCoverVariable == 8) { - GT_Utility.sendChatToPlayer(aPlayer, "Emit if 5 Maintainance Needed"); - } - if (aCoverVariable == 9) { - GT_Utility.sendChatToPlayer(aPlayer, "Emit if 5 Maintainance Needed(inverted)"); - } - return aCoverVariable; - } - - public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return 60; - } - } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java b/src/main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java index 6ed3fd7a..c89e46be 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java @@ -1,120 +1,101 @@ package gregtech.common.covers; -import net.minecraft.entity.EntityLivingBase; +import gregtech.api.interfaces.tileentity.ICoverable; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.util.GT_CoverBehavior; +import gregtech.api.util.GT_Utility; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; 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_PlayerDetector extends GT_CoverBehavior{ +public class GT_Cover_PlayerDetector extends GT_CoverBehavior { - private String placer = ""; - private int range = 8; - - public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) - { - boolean playerDetected = false; - - if(aTileEntity instanceof IGregTechTileEntity){ - if(aTileEntity.isUniversalEnergyStored(20)){ - aTileEntity.decreaseStoredEnergyUnits(20, true); - range = 32; - }else{range = 8;} - placer = ((IGregTechTileEntity) aTileEntity).getOwnerName(); - } - for (Object tObject : aTileEntity.getWorld().playerEntities) { - if ((tObject instanceof EntityPlayerMP)) - { - EntityPlayerMP tEntity = (EntityPlayerMP)tObject; - int dist = Math.max(1, (int)tEntity.getDistance(aTileEntity.getXCoord() + 0.5D, aTileEntity.getYCoord() + 0.5D, aTileEntity.getZCoord() + 0.5D)); - if (dist < range) - { - if (aCoverVariable == 0) - { - playerDetected=true; - break; - } - if (tEntity.getDisplayName().equalsIgnoreCase(placer)) - { - if (aCoverVariable == 1) - { - playerDetected=true; - break; - } - } - else if (aCoverVariable == 2) - { - playerDetected=true; - break; - } - } + private String placer = ""; + private int range = 8; + + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + boolean playerDetected = false; + + if (aTileEntity instanceof IGregTechTileEntity) { + if (aTileEntity.isUniversalEnergyStored(20)) { + aTileEntity.decreaseStoredEnergyUnits(20, true); + range = 32; + } else { + range = 8; } - } - - - aTileEntity.setOutputRedstoneSignal(aSide, (byte)(playerDetected ? 15 : 0)); - return aCoverVariable; - } - - public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) - { - aCoverVariable = (aCoverVariable + 1) % 3; - if (aCoverVariable == 0) { - GT_Utility.sendChatToPlayer(aPlayer, "Emit if any Player is close"); - } - if (aCoverVariable == 1) { - GT_Utility.sendChatToPlayer(aPlayer, "Emit if you are close"); - } - if (aCoverVariable == 2) { - GT_Utility.sendChatToPlayer(aPlayer, "Emit if other player is close"); - } - return aCoverVariable; - } - - public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return 20; - } - + placer = ((IGregTechTileEntity) aTileEntity).getOwnerName(); + } + for (Object tObject : aTileEntity.getWorld().playerEntities) { + if ((tObject instanceof EntityPlayerMP)) { + EntityPlayerMP tEntity = (EntityPlayerMP) tObject; + int dist = Math.max(1, (int) tEntity.getDistance(aTileEntity.getXCoord() + 0.5D, aTileEntity.getYCoord() + 0.5D, aTileEntity.getZCoord() + 0.5D)); + if (dist < range) { + if (aCoverVariable == 0) { + playerDetected = true; + break; + } + if (tEntity.getDisplayName().equalsIgnoreCase(placer)) { + if (aCoverVariable == 1) { + playerDetected = true; + break; + } + } else if (aCoverVariable == 2) { + playerDetected = true; + break; + } + } + } + } + + + aTileEntity.setOutputRedstoneSignal(aSide, (byte) (playerDetected ? 15 : 0)); + return aCoverVariable; + } + + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + aCoverVariable = (aCoverVariable + 1) % 3; + if (aCoverVariable == 0) { + GT_Utility.sendChatToPlayer(aPlayer, "Emit if any Player is close"); + } + if (aCoverVariable == 1) { + GT_Utility.sendChatToPlayer(aPlayer, "Emit if you are close"); + } + if (aCoverVariable == 2) { + GT_Utility.sendChatToPlayer(aPlayer, "Emit if other player is close"); + } + return aCoverVariable; + } + + public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 20; + } + } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Pump.java b/src/main/java/gregtech/common/covers/GT_Cover_Pump.java index 6f1cbabd..52170883 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Pump.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Pump.java @@ -11,177 +11,150 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidHandler; public class GT_Cover_Pump - extends GT_CoverBehavior -{ - public final int mTransferRate; - - public GT_Cover_Pump(int aTransferRate) - { - this.mTransferRate = aTransferRate; - } - - public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) - { - if ((aCoverVariable % 6 > 1) && ((aTileEntity instanceof IMachineProgress))) { - if (((IMachineProgress)aTileEntity).isAllowedToWork() != aCoverVariable % 6 < 4) { + extends GT_CoverBehavior { + public final int mTransferRate; + + public GT_Cover_Pump(int aTransferRate) { + this.mTransferRate = aTransferRate; + } + + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + if ((aCoverVariable % 6 > 1) && ((aTileEntity instanceof IMachineProgress))) { + if (((IMachineProgress) aTileEntity).isAllowedToWork() != aCoverVariable % 6 < 4) { + return aCoverVariable; + } + } + if ((aTileEntity instanceof IFluidHandler)) { + IFluidHandler tTank2 = aTileEntity.getITankContainerAtSide(aSide); + if (tTank2 != null) { + aTileEntity.decreaseStoredEnergyUnits(GT_Utility.getTier(this.mTransferRate), true); + IFluidHandler tTank1 = (IFluidHandler) aTileEntity; + if (aCoverVariable % 2 == 0) { + FluidStack tLiquid = tTank1.drain(ForgeDirection.getOrientation(aSide), this.mTransferRate, false); + if (tLiquid != null) { + tLiquid = tLiquid.copy(); + tLiquid.amount = tTank2.fill(ForgeDirection.getOrientation(aSide).getOpposite(), tLiquid, false); + if (tLiquid.amount > 0) { + if (((aCoverVariable % 2 != 1) || (aSide != 1)) && ((aCoverVariable % 2 != 0) || (aSide != 0)) && (aTileEntity.getUniversalEnergyCapacity() >= Math.min(1, tLiquid.amount / 10))) { + if (aTileEntity.isUniversalEnergyStored(Math.min(1, tLiquid.amount / 10))) { + aTileEntity.decreaseStoredEnergyUnits(Math.min(1, tLiquid.amount / 10), true); + tTank2.fill(ForgeDirection.getOrientation(aSide).getOpposite(), tTank1.drain(ForgeDirection.getOrientation(aSide), tLiquid.amount, true), true); + } + } else { + tTank2.fill(ForgeDirection.getOrientation(aSide).getOpposite(), tTank1.drain(ForgeDirection.getOrientation(aSide), tLiquid.amount, true), true); + } + } + } + } else { + FluidStack tLiquid = tTank2.drain(ForgeDirection.getOrientation(aSide).getOpposite(), this.mTransferRate, false); + if (tLiquid != null) { + tLiquid = tLiquid.copy(); + tLiquid.amount = tTank1.fill(ForgeDirection.getOrientation(aSide), tLiquid, false); + if (tLiquid.amount > 0) { + if (((aCoverVariable % 2 != 1) || (aSide != 1)) && ((aCoverVariable % 2 != 0) || (aSide != 0)) && (aTileEntity.getUniversalEnergyCapacity() >= Math.min(1, tLiquid.amount / 10))) { + if (aTileEntity.isUniversalEnergyStored(Math.min(1, tLiquid.amount / 10))) { + aTileEntity.decreaseStoredEnergyUnits(Math.min(1, tLiquid.amount / 10), true); + tTank1.fill(ForgeDirection.getOrientation(aSide), tTank2.drain(ForgeDirection.getOrientation(aSide).getOpposite(), tLiquid.amount, true), true); + } + } else { + tTank1.fill(ForgeDirection.getOrientation(aSide), tTank2.drain(ForgeDirection.getOrientation(aSide).getOpposite(), tLiquid.amount, true), true); + } + } + } + } + } + } return aCoverVariable; - } } - if ((aTileEntity instanceof IFluidHandler)) - { - IFluidHandler tTank2 = aTileEntity.getITankContainerAtSide(aSide); - if (tTank2 != null) - { - aTileEntity.decreaseStoredEnergyUnits(GT_Utility.getTier(this.mTransferRate), true); - IFluidHandler tTank1 = (IFluidHandler)aTileEntity; - if (aCoverVariable % 2 == 0) - { - FluidStack tLiquid = tTank1.drain(ForgeDirection.getOrientation(aSide), this.mTransferRate, false); - if (tLiquid != null) - { - tLiquid = tLiquid.copy(); - tLiquid.amount = tTank2.fill(ForgeDirection.getOrientation(aSide).getOpposite(), tLiquid, false); - if (tLiquid.amount > 0) { - if (((aCoverVariable % 2 != 1) || (aSide != 1)) && ((aCoverVariable % 2 != 0) || (aSide != 0)) && (aTileEntity.getUniversalEnergyCapacity() >= Math.min(1, tLiquid.amount / 10))) - { - if (aTileEntity.isUniversalEnergyStored(Math.min(1, tLiquid.amount / 10))) - { - aTileEntity.decreaseStoredEnergyUnits(Math.min(1, tLiquid.amount / 10), true); - tTank2.fill(ForgeDirection.getOrientation(aSide).getOpposite(), tTank1.drain(ForgeDirection.getOrientation(aSide), tLiquid.amount, true), true); - } - } - else { - tTank2.fill(ForgeDirection.getOrientation(aSide).getOpposite(), tTank1.drain(ForgeDirection.getOrientation(aSide), tLiquid.amount, true), true); - } - } - } + + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + aCoverVariable = (aCoverVariable + 1) % 12; + if (aCoverVariable == 0) { + GT_Utility.sendChatToPlayer(aPlayer, "Export"); } - else - { - FluidStack tLiquid = tTank2.drain(ForgeDirection.getOrientation(aSide).getOpposite(), this.mTransferRate, false); - if (tLiquid != null) - { - tLiquid = tLiquid.copy(); - tLiquid.amount = tTank1.fill(ForgeDirection.getOrientation(aSide), tLiquid, false); - if (tLiquid.amount > 0) { - if (((aCoverVariable % 2 != 1) || (aSide != 1)) && ((aCoverVariable % 2 != 0) || (aSide != 0)) && (aTileEntity.getUniversalEnergyCapacity() >= Math.min(1, tLiquid.amount / 10))) - { - if (aTileEntity.isUniversalEnergyStored(Math.min(1, tLiquid.amount / 10))) - { - aTileEntity.decreaseStoredEnergyUnits(Math.min(1, tLiquid.amount / 10), true); - tTank1.fill(ForgeDirection.getOrientation(aSide), tTank2.drain(ForgeDirection.getOrientation(aSide).getOpposite(), tLiquid.amount, true), true); - } - } - else { - tTank1.fill(ForgeDirection.getOrientation(aSide), tTank2.drain(ForgeDirection.getOrientation(aSide).getOpposite(), tLiquid.amount, true), true); - } - } - } + if (aCoverVariable == 1) { + GT_Utility.sendChatToPlayer(aPlayer, "Import"); } - } + if (aCoverVariable == 2) { + GT_Utility.sendChatToPlayer(aPlayer, "Export (conditional)"); + } + if (aCoverVariable == 3) { + GT_Utility.sendChatToPlayer(aPlayer, "Import (conditional)"); + } + if (aCoverVariable == 4) { + GT_Utility.sendChatToPlayer(aPlayer, "Export (invert cond)"); + } + if (aCoverVariable == 5) { + GT_Utility.sendChatToPlayer(aPlayer, "Import (invert cond)"); + } + if (aCoverVariable == 6) { + GT_Utility.sendChatToPlayer(aPlayer, "Export allow Input"); + } + if (aCoverVariable == 7) { + GT_Utility.sendChatToPlayer(aPlayer, "Import allow Output"); + } + if (aCoverVariable == 8) { + GT_Utility.sendChatToPlayer(aPlayer, "Export allow Input (conditional)"); + } + if (aCoverVariable == 9) { + GT_Utility.sendChatToPlayer(aPlayer, "Import allow Output (conditional)"); + } + if (aCoverVariable == 10) { + GT_Utility.sendChatToPlayer(aPlayer, "Export allow Input (invert cond)"); + } + if (aCoverVariable == 11) { + GT_Utility.sendChatToPlayer(aPlayer, "Import allow Output (invert cond)"); + } + return aCoverVariable; } - return aCoverVariable; - } - - public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) - { - aCoverVariable = (aCoverVariable + 1) % 12; - if (aCoverVariable == 0) { - GT_Utility.sendChatToPlayer(aPlayer, "Export"); + + public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; } - if (aCoverVariable == 1) { - GT_Utility.sendChatToPlayer(aPlayer, "Import"); + + public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; } - if (aCoverVariable == 2) { - GT_Utility.sendChatToPlayer(aPlayer, "Export (conditional)"); + + public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; } - if (aCoverVariable == 3) { - GT_Utility.sendChatToPlayer(aPlayer, "Import (conditional)"); + + public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; } - if (aCoverVariable == 4) { - GT_Utility.sendChatToPlayer(aPlayer, "Export (invert cond)"); + + public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; } - if (aCoverVariable == 5) { - GT_Utility.sendChatToPlayer(aPlayer, "Import (invert cond)"); + + public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; } - if (aCoverVariable == 6) { - GT_Utility.sendChatToPlayer(aPlayer, "Export allow Input"); + + public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + if ((aCoverVariable > 1) && ((aTileEntity instanceof IMachineProgress))) { + if (((IMachineProgress) aTileEntity).isAllowedToWork() != aCoverVariable % 6 < 4) { + return false; + } + } + return (aCoverVariable >= 6) || (aCoverVariable % 2 != 0); } - if (aCoverVariable == 7) { - GT_Utility.sendChatToPlayer(aPlayer, "Import allow Output"); + + public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + if ((aCoverVariable > 1) && ((aTileEntity instanceof IMachineProgress))) { + if (((IMachineProgress) aTileEntity).isAllowedToWork() != aCoverVariable % 6 < 4) { + return false; + } + } + return (aCoverVariable >= 6) || (aCoverVariable % 2 == 0); } - if (aCoverVariable == 8) { - GT_Utility.sendChatToPlayer(aPlayer, "Export allow Input (conditional)"); + + public boolean alwaysLookConnected(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; } - if (aCoverVariable == 9) { - GT_Utility.sendChatToPlayer(aPlayer, "Import allow Output (conditional)"); + + public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 1; } - if (aCoverVariable == 10) { - GT_Utility.sendChatToPlayer(aPlayer, "Export allow Input (invert cond)"); - } - if (aCoverVariable == 11) { - GT_Utility.sendChatToPlayer(aPlayer, "Import allow Output (invert cond)"); - } - return aCoverVariable; - } - - public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - if ((aCoverVariable > 1) && ((aTileEntity instanceof IMachineProgress))) { - if (((IMachineProgress)aTileEntity).isAllowedToWork() != aCoverVariable % 6 < 4) { - return false; - } - } - return (aCoverVariable >= 6) || (aCoverVariable % 2 != 0); - } - - public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - if ((aCoverVariable > 1) && ((aTileEntity instanceof IMachineProgress))) { - if (((IMachineProgress)aTileEntity).isAllowedToWork() != aCoverVariable % 6 < 4) { - return false; - } - } - return (aCoverVariable >= 6) || (aCoverVariable % 2 == 0); - } - - public boolean alwaysLookConnected(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return 1; - } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneConductor.java b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneConductor.java index 9c4ae92a..955e8435 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneConductor.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneConductor.java @@ -7,78 +7,72 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.fluids.Fluid; public class GT_Cover_RedstoneConductor - extends GT_CoverBehavior -{ - public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) - { - if (aCoverVariable == 0) { - aTileEntity.setOutputRedstoneSignal(aSide, aTileEntity.getStrongestRedstone()); - } else if (aCoverVariable < 7) { - aTileEntity.setOutputRedstoneSignal(aSide, aTileEntity.getInternalInputRedstoneSignal((byte)(aCoverVariable - 1))); + extends GT_CoverBehavior { + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + if (aCoverVariable == 0) { + aTileEntity.setOutputRedstoneSignal(aSide, aTileEntity.getStrongestRedstone()); + } else if (aCoverVariable < 7) { + aTileEntity.setOutputRedstoneSignal(aSide, aTileEntity.getInternalInputRedstoneSignal((byte) (aCoverVariable - 1))); + } + return aCoverVariable; } - return aCoverVariable; - } - - public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) - { - aCoverVariable = (aCoverVariable + 1) % 7; - switch (aCoverVariable) - { - case 0: - GT_Utility.sendChatToPlayer(aPlayer, "Conducts strongest Input"); break; - case 1: - GT_Utility.sendChatToPlayer(aPlayer, "Conducts from bottom Input"); break; - case 2: - GT_Utility.sendChatToPlayer(aPlayer, "Conducts from top Input"); break; - case 3: - GT_Utility.sendChatToPlayer(aPlayer, "Conducts from north Input"); break; - case 4: - GT_Utility.sendChatToPlayer(aPlayer, "Conducts from south Input"); break; - case 5: - GT_Utility.sendChatToPlayer(aPlayer, "Conducts from west Input"); break; - case 6: - GT_Utility.sendChatToPlayer(aPlayer, "Conducts from east Input"); + + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + aCoverVariable = (aCoverVariable + 1) % 7; + switch (aCoverVariable) { + case 0: + GT_Utility.sendChatToPlayer(aPlayer, "Conducts strongest Input"); + break; + case 1: + GT_Utility.sendChatToPlayer(aPlayer, "Conducts from bottom Input"); + break; + case 2: + GT_Utility.sendChatToPlayer(aPlayer, "Conducts from top Input"); + break; + case 3: + GT_Utility.sendChatToPlayer(aPlayer, "Conducts from north Input"); + break; + case 4: + GT_Utility.sendChatToPlayer(aPlayer, "Conducts from south Input"); + break; + case 5: + GT_Utility.sendChatToPlayer(aPlayer, "Conducts from west Input"); + break; + case 6: + GT_Utility.sendChatToPlayer(aPlayer, "Conducts from east Input"); + } + return aCoverVariable; + } + + public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 1; } - return aCoverVariable; - } - - public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return 1; - } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverExternal.java b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverExternal.java index da5c149b..f6793a6c 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverExternal.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverExternal.java @@ -2,24 +2,19 @@ package gregtech.common.covers; import gregtech.api.GregTech_API; import gregtech.api.interfaces.tileentity.ICoverable; -import java.util.Map; public class GT_Cover_RedstoneReceiverExternal - extends GT_Cover_RedstoneWirelessBase -{ - public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) - { - aTileEntity.setOutputRedstoneSignal(aSide, GregTech_API.sWirelessRedstone.get(Integer.valueOf(aCoverVariable)) == null ? 0 : ((Byte)GregTech_API.sWirelessRedstone.get(Integer.valueOf(aCoverVariable))).byteValue()); - return aCoverVariable; - } - - public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return 1; - } + extends GT_Cover_RedstoneWirelessBase { + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + aTileEntity.setOutputRedstoneSignal(aSide, GregTech_API.sWirelessRedstone.get(Integer.valueOf(aCoverVariable)) == null ? 0 : ((Byte) GregTech_API.sWirelessRedstone.get(Integer.valueOf(aCoverVariable))).byteValue()); + return aCoverVariable; + } + + public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 1; + } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverInternal.java b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverInternal.java index 217a36ee..3af0a7de 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverInternal.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverInternal.java @@ -2,23 +2,18 @@ package gregtech.common.covers; import gregtech.api.GregTech_API; import gregtech.api.interfaces.tileentity.ICoverable; -import java.util.Map; public class GT_Cover_RedstoneReceiverInternal - extends GT_Cover_RedstoneWirelessBase -{ - public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) - { - return aCoverVariable; - } - - public byte getRedstoneInput(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return GregTech_API.sWirelessRedstone.get(Integer.valueOf(aCoverVariable)) == null ? 0 : ((Byte)GregTech_API.sWirelessRedstone.get(Integer.valueOf(aCoverVariable))).byteValue(); - } - - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return 1; - } + extends GT_Cover_RedstoneWirelessBase { + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + return aCoverVariable; + } + + public byte getRedstoneInput(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return GregTech_API.sWirelessRedstone.get(Integer.valueOf(aCoverVariable)) == null ? 0 : ((Byte) GregTech_API.sWirelessRedstone.get(Integer.valueOf(aCoverVariable))).byteValue(); + } + + public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 1; + } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneSignalizer.java b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneSignalizer.java index c9d29b1e..cd1bcd62 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneSignalizer.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneSignalizer.java @@ -8,74 +8,61 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.fluids.Fluid; public class GT_Cover_RedstoneSignalizer - extends GT_CoverBehavior -{ - public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) - { - aCoverVariable = (aCoverVariable + 1) % 48; - if (aCoverVariable / 16 == 0) { - GT_Utility.sendChatToPlayer(aPlayer, "Signal = " + (aCoverVariable & 0xF)); - } else if (aCoverVariable / 16 == 1) { - GT_Utility.sendChatToPlayer(aPlayer, "Conditional Signal = " + (aCoverVariable & 0xF)); - } else if (aCoverVariable / 16 == 2) { - GT_Utility.sendChatToPlayer(aPlayer, "Inverted Conditional Signal = " + (aCoverVariable & 0xF)); - } - return aCoverVariable; - } - - public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public byte getRedstoneInput(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - if (aCoverVariable < 16) { - return (byte)(aCoverVariable & 0xF); - } - if ((aTileEntity instanceof IMachineProgress)) - { - if (((IMachineProgress)aTileEntity).isAllowedToWork()) - { - if (aCoverVariable / 16 == 1) { - return (byte)(aCoverVariable & 0xF); + extends GT_CoverBehavior { + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + aCoverVariable = (aCoverVariable + 1) % 48; + if (aCoverVariable / 16 == 0) { + GT_Utility.sendChatToPlayer(aPlayer, "Signal = " + (aCoverVariable & 0xF)); + } else if (aCoverVariable / 16 == 1) { + GT_Utility.sendChatToPlayer(aPlayer, "Conditional Signal = " + (aCoverVariable & 0xF)); + } else if (aCoverVariable / 16 == 2) { + GT_Utility.sendChatToPlayer(aPlayer, "Inverted Conditional Signal = " + (aCoverVariable & 0xF)); } - } - else if (aCoverVariable / 16 == 2) { - return (byte)(aCoverVariable & 0xF); - } - return 0; + return aCoverVariable; + } + + public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + public byte getRedstoneInput(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + if (aCoverVariable < 16) { + return (byte) (aCoverVariable & 0xF); + } + if ((aTileEntity instanceof IMachineProgress)) { + if (((IMachineProgress) aTileEntity).isAllowedToWork()) { + if (aCoverVariable / 16 == 1) { + return (byte) (aCoverVariable & 0xF); + } + } else if (aCoverVariable / 16 == 2) { + return (byte) (aCoverVariable & 0xF); + } + return 0; + } + return (byte) (aCoverVariable & 0xF); } - return (byte)(aCoverVariable & 0xF); - } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterExternal.java b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterExternal.java index 15609ca1..6e08110f 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterExternal.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterExternal.java @@ -2,24 +2,19 @@ package gregtech.common.covers; import gregtech.api.GregTech_API; import gregtech.api.interfaces.tileentity.ICoverable; -import java.util.Map; public class GT_Cover_RedstoneTransmitterExternal - extends GT_Cover_RedstoneWirelessBase -{ - public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) - { - GregTech_API.sWirelessRedstone.put(Integer.valueOf(aCoverVariable), Byte.valueOf(aInputRedstone)); - return aCoverVariable; - } - - public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return 1; - } + extends GT_Cover_RedstoneWirelessBase { + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + GregTech_API.sWirelessRedstone.put(Integer.valueOf(aCoverVariable), Byte.valueOf(aInputRedstone)); + return aCoverVariable; + } + + public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 1; + } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterInternal.java b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterInternal.java index a1a2ed93..98a0e803 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterInternal.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterInternal.java @@ -2,29 +2,23 @@ package gregtech.common.covers; import gregtech.api.GregTech_API; import gregtech.api.interfaces.tileentity.ICoverable; -import java.util.Map; public class GT_Cover_RedstoneTransmitterInternal - extends GT_Cover_RedstoneWirelessBase -{ - public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) - { - GregTech_API.sWirelessRedstone.put(Integer.valueOf(aCoverVariable), Byte.valueOf(aTileEntity.getOutputRedstoneSignal(aSide))); - return aCoverVariable; - } - - public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return 1; - } + extends GT_Cover_RedstoneWirelessBase { + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + GregTech_API.sWirelessRedstone.put(Integer.valueOf(aCoverVariable), Byte.valueOf(aTileEntity.getOutputRedstoneSignal(aSide))); + return aCoverVariable; + } + + public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 1; + } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneWirelessBase.java b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneWirelessBase.java index cbc5aa2a..7bca9a1d 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneWirelessBase.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneWirelessBase.java @@ -4,95 +4,78 @@ import gregtech.api.GregTech_API; import gregtech.api.interfaces.tileentity.ICoverable; import gregtech.api.util.GT_CoverBehavior; import gregtech.api.util.GT_Utility; -import java.util.Map; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraftforge.fluids.Fluid; public abstract class GT_Cover_RedstoneWirelessBase - extends GT_CoverBehavior -{ - public boolean onCoverRemoval(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, boolean aForced) - { - GregTech_API.sWirelessRedstone.put(Integer.valueOf(aCoverVariable), Byte.valueOf((byte)0)); - return true; - } - - public boolean onCoverRightclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) - { - if (((aX > 0.375D) && (aX < 0.625D)) || ((aSide > 3) && (((aY > 0.375D) && (aY < 0.625D)) || ((aSide < 2) && (((aZ > 0.375D) && (aZ < 0.625D)) || (aSide == 2) || (aSide == 3)))))) - { - GregTech_API.sWirelessRedstone.put(Integer.valueOf(aCoverVariable), Byte.valueOf((byte)0)); - aCoverVariable = GT_Utility.stackToInt(aPlayer.inventory.getCurrentItem()); - aTileEntity.setCoverDataAtSide(aSide, aCoverVariable); - GT_Utility.sendChatToPlayer(aPlayer, "Frequency: " + aCoverVariable); - return true; + extends GT_CoverBehavior { + public boolean onCoverRemoval(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, boolean aForced) { + GregTech_API.sWirelessRedstone.put(Integer.valueOf(aCoverVariable), Byte.valueOf((byte) 0)); + return true; } - return false; - } - - public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) - { - if (((aX > 0.375D) && (aX < 0.625D)) || ((aSide <= 3) || (((aY > 0.375D) && (aY < 0.625D)) || ((aSide >= 2) || (((aZ <= 0.375D) || (aZ >= 0.625D)) && (aSide != 2) && (aSide != 3)))))) - { - GregTech_API.sWirelessRedstone.put(Integer.valueOf(aCoverVariable), Byte.valueOf((byte)0)); - float[] tCoords = GT_Utility.getClickedFacingCoords(aSide, aX, aY, aZ); - switch ((byte)((byte)(int)(tCoords[0] * 2.0F) + 2 * (byte)(int)(tCoords[1] * 2.0F))) - { - case 0: - aCoverVariable -= 32; - break; - case 1: - aCoverVariable += 32; - break; - case 2: - aCoverVariable -= 1024; - break; - case 3: - aCoverVariable += 1024; - } + + public boolean onCoverRightclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + if (((aX > 0.375D) && (aX < 0.625D)) || ((aSide > 3) && (((aY > 0.375D) && (aY < 0.625D)) || ((aSide < 2) && (((aZ > 0.375D) && (aZ < 0.625D)) || (aSide == 2) || (aSide == 3)))))) { + GregTech_API.sWirelessRedstone.put(Integer.valueOf(aCoverVariable), Byte.valueOf((byte) 0)); + aCoverVariable = GT_Utility.stackToInt(aPlayer.inventory.getCurrentItem()); + aTileEntity.setCoverDataAtSide(aSide, aCoverVariable); + GT_Utility.sendChatToPlayer(aPlayer, "Frequency: " + aCoverVariable); + return true; + } + return false; + } + + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + if (((aX > 0.375D) && (aX < 0.625D)) || ((aSide <= 3) || (((aY > 0.375D) && (aY < 0.625D)) || ((aSide >= 2) || (((aZ <= 0.375D) || (aZ >= 0.625D)) && (aSide != 2) && (aSide != 3)))))) { + GregTech_API.sWirelessRedstone.put(Integer.valueOf(aCoverVariable), Byte.valueOf((byte) 0)); + float[] tCoords = GT_Utility.getClickedFacingCoords(aSide, aX, aY, aZ); + switch ((byte) ((byte) (int) (tCoords[0] * 2.0F) + 2 * (byte) (int) (tCoords[1] * 2.0F))) { + case 0: + aCoverVariable -= 32; + break; + case 1: + aCoverVariable += 32; + break; + case 2: + aCoverVariable -= 1024; + break; + case 3: + aCoverVariable += 1024; + } + } + GT_Utility.sendChatToPlayer(aPlayer, "Frequency: " + aCoverVariable); + return aCoverVariable; + } + + public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + public String getDescription(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return "Frequency: " + aCoverVariable; + } + + public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 1; } - GT_Utility.sendChatToPlayer(aPlayer, "Frequency: " + aCoverVariable); - return aCoverVariable; - } - - public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return true; - } - - public String getDescription(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return "Frequency: " + aCoverVariable; - } - - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return 1; - } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Screen.java b/src/main/java/gregtech/common/covers/GT_Cover_Screen.java index ee714049..6d8a17aa 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Screen.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Screen.java @@ -6,75 +6,60 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.fluids.Fluid; public class GT_Cover_Screen - extends GT_CoverBehavior -{ - public float getBlastProofLevel(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return 20.0F; - } - - public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return false; - } - - public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return false; - } - - public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return false; - } - - public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return false; - } - - public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return false; - } - - public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) - { - return false; - } - - public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return false; - } - - public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) - { - return false; - } - - public boolean isGUIClickable(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return false; - } - - public boolean onCoverRightclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) - { - return false; - } - - public boolean onCoverRemoval(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, boolean aForced) - { - return true; - } - - public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) - { - return 0; - } + extends GT_CoverBehavior { + public float getBlastProofLevel(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 20.0F; + } + + public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return false; + } + + public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return false; + } + + public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return false; + } + + public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return false; + } + + public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return false; + } + + public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return false; + } + + public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return false; + } + + public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return false; + } + + public boolean isGUIClickable(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return false; + } + + public boolean onCoverRightclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + return false; + } + + public boolean onCoverRemoval(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, boolean aForced) { + return true; + } + + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + return 0; + } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Shutter.java b/src/main/java/gregtech/common/covers/GT_Cover_Shutter.java index 167e2dbd..95f3cf1d 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Shutter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Shutter.java @@ -8,78 +8,65 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.fluids.Fluid; public class GT_Cover_Shutter - extends GT_CoverBehavior -{ - public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) - { - return aCoverVariable; - } - - public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) - { - aCoverVariable = (aCoverVariable + 1) % 4; - if (aCoverVariable == 0) { - GT_Utility.sendChatToPlayer(aPlayer, "Open if work enabled"); + extends GT_CoverBehavior { + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + return aCoverVariable; } - if (aCoverVariable == 1) { - GT_Utility.sendChatToPlayer(aPlayer, "Open if work disabled"); + + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + aCoverVariable = (aCoverVariable + 1) % 4; + if (aCoverVariable == 0) { + GT_Utility.sendChatToPlayer(aPlayer, "Open if work enabled"); + } + if (aCoverVariable == 1) { + GT_Utility.sendChatToPlayer(aPlayer, "Open if work disabled"); + } + if (aCoverVariable == 2) { + GT_Utility.sendChatToPlayer(aPlayer, "Only Output allowed"); + } + if (aCoverVariable == 3) { + GT_Utility.sendChatToPlayer(aPlayer, "Only Input allowed"); + } + return aCoverVariable; } - if (aCoverVariable == 2) { - GT_Utility.sendChatToPlayer(aPlayer, "Only Output allowed"); + + public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return aCoverVariable >= 2 ? aCoverVariable == 3 : (aTileEntity instanceof IMachineProgress) ? ((IMachineProgress) aTileEntity).isAllowedToWork() ? aCoverVariable % 2 == 0 : aCoverVariable % 2 != 0 : true; } - if (aCoverVariable == 3) { - GT_Utility.sendChatToPlayer(aPlayer, "Only Input allowed"); + + public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return aCoverVariable >= 2 ? aCoverVariable == 2 : (aTileEntity instanceof IMachineProgress) ? ((IMachineProgress) aTileEntity).isAllowedToWork() ? aCoverVariable % 2 == 0 : aCoverVariable % 2 != 0 : true; } - return aCoverVariable; - } - - public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) -{ - return aCoverVariable >= 2 ? aCoverVariable == 3 : (aTileEntity instanceof IMachineProgress) ? ((IMachineProgress)aTileEntity).isAllowedToWork() ? aCoverVariable % 2 == 0 : aCoverVariable % 2 != 0 : true; -} -public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) -{ - return aCoverVariable >= 2 ? aCoverVariable == 2 : (aTileEntity instanceof IMachineProgress) ? ((IMachineProgress)aTileEntity).isAllowedToWork() ? aCoverVariable % 2 == 0 : aCoverVariable % 2 != 0 : true; -} + public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return aCoverVariable >= 2 ? aCoverVariable == 3 : (aTileEntity instanceof IMachineProgress) ? ((IMachineProgress) aTileEntity).isAllowedToWork() ? aCoverVariable % 2 == 0 : aCoverVariable % 2 != 0 : true; + } -public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) -{ - return aCoverVariable >= 2 ? aCoverVariable == 3 : (aTileEntity instanceof IMachineProgress) ? ((IMachineProgress)aTileEntity).isAllowedToWork() ? aCoverVariable % 2 == 0 : aCoverVariable % 2 != 0 : true; -} + public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return aCoverVariable >= 2 ? aCoverVariable == 2 : (aTileEntity instanceof IMachineProgress) ? ((IMachineProgress) aTileEntity).isAllowedToWork() ? aCoverVariable % 2 == 0 : aCoverVariable % 2 != 0 : true; + } -public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) -{ - return aCoverVariable >= 2 ? aCoverVariable == 2 : (aTileEntity instanceof IMachineProgress) ? ((IMachineProgress)aTileEntity).isAllowedToWork() ? aCoverVariable % 2 == 0 : aCoverVariable % 2 != 0 : true; -} + public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return aCoverVariable >= 2 ? aCoverVariable == 3 : (aTileEntity instanceof IMachineProgress) ? ((IMachineProgress) aTileEntity).isAllowedToWork() ? aCoverVariable % 2 == 0 : aCoverVariable % 2 != 0 : true; + } -public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) -{ - return aCoverVariable >= 2 ? aCoverVariable == 3 : (aTileEntity instanceof IMachineProgress) ? ((IMachineProgress)aTileEntity).isAllowedToWork() ? aCoverVariable % 2 == 0 : aCoverVariable % 2 != 0 : true; -} + public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return aCoverVariable >= 2 ? aCoverVariable == 2 : (aTileEntity instanceof IMachineProgress) ? ((IMachineProgress) aTileEntity).isAllowedToWork() ? aCoverVariable % 2 == 0 : aCoverVariable % 2 != 0 : true; + } -public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) -{ - return aCoverVariable >= 2 ? aCoverVariable == 2 : (aTileEntity instanceof IMachineProgress) ? ((IMachineProgress)aTileEntity).isAllowedToWork() ? aCoverVariable % 2 == 0 : aCoverVariable % 2 != 0 : true; -} + public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return aCoverVariable >= 2 ? aCoverVariable == 3 : (aTileEntity instanceof IMachineProgress) ? ((IMachineProgress) aTileEntity).isAllowedToWork() ? aCoverVariable % 2 == 0 : aCoverVariable % 2 != 0 : true; + } -public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) -{ - return aCoverVariable >= 2 ? aCoverVariable == 3 : (aTileEntity instanceof IMachineProgress) ? ((IMachineProgress)aTileEntity).isAllowedToWork() ? aCoverVariable % 2 == 0 : aCoverVariable % 2 != 0 : true; -} + public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { + return aCoverVariable >= 2 ? aCoverVariable == 2 : (aTileEntity instanceof IMachineProgress) ? ((IMachineProgress) aTileEntity).isAllowedToWork() ? aCoverVariable % 2 == 0 : aCoverVariable % 2 != 0 : true; + } -public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) -{ - return aCoverVariable >= 2 ? aCoverVariable == 2 : (aTileEntity instanceof IMachineProgress) ? ((IMachineProgress)aTileEntity).isAllowedToWork() ? aCoverVariable % 2 == 0 : aCoverVariable % 2 != 0 : true; -} - - public boolean alwaysLookConnected(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return 0; - } + public boolean alwaysLookConnected(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 0; + } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_SolarPanel.java b/src/main/java/gregtech/common/covers/GT_Cover_SolarPanel.java index 8ad83597..5c15505c 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_SolarPanel.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_SolarPanel.java @@ -2,40 +2,31 @@ package gregtech.common.covers; import gregtech.api.interfaces.tileentity.ICoverable; import gregtech.api.util.GT_CoverBehavior; -import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase; public class GT_Cover_SolarPanel - extends GT_CoverBehavior -{ - private final int mVoltage; - - public GT_Cover_SolarPanel(int aVoltage) - { - this.mVoltage = aVoltage; - } - - public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) - { - if (aTimer % 100L == 0L) { - if ((aSide != 1) || (aTileEntity.getWorld().isThundering())) - { - aCoverVariable = 0; - } - else - { - boolean bRain = (aTileEntity.getWorld().isRaining()) && (aTileEntity.getBiome().rainfall > 0.0F); - aCoverVariable = bRain && aTileEntity.getWorld().skylightSubtracted >= 4 || !aTileEntity.getSkyAtSide(aSide) ? 0 : ((int) (!bRain && aTileEntity.getWorld().isDaytime() ? 1 : 2)); - } + extends GT_CoverBehavior { + private final int mVoltage; + + public GT_Cover_SolarPanel(int aVoltage) { + this.mVoltage = aVoltage; } - if ((aCoverVariable == 1) || ((aCoverVariable == 2) && (aTimer % 8L == 0L))) { - aTileEntity.injectEnergyUnits((byte)6, this.mVoltage, 1L); + + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + if (aTimer % 100L == 0L) { + if ((aSide != 1) || (aTileEntity.getWorld().isThundering())) { + aCoverVariable = 0; + } else { + boolean bRain = (aTileEntity.getWorld().isRaining()) && (aTileEntity.getBiome().rainfall > 0.0F); + aCoverVariable = bRain && aTileEntity.getWorld().skylightSubtracted >= 4 || !aTileEntity.getSkyAtSide(aSide) ? 0 : ((int) (!bRain && aTileEntity.getWorld().isDaytime() ? 1 : 2)); + } + } + if ((aCoverVariable == 1) || ((aCoverVariable == 2) && (aTimer % 8L == 0L))) { + aTileEntity.injectEnergyUnits((byte) 6, this.mVoltage, 1L); + } + return aCoverVariable; + } + + public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 1; } - return aCoverVariable; - } - - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return 1; - } } \ No newline at end of file diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Vent.java b/src/main/java/gregtech/common/covers/GT_Cover_Vent.java index 5bab99fb..e22c2945 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Vent.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Vent.java @@ -6,35 +6,29 @@ import gregtech.api.util.GT_CoverBehavior; import gregtech.api.util.GT_Utility; public class GT_Cover_Vent - extends GT_CoverBehavior -{ - private final int mEfficiency; - - public GT_Cover_Vent(int aEfficiency) - { - this.mEfficiency = aEfficiency; - } - - public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) - { - if ((aTileEntity instanceof IMachineProgress)) - { - if ((((IMachineProgress)aTileEntity).hasThingsToDo()) && (aCoverVariable != ((IMachineProgress)aTileEntity).getProgress()) && - (!GT_Utility.hasBlockHitBox(aTileEntity.getWorld(), aTileEntity.getOffsetX(aSide, 1), aTileEntity.getOffsetY(aSide, 1), aTileEntity.getOffsetZ(aSide, 1)))) { - ((IMachineProgress)aTileEntity).increaseProgress(this.mEfficiency); - } - return ((IMachineProgress)aTileEntity).getProgress(); + extends GT_CoverBehavior { + private final int mEfficiency; + + public GT_Cover_Vent(int aEfficiency) { + this.mEfficiency = aEfficiency; + } + + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { + if ((aTileEntity instanceof IMachineProgress)) { + if ((((IMachineProgress) aTileEntity).hasThingsToDo()) && (aCoverVariable != ((IMachineProgress) aTileEntity).getProgress()) && + (!GT_Utility.hasBlockHitBox(aTileEntity.getWorld(), aTileEntity.getOffsetX(aSide, 1), aTileEntity.getOffsetY(aSide, 1), aTileEntity.getOffsetZ(aSide, 1)))) { + ((IMachineProgress) aTileEntity).increaseProgress(this.mEfficiency); + } + return ((IMachineProgress) aTileEntity).getProgress(); + } + return 0; + } + + public boolean alwaysLookConnected(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 60; } - return 0; - } - - public boolean alwaysLookConnected(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return true; - } - - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) - { - return 60; - } } diff --git a/src/main/java/gregtech/common/entities/GT_Entity_Arrow.java b/src/main/java/gregtech/common/entities/GT_Entity_Arrow.java index db8ef1ac..778ca13e 100644 --- a/src/main/java/gregtech/common/entities/GT_Entity_Arrow.java +++ b/src/main/java/gregtech/common/entities/GT_Entity_Arrow.java @@ -1,15 +1,9 @@ package gregtech.common.entities; import com.mojang.authlib.GameProfile; -import gregtech.api.enums.Materials; import gregtech.api.objects.ItemData; -import gregtech.api.objects.MaterialStack; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; -import gregtech.api.util.GT_Utility.GT_EnchantmentHelper; -import java.util.List; -import java.util.Random; -import java.util.UUID; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.enchantment.Enchantment; @@ -20,372 +14,331 @@ import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.entity.monster.EntityEnderman; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.entity.player.PlayerCapabilities; import net.minecraft.entity.projectile.EntityArrow; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.NetHandlerPlayServer; import net.minecraft.network.play.server.S2BPacketChangeGameState; import net.minecraft.potion.Potion; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; +import net.minecraft.util.*; import net.minecraft.world.World; import net.minecraft.world.WorldServer; import net.minecraftforge.common.util.FakePlayerFactory; -public class GT_Entity_Arrow - extends EntityArrow -{ - private int mHitBlockX = -1; - private int mHitBlockY = -1; - private int mHitBlockZ = -1; - private Block mHitBlock = Blocks.air; - private int mHitBlockMeta = 0; - private boolean inGround = false; - private int mTicksAlive = 0; - private int ticksInAir = 0; - private int mKnockback = 0; - private ItemStack mArrow = null; - - public GT_Entity_Arrow(World aWorld) - { - super(aWorld); - } - - public GT_Entity_Arrow(World aWorld, double aX, double aY, double aZ) - { - super(aWorld, aX, aY, aZ); - } - - public GT_Entity_Arrow(World aWorld, EntityLivingBase aEntity, float aSpeed) - { - super(aWorld, aEntity, aSpeed); - } - - public GT_Entity_Arrow(EntityArrow aArrow, ItemStack aStack) - { - super(aArrow.worldObj); - NBTTagCompound tNBT = new NBTTagCompound(); - aArrow.writeToNBT(tNBT); - readFromNBT(tNBT); - setArrowItem(aStack); - } - - public void onUpdate() - { - onEntityUpdate(); - if ((this.mArrow == null) && (!this.worldObj.isRemote)) - { - setDead(); - return; - } - Entity tShootingEntity = this.shootingEntity; - if ((this.prevRotationPitch == 0.0F) && (this.prevRotationYaw == 0.0F)) - { - float f = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.prevRotationYaw = (this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / 3.141592653589793D)); - this.prevRotationPitch = (this.rotationPitch = (float)(Math.atan2(this.motionY, f) * 180.0D / 3.141592653589793D)); - } - if (this.mTicksAlive++ == 3000) { - setDead(); - } - Block tBlock = this.worldObj.getBlock(this.mHitBlockX, this.mHitBlockY, this.mHitBlockZ); - if (tBlock.getMaterial() != Material.air) - { - tBlock.setBlockBoundsBasedOnState(this.worldObj, this.mHitBlockX, this.mHitBlockY, this.mHitBlockZ); - AxisAlignedBB axisalignedbb = tBlock.getCollisionBoundingBoxFromPool(this.worldObj, this.mHitBlockX, this.mHitBlockY, this.mHitBlockZ); - if ((axisalignedbb != null) && (axisalignedbb.isVecInside(Vec3.createVectorHelper(this.posX, this.posY, this.posZ)))) { - this.inGround = true; - } - } - if (this.arrowShake > 0) { - this.arrowShake -= 1; - } - if (this.inGround) - { - int j = this.worldObj.getBlockMetadata(this.mHitBlockX, this.mHitBlockY, this.mHitBlockZ); - if ((tBlock != this.mHitBlock) || (j != this.mHitBlockMeta)) - { - this.inGround = false; - this.motionX *= this.rand.nextFloat() * 0.2F; - this.motionY *= this.rand.nextFloat() * 0.2F; - this.motionZ *= this.rand.nextFloat() * 0.2F; - this.mTicksAlive = 0; - this.ticksInAir = 0; - } - } - else - { - this.ticksInAir += 1; - Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - MovingObjectPosition tVector = this.worldObj.func_147447_a(vec31, vec3, false, true, false); - vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - if (tVector != null) { - vec3 = Vec3.createVectorHelper(tVector.hitVec.xCoord, tVector.hitVec.yCoord, tVector.hitVec.zCoord); - } - Entity tHitEntity = null; - List tAllPotentiallyHitEntities = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); - double tLargestDistance = 1.7976931348623157E+308D; - for (int i = 0; i < tAllPotentiallyHitEntities.size(); i++) - { - Entity entity1 = (Entity)tAllPotentiallyHitEntities.get(i); - if ((entity1.canBeCollidedWith()) && ((entity1 != tShootingEntity) || (this.ticksInAir >= 5))) - { - AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand(0.3D, 0.3D, 0.3D); - MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3); - if (movingobjectposition1 != null) - { - double tDistance = vec31.distanceTo(movingobjectposition1.hitVec); - if (tDistance < tLargestDistance) - { - tHitEntity = entity1; - tLargestDistance = tDistance; - } - } - } - } - if (tHitEntity != null) { - tVector = new MovingObjectPosition(tHitEntity); - } - if ((tVector != null) && (tVector.entityHit != null) && ((tVector.entityHit instanceof EntityPlayer))) - { - EntityPlayer entityplayer = (EntityPlayer)tVector.entityHit; - if ((entityplayer.capabilities.disableDamage) || (((tShootingEntity instanceof EntityPlayer)) && (!((EntityPlayer)tShootingEntity).canAttackPlayer(entityplayer)))) { - tVector = null; - } - } - if (tVector != null) { - if (tVector.entityHit != null) - { - ItemData tData = GT_OreDictUnificator.getItemData(this.mArrow); - +import java.util.List; +import java.util.UUID; - float tMagicDamage = (tVector.entityHit instanceof EntityLivingBase) ? EnchantmentHelper.func_152377_a(this.mArrow, ((EntityLivingBase)tVector.entityHit).getCreatureAttribute()) : 0.0F; - float tDamage = MathHelper.ceiling_double_int(MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ) * (getDamage() + ((tData != null) && (tData.mMaterial != null) && (tData.mMaterial.mMaterial != null) ? tData.mMaterial.mMaterial.mToolQuality / 2.0F - 1.0F : 0.0F))); - if (getIsCritical()) { - tDamage += this.rand.nextInt((int)(tDamage / 2.0D + 2.0D)); - } - int tFireDamage = (isBurning() ? 5 : 0) + 4 * EnchantmentHelper.getEnchantmentLevel(Enchantment.fireAspect.effectId, this.mArrow); - int tKnockback = this.mKnockback + EnchantmentHelper.getEnchantmentLevel(Enchantment.knockback.effectId, this.mArrow); - int tHitTimer = -1; - - int[] tDamages = onHitEntity(tVector.entityHit, tShootingEntity == null ? this : tShootingEntity, this.mArrow == null ? new ItemStack(Items.arrow, 1) : this.mArrow, (int)(tDamage * 2.0F), (int)(tMagicDamage * 2.0F), tKnockback, tFireDamage, tHitTimer); - if (tDamages != null) - { - tDamage = tDamages[0] / 2.0F; - tMagicDamage = tDamages[1] / 2.0F; - tKnockback = tDamages[2]; - tFireDamage = tDamages[3]; - tHitTimer = tDamages[4]; - if ((tFireDamage > 0) && (!(tVector.entityHit instanceof EntityEnderman))) { - tVector.entityHit.setFire(tFireDamage); - } - if ((!(tHitEntity instanceof EntityPlayer)) && (EnchantmentHelper.getEnchantmentLevel(Enchantment.looting.effectId, this.mArrow) > 0)) - { - EntityPlayer tPlayer = null; - if ((this.worldObj instanceof WorldServer)) { - tPlayer = FakePlayerFactory.get((WorldServer)this.worldObj, new GameProfile(new UUID(0L, 0L), (tShootingEntity instanceof EntityLivingBase) ? ((EntityLivingBase)tShootingEntity).getCommandSenderName() : "Arrow")); - } - if (tPlayer != null) - { - tPlayer.inventory.currentItem = 0; - tPlayer.inventory.setInventorySlotContents(0, getArrowItem()); - tShootingEntity = tPlayer; - tPlayer.setDead(); - } - } - DamageSource tDamageSource = DamageSource.causeArrowDamage(this, tShootingEntity == null ? this : tShootingEntity); - if ((tDamage + tMagicDamage > 0.0F) && (tVector.entityHit.attackEntityFrom(tDamageSource, tDamage + tMagicDamage))) - { - if ((tVector.entityHit instanceof EntityLivingBase)) - { - if (tHitTimer >= 0) { - tVector.entityHit.hurtResistantTime = tHitTimer; - } - if (((tVector.entityHit instanceof EntityCreeper)) && (EnchantmentHelper.getEnchantmentLevel(Enchantment.fireAspect.effectId, this.mArrow) > 0)) { - ((EntityCreeper)tVector.entityHit).func_146079_cb(); - } - EntityLivingBase tHitLivingEntity = (EntityLivingBase)tVector.entityHit; - if (!this.worldObj.isRemote) { - tHitLivingEntity.setArrowCountInEntity(tHitLivingEntity.getArrowCountInEntity() + 1); - } - if (tKnockback > 0) - { - float tKnockbackDivider = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - if (tKnockbackDivider > 0.0F) { - tHitLivingEntity.addVelocity(this.motionX * tKnockback * 0.6000000238418579D / tKnockbackDivider, 0.1D, this.motionZ * tKnockback * 0.6000000238418579D / tKnockbackDivider); - } - } - GT_Utility.GT_EnchantmentHelper.applyBullshitA(tHitLivingEntity, tShootingEntity == null ? this : tShootingEntity, this.mArrow); - GT_Utility.GT_EnchantmentHelper.applyBullshitB((tShootingEntity instanceof EntityLivingBase) ? (EntityLivingBase)tShootingEntity : null, tHitLivingEntity, this.mArrow); - if ((tShootingEntity != null) && (tHitLivingEntity != tShootingEntity) && ((tHitLivingEntity instanceof EntityPlayer)) && ((tShootingEntity instanceof EntityPlayerMP))) { - ((EntityPlayerMP)tShootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F)); - } - } - if (((tShootingEntity instanceof EntityPlayer)) && (tMagicDamage > 0.0F)) { - ((EntityPlayer)tShootingEntity).onEnchantmentCritical(tVector.entityHit); - } - if ((!(tVector.entityHit instanceof EntityEnderman)) || (((EntityEnderman)tVector.entityHit).getActivePotionEffect(Potion.weakness) != null)) - { - if (tFireDamage > 0) { - tVector.entityHit.setFire(tFireDamage); - } - playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F)); - setDead(); - } - } - else - { - this.motionX *= -0.1000000014901161D; - this.motionY *= -0.1000000014901161D; - this.motionZ *= -0.1000000014901161D; - this.rotationYaw += 180.0F; - this.prevRotationYaw += 180.0F; - this.ticksInAir = 0; - } - } - } - else - { - this.mHitBlockX = tVector.blockX; - this.mHitBlockY = tVector.blockY; - this.mHitBlockZ = tVector.blockZ; - this.mHitBlock = this.worldObj.getBlock(this.mHitBlockX, this.mHitBlockY, this.mHitBlockZ); - this.mHitBlockMeta = this.worldObj.getBlockMetadata(this.mHitBlockX, this.mHitBlockY, this.mHitBlockZ); - this.motionX = ((float)(tVector.hitVec.xCoord - this.posX)); - this.motionY = ((float)(tVector.hitVec.yCoord - this.posY)); - this.motionZ = ((float)(tVector.hitVec.zCoord - this.posZ)); - float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - this.posX -= this.motionX / f2 * 0.0500000007450581D; - this.posY -= this.motionY / f2 * 0.0500000007450581D; - this.posZ -= this.motionZ / f2 * 0.0500000007450581D; - playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F)); - this.inGround = true; - this.arrowShake = 7; - setIsCritical(false); - if (this.mHitBlock.getMaterial() != Material.air) { - this.mHitBlock.onEntityCollidedWithBlock(this.worldObj, this.mHitBlockX, this.mHitBlockY, this.mHitBlockZ, this); - } - if ((!this.worldObj.isRemote) && (EnchantmentHelper.getEnchantmentLevel(Enchantment.fireAspect.effectId, this.mArrow) > 2)) { - GT_Utility.setCoordsOnFire(this.worldObj, this.mHitBlockX, this.mHitBlockY, this.mHitBlockZ, true); - } - if (breaksOnImpact()) { +public class GT_Entity_Arrow + extends EntityArrow { + private int mHitBlockX = -1; + private int mHitBlockY = -1; + private int mHitBlockZ = -1; + private Block mHitBlock = Blocks.air; + private int mHitBlockMeta = 0; + private boolean inGround = false; + private int mTicksAlive = 0; + private int ticksInAir = 0; + private int mKnockback = 0; + private ItemStack mArrow = null; + + public GT_Entity_Arrow(World aWorld) { + super(aWorld); + } + + public GT_Entity_Arrow(World aWorld, double aX, double aY, double aZ) { + super(aWorld, aX, aY, aZ); + } + + public GT_Entity_Arrow(World aWorld, EntityLivingBase aEntity, float aSpeed) { + super(aWorld, aEntity, aSpeed); + } + + public GT_Entity_Arrow(EntityArrow aArrow, ItemStack aStack) { + super(aArrow.worldObj); + NBTTagCompound tNBT = new NBTTagCompound(); + aArrow.writeToNBT(tNBT); + readFromNBT(tNBT); + setArrowItem(aStack); + } + + public void onUpdate() { + onEntityUpdate(); + if ((this.mArrow == null) && (!this.worldObj.isRemote)) { setDead(); - } + return; } - } - if (getIsCritical()) { - for (int i = 0; i < 4; i++) { - this.worldObj.spawnParticle("crit", this.posX + this.motionX * i / 4.0D, this.posY + this.motionY * i / 4.0D, this.posZ + this.motionZ * i / 4.0D, -this.motionX, -this.motionY + 0.2D, -this.motionZ); + Entity tShootingEntity = this.shootingEntity; + if ((this.prevRotationPitch == 0.0F) && (this.prevRotationYaw == 0.0F)) { + float f = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.prevRotationYaw = (this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / 3.141592653589793D)); + this.prevRotationPitch = (this.rotationPitch = (float) (Math.atan2(this.motionY, f) * 180.0D / 3.141592653589793D)); } - } - this.posX += this.motionX;this.posY += this.motionY;this.posZ += this.motionZ; - - this.rotationYaw = ((float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / 3.141592653589793D)); - for (this.rotationPitch = ((float)(Math.atan2(this.motionY, MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ)) * 180.0D / 3.141592653589793D)); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) {} - while (this.rotationPitch - this.prevRotationPitch >= 180.0F) { - this.prevRotationPitch += 360.0F; - } - while (this.rotationYaw - this.prevRotationYaw < -180.0F) { - this.prevRotationYaw -= 360.0F; - } - while (this.rotationYaw - this.prevRotationYaw >= 180.0F) { - this.prevRotationYaw += 360.0F; - } - this.rotationPitch = (this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F); - this.rotationYaw = (this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F); - float tFrictionMultiplier = 0.99F; - if (isInWater()) - { - for (int l = 0; l < 4; l++) { - this.worldObj.spawnParticle("bubble", this.posX - this.motionX * 0.25D, this.posY - this.motionY * 0.25D, this.posZ - this.motionZ * 0.25D, this.motionX, this.motionY, this.motionZ); + if (this.mTicksAlive++ == 3000) { + setDead(); + } + Block tBlock = this.worldObj.getBlock(this.mHitBlockX, this.mHitBlockY, this.mHitBlockZ); + if (tBlock.getMaterial() != Material.air) { + tBlock.setBlockBoundsBasedOnState(this.worldObj, this.mHitBlockX, this.mHitBlockY, this.mHitBlockZ); + AxisAlignedBB axisalignedbb = tBlock.getCollisionBoundingBoxFromPool(this.worldObj, this.mHitBlockX, this.mHitBlockY, this.mHitBlockZ); + if ((axisalignedbb != null) && (axisalignedbb.isVecInside(Vec3.createVectorHelper(this.posX, this.posY, this.posZ)))) { + this.inGround = true; + } + } + if (this.arrowShake > 0) { + this.arrowShake -= 1; + } + if (this.inGround) { + int j = this.worldObj.getBlockMetadata(this.mHitBlockX, this.mHitBlockY, this.mHitBlockZ); + if ((tBlock != this.mHitBlock) || (j != this.mHitBlockMeta)) { + this.inGround = false; + this.motionX *= this.rand.nextFloat() * 0.2F; + this.motionY *= this.rand.nextFloat() * 0.2F; + this.motionZ *= this.rand.nextFloat() * 0.2F; + this.mTicksAlive = 0; + this.ticksInAir = 0; + } + } else { + this.ticksInAir += 1; + Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); + MovingObjectPosition tVector = this.worldObj.func_147447_a(vec31, vec3, false, true, false); + vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); + if (tVector != null) { + vec3 = Vec3.createVectorHelper(tVector.hitVec.xCoord, tVector.hitVec.yCoord, tVector.hitVec.zCoord); + } + Entity tHitEntity = null; + List tAllPotentiallyHitEntities = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); + double tLargestDistance = 1.7976931348623157E+308D; + for (int i = 0; i < tAllPotentiallyHitEntities.size(); i++) { + Entity entity1 = (Entity) tAllPotentiallyHitEntities.get(i); + if ((entity1.canBeCollidedWith()) && ((entity1 != tShootingEntity) || (this.ticksInAir >= 5))) { + AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand(0.3D, 0.3D, 0.3D); + MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3); + if (movingobjectposition1 != null) { + double tDistance = vec31.distanceTo(movingobjectposition1.hitVec); + if (tDistance < tLargestDistance) { + tHitEntity = entity1; + tLargestDistance = tDistance; + } + } + } + } + if (tHitEntity != null) { + tVector = new MovingObjectPosition(tHitEntity); + } + if ((tVector != null) && (tVector.entityHit != null) && ((tVector.entityHit instanceof EntityPlayer))) { + EntityPlayer entityplayer = (EntityPlayer) tVector.entityHit; + if ((entityplayer.capabilities.disableDamage) || (((tShootingEntity instanceof EntityPlayer)) && (!((EntityPlayer) tShootingEntity).canAttackPlayer(entityplayer)))) { + tVector = null; + } + } + if (tVector != null) { + if (tVector.entityHit != null) { + ItemData tData = GT_OreDictUnificator.getItemData(this.mArrow); + + + float tMagicDamage = (tVector.entityHit instanceof EntityLivingBase) ? EnchantmentHelper.func_152377_a(this.mArrow, ((EntityLivingBase) tVector.entityHit).getCreatureAttribute()) : 0.0F; + float tDamage = MathHelper.ceiling_double_int(MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ) * (getDamage() + ((tData != null) && (tData.mMaterial != null) && (tData.mMaterial.mMaterial != null) ? tData.mMaterial.mMaterial.mToolQuality / 2.0F - 1.0F : 0.0F))); + if (getIsCritical()) { + tDamage += this.rand.nextInt((int) (tDamage / 2.0D + 2.0D)); + } + int tFireDamage = (isBurning() ? 5 : 0) + 4 * EnchantmentHelper.getEnchantmentLevel(Enchantment.fireAspect.effectId, this.mArrow); + int tKnockback = this.mKnockback + EnchantmentHelper.getEnchantmentLevel(Enchantment.knockback.effectId, this.mArrow); + int tHitTimer = -1; + + int[] tDamages = onHitEntity(tVector.entityHit, tShootingEntity == null ? this : tShootingEntity, this.mArrow == null ? new ItemStack(Items.arrow, 1) : this.mArrow, (int) (tDamage * 2.0F), (int) (tMagicDamage * 2.0F), tKnockback, tFireDamage, tHitTimer); + if (tDamages != null) { + tDamage = tDamages[0] / 2.0F; + tMagicDamage = tDamages[1] / 2.0F; + tKnockback = tDamages[2]; + tFireDamage = tDamages[3]; + tHitTimer = tDamages[4]; + if ((tFireDamage > 0) && (!(tVector.entityHit instanceof EntityEnderman))) { + tVector.entityHit.setFire(tFireDamage); + } + if ((!(tHitEntity instanceof EntityPlayer)) && (EnchantmentHelper.getEnchantmentLevel(Enchantment.looting.effectId, this.mArrow) > 0)) { + EntityPlayer tPlayer = null; + if ((this.worldObj instanceof WorldServer)) { + tPlayer = FakePlayerFactory.get((WorldServer) this.worldObj, new GameProfile(new UUID(0L, 0L), (tShootingEntity instanceof EntityLivingBase) ? ((EntityLivingBase) tShootingEntity).getCommandSenderName() : "Arrow")); + } + if (tPlayer != null) { + tPlayer.inventory.currentItem = 0; + tPlayer.inventory.setInventorySlotContents(0, getArrowItem()); + tShootingEntity = tPlayer; + tPlayer.setDead(); + } + } + DamageSource tDamageSource = DamageSource.causeArrowDamage(this, tShootingEntity == null ? this : tShootingEntity); + if ((tDamage + tMagicDamage > 0.0F) && (tVector.entityHit.attackEntityFrom(tDamageSource, tDamage + tMagicDamage))) { + if ((tVector.entityHit instanceof EntityLivingBase)) { + if (tHitTimer >= 0) { + tVector.entityHit.hurtResistantTime = tHitTimer; + } + if (((tVector.entityHit instanceof EntityCreeper)) && (EnchantmentHelper.getEnchantmentLevel(Enchantment.fireAspect.effectId, this.mArrow) > 0)) { + ((EntityCreeper) tVector.entityHit).func_146079_cb(); + } + EntityLivingBase tHitLivingEntity = (EntityLivingBase) tVector.entityHit; + if (!this.worldObj.isRemote) { + tHitLivingEntity.setArrowCountInEntity(tHitLivingEntity.getArrowCountInEntity() + 1); + } + if (tKnockback > 0) { + float tKnockbackDivider = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + if (tKnockbackDivider > 0.0F) { + tHitLivingEntity.addVelocity(this.motionX * tKnockback * 0.6000000238418579D / tKnockbackDivider, 0.1D, this.motionZ * tKnockback * 0.6000000238418579D / tKnockbackDivider); + } + } + GT_Utility.GT_EnchantmentHelper.applyBullshitA(tHitLivingEntity, tShootingEntity == null ? this : tShootingEntity, this.mArrow); + GT_Utility.GT_EnchantmentHelper.applyBullshitB((tShootingEntity instanceof EntityLivingBase) ? (EntityLivingBase) tShootingEntity : null, tHitLivingEntity, this.mArrow); + if ((tShootingEntity != null) && (tHitLivingEntity != tShootingEntity) && ((tHitLivingEntity instanceof EntityPlayer)) && ((tShootingEntity instanceof EntityPlayerMP))) { + ((EntityPlayerMP) tShootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F)); + } + } + if (((tShootingEntity instanceof EntityPlayer)) && (tMagicDamage > 0.0F)) { + ((EntityPlayer) tShootingEntity).onEnchantmentCritical(tVector.entityHit); + } + if ((!(tVector.entityHit instanceof EntityEnderman)) || (((EntityEnderman) tVector.entityHit).getActivePotionEffect(Potion.weakness) != null)) { + if (tFireDamage > 0) { + tVector.entityHit.setFire(tFireDamage); + } + playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F)); + setDead(); + } + } else { + this.motionX *= -0.1000000014901161D; + this.motionY *= -0.1000000014901161D; + this.motionZ *= -0.1000000014901161D; + this.rotationYaw += 180.0F; + this.prevRotationYaw += 180.0F; + this.ticksInAir = 0; + } + } + } else { + this.mHitBlockX = tVector.blockX; + this.mHitBlockY = tVector.blockY; + this.mHitBlockZ = tVector.blockZ; + this.mHitBlock = this.worldObj.getBlock(this.mHitBlockX, this.mHitBlockY, this.mHitBlockZ); + this.mHitBlockMeta = this.worldObj.getBlockMetadata(this.mHitBlockX, this.mHitBlockY, this.mHitBlockZ); + this.motionX = ((float) (tVector.hitVec.xCoord - this.posX)); + this.motionY = ((float) (tVector.hitVec.yCoord - this.posY)); + this.motionZ = ((float) (tVector.hitVec.zCoord - this.posZ)); + float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); + this.posX -= this.motionX / f2 * 0.0500000007450581D; + this.posY -= this.motionY / f2 * 0.0500000007450581D; + this.posZ -= this.motionZ / f2 * 0.0500000007450581D; + playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F)); + this.inGround = true; + this.arrowShake = 7; + setIsCritical(false); + if (this.mHitBlock.getMaterial() != Material.air) { + this.mHitBlock.onEntityCollidedWithBlock(this.worldObj, this.mHitBlockX, this.mHitBlockY, this.mHitBlockZ, this); + } + if ((!this.worldObj.isRemote) && (EnchantmentHelper.getEnchantmentLevel(Enchantment.fireAspect.effectId, this.mArrow) > 2)) { + GT_Utility.setCoordsOnFire(this.worldObj, this.mHitBlockX, this.mHitBlockY, this.mHitBlockZ, true); + } + if (breaksOnImpact()) { + setDead(); + } + } + } + if (getIsCritical()) { + for (int i = 0; i < 4; i++) { + this.worldObj.spawnParticle("crit", this.posX + this.motionX * i / 4.0D, this.posY + this.motionY * i / 4.0D, this.posZ + this.motionZ * i / 4.0D, -this.motionX, -this.motionY + 0.2D, -this.motionZ); + } + } + this.posX += this.motionX; + this.posY += this.motionY; + this.posZ += this.motionZ; + + this.rotationYaw = ((float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / 3.141592653589793D)); + for (this.rotationPitch = ((float) (Math.atan2(this.motionY, MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ)) * 180.0D / 3.141592653589793D)); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) { + } + while (this.rotationPitch - this.prevRotationPitch >= 180.0F) { + this.prevRotationPitch += 360.0F; + } + while (this.rotationYaw - this.prevRotationYaw < -180.0F) { + this.prevRotationYaw -= 360.0F; + } + while (this.rotationYaw - this.prevRotationYaw >= 180.0F) { + this.prevRotationYaw += 360.0F; + } + this.rotationPitch = (this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F); + this.rotationYaw = (this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F); + float tFrictionMultiplier = 0.99F; + if (isInWater()) { + for (int l = 0; l < 4; l++) { + this.worldObj.spawnParticle("bubble", this.posX - this.motionX * 0.25D, this.posY - this.motionY * 0.25D, this.posZ - this.motionZ * 0.25D, this.motionX, this.motionY, this.motionZ); + } + tFrictionMultiplier = 0.8F; + } + if (isWet()) { + extinguish(); + } + this.motionX *= tFrictionMultiplier; + this.motionY *= tFrictionMultiplier; + this.motionZ *= tFrictionMultiplier; + this.motionY -= 0.0500000007450581D; + setPosition(this.posX, this.posY, this.posZ); + func_145775_I(); } - tFrictionMultiplier = 0.8F; - } - if (isWet()) { - extinguish(); - } - this.motionX *= tFrictionMultiplier; - this.motionY *= tFrictionMultiplier; - this.motionZ *= tFrictionMultiplier; - this.motionY -= 0.0500000007450581D; - setPosition(this.posX, this.posY, this.posZ); - func_145775_I(); } - } - - public void writeEntityToNBT(NBTTagCompound aNBT) - { - super.writeEntityToNBT(aNBT); - aNBT.setShort("xTile", (short)this.mHitBlockX); - aNBT.setShort("yTile", (short)this.mHitBlockY); - aNBT.setShort("zTile", (short)this.mHitBlockZ); - aNBT.setShort("life", (short)this.mTicksAlive); - aNBT.setByte("inTile", (byte)Block.getIdFromBlock(this.mHitBlock)); - aNBT.setByte("inData", (byte)this.mHitBlockMeta); - aNBT.setByte("shake", (byte)this.arrowShake); - aNBT.setByte("inGround", (byte)(this.inGround ? 1 : 0)); - aNBT.setByte("pickup", (byte)this.canBePickedUp); - aNBT.setDouble("damage", getDamage()); - aNBT.setTag("mArrow", this.mArrow == null ? null : this.mArrow.writeToNBT(new NBTTagCompound())); - } - - public void readEntityFromNBT(NBTTagCompound aNBT) - { - super.readEntityFromNBT(aNBT); - this.mHitBlockX = aNBT.getShort("xTile"); - this.mHitBlockY = aNBT.getShort("yTile"); - this.mHitBlockZ = aNBT.getShort("zTile"); - this.mTicksAlive = aNBT.getShort("life"); - this.mHitBlock = Block.getBlockById(aNBT.getByte("inTile") & 0xFF); - this.mHitBlockMeta = (aNBT.getByte("inData") & 0xFF); - this.arrowShake = (aNBT.getByte("shake") & 0xFF); - this.inGround = (aNBT.getByte("inGround") == 1); - setDamage(aNBT.getDouble("damage")); - this.canBePickedUp = aNBT.getByte("pickup"); - this.mArrow = GT_Utility.loadItem(aNBT, "mArrow"); - } - - public void onCollideWithPlayer(EntityPlayer aPlayer) - { - if ((!this.worldObj.isRemote) && (this.inGround) && (this.arrowShake <= 0) && (this.canBePickedUp == 1) && (aPlayer.inventory.addItemStackToInventory(getArrowItem()))) - { - playSound("random.pop", 0.2F, ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.7F + 1.0F) * 2.0F); - aPlayer.onItemPickup(this, 1); - setDead(); + + public void writeEntityToNBT(NBTTagCompound aNBT) { + super.writeEntityToNBT(aNBT); + aNBT.setShort("xTile", (short) this.mHitBlockX); + aNBT.setShort("yTile", (short) this.mHitBlockY); + aNBT.setShort("zTile", (short) this.mHitBlockZ); + aNBT.setShort("life", (short) this.mTicksAlive); + aNBT.setByte("inTile", (byte) Block.getIdFromBlock(this.mHitBlock)); + aNBT.setByte("inData", (byte) this.mHitBlockMeta); + aNBT.setByte("shake", (byte) this.arrowShake); + aNBT.setByte("inGround", (byte) (this.inGround ? 1 : 0)); + aNBT.setByte("pickup", (byte) this.canBePickedUp); + aNBT.setDouble("damage", getDamage()); + aNBT.setTag("mArrow", this.mArrow == null ? null : this.mArrow.writeToNBT(new NBTTagCompound())); + } + + public void readEntityFromNBT(NBTTagCompound aNBT) { + super.readEntityFromNBT(aNBT); + this.mHitBlockX = aNBT.getShort("xTile"); + this.mHitBlockY = aNBT.getShort("yTile"); + this.mHitBlockZ = aNBT.getShort("zTile"); + this.mTicksAlive = aNBT.getShort("life"); + this.mHitBlock = Block.getBlockById(aNBT.getByte("inTile") & 0xFF); + this.mHitBlockMeta = (aNBT.getByte("inData") & 0xFF); + this.arrowShake = (aNBT.getByte("shake") & 0xFF); + this.inGround = (aNBT.getByte("inGround") == 1); + setDamage(aNBT.getDouble("damage")); + this.canBePickedUp = aNBT.getByte("pickup"); + this.mArrow = GT_Utility.loadItem(aNBT, "mArrow"); + } + + public void onCollideWithPlayer(EntityPlayer aPlayer) { + if ((!this.worldObj.isRemote) && (this.inGround) && (this.arrowShake <= 0) && (this.canBePickedUp == 1) && (aPlayer.inventory.addItemStackToInventory(getArrowItem()))) { + playSound("random.pop", 0.2F, ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.7F + 1.0F) * 2.0F); + aPlayer.onItemPickup(this, 1); + setDead(); + } + } + + public int[] onHitEntity(Entity aHitEntity, Entity aShootingEntity, ItemStack aArrow, int aRegularDamage, int aMagicDamage, int aKnockback, int aFireDamage, int aHitTimer) { + return new int[]{aRegularDamage, aMagicDamage, aKnockback, aFireDamage, aHitTimer}; + } + + public ItemStack getArrowItem() { + return GT_Utility.copy(new Object[]{this.mArrow}); + } + + public void setArrowItem(ItemStack aStack) { + this.mArrow = GT_Utility.updateItemStack(GT_Utility.copyAmount(1L, new Object[]{aStack})); + } + + public boolean breaksOnImpact() { + return false; + } + + public void setKnockbackStrength(int aKnockback) { + this.mKnockback = aKnockback; } - } - - public int[] onHitEntity(Entity aHitEntity, Entity aShootingEntity, ItemStack aArrow, int aRegularDamage, int aMagicDamage, int aKnockback, int aFireDamage, int aHitTimer) - { - return new int[] { aRegularDamage, aMagicDamage, aKnockback, aFireDamage, aHitTimer }; - } - - public void setArrowItem(ItemStack aStack) - { - this.mArrow = GT_Utility.updateItemStack(GT_Utility.copyAmount(1L, new Object[] { aStack })); - } - - public ItemStack getArrowItem() - { - return GT_Utility.copy(new Object[] { this.mArrow }); - } - - public boolean breaksOnImpact() - { - return false; - } - - public void setKnockbackStrength(int aKnockback) - { - this.mKnockback = aKnockback; - } } diff --git a/src/main/java/gregtech/common/entities/GT_Entity_Arrow_Potion.java b/src/main/java/gregtech/common/entities/GT_Entity_Arrow_Potion.java index a6626b18..72950e87 100644 --- a/src/main/java/gregtech/common/entities/GT_Entity_Arrow_Potion.java +++ b/src/main/java/gregtech/common/entities/GT_Entity_Arrow_Potion.java @@ -1,6 +1,5 @@ package gregtech.common.entities; -import java.util.Random; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; @@ -9,63 +8,53 @@ import net.minecraft.potion.PotionEffect; import net.minecraft.world.World; public class GT_Entity_Arrow_Potion - extends GT_Entity_Arrow -{ - public GT_Entity_Arrow_Potion(World aWorld) - { - super(aWorld); - } - - public GT_Entity_Arrow_Potion(World aWorld, double aX, double aY, double aZ) - { - super(aWorld, aX, aY, aZ); - } - - public GT_Entity_Arrow_Potion(World aWorld, EntityLivingBase aEntity, float aSpeed) - { - super(aWorld, aEntity, aSpeed); - } - - public void writeEntityToNBT(NBTTagCompound aNBT) - { - super.writeEntityToNBT(aNBT); - aNBT.setIntArray("mPotions", this.mPotions); - } - - public void readEntityFromNBT(NBTTagCompound aNBT) - { - super.readEntityFromNBT(aNBT); - setPotions(aNBT.getIntArray("mPotions")); - } - - public boolean breaksOnImpact() - { - return true; - } - - public void setPotions(int... aPotions) - { - if (aPotions != null) { - this.mPotions = aPotions; + extends GT_Entity_Arrow { + private int[] mPotions = new int[0]; + + public GT_Entity_Arrow_Potion(World aWorld) { + super(aWorld); } - } - - public int[] getPotions() - { - return this.mPotions; - } - - private int[] mPotions = new int[0]; - - public int[] onHitEntity(Entity aHitEntity, Entity aShootingEntity, ItemStack aArrow, int aRegularDamage, int aMagicDamage, int aKnockback, int aFireDamage, int aHitTimer) - { - if ((aHitEntity instanceof EntityLivingBase)) { - for (int i = 3; i < this.mPotions.length; i += 4) { - if (aHitEntity.worldObj.rand.nextInt(100) < this.mPotions[i]) { - ((EntityLivingBase)aHitEntity).addPotionEffect(new PotionEffect(this.mPotions[(i - 3)], this.mPotions[(i - 2)], this.mPotions[(i - 1)], false)); + + public GT_Entity_Arrow_Potion(World aWorld, double aX, double aY, double aZ) { + super(aWorld, aX, aY, aZ); + } + + public GT_Entity_Arrow_Potion(World aWorld, EntityLivingBase aEntity, float aSpeed) { + super(aWorld, aEntity, aSpeed); + } + + public void writeEntityToNBT(NBTTagCompound aNBT) { + super.writeEntityToNBT(aNBT); + aNBT.setIntArray("mPotions", this.mPotions); + } + + public void readEntityFromNBT(NBTTagCompound aNBT) { + super.readEntityFromNBT(aNBT); + setPotions(aNBT.getIntArray("mPotions")); + } + + public boolean breaksOnImpact() { + return true; + } + + public int[] getPotions() { + return this.mPotions; + } + + public void setPotions(int... aPotions) { + if (aPotions != null) { + this.mPotions = aPotions; } - } } - return super.onHitEntity(aHitEntity, aShootingEntity, aArrow, 1, aMagicDamage, aKnockback, aFireDamage, aHitTimer); - } + + public int[] onHitEntity(Entity aHitEntity, Entity aShootingEntity, ItemStack aArrow, int aRegularDamage, int aMagicDamage, int aKnockback, int aFireDamage, int aHitTimer) { + if ((aHitEntity instanceof EntityLivingBase)) { + for (int i = 3; i < this.mPotions.length; i += 4) { + if (aHitEntity.worldObj.rand.nextInt(100) < this.mPotions[i]) { + ((EntityLivingBase) aHitEntity).addPotionEffect(new PotionEffect(this.mPotions[(i - 3)], this.mPotions[(i - 2)], this.mPotions[(i - 1)], false)); + } + } + } + return super.onHitEntity(aHitEntity, aShootingEntity, aArrow, 1, aMagicDamage, aKnockback, aFireDamage, aHitTimer); + } } diff --git a/src/main/java/gregtech/common/gui/GT_Container_Boiler.java b/src/main/java/gregtech/common/gui/GT_Container_Boiler.java index 7ab8cc0f..4a74a43f 100644 --- a/src/main/java/gregtech/common/gui/GT_Container_Boiler.java +++ b/src/main/java/gregtech/common/gui/GT_Container_Boiler.java @@ -5,87 +5,79 @@ import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.gui.GT_ContainerMetaTile_Machine; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.common.tileentities.boilers.GT_MetaTileEntity_Boiler; -import java.util.Iterator; -import java.util.List; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.Slot; -import net.minecraftforge.fluids.FluidStack; + +import java.util.Iterator; public class GT_Container_Boiler - extends GT_ContainerMetaTile_Machine -{ - public GT_Container_Boiler(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, int aSteamCapacity) - { - super(aInventoryPlayer, aTileEntity); - this.mSteamCapacity = aSteamCapacity; - } - - public void addSlots(InventoryPlayer aInventoryPlayer) - { - addSlotToContainer(new Slot(this.mTileEntity, 2, 116, 62)); - addSlotToContainer(new Slot(this.mTileEntity, 0, 44, 26)); - addSlotToContainer(new Slot(this.mTileEntity, 1, 44, 62)); - addSlotToContainer(new Slot(this.mTileEntity, 3, 116, 26)); - } - - public int getSlotCount() - { - return 4; - } - - public int getShiftClickSlotCount() - { - return 1; - } - - public int mWaterAmount = 0; - public int mSteamAmount = 0; - public int mProcessingEnergy = 0; - public int mTemperature = 2; - private final int mSteamCapacity; - - public void detectAndSendChanges() - { - super.detectAndSendChanges(); - if ((this.mTileEntity.isClientSide()) || (this.mTileEntity.getMetaTileEntity() == null)) { - return; + extends GT_ContainerMetaTile_Machine { + private final int mSteamCapacity; + public int mWaterAmount = 0; + public int mSteamAmount = 0; + public int mProcessingEnergy = 0; + public int mTemperature = 2; + public GT_Container_Boiler(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, int aSteamCapacity) { + super(aInventoryPlayer, aTileEntity); + this.mSteamCapacity = aSteamCapacity; } - this.mTemperature = ((GT_MetaTileEntity_Boiler)this.mTileEntity.getMetaTileEntity()).mTemperature; - this.mProcessingEnergy = ((GT_MetaTileEntity_Boiler)this.mTileEntity.getMetaTileEntity()).mProcessingEnergy; - this.mSteamAmount = (((GT_MetaTileEntity_Boiler)this.mTileEntity.getMetaTileEntity()).mSteam == null ? 0 : ((GT_MetaTileEntity_Boiler)this.mTileEntity.getMetaTileEntity()).mSteam.amount); - this.mWaterAmount = (((GT_MetaTileEntity_Boiler)this.mTileEntity.getMetaTileEntity()).mFluid == null ? 0 : ((GT_MetaTileEntity_Boiler)this.mTileEntity.getMetaTileEntity()).mFluid.amount); - - this.mTemperature = Math.min(54, Math.max(0, this.mTemperature * 54 / (((GT_MetaTileEntity_Boiler)this.mTileEntity.getMetaTileEntity()).maxProgresstime() - 10))); - this.mSteamAmount = Math.min(54, Math.max(0, this.mSteamAmount * 54 / (this.mSteamCapacity - 100))); - this.mWaterAmount = Math.min(54, Math.max(0, this.mWaterAmount * 54 / 15900)); - this.mProcessingEnergy = Math.min(14, Math.max(this.mProcessingEnergy > 0 ? 1 : 0, this.mProcessingEnergy * 14 / 1000)); - - Iterator var2 = this.crafters.iterator(); - while (var2.hasNext()) - { - ICrafting var1 = (ICrafting)var2.next(); - var1.sendProgressBarUpdate(this, 100, this.mTemperature); - var1.sendProgressBarUpdate(this, 101, this.mProcessingEnergy); - var1.sendProgressBarUpdate(this, 102, this.mSteamAmount); - var1.sendProgressBarUpdate(this, 103, this.mWaterAmount); + + public void addSlots(InventoryPlayer aInventoryPlayer) { + addSlotToContainer(new Slot(this.mTileEntity, 2, 116, 62)); + addSlotToContainer(new Slot(this.mTileEntity, 0, 44, 26)); + addSlotToContainer(new Slot(this.mTileEntity, 1, 44, 62)); + addSlotToContainer(new Slot(this.mTileEntity, 3, 116, 26)); } - } - - @SideOnly(Side.CLIENT) - public void updateProgressBar(int par1, int par2) - { - super.updateProgressBar(par1, par2); - switch (par1) - { - case 100: - this.mTemperature = par2; break; - case 101: - this.mProcessingEnergy = par2; break; - case 102: - this.mSteamAmount = par2; break; - case 103: - this.mWaterAmount = par2; + + public int getSlotCount() { + return 4; + } + + public int getShiftClickSlotCount() { + return 1; + } + + public void detectAndSendChanges() { + super.detectAndSendChanges(); + if ((this.mTileEntity.isClientSide()) || (this.mTileEntity.getMetaTileEntity() == null)) { + return; + } + this.mTemperature = ((GT_MetaTileEntity_Boiler) this.mTileEntity.getMetaTileEntity()).mTemperature; + this.mProcessingEnergy = ((GT_MetaTileEntity_Boiler) this.mTileEntity.getMetaTileEntity()).mProcessingEnergy; + this.mSteamAmount = (((GT_MetaTileEntity_Boiler) this.mTileEntity.getMetaTileEntity()).mSteam == null ? 0 : ((GT_MetaTileEntity_Boiler) this.mTileEntity.getMetaTileEntity()).mSteam.amount); + this.mWaterAmount = (((GT_MetaTileEntity_Boiler) this.mTileEntity.getMetaTileEntity()).mFluid == null ? 0 : ((GT_MetaTileEntity_Boiler) this.mTileEntity.getMetaTileEntity()).mFluid.amount); + + this.mTemperature = Math.min(54, Math.max(0, this.mTemperature * 54 / (((GT_MetaTileEntity_Boiler) this.mTileEntity.getMetaTileEntity()).maxProgresstime() - 10))); + this.mSteamAmount = Math.min(54, Math.max(0, this.mSteamAmount * 54 / (this.mSteamCapacity - 100))); + this.mWaterAmount = Math.min(54, Math.max(0, this.mWaterAmount * 54 / 15900)); + this.mProcessingEnergy = Math.min(14, Math.max(this.mProcessingEnergy > 0 ? 1 : 0, this.mProcessingEnergy * 14 / 1000)); + + Iterator var2 = this.crafters.iterator(); + while (var2.hasNext()) { + ICrafting var1 = (ICrafting) var2.next(); + var1.sendProgressBarUpdate(this, 100, this.mTemperature); + var1.sendProgressBarUpdate(this, 101, this.mProcessingEnergy); + var1.sendProgressBarUpdate(this, 102, this.mSteamAmount); + var1.sendProgressBarUpdate(this, 103, this.mWaterAmount); + } + } + + @SideOnly(Side.CLIENT) + public void updateProgressBar(int par1, int par2) { + super.updateProgressBar(par1, par2); + switch (par1) { + case 100: + this.mTemperature = par2; + break; + case 101: + this.mProcessingEnergy = par2; + break; + case 102: + this.mSteamAmount = par2; + break; + case 103: + this.mWaterAmount = par2; + } } - } } diff --git a/src/main/java/gregtech/common/gui/GT_Container_BronzeBlastFurnace.java b/src/main/java/gregtech/common/gui/GT_Container_BronzeBlastFurnace.java index 7dc97e09..8050755b 100644 --- a/src/main/java/gregtech/common/gui/GT_Container_BronzeBlastFurnace.java +++ b/src/main/java/gregtech/common/gui/GT_Container_BronzeBlastFurnace.java @@ -7,28 +7,23 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; public class GT_Container_BronzeBlastFurnace - extends GT_ContainerMetaTile_Machine -{ - public GT_Container_BronzeBlastFurnace(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) - { - super(aInventoryPlayer, aTileEntity); - } - - public void addSlots(InventoryPlayer aInventoryPlayer) - { - addSlotToContainer(new Slot(this.mTileEntity, 0, 34, 16)); - addSlotToContainer(new Slot(this.mTileEntity, 1, 34, 34)); - addSlotToContainer(new GT_Slot_Output(this.mTileEntity, 2, 86, 25)); - addSlotToContainer(new GT_Slot_Output(this.mTileEntity, 3, 104, 25)); - } - - public int getSlotCount() - { - return 4; - } - - public int getShiftClickSlotCount() - { - return 2; - } + extends GT_ContainerMetaTile_Machine { + public GT_Container_BronzeBlastFurnace(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(aInventoryPlayer, aTileEntity); + } + + public void addSlots(InventoryPlayer aInventoryPlayer) { + addSlotToContainer(new Slot(this.mTileEntity, 0, 34, 16)); + addSlotToContainer(new Slot(this.mTileEntity, 1, 34, 34)); + addSlotToContainer(new GT_Slot_Output(this.mTileEntity, 2, 86, 25)); + addSlotToContainer(new GT_Slot_Output(this.mTileEntity, 3, 104, 25)); + } + + public int getSlotCount() { + return 4; + } + + public int getShiftClickSlotCount() { + return 2; + } } diff --git a/src/main/java/gregtech/common/gui/GT_Container_ChestBuffer.java b/src/main/java/gregtech/common/gui/GT_Container_ChestBuffer.java index f2fd7848..8cd6e9db 100644 --- a/src/main/java/gregtech/common/gui/GT_Container_ChestBuffer.java +++ b/src/main/java/gregtech/common/gui/GT_Container_ChestBuffer.java @@ -5,84 +5,73 @@ import gregtech.api.gui.GT_Slot_Holo; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.util.GT_Utility; import gregtech.common.tileentities.automation.GT_MetaTileEntity_ChestBuffer; -import java.util.List; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; public class GT_Container_ChestBuffer - extends GT_ContainerMetaTile_Machine -{ - public GT_Container_ChestBuffer(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) - { - super(aInventoryPlayer, aTileEntity); - } - - public void addSlots(InventoryPlayer aInventoryPlayer) - { - for (int y = 0; y < 3; y++) { - for (int x = 0; x < 9; x++) { - addSlotToContainer(new Slot(this.mTileEntity, x + y * 9, 8 + x * 18, 5 + y * 18)); - } + extends GT_ContainerMetaTile_Machine { + public GT_Container_ChestBuffer(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(aInventoryPlayer, aTileEntity); } - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 27, 8, 63, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 27, 26, 63, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 27, 44, 63, false, true, 1)); - } - - public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) - { - if (aSlotIndex < 27) { - return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + + public void addSlots(InventoryPlayer aInventoryPlayer) { + for (int y = 0; y < 3; y++) { + for (int x = 0; x < 9; x++) { + addSlotToContainer(new Slot(this.mTileEntity, x + y * 9, 8 + x * 18, 5 + y * 18)); + } + } + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 27, 8, 63, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 27, 26, 63, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 27, 44, 63, false, true, 1)); } - Slot tSlot = (Slot)this.inventorySlots.get(aSlotIndex); - if (tSlot != null) - { - if (this.mTileEntity.getMetaTileEntity() == null) { - return null; - } - if (aSlotIndex == 27) - { - ((GT_MetaTileEntity_ChestBuffer)this.mTileEntity.getMetaTileEntity()).bOutput = (!((GT_MetaTileEntity_ChestBuffer)this.mTileEntity.getMetaTileEntity()).bOutput); - if (((GT_MetaTileEntity_ChestBuffer)this.mTileEntity.getMetaTileEntity()).bOutput) { - GT_Utility.sendChatToPlayer(aPlayer, "Emit Energy to Outputside"); - } else { - GT_Utility.sendChatToPlayer(aPlayer, "Don't emit Energy"); + + public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { + if (aSlotIndex < 27) { + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); } - return null; - } - if (aSlotIndex == 28) - { - ((GT_MetaTileEntity_ChestBuffer)this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull = (!((GT_MetaTileEntity_ChestBuffer)this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull); - if (((GT_MetaTileEntity_ChestBuffer)this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull) { - GT_Utility.sendChatToPlayer(aPlayer, "Emit Redstone if no Slot is free"); - } else { - GT_Utility.sendChatToPlayer(aPlayer, "Don't emit Redstone"); + Slot tSlot = (Slot) this.inventorySlots.get(aSlotIndex); + if (tSlot != null) { + if (this.mTileEntity.getMetaTileEntity() == null) { + return null; + } + if (aSlotIndex == 27) { + ((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bOutput = (!((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bOutput); + if (((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bOutput) { + GT_Utility.sendChatToPlayer(aPlayer, "Emit Energy to Outputside"); + } else { + GT_Utility.sendChatToPlayer(aPlayer, "Don't emit Energy"); + } + return null; + } + if (aSlotIndex == 28) { + ((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull = (!((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull); + if (((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull) { + GT_Utility.sendChatToPlayer(aPlayer, "Emit Redstone if no Slot is free"); + } else { + GT_Utility.sendChatToPlayer(aPlayer, "Don't emit Redstone"); + } + return null; + } + if (aSlotIndex == 29) { + ((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bInvert = (!((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bInvert); + if (((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bInvert) { + GT_Utility.sendChatToPlayer(aPlayer, "Invert Redstone"); + } else { + GT_Utility.sendChatToPlayer(aPlayer, "Don't invert Redstone"); + } + return null; + } } - return null; - } - if (aSlotIndex == 29) - { - ((GT_MetaTileEntity_ChestBuffer)this.mTileEntity.getMetaTileEntity()).bInvert = (!((GT_MetaTileEntity_ChestBuffer)this.mTileEntity.getMetaTileEntity()).bInvert); - if (((GT_MetaTileEntity_ChestBuffer)this.mTileEntity.getMetaTileEntity()).bInvert) { - GT_Utility.sendChatToPlayer(aPlayer, "Invert Redstone"); - } else { - GT_Utility.sendChatToPlayer(aPlayer, "Don't invert Redstone"); - } - return null; - } + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + } + + public int getSlotCount() { + return 27; + } + + public int getShiftClickSlotCount() { + return 27; } - return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); - } - - public int getSlotCount() - { - return 27; - } - - public int getShiftClickSlotCount() - { - return 27; - } } diff --git a/src/main/java/gregtech/common/gui/GT_Container_Filter.java b/src/main/java/gregtech/common/gui/GT_Container_Filter.java index ac468a44..8239f8a9 100644 --- a/src/main/java/gregtech/common/gui/GT_Container_Filter.java +++ b/src/main/java/gregtech/common/gui/GT_Container_Filter.java @@ -5,139 +5,122 @@ import gregtech.api.gui.GT_Slot_Holo; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.util.GT_Utility; import gregtech.common.tileentities.automation.GT_MetaTileEntity_Filter; -import java.util.List; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; public class GT_Container_Filter - extends GT_ContainerMetaTile_Machine -{ - public GT_Container_Filter(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) - { - super(aInventoryPlayer, aTileEntity); - } - - public void addSlots(InventoryPlayer aInventoryPlayer) - { - addSlotToContainer(new Slot(this.mTileEntity, 0, 98, 5)); - addSlotToContainer(new Slot(this.mTileEntity, 1, 116, 5)); - addSlotToContainer(new Slot(this.mTileEntity, 2, 134, 5)); - addSlotToContainer(new Slot(this.mTileEntity, 3, 98, 23)); - addSlotToContainer(new Slot(this.mTileEntity, 4, 116, 23)); - addSlotToContainer(new Slot(this.mTileEntity, 5, 134, 23)); - addSlotToContainer(new Slot(this.mTileEntity, 6, 98, 41)); - addSlotToContainer(new Slot(this.mTileEntity, 7, 116, 41)); - addSlotToContainer(new Slot(this.mTileEntity, 8, 134, 41)); - - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 9, 18, 6, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 10, 35, 6, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 11, 52, 6, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 12, 18, 23, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 13, 35, 23, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 14, 52, 23, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 15, 18, 40, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 16, 35, 40, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 17, 52, 40, false, true, 1)); - - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 8, 63, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 26, 63, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 44, 63, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 62, 63, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 80, 63, false, true, 1)); - } - - public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) - { - if (aSlotIndex < 9) { - return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + extends GT_ContainerMetaTile_Machine { + public GT_Container_Filter(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(aInventoryPlayer, aTileEntity); } - Slot tSlot = (Slot)this.inventorySlots.get(aSlotIndex); - if (tSlot != null) - { - if (this.mTileEntity.getMetaTileEntity() == null) { - return null; - } - if (aSlotIndex < 18) - { - ItemStack tStack = aPlayer.inventory.getItemStack(); - if (tStack == null) - { - tStack = tSlot.getStack(); - if (aMouseclick == 0) { - tSlot.putStack(null); - } else if (tStack != null) { - tStack.setItemDamage(32767); - } - } - else - { - tSlot.putStack(GT_Utility.copyAmount(1L, new Object[] { tStack })); - } - return null; - } - if (aSlotIndex == 18) - { - ((GT_MetaTileEntity_Filter)this.mTileEntity.getMetaTileEntity()).bOutput = (!((GT_MetaTileEntity_Filter)this.mTileEntity.getMetaTileEntity()).bOutput); - if (((GT_MetaTileEntity_Filter)this.mTileEntity.getMetaTileEntity()).bOutput) { - GT_Utility.sendChatToPlayer(aPlayer, "Emit Energy to Outputside"); - } else { - GT_Utility.sendChatToPlayer(aPlayer, "Don't emit Energy"); - } - return null; - } - if (aSlotIndex == 19) - { - ((GT_MetaTileEntity_Filter)this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull = (!((GT_MetaTileEntity_Filter)this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull); - if (((GT_MetaTileEntity_Filter)this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull) { - GT_Utility.sendChatToPlayer(aPlayer, "Emit Redstone if slots contain something"); - } else { - GT_Utility.sendChatToPlayer(aPlayer, "Don't emit Redstone"); - } - return null; - } - if (aSlotIndex == 20) - { - ((GT_MetaTileEntity_Filter)this.mTileEntity.getMetaTileEntity()).bInvert = (!((GT_MetaTileEntity_Filter)this.mTileEntity.getMetaTileEntity()).bInvert); - if (((GT_MetaTileEntity_Filter)this.mTileEntity.getMetaTileEntity()).bInvert) { - GT_Utility.sendChatToPlayer(aPlayer, "Invert Redstone"); - } else { - GT_Utility.sendChatToPlayer(aPlayer, "Don't invert Redstone"); - } - return null; - } - if (aSlotIndex == 21) - { - ((GT_MetaTileEntity_Filter)this.mTileEntity.getMetaTileEntity()).bInvertFilter = (!((GT_MetaTileEntity_Filter)this.mTileEntity.getMetaTileEntity()).bInvertFilter); - if (((GT_MetaTileEntity_Filter)this.mTileEntity.getMetaTileEntity()).bInvertFilter) { - GT_Utility.sendChatToPlayer(aPlayer, "Invert Filter"); - } else { - GT_Utility.sendChatToPlayer(aPlayer, "Don't invert Filter"); - } - return null; - } - if (aSlotIndex == 22) - { - ((GT_MetaTileEntity_Filter)this.mTileEntity.getMetaTileEntity()).bIgnoreNBT = (!((GT_MetaTileEntity_Filter)this.mTileEntity.getMetaTileEntity()).bIgnoreNBT); - if (((GT_MetaTileEntity_Filter)this.mTileEntity.getMetaTileEntity()).bIgnoreNBT) { - GT_Utility.sendChatToPlayer(aPlayer, "Ignore NBT"); - } else { - GT_Utility.sendChatToPlayer(aPlayer, "NBT has to match"); - } - return null; - } + + public void addSlots(InventoryPlayer aInventoryPlayer) { + addSlotToContainer(new Slot(this.mTileEntity, 0, 98, 5)); + addSlotToContainer(new Slot(this.mTileEntity, 1, 116, 5)); + addSlotToContainer(new Slot(this.mTileEntity, 2, 134, 5)); + addSlotToContainer(new Slot(this.mTileEntity, 3, 98, 23)); + addSlotToContainer(new Slot(this.mTileEntity, 4, 116, 23)); + addSlotToContainer(new Slot(this.mTileEntity, 5, 134, 23)); + addSlotToContainer(new Slot(this.mTileEntity, 6, 98, 41)); + addSlotToContainer(new Slot(this.mTileEntity, 7, 116, 41)); + addSlotToContainer(new Slot(this.mTileEntity, 8, 134, 41)); + + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 9, 18, 6, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 10, 35, 6, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 11, 52, 6, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 12, 18, 23, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 13, 35, 23, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 14, 52, 23, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 15, 18, 40, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 16, 35, 40, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 17, 52, 40, false, true, 1)); + + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 8, 63, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 26, 63, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 44, 63, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 62, 63, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 80, 63, false, true, 1)); + } + + public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { + if (aSlotIndex < 9) { + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + } + Slot tSlot = (Slot) this.inventorySlots.get(aSlotIndex); + if (tSlot != null) { + if (this.mTileEntity.getMetaTileEntity() == null) { + return null; + } + if (aSlotIndex < 18) { + ItemStack tStack = aPlayer.inventory.getItemStack(); + if (tStack == null) { + tStack = tSlot.getStack(); + if (aMouseclick == 0) { + tSlot.putStack(null); + } else if (tStack != null) { + tStack.setItemDamage(32767); + } + } else { + tSlot.putStack(GT_Utility.copyAmount(1L, new Object[]{tStack})); + } + return null; + } + if (aSlotIndex == 18) { + ((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bOutput = (!((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bOutput); + if (((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bOutput) { + GT_Utility.sendChatToPlayer(aPlayer, "Emit Energy to Outputside"); + } else { + GT_Utility.sendChatToPlayer(aPlayer, "Don't emit Energy"); + } + return null; + } + if (aSlotIndex == 19) { + ((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull = (!((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull); + if (((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull) { + GT_Utility.sendChatToPlayer(aPlayer, "Emit Redstone if slots contain something"); + } else { + GT_Utility.sendChatToPlayer(aPlayer, "Don't emit Redstone"); + } + return null; + } + if (aSlotIndex == 20) { + ((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bInvert = (!((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bInvert); + if (((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bInvert) { + GT_Utility.sendChatToPlayer(aPlayer, "Invert Redstone"); + } else { + GT_Utility.sendChatToPlayer(aPlayer, "Don't invert Redstone"); + } + return null; + } + if (aSlotIndex == 21) { + ((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bInvertFilter = (!((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bInvertFilter); + if (((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bInvertFilter) { + GT_Utility.sendChatToPlayer(aPlayer, "Invert Filter"); + } else { + GT_Utility.sendChatToPlayer(aPlayer, "Don't invert Filter"); + } + return null; + } + if (aSlotIndex == 22) { + ((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bIgnoreNBT = (!((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bIgnoreNBT); + if (((GT_MetaTileEntity_Filter) this.mTileEntity.getMetaTileEntity()).bIgnoreNBT) { + GT_Utility.sendChatToPlayer(aPlayer, "Ignore NBT"); + } else { + GT_Utility.sendChatToPlayer(aPlayer, "NBT has to match"); + } + return null; + } + } + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + } + + public int getSlotCount() { + return 9; + } + + public int getShiftClickSlotCount() { + return 9; } - return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); - } - - public int getSlotCount() - { - return 9; - } - - public int getShiftClickSlotCount() - { - return 9; - } } diff --git a/src/main/java/gregtech/common/gui/GT_Container_QuantumChest.java b/src/main/java/gregtech/common/gui/GT_Container_QuantumChest.java index 01c0a953..d8b2cbe6 100644 --- a/src/main/java/gregtech/common/gui/GT_Container_QuantumChest.java +++ b/src/main/java/gregtech/common/gui/GT_Container_QuantumChest.java @@ -1,69 +1,73 @@ package gregtech.common.gui; -import java.util.Iterator; - -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.gui.GT_ContainerMetaTile_Machine; import gregtech.api.gui.GT_Slot_Output; import gregtech.api.gui.GT_Slot_Render; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; import gregtech.common.tileentities.storage.GT_MetaTileEntity_QuantumChest; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.Slot; -public class GT_Container_QuantumChest extends GT_ContainerMetaTile_Machine { +import java.util.Iterator; + +public class GT_Container_QuantumChest extends GT_ContainerMetaTile_Machine { - public GT_Container_QuantumChest(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { - super(aInventoryPlayer, aTileEntity); - } - - @Override - public void addSlots(InventoryPlayer aInventoryPlayer) { - addSlotToContainer(new Slot(mTileEntity, 0, 80, 17)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, 1, 80, 53)); - addSlotToContainer(new GT_Slot_Render(mTileEntity, 2, 59, 42)); - } - public int mContent = 0; - + + public GT_Container_QuantumChest(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(aInventoryPlayer, aTileEntity); + } + @Override - public void detectAndSendChanges() { + public void addSlots(InventoryPlayer aInventoryPlayer) { + addSlotToContainer(new Slot(mTileEntity, 0, 80, 17)); + addSlotToContainer(new GT_Slot_Output(mTileEntity, 1, 80, 53)); + addSlotToContainer(new GT_Slot_Render(mTileEntity, 2, 59, 42)); + } + + @Override + public void detectAndSendChanges() { super.detectAndSendChanges(); - - if (mTileEntity.isClientSide() || mTileEntity.getMetaTileEntity() == null) return; - if (mTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_QuantumChest){ - mContent = ((GT_MetaTileEntity_QuantumChest)mTileEntity.getMetaTileEntity()).mItemCount; - }else{ - mContent = 0;} - + + if (mTileEntity.isClientSide() || mTileEntity.getMetaTileEntity() == null) return; + if (mTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_QuantumChest) { + mContent = ((GT_MetaTileEntity_QuantumChest) mTileEntity.getMetaTileEntity()).mItemCount; + } else { + mContent = 0; + } + Iterator var2 = this.crafters.iterator(); while (var2.hasNext()) { - ICrafting var1 = (ICrafting)var2.next(); + ICrafting var1 = (ICrafting) var2.next(); var1.sendProgressBarUpdate(this, 100, mContent & 65535); var1.sendProgressBarUpdate(this, 101, mContent >>> 16); } } - + @Override - @SideOnly(Side.CLIENT) + @SideOnly(Side.CLIENT) public void updateProgressBar(int par1, int par2) { - super.updateProgressBar(par1, par2); - switch (par1) { - case 100: mContent = mContent & -65536 | par2; break; - case 101: mContent = mContent & 65535 | par2 << 16; break; - } - } - - @Override - public int getSlotCount() { - return 2; + super.updateProgressBar(par1, par2); + switch (par1) { + case 100: + mContent = mContent & -65536 | par2; + break; + case 101: + mContent = mContent & 65535 | par2 << 16; + break; + } } @Override - public int getShiftClickSlotCount() { - return 1; + public int getSlotCount() { + return 2; + } + + @Override + public int getShiftClickSlotCount() { + return 1; } } diff --git a/src/main/java/gregtech/common/gui/GT_Container_Regulator.java b/src/main/java/gregtech/common/gui/GT_Container_Regulator.java index 5fab8681..b2aefe01 100644 --- a/src/main/java/gregtech/common/gui/GT_Container_Regulator.java +++ b/src/main/java/gregtech/common/gui/GT_Container_Regulator.java @@ -7,168 +7,159 @@ import gregtech.api.gui.GT_Slot_Holo; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.util.GT_Utility; import gregtech.common.tileentities.automation.GT_MetaTileEntity_Regulator; -import java.util.Iterator; -import java.util.List; 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; +import java.util.Iterator; + public class GT_Container_Regulator - extends GT_ContainerMetaTile_Machine -{ - public GT_Container_Regulator(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) - { - super(aInventoryPlayer, aTileEntity); - } - - public void addSlots(InventoryPlayer aInventoryPlayer) - { - this.mTargetSlots = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - - addSlotToContainer(new Slot(this.mTileEntity, 0, 8, 6)); - addSlotToContainer(new Slot(this.mTileEntity, 1, 26, 6)); - addSlotToContainer(new Slot(this.mTileEntity, 2, 44, 6)); - addSlotToContainer(new Slot(this.mTileEntity, 3, 8, 24)); - addSlotToContainer(new Slot(this.mTileEntity, 4, 26, 24)); - addSlotToContainer(new Slot(this.mTileEntity, 5, 44, 24)); - addSlotToContainer(new Slot(this.mTileEntity, 6, 8, 42)); - addSlotToContainer(new Slot(this.mTileEntity, 7, 26, 42)); - addSlotToContainer(new Slot(this.mTileEntity, 8, 44, 42)); - - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 9, 64, 7, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 10, 81, 7, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 11, 98, 7, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 12, 64, 24, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 13, 81, 24, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 14, 98, 24, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 15, 64, 41, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 16, 81, 41, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 17, 98, 41, false, true, 1)); - - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 119, 7, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 136, 7, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 153, 7, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 119, 24, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 136, 24, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 153, 24, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 119, 41, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 136, 41, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 153, 41, false, true, 1)); - - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 8, 63, false, true, 1)); - } - - public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) - { - if (aSlotIndex < 9) { - return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + extends GT_ContainerMetaTile_Machine { + public int[] mTargetSlots = {0, 0, 0, 0, 0, 0, 0, 0, 0}; + + public GT_Container_Regulator(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(aInventoryPlayer, aTileEntity); } - Slot tSlot = (Slot)this.inventorySlots.get(aSlotIndex); - if (tSlot != null) - { - if (this.mTileEntity.getMetaTileEntity() == null) { - return null; - } - if (aSlotIndex == 27) - { - ((GT_MetaTileEntity_Regulator)this.mTileEntity.getMetaTileEntity()).bOutput = (!((GT_MetaTileEntity_Regulator)this.mTileEntity.getMetaTileEntity()).bOutput); - if (((GT_MetaTileEntity_Regulator)this.mTileEntity.getMetaTileEntity()).bOutput) { - GT_Utility.sendChatToPlayer(aPlayer, "Emit Energy to Outputside"); - } else { - GT_Utility.sendChatToPlayer(aPlayer, "Don't emit Energy"); + + public void addSlots(InventoryPlayer aInventoryPlayer) { + this.mTargetSlots = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0}; + + addSlotToContainer(new Slot(this.mTileEntity, 0, 8, 6)); + addSlotToContainer(new Slot(this.mTileEntity, 1, 26, 6)); + addSlotToContainer(new Slot(this.mTileEntity, 2, 44, 6)); + addSlotToContainer(new Slot(this.mTileEntity, 3, 8, 24)); + addSlotToContainer(new Slot(this.mTileEntity, 4, 26, 24)); + addSlotToContainer(new Slot(this.mTileEntity, 5, 44, 24)); + addSlotToContainer(new Slot(this.mTileEntity, 6, 8, 42)); + addSlotToContainer(new Slot(this.mTileEntity, 7, 26, 42)); + addSlotToContainer(new Slot(this.mTileEntity, 8, 44, 42)); + + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 9, 64, 7, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 10, 81, 7, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 11, 98, 7, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 12, 64, 24, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 13, 81, 24, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 14, 98, 24, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 15, 64, 41, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 16, 81, 41, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 17, 98, 41, false, true, 1)); + + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 119, 7, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 136, 7, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 153, 7, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 119, 24, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 136, 24, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 153, 24, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 119, 41, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 136, 41, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 153, 41, false, true, 1)); + + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 18, 8, 63, false, true, 1)); + } + + public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { + if (aSlotIndex < 9) { + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); } - return null; - } - if ((aSlotIndex >= 9) && (aSlotIndex < 18)) - { - ItemStack tStack = aPlayer.inventory.getItemStack(); - if (tStack != null) { - tSlot.putStack(GT_Utility.copy(new Object[] { tStack })); - } else if (tSlot.getStack() != null) { - if (aMouseclick == 0) - { - tSlot.getStack().stackSize -= (aShifthold == 1 ? 8 : 1); - if (tSlot.getStack().stackSize <= 0) { - tSlot.putStack(null); + Slot tSlot = (Slot) this.inventorySlots.get(aSlotIndex); + if (tSlot != null) { + if (this.mTileEntity.getMetaTileEntity() == null) { + return null; } - } - else - { - tSlot.getStack().stackSize += (aShifthold == 1 ? 8 : 1); - if (tSlot.getStack().stackSize > tSlot.getStack().getMaxStackSize()) { - tSlot.getStack().stackSize = tSlot.getStack().getMaxStackSize(); + if (aSlotIndex == 27) { + ((GT_MetaTileEntity_Regulator) this.mTileEntity.getMetaTileEntity()).bOutput = (!((GT_MetaTileEntity_Regulator) this.mTileEntity.getMetaTileEntity()).bOutput); + if (((GT_MetaTileEntity_Regulator) this.mTileEntity.getMetaTileEntity()).bOutput) { + GT_Utility.sendChatToPlayer(aPlayer, "Emit Energy to Outputside"); + } else { + GT_Utility.sendChatToPlayer(aPlayer, "Don't emit Energy"); + } + return null; + } + if ((aSlotIndex >= 9) && (aSlotIndex < 18)) { + ItemStack tStack = aPlayer.inventory.getItemStack(); + if (tStack != null) { + tSlot.putStack(GT_Utility.copy(new Object[]{tStack})); + } else if (tSlot.getStack() != null) { + if (aMouseclick == 0) { + tSlot.getStack().stackSize -= (aShifthold == 1 ? 8 : 1); + if (tSlot.getStack().stackSize <= 0) { + tSlot.putStack(null); + } + } else { + tSlot.getStack().stackSize += (aShifthold == 1 ? 8 : 1); + if (tSlot.getStack().stackSize > tSlot.getStack().getMaxStackSize()) { + tSlot.getStack().stackSize = tSlot.getStack().getMaxStackSize(); + } + } + } + return null; + } + if ((aSlotIndex >= 18) && (aSlotIndex < 27)) { + ((GT_MetaTileEntity_Regulator) this.mTileEntity.getMetaTileEntity()).mTargetSlots[(aSlotIndex - 18)] = Math.min(99, Math.max(0, ((GT_MetaTileEntity_Regulator) this.mTileEntity.getMetaTileEntity()).mTargetSlots[(aSlotIndex - 18)] + (aMouseclick == 0 ? -1 : 1) * (aShifthold == 0 ? 1 : 16))); + return null; } - } } - return null; - } - if ((aSlotIndex >= 18) && (aSlotIndex < 27)) - { - ((GT_MetaTileEntity_Regulator)this.mTileEntity.getMetaTileEntity()).mTargetSlots[(aSlotIndex - 18)] = Math.min(99, Math.max(0, ((GT_MetaTileEntity_Regulator)this.mTileEntity.getMetaTileEntity()).mTargetSlots[(aSlotIndex - 18)] + (aMouseclick == 0 ? -1 : 1) * (aShifthold == 0 ? 1 : 16))); - return null; - } + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); } - return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); - } - - public int[] mTargetSlots = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - - public void detectAndSendChanges() - { - super.detectAndSendChanges(); - if ((this.mTileEntity.isClientSide()) || (this.mTileEntity.getMetaTileEntity() == null)) { - return; + + public void detectAndSendChanges() { + super.detectAndSendChanges(); + if ((this.mTileEntity.isClientSide()) || (this.mTileEntity.getMetaTileEntity() == null)) { + return; + } + this.mTargetSlots = new int[9]; + for (int i = 0; i < 9; i++) { + this.mTargetSlots[i] = ((GT_MetaTileEntity_Regulator) this.mTileEntity.getMetaTileEntity()).mTargetSlots[i]; + } + Iterator var2 = this.crafters.iterator(); + while (var2.hasNext()) { + ICrafting var1 = (ICrafting) var2.next(); + for (int i = 0; i < 9; i++) { + var1.sendProgressBarUpdate(this, 100 + i, this.mTargetSlots[i]); + } + } } - this.mTargetSlots = new int[9]; - for (int i = 0; i < 9; i++) { - this.mTargetSlots[i] = ((GT_MetaTileEntity_Regulator)this.mTileEntity.getMetaTileEntity()).mTargetSlots[i]; + + @SideOnly(Side.CLIENT) + public void updateProgressBar(int par1, int par2) { + super.updateProgressBar(par1, par2); + switch (par1) { + case 100: + this.mTargetSlots[0] = par2; + break; + case 101: + this.mTargetSlots[1] = par2; + break; + case 102: + this.mTargetSlots[2] = par2; + break; + case 103: + this.mTargetSlots[3] = par2; + break; + case 104: + this.mTargetSlots[4] = par2; + break; + case 105: + this.mTargetSlots[5] = par2; + break; + case 106: + this.mTargetSlots[6] = par2; + break; + case 107: + this.mTargetSlots[7] = par2; + break; + case 108: + this.mTargetSlots[8] = par2; + } } - Iterator var2 = this.crafters.iterator(); - while (var2.hasNext()) - { - ICrafting var1 = (ICrafting)var2.next(); - for (int i = 0; i < 9; i++) { - var1.sendProgressBarUpdate(this, 100 + i, this.mTargetSlots[i]); - } + + public int getSlotCount() { + return 9; } - } - - @SideOnly(Side.CLIENT) - public void updateProgressBar(int par1, int par2) - { - super.updateProgressBar(par1, par2); - switch (par1) - { - case 100: - this.mTargetSlots[0] = par2; break; - case 101: - this.mTargetSlots[1] = par2; break; - case 102: - this.mTargetSlots[2] = par2; break; - case 103: - this.mTargetSlots[3] = par2; break; - case 104: - this.mTargetSlots[4] = par2; break; - case 105: - this.mTargetSlots[5] = par2; break; - case 106: - this.mTargetSlots[6] = par2; break; - case 107: - this.mTargetSlots[7] = par2; break; - case 108: - this.mTargetSlots[8] = par2; + + public int getShiftClickSlotCount() { + return 9; } - } - - public int getSlotCount() - { - return 9; - } - - public int getShiftClickSlotCount() - { - return 9; - } } diff --git a/src/main/java/gregtech/common/gui/GT_Container_SuperBuffer.java b/src/main/java/gregtech/common/gui/GT_Container_SuperBuffer.java index e28616e2..46d011dc 100644 --- a/src/main/java/gregtech/common/gui/GT_Container_SuperBuffer.java +++ b/src/main/java/gregtech/common/gui/GT_Container_SuperBuffer.java @@ -5,79 +5,68 @@ import gregtech.api.gui.GT_Slot_Holo; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.util.GT_Utility; import gregtech.common.tileentities.automation.GT_MetaTileEntity_ChestBuffer; -import java.util.List; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; public class GT_Container_SuperBuffer - extends GT_ContainerMetaTile_Machine -{ - public GT_Container_SuperBuffer(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) - { - super(aInventoryPlayer, aTileEntity); - } - - public void addSlots(InventoryPlayer aInventoryPlayer) - { - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 256, 8, 63, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 256, 26, 63, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 256, 44, 63, false, true, 1)); - } - - public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) - { - if (aSlotIndex < 0) { - return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + extends GT_ContainerMetaTile_Machine { + public GT_Container_SuperBuffer(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(aInventoryPlayer, aTileEntity); } - Slot tSlot = (Slot)this.inventorySlots.get(aSlotIndex); - if (tSlot != null) - { - if (this.mTileEntity.getMetaTileEntity() == null) { - return null; - } - if (aSlotIndex == 0) - { - ((GT_MetaTileEntity_ChestBuffer)this.mTileEntity.getMetaTileEntity()).bOutput = (!((GT_MetaTileEntity_ChestBuffer)this.mTileEntity.getMetaTileEntity()).bOutput); - if (((GT_MetaTileEntity_ChestBuffer)this.mTileEntity.getMetaTileEntity()).bOutput) { - GT_Utility.sendChatToPlayer(aPlayer, "Emit Energy to Outputside"); - } else { - GT_Utility.sendChatToPlayer(aPlayer, "Don't emit Energy"); - } - return null; - } - if (aSlotIndex == 1) - { - ((GT_MetaTileEntity_ChestBuffer)this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull = (!((GT_MetaTileEntity_ChestBuffer)this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull); - if (((GT_MetaTileEntity_ChestBuffer)this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull) { - GT_Utility.sendChatToPlayer(aPlayer, "Emit Redstone if no Slot is free"); - } else { - GT_Utility.sendChatToPlayer(aPlayer, "Don't emit Redstone"); - } - return null; - } - if (aSlotIndex == 2) - { - ((GT_MetaTileEntity_ChestBuffer)this.mTileEntity.getMetaTileEntity()).bInvert = (!((GT_MetaTileEntity_ChestBuffer)this.mTileEntity.getMetaTileEntity()).bInvert); - if (((GT_MetaTileEntity_ChestBuffer)this.mTileEntity.getMetaTileEntity()).bInvert) { - GT_Utility.sendChatToPlayer(aPlayer, "Invert Redstone"); - } else { - GT_Utility.sendChatToPlayer(aPlayer, "Don't invert Redstone"); - } - return null; - } + + public void addSlots(InventoryPlayer aInventoryPlayer) { + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 256, 8, 63, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 256, 26, 63, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 256, 44, 63, false, true, 1)); + } + + 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) { + if (this.mTileEntity.getMetaTileEntity() == null) { + return null; + } + if (aSlotIndex == 0) { + ((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bOutput = (!((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bOutput); + if (((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bOutput) { + GT_Utility.sendChatToPlayer(aPlayer, "Emit Energy to Outputside"); + } else { + GT_Utility.sendChatToPlayer(aPlayer, "Don't emit Energy"); + } + return null; + } + if (aSlotIndex == 1) { + ((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull = (!((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull); + if (((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull) { + GT_Utility.sendChatToPlayer(aPlayer, "Emit Redstone if no Slot is free"); + } else { + GT_Utility.sendChatToPlayer(aPlayer, "Don't emit Redstone"); + } + return null; + } + if (aSlotIndex == 2) { + ((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bInvert = (!((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bInvert); + if (((GT_MetaTileEntity_ChestBuffer) this.mTileEntity.getMetaTileEntity()).bInvert) { + GT_Utility.sendChatToPlayer(aPlayer, "Invert Redstone"); + } else { + GT_Utility.sendChatToPlayer(aPlayer, "Don't invert Redstone"); + } + return null; + } + } + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + } + + public int getSlotCount() { + return 0; + } + + public int getShiftClickSlotCount() { + return 0; } - return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); - } - - public int getSlotCount() - { - return 0; - } - - public int getShiftClickSlotCount() - { - return 0; - } } diff --git a/src/main/java/gregtech/common/gui/GT_Container_Teleporter.java b/src/main/java/gregtech/common/gui/GT_Container_Teleporter.java index fadd979b..f655c2d2 100644 --- a/src/main/java/gregtech/common/gui/GT_Container_Teleporter.java +++ b/src/main/java/gregtech/common/gui/GT_Container_Teleporter.java @@ -1,177 +1,171 @@ 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 gregtech.api.gui.GT_ContainerMetaTile_Machine; +import gregtech.api.gui.GT_Slot_Holo; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Teleporter; 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; +import java.util.Iterator; + 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); + extends GT_ContainerMetaTile_Machine { + public int mEgg = 0; + public int mTargetD = 0; + public int mTargetZ = 0; + public int mTargetY = 0; + public int mTargetX = 0; + public GT_Container_Teleporter(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(aInventoryPlayer, aTileEntity); } - 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; - } + + @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)); } - 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; + + @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); } - 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); + + @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; + + @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/src/main/java/gregtech/common/gui/GT_Container_TypeFilter.java b/src/main/java/gregtech/common/gui/GT_Container_TypeFilter.java index 57bd51e5..d492ee23 100644 --- a/src/main/java/gregtech/common/gui/GT_Container_TypeFilter.java +++ b/src/main/java/gregtech/common/gui/GT_Container_TypeFilter.java @@ -6,118 +6,104 @@ import gregtech.api.gui.GT_Slot_Render; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.util.GT_Utility; import gregtech.common.tileentities.automation.GT_MetaTileEntity_TypeFilter; -import java.util.List; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; public class GT_Container_TypeFilter - extends GT_ContainerMetaTile_Machine -{ - public GT_Container_TypeFilter(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) - { - super(aInventoryPlayer, aTileEntity); - } - - public void addSlots(InventoryPlayer aInventoryPlayer) - { - addSlotToContainer(new Slot(this.mTileEntity, 0, 98, 5)); - addSlotToContainer(new Slot(this.mTileEntity, 1, 116, 5)); - addSlotToContainer(new Slot(this.mTileEntity, 2, 134, 5)); - addSlotToContainer(new Slot(this.mTileEntity, 3, 98, 23)); - addSlotToContainer(new Slot(this.mTileEntity, 4, 116, 23)); - addSlotToContainer(new Slot(this.mTileEntity, 5, 134, 23)); - addSlotToContainer(new Slot(this.mTileEntity, 6, 98, 41)); - addSlotToContainer(new Slot(this.mTileEntity, 7, 116, 41)); - addSlotToContainer(new Slot(this.mTileEntity, 8, 134, 41)); - - addSlotToContainer(new GT_Slot_Render(this.mTileEntity, 9, 35, 23)); - - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 10, 8, 63, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 10, 26, 63, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 10, 44, 63, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 10, 62, 63, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 10, 80, 63, false, true, 1)); - } - - public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) - { - if (aSlotIndex < 9) { - return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + extends GT_ContainerMetaTile_Machine { + public GT_Container_TypeFilter(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(aInventoryPlayer, aTileEntity); } - Slot tSlot = (Slot)this.inventorySlots.get(aSlotIndex); - if (tSlot != null) - { - if (this.mTileEntity.getMetaTileEntity() == null) { - return null; - } - if (aSlotIndex == 9) - { - ((GT_MetaTileEntity_TypeFilter)this.mTileEntity.getMetaTileEntity()).clickTypeIcon(aMouseclick != 0); - return null; - } - if (aSlotIndex == 10) - { - ((GT_MetaTileEntity_TypeFilter)this.mTileEntity.getMetaTileEntity()).bOutput = (!((GT_MetaTileEntity_TypeFilter)this.mTileEntity.getMetaTileEntity()).bOutput); - if (((GT_MetaTileEntity_TypeFilter)this.mTileEntity.getMetaTileEntity()).bOutput) { - GT_Utility.sendChatToPlayer(aPlayer, "Emit Energy to Outputside"); - } else { - GT_Utility.sendChatToPlayer(aPlayer, "Don't emit Energy"); - } - return null; - } - if (aSlotIndex == 11) - { - ((GT_MetaTileEntity_TypeFilter)this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull = (!((GT_MetaTileEntity_TypeFilter)this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull); - if (((GT_MetaTileEntity_TypeFilter)this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull) { - GT_Utility.sendChatToPlayer(aPlayer, "Emit Redstone if slots contain something"); - } else { - GT_Utility.sendChatToPlayer(aPlayer, "Don't emit Redstone"); - } - return null; - } - if (aSlotIndex == 12) - { - ((GT_MetaTileEntity_TypeFilter)this.mTileEntity.getMetaTileEntity()).bInvert = (!((GT_MetaTileEntity_TypeFilter)this.mTileEntity.getMetaTileEntity()).bInvert); - if (((GT_MetaTileEntity_TypeFilter)this.mTileEntity.getMetaTileEntity()).bInvert) { - GT_Utility.sendChatToPlayer(aPlayer, "Invert Redstone"); - } else { - GT_Utility.sendChatToPlayer(aPlayer, "Don't invert Redstone"); - } - return null; - } - if (aSlotIndex == 13) - { - ((GT_MetaTileEntity_TypeFilter)this.mTileEntity.getMetaTileEntity()).bInvertFilter = (!((GT_MetaTileEntity_TypeFilter)this.mTileEntity.getMetaTileEntity()).bInvertFilter); - if (((GT_MetaTileEntity_TypeFilter)this.mTileEntity.getMetaTileEntity()).bInvertFilter) { - GT_Utility.sendChatToPlayer(aPlayer, "Invert Filter"); - } else { - GT_Utility.sendChatToPlayer(aPlayer, "Don't invert Filter"); - } - return null; - } - if (aSlotIndex == 14) - { - ((GT_MetaTileEntity_TypeFilter)this.mTileEntity.getMetaTileEntity()).bNBTAllowed = (!((GT_MetaTileEntity_TypeFilter)this.mTileEntity.getMetaTileEntity()).bNBTAllowed); - if (((GT_MetaTileEntity_TypeFilter)this.mTileEntity.getMetaTileEntity()).bNBTAllowed) { - GT_Utility.sendChatToPlayer(aPlayer, "Allow Items with NBT"); - } else { - GT_Utility.sendChatToPlayer(aPlayer, "Don't allow Items with NBT"); - } - return null; - } + + public void addSlots(InventoryPlayer aInventoryPlayer) { + addSlotToContainer(new Slot(this.mTileEntity, 0, 98, 5)); + addSlotToContainer(new Slot(this.mTileEntity, 1, 116, 5)); + addSlotToContainer(new Slot(this.mTileEntity, 2, 134, 5)); + addSlotToContainer(new Slot(this.mTileEntity, 3, 98, 23)); + addSlotToContainer(new Slot(this.mTileEntity, 4, 116, 23)); + addSlotToContainer(new Slot(this.mTileEntity, 5, 134, 23)); + addSlotToContainer(new Slot(this.mTileEntity, 6, 98, 41)); + addSlotToContainer(new Slot(this.mTileEntity, 7, 116, 41)); + addSlotToContainer(new Slot(this.mTileEntity, 8, 134, 41)); + + addSlotToContainer(new GT_Slot_Render(this.mTileEntity, 9, 35, 23)); + + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 10, 8, 63, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 10, 26, 63, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 10, 44, 63, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 10, 62, 63, false, true, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 10, 80, 63, false, true, 1)); + } + + public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { + if (aSlotIndex < 9) { + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + } + Slot tSlot = (Slot) this.inventorySlots.get(aSlotIndex); + if (tSlot != null) { + if (this.mTileEntity.getMetaTileEntity() == null) { + return null; + } + if (aSlotIndex == 9) { + ((GT_MetaTileEntity_TypeFilter) this.mTileEntity.getMetaTileEntity()).clickTypeIcon(aMouseclick != 0); + return null; + } + if (aSlotIndex == 10) { + ((GT_MetaTileEntity_TypeFilter) this.mTileEntity.getMetaTileEntity()).bOutput = (!((GT_MetaTileEntity_TypeFilter) this.mTileEntity.getMetaTileEntity()).bOutput); + if (((GT_MetaTileEntity_TypeFilter) this.mTileEntity.getMetaTileEntity()).bOutput) { + GT_Utility.sendChatToPlayer(aPlayer, "Emit Energy to Outputside"); + } else { + GT_Utility.sendChatToPlayer(aPlayer, "Don't emit Energy"); + } + return null; + } + if (aSlotIndex == 11) { + ((GT_MetaTileEntity_TypeFilter) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull = (!((GT_MetaTileEntity_TypeFilter) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull); + if (((GT_MetaTileEntity_TypeFilter) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull) { + GT_Utility.sendChatToPlayer(aPlayer, "Emit Redstone if slots contain something"); + } else { + GT_Utility.sendChatToPlayer(aPlayer, "Don't emit Redstone"); + } + return null; + } + if (aSlotIndex == 12) { + ((GT_MetaTileEntity_TypeFilter) this.mTileEntity.getMetaTileEntity()).bInvert = (!((GT_MetaTileEntity_TypeFilter) this.mTileEntity.getMetaTileEntity()).bInvert); + if (((GT_MetaTileEntity_TypeFilter) this.mTileEntity.getMetaTileEntity()).bInvert) { + GT_Utility.sendChatToPlayer(aPlayer, "Invert Redstone"); + } else { + GT_Utility.sendChatToPlayer(aPlayer, "Don't invert Redstone"); + } + return null; + } + if (aSlotIndex == 13) { + ((GT_MetaTileEntity_TypeFilter) this.mTileEntity.getMetaTileEntity()).bInvertFilter = (!((GT_MetaTileEntity_TypeFilter) this.mTileEntity.getMetaTileEntity()).bInvertFilter); + if (((GT_MetaTileEntity_TypeFilter) this.mTileEntity.getMetaTileEntity()).bInvertFilter) { + GT_Utility.sendChatToPlayer(aPlayer, "Invert Filter"); + } else { + GT_Utility.sendChatToPlayer(aPlayer, "Don't invert Filter"); + } + return null; + } + if (aSlotIndex == 14) { + ((GT_MetaTileEntity_TypeFilter) this.mTileEntity.getMetaTileEntity()).bNBTAllowed = (!((GT_MetaTileEntity_TypeFilter) this.mTileEntity.getMetaTileEntity()).bNBTAllowed); + if (((GT_MetaTileEntity_TypeFilter) this.mTileEntity.getMetaTileEntity()).bNBTAllowed) { + GT_Utility.sendChatToPlayer(aPlayer, "Allow Items with NBT"); + } else { + GT_Utility.sendChatToPlayer(aPlayer, "Don't allow Items with NBT"); + } + return null; + } + } + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + } + + public int getSlotCount() { + return 9; + } + + public int getShiftClickSlotCount() { + return 9; } - return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); - } - - public int getSlotCount() - { - return 9; - } - - public int getShiftClickSlotCount() - { - return 9; - } } diff --git a/src/main/java/gregtech/common/gui/GT_GUIContainer_Boiler.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_Boiler.java index e8e95513..18ad938d 100644 --- a/src/main/java/gregtech/common/gui/GT_GUIContainer_Boiler.java +++ b/src/main/java/gregtech/common/gui/GT_GUIContainer_Boiler.java @@ -2,46 +2,40 @@ package gregtech.common.gui; import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import net.minecraft.client.gui.FontRenderer; import net.minecraft.entity.player.InventoryPlayer; public class GT_GUIContainer_Boiler - extends GT_GUIContainerMetaTile_Machine -{ - public GT_GUIContainer_Boiler(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aTextureName, int aSteamCapacity) - { - super(new GT_Container_Boiler(aInventoryPlayer, aTileEntity, aSteamCapacity), "gregtech:textures/gui/" + aTextureName); - } - - protected void drawGuiContainerForegroundLayer(int par1, int par2) - { - this.fontRendererObj.drawString("Boiler", 8, 4, 4210752); - } - - 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); - if (this.mContainer != null) - { - int tScale = ((GT_Container_Boiler)this.mContainer).mSteamAmount; - if (tScale > 0) { - drawTexturedModalRect(x + 70, y + 25 + 54 - tScale, 194, 54 - tScale, 10, tScale); - } - tScale = ((GT_Container_Boiler)this.mContainer).mWaterAmount; - if (tScale > 0) { - drawTexturedModalRect(x + 83, y + 25 + 54 - tScale, 204, 54 - tScale, 10, tScale); - } - tScale = ((GT_Container_Boiler)this.mContainer).mTemperature; - if (tScale > 0) { - drawTexturedModalRect(x + 96, y + 25 + 54 - tScale, 214, 54 - tScale, 10, tScale); - } - tScale = ((GT_Container_Boiler)this.mContainer).mProcessingEnergy; - if (tScale > 0) { - drawTexturedModalRect(x + 117, y + 44 + 14 - tScale, 177, 14 - tScale, 15, tScale + 1); - } + extends GT_GUIContainerMetaTile_Machine { + public GT_GUIContainer_Boiler(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aTextureName, int aSteamCapacity) { + super(new GT_Container_Boiler(aInventoryPlayer, aTileEntity, aSteamCapacity), "gregtech:textures/gui/" + aTextureName); + } + + protected void drawGuiContainerForegroundLayer(int par1, int par2) { + this.fontRendererObj.drawString("Boiler", 8, 4, 4210752); + } + + 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); + if (this.mContainer != null) { + int tScale = ((GT_Container_Boiler) this.mContainer).mSteamAmount; + if (tScale > 0) { + drawTexturedModalRect(x + 70, y + 25 + 54 - tScale, 194, 54 - tScale, 10, tScale); + } + tScale = ((GT_Container_Boiler) this.mContainer).mWaterAmount; + if (tScale > 0) { + drawTexturedModalRect(x + 83, y + 25 + 54 - tScale, 204, 54 - tScale, 10, tScale); + } + tScale = ((GT_Container_Boiler) this.mContainer).mTemperature; + if (tScale > 0) { + drawTexturedModalRect(x + 96, y + 25 + 54 - tScale, 214, 54 - tScale, 10, tScale); + } + tScale = ((GT_Container_Boiler) this.mContainer).mProcessingEnergy; + if (tScale > 0) { + drawTexturedModalRect(x + 117, y + 44 + 14 - tScale, 177, 14 - tScale, 15, tScale + 1); + } + } } - } } diff --git a/src/main/java/gregtech/common/gui/GT_GUIContainer_BronzeBlastFurnace.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_BronzeBlastFurnace.java index c82562c4..613c082b 100644 --- a/src/main/java/gregtech/common/gui/GT_GUIContainer_BronzeBlastFurnace.java +++ b/src/main/java/gregtech/common/gui/GT_GUIContainer_BronzeBlastFurnace.java @@ -1,33 +1,27 @@ package gregtech.common.gui; -import gregtech.api.gui.GT_ContainerMetaTile_Machine; import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import net.minecraft.client.gui.FontRenderer; import net.minecraft.entity.player.InventoryPlayer; public class GT_GUIContainer_BronzeBlastFurnace - extends GT_GUIContainerMetaTile_Machine -{ - public GT_GUIContainer_BronzeBlastFurnace(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) - { - super(new GT_Container_BronzeBlastFurnace(aInventoryPlayer, aTileEntity), "gregtech:textures/gui/BronzeBlastFurnace.png"); - } - - protected void drawGuiContainerForegroundLayer(int par1, int par2) - { - this.fontRendererObj.drawString("Bronze Blast Furnace", 8, 4, 4210752); - } - - 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); - if ((this.mContainer != null) && - (this.mContainer.mProgressTime > 0)) { - drawTexturedModalRect(x + 58, y + 28, 176, 0, Math.max(0, Math.min(20, (this.mContainer.mProgressTime > 0 ? 1 : 0) + this.mContainer.mProgressTime * 20 / (this.mContainer.mMaxProgressTime < 1 ? 1 : this.mContainer.mMaxProgressTime))), 11); + extends GT_GUIContainerMetaTile_Machine { + public GT_GUIContainer_BronzeBlastFurnace(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(new GT_Container_BronzeBlastFurnace(aInventoryPlayer, aTileEntity), "gregtech:textures/gui/BronzeBlastFurnace.png"); + } + + protected void drawGuiContainerForegroundLayer(int par1, int par2) { + this.fontRendererObj.drawString("Bronze Blast Furnace", 8, 4, 4210752); + } + + 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); + if ((this.mContainer != null) && + (this.mContainer.mProgressTime > 0)) { + drawTexturedModalRect(x + 58, y + 28, 176, 0, Math.max(0, Math.min(20, (this.mContainer.mProgressTime > 0 ? 1 : 0) + this.mContainer.mProgressTime * 20 / (this.mContainer.mMaxProgressTime < 1 ? 1 : this.mContainer.mMaxProgressTime))), 11); + } } - } } diff --git a/src/main/java/gregtech/common/gui/GT_GUIContainer_ChestBuffer.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_ChestBuffer.java index 77935684..bfae3f8f 100644 --- a/src/main/java/gregtech/common/gui/GT_GUIContainer_ChestBuffer.java +++ b/src/main/java/gregtech/common/gui/GT_GUIContainer_ChestBuffer.java @@ -5,18 +5,15 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.InventoryPlayer; public class GT_GUIContainer_ChestBuffer - extends GT_GUIContainerMetaTile_Machine -{ - public GT_GUIContainer_ChestBuffer(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) - { - super(new GT_Container_ChestBuffer(aInventoryPlayer, aTileEntity), "gregtech:textures/gui/ChestBuffer.png"); - } - - 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); - } + extends GT_GUIContainerMetaTile_Machine { + public GT_GUIContainer_ChestBuffer(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(new GT_Container_ChestBuffer(aInventoryPlayer, aTileEntity), "gregtech:textures/gui/ChestBuffer.png"); + } + + 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/src/main/java/gregtech/common/gui/GT_GUIContainer_Filter.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_Filter.java index 88889b74..31d93432 100644 --- a/src/main/java/gregtech/common/gui/GT_GUIContainer_Filter.java +++ b/src/main/java/gregtech/common/gui/GT_GUIContainer_Filter.java @@ -5,18 +5,15 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.InventoryPlayer; public class GT_GUIContainer_Filter - extends GT_GUIContainerMetaTile_Machine -{ - public GT_GUIContainer_Filter(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) - { - super(new GT_Container_Filter(aInventoryPlayer, aTileEntity), "gregtech:textures/gui/Filter.png"); - } - - 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); - } + extends GT_GUIContainerMetaTile_Machine { + public GT_GUIContainer_Filter(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(new GT_Container_Filter(aInventoryPlayer, aTileEntity), "gregtech:textures/gui/Filter.png"); + } + + 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/src/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java index 081550a5..6d5b1721 100644 --- a/src/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java +++ b/src/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java @@ -1,53 +1,54 @@ package gregtech.common.gui; -import static gregtech.api.enums.GT_Values.RES_PATH_GUI; -import net.minecraft.entity.player.InventoryPlayer; import gregtech.api.gui.GT_Container_MultiMachine; import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.util.GT_Utility; +import net.minecraft.entity.player.InventoryPlayer; + +import static gregtech.api.enums.GT_Values.RES_PATH_GUI; public class GT_GUIContainer_FusionReactor extends GT_GUIContainerMetaTile_Machine { - - String mName = ""; - public String mNEI; - + + public String mNEI; + String mName = ""; + public GT_GUIContainer_FusionReactor(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName, String aTextureFile, String aNEI) { - super(new GT_Container_MultiMachine(aInventoryPlayer, aTileEntity, false), RES_PATH_GUI + "multimachines/" + (aTextureFile==null?"MultiblockDisplay":aTextureFile)); + super(new GT_Container_MultiMachine(aInventoryPlayer, aTileEntity, false), RES_PATH_GUI + "multimachines/" + (aTextureFile == null ? "MultiblockDisplay" : aTextureFile)); mName = aName; - mNEI = aNEI; + mNEI = aNEI; } - + @Override protected void drawGuiContainerForegroundLayer(int par1, int par2) { - fontRendererObj.drawString(mName, 8, -10, 16448255); - + fontRendererObj.drawString(mName, 8, -10, 16448255); + if (mContainer != null) { - if ((((GT_Container_MultiMachine)mContainer).mDisplayErrorCode & 64) != 0) fontRendererObj.drawString("Incomplete Structure.", 10, 8, 16448255); - - if (((GT_Container_MultiMachine)mContainer).mDisplayErrorCode == 0) { - if (((GT_Container_MultiMachine)mContainer).mActive == 0) { - fontRendererObj.drawString("Hit with Soft Hammer to (re-)start the Machine if it doesn't start.", -70, 170, 16448255); - } else { - fontRendererObj.drawString("Running perfectly.", 10, 170, 16448255); - } - } - if(this.mContainer!=null){ - fontRendererObj.drawString(GT_Utility.formatNumbers(this.mContainer.mEnergy)+" EU", 50, 155, 0x00ff0000); - } + if ((((GT_Container_MultiMachine) mContainer).mDisplayErrorCode & 64) != 0) + fontRendererObj.drawString("Incomplete Structure.", 10, 8, 16448255); + + if (((GT_Container_MultiMachine) mContainer).mDisplayErrorCode == 0) { + if (((GT_Container_MultiMachine) mContainer).mActive == 0) { + fontRendererObj.drawString("Hit with Soft Hammer to (re-)start the Machine if it doesn't start.", -70, 170, 16448255); + } else { + fontRendererObj.drawString("Running perfectly.", 10, 170, 16448255); + } + } + if (this.mContainer != null) { + fontRendererObj.drawString(GT_Utility.formatNumbers(this.mContainer.mEnergy) + " EU", 50, 155, 0x00ff0000); + } } } - + @Override protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { - super.drawGuiContainerBackgroundLayer(par1, par2, par3); + super.drawGuiContainerBackgroundLayer(par1, par2, par3); int x = (width - xSize) / 2; int y = (height - ySize) / 2; drawTexturedModalRect(x, y, 0, 0, xSize, ySize); - if (this.mContainer != null) - { - double tScale = (double) this.mContainer.mEnergy / (double)this.mContainer.mStorage; - drawTexturedModalRect(x + 5, y + 156, 0, 251,Math.min(147, (int)(tScale*148)), 5); + if (this.mContainer != null) { + double tScale = (double) this.mContainer.mEnergy / (double) this.mContainer.mStorage; + drawTexturedModalRect(x + 5, y + 156, 0, 251, Math.min(147, (int) (tScale * 148)), 5); } } } \ No newline at end of file diff --git a/src/main/java/gregtech/common/gui/GT_GUIContainer_QuantumChest.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_QuantumChest.java index 0838f102..9f557d43 100644 --- a/src/main/java/gregtech/common/gui/GT_GUIContainer_QuantumChest.java +++ b/src/main/java/gregtech/common/gui/GT_GUIContainer_QuantumChest.java @@ -1,36 +1,35 @@ package gregtech.common.gui; -import static gregtech.api.enums.GT_Values.RES_PATH_GUI; -import gregtech.api.gui.GT_Container_BasicTank; import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.util.GT_Utility; -import gregtech.common.tileentities.storage.GT_MetaTileEntity_QuantumChest; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.StatCollector; +import static gregtech.api.enums.GT_Values.RES_PATH_GUI; + public class GT_GUIContainer_QuantumChest extends GT_GUIContainerMetaTile_Machine { - - private final String mName; - + + private final String mName; + public GT_GUIContainer_QuantumChest(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName) { super(new GT_Container_QuantumChest(aInventoryPlayer, aTileEntity), RES_PATH_GUI + "BasicTank.png"); mName = aName; } - + @Override protected void drawGuiContainerForegroundLayer(int par1, int par2) { fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 8, ySize - 96 + 2, 4210752); fontRendererObj.drawString(mName, 8, 6, 4210752); if (mContainer != null) { - fontRendererObj.drawString("Item Amount", 10, 20, 16448255); - fontRendererObj.drawString(GT_Utility.parseNumberToString(((GT_Container_QuantumChest)mContainer).mContent), 10, 30, 16448255); + fontRendererObj.drawString("Item Amount", 10, 20, 16448255); + fontRendererObj.drawString(GT_Utility.parseNumberToString(((GT_Container_QuantumChest) mContainer).mContent), 10, 30, 16448255); } } @Override protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { - super.drawGuiContainerBackgroundLayer(par1, par2, par3); + super.drawGuiContainerBackgroundLayer(par1, par2, par3); int x = (width - xSize) / 2; int y = (height - ySize) / 2; drawTexturedModalRect(x, y, 0, 0, xSize, ySize); diff --git a/src/main/java/gregtech/common/gui/GT_GUIContainer_Regulator.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_Regulator.java index a3ba4d42..d02592f5 100644 --- a/src/main/java/gregtech/common/gui/GT_GUIContainer_Regulator.java +++ b/src/main/java/gregtech/common/gui/GT_GUIContainer_Regulator.java @@ -2,35 +2,30 @@ package gregtech.common.gui; import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import net.minecraft.client.gui.FontRenderer; import net.minecraft.entity.player.InventoryPlayer; public class GT_GUIContainer_Regulator - extends GT_GUIContainerMetaTile_Machine -{ - public GT_GUIContainer_Regulator(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) - { - super(new GT_Container_Regulator(aInventoryPlayer, aTileEntity), "gregtech:textures/gui/Regulator.png"); - } - - protected void drawGuiContainerForegroundLayer(int par1, int par2) - { - this.fontRendererObj.drawString("" + ((GT_Container_Regulator)this.mContainer).mTargetSlots[0], 120, 9, 16448255); - this.fontRendererObj.drawString("" + ((GT_Container_Regulator)this.mContainer).mTargetSlots[1], 137, 9, 16448255); - this.fontRendererObj.drawString("" + ((GT_Container_Regulator)this.mContainer).mTargetSlots[2], 155, 9, 16448255); - this.fontRendererObj.drawString("" + ((GT_Container_Regulator)this.mContainer).mTargetSlots[3], 120, 26, 16448255); - this.fontRendererObj.drawString("" + ((GT_Container_Regulator)this.mContainer).mTargetSlots[4], 137, 26, 16448255); - this.fontRendererObj.drawString("" + ((GT_Container_Regulator)this.mContainer).mTargetSlots[5], 155, 26, 16448255); - this.fontRendererObj.drawString("" + ((GT_Container_Regulator)this.mContainer).mTargetSlots[6], 120, 43, 16448255); - this.fontRendererObj.drawString("" + ((GT_Container_Regulator)this.mContainer).mTargetSlots[7], 137, 43, 16448255); - this.fontRendererObj.drawString("" + ((GT_Container_Regulator)this.mContainer).mTargetSlots[8], 155, 43, 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); - } + extends GT_GUIContainerMetaTile_Machine { + public GT_GUIContainer_Regulator(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(new GT_Container_Regulator(aInventoryPlayer, aTileEntity), "gregtech:textures/gui/Regulator.png"); + } + + protected void drawGuiContainerForegroundLayer(int par1, int par2) { + this.fontRendererObj.drawString("" + ((GT_Container_Regulator) this.mContainer).mTargetSlots[0], 120, 9, 16448255); + this.fontRendererObj.drawString("" + ((GT_Container_Regulator) this.mContainer).mTargetSlots[1], 137, 9, 16448255); + this.fontRendererObj.drawString("" + ((GT_Container_Regulator) this.mContainer).mTargetSlots[2], 155, 9, 16448255); + this.fontRendererObj.drawString("" + ((GT_Container_Regulator) this.mContainer).mTargetSlots[3], 120, 26, 16448255); + this.fontRendererObj.drawString("" + ((GT_Container_Regulator) this.mContainer).mTargetSlots[4], 137, 26, 16448255); + this.fontRendererObj.drawString("" + ((GT_Container_Regulator) this.mContainer).mTargetSlots[5], 155, 26, 16448255); + this.fontRendererObj.drawString("" + ((GT_Container_Regulator) this.mContainer).mTargetSlots[6], 120, 43, 16448255); + this.fontRendererObj.drawString("" + ((GT_Container_Regulator) this.mContainer).mTargetSlots[7], 137, 43, 16448255); + this.fontRendererObj.drawString("" + ((GT_Container_Regulator) this.mContainer).mTargetSlots[8], 155, 43, 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/src/main/java/gregtech/common/gui/GT_GUIContainer_SuperBuffer.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_SuperBuffer.java index 2e1daf31..4fe7793c 100644 --- a/src/main/java/gregtech/common/gui/GT_GUIContainer_SuperBuffer.java +++ b/src/main/java/gregtech/common/gui/GT_GUIContainer_SuperBuffer.java @@ -5,18 +5,15 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.InventoryPlayer; public class GT_GUIContainer_SuperBuffer - extends GT_GUIContainerMetaTile_Machine -{ - public GT_GUIContainer_SuperBuffer(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) - { - super(new GT_Container_SuperBuffer(aInventoryPlayer, aTileEntity), "gregtech:textures/gui/SuperBuffer.png"); - } - - 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); - } + extends GT_GUIContainerMetaTile_Machine { + public GT_GUIContainer_SuperBuffer(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(new GT_Container_SuperBuffer(aInventoryPlayer, aTileEntity), "gregtech:textures/gui/SuperBuffer.png"); + } + + 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/src/main/java/gregtech/common/gui/GT_GUIContainer_Teleporter.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_Teleporter.java index 467a124d..6f7e2808 100644 --- a/src/main/java/gregtech/common/gui/GT_GUIContainer_Teleporter.java +++ b/src/main/java/gregtech/common/gui/GT_GUIContainer_Teleporter.java @@ -1,41 +1,34 @@ 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; +import static gregtech.api.enums.GT_Values.RES_PATH_GUI; + 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); - } + 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); } - } - - 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/src/main/java/gregtech/common/gui/GT_GUIContainer_TypeFilter.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_TypeFilter.java index 64f597c9..6459a57d 100644 --- a/src/main/java/gregtech/common/gui/GT_GUIContainer_TypeFilter.java +++ b/src/main/java/gregtech/common/gui/GT_GUIContainer_TypeFilter.java @@ -5,18 +5,15 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.InventoryPlayer; public class GT_GUIContainer_TypeFilter - extends GT_GUIContainerMetaTile_Machine -{ - public GT_GUIContainer_TypeFilter(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) - { - super(new GT_Container_TypeFilter(aInventoryPlayer, aTileEntity), "gregtech:textures/gui/TypeFilter.png"); - } - - 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); - } + extends GT_GUIContainerMetaTile_Machine { + public GT_GUIContainer_TypeFilter(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(new GT_Container_TypeFilter(aInventoryPlayer, aTileEntity), "gregtech:textures/gui/TypeFilter.png"); + } + + 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/src/main/java/gregtech/common/items/GT_DepletetCell_Item.java b/src/main/java/gregtech/common/items/GT_DepletetCell_Item.java index 84c38db6..add80f07 100644 --- a/src/main/java/gregtech/common/items/GT_DepletetCell_Item.java +++ b/src/main/java/gregtech/common/items/GT_DepletetCell_Item.java @@ -1,26 +1,39 @@ package gregtech.common.items; -import net.minecraft.item.ItemStack; -import ic2.api.reactor.IReactor; import gregtech.api.items.GT_RadioactiveCellIC_Item; +import ic2.api.reactor.IReactor; +import net.minecraft.item.ItemStack; -public class GT_DepletetCell_Item extends GT_RadioactiveCellIC_Item{ +public class GT_DepletetCell_Item extends GT_RadioactiveCellIC_Item { - public GT_DepletetCell_Item(String aUnlocalized, String aEnglish, int aRadiation) { - super(aUnlocalized, aEnglish, 1, 1, 0, aRadiation,0);} - - public void processChamber(IReactor paramIReactor, ItemStack paramItemStack, int paramInt1, int paramInt2, boolean paramBoolean){} - - public boolean acceptUraniumPulse(IReactor paramIReactor, ItemStack paramItemStack1, ItemStack paramItemStack2, int paramInt1, int paramInt2, int paramInt3, int paramInt4, boolean paramBoolean){ - return false;} - - public boolean canStoreHeat(IReactor paramIReactor, ItemStack paramItemStack, int paramInt1, int paramInt2){return false;} - - public int getMaxHeat(IReactor paramIReactor, ItemStack paramItemStack, int paramInt1, int paramInt2){return 0;} - - public int getCurrentHeat(IReactor paramIReactor, ItemStack paramItemStack, int paramInt1, int paramInt2){return 0;} - - public int alterHeat(IReactor paramIReactor, ItemStack paramItemStack, int paramInt1, int paramInt2, int paramInt3){return 0;} - - public float influenceExplosion(IReactor paramIReactor, ItemStack paramItemStack){return 0.0F;} + public GT_DepletetCell_Item(String aUnlocalized, String aEnglish, int aRadiation) { + super(aUnlocalized, aEnglish, 1, 1, 0, aRadiation, 0); + } + + public void processChamber(IReactor paramIReactor, ItemStack paramItemStack, int paramInt1, int paramInt2, boolean paramBoolean) { + } + + public boolean acceptUraniumPulse(IReactor paramIReactor, ItemStack paramItemStack1, ItemStack paramItemStack2, int paramInt1, int paramInt2, int paramInt3, int paramInt4, boolean paramBoolean) { + return false; + } + + public boolean canStoreHeat(IReactor paramIReactor, ItemStack paramItemStack, int paramInt1, int paramInt2) { + return false; + } + + public int getMaxHeat(IReactor paramIReactor, ItemStack paramItemStack, int paramInt1, int paramInt2) { + return 0; + } + + public int getCurrentHeat(IReactor paramIReactor, ItemStack paramItemStack, int paramInt1, int paramInt2) { + return 0; + } + + public int alterHeat(IReactor paramIReactor, ItemStack paramItemStack, int paramInt1, int paramInt2, int paramInt3) { + return 0; + } + + public float influenceExplosion(IReactor paramIReactor, ItemStack paramItemStack) { + return 0.0F; + } } diff --git a/src/main/java/gregtech/common/items/GT_FluidDisplayItem.java b/src/main/java/gregtech/common/items/GT_FluidDisplayItem.java index 71f6d107..c7cf0dbb 100644 --- a/src/main/java/gregtech/common/items/GT_FluidDisplayItem.java +++ b/src/main/java/gregtech/common/items/GT_FluidDisplayItem.java @@ -6,7 +6,6 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.items.GT_Generic_Item; import gregtech.api.util.GT_Utility; -import java.util.List; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; @@ -17,86 +16,76 @@ import net.minecraft.util.IIcon; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; +import java.util.List; + public class GT_FluidDisplayItem - extends GT_Generic_Item -{ - public GT_FluidDisplayItem() - { - super("GregTech_FluidDisplay", "Fluid Display", null); - ItemList.Display_Fluid.set(this); - } - - protected void addAdditionalToolTips(List aList, ItemStack aStack) - { - NBTTagCompound aNBT = aStack.getTagCompound(); - if (GT_Values.D1) - { - Fluid tFluid = FluidRegistry.getFluid(aStack.getItemDamage()); - if (tFluid != null) { - aList.add("Registry: " + tFluid.getName()); - } + extends GT_Generic_Item { + public GT_FluidDisplayItem() { + super("GregTech_FluidDisplay", "Fluid Display", null); + ItemList.Display_Fluid.set(this); } - if (aNBT != null) - { - long tToolTipAmount = aNBT.getLong("mFluidDisplayAmount"); - if (tToolTipAmount > 0L) { - aList.add(EnumChatFormatting.BLUE + "Amount: " + tToolTipAmount + EnumChatFormatting.GRAY); - } - aList.add(EnumChatFormatting.RED + "Temperature: " + aNBT.getLong("mFluidDisplayHeat") + " K" + EnumChatFormatting.GRAY); - aList.add(EnumChatFormatting.GREEN + "State: " + (aNBT.getBoolean("mFluidState") ? "Gas" : "Liquid") + EnumChatFormatting.GRAY); - } - } - - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister aIconRegister) {} - - public IIcon getIconFromDamage(int aMeta) - { - Fluid tFluid = FluidRegistry.getFluid(aMeta); - return tFluid == null ? FluidRegistry.WATER.getStillIcon() : tFluid.getStillIcon(); - } - - @SideOnly(Side.CLIENT) - public int getColorFromItemStack(ItemStack aStack, int aRenderPass) - { - Fluid tFluid = FluidRegistry.getFluid(aStack.getItemDamage()); - return tFluid == null ? 16777215 : tFluid.getColor(); - } - - public int getSpriteNumber() - { - return 0; - } - - public String getUnlocalizedName(ItemStack aStack) - { - if (aStack != null) { - return GT_Utility.getFluidName(FluidRegistry.getFluid(aStack.getItemDamage()), false); - } - return ""; - } - - public String getItemStackDisplayName(ItemStack aStack) - { - if (aStack != null) { - return GT_Utility.getFluidName(FluidRegistry.getFluid(aStack.getItemDamage()), true); - } - return ""; - } - - @SideOnly(Side.CLIENT) - public void getSubItems(Item aItem, CreativeTabs aTab, List aList) - { - if (GT_Values.D1) - { - int i = 0; - for (int j = FluidRegistry.getMaxID(); i < j; i++) - { - ItemStack tStack = GT_Utility.getFluidDisplayStack(FluidRegistry.getFluid(i)); - if (tStack != null) { - aList.add(tStack); + + protected void addAdditionalToolTips(List aList, ItemStack aStack) { + NBTTagCompound aNBT = aStack.getTagCompound(); + if (GT_Values.D1) { + Fluid tFluid = FluidRegistry.getFluid(aStack.getItemDamage()); + if (tFluid != null) { + aList.add("Registry: " + tFluid.getName()); + } + } + if (aNBT != null) { + long tToolTipAmount = aNBT.getLong("mFluidDisplayAmount"); + if (tToolTipAmount > 0L) { + aList.add(EnumChatFormatting.BLUE + "Amount: " + tToolTipAmount + EnumChatFormatting.GRAY); + } + aList.add(EnumChatFormatting.RED + "Temperature: " + aNBT.getLong("mFluidDisplayHeat") + " K" + EnumChatFormatting.GRAY); + aList.add(EnumChatFormatting.GREEN + "State: " + (aNBT.getBoolean("mFluidState") ? "Gas" : "Liquid") + EnumChatFormatting.GRAY); + } + } + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister aIconRegister) { + } + + public IIcon getIconFromDamage(int aMeta) { + Fluid tFluid = FluidRegistry.getFluid(aMeta); + return tFluid == null ? FluidRegistry.WATER.getStillIcon() : tFluid.getStillIcon(); + } + + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack aStack, int aRenderPass) { + Fluid tFluid = FluidRegistry.getFluid(aStack.getItemDamage()); + return tFluid == null ? 16777215 : tFluid.getColor(); + } + + public int getSpriteNumber() { + return 0; + } + + public String getUnlocalizedName(ItemStack aStack) { + if (aStack != null) { + return GT_Utility.getFluidName(FluidRegistry.getFluid(aStack.getItemDamage()), false); + } + return ""; + } + + public String getItemStackDisplayName(ItemStack aStack) { + if (aStack != null) { + return GT_Utility.getFluidName(FluidRegistry.getFluid(aStack.getItemDamage()), true); + } + return ""; + } + + @SideOnly(Side.CLIENT) + public void getSubItems(Item aItem, CreativeTabs aTab, List aList) { + if (GT_Values.D1) { + int i = 0; + for (int j = FluidRegistry.getMaxID(); i < j; i++) { + ItemStack tStack = GT_Utility.getFluidDisplayStack(FluidRegistry.getFluid(i)); + if (tStack != null) { + aList.add(tStack); + } + } } - } } - } } diff --git a/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java b/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java index 510a426c..8727d6bd 100644 --- a/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java +++ b/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java @@ -10,116 +10,102 @@ import gregtech.api.items.GT_Generic_Item; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_ModHandler.RecipeBits; -import java.io.PrintStream; -import java.util.List; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -public class GT_IntegratedCircuit_Item - extends GT_Generic_Item -{ - public GT_IntegratedCircuit_Item() - { - super("integrated_circuit", "Integrated Circuit", ""); - setHasSubtypes(true); - setMaxDamage(0); - - ItemList.Circuit_Integrated.set(this); - +import java.util.List; - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 0L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.circuit.get(Materials.Basic) }); - - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "d ", " P ", " ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 2L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " d ", " P ", " ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 3L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " d", " P ", " ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 4L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " ", " Pd", " ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 5L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " ", " P ", " d", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 6L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " ", " P ", " d ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 7L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " ", " P ", "d ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 8L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " ", "dP ", " ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 9L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "P d", " ", " ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 10L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "P ", " d", " ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 11L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "P ", " ", " d", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 12L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "P ", " ", " d ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 13L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " P", " ", " d", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 14L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " P", " ", " d ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 15L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " P", " ", "d ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 16L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " P", "d ", " ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 17L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " ", " ", "d P", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 18L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " ", "d ", " P", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 19L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "d ", " ", " P", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 20L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " d ", " ", " P", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 21L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "d ", " ", "P ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 22L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " d ", " ", "P ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 23L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " d", " ", "P ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 24L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " ", " d", "P ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); - } - - public void addAdditionalToolTips(List aList, ItemStack aStack) - { - super.addAdditionalToolTips(aList, aStack); - aList.add(GT_LanguageManager.addStringLocalization(new StringBuilder().append(getUnlocalizedName()).append(".configuration").toString(), "Configuration: ") + getConfigurationString(getDamage(aStack))); - } - - public String getUnlocalizedName(ItemStack aStack) - { - return getUnlocalizedName(); - } - - @SideOnly(Side.CLIENT) - public final void getSubItems(Item var1, CreativeTabs aCreativeTab, List aList) - { - aList.add(new ItemStack(this, 1, 0)); - } - - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister aIconRegister) - { - super.registerIcons(aIconRegister); - if (GregTech_API.sPostloadFinished) - { - GT_Log.out.println("GT_Mod: Starting Item Icon Load Phase"); - System.out.println("GT_Mod: Starting Item Icon Load Phase"); - GregTech_API.sItemIcons = aIconRegister; - for (Runnable tRunnable : GregTech_API.sGTItemIconload) { - try - { - tRunnable.run(); - } - catch (Throwable e) - { - e.printStackTrace(GT_Log.err); - } - } - GT_Log.out.println("GT_Mod: Finished Item Icon Load Phase"); - System.out.println("GT_Mod: Finished Item Icon Load Phase"); +public class GT_IntegratedCircuit_Item + extends GT_Generic_Item { + public GT_IntegratedCircuit_Item() { + super("integrated_circuit", "Integrated Circuit", ""); + setHasSubtypes(true); + setMaxDamage(0); + + ItemList.Circuit_Integrated.set(this); + + + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 0L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.circuit.get(Materials.Basic)}); + + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"d ", " P ", " ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 2L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" d ", " P ", " ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 3L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" d", " P ", " ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 4L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" ", " Pd", " ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 5L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" ", " P ", " d", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 6L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" ", " P ", " d ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 7L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" ", " P ", "d ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 8L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" ", "dP ", " ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 9L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"P d", " ", " ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 10L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"P ", " d", " ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 11L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"P ", " ", " d", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 12L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"P ", " ", " d ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 13L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" P", " ", " d", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 14L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" P", " ", " d ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 15L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" P", " ", "d ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 16L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" P", "d ", " ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 17L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" ", " ", "d P", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 18L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" ", "d ", " P", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 19L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"d ", " ", " P", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 20L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" d ", " ", " P", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 21L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"d ", " ", "P ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 22L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" d ", " ", "P ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 23L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" d", " ", "P ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Integrated.getWithDamage(1L, 24L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" ", " d", "P ", Character.valueOf('P'), ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); } - } - - private static String getModeString(int aMetaData) - { - switch ((byte)(aMetaData >>> 8)) - { - case 0: - return "=="; - case 1: - return "<="; - case 2: - return ">="; - case 3: - return "<"; - case 4: - return ">"; + + private static String getModeString(int aMetaData) { + switch ((byte) (aMetaData >>> 8)) { + case 0: + return "=="; + case 1: + return "<="; + case 2: + return ">="; + case 3: + return "<"; + case 4: + return ">"; + } + return ""; + } + + private static String getConfigurationString(int aMetaData) { + return getModeString(aMetaData) + " " + (byte) (aMetaData & 0xFF); + } + + public void addAdditionalToolTips(List aList, ItemStack aStack) { + super.addAdditionalToolTips(aList, aStack); + aList.add(GT_LanguageManager.addStringLocalization(new StringBuilder().append(getUnlocalizedName()).append(".configuration").toString(), "Configuration: ") + getConfigurationString(getDamage(aStack))); + } + + public String getUnlocalizedName(ItemStack aStack) { + return getUnlocalizedName(); + } + + @SideOnly(Side.CLIENT) + public final void getSubItems(Item var1, CreativeTabs aCreativeTab, List aList) { + aList.add(new ItemStack(this, 1, 0)); + } + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister aIconRegister) { + super.registerIcons(aIconRegister); + if (GregTech_API.sPostloadFinished) { + GT_Log.out.println("GT_Mod: Starting Item Icon Load Phase"); + System.out.println("GT_Mod: Starting Item Icon Load Phase"); + GregTech_API.sItemIcons = aIconRegister; + for (Runnable tRunnable : GregTech_API.sGTItemIconload) { + try { + tRunnable.run(); + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } + GT_Log.out.println("GT_Mod: Finished Item Icon Load Phase"); + System.out.println("GT_Mod: Finished Item Icon Load Phase"); + } } - return ""; - } - - private static String getConfigurationString(int aMetaData) - { - return getModeString(aMetaData) + " " + (byte)(aMetaData & 0xFF); - } } diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java index e6805d3b..b2313a42 100644 --- a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java +++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java @@ -1,70 +1,19 @@ package gregtech.common.items; +import cpw.mods.fml.common.Loader; import gregtech.api.GregTech_API; -import gregtech.api.enums.ConfigCategories; -import gregtech.api.enums.ConfigCategories.Recipes; -import gregtech.api.enums.Dyes; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OreDictNames; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.SubTag; -import gregtech.api.enums.TC_Aspects; -import gregtech.api.enums.TC_Aspects.TC_AspectStack; -import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; +import gregtech.api.enums.*; import gregtech.api.interfaces.IItemBehaviour; import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.items.GT_MetaGenerated_Item_X32; -import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.GT_MultiTexture; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.objects.ItemData; import gregtech.api.objects.MaterialStack; -import gregtech.api.util.GT_Config; -import gregtech.api.util.GT_FoodStat; -import gregtech.api.util.GT_LanguageManager; -import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_ModHandler.RecipeBits; -import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Utility; -import gregtech.api.util.GT_Utility.ItemNBT; -import gregtech.common.covers.GT_Cover_Arm; -import gregtech.common.covers.GT_Cover_ControlsWork; -import gregtech.common.covers.GT_Cover_Conveyor; -import gregtech.common.covers.GT_Cover_Crafting; -import gregtech.common.covers.GT_Cover_DoesWork; -import gregtech.common.covers.GT_Cover_Drain; -import gregtech.common.covers.GT_Cover_EUMeter; -import gregtech.common.covers.GT_Cover_ItemMeter; -import gregtech.common.covers.GT_Cover_LiquidMeter; -import gregtech.common.covers.GT_Cover_NeedMaintainance; -import gregtech.common.covers.GT_Cover_PlayerDetector; -import gregtech.common.covers.GT_Cover_Pump; -import gregtech.common.covers.GT_Cover_RedstoneReceiverExternal; -import gregtech.common.covers.GT_Cover_RedstoneReceiverInternal; -import gregtech.common.covers.GT_Cover_RedstoneTransmitterExternal; -import gregtech.common.covers.GT_Cover_RedstoneTransmitterInternal; -import gregtech.common.covers.GT_Cover_Screen; -import gregtech.common.covers.GT_Cover_Shutter; -import gregtech.common.covers.GT_Cover_SolarPanel; -import gregtech.common.items.behaviors.Behaviour_Arrow_Potion; -import gregtech.common.items.behaviors.Behaviour_DataOrb; -import gregtech.common.items.behaviors.Behaviour_DataStick; -import gregtech.common.items.behaviors.Behaviour_Lighter; -import gregtech.common.items.behaviors.Behaviour_PrintedPages; -import gregtech.common.items.behaviors.Behaviour_Scanner; -import gregtech.common.items.behaviors.Behaviour_SensorKit; -import gregtech.common.items.behaviors.Behaviour_Sonictron; -import gregtech.common.items.behaviors.Behaviour_Spray_Color; -import gregtech.common.items.behaviors.Behaviour_WrittenBook; - -import java.util.List; - -import cpw.mods.fml.common.Loader; +import gregtech.api.util.*; +import gregtech.common.covers.*; +import gregtech.common.items.behaviors.*; import net.minecraft.block.Block; import net.minecraft.enchantment.Enchantment; import net.minecraft.entity.item.EntityItem; @@ -74,808 +23,798 @@ import net.minecraft.item.EnumAction; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.util.MathHelper; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeModContainer; + +import java.util.List; public class GT_MetaGenerated_Item_01 - extends GT_MetaGenerated_Item_X32 -{ - public static GT_MetaGenerated_Item_01 INSTANCE; - private final String mToolTipPurify = GT_LanguageManager.addStringLocalization("metaitem.01.tooltip.purify", "Throw into Cauldron to get clean Dust"); - - public GT_MetaGenerated_Item_01() - { - super("metaitem.01", new OrePrefixes[] { OrePrefixes.dustTiny, OrePrefixes.dustSmall, OrePrefixes.dust, OrePrefixes.dustImpure, OrePrefixes.dustPure, OrePrefixes.crushed, OrePrefixes.crushedPurified, OrePrefixes.crushedCentrifuged, OrePrefixes.gem, OrePrefixes.nugget, null, OrePrefixes.ingot, OrePrefixes.ingotHot, OrePrefixes.ingotDouble, OrePrefixes.ingotTriple, OrePrefixes.ingotQuadruple, OrePrefixes.ingotQuintuple, OrePrefixes.plate, OrePrefixes.plateDouble, OrePrefixes.plateTriple, OrePrefixes.plateQuadruple, OrePrefixes.plateQuintuple, OrePrefixes.plateDense, OrePrefixes.stick, OrePrefixes.lens, OrePrefixes.round, OrePrefixes.bolt, OrePrefixes.screw, OrePrefixes.ring, OrePrefixes.foil, OrePrefixes.cell, OrePrefixes.cellPlasma }); - INSTANCE = this; - - int tLastID = 0; - - setBurnValue(17000 + Materials.Wood.mMetaItemSubID, 1600); - GT_OreDictUnificator.addToBlacklist(new ItemStack(this, 1, 17000 + Materials.Wood.mMetaItemSubID)); - GT_ModHandler.addCompressionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 8L), new ItemStack(this, 1, 17000 + Materials.Wood.mMetaItemSubID)); - GregTech_API.registerCover(new ItemStack(this, 1, 17000 + Materials.Wood.mMetaItemSubID), new GT_RenderedTexture(Textures.BlockIcons.COVER_WOOD_PLATE), null); - - ItemStack tStack = new ItemStack(this, 1, 17000 + Materials.Wood.mMetaItemSubID); - tStack.setStackDisplayName("The holy Planks of Sengir"); - GT_Utility.ItemNBT.addEnchantment(tStack, Enchantment.smite, 10); - GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "XXX", "XDX", "XXX", Character.valueOf('X'), OrePrefixes.gem.get(Materials.NetherStar), Character.valueOf('D'), new ItemStack(Blocks.dragon_egg, 1, 32767) }); - - ItemList.Credit_Greg_Copper.set(addItem(tLastID = 0, "Copper GT Credit", "0.125 Credits", new Object[0])); - ItemList.Credit_Greg_Cupronickel.set(addItem(tLastID = 1, "Cupronickel GT Credit", "1 Credit", new Object[] { new ItemData(Materials.Cupronickel, 907200L, new MaterialStack[0]) })); - ItemList.Credit_Greg_Silver.set(addItem(tLastID = 2, "Silver GT Credit", "8 Credits", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L) })); - ItemList.Credit_Greg_Gold.set(addItem(tLastID = 3, "Gold GT Credit", "64 Credits", new Object[0])); - ItemList.Credit_Greg_Platinum.set(addItem(tLastID = 4, "Platinum GT Credit", "512 Credits", new Object[0])); - ItemList.Credit_Greg_Osmium.set(addItem(tLastID = 5, "Osmium GT Credit", "4096 Credits", new Object[0])); - ItemList.Credit_Greg_Naquadah.set(addItem(tLastID = 6, "Naquadah GT Credit", "32768 Credits", new Object[0])); - ItemList.Credit_Greg_Neutronium.set(addItem(tLastID = 7, "Neutronium GT Credit", "262144 Credits", new Object[0])); - ItemList.Coin_Gold_Ancient.set(addItem(tLastID = 8, "Ancient Gold Coin", "Found in ancient Ruins", new Object[] { new ItemData(Materials.Gold, 907200L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 8L) })); - ItemList.Coin_Doge.set(addItem(tLastID = 9, "Doge Coin", "wow much coin how money so crypto plz mine v rich very currency wow", new Object[] { new ItemData(Materials.Brass, 907200L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L) })); - ItemList.Coin_Chocolate.set(addItem(tLastID = 10, "Chocolate Coin", "Wrapped in Gold", new Object[] { new ItemData(Materials.Gold, OrePrefixes.foil.mMaterialAmount, new MaterialStack[0]), new GT_FoodStat(1, 0.1F, EnumAction.eat, GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Gold, 1L), true, false, false, new int[] { Potion.moveSpeed.id, 200, 1, 100 }) })); - ItemList.Credit_Copper.set(addItem(tLastID = 11, "Industrial Copper Credit", "0.125 Credits", new Object[0])); - - ItemList.Credit_Silver.set(addItem(tLastID = 13, "Industrial Silver Credit", "8 Credits", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L) })); - ItemList.Credit_Gold.set(addItem(tLastID = 14, "Industrial Gold Credit", "64 Credits", new Object[0])); - ItemList.Credit_Platinum.set(addItem(tLastID = 15, "Industrial Platinum Credit", "512 Credits", new Object[0])); - ItemList.Credit_Osmium.set(addItem(tLastID = 16, "Industrial Osmium Credit", "4096 Credits", new Object[0])); - - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Coin_Chocolate.get(1L, new Object[0]), new Object[] { OrePrefixes.dust.get(Materials.Cocoa), OrePrefixes.dust.get(Materials.Milk), OrePrefixes.dust.get(Materials.Sugar), OrePrefixes.foil.get(Materials.Gold) }); - - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Copper.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Iron }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Iron.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Silver }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Silver.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Gold }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Gold.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Platinum }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Platinum.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Osmium }); - - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Iron.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Copper, ItemList.Credit_Copper, ItemList.Credit_Copper, ItemList.Credit_Copper, ItemList.Credit_Copper, ItemList.Credit_Copper, ItemList.Credit_Copper, ItemList.Credit_Copper }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Silver.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Iron, ItemList.Credit_Iron, ItemList.Credit_Iron, ItemList.Credit_Iron, ItemList.Credit_Iron, ItemList.Credit_Iron, ItemList.Credit_Iron, ItemList.Credit_Iron }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Gold.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Silver, ItemList.Credit_Silver, ItemList.Credit_Silver, ItemList.Credit_Silver, ItemList.Credit_Silver, ItemList.Credit_Silver, ItemList.Credit_Silver, ItemList.Credit_Silver }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Platinum.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Gold, ItemList.Credit_Gold, ItemList.Credit_Gold, ItemList.Credit_Gold, ItemList.Credit_Gold, ItemList.Credit_Gold, ItemList.Credit_Gold, ItemList.Credit_Gold }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Osmium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Platinum, ItemList.Credit_Platinum, ItemList.Credit_Platinum, ItemList.Credit_Platinum, ItemList.Credit_Platinum, ItemList.Credit_Platinum, ItemList.Credit_Platinum, ItemList.Credit_Platinum }); - - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Copper.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Greg_Cupronickel }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Cupronickel.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Greg_Silver }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Silver.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Greg_Gold }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Gold.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Greg_Platinum }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Platinum.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Greg_Osmium }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Osmium.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Greg_Naquadah }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Naquadah.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Greg_Neutronium }); - - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Cupronickel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Greg_Copper, ItemList.Credit_Greg_Copper, ItemList.Credit_Greg_Copper, ItemList.Credit_Greg_Copper, ItemList.Credit_Greg_Copper, ItemList.Credit_Greg_Copper, ItemList.Credit_Greg_Copper, ItemList.Credit_Greg_Copper }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Silver.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Greg_Cupronickel, ItemList.Credit_Greg_Cupronickel, ItemList.Credit_Greg_Cupronickel, ItemList.Credit_Greg_Cupronickel, ItemList.Credit_Greg_Cupronickel, ItemList.Credit_Greg_Cupronickel, ItemList.Credit_Greg_Cupronickel, ItemList.Credit_Greg_Cupronickel }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Gold.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Greg_Silver, ItemList.Credit_Greg_Silver, ItemList.Credit_Greg_Silver, ItemList.Credit_Greg_Silver, ItemList.Credit_Greg_Silver, ItemList.Credit_Greg_Silver, ItemList.Credit_Greg_Silver, ItemList.Credit_Greg_Silver }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Platinum.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Greg_Gold, ItemList.Credit_Greg_Gold, ItemList.Credit_Greg_Gold, ItemList.Credit_Greg_Gold, ItemList.Credit_Greg_Gold, ItemList.Credit_Greg_Gold, ItemList.Credit_Greg_Gold, ItemList.Credit_Greg_Gold }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Osmium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Greg_Platinum, ItemList.Credit_Greg_Platinum, ItemList.Credit_Greg_Platinum, ItemList.Credit_Greg_Platinum, ItemList.Credit_Greg_Platinum, ItemList.Credit_Greg_Platinum, ItemList.Credit_Greg_Platinum, ItemList.Credit_Greg_Platinum }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Naquadah.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Greg_Osmium, ItemList.Credit_Greg_Osmium, ItemList.Credit_Greg_Osmium, ItemList.Credit_Greg_Osmium, ItemList.Credit_Greg_Osmium, ItemList.Credit_Greg_Osmium, ItemList.Credit_Greg_Osmium, ItemList.Credit_Greg_Osmium }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Neutronium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Credit_Greg_Naquadah, ItemList.Credit_Greg_Naquadah, ItemList.Credit_Greg_Naquadah, ItemList.Credit_Greg_Naquadah, ItemList.Credit_Greg_Naquadah, ItemList.Credit_Greg_Naquadah, ItemList.Credit_Greg_Naquadah, ItemList.Credit_Greg_Naquadah }); - - ItemList.Component_Minecart_Wheels_Iron.set(addItem(tLastID = 100, "Iron Minecart Wheels", "To get things rolling", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L) })); - ItemList.Component_Minecart_Wheels_Steel.set(addItem(tLastID = 101, "Steel Minecart Wheels", "To get things rolling", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L) })); - - GT_ModHandler.addCraftingRecipe(ItemList.Component_Minecart_Wheels_Iron.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " h ", "RSR", " w ", Character.valueOf('R'), OrePrefixes.ring.get(Materials.AnyIron), Character.valueOf('S'), OrePrefixes.stick.get(Materials.AnyIron) }); - GT_ModHandler.addCraftingRecipe(ItemList.Component_Minecart_Wheels_Steel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " h ", "RSR", " w ", Character.valueOf('R'), OrePrefixes.ring.get(Materials.Steel), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Steel) }); - - ItemList.Arrow_Head_Glass_Emtpy.set(addItem(tLastID = 200, "Empty Glass Arrow Head", "Fill with Potions before use", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L) })); - ItemList.Arrow_Head_Glass_Poison.set(addItem(tLastID = 201, "Poison Glass Arrow Head", "Glass Arrow filled with Poison", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L) })); - ItemList.Arrow_Head_Glass_Poison_Long.set(addItem(tLastID = 202, "Poison Glass Arrow Head", "Glass Arrow filled with stretched Poison", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L) })); - ItemList.Arrow_Head_Glass_Poison_Strong.set(addItem(tLastID = 203, "Poison Glass Arrow Head", "Glass Arrow filled with strong Poison", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L) })); - ItemList.Arrow_Head_Glass_Slowness.set(addItem(tLastID = 204, "Slowness Glass Arrow Head", "Glass Arrow filled with Laming Brew", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L) })); - ItemList.Arrow_Head_Glass_Slowness_Long.set(addItem(tLastID = 205, "Slowness Glass Arrow Head", "Glass Arrow filled with stretched Laming Brew", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L) })); - ItemList.Arrow_Head_Glass_Weakness.set(addItem(tLastID = 206, "Weakness Glass Arrow Head", "Glass Arrow filled with Weakening Brew", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L) })); - ItemList.Arrow_Head_Glass_Weakness_Long.set(addItem(tLastID = 207, "Weakness Glass Arrow Head", "Glass Arrow filled with stretched Weakening Brew", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L) })); - ItemList.Arrow_Head_Glass_Holy_Water.set(addItem(tLastID = 208, "Holy Water Glass Arrow Head", "Glass Arrow filled with Holy Water", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AURAM, 1L) })); - - ItemList.Arrow_Wooden_Glass_Emtpy.set(addItem(tLastID = 225, "Regular Glass Vial Arrow", "Empty Glass Arrow", new Object[] { new Behaviour_Arrow_Potion(1.0F, 6.0F, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L) })); - ItemList.Arrow_Wooden_Glass_Poison.set(addItem(tLastID = 226, "Regular Poison Arrow", "Glass Arrow filled with Poison", new Object[] { new Behaviour_Arrow_Potion(1.0F, 6.0F, new int[] { Potion.poison.id, 450, 0, 100 }), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L) })); - ItemList.Arrow_Wooden_Glass_Poison_Long.set(addItem(tLastID = 227, "Regular Poison Arrow", "Glass Arrow filled with stretched Poison", new Object[] { new Behaviour_Arrow_Potion(1.0F, 6.0F, new int[] { Potion.poison.id, 900, 0, 100 }), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L) })); - ItemList.Arrow_Wooden_Glass_Poison_Strong.set(addItem(tLastID = 228, "Regular Poison Arrow", "Glass Arrow filled with strong Poison", new Object[] { new Behaviour_Arrow_Potion(1.0F, 6.0F, new int[] { Potion.poison.id, 450, 1, 100 }), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L) })); - ItemList.Arrow_Wooden_Glass_Slowness.set(addItem(tLastID = 229, "Regular Slowness Arrow", "Glass Arrow filled with Laming Brew", new Object[] { new Behaviour_Arrow_Potion(1.0F, 6.0F, new int[] { Potion.moveSlowdown.id, 900, 0, 100 }), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L) })); - ItemList.Arrow_Wooden_Glass_Slowness_Long.set(addItem(tLastID = 230, "Regular Slowness Arrow", "Glass Arrow filled with stretched Laming Brew", new Object[] { new Behaviour_Arrow_Potion(1.0F, 6.0F, new int[] { Potion.moveSlowdown.id, 1800, 0, 100 }), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L) })); - ItemList.Arrow_Wooden_Glass_Weakness.set(addItem(tLastID = 231, "Regular Weakness Arrow", "Glass Arrow filled with Weakening Brew", new Object[] { new Behaviour_Arrow_Potion(1.0F, 6.0F, new int[] { Potion.weakness.id, 900, 0, 100 }), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L) })); - ItemList.Arrow_Wooden_Glass_Weakness_Long.set(addItem(tLastID = 232, "Regular Weakness Arrow", "Glass Arrow filled with stretched Weakening Brew", new Object[] { new Behaviour_Arrow_Potion(1.0F, 6.0F, new int[] { Potion.weakness.id, 1800, 0, 100 }), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L) })); - ItemList.Arrow_Wooden_Glass_Holy_Water.set(addItem(tLastID = 233, "Regular Holy Water Arrow", "Glass Arrow filled with Holy Water", new Object[] { new Behaviour_Arrow_Potion(1.0F, 6.0F, Enchantment.smite, 10, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AURAM, 1L) })); - - ItemList.Arrow_Plastic_Glass_Emtpy.set(addItem(tLastID = 250, "Light Glass Vial Arrow", "Empty Glass Arrow", new Object[] { new Behaviour_Arrow_Potion(1.5F, 6.0F, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L) })); - ItemList.Arrow_Plastic_Glass_Poison.set(addItem(tLastID = 251, "Light Poison Arrow", "Glass Arrow filled with Poison", new Object[] { new Behaviour_Arrow_Potion(1.5F, 6.0F, new int[] { Potion.poison.id, 450, 0, 100 }), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L) })); - ItemList.Arrow_Plastic_Glass_Poison_Long.set(addItem(tLastID = 252, "Light Poison Arrow", "Glass Arrow filled with stretched Poison", new Object[] { new Behaviour_Arrow_Potion(1.5F, 6.0F, new int[] { Potion.poison.id, 900, 0, 100 }), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L) })); - ItemList.Arrow_Plastic_Glass_Poison_Strong.set(addItem(tLastID = 253, "Light Poison Arrow", "Glass Arrow filled with strong Poison", new Object[] { new Behaviour_Arrow_Potion(1.5F, 6.0F, new int[] { Potion.poison.id, 450, 1, 100 }), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L) })); - ItemList.Arrow_Plastic_Glass_Slowness.set(addItem(tLastID = 254, "Light Slowness Arrow", "Glass Arrow filled with Laming Brew", new Object[] { new Behaviour_Arrow_Potion(1.5F, 6.0F, new int[] { Potion.moveSlowdown.id, 900, 0, 100 }), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L) })); - ItemList.Arrow_Plastic_Glass_Slowness_Long.set(addItem(tLastID = 255, "Light Slowness Arrow", "Glass Arrow filled with stretched Laming Brew", new Object[] { new Behaviour_Arrow_Potion(1.5F, 6.0F, new int[] { Potion.moveSlowdown.id, 1800, 0, 100 }), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L) })); - ItemList.Arrow_Plastic_Glass_Weakness.set(addItem(tLastID = 256, "Light Weakness Arrow", "Glass Arrow filled with Weakening Brew", new Object[] { new Behaviour_Arrow_Potion(1.5F, 6.0F, new int[] { Potion.weakness.id, 900, 0, 100 }), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L) })); - ItemList.Arrow_Plastic_Glass_Weakness_Long.set(addItem(tLastID = 257, "Light Weakness Arrow", "Glass Arrow filled with stretched Weakening Brew", new Object[] { new Behaviour_Arrow_Potion(1.5F, 6.0F, new int[] { Potion.weakness.id, 1800, 0, 100 }), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L) })); - ItemList.Arrow_Plastic_Glass_Holy_Water.set(addItem(tLastID = 258, "Light Holy Water Arrow", "Glass Arrow filled with Holy Water", new Object[] { new Behaviour_Arrow_Potion(1.5F, 6.0F, Enchantment.smite, 10, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AURAM, 1L) })); - - GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Wooden_Glass_Emtpy.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Emtpy, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood) }); - GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Wooden_Glass_Poison.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Poison, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood) }); - GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Wooden_Glass_Poison_Long.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Poison_Long, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood) }); - GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Wooden_Glass_Poison_Strong.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Poison_Strong, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood) }); - GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Wooden_Glass_Slowness.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Slowness, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood) }); - GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Wooden_Glass_Slowness_Long.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Slowness_Long, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood) }); - GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Wooden_Glass_Weakness.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Weakness, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood) }); - GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Wooden_Glass_Weakness_Long.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Weakness_Long, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood) }); - GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Wooden_Glass_Holy_Water.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Holy_Water, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood) }); - - GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Plastic_Glass_Emtpy.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Emtpy, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Plastic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Plastic_Glass_Poison.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Poison, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Plastic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Plastic_Glass_Poison_Long.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Poison_Long, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Plastic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Plastic_Glass_Poison_Strong.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Poison_Strong, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Plastic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Plastic_Glass_Slowness.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Slowness, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Plastic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Plastic_Glass_Slowness_Long.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Slowness_Long, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Plastic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Plastic_Glass_Weakness.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Weakness, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Plastic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Plastic_Glass_Weakness_Long.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Weakness_Long, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Plastic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Plastic_Glass_Holy_Water.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Holy_Water, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Plastic) }); - - ItemList.Shape_Empty.set(addItem(tLastID = 300, "Empty Shape Plate", "Raw Plate to make Molds and Extruder Shapes", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L) })); - - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Empty.get(1L, new Object[0]), GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "hf", "PP", "PP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel) }); - - ItemList.Shape_Mold_Plate.set(addItem(tLastID = 301, "Mold (Plate)", "Mold for making Plates", new Object[0])); - ItemList.Shape_Mold_Casing.set(addItem(tLastID = 302, "Mold (Casing)", "Mold for making Item Casings", new Object[0])); - ItemList.Shape_Mold_Gear.set(addItem(tLastID = 303, "Mold (Gear)", "Mold for making Gears", new Object[0])); - ItemList.Shape_Mold_Credit.set(addItem(tLastID = 304, "Mold (Coinage)", "Secure Mold for making Coins (Don't lose it!)", new Object[0])); - ItemList.Shape_Mold_Bottle.set(addItem(tLastID = 305, "Mold (Bottle)", "Mold for making Bottles", new Object[0])); - ItemList.Shape_Mold_Ingot.set(addItem(tLastID = 306, "Mold (Ingot)", "Mold for making Ingots", new Object[0])); - ItemList.Shape_Mold_Ball.set(addItem(tLastID = 307, "Mold (Ball)", "Mold for making Balls", new Object[0])); - ItemList.Shape_Mold_Block.set(addItem(tLastID = 308, "Mold (Block)", "Mold for making Blocks", new Object[0])); - ItemList.Shape_Mold_Nugget.set(addItem(tLastID = 309, "Mold (Nuggets)", "Mold for making Nuggets", new Object[0])); - ItemList.Shape_Mold_Bun.set(addItem(tLastID = 310, "Mold (Buns)", "Mold for shaping Buns", new Object[0])); - ItemList.Shape_Mold_Bread.set(addItem(tLastID = 311, "Mold (Bread)", "Mold for shaping Breads", new Object[0])); - ItemList.Shape_Mold_Baguette.set(addItem(tLastID = 312, "Mold (Baguette)", "Mold for shaping Baguettes", new Object[0])); - ItemList.Shape_Mold_Cylinder.set(addItem(tLastID = 313, "Mold (Cylinder)", "Mold for shaping Cylinders", new Object[0])); - ItemList.Shape_Mold_Anvil.set(addItem(tLastID = 314, "Mold (Anvil)", "Mold for shaping Anvils", new Object[0])); - ItemList.Shape_Mold_Name.set(addItem(tLastID = 315, "Mold (Name)", "Mold for naming Items (rename Mold with Anvil)", new Object[0])); - ItemList.Shape_Mold_Arrow.set(addItem(tLastID = 316, "Mold (Arrow Head)", "Mold for making Arrow Heads", new Object[0])); - ItemList.Shape_Mold_Gear_Small.set(addItem(tLastID = 317, "Mold (Small Gear)", "Mold for making small Gears", new Object[0])); - - GT_ModHandler.removeRecipe(new ItemStack[] { new ItemStack(Blocks.glass), null, new ItemStack(Blocks.glass), null, new ItemStack(Blocks.glass) }); - - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Credit.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "h ", " P ", " ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Plate.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " h ", " P ", " ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Casing.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " h", " P ", " ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Gear.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " ", " Ph", " ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Bottle.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " ", " P ", " h", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " ", " P ", " h ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Ball.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " ", " P ", "h ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Block.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " ", "hP ", " ", Character.valueOf('P'), ItemList.Shape_Empty }); - - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Nugget.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "P h", " ", " ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Bun.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "P ", " h", " ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Bread.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "P ", " ", " h", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Baguette.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "P ", " ", " h ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Cylinder.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " P", " ", " h", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Anvil.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " P", " ", " h ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Name.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " P", " ", "h ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Arrow.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " P", "h ", " ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Gear_Small.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " ", " ", "h P", Character.valueOf('P'), ItemList.Shape_Empty }); - - ItemList.Shape_Extruder_Plate.set(addItem(tLastID = 350, "Extruder Shape (Plate)", "Extruder Shape for making Plates", new Object[0])); - ItemList.Shape_Extruder_Rod.set(addItem(tLastID = 351, "Extruder Shape (Rod)", "Extruder Shape for making Rods", new Object[0])); - ItemList.Shape_Extruder_Bolt.set(addItem(tLastID = 352, "Extruder Shape (Bolt)", "Extruder Shape for making Bolts", new Object[0])); - ItemList.Shape_Extruder_Ring.set(addItem(tLastID = 353, "Extruder Shape (Ring)", "Extruder Shape for making Rings", new Object[0])); - ItemList.Shape_Extruder_Cell.set(addItem(tLastID = 354, "Extruder Shape (Cell)", "Extruder Shape for making Cells", new Object[0])); - ItemList.Shape_Extruder_Ingot.set(addItem(tLastID = 355, "Extruder Shape (Ingot)", "Extruder Shape for, wait, can't we just use a Furnace?", new Object[0])); - ItemList.Shape_Extruder_Wire.set(addItem(tLastID = 356, "Extruder Shape (Wire)", "Extruder Shape for making Wires", new Object[0])); - ItemList.Shape_Extruder_Casing.set(addItem(tLastID = 357, "Extruder Shape (Casing)", "Extruder Shape for making Item Casings", new Object[0])); - ItemList.Shape_Extruder_Pipe_Tiny.set(addItem(tLastID = 358, "Extruder Shape (Tiny Pipe)", "Extruder Shape for making tiny Pipes", new Object[0])); - ItemList.Shape_Extruder_Pipe_Small.set(addItem(tLastID = 359, "Extruder Shape (Small Pipe)", "Extruder Shape for making small Pipes", new Object[0])); - ItemList.Shape_Extruder_Pipe_Medium.set(addItem(tLastID = 360, "Extruder Shape (Normal Pipe)", "Extruder Shape for making Pipes", new Object[0])); - ItemList.Shape_Extruder_Pipe_Large.set(addItem(tLastID = 361, "Extruder Shape (Large Pipe)", "Extruder Shape for making large Pipes", new Object[0])); - ItemList.Shape_Extruder_Pipe_Huge.set(addItem(tLastID = 362, "Extruder Shape (Huge Pipe)", "Extruder Shape for making full Block Pipes", new Object[0])); - ItemList.Shape_Extruder_Block.set(addItem(tLastID = 363, "Extruder Shape (Block)", "Extruder Shape for making Blocks", new Object[0])); - ItemList.Shape_Extruder_Sword.set(addItem(tLastID = 364, "Extruder Shape (Sword Blade)", "Extruder Shape for making Swords", new Object[0])); - ItemList.Shape_Extruder_Pickaxe.set(addItem(tLastID = 365, "Extruder Shape (Pickaxe Head)", "Extruder Shape for making Pickaxes", new Object[0])); - ItemList.Shape_Extruder_Shovel.set(addItem(tLastID = 366, "Extruder Shape (Shovel Head)", "Extruder Shape for making Shovels", new Object[0])); - ItemList.Shape_Extruder_Axe.set(addItem(tLastID = 367, "Extruder Shape (Axe Head)", "Extruder Shape for making Axes", new Object[0])); - ItemList.Shape_Extruder_Hoe.set(addItem(tLastID = 368, "Extruder Shape (Hoe Head)", "Extruder Shape for making Hoes", new Object[0])); - ItemList.Shape_Extruder_Hammer.set(addItem(tLastID = 369, "Extruder Shape (Hammer Head)", "Extruder Shape for making Hammers", new Object[0])); - ItemList.Shape_Extruder_File.set(addItem(tLastID = 370, "Extruder Shape (File Head)", "Extruder Shape for making Files", new Object[0])); - ItemList.Shape_Extruder_Saw.set(addItem(tLastID = 371, "Extruder Shape (Saw Blade)", "Extruder Shape for making Saws", new Object[0])); - ItemList.Shape_Extruder_Gear.set(addItem(tLastID = 372, "Extruder Shape (Gear)", "Extruder Shape for making Gears", new Object[0])); - ItemList.Shape_Extruder_Bottle.set(addItem(tLastID = 373, "Extruder Shape (Bottle)", "Extruder Shape for making Bottles", new Object[0])); - - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Bolt.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "x ", " P ", " ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Cell.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " x ", " P ", " ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " x", " P ", " ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Ring.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " ", " Px", " ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Rod.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " ", " P ", " x", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Wire.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " ", " P ", " x ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Casing.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " ", " P ", "x ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Plate.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " ", "xP ", " ", Character.valueOf('P'), ItemList.Shape_Empty }); - - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Block.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "P x", " ", " ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Pipe_Small.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "P ", " x", " ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Pipe_Large.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "P ", " ", " x", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Pipe_Medium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "P ", " ", " x ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Sword.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " P", " ", " x", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Pickaxe.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " P", " ", " x ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Shovel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " P", " ", "x ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Axe.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " P", "x ", " ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Hoe.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " ", " ", "x P", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Hammer.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " ", "x ", " P", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_File.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "x ", " ", " P", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Saw.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " x ", " ", " P", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Gear.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "x ", " ", "P ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Pipe_Tiny.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " x ", " ", "P ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Pipe_Huge.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " x", " ", "P ", Character.valueOf('P'), ItemList.Shape_Empty }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Bottle.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " ", " x", "P ", Character.valueOf('P'), ItemList.Shape_Empty }); - - ItemList.Shape_Slicer_Flat.set(addItem(tLastID = 398, "Slicer Blade (Flat)", "Slicer Blade for cutting Flat", new Object[0])); - ItemList.Shape_Slicer_Stripes.set(addItem(tLastID = 399, "Slicer Blade (Stripes)", "Slicer Blade for cutting Stripes", new Object[0])); - - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Slicer_Flat.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "hXS", " P ", "fXd", Character.valueOf('P'), ItemList.Shape_Extruder_Block, Character.valueOf('X'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Shape_Slicer_Stripes.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "hXS", "XPX", "fXd", Character.valueOf('P'), ItemList.Shape_Extruder_Block, Character.valueOf('X'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel) }); - - ItemList.Fuel_Can_Plastic_Empty.set(addItem(tLastID = 400, "Empty Plastic Fuel Can", "Used to store Fuels", new Object[] { new ItemData(Materials.Plastic, OrePrefixes.plate.mMaterialAmount * 1L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L) })); - ItemList.Fuel_Can_Plastic_Filled.set(addItem(tLastID = 401, "Plastic Fuel Can", "Burns well in Diesel Generators", new Object[] { new ItemData(Materials.Plastic, OrePrefixes.plate.mMaterialAmount * 1L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L) })); - - GT_ModHandler.addCraftingRecipe(ItemList.Fuel_Can_Plastic_Empty.get(7L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " PP", "P P", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Plastic) }); - - ItemList.Spray_Empty.set(addItem(tLastID = 402, "Empty Spray Can", "Used for making Sprays", new Object[] { new ItemData(Materials.Tin, OrePrefixes.plate.mMaterialAmount * 2L, Materials.Redstone, OrePrefixes.dust.mMaterialAmount), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L) })); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Empty, 1L), ItemList.Spray_Empty.get(1L, new Object[0]), 800, 1); - - ItemList.Crate_Empty.set(addItem(tLastID = 403, "Empty Crate", "To Package lots of Material", new Object[] { new ItemData(Materials.Wood, 3628800L, Materials.Iron, OrePrefixes.screw.mMaterialAmount), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 2L) })); - - GT_ModHandler.addCraftingRecipe(ItemList.Crate_Empty.get(4L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "SWS", "WdW", "SWS", Character.valueOf('W'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('S'), OrePrefixes.screw.get(Materials.AnyIron) }); - GT_ModHandler.addCraftingRecipe(ItemList.Crate_Empty.get(4L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "SWS", "WdW", "SWS", Character.valueOf('W'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Steel) }); - - ItemList.ThermosCan_Empty.set(addItem(tLastID = 404, "Empty Thermos Can", "Keeping hot things hot and cold things cold", new Object[] { new ItemData(Materials.Aluminium, OrePrefixes.plate.mMaterialAmount * 1L + 2L * OrePrefixes.ring.mMaterialAmount, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L) })); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Aluminium, 2L), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 800, 1); - - ItemList.Large_Fluid_Cell_Steel.set(addItem(tLastID = 405, "Large Steel Fluid Cell", "", new Object[] { new ItemData(Materials.Steel, OrePrefixes.plate.mMaterialAmount * 8L + 4L * OrePrefixes.ring.mMaterialAmount, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L) })); - setFluidContainerStats(32000 + tLastID, 16000L, 4L); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 8L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Steel, 4L), ItemList.Large_Fluid_Cell_Steel.get(1L, new Object[0]), 100, 64); - - ItemList.Large_Fluid_Cell_TungstenSteel.set(addItem(tLastID = 406, "Large Tungstensteel Fluid Cell", "", new Object[] { new ItemData(Materials.TungstenSteel, OrePrefixes.plate.mMaterialAmount * 8L + 4L * OrePrefixes.ring.mMaterialAmount, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 6L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 3L) })); - setFluidContainerStats(32000 + tLastID, 64000L, 4L); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.TungstenSteel, 8L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.TungstenSteel, 4L), ItemList.Large_Fluid_Cell_TungstenSteel.get(1L, new Object[0]), 200, 256); - for (byte i = 0; i < 16; i = (byte)(i + 1)) - { - ItemList.SPRAY_CAN_DYES[i].set(addItem(tLastID = 430 + 2 * i, "Spray Can (" + Dyes.get(i).mName + ")", "Full", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 4L) })); - ItemList.SPRAY_CAN_DYES_USED[i].set(addItem(tLastID + 1, "Spray Can (" + Dyes.get(i).mName + ")", "Used", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 3L), SubTag.INVISIBLE })); - IItemBehaviour tBehaviour = new Behaviour_Spray_Color(ItemList.Spray_Empty.get(1L, new Object[0]), ItemList.SPRAY_CAN_DYES_USED[i].get(1L, new Object[0]), ItemList.SPRAY_CAN_DYES[i].get(1L, new Object[0]), 512L, i); - addItemBehavior(32000 + tLastID, tBehaviour); - addItemBehavior(32001 + tLastID, tBehaviour); - } - ItemList.Tool_Matches.set(addItem(tLastID = 471, "Match", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L) })); - ItemList.Tool_MatchBox_Used.set(addItem(tLastID = 472, "Match Box", "This is not a Car", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L), SubTag.INVISIBLE })); - ItemList.Tool_MatchBox_Full.set(addItem(tLastID = 473, "Match Box (Full)", "This is not a Car", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L) })); - - IItemBehaviour tBehaviour = new Behaviour_Lighter(null, ItemList.Tool_Matches.get(1L, new Object[0]), ItemList.Tool_Matches.get(1L, new Object[0]), 1L); - addItemBehavior(32471, tBehaviour); - tBehaviour = new Behaviour_Lighter(null, ItemList.Tool_MatchBox_Used.get(1L, new Object[0]), ItemList.Tool_MatchBox_Full.get(1L, new Object[0]), 16L); - addItemBehavior(32472, tBehaviour);addItemBehavior(32473, tBehaviour); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Wood, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Phosphor, 1L), ItemList.Tool_Matches.get(1L, new Object[0]), 16, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Wood, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Phosphorus, 1L), ItemList.Tool_Matches.get(1L, new Object[0]), 16, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Wood, 4L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphor, 1L), ItemList.Tool_Matches.get(4L, new Object[0]), 64, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Wood, 4L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphorus, 1L), ItemList.Tool_Matches.get(4L, new Object[0]), 64, 16); - GT_Values.RA.addBoxingRecipe(ItemList.Tool_Matches.get(16L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Paper, 1L), ItemList.Tool_MatchBox_Full.get(1L, new Object[0]), 64, 16); - GT_Values.RA.addUnboxingRecipe(ItemList.Tool_MatchBox_Full.get(1L, new Object[0]), ItemList.Tool_Matches.get(16L, new Object[0]), null, 32, 16); - - ItemList.Tool_Lighter_Invar_Empty.set(addItem(tLastID = 474, "Lighter (Empty)", "", new Object[] { new ItemData(Materials.Invar, OrePrefixes.plate.mMaterialAmount * 2L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L) })); - ItemList.Tool_Lighter_Invar_Used.set(addItem(tLastID = 475, "Lighter", "", new Object[] { new ItemData(Materials.Invar, OrePrefixes.plate.mMaterialAmount * 2L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L), SubTag.INVISIBLE })); - ItemList.Tool_Lighter_Invar_Full.set(addItem(tLastID = 476, "Lighter (Full)", "", new Object[] { new ItemData(Materials.Invar, OrePrefixes.plate.mMaterialAmount * 2L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L) })); - - tBehaviour = new Behaviour_Lighter(ItemList.Tool_Lighter_Invar_Empty.get(1L, new Object[0]), ItemList.Tool_Lighter_Invar_Used.get(1L, new Object[0]), ItemList.Tool_Lighter_Invar_Full.get(1L, new Object[0]), 100L); - addItemBehavior(32475, tBehaviour);addItemBehavior(32476, tBehaviour); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Invar, 2L), new ItemStack(Items.flint, 1), ItemList.Tool_Lighter_Invar_Empty.get(1L, new Object[0]), 256, 16); - - ItemList.Tool_Lighter_Platinum_Empty.set(addItem(tLastID = 477, "Platinum Lighter (Empty)", "A known Prank Master is engraved on it", new Object[] { new ItemData(Materials.Platinum, OrePrefixes.plate.mMaterialAmount * 2L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L) })); - ItemList.Tool_Lighter_Platinum_Used.set(addItem(tLastID = 478, "Platinum Lighter", "A known Prank Master is engraved on it", new Object[] { new ItemData(Materials.Platinum, OrePrefixes.plate.mMaterialAmount * 2L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L), SubTag.INVISIBLE })); - ItemList.Tool_Lighter_Platinum_Full.set(addItem(tLastID = 479, "Platinum Lighter (Full)", "A known Prank Master is engraved on it", new Object[] { new ItemData(Materials.Platinum, OrePrefixes.plate.mMaterialAmount * 2L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L) })); - - tBehaviour = new Behaviour_Lighter(ItemList.Tool_Lighter_Platinum_Empty.get(1L, new Object[0]), ItemList.Tool_Lighter_Platinum_Used.get(1L, new Object[0]), ItemList.Tool_Lighter_Platinum_Full.get(1L, new Object[0]), 1000L); - addItemBehavior(32478, tBehaviour);addItemBehavior(32479, tBehaviour); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Platinum, 2L), new ItemStack(Items.flint, 1), ItemList.Tool_Lighter_Platinum_Empty.get(1L, new Object[0]), 256, 256); - - if(Loader.isModLoaded("GalacticraftMars")){ - ItemList.Ingot_Heavy1.set(addItem(tLastID = 462, "Heavy Duty Alloy Ingot", "Used to make Heavy Duty Plates", new Object[0])); - ItemList.Ingot_Heavy2.set(addItem(tLastID = 463, "Heavy Duty Alloy Ingot T2", "Used to make Heavy Duty Plates T2", new Object[0])); - ItemList.Ingot_Heavy3.set(addItem(tLastID = 464, "Heavy Duty Alloy Ingot T3", "Used to make Heavy Duty Plates T3", new Object[0])); + extends GT_MetaGenerated_Item_X32 { + public static GT_MetaGenerated_Item_01 INSTANCE; + private final String mToolTipPurify = GT_LanguageManager.addStringLocalization("metaitem.01.tooltip.purify", "Throw into Cauldron to get clean Dust"); - GT_ModHandler.addCraftingRecipe(ItemList.Ingot_Heavy1.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "BhB", "CAS", "B B", 'B', OrePrefixes.bolt.get(Materials.StainlessSteel), 'C', OrePrefixes.compressed.get(Materials.Bronze), 'A', OrePrefixes.compressed.get(Materials.Aluminium), 'S', OrePrefixes.compressed.get(Materials.Steel) }); - GT_Values.RA.addImplosionRecipe(ItemList.Ingot_Heavy1.get(1L, new Object[0]), 8, GT_ModHandler.getModItem("GalacticraftCore", "item.heavyPlating", 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.StainlessSteel, 2L)); - GT_ModHandler.addCraftingRecipe(ItemList.Ingot_Heavy2.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " BB", "hPC", " BB", 'B', OrePrefixes.bolt.get(Materials.Tungsten), 'C', OrePrefixes.compressed.get(Materials.MeteoricIron), 'P', GT_ModHandler.getModItem("GalacticraftCore", "item.heavyPlating", 1L)}); - GT_Values.RA.addImplosionRecipe(ItemList.Ingot_Heavy2.get(1L, new Object[0]), 8, GT_ModHandler.getModItem("GalacticraftMars", "item.null", 1L,3), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tungsten, 2L)); - GT_ModHandler.addCraftingRecipe(ItemList.Ingot_Heavy3.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " BB", "hPC", " BB", 'B', OrePrefixes.bolt.get(Materials.TungstenSteel), 'C', OrePrefixes.compressed.get(Materials.Desh), 'P', GT_ModHandler.getModItem("GalacticraftMars", "item.null", 1L,3)}); - GT_Values.RA.addImplosionRecipe(ItemList.Ingot_Heavy3.get(1L, new Object[0]), 8, GT_ModHandler.getModItem("GalacticraftMars", "item.itemBasicAsteroids", 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.TungstenSteel, 2L)); - } - ItemList.Ingot_IridiumAlloy.set(addItem(tLastID = 480, "Iridium Alloy Ingot", "Used to make Iridium Plates", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L) })); - - GT_ModHandler.addRollingMachineRecipe(ItemList.Ingot_IridiumAlloy.get(1L, new Object[0]), new Object[] { "IAI", "ADA", "IAI", Character.valueOf('D'), GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "iridiumplate", true) ? OreDictNames.craftingIndustrialDiamond : OrePrefixes.dust.get(Materials.Diamond), Character.valueOf('A'), OrePrefixes.plateAlloy.get("Advanced"), Character.valueOf('I'), OrePrefixes.plate.get(Materials.Iridium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Ingot_IridiumAlloy.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "IAI", "ADA", "IAI", Character.valueOf('D'), GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "iridiumplate", true) ? OreDictNames.craftingIndustrialDiamond : OrePrefixes.dust.get(Materials.Diamond), Character.valueOf('A'), OrePrefixes.plateAlloy.get("Advanced"), Character.valueOf('I'), OrePrefixes.plate.get(Materials.Iridium) }); - GT_Values.RA.addImplosionRecipe(ItemList.Ingot_IridiumAlloy.get(1L, new Object[0]), 8, GT_OreDictUnificator.get(OrePrefixes.plateAlloy, Materials.Iridium, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 4L)); - - ItemList.Paper_Printed_Pages.set(addItem(tLastID = 481, "Printed Pages", "Used to make written Books", new Object[] { new ItemData(Materials.Paper, 10886400L, new MaterialStack[0]), new Behaviour_PrintedPages(), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 2L) })); - ItemList.Paper_Magic_Empty.set(addItem(tLastID = 482, "Magic Paper", "", new Object[] { SubTag.INVISIBLE, new ItemData(Materials.Paper, 3628800L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTIO, 1L) })); - ItemList.Paper_Magic_Page.set(addItem(tLastID = 483, "Enchanted Page", "", new Object[] { SubTag.INVISIBLE, new ItemData(Materials.Paper, 3628800L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTIO, 2L) })); - ItemList.Paper_Magic_Pages.set(addItem(tLastID = 484, "Enchanted Pages", "", new Object[] { SubTag.INVISIBLE, new ItemData(Materials.Paper, 10886400L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTIO, 4L) })); - ItemList.Paper_Punch_Card_Empty.set(addItem(tLastID = 485, "Punch Card", "", new Object[] { SubTag.INVISIBLE, new ItemData(Materials.Paper, 7257600L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 1L) })); - ItemList.Paper_Punch_Card_Encoded.set(addItem(tLastID = 486, "Punched Card", "", new Object[] { SubTag.INVISIBLE, new ItemData(Materials.Paper, 7257600L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 2L) })); - ItemList.Book_Written_01.set(addItem(tLastID = 487, "Book", "", new Object[] { new ItemData(Materials.Paper, 10886400L, new MaterialStack[0]), "bookWritten", OreDictNames.craftingBook, new Behaviour_WrittenBook(), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 2L) })); - ItemList.Book_Written_02.set(addItem(tLastID = 488, "Book", "", new Object[] { new ItemData(Materials.Paper, 10886400L, new MaterialStack[0]), "bookWritten", OreDictNames.craftingBook, new Behaviour_WrittenBook(), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 2L) })); - ItemList.Book_Written_03.set(addItem(tLastID = 489, "Book", "", new Object[] { new ItemData(Materials.Paper, 10886400L, new MaterialStack[0]), "bookWritten", OreDictNames.craftingBook, new Behaviour_WrittenBook(), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 2L) })); - - ItemList.Schematic.set(addItem(tLastID = 490, "Schematic", "EMPTY", new Object[] { new ItemData(Materials.StainlessSteel, 7257600L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 1L) })); - ItemList.Schematic_Crafting.set(addItem(tLastID = 491, "Schematic (Crafting)", "Crafts the Programmed Recipe", new Object[] { new ItemData(Materials.StainlessSteel, 7257600L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 1L) })); - ItemList.Schematic_1by1.set(addItem(tLastID = 495, "Schematic (1x1)", "Crafts 1 Items as 1x1 (use in Packager)", new Object[] { new ItemData(Materials.StainlessSteel, 7257600L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 1L) })); - ItemList.Schematic_2by2.set(addItem(tLastID = 496, "Schematic (2x2)", "Crafts 4 Items as 2x2 (use in Packager)", new Object[] { new ItemData(Materials.StainlessSteel, 7257600L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 1L) })); - ItemList.Schematic_3by3.set(addItem(tLastID = 497, "Schematic (3x3)", "Crafts 9 Items as 3x3 (use in Packager)", new Object[] { new ItemData(Materials.StainlessSteel, 7257600L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 1L) })); - ItemList.Schematic_Dust.set(addItem(tLastID = 498, "Schematic (Dusts)", "Combines Dusts (use in Packager)", new Object[] { new ItemData(Materials.StainlessSteel, 7257600L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 1L) })); - - GT_ModHandler.addCraftingRecipe(ItemList.Schematic_1by1.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "d ", " P ", " ", Character.valueOf('P'), ItemList.Schematic }); - GT_ModHandler.addCraftingRecipe(ItemList.Schematic_2by2.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " d ", " P ", " ", Character.valueOf('P'), ItemList.Schematic }); - GT_ModHandler.addCraftingRecipe(ItemList.Schematic_3by3.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " d", " P ", " ", Character.valueOf('P'), ItemList.Schematic }); - GT_ModHandler.addCraftingRecipe(ItemList.Schematic_Dust.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " ", " P ", " d", Character.valueOf('P'), ItemList.Schematic }); - - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Schematic.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Schematic_Crafting }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Schematic.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Schematic_1by1 }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Schematic.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Schematic_2by2 }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Schematic.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Schematic_3by3 }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Schematic.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Schematic_Dust }); - - ItemList.Battery_Hull_LV.set(addItem(tLastID = 500, "Small Battery Hull", "An empty LV Battery Hull", new Object[] { new ItemData(Materials.BatteryAlloy, OrePrefixes.plate.mMaterialAmount * 2L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L) })); - ItemList.Battery_Hull_MV.set(addItem(tLastID = 501, "Medium Battery Hull", "An empty MV Battery Hull", new Object[] { new ItemData(Materials.BatteryAlloy, OrePrefixes.plate.mMaterialAmount * 6L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L) })); - ItemList.Battery_Hull_HV.set(addItem(tLastID = 502, "Large Battery Hull", "An empty HV Battery Hull", new Object[] { new ItemData(Materials.BatteryAlloy, OrePrefixes.plate.mMaterialAmount * 18L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L) })); - - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Hull_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "C", "P", "P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.BatteryAlloy), Character.valueOf('C'), OreDictNames.craftingWireTin }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Hull_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "C C", "PPP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.BatteryAlloy), Character.valueOf('C'), OreDictNames.craftingWireCopper }); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tin, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 2L), ItemList.Battery_Hull_LV.get(1L, new Object[0]), 800, 1); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Copper, 2L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 6L), ItemList.Battery_Hull_MV.get(1L, new Object[0]), 1600, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.AnnealedCopper, 2L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 6L), ItemList.Battery_Hull_MV.get(1L, new Object[0]), 1600, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Gold, 4L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 18L), ItemList.Battery_Hull_HV.get(1L, new Object[0]), 3200, 4); - - ItemList.Battery_RE_ULV_Tantalum.set(addItem(tLastID = 499, "Tantalum Capacitor", "Reusable", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L) })); - setElectricStats(32000 + tLastID, 1000L, GT_Values.V[0], 0L, -3L, false); - - ItemList.Battery_SU_LV_SulfuricAcid.set(addItem(tLastID = 510, "Small Acid Battery", "Single Use", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L) })); - setElectricStats(32000 + tLastID, 12000L, GT_Values.V[1], 1L, -2L, true); - ItemList.Battery_SU_LV_Mercury.set(addItem(tLastID = 511, "Small Mercury Battery", "Single Use", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L) })); - setElectricStats(32000 + tLastID, 32000L, GT_Values.V[1], 1L, -2L, true); - - ItemList.Battery_RE_LV_Cadmium.set(addItem(tLastID = 517, "Small Cadmium Battery", "Reusable", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L), "calclavia:ADVANCED_BATTERY" })); - setElectricStats(32000 + tLastID, 75000L, GT_Values.V[1], 1L, -3L, true); - ItemList.Battery_RE_LV_Lithium.set(addItem(tLastID = 518, "Small Lithium Battery", "Reusable", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L), "calclavia:ADVANCED_BATTERY" })); - setElectricStats(32000 + tLastID, 100000L, GT_Values.V[1], 1L, -3L, true); - ItemList.Battery_RE_LV_Sodium.set(addItem(tLastID = 519, "Small Sodium Battery", "Reusable", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L), "calclavia:ADVANCED_BATTERY" })); - setElectricStats(32000 + tLastID, 50000L, GT_Values.V[1], 1L, -3L, true); - - ItemList.Battery_SU_MV_SulfuricAcid.set(addItem(tLastID = 520, "Medium Acid Battery", "Single Use", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 4L) })); - setElectricStats(32000 + tLastID, 48000L, GT_Values.V[2], 2L, -2L, true); - ItemList.Battery_SU_MV_Mercury.set(addItem(tLastID = 521, "Medium Mercury Battery", "Single Use", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 4L) })); - setElectricStats(32000 + tLastID, 128000L, GT_Values.V[2], 2L, -2L, true); - - ItemList.Battery_RE_MV_Cadmium.set(addItem(tLastID = 527, "Medium Cadmium Battery", "Reusable", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L) })); - setElectricStats(32000 + tLastID, 300000L, GT_Values.V[2], 2L, -3L, true); - ItemList.Battery_RE_MV_Lithium.set(addItem(tLastID = 528, "Medium Lithium Battery", "Reusable", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L) })); - setElectricStats(32000 + tLastID, 400000L, GT_Values.V[2], 2L, -3L, true); - ItemList.Battery_RE_MV_Sodium.set(addItem(tLastID = 529, "Medium Sodium Battery", "Reusable", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L) })); - setElectricStats(32000 + tLastID, 200000L, GT_Values.V[2], 2L, -3L, true); - - ItemList.Battery_SU_HV_SulfuricAcid.set(addItem(tLastID = 530, "Large Acid Battery", "Single Use", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 8L) })); - setElectricStats(32000 + tLastID, 192000L, GT_Values.V[3], 3L, -2L, true); - ItemList.Battery_SU_HV_Mercury.set(addItem(tLastID = 531, "Large Mercury Battery", "Single Use", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 8L) })); - setElectricStats(32000 + tLastID, 512000L, GT_Values.V[3], 3L, -2L, true); - - ItemList.Battery_RE_HV_Cadmium.set(addItem(tLastID = 537, "Large Cadmium Battery", "Reusable", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 4L) })); - setElectricStats(32000 + tLastID, 1200000L, GT_Values.V[3], 3L, -3L, true); - ItemList.Battery_RE_HV_Lithium.set(addItem(tLastID = 538, "Large Lithium Battery", "Reusable", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 4L) })); - setElectricStats(32000 + tLastID, 1600000L, GT_Values.V[3], 3L, -3L, true); - ItemList.Battery_RE_HV_Sodium.set(addItem(tLastID = 539, "Large Sodium Battery", "Reusable", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 4L) })); - setElectricStats(32000 + tLastID, 800000L, GT_Values.V[3], 3L, -3L, true); - - GT_ModHandler.addExtractionRecipe(ItemList.Battery_SU_LV_SulfuricAcid.get(1L, new Object[0]), ItemList.Battery_Hull_LV.get(1L, new Object[0])); - GT_ModHandler.addExtractionRecipe(ItemList.Battery_SU_LV_Mercury.get(1L, new Object[0]), ItemList.Battery_Hull_LV.get(1L, new Object[0])); - GT_ModHandler.addExtractionRecipe(ItemList.Battery_SU_MV_SulfuricAcid.get(1L, new Object[0]), ItemList.Battery_Hull_MV.get(1L, new Object[0])); - GT_ModHandler.addExtractionRecipe(ItemList.Battery_SU_MV_Mercury.get(1L, new Object[0]), ItemList.Battery_Hull_MV.get(1L, new Object[0])); - GT_ModHandler.addExtractionRecipe(ItemList.Battery_SU_HV_SulfuricAcid.get(1L, new Object[0]), ItemList.Battery_Hull_HV.get(1L, new Object[0])); - GT_ModHandler.addExtractionRecipe(ItemList.Battery_SU_HV_Mercury.get(1L, new Object[0]), ItemList.Battery_Hull_HV.get(1L, new Object[0])); - GT_ModHandler.addExtractionRecipe(ItemList.Battery_RE_LV_Cadmium.get(1L, new Object[0]), ItemList.Battery_Hull_LV.get(1L, new Object[0])); - GT_ModHandler.addExtractionRecipe(ItemList.Battery_RE_LV_Lithium.get(1L, new Object[0]), ItemList.Battery_Hull_LV.get(1L, new Object[0])); - GT_ModHandler.addExtractionRecipe(ItemList.Battery_RE_LV_Sodium.get(1L, new Object[0]), ItemList.Battery_Hull_LV.get(1L, new Object[0])); - GT_ModHandler.addExtractionRecipe(ItemList.Battery_RE_MV_Cadmium.get(1L, new Object[0]), ItemList.Battery_Hull_MV.get(1L, new Object[0])); - GT_ModHandler.addExtractionRecipe(ItemList.Battery_RE_MV_Lithium.get(1L, new Object[0]), ItemList.Battery_Hull_MV.get(1L, new Object[0])); - GT_ModHandler.addExtractionRecipe(ItemList.Battery_RE_MV_Sodium.get(1L, new Object[0]), ItemList.Battery_Hull_MV.get(1L, new Object[0])); - GT_ModHandler.addExtractionRecipe(ItemList.Battery_RE_HV_Cadmium.get(1L, new Object[0]), ItemList.Battery_Hull_HV.get(1L, new Object[0])); - GT_ModHandler.addExtractionRecipe(ItemList.Battery_RE_HV_Lithium.get(1L, new Object[0]), ItemList.Battery_Hull_HV.get(1L, new Object[0])); - GT_ModHandler.addExtractionRecipe(ItemList.Battery_RE_HV_Sodium.get(1L, new Object[0]), ItemList.Battery_Hull_HV.get(1L, new Object[0])); - - GT_Values.RA.addCannerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cadmium, 2L), ItemList.Battery_Hull_LV.get(1L, new Object[0]), ItemList.Battery_RE_LV_Cadmium.get(1L, new Object[0]), null, 100, 2); - GT_Values.RA.addCannerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lithium, 2L), ItemList.Battery_Hull_LV.get(1L, new Object[0]), ItemList.Battery_RE_LV_Lithium.get(1L, new Object[0]), null, 100, 2); - GT_Values.RA.addCannerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 2L), ItemList.Battery_Hull_LV.get(1L, new Object[0]), ItemList.Battery_RE_LV_Sodium.get(1L, new Object[0]), null, 100, 2); - GT_Values.RA.addCannerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cadmium, 8L), ItemList.Battery_Hull_MV.get(1L, new Object[0]), ItemList.Battery_RE_MV_Cadmium.get(1L, new Object[0]), null, 400, 2); - GT_Values.RA.addCannerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lithium, 8L), ItemList.Battery_Hull_MV.get(1L, new Object[0]), ItemList.Battery_RE_MV_Lithium.get(1L, new Object[0]), null, 400, 2); - GT_Values.RA.addCannerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 8L), ItemList.Battery_Hull_MV.get(1L, new Object[0]), ItemList.Battery_RE_MV_Sodium.get(1L, new Object[0]), null, 400, 2); - GT_Values.RA.addCannerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cadmium, 32L), ItemList.Battery_Hull_HV.get(1L, new Object[0]), ItemList.Battery_RE_HV_Cadmium.get(1L, new Object[0]), null, 1600, 2); - GT_Values.RA.addCannerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lithium, 32L), ItemList.Battery_Hull_HV.get(1L, new Object[0]), ItemList.Battery_RE_HV_Lithium.get(1L, new Object[0]), null, 1600, 2); - GT_Values.RA.addCannerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 32L), ItemList.Battery_Hull_HV.get(1L, new Object[0]), ItemList.Battery_RE_HV_Sodium.get(1L, new Object[0]), null, 1600, 2); - - ItemList.Energy_LapotronicOrb.set(addItem(tLastID = 597, "Lapotronic Energy Orb", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 16L), OrePrefixes.battery.get(Materials.Ultimate) })); - setElectricStats(32000 + tLastID, 100000000L, GT_Values.V[5], 5L, -3L, true); - - ItemList.ZPM.set(addItem(tLastID = 598, "Zero Point Module", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L) })); - setElectricStats(32000 + tLastID, 2000000000000L, GT_Values.V[7], 7L, -2L, true); - - ItemList.Energy_LapotronicOrb2.set(addItem(tLastID = 599, "Lapotronic Energy Orb Cluster", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 16L), OrePrefixes.battery.get(Materials.Ultimate) })); - setElectricStats(32000 + tLastID, 1000000000L, GT_Values.V[6], 6L, -3L, true); - - ItemList.ZPM2.set(addItem(tLastID = 605, "Ultimate Battery", "Fill this to win minecraft", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L) })); - setElectricStats(32000 + tLastID, Long.MAX_VALUE, GT_Values.V[8], 8L, -3L, true); - - ItemList.Electric_Motor_LV.set(addItem(tLastID = 600, "Electric Motor (LV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L) })); - ItemList.Electric_Motor_MV.set(addItem(tLastID = 601, "Electric Motor (MV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L) })); - ItemList.Electric_Motor_HV.set(addItem(tLastID = 602, "Electric Motor (HV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 4L) })); - ItemList.Electric_Motor_EV.set(addItem(tLastID = 603, "Electric Motor (EV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 8L) })); - ItemList.Electric_Motor_IV.set(addItem(tLastID = 604, "Electric Motor (IV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 16L) })); - ItemList.Electric_Motor_LuV.set(ItemList.Electric_Motor_IV.get(1L, new Object[0])); - ItemList.Electric_Motor_ZPM.set(ItemList.Electric_Motor_LuV.get(1L, new Object[0])); - ItemList.Electric_Motor_UV.set(ItemList.Electric_Motor_ZPM.get(1L, new Object[0])); - - GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.IronMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.AnyIron), Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.AnyCopper), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.SteelMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.Steel), Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.AnyCopper), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.SteelMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.Aluminium), Character.valueOf('W'), OrePrefixes.wireGt02.get(Materials.AnyCopper), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.AnyCopper) }); - GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.SteelMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.StainlessSteel), Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.AnyCopper), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Gold) }); - GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.NeodymiumMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.Titanium), Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.AnnealedCopper), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.NeodymiumMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.TungstenSteel), Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.AnnealedCopper), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tungsten) }); - - ItemList.Electric_Pump_LV.set(addItem(tLastID = 610, "Electric Pump (LV)", "640 L/sec (as Cover)", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L) })); - ItemList.Electric_Pump_MV.set(addItem(tLastID = 611, "Electric Pump (MV)", "2560 L/sec (as Cover)", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L) })); - ItemList.Electric_Pump_HV.set(addItem(tLastID = 612, "Electric Pump (HV)", "10240 L/sec (as Cover)", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 4L) })); - ItemList.Electric_Pump_EV.set(addItem(tLastID = 613, "Electric Pump (EV)", "40960 L/sec (as Cover)", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 8L) })); - ItemList.Electric_Pump_IV.set(addItem(tLastID = 614, "Electric Pump (IV)", "163840 L/sec (as Cover)", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 16L) })); - ItemList.Electric_Pump_LuV.set(ItemList.Electric_Pump_IV.get(1L, new Object[0])); - ItemList.Electric_Pump_ZPM.set(ItemList.Electric_Pump_LuV.get(1L, new Object[0])); - ItemList.Electric_Pump_UV.set(ItemList.Electric_Pump_ZPM.get(1L, new Object[0])); - - GregTech_API.registerCover(ItemList.Electric_Pump_LV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[1][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PUMP) }), new GT_Cover_Pump(32)); - GregTech_API.registerCover(ItemList.Electric_Pump_MV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PUMP) }), new GT_Cover_Pump(128)); - GregTech_API.registerCover(ItemList.Electric_Pump_HV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[3][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PUMP) }), new GT_Cover_Pump(512)); - GregTech_API.registerCover(ItemList.Electric_Pump_EV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[4][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PUMP) }), new GT_Cover_Pump(2048)); - GregTech_API.registerCover(ItemList.Electric_Pump_IV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[5][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PUMP) }), new GT_Cover_Pump(8192)); - - ItemList.Rotor_LV.set(addItem(tLastID = 620, "Tin Rotor", "", new Object[] { OrePrefixes.rotor.get(Materials.Tin), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L) })); - ItemList.Rotor_MV.set(addItem(tLastID = 621, "Bronze Rotor", "", new Object[] { OrePrefixes.rotor.get(Materials.Bronze), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L) })); - ItemList.Rotor_HV.set(addItem(tLastID = 622, "Steel Rotor", "", new Object[] { OrePrefixes.rotor.get(Materials.Steel), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 4L) })); - ItemList.Rotor_EV.set(addItem(tLastID = 623, "Stainless Steel Rotor", "", new Object[] { OrePrefixes.rotor.get(Materials.StainlessSteel), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 8L) })); - ItemList.Rotor_IV.set(addItem(tLastID = 624, "Tungstensteel Rotor", "", new Object[] { OrePrefixes.rotor.get(Materials.TungstenSteel), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 16L) })); - ItemList.Rotor_LuV.set(ItemList.Rotor_IV.get(1L, new Object[0])); - ItemList.Rotor_ZPM.set(ItemList.Rotor_LuV.get(1L, new Object[0])); - ItemList.Rotor_UV.set(ItemList.Rotor_ZPM.get(1L, new Object[0])); - - GT_ModHandler.addCraftingRecipe(ItemList.Electric_Pump_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "SXO", "dPw", "OMW", Character.valueOf('M'), ItemList.Electric_Motor_LV, Character.valueOf('O'), OrePrefixes.ring.get(Materials.Rubber), Character.valueOf('X'), OrePrefixes.rotor.get(Materials.Tin), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Tin), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin), Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Bronze) }); - GT_ModHandler.addCraftingRecipe(ItemList.Electric_Pump_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "SXO", "dPw", "OMW", Character.valueOf('M'), ItemList.Electric_Motor_MV, Character.valueOf('O'), OrePrefixes.ring.get(Materials.Rubber), Character.valueOf('X'), OrePrefixes.rotor.get(Materials.Bronze), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Bronze), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper), Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Electric_Pump_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "SXO", "dPw", "OMW", Character.valueOf('M'), ItemList.Electric_Motor_HV, Character.valueOf('O'), OrePrefixes.ring.get(Materials.Rubber), Character.valueOf('X'), OrePrefixes.rotor.get(Materials.Steel), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Steel), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold), Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.StainlessSteel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Electric_Pump_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "SXO", "dPw", "OMW", Character.valueOf('M'), ItemList.Electric_Motor_EV, Character.valueOf('O'), OrePrefixes.ring.get(Materials.Rubber), Character.valueOf('X'), OrePrefixes.rotor.get(Materials.StainlessSteel), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium), Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Titanium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Electric_Pump_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "SXO", "dPw", "OMW", Character.valueOf('M'), ItemList.Electric_Motor_IV, Character.valueOf('O'), OrePrefixes.ring.get(Materials.Rubber), Character.valueOf('X'), OrePrefixes.rotor.get(Materials.TungstenSteel), Character.valueOf('S'), OrePrefixes.screw.get(Materials.TungstenSteel), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tungsten), Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.TungstenSteel) }); - - ItemList.Conveyor_Module_LV.set(addItem(tLastID = 630, "Conveyor Module (LV)", "1 Stack every 20 secs (as Cover)", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L) })); - ItemList.Conveyor_Module_MV.set(addItem(tLastID = 631, "Conveyor Module (MV)", "1 Stack every 5 secs (as Cover)", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 2L) })); - ItemList.Conveyor_Module_HV.set(addItem(tLastID = 632, "Conveyor Module (HV)", "1 Stack every 1 sec (as Cover)", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 4L) })); - ItemList.Conveyor_Module_EV.set(addItem(tLastID = 633, "Conveyor Module (EV)", "1 Stack every 1/5 sec (as Cover)", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 8L) })); - ItemList.Conveyor_Module_IV.set(addItem(tLastID = 634, "Conveyor Module (IV)", "1 Stack every 1/20 sec (as Cover)", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 16L) })); - ItemList.Conveyor_Module_LuV.set(ItemList.Conveyor_Module_IV.get(1L, new Object[0])); - ItemList.Conveyor_Module_ZPM.set(ItemList.Conveyor_Module_LuV.get(1L, new Object[0])); - ItemList.Conveyor_Module_UV.set(ItemList.Conveyor_Module_ZPM.get(1L, new Object[0])); - - GT_ModHandler.addCraftingRecipe(ItemList.Conveyor_Module_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "RRR", "MCM", "RRR", Character.valueOf('M'), ItemList.Electric_Motor_LV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin), Character.valueOf('R'), OrePrefixes.plate.get(Materials.Rubber) }); - GT_ModHandler.addCraftingRecipe(ItemList.Conveyor_Module_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "RRR", "MCM", "RRR", Character.valueOf('M'), ItemList.Electric_Motor_MV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.AnyCopper), Character.valueOf('R'), OrePrefixes.plate.get(Materials.Rubber) }); - GT_ModHandler.addCraftingRecipe(ItemList.Conveyor_Module_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "RRR", "MCM", "RRR", Character.valueOf('M'), ItemList.Electric_Motor_HV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Gold), Character.valueOf('R'), OrePrefixes.plate.get(Materials.Rubber) }); - GT_ModHandler.addCraftingRecipe(ItemList.Conveyor_Module_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "RRR", "MCM", "RRR", Character.valueOf('M'), ItemList.Electric_Motor_EV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Aluminium), Character.valueOf('R'), OrePrefixes.plate.get(Materials.Rubber) }); - GT_ModHandler.addCraftingRecipe(ItemList.Conveyor_Module_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "RRR", "MCM", "RRR", Character.valueOf('M'), ItemList.Electric_Motor_IV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tungsten), Character.valueOf('R'), OrePrefixes.plate.get(Materials.Rubber) }); - - GregTech_API.registerCover(ItemList.Conveyor_Module_LV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[1][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_CONVEYOR) }), new GT_Cover_Conveyor(400)); - GregTech_API.registerCover(ItemList.Conveyor_Module_MV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_CONVEYOR) }), new GT_Cover_Conveyor(100)); - GregTech_API.registerCover(ItemList.Conveyor_Module_HV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[3][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_CONVEYOR) }), new GT_Cover_Conveyor(20)); - GregTech_API.registerCover(ItemList.Conveyor_Module_EV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[4][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_CONVEYOR) }), new GT_Cover_Conveyor(4)); - GregTech_API.registerCover(ItemList.Conveyor_Module_IV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[5][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_CONVEYOR) }), new GT_Cover_Conveyor(1)); - - ItemList.Electric_Piston_LV.set(addItem(tLastID = 640, "Electric Piston (LV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L) })); - ItemList.Electric_Piston_MV.set(addItem(tLastID = 641, "Electric Piston (MV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L) })); - ItemList.Electric_Piston_HV.set(addItem(tLastID = 642, "Electric Piston (HV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 4L) })); - ItemList.Electric_Piston_EV.set(addItem(tLastID = 643, "Electric Piston (EV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 8L) })); - ItemList.Electric_Piston_IV.set(addItem(tLastID = 644, "Electric Piston (IV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 32L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 16L) })); - ItemList.Electric_Piston_LuV.set(ItemList.Electric_Piston_IV.get(1L, new Object[0])); - ItemList.Electric_Piston_ZPM.set(ItemList.Electric_Piston_LuV.get(1L, new Object[0])); - ItemList.Electric_Piston_UV.set(ItemList.Electric_Piston_ZPM.get(1L, new Object[0])); - - GT_ModHandler.addCraftingRecipe(ItemList.Electric_Piston_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "PPP", "CSS", "CMG", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Steel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Steel), Character.valueOf('M'), ItemList.Electric_Motor_LV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.Electric_Piston_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "PPP", "CSS", "CMG", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Aluminium), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Aluminium), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Aluminium), Character.valueOf('M'), ItemList.Electric_Motor_MV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.AnyCopper) }); - GT_ModHandler.addCraftingRecipe(ItemList.Electric_Piston_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "PPP", "CSS", "CMG", Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('S'), OrePrefixes.stick.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('M'), ItemList.Electric_Motor_HV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Gold) }); - GT_ModHandler.addCraftingRecipe(ItemList.Electric_Piston_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "PPP", "CSS", "CMG", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Titanium), Character.valueOf('M'), ItemList.Electric_Motor_EV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Electric_Piston_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "PPP", "CSS", "CMG", Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('S'), OrePrefixes.stick.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.TungstenSteel), Character.valueOf('M'), ItemList.Electric_Motor_IV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tungsten) }); - - ItemList.Robot_Arm_LV.set(addItem(tLastID = 650, "Robot Arm (LV)", "Inserts into specific Slots (as Cover)", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 1L) })); - ItemList.Robot_Arm_MV.set(addItem(tLastID = 651, "Robot Arm (MV)", "Inserts into specific Slots (as Cover)", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 2L) })); - ItemList.Robot_Arm_HV.set(addItem(tLastID = 652, "Robot Arm (HV)", "Inserts into specific Slots (as Cover)", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 4L) })); - ItemList.Robot_Arm_EV.set(addItem(tLastID = 653, "Robot Arm (EV)", "Inserts into specific Slots (as Cover)", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 8L) })); - ItemList.Robot_Arm_IV.set(addItem(tLastID = 654, "Robot Arm (IV)", "Inserts into specific Slots (as Cover)", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 32L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 16L) })); - ItemList.Robot_Arm_LuV.set(ItemList.Robot_Arm_IV.get(1L, new Object[0])); - ItemList.Robot_Arm_ZPM.set(ItemList.Robot_Arm_LuV.get(1L, new Object[0])); - ItemList.Robot_Arm_UV.set(ItemList.Robot_Arm_ZPM.get(1L, new Object[0])); - - GT_ModHandler.addCraftingRecipe(ItemList.Robot_Arm_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "CCC", "MSM", "PES", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Steel), Character.valueOf('M'), ItemList.Electric_Motor_LV, Character.valueOf('P'), ItemList.Electric_Piston_LV, Character.valueOf('E'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.Robot_Arm_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "CCC", "MSM", "PES", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Aluminium), Character.valueOf('M'), ItemList.Electric_Motor_MV, Character.valueOf('P'), ItemList.Electric_Piston_MV, Character.valueOf('E'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.AnyCopper) }); - GT_ModHandler.addCraftingRecipe(ItemList.Robot_Arm_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "CCC", "MSM", "PES", Character.valueOf('S'), OrePrefixes.stick.get(Materials.StainlessSteel), Character.valueOf('M'), ItemList.Electric_Motor_HV, Character.valueOf('P'), ItemList.Electric_Piston_HV, Character.valueOf('E'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Gold) }); - GT_ModHandler.addCraftingRecipe(ItemList.Robot_Arm_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "CCC", "MSM", "PES", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Titanium), Character.valueOf('M'), ItemList.Electric_Motor_EV, Character.valueOf('P'), ItemList.Electric_Piston_EV, Character.valueOf('E'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Robot_Arm_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "CCC", "MSM", "PES", Character.valueOf('S'), OrePrefixes.stick.get(Materials.TungstenSteel), Character.valueOf('M'), ItemList.Electric_Motor_IV, Character.valueOf('P'), ItemList.Electric_Piston_IV, Character.valueOf('E'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tungsten) }); - - GregTech_API.registerCover(ItemList.Robot_Arm_LV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[1][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ARM) }), new GT_Cover_Arm(400)); - GregTech_API.registerCover(ItemList.Robot_Arm_MV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ARM) }), new GT_Cover_Arm(100)); - GregTech_API.registerCover(ItemList.Robot_Arm_HV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[3][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ARM) }), new GT_Cover_Arm(20)); - GregTech_API.registerCover(ItemList.Robot_Arm_EV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[4][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ARM) }), new GT_Cover_Arm(4)); - GregTech_API.registerCover(ItemList.Robot_Arm_IV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[5][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ARM) }), new GT_Cover_Arm(1)); - - ItemList.Field_Generator_LV.set(addItem(tLastID = 670, "Field Generator (LV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 1L) })); - ItemList.Field_Generator_MV.set(addItem(tLastID = 671, "Field Generator (MV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 2L) })); - ItemList.Field_Generator_HV.set(addItem(tLastID = 672, "Field Generator (HV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 4L) })); - ItemList.Field_Generator_EV.set(addItem(tLastID = 673, "Field Generator (EV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 8L) })); - ItemList.Field_Generator_IV.set(addItem(tLastID = 674, "Field Generator (IV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 16L) })); - ItemList.Field_Generator_LuV.set(ItemList.Field_Generator_IV.get(1L, new Object[0])); - ItemList.Field_Generator_ZPM.set(ItemList.Field_Generator_LuV.get(1L, new Object[0])); - ItemList.Field_Generator_UV.set(ItemList.Field_Generator_ZPM.get(1L, new Object[0])); - - GT_ModHandler.addCraftingRecipe(ItemList.Field_Generator_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "WCW", "CGC", "WCW", Character.valueOf('G'), OrePrefixes.gem.get(Materials.EnderPearl), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.Osmium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Field_Generator_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "WCW", "CGC", "WCW", Character.valueOf('G'), OrePrefixes.gem.get(Materials.EnderEye), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.wireGt02.get(Materials.Osmium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Field_Generator_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "WCW", "CGC", "WCW", Character.valueOf('G'), OrePrefixes.gem.get(Materials.NetherStar), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Osmium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Field_Generator_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "WCW", "CGC", "WCW", Character.valueOf('G'), OrePrefixes.gem.get(Materials.NetherStar), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.Osmium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Field_Generator_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "WCW", "CGC", "WCW", Character.valueOf('G'), OrePrefixes.gem.get(Materials.NetherStar), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Osmium) }); - - ItemList.Emitter_LV.set(addItem(tLastID = 680, "Emitter (LV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 1L) })); - ItemList.Emitter_MV.set(addItem(tLastID = 681, "Emitter (MV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 2L) })); - ItemList.Emitter_HV.set(addItem(tLastID = 682, "Emitter (HV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 4L) })); - ItemList.Emitter_EV.set(addItem(tLastID = 683, "Emitter (EV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 8L) })); - ItemList.Emitter_IV.set(addItem(tLastID = 684, "Emitter (IV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 16L) })); - ItemList.Emitter_LuV.set(ItemList.Emitter_IV.get(1L, new Object[0])); - ItemList.Emitter_ZPM.set(ItemList.Emitter_LuV.get(1L, new Object[0])); - ItemList.Emitter_UV.set(ItemList.Emitter_ZPM.get(1L, new Object[0])); - - GT_ModHandler.addCraftingRecipe(ItemList.Emitter_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "SSC", "WQS", "CWS", Character.valueOf('Q'), OrePrefixes.gem.get(Materials.Quartzite), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Brass), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.Emitter_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "SSC", "WQS", "CWS", Character.valueOf('Q'), OrePrefixes.gem.get(Materials.NetherQuartz), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Electrum), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper) }); - GT_ModHandler.addCraftingRecipe(ItemList.Emitter_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "SSC", "WQS", "CWS", Character.valueOf('Q'), OrePrefixes.gem.get(Materials.Emerald), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Chrome), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold) }); - GT_ModHandler.addCraftingRecipe(ItemList.Emitter_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "SSC", "WQS", "CWS", Character.valueOf('Q'), OrePrefixes.gem.get(Materials.EnderPearl), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Platinum), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Emitter_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "SSC", "WQS", "CWS", Character.valueOf('Q'), OrePrefixes.gem.get(Materials.EnderEye), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Osmium), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tungsten) }); - - ItemList.Sensor_LV.set(addItem(tLastID = 690, "Sensor (LV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 1L) })); - ItemList.Sensor_MV.set(addItem(tLastID = 691, "Sensor (MV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L) })); - ItemList.Sensor_HV.set(addItem(tLastID = 692, "Sensor (HV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 4L) })); - ItemList.Sensor_EV.set(addItem(tLastID = 693, "Sensor (EV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 8L) })); - ItemList.Sensor_IV.set(addItem(tLastID = 694, "Sensor (IV)", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 16L) })); - ItemList.Sensor_LuV.set(ItemList.Sensor_IV.get(1L, new Object[0])); - ItemList.Sensor_ZPM.set(ItemList.Sensor_LuV.get(1L, new Object[0])); - ItemList.Sensor_UV.set(ItemList.Sensor_ZPM.get(1L, new Object[0])); - - GT_ModHandler.addCraftingRecipe(ItemList.Sensor_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "P Q", "PS ", "CPP", Character.valueOf('Q'), OrePrefixes.gem.get(Materials.Quartzite), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Brass), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Sensor_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "P Q", "PS ", "CPP", Character.valueOf('Q'), OrePrefixes.gem.get(Materials.NetherQuartz), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Electrum), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Aluminium), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good) }); - GT_ModHandler.addCraftingRecipe(ItemList.Sensor_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "P Q", "PS ", "CPP", Character.valueOf('Q'), OrePrefixes.gem.get(Materials.Emerald), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Chrome), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced) }); - GT_ModHandler.addCraftingRecipe(ItemList.Sensor_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "P Q", "PS ", "CPP", Character.valueOf('Q'), OrePrefixes.gem.get(Materials.EnderPearl), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Platinum), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite) }); - GT_ModHandler.addCraftingRecipe(ItemList.Sensor_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "P Q", "PS ", "CPP", Character.valueOf('Q'), OrePrefixes.gem.get(Materials.EnderEye), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Osmium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master) }); - - ItemList.Circuit_Primitive.set(addItem(tLastID = 700, "NAND Chip", "A very simple Circuit", new Object[] { OrePrefixes.circuit.get(Materials.Primitive) })); - ItemList.Circuit_Basic.set(addItem(tLastID = 701, "Basic Electronic Circuit", "A basic Circuit", new Object[] { OrePrefixes.circuit.get(Materials.Basic) })); - ItemList.Circuit_Good.set(addItem(tLastID = 702, "Good Electronic Circuit", "A good Circuit", new Object[] { OrePrefixes.circuit.get(Materials.Good) })); - ItemList.Circuit_Advanced.set(addItem(tLastID = 703, "Advanced Circuit", "An advanced Circuit", new Object[] { OrePrefixes.circuit.get(Materials.Advanced) })); - ItemList.Circuit_Data.set(addItem(tLastID = 704, "Data Storage Circuit", "A Data Storage Chip", new Object[] { OrePrefixes.circuit.get(Materials.Data) })); - ItemList.Circuit_Elite.set(addItem(tLastID = 705, "Data Control Circuit", "A Processor", new Object[] { OrePrefixes.circuit.get(Materials.Elite) })); - ItemList.Circuit_Master.set(addItem(tLastID = 706, "Energy Flow Circuit", "A High Voltage Processor", new Object[] { OrePrefixes.circuit.get(Materials.Master) })); - ItemList.Tool_DataOrb.set(addItem(tLastID = 707, "Data Orb", "A High Capacity Data Storage", new Object[] { OrePrefixes.circuit.get(Materials.Ultimate), SubTag.NO_UNIFICATION, new Behaviour_DataOrb() }));ItemList.Circuit_Ultimate.set(ItemList.Tool_DataOrb.get(1L, new Object[0])); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Tool_DataOrb.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Tool_DataOrb.get(1L, new Object[0]) }); - ItemList.Tool_DataStick.set(addItem(tLastID = 708, "Data Stick", "A Low Capacity Data Storage", new Object[] { OrePrefixes.circuit.get(Materials.Data), SubTag.NO_UNIFICATION, new Behaviour_DataStick() })); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Tool_DataStick.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Tool_DataStick.get(1L, new Object[0]) }); - + public GT_MetaGenerated_Item_01() { + super("metaitem.01", new OrePrefixes[]{OrePrefixes.dustTiny, OrePrefixes.dustSmall, OrePrefixes.dust, OrePrefixes.dustImpure, OrePrefixes.dustPure, OrePrefixes.crushed, OrePrefixes.crushedPurified, OrePrefixes.crushedCentrifuged, OrePrefixes.gem, OrePrefixes.nugget, null, OrePrefixes.ingot, OrePrefixes.ingotHot, OrePrefixes.ingotDouble, OrePrefixes.ingotTriple, OrePrefixes.ingotQuadruple, OrePrefixes.ingotQuintuple, OrePrefixes.plate, OrePrefixes.plateDouble, OrePrefixes.plateTriple, OrePrefixes.plateQuadruple, OrePrefixes.plateQuintuple, OrePrefixes.plateDense, OrePrefixes.stick, OrePrefixes.lens, OrePrefixes.round, OrePrefixes.bolt, OrePrefixes.screw, OrePrefixes.ring, OrePrefixes.foil, OrePrefixes.cell, OrePrefixes.cellPlasma}); + INSTANCE = this; - ItemList.Circuit_Board_Basic.set(addItem(tLastID = 710, "Basic Circuit Board", "A basic Board", new Object[0])); - ItemList.Circuit_Board_Advanced.set(addItem(tLastID = 711, "Advanced Circuit Board", "An advanced Board", new Object[0])); - ItemList.Circuit_Board_Elite.set(addItem(tLastID = 712, "Processor Board", "A Processor Board", new Object[0])); - ItemList.Circuit_Parts_Crystal_Chip_Elite.set(addItem(tLastID = 713, "Engraved Crystal Chip", "Needed for Circuits", new Object[0])); - ItemList.Circuit_Parts_Crystal_Chip_Master.set(addItem(tLastID = 714, "Engraved Lapotron Chip", "Needed for Circuits", new Object[0])); - ItemList.Circuit_Parts_Advanced.set(addItem(tLastID = 715, "Advanced Circuit Parts", "Advanced Circuit Parts", new Object[0])); - ItemList.Circuit_Parts_Wiring_Basic.set(addItem(tLastID = 716, "Etched Medium Voltage Wiring", "Part of Circuit Boards", new Object[0])); - ItemList.Circuit_Parts_Wiring_Advanced.set(addItem(tLastID = 717, "Etched High Voltage Wiring", "Part of Circuit Boards", new Object[0])); - ItemList.Circuit_Parts_Wiring_Elite.set(addItem(tLastID = 718, "Etched Extreme Voltage Wiring", "Part of Circuit Boards", new Object[0])); - + int tLastID = 0; - ItemList.Component_Sawblade_Diamond.set(addItem(tLastID = 721, "Diamond Sawblade", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L), OreDictNames.craftingDiamondBlade })); - ItemList.Component_Grinder_Diamond.set(addItem(tLastID = 722, "Diamond Grinding Head", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 6L), OreDictNames.craftingGrinder })); - ItemList.Component_Grinder_Tungsten.set(addItem(tLastID = 723, "Tungsten Grinding Head", "", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 6L), OreDictNames.craftingGrinder })); - - GT_ModHandler.addCraftingRecipe(ItemList.Component_Sawblade_Diamond.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { " D ", "DGD", " D ", Character.valueOf('D'), OrePrefixes.dustSmall.get(Materials.Diamond), Character.valueOf('G'), OrePrefixes.gearGt.get(Materials.CobaltBrass) }); - GT_ModHandler.addCraftingRecipe(ItemList.Component_Grinder_Diamond.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "DSD", "SIS", "DSD", Character.valueOf('I'), OreDictNames.craftingIndustrialDiamond, Character.valueOf('D'), OrePrefixes.dust.get(Materials.Diamond), Character.valueOf('S'), OrePrefixes.plate.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Component_Grinder_Tungsten.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "TST", "SIS", "TST", Character.valueOf('I'), OreDictNames.craftingIndustrialDiamond, Character.valueOf('T'), OrePrefixes.plate.get(Materials.Tungsten), Character.valueOf('S'), OrePrefixes.plate.get(Materials.Steel) }); - - ItemList.Upgrade_Muffler.set(addItem(tLastID = 727, "Muffler Upgrade", "Makes Machines silent", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 2L) })); - ItemList.Upgrade_Lock.set(addItem(tLastID = 728, "Lock Upgrade", "Protects your Machines", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 4L) })); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plastic, 2L), ItemList.Upgrade_Muffler.get(1L, new Object[0]), 1600, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L), ItemList.Upgrade_Muffler.get(1L, new Object[0]), 1600, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plastic, 2L), ItemList.Upgrade_Muffler.get(1L, new Object[0]), 1600, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L), ItemList.Upgrade_Muffler.get(1L, new Object[0]), 1600, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plastic, 2L), ItemList.Upgrade_Muffler.get(1L, new Object[0]), 1600, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L), ItemList.Upgrade_Muffler.get(1L, new Object[0]), 1600, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iridium, 1L), ItemList.Upgrade_Lock.get(1L, new Object[0]), 6400, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iridium, 1L), ItemList.Upgrade_Lock.get(1L, new Object[0]), 6400, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iridium, 1L), ItemList.Upgrade_Lock.get(1L, new Object[0]), 6400, 16); - - ItemList.Component_Filter.set(addItem(tLastID = 729, "Item Filter", "", new Object[] { new ItemData(Materials.Zinc, OrePrefixes.foil.mMaterialAmount * 16L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L), OreDictNames.craftingFilter })); - - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("carbonMesh", 4L), GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Zinc, 16L), ItemList.Component_Filter.get(1L, new Object[0]), 1600, 32); - - ItemList.Cover_Controller.set(addItem(tLastID = 730, "Machine Controller", "Turns Machines ON/OFF", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L) })); - ItemList.Cover_ActivityDetector.set(addItem(tLastID = 731, "Activity Detector", "Gives out Activity as Redstone", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L) })); - ItemList.Cover_FluidDetector.set(addItem(tLastID = 732, "Fluid Detector", "Gives out Fluid Amount as Redstone", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L) })); - ItemList.Cover_ItemDetector.set(addItem(tLastID = 733, "Item Detector", "Gives out Item Amount as Redstone", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.TERRA, 1L) })); - ItemList.Cover_EnergyDetector.set(addItem(tLastID = 734, "Energy Detector", "Gives out Energy Amount as Redstone", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L) })); - ItemList.Cover_PlayerDetector.set(addItem(tLastID = 735, "Player Detector", "Gives out close Players as Redstone", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L) })); - GT_Values.RA.addAssemblerRecipe( ItemList.Sensor_EV.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Titanium, 1L),ItemList.Cover_PlayerDetector.get(1L, new Object[0]), 3200, 128); - - GregTech_API.registerCover(ItemList.Cover_Controller.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_CONTROLLER) }), new GT_Cover_ControlsWork()); - GregTech_API.registerCover(ItemList.Cover_ActivityDetector.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_DoesWork()); - GregTech_API.registerCover(ItemList.Cover_FluidDetector.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FLUIDDETECTOR) }), new GT_Cover_LiquidMeter()); - GregTech_API.registerCover(ItemList.Cover_ItemDetector.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ITEMDETECTOR) }), new GT_Cover_ItemMeter()); - GregTech_API.registerCover(ItemList.Cover_EnergyDetector.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ENERGYDETECTOR) }), new GT_Cover_EUMeter()); - GregTech_API.registerCover(ItemList.Cover_PlayerDetector.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_PlayerDetector()); - - ItemList.Cover_Screen.set(addItem(tLastID = 740, "Computer Monitor", "Displays Data", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L) })); - ItemList.Cover_Crafting.set(addItem(tLastID = 744, "Crafting Table Cover", "Better than a wooden Workbench", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 4L) })); - ItemList.Cover_Drain.set(addItem(tLastID = 745, "Drain", "Absorbs Fluids and collects Rain", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L) })); - - ItemList.Cover_Shutter.set(addItem(tLastID = 749, "Shutter Module", "Blocks Inventory/Tank Side. Usage together with Machine Controller.", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L) })); - - GT_ModHandler.addCraftingRecipe(ItemList.Cover_Screen.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "AGA", "RPB", "ALA", Character.valueOf('A'), OrePrefixes.plate.get(Materials.Aluminium), Character.valueOf('L'), OrePrefixes.dust.get(Materials.Glowstone), Character.valueOf('R'), Dyes.dyeRed, Character.valueOf('G'), Dyes.dyeLime, Character.valueOf('B'), Dyes.dyeBlue, Character.valueOf('P'), OrePrefixes.plate.get(Materials.Glass) }); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 2L), new ItemStack(Items.iron_door, 1), ItemList.Cover_Shutter.get(2L, new Object[0]), 800, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 2L), new ItemStack(Items.iron_door, 1), ItemList.Cover_Shutter.get(2L, new Object[0]), 800, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 2L), new ItemStack(Items.iron_door, 1), ItemList.Cover_Shutter.get(2L, new Object[0]), 800, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 2L), new ItemStack(Blocks.iron_bars, 2), ItemList.Cover_Drain.get(1L, new Object[0]), 800, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 2L), new ItemStack(Blocks.iron_bars, 2), ItemList.Cover_Drain.get(1L, new Object[0]), 800, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 2L), new ItemStack(Blocks.iron_bars, 2), ItemList.Cover_Drain.get(1L, new Object[0]), 800, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), new ItemStack(Blocks.crafting_table, 1), ItemList.Cover_Crafting.get(1L, new Object[0]), 800, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), new ItemStack(Blocks.crafting_table, 1), ItemList.Cover_Crafting.get(1L, new Object[0]), 800, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), new ItemStack(Blocks.crafting_table, 1), ItemList.Cover_Crafting.get(1L, new Object[0]), 800, 16); - - GregTech_API.registerCover(ItemList.Cover_Screen.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SCREEN) }), new GT_Cover_Screen()); - GregTech_API.registerCover(ItemList.Cover_Crafting.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[1][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_CRAFTING) }), new GT_Cover_Crafting()); - GregTech_API.registerCover(ItemList.Cover_Drain.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[0][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_DRAIN) }), new GT_Cover_Drain()); - GregTech_API.registerCover(ItemList.Cover_Shutter.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[1][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SHUTTER) }), new GT_Cover_Shutter()); - - ItemList.Cover_SolarPanel.set(addItem(tLastID = 750, "Solar Panel", "May the Sun be with you", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 1L) })); - ItemList.Cover_SolarPanel_8V.set(addItem(tLastID = 751, "Solar Panel (8V)", "8 Volt Solar Panel", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 2L) })); - ItemList.Cover_SolarPanel_LV.set(addItem(tLastID = 752, "Solar Panel (LV)", "Low Voltage Solar Panel", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 4L) })); - ItemList.Cover_SolarPanel_MV.set(addItem(tLastID = 753, "Solar Panel (MV)", "Medium Voltage Solar Panel", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 8L) })); - ItemList.Cover_SolarPanel_HV.set(addItem(tLastID = 754, "Solar Panel (HV)", "High Voltage Solar Panel", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 16L) })); - ItemList.Cover_SolarPanel_EV.set(addItem(tLastID = 755, "Solar Panel (EV)", "Extreme Solar Panel", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 32L), new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 32L) })); - ItemList.Cover_SolarPanel_IV.set(addItem(tLastID = 756, "Solar Panel (IV)", "Insane Solar Panel", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L), new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 64L) })); - ItemList.Cover_SolarPanel_LuV.set(addItem(tLastID = 757, "Solar Panel (LuV)", "Ludicrous Solar Panel", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L), new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 64L) })); - ItemList.Cover_SolarPanel_ZPM.set(addItem(tLastID = 758, "Solar Panel (ZPM)", "ZPM Voltage Solar Panel", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L), new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 64L) })); - ItemList.Cover_SolarPanel_UV.set(addItem(tLastID = 759, "Solar Panel (UV)", "Ultimate Solar Panel", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L), new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 64L) })); - - GregTech_API.registerCover(ItemList.Cover_SolarPanel.get(1L, new Object[0]), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL), new GT_Cover_SolarPanel(1)); - GregTech_API.registerCover(ItemList.Cover_SolarPanel_8V.get(1L, new Object[0]), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL_8V), new GT_Cover_SolarPanel(8)); - GregTech_API.registerCover(ItemList.Cover_SolarPanel_LV.get(1L, new Object[0]), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL_LV), new GT_Cover_SolarPanel(32)); - GregTech_API.registerCover(ItemList.Cover_SolarPanel_MV.get(1L, new Object[0]), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL_MV), new GT_Cover_SolarPanel(128)); - GregTech_API.registerCover(ItemList.Cover_SolarPanel_HV.get(1L, new Object[0]), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL_HV), new GT_Cover_SolarPanel(512)); - GregTech_API.registerCover(ItemList.Cover_SolarPanel_EV.get(1L, new Object[0]), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL_EV), new GT_Cover_SolarPanel(2048)); - GregTech_API.registerCover(ItemList.Cover_SolarPanel_IV.get(1L, new Object[0]), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL_IV), new GT_Cover_SolarPanel(8192)); - GregTech_API.registerCover(ItemList.Cover_SolarPanel_LuV.get(1L, new Object[0]), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL_LuV), new GT_Cover_SolarPanel(32768)); - GregTech_API.registerCover(ItemList.Cover_SolarPanel_ZPM.get(1L, new Object[0]), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL_ZPM), new GT_Cover_SolarPanel(131072)); - GregTech_API.registerCover(ItemList.Cover_SolarPanel_UV.get(1L, new Object[0]), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL_UV), new GT_Cover_SolarPanel(524288)); - - ItemList.Tool_Sonictron.set(addItem(tLastID = 760, "Sonictron", "Bring your Music with you", new Object[] { Behaviour_Sonictron.INSTANCE, new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 4L) })); - ItemList.Tool_Cheat.set(addItem(tLastID = 761, "Debug Scanner", "Also an Infinite Energy Source", new Object[] { Behaviour_Scanner.INSTANCE, new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 64L) })); - setElectricStats(32000 + tLastID, -2000000000L, 1000000000L, -1L, -3L, false); - ItemList.Tool_Scanner.set(addItem(tLastID = 762, "Portable Scanner", "Tricorder", new Object[] { Behaviour_Scanner.INSTANCE, new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 6L), new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 6L) })); - setElectricStats(32000 + tLastID, 400000L, GT_Values.V[2], 2L, -1L, false); - GT_ModHandler.addCraftingRecipe(ItemList.Tool_Scanner.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "EPR", "CSC", "PBP", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Aluminium), Character.valueOf('E'), ItemList.Emitter_MV, Character.valueOf('R'), ItemList.Sensor_MV, Character.valueOf('S'), ItemList.Cover_Screen, Character.valueOf('B'), ItemList.Battery_RE_MV_Lithium }); - ItemList.NC_SensorKit.set(addItem(tLastID = 763, "GregTech Sensor Kit", "", new Object[] { new Behaviour_SensorKit() })); - ItemList.Duct_Tape.set(addItem(tLastID = 764, "BrainTech Aerospace Advanced Reinforced Duct Tape FAL-84", "If you can't fix it with this, use more of it!", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), OreDictNames.craftingDuctTape })); - ItemList.McGuffium_239.set(addItem(tLastID = 765, "Mc Guffium 239", "42% better than Phlebotnium", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ALIENIS, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.SPIRITUS, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.AURAM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITIUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.RADIO, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MAGNETO, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 8L) })); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 4L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StainlessSteel, 2L), ItemList.Schematic.get(1L, new Object[0]), 3200, 4); - GT_Values.RA.addAssemblerRecipe(ItemList.Sensor_LV.get(1L, new Object[0]), ItemList.Emitter_LV.get(1L, new Object[0]), ItemList.NC_SensorKit.get(1L, new Object[0]), 1600, 2); - - ItemList.Cover_RedstoneTransmitterExternal.set(addItem(tLastID = 741, "Redstone Transmitter (Out)", "Transfers Redstonesignals wireless", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L) })); - ItemList.Cover_RedstoneTransmitterInternal.set(addItem(tLastID = 742, "Redstone Transmitter (In)", "Transfers Redstonesignals wireless", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L) })); - ItemList.Cover_RedstoneReceiverExternal.set(addItem(tLastID = 746, "Redstone Receiver (Out)", "Transfers Redstonesignals wireless", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L) })); - ItemList.Cover_RedstoneReceiverInternal.set(addItem(tLastID = 747, "Redstone Receiver (In)", "Transfers Redstonesignals wireless", 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_RedstoneTransmitterExternal.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_RedstoneTransmitterExternal()); - GregTech_API.registerCover(ItemList.Cover_RedstoneTransmitterInternal.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_RedstoneTransmitterInternal()); - GregTech_API.registerCover(ItemList.Cover_RedstoneReceiverExternal.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FLUIDDETECTOR) }), new GT_Cover_RedstoneReceiverExternal()); - GregTech_API.registerCover(ItemList.Cover_RedstoneReceiverInternal.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FLUIDDETECTOR) }), new GT_Cover_RedstoneReceiverInternal()); - - GT_Values.RA.addAssemblerRecipe(ItemList.Emitter_EV.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StainlessSteel, 1L),ItemList.Cover_RedstoneTransmitterExternal.get(1L, new Object[0]) , 3200, 128); - GT_Values.RA.addAssemblerRecipe( ItemList.Sensor_EV.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StainlessSteel, 1L),ItemList.Cover_RedstoneReceiverExternal.get(1L, new Object[0]), 3200, 128); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Cover_RedstoneTransmitterInternal.get(1L, new Object[0]), new Object[]{ItemList.Cover_RedstoneTransmitterExternal.get(1L, new Object[0])}); - 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", "Attach to Multiblock Controller. Emits Redstone Signal if 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); - } - - public boolean onEntityItemUpdate(EntityItem aItemEntity) - { - int aDamage = aItemEntity.getEntityItem().getItemDamage(); - if ((aDamage < 32000) && (aDamage >= 0) && (!aItemEntity.worldObj.isRemote)) - { - Materials aMaterial = GregTech_API.sGeneratedMaterials[(aDamage % 1000)]; - if ((aMaterial != null) && (aMaterial != Materials.Empty) && (aMaterial != Materials._NULL)) - { - int tX = MathHelper.floor_double(aItemEntity.posX);int tY = MathHelper.floor_double(aItemEntity.posY);int tZ = MathHelper.floor_double(aItemEntity.posZ); - OrePrefixes aPrefix = this.mGeneratedPrefixList[(aDamage / 1000)]; - if ((aPrefix == OrePrefixes.dustImpure) || (aPrefix == OrePrefixes.dustPure)) - { - Block tBlock = aItemEntity.worldObj.getBlock(tX, tY, tZ); - byte tMetaData = (byte)aItemEntity.worldObj.getBlockMetadata(tX, tY, tZ); - if ((tBlock == Blocks.cauldron) && (tMetaData > 0)) - { - aItemEntity.setEntityItemStack(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, aItemEntity.getEntityItem().stackSize)); - aItemEntity.worldObj.setBlockMetadataWithNotify(tX, tY, tZ, tMetaData - 1, 3); - return true; - } + setBurnValue(17000 + Materials.Wood.mMetaItemSubID, 1600); + GT_OreDictUnificator.addToBlacklist(new ItemStack(this, 1, 17000 + Materials.Wood.mMetaItemSubID)); + GT_ModHandler.addCompressionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 8L), new ItemStack(this, 1, 17000 + Materials.Wood.mMetaItemSubID)); + GregTech_API.registerCover(new ItemStack(this, 1, 17000 + Materials.Wood.mMetaItemSubID), new GT_RenderedTexture(Textures.BlockIcons.COVER_WOOD_PLATE), null); + + ItemStack tStack = new ItemStack(this, 1, 17000 + Materials.Wood.mMetaItemSubID); + tStack.setStackDisplayName("The holy Planks of Sengir"); + GT_Utility.ItemNBT.addEnchantment(tStack, Enchantment.smite, 10); + GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"XXX", "XDX", "XXX", Character.valueOf('X'), OrePrefixes.gem.get(Materials.NetherStar), Character.valueOf('D'), new ItemStack(Blocks.dragon_egg, 1, 32767)}); + + ItemList.Credit_Greg_Copper.set(addItem(tLastID = 0, "Copper GT Credit", "0.125 Credits", new Object[0])); + ItemList.Credit_Greg_Cupronickel.set(addItem(tLastID = 1, "Cupronickel GT Credit", "1 Credit", new Object[]{new ItemData(Materials.Cupronickel, 907200L, new MaterialStack[0])})); + ItemList.Credit_Greg_Silver.set(addItem(tLastID = 2, "Silver GT Credit", "8 Credits", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L)})); + ItemList.Credit_Greg_Gold.set(addItem(tLastID = 3, "Gold GT Credit", "64 Credits", new Object[0])); + ItemList.Credit_Greg_Platinum.set(addItem(tLastID = 4, "Platinum GT Credit", "512 Credits", new Object[0])); + ItemList.Credit_Greg_Osmium.set(addItem(tLastID = 5, "Osmium GT Credit", "4096 Credits", new Object[0])); + ItemList.Credit_Greg_Naquadah.set(addItem(tLastID = 6, "Naquadah GT Credit", "32768 Credits", new Object[0])); + ItemList.Credit_Greg_Neutronium.set(addItem(tLastID = 7, "Neutronium GT Credit", "262144 Credits", new Object[0])); + ItemList.Coin_Gold_Ancient.set(addItem(tLastID = 8, "Ancient Gold Coin", "Found in ancient Ruins", new Object[]{new ItemData(Materials.Gold, 907200L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 8L)})); + ItemList.Coin_Doge.set(addItem(tLastID = 9, "Doge Coin", "wow much coin how money so crypto plz mine v rich very currency wow", new Object[]{new ItemData(Materials.Brass, 907200L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L)})); + ItemList.Coin_Chocolate.set(addItem(tLastID = 10, "Chocolate Coin", "Wrapped in Gold", new Object[]{new ItemData(Materials.Gold, OrePrefixes.foil.mMaterialAmount, new MaterialStack[0]), new GT_FoodStat(1, 0.1F, EnumAction.eat, GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Gold, 1L), true, false, false, new int[]{Potion.moveSpeed.id, 200, 1, 100})})); + ItemList.Credit_Copper.set(addItem(tLastID = 11, "Industrial Copper Credit", "0.125 Credits", new Object[0])); + + ItemList.Credit_Silver.set(addItem(tLastID = 13, "Industrial Silver Credit", "8 Credits", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L)})); + ItemList.Credit_Gold.set(addItem(tLastID = 14, "Industrial Gold Credit", "64 Credits", new Object[0])); + ItemList.Credit_Platinum.set(addItem(tLastID = 15, "Industrial Platinum Credit", "512 Credits", new Object[0])); + ItemList.Credit_Osmium.set(addItem(tLastID = 16, "Industrial Osmium Credit", "4096 Credits", new Object[0])); + + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Coin_Chocolate.get(1L, new Object[0]), new Object[]{OrePrefixes.dust.get(Materials.Cocoa), OrePrefixes.dust.get(Materials.Milk), OrePrefixes.dust.get(Materials.Sugar), OrePrefixes.foil.get(Materials.Gold)}); + + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Copper.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Iron}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Iron.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Silver}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Silver.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Gold}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Gold.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Platinum}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Platinum.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Osmium}); + + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Iron.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Copper, ItemList.Credit_Copper, ItemList.Credit_Copper, ItemList.Credit_Copper, ItemList.Credit_Copper, ItemList.Credit_Copper, ItemList.Credit_Copper, ItemList.Credit_Copper}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Silver.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Iron, ItemList.Credit_Iron, ItemList.Credit_Iron, ItemList.Credit_Iron, ItemList.Credit_Iron, ItemList.Credit_Iron, ItemList.Credit_Iron, ItemList.Credit_Iron}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Gold.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Silver, ItemList.Credit_Silver, ItemList.Credit_Silver, ItemList.Credit_Silver, ItemList.Credit_Silver, ItemList.Credit_Silver, ItemList.Credit_Silver, ItemList.Credit_Silver}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Platinum.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Gold, ItemList.Credit_Gold, ItemList.Credit_Gold, ItemList.Credit_Gold, ItemList.Credit_Gold, ItemList.Credit_Gold, ItemList.Credit_Gold, ItemList.Credit_Gold}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Osmium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Platinum, ItemList.Credit_Platinum, ItemList.Credit_Platinum, ItemList.Credit_Platinum, ItemList.Credit_Platinum, ItemList.Credit_Platinum, ItemList.Credit_Platinum, ItemList.Credit_Platinum}); + + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Copper.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Greg_Cupronickel}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Cupronickel.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Greg_Silver}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Silver.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Greg_Gold}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Gold.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Greg_Platinum}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Platinum.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Greg_Osmium}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Osmium.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Greg_Naquadah}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Naquadah.get(8L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Greg_Neutronium}); + + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Cupronickel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Greg_Copper, ItemList.Credit_Greg_Copper, ItemList.Credit_Greg_Copper, ItemList.Credit_Greg_Copper, ItemList.Credit_Greg_Copper, ItemList.Credit_Greg_Copper, ItemList.Credit_Greg_Copper, ItemList.Credit_Greg_Copper}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Silver.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Greg_Cupronickel, ItemList.Credit_Greg_Cupronickel, ItemList.Credit_Greg_Cupronickel, ItemList.Credit_Greg_Cupronickel, ItemList.Credit_Greg_Cupronickel, ItemList.Credit_Greg_Cupronickel, ItemList.Credit_Greg_Cupronickel, ItemList.Credit_Greg_Cupronickel}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Gold.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Greg_Silver, ItemList.Credit_Greg_Silver, ItemList.Credit_Greg_Silver, ItemList.Credit_Greg_Silver, ItemList.Credit_Greg_Silver, ItemList.Credit_Greg_Silver, ItemList.Credit_Greg_Silver, ItemList.Credit_Greg_Silver}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Platinum.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Greg_Gold, ItemList.Credit_Greg_Gold, ItemList.Credit_Greg_Gold, ItemList.Credit_Greg_Gold, ItemList.Credit_Greg_Gold, ItemList.Credit_Greg_Gold, ItemList.Credit_Greg_Gold, ItemList.Credit_Greg_Gold}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Osmium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Greg_Platinum, ItemList.Credit_Greg_Platinum, ItemList.Credit_Greg_Platinum, ItemList.Credit_Greg_Platinum, ItemList.Credit_Greg_Platinum, ItemList.Credit_Greg_Platinum, ItemList.Credit_Greg_Platinum, ItemList.Credit_Greg_Platinum}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Naquadah.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Greg_Osmium, ItemList.Credit_Greg_Osmium, ItemList.Credit_Greg_Osmium, ItemList.Credit_Greg_Osmium, ItemList.Credit_Greg_Osmium, ItemList.Credit_Greg_Osmium, ItemList.Credit_Greg_Osmium, ItemList.Credit_Greg_Osmium}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Credit_Greg_Neutronium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Credit_Greg_Naquadah, ItemList.Credit_Greg_Naquadah, ItemList.Credit_Greg_Naquadah, ItemList.Credit_Greg_Naquadah, ItemList.Credit_Greg_Naquadah, ItemList.Credit_Greg_Naquadah, ItemList.Credit_Greg_Naquadah, ItemList.Credit_Greg_Naquadah}); + + ItemList.Component_Minecart_Wheels_Iron.set(addItem(tLastID = 100, "Iron Minecart Wheels", "To get things rolling", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L)})); + ItemList.Component_Minecart_Wheels_Steel.set(addItem(tLastID = 101, "Steel Minecart Wheels", "To get things rolling", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L)})); + + GT_ModHandler.addCraftingRecipe(ItemList.Component_Minecart_Wheels_Iron.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" h ", "RSR", " w ", Character.valueOf('R'), OrePrefixes.ring.get(Materials.AnyIron), Character.valueOf('S'), OrePrefixes.stick.get(Materials.AnyIron)}); + GT_ModHandler.addCraftingRecipe(ItemList.Component_Minecart_Wheels_Steel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" h ", "RSR", " w ", Character.valueOf('R'), OrePrefixes.ring.get(Materials.Steel), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Steel)}); + + ItemList.Arrow_Head_Glass_Emtpy.set(addItem(tLastID = 200, "Empty Glass Arrow Head", "Fill with Potions before use", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L)})); + ItemList.Arrow_Head_Glass_Poison.set(addItem(tLastID = 201, "Poison Glass Arrow Head", "Glass Arrow filled with Poison", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L)})); + ItemList.Arrow_Head_Glass_Poison_Long.set(addItem(tLastID = 202, "Poison Glass Arrow Head", "Glass Arrow filled with stretched Poison", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L)})); + ItemList.Arrow_Head_Glass_Poison_Strong.set(addItem(tLastID = 203, "Poison Glass Arrow Head", "Glass Arrow filled with strong Poison", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L)})); + ItemList.Arrow_Head_Glass_Slowness.set(addItem(tLastID = 204, "Slowness Glass Arrow Head", "Glass Arrow filled with Laming Brew", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L)})); + ItemList.Arrow_Head_Glass_Slowness_Long.set(addItem(tLastID = 205, "Slowness Glass Arrow Head", "Glass Arrow filled with stretched Laming Brew", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L)})); + ItemList.Arrow_Head_Glass_Weakness.set(addItem(tLastID = 206, "Weakness Glass Arrow Head", "Glass Arrow filled with Weakening Brew", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L)})); + ItemList.Arrow_Head_Glass_Weakness_Long.set(addItem(tLastID = 207, "Weakness Glass Arrow Head", "Glass Arrow filled with stretched Weakening Brew", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L)})); + ItemList.Arrow_Head_Glass_Holy_Water.set(addItem(tLastID = 208, "Holy Water Glass Arrow Head", "Glass Arrow filled with Holy Water", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AURAM, 1L)})); + + ItemList.Arrow_Wooden_Glass_Emtpy.set(addItem(tLastID = 225, "Regular Glass Vial Arrow", "Empty Glass Arrow", new Object[]{new Behaviour_Arrow_Potion(1.0F, 6.0F, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L)})); + ItemList.Arrow_Wooden_Glass_Poison.set(addItem(tLastID = 226, "Regular Poison Arrow", "Glass Arrow filled with Poison", new Object[]{new Behaviour_Arrow_Potion(1.0F, 6.0F, new int[]{Potion.poison.id, 450, 0, 100}), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L)})); + ItemList.Arrow_Wooden_Glass_Poison_Long.set(addItem(tLastID = 227, "Regular Poison Arrow", "Glass Arrow filled with stretched Poison", new Object[]{new Behaviour_Arrow_Potion(1.0F, 6.0F, new int[]{Potion.poison.id, 900, 0, 100}), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L)})); + ItemList.Arrow_Wooden_Glass_Poison_Strong.set(addItem(tLastID = 228, "Regular Poison Arrow", "Glass Arrow filled with strong Poison", new Object[]{new Behaviour_Arrow_Potion(1.0F, 6.0F, new int[]{Potion.poison.id, 450, 1, 100}), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L)})); + ItemList.Arrow_Wooden_Glass_Slowness.set(addItem(tLastID = 229, "Regular Slowness Arrow", "Glass Arrow filled with Laming Brew", new Object[]{new Behaviour_Arrow_Potion(1.0F, 6.0F, new int[]{Potion.moveSlowdown.id, 900, 0, 100}), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L)})); + ItemList.Arrow_Wooden_Glass_Slowness_Long.set(addItem(tLastID = 230, "Regular Slowness Arrow", "Glass Arrow filled with stretched Laming Brew", new Object[]{new Behaviour_Arrow_Potion(1.0F, 6.0F, new int[]{Potion.moveSlowdown.id, 1800, 0, 100}), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L)})); + ItemList.Arrow_Wooden_Glass_Weakness.set(addItem(tLastID = 231, "Regular Weakness Arrow", "Glass Arrow filled with Weakening Brew", new Object[]{new Behaviour_Arrow_Potion(1.0F, 6.0F, new int[]{Potion.weakness.id, 900, 0, 100}), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L)})); + ItemList.Arrow_Wooden_Glass_Weakness_Long.set(addItem(tLastID = 232, "Regular Weakness Arrow", "Glass Arrow filled with stretched Weakening Brew", new Object[]{new Behaviour_Arrow_Potion(1.0F, 6.0F, new int[]{Potion.weakness.id, 1800, 0, 100}), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L)})); + ItemList.Arrow_Wooden_Glass_Holy_Water.set(addItem(tLastID = 233, "Regular Holy Water Arrow", "Glass Arrow filled with Holy Water", new Object[]{new Behaviour_Arrow_Potion(1.0F, 6.0F, Enchantment.smite, 10, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AURAM, 1L)})); + + ItemList.Arrow_Plastic_Glass_Emtpy.set(addItem(tLastID = 250, "Light Glass Vial Arrow", "Empty Glass Arrow", new Object[]{new Behaviour_Arrow_Potion(1.5F, 6.0F, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L)})); + ItemList.Arrow_Plastic_Glass_Poison.set(addItem(tLastID = 251, "Light Poison Arrow", "Glass Arrow filled with Poison", new Object[]{new Behaviour_Arrow_Potion(1.5F, 6.0F, new int[]{Potion.poison.id, 450, 0, 100}), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L)})); + ItemList.Arrow_Plastic_Glass_Poison_Long.set(addItem(tLastID = 252, "Light Poison Arrow", "Glass Arrow filled with stretched Poison", new Object[]{new Behaviour_Arrow_Potion(1.5F, 6.0F, new int[]{Potion.poison.id, 900, 0, 100}), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L)})); + ItemList.Arrow_Plastic_Glass_Poison_Strong.set(addItem(tLastID = 253, "Light Poison Arrow", "Glass Arrow filled with strong Poison", new Object[]{new Behaviour_Arrow_Potion(1.5F, 6.0F, new int[]{Potion.poison.id, 450, 1, 100}), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L)})); + ItemList.Arrow_Plastic_Glass_Slowness.set(addItem(tLastID = 254, "Light Slowness Arrow", "Glass Arrow filled with Laming Brew", new Object[]{new Behaviour_Arrow_Potion(1.5F, 6.0F, new int[]{Potion.moveSlowdown.id, 900, 0, 100}), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L)})); + ItemList.Arrow_Plastic_Glass_Slowness_Long.set(addItem(tLastID = 255, "Light Slowness Arrow", "Glass Arrow filled with stretched Laming Brew", new Object[]{new Behaviour_Arrow_Potion(1.5F, 6.0F, new int[]{Potion.moveSlowdown.id, 1800, 0, 100}), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L)})); + ItemList.Arrow_Plastic_Glass_Weakness.set(addItem(tLastID = 256, "Light Weakness Arrow", "Glass Arrow filled with Weakening Brew", new Object[]{new Behaviour_Arrow_Potion(1.5F, 6.0F, new int[]{Potion.weakness.id, 900, 0, 100}), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L)})); + ItemList.Arrow_Plastic_Glass_Weakness_Long.set(addItem(tLastID = 257, "Light Weakness Arrow", "Glass Arrow filled with stretched Weakening Brew", new Object[]{new Behaviour_Arrow_Potion(1.5F, 6.0F, new int[]{Potion.weakness.id, 1800, 0, 100}), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L)})); + ItemList.Arrow_Plastic_Glass_Holy_Water.set(addItem(tLastID = 258, "Light Holy Water Arrow", "Glass Arrow filled with Holy Water", new Object[]{new Behaviour_Arrow_Potion(1.5F, 6.0F, Enchantment.smite, 10, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AURAM, 1L)})); + + GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Wooden_Glass_Emtpy.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Emtpy, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood)}); + GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Wooden_Glass_Poison.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Poison, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood)}); + GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Wooden_Glass_Poison_Long.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Poison_Long, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood)}); + GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Wooden_Glass_Poison_Strong.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Poison_Strong, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood)}); + GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Wooden_Glass_Slowness.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Slowness, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood)}); + GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Wooden_Glass_Slowness_Long.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Slowness_Long, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood)}); + GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Wooden_Glass_Weakness.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Weakness, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood)}); + GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Wooden_Glass_Weakness_Long.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Weakness_Long, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood)}); + GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Wooden_Glass_Holy_Water.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Holy_Water, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood)}); + + GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Plastic_Glass_Emtpy.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Emtpy, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Plastic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Plastic_Glass_Poison.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Poison, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Plastic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Plastic_Glass_Poison_Long.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Poison_Long, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Plastic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Plastic_Glass_Poison_Strong.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Poison_Strong, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Plastic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Plastic_Glass_Slowness.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Slowness, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Plastic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Plastic_Glass_Slowness_Long.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Slowness_Long, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Plastic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Plastic_Glass_Weakness.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Weakness, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Plastic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Plastic_Glass_Weakness_Long.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Weakness_Long, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Plastic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Arrow_Plastic_Glass_Holy_Water.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" A", " S ", "F ", Character.valueOf('A'), ItemList.Arrow_Head_Glass_Holy_Water, Character.valueOf('F'), OreDictNames.craftingFeather, Character.valueOf('S'), OrePrefixes.stick.get(Materials.Plastic)}); + + ItemList.Shape_Empty.set(addItem(tLastID = 300, "Empty Shape Plate", "Raw Plate to make Molds and Extruder Shapes", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)})); + + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Empty.get(1L, new Object[0]), GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"hf", "PP", "PP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel)}); + + ItemList.Shape_Mold_Plate.set(addItem(tLastID = 301, "Mold (Plate)", "Mold for making Plates", new Object[0])); + ItemList.Shape_Mold_Casing.set(addItem(tLastID = 302, "Mold (Casing)", "Mold for making Item Casings", new Object[0])); + ItemList.Shape_Mold_Gear.set(addItem(tLastID = 303, "Mold (Gear)", "Mold for making Gears", new Object[0])); + ItemList.Shape_Mold_Credit.set(addItem(tLastID = 304, "Mold (Coinage)", "Secure Mold for making Coins (Don't lose it!)", new Object[0])); + ItemList.Shape_Mold_Bottle.set(addItem(tLastID = 305, "Mold (Bottle)", "Mold for making Bottles", new Object[0])); + ItemList.Shape_Mold_Ingot.set(addItem(tLastID = 306, "Mold (Ingot)", "Mold for making Ingots", new Object[0])); + ItemList.Shape_Mold_Ball.set(addItem(tLastID = 307, "Mold (Ball)", "Mold for making Balls", new Object[0])); + ItemList.Shape_Mold_Block.set(addItem(tLastID = 308, "Mold (Block)", "Mold for making Blocks", new Object[0])); + ItemList.Shape_Mold_Nugget.set(addItem(tLastID = 309, "Mold (Nuggets)", "Mold for making Nuggets", new Object[0])); + ItemList.Shape_Mold_Bun.set(addItem(tLastID = 310, "Mold (Buns)", "Mold for shaping Buns", new Object[0])); + ItemList.Shape_Mold_Bread.set(addItem(tLastID = 311, "Mold (Bread)", "Mold for shaping Breads", new Object[0])); + ItemList.Shape_Mold_Baguette.set(addItem(tLastID = 312, "Mold (Baguette)", "Mold for shaping Baguettes", new Object[0])); + ItemList.Shape_Mold_Cylinder.set(addItem(tLastID = 313, "Mold (Cylinder)", "Mold for shaping Cylinders", new Object[0])); + ItemList.Shape_Mold_Anvil.set(addItem(tLastID = 314, "Mold (Anvil)", "Mold for shaping Anvils", new Object[0])); + ItemList.Shape_Mold_Name.set(addItem(tLastID = 315, "Mold (Name)", "Mold for naming Items (rename Mold with Anvil)", new Object[0])); + ItemList.Shape_Mold_Arrow.set(addItem(tLastID = 316, "Mold (Arrow Head)", "Mold for making Arrow Heads", new Object[0])); + ItemList.Shape_Mold_Gear_Small.set(addItem(tLastID = 317, "Mold (Small Gear)", "Mold for making small Gears", new Object[0])); + + GT_ModHandler.removeRecipe(new ItemStack[]{new ItemStack(Blocks.glass), null, new ItemStack(Blocks.glass), null, new ItemStack(Blocks.glass)}); + + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Credit.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"h ", " P ", " ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Plate.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" h ", " P ", " ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Casing.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" h", " P ", " ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Gear.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" ", " Ph", " ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Bottle.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" ", " P ", " h", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" ", " P ", " h ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Ball.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" ", " P ", "h ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Block.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" ", "hP ", " ", Character.valueOf('P'), ItemList.Shape_Empty}); + + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Nugget.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"P h", " ", " ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Bun.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"P ", " h", " ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Bread.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"P ", " ", " h", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Baguette.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"P ", " ", " h ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Cylinder.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" P", " ", " h", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Anvil.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" P", " ", " h ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Name.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" P", " ", "h ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Arrow.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" P", "h ", " ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Mold_Gear_Small.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" ", " ", "h P", Character.valueOf('P'), ItemList.Shape_Empty}); + + ItemList.Shape_Extruder_Plate.set(addItem(tLastID = 350, "Extruder Shape (Plate)", "Extruder Shape for making Plates", new Object[0])); + ItemList.Shape_Extruder_Rod.set(addItem(tLastID = 351, "Extruder Shape (Rod)", "Extruder Shape for making Rods", new Object[0])); + ItemList.Shape_Extruder_Bolt.set(addItem(tLastID = 352, "Extruder Shape (Bolt)", "Extruder Shape for making Bolts", new Object[0])); + ItemList.Shape_Extruder_Ring.set(addItem(tLastID = 353, "Extruder Shape (Ring)", "Extruder Shape for making Rings", new Object[0])); + ItemList.Shape_Extruder_Cell.set(addItem(tLastID = 354, "Extruder Shape (Cell)", "Extruder Shape for making Cells", new Object[0])); + ItemList.Shape_Extruder_Ingot.set(addItem(tLastID = 355, "Extruder Shape (Ingot)", "Extruder Shape for, wait, can't we just use a Furnace?", new Object[0])); + ItemList.Shape_Extruder_Wire.set(addItem(tLastID = 356, "Extruder Shape (Wire)", "Extruder Shape for making Wires", new Object[0])); + ItemList.Shape_Extruder_Casing.set(addItem(tLastID = 357, "Extruder Shape (Casing)", "Extruder Shape for making Item Casings", new Object[0])); + ItemList.Shape_Extruder_Pipe_Tiny.set(addItem(tLastID = 358, "Extruder Shape (Tiny Pipe)", "Extruder Shape for making tiny Pipes", new Object[0])); + ItemList.Shape_Extruder_Pipe_Small.set(addItem(tLastID = 359, "Extruder Shape (Small Pipe)", "Extruder Shape for making small Pipes", new Object[0])); + ItemList.Shape_Extruder_Pipe_Medium.set(addItem(tLastID = 360, "Extruder Shape (Normal Pipe)", "Extruder Shape for making Pipes", new Object[0])); + ItemList.Shape_Extruder_Pipe_Large.set(addItem(tLastID = 361, "Extruder Shape (Large Pipe)", "Extruder Shape for making large Pipes", new Object[0])); + ItemList.Shape_Extruder_Pipe_Huge.set(addItem(tLastID = 362, "Extruder Shape (Huge Pipe)", "Extruder Shape for making full Block Pipes", new Object[0])); + ItemList.Shape_Extruder_Block.set(addItem(tLastID = 363, "Extruder Shape (Block)", "Extruder Shape for making Blocks", new Object[0])); + ItemList.Shape_Extruder_Sword.set(addItem(tLastID = 364, "Extruder Shape (Sword Blade)", "Extruder Shape for making Swords", new Object[0])); + ItemList.Shape_Extruder_Pickaxe.set(addItem(tLastID = 365, "Extruder Shape (Pickaxe Head)", "Extruder Shape for making Pickaxes", new Object[0])); + ItemList.Shape_Extruder_Shovel.set(addItem(tLastID = 366, "Extruder Shape (Shovel Head)", "Extruder Shape for making Shovels", new Object[0])); + ItemList.Shape_Extruder_Axe.set(addItem(tLastID = 367, "Extruder Shape (Axe Head)", "Extruder Shape for making Axes", new Object[0])); + ItemList.Shape_Extruder_Hoe.set(addItem(tLastID = 368, "Extruder Shape (Hoe Head)", "Extruder Shape for making Hoes", new Object[0])); + ItemList.Shape_Extruder_Hammer.set(addItem(tLastID = 369, "Extruder Shape (Hammer Head)", "Extruder Shape for making Hammers", new Object[0])); + ItemList.Shape_Extruder_File.set(addItem(tLastID = 370, "Extruder Shape (File Head)", "Extruder Shape for making Files", new Object[0])); + ItemList.Shape_Extruder_Saw.set(addItem(tLastID = 371, "Extruder Shape (Saw Blade)", "Extruder Shape for making Saws", new Object[0])); + ItemList.Shape_Extruder_Gear.set(addItem(tLastID = 372, "Extruder Shape (Gear)", "Extruder Shape for making Gears", new Object[0])); + ItemList.Shape_Extruder_Bottle.set(addItem(tLastID = 373, "Extruder Shape (Bottle)", "Extruder Shape for making Bottles", new Object[0])); + + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Bolt.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"x ", " P ", " ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Cell.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" x ", " P ", " ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" x", " P ", " ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Ring.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" ", " Px", " ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Rod.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" ", " P ", " x", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Wire.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" ", " P ", " x ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Casing.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" ", " P ", "x ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Plate.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" ", "xP ", " ", Character.valueOf('P'), ItemList.Shape_Empty}); + + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Block.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"P x", " ", " ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Pipe_Small.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"P ", " x", " ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Pipe_Large.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"P ", " ", " x", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Pipe_Medium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"P ", " ", " x ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Sword.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" P", " ", " x", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Pickaxe.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" P", " ", " x ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Shovel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" P", " ", "x ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Axe.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" P", "x ", " ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Hoe.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" ", " ", "x P", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Hammer.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" ", "x ", " P", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_File.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"x ", " ", " P", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Saw.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" x ", " ", " P", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Gear.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"x ", " ", "P ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Pipe_Tiny.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" x ", " ", "P ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Pipe_Huge.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" x", " ", "P ", Character.valueOf('P'), ItemList.Shape_Empty}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Extruder_Bottle.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" ", " x", "P ", Character.valueOf('P'), ItemList.Shape_Empty}); + + ItemList.Shape_Slicer_Flat.set(addItem(tLastID = 398, "Slicer Blade (Flat)", "Slicer Blade for cutting Flat", new Object[0])); + ItemList.Shape_Slicer_Stripes.set(addItem(tLastID = 399, "Slicer Blade (Stripes)", "Slicer Blade for cutting Stripes", new Object[0])); + + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Slicer_Flat.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"hXS", " P ", "fXd", Character.valueOf('P'), ItemList.Shape_Extruder_Block, Character.valueOf('X'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Shape_Slicer_Stripes.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"hXS", "XPX", "fXd", Character.valueOf('P'), ItemList.Shape_Extruder_Block, Character.valueOf('X'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel)}); + + ItemList.Fuel_Can_Plastic_Empty.set(addItem(tLastID = 400, "Empty Plastic Fuel Can", "Used to store Fuels", new Object[]{new ItemData(Materials.Plastic, OrePrefixes.plate.mMaterialAmount * 1L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L)})); + ItemList.Fuel_Can_Plastic_Filled.set(addItem(tLastID = 401, "Plastic Fuel Can", "Burns well in Diesel Generators", new Object[]{new ItemData(Materials.Plastic, OrePrefixes.plate.mMaterialAmount * 1L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L)})); + + GT_ModHandler.addCraftingRecipe(ItemList.Fuel_Can_Plastic_Empty.get(7L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" PP", "P P", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Plastic)}); + + ItemList.Spray_Empty.set(addItem(tLastID = 402, "Empty Spray Can", "Used for making Sprays", new Object[]{new ItemData(Materials.Tin, OrePrefixes.plate.mMaterialAmount * 2L, Materials.Redstone, OrePrefixes.dust.mMaterialAmount), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L)})); + + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Empty, 1L), ItemList.Spray_Empty.get(1L, new Object[0]), 800, 1); + + ItemList.Crate_Empty.set(addItem(tLastID = 403, "Empty Crate", "To Package lots of Material", new Object[]{new ItemData(Materials.Wood, 3628800L, Materials.Iron, OrePrefixes.screw.mMaterialAmount), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 2L)})); + + GT_ModHandler.addCraftingRecipe(ItemList.Crate_Empty.get(4L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"SWS", "WdW", "SWS", Character.valueOf('W'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('S'), OrePrefixes.screw.get(Materials.AnyIron)}); + GT_ModHandler.addCraftingRecipe(ItemList.Crate_Empty.get(4L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"SWS", "WdW", "SWS", Character.valueOf('W'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Steel)}); + + ItemList.ThermosCan_Empty.set(addItem(tLastID = 404, "Empty Thermos Can", "Keeping hot things hot and cold things cold", new Object[]{new ItemData(Materials.Aluminium, OrePrefixes.plate.mMaterialAmount * 1L + 2L * OrePrefixes.ring.mMaterialAmount, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L)})); + + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Aluminium, 2L), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 800, 1); + + ItemList.Large_Fluid_Cell_Steel.set(addItem(tLastID = 405, "Large Steel Fluid Cell", "", new Object[]{new ItemData(Materials.Steel, OrePrefixes.plate.mMaterialAmount * 8L + 4L * OrePrefixes.ring.mMaterialAmount, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L)})); + setFluidContainerStats(32000 + tLastID, 16000L, 4L); + + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 8L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Steel, 4L), ItemList.Large_Fluid_Cell_Steel.get(1L, new Object[0]), 100, 64); + + ItemList.Large_Fluid_Cell_TungstenSteel.set(addItem(tLastID = 406, "Large Tungstensteel Fluid Cell", "", new Object[]{new ItemData(Materials.TungstenSteel, OrePrefixes.plate.mMaterialAmount * 8L + 4L * OrePrefixes.ring.mMaterialAmount, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 6L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 3L)})); + setFluidContainerStats(32000 + tLastID, 64000L, 4L); + + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.TungstenSteel, 8L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.TungstenSteel, 4L), ItemList.Large_Fluid_Cell_TungstenSteel.get(1L, new Object[0]), 200, 256); + for (byte i = 0; i < 16; i = (byte) (i + 1)) { + ItemList.SPRAY_CAN_DYES[i].set(addItem(tLastID = 430 + 2 * i, "Spray Can (" + Dyes.get(i).mName + ")", "Full", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 4L)})); + ItemList.SPRAY_CAN_DYES_USED[i].set(addItem(tLastID + 1, "Spray Can (" + Dyes.get(i).mName + ")", "Used", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 3L), SubTag.INVISIBLE})); + IItemBehaviour tBehaviour = new Behaviour_Spray_Color(ItemList.Spray_Empty.get(1L, new Object[0]), ItemList.SPRAY_CAN_DYES_USED[i].get(1L, new Object[0]), ItemList.SPRAY_CAN_DYES[i].get(1L, new Object[0]), 512L, i); + addItemBehavior(32000 + tLastID, tBehaviour); + addItemBehavior(32001 + tLastID, tBehaviour); } - if (aPrefix == OrePrefixes.crushed) - { - Block tBlock = aItemEntity.worldObj.getBlock(tX, tY, tZ); - byte tMetaData = (byte)aItemEntity.worldObj.getBlockMetadata(tX, tY, tZ); - if ((tBlock == Blocks.cauldron) && (tMetaData > 0)) - { - aItemEntity.setEntityItemStack(GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, aItemEntity.getEntityItem().stackSize)); - aItemEntity.worldObj.setBlockMetadataWithNotify(tX, tY, tZ, tMetaData - 1, 3); - return true; - } + ItemList.Tool_Matches.set(addItem(tLastID = 471, "Match", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L)})); + ItemList.Tool_MatchBox_Used.set(addItem(tLastID = 472, "Match Box", "This is not a Car", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L), SubTag.INVISIBLE})); + ItemList.Tool_MatchBox_Full.set(addItem(tLastID = 473, "Match Box (Full)", "This is not a Car", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L)})); + + IItemBehaviour tBehaviour = new Behaviour_Lighter(null, ItemList.Tool_Matches.get(1L, new Object[0]), ItemList.Tool_Matches.get(1L, new Object[0]), 1L); + addItemBehavior(32471, tBehaviour); + tBehaviour = new Behaviour_Lighter(null, ItemList.Tool_MatchBox_Used.get(1L, new Object[0]), ItemList.Tool_MatchBox_Full.get(1L, new Object[0]), 16L); + addItemBehavior(32472, tBehaviour); + addItemBehavior(32473, tBehaviour); + + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Wood, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Phosphor, 1L), ItemList.Tool_Matches.get(1L, new Object[0]), 16, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Wood, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Phosphorus, 1L), ItemList.Tool_Matches.get(1L, new Object[0]), 16, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Wood, 4L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphor, 1L), ItemList.Tool_Matches.get(4L, new Object[0]), 64, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Wood, 4L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphorus, 1L), ItemList.Tool_Matches.get(4L, new Object[0]), 64, 16); + GT_Values.RA.addBoxingRecipe(ItemList.Tool_Matches.get(16L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Paper, 1L), ItemList.Tool_MatchBox_Full.get(1L, new Object[0]), 64, 16); + GT_Values.RA.addUnboxingRecipe(ItemList.Tool_MatchBox_Full.get(1L, new Object[0]), ItemList.Tool_Matches.get(16L, new Object[0]), null, 32, 16); + + ItemList.Tool_Lighter_Invar_Empty.set(addItem(tLastID = 474, "Lighter (Empty)", "", new Object[]{new ItemData(Materials.Invar, OrePrefixes.plate.mMaterialAmount * 2L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L)})); + ItemList.Tool_Lighter_Invar_Used.set(addItem(tLastID = 475, "Lighter", "", new Object[]{new ItemData(Materials.Invar, OrePrefixes.plate.mMaterialAmount * 2L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L), SubTag.INVISIBLE})); + ItemList.Tool_Lighter_Invar_Full.set(addItem(tLastID = 476, "Lighter (Full)", "", new Object[]{new ItemData(Materials.Invar, OrePrefixes.plate.mMaterialAmount * 2L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L)})); + + tBehaviour = new Behaviour_Lighter(ItemList.Tool_Lighter_Invar_Empty.get(1L, new Object[0]), ItemList.Tool_Lighter_Invar_Used.get(1L, new Object[0]), ItemList.Tool_Lighter_Invar_Full.get(1L, new Object[0]), 100L); + addItemBehavior(32475, tBehaviour); + addItemBehavior(32476, tBehaviour); + + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Invar, 2L), new ItemStack(Items.flint, 1), ItemList.Tool_Lighter_Invar_Empty.get(1L, new Object[0]), 256, 16); + + ItemList.Tool_Lighter_Platinum_Empty.set(addItem(tLastID = 477, "Platinum Lighter (Empty)", "A known Prank Master is engraved on it", new Object[]{new ItemData(Materials.Platinum, OrePrefixes.plate.mMaterialAmount * 2L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L)})); + ItemList.Tool_Lighter_Platinum_Used.set(addItem(tLastID = 478, "Platinum Lighter", "A known Prank Master is engraved on it", new Object[]{new ItemData(Materials.Platinum, OrePrefixes.plate.mMaterialAmount * 2L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L), SubTag.INVISIBLE})); + ItemList.Tool_Lighter_Platinum_Full.set(addItem(tLastID = 479, "Platinum Lighter (Full)", "A known Prank Master is engraved on it", new Object[]{new ItemData(Materials.Platinum, OrePrefixes.plate.mMaterialAmount * 2L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L)})); + + tBehaviour = new Behaviour_Lighter(ItemList.Tool_Lighter_Platinum_Empty.get(1L, new Object[0]), ItemList.Tool_Lighter_Platinum_Used.get(1L, new Object[0]), ItemList.Tool_Lighter_Platinum_Full.get(1L, new Object[0]), 1000L); + addItemBehavior(32478, tBehaviour); + addItemBehavior(32479, tBehaviour); + + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Platinum, 2L), new ItemStack(Items.flint, 1), ItemList.Tool_Lighter_Platinum_Empty.get(1L, new Object[0]), 256, 256); + + if (Loader.isModLoaded("GalacticraftMars")) { + ItemList.Ingot_Heavy1.set(addItem(tLastID = 462, "Heavy Duty Alloy Ingot", "Used to make Heavy Duty Plates", new Object[0])); + ItemList.Ingot_Heavy2.set(addItem(tLastID = 463, "Heavy Duty Alloy Ingot T2", "Used to make Heavy Duty Plates T2", new Object[0])); + ItemList.Ingot_Heavy3.set(addItem(tLastID = 464, "Heavy Duty Alloy Ingot T3", "Used to make Heavy Duty Plates T3", new Object[0])); + + GT_ModHandler.addCraftingRecipe(ItemList.Ingot_Heavy1.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"BhB", "CAS", "B B", 'B', OrePrefixes.bolt.get(Materials.StainlessSteel), 'C', OrePrefixes.compressed.get(Materials.Bronze), 'A', OrePrefixes.compressed.get(Materials.Aluminium), 'S', OrePrefixes.compressed.get(Materials.Steel)}); + GT_Values.RA.addImplosionRecipe(ItemList.Ingot_Heavy1.get(1L, new Object[0]), 8, GT_ModHandler.getModItem("GalacticraftCore", "item.heavyPlating", 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.StainlessSteel, 2L)); + GT_ModHandler.addCraftingRecipe(ItemList.Ingot_Heavy2.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" BB", "hPC", " BB", 'B', OrePrefixes.bolt.get(Materials.Tungsten), 'C', OrePrefixes.compressed.get(Materials.MeteoricIron), 'P', GT_ModHandler.getModItem("GalacticraftCore", "item.heavyPlating", 1L)}); + GT_Values.RA.addImplosionRecipe(ItemList.Ingot_Heavy2.get(1L, new Object[0]), 8, GT_ModHandler.getModItem("GalacticraftMars", "item.null", 1L, 3), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tungsten, 2L)); + GT_ModHandler.addCraftingRecipe(ItemList.Ingot_Heavy3.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" BB", "hPC", " BB", 'B', OrePrefixes.bolt.get(Materials.TungstenSteel), 'C', OrePrefixes.compressed.get(Materials.Desh), 'P', GT_ModHandler.getModItem("GalacticraftMars", "item.null", 1L, 3)}); + GT_Values.RA.addImplosionRecipe(ItemList.Ingot_Heavy3.get(1L, new Object[0]), 8, GT_ModHandler.getModItem("GalacticraftMars", "item.itemBasicAsteroids", 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.TungstenSteel, 2L)); } - } + ItemList.Ingot_IridiumAlloy.set(addItem(tLastID = 480, "Iridium Alloy Ingot", "Used to make Iridium Plates", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)})); + + GT_ModHandler.addRollingMachineRecipe(ItemList.Ingot_IridiumAlloy.get(1L, new Object[0]), new Object[]{"IAI", "ADA", "IAI", Character.valueOf('D'), GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "iridiumplate", true) ? OreDictNames.craftingIndustrialDiamond : OrePrefixes.dust.get(Materials.Diamond), Character.valueOf('A'), OrePrefixes.plateAlloy.get("Advanced"), Character.valueOf('I'), OrePrefixes.plate.get(Materials.Iridium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Ingot_IridiumAlloy.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"IAI", "ADA", "IAI", Character.valueOf('D'), GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "iridiumplate", true) ? OreDictNames.craftingIndustrialDiamond : OrePrefixes.dust.get(Materials.Diamond), Character.valueOf('A'), OrePrefixes.plateAlloy.get("Advanced"), Character.valueOf('I'), OrePrefixes.plate.get(Materials.Iridium)}); + GT_Values.RA.addImplosionRecipe(ItemList.Ingot_IridiumAlloy.get(1L, new Object[0]), 8, GT_OreDictUnificator.get(OrePrefixes.plateAlloy, Materials.Iridium, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 4L)); + + ItemList.Paper_Printed_Pages.set(addItem(tLastID = 481, "Printed Pages", "Used to make written Books", new Object[]{new ItemData(Materials.Paper, 10886400L, new MaterialStack[0]), new Behaviour_PrintedPages(), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 2L)})); + ItemList.Paper_Magic_Empty.set(addItem(tLastID = 482, "Magic Paper", "", new Object[]{SubTag.INVISIBLE, new ItemData(Materials.Paper, 3628800L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTIO, 1L)})); + ItemList.Paper_Magic_Page.set(addItem(tLastID = 483, "Enchanted Page", "", new Object[]{SubTag.INVISIBLE, new ItemData(Materials.Paper, 3628800L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTIO, 2L)})); + ItemList.Paper_Magic_Pages.set(addItem(tLastID = 484, "Enchanted Pages", "", new Object[]{SubTag.INVISIBLE, new ItemData(Materials.Paper, 10886400L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTIO, 4L)})); + ItemList.Paper_Punch_Card_Empty.set(addItem(tLastID = 485, "Punch Card", "", new Object[]{SubTag.INVISIBLE, new ItemData(Materials.Paper, 7257600L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 1L)})); + ItemList.Paper_Punch_Card_Encoded.set(addItem(tLastID = 486, "Punched Card", "", new Object[]{SubTag.INVISIBLE, new ItemData(Materials.Paper, 7257600L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 2L)})); + ItemList.Book_Written_01.set(addItem(tLastID = 487, "Book", "", new Object[]{new ItemData(Materials.Paper, 10886400L, new MaterialStack[0]), "bookWritten", OreDictNames.craftingBook, new Behaviour_WrittenBook(), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 2L)})); + ItemList.Book_Written_02.set(addItem(tLastID = 488, "Book", "", new Object[]{new ItemData(Materials.Paper, 10886400L, new MaterialStack[0]), "bookWritten", OreDictNames.craftingBook, new Behaviour_WrittenBook(), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 2L)})); + ItemList.Book_Written_03.set(addItem(tLastID = 489, "Book", "", new Object[]{new ItemData(Materials.Paper, 10886400L, new MaterialStack[0]), "bookWritten", OreDictNames.craftingBook, new Behaviour_WrittenBook(), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 2L)})); + + ItemList.Schematic.set(addItem(tLastID = 490, "Schematic", "EMPTY", new Object[]{new ItemData(Materials.StainlessSteel, 7257600L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 1L)})); + ItemList.Schematic_Crafting.set(addItem(tLastID = 491, "Schematic (Crafting)", "Crafts the Programmed Recipe", new Object[]{new ItemData(Materials.StainlessSteel, 7257600L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 1L)})); + ItemList.Schematic_1by1.set(addItem(tLastID = 495, "Schematic (1x1)", "Crafts 1 Items as 1x1 (use in Packager)", new Object[]{new ItemData(Materials.StainlessSteel, 7257600L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 1L)})); + ItemList.Schematic_2by2.set(addItem(tLastID = 496, "Schematic (2x2)", "Crafts 4 Items as 2x2 (use in Packager)", new Object[]{new ItemData(Materials.StainlessSteel, 7257600L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 1L)})); + ItemList.Schematic_3by3.set(addItem(tLastID = 497, "Schematic (3x3)", "Crafts 9 Items as 3x3 (use in Packager)", new Object[]{new ItemData(Materials.StainlessSteel, 7257600L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 1L)})); + ItemList.Schematic_Dust.set(addItem(tLastID = 498, "Schematic (Dusts)", "Combines Dusts (use in Packager)", new Object[]{new ItemData(Materials.StainlessSteel, 7257600L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 1L)})); + + GT_ModHandler.addCraftingRecipe(ItemList.Schematic_1by1.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"d ", " P ", " ", Character.valueOf('P'), ItemList.Schematic}); + GT_ModHandler.addCraftingRecipe(ItemList.Schematic_2by2.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" d ", " P ", " ", Character.valueOf('P'), ItemList.Schematic}); + GT_ModHandler.addCraftingRecipe(ItemList.Schematic_3by3.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" d", " P ", " ", Character.valueOf('P'), ItemList.Schematic}); + GT_ModHandler.addCraftingRecipe(ItemList.Schematic_Dust.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" ", " P ", " d", Character.valueOf('P'), ItemList.Schematic}); + + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Schematic.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Schematic_Crafting}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Schematic.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Schematic_1by1}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Schematic.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Schematic_2by2}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Schematic.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Schematic_3by3}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Schematic.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Schematic_Dust}); + + ItemList.Battery_Hull_LV.set(addItem(tLastID = 500, "Small Battery Hull", "An empty LV Battery Hull", new Object[]{new ItemData(Materials.BatteryAlloy, OrePrefixes.plate.mMaterialAmount * 2L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L)})); + ItemList.Battery_Hull_MV.set(addItem(tLastID = 501, "Medium Battery Hull", "An empty MV Battery Hull", new Object[]{new ItemData(Materials.BatteryAlloy, OrePrefixes.plate.mMaterialAmount * 6L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L)})); + ItemList.Battery_Hull_HV.set(addItem(tLastID = 502, "Large Battery Hull", "An empty HV Battery Hull", new Object[]{new ItemData(Materials.BatteryAlloy, OrePrefixes.plate.mMaterialAmount * 18L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L)})); + + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Hull_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"C", "P", "P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.BatteryAlloy), Character.valueOf('C'), OreDictNames.craftingWireTin}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Hull_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"C C", "PPP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.BatteryAlloy), Character.valueOf('C'), OreDictNames.craftingWireCopper}); + + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tin, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 2L), ItemList.Battery_Hull_LV.get(1L, new Object[0]), 800, 1); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Copper, 2L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 6L), ItemList.Battery_Hull_MV.get(1L, new Object[0]), 1600, 2); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.AnnealedCopper, 2L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 6L), ItemList.Battery_Hull_MV.get(1L, new Object[0]), 1600, 2); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Gold, 4L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 18L), ItemList.Battery_Hull_HV.get(1L, new Object[0]), 3200, 4); + + ItemList.Battery_RE_ULV_Tantalum.set(addItem(tLastID = 499, "Tantalum Capacitor", "Reusable", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L)})); + setElectricStats(32000 + tLastID, 1000L, GT_Values.V[0], 0L, -3L, false); + + ItemList.Battery_SU_LV_SulfuricAcid.set(addItem(tLastID = 510, "Small Acid Battery", "Single Use", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L)})); + setElectricStats(32000 + tLastID, 12000L, GT_Values.V[1], 1L, -2L, true); + ItemList.Battery_SU_LV_Mercury.set(addItem(tLastID = 511, "Small Mercury Battery", "Single Use", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L)})); + setElectricStats(32000 + tLastID, 32000L, GT_Values.V[1], 1L, -2L, true); + + ItemList.Battery_RE_LV_Cadmium.set(addItem(tLastID = 517, "Small Cadmium Battery", "Reusable", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L), "calclavia:ADVANCED_BATTERY"})); + setElectricStats(32000 + tLastID, 75000L, GT_Values.V[1], 1L, -3L, true); + ItemList.Battery_RE_LV_Lithium.set(addItem(tLastID = 518, "Small Lithium Battery", "Reusable", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L), "calclavia:ADVANCED_BATTERY"})); + setElectricStats(32000 + tLastID, 100000L, GT_Values.V[1], 1L, -3L, true); + ItemList.Battery_RE_LV_Sodium.set(addItem(tLastID = 519, "Small Sodium Battery", "Reusable", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L), "calclavia:ADVANCED_BATTERY"})); + setElectricStats(32000 + tLastID, 50000L, GT_Values.V[1], 1L, -3L, true); + + ItemList.Battery_SU_MV_SulfuricAcid.set(addItem(tLastID = 520, "Medium Acid Battery", "Single Use", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 4L)})); + setElectricStats(32000 + tLastID, 48000L, GT_Values.V[2], 2L, -2L, true); + ItemList.Battery_SU_MV_Mercury.set(addItem(tLastID = 521, "Medium Mercury Battery", "Single Use", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 4L)})); + setElectricStats(32000 + tLastID, 128000L, GT_Values.V[2], 2L, -2L, true); + + ItemList.Battery_RE_MV_Cadmium.set(addItem(tLastID = 527, "Medium Cadmium Battery", "Reusable", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L)})); + setElectricStats(32000 + tLastID, 300000L, GT_Values.V[2], 2L, -3L, true); + ItemList.Battery_RE_MV_Lithium.set(addItem(tLastID = 528, "Medium Lithium Battery", "Reusable", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L)})); + setElectricStats(32000 + tLastID, 400000L, GT_Values.V[2], 2L, -3L, true); + ItemList.Battery_RE_MV_Sodium.set(addItem(tLastID = 529, "Medium Sodium Battery", "Reusable", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L)})); + setElectricStats(32000 + tLastID, 200000L, GT_Values.V[2], 2L, -3L, true); + + ItemList.Battery_SU_HV_SulfuricAcid.set(addItem(tLastID = 530, "Large Acid Battery", "Single Use", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 8L)})); + setElectricStats(32000 + tLastID, 192000L, GT_Values.V[3], 3L, -2L, true); + ItemList.Battery_SU_HV_Mercury.set(addItem(tLastID = 531, "Large Mercury Battery", "Single Use", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 8L)})); + setElectricStats(32000 + tLastID, 512000L, GT_Values.V[3], 3L, -2L, true); + + ItemList.Battery_RE_HV_Cadmium.set(addItem(tLastID = 537, "Large Cadmium Battery", "Reusable", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 4L)})); + setElectricStats(32000 + tLastID, 1200000L, GT_Values.V[3], 3L, -3L, true); + ItemList.Battery_RE_HV_Lithium.set(addItem(tLastID = 538, "Large Lithium Battery", "Reusable", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 4L)})); + setElectricStats(32000 + tLastID, 1600000L, GT_Values.V[3], 3L, -3L, true); + ItemList.Battery_RE_HV_Sodium.set(addItem(tLastID = 539, "Large Sodium Battery", "Reusable", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 4L)})); + setElectricStats(32000 + tLastID, 800000L, GT_Values.V[3], 3L, -3L, true); + + GT_ModHandler.addExtractionRecipe(ItemList.Battery_SU_LV_SulfuricAcid.get(1L, new Object[0]), ItemList.Battery_Hull_LV.get(1L, new Object[0])); + GT_ModHandler.addExtractionRecipe(ItemList.Battery_SU_LV_Mercury.get(1L, new Object[0]), ItemList.Battery_Hull_LV.get(1L, new Object[0])); + GT_ModHandler.addExtractionRecipe(ItemList.Battery_SU_MV_SulfuricAcid.get(1L, new Object[0]), ItemList.Battery_Hull_MV.get(1L, new Object[0])); + GT_ModHandler.addExtractionRecipe(ItemList.Battery_SU_MV_Mercury.get(1L, new Object[0]), ItemList.Battery_Hull_MV.get(1L, new Object[0])); + GT_ModHandler.addExtractionRecipe(ItemList.Battery_SU_HV_SulfuricAcid.get(1L, new Object[0]), ItemList.Battery_Hull_HV.get(1L, new Object[0])); + GT_ModHandler.addExtractionRecipe(ItemList.Battery_SU_HV_Mercury.get(1L, new Object[0]), ItemList.Battery_Hull_HV.get(1L, new Object[0])); + GT_ModHandler.addExtractionRecipe(ItemList.Battery_RE_LV_Cadmium.get(1L, new Object[0]), ItemList.Battery_Hull_LV.get(1L, new Object[0])); + GT_ModHandler.addExtractionRecipe(ItemList.Battery_RE_LV_Lithium.get(1L, new Object[0]), ItemList.Battery_Hull_LV.get(1L, new Object[0])); + GT_ModHandler.addExtractionRecipe(ItemList.Battery_RE_LV_Sodium.get(1L, new Object[0]), ItemList.Battery_Hull_LV.get(1L, new Object[0])); + GT_ModHandler.addExtractionRecipe(ItemList.Battery_RE_MV_Cadmium.get(1L, new Object[0]), ItemList.Battery_Hull_MV.get(1L, new Object[0])); + GT_ModHandler.addExtractionRecipe(ItemList.Battery_RE_MV_Lithium.get(1L, new Object[0]), ItemList.Battery_Hull_MV.get(1L, new Object[0])); + GT_ModHandler.addExtractionRecipe(ItemList.Battery_RE_MV_Sodium.get(1L, new Object[0]), ItemList.Battery_Hull_MV.get(1L, new Object[0])); + GT_ModHandler.addExtractionRecipe(ItemList.Battery_RE_HV_Cadmium.get(1L, new Object[0]), ItemList.Battery_Hull_HV.get(1L, new Object[0])); + GT_ModHandler.addExtractionRecipe(ItemList.Battery_RE_HV_Lithium.get(1L, new Object[0]), ItemList.Battery_Hull_HV.get(1L, new Object[0])); + GT_ModHandler.addExtractionRecipe(ItemList.Battery_RE_HV_Sodium.get(1L, new Object[0]), ItemList.Battery_Hull_HV.get(1L, new Object[0])); + + GT_Values.RA.addCannerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cadmium, 2L), ItemList.Battery_Hull_LV.get(1L, new Object[0]), ItemList.Battery_RE_LV_Cadmium.get(1L, new Object[0]), null, 100, 2); + GT_Values.RA.addCannerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lithium, 2L), ItemList.Battery_Hull_LV.get(1L, new Object[0]), ItemList.Battery_RE_LV_Lithium.get(1L, new Object[0]), null, 100, 2); + GT_Values.RA.addCannerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 2L), ItemList.Battery_Hull_LV.get(1L, new Object[0]), ItemList.Battery_RE_LV_Sodium.get(1L, new Object[0]), null, 100, 2); + GT_Values.RA.addCannerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cadmium, 8L), ItemList.Battery_Hull_MV.get(1L, new Object[0]), ItemList.Battery_RE_MV_Cadmium.get(1L, new Object[0]), null, 400, 2); + GT_Values.RA.addCannerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lithium, 8L), ItemList.Battery_Hull_MV.get(1L, new Object[0]), ItemList.Battery_RE_MV_Lithium.get(1L, new Object[0]), null, 400, 2); + GT_Values.RA.addCannerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 8L), ItemList.Battery_Hull_MV.get(1L, new Object[0]), ItemList.Battery_RE_MV_Sodium.get(1L, new Object[0]), null, 400, 2); + GT_Values.RA.addCannerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cadmium, 32L), ItemList.Battery_Hull_HV.get(1L, new Object[0]), ItemList.Battery_RE_HV_Cadmium.get(1L, new Object[0]), null, 1600, 2); + GT_Values.RA.addCannerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lithium, 32L), ItemList.Battery_Hull_HV.get(1L, new Object[0]), ItemList.Battery_RE_HV_Lithium.get(1L, new Object[0]), null, 1600, 2); + GT_Values.RA.addCannerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 32L), ItemList.Battery_Hull_HV.get(1L, new Object[0]), ItemList.Battery_RE_HV_Sodium.get(1L, new Object[0]), null, 1600, 2); + + ItemList.Energy_LapotronicOrb.set(addItem(tLastID = 597, "Lapotronic Energy Orb", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 16L), OrePrefixes.battery.get(Materials.Ultimate)})); + setElectricStats(32000 + tLastID, 100000000L, GT_Values.V[5], 5L, -3L, true); + + ItemList.ZPM.set(addItem(tLastID = 598, "Zero Point Module", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L)})); + setElectricStats(32000 + tLastID, 2000000000000L, GT_Values.V[7], 7L, -2L, true); + + ItemList.Energy_LapotronicOrb2.set(addItem(tLastID = 599, "Lapotronic Energy Orb Cluster", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 16L), OrePrefixes.battery.get(Materials.Ultimate)})); + setElectricStats(32000 + tLastID, 1000000000L, GT_Values.V[6], 6L, -3L, true); + + ItemList.ZPM2.set(addItem(tLastID = 605, "Ultimate Battery", "Fill this to win minecraft", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L)})); + setElectricStats(32000 + tLastID, Long.MAX_VALUE, GT_Values.V[8], 8L, -3L, true); + + ItemList.Electric_Motor_LV.set(addItem(tLastID = 600, "Electric Motor (LV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L)})); + ItemList.Electric_Motor_MV.set(addItem(tLastID = 601, "Electric Motor (MV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L)})); + ItemList.Electric_Motor_HV.set(addItem(tLastID = 602, "Electric Motor (HV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 4L)})); + ItemList.Electric_Motor_EV.set(addItem(tLastID = 603, "Electric Motor (EV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 8L)})); + ItemList.Electric_Motor_IV.set(addItem(tLastID = 604, "Electric Motor (IV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 16L)})); + ItemList.Electric_Motor_LuV.set(ItemList.Electric_Motor_IV.get(1L, new Object[0])); + ItemList.Electric_Motor_ZPM.set(ItemList.Electric_Motor_LuV.get(1L, new Object[0])); + ItemList.Electric_Motor_UV.set(ItemList.Electric_Motor_ZPM.get(1L, new Object[0])); + + GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.IronMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.AnyIron), Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.AnyCopper), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.SteelMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.Steel), Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.AnyCopper), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.SteelMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.Aluminium), Character.valueOf('W'), OrePrefixes.wireGt02.get(Materials.AnyCopper), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.AnyCopper)}); + GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.SteelMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.StainlessSteel), Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.AnyCopper), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Gold)}); + GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.NeodymiumMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.Titanium), Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.AnnealedCopper), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.NeodymiumMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.TungstenSteel), Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.AnnealedCopper), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tungsten)}); + + ItemList.Electric_Pump_LV.set(addItem(tLastID = 610, "Electric Pump (LV)", "640 L/sec (as Cover)", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L)})); + ItemList.Electric_Pump_MV.set(addItem(tLastID = 611, "Electric Pump (MV)", "2560 L/sec (as Cover)", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L)})); + ItemList.Electric_Pump_HV.set(addItem(tLastID = 612, "Electric Pump (HV)", "10240 L/sec (as Cover)", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 4L)})); + ItemList.Electric_Pump_EV.set(addItem(tLastID = 613, "Electric Pump (EV)", "40960 L/sec (as Cover)", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 8L)})); + ItemList.Electric_Pump_IV.set(addItem(tLastID = 614, "Electric Pump (IV)", "163840 L/sec (as Cover)", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 16L)})); + ItemList.Electric_Pump_LuV.set(ItemList.Electric_Pump_IV.get(1L, new Object[0])); + ItemList.Electric_Pump_ZPM.set(ItemList.Electric_Pump_LuV.get(1L, new Object[0])); + ItemList.Electric_Pump_UV.set(ItemList.Electric_Pump_ZPM.get(1L, new Object[0])); + + GregTech_API.registerCover(ItemList.Electric_Pump_LV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PUMP)}), new GT_Cover_Pump(32)); + GregTech_API.registerCover(ItemList.Electric_Pump_MV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PUMP)}), new GT_Cover_Pump(128)); + GregTech_API.registerCover(ItemList.Electric_Pump_HV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[3][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PUMP)}), new GT_Cover_Pump(512)); + GregTech_API.registerCover(ItemList.Electric_Pump_EV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[4][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PUMP)}), new GT_Cover_Pump(2048)); + GregTech_API.registerCover(ItemList.Electric_Pump_IV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[5][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PUMP)}), new GT_Cover_Pump(8192)); + + ItemList.Rotor_LV.set(addItem(tLastID = 620, "Tin Rotor", "", new Object[]{OrePrefixes.rotor.get(Materials.Tin), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L)})); + ItemList.Rotor_MV.set(addItem(tLastID = 621, "Bronze Rotor", "", new Object[]{OrePrefixes.rotor.get(Materials.Bronze), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L)})); + ItemList.Rotor_HV.set(addItem(tLastID = 622, "Steel Rotor", "", new Object[]{OrePrefixes.rotor.get(Materials.Steel), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 4L)})); + ItemList.Rotor_EV.set(addItem(tLastID = 623, "Stainless Steel Rotor", "", new Object[]{OrePrefixes.rotor.get(Materials.StainlessSteel), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 8L)})); + ItemList.Rotor_IV.set(addItem(tLastID = 624, "Tungstensteel Rotor", "", new Object[]{OrePrefixes.rotor.get(Materials.TungstenSteel), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 16L)})); + ItemList.Rotor_LuV.set(ItemList.Rotor_IV.get(1L, new Object[0])); + ItemList.Rotor_ZPM.set(ItemList.Rotor_LuV.get(1L, new Object[0])); + ItemList.Rotor_UV.set(ItemList.Rotor_ZPM.get(1L, new Object[0])); + + GT_ModHandler.addCraftingRecipe(ItemList.Electric_Pump_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"SXO", "dPw", "OMW", Character.valueOf('M'), ItemList.Electric_Motor_LV, Character.valueOf('O'), OrePrefixes.ring.get(Materials.Rubber), Character.valueOf('X'), OrePrefixes.rotor.get(Materials.Tin), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Tin), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin), Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Bronze)}); + GT_ModHandler.addCraftingRecipe(ItemList.Electric_Pump_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"SXO", "dPw", "OMW", Character.valueOf('M'), ItemList.Electric_Motor_MV, Character.valueOf('O'), OrePrefixes.ring.get(Materials.Rubber), Character.valueOf('X'), OrePrefixes.rotor.get(Materials.Bronze), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Bronze), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper), Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Electric_Pump_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"SXO", "dPw", "OMW", Character.valueOf('M'), ItemList.Electric_Motor_HV, Character.valueOf('O'), OrePrefixes.ring.get(Materials.Rubber), Character.valueOf('X'), OrePrefixes.rotor.get(Materials.Steel), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Steel), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold), Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.StainlessSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Electric_Pump_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"SXO", "dPw", "OMW", Character.valueOf('M'), ItemList.Electric_Motor_EV, Character.valueOf('O'), OrePrefixes.ring.get(Materials.Rubber), Character.valueOf('X'), OrePrefixes.rotor.get(Materials.StainlessSteel), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium), Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Titanium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Electric_Pump_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"SXO", "dPw", "OMW", Character.valueOf('M'), ItemList.Electric_Motor_IV, Character.valueOf('O'), OrePrefixes.ring.get(Materials.Rubber), Character.valueOf('X'), OrePrefixes.rotor.get(Materials.TungstenSteel), Character.valueOf('S'), OrePrefixes.screw.get(Materials.TungstenSteel), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tungsten), Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.TungstenSteel)}); + + ItemList.Conveyor_Module_LV.set(addItem(tLastID = 630, "Conveyor Module (LV)", "1 Stack every 20 secs (as Cover)", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L)})); + ItemList.Conveyor_Module_MV.set(addItem(tLastID = 631, "Conveyor Module (MV)", "1 Stack every 5 secs (as Cover)", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 2L)})); + ItemList.Conveyor_Module_HV.set(addItem(tLastID = 632, "Conveyor Module (HV)", "1 Stack every 1 sec (as Cover)", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 4L)})); + ItemList.Conveyor_Module_EV.set(addItem(tLastID = 633, "Conveyor Module (EV)", "1 Stack every 1/5 sec (as Cover)", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 8L)})); + ItemList.Conveyor_Module_IV.set(addItem(tLastID = 634, "Conveyor Module (IV)", "1 Stack every 1/20 sec (as Cover)", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 16L)})); + ItemList.Conveyor_Module_LuV.set(ItemList.Conveyor_Module_IV.get(1L, new Object[0])); + ItemList.Conveyor_Module_ZPM.set(ItemList.Conveyor_Module_LuV.get(1L, new Object[0])); + ItemList.Conveyor_Module_UV.set(ItemList.Conveyor_Module_ZPM.get(1L, new Object[0])); + + GT_ModHandler.addCraftingRecipe(ItemList.Conveyor_Module_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"RRR", "MCM", "RRR", Character.valueOf('M'), ItemList.Electric_Motor_LV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin), Character.valueOf('R'), OrePrefixes.plate.get(Materials.Rubber)}); + GT_ModHandler.addCraftingRecipe(ItemList.Conveyor_Module_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"RRR", "MCM", "RRR", Character.valueOf('M'), ItemList.Electric_Motor_MV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.AnyCopper), Character.valueOf('R'), OrePrefixes.plate.get(Materials.Rubber)}); + GT_ModHandler.addCraftingRecipe(ItemList.Conveyor_Module_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"RRR", "MCM", "RRR", Character.valueOf('M'), ItemList.Electric_Motor_HV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Gold), Character.valueOf('R'), OrePrefixes.plate.get(Materials.Rubber)}); + GT_ModHandler.addCraftingRecipe(ItemList.Conveyor_Module_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"RRR", "MCM", "RRR", Character.valueOf('M'), ItemList.Electric_Motor_EV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Aluminium), Character.valueOf('R'), OrePrefixes.plate.get(Materials.Rubber)}); + GT_ModHandler.addCraftingRecipe(ItemList.Conveyor_Module_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"RRR", "MCM", "RRR", Character.valueOf('M'), ItemList.Electric_Motor_IV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tungsten), Character.valueOf('R'), OrePrefixes.plate.get(Materials.Rubber)}); + + GregTech_API.registerCover(ItemList.Conveyor_Module_LV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_CONVEYOR)}), new GT_Cover_Conveyor(400)); + GregTech_API.registerCover(ItemList.Conveyor_Module_MV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_CONVEYOR)}), new GT_Cover_Conveyor(100)); + GregTech_API.registerCover(ItemList.Conveyor_Module_HV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[3][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_CONVEYOR)}), new GT_Cover_Conveyor(20)); + GregTech_API.registerCover(ItemList.Conveyor_Module_EV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[4][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_CONVEYOR)}), new GT_Cover_Conveyor(4)); + GregTech_API.registerCover(ItemList.Conveyor_Module_IV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[5][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_CONVEYOR)}), new GT_Cover_Conveyor(1)); + + ItemList.Electric_Piston_LV.set(addItem(tLastID = 640, "Electric Piston (LV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L)})); + ItemList.Electric_Piston_MV.set(addItem(tLastID = 641, "Electric Piston (MV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L)})); + ItemList.Electric_Piston_HV.set(addItem(tLastID = 642, "Electric Piston (HV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 4L)})); + ItemList.Electric_Piston_EV.set(addItem(tLastID = 643, "Electric Piston (EV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 8L)})); + ItemList.Electric_Piston_IV.set(addItem(tLastID = 644, "Electric Piston (IV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 32L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 16L)})); + ItemList.Electric_Piston_LuV.set(ItemList.Electric_Piston_IV.get(1L, new Object[0])); + ItemList.Electric_Piston_ZPM.set(ItemList.Electric_Piston_LuV.get(1L, new Object[0])); + ItemList.Electric_Piston_UV.set(ItemList.Electric_Piston_ZPM.get(1L, new Object[0])); + + GT_ModHandler.addCraftingRecipe(ItemList.Electric_Piston_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"PPP", "CSS", "CMG", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Steel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Steel), Character.valueOf('M'), ItemList.Electric_Motor_LV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.Electric_Piston_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"PPP", "CSS", "CMG", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Aluminium), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Aluminium), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Aluminium), Character.valueOf('M'), ItemList.Electric_Motor_MV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.AnyCopper)}); + GT_ModHandler.addCraftingRecipe(ItemList.Electric_Piston_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"PPP", "CSS", "CMG", Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('S'), OrePrefixes.stick.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('M'), ItemList.Electric_Motor_HV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Gold)}); + GT_ModHandler.addCraftingRecipe(ItemList.Electric_Piston_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"PPP", "CSS", "CMG", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Titanium), Character.valueOf('M'), ItemList.Electric_Motor_EV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Electric_Piston_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"PPP", "CSS", "CMG", Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('S'), OrePrefixes.stick.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.TungstenSteel), Character.valueOf('M'), ItemList.Electric_Motor_IV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tungsten)}); + + ItemList.Robot_Arm_LV.set(addItem(tLastID = 650, "Robot Arm (LV)", "Inserts into specific Slots (as Cover)", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 1L)})); + ItemList.Robot_Arm_MV.set(addItem(tLastID = 651, "Robot Arm (MV)", "Inserts into specific Slots (as Cover)", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 2L)})); + ItemList.Robot_Arm_HV.set(addItem(tLastID = 652, "Robot Arm (HV)", "Inserts into specific Slots (as Cover)", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 4L)})); + ItemList.Robot_Arm_EV.set(addItem(tLastID = 653, "Robot Arm (EV)", "Inserts into specific Slots (as Cover)", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 8L)})); + ItemList.Robot_Arm_IV.set(addItem(tLastID = 654, "Robot Arm (IV)", "Inserts into specific Slots (as Cover)", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 32L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 16L)})); + ItemList.Robot_Arm_LuV.set(ItemList.Robot_Arm_IV.get(1L, new Object[0])); + ItemList.Robot_Arm_ZPM.set(ItemList.Robot_Arm_LuV.get(1L, new Object[0])); + ItemList.Robot_Arm_UV.set(ItemList.Robot_Arm_ZPM.get(1L, new Object[0])); + + GT_ModHandler.addCraftingRecipe(ItemList.Robot_Arm_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CCC", "MSM", "PES", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Steel), Character.valueOf('M'), ItemList.Electric_Motor_LV, Character.valueOf('P'), ItemList.Electric_Piston_LV, Character.valueOf('E'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.Robot_Arm_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CCC", "MSM", "PES", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Aluminium), Character.valueOf('M'), ItemList.Electric_Motor_MV, Character.valueOf('P'), ItemList.Electric_Piston_MV, Character.valueOf('E'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.AnyCopper)}); + GT_ModHandler.addCraftingRecipe(ItemList.Robot_Arm_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CCC", "MSM", "PES", Character.valueOf('S'), OrePrefixes.stick.get(Materials.StainlessSteel), Character.valueOf('M'), ItemList.Electric_Motor_HV, Character.valueOf('P'), ItemList.Electric_Piston_HV, Character.valueOf('E'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Gold)}); + GT_ModHandler.addCraftingRecipe(ItemList.Robot_Arm_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CCC", "MSM", "PES", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Titanium), Character.valueOf('M'), ItemList.Electric_Motor_EV, Character.valueOf('P'), ItemList.Electric_Piston_EV, Character.valueOf('E'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Robot_Arm_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CCC", "MSM", "PES", Character.valueOf('S'), OrePrefixes.stick.get(Materials.TungstenSteel), Character.valueOf('M'), ItemList.Electric_Motor_IV, Character.valueOf('P'), ItemList.Electric_Piston_IV, Character.valueOf('E'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tungsten)}); + + GregTech_API.registerCover(ItemList.Robot_Arm_LV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ARM)}), new GT_Cover_Arm(400)); + GregTech_API.registerCover(ItemList.Robot_Arm_MV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ARM)}), new GT_Cover_Arm(100)); + GregTech_API.registerCover(ItemList.Robot_Arm_HV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[3][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ARM)}), new GT_Cover_Arm(20)); + GregTech_API.registerCover(ItemList.Robot_Arm_EV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[4][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ARM)}), new GT_Cover_Arm(4)); + GregTech_API.registerCover(ItemList.Robot_Arm_IV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[5][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ARM)}), new GT_Cover_Arm(1)); + + ItemList.Field_Generator_LV.set(addItem(tLastID = 670, "Field Generator (LV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 1L)})); + ItemList.Field_Generator_MV.set(addItem(tLastID = 671, "Field Generator (MV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 2L)})); + ItemList.Field_Generator_HV.set(addItem(tLastID = 672, "Field Generator (HV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 4L)})); + ItemList.Field_Generator_EV.set(addItem(tLastID = 673, "Field Generator (EV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 8L)})); + ItemList.Field_Generator_IV.set(addItem(tLastID = 674, "Field Generator (IV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 16L)})); + ItemList.Field_Generator_LuV.set(ItemList.Field_Generator_IV.get(1L, new Object[0])); + ItemList.Field_Generator_ZPM.set(ItemList.Field_Generator_LuV.get(1L, new Object[0])); + ItemList.Field_Generator_UV.set(ItemList.Field_Generator_ZPM.get(1L, new Object[0])); + + GT_ModHandler.addCraftingRecipe(ItemList.Field_Generator_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"WCW", "CGC", "WCW", Character.valueOf('G'), OrePrefixes.gem.get(Materials.EnderPearl), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.Osmium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Field_Generator_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"WCW", "CGC", "WCW", Character.valueOf('G'), OrePrefixes.gem.get(Materials.EnderEye), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.wireGt02.get(Materials.Osmium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Field_Generator_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"WCW", "CGC", "WCW", Character.valueOf('G'), OrePrefixes.gem.get(Materials.NetherStar), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Osmium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Field_Generator_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"WCW", "CGC", "WCW", Character.valueOf('G'), OrePrefixes.gem.get(Materials.NetherStar), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.Osmium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Field_Generator_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"WCW", "CGC", "WCW", Character.valueOf('G'), OrePrefixes.gem.get(Materials.NetherStar), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Osmium)}); + + ItemList.Emitter_LV.set(addItem(tLastID = 680, "Emitter (LV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 1L)})); + ItemList.Emitter_MV.set(addItem(tLastID = 681, "Emitter (MV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 2L)})); + ItemList.Emitter_HV.set(addItem(tLastID = 682, "Emitter (HV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 4L)})); + ItemList.Emitter_EV.set(addItem(tLastID = 683, "Emitter (EV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 8L)})); + ItemList.Emitter_IV.set(addItem(tLastID = 684, "Emitter (IV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 16L)})); + ItemList.Emitter_LuV.set(ItemList.Emitter_IV.get(1L, new Object[0])); + ItemList.Emitter_ZPM.set(ItemList.Emitter_LuV.get(1L, new Object[0])); + ItemList.Emitter_UV.set(ItemList.Emitter_ZPM.get(1L, new Object[0])); + + GT_ModHandler.addCraftingRecipe(ItemList.Emitter_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"SSC", "WQS", "CWS", Character.valueOf('Q'), OrePrefixes.gem.get(Materials.Quartzite), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Brass), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.Emitter_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"SSC", "WQS", "CWS", Character.valueOf('Q'), OrePrefixes.gem.get(Materials.NetherQuartz), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Electrum), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper)}); + GT_ModHandler.addCraftingRecipe(ItemList.Emitter_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"SSC", "WQS", "CWS", Character.valueOf('Q'), OrePrefixes.gem.get(Materials.Emerald), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Chrome), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold)}); + GT_ModHandler.addCraftingRecipe(ItemList.Emitter_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"SSC", "WQS", "CWS", Character.valueOf('Q'), OrePrefixes.gem.get(Materials.EnderPearl), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Platinum), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Emitter_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"SSC", "WQS", "CWS", Character.valueOf('Q'), OrePrefixes.gem.get(Materials.EnderEye), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Osmium), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tungsten)}); + + ItemList.Sensor_LV.set(addItem(tLastID = 690, "Sensor (LV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 1L)})); + ItemList.Sensor_MV.set(addItem(tLastID = 691, "Sensor (MV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L)})); + ItemList.Sensor_HV.set(addItem(tLastID = 692, "Sensor (HV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 4L)})); + ItemList.Sensor_EV.set(addItem(tLastID = 693, "Sensor (EV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 8L)})); + ItemList.Sensor_IV.set(addItem(tLastID = 694, "Sensor (IV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 16L)})); + ItemList.Sensor_LuV.set(ItemList.Sensor_IV.get(1L, new Object[0])); + ItemList.Sensor_ZPM.set(ItemList.Sensor_LuV.get(1L, new Object[0])); + ItemList.Sensor_UV.set(ItemList.Sensor_ZPM.get(1L, new Object[0])); + + GT_ModHandler.addCraftingRecipe(ItemList.Sensor_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"P Q", "PS ", "CPP", Character.valueOf('Q'), OrePrefixes.gem.get(Materials.Quartzite), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Brass), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Sensor_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"P Q", "PS ", "CPP", Character.valueOf('Q'), OrePrefixes.gem.get(Materials.NetherQuartz), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Electrum), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Aluminium), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good)}); + GT_ModHandler.addCraftingRecipe(ItemList.Sensor_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"P Q", "PS ", "CPP", Character.valueOf('Q'), OrePrefixes.gem.get(Materials.Emerald), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Chrome), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.Sensor_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"P Q", "PS ", "CPP", Character.valueOf('Q'), OrePrefixes.gem.get(Materials.EnderPearl), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Platinum), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite)}); + GT_ModHandler.addCraftingRecipe(ItemList.Sensor_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"P Q", "PS ", "CPP", Character.valueOf('Q'), OrePrefixes.gem.get(Materials.EnderEye), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Osmium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master)}); + + ItemList.Circuit_Primitive.set(addItem(tLastID = 700, "NAND Chip", "A very simple Circuit", new Object[]{OrePrefixes.circuit.get(Materials.Primitive)})); + ItemList.Circuit_Basic.set(addItem(tLastID = 701, "Basic Electronic Circuit", "A basic Circuit", new Object[]{OrePrefixes.circuit.get(Materials.Basic)})); + ItemList.Circuit_Good.set(addItem(tLastID = 702, "Good Electronic Circuit", "A good Circuit", new Object[]{OrePrefixes.circuit.get(Materials.Good)})); + ItemList.Circuit_Advanced.set(addItem(tLastID = 703, "Advanced Circuit", "An advanced Circuit", new Object[]{OrePrefixes.circuit.get(Materials.Advanced)})); + ItemList.Circuit_Data.set(addItem(tLastID = 704, "Data Storage Circuit", "A Data Storage Chip", new Object[]{OrePrefixes.circuit.get(Materials.Data)})); + ItemList.Circuit_Elite.set(addItem(tLastID = 705, "Data Control Circuit", "A Processor", new Object[]{OrePrefixes.circuit.get(Materials.Elite)})); + ItemList.Circuit_Master.set(addItem(tLastID = 706, "Energy Flow Circuit", "A High Voltage Processor", new Object[]{OrePrefixes.circuit.get(Materials.Master)})); + ItemList.Tool_DataOrb.set(addItem(tLastID = 707, "Data Orb", "A High Capacity Data Storage", new Object[]{OrePrefixes.circuit.get(Materials.Ultimate), SubTag.NO_UNIFICATION, new Behaviour_DataOrb()})); + ItemList.Circuit_Ultimate.set(ItemList.Tool_DataOrb.get(1L, new Object[0])); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Tool_DataOrb.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Tool_DataOrb.get(1L, new Object[0])}); + ItemList.Tool_DataStick.set(addItem(tLastID = 708, "Data Stick", "A Low Capacity Data Storage", new Object[]{OrePrefixes.circuit.get(Materials.Data), SubTag.NO_UNIFICATION, new Behaviour_DataStick()})); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Tool_DataStick.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Tool_DataStick.get(1L, new Object[0])}); + + + ItemList.Circuit_Board_Basic.set(addItem(tLastID = 710, "Basic Circuit Board", "A basic Board", new Object[0])); + ItemList.Circuit_Board_Advanced.set(addItem(tLastID = 711, "Advanced Circuit Board", "An advanced Board", new Object[0])); + ItemList.Circuit_Board_Elite.set(addItem(tLastID = 712, "Processor Board", "A Processor Board", new Object[0])); + ItemList.Circuit_Parts_Crystal_Chip_Elite.set(addItem(tLastID = 713, "Engraved Crystal Chip", "Needed for Circuits", new Object[0])); + ItemList.Circuit_Parts_Crystal_Chip_Master.set(addItem(tLastID = 714, "Engraved Lapotron Chip", "Needed for Circuits", new Object[0])); + ItemList.Circuit_Parts_Advanced.set(addItem(tLastID = 715, "Advanced Circuit Parts", "Advanced Circuit Parts", new Object[0])); + ItemList.Circuit_Parts_Wiring_Basic.set(addItem(tLastID = 716, "Etched Medium Voltage Wiring", "Part of Circuit Boards", new Object[0])); + ItemList.Circuit_Parts_Wiring_Advanced.set(addItem(tLastID = 717, "Etched High Voltage Wiring", "Part of Circuit Boards", new Object[0])); + ItemList.Circuit_Parts_Wiring_Elite.set(addItem(tLastID = 718, "Etched Extreme Voltage Wiring", "Part of Circuit Boards", new Object[0])); + + + ItemList.Component_Sawblade_Diamond.set(addItem(tLastID = 721, "Diamond Sawblade", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L), OreDictNames.craftingDiamondBlade})); + ItemList.Component_Grinder_Diamond.set(addItem(tLastID = 722, "Diamond Grinding Head", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 6L), OreDictNames.craftingGrinder})); + ItemList.Component_Grinder_Tungsten.set(addItem(tLastID = 723, "Tungsten Grinding Head", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 6L), OreDictNames.craftingGrinder})); + + GT_ModHandler.addCraftingRecipe(ItemList.Component_Sawblade_Diamond.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{" D ", "DGD", " D ", Character.valueOf('D'), OrePrefixes.dustSmall.get(Materials.Diamond), Character.valueOf('G'), OrePrefixes.gearGt.get(Materials.CobaltBrass)}); + GT_ModHandler.addCraftingRecipe(ItemList.Component_Grinder_Diamond.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"DSD", "SIS", "DSD", Character.valueOf('I'), OreDictNames.craftingIndustrialDiamond, Character.valueOf('D'), OrePrefixes.dust.get(Materials.Diamond), Character.valueOf('S'), OrePrefixes.plate.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Component_Grinder_Tungsten.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"TST", "SIS", "TST", Character.valueOf('I'), OreDictNames.craftingIndustrialDiamond, Character.valueOf('T'), OrePrefixes.plate.get(Materials.Tungsten), Character.valueOf('S'), OrePrefixes.plate.get(Materials.Steel)}); + + ItemList.Upgrade_Muffler.set(addItem(tLastID = 727, "Muffler Upgrade", "Makes Machines silent", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 2L)})); + ItemList.Upgrade_Lock.set(addItem(tLastID = 728, "Lock Upgrade", "Protects your Machines", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 4L)})); + + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plastic, 2L), ItemList.Upgrade_Muffler.get(1L, new Object[0]), 1600, 2); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L), ItemList.Upgrade_Muffler.get(1L, new Object[0]), 1600, 2); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plastic, 2L), ItemList.Upgrade_Muffler.get(1L, new Object[0]), 1600, 2); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L), ItemList.Upgrade_Muffler.get(1L, new Object[0]), 1600, 2); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plastic, 2L), ItemList.Upgrade_Muffler.get(1L, new Object[0]), 1600, 2); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L), ItemList.Upgrade_Muffler.get(1L, new Object[0]), 1600, 2); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iridium, 1L), ItemList.Upgrade_Lock.get(1L, new Object[0]), 6400, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iridium, 1L), ItemList.Upgrade_Lock.get(1L, new Object[0]), 6400, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iridium, 1L), ItemList.Upgrade_Lock.get(1L, new Object[0]), 6400, 16); + + ItemList.Component_Filter.set(addItem(tLastID = 729, "Item Filter", "", new Object[]{new ItemData(Materials.Zinc, OrePrefixes.foil.mMaterialAmount * 16L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L), OreDictNames.craftingFilter})); + + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("carbonMesh", 4L), GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Zinc, 16L), ItemList.Component_Filter.get(1L, new Object[0]), 1600, 32); + + ItemList.Cover_Controller.set(addItem(tLastID = 730, "Machine Controller", "Turns Machines ON/OFF", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L)})); + ItemList.Cover_ActivityDetector.set(addItem(tLastID = 731, "Activity Detector", "Gives out Activity as Redstone", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L)})); + ItemList.Cover_FluidDetector.set(addItem(tLastID = 732, "Fluid Detector", "Gives out Fluid Amount as Redstone", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L)})); + ItemList.Cover_ItemDetector.set(addItem(tLastID = 733, "Item Detector", "Gives out Item Amount as Redstone", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.TERRA, 1L)})); + ItemList.Cover_EnergyDetector.set(addItem(tLastID = 734, "Energy Detector", "Gives out Energy Amount as Redstone", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L)})); + ItemList.Cover_PlayerDetector.set(addItem(tLastID = 735, "Player Detector", "Gives out close Players as Redstone", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L)})); + GT_Values.RA.addAssemblerRecipe(ItemList.Sensor_EV.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Titanium, 1L), ItemList.Cover_PlayerDetector.get(1L, new Object[0]), 3200, 128); + + GregTech_API.registerCover(ItemList.Cover_Controller.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_CONTROLLER)}), new GT_Cover_ControlsWork()); + GregTech_API.registerCover(ItemList.Cover_ActivityDetector.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_DoesWork()); + GregTech_API.registerCover(ItemList.Cover_FluidDetector.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FLUIDDETECTOR)}), new GT_Cover_LiquidMeter()); + GregTech_API.registerCover(ItemList.Cover_ItemDetector.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ITEMDETECTOR)}), new GT_Cover_ItemMeter()); + GregTech_API.registerCover(ItemList.Cover_EnergyDetector.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ENERGYDETECTOR)}), new GT_Cover_EUMeter()); + GregTech_API.registerCover(ItemList.Cover_PlayerDetector.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_PlayerDetector()); + + ItemList.Cover_Screen.set(addItem(tLastID = 740, "Computer Monitor", "Displays Data", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L)})); + ItemList.Cover_Crafting.set(addItem(tLastID = 744, "Crafting Table Cover", "Better than a wooden Workbench", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 4L)})); + ItemList.Cover_Drain.set(addItem(tLastID = 745, "Drain", "Absorbs Fluids and collects Rain", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L)})); + + ItemList.Cover_Shutter.set(addItem(tLastID = 749, "Shutter Module", "Blocks Inventory/Tank Side. Usage together with Machine Controller.", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L)})); + + GT_ModHandler.addCraftingRecipe(ItemList.Cover_Screen.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"AGA", "RPB", "ALA", Character.valueOf('A'), OrePrefixes.plate.get(Materials.Aluminium), Character.valueOf('L'), OrePrefixes.dust.get(Materials.Glowstone), Character.valueOf('R'), Dyes.dyeRed, Character.valueOf('G'), Dyes.dyeLime, Character.valueOf('B'), Dyes.dyeBlue, Character.valueOf('P'), OrePrefixes.plate.get(Materials.Glass)}); + + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 2L), new ItemStack(Items.iron_door, 1), ItemList.Cover_Shutter.get(2L, new Object[0]), 800, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 2L), new ItemStack(Items.iron_door, 1), ItemList.Cover_Shutter.get(2L, new Object[0]), 800, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 2L), new ItemStack(Items.iron_door, 1), ItemList.Cover_Shutter.get(2L, new Object[0]), 800, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 2L), new ItemStack(Blocks.iron_bars, 2), ItemList.Cover_Drain.get(1L, new Object[0]), 800, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 2L), new ItemStack(Blocks.iron_bars, 2), ItemList.Cover_Drain.get(1L, new Object[0]), 800, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 2L), new ItemStack(Blocks.iron_bars, 2), ItemList.Cover_Drain.get(1L, new Object[0]), 800, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), new ItemStack(Blocks.crafting_table, 1), ItemList.Cover_Crafting.get(1L, new Object[0]), 800, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), new ItemStack(Blocks.crafting_table, 1), ItemList.Cover_Crafting.get(1L, new Object[0]), 800, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), new ItemStack(Blocks.crafting_table, 1), ItemList.Cover_Crafting.get(1L, new Object[0]), 800, 16); + + GregTech_API.registerCover(ItemList.Cover_Screen.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SCREEN)}), new GT_Cover_Screen()); + GregTech_API.registerCover(ItemList.Cover_Crafting.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_CRAFTING)}), new GT_Cover_Crafting()); + GregTech_API.registerCover(ItemList.Cover_Drain.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[0][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_DRAIN)}), new GT_Cover_Drain()); + GregTech_API.registerCover(ItemList.Cover_Shutter.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SHUTTER)}), new GT_Cover_Shutter()); + + ItemList.Cover_SolarPanel.set(addItem(tLastID = 750, "Solar Panel", "May the Sun be with you", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 1L)})); + ItemList.Cover_SolarPanel_8V.set(addItem(tLastID = 751, "Solar Panel (8V)", "8 Volt Solar Panel", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 2L)})); + ItemList.Cover_SolarPanel_LV.set(addItem(tLastID = 752, "Solar Panel (LV)", "Low Voltage Solar Panel", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 4L)})); + ItemList.Cover_SolarPanel_MV.set(addItem(tLastID = 753, "Solar Panel (MV)", "Medium Voltage Solar Panel", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 8L)})); + ItemList.Cover_SolarPanel_HV.set(addItem(tLastID = 754, "Solar Panel (HV)", "High Voltage Solar Panel", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 16L)})); + ItemList.Cover_SolarPanel_EV.set(addItem(tLastID = 755, "Solar Panel (EV)", "Extreme Solar Panel", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 32L), new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 32L)})); + ItemList.Cover_SolarPanel_IV.set(addItem(tLastID = 756, "Solar Panel (IV)", "Insane Solar Panel", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L), new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 64L)})); + ItemList.Cover_SolarPanel_LuV.set(addItem(tLastID = 757, "Solar Panel (LuV)", "Ludicrous Solar Panel", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L), new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 64L)})); + ItemList.Cover_SolarPanel_ZPM.set(addItem(tLastID = 758, "Solar Panel (ZPM)", "ZPM Voltage Solar Panel", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L), new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 64L)})); + ItemList.Cover_SolarPanel_UV.set(addItem(tLastID = 759, "Solar Panel (UV)", "Ultimate Solar Panel", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L), new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 64L)})); + + GregTech_API.registerCover(ItemList.Cover_SolarPanel.get(1L, new Object[0]), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL), new GT_Cover_SolarPanel(1)); + GregTech_API.registerCover(ItemList.Cover_SolarPanel_8V.get(1L, new Object[0]), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL_8V), new GT_Cover_SolarPanel(8)); + GregTech_API.registerCover(ItemList.Cover_SolarPanel_LV.get(1L, new Object[0]), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL_LV), new GT_Cover_SolarPanel(32)); + GregTech_API.registerCover(ItemList.Cover_SolarPanel_MV.get(1L, new Object[0]), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL_MV), new GT_Cover_SolarPanel(128)); + GregTech_API.registerCover(ItemList.Cover_SolarPanel_HV.get(1L, new Object[0]), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL_HV), new GT_Cover_SolarPanel(512)); + GregTech_API.registerCover(ItemList.Cover_SolarPanel_EV.get(1L, new Object[0]), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL_EV), new GT_Cover_SolarPanel(2048)); + GregTech_API.registerCover(ItemList.Cover_SolarPanel_IV.get(1L, new Object[0]), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL_IV), new GT_Cover_SolarPanel(8192)); + GregTech_API.registerCover(ItemList.Cover_SolarPanel_LuV.get(1L, new Object[0]), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL_LuV), new GT_Cover_SolarPanel(32768)); + GregTech_API.registerCover(ItemList.Cover_SolarPanel_ZPM.get(1L, new Object[0]), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL_ZPM), new GT_Cover_SolarPanel(131072)); + GregTech_API.registerCover(ItemList.Cover_SolarPanel_UV.get(1L, new Object[0]), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL_UV), new GT_Cover_SolarPanel(524288)); + + ItemList.Tool_Sonictron.set(addItem(tLastID = 760, "Sonictron", "Bring your Music with you", new Object[]{Behaviour_Sonictron.INSTANCE, new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 4L)})); + ItemList.Tool_Cheat.set(addItem(tLastID = 761, "Debug Scanner", "Also an Infinite Energy Source", new Object[]{Behaviour_Scanner.INSTANCE, new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 64L)})); + setElectricStats(32000 + tLastID, -2000000000L, 1000000000L, -1L, -3L, false); + ItemList.Tool_Scanner.set(addItem(tLastID = 762, "Portable Scanner", "Tricorder", new Object[]{Behaviour_Scanner.INSTANCE, new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 6L), new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 6L)})); + setElectricStats(32000 + tLastID, 400000L, GT_Values.V[2], 2L, -1L, false); + GT_ModHandler.addCraftingRecipe(ItemList.Tool_Scanner.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"EPR", "CSC", "PBP", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Aluminium), Character.valueOf('E'), ItemList.Emitter_MV, Character.valueOf('R'), ItemList.Sensor_MV, Character.valueOf('S'), ItemList.Cover_Screen, Character.valueOf('B'), ItemList.Battery_RE_MV_Lithium}); + ItemList.NC_SensorKit.set(addItem(tLastID = 763, "GregTech Sensor Kit", "", new Object[]{new Behaviour_SensorKit()})); + ItemList.Duct_Tape.set(addItem(tLastID = 764, "BrainTech Aerospace Advanced Reinforced Duct Tape FAL-84", "If you can't fix it with this, use more of it!", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), OreDictNames.craftingDuctTape})); + ItemList.McGuffium_239.set(addItem(tLastID = 765, "Mc Guffium 239", "42% better than Phlebotnium", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ALIENIS, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.SPIRITUS, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.AURAM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITIUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.RADIO, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MAGNETO, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 8L)})); + + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 4L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StainlessSteel, 2L), ItemList.Schematic.get(1L, new Object[0]), 3200, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.Sensor_LV.get(1L, new Object[0]), ItemList.Emitter_LV.get(1L, new Object[0]), ItemList.NC_SensorKit.get(1L, new Object[0]), 1600, 2); + + ItemList.Cover_RedstoneTransmitterExternal.set(addItem(tLastID = 741, "Redstone Transmitter (Out)", "Transfers Redstonesignals wireless", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L)})); + ItemList.Cover_RedstoneTransmitterInternal.set(addItem(tLastID = 742, "Redstone Transmitter (In)", "Transfers Redstonesignals wireless", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L)})); + ItemList.Cover_RedstoneReceiverExternal.set(addItem(tLastID = 746, "Redstone Receiver (Out)", "Transfers Redstonesignals wireless", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L)})); + ItemList.Cover_RedstoneReceiverInternal.set(addItem(tLastID = 747, "Redstone Receiver (In)", "Transfers Redstonesignals wireless", 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_RedstoneTransmitterExternal.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_RedstoneTransmitterExternal()); + GregTech_API.registerCover(ItemList.Cover_RedstoneTransmitterInternal.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_RedstoneTransmitterInternal()); + GregTech_API.registerCover(ItemList.Cover_RedstoneReceiverExternal.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FLUIDDETECTOR)}), new GT_Cover_RedstoneReceiverExternal()); + GregTech_API.registerCover(ItemList.Cover_RedstoneReceiverInternal.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FLUIDDETECTOR)}), new GT_Cover_RedstoneReceiverInternal()); + + GT_Values.RA.addAssemblerRecipe(ItemList.Emitter_EV.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StainlessSteel, 1L), ItemList.Cover_RedstoneTransmitterExternal.get(1L, new Object[0]), 3200, 128); + GT_Values.RA.addAssemblerRecipe(ItemList.Sensor_EV.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StainlessSteel, 1L), ItemList.Cover_RedstoneReceiverExternal.get(1L, new Object[0]), 3200, 128); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Cover_RedstoneTransmitterInternal.get(1L, new Object[0]), new Object[]{ItemList.Cover_RedstoneTransmitterExternal.get(1L, new Object[0])}); + 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", "Attach to Multiblock Controller. Emits Redstone Signal if 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); } - return false; - } - - protected void addAdditionalToolTips(List aList, ItemStack aStack) - { - super.addAdditionalToolTips(aList, aStack); - int aDamage = aStack.getItemDamage(); - if ((aDamage < 32000) && (aDamage >= 0)) - { - Materials aMaterial = GregTech_API.sGeneratedMaterials[(aDamage % 1000)]; - if ((aMaterial != null) && (aMaterial != Materials.Empty) && (aMaterial != Materials._NULL)) - { - OrePrefixes aPrefix = this.mGeneratedPrefixList[(aDamage / 1000)]; - if ((aPrefix == OrePrefixes.dustImpure) || (aPrefix == OrePrefixes.dustPure)) { - aList.add(this.mToolTipPurify); + + public boolean onEntityItemUpdate(EntityItem aItemEntity) { + int aDamage = aItemEntity.getEntityItem().getItemDamage(); + if ((aDamage < 32000) && (aDamage >= 0) && (!aItemEntity.worldObj.isRemote)) { + Materials aMaterial = GregTech_API.sGeneratedMaterials[(aDamage % 1000)]; + if ((aMaterial != null) && (aMaterial != Materials.Empty) && (aMaterial != Materials._NULL)) { + int tX = MathHelper.floor_double(aItemEntity.posX); + int tY = MathHelper.floor_double(aItemEntity.posY); + int tZ = MathHelper.floor_double(aItemEntity.posZ); + OrePrefixes aPrefix = this.mGeneratedPrefixList[(aDamage / 1000)]; + if ((aPrefix == OrePrefixes.dustImpure) || (aPrefix == OrePrefixes.dustPure)) { + Block tBlock = aItemEntity.worldObj.getBlock(tX, tY, tZ); + byte tMetaData = (byte) aItemEntity.worldObj.getBlockMetadata(tX, tY, tZ); + if ((tBlock == Blocks.cauldron) && (tMetaData > 0)) { + aItemEntity.setEntityItemStack(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, aItemEntity.getEntityItem().stackSize)); + aItemEntity.worldObj.setBlockMetadataWithNotify(tX, tY, tZ, tMetaData - 1, 3); + return true; + } + } + if (aPrefix == OrePrefixes.crushed) { + Block tBlock = aItemEntity.worldObj.getBlock(tX, tY, tZ); + byte tMetaData = (byte) aItemEntity.worldObj.getBlockMetadata(tX, tY, tZ); + if ((tBlock == Blocks.cauldron) && (tMetaData > 0)) { + aItemEntity.setEntityItemStack(GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, aItemEntity.getEntityItem().stackSize)); + aItemEntity.worldObj.setBlockMetadataWithNotify(tX, tY, tZ, tMetaData - 1, 3); + return true; + } + } + } } - } + return false; } - } - - public boolean doesShowInCreative(OrePrefixes aPrefix, Materials aMaterial, boolean aDoShowAllItems) - { - return (aDoShowAllItems) || (((aPrefix != OrePrefixes.gem) || (!aMaterial.name().startsWith("Infused"))) && (aPrefix != OrePrefixes.nugget) && (aPrefix != OrePrefixes.dustTiny) && (aPrefix != OrePrefixes.dustSmall) && (aPrefix != OrePrefixes.dustImpure) && (aPrefix != OrePrefixes.dustPure) && (aPrefix != OrePrefixes.crushed) && (aPrefix != OrePrefixes.crushedPurified) && (aPrefix != OrePrefixes.crushedCentrifuged) && (aPrefix != OrePrefixes.ingotHot) && (aPrefix != OrePrefixes.cellPlasma)); - } - - public ItemStack getContainerItem(ItemStack aStack) - { - int aDamage = aStack.getItemDamage(); - if ((aDamage >= 32430) && (aDamage <= 32461)) { - return ItemList.Spray_Empty.get(1L, new Object[0]); + + protected void addAdditionalToolTips(List aList, ItemStack aStack) { + super.addAdditionalToolTips(aList, aStack); + int aDamage = aStack.getItemDamage(); + if ((aDamage < 32000) && (aDamage >= 0)) { + Materials aMaterial = GregTech_API.sGeneratedMaterials[(aDamage % 1000)]; + if ((aMaterial != null) && (aMaterial != Materials.Empty) && (aMaterial != Materials._NULL)) { + OrePrefixes aPrefix = this.mGeneratedPrefixList[(aDamage / 1000)]; + if ((aPrefix == OrePrefixes.dustImpure) || (aPrefix == OrePrefixes.dustPure)) { + aList.add(this.mToolTipPurify); + } + } + } } - if ((aDamage == 32479) || (aDamage == 32476)) { - return new ItemStack(this, 1, aDamage - 2); + + public boolean doesShowInCreative(OrePrefixes aPrefix, Materials aMaterial, boolean aDoShowAllItems) { + return (aDoShowAllItems) || (((aPrefix != OrePrefixes.gem) || (!aMaterial.name().startsWith("Infused"))) && (aPrefix != OrePrefixes.nugget) && (aPrefix != OrePrefixes.dustTiny) && (aPrefix != OrePrefixes.dustSmall) && (aPrefix != OrePrefixes.dustImpure) && (aPrefix != OrePrefixes.dustPure) && (aPrefix != OrePrefixes.crushed) && (aPrefix != OrePrefixes.crushedPurified) && (aPrefix != OrePrefixes.crushedCentrifuged) && (aPrefix != OrePrefixes.ingotHot) && (aPrefix != OrePrefixes.cellPlasma)); } - if (aDamage == 32401) { - return new ItemStack(this, 1, aDamage - 1); + + public ItemStack getContainerItem(ItemStack aStack) { + int aDamage = aStack.getItemDamage(); + if ((aDamage >= 32430) && (aDamage <= 32461)) { + return ItemList.Spray_Empty.get(1L, new Object[0]); + } + if ((aDamage == 32479) || (aDamage == 32476)) { + return new ItemStack(this, 1, aDamage - 2); + } + if (aDamage == 32401) { + return new ItemStack(this, 1, aDamage - 1); + } + return super.getContainerItem(aStack); + } + + public boolean doesMaterialAllowGeneration(OrePrefixes aPrefix, Materials aMaterial) { + return (super.doesMaterialAllowGeneration(aPrefix, aMaterial)) && ((aPrefix != OrePrefixes.ingotHot) || (aMaterial.mBlastFurnaceTemp > 1750)); } - return super.getContainerItem(aStack); - } - - public boolean doesMaterialAllowGeneration(OrePrefixes aPrefix, Materials aMaterial) - { - return (super.doesMaterialAllowGeneration(aPrefix, aMaterial)) && ((aPrefix != OrePrefixes.ingotHot) || (aMaterial.mBlastFurnaceTemp > 1750)); - } } diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java index 9ae7115f..4b26f3b3 100644 --- a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java +++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java @@ -1,27 +1,13 @@ package gregtech.common.items; import gregtech.api.GregTech_API; -import gregtech.api.enums.Dyes; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.SubTag; -import gregtech.api.enums.TC_Aspects; -import gregtech.api.enums.TC_Aspects.TC_AspectStack; +import gregtech.api.enums.*; import gregtech.api.items.GT_MetaGenerated_Item_X32; import gregtech.api.objects.GT_CopiedBlockTexture; import gregtech.api.objects.ItemData; import gregtech.api.objects.MaterialStack; -import gregtech.api.util.GT_FoodStat; -import gregtech.api.util.GT_Log; -import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_ModHandler.RecipeBits; -import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Utility; -import gregtech.api.util.GT_Utility.ItemNBT; +import gregtech.api.util.*; import gregtech.common.items.behaviors.Behaviour_Arrow; -import java.lang.reflect.Field; import net.minecraft.dispenser.IBlockSource; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnumEnchantmentType; @@ -38,410 +24,434 @@ import net.minecraft.potion.Potion; import net.minecraft.world.World; public class GT_MetaGenerated_Item_02 - extends GT_MetaGenerated_Item_X32 -{ - public static GT_MetaGenerated_Item_02 INSTANCE; - - public GT_MetaGenerated_Item_02() - { - super("metaitem.02", new OrePrefixes[] { OrePrefixes.toolHeadSword, OrePrefixes.toolHeadPickaxe, OrePrefixes.toolHeadShovel, OrePrefixes.toolHeadAxe, OrePrefixes.toolHeadHoe, OrePrefixes.toolHeadHammer, OrePrefixes.toolHeadFile, OrePrefixes.toolHeadSaw, OrePrefixes.toolHeadDrill, OrePrefixes.toolHeadChainsaw, OrePrefixes.toolHeadWrench, OrePrefixes.toolHeadUniversalSpade, OrePrefixes.toolHeadSense, OrePrefixes.toolHeadPlow, OrePrefixes.toolHeadArrow, OrePrefixes.toolHeadBuzzSaw, OrePrefixes.turbineBlade , null, null, OrePrefixes.wireFine, OrePrefixes.gearGtSmall, OrePrefixes.rotor, OrePrefixes.stickLong, OrePrefixes.springSmall, OrePrefixes.spring, OrePrefixes.arrowGtWood, OrePrefixes.arrowGtPlastic, OrePrefixes.gemChipped, OrePrefixes.gemFlawed, OrePrefixes.gemFlawless, OrePrefixes.gemExquisite, OrePrefixes.gearGt}); - INSTANCE = this; - - int tLastID = 0; - - ItemList.ThermosCan_Dark_Coffee.set(addItem(tLastID = 0, "Dark Coffee", "Coffee, dark, without anything else", new Object[] { new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.ThermosCan_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.moveSpeed.id, 400, 1, 70, Potion.digSpeed.id, 400, 1, 70 }), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L) })); - ItemList.ThermosCan_Dark_Cafe_au_lait.set(addItem(tLastID = 1, "Dark Coffee au lait", "Keeping you awake the whole night", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.ThermosCan_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.moveSpeed.id, 400, 2, 90, Potion.digSpeed.id, 400, 2, 90 }), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 3L) })); - ItemList.ThermosCan_Coffee.set(addItem(tLastID = 2, "Coffee", "Just the regular morning Coffee", new Object[] { new GT_FoodStat(3, 0.4F, EnumAction.drink, ItemList.ThermosCan_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.moveSpeed.id, 400, 0, 50, Potion.digSpeed.id, 400, 0, 50 }), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L) })); - ItemList.ThermosCan_Cafe_au_lait.set(addItem(tLastID = 3, "Cafe au lait", "Sweet Coffee", new Object[] { new GT_FoodStat(3, 0.4F, EnumAction.drink, ItemList.ThermosCan_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.moveSpeed.id, 400, 1, 70, Potion.digSpeed.id, 400, 1, 70 }), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L) })); - ItemList.ThermosCan_Lait_au_cafe.set(addItem(tLastID = 4, "Lait au cafe", "You want Coffee to your Sugar?", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(3, 0.4F, EnumAction.drink, ItemList.ThermosCan_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.moveSpeed.id, 400, 2, 90, Potion.digSpeed.id, 400, 2, 90 }), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 3L) })); - ItemList.ThermosCan_Dark_Chocolate_Milk.set(addItem(tLastID = 5, "Dark Chocolate Milk", "A bit bitter, better add a bit Sugar", new Object[] { new GT_FoodStat(3, 0.4F, EnumAction.drink, ItemList.ThermosCan_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.regeneration.id, 50, 1, 60 }), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L) })); - ItemList.ThermosCan_Chocolate_Milk.set(addItem(tLastID = 6, "Chocolate Milk", "Sweet Goodness", new Object[] { new GT_FoodStat(3, 0.4F, EnumAction.drink, ItemList.ThermosCan_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.regeneration.id, 50, 1, 90 }), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 2L) })); - ItemList.ThermosCan_Tea.set(addItem(tLastID = 7, "Tea", "Keep calm and carry on", new Object[] { new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.ThermosCan_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.moveSlowdown.id, 300, 0, 50 }), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L) })); - ItemList.ThermosCan_Sweet_Tea.set(addItem(tLastID = 8, "Sweet Tea", "How about a Tea Party? In Boston?", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.ThermosCan_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L) })); - ItemList.ThermosCan_Ice_Tea.set(addItem(tLastID = 9, "Ice Tea", "Better than this purple Junk Drink from failed Potions", new Object[] { new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.ThermosCan_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.moveSlowdown.id, 300, 0, 50 }), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L) })); - - ItemList.Bottle_Purple_Drink.set(addItem(tLastID = 100, "Purple Drink", "How about Lemonade. Or some Ice Tea? I got Purple Drink!", new Object[] { new GT_FoodStat(8, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.moveSlowdown.id, 400, 1, 90 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VINCULUM, 1L) })); - ItemList.Bottle_Grape_Juice.set(addItem(tLastID = 101, "Grape Juice", "This has a cleaning effect on your internals.", new Object[] { new GT_FoodStat(4, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.hunger.id, 400, 1, 60 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L) })); - ItemList.Bottle_Wine.set(addItem(tLastID = 102, "Wine", "Ordinary", new Object[] { new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.confusion.id, 400, 1, 60, Potion.heal.id, 0, 0, 60, Potion.poison.id, 200, 1, 5 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L) })); - ItemList.Bottle_Vinegar.set(addItem(tLastID = 103, "Vinegar", "Exquisite", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.confusion.id, 400, 1, 90, Potion.heal.id, 0, 1, 90, Potion.poison.id, 200, 2, 10, Potion.harm.id, 0, 2, 5 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L) })); - ItemList.Bottle_Potato_Juice.set(addItem(tLastID = 104, "Potato Juice", "Ever seen Potato Juice in stores? No? That has a reason.", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(3, 0.3F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L) })); - ItemList.Bottle_Vodka.set(addItem(tLastID = 105, "Vodka", "Not to confuse with Water", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.confusion.id, 500, 0, 60, Potion.damageBoost.id, 500, 1, 60, Potion.poison.id, 200, 1, 5 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L) })); - ItemList.Bottle_Leninade.set(addItem(tLastID = 106, "Leninade", "Let the Communism flow through you!", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.confusion.id, 500, 1, 90, Potion.damageBoost.id, 500, 2, 90, Potion.poison.id, 200, 2, 10, Potion.harm.id, 0, 2, 5 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 2L) })); - ItemList.Bottle_Mineral_Water.set(addItem(tLastID = 107, "Mineral Water", "The best Stuff you can drink to stay healthy", new Object[] { new GT_FoodStat(1, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.regeneration.id, 100, 1, 10 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L) })); - ItemList.Bottle_Salty_Water.set(addItem(tLastID = 108, "Salty Water", "Like Sea Water but less dirty", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(1, 0.0F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.hunger.id, 400, 2, 95 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.TEMPESTAS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L) })); - ItemList.Bottle_Reed_Water.set(addItem(tLastID = 109, "Reed Water", "I guess this tastes better when fermented", new Object[] { new GT_FoodStat(1, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L) })); - ItemList.Bottle_Rum.set(addItem(tLastID = 110, "Rum", "A buddle o' rum", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(4, 0.4F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.confusion.id, 300, 0, 60, Potion.damageBoost.id, 300, 1, 60, Potion.poison.id, 200, 1, 5 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L) })); - ItemList.Bottle_Pirate_Brew.set(addItem(tLastID = 111, "Pirate Brew", "Set the Sails, we are going to Torrentuga!", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(4, 0.4F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.confusion.id, 300, 1, 90, Potion.damageBoost.id, 300, 2, 90, Potion.poison.id, 200, 2, 10, Potion.harm.id, 0, 2, 5 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 2L) })); - ItemList.Bottle_Hops_Juice.set(addItem(tLastID = 112, "Hops Juice", "Every Beer has a start", new Object[] { new GT_FoodStat(1, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L) })); - ItemList.Bottle_Dark_Beer.set(addItem(tLastID = 113, "Dark Beer", "Dark Beer, for the real Men", new Object[] { new GT_FoodStat(4, 0.4F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.confusion.id, 300, 1, 60, Potion.damageBoost.id, 300, 1, 60, Potion.poison.id, 200, 1, 5 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L) })); - ItemList.Bottle_Dragon_Blood.set(addItem(tLastID = 114, "Dragon Blood", "FUS RO DAH!", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(4, 0.4F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.confusion.id, 300, 2, 90, Potion.damageBoost.id, 300, 2, 90, Potion.poison.id, 200, 2, 10, Potion.harm.id, 0, 2, 5 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L) })); - ItemList.Bottle_Wheaty_Juice.set(addItem(tLastID = 115, "Wheaty Juice", "Is this liquefied Bread or what?", new Object[] { new GT_FoodStat(2, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L) })); - ItemList.Bottle_Scotch.set(addItem(tLastID = 116, "Scotch", "Technically this is just a Whisky", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(2, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.confusion.id, 400, 0, 60, Potion.resistance.id, 400, 1, 60, Potion.poison.id, 200, 1, 5 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 1L) })); - ItemList.Bottle_Glen_McKenner.set(addItem(tLastID = 117, "Glen McKenner", "Don't hand to easily surprised people, they will shatter it.", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(2, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.confusion.id, 400, 1, 90, Potion.resistance.id, 400, 2, 90, Potion.poison.id, 200, 2, 10, Potion.harm.id, 0, 2, 5 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 2L) })); - ItemList.Bottle_Wheaty_Hops_Juice.set(addItem(tLastID = 118, "Wheaty Hops Juice", "Also known as 'Duff-Lite'", new Object[] { new GT_FoodStat(1, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 2L) })); - ItemList.Bottle_Beer.set(addItem(tLastID = 119, "Beer", "Good old Beer", new Object[] { new GT_FoodStat(6, 0.4F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.confusion.id, 400, 0, 60, Potion.digSpeed.id, 400, 2, 60, Potion.poison.id, 100, 0, 5 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 1L) })); - ItemList.Bottle_Chilly_Sauce.set(addItem(tLastID = 120, "Chilly Sauce", "Spicy", new Object[] { new GT_FoodStat(2, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.confusion.id, 1000, 0, 10, Potion.fireResistance.id, 1000, 0, 60 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - ItemList.Bottle_Hot_Sauce.set(addItem(tLastID = 121, "Hot Sauce", "Very Spicy, I guess?", new Object[] { new GT_FoodStat(2, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.confusion.id, 2000, 0, 30, Potion.fireResistance.id, 2000, 0, 70 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 2L) })); - ItemList.Bottle_Diabolo_Sauce.set(addItem(tLastID = 122, "Diabolo Sauce", "As if the Devil made this Sauce", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(2, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.confusion.id, 3000, 1, 50, Potion.fireResistance.id, 3000, 0, 80 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 3L) })); - ItemList.Bottle_Diablo_Sauce.set(addItem(tLastID = 123, "Diablo Sauce", "Diablo always comes back!", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(2, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.confusion.id, 4000, 1, 70, Potion.fireResistance.id, 4000, 0, 90 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 4L) })); - ItemList.Bottle_Snitches_Glitch_Sauce.set(addItem(tLastID = 124, "Old Man Snitches glitched Diablo Sauce", "[Missing No]", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(2, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.confusion.id, 9999, 2, 999, Potion.fireResistance.id, 9999, 9, 999 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 5L) })); - ItemList.Bottle_Apple_Juice.set(addItem(tLastID = 125, "Apple Juice", "Made of the Apples from our best Oak Farms", new Object[] { new GT_FoodStat(4, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.hunger.id, 400, 0, 20 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L) })); - ItemList.Bottle_Cider.set(addItem(tLastID = 126, "Cider", "If you have nothing better to do with your Apples", new Object[] { new GT_FoodStat(4, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.confusion.id, 400, 0, 60, Potion.resistance.id, 400, 1, 60, Potion.poison.id, 200, 1, 5 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 1L) })); - ItemList.Bottle_Golden_Apple_Juice.set(addItem(tLastID = 127, "Golden Apple Juice", "A golden Apple in liquid form", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(4, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.hunger.id, 400, 0, 20, Potion.field_76444_x.id, 2400, 0, 100, Potion.regeneration.id, 100, 1, 100 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L) })); - ItemList.Bottle_Golden_Cider.set(addItem(tLastID = 128, "Golden Cider", "More Resistance, less Regeneration", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(4, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.confusion.id, 400, 0, 60, Potion.field_76444_x.id, 2400, 1, 95, Potion.poison.id, 200, 1, 5 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 1L) })); - ItemList.Bottle_Iduns_Apple_Juice.set(addItem(tLastID = 129, "Idun's Apple Juice", "So you got the Idea of using Notch Apples for a drink?", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(4, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.regeneration.id, 600, 4, 100, Potion.field_76444_x.id, 2400, 0, 100, Potion.resistance.id, 6000, 0, 100, Potion.fireResistance.id, 6000, 0, 100 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 9L) })); - ItemList.Bottle_Notches_Brew.set(addItem(tLastID = 130, "Notches Brew", "This is just overpowered", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(4, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.regeneration.id, 700, 4, 95, Potion.field_76444_x.id, 3000, 1, 95, Potion.resistance.id, 7000, 1, 95, Potion.fireResistance.id, 7000, 0, 95, Potion.harm.id, 0, 2, 20 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 9L) })); - ItemList.Bottle_Lemon_Juice.set(addItem(tLastID = 131, "Lemon Juice", "Maybe adding Sugar will make it less sour", new Object[] { new GT_FoodStat(2, 0.4F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.digSpeed.id, 1200, 0, 60 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 1L) })); - ItemList.Bottle_Limoncello.set(addItem(tLastID = 132, "Limoncello", "An alcoholic Drink which tastes like Lemons", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(2, 0.4F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.digSpeed.id, 1200, 0, 90, Potion.poison.id, 200, 1, 5 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 1L) })); - ItemList.Bottle_Lemonade.set(addItem(tLastID = 133, "Lemonade", "Cold and refreshing Lemonade", new Object[] { new GT_FoodStat(4, 0.3F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.digSpeed.id, 900, 1, 90 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 1L) })); - ItemList.Bottle_Alcopops.set(addItem(tLastID = 134, "Alcopops", "Don't let your Children drink this junk!", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.digSpeed.id, 900, 1, 90, Potion.poison.id, 300, 2, 20 }), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VINCULUM, 1L) })); - ItemList.Bottle_Cave_Johnsons_Grenade_Juice.set(addItem(tLastID = 135, "Cave Johnson's Grenade Juice", "When life gives you Lemons, make Life take them Lemons back!", new Object[] { SubTag.INVISIBLE, new GT_FoodStat(0, 0.0F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[0]).setExplosive(), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MORTUUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 1L) })); - ItemList.Bottle_Milk.set(addItem(tLastID = 136, "Milk", "Got Milk?", new Object[] { OrePrefixes.bottle.get(Materials.Milk), new GT_FoodStat(0, 0.0F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[0]).setMilk(), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L) })); - ItemList.Bottle_Holy_Water.set(addItem(tLastID = 137, "Holy Water", "May the holy Planks be with you", new Object[] { OrePrefixes.bottle.get(Materials.HolyWater), new GT_FoodStat(0, 0.0F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[] { Potion.poison.id, 100, 1, 100 }).setMilk(), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AURAM, 1L) })); - - ItemList.Food_Potato_On_Stick.set(addItem(tLastID = 200, "Potato on a Stick", "Totally looks like a Crab Claw", new Object[] { new GT_FoodStat(1, 0.3F, EnumAction.eat, new ItemStack(Items.stick, 1), false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) })); - ItemList.Food_Potato_On_Stick_Roasted.set(addItem(tLastID = 201, "Roasted Potato on a Stick", "Still looks like a Crab Claw", new Object[] { new GT_FoodStat(6, 0.6F, EnumAction.eat, new ItemStack(Items.stick, 1), false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - ItemList.Food_Raw_Fries.set(addItem(tLastID = 202, "Potato Strips", "It's Potato in Stripe Form", new Object[] { new GT_FoodStat(1, 0.3F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L) }));setFluidContainerStats(32000 + tLastID, 0L, 16L); - ItemList.Food_Fries.set(addItem(tLastID = 203, "Fries", "Not to confuse with Fry the Delivery Boy", new Object[] { new GT_FoodStat(7, 0.5F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) }));setFluidContainerStats(32000 + tLastID, 0L, 16L); - ItemList.Food_Packaged_Fries.set(addItem(tLastID = 204, "Fries", "Ketchup not included", new Object[] { new GT_FoodStat(7, 0.5F, EnumAction.eat, GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 1L), false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - ItemList.Food_Raw_PotatoChips.set(addItem(tLastID = 205, "Potato Chips (Raw)", "Just like a Potato", new Object[] { new GT_FoodStat(1, 0.3F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L) }));setFluidContainerStats(32000 + tLastID, 0L, 16L); - ItemList.Food_PotatoChips.set(addItem(tLastID = 206, "Potato Chips", "Crunchy", new Object[] { new GT_FoodStat(7, 0.5F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) }));setFluidContainerStats(32000 + tLastID, 0L, 16L); - ItemList.Food_ChiliChips.set(addItem(tLastID = 207, "Chili Chips", "Spicy", new Object[] { new GT_FoodStat(7, 0.6F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) }));setFluidContainerStats(32000 + tLastID, 0L, 16L); - ItemList.Food_Packaged_PotatoChips.set(addItem(tLastID = 208, "Bag of Potato Chips", "Full of delicious Air", new Object[] { new GT_FoodStat(7, 0.5F, EnumAction.eat, GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Aluminium, 1L), false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - ItemList.Food_Packaged_ChiliChips.set(addItem(tLastID = 209, "Bag of Chili Chips", "Stop making noises Baj!", new Object[] { new GT_FoodStat(7, 0.6F, EnumAction.eat, GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Aluminium, 1L), false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - ItemList.Food_Chum.set(addItem(tLastID = 210, "Chum", "Chum is Fum!", new Object[] { new GT_FoodStat(5, 0.2F, EnumAction.eat, null, true, false, true, new int[] { Potion.hunger.id, 1000, 4, 100, Potion.confusion.id, 300, 1, 80 }), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - ItemList.Food_Chum_On_Stick.set(addItem(tLastID = 211, "Chum on a Stick", "Don't forget to try our Chum-balaya", new Object[] { new GT_FoodStat(5, 0.2F, EnumAction.eat, new ItemStack(Items.stick, 1), true, false, true, new int[] { Potion.hunger.id, 1000, 4, 100, Potion.confusion.id, 300, 1, 80 }), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - ItemList.Food_Dough_Sugar.set(addItem(tLastID = 212, "Sugary Dough", "Don't eat the Dough before it is baken", new Object[] { new GT_FoodStat(1, 0.1F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L) })); - ItemList.Food_Dough_Chocolate.set(addItem(tLastID = 213, "Chocolate Dough", "I said don't eat the Dough!", new Object[] { new GT_FoodStat(1, 0.1F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L) })); - ItemList.Food_Raw_Cookie.set(addItem(tLastID = 214, "Cookie shaped Dough", "For baking Cookies", new Object[] { new GT_FoodStat(1, 0.1F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L) })); - - ItemList.Food_Sliced_Buns.set(addItem(tLastID =220, "Buns", "Pre Sliced", new Object[] { new GT_FoodStat(3, 0.5F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - ItemList.Food_Burger_Veggie.set(addItem(tLastID = 221, "Veggieburger", "No matter how you call this, this is NOT a Burger!", new Object[] { new GT_FoodStat(3, 0.5F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - ItemList.Food_Burger_Cheese.set(addItem(tLastID = 222, "Cheeseburger", "Cheesy!", new Object[] { new GT_FoodStat(3, 0.5F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new ItemData(Materials.Cheese, 907200L, new MaterialStack[0]) })); - ItemList.Food_Burger_Meat.set(addItem(tLastID = 223, "Hamburger", "The Mc Burger Queen Burger", new Object[] { new GT_FoodStat(3, 0.5F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - ItemList.Food_Burger_Chum.set(addItem(tLastID = 224, "Chumburger", "Fum is Chum!", new Object[] { new GT_FoodStat(5, 0.2F, EnumAction.eat, null, true, false, true, new int[] { Potion.hunger.id, 1000, 4, 100, Potion.confusion.id, 300, 1, 80 }), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - - ItemList.Food_Sliced_Breads.set(addItem(tLastID = 230, "Breads", "Pre Sliced", new Object[] { new GT_FoodStat(5, 0.6F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - ItemList.Food_Sandwich_Veggie.set(addItem(tLastID = 231, "Veggie Sandwich", "Meatless", new Object[] { new GT_FoodStat(7, 0.6F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) }));setFluidContainerStats(32000 + tLastID, 0L, 32L); - ItemList.Food_Sandwich_Cheese.set(addItem(tLastID = 232, "Cheese Sandwich", "Say Cheese!", new Object[] { new GT_FoodStat(7, 0.6F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) }));setFluidContainerStats(32000 + tLastID, 0L, 32L); - ItemList.Food_Sandwich_Bacon.set(addItem(tLastID = 233, "Bacon Sandwich", "The best Sandwich ever!", new Object[] { new GT_FoodStat(10, 0.8F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) }));setFluidContainerStats(32000 + tLastID, 0L, 32L); - ItemList.Food_Sandwich_Steak.set(addItem(tLastID = 234, "Steak Sandwich", "Not a 'Steam Sandwich'", new Object[] { new GT_FoodStat(10, 0.8F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) }));setFluidContainerStats(32000 + tLastID, 0L, 32L); - - ItemList.Food_Sliced_Baguettes.set(addItem(tLastID = 240, "Baguettes", "Pre Sliced", new Object[] { new GT_FoodStat(8, 0.5F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - ItemList.Food_Large_Sandwich_Veggie.set(addItem(tLastID = 241, "Large Veggie Sandwich", "Just not worth it", new Object[] { new GT_FoodStat(15, 0.8F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) }));setFluidContainerStats(32000 + tLastID, 0L, 16L); - ItemList.Food_Large_Sandwich_Cheese.set(addItem(tLastID = 242, "Large Cheese Sandwich", "I need another cheesy tooltip for this", new Object[] { new GT_FoodStat(15, 0.8F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) }));setFluidContainerStats(32000 + tLastID, 0L, 16L); - ItemList.Food_Large_Sandwich_Bacon.set(addItem(tLastID = 243, "Large Bacon Sandwich", "For Men! (and manly Women)", new Object[] { new GT_FoodStat(20, 1.0F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) }));setFluidContainerStats(32000 + tLastID, 0L, 16L); - ItemList.Food_Large_Sandwich_Steak.set(addItem(tLastID = 244, "Large Steak Sandwich", "Yes, I once accidentially called it 'Steam Sandwich'", new Object[] { new GT_FoodStat(20, 1.0F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) }));setFluidContainerStats(32000 + tLastID, 0L, 16L); - - ItemList.Food_Raw_Pizza_Veggie.set(addItem(tLastID = 250, "Raw Veggie Pizza", "Into the Oven with it!", new Object[] { new GT_FoodStat(1, 0.2F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - ItemList.Food_Raw_Pizza_Cheese.set(addItem(tLastID = 251, "Raw Cheese Pizza", "Into the Oven with it!", new Object[] { new GT_FoodStat(2, 0.2F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - ItemList.Food_Raw_Pizza_Meat.set(addItem(tLastID = 252, "Raw Mince Meat Pizza", "Into the Oven with it!", new Object[] { new GT_FoodStat(2, 0.2F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - - ItemList.Food_Baked_Pizza_Veggie.set(addItem(tLastID = 260, "Veggie Pizza", "The next they want is Gluten Free Pizzas...", new Object[] { new GT_FoodStat(3, 0.3F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - ItemList.Food_Baked_Pizza_Cheese.set(addItem(tLastID = 261, "Cheese Pizza", "Pizza Magarita", new Object[] { new GT_FoodStat(4, 0.4F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - ItemList.Food_Baked_Pizza_Meat.set(addItem(tLastID = 262, "Mince Meat Pizza", "Emo Pizza, it cuts itself!", new Object[] { new GT_FoodStat(5, 0.5F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - + extends GT_MetaGenerated_Item_X32 { + public static GT_MetaGenerated_Item_02 INSTANCE; - ItemList.Dye_Indigo.set(addItem(tLastID = 410, "Indigo Dye", "Blue Dye", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 1L), Dyes.dyeBlue })); - for (byte i = 0; i < 16; i = (byte)(i + 1)) { - ItemList.DYE_ONLY_ITEMS[i].set(addItem(tLastID = 414 + i, Dyes.get(i).mName + " Dye", "", new Object[] { Dyes.get(i).name(), new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 1L) })); - } - ItemList.Plank_Oak.set(addItem(tLastID = 470, "Oak Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Spruce.set(addItem(tLastID = 471, "Spruce Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Birch.set(addItem(tLastID = 472, "Birch Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Jungle.set(addItem(tLastID = 473, "Jungle Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Acacia.set(addItem(tLastID = 474, "Acacia Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_DarkOak.set(addItem(tLastID = 475, "Dark Oak Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Larch.set(addItem(tLastID = 476, "Larch Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Teak.set(addItem(tLastID = 477, "Teak Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Acacia_Green.set(addItem(tLastID = 478, "Green Acacia Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Lime.set(addItem(tLastID = 479, "Lime Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Chestnut.set(addItem(tLastID = 480, "Chestnut Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Wenge.set(addItem(tLastID = 481, "Wenge Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Baobab.set(addItem(tLastID = 482, "Baobab Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Sequoia.set(addItem(tLastID = 483, "Sequoia Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Kapok.set(addItem(tLastID = 484, "Kapok Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Ebony.set(addItem(tLastID = 485, "Ebony Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Mahagony.set(addItem(tLastID = 486, "Mahagony Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Balsa.set(addItem(tLastID = 487, "Balsa Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Willow.set(addItem(tLastID = 488, "Willow Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Walnut.set(addItem(tLastID = 489, "Walnut Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Greenheart.set(addItem(tLastID = 490, "Greenheart Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Cherry.set(addItem(tLastID = 491, "Cherry Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Mahoe.set(addItem(tLastID = 492, "Mahoe Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Poplar.set(addItem(tLastID = 493, "Poplar Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Palm.set(addItem(tLastID = 494, "Palm Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Papaya.set(addItem(tLastID = 495, "Papaya Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Pine.set(addItem(tLastID = 496, "Pine Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Plum.set(addItem(tLastID = 497, "Plum Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Maple.set(addItem(tLastID = 498, "Maple Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - ItemList.Plank_Citrus.set(addItem(tLastID = 499, "Citrus Plank", "Usable as Cover", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 200); - - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Oak.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), new ItemStack(Blocks.wooden_slab, 1, 0) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Spruce.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), new ItemStack(Blocks.wooden_slab, 1, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Birch.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), new ItemStack(Blocks.wooden_slab, 1, 2) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Jungle.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), new ItemStack(Blocks.wooden_slab, 1, 3) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Acacia.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), new ItemStack(Blocks.wooden_slab, 1, 4) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_DarkOak.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), new ItemStack(Blocks.wooden_slab, 1, 5) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Larch.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 0) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Teak.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Acacia_Green.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 2) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Lime.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 3) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Chestnut.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 4) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Wenge.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 5) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Baobab.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 6) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Sequoia.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 7) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Kapok.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 0) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Ebony.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Mahagony.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 2) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Balsa.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 3) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Willow.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 4) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Walnut.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 5) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Greenheart.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 6) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Cherry.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 7) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Mahoe.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 0) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Poplar.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Palm.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 2) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Papaya.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 3) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Pine.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 4) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Plum.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 5) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Maple.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 6) }); - GT_ModHandler.addCraftingRecipe(ItemList.Plank_Citrus.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 7) }); - - GregTech_API.registerCover(ItemList.Plank_Oak.get(1L, new Object[0]), new GT_CopiedBlockTexture(Blocks.planks, 0, 0), null); - GregTech_API.registerCover(ItemList.Plank_Spruce.get(1L, new Object[0]), new GT_CopiedBlockTexture(Blocks.planks, 0, 1), null); - GregTech_API.registerCover(ItemList.Plank_Birch.get(1L, new Object[0]), new GT_CopiedBlockTexture(Blocks.planks, 0, 2), null); - GregTech_API.registerCover(ItemList.Plank_Jungle.get(1L, new Object[0]), new GT_CopiedBlockTexture(Blocks.planks, 0, 3), null); - GregTech_API.registerCover(ItemList.Plank_Acacia.get(1L, new Object[0]), new GT_CopiedBlockTexture(Blocks.planks, 0, 4), null); - GregTech_API.registerCover(ItemList.Plank_DarkOak.get(1L, new Object[0]), new GT_CopiedBlockTexture(Blocks.planks, 0, 5), null); - GregTech_API.registerCover(ItemList.Plank_Larch.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 0, new ItemStack(Blocks.planks, 1, 0))), 0, 0), null); - GregTech_API.registerCover(ItemList.Plank_Teak.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 1, new ItemStack(Blocks.planks, 1, 0))), 0, 1), null); - GregTech_API.registerCover(ItemList.Plank_Acacia_Green.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 2, new ItemStack(Blocks.planks, 1, 0))), 0, 2), null); - GregTech_API.registerCover(ItemList.Plank_Lime.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 3, new ItemStack(Blocks.planks, 1, 0))), 0, 3), null); - GregTech_API.registerCover(ItemList.Plank_Chestnut.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 4, new ItemStack(Blocks.planks, 1, 0))), 0, 4), null); - GregTech_API.registerCover(ItemList.Plank_Wenge.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 5, new ItemStack(Blocks.planks, 1, 0))), 0, 5), null); - GregTech_API.registerCover(ItemList.Plank_Baobab.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 6, new ItemStack(Blocks.planks, 1, 0))), 0, 6), null); - GregTech_API.registerCover(ItemList.Plank_Sequoia.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 7, new ItemStack(Blocks.planks, 1, 0))), 0, 7), null); - GregTech_API.registerCover(ItemList.Plank_Kapok.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 8, new ItemStack(Blocks.planks, 1, 0))), 0, 8), null); - GregTech_API.registerCover(ItemList.Plank_Ebony.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 9, new ItemStack(Blocks.planks, 1, 0))), 0, 9), null); - GregTech_API.registerCover(ItemList.Plank_Mahagony.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 10, new ItemStack(Blocks.planks, 1, 0))), 0, 10), null); - GregTech_API.registerCover(ItemList.Plank_Balsa.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 11, new ItemStack(Blocks.planks, 1, 0))), 0, 11), null); - GregTech_API.registerCover(ItemList.Plank_Willow.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 12, new ItemStack(Blocks.planks, 1, 0))), 0, 12), null); - GregTech_API.registerCover(ItemList.Plank_Walnut.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 13, new ItemStack(Blocks.planks, 1, 0))), 0, 13), null); - GregTech_API.registerCover(ItemList.Plank_Greenheart.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 14, new ItemStack(Blocks.planks, 1, 0))), 0, 14), null); - GregTech_API.registerCover(ItemList.Plank_Cherry.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 15, new ItemStack(Blocks.planks, 1, 0))), 0, 15), null); - GregTech_API.registerCover(ItemList.Plank_Mahoe.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks2", 1L, 0, new ItemStack(Blocks.planks, 1, 0))), 0, 0), null); - GregTech_API.registerCover(ItemList.Plank_Poplar.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks2", 1L, 1, new ItemStack(Blocks.planks, 1, 0))), 0, 1), null); - GregTech_API.registerCover(ItemList.Plank_Palm.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks2", 1L, 2, new ItemStack(Blocks.planks, 1, 0))), 0, 2), null); - GregTech_API.registerCover(ItemList.Plank_Papaya.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks2", 1L, 3, new ItemStack(Blocks.planks, 1, 0))), 0, 3), null); - GregTech_API.registerCover(ItemList.Plank_Pine.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks2", 1L, 4, new ItemStack(Blocks.planks, 1, 0))), 0, 4), null); - GregTech_API.registerCover(ItemList.Plank_Plum.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks2", 1L, 5, new ItemStack(Blocks.planks, 1, 0))), 0, 5), null); - GregTech_API.registerCover(ItemList.Plank_Maple.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks2", 1L, 6, new ItemStack(Blocks.planks, 1, 0))), 0, 6), null); - GregTech_API.registerCover(ItemList.Plank_Citrus.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks2", 1L, 7, new ItemStack(Blocks.planks, 1, 0))), 0, 7), null); - - ItemList.Crop_Drop_Plumbilia.set(addItem(tLastID = 500, "Plumbilia Leaf", "Source of Lead", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 1L) })); - ItemList.Crop_Drop_Argentia.set(addItem(tLastID = 501, "Argentia Leaf", "Source of Silver", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L) })); - ItemList.Crop_Drop_Indigo.set(addItem(tLastID = 502, "Indigo Blossom", "Used for making Blue Dye", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 1L) })); - ItemList.Crop_Drop_Ferru.set(addItem(tLastID = 503, "Ferru Leaf", "Source of Iron", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L) })); - ItemList.Crop_Drop_Aurelia.set(addItem(tLastID = 504, "Aurelia Leaf", "Source of Gold", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L) })); - ItemList.Crop_Drop_TeaLeaf.set(addItem(tLastID = 505, "Tea Leaf", "Source of Tea", new Object[] { "cropTea", new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L) })); - - ItemList.Crop_Drop_OilBerry.set(addItem(tLastID = 510, "Oil Berry", "Oil in Berry form", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L) })); - ItemList.Crop_Drop_BobsYerUncleRanks.set(addItem(tLastID = 511, "Bobs-Yer-Uncle-Berry", "Source of Emeralds", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L) })); - - ItemList.Crop_Drop_MilkWart.set(addItem(tLastID = 520, "Milk Wart", "Source of Milk", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L) })); - - ItemList.Crop_Drop_Coppon.set(addItem(tLastID = 530, "Coppon Fiber", "ORANGE WOOOOOOOL!!!", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 1L) })); - - ItemList.Crop_Drop_Tine.set(addItem(tLastID = 540, "Tine Twig", "Source of Tin", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L) }));setBurnValue(32000 + tLastID, 100); - - ItemList.Crop_Drop_Chilly.set(addItem(tLastID = 550, "Chilly Pepper", "It is red and hot", new Object[] { "cropChilipepper", new GT_FoodStat(1, 0.3F, EnumAction.eat, null, false, true, false, new int[] { Potion.confusion.id, 200, 1, 40 }), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L) })); - ItemList.Crop_Drop_Lemon.set(addItem(tLastID = 551, "Lemon", "Don't make Lemonade", new Object[] { "cropLemon", new GT_FoodStat(1, 0.3F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L) })); - ItemList.Crop_Drop_Tomato.set(addItem(tLastID = 552, "Tomato", "Solid Ketchup", new Object[] { "cropTomato", new GT_FoodStat(1, 0.2F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L) })); - ItemList.Crop_Drop_MTomato.set(addItem(tLastID = 553, "Max Tomato", "Full Health in one Tomato", new Object[] { "cropTomato", new GT_FoodStat(9, 1.0F, EnumAction.eat, null, false, true, false, new int[] { Potion.regeneration.id, 100, 100, 100 }), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L) })); - ItemList.Crop_Drop_Grapes.set(addItem(tLastID = 554, "Grapes", "Source of Wine", new Object[] { "cropGrape", new GT_FoodStat(2, 0.3F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L) })); - ItemList.Crop_Drop_Onion.set(addItem(tLastID = 555, "Onion", "Taking over the whole Taste", new Object[] { "cropOnion", new GT_FoodStat(2, 0.2F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L) })); - ItemList.Crop_Drop_Cucumber.set(addItem(tLastID = 556, "Cucumber", "Not a Sea Cucumber!", new Object[] { "cropCucumber", new GT_FoodStat(1, 0.2F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L) })); - - ItemList.Food_Cheese.set(addItem(tLastID = 558, "Cheese", "Click the Cheese", new Object[] { "foodCheese", new GT_FoodStat(3, 0.6F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 2L) })); - ItemList.Food_Dough.set(addItem(tLastID = 559, "Dough", "For making Breads", new Object[] { "foodDough", new GT_FoodStat(1, 0.1F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L) })); - ItemList.Food_Flat_Dough.set(addItem(tLastID = 560, "Flattened Dough", "For making Pizza", new Object[] { new GT_FoodStat(1, 0.1F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L) })); - ItemList.Food_Raw_Bread.set(addItem(tLastID = 561, "Dough", "In Bread Shape", new Object[] { new GT_FoodStat(1, 0.2F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L) })); - ItemList.Food_Raw_Bun.set(addItem(tLastID = 562, "Dough", "In Bun Shape", new Object[] { new GT_FoodStat(1, 0.1F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L) })); - ItemList.Food_Raw_Baguette.set(addItem(tLastID = 563, "Dough", "In Baguette Shape", new Object[] { new GT_FoodStat(1, 0.3F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L) })); - ItemList.Food_Baked_Bun.set(addItem(tLastID = 564, "Bun", "Do not teleport Bread!", new Object[] { new GT_FoodStat(3, 0.5F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - ItemList.Food_Baked_Baguette.set(addItem(tLastID = 565, "Baguette", "I teleported nothing BUT Bread!!!", new Object[] { new GT_FoodStat(8, 0.5F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - ItemList.Food_Sliced_Bread.set(addItem(tLastID = 566, "Sliced Bread", "Just half a Bread", new Object[] { new GT_FoodStat(2, 0.3F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - ItemList.Food_Sliced_Bun.set(addItem(tLastID = 567, "Sliced Bun", "Just half a Bun", new Object[] { new GT_FoodStat(1, 0.3F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - ItemList.Food_Sliced_Baguette.set(addItem(tLastID = 568, "Sliced Baguette", "Just half a Baguette", new Object[] { new GT_FoodStat(4, 0.3F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })); - ItemList.Food_Raw_Cake.set(addItem(tLastID = 569, "Cake Bottom", "For making Cake", new Object[] { new GT_FoodStat(2, 0.2F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L) })); - ItemList.Food_Baked_Cake.set(addItem(tLastID = 570, "Baked Cake Bottom", "I know I promised you an actual Cake, but well...", new Object[] { new GT_FoodStat(3, 0.3F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L) })); - ItemList.Food_Sliced_Lemon.set(addItem(tLastID = 571, "Lemon Slice", "Ideal to put on your Drink", new Object[] { new GT_FoodStat(1, 0.075F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L) })); - ItemList.Food_Sliced_Tomato.set(addItem(tLastID = 572, "Tomato Slice", "Solid Ketchup", new Object[] { new GT_FoodStat(1, 0.05F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L) })); - ItemList.Food_Sliced_Onion.set(addItem(tLastID = 573, "Onion Slice", "ONIONS, UNITE!", new Object[] { new GT_FoodStat(1, 0.05F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L) })); - ItemList.Food_Sliced_Cucumber.set(addItem(tLastID = 574, "Cucumber Slice", "QUEWWW-CUMMM-BERRR!!!", new Object[] { new GT_FoodStat(1, 0.05F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L) })); - - ItemList.Food_Sliced_Cheese.set(addItem(tLastID = 576, "Cheese Slice", "ALIEN ATTACK!!!, throw the CHEEEEESE!!!", new Object[] { new GT_FoodStat(1, 0.1F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L) })); - - GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.red_flower, 1, 0), new ItemStack(Items.dye, 2, 1)); - GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.red_flower, 1, 1), new ItemStack(Items.dye, 2, 12)); - GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.red_flower, 1, 2), new ItemStack(Items.dye, 2, 13)); - GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.red_flower, 1, 3), new ItemStack(Items.dye, 2, 7)); - GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.red_flower, 1, 4), new ItemStack(Items.dye, 2, 1)); - GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.red_flower, 1, 5), new ItemStack(Items.dye, 2, 14)); - GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.red_flower, 1, 6), new ItemStack(Items.dye, 2, 7)); - GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.red_flower, 1, 7), new ItemStack(Items.dye, 2, 9)); - GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.red_flower, 1, 8), new ItemStack(Items.dye, 2, 7)); - GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.yellow_flower, 1, 0), new ItemStack(Items.dye, 2, 11)); - GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.double_plant, 1, 0), new ItemStack(Items.dye, 3, 11)); - GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.double_plant, 1, 1), new ItemStack(Items.dye, 3, 13)); - GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.double_plant, 1, 4), new ItemStack(Items.dye, 3, 1)); - GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.double_plant, 1, 5), new ItemStack(Items.dye, 3, 9)); - GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_Plumbilia.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Lead, 1L)); - GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_Argentia.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Silver, 1L)); - GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_Indigo.get(1L, new Object[0]), ItemList.Dye_Indigo.get(1L, new Object[0])); - GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_Ferru.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Iron, 1L)); - GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_Aurelia.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Gold, 1L)); - GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_BobsYerUncleRanks.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Emerald, 1L)); - GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_MilkWart.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Milk, 1L)); - GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_Coppon.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Copper, 1L)); - GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_Tine.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tin, 1L)); - - GT_ModHandler.addCompressionRecipe(ItemList.Crop_Drop_Coppon.get(4L, new Object[0]), new ItemStack(Blocks.wool, 1, 1)); - GT_ModHandler.addCompressionRecipe(ItemList.Crop_Drop_Plumbilia.get(8L, new Object[0]), ItemList.IC2_PlantballCompressed.get(1L, new Object[0])); - GT_ModHandler.addCompressionRecipe(ItemList.Crop_Drop_Argentia.get(8L, new Object[0]), ItemList.IC2_PlantballCompressed.get(1L, new Object[0])); - GT_ModHandler.addCompressionRecipe(ItemList.Crop_Drop_Indigo.get(8L, new Object[0]), ItemList.IC2_PlantballCompressed.get(1L, new Object[0])); - GT_ModHandler.addCompressionRecipe(ItemList.Crop_Drop_Ferru.get(8L, new Object[0]), ItemList.IC2_PlantballCompressed.get(1L, new Object[0])); - GT_ModHandler.addCompressionRecipe(ItemList.Crop_Drop_Aurelia.get(8L, new Object[0]), ItemList.IC2_PlantballCompressed.get(1L, new Object[0])); - GT_ModHandler.addCompressionRecipe(ItemList.Crop_Drop_OilBerry.get(8L, new Object[0]), ItemList.IC2_PlantballCompressed.get(1L, new Object[0])); - GT_ModHandler.addCompressionRecipe(ItemList.Crop_Drop_BobsYerUncleRanks.get(8L, new Object[0]), ItemList.IC2_PlantballCompressed.get(1L, new Object[0])); - GT_ModHandler.addCompressionRecipe(ItemList.Crop_Drop_Tine.get(4L, new Object[0]), ItemList.IC2_PlantballCompressed.get(1L, new Object[0])); - GT_ModHandler.addCompressionRecipe(new ItemStack(Blocks.red_flower, 8, 32767), ItemList.IC2_PlantballCompressed.get(1L, new Object[0])); - GT_ModHandler.addCompressionRecipe(new ItemStack(Blocks.yellow_flower, 8, 32767), ItemList.IC2_PlantballCompressed.get(1L, new Object[0])); - - GT_ModHandler.addPulverisationRecipe(ItemList.Food_Sliced_Cheese.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Cheese, 1L)); - GT_ModHandler.addPulverisationRecipe(ItemList.Dye_Cocoa.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cocoa, 1L)); - GT_ModHandler.addPulverisationRecipe(ItemList.Crop_Drop_Tine.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 2L)); - GT_ModHandler.addPulverisationRecipe(new ItemStack(Items.reeds, 1), new ItemStack(Items.sugar, 1), null, 0, false); - GT_ModHandler.addPulverisationRecipe(new ItemStack(Blocks.melon_block, 1, 0), new ItemStack(Items.melon, 8, 0), new ItemStack(Items.melon_seeds, 1), 80, false); - GT_ModHandler.addPulverisationRecipe(new ItemStack(Blocks.pumpkin, 1, 0), new ItemStack(Items.pumpkin_seeds, 4, 0), null, 0, false); - GT_ModHandler.addPulverisationRecipe(new ItemStack(Items.melon, 1, 0), new ItemStack(Items.melon_seeds, 1, 0), null, 0, false); - GT_ModHandler.addPulverisationRecipe(new ItemStack(Items.wheat, 1, 0), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wheat, 1L), null, 0, false); - GT_ModHandler.addPulverisationRecipe(GT_ModHandler.getIC2Item("crop", 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), null, 0, false); - GT_ModHandler.addPulverisationRecipe(new ItemStack(Items.stick, 1), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 2L), null, 0, false); - GT_ModHandler.addPulverisationRecipe(new ItemStack(Blocks.wool, 1, 32767), new ItemStack(Items.string, 2), new ItemStack(Items.string, 1), 50, false); - try - { - Object tCrop; - GT_Utility.getField(tCrop = ic2.api.crops.Crops.instance.getCropList()[13], "mDrop").set(tCrop, ItemList.Crop_Drop_Ferru.get(1L, new Object[0])); - GT_Utility.getField(tCrop = ic2.api.crops.Crops.instance.getCropList()[14], "mDrop").set(tCrop, ItemList.Crop_Drop_Aurelia.get(1L, new Object[0])); - } - catch (Throwable e) - { - if (GT_Values.D1) { - e.printStackTrace(GT_Log.err); - } - } - ItemList.Display_ITS_FREE.set(addItem(tLastID = 766, "ITS FREE", "(or at least almost free)", new Object[] { SubTag.INVISIBLE, new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L) })); - } - - public boolean onLeftClickEntity(ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) - { - super.onLeftClickEntity(aStack, aPlayer, aEntity); - int aDamage = aStack.getItemDamage(); - if ((aDamage >= 25000) && (aDamage < 27000)) - { - if (aDamage >= 26000) { - return Behaviour_Arrow.DEFAULT_PLASTIC.onLeftClickEntity(this, aStack, aPlayer, aEntity); - } - return Behaviour_Arrow.DEFAULT_WOODEN.onLeftClickEntity(this, aStack, aPlayer, aEntity); - } - return false; - } - - public boolean hasProjectile(SubTag aProjectileType, ItemStack aStack) - { - int aDamage = aStack.getItemDamage(); - return ((aDamage >= 25000) && (aDamage < 27000)) || (super.hasProjectile(aProjectileType, aStack)); - } - - public EntityArrow getProjectile(SubTag aProjectileType, ItemStack aStack, World aWorld, double aX, double aY, double aZ) - { - int aDamage = aStack.getItemDamage(); - if ((aDamage >= 25000) && (aDamage < 27000)) - { - if (aDamage >= 26000) { - return Behaviour_Arrow.DEFAULT_PLASTIC.getProjectile(this, aProjectileType, aStack, aWorld, aX, aY, aZ); - } - return Behaviour_Arrow.DEFAULT_WOODEN.getProjectile(this, aProjectileType, aStack, aWorld, aX, aY, aZ); - } - return super.getProjectile(aProjectileType, aStack, aWorld, aX, aY, aZ); - } - - public EntityArrow getProjectile(SubTag aProjectileType, ItemStack aStack, World aWorld, EntityLivingBase aEntity, float aSpeed) - { - int aDamage = aStack.getItemDamage(); - if ((aDamage >= 25000) && (aDamage < 27000)) - { - if (aDamage >= 26000) { - return Behaviour_Arrow.DEFAULT_PLASTIC.getProjectile(this, aProjectileType, aStack, aWorld, aEntity, aSpeed); - } - return Behaviour_Arrow.DEFAULT_WOODEN.getProjectile(this, aProjectileType, aStack, aWorld, aEntity, aSpeed); - } - return super.getProjectile(aProjectileType, aStack, aWorld, aEntity, aSpeed); - } - - public boolean isItemStackUsable(ItemStack aStack) - { - int aDamage = aStack.getItemDamage(); - Materials aMaterial = GregTech_API.sGeneratedMaterials[(aDamage % 1000)]; - if ((aDamage >= 25000) && (aDamage < 27000) && (aMaterial != null) && (aMaterial.mEnchantmentTools != null)) - { - Enchantment tEnchant = aMaterial.mEnchantmentTools == Enchantment.fortune ? Enchantment.looting : aMaterial.mEnchantmentTools; - if (tEnchant.type == EnumEnchantmentType.weapon) - { - NBTTagCompound tNBT = GT_Utility.ItemNBT.getNBT(aStack); - if (!tNBT.getBoolean("GT.HasBeenUpdated")) - { - tNBT.setBoolean("GT.HasBeenUpdated", true); - GT_Utility.ItemNBT.setNBT(aStack, tNBT); - GT_Utility.ItemNBT.addEnchantment(aStack, tEnchant, aMaterial.mEnchantmentToolsLevel); + public GT_MetaGenerated_Item_02() { + super("metaitem.02", new OrePrefixes[]{OrePrefixes.toolHeadSword, OrePrefixes.toolHeadPickaxe, OrePrefixes.toolHeadShovel, OrePrefixes.toolHeadAxe, OrePrefixes.toolHeadHoe, OrePrefixes.toolHeadHammer, OrePrefixes.toolHeadFile, OrePrefixes.toolHeadSaw, OrePrefixes.toolHeadDrill, OrePrefixes.toolHeadChainsaw, OrePrefixes.toolHeadWrench, OrePrefixes.toolHeadUniversalSpade, OrePrefixes.toolHeadSense, OrePrefixes.toolHeadPlow, OrePrefixes.toolHeadArrow, OrePrefixes.toolHeadBuzzSaw, OrePrefixes.turbineBlade, null, null, OrePrefixes.wireFine, OrePrefixes.gearGtSmall, OrePrefixes.rotor, OrePrefixes.stickLong, OrePrefixes.springSmall, OrePrefixes.spring, OrePrefixes.arrowGtWood, OrePrefixes.arrowGtPlastic, OrePrefixes.gemChipped, OrePrefixes.gemFlawed, OrePrefixes.gemFlawless, OrePrefixes.gemExquisite, OrePrefixes.gearGt}); + INSTANCE = this; + + int tLastID = 0; + + ItemList.ThermosCan_Dark_Coffee.set(addItem(tLastID = 0, "Dark Coffee", "Coffee, dark, without anything else", new Object[]{new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.ThermosCan_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.moveSpeed.id, 400, 1, 70, Potion.digSpeed.id, 400, 1, 70}), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L)})); + ItemList.ThermosCan_Dark_Cafe_au_lait.set(addItem(tLastID = 1, "Dark Coffee au lait", "Keeping you awake the whole night", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.ThermosCan_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.moveSpeed.id, 400, 2, 90, Potion.digSpeed.id, 400, 2, 90}), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 3L)})); + ItemList.ThermosCan_Coffee.set(addItem(tLastID = 2, "Coffee", "Just the regular morning Coffee", new Object[]{new GT_FoodStat(3, 0.4F, EnumAction.drink, ItemList.ThermosCan_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.moveSpeed.id, 400, 0, 50, Potion.digSpeed.id, 400, 0, 50}), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L)})); + ItemList.ThermosCan_Cafe_au_lait.set(addItem(tLastID = 3, "Cafe au lait", "Sweet Coffee", new Object[]{new GT_FoodStat(3, 0.4F, EnumAction.drink, ItemList.ThermosCan_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.moveSpeed.id, 400, 1, 70, Potion.digSpeed.id, 400, 1, 70}), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L)})); + ItemList.ThermosCan_Lait_au_cafe.set(addItem(tLastID = 4, "Lait au cafe", "You want Coffee to your Sugar?", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(3, 0.4F, EnumAction.drink, ItemList.ThermosCan_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.moveSpeed.id, 400, 2, 90, Potion.digSpeed.id, 400, 2, 90}), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 3L)})); + ItemList.ThermosCan_Dark_Chocolate_Milk.set(addItem(tLastID = 5, "Dark Chocolate Milk", "A bit bitter, better add a bit Sugar", new Object[]{new GT_FoodStat(3, 0.4F, EnumAction.drink, ItemList.ThermosCan_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.regeneration.id, 50, 1, 60}), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L)})); + ItemList.ThermosCan_Chocolate_Milk.set(addItem(tLastID = 6, "Chocolate Milk", "Sweet Goodness", new Object[]{new GT_FoodStat(3, 0.4F, EnumAction.drink, ItemList.ThermosCan_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.regeneration.id, 50, 1, 90}), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 2L)})); + ItemList.ThermosCan_Tea.set(addItem(tLastID = 7, "Tea", "Keep calm and carry on", new Object[]{new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.ThermosCan_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.moveSlowdown.id, 300, 0, 50}), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L)})); + ItemList.ThermosCan_Sweet_Tea.set(addItem(tLastID = 8, "Sweet Tea", "How about a Tea Party? In Boston?", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.ThermosCan_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L)})); + ItemList.ThermosCan_Ice_Tea.set(addItem(tLastID = 9, "Ice Tea", "Better than this purple Junk Drink from failed Potions", new Object[]{new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.ThermosCan_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.moveSlowdown.id, 300, 0, 50}), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L)})); + + ItemList.Bottle_Purple_Drink.set(addItem(tLastID = 100, "Purple Drink", "How about Lemonade. Or some Ice Tea? I got Purple Drink!", new Object[]{new GT_FoodStat(8, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.moveSlowdown.id, 400, 1, 90}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VINCULUM, 1L)})); + ItemList.Bottle_Grape_Juice.set(addItem(tLastID = 101, "Grape Juice", "This has a cleaning effect on your internals.", new Object[]{new GT_FoodStat(4, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.hunger.id, 400, 1, 60}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L)})); + ItemList.Bottle_Wine.set(addItem(tLastID = 102, "Wine", "Ordinary", new Object[]{new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.confusion.id, 400, 1, 60, Potion.heal.id, 0, 0, 60, Potion.poison.id, 200, 1, 5}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L)})); + ItemList.Bottle_Vinegar.set(addItem(tLastID = 103, "Vinegar", "Exquisite", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.confusion.id, 400, 1, 90, Potion.heal.id, 0, 1, 90, Potion.poison.id, 200, 2, 10, Potion.harm.id, 0, 2, 5}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L)})); + ItemList.Bottle_Potato_Juice.set(addItem(tLastID = 104, "Potato Juice", "Ever seen Potato Juice in stores? No? That has a reason.", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(3, 0.3F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L)})); + ItemList.Bottle_Vodka.set(addItem(tLastID = 105, "Vodka", "Not to confuse with Water", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.confusion.id, 500, 0, 60, Potion.damageBoost.id, 500, 1, 60, Potion.poison.id, 200, 1, 5}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L)})); + ItemList.Bottle_Leninade.set(addItem(tLastID = 106, "Leninade", "Let the Communism flow through you!", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.confusion.id, 500, 1, 90, Potion.damageBoost.id, 500, 2, 90, Potion.poison.id, 200, 2, 10, Potion.harm.id, 0, 2, 5}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 2L)})); + ItemList.Bottle_Mineral_Water.set(addItem(tLastID = 107, "Mineral Water", "The best Stuff you can drink to stay healthy", new Object[]{new GT_FoodStat(1, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.regeneration.id, 100, 1, 10}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L)})); + ItemList.Bottle_Salty_Water.set(addItem(tLastID = 108, "Salty Water", "Like Sea Water but less dirty", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(1, 0.0F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.hunger.id, 400, 2, 95}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.TEMPESTAS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)})); + ItemList.Bottle_Reed_Water.set(addItem(tLastID = 109, "Reed Water", "I guess this tastes better when fermented", new Object[]{new GT_FoodStat(1, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L)})); + ItemList.Bottle_Rum.set(addItem(tLastID = 110, "Rum", "A buddle o' rum", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(4, 0.4F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.confusion.id, 300, 0, 60, Potion.damageBoost.id, 300, 1, 60, Potion.poison.id, 200, 1, 5}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L)})); + ItemList.Bottle_Pirate_Brew.set(addItem(tLastID = 111, "Pirate Brew", "Set the Sails, we are going to Torrentuga!", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(4, 0.4F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.confusion.id, 300, 1, 90, Potion.damageBoost.id, 300, 2, 90, Potion.poison.id, 200, 2, 10, Potion.harm.id, 0, 2, 5}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 2L)})); + ItemList.Bottle_Hops_Juice.set(addItem(tLastID = 112, "Hops Juice", "Every Beer has a start", new Object[]{new GT_FoodStat(1, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L)})); + ItemList.Bottle_Dark_Beer.set(addItem(tLastID = 113, "Dark Beer", "Dark Beer, for the real Men", new Object[]{new GT_FoodStat(4, 0.4F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.confusion.id, 300, 1, 60, Potion.damageBoost.id, 300, 1, 60, Potion.poison.id, 200, 1, 5}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L)})); + ItemList.Bottle_Dragon_Blood.set(addItem(tLastID = 114, "Dragon Blood", "FUS RO DAH!", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(4, 0.4F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.confusion.id, 300, 2, 90, Potion.damageBoost.id, 300, 2, 90, Potion.poison.id, 200, 2, 10, Potion.harm.id, 0, 2, 5}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L)})); + ItemList.Bottle_Wheaty_Juice.set(addItem(tLastID = 115, "Wheaty Juice", "Is this liquefied Bread or what?", new Object[]{new GT_FoodStat(2, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L)})); + ItemList.Bottle_Scotch.set(addItem(tLastID = 116, "Scotch", "Technically this is just a Whisky", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(2, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.confusion.id, 400, 0, 60, Potion.resistance.id, 400, 1, 60, Potion.poison.id, 200, 1, 5}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 1L)})); + ItemList.Bottle_Glen_McKenner.set(addItem(tLastID = 117, "Glen McKenner", "Don't hand to easily surprised people, they will shatter it.", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(2, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.confusion.id, 400, 1, 90, Potion.resistance.id, 400, 2, 90, Potion.poison.id, 200, 2, 10, Potion.harm.id, 0, 2, 5}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 2L)})); + ItemList.Bottle_Wheaty_Hops_Juice.set(addItem(tLastID = 118, "Wheaty Hops Juice", "Also known as 'Duff-Lite'", new Object[]{new GT_FoodStat(1, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 2L)})); + ItemList.Bottle_Beer.set(addItem(tLastID = 119, "Beer", "Good old Beer", new Object[]{new GT_FoodStat(6, 0.4F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.confusion.id, 400, 0, 60, Potion.digSpeed.id, 400, 2, 60, Potion.poison.id, 100, 0, 5}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 1L)})); + ItemList.Bottle_Chilly_Sauce.set(addItem(tLastID = 120, "Chilly Sauce", "Spicy", new Object[]{new GT_FoodStat(2, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.confusion.id, 1000, 0, 10, Potion.fireResistance.id, 1000, 0, 60}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + ItemList.Bottle_Hot_Sauce.set(addItem(tLastID = 121, "Hot Sauce", "Very Spicy, I guess?", new Object[]{new GT_FoodStat(2, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.confusion.id, 2000, 0, 30, Potion.fireResistance.id, 2000, 0, 70}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 2L)})); + ItemList.Bottle_Diabolo_Sauce.set(addItem(tLastID = 122, "Diabolo Sauce", "As if the Devil made this Sauce", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(2, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.confusion.id, 3000, 1, 50, Potion.fireResistance.id, 3000, 0, 80}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 3L)})); + ItemList.Bottle_Diablo_Sauce.set(addItem(tLastID = 123, "Diablo Sauce", "Diablo always comes back!", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(2, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.confusion.id, 4000, 1, 70, Potion.fireResistance.id, 4000, 0, 90}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 4L)})); + ItemList.Bottle_Snitches_Glitch_Sauce.set(addItem(tLastID = 124, "Old Man Snitches glitched Diablo Sauce", "[Missing No]", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(2, 0.1F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.confusion.id, 9999, 2, 999, Potion.fireResistance.id, 9999, 9, 999}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 5L)})); + ItemList.Bottle_Apple_Juice.set(addItem(tLastID = 125, "Apple Juice", "Made of the Apples from our best Oak Farms", new Object[]{new GT_FoodStat(4, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.hunger.id, 400, 0, 20}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L)})); + ItemList.Bottle_Cider.set(addItem(tLastID = 126, "Cider", "If you have nothing better to do with your Apples", new Object[]{new GT_FoodStat(4, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.confusion.id, 400, 0, 60, Potion.resistance.id, 400, 1, 60, Potion.poison.id, 200, 1, 5}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 1L)})); + ItemList.Bottle_Golden_Apple_Juice.set(addItem(tLastID = 127, "Golden Apple Juice", "A golden Apple in liquid form", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(4, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.hunger.id, 400, 0, 20, Potion.field_76444_x.id, 2400, 0, 100, Potion.regeneration.id, 100, 1, 100}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L)})); + ItemList.Bottle_Golden_Cider.set(addItem(tLastID = 128, "Golden Cider", "More Resistance, less Regeneration", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(4, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.confusion.id, 400, 0, 60, Potion.field_76444_x.id, 2400, 1, 95, Potion.poison.id, 200, 1, 5}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 1L)})); + ItemList.Bottle_Iduns_Apple_Juice.set(addItem(tLastID = 129, "Idun's Apple Juice", "So you got the Idea of using Notch Apples for a drink?", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(4, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.regeneration.id, 600, 4, 100, Potion.field_76444_x.id, 2400, 0, 100, Potion.resistance.id, 6000, 0, 100, Potion.fireResistance.id, 6000, 0, 100}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 9L)})); + ItemList.Bottle_Notches_Brew.set(addItem(tLastID = 130, "Notches Brew", "This is just overpowered", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(4, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.regeneration.id, 700, 4, 95, Potion.field_76444_x.id, 3000, 1, 95, Potion.resistance.id, 7000, 1, 95, Potion.fireResistance.id, 7000, 0, 95, Potion.harm.id, 0, 2, 20}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 9L)})); + ItemList.Bottle_Lemon_Juice.set(addItem(tLastID = 131, "Lemon Juice", "Maybe adding Sugar will make it less sour", new Object[]{new GT_FoodStat(2, 0.4F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.digSpeed.id, 1200, 0, 60}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 1L)})); + ItemList.Bottle_Limoncello.set(addItem(tLastID = 132, "Limoncello", "An alcoholic Drink which tastes like Lemons", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(2, 0.4F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.digSpeed.id, 1200, 0, 90, Potion.poison.id, 200, 1, 5}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 1L)})); + ItemList.Bottle_Lemonade.set(addItem(tLastID = 133, "Lemonade", "Cold and refreshing Lemonade", new Object[]{new GT_FoodStat(4, 0.3F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.digSpeed.id, 900, 1, 90}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 1L)})); + ItemList.Bottle_Alcopops.set(addItem(tLastID = 134, "Alcopops", "Don't let your Children drink this junk!", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.digSpeed.id, 900, 1, 90, Potion.poison.id, 300, 2, 20}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VINCULUM, 1L)})); + ItemList.Bottle_Cave_Johnsons_Grenade_Juice.set(addItem(tLastID = 135, "Cave Johnson's Grenade Juice", "When life gives you Lemons, make Life take them Lemons back!", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(0, 0.0F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[0]).setExplosive(), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MORTUUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 1L)})); + ItemList.Bottle_Milk.set(addItem(tLastID = 136, "Milk", "Got Milk?", new Object[]{OrePrefixes.bottle.get(Materials.Milk), new GT_FoodStat(0, 0.0F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[0]).setMilk(), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L)})); + ItemList.Bottle_Holy_Water.set(addItem(tLastID = 137, "Holy Water", "May the holy Planks be with you", new Object[]{OrePrefixes.bottle.get(Materials.HolyWater), new GT_FoodStat(0, 0.0F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.poison.id, 100, 1, 100}).setMilk(), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AURAM, 1L)})); + + ItemList.Food_Potato_On_Stick.set(addItem(tLastID = 200, "Potato on a Stick", "Totally looks like a Crab Claw", new Object[]{new GT_FoodStat(1, 0.3F, EnumAction.eat, new ItemStack(Items.stick, 1), false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + ItemList.Food_Potato_On_Stick_Roasted.set(addItem(tLastID = 201, "Roasted Potato on a Stick", "Still looks like a Crab Claw", new Object[]{new GT_FoodStat(6, 0.6F, EnumAction.eat, new ItemStack(Items.stick, 1), false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + ItemList.Food_Raw_Fries.set(addItem(tLastID = 202, "Potato Strips", "It's Potato in Stripe Form", new Object[]{new GT_FoodStat(1, 0.3F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L)})); + setFluidContainerStats(32000 + tLastID, 0L, 16L); + ItemList.Food_Fries.set(addItem(tLastID = 203, "Fries", "Not to confuse with Fry the Delivery Boy", new Object[]{new GT_FoodStat(7, 0.5F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + setFluidContainerStats(32000 + tLastID, 0L, 16L); + ItemList.Food_Packaged_Fries.set(addItem(tLastID = 204, "Fries", "Ketchup not included", new Object[]{new GT_FoodStat(7, 0.5F, EnumAction.eat, GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 1L), false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + ItemList.Food_Raw_PotatoChips.set(addItem(tLastID = 205, "Potato Chips (Raw)", "Just like a Potato", new Object[]{new GT_FoodStat(1, 0.3F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L)})); + setFluidContainerStats(32000 + tLastID, 0L, 16L); + ItemList.Food_PotatoChips.set(addItem(tLastID = 206, "Potato Chips", "Crunchy", new Object[]{new GT_FoodStat(7, 0.5F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + setFluidContainerStats(32000 + tLastID, 0L, 16L); + ItemList.Food_ChiliChips.set(addItem(tLastID = 207, "Chili Chips", "Spicy", new Object[]{new GT_FoodStat(7, 0.6F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + setFluidContainerStats(32000 + tLastID, 0L, 16L); + ItemList.Food_Packaged_PotatoChips.set(addItem(tLastID = 208, "Bag of Potato Chips", "Full of delicious Air", new Object[]{new GT_FoodStat(7, 0.5F, EnumAction.eat, GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Aluminium, 1L), false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + ItemList.Food_Packaged_ChiliChips.set(addItem(tLastID = 209, "Bag of Chili Chips", "Stop making noises Baj!", new Object[]{new GT_FoodStat(7, 0.6F, EnumAction.eat, GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Aluminium, 1L), false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + ItemList.Food_Chum.set(addItem(tLastID = 210, "Chum", "Chum is Fum!", new Object[]{new GT_FoodStat(5, 0.2F, EnumAction.eat, null, true, false, true, new int[]{Potion.hunger.id, 1000, 4, 100, Potion.confusion.id, 300, 1, 80}), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + ItemList.Food_Chum_On_Stick.set(addItem(tLastID = 211, "Chum on a Stick", "Don't forget to try our Chum-balaya", new Object[]{new GT_FoodStat(5, 0.2F, EnumAction.eat, new ItemStack(Items.stick, 1), true, false, true, new int[]{Potion.hunger.id, 1000, 4, 100, Potion.confusion.id, 300, 1, 80}), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + ItemList.Food_Dough_Sugar.set(addItem(tLastID = 212, "Sugary Dough", "Don't eat the Dough before it is baken", new Object[]{new GT_FoodStat(1, 0.1F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)})); + ItemList.Food_Dough_Chocolate.set(addItem(tLastID = 213, "Chocolate Dough", "I said don't eat the Dough!", new Object[]{new GT_FoodStat(1, 0.1F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)})); + ItemList.Food_Raw_Cookie.set(addItem(tLastID = 214, "Cookie shaped Dough", "For baking Cookies", new Object[]{new GT_FoodStat(1, 0.1F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)})); + + ItemList.Food_Sliced_Buns.set(addItem(tLastID = 220, "Buns", "Pre Sliced", new Object[]{new GT_FoodStat(3, 0.5F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + ItemList.Food_Burger_Veggie.set(addItem(tLastID = 221, "Veggieburger", "No matter how you call this, this is NOT a Burger!", new Object[]{new GT_FoodStat(3, 0.5F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + ItemList.Food_Burger_Cheese.set(addItem(tLastID = 222, "Cheeseburger", "Cheesy!", new Object[]{new GT_FoodStat(3, 0.5F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new ItemData(Materials.Cheese, 907200L, new MaterialStack[0])})); + ItemList.Food_Burger_Meat.set(addItem(tLastID = 223, "Hamburger", "The Mc Burger Queen Burger", new Object[]{new GT_FoodStat(3, 0.5F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + ItemList.Food_Burger_Chum.set(addItem(tLastID = 224, "Chumburger", "Fum is Chum!", new Object[]{new GT_FoodStat(5, 0.2F, EnumAction.eat, null, true, false, true, new int[]{Potion.hunger.id, 1000, 4, 100, Potion.confusion.id, 300, 1, 80}), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + + ItemList.Food_Sliced_Breads.set(addItem(tLastID = 230, "Breads", "Pre Sliced", new Object[]{new GT_FoodStat(5, 0.6F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + ItemList.Food_Sandwich_Veggie.set(addItem(tLastID = 231, "Veggie Sandwich", "Meatless", new Object[]{new GT_FoodStat(7, 0.6F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + setFluidContainerStats(32000 + tLastID, 0L, 32L); + ItemList.Food_Sandwich_Cheese.set(addItem(tLastID = 232, "Cheese Sandwich", "Say Cheese!", new Object[]{new GT_FoodStat(7, 0.6F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + setFluidContainerStats(32000 + tLastID, 0L, 32L); + ItemList.Food_Sandwich_Bacon.set(addItem(tLastID = 233, "Bacon Sandwich", "The best Sandwich ever!", new Object[]{new GT_FoodStat(10, 0.8F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + setFluidContainerStats(32000 + tLastID, 0L, 32L); + ItemList.Food_Sandwich_Steak.set(addItem(tLastID = 234, "Steak Sandwich", "Not a 'Steam Sandwich'", new Object[]{new GT_FoodStat(10, 0.8F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + setFluidContainerStats(32000 + tLastID, 0L, 32L); + + ItemList.Food_Sliced_Baguettes.set(addItem(tLastID = 240, "Baguettes", "Pre Sliced", new Object[]{new GT_FoodStat(8, 0.5F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + ItemList.Food_Large_Sandwich_Veggie.set(addItem(tLastID = 241, "Large Veggie Sandwich", "Just not worth it", new Object[]{new GT_FoodStat(15, 0.8F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + setFluidContainerStats(32000 + tLastID, 0L, 16L); + ItemList.Food_Large_Sandwich_Cheese.set(addItem(tLastID = 242, "Large Cheese Sandwich", "I need another cheesy tooltip for this", new Object[]{new GT_FoodStat(15, 0.8F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + setFluidContainerStats(32000 + tLastID, 0L, 16L); + ItemList.Food_Large_Sandwich_Bacon.set(addItem(tLastID = 243, "Large Bacon Sandwich", "For Men! (and manly Women)", new Object[]{new GT_FoodStat(20, 1.0F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + setFluidContainerStats(32000 + tLastID, 0L, 16L); + ItemList.Food_Large_Sandwich_Steak.set(addItem(tLastID = 244, "Large Steak Sandwich", "Yes, I once accidentially called it 'Steam Sandwich'", new Object[]{new GT_FoodStat(20, 1.0F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + setFluidContainerStats(32000 + tLastID, 0L, 16L); + + ItemList.Food_Raw_Pizza_Veggie.set(addItem(tLastID = 250, "Raw Veggie Pizza", "Into the Oven with it!", new Object[]{new GT_FoodStat(1, 0.2F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + ItemList.Food_Raw_Pizza_Cheese.set(addItem(tLastID = 251, "Raw Cheese Pizza", "Into the Oven with it!", new Object[]{new GT_FoodStat(2, 0.2F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + ItemList.Food_Raw_Pizza_Meat.set(addItem(tLastID = 252, "Raw Mince Meat Pizza", "Into the Oven with it!", new Object[]{new GT_FoodStat(2, 0.2F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + + ItemList.Food_Baked_Pizza_Veggie.set(addItem(tLastID = 260, "Veggie Pizza", "The next they want is Gluten Free Pizzas...", new Object[]{new GT_FoodStat(3, 0.3F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + ItemList.Food_Baked_Pizza_Cheese.set(addItem(tLastID = 261, "Cheese Pizza", "Pizza Magarita", new Object[]{new GT_FoodStat(4, 0.4F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + ItemList.Food_Baked_Pizza_Meat.set(addItem(tLastID = 262, "Mince Meat Pizza", "Emo Pizza, it cuts itself!", new Object[]{new GT_FoodStat(5, 0.5F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + + + ItemList.Dye_Indigo.set(addItem(tLastID = 410, "Indigo Dye", "Blue Dye", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 1L), Dyes.dyeBlue})); + for (byte i = 0; i < 16; i = (byte) (i + 1)) { + ItemList.DYE_ONLY_ITEMS[i].set(addItem(tLastID = 414 + i, Dyes.get(i).mName + " Dye", "", new Object[]{Dyes.get(i).name(), new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 1L)})); } - } + ItemList.Plank_Oak.set(addItem(tLastID = 470, "Oak Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Spruce.set(addItem(tLastID = 471, "Spruce Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Birch.set(addItem(tLastID = 472, "Birch Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Jungle.set(addItem(tLastID = 473, "Jungle Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Acacia.set(addItem(tLastID = 474, "Acacia Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_DarkOak.set(addItem(tLastID = 475, "Dark Oak Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Larch.set(addItem(tLastID = 476, "Larch Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Teak.set(addItem(tLastID = 477, "Teak Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Acacia_Green.set(addItem(tLastID = 478, "Green Acacia Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Lime.set(addItem(tLastID = 479, "Lime Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Chestnut.set(addItem(tLastID = 480, "Chestnut Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Wenge.set(addItem(tLastID = 481, "Wenge Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Baobab.set(addItem(tLastID = 482, "Baobab Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Sequoia.set(addItem(tLastID = 483, "Sequoia Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Kapok.set(addItem(tLastID = 484, "Kapok Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Ebony.set(addItem(tLastID = 485, "Ebony Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Mahagony.set(addItem(tLastID = 486, "Mahagony Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Balsa.set(addItem(tLastID = 487, "Balsa Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Willow.set(addItem(tLastID = 488, "Willow Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Walnut.set(addItem(tLastID = 489, "Walnut Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Greenheart.set(addItem(tLastID = 490, "Greenheart Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Cherry.set(addItem(tLastID = 491, "Cherry Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Mahoe.set(addItem(tLastID = 492, "Mahoe Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Poplar.set(addItem(tLastID = 493, "Poplar Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Palm.set(addItem(tLastID = 494, "Palm Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Papaya.set(addItem(tLastID = 495, "Papaya Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Pine.set(addItem(tLastID = 496, "Pine Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Plum.set(addItem(tLastID = 497, "Plum Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Maple.set(addItem(tLastID = 498, "Maple Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + ItemList.Plank_Citrus.set(addItem(tLastID = 499, "Citrus Plank", "Usable as Cover", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 200); + + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Oak.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), new ItemStack(Blocks.wooden_slab, 1, 0)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Spruce.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), new ItemStack(Blocks.wooden_slab, 1, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Birch.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), new ItemStack(Blocks.wooden_slab, 1, 2)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Jungle.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), new ItemStack(Blocks.wooden_slab, 1, 3)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Acacia.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), new ItemStack(Blocks.wooden_slab, 1, 4)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_DarkOak.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), new ItemStack(Blocks.wooden_slab, 1, 5)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Larch.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 0)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Teak.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Acacia_Green.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 2)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Lime.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 3)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Chestnut.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 4)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Wenge.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 5)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Baobab.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 6)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Sequoia.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 7)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Kapok.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 0)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Ebony.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Mahagony.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 2)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Balsa.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 3)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Willow.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 4)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Walnut.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 5)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Greenheart.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 6)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Cherry.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 7)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Mahoe.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 0)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Poplar.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Palm.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 2)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Papaya.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 3)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Pine.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 4)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Plum.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 5)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Maple.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 6)}); + GT_ModHandler.addCraftingRecipe(ItemList.Plank_Citrus.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"s ", " P", Character.valueOf('P'), GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 7)}); + + GregTech_API.registerCover(ItemList.Plank_Oak.get(1L, new Object[0]), new GT_CopiedBlockTexture(Blocks.planks, 0, 0), null); + GregTech_API.registerCover(ItemList.Plank_Spruce.get(1L, new Object[0]), new GT_CopiedBlockTexture(Blocks.planks, 0, 1), null); + GregTech_API.registerCover(ItemList.Plank_Birch.get(1L, new Object[0]), new GT_CopiedBlockTexture(Blocks.planks, 0, 2), null); + GregTech_API.registerCover(ItemList.Plank_Jungle.get(1L, new Object[0]), new GT_CopiedBlockTexture(Blocks.planks, 0, 3), null); + GregTech_API.registerCover(ItemList.Plank_Acacia.get(1L, new Object[0]), new GT_CopiedBlockTexture(Blocks.planks, 0, 4), null); + GregTech_API.registerCover(ItemList.Plank_DarkOak.get(1L, new Object[0]), new GT_CopiedBlockTexture(Blocks.planks, 0, 5), null); + GregTech_API.registerCover(ItemList.Plank_Larch.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 0, new ItemStack(Blocks.planks, 1, 0))), 0, 0), null); + GregTech_API.registerCover(ItemList.Plank_Teak.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 1, new ItemStack(Blocks.planks, 1, 0))), 0, 1), null); + GregTech_API.registerCover(ItemList.Plank_Acacia_Green.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 2, new ItemStack(Blocks.planks, 1, 0))), 0, 2), null); + GregTech_API.registerCover(ItemList.Plank_Lime.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 3, new ItemStack(Blocks.planks, 1, 0))), 0, 3), null); + GregTech_API.registerCover(ItemList.Plank_Chestnut.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 4, new ItemStack(Blocks.planks, 1, 0))), 0, 4), null); + GregTech_API.registerCover(ItemList.Plank_Wenge.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 5, new ItemStack(Blocks.planks, 1, 0))), 0, 5), null); + GregTech_API.registerCover(ItemList.Plank_Baobab.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 6, new ItemStack(Blocks.planks, 1, 0))), 0, 6), null); + GregTech_API.registerCover(ItemList.Plank_Sequoia.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 7, new ItemStack(Blocks.planks, 1, 0))), 0, 7), null); + GregTech_API.registerCover(ItemList.Plank_Kapok.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 8, new ItemStack(Blocks.planks, 1, 0))), 0, 8), null); + GregTech_API.registerCover(ItemList.Plank_Ebony.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 9, new ItemStack(Blocks.planks, 1, 0))), 0, 9), null); + GregTech_API.registerCover(ItemList.Plank_Mahagony.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 10, new ItemStack(Blocks.planks, 1, 0))), 0, 10), null); + GregTech_API.registerCover(ItemList.Plank_Balsa.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 11, new ItemStack(Blocks.planks, 1, 0))), 0, 11), null); + GregTech_API.registerCover(ItemList.Plank_Willow.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 12, new ItemStack(Blocks.planks, 1, 0))), 0, 12), null); + GregTech_API.registerCover(ItemList.Plank_Walnut.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 13, new ItemStack(Blocks.planks, 1, 0))), 0, 13), null); + GregTech_API.registerCover(ItemList.Plank_Greenheart.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 14, new ItemStack(Blocks.planks, 1, 0))), 0, 14), null); + GregTech_API.registerCover(ItemList.Plank_Cherry.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks", 1L, 15, new ItemStack(Blocks.planks, 1, 0))), 0, 15), null); + GregTech_API.registerCover(ItemList.Plank_Mahoe.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks2", 1L, 0, new ItemStack(Blocks.planks, 1, 0))), 0, 0), null); + GregTech_API.registerCover(ItemList.Plank_Poplar.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks2", 1L, 1, new ItemStack(Blocks.planks, 1, 0))), 0, 1), null); + GregTech_API.registerCover(ItemList.Plank_Palm.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks2", 1L, 2, new ItemStack(Blocks.planks, 1, 0))), 0, 2), null); + GregTech_API.registerCover(ItemList.Plank_Papaya.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks2", 1L, 3, new ItemStack(Blocks.planks, 1, 0))), 0, 3), null); + GregTech_API.registerCover(ItemList.Plank_Pine.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks2", 1L, 4, new ItemStack(Blocks.planks, 1, 0))), 0, 4), null); + GregTech_API.registerCover(ItemList.Plank_Plum.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks2", 1L, 5, new ItemStack(Blocks.planks, 1, 0))), 0, 5), null); + GregTech_API.registerCover(ItemList.Plank_Maple.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks2", 1L, 6, new ItemStack(Blocks.planks, 1, 0))), 0, 6), null); + GregTech_API.registerCover(ItemList.Plank_Citrus.get(1L, new Object[0]), new GT_CopiedBlockTexture(GT_Utility.getBlockFromStack(GT_ModHandler.getModItem("Forestry", "planks2", 1L, 7, new ItemStack(Blocks.planks, 1, 0))), 0, 7), null); + + ItemList.Crop_Drop_Plumbilia.set(addItem(tLastID = 500, "Plumbilia Leaf", "Source of Lead", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 1L)})); + ItemList.Crop_Drop_Argentia.set(addItem(tLastID = 501, "Argentia Leaf", "Source of Silver", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L)})); + ItemList.Crop_Drop_Indigo.set(addItem(tLastID = 502, "Indigo Blossom", "Used for making Blue Dye", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 1L)})); + ItemList.Crop_Drop_Ferru.set(addItem(tLastID = 503, "Ferru Leaf", "Source of Iron", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L)})); + ItemList.Crop_Drop_Aurelia.set(addItem(tLastID = 504, "Aurelia Leaf", "Source of Gold", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L)})); + ItemList.Crop_Drop_TeaLeaf.set(addItem(tLastID = 505, "Tea Leaf", "Source of Tea", new Object[]{"cropTea", new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L)})); + + ItemList.Crop_Drop_OilBerry.set(addItem(tLastID = 510, "Oil Berry", "Oil in Berry form", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L)})); + ItemList.Crop_Drop_BobsYerUncleRanks.set(addItem(tLastID = 511, "Bobs-Yer-Uncle-Berry", "Source of Emeralds", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L)})); + + ItemList.Crop_Drop_MilkWart.set(addItem(tLastID = 520, "Milk Wart", "Source of Milk", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L)})); + + ItemList.Crop_Drop_Coppon.set(addItem(tLastID = 530, "Coppon Fiber", "ORANGE WOOOOOOOL!!!", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 1L)})); + + ItemList.Crop_Drop_Tine.set(addItem(tLastID = 540, "Tine Twig", "Source of Tin", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); + setBurnValue(32000 + tLastID, 100); + + ItemList.Crop_Drop_Chilly.set(addItem(tLastID = 550, "Chilly Pepper", "It is red and hot", new Object[]{"cropChilipepper", new GT_FoodStat(1, 0.3F, EnumAction.eat, null, false, true, false, new int[]{Potion.confusion.id, 200, 1, 40}), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)})); + ItemList.Crop_Drop_Lemon.set(addItem(tLastID = 551, "Lemon", "Don't make Lemonade", new Object[]{"cropLemon", new GT_FoodStat(1, 0.3F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)})); + ItemList.Crop_Drop_Tomato.set(addItem(tLastID = 552, "Tomato", "Solid Ketchup", new Object[]{"cropTomato", new GT_FoodStat(1, 0.2F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)})); + ItemList.Crop_Drop_MTomato.set(addItem(tLastID = 553, "Max Tomato", "Full Health in one Tomato", new Object[]{"cropTomato", new GT_FoodStat(9, 1.0F, EnumAction.eat, null, false, true, false, new int[]{Potion.regeneration.id, 100, 100, 100}), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)})); + ItemList.Crop_Drop_Grapes.set(addItem(tLastID = 554, "Grapes", "Source of Wine", new Object[]{"cropGrape", new GT_FoodStat(2, 0.3F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)})); + ItemList.Crop_Drop_Onion.set(addItem(tLastID = 555, "Onion", "Taking over the whole Taste", new Object[]{"cropOnion", new GT_FoodStat(2, 0.2F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)})); + ItemList.Crop_Drop_Cucumber.set(addItem(tLastID = 556, "Cucumber", "Not a Sea Cucumber!", new Object[]{"cropCucumber", new GT_FoodStat(1, 0.2F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)})); + + ItemList.Food_Cheese.set(addItem(tLastID = 558, "Cheese", "Click the Cheese", new Object[]{"foodCheese", new GT_FoodStat(3, 0.6F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 2L)})); + ItemList.Food_Dough.set(addItem(tLastID = 559, "Dough", "For making Breads", new Object[]{"foodDough", new GT_FoodStat(1, 0.1F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)})); + ItemList.Food_Flat_Dough.set(addItem(tLastID = 560, "Flattened Dough", "For making Pizza", new Object[]{new GT_FoodStat(1, 0.1F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)})); + ItemList.Food_Raw_Bread.set(addItem(tLastID = 561, "Dough", "In Bread Shape", new Object[]{new GT_FoodStat(1, 0.2F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)})); + ItemList.Food_Raw_Bun.set(addItem(tLastID = 562, "Dough", "In Bun Shape", new Object[]{new GT_FoodStat(1, 0.1F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)})); + ItemList.Food_Raw_Baguette.set(addItem(tLastID = 563, "Dough", "In Baguette Shape", new Object[]{new GT_FoodStat(1, 0.3F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)})); + ItemList.Food_Baked_Bun.set(addItem(tLastID = 564, "Bun", "Do not teleport Bread!", new Object[]{new GT_FoodStat(3, 0.5F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + ItemList.Food_Baked_Baguette.set(addItem(tLastID = 565, "Baguette", "I teleported nothing BUT Bread!!!", new Object[]{new GT_FoodStat(8, 0.5F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + ItemList.Food_Sliced_Bread.set(addItem(tLastID = 566, "Sliced Bread", "Just half a Bread", new Object[]{new GT_FoodStat(2, 0.3F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + ItemList.Food_Sliced_Bun.set(addItem(tLastID = 567, "Sliced Bun", "Just half a Bun", new Object[]{new GT_FoodStat(1, 0.3F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + ItemList.Food_Sliced_Baguette.set(addItem(tLastID = 568, "Sliced Baguette", "Just half a Baguette", new Object[]{new GT_FoodStat(4, 0.3F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)})); + ItemList.Food_Raw_Cake.set(addItem(tLastID = 569, "Cake Bottom", "For making Cake", new Object[]{new GT_FoodStat(2, 0.2F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)})); + ItemList.Food_Baked_Cake.set(addItem(tLastID = 570, "Baked Cake Bottom", "I know I promised you an actual Cake, but well...", new Object[]{new GT_FoodStat(3, 0.3F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)})); + ItemList.Food_Sliced_Lemon.set(addItem(tLastID = 571, "Lemon Slice", "Ideal to put on your Drink", new Object[]{new GT_FoodStat(1, 0.075F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L)})); + ItemList.Food_Sliced_Tomato.set(addItem(tLastID = 572, "Tomato Slice", "Solid Ketchup", new Object[]{new GT_FoodStat(1, 0.05F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L)})); + ItemList.Food_Sliced_Onion.set(addItem(tLastID = 573, "Onion Slice", "ONIONS, UNITE!", new Object[]{new GT_FoodStat(1, 0.05F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L)})); + ItemList.Food_Sliced_Cucumber.set(addItem(tLastID = 574, "Cucumber Slice", "QUEWWW-CUMMM-BERRR!!!", new Object[]{new GT_FoodStat(1, 0.05F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L)})); + + ItemList.Food_Sliced_Cheese.set(addItem(tLastID = 576, "Cheese Slice", "ALIEN ATTACK!!!, throw the CHEEEEESE!!!", new Object[]{new GT_FoodStat(1, 0.1F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)})); + + GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.red_flower, 1, 0), new ItemStack(Items.dye, 2, 1)); + GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.red_flower, 1, 1), new ItemStack(Items.dye, 2, 12)); + GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.red_flower, 1, 2), new ItemStack(Items.dye, 2, 13)); + GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.red_flower, 1, 3), new ItemStack(Items.dye, 2, 7)); + GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.red_flower, 1, 4), new ItemStack(Items.dye, 2, 1)); + GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.red_flower, 1, 5), new ItemStack(Items.dye, 2, 14)); + GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.red_flower, 1, 6), new ItemStack(Items.dye, 2, 7)); + GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.red_flower, 1, 7), new ItemStack(Items.dye, 2, 9)); + GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.red_flower, 1, 8), new ItemStack(Items.dye, 2, 7)); + GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.yellow_flower, 1, 0), new ItemStack(Items.dye, 2, 11)); + GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.double_plant, 1, 0), new ItemStack(Items.dye, 3, 11)); + GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.double_plant, 1, 1), new ItemStack(Items.dye, 3, 13)); + GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.double_plant, 1, 4), new ItemStack(Items.dye, 3, 1)); + GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.double_plant, 1, 5), new ItemStack(Items.dye, 3, 9)); + GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_Plumbilia.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Lead, 1L)); + GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_Argentia.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Silver, 1L)); + GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_Indigo.get(1L, new Object[0]), ItemList.Dye_Indigo.get(1L, new Object[0])); + GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_Ferru.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Iron, 1L)); + GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_Aurelia.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Gold, 1L)); + GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_BobsYerUncleRanks.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Emerald, 1L)); + GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_MilkWart.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Milk, 1L)); + GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_Coppon.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Copper, 1L)); + GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_Tine.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tin, 1L)); + + GT_ModHandler.addCompressionRecipe(ItemList.Crop_Drop_Coppon.get(4L, new Object[0]), new ItemStack(Blocks.wool, 1, 1)); + GT_ModHandler.addCompressionRecipe(ItemList.Crop_Drop_Plumbilia.get(8L, new Object[0]), ItemList.IC2_PlantballCompressed.get(1L, new Object[0])); + GT_ModHandler.addCompressionRecipe(ItemList.Crop_Drop_Argentia.get(8L, new Object[0]), ItemList.IC2_PlantballCompressed.get(1L, new Object[0])); + GT_ModHandler.addCompressionRecipe(ItemList.Crop_Drop_Indigo.get(8L, new Object[0]), ItemList.IC2_PlantballCompressed.get(1L, new Object[0])); + GT_ModHandler.addCompressionRecipe(ItemList.Crop_Drop_Ferru.get(8L, new Object[0]), ItemList.IC2_PlantballCompressed.get(1L, new Object[0])); + GT_ModHandler.addCompressionRecipe(ItemList.Crop_Drop_Aurelia.get(8L, new Object[0]), ItemList.IC2_PlantballCompressed.get(1L, new Object[0])); + GT_ModHandler.addCompressionRecipe(ItemList.Crop_Drop_OilBerry.get(8L, new Object[0]), ItemList.IC2_PlantballCompressed.get(1L, new Object[0])); + GT_ModHandler.addCompressionRecipe(ItemList.Crop_Drop_BobsYerUncleRanks.get(8L, new Object[0]), ItemList.IC2_PlantballCompressed.get(1L, new Object[0])); + GT_ModHandler.addCompressionRecipe(ItemList.Crop_Drop_Tine.get(4L, new Object[0]), ItemList.IC2_PlantballCompressed.get(1L, new Object[0])); + GT_ModHandler.addCompressionRecipe(new ItemStack(Blocks.red_flower, 8, 32767), ItemList.IC2_PlantballCompressed.get(1L, new Object[0])); + GT_ModHandler.addCompressionRecipe(new ItemStack(Blocks.yellow_flower, 8, 32767), ItemList.IC2_PlantballCompressed.get(1L, new Object[0])); + + GT_ModHandler.addPulverisationRecipe(ItemList.Food_Sliced_Cheese.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Cheese, 1L)); + GT_ModHandler.addPulverisationRecipe(ItemList.Dye_Cocoa.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cocoa, 1L)); + GT_ModHandler.addPulverisationRecipe(ItemList.Crop_Drop_Tine.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 2L)); + GT_ModHandler.addPulverisationRecipe(new ItemStack(Items.reeds, 1), new ItemStack(Items.sugar, 1), null, 0, false); + GT_ModHandler.addPulverisationRecipe(new ItemStack(Blocks.melon_block, 1, 0), new ItemStack(Items.melon, 8, 0), new ItemStack(Items.melon_seeds, 1), 80, false); + GT_ModHandler.addPulverisationRecipe(new ItemStack(Blocks.pumpkin, 1, 0), new ItemStack(Items.pumpkin_seeds, 4, 0), null, 0, false); + GT_ModHandler.addPulverisationRecipe(new ItemStack(Items.melon, 1, 0), new ItemStack(Items.melon_seeds, 1, 0), null, 0, false); + GT_ModHandler.addPulverisationRecipe(new ItemStack(Items.wheat, 1, 0), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wheat, 1L), null, 0, false); + GT_ModHandler.addPulverisationRecipe(GT_ModHandler.getIC2Item("crop", 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), null, 0, false); + GT_ModHandler.addPulverisationRecipe(new ItemStack(Items.stick, 1), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 2L), null, 0, false); + GT_ModHandler.addPulverisationRecipe(new ItemStack(Blocks.wool, 1, 32767), new ItemStack(Items.string, 2), new ItemStack(Items.string, 1), 50, false); + try { + Object tCrop; + GT_Utility.getField(tCrop = ic2.api.crops.Crops.instance.getCropList()[13], "mDrop").set(tCrop, ItemList.Crop_Drop_Ferru.get(1L, new Object[0])); + GT_Utility.getField(tCrop = ic2.api.crops.Crops.instance.getCropList()[14], "mDrop").set(tCrop, ItemList.Crop_Drop_Aurelia.get(1L, new Object[0])); + } catch (Throwable e) { + if (GT_Values.D1) { + e.printStackTrace(GT_Log.err); + } + } + ItemList.Display_ITS_FREE.set(addItem(tLastID = 766, "ITS FREE", "(or at least almost free)", new Object[]{SubTag.INVISIBLE, new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L)})); } - return super.isItemStackUsable(aStack); - } - - public boolean doesShowInCreative(OrePrefixes aPrefix, Materials aMaterial, boolean aDoShowAllItems) - { - return (aDoShowAllItems) || (!aPrefix.name().startsWith("toolHead")); - } - - public ItemStack onDispense(IBlockSource aSource, ItemStack aStack) - { - int aDamage = aStack.getItemDamage(); - if ((aDamage >= 25000) && (aDamage < 27000)) - { - if (aDamage >= 26000) { - return Behaviour_Arrow.DEFAULT_PLASTIC.onDispense(this, aSource, aStack); - } - return Behaviour_Arrow.DEFAULT_WOODEN.onDispense(this, aSource, aStack); + + public boolean onLeftClickEntity(ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) { + super.onLeftClickEntity(aStack, aPlayer, aEntity); + int aDamage = aStack.getItemDamage(); + if ((aDamage >= 25000) && (aDamage < 27000)) { + if (aDamage >= 26000) { + return Behaviour_Arrow.DEFAULT_PLASTIC.onLeftClickEntity(this, aStack, aPlayer, aEntity); + } + return Behaviour_Arrow.DEFAULT_WOODEN.onLeftClickEntity(this, aStack, aPlayer, aEntity); + } + return false; } - return super.onDispense(aSource, aStack); - } - - public final ItemStack getContainerItem(ItemStack aStack) - { - int aDamage = aStack.getItemDamage(); - if (aDamage < 32000) { - return null; + + public boolean hasProjectile(SubTag aProjectileType, ItemStack aStack) { + int aDamage = aStack.getItemDamage(); + return ((aDamage >= 25000) && (aDamage < 27000)) || (super.hasProjectile(aProjectileType, aStack)); } - if (aDamage < 32100) { - return ItemList.ThermosCan_Empty.get(1L, new Object[0]); + + public EntityArrow getProjectile(SubTag aProjectileType, ItemStack aStack, World aWorld, double aX, double aY, double aZ) { + int aDamage = aStack.getItemDamage(); + if ((aDamage >= 25000) && (aDamage < 27000)) { + if (aDamage >= 26000) { + return Behaviour_Arrow.DEFAULT_PLASTIC.getProjectile(this, aProjectileType, aStack, aWorld, aX, aY, aZ); + } + return Behaviour_Arrow.DEFAULT_WOODEN.getProjectile(this, aProjectileType, aStack, aWorld, aX, aY, aZ); + } + return super.getProjectile(aProjectileType, aStack, aWorld, aX, aY, aZ); } - if (aDamage < 32200) { - return ItemList.Bottle_Empty.get(1L, new Object[0]); + + public EntityArrow getProjectile(SubTag aProjectileType, ItemStack aStack, World aWorld, EntityLivingBase aEntity, float aSpeed) { + int aDamage = aStack.getItemDamage(); + if ((aDamage >= 25000) && (aDamage < 27000)) { + if (aDamage >= 26000) { + return Behaviour_Arrow.DEFAULT_PLASTIC.getProjectile(this, aProjectileType, aStack, aWorld, aEntity, aSpeed); + } + return Behaviour_Arrow.DEFAULT_WOODEN.getProjectile(this, aProjectileType, aStack, aWorld, aEntity, aSpeed); + } + return super.getProjectile(aProjectileType, aStack, aWorld, aEntity, aSpeed); + } + + public boolean isItemStackUsable(ItemStack aStack) { + int aDamage = aStack.getItemDamage(); + Materials aMaterial = GregTech_API.sGeneratedMaterials[(aDamage % 1000)]; + if ((aDamage >= 25000) && (aDamage < 27000) && (aMaterial != null) && (aMaterial.mEnchantmentTools != null)) { + Enchantment tEnchant = aMaterial.mEnchantmentTools == Enchantment.fortune ? Enchantment.looting : aMaterial.mEnchantmentTools; + if (tEnchant.type == EnumEnchantmentType.weapon) { + NBTTagCompound tNBT = GT_Utility.ItemNBT.getNBT(aStack); + if (!tNBT.getBoolean("GT.HasBeenUpdated")) { + tNBT.setBoolean("GT.HasBeenUpdated", true); + GT_Utility.ItemNBT.setNBT(aStack, tNBT); + GT_Utility.ItemNBT.addEnchantment(aStack, tEnchant, aMaterial.mEnchantmentToolsLevel); + } + } + } + return super.isItemStackUsable(aStack); + } + + public boolean doesShowInCreative(OrePrefixes aPrefix, Materials aMaterial, boolean aDoShowAllItems) { + return (aDoShowAllItems) || (!aPrefix.name().startsWith("toolHead")); + } + + public ItemStack onDispense(IBlockSource aSource, ItemStack aStack) { + int aDamage = aStack.getItemDamage(); + if ((aDamage >= 25000) && (aDamage < 27000)) { + if (aDamage >= 26000) { + return Behaviour_Arrow.DEFAULT_PLASTIC.onDispense(this, aSource, aStack); + } + return Behaviour_Arrow.DEFAULT_WOODEN.onDispense(this, aSource, aStack); + } + return super.onDispense(aSource, aStack); + } + + public final ItemStack getContainerItem(ItemStack aStack) { + int aDamage = aStack.getItemDamage(); + if (aDamage < 32000) { + return null; + } + if (aDamage < 32100) { + return ItemList.ThermosCan_Empty.get(1L, new Object[0]); + } + if (aDamage < 32200) { + return ItemList.Bottle_Empty.get(1L, new Object[0]); + } + return null; } - return null; - } } diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java index 7d2e2029..c1da435e 100644 --- a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java +++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java @@ -5,18 +5,15 @@ import gregtech.api.enums.OrePrefixes; import gregtech.api.items.GT_MetaGenerated_Item_X32; public class GT_MetaGenerated_Item_03 - extends GT_MetaGenerated_Item_X32 -{ - public static GT_MetaGenerated_Item_03 INSTANCE; - - public GT_MetaGenerated_Item_03() - { - super("metaitem.03", new OrePrefixes[] { OrePrefixes.crateGtDust, OrePrefixes.crateGtIngot, OrePrefixes.crateGtGem, OrePrefixes.crateGtPlate }); - INSTANCE = this; - } - - public boolean doesShowInCreative(OrePrefixes aPrefix, Materials aMaterial, boolean aDoShowAllItems) - { - return aDoShowAllItems; - } + extends GT_MetaGenerated_Item_X32 { + public static GT_MetaGenerated_Item_03 INSTANCE; + + public GT_MetaGenerated_Item_03() { + super("metaitem.03", new OrePrefixes[]{OrePrefixes.crateGtDust, OrePrefixes.crateGtIngot, OrePrefixes.crateGtGem, OrePrefixes.crateGtPlate}); + INSTANCE = this; + } + + public boolean doesShowInCreative(OrePrefixes aPrefix, Materials aMaterial, boolean aDoShowAllItems) { + return aDoShowAllItems; + } } diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java index e9d50679..6e98629f 100644 --- a/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java +++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java @@ -1,196 +1,147 @@ package gregtech.common.items; import gregtech.api.GregTech_API; -import gregtech.api.enums.ConfigCategories; -import gregtech.api.enums.ConfigCategories.Tools; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.TC_Aspects; -import gregtech.api.enums.TC_Aspects.TC_AspectStack; -import gregtech.api.enums.ToolDictNames; +import gregtech.api.enums.*; import gregtech.api.items.GT_MetaGenerated_Tool; -import gregtech.api.util.GT_Config; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_ModHandler.RecipeBits; import gregtech.api.util.GT_OreDictUnificator; -import gregtech.common.tools.GT_Tool_Axe; -import gregtech.common.tools.GT_Tool_BranchCutter; -import gregtech.common.tools.GT_Tool_ButcheryKnife; -import gregtech.common.tools.GT_Tool_BuzzSaw; -import gregtech.common.tools.GT_Tool_Chainsaw_HV; -import gregtech.common.tools.GT_Tool_Chainsaw_LV; -import gregtech.common.tools.GT_Tool_Chainsaw_MV; -import gregtech.common.tools.GT_Tool_Crowbar; -import gregtech.common.tools.GT_Tool_Drill_HV; -import gregtech.common.tools.GT_Tool_Drill_LV; -import gregtech.common.tools.GT_Tool_Drill_MV; -import gregtech.common.tools.GT_Tool_File; -import gregtech.common.tools.GT_Tool_HardHammer; -import gregtech.common.tools.GT_Tool_Hoe; -import gregtech.common.tools.GT_Tool_JackHammer; -import gregtech.common.tools.GT_Tool_Knife; -import gregtech.common.tools.GT_Tool_Mortar; -import gregtech.common.tools.GT_Tool_Pickaxe; -import gregtech.common.tools.GT_Tool_Plow; -import gregtech.common.tools.GT_Tool_Plunger; -import gregtech.common.tools.GT_Tool_RollingPin; -import gregtech.common.tools.GT_Tool_Saw; -import gregtech.common.tools.GT_Tool_Scoop; -import gregtech.common.tools.GT_Tool_Screwdriver; -import gregtech.common.tools.GT_Tool_Screwdriver_LV; -import gregtech.common.tools.GT_Tool_Sense; -import gregtech.common.tools.GT_Tool_Shovel; -import gregtech.common.tools.GT_Tool_SoftHammer; -import gregtech.common.tools.GT_Tool_Soldering_Iron; -import gregtech.common.tools.GT_Tool_Sword; -import gregtech.common.tools.GT_Tool_Turbine; -import gregtech.common.tools.GT_Tool_Turbine_Huge; -import gregtech.common.tools.GT_Tool_Turbine_Large; -import gregtech.common.tools.GT_Tool_Turbine_Normal; -import gregtech.common.tools.GT_Tool_Turbine_Small; -import gregtech.common.tools.GT_Tool_UniversalSpade; -import gregtech.common.tools.GT_Tool_WireCutter; -import gregtech.common.tools.GT_Tool_Wrench; -import gregtech.common.tools.GT_Tool_Wrench_HV; -import gregtech.common.tools.GT_Tool_Wrench_LV; -import gregtech.common.tools.GT_Tool_Wrench_MV; +import gregtech.common.tools.*; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class GT_MetaGenerated_Tool_01 - extends GT_MetaGenerated_Tool -{ - public static GT_MetaGenerated_Tool_01 INSTANCE; - public static final short SWORD = 0; - public static final short PICKAXE = 2; - public static final short SHOVEL = 4; - public static final short AXE = 6; - public static final short HOE = 8; - public static final short SAW = 10; - public static final short HARDHAMMER = 12; - public static final short SOFTHAMMER = 14; - public static final short WRENCH = 16; - public static final short FILE = 18; - public static final short CROWBAR = 20; - public static final short SCREWDRIVER = 22; - public static final short MORTAR = 24; - public static final short WIRECUTTER = 26; - public static final short SCOOP = 28; - public static final short BRANCHCUTTER = 30; - public static final short UNIVERSALSPADE = 32; - public static final short KNIFE = 34; - public static final short BUTCHERYKNIFE = 36; - public static final short SICKLE = 38; - public static final short SENSE = 40; - public static final short PLOW = 42; - public static final short PLUNGER = 44; - public static final short ROLLING_PIN = 46; - public static final short DRILL_LV = 100; - public static final short DRILL_MV = 102; - public static final short DRILL_HV = 104; - public static final short CHAINSAW_LV = 110; - public static final short CHAINSAW_MV = 112; - public static final short CHAINSAW_HV = 114; - public static final short WRENCH_LV = 120; - public static final short WRENCH_MV = 122; - public static final short WRENCH_HV = 124; - public static final short JACKHAMMER = 130; - public static final short BUZZSAW = 140; - public static final short SCREWDRIVER_LV = 150; - public static final short SOLDERING_IRON_LV = 160; - public static final short TURBINE_SMALL = 170; - public static final short TURBINE = 172; - public static final short TURBINE_LARGE = 174; - public static final short TURBINE_HUGE = 176; - public static final short TURBINE_BLADE = 178; - - public GT_MetaGenerated_Tool_01() - { - super("metatool.01"); - INSTANCE = this; - addTool(0, "Sword", "", new GT_Tool_Sword(), new Object[] { ToolDictNames.craftingToolSword, ToolDictNames.craftingToolBlade, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 4L) }); - addTool(2, "Pickaxe", "", new GT_Tool_Pickaxe(), new Object[] { ToolDictNames.craftingToolPickaxe, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L) }); - addTool(4, "Shovel", "", new GT_Tool_Shovel(), new Object[] { ToolDictNames.craftingToolShovel, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L) }); - addTool(6, "Axe", "", new GT_Tool_Axe(), new Object[] { ToolDictNames.craftingToolAxe, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 2L) }); - addTool(8, "Hoe", "", new GT_Tool_Hoe(), new Object[] { ToolDictNames.craftingToolHoe, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 4L) }); - addTool(10, "Saw", "Can also harvest Ice", new GT_Tool_Saw(), new Object[] { ToolDictNames.craftingToolSaw, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 2L) }); - GregTech_API.registerTool(addTool(12, "Hammer", "Crushes Ores instead of harvesting them", new GT_Tool_HardHammer(), new Object[] { ToolDictNames.craftingToolHardHammer, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L) }), GregTech_API.sHardHammerList); - GregTech_API.registerTool(addTool(14, "Soft Hammer", "", new GT_Tool_SoftHammer(), new Object[] { ToolDictNames.craftingToolSoftHammer, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.LIMUS, 4L) }), GregTech_API.sSoftHammerList); - GregTech_API.registerTool(addTool(WRENCH, "Wrench", "Hold Leftclick to dismantle Machines", new GT_Tool_Wrench(), new Object[] { ToolDictNames.craftingToolWrench, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L) }), GregTech_API.sWrenchList); - addTool(18, "File", "", new GT_Tool_File(), new Object[] { ToolDictNames.craftingToolFile, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L) }); - GregTech_API.registerTool(addTool(20, "Crowbar", "Dismounts Covers and Rotates Rails", new GT_Tool_Crowbar(), new Object[] { ToolDictNames.craftingToolCrowbar, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 2L) }), GregTech_API.sCrowbarList); - GregTech_API.registerTool(addTool(22, "Screwdriver", "Adjusts Covers and Machines", new GT_Tool_Screwdriver(), new Object[] { ToolDictNames.craftingToolScrewdriver, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L) }), GregTech_API.sScrewdriverList); - addTool(24, "Mortar", "", new GT_Tool_Mortar(), new Object[] { ToolDictNames.craftingToolMortar, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 2L) }); - addTool(26, "Wire Cutter", "", new GT_Tool_WireCutter(), new Object[] { ToolDictNames.craftingToolWireCutter, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L) }); - addTool(28, "Scoop", "", new GT_Tool_Scoop(), new Object[] { ToolDictNames.craftingToolScoop, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.BESTIA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PANNUS, 2L) }); - addTool(30, "Branch Cutter", "", new GT_Tool_BranchCutter(), new Object[] { ToolDictNames.craftingToolBranchCutter, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 2L) }); - GregTech_API.registerTool(addTool(32, "Universal Spade", "", new GT_Tool_UniversalSpade(), new Object[] { ToolDictNames.craftingToolBlade, ToolDictNames.craftingToolShovel, ToolDictNames.craftingToolCrowbar, ToolDictNames.craftingToolSaw, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 1L) }), GregTech_API.sCrowbarList); - addTool(34, "Knife", "", new GT_Tool_Knife(), new Object[] { ToolDictNames.craftingToolBlade, ToolDictNames.craftingToolKnife, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 2L) }); - addTool(36, "Butchery Knife", "Has a slow Attack Rate", new GT_Tool_ButcheryKnife(), new Object[] { ToolDictNames.craftingToolBlade, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 4L) }); - - addTool(40, "Sense", "Because a Scythe doesn't make Sense", new GT_Tool_Sense(), new Object[] { ToolDictNames.craftingToolBlade, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MORTUUS, 2L) }); - addTool(42, "Plow", "Used to get rid of Snow", new GT_Tool_Plow(), new Object[] { ToolDictNames.craftingToolPlow, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 2L) }); - addTool(44, "Plunger", "", new GT_Tool_Plunger(), new Object[] { ToolDictNames.craftingToolPlunger, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 2L) }); - addTool(46, "Rolling Pin", "", new GT_Tool_RollingPin(), new Object[] { ToolDictNames.craftingToolRollingPin, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.LIMUS, 4L) }); - - addTool(100, "Drill (LV)", "", new GT_Tool_Drill_LV(), new Object[] { ToolDictNames.craftingToolMiningDrill, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L) }); - addTool(102, "Drill (MV)", "", new GT_Tool_Drill_MV(), new Object[] { ToolDictNames.craftingToolMiningDrill, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L) }); - addTool(104, "Drill (HV)", "", new GT_Tool_Drill_HV(), new Object[] { ToolDictNames.craftingToolMiningDrill, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L) }); - addTool(110, "Chainsaw (LV)", "Can also harvest Ice", new GT_Tool_Chainsaw_LV(), new Object[] { ToolDictNames.craftingToolSaw, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 2L) }); - addTool(112, "Chainsaw (MV)", "Can also harvest Ice", new GT_Tool_Chainsaw_MV(), new Object[] { ToolDictNames.craftingToolSaw, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 2L) }); - addTool(114, "Chainsaw (HV)", "Can also harvest Ice", new GT_Tool_Chainsaw_HV(), new Object[] { ToolDictNames.craftingToolSaw, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 2L) }); - GregTech_API.registerTool(addTool(WRENCH_LV, "Wrench (LV)", "Hold Leftclick to dismantle Machines", new GT_Tool_Wrench_LV(), new Object[] { ToolDictNames.craftingToolWrench, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L) }), GregTech_API.sWrenchList); - GregTech_API.registerTool(addTool(WRENCH_MV, "Wrench (MV)", "Hold Leftclick to dismantle Machines", new GT_Tool_Wrench_MV(), new Object[] { ToolDictNames.craftingToolWrench, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L) }), GregTech_API.sWrenchList); - GregTech_API.registerTool(addTool(WRENCH_HV, "Wrench (HV)", "Hold Leftclick to dismantle Machines", new GT_Tool_Wrench_HV(), new Object[] { ToolDictNames.craftingToolWrench, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L) }), GregTech_API.sWrenchList); - addTool(130, "JackHammer (HV)", "Breaks Rocks into pieces", new GT_Tool_JackHammer(), new Object[] { ToolDictNames.craftingToolJackHammer, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 2L) }); - addTool(140, "Buzzsaw (LV)", "Not suitable for harvesting Blocks", new GT_Tool_BuzzSaw(), new Object[] { ToolDictNames.craftingToolSaw, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 2L) }); - GregTech_API.registerTool(addTool(150, "Screwdriver (LV)", "Adjusts Covers and Machines", new GT_Tool_Screwdriver_LV(), new Object[] { ToolDictNames.craftingToolScrewdriver, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L) }), GregTech_API.sScrewdriverList); - GregTech_API.registerTool(addTool(SOLDERING_IRON_LV, "Soldering Iron (LV)", "Fixes burned out Circuits. Needs soldering materials in inventory and 10kEU", new GT_Tool_Soldering_Iron(), new Object[] { ToolDictNames.craftingToolSolderingIron, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L) }), GregTech_API.sSolderingToolList); - - addTool(TURBINE_SMALL, "Small Turbine", "Turbine Rotors for your power station", new GT_Tool_Turbine_Small(), new Object[] {}); - addTool(TURBINE, "Turbine", "Turbine Rotors for your power station", new GT_Tool_Turbine_Normal(), new Object[] {}); - addTool(TURBINE_LARGE, "Large Turbine", "Turbine Rotors for your power station", new GT_Tool_Turbine_Large(), new Object[] {}); - addTool(TURBINE_HUGE, "Huge Turbine", "Turbine Rotors for your power station", new GT_Tool_Turbine_Huge(), new Object[] {}); + extends GT_MetaGenerated_Tool { + public static final short SWORD = 0; + public static final short PICKAXE = 2; + public static final short SHOVEL = 4; + public static final short AXE = 6; + public static final short HOE = 8; + public static final short SAW = 10; + public static final short HARDHAMMER = 12; + public static final short SOFTHAMMER = 14; + public static final short WRENCH = 16; + public static final short FILE = 18; + public static final short CROWBAR = 20; + public static final short SCREWDRIVER = 22; + public static final short MORTAR = 24; + public static final short WIRECUTTER = 26; + public static final short SCOOP = 28; + public static final short BRANCHCUTTER = 30; + public static final short UNIVERSALSPADE = 32; + public static final short KNIFE = 34; + public static final short BUTCHERYKNIFE = 36; + public static final short SICKLE = 38; + public static final short SENSE = 40; + public static final short PLOW = 42; + public static final short PLUNGER = 44; + public static final short ROLLING_PIN = 46; + public static final short DRILL_LV = 100; + public static final short DRILL_MV = 102; + public static final short DRILL_HV = 104; + public static final short CHAINSAW_LV = 110; + public static final short CHAINSAW_MV = 112; + public static final short CHAINSAW_HV = 114; + public static final short WRENCH_LV = 120; + public static final short WRENCH_MV = 122; + public static final short WRENCH_HV = 124; + public static final short JACKHAMMER = 130; + public static final short BUZZSAW = 140; + public static final short SCREWDRIVER_LV = 150; + public static final short SOLDERING_IRON_LV = 160; + public static final short TURBINE_SMALL = 170; + public static final short TURBINE = 172; + public static final short TURBINE_LARGE = 174; + public static final short TURBINE_HUGE = 176; + public static final short TURBINE_BLADE = 178; + public static GT_MetaGenerated_Tool_01 INSTANCE; - GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(24, 1, Materials.Flint, Materials.Stone, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " I ", "SIS", "SSS", Character.valueOf('I'), new ItemStack(Items.flint, 1), Character.valueOf('S'), OrePrefixes.stone }); - GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(24, 1, Materials.Bronze, Materials.Stone, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " I ", "SIS", "SSS", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.Bronze), Character.valueOf('S'), OrePrefixes.stone }); - GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(24, 1, Materials.Iron, Materials.Stone, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " I ", "SIS", "SSS", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.Iron), Character.valueOf('S'), OrePrefixes.stone }); - GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(24, 1, Materials.Steel, Materials.Stone, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " I ", "SIS", "SSS", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.Steel), Character.valueOf('S'), OrePrefixes.stone }); - GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(24, 1, Materials.WroughtIron, Materials.Stone, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " I ", "SIS", "SSS", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.WroughtIron), Character.valueOf('S'), OrePrefixes.stone }); - GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(24, 1, Materials.RedSteel, Materials.Stone, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " I ", "SIS", "SSS", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.RedSteel), Character.valueOf('S'), OrePrefixes.stone }); - GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(24, 1, Materials.BlueSteel, Materials.Stone, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " I ", "SIS", "SSS", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.BlueSteel), Character.valueOf('S'), OrePrefixes.stone }); - GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(24, 1, Materials.BlackSteel, Materials.Stone, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " I ", "SIS", "SSS", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.BlackSteel), Character.valueOf('S'), OrePrefixes.stone }); - GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(24, 1, Materials.DamascusSteel, Materials.Stone, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " I ", "SIS", "SSS", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.DamascusSteel), Character.valueOf('S'), OrePrefixes.stone }); - GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(24, 1, Materials.Thaumium, Materials.Stone, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " I ", "SIS", "SSS", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.Thaumium), Character.valueOf('S'), OrePrefixes.stone }); - - GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(46, 1, Materials.Wood, Materials.Wood, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " S", " I ", "S f", Character.valueOf('I'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood) }); - GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(46, 1, Materials.Plastic, Materials.Plastic, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " S", " I ", "S f", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.Plastic), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Plastic) }); - GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(46, 1, Materials.Aluminium, Materials.Aluminium, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " S", " I ", "S f", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.Aluminium), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(46, 1, Materials.StainlessSteel, Materials.StainlessSteel, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " S", " I ", "S f", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.StainlessSteel), Character.valueOf('S'), OrePrefixes.stick.get(Materials.StainlessSteel) }); - + public GT_MetaGenerated_Tool_01() { + super("metatool.01"); + INSTANCE = this; + addTool(0, "Sword", "", new GT_Tool_Sword(), new Object[]{ToolDictNames.craftingToolSword, ToolDictNames.craftingToolBlade, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 4L)}); + addTool(2, "Pickaxe", "", new GT_Tool_Pickaxe(), new Object[]{ToolDictNames.craftingToolPickaxe, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L)}); + addTool(4, "Shovel", "", new GT_Tool_Shovel(), new Object[]{ToolDictNames.craftingToolShovel, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L)}); + addTool(6, "Axe", "", new GT_Tool_Axe(), new Object[]{ToolDictNames.craftingToolAxe, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 2L)}); + addTool(8, "Hoe", "", new GT_Tool_Hoe(), new Object[]{ToolDictNames.craftingToolHoe, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 4L)}); + addTool(10, "Saw", "Can also harvest Ice", new GT_Tool_Saw(), new Object[]{ToolDictNames.craftingToolSaw, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 2L)}); + GregTech_API.registerTool(addTool(12, "Hammer", "Crushes Ores instead of harvesting them", new GT_Tool_HardHammer(), new Object[]{ToolDictNames.craftingToolHardHammer, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)}), GregTech_API.sHardHammerList); + GregTech_API.registerTool(addTool(14, "Soft Hammer", "", new GT_Tool_SoftHammer(), new Object[]{ToolDictNames.craftingToolSoftHammer, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.LIMUS, 4L)}), GregTech_API.sSoftHammerList); + GregTech_API.registerTool(addTool(WRENCH, "Wrench", "Hold Leftclick to dismantle Machines", new GT_Tool_Wrench(), new Object[]{ToolDictNames.craftingToolWrench, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)}), GregTech_API.sWrenchList); + addTool(18, "File", "", new GT_Tool_File(), new Object[]{ToolDictNames.craftingToolFile, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)}); + GregTech_API.registerTool(addTool(20, "Crowbar", "Dismounts Covers and Rotates Rails", new GT_Tool_Crowbar(), new Object[]{ToolDictNames.craftingToolCrowbar, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 2L)}), GregTech_API.sCrowbarList); + GregTech_API.registerTool(addTool(22, "Screwdriver", "Adjusts Covers and Machines", new GT_Tool_Screwdriver(), new Object[]{ToolDictNames.craftingToolScrewdriver, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)}), GregTech_API.sScrewdriverList); + addTool(24, "Mortar", "", new GT_Tool_Mortar(), new Object[]{ToolDictNames.craftingToolMortar, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 2L)}); + addTool(26, "Wire Cutter", "", new GT_Tool_WireCutter(), new Object[]{ToolDictNames.craftingToolWireCutter, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)}); + addTool(28, "Scoop", "", new GT_Tool_Scoop(), new Object[]{ToolDictNames.craftingToolScoop, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.BESTIA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PANNUS, 2L)}); + addTool(30, "Branch Cutter", "", new GT_Tool_BranchCutter(), new Object[]{ToolDictNames.craftingToolBranchCutter, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 2L)}); + GregTech_API.registerTool(addTool(32, "Universal Spade", "", new GT_Tool_UniversalSpade(), new Object[]{ToolDictNames.craftingToolBlade, ToolDictNames.craftingToolShovel, ToolDictNames.craftingToolCrowbar, ToolDictNames.craftingToolSaw, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 1L)}), GregTech_API.sCrowbarList); + addTool(34, "Knife", "", new GT_Tool_Knife(), new Object[]{ToolDictNames.craftingToolBlade, ToolDictNames.craftingToolKnife, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 2L)}); + addTool(36, "Butchery Knife", "Has a slow Attack Rate", new GT_Tool_ButcheryKnife(), new Object[]{ToolDictNames.craftingToolBlade, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 4L)}); - if(!GregTech_API.sSpecialFile.get(ConfigCategories.general, "DisableFlintTools", false)){ - GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(0, 1, Materials.Flint, Materials.Wood, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "F", "F", "S", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('F'), new ItemStack(Items.flint, 1) }); - GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(2, 1, Materials.Flint, Materials.Wood, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "FFF", " S ", " S ", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('F'), new ItemStack(Items.flint, 1) }); - GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(4, 1, Materials.Flint, Materials.Wood, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "F", "S", "S", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('F'), new ItemStack(Items.flint, 1) }); - GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(6, 1, Materials.Flint, Materials.Wood, null), GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "FF", "FS", " S", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('F'), new ItemStack(Items.flint, 1) }); - GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(8, 1, Materials.Flint, Materials.Wood, null), GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "FF", " S", " S", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('F'), new ItemStack(Items.flint, 1) }); - GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(34, 1, Materials.Flint, Materials.Wood, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "F", "S", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('F'), new ItemStack(Items.flint, 1) }); - }if (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.mortar, "Coal", true)) { - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ToolDictNames.craftingToolMortar, new ItemStack(Items.coal, 1) }); + addTool(40, "Sense", "Because a Scythe doesn't make Sense", new GT_Tool_Sense(), new Object[]{ToolDictNames.craftingToolBlade, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MORTUUS, 2L)}); + addTool(42, "Plow", "Used to get rid of Snow", new GT_Tool_Plow(), new Object[]{ToolDictNames.craftingToolPlow, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 2L)}); + addTool(44, "Plunger", "", new GT_Tool_Plunger(), new Object[]{ToolDictNames.craftingToolPlunger, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 2L)}); + addTool(46, "Rolling Pin", "", new GT_Tool_RollingPin(), new Object[]{ToolDictNames.craftingToolRollingPin, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.LIMUS, 4L)}); + + addTool(100, "Drill (LV)", "", new GT_Tool_Drill_LV(), new Object[]{ToolDictNames.craftingToolMiningDrill, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L)}); + addTool(102, "Drill (MV)", "", new GT_Tool_Drill_MV(), new Object[]{ToolDictNames.craftingToolMiningDrill, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L)}); + addTool(104, "Drill (HV)", "", new GT_Tool_Drill_HV(), new Object[]{ToolDictNames.craftingToolMiningDrill, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L)}); + addTool(110, "Chainsaw (LV)", "Can also harvest Ice", new GT_Tool_Chainsaw_LV(), new Object[]{ToolDictNames.craftingToolSaw, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 2L)}); + addTool(112, "Chainsaw (MV)", "Can also harvest Ice", new GT_Tool_Chainsaw_MV(), new Object[]{ToolDictNames.craftingToolSaw, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 2L)}); + addTool(114, "Chainsaw (HV)", "Can also harvest Ice", new GT_Tool_Chainsaw_HV(), new Object[]{ToolDictNames.craftingToolSaw, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 2L)}); + GregTech_API.registerTool(addTool(WRENCH_LV, "Wrench (LV)", "Hold Leftclick to dismantle Machines", new GT_Tool_Wrench_LV(), new Object[]{ToolDictNames.craftingToolWrench, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)}), GregTech_API.sWrenchList); + GregTech_API.registerTool(addTool(WRENCH_MV, "Wrench (MV)", "Hold Leftclick to dismantle Machines", new GT_Tool_Wrench_MV(), new Object[]{ToolDictNames.craftingToolWrench, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)}), GregTech_API.sWrenchList); + GregTech_API.registerTool(addTool(WRENCH_HV, "Wrench (HV)", "Hold Leftclick to dismantle Machines", new GT_Tool_Wrench_HV(), new Object[]{ToolDictNames.craftingToolWrench, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)}), GregTech_API.sWrenchList); + addTool(130, "JackHammer (HV)", "Breaks Rocks into pieces", new GT_Tool_JackHammer(), new Object[]{ToolDictNames.craftingToolJackHammer, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 2L)}); + addTool(140, "Buzzsaw (LV)", "Not suitable for harvesting Blocks", new GT_Tool_BuzzSaw(), new Object[]{ToolDictNames.craftingToolSaw, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 2L)}); + GregTech_API.registerTool(addTool(150, "Screwdriver (LV)", "Adjusts Covers and Machines", new GT_Tool_Screwdriver_LV(), new Object[]{ToolDictNames.craftingToolScrewdriver, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)}), GregTech_API.sScrewdriverList); + GregTech_API.registerTool(addTool(SOLDERING_IRON_LV, "Soldering Iron (LV)", "Fixes burned out Circuits. Needs soldering materials in inventory and 10kEU", new GT_Tool_Soldering_Iron(), new Object[]{ToolDictNames.craftingToolSolderingIron, new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)}), GregTech_API.sSolderingToolList); + + addTool(TURBINE_SMALL, "Small Turbine", "Turbine Rotors for your power station", new GT_Tool_Turbine_Small(), new Object[]{}); + addTool(TURBINE, "Turbine", "Turbine Rotors for your power station", new GT_Tool_Turbine_Normal(), new Object[]{}); + addTool(TURBINE_LARGE, "Large Turbine", "Turbine Rotors for your power station", new GT_Tool_Turbine_Large(), new Object[]{}); + addTool(TURBINE_HUGE, "Huge Turbine", "Turbine Rotors for your power station", new GT_Tool_Turbine_Huge(), new Object[]{}); + + GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(24, 1, Materials.Flint, Materials.Stone, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" I ", "SIS", "SSS", Character.valueOf('I'), new ItemStack(Items.flint, 1), Character.valueOf('S'), OrePrefixes.stone}); + GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(24, 1, Materials.Bronze, Materials.Stone, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" I ", "SIS", "SSS", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.Bronze), Character.valueOf('S'), OrePrefixes.stone}); + GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(24, 1, Materials.Iron, Materials.Stone, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" I ", "SIS", "SSS", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.Iron), Character.valueOf('S'), OrePrefixes.stone}); + GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(24, 1, Materials.Steel, Materials.Stone, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" I ", "SIS", "SSS", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.Steel), Character.valueOf('S'), OrePrefixes.stone}); + GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(24, 1, Materials.WroughtIron, Materials.Stone, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" I ", "SIS", "SSS", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.WroughtIron), Character.valueOf('S'), OrePrefixes.stone}); + GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(24, 1, Materials.RedSteel, Materials.Stone, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" I ", "SIS", "SSS", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.RedSteel), Character.valueOf('S'), OrePrefixes.stone}); + GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(24, 1, Materials.BlueSteel, Materials.Stone, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" I ", "SIS", "SSS", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.BlueSteel), Character.valueOf('S'), OrePrefixes.stone}); + GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(24, 1, Materials.BlackSteel, Materials.Stone, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" I ", "SIS", "SSS", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.BlackSteel), Character.valueOf('S'), OrePrefixes.stone}); + GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(24, 1, Materials.DamascusSteel, Materials.Stone, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" I ", "SIS", "SSS", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.DamascusSteel), Character.valueOf('S'), OrePrefixes.stone}); + GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(24, 1, Materials.Thaumium, Materials.Stone, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" I ", "SIS", "SSS", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.Thaumium), Character.valueOf('S'), OrePrefixes.stone}); + + GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(46, 1, Materials.Wood, Materials.Wood, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" S", " I ", "S f", Character.valueOf('I'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood)}); + GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(46, 1, Materials.Plastic, Materials.Plastic, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" S", " I ", "S f", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.Plastic), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Plastic)}); + GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(46, 1, Materials.Aluminium, Materials.Aluminium, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" S", " I ", "S f", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.Aluminium), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(46, 1, Materials.StainlessSteel, Materials.StainlessSteel, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" S", " I ", "S f", Character.valueOf('I'), OrePrefixes.ingot.get(Materials.StainlessSteel), Character.valueOf('S'), OrePrefixes.stick.get(Materials.StainlessSteel)}); + + + if (!GregTech_API.sSpecialFile.get(ConfigCategories.general, "DisableFlintTools", false)) { + GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(0, 1, Materials.Flint, Materials.Wood, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"F", "F", "S", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('F'), new ItemStack(Items.flint, 1)}); + GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(2, 1, Materials.Flint, Materials.Wood, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"FFF", " S ", " S ", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('F'), new ItemStack(Items.flint, 1)}); + GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(4, 1, Materials.Flint, Materials.Wood, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"F", "S", "S", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('F'), new ItemStack(Items.flint, 1)}); + GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(6, 1, Materials.Flint, Materials.Wood, null), GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"FF", "FS", " S", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('F'), new ItemStack(Items.flint, 1)}); + GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(8, 1, Materials.Flint, Materials.Wood, null), GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"FF", " S", " S", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('F'), new ItemStack(Items.flint, 1)}); + GT_ModHandler.addCraftingRecipe(INSTANCE.getToolWithStats(34, 1, Materials.Flint, Materials.Wood, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"F", "S", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('F'), new ItemStack(Items.flint, 1)}); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.mortar, "Coal", true)) { + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ToolDictNames.craftingToolMortar, new ItemStack(Items.coal, 1)}); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.mortar, "Clay", true)) { + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Clay, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ToolDictNames.craftingToolMortar, new ItemStack(Blocks.clay, 1)}); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.mortar, "Wheat", true)) { + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wheat, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ToolDictNames.craftingToolMortar, new ItemStack(Items.wheat, 1)}); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.mortar, "Flint", true)) { + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Items.flint, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ToolDictNames.craftingToolMortar, new ItemStack(Blocks.gravel, 1)}); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.mortar, "Blaze", true)) { + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Items.blaze_powder, 2), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ToolDictNames.craftingToolMortar, new ItemStack(Items.blaze_rod, 1)}); + } } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.mortar, "Clay", true)) { - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Clay, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ToolDictNames.craftingToolMortar, new ItemStack(Blocks.clay, 1) }); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.mortar, "Wheat", true)) { - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wheat, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ToolDictNames.craftingToolMortar, new ItemStack(Items.wheat, 1) }); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.mortar, "Flint", true)) { - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Items.flint, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ToolDictNames.craftingToolMortar, new ItemStack(Blocks.gravel, 1) }); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.mortar, "Blaze", true)) { - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Items.blaze_powder, 2), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ToolDictNames.craftingToolMortar, new ItemStack(Items.blaze_rod, 1) }); - } - } } diff --git a/src/main/java/gregtech/common/items/GT_NeutronReflector_Item.java b/src/main/java/gregtech/common/items/GT_NeutronReflector_Item.java index a9556cc4..ea132a7d 100644 --- a/src/main/java/gregtech/common/items/GT_NeutronReflector_Item.java +++ b/src/main/java/gregtech/common/items/GT_NeutronReflector_Item.java @@ -8,61 +8,51 @@ import ic2.core.item.reactor.ItemReactorMOX; import net.minecraft.item.ItemStack; public class GT_NeutronReflector_Item - extends GT_Generic_Item - implements IReactorComponent -{ - public GT_NeutronReflector_Item(String aUnlocalized, String aEnglish, int aMaxDamage) - { - super(aUnlocalized, aEnglish, "Undestructable"); - this.setMaxStackSize(64); - this.setMaxDamage(aMaxDamage); - } - - public boolean acceptUraniumPulse(IReactor reactor, ItemStack yourStack, ItemStack pulsingStack, int youX, int youY, int pulseX, int pulseY, boolean heatrun) { - if (!heatrun) - { - if ((pulsingStack.getItem() instanceof ItemReactorMOX)) - { - float breedereffectiveness = reactor.getHeat() / reactor.getMaxHeat(); - float ReaktorOutput = 4.0F * breedereffectiveness + 1.0F; - reactor.addOutput(ReaktorOutput); - } - else - { - float tEnergy=1.0f; - if(pulsingStack.getItem() instanceof GT_RadioactiveCellIC_Item){ - tEnergy = (float) ((GT_RadioactiveCellIC_Item)pulsingStack.getItem()).sEnergy; - } - reactor.addOutput(tEnergy); - } - } - return true; - } - - public boolean canStoreHeat(IReactor aReactor, ItemStack aStack, int x, int y) - { - return false; - } - - public int getMaxHeat(IReactor aReactor, ItemStack aStack, int x, int y) - { - return 0; - } - - public int getCurrentHeat(IReactor aReactor, ItemStack aStack, int x, int y) - { - return 0; - } - - public float influenceExplosion(IReactor aReactor, ItemStack aStack) - { - return -1.0F; - } - - public int alterHeat(IReactor aReactor, ItemStack aStack, int x, int y, int aHeat) - { - return aHeat; - } - - public void processChamber(IReactor aReactor, ItemStack aStack, int x, int y, boolean aHeatRun) {} + extends GT_Generic_Item + implements IReactorComponent { + public GT_NeutronReflector_Item(String aUnlocalized, String aEnglish, int aMaxDamage) { + super(aUnlocalized, aEnglish, "Undestructable"); + this.setMaxStackSize(64); + this.setMaxDamage(aMaxDamage); + } + + public boolean acceptUraniumPulse(IReactor reactor, ItemStack yourStack, ItemStack pulsingStack, int youX, int youY, int pulseX, int pulseY, boolean heatrun) { + if (!heatrun) { + if ((pulsingStack.getItem() instanceof ItemReactorMOX)) { + float breedereffectiveness = reactor.getHeat() / reactor.getMaxHeat(); + float ReaktorOutput = 4.0F * breedereffectiveness + 1.0F; + reactor.addOutput(ReaktorOutput); + } else { + float tEnergy = 1.0f; + if (pulsingStack.getItem() instanceof GT_RadioactiveCellIC_Item) { + tEnergy = (float) ((GT_RadioactiveCellIC_Item) pulsingStack.getItem()).sEnergy; + } + reactor.addOutput(tEnergy); + } + } + return true; + } + + public boolean canStoreHeat(IReactor aReactor, ItemStack aStack, int x, int y) { + return false; + } + + public int getMaxHeat(IReactor aReactor, ItemStack aStack, int x, int y) { + return 0; + } + + public int getCurrentHeat(IReactor aReactor, ItemStack aStack, int x, int y) { + return 0; + } + + public float influenceExplosion(IReactor aReactor, ItemStack aStack) { + return -1.0F; + } + + public int alterHeat(IReactor aReactor, ItemStack aStack, int x, int y, int aHeat) { + return aHeat; + } + + public void processChamber(IReactor aReactor, ItemStack aStack, int x, int y, boolean aHeatRun) { + } } diff --git a/src/main/java/gregtech/common/items/GT_SensorCard_Item.java b/src/main/java/gregtech/common/items/GT_SensorCard_Item.java index ac816acd..36a83717 100644 --- a/src/main/java/gregtech/common/items/GT_SensorCard_Item.java +++ b/src/main/java/gregtech/common/items/GT_SensorCard_Item.java @@ -5,10 +5,6 @@ import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.interfaces.tileentity.IGregTechDeviceInformation; import gregtech.api.items.GT_Generic_Item; import gregtech.api.util.GT_LanguageManager; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; -import java.util.UUID; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -16,91 +12,81 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChunkCoordinates; import net.minecraft.world.World; -import shedar.mods.ic2.nuclearcontrol.api.CardState; -import shedar.mods.ic2.nuclearcontrol.api.ICardWrapper; -import shedar.mods.ic2.nuclearcontrol.api.IPanelDataSource; -import shedar.mods.ic2.nuclearcontrol.api.IRemoteSensor; -import shedar.mods.ic2.nuclearcontrol.api.PanelSetting; -import shedar.mods.ic2.nuclearcontrol.api.PanelString; +import shedar.mods.ic2.nuclearcontrol.api.*; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.UUID; public class GT_SensorCard_Item - extends GT_Generic_Item - implements IRemoteSensor, IPanelDataSource -{ - public GT_SensorCard_Item(String aUnlocalized, String aEnglish) - { - super(aUnlocalized, aEnglish, "Insert into Display Panel"); - setMaxStackSize(1); - } - - public void addAdditionalToolTips(List aList, ItemStack aStack) - { - super.addAdditionalToolTips(aList, aStack); - if (aStack != null) - { - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) - { - aList.add("Missing Coodinates!"); - } - else - { - aList.add("Device at:"); - aList.add(String.format("x: %d, y: %d, z: %d", new Object[] { Integer.valueOf(tNBT.getInteger("x")), Integer.valueOf(tNBT.getInteger("y")), Integer.valueOf(tNBT.getInteger("z")) })); - } - } - } + extends GT_Generic_Item + implements IRemoteSensor, IPanelDataSource { + private static final UUID CARD_TYPE = new UUID(0L, 41L); - @Override - public CardState update(TileEntity aPanel, ICardWrapper aCard, int aMaxRange) { - return update(aPanel.getWorldObj(), aCard, aMaxRange); - } - - @Override - public CardState update(World world, ICardWrapper aCard, int aMaxRange) { - ChunkCoordinates target = aCard.getTarget(); - - TileEntity tTileEntity = world.getTileEntity(target.posX, target.posY, target.posZ); - if ((tTileEntity != null) && ((tTileEntity instanceof IGregTechDeviceInformation)) && (((IGregTechDeviceInformation)tTileEntity).isGivingInformation())) { - String[] tInfoData = ((IGregTechDeviceInformation)tTileEntity).getInfoData(); - for (int i = 0; i < tInfoData.length; i++) { - aCard.setString("mString" + i, tInfoData[i]); - } - return CardState.OK; + public GT_SensorCard_Item(String aUnlocalized, String aEnglish) { + super(aUnlocalized, aEnglish, "Insert into Display Panel"); + setMaxStackSize(1); } - return CardState.NO_TARGET; - } - public List getStringData(int aSettings, ICardWrapper aCard, boolean aLabels) - { - List rList = new LinkedList(); - for (int i = 0; i < 8; i++) { - if ((aSettings & 1 << i) != 0) - { - PanelString line = new PanelString(); - line.textLeft = GT_LanguageManager.getTranslation(aCard.getString("mString" + i), "\\\\"); - rList.add(line); - } + public void addAdditionalToolTips(List aList, ItemStack aStack) { + super.addAdditionalToolTips(aList, aStack); + if (aStack != null) { + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) { + aList.add("Missing Coodinates!"); + } else { + aList.add("Device at:"); + aList.add(String.format("x: %d, y: %d, z: %d", new Object[]{Integer.valueOf(tNBT.getInteger("x")), Integer.valueOf(tNBT.getInteger("y")), Integer.valueOf(tNBT.getInteger("z"))})); + } + } } - return rList; - } - - public List getSettingsList() - { - List rList = new ArrayList(30); - for (int i = 0; i < 8; i++) { - rList.add(new PanelSetting("" + (i + 1), 1 << i, getCardType())); + + @Override + public CardState update(TileEntity aPanel, ICardWrapper aCard, int aMaxRange) { + return update(aPanel.getWorldObj(), aCard, aMaxRange); + } + + @Override + public CardState update(World world, ICardWrapper aCard, int aMaxRange) { + ChunkCoordinates target = aCard.getTarget(); + + TileEntity tTileEntity = world.getTileEntity(target.posX, target.posY, target.posZ); + if ((tTileEntity != null) && ((tTileEntity instanceof IGregTechDeviceInformation)) && (((IGregTechDeviceInformation) tTileEntity).isGivingInformation())) { + String[] tInfoData = ((IGregTechDeviceInformation) tTileEntity).getInfoData(); + for (int i = 0; i < tInfoData.length; i++) { + aCard.setString("mString" + i, tInfoData[i]); + } + return CardState.OK; + } + return CardState.NO_TARGET; + } + + public List getStringData(int aSettings, ICardWrapper aCard, boolean aLabels) { + List rList = new LinkedList(); + for (int i = 0; i < 8; i++) { + if ((aSettings & 1 << i) != 0) { + PanelString line = new PanelString(); + line.textLeft = GT_LanguageManager.getTranslation(aCard.getString("mString" + i), "\\\\"); + rList.add(line); + } + } + return rList; + } + + public List getSettingsList() { + List rList = new ArrayList(30); + for (int i = 0; i < 8; i++) { + rList.add(new PanelSetting("" + (i + 1), 1 << i, getCardType())); + } + return rList; + } + + public UUID getCardType() { + return CARD_TYPE; + } + + @SideOnly(Side.CLIENT) + public void getSubItems(Item var1, CreativeTabs aTab, List aList) { } - return rList; - } - - private static final UUID CARD_TYPE = new UUID(0L, 41L); - - public UUID getCardType() - { - return CARD_TYPE; - } - - @SideOnly(Side.CLIENT) - public void getSubItems(Item var1, CreativeTabs aTab, List aList) {} } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Arrow.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Arrow.java index d0be7352..acb6986e 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Arrow.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Arrow.java @@ -3,8 +3,6 @@ package gregtech.common.items.behaviors; import gregtech.api.enums.SubTag; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.util.GT_Utility; -import gregtech.api.util.GT_Utility.GT_EnchantmentHelper; -import gregtech.api.util.GT_Utility.ItemNBT; import gregtech.common.entities.GT_Entity_Arrow; import net.minecraft.block.BlockDispenser; import net.minecraft.dispenser.IBlockSource; @@ -13,7 +11,6 @@ import net.minecraft.enchantment.Enchantment; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.PlayerCapabilities; import net.minecraft.entity.projectile.EntityArrow; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -21,109 +18,95 @@ import net.minecraft.util.EnumFacing; import net.minecraft.world.World; public class Behaviour_Arrow - extends Behaviour_None -{ - public static Behaviour_Arrow DEFAULT_WOODEN = new Behaviour_Arrow(GT_Entity_Arrow.class, 1.0F, 6.0F); - public static Behaviour_Arrow DEFAULT_PLASTIC = new Behaviour_Arrow(GT_Entity_Arrow.class, 1.5F, 6.0F); - private final int mLevel; - private final Enchantment mEnchantment; - private final float mSpeedMultiplier; - private final float mPrecision; - private final Class mArrow; - - public Behaviour_Arrow(Class aArrow, float aSpeed, float aPrecision) - { - this(aArrow, aSpeed, aPrecision, null, 0); - } - - public Behaviour_Arrow(Class aArrow, float aSpeed, float aPrecision, Enchantment aEnchantment, int aLevel) - { - this.mArrow = aArrow; - this.mSpeedMultiplier = aSpeed; - this.mPrecision = aPrecision; - this.mEnchantment = aEnchantment; - this.mLevel = aLevel; - } - - public boolean onLeftClickEntity(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) - { - if ((aEntity instanceof EntityLivingBase)) - { - GT_Utility.GT_EnchantmentHelper.applyBullshitA((EntityLivingBase)aEntity, aPlayer, aStack); - GT_Utility.GT_EnchantmentHelper.applyBullshitB(aPlayer, aEntity, aStack); - if (!aPlayer.capabilities.isCreativeMode) { - aStack.stackSize -= 1; - } - if (aStack.stackSize <= 0) { - aPlayer.destroyCurrentEquippedItem(); - } - return false; + extends Behaviour_None { + public static Behaviour_Arrow DEFAULT_WOODEN = new Behaviour_Arrow(GT_Entity_Arrow.class, 1.0F, 6.0F); + public static Behaviour_Arrow DEFAULT_PLASTIC = new Behaviour_Arrow(GT_Entity_Arrow.class, 1.5F, 6.0F); + private final int mLevel; + private final Enchantment mEnchantment; + private final float mSpeedMultiplier; + private final float mPrecision; + private final Class mArrow; + + public Behaviour_Arrow(Class aArrow, float aSpeed, float aPrecision) { + this(aArrow, aSpeed, aPrecision, null, 0); } - return false; - } - - public boolean isItemStackUsable(GT_MetaBase_Item aItem, ItemStack aStack) - { - if ((this.mEnchantment != null) && (this.mLevel > 0)) - { - NBTTagCompound tNBT = GT_Utility.ItemNBT.getNBT(aStack); - if (!tNBT.getBoolean("GT.HasBeenUpdated")) - { - tNBT.setBoolean("GT.HasBeenUpdated", true); - GT_Utility.ItemNBT.setNBT(aStack, tNBT); - GT_Utility.ItemNBT.addEnchantment(aStack, this.mEnchantment, this.mLevel); - } + + public Behaviour_Arrow(Class aArrow, float aSpeed, float aPrecision, Enchantment aEnchantment, int aLevel) { + this.mArrow = aArrow; + this.mSpeedMultiplier = aSpeed; + this.mPrecision = aPrecision; + this.mEnchantment = aEnchantment; + this.mLevel = aLevel; } - return true; - } - - public boolean canDispense(GT_MetaBase_Item aItem, IBlockSource aSource, ItemStack aStack) - { - return true; - } - - public ItemStack onDispense(GT_MetaBase_Item aItem, IBlockSource aSource, ItemStack aStack) - { - World aWorld = aSource.getWorld(); - IPosition tPosition = BlockDispenser.func_149939_a(aSource); - EnumFacing tFacing = BlockDispenser.func_149937_b(aSource.getBlockMetadata()); - GT_Entity_Arrow tEntityArrow = (GT_Entity_Arrow)getProjectile(aItem, SubTag.PROJECTILE_ARROW, aStack, aWorld, tPosition.getX(), tPosition.getY(), tPosition.getZ()); - if (tEntityArrow != null) - { - tEntityArrow.setThrowableHeading(tFacing.getFrontOffsetX(), tFacing.getFrontOffsetY() + 0.1F, tFacing.getFrontOffsetZ(), this.mSpeedMultiplier * 1.1F, this.mPrecision); - tEntityArrow.setArrowItem(aStack); - tEntityArrow.canBePickedUp = 1; - aWorld.spawnEntityInWorld(tEntityArrow); - if (aStack.stackSize < 100) { - aStack.stackSize -= 1; - } - return aStack; + + public boolean onLeftClickEntity(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) { + if ((aEntity instanceof EntityLivingBase)) { + GT_Utility.GT_EnchantmentHelper.applyBullshitA((EntityLivingBase) aEntity, aPlayer, aStack); + GT_Utility.GT_EnchantmentHelper.applyBullshitB(aPlayer, aEntity, aStack); + if (!aPlayer.capabilities.isCreativeMode) { + aStack.stackSize -= 1; + } + if (aStack.stackSize <= 0) { + aPlayer.destroyCurrentEquippedItem(); + } + return false; + } + return false; } - return super.onDispense(aItem, aSource, aStack); - } - - public boolean hasProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack) - { - return aProjectileType == SubTag.PROJECTILE_ARROW; - } - - public EntityArrow getProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, double aX, double aY, double aZ) - { - if (!hasProjectile(aItem, aProjectileType, aStack)) { - return null; + + public boolean isItemStackUsable(GT_MetaBase_Item aItem, ItemStack aStack) { + if ((this.mEnchantment != null) && (this.mLevel > 0)) { + NBTTagCompound tNBT = GT_Utility.ItemNBT.getNBT(aStack); + if (!tNBT.getBoolean("GT.HasBeenUpdated")) { + tNBT.setBoolean("GT.HasBeenUpdated", true); + GT_Utility.ItemNBT.setNBT(aStack, tNBT); + GT_Utility.ItemNBT.addEnchantment(aStack, this.mEnchantment, this.mLevel); + } + } + return true; } - GT_Entity_Arrow rArrow = (GT_Entity_Arrow)GT_Utility.callConstructor(this.mArrow.getName(), -1, null, true, new Object[] { aWorld, Double.valueOf(aX), Double.valueOf(aY), Double.valueOf(aZ) }); - rArrow.setArrowItem(aStack); - return rArrow; - } - - public EntityArrow getProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, EntityLivingBase aEntity, float aSpeed) - { - if (!hasProjectile(aItem, aProjectileType, aStack)) { - return null; + + public boolean canDispense(GT_MetaBase_Item aItem, IBlockSource aSource, ItemStack aStack) { + return true; + } + + public ItemStack onDispense(GT_MetaBase_Item aItem, IBlockSource aSource, ItemStack aStack) { + World aWorld = aSource.getWorld(); + IPosition tPosition = BlockDispenser.func_149939_a(aSource); + EnumFacing tFacing = BlockDispenser.func_149937_b(aSource.getBlockMetadata()); + GT_Entity_Arrow tEntityArrow = (GT_Entity_Arrow) getProjectile(aItem, SubTag.PROJECTILE_ARROW, aStack, aWorld, tPosition.getX(), tPosition.getY(), tPosition.getZ()); + if (tEntityArrow != null) { + tEntityArrow.setThrowableHeading(tFacing.getFrontOffsetX(), tFacing.getFrontOffsetY() + 0.1F, tFacing.getFrontOffsetZ(), this.mSpeedMultiplier * 1.1F, this.mPrecision); + tEntityArrow.setArrowItem(aStack); + tEntityArrow.canBePickedUp = 1; + aWorld.spawnEntityInWorld(tEntityArrow); + if (aStack.stackSize < 100) { + aStack.stackSize -= 1; + } + return aStack; + } + return super.onDispense(aItem, aSource, aStack); + } + + public boolean hasProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack) { + return aProjectileType == SubTag.PROJECTILE_ARROW; + } + + public EntityArrow getProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, double aX, double aY, double aZ) { + if (!hasProjectile(aItem, aProjectileType, aStack)) { + return null; + } + GT_Entity_Arrow rArrow = (GT_Entity_Arrow) GT_Utility.callConstructor(this.mArrow.getName(), -1, null, true, new Object[]{aWorld, Double.valueOf(aX), Double.valueOf(aY), Double.valueOf(aZ)}); + rArrow.setArrowItem(aStack); + return rArrow; + } + + public EntityArrow getProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, EntityLivingBase aEntity, float aSpeed) { + if (!hasProjectile(aItem, aProjectileType, aStack)) { + return null; + } + GT_Entity_Arrow rArrow = (GT_Entity_Arrow) GT_Utility.callConstructor(this.mArrow.getName(), -1, null, true, new Object[]{aWorld, aEntity, Float.valueOf(this.mSpeedMultiplier * aSpeed)}); + rArrow.setArrowItem(aStack); + return rArrow; } - GT_Entity_Arrow rArrow = (GT_Entity_Arrow)GT_Utility.callConstructor(this.mArrow.getName(), -1, null, true, new Object[] { aWorld, aEntity, Float.valueOf(this.mSpeedMultiplier * aSpeed) }); - rArrow.setArrowItem(aStack); - return rArrow; - } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Arrow_Potion.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Arrow_Potion.java index 98c099e4..80a646bd 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Arrow_Potion.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Arrow_Potion.java @@ -3,7 +3,6 @@ package gregtech.common.items.behaviors; import gregtech.api.enums.SubTag; import gregtech.api.items.GT_MetaBase_Item; import gregtech.common.entities.GT_Entity_Arrow_Potion; -import java.util.Random; import net.minecraft.enchantment.Enchantment; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -14,53 +13,47 @@ import net.minecraft.potion.PotionEffect; import net.minecraft.world.World; public class Behaviour_Arrow_Potion - extends Behaviour_Arrow -{ - private final int[] mPotions; - - public Behaviour_Arrow_Potion(float aSpeed, float aPrecision, int... aPotions) - { - super(GT_Entity_Arrow_Potion.class, aSpeed, aPrecision); - this.mPotions = aPotions; - } - - public Behaviour_Arrow_Potion(float aSpeed, float aPrecision, Enchantment aEnchantment, int aLevel, int... aPotions) - { - super(GT_Entity_Arrow_Potion.class, aSpeed, aPrecision, aEnchantment, aLevel); - this.mPotions = aPotions; - } - - public boolean onLeftClickEntity(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) - { - if ((aEntity instanceof EntityLivingBase)) { - for (int i = 3; i < this.mPotions.length; i += 4) { - if (aEntity.worldObj.rand.nextInt(100) < this.mPotions[i]) { - ((EntityLivingBase)aEntity).addPotionEffect(new PotionEffect(this.mPotions[(i - 3)], this.mPotions[(i - 2)], this.mPotions[(i - 1)], false)); + extends Behaviour_Arrow { + private final int[] mPotions; + + public Behaviour_Arrow_Potion(float aSpeed, float aPrecision, int... aPotions) { + super(GT_Entity_Arrow_Potion.class, aSpeed, aPrecision); + this.mPotions = aPotions; + } + + public Behaviour_Arrow_Potion(float aSpeed, float aPrecision, Enchantment aEnchantment, int aLevel, int... aPotions) { + super(GT_Entity_Arrow_Potion.class, aSpeed, aPrecision, aEnchantment, aLevel); + this.mPotions = aPotions; + } + + public boolean onLeftClickEntity(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) { + if ((aEntity instanceof EntityLivingBase)) { + for (int i = 3; i < this.mPotions.length; i += 4) { + if (aEntity.worldObj.rand.nextInt(100) < this.mPotions[i]) { + ((EntityLivingBase) aEntity).addPotionEffect(new PotionEffect(this.mPotions[(i - 3)], this.mPotions[(i - 2)], this.mPotions[(i - 1)], false)); + } + } } - } + return super.onLeftClickEntity(aItem, aStack, aPlayer, aEntity); } - return super.onLeftClickEntity(aItem, aStack, aPlayer, aEntity); - } - - public EntityArrow getProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, double aX, double aY, double aZ) - { - if (!hasProjectile(aItem, aProjectileType, aStack)) { - return null; + + public EntityArrow getProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, double aX, double aY, double aZ) { + if (!hasProjectile(aItem, aProjectileType, aStack)) { + return null; + } + GT_Entity_Arrow_Potion rArrow = new GT_Entity_Arrow_Potion(aWorld, aX, aY, aZ); + rArrow.setArrowItem(aStack); + rArrow.setPotions(this.mPotions); + return rArrow; } - GT_Entity_Arrow_Potion rArrow = new GT_Entity_Arrow_Potion(aWorld, aX, aY, aZ); - rArrow.setArrowItem(aStack); - rArrow.setPotions(this.mPotions); - return rArrow; - } - - public EntityArrow getProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, EntityLivingBase aEntity, float aSpeed) - { - if (!hasProjectile(aItem, aProjectileType, aStack)) { - return null; + + public EntityArrow getProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, EntityLivingBase aEntity, float aSpeed) { + if (!hasProjectile(aItem, aProjectileType, aStack)) { + return null; + } + GT_Entity_Arrow_Potion rArrow = new GT_Entity_Arrow_Potion(aWorld, aEntity, aSpeed); + rArrow.setArrowItem(aStack); + rArrow.setPotions(this.mPotions); + return rArrow; } - GT_Entity_Arrow_Potion rArrow = new GT_Entity_Arrow_Potion(aWorld, aEntity, aSpeed); - rArrow.setArrowItem(aStack); - rArrow.setPotions(this.mPotions); - return rArrow; - } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Crowbar.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Crowbar.java index 827239a6..8524f7ca 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Crowbar.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Crowbar.java @@ -4,7 +4,6 @@ import gregtech.api.GregTech_API; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; -import java.util.Map; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; @@ -12,52 +11,45 @@ import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class Behaviour_Crowbar - extends Behaviour_None -{ - private final int mVanillaCosts; - private final int mEUCosts; - - public Behaviour_Crowbar(int aVanillaCosts, int aEUCosts) - { - this.mVanillaCosts = aVanillaCosts; - this.mEUCosts = aEUCosts; - } - - public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) - { - if (aWorld.isRemote) { - return false; + extends Behaviour_None { + private final int mVanillaCosts; + private final int mEUCosts; + + public Behaviour_Crowbar(int aVanillaCosts, int aEUCosts) { + this.mVanillaCosts = aVanillaCosts; + this.mEUCosts = aEUCosts; } - if (GT_ModHandler.getModItem("Railcraft", "fluid.creosote.bucket", 1L) != null) { - return false; + + public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + if (aWorld.isRemote) { + return false; + } + if (GT_ModHandler.getModItem("Railcraft", "fluid.creosote.bucket", 1L) != null) { + return false; + } + Block aBlock = aWorld.getBlock(aX, aY, aZ); + if (aBlock == null) { + return false; + } + byte aMeta = (byte) aWorld.getBlockMetadata(aX, aY, aZ); + if (aBlock == Blocks.rail) { + if (GT_ModHandler.damageOrDechargeItem(aStack, this.mVanillaCosts, this.mEUCosts, aPlayer)) { + aWorld.isRemote = true; + aWorld.setBlock(aX, aY, aZ, aBlock, (aMeta + 1) % 10, 0); + aWorld.isRemote = false; + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(0)), 1.0F, -1.0F, aX, aY, aZ); + } + return true; + } + if ((aBlock == Blocks.detector_rail) || (aBlock == Blocks.activator_rail) || (aBlock == Blocks.golden_rail)) { + if (GT_ModHandler.damageOrDechargeItem(aStack, this.mVanillaCosts, this.mEUCosts, aPlayer)) { + aWorld.isRemote = true; + aWorld.setBlock(aX, aY, aZ, aBlock, aMeta / 8 * 8 + (aMeta % 8 + 1) % 6, 0); + aWorld.isRemote = false; + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(0)), 1.0F, -1.0F, aX, aY, aZ); + } + return true; + } + return false; } - Block aBlock = aWorld.getBlock(aX, aY, aZ); - if (aBlock == null) { - return false; - } - byte aMeta = (byte)aWorld.getBlockMetadata(aX, aY, aZ); - if (aBlock == Blocks.rail) - { - if (GT_ModHandler.damageOrDechargeItem(aStack, this.mVanillaCosts, this.mEUCosts, aPlayer)) - { - aWorld.isRemote = true; - aWorld.setBlock(aX, aY, aZ, aBlock, (aMeta + 1) % 10, 0); - aWorld.isRemote = false; - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(0)), 1.0F, -1.0F, aX, aY, aZ); - } - return true; - } - if ((aBlock == Blocks.detector_rail) || (aBlock == Blocks.activator_rail) || (aBlock == Blocks.golden_rail)) - { - if (GT_ModHandler.damageOrDechargeItem(aStack, this.mVanillaCosts, this.mEUCosts, aPlayer)) - { - aWorld.isRemote = true; - aWorld.setBlock(aX, aY, aZ, aBlock, aMeta / 8 * 8 + (aMeta % 8 + 1) % 6, 0); - aWorld.isRemote = false; - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(0)), 1.0F, -1.0F, aX, aY, aZ); - } - return true; - } - return false; - } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_DataOrb.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_DataOrb.java index b09b23cc..995a438f 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_DataOrb.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_DataOrb.java @@ -2,114 +2,102 @@ package gregtech.common.items.behaviors; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.util.GT_Utility; -import java.util.List; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; +import java.util.List; + public class Behaviour_DataOrb - extends Behaviour_None -{ - public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) - { - if (!getDataTitle(aStack).equals("")) - { - aList.add(getDataTitle(aStack)); - aList.add(getDataName(aStack)); + extends Behaviour_None { + public static void copyInventory(ItemStack[] aInventory, ItemStack[] aNewContent, int aIndexlength) { + for (int i = 0; i < aIndexlength; i++) { + if (aNewContent[i] == null) { + aInventory[i] = null; + } else { + aInventory[i] = GT_Utility.copy(new Object[]{aNewContent[i]}); + } + } } - return aList; - } - - public static void copyInventory(ItemStack[] aInventory, ItemStack[] aNewContent, int aIndexlength) - { - for (int i = 0; i < aIndexlength; i++) { - if (aNewContent[i] == null) { - aInventory[i] = null; - } else { - aInventory[i] = GT_Utility.copy(new Object[] { aNewContent[i] }); - } + + public static String getDataName(ItemStack aStack) { + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) { + return ""; + } + return tNBT.getString("mDataName"); } - } - - public static String getDataName(ItemStack aStack) - { - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) { - return ""; + + public static String getDataTitle(ItemStack aStack) { + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) { + return ""; + } + return tNBT.getString("mDataTitle"); } - return tNBT.getString("mDataName"); - } - - public static String getDataTitle(ItemStack aStack) - { - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) { - return ""; + + public static NBTTagCompound setDataName(ItemStack aStack, String aDataName) { + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) { + tNBT = new NBTTagCompound(); + } + tNBT.setString("mDataName", aDataName); + aStack.setTagCompound(tNBT); + return tNBT; } - return tNBT.getString("mDataTitle"); - } - - public static NBTTagCompound setDataName(ItemStack aStack, String aDataName) - { - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) { - tNBT = new NBTTagCompound(); + + public static NBTTagCompound setDataTitle(ItemStack aStack, String aDataTitle) { + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) { + tNBT = new NBTTagCompound(); + } + tNBT.setString("mDataTitle", aDataTitle); + aStack.setTagCompound(tNBT); + return tNBT; } - tNBT.setString("mDataName", aDataName); - aStack.setTagCompound(tNBT); - return tNBT; - } - - public static NBTTagCompound setDataTitle(ItemStack aStack, String aDataTitle) - { - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) { - tNBT = new NBTTagCompound(); + + public static ItemStack[] getNBTInventory(ItemStack aStack) { + ItemStack[] tInventory = new ItemStack[256]; + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) { + return tInventory; + } + NBTTagList tNBT_ItemList = tNBT.getTagList("Inventory", 10); + for (int i = 0; i < tNBT_ItemList.tagCount(); i++) { + NBTTagCompound tag = tNBT_ItemList.getCompoundTagAt(i); + byte slot = tag.getByte("Slot"); + if ((slot >= 0) && (slot < tInventory.length)) { + tInventory[slot] = GT_Utility.loadItem(tag); + } + } + return tInventory; } - tNBT.setString("mDataTitle", aDataTitle); - aStack.setTagCompound(tNBT); - return tNBT; - } - - public static ItemStack[] getNBTInventory(ItemStack aStack) - { - ItemStack[] tInventory = new ItemStack[256]; - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) { - return tInventory; + + public static NBTTagCompound setNBTInventory(ItemStack aStack, ItemStack[] aInventory) { + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) { + tNBT = new NBTTagCompound(); + } + NBTTagList tNBT_ItemList = new NBTTagList(); + for (int i = 0; i < aInventory.length; i++) { + ItemStack stack = aInventory[i]; + if (stack != null) { + NBTTagCompound tag = new NBTTagCompound(); + tag.setByte("Slot", (byte) i); + stack.writeToNBT(tag); + tNBT_ItemList.appendTag(tag); + } + } + tNBT.setTag("Inventory", tNBT_ItemList); + aStack.setTagCompound(tNBT); + return tNBT; } - NBTTagList tNBT_ItemList = tNBT.getTagList("Inventory", 10); - for (int i = 0; i < tNBT_ItemList.tagCount(); i++) - { - NBTTagCompound tag = tNBT_ItemList.getCompoundTagAt(i); - byte slot = tag.getByte("Slot"); - if ((slot >= 0) && (slot < tInventory.length)) { - tInventory[slot] = GT_Utility.loadItem(tag); - } + + public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) { + if (!getDataTitle(aStack).equals("")) { + aList.add(getDataTitle(aStack)); + aList.add(getDataName(aStack)); + } + return aList; } - return tInventory; - } - - public static NBTTagCompound setNBTInventory(ItemStack aStack, ItemStack[] aInventory) - { - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) { - tNBT = new NBTTagCompound(); - } - NBTTagList tNBT_ItemList = new NBTTagList(); - for (int i = 0; i < aInventory.length; i++) - { - ItemStack stack = aInventory[i]; - if (stack != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte)i); - stack.writeToNBT(tag); - tNBT_ItemList.appendTag(tag); - } - } - tNBT.setTag("Inventory", tNBT_ItemList); - aStack.setTagCompound(tNBT); - return tNBT; - } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_DataStick.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_DataStick.java index 8d0809f2..105c3902 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_DataStick.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_DataStick.java @@ -2,36 +2,33 @@ package gregtech.common.items.behaviors; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.util.GT_Utility; -import gregtech.api.util.GT_Utility.ItemNBT; -import java.util.List; import net.minecraft.item.ItemStack; +import java.util.List; + public class Behaviour_DataStick - extends Behaviour_None -{ - public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) - { - String tString = GT_Utility.ItemNBT.getBookTitle(aStack); - if (GT_Utility.isStringValid(tString)) { - aList.add(tString); + extends Behaviour_None { + public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) { + String tString = GT_Utility.ItemNBT.getBookTitle(aStack); + if (GT_Utility.isStringValid(tString)) { + aList.add(tString); + } + tString = GT_Utility.ItemNBT.getBookAuthor(aStack); + if (GT_Utility.isStringValid(tString)) { + aList.add("by " + tString); + } + short tMapID = GT_Utility.ItemNBT.getMapID(aStack); + if (tMapID >= 0) { + aList.add("Map ID: " + tMapID); + } + tString = GT_Utility.ItemNBT.getPunchCardData(aStack); + if (GT_Utility.isStringValid(tString)) { + aList.add("Punch Card Data"); + int i = 0; + for (int j = tString.length(); i < j; i += 64) { + aList.add(tString.substring(i, Math.min(i + 64, j))); + } + } + return aList; } - tString = GT_Utility.ItemNBT.getBookAuthor(aStack); - if (GT_Utility.isStringValid(tString)) { - aList.add("by " + tString); - } - short tMapID = GT_Utility.ItemNBT.getMapID(aStack); - if (tMapID >= 0) { - aList.add("Map ID: " + tMapID); - } - tString = GT_Utility.ItemNBT.getPunchCardData(aStack); - if (GT_Utility.isStringValid(tString)) - { - aList.add("Punch Card Data"); - int i = 0; - for (int j = tString.length(); i < j; i += 64) { - aList.add(tString.substring(i, Math.min(i + 64, j))); - } - } - return aList; - } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Hoe.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Hoe.java index fc995e3a..2f9d31c3 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Hoe.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Hoe.java @@ -1,68 +1,60 @@ package gregtech.common.items.behaviors; -import cpw.mods.fml.common.eventhandler.*; +import cpw.mods.fml.common.eventhandler.Event; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Utility; -import java.util.List; import net.minecraft.block.Block; -import net.minecraft.block.Block.SoundType; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.PlayerCapabilities; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.player.UseHoeEvent; +import java.util.List; + public class Behaviour_Hoe - extends Behaviour_None -{ - private final int mCosts; - - public Behaviour_Hoe(int aCosts) - { - this.mCosts = aCosts; - } - - public boolean onItemUse(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) - { - if (!aPlayer.canPlayerEdit(aX, aY, aZ, aSide, aStack)) { - return false; + extends Behaviour_None { + private final int mCosts; + private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.hoe", "Can till Dirt"); + + public Behaviour_Hoe(int aCosts) { + this.mCosts = aCosts; } - UseHoeEvent event = new UseHoeEvent(aPlayer, aStack, aWorld, aX, aY, aZ); - if (MinecraftForge.EVENT_BUS.post(event)) { - return false; + + public boolean onItemUse(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + if (!aPlayer.canPlayerEdit(aX, aY, aZ, aSide, aStack)) { + return false; + } + UseHoeEvent event = new UseHoeEvent(aPlayer, aStack, aWorld, aX, aY, aZ); + if (MinecraftForge.EVENT_BUS.post(event)) { + return false; + } + if (event.getResult() == Event.Result.ALLOW) { + if (!aPlayer.capabilities.isCreativeMode) { + ((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts); + } + return true; + } + Block aBlock = aWorld.getBlock(aX, aY, aZ); + if ((aSide != 0) && (GT_Utility.isBlockAir(aWorld, aX, aY + 1, aZ)) && ((aBlock == Blocks.grass) || (aBlock == Blocks.dirt))) { + aWorld.playSoundEffect(aX + 0.5F, aY + 0.5F, aZ + 0.5F, Blocks.farmland.stepSound.getStepResourcePath(), (Blocks.farmland.stepSound.getVolume() + 1.0F) / 2.0F, Blocks.farmland.stepSound.getPitch() * 0.8F); + if (aWorld.isRemote) { + return true; + } + aWorld.setBlock(aX, aY, aZ, Blocks.farmland); + if (!aPlayer.capabilities.isCreativeMode) { + ((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts); + } + return true; + } + return false; } - if (event.getResult() == Event.Result.ALLOW) - { - if (!aPlayer.capabilities.isCreativeMode) { - ((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts); - } - return true; + + public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) { + aList.add(this.mTooltip); + return aList; } - Block aBlock = aWorld.getBlock(aX, aY, aZ); - if ((aSide != 0) && (GT_Utility.isBlockAir(aWorld, aX, aY + 1, aZ)) && ((aBlock == Blocks.grass) || (aBlock == Blocks.dirt))) - { - aWorld.playSoundEffect(aX + 0.5F, aY + 0.5F, aZ + 0.5F, Blocks.farmland.stepSound.getStepResourcePath(), (Blocks.farmland.stepSound.getVolume() + 1.0F) / 2.0F, Blocks.farmland.stepSound.getPitch() * 0.8F); - if (aWorld.isRemote) { - return true; - } - aWorld.setBlock(aX, aY, aZ, Blocks.farmland); - if (!aPlayer.capabilities.isCreativeMode) { - ((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts); - } - return true; - } - return false; - } - - private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.hoe", "Can till Dirt"); - - public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) - { - aList.add(this.mTooltip); - return aList; - } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Lighter.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Lighter.java index ef287d12..a3d192dd 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Lighter.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Lighter.java @@ -5,133 +5,116 @@ import gregtech.api.GregTech_API; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Utility; -import gregtech.api.util.GT_Utility.ItemNBT; -import java.util.List; -import java.util.Map; import net.minecraft.entity.Entity; import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.PlayerCapabilities; import net.minecraft.init.Blocks; import net.minecraft.init.Items; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.List; + public class Behaviour_Lighter - extends Behaviour_None -{ - private final ItemStack mEmptyLighter; - private final ItemStack mUsedLighter; - private final ItemStack mFullLighter; - private final long mFuelAmount; - - public Behaviour_Lighter(ItemStack aEmptyLighter, ItemStack aUsedLighter, ItemStack aFullLighter, long aFuelAmount) - { - this.mFullLighter = aFullLighter; - this.mUsedLighter = aUsedLighter; - this.mEmptyLighter = aEmptyLighter; - this.mFuelAmount = aFuelAmount; - } - - public boolean onLeftClickEntity(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) - { - if ((aPlayer.worldObj.isRemote) || (aStack.stackSize != 1)) { - return false; + extends Behaviour_None { + private final ItemStack mEmptyLighter; + private final ItemStack mUsedLighter; + private final ItemStack mFullLighter; + private final long mFuelAmount; + private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.lighter.tooltip", "Can light things on Fire"); + private final String mTooltipUses = GT_LanguageManager.addStringLocalization("gt.behaviour.lighter.uses", "Remaining Uses:"); + private final String mTooltipUnstackable = GT_LanguageManager.addStringLocalization("gt.behaviour.unstackable", "Not usable when stacked!"); + + public Behaviour_Lighter(ItemStack aEmptyLighter, ItemStack aUsedLighter, ItemStack aFullLighter, long aFuelAmount) { + this.mFullLighter = aFullLighter; + this.mUsedLighter = aUsedLighter; + this.mEmptyLighter = aEmptyLighter; + this.mFuelAmount = aFuelAmount; } - boolean rOutput = false; - if ((aEntity instanceof EntityCreeper)) - { - prepare(aStack); - long tFuelAmount = GT_Utility.ItemNBT.getLighterFuel(aStack); - if (GT_Utility.areStacksEqual(aStack, this.mUsedLighter, true)) - { - GT_Utility.sendSoundToPlayers(aPlayer.worldObj, (String)GregTech_API.sSoundList.get(Integer.valueOf(6)), 1.0F, 1.0F, MathHelper.floor_double(aEntity.posX), MathHelper.floor_double(aEntity.posY), MathHelper.floor_double(aEntity.posZ)); - ((EntityCreeper)aEntity).func_146079_cb(); - if (!aPlayer.capabilities.isCreativeMode) { - tFuelAmount -= 1L; + + public boolean onLeftClickEntity(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) { + if ((aPlayer.worldObj.isRemote) || (aStack.stackSize != 1)) { + return false; } - rOutput = true; - } - GT_Utility.ItemNBT.setLighterFuel(aStack, tFuelAmount); - if (tFuelAmount <= 0L) { - useUp(aStack); - } + boolean rOutput = false; + if ((aEntity instanceof EntityCreeper)) { + prepare(aStack); + long tFuelAmount = GT_Utility.ItemNBT.getLighterFuel(aStack); + if (GT_Utility.areStacksEqual(aStack, this.mUsedLighter, true)) { + GT_Utility.sendSoundToPlayers(aPlayer.worldObj, (String) GregTech_API.sSoundList.get(Integer.valueOf(6)), 1.0F, 1.0F, MathHelper.floor_double(aEntity.posX), MathHelper.floor_double(aEntity.posY), MathHelper.floor_double(aEntity.posZ)); + ((EntityCreeper) aEntity).func_146079_cb(); + if (!aPlayer.capabilities.isCreativeMode) { + tFuelAmount -= 1L; + } + rOutput = true; + } + GT_Utility.ItemNBT.setLighterFuel(aStack, tFuelAmount); + if (tFuelAmount <= 0L) { + useUp(aStack); + } + } + return rOutput; } - return rOutput; - } - - public boolean onItemUse(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) - { - return false; - } - - public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) - { - if ((aWorld.isRemote) || (aStack.stackSize != 1)) { - return false; + + public boolean onItemUse(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + return false; } - boolean rOutput = false; - - ForgeDirection tDirection = ForgeDirection.getOrientation(aSide); - aX += tDirection.offsetX;aY += tDirection.offsetY;aZ += tDirection.offsetZ; - if ((!GT_Utility.isBlockAir(aWorld, aX, aY, aZ)) || (!aPlayer.canPlayerEdit(aX, aY, aZ, aSide, aStack))) { - return false; + + public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + if ((aWorld.isRemote) || (aStack.stackSize != 1)) { + return false; + } + boolean rOutput = false; + + ForgeDirection tDirection = ForgeDirection.getOrientation(aSide); + aX += tDirection.offsetX; + aY += tDirection.offsetY; + aZ += tDirection.offsetZ; + if ((!GT_Utility.isBlockAir(aWorld, aX, aY, aZ)) || (!aPlayer.canPlayerEdit(aX, aY, aZ, aSide, aStack))) { + return false; + } + prepare(aStack); + long tFuelAmount = GT_Utility.ItemNBT.getLighterFuel(aStack); + if (GT_Utility.areStacksEqual(aStack, this.mUsedLighter, true)) { + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(6)), 1.0F, 1.0F, aX, aY, aZ); + aWorld.setBlock(aX, aY, aZ, Blocks.fire); + if (!aPlayer.capabilities.isCreativeMode) { + tFuelAmount -= 1L; + } + rOutput = true; + } + GT_Utility.ItemNBT.setLighterFuel(aStack, tFuelAmount); + if (tFuelAmount <= 0L) { + useUp(aStack); + } + return rOutput; } - prepare(aStack); - long tFuelAmount = GT_Utility.ItemNBT.getLighterFuel(aStack); - if (GT_Utility.areStacksEqual(aStack, this.mUsedLighter, true)) - { - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(6)), 1.0F, 1.0F, aX, aY, aZ); - aWorld.setBlock(aX, aY, aZ, Blocks.fire); - if (!aPlayer.capabilities.isCreativeMode) { - tFuelAmount -= 1L; - } - rOutput = true; + + private void prepare(ItemStack aStack) { + if (GT_Utility.areStacksEqual(aStack, this.mFullLighter, true)) { + aStack.func_150996_a(this.mUsedLighter.getItem()); + Items.feather.setDamage(aStack, Items.feather.getDamage(this.mUsedLighter)); + GT_Utility.ItemNBT.setLighterFuel(aStack, this.mFuelAmount); + } } - GT_Utility.ItemNBT.setLighterFuel(aStack, tFuelAmount); - if (tFuelAmount <= 0L) { - useUp(aStack); + + private void useUp(ItemStack aStack) { + if (this.mEmptyLighter == null) { + aStack.stackSize -= 1; + } else { + aStack.func_150996_a(this.mEmptyLighter.getItem()); + Items.feather.setDamage(aStack, Items.feather.getDamage(this.mEmptyLighter)); + } } - return rOutput; - } - - private void prepare(ItemStack aStack) - { - if (GT_Utility.areStacksEqual(aStack, this.mFullLighter, true)) - { - aStack.func_150996_a(this.mUsedLighter.getItem()); - Items.feather.setDamage(aStack, Items.feather.getDamage(this.mUsedLighter)); - GT_Utility.ItemNBT.setLighterFuel(aStack, this.mFuelAmount); + + public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) { + aList.add(this.mTooltip); + NBTTagCompound tNBT = aStack.getTagCompound(); + long tFuelAmount = tNBT == null ? 0L : GT_Utility.areStacksEqual(aStack, this.mFullLighter, true) ? this.mFuelAmount : tNBT.getLong("GT.LighterFuel"); + aList.add(this.mTooltipUses + " " + tFuelAmount); + aList.add(this.mTooltipUnstackable); + return aList; } - } - - private void useUp(ItemStack aStack) - { - if (this.mEmptyLighter == null) - { - aStack.stackSize -= 1; - } - else - { - aStack.func_150996_a(this.mEmptyLighter.getItem()); - Items.feather.setDamage(aStack, Items.feather.getDamage(this.mEmptyLighter)); - } - } - - private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.lighter.tooltip", "Can light things on Fire"); - private final String mTooltipUses = GT_LanguageManager.addStringLocalization("gt.behaviour.lighter.uses", "Remaining Uses:"); - private final String mTooltipUnstackable = GT_LanguageManager.addStringLocalization("gt.behaviour.unstackable", "Not usable when stacked!"); - - public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) - { - aList.add(this.mTooltip); - NBTTagCompound tNBT = aStack.getTagCompound(); - long tFuelAmount = tNBT == null ? 0L : GT_Utility.areStacksEqual(aStack, this.mFullLighter, true) ? this.mFuelAmount : tNBT.getLong("GT.LighterFuel"); - aList.add(this.mTooltipUses + " " + tFuelAmount); - aList.add(this.mTooltipUnstackable); - return aList; - } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_None.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_None.java index 43f84393..66ed8bb6 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_None.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_None.java @@ -3,7 +3,6 @@ package gregtech.common.items.behaviors; import gregtech.api.enums.SubTag; import gregtech.api.interfaces.IItemBehaviour; import gregtech.api.items.GT_MetaBase_Item; -import java.util.List; import net.minecraft.block.BlockDispenser; import net.minecraft.dispenser.BehaviorDefaultDispenseItem; import net.minecraft.dispenser.IBlockSource; @@ -16,67 +15,58 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumFacing; import net.minecraft.world.World; +import java.util.List; + public class Behaviour_None - implements IItemBehaviour -{ - public boolean onLeftClickEntity(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) - { - return false; - } - - public boolean onItemUse(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) - { - return false; - } - - public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) - { - return false; - } - - public ItemStack onItemRightClick(GT_MetaBase_Item aItem, ItemStack aStack, World aWorld, EntityPlayer aPlayer) - { - return aStack; - } - - public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) - { - return aList; - } - - public void onUpdate(GT_MetaBase_Item aItem, ItemStack aStack, World aWorld, Entity aPlayer, int aTimer, boolean aIsInHand) {} - - public boolean isItemStackUsable(GT_MetaBase_Item aItem, ItemStack aStack) - { - return true; - } - - public boolean canDispense(GT_MetaBase_Item aItem, IBlockSource aSource, ItemStack aStack) - { - return false; - } - - public ItemStack onDispense(GT_MetaBase_Item aItem, IBlockSource aSource, ItemStack aStack) - { - EnumFacing enumfacing = BlockDispenser.func_149937_b(aSource.getBlockMetadata()); - IPosition iposition = BlockDispenser.func_149939_a(aSource); - ItemStack itemstack1 = aStack.splitStack(1); - BehaviorDefaultDispenseItem.doDispense(aSource.getWorld(), itemstack1, 6, enumfacing, iposition); - return aStack; - } - - public boolean hasProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack) - { - return false; - } - - public EntityArrow getProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, double aX, double aY, double aZ) - { - return null; - } - - public EntityArrow getProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, EntityLivingBase aEntity, float aSpeed) - { - return null; - } + implements IItemBehaviour { + public boolean onLeftClickEntity(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) { + return false; + } + + public boolean onItemUse(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + return false; + } + + public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + return false; + } + + public ItemStack onItemRightClick(GT_MetaBase_Item aItem, ItemStack aStack, World aWorld, EntityPlayer aPlayer) { + return aStack; + } + + public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) { + return aList; + } + + public void onUpdate(GT_MetaBase_Item aItem, ItemStack aStack, World aWorld, Entity aPlayer, int aTimer, boolean aIsInHand) { + } + + public boolean isItemStackUsable(GT_MetaBase_Item aItem, ItemStack aStack) { + return true; + } + + public boolean canDispense(GT_MetaBase_Item aItem, IBlockSource aSource, ItemStack aStack) { + return false; + } + + public ItemStack onDispense(GT_MetaBase_Item aItem, IBlockSource aSource, ItemStack aStack) { + EnumFacing enumfacing = BlockDispenser.func_149937_b(aSource.getBlockMetadata()); + IPosition iposition = BlockDispenser.func_149939_a(aSource); + ItemStack itemstack1 = aStack.splitStack(1); + BehaviorDefaultDispenseItem.doDispense(aSource.getWorld(), itemstack1, 6, enumfacing, iposition); + return aStack; + } + + public boolean hasProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack) { + return false; + } + + public EntityArrow getProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, double aX, double aY, double aZ) { + return null; + } + + public EntityArrow getProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, EntityLivingBase aEntity, float aSpeed) { + return null; + } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Essentia.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Essentia.java index 9d3d8e4d..f546a823 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Essentia.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Essentia.java @@ -5,49 +5,42 @@ import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Utility; -import java.util.List; -import java.util.Map; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.PlayerCapabilities; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import thaumcraft.api.aspects.IEssentiaTransport; +import java.util.List; + public class Behaviour_Plunger_Essentia - extends Behaviour_None -{ - private final int mCosts; - - public Behaviour_Plunger_Essentia(int aCosts) - { - this.mCosts = aCosts; - } - - public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) - { - if (aWorld.isRemote) { - return false; + extends Behaviour_None { + private final int mCosts; + private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.plunger.essentia", "Clears Essentia from Containers and Tubes"); + + public Behaviour_Plunger_Essentia(int aCosts) { + this.mCosts = aCosts; } - TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if (((aTileEntity instanceof IEssentiaTransport)) && ( - (aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts)))) - { - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(101)), 1.0F, -1.0F, aX, aY, aZ); - for (ForgeDirection tDirection : ForgeDirection.VALID_DIRECTIONS) { - ((IEssentiaTransport)aTileEntity).takeEssentia(((IEssentiaTransport)aTileEntity).getEssentiaType(tDirection), ((IEssentiaTransport)aTileEntity).getEssentiaAmount(tDirection), tDirection); - } - return true; + + public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + if (aWorld.isRemote) { + return false; + } + TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if (((aTileEntity instanceof IEssentiaTransport)) && ( + (aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts)))) { + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(101)), 1.0F, -1.0F, aX, aY, aZ); + for (ForgeDirection tDirection : ForgeDirection.VALID_DIRECTIONS) { + ((IEssentiaTransport) aTileEntity).takeEssentia(((IEssentiaTransport) aTileEntity).getEssentiaType(tDirection), ((IEssentiaTransport) aTileEntity).getEssentiaAmount(tDirection), tDirection); + } + return true; + } + return false; + } + + public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) { + aList.add(this.mTooltip); + return aList; } - return false; - } - - private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.plunger.essentia", "Clears Essentia from Containers and Tubes"); - - public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) - { - aList.add(this.mTooltip); - return aList; - } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java index fa3155e9..4b087986 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java @@ -5,52 +5,45 @@ import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Utility; -import java.util.List; -import java.util.Map; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.PlayerCapabilities; 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.IFluidHandler; +import java.util.List; + public class Behaviour_Plunger_Fluid - extends Behaviour_None -{ - private final int mCosts; - - public Behaviour_Plunger_Fluid(int aCosts) - { - this.mCosts = aCosts; - } - - public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) - { - if (aWorld.isRemote) { - return false; + extends Behaviour_None { + private final int mCosts; + private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.plunger.fluid", "Clears 1000 Liters of Fluid from Tanks"); + + public Behaviour_Plunger_Fluid(int aCosts) { + this.mCosts = aCosts; } - TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((aTileEntity instanceof IFluidHandler)) { - for (ForgeDirection tDirection : ForgeDirection.VALID_DIRECTIONS) { - if (((IFluidHandler)aTileEntity).drain(tDirection, 1000, false) != null) { - if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts))) - { - ((IFluidHandler)aTileEntity).drain(tDirection, 1000, true); - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(101)), 1.0F, -1.0F, aX, aY, aZ); - return true; - } + + public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + if (aWorld.isRemote) { + return false; } - } + TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((aTileEntity instanceof IFluidHandler)) { + for (ForgeDirection tDirection : ForgeDirection.VALID_DIRECTIONS) { + if (((IFluidHandler) aTileEntity).drain(tDirection, 1000, false) != null) { + if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) { + ((IFluidHandler) aTileEntity).drain(tDirection, 1000, true); + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(101)), 1.0F, -1.0F, aX, aY, aZ); + return true; + } + } + } + } + return false; + } + + public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) { + aList.add(this.mTooltip); + return aList; } - return false; - } - - private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.plunger.fluid", "Clears 1000 Liters of Fluid from Tanks"); - - public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) - { - aList.add(this.mTooltip); - return aList; - } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Item.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Item.java index a6c24bc6..3bfa811e 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Item.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Item.java @@ -3,75 +3,66 @@ package gregtech.common.items.behaviors; import gregtech.api.GregTech_API; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.metatileentity.IMetaTileEntityItemPipe; -import gregtech.api.interfaces.metatileentity.IMetaTileEntityItemPipe.Util; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Utility; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.PlayerCapabilities; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class Behaviour_Plunger_Item - extends Behaviour_None -{ - private final int mCosts; - - public Behaviour_Plunger_Item(int aCosts) - { - this.mCosts = aCosts; - } - - public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) - { - if (aWorld.isRemote) { - return false; - } - TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((aTileEntity instanceof IGregTechTileEntity)) - { - IMetaTileEntity tMetaTileEntity = ((IGregTechTileEntity)aTileEntity).getMetaTileEntity(); - if ((tMetaTileEntity instanceof IMetaTileEntityItemPipe)) { - for (Object tTileEntity : GT_Utility.sortMapByValuesAcending(IMetaTileEntityItemPipe.Util.scanPipes((IMetaTileEntityItemPipe)tMetaTileEntity, new HashMap(), 0L, false, true)).keySet()) +import java.util.HashMap; +import java.util.List; - { - int i = 0; - for (int j = ((IMetaTileEntityItemPipe)tTileEntity).getSizeInventory(); i < j; i++) { - if (((IMetaTileEntityItemPipe)tTileEntity).isValidSlot(i)) { - if ((((IMetaTileEntityItemPipe)tTileEntity).getStackInSlot(i) != null) && ( - (aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts)))) - { - ItemStack tStack = ((IMetaTileEntityItemPipe)tTileEntity).decrStackSize(i, 64); - if (tStack != null) - { - EntityItem tEntity = new EntityItem(aWorld, ((IGregTechTileEntity)aTileEntity).getOffsetX((byte)aSide, 1) + 0.5D, ((IGregTechTileEntity)aTileEntity).getOffsetY((byte)aSide, 1) + 0.5D, ((IGregTechTileEntity)aTileEntity).getOffsetZ((byte)aSide, 1) + 0.5D, tStack); - tEntity.motionX = 0.0D;tEntity.motionY = 0.0D;tEntity.motionZ = 0.0D; - aWorld.spawnEntityInWorld(tEntity); - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(101)), 1.0F, -1.0F, aX, aY, aZ); - } - return true; - } - } - } - } - } +public class Behaviour_Plunger_Item + extends Behaviour_None { + private final int mCosts; + private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.plunger.item", "Clears Items from Pipes"); + + public Behaviour_Plunger_Item(int aCosts) { + this.mCosts = aCosts; + } + + public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + if (aWorld.isRemote) { + return false; + } + TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((aTileEntity instanceof IGregTechTileEntity)) { + IMetaTileEntity tMetaTileEntity = ((IGregTechTileEntity) aTileEntity).getMetaTileEntity(); + if ((tMetaTileEntity instanceof IMetaTileEntityItemPipe)) { + for (Object tTileEntity : GT_Utility.sortMapByValuesAcending(IMetaTileEntityItemPipe.Util.scanPipes((IMetaTileEntityItemPipe) tMetaTileEntity, new HashMap(), 0L, false, true)).keySet()) + + { + int i = 0; + for (int j = ((IMetaTileEntityItemPipe) tTileEntity).getSizeInventory(); i < j; i++) { + if (((IMetaTileEntityItemPipe) tTileEntity).isValidSlot(i)) { + if ((((IMetaTileEntityItemPipe) tTileEntity).getStackInSlot(i) != null) && ( + (aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts)))) { + ItemStack tStack = ((IMetaTileEntityItemPipe) tTileEntity).decrStackSize(i, 64); + if (tStack != null) { + EntityItem tEntity = new EntityItem(aWorld, ((IGregTechTileEntity) aTileEntity).getOffsetX((byte) aSide, 1) + 0.5D, ((IGregTechTileEntity) aTileEntity).getOffsetY((byte) aSide, 1) + 0.5D, ((IGregTechTileEntity) aTileEntity).getOffsetZ((byte) aSide, 1) + 0.5D, tStack); + tEntity.motionX = 0.0D; + tEntity.motionY = 0.0D; + tEntity.motionZ = 0.0D; + aWorld.spawnEntityInWorld(tEntity); + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(101)), 1.0F, -1.0F, aX, aY, aZ); + } + return true; + } + } + } + } + } + } + return false; + } + + public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) { + aList.add(this.mTooltip); + return aList; } - return false; - } - - private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.plunger.item", "Clears Items from Pipes"); - - public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) - { - aList.add(this.mTooltip); - return aList; - } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_PrintedPages.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_PrintedPages.java index bbcdd580..e6f6fec4 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_PrintedPages.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_PrintedPages.java @@ -2,39 +2,36 @@ package gregtech.common.items.behaviors; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.util.GT_Utility; -import java.util.List; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import java.util.List; + public class Behaviour_PrintedPages - extends Behaviour_None -{ - public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) - { - if (GT_Utility.isStringValid(getTitle(aStack))) { - aList.add(getTitle(aStack)); + extends Behaviour_None { + public static String getTitle(ItemStack aStack) { + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) { + return ""; + } + return tNBT.getString("title"); } - if (GT_Utility.isStringValid(getAuthor(aStack))) { - aList.add("by " + getAuthor(aStack)); + + public static String getAuthor(ItemStack aStack) { + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) { + return ""; + } + return tNBT.getString("author"); } - return aList; - } - - public static String getTitle(ItemStack aStack) - { - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) { - return ""; + + public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) { + if (GT_Utility.isStringValid(getTitle(aStack))) { + aList.add(getTitle(aStack)); + } + if (GT_Utility.isStringValid(getAuthor(aStack))) { + aList.add("by " + getAuthor(aStack)); + } + return aList; } - return tNBT.getString("title"); - } - - public static String getAuthor(ItemStack aStack) - { - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) { - return ""; - } - return tNBT.getString("author"); - } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java index aa676a76..c7642184 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java @@ -2,20 +2,15 @@ package gregtech.common.items.behaviors; import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.objects.ItemData; -import gregtech.api.objects.MaterialStack; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import gregtech.common.blocks.GT_Block_Ores; import gregtech.common.blocks.GT_TileEntity_Ores; -import java.util.List; -import java.util.Map; -import java.util.Random; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; @@ -25,119 +20,107 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.IFluidBlock; -public class Behaviour_Prospecting - extends Behaviour_None -{ - private final int mVanillaCosts; - private final int mEUCosts; - - public Behaviour_Prospecting(int aVanillaCosts, int aEUCosts) - { - this.mVanillaCosts = aVanillaCosts; - this.mEUCosts = aEUCosts; - } - - public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) - { - if (aWorld.isRemote) { - return false; - } - Block aBlock = aWorld.getBlock(aX, aY, aZ); - if (aBlock == null) { - return false; - } - byte aMeta = (byte)aWorld.getBlockMetadata(aX, aY, aZ); - +import java.util.List; +import java.util.Random; - ItemData tAssotiation = GT_OreDictUnificator.getAssociation(new ItemStack(aBlock, 1, aMeta)); - if ((tAssotiation != null) && (tAssotiation.mPrefix.toString().startsWith("ore"))) - { - GT_Utility.sendChatToPlayer(aPlayer, "This is " + tAssotiation.mMaterial.mMaterial.mDefaultLocalName + " Ore."); - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(1)), 1.0F, -1.0F, aX, aY, aZ); - return true; +public class Behaviour_Prospecting + extends Behaviour_None { + private final int mVanillaCosts; + private final int mEUCosts; + private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.prospecting", "Usable for Prospecting"); + + public Behaviour_Prospecting(int aVanillaCosts, int aEUCosts) { + this.mVanillaCosts = aVanillaCosts; + this.mEUCosts = aEUCosts; } - if ((aBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.stone)) || (aBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, GregTech_API.sBlockGranites)) || (aBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.netherrack)) || (aBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.end_stone))) - { - if (GT_ModHandler.damageOrDechargeItem(aStack, this.mVanillaCosts, this.mEUCosts, aPlayer)) - { - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(1)), 1.0F, -1.0F, aX, aY, aZ); - int tX = aX;int tY = aY;int tZ = aZ;int tMetaID = 0;int tQuality = (aItem instanceof GT_MetaGenerated_Tool) ? ((GT_MetaGenerated_Tool)aItem).getHarvestLevel(aStack, "") : 0; - - int i = 0; - for (int j = 6 + tQuality; i < j; i++) - { - tX -= ForgeDirection.getOrientation(aSide).offsetX; - tY -= ForgeDirection.getOrientation(aSide).offsetY; - tZ -= ForgeDirection.getOrientation(aSide).offsetZ; - - Block tBlock = aWorld.getBlock(tX, tY, tZ); - if ((tBlock == Blocks.lava) || (tBlock == Blocks.flowing_lava)) - { - GT_Utility.sendChatToPlayer(aPlayer, "There is Lava behind this Rock."); - break; - } - if ((tBlock == Blocks.water) || (tBlock == Blocks.flowing_water) || ((tBlock instanceof IFluidBlock))) - { - GT_Utility.sendChatToPlayer(aPlayer, "There is a Liquid behind this Rock."); - break; - } - if ((tBlock == Blocks.monster_egg) || (!GT_Utility.hasBlockHitBox(aWorld, tX, tY, tZ))) - { - GT_Utility.sendChatToPlayer(aPlayer, "There is an Air Pocket behind this Rock."); - break; - } - if (tBlock != aBlock) - { - if (i >= 4) { - break; - } - GT_Utility.sendChatToPlayer(aPlayer, "Material is changing behind this Rock."); break; - } + + public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + if (aWorld.isRemote) { + return false; } - Random tRandom = new Random(aX ^ aY ^ aZ ^ aSide); - i = 0; - for (int j = 9 + 2 * tQuality; i < j; i++) - { - tX = aX - 4 - tQuality + tRandom.nextInt(j); - tY = aY - 4 - tQuality + tRandom.nextInt(j); - tZ = aZ - 4 - tQuality + tRandom.nextInt(j); - Block tBlock = aWorld.getBlock(tX, tY, tZ); - if ((tBlock instanceof GT_Block_Ores)) - { - TileEntity tTileEntity = aWorld.getTileEntity(tX, tY, tZ); - if ((tTileEntity instanceof GT_TileEntity_Ores)) - { - Materials tMaterial = GregTech_API.sGeneratedMaterials[(((GT_TileEntity_Ores)tTileEntity).mMetaData % 1000)]; - if ((tMaterial != null) && (tMaterial != Materials._NULL)) - { - GT_Utility.sendChatToPlayer(aPlayer, "Found traces of " + tMaterial.mDefaultLocalName + " Ore."); - return true; - } - } - } - else - { - tMetaID = aWorld.getBlockMetadata(tX, tY, tZ); - tAssotiation = GT_OreDictUnificator.getAssociation(new ItemStack(tBlock, 1, tMetaID)); - if ((tAssotiation != null) && (tAssotiation.mPrefix.toString().startsWith("ore"))) - { - GT_Utility.sendChatToPlayer(aPlayer, "Found traces of " + tAssotiation.mMaterial.mMaterial.mDefaultLocalName + " Ore."); - return true; - } - } + Block aBlock = aWorld.getBlock(aX, aY, aZ); + if (aBlock == null) { + return false; } - GT_Utility.sendChatToPlayer(aPlayer, "No Ores found."); - } - return true; + byte aMeta = (byte) aWorld.getBlockMetadata(aX, aY, aZ); + + + ItemData tAssotiation = GT_OreDictUnificator.getAssociation(new ItemStack(aBlock, 1, aMeta)); + if ((tAssotiation != null) && (tAssotiation.mPrefix.toString().startsWith("ore"))) { + GT_Utility.sendChatToPlayer(aPlayer, "This is " + tAssotiation.mMaterial.mMaterial.mDefaultLocalName + " Ore."); + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(1)), 1.0F, -1.0F, aX, aY, aZ); + return true; + } + if ((aBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.stone)) || (aBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, GregTech_API.sBlockGranites)) || (aBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.netherrack)) || (aBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.end_stone))) { + if (GT_ModHandler.damageOrDechargeItem(aStack, this.mVanillaCosts, this.mEUCosts, aPlayer)) { + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(1)), 1.0F, -1.0F, aX, aY, aZ); + int tX = aX; + int tY = aY; + int tZ = aZ; + int tMetaID = 0; + int tQuality = (aItem instanceof GT_MetaGenerated_Tool) ? ((GT_MetaGenerated_Tool) aItem).getHarvestLevel(aStack, "") : 0; + + int i = 0; + for (int j = 6 + tQuality; i < j; i++) { + tX -= ForgeDirection.getOrientation(aSide).offsetX; + tY -= ForgeDirection.getOrientation(aSide).offsetY; + tZ -= ForgeDirection.getOrientation(aSide).offsetZ; + + Block tBlock = aWorld.getBlock(tX, tY, tZ); + if ((tBlock == Blocks.lava) || (tBlock == Blocks.flowing_lava)) { + GT_Utility.sendChatToPlayer(aPlayer, "There is Lava behind this Rock."); + break; + } + if ((tBlock == Blocks.water) || (tBlock == Blocks.flowing_water) || ((tBlock instanceof IFluidBlock))) { + GT_Utility.sendChatToPlayer(aPlayer, "There is a Liquid behind this Rock."); + break; + } + if ((tBlock == Blocks.monster_egg) || (!GT_Utility.hasBlockHitBox(aWorld, tX, tY, tZ))) { + GT_Utility.sendChatToPlayer(aPlayer, "There is an Air Pocket behind this Rock."); + break; + } + if (tBlock != aBlock) { + if (i >= 4) { + break; + } + GT_Utility.sendChatToPlayer(aPlayer, "Material is changing behind this Rock."); + break; + } + } + Random tRandom = new Random(aX ^ aY ^ aZ ^ aSide); + i = 0; + for (int j = 9 + 2 * tQuality; i < j; i++) { + tX = aX - 4 - tQuality + tRandom.nextInt(j); + tY = aY - 4 - tQuality + tRandom.nextInt(j); + tZ = aZ - 4 - tQuality + tRandom.nextInt(j); + Block tBlock = aWorld.getBlock(tX, tY, tZ); + if ((tBlock instanceof GT_Block_Ores)) { + TileEntity tTileEntity = aWorld.getTileEntity(tX, tY, tZ); + if ((tTileEntity instanceof GT_TileEntity_Ores)) { + Materials tMaterial = GregTech_API.sGeneratedMaterials[(((GT_TileEntity_Ores) tTileEntity).mMetaData % 1000)]; + if ((tMaterial != null) && (tMaterial != Materials._NULL)) { + GT_Utility.sendChatToPlayer(aPlayer, "Found traces of " + tMaterial.mDefaultLocalName + " Ore."); + return true; + } + } + } else { + tMetaID = aWorld.getBlockMetadata(tX, tY, tZ); + tAssotiation = GT_OreDictUnificator.getAssociation(new ItemStack(tBlock, 1, tMetaID)); + if ((tAssotiation != null) && (tAssotiation.mPrefix.toString().startsWith("ore"))) { + GT_Utility.sendChatToPlayer(aPlayer, "Found traces of " + tAssotiation.mMaterial.mMaterial.mDefaultLocalName + " Ore."); + return true; + } + } + } + GT_Utility.sendChatToPlayer(aPlayer, "No Ores found."); + } + return true; + } + return false; + } + + public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) { + aList.add(this.mTooltip); + return aList; } - return false; - } - - private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.prospecting", "Usable for Prospecting"); - - public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) - { - aList.add(this.mTooltip); - return aList; - } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Scanner.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Scanner.java index 1f0972c3..efea09bc 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Scanner.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Scanner.java @@ -5,40 +5,35 @@ import gregtech.api.interfaces.IItemBehaviour; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Utility; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import java.util.ArrayList; +import java.util.List; + public class Behaviour_Scanner - extends Behaviour_None -{ - public static final IItemBehaviour INSTANCE = new Behaviour_Scanner(); - - public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) - { - if (((aPlayer instanceof EntityPlayerMP)) && (aItem.canUse(aStack, 20000.0D))) - { - ArrayList tList = new ArrayList(); - if (aItem.use(aStack, GT_Utility.getCoordinateScan(tList, aPlayer, aWorld, 1, aX, aY, aZ, aSide, hitX, hitY, hitZ), aPlayer)) { - for (int i = 0; i < tList.size(); i++) { - GT_Utility.sendChatToPlayer(aPlayer, (String)tList.get(i)); + extends Behaviour_None { + public static final IItemBehaviour INSTANCE = new Behaviour_Scanner(); + private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.scanning", "Can scan Blocks in World"); + + public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + if (((aPlayer instanceof EntityPlayerMP)) && (aItem.canUse(aStack, 20000.0D))) { + ArrayList tList = new ArrayList(); + if (aItem.use(aStack, GT_Utility.getCoordinateScan(tList, aPlayer, aWorld, 1, aX, aY, aZ, aSide, hitX, hitY, hitZ), aPlayer)) { + for (int i = 0; i < tList.size(); i++) { + GT_Utility.sendChatToPlayer(aPlayer, (String) tList.get(i)); + } + } + return true; } - } - return true; + GT_Utility.doSoundAtClient((String) GregTech_API.sSoundList.get(Integer.valueOf(108)), 1, 1.0F, aX, aY, aZ); + return aPlayer instanceof EntityPlayerMP; + } + + public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) { + aList.add(this.mTooltip); + return aList; } - GT_Utility.doSoundAtClient((String)GregTech_API.sSoundList.get(Integer.valueOf(108)), 1, 1.0F, aX, aY, aZ); - return aPlayer instanceof EntityPlayerMP; - } - - private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.scanning", "Can scan Blocks in World"); - - public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) - { - aList.add(this.mTooltip); - return aList; - } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Scoop.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Scoop.java index 6da6d999..926703cb 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Scoop.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Scoop.java @@ -1,57 +1,45 @@ package gregtech.common.items.behaviors; import forestry.api.lepidopterology.EnumFlutterType; -import forestry.api.lepidopterology.IAlleleButterflySpecies; import forestry.api.lepidopterology.IButterfly; -import forestry.api.lepidopterology.IButterflyGenome; -import forestry.api.lepidopterology.IButterflyRoot; import forestry.api.lepidopterology.IEntityButterfly; -import forestry.api.lepidopterology.ILepidopteristTracker; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.util.GT_LanguageManager; -import java.util.List; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.PlayerCapabilities; import net.minecraft.item.ItemStack; -import net.minecraft.world.World; + +import java.util.List; public class Behaviour_Scoop - extends Behaviour_None -{ - private final int mCosts; - - public Behaviour_Scoop(int aCosts) - { - this.mCosts = aCosts; - } - - public boolean onLeftClickEntity(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) - { - if ((aEntity instanceof IEntityButterfly)) - { - if (aPlayer.worldObj.isRemote) { - return true; - } - if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts))) - { - Object tButterfly = ((IEntityButterfly)aEntity).getButterfly(); - ((IButterfly)tButterfly).getGenome().getPrimary().getRoot().getBreedingTracker(aEntity.worldObj, aPlayer.getGameProfile()).registerCatch((IButterfly)tButterfly); - aPlayer.worldObj.spawnEntityInWorld(new EntityItem(aPlayer.worldObj, aEntity.posX, aEntity.posY, aEntity.posZ, ((IButterfly)tButterfly).getGenome().getPrimary().getRoot().getMemberStack(((IButterfly)tButterfly).copy(), EnumFlutterType.BUTTERFLY.ordinal()))); - aEntity.setDead(); - } - return true; + extends Behaviour_None { + private final int mCosts; + private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.scoop", "Catches Butterflies on Leftclick"); + + public Behaviour_Scoop(int aCosts) { + this.mCosts = aCosts; + } + + public boolean onLeftClickEntity(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) { + if ((aEntity instanceof IEntityButterfly)) { + if (aPlayer.worldObj.isRemote) { + return true; + } + if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) { + Object tButterfly = ((IEntityButterfly) aEntity).getButterfly(); + ((IButterfly) tButterfly).getGenome().getPrimary().getRoot().getBreedingTracker(aEntity.worldObj, aPlayer.getGameProfile()).registerCatch((IButterfly) tButterfly); + aPlayer.worldObj.spawnEntityInWorld(new EntityItem(aPlayer.worldObj, aEntity.posX, aEntity.posY, aEntity.posZ, ((IButterfly) tButterfly).getGenome().getPrimary().getRoot().getMemberStack(((IButterfly) tButterfly).copy(), EnumFlutterType.BUTTERFLY.ordinal()))); + aEntity.setDead(); + } + return true; + } + return false; + } + + public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) { + aList.add(this.mTooltip); + return aList; } - return false; - } - - private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.scoop", "Catches Butterflies on Leftclick"); - - public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) - { - aList.add(this.mTooltip); - return aList; - } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Screwdriver.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Screwdriver.java index c6c39e2e..59bf68aa 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Screwdriver.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Screwdriver.java @@ -4,7 +4,6 @@ import gregtech.api.GregTech_API; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; -import java.util.Map; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; @@ -12,45 +11,38 @@ import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class Behaviour_Screwdriver - extends Behaviour_None -{ - private final int mVanillaCosts; - private final int mEUCosts; - - public Behaviour_Screwdriver(int aVanillaCosts, int aEUCosts) - { - this.mVanillaCosts = aVanillaCosts; - this.mEUCosts = aEUCosts; - } - - public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) - { - if (aWorld.isRemote) { - return false; + extends Behaviour_None { + private final int mVanillaCosts; + private final int mEUCosts; + + public Behaviour_Screwdriver(int aVanillaCosts, int aEUCosts) { + this.mVanillaCosts = aVanillaCosts; + this.mEUCosts = aEUCosts; } - Block aBlock = aWorld.getBlock(aX, aY, aZ); - if (aBlock == null) { - return false; + + public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + if (aWorld.isRemote) { + return false; + } + Block aBlock = aWorld.getBlock(aX, aY, aZ); + if (aBlock == null) { + return false; + } + byte aMeta = (byte) aWorld.getBlockMetadata(aX, aY, aZ); + if ((aBlock == Blocks.unpowered_repeater) || (aBlock == Blocks.powered_repeater)) { + if (GT_ModHandler.damageOrDechargeItem(aStack, this.mVanillaCosts, this.mEUCosts, aPlayer)) { + aWorld.setBlockMetadataWithNotify(aX, aY, aZ, aMeta / 4 * 4 + (aMeta % 4 + 1) % 4, 3); + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); + } + return true; + } + if ((aBlock == Blocks.unpowered_comparator) || (aBlock == Blocks.powered_comparator)) { + if (GT_ModHandler.damageOrDechargeItem(aStack, this.mVanillaCosts, this.mEUCosts, aPlayer)) { + aWorld.setBlockMetadataWithNotify(aX, aY, aZ, aMeta / 4 * 4 + (aMeta % 4 + 1) % 4, 3); + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); + } + return true; + } + return false; } - byte aMeta = (byte)aWorld.getBlockMetadata(aX, aY, aZ); - if ((aBlock == Blocks.unpowered_repeater) || (aBlock == Blocks.powered_repeater)) - { - if (GT_ModHandler.damageOrDechargeItem(aStack, this.mVanillaCosts, this.mEUCosts, aPlayer)) - { - aWorld.setBlockMetadataWithNotify(aX, aY, aZ, aMeta / 4 * 4 + (aMeta % 4 + 1) % 4, 3); - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); - } - return true; - } - if ((aBlock == Blocks.unpowered_comparator) || (aBlock == Blocks.powered_comparator)) - { - if (GT_ModHandler.damageOrDechargeItem(aStack, this.mVanillaCosts, this.mEUCosts, aPlayer)) - { - aWorld.setBlockMetadataWithNotify(aX, aY, aZ, aMeta / 4 * 4 + (aMeta % 4 + 1) % 4, 3); - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); - } - return true; - } - return false; - } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Sense.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Sense.java index 13e4c583..c4324aa2 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Sense.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Sense.java @@ -4,50 +4,44 @@ import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.util.GT_LanguageManager; import ic2.api.crops.ICropTile; -import java.util.List; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.PlayerCapabilities; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import java.util.List; + public class Behaviour_Sense - extends Behaviour_None -{ - private final int mCosts; - - public Behaviour_Sense(int aCosts) - { - this.mCosts = aCosts; - } - - public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) - { - if (aWorld.isRemote) { - return false; + extends Behaviour_None { + private final int mCosts; + private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.sense", "Rightclick to harvest Crop Sticks"); + + public Behaviour_Sense(int aCosts) { + this.mCosts = aCosts; } - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity instanceof ICropTile)) - { - for (int i = -1; i < 2; i++) { - for (int j = -1; j < 2; j++) { - for (int k = -1; k < 2; k++) { - if ((aStack.stackSize > 0) && (((tTileEntity = aWorld.getTileEntity(aX + i, aY + j, aZ + k)) instanceof ICropTile)) && (((ICropTile)tTileEntity).harvest(true)) && (!aPlayer.capabilities.isCreativeMode)) { - ((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts); - } - } + + public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + if (aWorld.isRemote) { + return false; } - } - return true; + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity instanceof ICropTile)) { + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 2; j++) { + for (int k = -1; k < 2; k++) { + if ((aStack.stackSize > 0) && (((tTileEntity = aWorld.getTileEntity(aX + i, aY + j, aZ + k)) instanceof ICropTile)) && (((ICropTile) tTileEntity).harvest(true)) && (!aPlayer.capabilities.isCreativeMode)) { + ((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts); + } + } + } + } + return true; + } + return false; + } + + public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) { + aList.add(this.mTooltip); + return aList; } - return false; - } - - private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.sense", "Rightclick to harvest Crop Sticks"); - - public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) - { - aList.add(this.mTooltip); - return aList; - } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_SensorKit.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_SensorKit.java index 9ac266d6..525d023a 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_SensorKit.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_SensorKit.java @@ -5,7 +5,6 @@ import gregtech.api.interfaces.tileentity.IGregTechDeviceInformation; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Utility; -import java.util.List; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.IInventory; @@ -14,39 +13,36 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import java.util.List; + public class Behaviour_SensorKit - extends Behaviour_None -{ - public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) - { - if ((aPlayer instanceof EntityPlayerMP)) - { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if (((tTileEntity instanceof IInventory)) && (!((IInventory)tTileEntity).isUseableByPlayer(aPlayer))) { - return false; - } - if (((tTileEntity instanceof IGregTechDeviceInformation)) && (((IGregTechDeviceInformation)tTileEntity).isGivingInformation())) - { - GT_Utility.setStack(aStack, ItemList.NC_SensorCard.get(aStack.stackSize, new Object[0])); - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) { - tNBT = new NBTTagCompound(); + extends Behaviour_None { + private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.sensorkit.tooltip", "Used to display Information using the Mod Nuclear Control"); + + public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + if ((aPlayer instanceof EntityPlayerMP)) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if (((tTileEntity instanceof IInventory)) && (!((IInventory) tTileEntity).isUseableByPlayer(aPlayer))) { + return false; + } + if (((tTileEntity instanceof IGregTechDeviceInformation)) && (((IGregTechDeviceInformation) tTileEntity).isGivingInformation())) { + GT_Utility.setStack(aStack, ItemList.NC_SensorCard.get(aStack.stackSize, new Object[0])); + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) { + tNBT = new NBTTagCompound(); + } + tNBT.setInteger("x", aX); + tNBT.setInteger("y", aY); + tNBT.setInteger("z", aZ); + aStack.setTagCompound(tNBT); + } + return true; } - tNBT.setInteger("x", aX); - tNBT.setInteger("y", aY); - tNBT.setInteger("z", aZ); - aStack.setTagCompound(tNBT); - } - return true; + return false; + } + + public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) { + aList.add(this.mTooltip); + return aList; } - return false; - } - - private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.sensorkit.tooltip", "Used to display Information using the Mod Nuclear Control"); - - public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) - { - aList.add(this.mTooltip); - return aList; - } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_SoftHammer.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_SoftHammer.java index 11a6424e..87b3f3c2 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_SoftHammer.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_SoftHammer.java @@ -5,121 +5,100 @@ import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Utility; -import java.util.List; -import java.util.Map; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.PlayerCapabilities; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import java.util.List; + public class Behaviour_SoftHammer - extends Behaviour_None -{ - private final int mCosts; - - public Behaviour_SoftHammer(int aCosts) - { - this.mCosts = aCosts; - } - - public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) - { - if (aWorld.isRemote) { - return false; + extends Behaviour_None { + private final int mCosts; + private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.softhammer", "Activates and Deactivates Machines"); + + public Behaviour_SoftHammer(int aCosts) { + this.mCosts = aCosts; } - Block aBlock = aWorld.getBlock(aX, aY, aZ); - if (aBlock == null) { - return false; + + public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + if (aWorld.isRemote) { + return false; + } + Block aBlock = aWorld.getBlock(aX, aY, aZ); + if (aBlock == null) { + return false; + } + byte aMeta = (byte) aWorld.getBlockMetadata(aX, aY, aZ); + if (aBlock == Blocks.lit_redstone_lamp) { + if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) { + aWorld.isRemote = true; + aWorld.setBlock(aX, aY, aZ, Blocks.redstone_lamp, 0, 0); + aWorld.isRemote = false; + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(101)), 1.0F, -1.0F, aX, aY, aZ); + } + return true; + } + if (aBlock == Blocks.redstone_lamp) { + if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) { + aWorld.isRemote = true; + aWorld.setBlock(aX, aY, aZ, Blocks.lit_redstone_lamp, 0, 0); + aWorld.isRemote = false; + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(101)), 1.0F, -1.0F, aX, aY, aZ); + } + return true; + } + if (aBlock == Blocks.golden_rail) { + if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) { + aWorld.isRemote = true; + aWorld.setBlock(aX, aY, aZ, aBlock, (aMeta + 8) % 16, 0); + aWorld.isRemote = false; + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(101)), 1.0F, -1.0F, aX, aY, aZ); + } + return true; + } + if (aBlock == Blocks.activator_rail) { + if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) { + aWorld.isRemote = true; + aWorld.setBlock(aX, aY, aZ, aBlock, (aMeta + 8) % 16, 0); + aWorld.isRemote = false; + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(101)), 1.0F, -1.0F, aX, aY, aZ); + } + return true; + } + if ((aBlock == Blocks.log) || (aBlock == Blocks.log2) || (aBlock == Blocks.hay_block)) { + if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) { + aWorld.setBlockMetadataWithNotify(aX, aY, aZ, (aMeta + 4) % 12, 3); + } + return true; + } + if ((aBlock == Blocks.piston) || (aBlock == Blocks.sticky_piston) || (aBlock == Blocks.dispenser) || (aBlock == Blocks.dropper)) { + if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) { + aWorld.setBlockMetadataWithNotify(aX, aY, aZ, (aMeta + 1) % 6, 3); + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(101)), 1.0F, -1.0F, aX, aY, aZ); + } + return true; + } + if ((aBlock == Blocks.pumpkin) || (aBlock == Blocks.lit_pumpkin) || (aBlock == Blocks.furnace) || (aBlock == Blocks.lit_furnace) || (aBlock == Blocks.chest) || (aBlock == Blocks.trapped_chest)) { + if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) { + aWorld.setBlockMetadataWithNotify(aX, aY, aZ, (aMeta - 1) % 4 + 2, 3); + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(101)), 1.0F, -1.0F, aX, aY, aZ); + } + return true; + } + if (aBlock == Blocks.hopper) { + if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) { + aWorld.setBlockMetadataWithNotify(aX, aY, aZ, (aMeta + 1) % 6 == 1 ? (aMeta + 1) % 6 : 2, 3); + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(101)), 1.0F, -1.0F, aX, aY, aZ); + } + return true; + } + return false; } - byte aMeta = (byte)aWorld.getBlockMetadata(aX, aY, aZ); - if (aBlock == Blocks.lit_redstone_lamp) - { - if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts))) - { - aWorld.isRemote = true; - aWorld.setBlock(aX, aY, aZ, Blocks.redstone_lamp, 0, 0); - aWorld.isRemote = false; - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(101)), 1.0F, -1.0F, aX, aY, aZ); - } - return true; + + public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) { + aList.add(this.mTooltip); + return aList; } - if (aBlock == Blocks.redstone_lamp) - { - if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts))) - { - aWorld.isRemote = true; - aWorld.setBlock(aX, aY, aZ, Blocks.lit_redstone_lamp, 0, 0); - aWorld.isRemote = false; - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(101)), 1.0F, -1.0F, aX, aY, aZ); - } - return true; - } - if (aBlock == Blocks.golden_rail) - { - if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts))) - { - aWorld.isRemote = true; - aWorld.setBlock(aX, aY, aZ, aBlock, (aMeta + 8) % 16, 0); - aWorld.isRemote = false; - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(101)), 1.0F, -1.0F, aX, aY, aZ); - } - return true; - } - if (aBlock == Blocks.activator_rail) - { - if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts))) - { - aWorld.isRemote = true; - aWorld.setBlock(aX, aY, aZ, aBlock, (aMeta + 8) % 16, 0); - aWorld.isRemote = false; - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(101)), 1.0F, -1.0F, aX, aY, aZ); - } - return true; - } - if ((aBlock == Blocks.log) || (aBlock == Blocks.log2) || (aBlock == Blocks.hay_block)) - { - if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts))) { - aWorld.setBlockMetadataWithNotify(aX, aY, aZ, (aMeta + 4) % 12, 3); - } - return true; - } - if ((aBlock == Blocks.piston) || (aBlock == Blocks.sticky_piston) || (aBlock == Blocks.dispenser) || (aBlock == Blocks.dropper)) - { - if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts))) - { - aWorld.setBlockMetadataWithNotify(aX, aY, aZ, (aMeta + 1) % 6, 3); - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(101)), 1.0F, -1.0F, aX, aY, aZ); - } - return true; - } - if ((aBlock == Blocks.pumpkin) || (aBlock == Blocks.lit_pumpkin) || (aBlock == Blocks.furnace) || (aBlock == Blocks.lit_furnace) || (aBlock == Blocks.chest) || (aBlock == Blocks.trapped_chest)) - { - if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts))) - { - aWorld.setBlockMetadataWithNotify(aX, aY, aZ, (aMeta - 1) % 4 + 2, 3); - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(101)), 1.0F, -1.0F, aX, aY, aZ); - } - return true; - } - if (aBlock == Blocks.hopper) - { - if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts))) - { - aWorld.setBlockMetadataWithNotify(aX, aY, aZ, (aMeta + 1) % 6 == 1 ? (aMeta + 1) % 6 : 2, 3); - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(101)), 1.0F, -1.0F, aX, aY, aZ); - } - return true; - } - return false; - } - - private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.softhammer", "Activates and Deactivates Machines"); - - public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) - { - aList.add(this.mTooltip); - return aList; - } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Sonictron.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Sonictron.java index 781f85c8..90daed57 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Sonictron.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Sonictron.java @@ -3,7 +3,6 @@ package gregtech.common.items.behaviors; import gregtech.api.GregTech_API; import gregtech.api.enums.GT_Values; import gregtech.api.interfaces.IItemBehaviour; -import gregtech.api.interfaces.internal.IGT_Mod; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.util.GT_Utility; import net.minecraft.entity.Entity; @@ -14,128 +13,114 @@ import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; public class Behaviour_Sonictron - extends Behaviour_None -{ - public static final IItemBehaviour INSTANCE = new Behaviour_Sonictron(); - - public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) - { - if ((!aWorld.isRemote) && (aWorld.getBlock(aX, aY, aZ) == GregTech_API.sBlockMachines) && (aWorld.getBlockMetadata(aX, aY, aZ) == 6)) {} - setCurrentIndex(aStack, -1); - return false; - } - - public ItemStack onItemRightClick(GT_MetaBase_Item aItem, ItemStack aStack, World aWorld, EntityPlayer aPlayer) - { - setCurrentIndex(aStack, 0); - return aStack; - } - - public void onUpdate(GT_MetaBase_Item aItem, ItemStack aStack, World aWorld, Entity aPlayer, int aTimer, boolean aIsInHand) - { - int tTickTimer = getTickTimer(aStack); - int tCurrentIndex = getCurrentIndex(aStack); - if ((tTickTimer++ % 2 == 0) && (tCurrentIndex > -1)) - { - ItemStack[] tInventory = getNBTInventory(aStack); - GT_Values.GT.doSonictronSound(tInventory[tCurrentIndex], aPlayer.worldObj, aPlayer.posX, aPlayer.posY, aPlayer.posZ); - tCurrentIndex++; - if (tCurrentIndex > 63) { - tCurrentIndex = -1; - } + extends Behaviour_None { + public static final IItemBehaviour INSTANCE = new Behaviour_Sonictron(); + + public static int getCurrentIndex(ItemStack aStack) { + NBTTagCompound tNBTTagCompound = aStack.getTagCompound(); + if (tNBTTagCompound == null) { + tNBTTagCompound = new NBTTagCompound(); + } + return tNBTTagCompound.getInteger("mCurrentIndex"); } - setTickTimer(aStack, tTickTimer); - setCurrentIndex(aStack, tCurrentIndex); - } - - public static int getCurrentIndex(ItemStack aStack) - { - NBTTagCompound tNBTTagCompound = aStack.getTagCompound(); - if (tNBTTagCompound == null) { - tNBTTagCompound = new NBTTagCompound(); + + public static int getTickTimer(ItemStack aStack) { + NBTTagCompound tNBTTagCompound = aStack.getTagCompound(); + if (tNBTTagCompound == null) { + tNBTTagCompound = new NBTTagCompound(); + } + return tNBTTagCompound.getInteger("mTickTimer"); } - return tNBTTagCompound.getInteger("mCurrentIndex"); - } - - public static int getTickTimer(ItemStack aStack) - { - NBTTagCompound tNBTTagCompound = aStack.getTagCompound(); - if (tNBTTagCompound == null) { - tNBTTagCompound = new NBTTagCompound(); + + public static NBTTagCompound setCurrentIndex(ItemStack aStack, int aIndex) { + NBTTagCompound tNBTTagCompound = aStack.getTagCompound(); + if (tNBTTagCompound == null) { + tNBTTagCompound = new NBTTagCompound(); + } + tNBTTagCompound.setInteger("mCurrentIndex", aIndex); + return tNBTTagCompound; } - return tNBTTagCompound.getInteger("mTickTimer"); - } - - public static NBTTagCompound setCurrentIndex(ItemStack aStack, int aIndex) - { - NBTTagCompound tNBTTagCompound = aStack.getTagCompound(); - if (tNBTTagCompound == null) { - tNBTTagCompound = new NBTTagCompound(); + + public static NBTTagCompound setTickTimer(ItemStack aStack, int aTime) { + NBTTagCompound tNBTTagCompound = aStack.getTagCompound(); + if (tNBTTagCompound == null) { + tNBTTagCompound = new NBTTagCompound(); + } + tNBTTagCompound.setInteger("mTickTimer", aTime); + return tNBTTagCompound; } - tNBTTagCompound.setInteger("mCurrentIndex", aIndex); - return tNBTTagCompound; - } - - public static NBTTagCompound setTickTimer(ItemStack aStack, int aTime) - { - NBTTagCompound tNBTTagCompound = aStack.getTagCompound(); - if (tNBTTagCompound == null) { - tNBTTagCompound = new NBTTagCompound(); + + public static ItemStack[] getNBTInventory(ItemStack aStack) { + ItemStack[] tInventory = new ItemStack[64]; + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) { + return tInventory; + } + NBTTagList tNBT_ItemList = tNBT.getTagList("Inventory", 10); + for (int i = 0; i < tNBT_ItemList.tagCount(); i++) { + NBTTagCompound tag = tNBT_ItemList.getCompoundTagAt(i); + byte slot = tag.getByte("Slot"); + if ((slot >= 0) && (slot < tInventory.length)) { + tInventory[slot] = GT_Utility.loadItem(tag); + } + } + return tInventory; } - tNBTTagCompound.setInteger("mTickTimer", aTime); - return tNBTTagCompound; - } - - public static ItemStack[] getNBTInventory(ItemStack aStack) - { - ItemStack[] tInventory = new ItemStack[64]; - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) { - return tInventory; + + public static NBTTagCompound setNBTInventory(ItemStack aStack, ItemStack[] aInventory) { + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) { + tNBT = new NBTTagCompound(); + } + NBTTagList tNBT_ItemList = new NBTTagList(); + for (int i = 0; i < aInventory.length; i++) { + ItemStack stack = aInventory[i]; + if (stack != null) { + NBTTagCompound tag = new NBTTagCompound(); + tag.setByte("Slot", (byte) i); + stack.writeToNBT(tag); + tNBT_ItemList.appendTag(tag); + } + } + tNBT.setTag("Inventory", tNBT_ItemList); + aStack.setTagCompound(tNBT); + return tNBT; } - NBTTagList tNBT_ItemList = tNBT.getTagList("Inventory", 10); - for (int i = 0; i < tNBT_ItemList.tagCount(); i++) - { - NBTTagCompound tag = tNBT_ItemList.getCompoundTagAt(i); - byte slot = tag.getByte("Slot"); - if ((slot >= 0) && (slot < tInventory.length)) { - tInventory[slot] = GT_Utility.loadItem(tag); - } + + public static void copyInventory(ItemStack[] aInventory, ItemStack[] aNewContent, int aIndexlength) { + for (int i = 0; i < aIndexlength; i++) { + if (aNewContent[i] == null) { + aInventory[i] = null; + } else { + aInventory[i] = GT_Utility.copy(new Object[]{aNewContent[i]}); + } + } } - return tInventory; - } - - public static NBTTagCompound setNBTInventory(ItemStack aStack, ItemStack[] aInventory) - { - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) { - tNBT = new NBTTagCompound(); + + public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + if ((!aWorld.isRemote) && (aWorld.getBlock(aX, aY, aZ) == GregTech_API.sBlockMachines) && (aWorld.getBlockMetadata(aX, aY, aZ) == 6)) { + } + setCurrentIndex(aStack, -1); + return false; } - NBTTagList tNBT_ItemList = new NBTTagList(); - for (int i = 0; i < aInventory.length; i++) - { - ItemStack stack = aInventory[i]; - if (stack != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte)i); - stack.writeToNBT(tag); - tNBT_ItemList.appendTag(tag); - } + + public ItemStack onItemRightClick(GT_MetaBase_Item aItem, ItemStack aStack, World aWorld, EntityPlayer aPlayer) { + setCurrentIndex(aStack, 0); + return aStack; } - tNBT.setTag("Inventory", tNBT_ItemList); - aStack.setTagCompound(tNBT); - return tNBT; - } - - public static void copyInventory(ItemStack[] aInventory, ItemStack[] aNewContent, int aIndexlength) - { - for (int i = 0; i < aIndexlength; i++) { - if (aNewContent[i] == null) { - aInventory[i] = null; - } else { - aInventory[i] = GT_Utility.copy(new Object[] { aNewContent[i] }); - } + + public void onUpdate(GT_MetaBase_Item aItem, ItemStack aStack, World aWorld, Entity aPlayer, int aTimer, boolean aIsInHand) { + int tTickTimer = getTickTimer(aStack); + int tCurrentIndex = getCurrentIndex(aStack); + if ((tTickTimer++ % 2 == 0) && (tCurrentIndex > -1)) { + ItemStack[] tInventory = getNBTInventory(aStack); + GT_Values.GT.doSonictronSound(tInventory[tCurrentIndex], aPlayer.worldObj, aPlayer.posX, aPlayer.posY, aPlayer.posZ); + tCurrentIndex++; + if (tCurrentIndex > 63) { + tCurrentIndex = -1; + } + } + setTickTimer(aStack, tTickTimer); + setCurrentIndex(aStack, tCurrentIndex); } - } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java index bfd45737..60fe907c 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java @@ -6,132 +6,117 @@ import gregtech.api.enums.ItemList; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Utility; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; -import java.util.Map; import net.minecraft.block.Block; import net.minecraft.block.BlockColored; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.PlayerCapabilities; import net.minecraft.init.Blocks; import net.minecraft.init.Items; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; + public class Behaviour_Spray_Color - extends Behaviour_None -{ - private final ItemStack mEmpty; - private final ItemStack mUsed; - private final ItemStack mFull; - private final long mUses; - private final byte mColor; - - public Behaviour_Spray_Color(ItemStack aEmpty, ItemStack aUsed, ItemStack aFull, long aUses, int aColor) - { - this.mEmpty = aEmpty; - this.mUsed = aUsed; - this.mFull = aFull; - this.mUses = aUses; - this.mColor = ((byte)aColor); - this.mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.paintspray." + this.mColor + ".tooltip", "Can Color things in " + Dyes.get(this.mColor).mName); - } - - public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) - { - if ((aWorld.isRemote) || (aStack.stackSize != 1)) { - return false; + extends Behaviour_None { + private final ItemStack mEmpty; + private final ItemStack mUsed; + private final ItemStack mFull; + private final long mUses; + private final byte mColor; + private final Collection mAllowedVanillaBlocks = Arrays.asList(new Block[]{Blocks.glass, Blocks.glass_pane, Blocks.stained_glass, Blocks.stained_glass_pane, Blocks.carpet, Blocks.hardened_clay, ItemList.TE_Rockwool.getBlock()}); + private final String mTooltip; + private final String mTooltipUses = GT_LanguageManager.addStringLocalization("gt.behaviour.paintspray.uses", "Remaining Uses:"); + private final String mTooltipUnstackable = GT_LanguageManager.addStringLocalization("gt.behaviour.unstackable", "Not usable when stacked!"); + + public Behaviour_Spray_Color(ItemStack aEmpty, ItemStack aUsed, ItemStack aFull, long aUses, int aColor) { + this.mEmpty = aEmpty; + this.mUsed = aUsed; + this.mFull = aFull; + this.mUses = aUses; + this.mColor = ((byte) aColor); + this.mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.paintspray." + this.mColor + ".tooltip", "Can Color things in " + Dyes.get(this.mColor).mName); } - boolean rOutput = false; - if (!aPlayer.canPlayerEdit(aX, aY, aZ, aSide, aStack)) { - return false; + + public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + if ((aWorld.isRemote) || (aStack.stackSize != 1)) { + return false; + } + boolean rOutput = false; + if (!aPlayer.canPlayerEdit(aX, aY, aZ, aSide, aStack)) { + return false; + } + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) { + tNBT = new NBTTagCompound(); + } + long tUses = tNBT.getLong("GT.RemainingPaint"); + if (GT_Utility.areStacksEqual(aStack, this.mFull, true)) { + aStack.func_150996_a(this.mUsed.getItem()); + Items.feather.setDamage(aStack, Items.feather.getDamage(this.mUsed)); + tUses = this.mUses; + } + if ((GT_Utility.areStacksEqual(aStack, this.mUsed, true)) && + (colorize(aWorld, aX, aY, aZ, aSide))) { + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(102)), 1.0F, 1.0F, aX, aY, aZ); + if (!aPlayer.capabilities.isCreativeMode) { + tUses -= 1L; + } + rOutput = true; + } + tNBT.removeTag("GT.RemainingPaint"); + if (tUses > 0L) { + tNBT.setLong("GT.RemainingPaint", tUses); + } + if (tNBT.hasNoTags()) { + aStack.setTagCompound(null); + } else { + aStack.setTagCompound(tNBT); + } + if (tUses <= 0L) { + if (this.mEmpty == null) { + aStack.stackSize -= 1; + } else { + aStack.func_150996_a(this.mEmpty.getItem()); + Items.feather.setDamage(aStack, Items.feather.getDamage(this.mEmpty)); + } + } + return rOutput; } - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) { - tNBT = new NBTTagCompound(); + + private boolean colorize(World aWorld, int aX, int aY, int aZ, int aSide) { + Block aBlock = aWorld.getBlock(aX, aY, aZ); + if ((aBlock != Blocks.air) && ((this.mAllowedVanillaBlocks.contains(aBlock)) || ((aBlock instanceof BlockColored)))) { + if (aBlock == Blocks.hardened_clay) { + aWorld.setBlock(aX, aY, aZ, Blocks.stained_hardened_clay, (this.mColor ^ 0xFFFFFFFF) & 0xF, 3); + return true; + } + if (aBlock == Blocks.glass_pane) { + aWorld.setBlock(aX, aY, aZ, Blocks.stained_glass_pane, (this.mColor ^ 0xFFFFFFFF) & 0xF, 3); + return true; + } + if (aBlock == Blocks.glass) { + aWorld.setBlock(aX, aY, aZ, Blocks.stained_glass, (this.mColor ^ 0xFFFFFFFF) & 0xF, 3); + return true; + } + if (aWorld.getBlockMetadata(aX, aY, aZ) == ((this.mColor ^ 0xFFFFFFFF) & 0xF)) { + return false; + } + aWorld.setBlockMetadataWithNotify(aX, aY, aZ, (this.mColor ^ 0xFFFFFFFF) & 0xF, 3); + return true; + } + return aBlock.recolourBlock(aWorld, aX, aY, aZ, ForgeDirection.getOrientation(aSide), (this.mColor ^ 0xFFFFFFFF) & 0xF); } - long tUses = tNBT.getLong("GT.RemainingPaint"); - if (GT_Utility.areStacksEqual(aStack, this.mFull, true)) - { - aStack.func_150996_a(this.mUsed.getItem()); - Items.feather.setDamage(aStack, Items.feather.getDamage(this.mUsed)); - tUses = this.mUses; + + public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) { + aList.add(this.mTooltip); + NBTTagCompound tNBT = aStack.getTagCompound(); + long tRemainingPaint = tNBT == null ? 0L : GT_Utility.areStacksEqual(aStack, this.mFull, true) ? this.mUses : tNBT.getLong("GT.RemainingPaint"); + aList.add(this.mTooltipUses + " " + tRemainingPaint); + aList.add(this.mTooltipUnstackable); + return aList; } - if ((GT_Utility.areStacksEqual(aStack, this.mUsed, true)) && - (colorize(aWorld, aX, aY, aZ, aSide))) - { - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(102)), 1.0F, 1.0F, aX, aY, aZ); - if (!aPlayer.capabilities.isCreativeMode) { - tUses -= 1L; - } - rOutput = true; - } - tNBT.removeTag("GT.RemainingPaint"); - if (tUses > 0L) { - tNBT.setLong("GT.RemainingPaint", tUses); - } - if (tNBT.hasNoTags()) { - aStack.setTagCompound(null); - } else { - aStack.setTagCompound(tNBT); - } - if (tUses <= 0L) { - if (this.mEmpty == null) - { - aStack.stackSize -= 1; - } - else - { - aStack.func_150996_a(this.mEmpty.getItem()); - Items.feather.setDamage(aStack, Items.feather.getDamage(this.mEmpty)); - } - } - return rOutput; - } - - private final Collection mAllowedVanillaBlocks = Arrays.asList(new Block[] { Blocks.glass, Blocks.glass_pane, Blocks.stained_glass, Blocks.stained_glass_pane, Blocks.carpet, Blocks.hardened_clay, ItemList.TE_Rockwool.getBlock() }); - private final String mTooltip; - - private boolean colorize(World aWorld, int aX, int aY, int aZ, int aSide) - { - Block aBlock = aWorld.getBlock(aX, aY, aZ); - if ((aBlock != Blocks.air) && ((this.mAllowedVanillaBlocks.contains(aBlock)) || ((aBlock instanceof BlockColored)))) - { - if (aBlock == Blocks.hardened_clay) - { - aWorld.setBlock(aX, aY, aZ, Blocks.stained_hardened_clay, (this.mColor ^ 0xFFFFFFFF) & 0xF, 3);return true; - } - if (aBlock == Blocks.glass_pane) - { - aWorld.setBlock(aX, aY, aZ, Blocks.stained_glass_pane, (this.mColor ^ 0xFFFFFFFF) & 0xF, 3);return true; - } - if (aBlock == Blocks.glass) - { - aWorld.setBlock(aX, aY, aZ, Blocks.stained_glass, (this.mColor ^ 0xFFFFFFFF) & 0xF, 3);return true; - } - if (aWorld.getBlockMetadata(aX, aY, aZ) == ((this.mColor ^ 0xFFFFFFFF) & 0xF)) { - return false; - } - aWorld.setBlockMetadataWithNotify(aX, aY, aZ, (this.mColor ^ 0xFFFFFFFF) & 0xF, 3); - return true; - } - return aBlock.recolourBlock(aWorld, aX, aY, aZ, ForgeDirection.getOrientation(aSide), (this.mColor ^ 0xFFFFFFFF) & 0xF); - } - - private final String mTooltipUses = GT_LanguageManager.addStringLocalization("gt.behaviour.paintspray.uses", "Remaining Uses:"); - private final String mTooltipUnstackable = GT_LanguageManager.addStringLocalization("gt.behaviour.unstackable", "Not usable when stacked!"); - - public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) - { - aList.add(this.mTooltip); - NBTTagCompound tNBT = aStack.getTagCompound(); - long tRemainingPaint = tNBT == null ? 0L : GT_Utility.areStacksEqual(aStack, this.mFull, true) ? this.mUses : tNBT.getLong("GT.RemainingPaint"); - aList.add(this.mTooltipUses + " " + tRemainingPaint); - aList.add(this.mTooltipUnstackable); - return aList; - } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Wrench.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Wrench.java index 2d844950..d8c42232 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Wrench.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Wrench.java @@ -7,176 +7,142 @@ import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; import ic2.api.tile.IWrenchable; -import java.util.Arrays; -import java.util.List; -import java.util.Map; import net.minecraft.block.Block; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.PlayerCapabilities; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.Arrays; +import java.util.List; + public class Behaviour_Wrench - extends Behaviour_None -{ - private final int mCosts; - - public Behaviour_Wrench(int aCosts) - { - this.mCosts = aCosts; - } - - public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) - { - if (aWorld.isRemote) { - return false; + extends Behaviour_None { + private final int mCosts; + private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.wrench", "Rotates Blocks on Rightclick"); + + public Behaviour_Wrench(int aCosts) { + this.mCosts = aCosts; } - Block aBlock = aWorld.getBlock(aX, aY, aZ); - if (aBlock == null) { - return false; - } - byte aMeta = (byte)aWorld.getBlockMetadata(aX, aY, aZ);byte aTargetSide = GT_Utility.determineWrenchingSide((byte)aSide, hitX, hitY, hitZ); - TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ); - try - { - if ((aTileEntity != null) && ((aTileEntity instanceof IWrenchable))) - { - if (((IWrenchable)aTileEntity).wrenchCanSetFacing(aPlayer, aTargetSide)) - { - if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts))) - { - ((IWrenchable)aTileEntity).setFacing((short)aTargetSide); - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); - } - return true; + + public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + if (aWorld.isRemote) { + return false; } - if (((IWrenchable)aTileEntity).wrenchCanRemove(aPlayer)) - { - int tDamage = ((IWrenchable)aTileEntity).getWrenchDropRate() < 1.0F ? 10 : 3; - if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool)aItem).doDamage(aStack, tDamage * this.mCosts))) - { - ItemStack tOutput = ((IWrenchable)aTileEntity).getWrenchDrop(aPlayer); - for (ItemStack tStack : aBlock.getDrops(aWorld, aX, aY, aZ, aMeta, 0)) { - if (tOutput == null) - { - aWorld.spawnEntityInWorld(new EntityItem(aWorld, aX + 0.5D, aY + 0.5D, aZ + 0.5D, tStack)); - } - else - { - aWorld.spawnEntityInWorld(new EntityItem(aWorld, aX + 0.5D, aY + 0.5D, aZ + 0.5D, tOutput)); - tOutput = null; - } + Block aBlock = aWorld.getBlock(aX, aY, aZ); + if (aBlock == null) { + return false; + } + byte aMeta = (byte) aWorld.getBlockMetadata(aX, aY, aZ); + byte aTargetSide = GT_Utility.determineWrenchingSide((byte) aSide, hitX, hitY, hitZ); + TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ); + try { + if ((aTileEntity != null) && ((aTileEntity instanceof IWrenchable))) { + if (((IWrenchable) aTileEntity).wrenchCanSetFacing(aPlayer, aTargetSide)) { + if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) { + ((IWrenchable) aTileEntity).setFacing((short) aTargetSide); + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); + } + return true; + } + if (((IWrenchable) aTileEntity).wrenchCanRemove(aPlayer)) { + int tDamage = ((IWrenchable) aTileEntity).getWrenchDropRate() < 1.0F ? 10 : 3; + if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, tDamage * this.mCosts))) { + ItemStack tOutput = ((IWrenchable) aTileEntity).getWrenchDrop(aPlayer); + for (ItemStack tStack : aBlock.getDrops(aWorld, aX, aY, aZ, aMeta, 0)) { + if (tOutput == null) { + aWorld.spawnEntityInWorld(new EntityItem(aWorld, aX + 0.5D, aY + 0.5D, aZ + 0.5D, tStack)); + } else { + aWorld.spawnEntityInWorld(new EntityItem(aWorld, aX + 0.5D, aY + 0.5D, aZ + 0.5D, tOutput)); + tOutput = null; + } + } + aWorld.setBlockToAir(aX, aY, aZ); + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); + } + return true; + } + return true; } - aWorld.setBlockToAir(aX, aY, aZ); - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); - } - return true; + } catch (Throwable e) { } - return true; - } - } - catch (Throwable e) {} - if ((aBlock == Blocks.log) || (aBlock == Blocks.log2) || (aBlock == Blocks.hay_block)) - { - if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts))) - { - aWorld.setBlockMetadataWithNotify(aX, aY, aZ, (aMeta + 4) % 12, 3); - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); - } - return true; - } - if ((aBlock == Blocks.powered_repeater) || (aBlock == Blocks.unpowered_repeater)) - { - if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts))) - { - aWorld.setBlockMetadataWithNotify(aX, aY, aZ, aMeta / 4 * 4 + (aMeta % 4 + 1) % 4, 3); - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); - } - return true; - } - if ((aBlock == Blocks.powered_comparator) || (aBlock == Blocks.unpowered_comparator)) - { - if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts))) - { - aWorld.setBlockMetadataWithNotify(aX, aY, aZ, aMeta / 4 * 4 + (aMeta % 4 + 1) % 4, 3); - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); - } - return true; - } - if ((aBlock == Blocks.crafting_table) || (aBlock == Blocks.bookshelf)) - { - if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts))) - { - aWorld.spawnEntityInWorld(new EntityItem(aWorld, aX + 0.5D, aY + 0.5D, aZ + 0.5D, new ItemStack(aBlock, 1, aMeta))); - aWorld.setBlockToAir(aX, aY, aZ); - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); - } - return true; - } - if (aMeta == aTargetSide) - { - if ((aBlock == Blocks.pumpkin) || (aBlock == Blocks.lit_pumpkin) || (aBlock == Blocks.piston) || (aBlock == Blocks.sticky_piston) || (aBlock == Blocks.dispenser) || (aBlock == Blocks.dropper) || (aBlock == Blocks.furnace) || (aBlock == Blocks.lit_furnace) || (aBlock == Blocks.chest) || (aBlock == Blocks.trapped_chest) || (aBlock == Blocks.ender_chest) || (aBlock == Blocks.hopper)) - { - if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts))) - { - aWorld.spawnEntityInWorld(new EntityItem(aWorld, aX + 0.5D, aY + 0.5D, aZ + 0.5D, new ItemStack(aBlock, 1, 0))); - aWorld.setBlockToAir(aX, aY, aZ); - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); + if ((aBlock == Blocks.log) || (aBlock == Blocks.log2) || (aBlock == Blocks.hay_block)) { + if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) { + aWorld.setBlockMetadataWithNotify(aX, aY, aZ, (aMeta + 4) % 12, 3); + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); + } + return true; } - return true; - } - } - else - { - if ((aBlock == Blocks.piston) || (aBlock == Blocks.sticky_piston) || (aBlock == Blocks.dispenser) || (aBlock == Blocks.dropper)) - { - if ((aMeta < 6) && ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts)))) - { - aWorld.setBlockMetadataWithNotify(aX, aY, aZ, aTargetSide, 3); - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); + if ((aBlock == Blocks.powered_repeater) || (aBlock == Blocks.unpowered_repeater)) { + if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) { + aWorld.setBlockMetadataWithNotify(aX, aY, aZ, aMeta / 4 * 4 + (aMeta % 4 + 1) % 4, 3); + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); + } + return true; } - return true; - } - if ((aBlock == Blocks.pumpkin) || (aBlock == Blocks.lit_pumpkin) || (aBlock == Blocks.furnace) || (aBlock == Blocks.lit_furnace) || (aBlock == Blocks.chest) || (aBlock == Blocks.ender_chest) || (aBlock == Blocks.trapped_chest)) - { - if ((aTargetSide > 1) && ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts)))) - { - aWorld.setBlockMetadataWithNotify(aX, aY, aZ, aTargetSide, 3); - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); + if ((aBlock == Blocks.powered_comparator) || (aBlock == Blocks.unpowered_comparator)) { + if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) { + aWorld.setBlockMetadataWithNotify(aX, aY, aZ, aMeta / 4 * 4 + (aMeta % 4 + 1) % 4, 3); + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); + } + return true; } - return true; - } - if (aBlock == Blocks.hopper) - { - if ((aTargetSide != 1) && ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts)))) - { - aWorld.setBlockMetadataWithNotify(aX, aY, aZ, aTargetSide, 3); - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); + if ((aBlock == Blocks.crafting_table) || (aBlock == Blocks.bookshelf)) { + if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) { + aWorld.spawnEntityInWorld(new EntityItem(aWorld, aX + 0.5D, aY + 0.5D, aZ + 0.5D, new ItemStack(aBlock, 1, aMeta))); + aWorld.setBlockToAir(aX, aY, aZ); + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); + } + return true; } - return true; - } + if (aMeta == aTargetSide) { + if ((aBlock == Blocks.pumpkin) || (aBlock == Blocks.lit_pumpkin) || (aBlock == Blocks.piston) || (aBlock == Blocks.sticky_piston) || (aBlock == Blocks.dispenser) || (aBlock == Blocks.dropper) || (aBlock == Blocks.furnace) || (aBlock == Blocks.lit_furnace) || (aBlock == Blocks.chest) || (aBlock == Blocks.trapped_chest) || (aBlock == Blocks.ender_chest) || (aBlock == Blocks.hopper)) { + if ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) { + aWorld.spawnEntityInWorld(new EntityItem(aWorld, aX + 0.5D, aY + 0.5D, aZ + 0.5D, new ItemStack(aBlock, 1, 0))); + aWorld.setBlockToAir(aX, aY, aZ); + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); + } + return true; + } + } else { + if ((aBlock == Blocks.piston) || (aBlock == Blocks.sticky_piston) || (aBlock == Blocks.dispenser) || (aBlock == Blocks.dropper)) { + if ((aMeta < 6) && ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts)))) { + aWorld.setBlockMetadataWithNotify(aX, aY, aZ, aTargetSide, 3); + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); + } + return true; + } + if ((aBlock == Blocks.pumpkin) || (aBlock == Blocks.lit_pumpkin) || (aBlock == Blocks.furnace) || (aBlock == Blocks.lit_furnace) || (aBlock == Blocks.chest) || (aBlock == Blocks.ender_chest) || (aBlock == Blocks.trapped_chest)) { + if ((aTargetSide > 1) && ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts)))) { + aWorld.setBlockMetadataWithNotify(aX, aY, aZ, aTargetSide, 3); + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); + } + return true; + } + if (aBlock == Blocks.hopper) { + if ((aTargetSide != 1) && ((aPlayer.capabilities.isCreativeMode) || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts)))) { + aWorld.setBlockMetadataWithNotify(aX, aY, aZ, aTargetSide, 3); + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); + } + return true; + } + } + if ((Arrays.asList(aBlock.getValidRotations(aWorld, aX, aY, aZ)).contains(ForgeDirection.getOrientation(aTargetSide))) && + ((aPlayer.capabilities.isCreativeMode) || (!GT_ModHandler.isElectricItem(aStack)) || (GT_ModHandler.canUseElectricItem(aStack, this.mCosts))) && + (aBlock.rotateBlock(aWorld, aX, aY, aZ, ForgeDirection.getOrientation(aTargetSide)))) { + if (!aPlayer.capabilities.isCreativeMode) { + ((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts); + } + GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); + } + return false; } - if ((Arrays.asList(aBlock.getValidRotations(aWorld, aX, aY, aZ)).contains(ForgeDirection.getOrientation(aTargetSide))) && - ((aPlayer.capabilities.isCreativeMode) || (!GT_ModHandler.isElectricItem(aStack)) || (GT_ModHandler.canUseElectricItem(aStack, this.mCosts))) && - (aBlock.rotateBlock(aWorld, aX, aY, aZ, ForgeDirection.getOrientation(aTargetSide)))) - { - if (!aPlayer.capabilities.isCreativeMode) { - ((GT_MetaGenerated_Tool)aItem).doDamage(aStack, this.mCosts); - } - GT_Utility.sendSoundToPlayers(aWorld, (String)GregTech_API.sSoundList.get(Integer.valueOf(100)), 1.0F, -1.0F, aX, aY, aZ); + + public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) { + aList.add(this.mTooltip); + return aList; } - return false; - } - - private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.wrench", "Rotates Blocks on Rightclick"); - - public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) - { - aList.add(this.mTooltip); - return aList; - } } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_WrittenBook.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_WrittenBook.java index d00e5c31..89e47d51 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_WrittenBook.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_WrittenBook.java @@ -4,8 +4,6 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.util.GT_Utility; -import gregtech.api.util.GT_Utility.ItemNBT; -import java.util.List; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.EntityPlayerSP; import net.minecraft.client.gui.GuiScreenBook; @@ -13,26 +11,24 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import java.util.List; + public class Behaviour_WrittenBook - extends Behaviour_None -{ - @SideOnly(Side.CLIENT) - public boolean onItemUse(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) - { - if ((GT_Utility.isStringValid(GT_Utility.ItemNBT.getBookTitle(aStack))) && ((aPlayer instanceof EntityPlayerSP))) { - Minecraft.getMinecraft().displayGuiScreen(new GuiScreenBook(aPlayer, aStack, false)); + extends Behaviour_None { + @SideOnly(Side.CLIENT) + public boolean onItemUse(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + if ((GT_Utility.isStringValid(GT_Utility.ItemNBT.getBookTitle(aStack))) && ((aPlayer instanceof EntityPlayerSP))) { + Minecraft.getMinecraft().displayGuiScreen(new GuiScreenBook(aPlayer, aStack, false)); + } + return true; } - return true; - } - - public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) - { - String tTitle = GT_Utility.ItemNBT.getBookTitle(aStack); - if (GT_Utility.isStringValid(tTitle)) - { - aList.add(tTitle); - aList.add("by " + GT_Utility.ItemNBT.getBookAuthor(aStack)); + + public List getAdditionalToolTips(GT_MetaBase_Item aItem, List aList, ItemStack aStack) { + String tTitle = GT_Utility.ItemNBT.getBookTitle(aStack); + if (GT_Utility.isStringValid(tTitle)) { + aList.add(tTitle); + aList.add("by " + GT_Utility.ItemNBT.getBookAuthor(aStack)); + } + return aList; } - return aList; - } } diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BasicLogic.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BasicLogic.java index 30d06a2e..8651643e 100644 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BasicLogic.java +++ b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BasicLogic.java @@ -4,104 +4,93 @@ import gregtech.api.interfaces.IRedstoneCircuitBlock; import gregtech.api.util.GT_CircuitryBehavior; public class GT_Circuit_BasicLogic - extends GT_CircuitryBehavior -{ - public GT_Circuit_BasicLogic(int aIndex) - { - super(aIndex); - } - - public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - aCircuitData[0] = 0; - } - - public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - if (aCircuitData[0] < 0) { - aCircuitData[0] = 0; + extends GT_CircuitryBehavior { + public GT_Circuit_BasicLogic(int aIndex) { + super(aIndex); } - if (aCircuitData[0] > 13) { - aCircuitData[0] = 13; + + public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + aCircuitData[0] = 0; } - } - - public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - if (aCircuitData[0] < 2) { - aRedstoneCircuitBlock.setRedstone((byte)(aCircuitData[0] % 2 == (getAnyRedstone(aRedstoneCircuitBlock) ? 0 : 1) ? 15 : 0), aRedstoneCircuitBlock.getOutputFacing()); - } else if (aCircuitData[0] < 4) { - aRedstoneCircuitBlock.setRedstone((byte)(aCircuitData[0] % 2 == (getOneRedstone(aRedstoneCircuitBlock) ? 0 : 1) ? 15 : 0), aRedstoneCircuitBlock.getOutputFacing()); - } else if (aCircuitData[0] < 6) { - aRedstoneCircuitBlock.setRedstone((byte)(aCircuitData[0] % 2 == (getAllRedstone(aRedstoneCircuitBlock) ? 0 : 1) ? 15 : 0), aRedstoneCircuitBlock.getOutputFacing()); - } else if (aCircuitData[0] < 7) { - aRedstoneCircuitBlock.setRedstone((byte)(15 - getStrongestRedstone(aRedstoneCircuitBlock)), aRedstoneCircuitBlock.getOutputFacing()); - } else if (aCircuitData[0] < 9) { - aRedstoneCircuitBlock.setRedstone((byte)((aCircuitData[0] % 2 == 0 ? 15 : 0) ^ (getStrongestRedstone(aRedstoneCircuitBlock) | getWeakestRedstone(aRedstoneCircuitBlock))), aRedstoneCircuitBlock.getOutputFacing()); - } else if (aCircuitData[0] < 11) { - aRedstoneCircuitBlock.setRedstone((byte)((aCircuitData[0] % 2 == 0 ? 15 : 0) ^ getStrongestRedstone(aRedstoneCircuitBlock) ^ getWeakestRedstone(aRedstoneCircuitBlock)), aRedstoneCircuitBlock.getOutputFacing()); - } else if (aCircuitData[0] < 13) { - aRedstoneCircuitBlock.setRedstone((byte)((aCircuitData[0] % 2 == 0 ? 15 : 0) ^ getStrongestRedstone(aRedstoneCircuitBlock) & getWeakestRedstone(aRedstoneCircuitBlock)), aRedstoneCircuitBlock.getOutputFacing()); - } else if (aCircuitData[0] < 14) { - aRedstoneCircuitBlock.setRedstone((byte)(getStrongestRedstone(aRedstoneCircuitBlock) ^ 0xF), aRedstoneCircuitBlock.getOutputFacing()); + + public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[0] < 0) { + aCircuitData[0] = 0; + } + if (aCircuitData[0] > 13) { + aCircuitData[0] = 13; + } } - } - - public String getName() - { - return "Basic Logic"; - } - - public String getDescription() - { - return "Regular Logic Gates"; - } - - public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) - { - if (aCircuitDataIndex == 0) { - switch (aCircuitData[0]) - { - case 0: - return "OR"; - case 1: - return "NOR"; - case 2: - return "XOR"; - case 3: - return "XNOR"; - case 4: - return "AND"; - case 5: - return "NAND"; - case 6: - return "INVERT"; - case 7: - return "BIT_OR"; - case 8: - return "BIT_NOR"; - case 9: - return "BIT_XOR"; - case 10: - return "BIT_XNOR"; - case 11: - return "BIT_AND"; - case 12: - return "BIT_NAND"; - case 13: - return "BIT_INVERT"; - } + + public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[0] < 2) { + aRedstoneCircuitBlock.setRedstone((byte) (aCircuitData[0] % 2 == (getAnyRedstone(aRedstoneCircuitBlock) ? 0 : 1) ? 15 : 0), aRedstoneCircuitBlock.getOutputFacing()); + } else if (aCircuitData[0] < 4) { + aRedstoneCircuitBlock.setRedstone((byte) (aCircuitData[0] % 2 == (getOneRedstone(aRedstoneCircuitBlock) ? 0 : 1) ? 15 : 0), aRedstoneCircuitBlock.getOutputFacing()); + } else if (aCircuitData[0] < 6) { + aRedstoneCircuitBlock.setRedstone((byte) (aCircuitData[0] % 2 == (getAllRedstone(aRedstoneCircuitBlock) ? 0 : 1) ? 15 : 0), aRedstoneCircuitBlock.getOutputFacing()); + } else if (aCircuitData[0] < 7) { + aRedstoneCircuitBlock.setRedstone((byte) (15 - getStrongestRedstone(aRedstoneCircuitBlock)), aRedstoneCircuitBlock.getOutputFacing()); + } else if (aCircuitData[0] < 9) { + aRedstoneCircuitBlock.setRedstone((byte) ((aCircuitData[0] % 2 == 0 ? 15 : 0) ^ (getStrongestRedstone(aRedstoneCircuitBlock) | getWeakestRedstone(aRedstoneCircuitBlock))), aRedstoneCircuitBlock.getOutputFacing()); + } else if (aCircuitData[0] < 11) { + aRedstoneCircuitBlock.setRedstone((byte) ((aCircuitData[0] % 2 == 0 ? 15 : 0) ^ getStrongestRedstone(aRedstoneCircuitBlock) ^ getWeakestRedstone(aRedstoneCircuitBlock)), aRedstoneCircuitBlock.getOutputFacing()); + } else if (aCircuitData[0] < 13) { + aRedstoneCircuitBlock.setRedstone((byte) ((aCircuitData[0] % 2 == 0 ? 15 : 0) ^ getStrongestRedstone(aRedstoneCircuitBlock) & getWeakestRedstone(aRedstoneCircuitBlock)), aRedstoneCircuitBlock.getOutputFacing()); + } else if (aCircuitData[0] < 14) { + aRedstoneCircuitBlock.setRedstone((byte) (getStrongestRedstone(aRedstoneCircuitBlock) ^ 0xF), aRedstoneCircuitBlock.getOutputFacing()); + } + } + + public String getName() { + return "Basic Logic"; + } + + public String getDescription() { + return "Regular Logic Gates"; + } + + public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { + if (aCircuitDataIndex == 0) { + switch (aCircuitData[0]) { + case 0: + return "OR"; + case 1: + return "NOR"; + case 2: + return "XOR"; + case 3: + return "XNOR"; + case 4: + return "AND"; + case 5: + return "NAND"; + case 6: + return "INVERT"; + case 7: + return "BIT_OR"; + case 8: + return "BIT_NOR"; + case 9: + return "BIT_XOR"; + case 10: + return "BIT_XNOR"; + case 11: + return "BIT_AND"; + case 12: + return "BIT_NAND"; + case 13: + return "BIT_INVERT"; + } + } + return ""; + } + + public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { + return false; + } + + public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { + return ""; } - return ""; - } - - public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) - { - return false; - } - - public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) - { - return ""; - } } diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BitAnd.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BitAnd.java index ad62f847..8832de37 100644 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BitAnd.java +++ b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BitAnd.java @@ -4,76 +4,66 @@ import gregtech.api.interfaces.IRedstoneCircuitBlock; import gregtech.api.util.GT_CircuitryBehavior; public class GT_Circuit_BitAnd - extends GT_CircuitryBehavior -{ - public GT_Circuit_BitAnd(int aIndex) - { - super(aIndex); - } - - public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - aCircuitData[0] = 0; - aCircuitData[1] = 0; - aCircuitData[2] = 0; - aCircuitData[3] = 0; - } - - public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - if (aCircuitData[0] < 0) { - aCircuitData[0] = 0; + extends GT_CircuitryBehavior { + public GT_Circuit_BitAnd(int aIndex) { + super(aIndex); } - if (aCircuitData[1] < 0) { - aCircuitData[1] = 0; + + public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + aCircuitData[0] = 0; + aCircuitData[1] = 0; + aCircuitData[2] = 0; + aCircuitData[3] = 0; } - if (aCircuitData[2] < 0) { - aCircuitData[2] = 0; + + public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[0] < 0) { + aCircuitData[0] = 0; + } + if (aCircuitData[1] < 0) { + aCircuitData[1] = 0; + } + if (aCircuitData[2] < 0) { + aCircuitData[2] = 0; + } + if (aCircuitData[3] < 0) { + aCircuitData[3] = 0; + } + if (aCircuitData[0] > 1) { + aCircuitData[0] = 1; + } + if (aCircuitData[1] > 1) { + aCircuitData[1] = 1; + } + if (aCircuitData[2] > 1) { + aCircuitData[2] = 1; + } + if (aCircuitData[3] > 1) { + aCircuitData[3] = 1; + } } - if (aCircuitData[3] < 0) { - aCircuitData[3] = 0; + + public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + aRedstoneCircuitBlock.setRedstone((byte) ((getStrongestRedstone(aRedstoneCircuitBlock) & (aCircuitData[0] | aCircuitData[1] << 1 | aCircuitData[2] << 2 | aCircuitData[3] << 3)) != 0 ? 15 : 0), aRedstoneCircuitBlock.getOutputFacing()); } - if (aCircuitData[0] > 1) { - aCircuitData[0] = 1; + + public String getName() { + return "Hardcode Bit-AND"; } - if (aCircuitData[1] > 1) { - aCircuitData[1] = 1; + + public String getDescription() { + return "( signal & this ) != 0"; } - if (aCircuitData[2] > 1) { - aCircuitData[2] = 1; + + public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { + return "Bit " + aCircuitDataIndex + ":"; } - if (aCircuitData[3] > 1) { - aCircuitData[3] = 1; + + public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { + return false; + } + + public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { + return aCircuitData[aCircuitDataIndex] == 0 ? "OFF" : "ON"; } - } - - public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - aRedstoneCircuitBlock.setRedstone((byte)((getStrongestRedstone(aRedstoneCircuitBlock) & (aCircuitData[0] | aCircuitData[1] << 1 | aCircuitData[2] << 2 | aCircuitData[3] << 3)) != 0 ? 15 : 0), aRedstoneCircuitBlock.getOutputFacing()); - } - - public String getName() - { - return "Hardcode Bit-AND"; - } - - public String getDescription() - { - return "( signal & this ) != 0"; - } - - public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) - { - return "Bit " + aCircuitDataIndex + ":"; - } - - public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) - { - return false; - } - - public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) - { - return aCircuitData[aCircuitDataIndex] == 0 ? "OFF" : "ON"; - } } diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_CombinationLock.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_CombinationLock.java index 4f6e2ef9..74492173 100644 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_CombinationLock.java +++ b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_CombinationLock.java @@ -4,114 +4,98 @@ import gregtech.api.interfaces.IRedstoneCircuitBlock; import gregtech.api.util.GT_CircuitryBehavior; public class GT_Circuit_CombinationLock - extends GT_CircuitryBehavior -{ - public GT_Circuit_CombinationLock(int aIndex) - { - super(aIndex); - } - - public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - aCircuitData[0] = 1; - aCircuitData[1] = 0; - aCircuitData[2] = 0; - aCircuitData[3] = 0; - aCircuitData[4] = 0; - aCircuitData[5] = 0; - } - - public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - if (aCircuitData[0] < 1) { - aCircuitData[0] = 1; + extends GT_CircuitryBehavior { + public GT_Circuit_CombinationLock(int aIndex) { + super(aIndex); } - if (aCircuitData[1] < 0) { - aCircuitData[1] = 0; - } - if (aCircuitData[2] < 0) { - aCircuitData[2] = 0; - } - if (aCircuitData[3] < 0) { - aCircuitData[3] = 0; - } - if (aCircuitData[0] > 15) { - aCircuitData[0] = 15; - } - if (aCircuitData[1] > 15) { - aCircuitData[1] = 15; - } - if (aCircuitData[2] > 15) { - aCircuitData[2] = 15; - } - if (aCircuitData[3] > 15) { - aCircuitData[3] = 15; - } - if (aCircuitData[4] < 0) { - aCircuitData[4] = 0; - } - if (aCircuitData[4] > 3) { - aCircuitData[4] = 3; - } - if (aCircuitData[5] < 0) { - aCircuitData[5] = 0; - } - } - - public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - while ((aCircuitData[aCircuitData[4]] == 0) && (aCircuitData[4] < 4)) { - aCircuitData[4] += 1; - } - if (aCircuitData[4] < 4) - { - int tRedstone = getStrongestRedstone(aRedstoneCircuitBlock); - if (tRedstone > 0) - { - if (aCircuitData[5] == 0) { - if (tRedstone == aCircuitData[aCircuitData[4]]) { - aCircuitData[4] += 1; - } else { - aCircuitData[4] = 0; - } - } - aCircuitData[5] = 1; - } - else - { + + public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + aCircuitData[0] = 1; + aCircuitData[1] = 0; + aCircuitData[2] = 0; + aCircuitData[3] = 0; + aCircuitData[4] = 0; aCircuitData[5] = 0; - } - aRedstoneCircuitBlock.setRedstone((byte)0, aRedstoneCircuitBlock.getOutputFacing()); } - else - { - aRedstoneCircuitBlock.setRedstone((byte)15, aRedstoneCircuitBlock.getOutputFacing()); - aCircuitData[4] = 0; + + public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[0] < 1) { + aCircuitData[0] = 1; + } + if (aCircuitData[1] < 0) { + aCircuitData[1] = 0; + } + if (aCircuitData[2] < 0) { + aCircuitData[2] = 0; + } + if (aCircuitData[3] < 0) { + aCircuitData[3] = 0; + } + if (aCircuitData[0] > 15) { + aCircuitData[0] = 15; + } + if (aCircuitData[1] > 15) { + aCircuitData[1] = 15; + } + if (aCircuitData[2] > 15) { + aCircuitData[2] = 15; + } + if (aCircuitData[3] > 15) { + aCircuitData[3] = 15; + } + if (aCircuitData[4] < 0) { + aCircuitData[4] = 0; + } + if (aCircuitData[4] > 3) { + aCircuitData[4] = 3; + } + if (aCircuitData[5] < 0) { + aCircuitData[5] = 0; + } + } + + public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + while ((aCircuitData[aCircuitData[4]] == 0) && (aCircuitData[4] < 4)) { + aCircuitData[4] += 1; + } + if (aCircuitData[4] < 4) { + int tRedstone = getStrongestRedstone(aRedstoneCircuitBlock); + if (tRedstone > 0) { + if (aCircuitData[5] == 0) { + if (tRedstone == aCircuitData[aCircuitData[4]]) { + aCircuitData[4] += 1; + } else { + aCircuitData[4] = 0; + } + } + aCircuitData[5] = 1; + } else { + aCircuitData[5] = 0; + } + aRedstoneCircuitBlock.setRedstone((byte) 0, aRedstoneCircuitBlock.getOutputFacing()); + } else { + aRedstoneCircuitBlock.setRedstone((byte) 15, aRedstoneCircuitBlock.getOutputFacing()); + aCircuitData[4] = 0; + } + } + + public String getName() { + return "Combination Lock"; + } + + public String getDescription() { + return "Checks Combinations"; + } + + public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { + return "Power " + aCircuitDataIndex; + } + + public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { + return false; + } + + public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { + return null; } - } - - public String getName() - { - return "Combination Lock"; - } - - public String getDescription() - { - return "Checks Combinations"; - } - - public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) - { - return "Power " + aCircuitDataIndex; - } - - public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) - { - return false; - } - - public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) - { - return null; - } } diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Equals.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Equals.java index acfcab6a..16ef890b 100644 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Equals.java +++ b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Equals.java @@ -4,72 +4,61 @@ import gregtech.api.interfaces.IRedstoneCircuitBlock; import gregtech.api.util.GT_CircuitryBehavior; public class GT_Circuit_Equals - extends GT_CircuitryBehavior -{ - public GT_Circuit_Equals(int aIndex) - { - super(aIndex); - } - - public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - aCircuitData[0] = 0; - aCircuitData[1] = 0; - } - - public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - if (aCircuitData[0] < 0) { - aCircuitData[0] = 0; + extends GT_CircuitryBehavior { + public GT_Circuit_Equals(int aIndex) { + super(aIndex); } - if (aCircuitData[0] > 15) { - aCircuitData[0] = 15; + + public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + aCircuitData[0] = 0; + aCircuitData[1] = 0; } - if (aCircuitData[1] < 0) { - aCircuitData[3] = 0; + + public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[0] < 0) { + aCircuitData[0] = 0; + } + if (aCircuitData[0] > 15) { + aCircuitData[0] = 15; + } + if (aCircuitData[1] < 0) { + aCircuitData[3] = 0; + } + if (aCircuitData[1] > 1) { + aCircuitData[3] = 1; + } } - if (aCircuitData[1] > 1) { - aCircuitData[3] = 1; + + public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + aRedstoneCircuitBlock.setRedstone(((byte) ((aCircuitData[1] != 0 ? getStrongestRedstone(aRedstoneCircuitBlock) == aCircuitData[0] : getStrongestRedstone(aRedstoneCircuitBlock) != aCircuitData[0]) ? 0 : 15)), aRedstoneCircuitBlock.getOutputFacing()); + } + + public String getName() { + return "Equals"; + } + + public String getDescription() { + return "signal == this"; + } + + public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { + switch (aCircuitDataIndex) { + case 0: + return "Signal"; + case 1: + return aCircuitData[1] == 0 ? "Equal" : "Unequal"; + } + return ""; + } + + public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { + return false; + } + + public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { + if (aCircuitDataIndex > 0) { + return ""; + } + return null; } - } - - public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - aRedstoneCircuitBlock.setRedstone(((byte)((aCircuitData[1] != 0 ? getStrongestRedstone(aRedstoneCircuitBlock) == aCircuitData[0] : getStrongestRedstone(aRedstoneCircuitBlock) != aCircuitData[0]) ? 0 : 15)), aRedstoneCircuitBlock.getOutputFacing()); -} - - public String getName() - { - return "Equals"; - } - - public String getDescription() - { - return "signal == this"; - } - - public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) - { - switch (aCircuitDataIndex) - { - case 0: - return "Signal"; - case 1: - return aCircuitData[1] == 0 ? "Equal" : "Unequal"; - } - return ""; - } - - public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) - { - return false; - } - - public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) - { - if (aCircuitDataIndex > 0) { - return ""; - } - return null; - } } diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Pulser.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Pulser.java index 6c02f8e5..edc7b366 100644 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Pulser.java +++ b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Pulser.java @@ -4,90 +4,80 @@ import gregtech.api.interfaces.IRedstoneCircuitBlock; import gregtech.api.util.GT_CircuitryBehavior; public class GT_Circuit_Pulser - extends GT_CircuitryBehavior -{ - public GT_Circuit_Pulser(int aIndex) - { - super(aIndex); - } - - public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - aCircuitData[0] = 1; - aCircuitData[1] = 16; - aCircuitData[4] = 0; - } - - public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - if (aCircuitData[0] < 1) { - aCircuitData[0] = 1; + extends GT_CircuitryBehavior { + public GT_Circuit_Pulser(int aIndex) { + super(aIndex); } - if (aCircuitData[1] < 0) { - aCircuitData[1] = 0; - } - if (aCircuitData[1] > 16) { - aCircuitData[1] = 16; - } - if (aCircuitData[4] < 0) { - aCircuitData[4] = 0; - } - } - - public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - byte tRedstone = aCircuitData[1] == 0 ? getWeakestNonZeroRedstone(aRedstoneCircuitBlock) : getStrongestRedstone(aRedstoneCircuitBlock); - if (aCircuitData[4] == 0) { - aCircuitData[5] = tRedstone; - } - if ((tRedstone > 0) || (aCircuitData[4] > 0)) - { - int tmp40_39 = 4; int[] tmp40_38 = aCircuitData; int tmp42_41 = tmp40_38[tmp40_39];tmp40_38[tmp40_39] = (tmp42_41 + 1); - if ((tmp42_41 >= aCircuitData[0]) && (tRedstone <= 0)) { + + public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + aCircuitData[0] = 1; + aCircuitData[1] = 16; aCircuitData[4] = 0; - } } - aRedstoneCircuitBlock.setRedstone((byte)((aCircuitData[4] > 0) && (aCircuitData[4] <= aCircuitData[0]) ? (byte)aCircuitData[1] : (aCircuitData[1] <= 0) || (aCircuitData[1] > 15) ? (byte)aCircuitData[5] : 0), aRedstoneCircuitBlock.getOutputFacing()); - } - - public String getName() - { - return "Pulser"; - } - - public String getDescription() - { - return "Limits&Enlengths"; - } - - public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) - { - switch (aCircuitDataIndex) - { - case 0: - return "Length"; - case 1: - return "RS Out"; + + public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[0] < 1) { + aCircuitData[0] = 1; + } + if (aCircuitData[1] < 0) { + aCircuitData[1] = 0; + } + if (aCircuitData[1] > 16) { + aCircuitData[1] = 16; + } + if (aCircuitData[4] < 0) { + aCircuitData[4] = 0; + } } - return ""; - } - - public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) - { - return false; - } - - public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) - { - if (aCircuitDataIndex == 1) - { - if (aCircuitData[aCircuitDataIndex] == 16) { - return "HIGHEST"; - } - if (aCircuitData[aCircuitDataIndex] == 0) { - return "LOWEST"; - } + + public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + byte tRedstone = aCircuitData[1] == 0 ? getWeakestNonZeroRedstone(aRedstoneCircuitBlock) : getStrongestRedstone(aRedstoneCircuitBlock); + if (aCircuitData[4] == 0) { + aCircuitData[5] = tRedstone; + } + if ((tRedstone > 0) || (aCircuitData[4] > 0)) { + int tmp40_39 = 4; + int[] tmp40_38 = aCircuitData; + int tmp42_41 = tmp40_38[tmp40_39]; + tmp40_38[tmp40_39] = (tmp42_41 + 1); + if ((tmp42_41 >= aCircuitData[0]) && (tRedstone <= 0)) { + aCircuitData[4] = 0; + } + } + aRedstoneCircuitBlock.setRedstone((byte) ((aCircuitData[4] > 0) && (aCircuitData[4] <= aCircuitData[0]) ? (byte) aCircuitData[1] : (aCircuitData[1] <= 0) || (aCircuitData[1] > 15) ? (byte) aCircuitData[5] : 0), aRedstoneCircuitBlock.getOutputFacing()); + } + + public String getName() { + return "Pulser"; + } + + public String getDescription() { + return "Limits&Enlengths"; + } + + public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { + switch (aCircuitDataIndex) { + case 0: + return "Length"; + case 1: + return "RS Out"; + } + return ""; + } + + public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { + return false; + } + + public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { + if (aCircuitDataIndex == 1) { + if (aCircuitData[aCircuitDataIndex] == 16) { + return "HIGHEST"; + } + if (aCircuitData[aCircuitDataIndex] == 0) { + return "LOWEST"; + } + } + return aCircuitDataIndex > 1 ? "" : null; } - return aCircuitDataIndex > 1 ? "" : null; - } } diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Randomizer.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Randomizer.java index 036485bc..bfa7b98f 100644 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Randomizer.java +++ b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Randomizer.java @@ -4,91 +4,77 @@ import gregtech.api.interfaces.IRedstoneCircuitBlock; import gregtech.api.util.GT_CircuitryBehavior; public class GT_Circuit_Randomizer - extends GT_CircuitryBehavior -{ - public GT_Circuit_Randomizer(int aIndex) - { - super(aIndex); - } - - public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - aCircuitData[0] = 1; - aCircuitData[4] = 0; - } - - public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - if (aCircuitData[0] < 1) { - aCircuitData[0] = 1; + extends GT_CircuitryBehavior { + public GT_Circuit_Randomizer(int aIndex) { + super(aIndex); } - if (aCircuitData[3] < 0) { - aCircuitData[3] = 0; - } - if (aCircuitData[3] > 1) { - aCircuitData[3] = 1; - } - if (aCircuitData[4] < 0) { - aCircuitData[4] = 0; - } - } - - public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - if (aCircuitData[3] == 1) - { - if (getAnyRedstone(aRedstoneCircuitBlock)) { - aCircuitData[4] += 1; - } else { + + public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + aCircuitData[0] = 1; aCircuitData[4] = 0; - } } - else if (getAnyRedstone(aRedstoneCircuitBlock)) { - aCircuitData[4] = 0; - } else { - aCircuitData[4] += 1; + + public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[0] < 1) { + aCircuitData[0] = 1; + } + if (aCircuitData[3] < 0) { + aCircuitData[3] = 0; + } + if (aCircuitData[3] > 1) { + aCircuitData[3] = 1; + } + if (aCircuitData[4] < 0) { + aCircuitData[4] = 0; + } } - if (aCircuitData[4] >= aCircuitData[0]) - { - aCircuitData[4] = 0; - aRedstoneCircuitBlock.setRedstone((byte)aRedstoneCircuitBlock.getRandom(16), aRedstoneCircuitBlock.getOutputFacing()); + + public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[3] == 1) { + if (getAnyRedstone(aRedstoneCircuitBlock)) { + aCircuitData[4] += 1; + } else { + aCircuitData[4] = 0; + } + } else if (getAnyRedstone(aRedstoneCircuitBlock)) { + aCircuitData[4] = 0; + } else { + aCircuitData[4] += 1; + } + if (aCircuitData[4] >= aCircuitData[0]) { + aCircuitData[4] = 0; + aRedstoneCircuitBlock.setRedstone((byte) aRedstoneCircuitBlock.getRandom(16), aRedstoneCircuitBlock.getOutputFacing()); + } } - } - - public String getName() - { - return "Randomizer"; - } - - public String getDescription() - { - return "Randomizes Redstone"; - } - - public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) - { - switch (aCircuitDataIndex) - { - case 0: - return "Delay"; - case 3: - return aCircuitData[aCircuitDataIndex] == 1 ? "RS => ON" : "RS => OFF"; - case 4: - return "Status"; + + public String getName() { + return "Randomizer"; } - return ""; - } - - public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) - { - return false; - } - - public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) - { - if (aCircuitDataIndex != 0) { - return ""; + + public String getDescription() { + return "Randomizes Redstone"; + } + + public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { + switch (aCircuitDataIndex) { + case 0: + return "Delay"; + case 3: + return aCircuitData[aCircuitDataIndex] == 1 ? "RS => ON" : "RS => OFF"; + case 4: + return "Status"; + } + return ""; + } + + public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { + return false; + } + + public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { + if (aCircuitDataIndex != 0) { + return ""; + } + return null; } - return null; - } } diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_RedstoneMeter.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_RedstoneMeter.java index 0cb8d097..fb38e594 100644 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_RedstoneMeter.java +++ b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_RedstoneMeter.java @@ -4,94 +4,83 @@ import gregtech.api.interfaces.IRedstoneCircuitBlock; import gregtech.api.util.GT_CircuitryBehavior; public class GT_Circuit_RedstoneMeter - extends GT_CircuitryBehavior -{ - public GT_Circuit_RedstoneMeter(int aIndex) - { - super(aIndex); - } - - public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - aCircuitData[0] = 1; - aCircuitData[1] = 15; - aCircuitData[2] = 0; - aCircuitData[3] = 15; - } - - public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - if (aCircuitData[0] < 0) { - aCircuitData[0] = 0; + extends GT_CircuitryBehavior { + public GT_Circuit_RedstoneMeter(int aIndex) { + super(aIndex); } - if (aCircuitData[0] > 15) { - aCircuitData[0] = 15; + + public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + aCircuitData[0] = 1; + aCircuitData[1] = 15; + aCircuitData[2] = 0; + aCircuitData[3] = 15; } - if (aCircuitData[1] < 0) { - aCircuitData[1] = 0; + + public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[0] < 0) { + aCircuitData[0] = 0; + } + if (aCircuitData[0] > 15) { + aCircuitData[0] = 15; + } + if (aCircuitData[1] < 0) { + aCircuitData[1] = 0; + } + if (aCircuitData[1] > 15) { + aCircuitData[1] = 15; + } + if (aCircuitData[1] < aCircuitData[0]) { + aCircuitData[1] = aCircuitData[0]; + } + if (aCircuitData[2] < 0) { + aCircuitData[2] = 0; + } + if (aCircuitData[2] > 1) { + aCircuitData[2] = 1; + } + if (aCircuitData[3] < 0) { + aCircuitData[3] = 0; + } + if (aCircuitData[3] > 15) { + aCircuitData[3] = 15; + } } - if (aCircuitData[1] > 15) { - aCircuitData[1] = 15; + + public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + byte tRedstone = getStrongestRedstone(aRedstoneCircuitBlock); + aRedstoneCircuitBlock.setRedstone((byte) (((tRedstone >= aCircuitData[0]) && (tRedstone <= aCircuitData[1]) ? 1 : 0) != (aCircuitData[2] != 0 ? 1 : 0) ? (byte) aCircuitData[3] : 0), aRedstoneCircuitBlock.getOutputFacing()); } - if (aCircuitData[1] < aCircuitData[0]) { - aCircuitData[1] = aCircuitData[0]; + + public String getName() { + return "Redstone Meter"; } - if (aCircuitData[2] < 0) { - aCircuitData[2] = 0; + + public String getDescription() { + return "Checks Boundaries"; } - if (aCircuitData[2] > 1) { - aCircuitData[2] = 1; + + public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { + switch (aCircuitDataIndex) { + case 0: + return "Lower"; + case 1: + return "Upper"; + case 2: + return "Invert:"; + case 3: + return "RS Out:"; + } + return ""; } - if (aCircuitData[3] < 0) { - aCircuitData[3] = 0; + + public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { + return false; } - if (aCircuitData[3] > 15) { - aCircuitData[3] = 15; + + public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { + if (aCircuitDataIndex == 2) { + return aCircuitData[2] == 0 ? "OFF" : "ON"; + } + return null; } - } - - public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - byte tRedstone = getStrongestRedstone(aRedstoneCircuitBlock); - aRedstoneCircuitBlock.setRedstone((byte)(((tRedstone >= aCircuitData[0]) && (tRedstone <= aCircuitData[1]) ? 1 : 0) != (aCircuitData[2] != 0 ? 1 : 0) ? (byte)aCircuitData[3] : 0), aRedstoneCircuitBlock.getOutputFacing()); - } - - public String getName() - { - return "Redstone Meter"; - } - - public String getDescription() - { - return "Checks Boundaries"; - } - - public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) - { - switch (aCircuitDataIndex) - { - case 0: - return "Lower"; - case 1: - return "Upper"; - case 2: - return "Invert:"; - case 3: - return "RS Out:"; - } - return ""; - } - - public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) - { - return false; - } - - public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) - { - if (aCircuitDataIndex == 2) { - return aCircuitData[2] == 0 ? "OFF" : "ON"; - } - return null; - } } diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Repeater.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Repeater.java index ba96272d..1f584c74 100644 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Repeater.java +++ b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Repeater.java @@ -4,94 +4,76 @@ import gregtech.api.interfaces.IRedstoneCircuitBlock; import gregtech.api.util.GT_CircuitryBehavior; public class GT_Circuit_Repeater - extends GT_CircuitryBehavior -{ - public GT_Circuit_Repeater(int aIndex) - { - super(aIndex); - } - - public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - aCircuitData[0] = 1; - aCircuitData[4] = 0; - aCircuitData[5] = -1; - } - - public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - if (aCircuitData[0] < 1) { - aCircuitData[0] = 1; + extends GT_CircuitryBehavior { + public GT_Circuit_Repeater(int aIndex) { + super(aIndex); } - if (aCircuitData[4] < 0) { - aCircuitData[4] = 0; + + public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + aCircuitData[0] = 1; + aCircuitData[4] = 0; + aCircuitData[5] = -1; } - if (aCircuitData[5] < -1) { - aCircuitData[5] = -1; + + public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[0] < 1) { + aCircuitData[0] = 1; + } + if (aCircuitData[4] < 0) { + aCircuitData[4] = 0; + } + if (aCircuitData[5] < -1) { + aCircuitData[5] = -1; + } } - } - - public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - if (getAnyRedstone(aRedstoneCircuitBlock)) - { - aCircuitData[4] += 1; - if (aCircuitData[5] < 0) { - aCircuitData[5] = 0; - } + + public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (getAnyRedstone(aRedstoneCircuitBlock)) { + aCircuitData[4] += 1; + if (aCircuitData[5] < 0) { + aCircuitData[5] = 0; + } + } + if ((aCircuitData[5] >= 0) && (aCircuitData[5] < aCircuitData[0])) { + aCircuitData[5] += 1; + } + if (aCircuitData[4] > 0) { + if (aCircuitData[5] >= aCircuitData[0]) { + aCircuitData[4] -= 1; + aRedstoneCircuitBlock.setRedstone((byte) 15, aRedstoneCircuitBlock.getOutputFacing()); + } else { + aRedstoneCircuitBlock.setRedstone((byte) 0, aRedstoneCircuitBlock.getOutputFacing()); + } + } else { + aRedstoneCircuitBlock.setRedstone((byte) 0, aRedstoneCircuitBlock.getOutputFacing()); + aCircuitData[5] = -1; + } } - if ((aCircuitData[5] >= 0) && (aCircuitData[5] < aCircuitData[0])) { - aCircuitData[5] += 1; + + public String getName() { + return "Repeater"; } - if (aCircuitData[4] > 0) - { - if (aCircuitData[5] >= aCircuitData[0]) - { - aCircuitData[4] -= 1; - aRedstoneCircuitBlock.setRedstone((byte)15, aRedstoneCircuitBlock.getOutputFacing()); - } - else - { - aRedstoneCircuitBlock.setRedstone((byte)0, aRedstoneCircuitBlock.getOutputFacing()); - } + + public String getDescription() { + return "Delays RS-Signal"; } - else - { - aRedstoneCircuitBlock.setRedstone((byte)0, aRedstoneCircuitBlock.getOutputFacing()); - aCircuitData[5] = -1; + + public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { + switch (aCircuitDataIndex) { + case 0: + return "Delay"; + } + return ""; } - } - - public String getName() - { - return "Repeater"; - } - - public String getDescription() - { - return "Delays RS-Signal"; - } - - public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) - { - switch (aCircuitDataIndex) - { - case 0: - return "Delay"; + + public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { + return false; } - return ""; - } - - public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) - { - return false; - } - - public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) - { - if (aCircuitDataIndex > 0) { - return ""; + + public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { + if (aCircuitDataIndex > 0) { + return ""; + } + return null; } - return null; - } } diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Timer.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Timer.java index ef450cc7..96a6f800 100644 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Timer.java +++ b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Timer.java @@ -4,121 +4,100 @@ import gregtech.api.interfaces.IRedstoneCircuitBlock; import gregtech.api.util.GT_CircuitryBehavior; public class GT_Circuit_Timer - extends GT_CircuitryBehavior -{ - public GT_Circuit_Timer(int aIndex) - { - super(aIndex); - } - - public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - aCircuitData[0] = 2; - aCircuitData[1] = 1; - aCircuitData[2] = 2; - aCircuitData[4] = 0; - } - - public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - if (aCircuitData[0] < 2) { - aCircuitData[0] = 2; + extends GT_CircuitryBehavior { + public GT_Circuit_Timer(int aIndex) { + super(aIndex); } - if (aCircuitData[1] < 1) { - aCircuitData[1] = 1; - } - if (aCircuitData[2] < 2) { - aCircuitData[2] = 2; - } - if (aCircuitData[3] < 0) { - aCircuitData[3] = 0; - } - if (aCircuitData[3] > 1) { - aCircuitData[3] = 1; - } - if (aCircuitData[4] < 0) { - aCircuitData[4] = 0; - } - } - - public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) - { - if (aCircuitData[3] == 1) - { - if (getAnyRedstone(aRedstoneCircuitBlock)) { - aCircuitData[4] += 1; - } else { + + public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + aCircuitData[0] = 2; + aCircuitData[1] = 1; + aCircuitData[2] = 2; aCircuitData[4] = 0; - } } - else if (getAnyRedstone(aRedstoneCircuitBlock)) { - aCircuitData[4] = 0; - } else { - aCircuitData[4] += 1; - } - if (aCircuitData[4] >= aCircuitData[0]) - { - if (aCircuitData[1] > 1) - { - if (aCircuitData[4] >= aCircuitData[0] + (aCircuitData[1] - 1) * aCircuitData[2]) - { - aRedstoneCircuitBlock.setRedstone((byte)15, aRedstoneCircuitBlock.getOutputFacing()); - aCircuitData[4] = 0; + + public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[0] < 2) { + aCircuitData[0] = 2; } - else - { - aRedstoneCircuitBlock.setRedstone((byte)((aCircuitData[4] - aCircuitData[0]) % aCircuitData[2] == 0 ? 15 : 0), aRedstoneCircuitBlock.getOutputFacing()); + if (aCircuitData[1] < 1) { + aCircuitData[1] = 1; + } + if (aCircuitData[2] < 2) { + aCircuitData[2] = 2; + } + if (aCircuitData[3] < 0) { + aCircuitData[3] = 0; + } + if (aCircuitData[3] > 1) { + aCircuitData[3] = 1; + } + if (aCircuitData[4] < 0) { + aCircuitData[4] = 0; } - } - else - { - aRedstoneCircuitBlock.setRedstone((byte)15, aRedstoneCircuitBlock.getOutputFacing()); - aCircuitData[4] = 0; - } } - else { - aRedstoneCircuitBlock.setRedstone((byte)0, aRedstoneCircuitBlock.getOutputFacing()); + + public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[3] == 1) { + if (getAnyRedstone(aRedstoneCircuitBlock)) { + aCircuitData[4] += 1; + } else { + aCircuitData[4] = 0; + } + } else if (getAnyRedstone(aRedstoneCircuitBlock)) { + aCircuitData[4] = 0; + } else { + aCircuitData[4] += 1; + } + if (aCircuitData[4] >= aCircuitData[0]) { + if (aCircuitData[1] > 1) { + if (aCircuitData[4] >= aCircuitData[0] + (aCircuitData[1] - 1) * aCircuitData[2]) { + aRedstoneCircuitBlock.setRedstone((byte) 15, aRedstoneCircuitBlock.getOutputFacing()); + aCircuitData[4] = 0; + } else { + aRedstoneCircuitBlock.setRedstone((byte) ((aCircuitData[4] - aCircuitData[0]) % aCircuitData[2] == 0 ? 15 : 0), aRedstoneCircuitBlock.getOutputFacing()); + } + } else { + aRedstoneCircuitBlock.setRedstone((byte) 15, aRedstoneCircuitBlock.getOutputFacing()); + aCircuitData[4] = 0; + } + } else { + aRedstoneCircuitBlock.setRedstone((byte) 0, aRedstoneCircuitBlock.getOutputFacing()); + } } - } - - public String getName() - { - return "Timer"; - } - - public String getDescription() - { - return "Pulses Redstone"; - } - - public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) - { - switch (aCircuitDataIndex) - { - case 0: - return "Delay"; - case 1: - return "Pulses"; - case 2: - return "Length"; - case 3: - return aCircuitData[aCircuitDataIndex] == 1 ? "RS => ON" : "RS => OFF"; - case 4: - return "Time"; + + public String getName() { + return "Timer"; } - return ""; - } - - public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) - { - return false; - } - - public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) - { - if (aCircuitDataIndex == 3) { - return ""; + + public String getDescription() { + return "Pulses Redstone"; + } + + public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { + switch (aCircuitDataIndex) { + case 0: + return "Delay"; + case 1: + return "Pulses"; + case 2: + return "Length"; + case 3: + return aCircuitData[aCircuitDataIndex] == 1 ? "RS => ON" : "RS => OFF"; + case 4: + return "Time"; + } + return ""; + } + + public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { + return false; + } + + public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { + if (aCircuitDataIndex == 3) { + return ""; + } + return null; } - return null; - } } diff --git a/src/main/java/gregtech/common/render/GT_CapeRenderer.java b/src/main/java/gregtech/common/render/GT_CapeRenderer.java index 6daf94c3..49ba9a72 100644 --- a/src/main/java/gregtech/common/render/GT_CapeRenderer.java +++ b/src/main/java/gregtech/common/render/GT_CapeRenderer.java @@ -3,9 +3,6 @@ package gregtech.common.render; import gregtech.api.enums.GT_Values; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_Utility; - -import java.util.Collection; - import net.minecraft.client.entity.AbstractClientPlayer; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.renderer.entity.RenderManager; @@ -14,92 +11,85 @@ import net.minecraft.potion.Potion; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.event.RenderPlayerEvent; -import net.minecraftforge.client.event.RenderPlayerEvent.Specials.Pre; - import org.lwjgl.opengl.GL11; +import java.util.Collection; + public class GT_CapeRenderer - extends RenderPlayer -{ - private final ResourceLocation[] mCapes = { new ResourceLocation("gregtech:textures/BrainTechCape.png"), new ResourceLocation("gregtech:textures/GregTechCape.png"), new ResourceLocation("gregtech:textures/MrBrainCape.png"), new ResourceLocation("gregtech:textures/GregoriusCape.png") }; - private final Collection mCapeList; - - public GT_CapeRenderer(Collection aCapeList) - { - this.mCapeList = aCapeList; - setRenderManager(RenderManager.instance); - } - - public void receiveRenderSpecialsEvent(RenderPlayerEvent.Specials.Pre aEvent) - { - AbstractClientPlayer aPlayer = (AbstractClientPlayer)aEvent.entityPlayer; - if (GT_Utility.getFullInvisibility(aPlayer)) - { - aEvent.setCanceled(true);return; + extends RenderPlayer { + private final ResourceLocation[] mCapes = {new ResourceLocation("gregtech:textures/BrainTechCape.png"), new ResourceLocation("gregtech:textures/GregTechCape.png"), new ResourceLocation("gregtech:textures/MrBrainCape.png"), new ResourceLocation("gregtech:textures/GregoriusCape.png")}; + private final Collection mCapeList; + + public GT_CapeRenderer(Collection aCapeList) { + this.mCapeList = aCapeList; + setRenderManager(RenderManager.instance); } - float aPartialTicks = aEvent.partialRenderTick; - if (aPlayer.isInvisible()) { - return; - } - if (GT_Utility.getPotion(aPlayer, Integer.valueOf(Potion.invisibility.id).intValue())) { - return; - } - try - { - ResourceLocation tResource = null; - if (aPlayer.getDisplayName().equalsIgnoreCase("Friedi4321")) { - tResource = this.mCapes[0]; - } - if (this.mCapeList.contains(aPlayer.getDisplayName().toLowerCase())) { - tResource = this.mCapes[1]; - } - if (aPlayer.getDisplayName().equalsIgnoreCase("Mr_Brain")) { - tResource = this.mCapes[2]; - } - if (aPlayer.getDisplayName().equalsIgnoreCase("GregoriusT")) { - tResource = this.mCapes[3]; - } - if ((tResource != null) && (!aPlayer.getHideCape())) - { - bindTexture(tResource); - GL11.glPushMatrix(); - GL11.glTranslatef(0.0F, 0.0F, 0.125F); - double d0 = aPlayer.field_71091_bM + (aPlayer.field_71094_bP - aPlayer.field_71091_bM) * aPartialTicks - (aPlayer.prevPosX + (aPlayer.posX - aPlayer.prevPosX) * aPartialTicks); - double d1 = aPlayer.field_71096_bN + (aPlayer.field_71095_bQ - aPlayer.field_71096_bN) * aPartialTicks - (aPlayer.prevPosY + (aPlayer.posY - aPlayer.prevPosY) * aPartialTicks); - double d2 = aPlayer.field_71097_bO + (aPlayer.field_71085_bR - aPlayer.field_71097_bO) * aPartialTicks - (aPlayer.prevPosZ + (aPlayer.posZ - aPlayer.prevPosZ) * aPartialTicks); - float f6 = aPlayer.prevRenderYawOffset + (aPlayer.renderYawOffset - aPlayer.prevRenderYawOffset) * aPartialTicks; - double d3 = MathHelper.sin(f6 * 3.141593F / 180.0F); - double d4 = -MathHelper.cos(f6 * 3.141593F / 180.0F); - float f7 = (float)d1 * 10.0F; - float f8 = (float)(d0 * d3 + d2 * d4) * 100.0F; - float f9 = (float)(d0 * d4 - d2 * d3) * 100.0F; - if (f7 < -6.0F) { - f7 = -6.0F; + + public void receiveRenderSpecialsEvent(RenderPlayerEvent.Specials.Pre aEvent) { + AbstractClientPlayer aPlayer = (AbstractClientPlayer) aEvent.entityPlayer; + if (GT_Utility.getFullInvisibility(aPlayer)) { + aEvent.setCanceled(true); + return; } - if (f7 > 32.0F) { - f7 = 32.0F; + float aPartialTicks = aEvent.partialRenderTick; + if (aPlayer.isInvisible()) { + return; } - if (f8 < 0.0F) { - f8 = 0.0F; + if (GT_Utility.getPotion(aPlayer, Integer.valueOf(Potion.invisibility.id).intValue())) { + return; } - float f10 = aPlayer.prevCameraYaw + (aPlayer.cameraYaw - aPlayer.prevCameraYaw) * aPartialTicks; - f7 += MathHelper.sin((aPlayer.prevDistanceWalkedModified + (aPlayer.distanceWalkedModified - aPlayer.prevDistanceWalkedModified) * aPartialTicks) * 6.0F) * 32.0F * f10; - if (aPlayer.isSneaking()) { - f7 += 25.0F; + try { + ResourceLocation tResource = null; + if (aPlayer.getDisplayName().equalsIgnoreCase("Friedi4321")) { + tResource = this.mCapes[0]; + } + if (this.mCapeList.contains(aPlayer.getDisplayName().toLowerCase())) { + tResource = this.mCapes[1]; + } + if (aPlayer.getDisplayName().equalsIgnoreCase("Mr_Brain")) { + tResource = this.mCapes[2]; + } + if (aPlayer.getDisplayName().equalsIgnoreCase("GregoriusT")) { + tResource = this.mCapes[3]; + } + if ((tResource != null) && (!aPlayer.getHideCape())) { + bindTexture(tResource); + GL11.glPushMatrix(); + GL11.glTranslatef(0.0F, 0.0F, 0.125F); + double d0 = aPlayer.field_71091_bM + (aPlayer.field_71094_bP - aPlayer.field_71091_bM) * aPartialTicks - (aPlayer.prevPosX + (aPlayer.posX - aPlayer.prevPosX) * aPartialTicks); + double d1 = aPlayer.field_71096_bN + (aPlayer.field_71095_bQ - aPlayer.field_71096_bN) * aPartialTicks - (aPlayer.prevPosY + (aPlayer.posY - aPlayer.prevPosY) * aPartialTicks); + double d2 = aPlayer.field_71097_bO + (aPlayer.field_71085_bR - aPlayer.field_71097_bO) * aPartialTicks - (aPlayer.prevPosZ + (aPlayer.posZ - aPlayer.prevPosZ) * aPartialTicks); + float f6 = aPlayer.prevRenderYawOffset + (aPlayer.renderYawOffset - aPlayer.prevRenderYawOffset) * aPartialTicks; + double d3 = MathHelper.sin(f6 * 3.141593F / 180.0F); + double d4 = -MathHelper.cos(f6 * 3.141593F / 180.0F); + float f7 = (float) d1 * 10.0F; + float f8 = (float) (d0 * d3 + d2 * d4) * 100.0F; + float f9 = (float) (d0 * d4 - d2 * d3) * 100.0F; + if (f7 < -6.0F) { + f7 = -6.0F; + } + if (f7 > 32.0F) { + f7 = 32.0F; + } + if (f8 < 0.0F) { + f8 = 0.0F; + } + float f10 = aPlayer.prevCameraYaw + (aPlayer.cameraYaw - aPlayer.prevCameraYaw) * aPartialTicks; + f7 += MathHelper.sin((aPlayer.prevDistanceWalkedModified + (aPlayer.distanceWalkedModified - aPlayer.prevDistanceWalkedModified) * aPartialTicks) * 6.0F) * 32.0F * f10; + if (aPlayer.isSneaking()) { + f7 += 25.0F; + } + GL11.glRotatef(6.0F + f8 / 2.0F + f7, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(f9 / 2.0F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(-f9 / 2.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F); + ((ModelBiped) this.mainModel).renderCloak(0.0625F); + GL11.glPopMatrix(); + } + } catch (Throwable e) { + if (GT_Values.D1) { + e.printStackTrace(GT_Log.err); + } } - GL11.glRotatef(6.0F + f8 / 2.0F + f7, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(f9 / 2.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-f9 / 2.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F); - ((ModelBiped)this.mainModel).renderCloak(0.0625F); - GL11.glPopMatrix(); - } } - catch (Throwable e) - { - if (GT_Values.D1) { - e.printStackTrace(GT_Log.err); - } - } - } } diff --git a/src/main/java/gregtech/common/render/GT_MetaGenerated_Item_Renderer.java b/src/main/java/gregtech/common/render/GT_MetaGenerated_Item_Renderer.java index aab095d5..316b5542 100644 --- a/src/main/java/gregtech/common/render/GT_MetaGenerated_Item_Renderer.java +++ b/src/main/java/gregtech/common/render/GT_MetaGenerated_Item_Renderer.java @@ -3,182 +3,152 @@ package gregtech.common.render; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Item; import gregtech.api.util.GT_Utility; -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderItem; -import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.client.IItemRenderer.ItemRenderType; -import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; import net.minecraftforge.client.MinecraftForgeClient; -import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import org.lwjgl.opengl.GL11; +import java.util.Iterator; + public class GT_MetaGenerated_Item_Renderer - implements IItemRenderer -{ - public GT_MetaGenerated_Item_Renderer() - { - GT_MetaGenerated_Item tItem; - for (Iterator i$ = GT_MetaGenerated_Item.sInstances.values().iterator(); i$.hasNext(); MinecraftForgeClient.registerItemRenderer(tItem, this)) - { - tItem = (GT_MetaGenerated_Item)i$.next(); - if ((tItem == null) || (!tItem.useStandardMetaItemRenderer())) {} - } - } - - public boolean handleRenderType(ItemStack aStack, IItemRenderer.ItemRenderType aType) - { - if ((GT_Utility.isStackInvalid(aStack)) || (aStack.getItemDamage() < 0)) { - return false; - } - return (aType == IItemRenderer.ItemRenderType.EQUIPPED_FIRST_PERSON) || (aType == IItemRenderer.ItemRenderType.INVENTORY) || (aType == IItemRenderer.ItemRenderType.EQUIPPED) || (aType == IItemRenderer.ItemRenderType.ENTITY); - } - - public boolean shouldUseRenderHelper(IItemRenderer.ItemRenderType aType, ItemStack aStack, IItemRenderer.ItemRendererHelper aHelper) - { - if (GT_Utility.isStackInvalid(aStack)) { - return false; - } - return aType == IItemRenderer.ItemRenderType.ENTITY; - } - - public void renderItem(IItemRenderer.ItemRenderType type, ItemStack aStack, Object... data) - { - if (GT_Utility.isStackInvalid(aStack)) { - return; - } - short aMetaData = (short)aStack.getItemDamage(); - if (aMetaData < 0) { - return; - } - GT_MetaGenerated_Item aItem = (GT_MetaGenerated_Item)aStack.getItem(); - - - GL11.glEnable(3042); - if (type == IItemRenderer.ItemRenderType.ENTITY) { - if (RenderItem.renderInFrame) - { - GL11.glScalef(0.85F, 0.85F, 0.85F); - GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslated(-0.5D, -0.42D, 0.0D); - } - else - { - GL11.glTranslated(-0.5D, -0.42D, 0.0D); - } - } - GL11.glColor3f(1.0F, 1.0F, 1.0F); - if (aMetaData < aItem.mOffset) - { - IIconContainer aIcon = aItem.getIconContainer(aMetaData); - IIcon tOverlay = null;IIcon tFluidIcon = null; - IIcon tIcon; - if (aIcon == null) - { - tIcon = aStack.getIconIndex(); - } - else - { - tIcon = aIcon.getIcon(); - tOverlay = aIcon.getOverlayIcon(); - } - if (tIcon == null) { - return; - } - FluidStack tFluid = GT_Utility.getFluidForFilledItem(aStack, true); - if ((tOverlay != null) && (tFluid != null) && (tFluid.getFluid() != null)) { - tFluidIcon = tFluid.getFluid().getIcon(tFluid); - } - Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture); - GL11.glBlendFunc(770, 771); - if (tFluidIcon == null) - { - short[] tModulation = aItem.getRGBa(aStack); - GL11.glColor3f(tModulation[0] / 255.0F, tModulation[1] / 255.0F, tModulation[2] / 255.0F); - } - if (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) { - GT_RenderUtil.renderItemIcon(tIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); - } else { - ItemRenderer.renderItemIn2D(Tessellator.instance, tIcon.getMaxU(), tIcon.getMinV(), tIcon.getMinU(), tIcon.getMaxV(), tIcon.getIconWidth(), tIcon.getIconHeight(), 0.0625F); - } - if (tFluidIcon != null) - { - assert (tFluid != null); - int tColor = tFluid.getFluid().getColor(tFluid); - GL11.glColor3f((tColor >> 16 & 0xFF) / 255.0F, (tColor >> 8 & 0xFF) / 255.0F, (tColor & 0xFF) / 255.0F); - Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationBlocksTexture); - GL11.glBlendFunc(770, 771); - GL11.glDepthFunc(514); - if (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) { - GT_RenderUtil.renderItemIcon(tFluidIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); - } else { - ItemRenderer.renderItemIn2D(Tessellator.instance, tFluidIcon.getMaxU(), tFluidIcon.getMinV(), tFluidIcon.getMinU(), tFluidIcon.getMaxV(), tFluidIcon.getIconWidth(), tFluidIcon.getIconHeight(), 0.0625F); - } - GL11.glDepthFunc(515); - } - GL11.glColor3f(1.0F, 1.0F, 1.0F); - if (tOverlay != null) - { - Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture); - GL11.glBlendFunc(770, 771); - if (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) { - GT_RenderUtil.renderItemIcon(tOverlay, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); - } else { - ItemRenderer.renderItemIn2D(Tessellator.instance, tOverlay.getMaxU(), tOverlay.getMinV(), tOverlay.getMinU(), tOverlay.getMaxV(), tOverlay.getIconWidth(), tOverlay.getIconHeight(), 0.0625F); - } - } - } - else - { - IIcon tIcon; - if (aItem.mIconList[(aMetaData - aItem.mOffset)].length > 1) - { - Long[] tStats = (Long[])aItem.mElectricStats.get(Short.valueOf(aMetaData)); - - if ((tStats != null) && (tStats[3].longValue() < 0L)) - { - long tCharge = aItem.getRealCharge(aStack); - - if (tCharge <= 0L) - { - tIcon = aItem.mIconList[(aMetaData - aItem.mOffset)][1]; - } - else - { - - if (tCharge >= tStats[0].longValue()) { - tIcon = aItem.mIconList[(aMetaData - aItem.mOffset)][8]; - } else { - tIcon = aItem.mIconList[(aMetaData - aItem.mOffset)][(7 - (int)java.lang.Math.max(0L, java.lang.Math.min(5L, (tStats[0].longValue() - tCharge) * 6L / tStats[0].longValue())))]; + implements IItemRenderer { + public GT_MetaGenerated_Item_Renderer() { + GT_MetaGenerated_Item tItem; + for (Iterator i$ = GT_MetaGenerated_Item.sInstances.values().iterator(); i$.hasNext(); MinecraftForgeClient.registerItemRenderer(tItem, this)) { + tItem = (GT_MetaGenerated_Item) i$.next(); + if ((tItem == null) || (!tItem.useStandardMetaItemRenderer())) { } - } } - else - { - tIcon = aItem.mIconList[(aMetaData - aItem.mOffset)][0]; - } - } - else - { - tIcon = aItem.mIconList[(aMetaData - aItem.mOffset)][0]; - } - Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture); - GL11.glBlendFunc(770, 771); - if (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) { - GT_RenderUtil.renderItemIcon(tIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); - } else { - ItemRenderer.renderItemIn2D(Tessellator.instance, tIcon.getMaxU(), tIcon.getMinV(), tIcon.getMinU(), tIcon.getMaxV(), tIcon.getIconWidth(), tIcon.getIconHeight(), 0.0625F); - } } - GL11.glDisable(3042); - } + + public boolean handleRenderType(ItemStack aStack, IItemRenderer.ItemRenderType aType) { + if ((GT_Utility.isStackInvalid(aStack)) || (aStack.getItemDamage() < 0)) { + return false; + } + return (aType == IItemRenderer.ItemRenderType.EQUIPPED_FIRST_PERSON) || (aType == IItemRenderer.ItemRenderType.INVENTORY) || (aType == IItemRenderer.ItemRenderType.EQUIPPED) || (aType == IItemRenderer.ItemRenderType.ENTITY); + } + + public boolean shouldUseRenderHelper(IItemRenderer.ItemRenderType aType, ItemStack aStack, IItemRenderer.ItemRendererHelper aHelper) { + if (GT_Utility.isStackInvalid(aStack)) { + return false; + } + return aType == IItemRenderer.ItemRenderType.ENTITY; + } + + public void renderItem(IItemRenderer.ItemRenderType type, ItemStack aStack, Object... data) { + if (GT_Utility.isStackInvalid(aStack)) { + return; + } + short aMetaData = (short) aStack.getItemDamage(); + if (aMetaData < 0) { + return; + } + GT_MetaGenerated_Item aItem = (GT_MetaGenerated_Item) aStack.getItem(); + + + GL11.glEnable(3042); + if (type == IItemRenderer.ItemRenderType.ENTITY) { + if (RenderItem.renderInFrame) { + GL11.glScalef(0.85F, 0.85F, 0.85F); + GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F); + GL11.glTranslated(-0.5D, -0.42D, 0.0D); + } else { + GL11.glTranslated(-0.5D, -0.42D, 0.0D); + } + } + GL11.glColor3f(1.0F, 1.0F, 1.0F); + if (aMetaData < aItem.mOffset) { + IIconContainer aIcon = aItem.getIconContainer(aMetaData); + IIcon tOverlay = null; + IIcon tFluidIcon = null; + IIcon tIcon; + if (aIcon == null) { + tIcon = aStack.getIconIndex(); + } else { + tIcon = aIcon.getIcon(); + tOverlay = aIcon.getOverlayIcon(); + } + if (tIcon == null) { + return; + } + FluidStack tFluid = GT_Utility.getFluidForFilledItem(aStack, true); + if ((tOverlay != null) && (tFluid != null) && (tFluid.getFluid() != null)) { + tFluidIcon = tFluid.getFluid().getIcon(tFluid); + } + Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture); + GL11.glBlendFunc(770, 771); + if (tFluidIcon == null) { + short[] tModulation = aItem.getRGBa(aStack); + GL11.glColor3f(tModulation[0] / 255.0F, tModulation[1] / 255.0F, tModulation[2] / 255.0F); + } + if (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) { + GT_RenderUtil.renderItemIcon(tIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); + } else { + ItemRenderer.renderItemIn2D(Tessellator.instance, tIcon.getMaxU(), tIcon.getMinV(), tIcon.getMinU(), tIcon.getMaxV(), tIcon.getIconWidth(), tIcon.getIconHeight(), 0.0625F); + } + if (tFluidIcon != null) { + assert (tFluid != null); + int tColor = tFluid.getFluid().getColor(tFluid); + GL11.glColor3f((tColor >> 16 & 0xFF) / 255.0F, (tColor >> 8 & 0xFF) / 255.0F, (tColor & 0xFF) / 255.0F); + Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationBlocksTexture); + GL11.glBlendFunc(770, 771); + GL11.glDepthFunc(514); + if (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) { + GT_RenderUtil.renderItemIcon(tFluidIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); + } else { + ItemRenderer.renderItemIn2D(Tessellator.instance, tFluidIcon.getMaxU(), tFluidIcon.getMinV(), tFluidIcon.getMinU(), tFluidIcon.getMaxV(), tFluidIcon.getIconWidth(), tFluidIcon.getIconHeight(), 0.0625F); + } + GL11.glDepthFunc(515); + } + GL11.glColor3f(1.0F, 1.0F, 1.0F); + if (tOverlay != null) { + Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture); + GL11.glBlendFunc(770, 771); + if (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) { + GT_RenderUtil.renderItemIcon(tOverlay, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); + } else { + ItemRenderer.renderItemIn2D(Tessellator.instance, tOverlay.getMaxU(), tOverlay.getMinV(), tOverlay.getMinU(), tOverlay.getMaxV(), tOverlay.getIconWidth(), tOverlay.getIconHeight(), 0.0625F); + } + } + } else { + IIcon tIcon; + if (aItem.mIconList[(aMetaData - aItem.mOffset)].length > 1) { + Long[] tStats = (Long[]) aItem.mElectricStats.get(Short.valueOf(aMetaData)); + + if ((tStats != null) && (tStats[3].longValue() < 0L)) { + long tCharge = aItem.getRealCharge(aStack); + + if (tCharge <= 0L) { + tIcon = aItem.mIconList[(aMetaData - aItem.mOffset)][1]; + } else { + + if (tCharge >= tStats[0].longValue()) { + tIcon = aItem.mIconList[(aMetaData - aItem.mOffset)][8]; + } else { + tIcon = aItem.mIconList[(aMetaData - aItem.mOffset)][(7 - (int) java.lang.Math.max(0L, java.lang.Math.min(5L, (tStats[0].longValue() - tCharge) * 6L / tStats[0].longValue())))]; + } + } + } else { + tIcon = aItem.mIconList[(aMetaData - aItem.mOffset)][0]; + } + } else { + tIcon = aItem.mIconList[(aMetaData - aItem.mOffset)][0]; + } + Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture); + GL11.glBlendFunc(770, 771); + if (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) { + GT_RenderUtil.renderItemIcon(tIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); + } else { + ItemRenderer.renderItemIn2D(Tessellator.instance, tIcon.getMaxU(), tIcon.getMinV(), tIcon.getMinU(), tIcon.getMaxV(), tIcon.getIconWidth(), tIcon.getIconHeight(), 0.0625F); + } + } + GL11.glDisable(3042); + } } diff --git a/src/main/java/gregtech/common/render/GT_MetaGenerated_Tool_Renderer.java b/src/main/java/gregtech/common/render/GT_MetaGenerated_Tool_Renderer.java index f905cc0e..40d4acf8 100644 --- a/src/main/java/gregtech/common/render/GT_MetaGenerated_Tool_Renderer.java +++ b/src/main/java/gregtech/common/render/GT_MetaGenerated_Tool_Renderer.java @@ -5,204 +5,180 @@ import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.IToolStats; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.util.GT_Utility; -import java.util.HashMap; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderItem; -import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.client.IItemRenderer.ItemRenderType; -import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; import net.minecraftforge.client.MinecraftForgeClient; import org.lwjgl.opengl.GL11; public class GT_MetaGenerated_Tool_Renderer - implements IItemRenderer -{ - public GT_MetaGenerated_Tool_Renderer() - { - for (GT_MetaGenerated_Tool tItem : GT_MetaGenerated_Tool.sInstances.values()) { - if (tItem != null) { - MinecraftForgeClient.registerItemRenderer(tItem, this); - } - } - } - - public boolean handleRenderType(ItemStack aStack, IItemRenderer.ItemRenderType aType) - { - if ((GT_Utility.isStackInvalid(aStack)) || (aStack.getItemDamage() < 0)) { - return false; - } - return (aType == IItemRenderer.ItemRenderType.EQUIPPED_FIRST_PERSON) || (aType == IItemRenderer.ItemRenderType.INVENTORY) || (aType == IItemRenderer.ItemRenderType.EQUIPPED) || (aType == IItemRenderer.ItemRenderType.ENTITY); - } - - public boolean shouldUseRenderHelper(IItemRenderer.ItemRenderType aType, ItemStack aStack, IItemRenderer.ItemRendererHelper aHelper) - { - if (GT_Utility.isStackInvalid(aStack)) { - return false; - } - return aType == IItemRenderer.ItemRenderType.ENTITY; - } - - public void renderItem(IItemRenderer.ItemRenderType aType, ItemStack aStack, Object... data) - { - if (GT_Utility.isStackInvalid(aStack)) { - return; - } - GT_MetaGenerated_Tool aItem = (GT_MetaGenerated_Tool)aStack.getItem(); - GL11.glEnable(3042); - if (aType == IItemRenderer.ItemRenderType.ENTITY) { - if (RenderItem.renderInFrame) - { - GL11.glScalef(0.85F, 0.85F, 0.85F); - GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslated(-0.5D, -0.42D, 0.0D); - } - else - { - GL11.glTranslated(-0.5D, -0.42D, 0.0D); - } - } - GL11.glColor3f(1.0F, 1.0F, 1.0F); - - IToolStats tToolStats = aItem.getToolStats(aStack); - if (tToolStats != null) - { - IIconContainer aIcon = tToolStats.getIcon(false, aStack); - if (aIcon != null) - { - IIcon tIcon = aIcon.getIcon();IIcon tOverlay = aIcon.getOverlayIcon(); - if (tIcon != null) - { - Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile()); - GL11.glBlendFunc(770, 771); - short[] tModulation = tToolStats.getRGBa(false, aStack); - GL11.glColor3f(tModulation[0] / 255.0F, tModulation[1] / 255.0F, tModulation[2] / 255.0F); - if (aType.equals(IItemRenderer.ItemRenderType.INVENTORY)) { - GT_RenderUtil.renderItemIcon(tIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); - } else { - ItemRenderer.renderItemIn2D(Tessellator.instance, tIcon.getMaxU(), tIcon.getMinV(), tIcon.getMinU(), tIcon.getMaxV(), tIcon.getIconWidth(), tIcon.getIconHeight(), 0.0625F); - } - GL11.glColor3f(1.0F, 1.0F, 1.0F); - } - if (tOverlay != null) - { - Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile()); - GL11.glBlendFunc(770, 771); - if (aType.equals(IItemRenderer.ItemRenderType.INVENTORY)) { - GT_RenderUtil.renderItemIcon(tOverlay, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); - } else { - ItemRenderer.renderItemIn2D(Tessellator.instance, tOverlay.getMaxU(), tOverlay.getMinV(), tOverlay.getMinU(), tOverlay.getMaxV(), tOverlay.getIconWidth(), tOverlay.getIconHeight(), 0.0625F); - } - } - } - aIcon = tToolStats.getIcon(true, aStack); - if (aIcon != null) - { - IIcon tIcon = aIcon.getIcon();IIcon tOverlay = aIcon.getOverlayIcon(); - if (tIcon != null) - { - Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile()); - GL11.glBlendFunc(770, 771); - short[] tModulation = tToolStats.getRGBa(true, aStack); - GL11.glColor3f(tModulation[0] / 255.0F, tModulation[1] / 255.0F, tModulation[2] / 255.0F); - if (aType.equals(IItemRenderer.ItemRenderType.INVENTORY)) { - GT_RenderUtil.renderItemIcon(tIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); - } else { - ItemRenderer.renderItemIn2D(Tessellator.instance, tIcon.getMaxU(), tIcon.getMinV(), tIcon.getMinU(), tIcon.getMaxV(), tIcon.getIconWidth(), tIcon.getIconHeight(), 0.0625F); - } - GL11.glColor3f(1.0F, 1.0F, 1.0F); - } - if (tOverlay != null) - { - Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile()); - GL11.glBlendFunc(770, 771); - if (aType.equals(IItemRenderer.ItemRenderType.INVENTORY)) { - GT_RenderUtil.renderItemIcon(tOverlay, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); - } else { - ItemRenderer.renderItemIn2D(Tessellator.instance, tOverlay.getMaxU(), tOverlay.getMinV(), tOverlay.getMinU(), tOverlay.getMaxV(), tOverlay.getIconWidth(), tOverlay.getIconHeight(), 0.0625F); - } - } - } - if ((aType == IItemRenderer.ItemRenderType.INVENTORY) && (GT_MetaGenerated_Tool.getPrimaryMaterial(aStack) != Materials._NULL)) - { - long tDamage = GT_MetaGenerated_Tool.getToolDamage(aStack);long tMaxDamage = GT_MetaGenerated_Tool.getToolMaxDamage(aStack); - if (tDamage <= 0L) { - aIcon = gregtech.api.enums.Textures.ItemIcons.DURABILITY_BAR[8]; - } else if (tDamage >= tMaxDamage) { - aIcon = gregtech.api.enums.Textures.ItemIcons.DURABILITY_BAR[0]; - } else { - aIcon = gregtech.api.enums.Textures.ItemIcons.DURABILITY_BAR[((int)java.lang.Math.max(0L, java.lang.Math.min(7L, (tMaxDamage - tDamage) * 8L / tMaxDamage)))]; - } - if (aIcon != null) - { - IIcon tIcon = aIcon.getIcon();IIcon tOverlay = aIcon.getOverlayIcon(); - if (tIcon != null) - { - Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile()); - GL11.glBlendFunc(770, 771); - if (aType.equals(IItemRenderer.ItemRenderType.INVENTORY)) { - GT_RenderUtil.renderItemIcon(tIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); - } else { - ItemRenderer.renderItemIn2D(Tessellator.instance, tIcon.getMaxU(), tIcon.getMinV(), tIcon.getMinU(), tIcon.getMaxV(), tIcon.getIconWidth(), tIcon.getIconHeight(), 0.0625F); + implements IItemRenderer { + public GT_MetaGenerated_Tool_Renderer() { + for (GT_MetaGenerated_Tool tItem : GT_MetaGenerated_Tool.sInstances.values()) { + if (tItem != null) { + MinecraftForgeClient.registerItemRenderer(tItem, this); } - } - if (tOverlay != null) - { - Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile()); - GL11.glBlendFunc(770, 771); - if (aType.equals(IItemRenderer.ItemRenderType.INVENTORY)) { - GT_RenderUtil.renderItemIcon(tOverlay, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); - } else { - ItemRenderer.renderItemIn2D(Tessellator.instance, tOverlay.getMaxU(), tOverlay.getMinV(), tOverlay.getMinU(), tOverlay.getMaxV(), tOverlay.getIconWidth(), tOverlay.getIconHeight(), 0.0625F); - } - } } - Long[] tStats = aItem.getElectricStats(aStack); - if ((tStats != null) && (tStats[3].longValue() < 0L)) - { - long tCharge = aItem.getRealCharge(aStack); - if (tCharge <= 0L) { - aIcon = gregtech.api.enums.Textures.ItemIcons.ENERGY_BAR[0]; - } else if (tCharge >= tStats[0].longValue()) { - aIcon = gregtech.api.enums.Textures.ItemIcons.ENERGY_BAR[8]; - } else { - aIcon = gregtech.api.enums.Textures.ItemIcons.ENERGY_BAR[(7 - (int)java.lang.Math.max(0L, java.lang.Math.min(6L, (tStats[0].longValue() - tCharge) * 7L / tStats[0].longValue())))]; - } - } - else - { - aIcon = null; - } - if (aIcon != null) - { - IIcon tIcon = aIcon.getIcon();IIcon tOverlay = aIcon.getOverlayIcon(); - if (tIcon != null) - { - Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile()); - GL11.glBlendFunc(770, 771); - if (aType.equals(IItemRenderer.ItemRenderType.INVENTORY)) { - GT_RenderUtil.renderItemIcon(tIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); - } else { - ItemRenderer.renderItemIn2D(Tessellator.instance, tIcon.getMaxU(), tIcon.getMinV(), tIcon.getMinU(), tIcon.getMaxV(), tIcon.getIconWidth(), tIcon.getIconHeight(), 0.0625F); - } - } - if (tOverlay != null) - { - Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile()); - GL11.glBlendFunc(770, 771); - if (aType.equals(IItemRenderer.ItemRenderType.INVENTORY)) { - GT_RenderUtil.renderItemIcon(tOverlay, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); - } else { - ItemRenderer.renderItemIn2D(Tessellator.instance, tOverlay.getMaxU(), tOverlay.getMinV(), tOverlay.getMinU(), tOverlay.getMaxV(), tOverlay.getIconWidth(), tOverlay.getIconHeight(), 0.0625F); - } - } - } - } } - GL11.glDisable(3042); - } + + public boolean handleRenderType(ItemStack aStack, IItemRenderer.ItemRenderType aType) { + if ((GT_Utility.isStackInvalid(aStack)) || (aStack.getItemDamage() < 0)) { + return false; + } + return (aType == IItemRenderer.ItemRenderType.EQUIPPED_FIRST_PERSON) || (aType == IItemRenderer.ItemRenderType.INVENTORY) || (aType == IItemRenderer.ItemRenderType.EQUIPPED) || (aType == IItemRenderer.ItemRenderType.ENTITY); + } + + public boolean shouldUseRenderHelper(IItemRenderer.ItemRenderType aType, ItemStack aStack, IItemRenderer.ItemRendererHelper aHelper) { + if (GT_Utility.isStackInvalid(aStack)) { + return false; + } + return aType == IItemRenderer.ItemRenderType.ENTITY; + } + + public void renderItem(IItemRenderer.ItemRenderType aType, ItemStack aStack, Object... data) { + if (GT_Utility.isStackInvalid(aStack)) { + return; + } + GT_MetaGenerated_Tool aItem = (GT_MetaGenerated_Tool) aStack.getItem(); + GL11.glEnable(3042); + if (aType == IItemRenderer.ItemRenderType.ENTITY) { + if (RenderItem.renderInFrame) { + GL11.glScalef(0.85F, 0.85F, 0.85F); + GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F); + GL11.glTranslated(-0.5D, -0.42D, 0.0D); + } else { + GL11.glTranslated(-0.5D, -0.42D, 0.0D); + } + } + GL11.glColor3f(1.0F, 1.0F, 1.0F); + + IToolStats tToolStats = aItem.getToolStats(aStack); + if (tToolStats != null) { + IIconContainer aIcon = tToolStats.getIcon(false, aStack); + if (aIcon != null) { + IIcon tIcon = aIcon.getIcon(); + IIcon tOverlay = aIcon.getOverlayIcon(); + if (tIcon != null) { + Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile()); + GL11.glBlendFunc(770, 771); + short[] tModulation = tToolStats.getRGBa(false, aStack); + GL11.glColor3f(tModulation[0] / 255.0F, tModulation[1] / 255.0F, tModulation[2] / 255.0F); + if (aType.equals(IItemRenderer.ItemRenderType.INVENTORY)) { + GT_RenderUtil.renderItemIcon(tIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); + } else { + ItemRenderer.renderItemIn2D(Tessellator.instance, tIcon.getMaxU(), tIcon.getMinV(), tIcon.getMinU(), tIcon.getMaxV(), tIcon.getIconWidth(), tIcon.getIconHeight(), 0.0625F); + } + GL11.glColor3f(1.0F, 1.0F, 1.0F); + } + if (tOverlay != null) { + Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile()); + GL11.glBlendFunc(770, 771); + if (aType.equals(IItemRenderer.ItemRenderType.INVENTORY)) { + GT_RenderUtil.renderItemIcon(tOverlay, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); + } else { + ItemRenderer.renderItemIn2D(Tessellator.instance, tOverlay.getMaxU(), tOverlay.getMinV(), tOverlay.getMinU(), tOverlay.getMaxV(), tOverlay.getIconWidth(), tOverlay.getIconHeight(), 0.0625F); + } + } + } + aIcon = tToolStats.getIcon(true, aStack); + if (aIcon != null) { + IIcon tIcon = aIcon.getIcon(); + IIcon tOverlay = aIcon.getOverlayIcon(); + if (tIcon != null) { + Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile()); + GL11.glBlendFunc(770, 771); + short[] tModulation = tToolStats.getRGBa(true, aStack); + GL11.glColor3f(tModulation[0] / 255.0F, tModulation[1] / 255.0F, tModulation[2] / 255.0F); + if (aType.equals(IItemRenderer.ItemRenderType.INVENTORY)) { + GT_RenderUtil.renderItemIcon(tIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); + } else { + ItemRenderer.renderItemIn2D(Tessellator.instance, tIcon.getMaxU(), tIcon.getMinV(), tIcon.getMinU(), tIcon.getMaxV(), tIcon.getIconWidth(), tIcon.getIconHeight(), 0.0625F); + } + GL11.glColor3f(1.0F, 1.0F, 1.0F); + } + if (tOverlay != null) { + Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile()); + GL11.glBlendFunc(770, 771); + if (aType.equals(IItemRenderer.ItemRenderType.INVENTORY)) { + GT_RenderUtil.renderItemIcon(tOverlay, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); + } else { + ItemRenderer.renderItemIn2D(Tessellator.instance, tOverlay.getMaxU(), tOverlay.getMinV(), tOverlay.getMinU(), tOverlay.getMaxV(), tOverlay.getIconWidth(), tOverlay.getIconHeight(), 0.0625F); + } + } + } + if ((aType == IItemRenderer.ItemRenderType.INVENTORY) && (GT_MetaGenerated_Tool.getPrimaryMaterial(aStack) != Materials._NULL)) { + long tDamage = GT_MetaGenerated_Tool.getToolDamage(aStack); + long tMaxDamage = GT_MetaGenerated_Tool.getToolMaxDamage(aStack); + if (tDamage <= 0L) { + aIcon = gregtech.api.enums.Textures.ItemIcons.DURABILITY_BAR[8]; + } else if (tDamage >= tMaxDamage) { + aIcon = gregtech.api.enums.Textures.ItemIcons.DURABILITY_BAR[0]; + } else { + aIcon = gregtech.api.enums.Textures.ItemIcons.DURABILITY_BAR[((int) java.lang.Math.max(0L, java.lang.Math.min(7L, (tMaxDamage - tDamage) * 8L / tMaxDamage)))]; + } + if (aIcon != null) { + IIcon tIcon = aIcon.getIcon(); + IIcon tOverlay = aIcon.getOverlayIcon(); + if (tIcon != null) { + Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile()); + GL11.glBlendFunc(770, 771); + if (aType.equals(IItemRenderer.ItemRenderType.INVENTORY)) { + GT_RenderUtil.renderItemIcon(tIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); + } else { + ItemRenderer.renderItemIn2D(Tessellator.instance, tIcon.getMaxU(), tIcon.getMinV(), tIcon.getMinU(), tIcon.getMaxV(), tIcon.getIconWidth(), tIcon.getIconHeight(), 0.0625F); + } + } + if (tOverlay != null) { + Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile()); + GL11.glBlendFunc(770, 771); + if (aType.equals(IItemRenderer.ItemRenderType.INVENTORY)) { + GT_RenderUtil.renderItemIcon(tOverlay, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); + } else { + ItemRenderer.renderItemIn2D(Tessellator.instance, tOverlay.getMaxU(), tOverlay.getMinV(), tOverlay.getMinU(), tOverlay.getMaxV(), tOverlay.getIconWidth(), tOverlay.getIconHeight(), 0.0625F); + } + } + } + Long[] tStats = aItem.getElectricStats(aStack); + if ((tStats != null) && (tStats[3].longValue() < 0L)) { + long tCharge = aItem.getRealCharge(aStack); + if (tCharge <= 0L) { + aIcon = gregtech.api.enums.Textures.ItemIcons.ENERGY_BAR[0]; + } else if (tCharge >= tStats[0].longValue()) { + aIcon = gregtech.api.enums.Textures.ItemIcons.ENERGY_BAR[8]; + } else { + aIcon = gregtech.api.enums.Textures.ItemIcons.ENERGY_BAR[(7 - (int) java.lang.Math.max(0L, java.lang.Math.min(6L, (tStats[0].longValue() - tCharge) * 7L / tStats[0].longValue())))]; + } + } else { + aIcon = null; + } + if (aIcon != null) { + IIcon tIcon = aIcon.getIcon(); + IIcon tOverlay = aIcon.getOverlayIcon(); + if (tIcon != null) { + Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile()); + GL11.glBlendFunc(770, 771); + if (aType.equals(IItemRenderer.ItemRenderType.INVENTORY)) { + GT_RenderUtil.renderItemIcon(tIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); + } else { + ItemRenderer.renderItemIn2D(Tessellator.instance, tIcon.getMaxU(), tIcon.getMinV(), tIcon.getMinU(), tIcon.getMaxV(), tIcon.getIconWidth(), tIcon.getIconHeight(), 0.0625F); + } + } + if (tOverlay != null) { + Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile()); + GL11.glBlendFunc(770, 771); + if (aType.equals(IItemRenderer.ItemRenderType.INVENTORY)) { + GT_RenderUtil.renderItemIcon(tOverlay, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F); + } else { + ItemRenderer.renderItemIn2D(Tessellator.instance, tOverlay.getMaxU(), tOverlay.getMinV(), tOverlay.getMinU(), tOverlay.getMaxV(), tOverlay.getIconWidth(), tOverlay.getIconHeight(), 0.0625F); + } + } + } + } + } + GL11.glDisable(3042); + } } diff --git a/src/main/java/gregtech/common/render/GT_RenderUtil.java b/src/main/java/gregtech/common/render/GT_RenderUtil.java index 708bf193..cba37972 100644 --- a/src/main/java/gregtech/common/render/GT_RenderUtil.java +++ b/src/main/java/gregtech/common/render/GT_RenderUtil.java @@ -3,34 +3,28 @@ package gregtech.common.render; import net.minecraft.client.renderer.Tessellator; import net.minecraft.util.IIcon; -public class GT_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) - { - if (icon == null) { - return; +public class GT_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); } - Tessellator.instance.startDrawingQuads(); - Tessellator.instance.setNormal(nx, ny, nz); - if (nz > 0.0F) - { - Tessellator.instance.addVertexWithUV(xStart, yStart, z, icon.getMinU(), icon.getMinV()); - Tessellator.instance.addVertexWithUV(xEnd, yStart, z, icon.getMaxU(), icon.getMinV()); - Tessellator.instance.addVertexWithUV(xEnd, yEnd, z, icon.getMaxU(), icon.getMaxV()); - Tessellator.instance.addVertexWithUV(xStart, yEnd, z, icon.getMinU(), icon.getMaxV()); + + 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; + } + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(nx, ny, nz); + if (nz > 0.0F) { + Tessellator.instance.addVertexWithUV(xStart, yStart, z, icon.getMinU(), icon.getMinV()); + Tessellator.instance.addVertexWithUV(xEnd, yStart, z, icon.getMaxU(), icon.getMinV()); + Tessellator.instance.addVertexWithUV(xEnd, yEnd, z, icon.getMaxU(), icon.getMaxV()); + Tessellator.instance.addVertexWithUV(xStart, yEnd, z, icon.getMinU(), icon.getMaxV()); + } else { + Tessellator.instance.addVertexWithUV(xStart, yEnd, z, icon.getMinU(), icon.getMaxV()); + Tessellator.instance.addVertexWithUV(xEnd, yEnd, z, icon.getMaxU(), icon.getMaxV()); + Tessellator.instance.addVertexWithUV(xEnd, yStart, z, icon.getMaxU(), icon.getMinV()); + Tessellator.instance.addVertexWithUV(xStart, yStart, z, icon.getMinU(), icon.getMinV()); + } + Tessellator.instance.draw(); } - else - { - Tessellator.instance.addVertexWithUV(xStart, yEnd, z, icon.getMinU(), icon.getMaxV()); - Tessellator.instance.addVertexWithUV(xEnd, yEnd, z, icon.getMaxU(), icon.getMaxV()); - Tessellator.instance.addVertexWithUV(xEnd, yStart, z, icon.getMaxU(), icon.getMinV()); - Tessellator.instance.addVertexWithUV(xStart, yStart, z, icon.getMinU(), icon.getMinV()); - } - Tessellator.instance.draw(); - } } diff --git a/src/main/java/gregtech/common/render/GT_Renderer_Block.java b/src/main/java/gregtech/common/render/GT_Renderer_Block.java index b71c5abf..95fd4535 100644 --- a/src/main/java/gregtech/common/render/GT_Renderer_Block.java +++ b/src/main/java/gregtech/common/render/GT_Renderer_Block.java @@ -19,639 +19,580 @@ import net.minecraft.world.IBlockAccess; import org.lwjgl.opengl.GL11; public class GT_Renderer_Block - implements ISimpleBlockRenderingHandler -{ - public final int mRenderID; - public static GT_Renderer_Block INSTANCE; - - public GT_Renderer_Block() - { - this.mRenderID = RenderingRegistry.getNextAvailableRenderId(); - INSTANCE = this;RenderingRegistry.registerBlockHandler(this); - } - - public void renderInventoryBlock(Block aBlock, int aMeta, int aModelID, RenderBlocks aRenderer) - { - if ((aBlock instanceof GT_Block_Machines)) - { - if ((aMeta > 0) && (aMeta < GregTech_API.METATILEENTITIES.length) && (GregTech_API.METATILEENTITIES[aMeta] != null) && - (!GregTech_API.METATILEENTITIES[aMeta].renderInInventory(aBlock, aMeta, aRenderer))) { - renderNormalInventoryMetaTileEntity(aBlock, aMeta, aRenderer); - } + implements ISimpleBlockRenderingHandler { + public static GT_Renderer_Block INSTANCE; + public final int mRenderID; + + public GT_Renderer_Block() { + this.mRenderID = RenderingRegistry.getNextAvailableRenderId(); + INSTANCE = this; + RenderingRegistry.registerBlockHandler(this); } - else if ((aBlock instanceof GT_Block_Ores)) - { - GT_TileEntity_Ores tTileEntity = new GT_TileEntity_Ores(); - tTileEntity.mMetaData = ((short)aMeta); - - aBlock.setBlockBoundsForItemRender(); - aRenderer.setRenderBoundsFromBlock(aBlock); - - GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - - Tessellator.instance.startDrawingQuads(); - Tessellator.instance.setNormal(0.0F, -1.0F, 0.0F); - renderNegativeYFacing(null, aRenderer, aBlock, 0, 0, 0, tTileEntity.getTexture((byte)0), true); - Tessellator.instance.draw(); - - Tessellator.instance.startDrawingQuads(); - Tessellator.instance.setNormal(0.0F, 1.0F, 0.0F); - renderPositiveYFacing(null, aRenderer, aBlock, 0, 0, 0, tTileEntity.getTexture((byte)1), true); - Tessellator.instance.draw(); - - Tessellator.instance.startDrawingQuads(); - Tessellator.instance.setNormal(0.0F, 0.0F, -1.0F); - renderNegativeZFacing(null, aRenderer, aBlock, 0, 0, 0, tTileEntity.getTexture((byte)2), true); - Tessellator.instance.draw(); - - Tessellator.instance.startDrawingQuads(); - Tessellator.instance.setNormal(0.0F, 0.0F, 1.0F); - renderPositiveZFacing(null, aRenderer, aBlock, 0, 0, 0, tTileEntity.getTexture((byte)3), true); - Tessellator.instance.draw(); - - Tessellator.instance.startDrawingQuads(); - Tessellator.instance.setNormal(-1.0F, 0.0F, 0.0F); - renderNegativeXFacing(null, aRenderer, aBlock, 0, 0, 0, tTileEntity.getTexture((byte)4), true); - Tessellator.instance.draw(); - - Tessellator.instance.startDrawingQuads(); - Tessellator.instance.setNormal(1.0F, 0.0F, 0.0F); - renderPositiveXFacing(null, aRenderer, aBlock, 0, 0, 0, tTileEntity.getTexture((byte)5), true); - Tessellator.instance.draw(); - } - aBlock.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - aRenderer.setRenderBoundsFromBlock(aBlock); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - } - - private static void renderNormalInventoryMetaTileEntity(Block aBlock, int aMeta, RenderBlocks aRenderer) - { - if ((aMeta <= 0) || (aMeta >= GregTech_API.METATILEENTITIES.length)) { - return; - } - IMetaTileEntity tMetaTileEntity = GregTech_API.METATILEENTITIES[aMeta]; - if (tMetaTileEntity == null) { - return; - } - aBlock.setBlockBoundsForItemRender(); - aRenderer.setRenderBoundsFromBlock(aBlock); - - GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - if ((tMetaTileEntity.getBaseMetaTileEntity() instanceof IPipeRenderedTileEntity)) - { - float tThickness = ((IPipeRenderedTileEntity)tMetaTileEntity.getBaseMetaTileEntity()).getThickNess();float sp = (1.0F - tThickness) / 2.0F; - - aBlock.setBlockBounds(0.0F, sp, sp, 1.0F, sp + tThickness, sp + tThickness); - aRenderer.setRenderBoundsFromBlock(aBlock); - - Tessellator.instance.startDrawingQuads(); - Tessellator.instance.setNormal(0.0F, -1.0F, 0.0F); - renderNegativeYFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte)0, (byte)9, (byte)-1, false, false), true); - Tessellator.instance.draw(); - - Tessellator.instance.startDrawingQuads(); - Tessellator.instance.setNormal(0.0F, 1.0F, 0.0F); - renderPositiveYFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte)1, (byte)9, (byte)-1, false, false), true); - Tessellator.instance.draw(); - - Tessellator.instance.startDrawingQuads(); - Tessellator.instance.setNormal(0.0F, 0.0F, -1.0F); - renderNegativeZFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte)2, (byte)9, (byte)-1, false, false), true); - Tessellator.instance.draw(); - - Tessellator.instance.startDrawingQuads(); - Tessellator.instance.setNormal(0.0F, 0.0F, 1.0F); - renderPositiveZFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte)3, (byte)9, (byte)-1, false, false), true); - Tessellator.instance.draw(); - - Tessellator.instance.startDrawingQuads(); - Tessellator.instance.setNormal(-1.0F, 0.0F, 0.0F); - renderNegativeXFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte)4, (byte)9, (byte)-1, true, false), true); - Tessellator.instance.draw(); - - Tessellator.instance.startDrawingQuads(); - Tessellator.instance.setNormal(1.0F, 0.0F, 0.0F); - renderPositiveXFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte)5, (byte)9, (byte)-1, true, false), true); - Tessellator.instance.draw(); - } - else - { - Tessellator.instance.startDrawingQuads(); - Tessellator.instance.setNormal(0.0F, -1.0F, 0.0F); - renderNegativeYFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte)0, (byte)4, (byte)-1, true, false), true); - Tessellator.instance.draw(); - - Tessellator.instance.startDrawingQuads(); - Tessellator.instance.setNormal(0.0F, 1.0F, 0.0F); - renderPositiveYFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte)1, (byte)4, (byte)-1, true, false), true); - Tessellator.instance.draw(); - - Tessellator.instance.startDrawingQuads(); - Tessellator.instance.setNormal(0.0F, 0.0F, -1.0F); - renderNegativeZFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte)2, (byte)4, (byte)-1, true, false), true); - Tessellator.instance.draw(); - - Tessellator.instance.startDrawingQuads(); - Tessellator.instance.setNormal(0.0F, 0.0F, 1.0F); - renderPositiveZFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte)3, (byte)4, (byte)-1, true, false), true); - Tessellator.instance.draw(); - - Tessellator.instance.startDrawingQuads(); - Tessellator.instance.setNormal(-1.0F, 0.0F, 0.0F); - renderNegativeXFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte)4, (byte)4, (byte)-1, true, false), true); - Tessellator.instance.draw(); - - Tessellator.instance.startDrawingQuads(); - Tessellator.instance.setNormal(1.0F, 0.0F, 0.0F); - renderPositiveXFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte)5, (byte)4, (byte)-1, true, false), true); - Tessellator.instance.draw(); - } - aBlock.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - aRenderer.setRenderBoundsFromBlock(aBlock); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - } - - public boolean renderWorldBlock(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock, int aModelID, RenderBlocks aRenderer) - { - TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if (aTileEntity == null) { - return false; - } - if (((aTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity)aTileEntity).getMetaTileEntity() != null) && (((IGregTechTileEntity)aTileEntity).getMetaTileEntity().renderInWorld(aWorld, aX, aY, aZ, aBlock, aRenderer))) { - return true; - } - if ((aTileEntity instanceof IPipeRenderedTileEntity)) { - return renderPipeBlock(aWorld, aX, aY, aZ, aBlock, (IPipeRenderedTileEntity)aTileEntity, aRenderer); - } - return renderStandardBlock(aWorld, aX, aY, aZ, aBlock, aRenderer); - } - - public static boolean renderStandardBlock(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock, RenderBlocks aRenderer) - { - TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity instanceof ITexturedTileEntity)) { - return renderStandardBlock(aWorld, aX, aY, aZ, aBlock, aRenderer, new ITexture[][] { ((ITexturedTileEntity)tTileEntity).getTexture((byte) 0), ((ITexturedTileEntity)tTileEntity).getTexture((byte) 1), ((ITexturedTileEntity)tTileEntity).getTexture((byte) 2), ((ITexturedTileEntity)tTileEntity).getTexture((byte) 3), ((ITexturedTileEntity)tTileEntity).getTexture((byte) 4), ((ITexturedTileEntity)tTileEntity).getTexture((byte) 5) }); - } - return false; - } - - public static boolean renderStandardBlock(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock, RenderBlocks aRenderer, ITexture[][] aTextures) - { - aBlock.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - aRenderer.setRenderBoundsFromBlock(aBlock); - - renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, aTextures[0], true); - renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, aTextures[1], true); - renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, aTextures[2], true); - renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, aTextures[3], true); - renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, aTextures[4], true); - renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, aTextures[5], true); - return true; - } - - public static boolean renderPipeBlock(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock, IPipeRenderedTileEntity aTileEntity, RenderBlocks aRenderer) - { - byte aConnections = aTileEntity.getConnections(); - if ((aConnections & 0xC0) != 0) { - return renderStandardBlock(aWorld, aX, aY, aZ, aBlock, aRenderer); - } - float tThickness = aTileEntity.getThickNess(); - if (tThickness >= 0.99F) { - return renderStandardBlock(aWorld, aX, aY, aZ, aBlock, aRenderer); - } - float sp = (1.0F - tThickness) / 2.0F; - - byte tConnections = 0; - for (byte i = 0; i < 6; i = (byte)(i + 1)) { - if ((aConnections & 1 << i) != 0) { - tConnections = (byte)(tConnections | 1 << (i + 2) % 6); - } - } - boolean[] tIsCovered = new boolean[6]; - for (byte i = 0; i < 6; i = (byte)(i + 1)) { - tIsCovered[i] = (aTileEntity.getCoverIDAtSide(i) != 0 ? true : false); - } - if ((tIsCovered[0]) && (tIsCovered[1]) && (tIsCovered[2]) && (tIsCovered[3]) && (tIsCovered[4]) && (tIsCovered[5])) { - return renderStandardBlock(aWorld, aX, aY, aZ, aBlock, aRenderer); - } - ITexture[][] tIcons = new ITexture[6][];ITexture[][] tCovers = new ITexture[6][]; - for (byte i = 0; i < 6; i = (byte)(i + 1)) - { - tCovers[i] = aTileEntity.getTexture(i); - tIcons[i] = aTileEntity.getTextureUncovered(i); - } - if (tConnections == 0) - { - aBlock.setBlockBounds(sp, sp, sp, sp + tThickness, sp + tThickness, sp + tThickness); - aRenderer.setRenderBoundsFromBlock(aBlock); - renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[0], false); - renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[1], false); - renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[2], false); - renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[3], false); - renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[4], false); - renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[5], false); - } - else if (tConnections == 3) - { - aBlock.setBlockBounds(0.0F, sp, sp, 1.0F, sp + tThickness, sp + tThickness); - aRenderer.setRenderBoundsFromBlock(aBlock); - renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[0], false); - renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[1], false); - renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[2], false); - renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[3], false); - if (!tIsCovered[4]) { - renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[4], false); - } - if (!tIsCovered[5]) { - renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[5], false); - } - } - else if (tConnections == 12) - { - aBlock.setBlockBounds(sp, 0.0F, sp, sp + tThickness, 1.0F, sp + tThickness); - aRenderer.setRenderBoundsFromBlock(aBlock); - renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[2], false); - renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[3], false); - renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[4], false); - renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[5], false); - if (!tIsCovered[0]) { - renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[0], false); - } - if (!tIsCovered[1]) { - renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[1], false); - } - } - else if (tConnections == 48) - { - aBlock.setBlockBounds(sp, sp, 0.0F, sp + tThickness, sp + tThickness, 1.0F); - aRenderer.setRenderBoundsFromBlock(aBlock); - renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[0], false); - renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[1], false); - renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[4], false); - renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[5], false); - if (!tIsCovered[2]) { - renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[2], false); - } - if (!tIsCovered[3]) { - renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[3], false); - } - } - else - { - if ((tConnections & 0x1) == 0) - { - aBlock.setBlockBounds(sp, sp, sp, sp + tThickness, sp + tThickness, sp + tThickness); - aRenderer.setRenderBoundsFromBlock(aBlock); - renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[4], false); - } - else - { - aBlock.setBlockBounds(0.0F, sp, sp, sp, sp + tThickness, sp + tThickness); - aRenderer.setRenderBoundsFromBlock(aBlock); - renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[0], false); - renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[1], false); - renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[2], false); - renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[3], false); - if (!tIsCovered[4]) { - renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[4], false); + + private static void renderNormalInventoryMetaTileEntity(Block aBlock, int aMeta, RenderBlocks aRenderer) { + if ((aMeta <= 0) || (aMeta >= GregTech_API.METATILEENTITIES.length)) { + return; } - } - if ((tConnections & 0x2) == 0) - { - aBlock.setBlockBounds(sp, sp, sp, sp + tThickness, sp + tThickness, sp + tThickness); + IMetaTileEntity tMetaTileEntity = GregTech_API.METATILEENTITIES[aMeta]; + if (tMetaTileEntity == null) { + return; + } + aBlock.setBlockBoundsForItemRender(); aRenderer.setRenderBoundsFromBlock(aBlock); - renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[5], false); - } - else - { - aBlock.setBlockBounds(sp + tThickness, sp, sp, 1.0F, sp + tThickness, sp + tThickness); + + GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + if ((tMetaTileEntity.getBaseMetaTileEntity() instanceof IPipeRenderedTileEntity)) { + float tThickness = ((IPipeRenderedTileEntity) tMetaTileEntity.getBaseMetaTileEntity()).getThickNess(); + float sp = (1.0F - tThickness) / 2.0F; + + aBlock.setBlockBounds(0.0F, sp, sp, 1.0F, sp + tThickness, sp + tThickness); + aRenderer.setRenderBoundsFromBlock(aBlock); + + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(0.0F, -1.0F, 0.0F); + renderNegativeYFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte) 0, (byte) 9, (byte) -1, false, false), true); + Tessellator.instance.draw(); + + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(0.0F, 1.0F, 0.0F); + renderPositiveYFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte) 1, (byte) 9, (byte) -1, false, false), true); + Tessellator.instance.draw(); + + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(0.0F, 0.0F, -1.0F); + renderNegativeZFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte) 2, (byte) 9, (byte) -1, false, false), true); + Tessellator.instance.draw(); + + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(0.0F, 0.0F, 1.0F); + renderPositiveZFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte) 3, (byte) 9, (byte) -1, false, false), true); + Tessellator.instance.draw(); + + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(-1.0F, 0.0F, 0.0F); + renderNegativeXFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte) 4, (byte) 9, (byte) -1, true, false), true); + Tessellator.instance.draw(); + + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(1.0F, 0.0F, 0.0F); + renderPositiveXFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte) 5, (byte) 9, (byte) -1, true, false), true); + Tessellator.instance.draw(); + } else { + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(0.0F, -1.0F, 0.0F); + renderNegativeYFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte) 0, (byte) 4, (byte) -1, true, false), true); + Tessellator.instance.draw(); + + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(0.0F, 1.0F, 0.0F); + renderPositiveYFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte) 1, (byte) 4, (byte) -1, true, false), true); + Tessellator.instance.draw(); + + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(0.0F, 0.0F, -1.0F); + renderNegativeZFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte) 2, (byte) 4, (byte) -1, true, false), true); + Tessellator.instance.draw(); + + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(0.0F, 0.0F, 1.0F); + renderPositiveZFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte) 3, (byte) 4, (byte) -1, true, false), true); + Tessellator.instance.draw(); + + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(-1.0F, 0.0F, 0.0F); + renderNegativeXFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte) 4, (byte) 4, (byte) -1, true, false), true); + Tessellator.instance.draw(); + + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(1.0F, 0.0F, 0.0F); + renderPositiveXFacing(null, aRenderer, aBlock, 0, 0, 0, tMetaTileEntity.getTexture(tMetaTileEntity.getBaseMetaTileEntity(), (byte) 5, (byte) 4, (byte) -1, true, false), true); + Tessellator.instance.draw(); + } + aBlock.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); aRenderer.setRenderBoundsFromBlock(aBlock); - renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[0], false); - renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[1], false); - renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[2], false); - renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[3], false); - if (!tIsCovered[5]) { - renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[5], false); + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + } + + public static boolean renderStandardBlock(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock, RenderBlocks aRenderer) { + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if ((tTileEntity instanceof ITexturedTileEntity)) { + return renderStandardBlock(aWorld, aX, aY, aZ, aBlock, aRenderer, new ITexture[][]{((ITexturedTileEntity) tTileEntity).getTexture((byte) 0), ((ITexturedTileEntity) tTileEntity).getTexture((byte) 1), ((ITexturedTileEntity) tTileEntity).getTexture((byte) 2), ((ITexturedTileEntity) tTileEntity).getTexture((byte) 3), ((ITexturedTileEntity) tTileEntity).getTexture((byte) 4), ((ITexturedTileEntity) tTileEntity).getTexture((byte) 5)}); } - } - if ((tConnections & 0x4) == 0) - { - aBlock.setBlockBounds(sp, sp, sp, sp + tThickness, sp + tThickness, sp + tThickness); + return false; + } + + public static boolean renderStandardBlock(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock, RenderBlocks aRenderer, ITexture[][] aTextures) { + aBlock.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); aRenderer.setRenderBoundsFromBlock(aBlock); - renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[0], false); - } - else - { - aBlock.setBlockBounds(sp, 0.0F, sp, sp + tThickness, sp, sp + tThickness); + + renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, aTextures[0], true); + renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, aTextures[1], true); + renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, aTextures[2], true); + renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, aTextures[3], true); + renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, aTextures[4], true); + renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, aTextures[5], true); + return true; + } + + public static boolean renderPipeBlock(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock, IPipeRenderedTileEntity aTileEntity, RenderBlocks aRenderer) { + byte aConnections = aTileEntity.getConnections(); + if ((aConnections & 0xC0) != 0) { + return renderStandardBlock(aWorld, aX, aY, aZ, aBlock, aRenderer); + } + float tThickness = aTileEntity.getThickNess(); + if (tThickness >= 0.99F) { + return renderStandardBlock(aWorld, aX, aY, aZ, aBlock, aRenderer); + } + float sp = (1.0F - tThickness) / 2.0F; + + byte tConnections = 0; + for (byte i = 0; i < 6; i = (byte) (i + 1)) { + if ((aConnections & 1 << i) != 0) { + tConnections = (byte) (tConnections | 1 << (i + 2) % 6); + } + } + boolean[] tIsCovered = new boolean[6]; + for (byte i = 0; i < 6; i = (byte) (i + 1)) { + tIsCovered[i] = (aTileEntity.getCoverIDAtSide(i) != 0 ? true : false); + } + if ((tIsCovered[0]) && (tIsCovered[1]) && (tIsCovered[2]) && (tIsCovered[3]) && (tIsCovered[4]) && (tIsCovered[5])) { + return renderStandardBlock(aWorld, aX, aY, aZ, aBlock, aRenderer); + } + ITexture[][] tIcons = new ITexture[6][]; + ITexture[][] tCovers = new ITexture[6][]; + for (byte i = 0; i < 6; i = (byte) (i + 1)) { + tCovers[i] = aTileEntity.getTexture(i); + tIcons[i] = aTileEntity.getTextureUncovered(i); + } + if (tConnections == 0) { + aBlock.setBlockBounds(sp, sp, sp, sp + tThickness, sp + tThickness, sp + tThickness); + aRenderer.setRenderBoundsFromBlock(aBlock); + renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[0], false); + renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[1], false); + renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[2], false); + renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[3], false); + renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[4], false); + renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[5], false); + } else if (tConnections == 3) { + aBlock.setBlockBounds(0.0F, sp, sp, 1.0F, sp + tThickness, sp + tThickness); + aRenderer.setRenderBoundsFromBlock(aBlock); + renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[0], false); + renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[1], false); + renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[2], false); + renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[3], false); + if (!tIsCovered[4]) { + renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[4], false); + } + if (!tIsCovered[5]) { + renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[5], false); + } + } else if (tConnections == 12) { + aBlock.setBlockBounds(sp, 0.0F, sp, sp + tThickness, 1.0F, sp + tThickness); + aRenderer.setRenderBoundsFromBlock(aBlock); + renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[2], false); + renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[3], false); + renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[4], false); + renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[5], false); + if (!tIsCovered[0]) { + renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[0], false); + } + if (!tIsCovered[1]) { + renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[1], false); + } + } else if (tConnections == 48) { + aBlock.setBlockBounds(sp, sp, 0.0F, sp + tThickness, sp + tThickness, 1.0F); + aRenderer.setRenderBoundsFromBlock(aBlock); + renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[0], false); + renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[1], false); + renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[4], false); + renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[5], false); + if (!tIsCovered[2]) { + renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[2], false); + } + if (!tIsCovered[3]) { + renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[3], false); + } + } else { + if ((tConnections & 0x1) == 0) { + aBlock.setBlockBounds(sp, sp, sp, sp + tThickness, sp + tThickness, sp + tThickness); + aRenderer.setRenderBoundsFromBlock(aBlock); + renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[4], false); + } else { + aBlock.setBlockBounds(0.0F, sp, sp, sp, sp + tThickness, sp + tThickness); + aRenderer.setRenderBoundsFromBlock(aBlock); + renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[0], false); + renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[1], false); + renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[2], false); + renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[3], false); + if (!tIsCovered[4]) { + renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[4], false); + } + } + if ((tConnections & 0x2) == 0) { + aBlock.setBlockBounds(sp, sp, sp, sp + tThickness, sp + tThickness, sp + tThickness); + aRenderer.setRenderBoundsFromBlock(aBlock); + renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[5], false); + } else { + aBlock.setBlockBounds(sp + tThickness, sp, sp, 1.0F, sp + tThickness, sp + tThickness); + aRenderer.setRenderBoundsFromBlock(aBlock); + renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[0], false); + renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[1], false); + renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[2], false); + renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[3], false); + if (!tIsCovered[5]) { + renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[5], false); + } + } + if ((tConnections & 0x4) == 0) { + aBlock.setBlockBounds(sp, sp, sp, sp + tThickness, sp + tThickness, sp + tThickness); + aRenderer.setRenderBoundsFromBlock(aBlock); + renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[0], false); + } else { + aBlock.setBlockBounds(sp, 0.0F, sp, sp + tThickness, sp, sp + tThickness); + aRenderer.setRenderBoundsFromBlock(aBlock); + renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[2], false); + renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[3], false); + renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[4], false); + renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[5], false); + if (!tIsCovered[0]) { + renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[0], false); + } + } + if ((tConnections & 0x8) == 0) { + aBlock.setBlockBounds(sp, sp, sp, sp + tThickness, sp + tThickness, sp + tThickness); + aRenderer.setRenderBoundsFromBlock(aBlock); + renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[1], false); + } else { + aBlock.setBlockBounds(sp, sp + tThickness, sp, sp + tThickness, 1.0F, sp + tThickness); + aRenderer.setRenderBoundsFromBlock(aBlock); + renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[2], false); + renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[3], false); + renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[4], false); + renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[5], false); + if (!tIsCovered[1]) { + renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[1], false); + } + } + if ((tConnections & 0x10) == 0) { + aBlock.setBlockBounds(sp, sp, sp, sp + tThickness, sp + tThickness, sp + tThickness); + aRenderer.setRenderBoundsFromBlock(aBlock); + renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[2], false); + } else { + aBlock.setBlockBounds(sp, sp, 0.0F, sp + tThickness, sp + tThickness, sp); + aRenderer.setRenderBoundsFromBlock(aBlock); + renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[0], false); + renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[1], false); + renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[4], false); + renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[5], false); + if (!tIsCovered[2]) { + renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[2], false); + } + } + if ((tConnections & 0x20) == 0) { + aBlock.setBlockBounds(sp, sp, sp, sp + tThickness, sp + tThickness, sp + tThickness); + aRenderer.setRenderBoundsFromBlock(aBlock); + renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[3], false); + } else { + aBlock.setBlockBounds(sp, sp, sp + tThickness, sp + tThickness, sp + tThickness, 1.0F); + aRenderer.setRenderBoundsFromBlock(aBlock); + renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[0], false); + renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[1], false); + renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[4], false); + renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[5], false); + if (!tIsCovered[3]) { + renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[3], false); + } + } + } + if (tIsCovered[0]) { + aBlock.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.125F, 1.0F); + aRenderer.setRenderBoundsFromBlock(aBlock); + renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[0], false); + renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[0], false); + if (!tIsCovered[2]) { + renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[0], false); + } + if (!tIsCovered[3]) { + renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[0], false); + } + if (!tIsCovered[4]) { + renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[0], false); + } + if (!tIsCovered[5]) { + renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[0], false); + } + } + if (tIsCovered[1]) { + aBlock.setBlockBounds(0.0F, 0.875F, 0.0F, 1.0F, 1.0F, 1.0F); + aRenderer.setRenderBoundsFromBlock(aBlock); + renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[1], false); + renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[1], false); + if (!tIsCovered[2]) { + renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[1], false); + } + if (!tIsCovered[3]) { + renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[1], false); + } + if (!tIsCovered[4]) { + renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[1], false); + } + if (!tIsCovered[5]) { + renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[1], false); + } + } + if (tIsCovered[2]) { + aBlock.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.125F); + aRenderer.setRenderBoundsFromBlock(aBlock); + if (!tIsCovered[0]) { + renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[2], false); + } + if (!tIsCovered[1]) { + renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[2], false); + } + renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[2], false); + renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[2], false); + if (!tIsCovered[4]) { + renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[2], false); + } + if (!tIsCovered[5]) { + renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[2], false); + } + } + if (tIsCovered[3]) { + aBlock.setBlockBounds(0.0F, 0.0F, 0.875F, 1.0F, 1.0F, 1.0F); + aRenderer.setRenderBoundsFromBlock(aBlock); + if (!tIsCovered[0]) { + renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[3], false); + } + if (!tIsCovered[1]) { + renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[3], false); + } + renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[3], false); + renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[3], false); + if (!tIsCovered[4]) { + renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[3], false); + } + if (!tIsCovered[5]) { + renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[3], false); + } + } + if (tIsCovered[4]) { + aBlock.setBlockBounds(0.0F, 0.0F, 0.0F, 0.125F, 1.0F, 1.0F); + aRenderer.setRenderBoundsFromBlock(aBlock); + if (!tIsCovered[0]) { + renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[4], false); + } + if (!tIsCovered[1]) { + renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[4], false); + } + if (!tIsCovered[2]) { + renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[4], false); + } + if (!tIsCovered[3]) { + renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[4], false); + } + renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[4], false); + renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[4], false); + } + if (tIsCovered[5]) { + aBlock.setBlockBounds(0.875F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + aRenderer.setRenderBoundsFromBlock(aBlock); + if (!tIsCovered[0]) { + renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[5], false); + } + if (!tIsCovered[1]) { + renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[5], false); + } + if (!tIsCovered[2]) { + renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[5], false); + } + if (!tIsCovered[3]) { + renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[5], false); + } + renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[5], false); + renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[5], false); + } + aBlock.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); aRenderer.setRenderBoundsFromBlock(aBlock); - renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[2], false); - renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[3], false); - renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[4], false); - renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[5], false); - if (!tIsCovered[0]) { - renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[0], false); + + return true; + } + + public static void renderNegativeYFacing(IBlockAccess aWorld, RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ, ITexture[] aIcon, boolean aFullBlock) { + if (aWorld != null) { + if ((aFullBlock) && (!aBlock.shouldSideBeRendered(aWorld, aX, aY - 1, aZ, 0))) { + return; + } + Tessellator.instance.setBrightness(aBlock.getMixedBrightnessForBlock(aWorld, aX, aFullBlock ? aY - 1 : aY, aZ)); } - } - if ((tConnections & 0x8) == 0) - { - aBlock.setBlockBounds(sp, sp, sp, sp + tThickness, sp + tThickness, sp + tThickness); + if (aIcon != null) { + for (int i = 0; i < aIcon.length; i++) { + if (aIcon[i] != null) { + aIcon[i].renderYNeg(aRenderer, aBlock, aX, aY, aZ); + } + } + } + aRenderer.flipTexture = false; + } + + public static void renderPositiveYFacing(IBlockAccess aWorld, RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ, ITexture[] aIcon, boolean aFullBlock) { + if (aWorld != null) { + if ((aFullBlock) && (!aBlock.shouldSideBeRendered(aWorld, aX, aY + 1, aZ, 1))) { + return; + } + Tessellator.instance.setBrightness(aBlock.getMixedBrightnessForBlock(aWorld, aX, aFullBlock ? aY + 1 : aY, aZ)); + } + if (aIcon != null) { + for (int i = 0; i < aIcon.length; i++) { + if (aIcon[i] != null) { + aIcon[i].renderYPos(aRenderer, aBlock, aX, aY, aZ); + } + } + } + aRenderer.flipTexture = false; + } + + public static void renderNegativeZFacing(IBlockAccess aWorld, RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ, ITexture[] aIcon, boolean aFullBlock) { + if (aWorld != null) { + if ((aFullBlock) && (!aBlock.shouldSideBeRendered(aWorld, aX, aY, aZ - 1, 2))) { + return; + } + Tessellator.instance.setBrightness(aBlock.getMixedBrightnessForBlock(aWorld, aX, aY, aFullBlock ? aZ - 1 : aZ)); + } + aRenderer.flipTexture = (!aFullBlock); + if (aIcon != null) { + for (int i = 0; i < aIcon.length; i++) { + if (aIcon[i] != null) { + aIcon[i].renderZNeg(aRenderer, aBlock, aX, aY, aZ); + } + } + } + aRenderer.flipTexture = false; + } + + public static void renderPositiveZFacing(IBlockAccess aWorld, RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ, ITexture[] aIcon, boolean aFullBlock) { + if (aWorld != null) { + if ((aFullBlock) && (!aBlock.shouldSideBeRendered(aWorld, aX, aY, aZ + 1, 3))) { + return; + } + Tessellator.instance.setBrightness(aBlock.getMixedBrightnessForBlock(aWorld, aX, aY, aFullBlock ? aZ + 1 : aZ)); + } + if (aIcon != null) { + for (int i = 0; i < aIcon.length; i++) { + if (aIcon[i] != null) { + aIcon[i].renderZPos(aRenderer, aBlock, aX, aY, aZ); + } + } + } + aRenderer.flipTexture = false; + } + + public static void renderNegativeXFacing(IBlockAccess aWorld, RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ, ITexture[] aIcon, boolean aFullBlock) { + if (aWorld != null) { + if ((aFullBlock) && (!aBlock.shouldSideBeRendered(aWorld, aX - 1, aY, aZ, 4))) { + return; + } + Tessellator.instance.setBrightness(aBlock.getMixedBrightnessForBlock(aWorld, aFullBlock ? aX - 1 : aX, aY, aZ)); + } + if (aIcon != null) { + for (int i = 0; i < aIcon.length; i++) { + if (aIcon[i] != null) { + aIcon[i].renderXNeg(aRenderer, aBlock, aX, aY, aZ); + } + } + } + aRenderer.flipTexture = false; + } + + public static void renderPositiveXFacing(IBlockAccess aWorld, RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ, ITexture[] aIcon, boolean aFullBlock) { + if (aWorld != null) { + if ((aFullBlock) && (!aBlock.shouldSideBeRendered(aWorld, aX + 1, aY, aZ, 5))) { + return; + } + Tessellator.instance.setBrightness(aBlock.getMixedBrightnessForBlock(aWorld, aFullBlock ? aX + 1 : aX, aY, aZ)); + } + aRenderer.flipTexture = (!aFullBlock); + if (aIcon != null) { + for (int i = 0; i < aIcon.length; i++) { + if (aIcon[i] != null) { + aIcon[i].renderXPos(aRenderer, aBlock, aX, aY, aZ); + } + } + } + aRenderer.flipTexture = false; + } + + public void renderInventoryBlock(Block aBlock, int aMeta, int aModelID, RenderBlocks aRenderer) { + if ((aBlock instanceof GT_Block_Machines)) { + if ((aMeta > 0) && (aMeta < GregTech_API.METATILEENTITIES.length) && (GregTech_API.METATILEENTITIES[aMeta] != null) && + (!GregTech_API.METATILEENTITIES[aMeta].renderInInventory(aBlock, aMeta, aRenderer))) { + renderNormalInventoryMetaTileEntity(aBlock, aMeta, aRenderer); + } + } else if ((aBlock instanceof GT_Block_Ores)) { + GT_TileEntity_Ores tTileEntity = new GT_TileEntity_Ores(); + tTileEntity.mMetaData = ((short) aMeta); + + aBlock.setBlockBoundsForItemRender(); + aRenderer.setRenderBoundsFromBlock(aBlock); + + GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(0.0F, -1.0F, 0.0F); + renderNegativeYFacing(null, aRenderer, aBlock, 0, 0, 0, tTileEntity.getTexture((byte) 0), true); + Tessellator.instance.draw(); + + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(0.0F, 1.0F, 0.0F); + renderPositiveYFacing(null, aRenderer, aBlock, 0, 0, 0, tTileEntity.getTexture((byte) 1), true); + Tessellator.instance.draw(); + + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(0.0F, 0.0F, -1.0F); + renderNegativeZFacing(null, aRenderer, aBlock, 0, 0, 0, tTileEntity.getTexture((byte) 2), true); + Tessellator.instance.draw(); + + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(0.0F, 0.0F, 1.0F); + renderPositiveZFacing(null, aRenderer, aBlock, 0, 0, 0, tTileEntity.getTexture((byte) 3), true); + Tessellator.instance.draw(); + + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(-1.0F, 0.0F, 0.0F); + renderNegativeXFacing(null, aRenderer, aBlock, 0, 0, 0, tTileEntity.getTexture((byte) 4), true); + Tessellator.instance.draw(); + + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(1.0F, 0.0F, 0.0F); + renderPositiveXFacing(null, aRenderer, aBlock, 0, 0, 0, tTileEntity.getTexture((byte) 5), true); + Tessellator.instance.draw(); + } + aBlock.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); aRenderer.setRenderBoundsFromBlock(aBlock); - renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[1], false); - } - else - { - aBlock.setBlockBounds(sp, sp + tThickness, sp, sp + tThickness, 1.0F, sp + tThickness); - aRenderer.setRenderBoundsFromBlock(aBlock); - renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[2], false); - renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[3], false); - renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[4], false); - renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[5], false); - if (!tIsCovered[1]) { - renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[1], false); + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + } + + public boolean renderWorldBlock(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock, int aModelID, RenderBlocks aRenderer) { + TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if (aTileEntity == null) { + return false; } - } - if ((tConnections & 0x10) == 0) - { - aBlock.setBlockBounds(sp, sp, sp, sp + tThickness, sp + tThickness, sp + tThickness); - aRenderer.setRenderBoundsFromBlock(aBlock); - renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[2], false); - } - else - { - aBlock.setBlockBounds(sp, sp, 0.0F, sp + tThickness, sp + tThickness, sp); - aRenderer.setRenderBoundsFromBlock(aBlock); - renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[0], false); - renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[1], false); - renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[4], false); - renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[5], false); - if (!tIsCovered[2]) { - renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[2], false); + if (((aTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) aTileEntity).getMetaTileEntity() != null) && (((IGregTechTileEntity) aTileEntity).getMetaTileEntity().renderInWorld(aWorld, aX, aY, aZ, aBlock, aRenderer))) { + return true; } - } - if ((tConnections & 0x20) == 0) - { - aBlock.setBlockBounds(sp, sp, sp, sp + tThickness, sp + tThickness, sp + tThickness); - aRenderer.setRenderBoundsFromBlock(aBlock); - renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[3], false); - } - else - { - aBlock.setBlockBounds(sp, sp, sp + tThickness, sp + tThickness, sp + tThickness, 1.0F); - aRenderer.setRenderBoundsFromBlock(aBlock); - renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[0], false); - renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[1], false); - renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[4], false); - renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[5], false); - if (!tIsCovered[3]) { - renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tIcons[3], false); + if ((aTileEntity instanceof IPipeRenderedTileEntity)) { + return renderPipeBlock(aWorld, aX, aY, aZ, aBlock, (IPipeRenderedTileEntity) aTileEntity, aRenderer); } - } + return renderStandardBlock(aWorld, aX, aY, aZ, aBlock, aRenderer); } - if (tIsCovered[0]) - { - aBlock.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.125F, 1.0F); - aRenderer.setRenderBoundsFromBlock(aBlock); - renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[0], false); - renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[0], false); - if (!tIsCovered[2]) { - renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[0], false); - } - if (!tIsCovered[3]) { - renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[0], false); - } - if (!tIsCovered[4]) { - renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[0], false); - } - if (!tIsCovered[5]) { - renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[0], false); - } + + public boolean shouldRender3DInInventory(int aModel) { + return true; } - if (tIsCovered[1]) - { - aBlock.setBlockBounds(0.0F, 0.875F, 0.0F, 1.0F, 1.0F, 1.0F); - aRenderer.setRenderBoundsFromBlock(aBlock); - renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[1], false); - renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[1], false); - if (!tIsCovered[2]) { - renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[1], false); - } - if (!tIsCovered[3]) { - renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[1], false); - } - if (!tIsCovered[4]) { - renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[1], false); - } - if (!tIsCovered[5]) { - renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[1], false); - } + + public int getRenderId() { + return this.mRenderID; } - if (tIsCovered[2]) - { - aBlock.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.125F); - aRenderer.setRenderBoundsFromBlock(aBlock); - if (!tIsCovered[0]) { - renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[2], false); - } - if (!tIsCovered[1]) { - renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[2], false); - } - renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[2], false); - renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[2], false); - if (!tIsCovered[4]) { - renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[2], false); - } - if (!tIsCovered[5]) { - renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[2], false); - } - } - if (tIsCovered[3]) - { - aBlock.setBlockBounds(0.0F, 0.0F, 0.875F, 1.0F, 1.0F, 1.0F); - aRenderer.setRenderBoundsFromBlock(aBlock); - if (!tIsCovered[0]) { - renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[3], false); - } - if (!tIsCovered[1]) { - renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[3], false); - } - renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[3], false); - renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[3], false); - if (!tIsCovered[4]) { - renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[3], false); - } - if (!tIsCovered[5]) { - renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[3], false); - } - } - if (tIsCovered[4]) - { - aBlock.setBlockBounds(0.0F, 0.0F, 0.0F, 0.125F, 1.0F, 1.0F); - aRenderer.setRenderBoundsFromBlock(aBlock); - if (!tIsCovered[0]) { - renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[4], false); - } - if (!tIsCovered[1]) { - renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[4], false); - } - if (!tIsCovered[2]) { - renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[4], false); - } - if (!tIsCovered[3]) { - renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[4], false); - } - renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[4], false); - renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[4], false); - } - if (tIsCovered[5]) - { - aBlock.setBlockBounds(0.875F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - aRenderer.setRenderBoundsFromBlock(aBlock); - if (!tIsCovered[0]) { - renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[5], false); - } - if (!tIsCovered[1]) { - renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[5], false); - } - if (!tIsCovered[2]) { - renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[5], false); - } - if (!tIsCovered[3]) { - renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[5], false); - } - renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[5], false); - renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[5], false); - } - aBlock.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - aRenderer.setRenderBoundsFromBlock(aBlock); - - return true; - } - - public static void renderNegativeYFacing(IBlockAccess aWorld, RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ, ITexture[] aIcon, boolean aFullBlock) - { - if (aWorld != null) - { - if ((aFullBlock) && (!aBlock.shouldSideBeRendered(aWorld, aX, aY - 1, aZ, 0))) { - return; - } - Tessellator.instance.setBrightness(aBlock.getMixedBrightnessForBlock(aWorld, aX, aFullBlock ? aY - 1 : aY, aZ)); - } - if (aIcon != null) { - for (int i = 0; i < aIcon.length; i++) { - if (aIcon[i] != null) { - aIcon[i].renderYNeg(aRenderer, aBlock, aX, aY, aZ); - } - } - } - aRenderer.flipTexture = false; - } - - public static void renderPositiveYFacing(IBlockAccess aWorld, RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ, ITexture[] aIcon, boolean aFullBlock) - { - if (aWorld != null) - { - if ((aFullBlock) && (!aBlock.shouldSideBeRendered(aWorld, aX, aY + 1, aZ, 1))) { - return; - } - Tessellator.instance.setBrightness(aBlock.getMixedBrightnessForBlock(aWorld, aX, aFullBlock ? aY + 1 : aY, aZ)); - } - if (aIcon != null) { - for (int i = 0; i < aIcon.length; i++) { - if (aIcon[i] != null) { - aIcon[i].renderYPos(aRenderer, aBlock, aX, aY, aZ); - } - } - } - aRenderer.flipTexture = false; - } - - public static void renderNegativeZFacing(IBlockAccess aWorld, RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ, ITexture[] aIcon, boolean aFullBlock) - { - if (aWorld != null) - { - if ((aFullBlock) && (!aBlock.shouldSideBeRendered(aWorld, aX, aY, aZ - 1, 2))) { - return; - } - Tessellator.instance.setBrightness(aBlock.getMixedBrightnessForBlock(aWorld, aX, aY, aFullBlock ? aZ - 1 : aZ)); - } - aRenderer.flipTexture = (!aFullBlock); - if (aIcon != null) { - for (int i = 0; i < aIcon.length; i++) { - if (aIcon[i] != null) { - aIcon[i].renderZNeg(aRenderer, aBlock, aX, aY, aZ); - } - } - } - aRenderer.flipTexture = false; - } - - public static void renderPositiveZFacing(IBlockAccess aWorld, RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ, ITexture[] aIcon, boolean aFullBlock) - { - if (aWorld != null) - { - if ((aFullBlock) && (!aBlock.shouldSideBeRendered(aWorld, aX, aY, aZ + 1, 3))) { - return; - } - Tessellator.instance.setBrightness(aBlock.getMixedBrightnessForBlock(aWorld, aX, aY, aFullBlock ? aZ + 1 : aZ)); - } - if (aIcon != null) { - for (int i = 0; i < aIcon.length; i++) { - if (aIcon[i] != null) { - aIcon[i].renderZPos(aRenderer, aBlock, aX, aY, aZ); - } - } - } - aRenderer.flipTexture = false; - } - - public static void renderNegativeXFacing(IBlockAccess aWorld, RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ, ITexture[] aIcon, boolean aFullBlock) - { - if (aWorld != null) - { - if ((aFullBlock) && (!aBlock.shouldSideBeRendered(aWorld, aX - 1, aY, aZ, 4))) { - return; - } - Tessellator.instance.setBrightness(aBlock.getMixedBrightnessForBlock(aWorld, aFullBlock ? aX - 1 : aX, aY, aZ)); - } - if (aIcon != null) { - for (int i = 0; i < aIcon.length; i++) { - if (aIcon[i] != null) { - aIcon[i].renderXNeg(aRenderer, aBlock, aX, aY, aZ); - } - } - } - aRenderer.flipTexture = false; - } - - public static void renderPositiveXFacing(IBlockAccess aWorld, RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ, ITexture[] aIcon, boolean aFullBlock) - { - if (aWorld != null) - { - if ((aFullBlock) && (!aBlock.shouldSideBeRendered(aWorld, aX + 1, aY, aZ, 5))) { - return; - } - Tessellator.instance.setBrightness(aBlock.getMixedBrightnessForBlock(aWorld, aFullBlock ? aX + 1 : aX, aY, aZ)); - } - aRenderer.flipTexture = (!aFullBlock); - if (aIcon != null) { - for (int i = 0; i < aIcon.length; i++) { - if (aIcon[i] != null) { - aIcon[i].renderXPos(aRenderer, aBlock, aX, aY, aZ); - } - } - } - aRenderer.flipTexture = false; - } - - public boolean shouldRender3DInInventory(int aModel) - { - return true; - } - - public int getRenderId() - { - return this.mRenderID; - } } diff --git a/src/main/java/gregtech/common/render/GT_Renderer_Entity_Arrow.java b/src/main/java/gregtech/common/render/GT_Renderer_Entity_Arrow.java index ba656458..ad6993bc 100644 --- a/src/main/java/gregtech/common/render/GT_Renderer_Entity_Arrow.java +++ b/src/main/java/gregtech/common/render/GT_Renderer_Entity_Arrow.java @@ -6,18 +6,15 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; public class GT_Renderer_Entity_Arrow - extends RenderArrow -{ - private final ResourceLocation mTexture; - - public GT_Renderer_Entity_Arrow(Class aArrowClass, String aTextureName) - { - this.mTexture = new ResourceLocation("gregtech:textures/entity/" + aTextureName + ".png"); - RenderingRegistry.registerEntityRenderingHandler(aArrowClass, this); - } - - protected ResourceLocation getEntityTexture(Entity p_110775_1_) - { - return this.mTexture; - } + extends RenderArrow { + private final ResourceLocation mTexture; + + public GT_Renderer_Entity_Arrow(Class aArrowClass, String aTextureName) { + this.mTexture = new ResourceLocation("gregtech:textures/entity/" + aTextureName + ".png"); + RenderingRegistry.registerEntityRenderingHandler(aArrowClass, this); + } + + protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + return this.mTexture; + } } diff --git a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java index f8bf845e..b078f558 100644 --- a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java +++ b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java @@ -1,7 +1,6 @@ package gregtech.common.tileentities.automation; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -13,63 +12,52 @@ import gregtech.common.gui.GT_GUIContainer_ChestBuffer; import net.minecraft.entity.player.InventoryPlayer; public class GT_MetaTileEntity_ChestBuffer - extends GT_MetaTileEntity_Buffer -{ - public GT_MetaTileEntity_ChestBuffer(int aID, String aName, String aNameRegional, int aTier) - { - super(aID, aName, aNameRegional, aTier, 28, "Buffering lots of incoming Items"); - } - - public GT_MetaTileEntity_ChestBuffer(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String aDescription) - { - super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription); - } - - public GT_MetaTileEntity_ChestBuffer(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, aInvSlotCount, aDescription, aTextures); - } - - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_ChestBuffer(this.mName, this.mTier, this.mInventory.length, this.mDescription, this.mTextures); - } - - public ITexture getOverlayIcon() - { - return new GT_RenderedTexture(Textures.BlockIcons.AUTOMATION_CHESTBUFFER); - } - - public boolean isValidSlot(int aIndex) - { - return aIndex < this.mInventory.length - 1; - } - - protected void moveItems(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) - { - fillStacksIntoFirstSlots(); - super.moveItems(aBaseMetaTileEntity, aTimer); - fillStacksIntoFirstSlots(); - } - - protected void fillStacksIntoFirstSlots() - { - for (int i = 0; i < this.mInventory.length - 1; i++) { - for (int j = i + 1; j < this.mInventory.length - 1; j++) { - if ((this.mInventory[j] != null) && ((this.mInventory[i] == null) || (GT_Utility.areStacksEqual(this.mInventory[i], this.mInventory[j])))) { - GT_Utility.moveStackFromSlotAToSlotB(getBaseMetaTileEntity(), getBaseMetaTileEntity(), j, i, (byte)64, (byte)1, (byte)64, (byte)1); - } - } + extends GT_MetaTileEntity_Buffer { + public GT_MetaTileEntity_ChestBuffer(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 28, "Buffering lots of incoming Items"); + } + + public GT_MetaTileEntity_ChestBuffer(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String aDescription) { + super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription); + } + + public GT_MetaTileEntity_ChestBuffer(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aInvSlotCount, aDescription, aTextures); + } + + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_ChestBuffer(this.mName, this.mTier, this.mInventory.length, this.mDescription, this.mTextures); + } + + public ITexture getOverlayIcon() { + return new GT_RenderedTexture(Textures.BlockIcons.AUTOMATION_CHESTBUFFER); + } + + public boolean isValidSlot(int aIndex) { + return aIndex < this.mInventory.length - 1; + } + + protected void moveItems(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) { + fillStacksIntoFirstSlots(); + super.moveItems(aBaseMetaTileEntity, aTimer); + fillStacksIntoFirstSlots(); + } + + protected void fillStacksIntoFirstSlots() { + for (int i = 0; i < this.mInventory.length - 1; i++) { + for (int j = i + 1; j < this.mInventory.length - 1; j++) { + if ((this.mInventory[j] != null) && ((this.mInventory[i] == null) || (GT_Utility.areStacksEqual(this.mInventory[i], this.mInventory[j])))) { + GT_Utility.moveStackFromSlotAToSlotB(getBaseMetaTileEntity(), getBaseMetaTileEntity(), j, i, (byte) 64, (byte) 1, (byte) 64, (byte) 1); + } + } + } + } + + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_Container_ChestBuffer(aPlayerInventory, aBaseMetaTileEntity); + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_ChestBuffer(aPlayerInventory, aBaseMetaTileEntity); } - } - - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_Container_ChestBuffer(aPlayerInventory, aBaseMetaTileEntity); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_ChestBuffer(aPlayerInventory, aBaseMetaTileEntity); - } } diff --git a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Filter.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Filter.java index 09aac62b..4180484a 100644 --- a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Filter.java +++ b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Filter.java @@ -1,7 +1,6 @@ package gregtech.common.tileentities.automation; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -15,74 +14,62 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; public class GT_MetaTileEntity_Filter - extends GT_MetaTileEntity_Buffer -{ - public boolean bIgnoreNBT = false; - public boolean bInvertFilter = false; - - public GT_MetaTileEntity_Filter(int aID, String aName, String aNameRegional, int aTier) - { - super(aID, aName, aNameRegional, aTier, 19, "Filtering incoming Items"); - } - - public GT_MetaTileEntity_Filter(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, aInvSlotCount, aDescription, aTextures); - } - - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_Filter(this.mName, this.mTier, this.mInventory.length, this.mDescription, this.mTextures); - } - - public ITexture getOverlayIcon() - { - return new GT_RenderedTexture(Textures.BlockIcons.AUTOMATION_FILTER); - } - - public boolean isValidSlot(int aIndex) - { - return aIndex < 9; - } - - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_Container_Filter(aPlayerInventory, aBaseMetaTileEntity); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_Filter(aPlayerInventory, aBaseMetaTileEntity); - } - - public void saveNBTData(NBTTagCompound aNBT) - { - super.saveNBTData(aNBT); - aNBT.setBoolean("bInvertFilter", this.bInvertFilter); - aNBT.setBoolean("bIgnoreNBT", this.bIgnoreNBT); - } - - public void loadNBTData(NBTTagCompound aNBT) - { - super.loadNBTData(aNBT); - this.bInvertFilter = aNBT.getBoolean("bInvertFilter"); - this.bIgnoreNBT = aNBT.getBoolean("bIgnoreNBT"); - } - - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) { - return false; + extends GT_MetaTileEntity_Buffer { + public boolean bIgnoreNBT = false; + public boolean bInvertFilter = false; + + public GT_MetaTileEntity_Filter(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 19, "Filtering incoming Items"); } - if (this.bInvertFilter) - { - for (byte i = 9; i < 18; i = (byte)(i + 1)) { - if (GT_Utility.areStacksEqual(this.mInventory[i], aStack, this.bIgnoreNBT)) { - return false; + + public GT_MetaTileEntity_Filter(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aInvSlotCount, aDescription, aTextures); + } + + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Filter(this.mName, this.mTier, this.mInventory.length, this.mDescription, this.mTextures); + } + + public ITexture getOverlayIcon() { + return new GT_RenderedTexture(Textures.BlockIcons.AUTOMATION_FILTER); + } + + public boolean isValidSlot(int aIndex) { + return aIndex < 9; + } + + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_Container_Filter(aPlayerInventory, aBaseMetaTileEntity); + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_Filter(aPlayerInventory, aBaseMetaTileEntity); + } + + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + aNBT.setBoolean("bInvertFilter", this.bInvertFilter); + aNBT.setBoolean("bIgnoreNBT", this.bIgnoreNBT); + } + + public void loadNBTData(NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + this.bInvertFilter = aNBT.getBoolean("bInvertFilter"); + this.bIgnoreNBT = aNBT.getBoolean("bIgnoreNBT"); + } + + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) { + return false; } - } - return true; + if (this.bInvertFilter) { + for (byte i = 9; i < 18; i = (byte) (i + 1)) { + if (GT_Utility.areStacksEqual(this.mInventory[i], aStack, this.bIgnoreNBT)) { + return false; + } + } + return true; + } + return GT_Utility.areStacksEqual(this.mInventory[(aIndex + 9)], aStack, this.bIgnoreNBT); } - return GT_Utility.areStacksEqual(this.mInventory[(aIndex + 9)], aStack, this.bIgnoreNBT); - } } diff --git a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java index 6790d1d7..3a89b8c8 100644 --- a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java +++ b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java @@ -1,7 +1,6 @@ package gregtech.common.tileentities.automation; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -10,98 +9,85 @@ import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Utility; import gregtech.common.gui.GT_Container_Regulator; import gregtech.common.gui.GT_GUIContainer_Regulator; - -import java.util.Arrays; - import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import java.util.Arrays; + public class GT_MetaTileEntity_Regulator - extends GT_MetaTileEntity_Buffer -{ - public int[] mTargetSlots = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - - public GT_MetaTileEntity_Regulator(int aID, String aName, String aNameRegional, int aTier) - { - super(aID, aName, aNameRegional, aTier, 19, "Regulating incoming Items"); - } - - public GT_MetaTileEntity_Regulator(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, aInvSlotCount, aDescription, aTextures); - } - - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_Regulator(this.mName, this.mTier, this.mInventory.length, this.mDescription, this.mTextures); - } - - public ITexture getOverlayIcon() - { - return new GT_RenderedTexture(Textures.BlockIcons.AUTOMATION_REGULATOR); - } - - public boolean isValidSlot(int aIndex) - { - return aIndex < 9; - } - - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_Container_Regulator(aPlayerInventory, aBaseMetaTileEntity); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_Regulator(aPlayerInventory, aBaseMetaTileEntity); - } - - public void saveNBTData(NBTTagCompound aNBT) - { - super.saveNBTData(aNBT); - aNBT.setInteger("mTargetSlot1", this.mTargetSlots[0]); - aNBT.setInteger("mTargetSlot2", this.mTargetSlots[1]); - aNBT.setInteger("mTargetSlot3", this.mTargetSlots[2]); - aNBT.setInteger("mTargetSlot4", this.mTargetSlots[3]); - aNBT.setInteger("mTargetSlot5", this.mTargetSlots[4]); - aNBT.setInteger("mTargetSlot6", this.mTargetSlots[5]); - aNBT.setInteger("mTargetSlot7", this.mTargetSlots[6]); - aNBT.setInteger("mTargetSlot8", this.mTargetSlots[7]); - aNBT.setInteger("mTargetSlot9", this.mTargetSlots[8]); - } - - public void loadNBTData(NBTTagCompound aNBT) - { - super.loadNBTData(aNBT); - this.mTargetSlots[0] = aNBT.getInteger("mTargetSlot1"); - this.mTargetSlots[1] = aNBT.getInteger("mTargetSlot2"); - this.mTargetSlots[2] = aNBT.getInteger("mTargetSlot3"); - this.mTargetSlots[3] = aNBT.getInteger("mTargetSlot4"); - this.mTargetSlots[4] = aNBT.getInteger("mTargetSlot5"); - this.mTargetSlots[5] = aNBT.getInteger("mTargetSlot6"); - this.mTargetSlots[6] = aNBT.getInteger("mTargetSlot7"); - this.mTargetSlots[7] = aNBT.getInteger("mTargetSlot8"); - this.mTargetSlots[8] = aNBT.getInteger("mTargetSlot9"); - } - - public void moveItems(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) - { - int i = 0; - for (int tCosts = 0; i < 9; i++) { - if (this.mInventory[(i + 9)] != null) - { - tCosts = GT_Utility.moveOneItemStackIntoSlot(getBaseMetaTileEntity(), getBaseMetaTileEntity().getTileEntityAtSide(getBaseMetaTileEntity().getBackFacing()), getBaseMetaTileEntity().getBackFacing(), this.mTargetSlots[i], Arrays.asList(new ItemStack[] { this.mInventory[(i + 9)] }), false, (byte)this.mInventory[(i + 9)].stackSize, (byte)this.mInventory[(i + 9)].stackSize, (byte)64, (byte)1) * 3; - if (tCosts > 0) - { - this.mSuccess = 50;getBaseMetaTileEntity().decreaseStoredEnergyUnits(tCosts, true); break; - } - } + extends GT_MetaTileEntity_Buffer { + public int[] mTargetSlots = {0, 0, 0, 0, 0, 0, 0, 0, 0}; + + public GT_MetaTileEntity_Regulator(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 19, "Regulating incoming Items"); + } + + public GT_MetaTileEntity_Regulator(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aInvSlotCount, aDescription, aTextures); + } + + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Regulator(this.mName, this.mTier, this.mInventory.length, this.mDescription, this.mTextures); + } + + public ITexture getOverlayIcon() { + return new GT_RenderedTexture(Textures.BlockIcons.AUTOMATION_REGULATOR); + } + + public boolean isValidSlot(int aIndex) { + return aIndex < 9; + } + + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_Container_Regulator(aPlayerInventory, aBaseMetaTileEntity); + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_Regulator(aPlayerInventory, aBaseMetaTileEntity); + } + + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + aNBT.setInteger("mTargetSlot1", this.mTargetSlots[0]); + aNBT.setInteger("mTargetSlot2", this.mTargetSlots[1]); + aNBT.setInteger("mTargetSlot3", this.mTargetSlots[2]); + aNBT.setInteger("mTargetSlot4", this.mTargetSlots[3]); + aNBT.setInteger("mTargetSlot5", this.mTargetSlots[4]); + aNBT.setInteger("mTargetSlot6", this.mTargetSlots[5]); + aNBT.setInteger("mTargetSlot7", this.mTargetSlots[6]); + aNBT.setInteger("mTargetSlot8", this.mTargetSlots[7]); + aNBT.setInteger("mTargetSlot9", this.mTargetSlots[8]); + } + + public void loadNBTData(NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + this.mTargetSlots[0] = aNBT.getInteger("mTargetSlot1"); + this.mTargetSlots[1] = aNBT.getInteger("mTargetSlot2"); + this.mTargetSlots[2] = aNBT.getInteger("mTargetSlot3"); + this.mTargetSlots[3] = aNBT.getInteger("mTargetSlot4"); + this.mTargetSlots[4] = aNBT.getInteger("mTargetSlot5"); + this.mTargetSlots[5] = aNBT.getInteger("mTargetSlot6"); + this.mTargetSlots[6] = aNBT.getInteger("mTargetSlot7"); + this.mTargetSlots[7] = aNBT.getInteger("mTargetSlot8"); + this.mTargetSlots[8] = aNBT.getInteger("mTargetSlot9"); + } + + public void moveItems(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) { + int i = 0; + for (int tCosts = 0; i < 9; i++) { + if (this.mInventory[(i + 9)] != null) { + tCosts = GT_Utility.moveOneItemStackIntoSlot(getBaseMetaTileEntity(), getBaseMetaTileEntity().getTileEntityAtSide(getBaseMetaTileEntity().getBackFacing()), getBaseMetaTileEntity().getBackFacing(), this.mTargetSlots[i], Arrays.asList(new ItemStack[]{this.mInventory[(i + 9)]}), false, (byte) this.mInventory[(i + 9)].stackSize, (byte) this.mInventory[(i + 9)].stackSize, (byte) 64, (byte) 1) * 3; + if (tCosts > 0) { + this.mSuccess = 50; + getBaseMetaTileEntity().decreaseStoredEnergyUnits(tCosts, true); + break; + } + } + } + } + + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) && (GT_Utility.areStacksEqual(aStack, this.mInventory[(aIndex + 9)])); } - } - - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) && (GT_Utility.areStacksEqual(aStack, this.mInventory[(aIndex + 9)])); - } } diff --git a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_SuperBuffer.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_SuperBuffer.java index 46c0fde6..212c354f 100644 --- a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_SuperBuffer.java +++ b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_SuperBuffer.java @@ -1,7 +1,6 @@ package gregtech.common.tileentities.automation; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -11,35 +10,28 @@ import gregtech.common.gui.GT_GUIContainer_SuperBuffer; import net.minecraft.entity.player.InventoryPlayer; public class GT_MetaTileEntity_SuperBuffer - extends GT_MetaTileEntity_ChestBuffer -{ - public GT_MetaTileEntity_SuperBuffer(int aID, String aName, String aNameRegional, int aTier) - { - super(aID, aName, aNameRegional, aTier, 257, "Buffering up to 256 Stacks"); - } - - public GT_MetaTileEntity_SuperBuffer(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, aInvSlotCount, aDescription, aTextures); - } - - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_SuperBuffer(this.mName, this.mTier, this.mInventory.length, this.mDescription, this.mTextures); - } - - public ITexture getOverlayIcon() - { - return new GT_RenderedTexture(Textures.BlockIcons.AUTOMATION_SUPERBUFFER); - } - - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_Container_SuperBuffer(aPlayerInventory, aBaseMetaTileEntity); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_SuperBuffer(aPlayerInventory, aBaseMetaTileEntity); - } + extends GT_MetaTileEntity_ChestBuffer { + public GT_MetaTileEntity_SuperBuffer(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 257, "Buffering up to 256 Stacks"); + } + + public GT_MetaTileEntity_SuperBuffer(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aInvSlotCount, aDescription, aTextures); + } + + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_SuperBuffer(this.mName, this.mTier, this.mInventory.length, this.mDescription, this.mTextures); + } + + public ITexture getOverlayIcon() { + return new GT_RenderedTexture(Textures.BlockIcons.AUTOMATION_SUPERBUFFER); + } + + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_Container_SuperBuffer(aPlayerInventory, aBaseMetaTileEntity); + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_SuperBuffer(aPlayerInventory, aBaseMetaTileEntity); + } } diff --git a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java index 7af20757..85459665 100644 --- a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java +++ b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java @@ -1,9 +1,7 @@ package gregtech.common.tileentities.automation; -import gregtech.api.enums.OreDictNames; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -14,146 +12,123 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import gregtech.common.gui.GT_Container_TypeFilter; import gregtech.common.gui.GT_GUIContainer_TypeFilter; - -import java.util.ArrayList; - import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; public class GT_MetaTileEntity_TypeFilter - extends GT_MetaTileEntity_Buffer -{ - public boolean bNBTAllowed = false; - public boolean bInvertFilter = false; - public int mRotationIndex = 0; - public OrePrefixes mPrefix = OrePrefixes.ore; - - public GT_MetaTileEntity_TypeFilter(int aID, String aName, String aNameRegional, int aTier) - { - super(aID, aName, aNameRegional, aTier, 11, "Filtering incoming Items by Type"); - } - - public GT_MetaTileEntity_TypeFilter(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, aInvSlotCount, aDescription, aTextures); - } - - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_TypeFilter(this.mName, this.mTier, this.mInventory.length, this.mDescription, this.mTextures); - } - - public ITexture getOverlayIcon() - { - return new GT_RenderedTexture(Textures.BlockIcons.AUTOMATION_TYPEFILTER); - } - - public boolean isValidSlot(int aIndex) - { - return aIndex < 9; - } - - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_Container_TypeFilter(aPlayerInventory, aBaseMetaTileEntity); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_TypeFilter(aPlayerInventory, aBaseMetaTileEntity); - } - - public void clickTypeIcon(boolean aRightClick) - { - if (getBaseMetaTileEntity().isServerSide()) - { - for (int i = 0; i < OrePrefixes.values().length; i++) { - if (this.mPrefix == OrePrefixes.values()[i]) { - for (this.mPrefix = null; this.mPrefix == null; this.mPrefix = OrePrefixes.values()[i]) - { - if (aRightClick) - { - do{ - i--; - if (i < 0) { - i = OrePrefixes.values().length - 1; - } - }while(OrePrefixes.values()[i].mPrefixedItems.isEmpty()); - - } - else - { - do{ - i++; - if (i >= OrePrefixes.values().length) { - i = 0; - } - }while(OrePrefixes.values()[i].mPrefixedItems.isEmpty()); - } - if(!OrePrefixes.values()[i].mPrefixedItems.isEmpty() && OrePrefixes.values()[i].mPrefixInto == OrePrefixes.values()[i]) - mPrefix = OrePrefixes.values()[i]; - } - } - } - this.mRotationIndex = 0; + extends GT_MetaTileEntity_Buffer { + public boolean bNBTAllowed = false; + public boolean bInvertFilter = false; + public int mRotationIndex = 0; + public OrePrefixes mPrefix = OrePrefixes.ore; + + public GT_MetaTileEntity_TypeFilter(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 11, "Filtering incoming Items by Type"); + } + + public GT_MetaTileEntity_TypeFilter(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aInvSlotCount, aDescription, aTextures); + } + + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_TypeFilter(this.mName, this.mTier, this.mInventory.length, this.mDescription, this.mTextures); + } + + public ITexture getOverlayIcon() { + return new GT_RenderedTexture(Textures.BlockIcons.AUTOMATION_TYPEFILTER); + } + + public boolean isValidSlot(int aIndex) { + return aIndex < 9; + } + + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_Container_TypeFilter(aPlayerInventory, aBaseMetaTileEntity); + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_TypeFilter(aPlayerInventory, aBaseMetaTileEntity); + } + + public void clickTypeIcon(boolean aRightClick) { + if (getBaseMetaTileEntity().isServerSide()) { + for (int i = 0; i < OrePrefixes.values().length; i++) { + if (this.mPrefix == OrePrefixes.values()[i]) { + for (this.mPrefix = null; this.mPrefix == null; this.mPrefix = OrePrefixes.values()[i]) { + if (aRightClick) { + do { + i--; + if (i < 0) { + i = OrePrefixes.values().length - 1; + } + } while (OrePrefixes.values()[i].mPrefixedItems.isEmpty()); + + } else { + do { + i++; + if (i >= OrePrefixes.values().length) { + i = 0; + } + } while (OrePrefixes.values()[i].mPrefixedItems.isEmpty()); + } + if (!OrePrefixes.values()[i].mPrefixedItems.isEmpty() && OrePrefixes.values()[i].mPrefixInto == OrePrefixes.values()[i]) + mPrefix = OrePrefixes.values()[i]; + } + } + } + this.mRotationIndex = 0; + } + } + + public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + super.onPreTick(aBaseMetaTileEntity, aTick); + if ((getBaseMetaTileEntity().isServerSide()) && (aTick % 8L == 0L)) { + if (this.mPrefix.mPrefixedItems.isEmpty()) { + this.mInventory[9] = null; + } else { + this.mInventory[9] = GT_Utility.copyAmount(1L, new Object[]{this.mPrefix.mPrefixedItems.get(this.mRotationIndex = (this.mRotationIndex + 1) % this.mPrefix.mPrefixedItems.size())}); + if (this.mInventory[9].getItemDamage() == 32767) { + this.mInventory[9].setItemDamage(0); + } + this.mInventory[9].setStackDisplayName(this.mPrefix.toString()); + } + } + } + + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + aNBT.setString("mPrefix", this.mPrefix.toString()); + aNBT.setBoolean("bInvertFilter", this.bInvertFilter); + aNBT.setBoolean("bNBTAllowed", this.bNBTAllowed); + } + + public void loadNBTData(NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + this.mPrefix = OrePrefixes.getPrefix(aNBT.getString("mPrefix"), this.mPrefix); + this.bInvertFilter = aNBT.getBoolean("bInvertFilter"); + this.bNBTAllowed = aNBT.getBoolean("bNBTAllowed"); + } + + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + boolean tAllowPrefix = this.mPrefix.contains(aStack); + if (this.mPrefix == OrePrefixes.ore) { + ItemData tData = GT_OreDictUnificator.getItemData(aStack); + if (tData != null && tData.mPrefix != null) { + OrePrefixes tFix = tData.mPrefix; + if (tFix == OrePrefixes.oreBlackgranite || + tFix == OrePrefixes.oreDense || + tFix == OrePrefixes.oreEnd || + tFix == OrePrefixes.oreEndstone || + tFix == OrePrefixes.oreNether || + tFix == OrePrefixes.oreNetherrack || + tFix == OrePrefixes.oreNormal || + tFix == OrePrefixes.orePoor || + tFix == OrePrefixes.oreRedgranite || + tFix == OrePrefixes.oreRich || + tFix == OrePrefixes.oreSmall) tAllowPrefix = true; + } + } + return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) && ((this.bNBTAllowed) || (!aStack.hasTagCompound())) && (tAllowPrefix != this.bInvertFilter); } - } - - public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) - { - super.onPreTick(aBaseMetaTileEntity, aTick); - if ((getBaseMetaTileEntity().isServerSide()) && (aTick % 8L == 0L)) { - if (this.mPrefix.mPrefixedItems.isEmpty()) - { - this.mInventory[9] = null; - } - else - { - this.mInventory[9] = GT_Utility.copyAmount(1L, new Object[] { this.mPrefix.mPrefixedItems.get(this.mRotationIndex = (this.mRotationIndex + 1) % this.mPrefix.mPrefixedItems.size()) }); - if (this.mInventory[9].getItemDamage() == 32767) { - this.mInventory[9].setItemDamage(0); - } - this.mInventory[9].setStackDisplayName(this.mPrefix.toString()); - } - } - } - - public void saveNBTData(NBTTagCompound aNBT) - { - super.saveNBTData(aNBT); - aNBT.setString("mPrefix", this.mPrefix.toString()); - aNBT.setBoolean("bInvertFilter", this.bInvertFilter); - aNBT.setBoolean("bNBTAllowed", this.bNBTAllowed); - } - - public void loadNBTData(NBTTagCompound aNBT) - { - super.loadNBTData(aNBT); - this.mPrefix = OrePrefixes.getPrefix(aNBT.getString("mPrefix"), this.mPrefix); - this.bInvertFilter = aNBT.getBoolean("bInvertFilter"); - this.bNBTAllowed = aNBT.getBoolean("bNBTAllowed"); - } - - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - boolean tAllowPrefix = this.mPrefix.contains(aStack); - if(this.mPrefix==OrePrefixes.ore){ - ItemData tData = GT_OreDictUnificator.getItemData(aStack); - if(tData!=null&&tData.mPrefix!=null){ - OrePrefixes tFix = tData.mPrefix; - if(tFix==OrePrefixes.oreBlackgranite|| - tFix==OrePrefixes.oreDense|| - tFix==OrePrefixes.oreEnd|| - tFix==OrePrefixes.oreEndstone|| - tFix==OrePrefixes.oreNether|| - tFix==OrePrefixes.oreNetherrack|| - tFix==OrePrefixes.oreNormal|| - tFix==OrePrefixes.orePoor|| - tFix==OrePrefixes.oreRedgranite|| - tFix==OrePrefixes.oreRich|| - tFix==OrePrefixes.oreSmall)tAllowPrefix=true; - }} - return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) && ((this.bNBTAllowed) || (!aStack.hasTagCompound())) && (tAllowPrefix != this.bInvertFilter); - } } diff --git a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler.java index 64b452e6..f9dd1ccf 100644 --- a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler.java +++ b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler.java @@ -7,324 +7,264 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; import gregtech.api.objects.GT_ItemStack; -import gregtech.api.util.GT_CoverBehavior; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; -import java.util.Map; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidHandler; public abstract class GT_MetaTileEntity_Boiler - extends GT_MetaTileEntity_BasicTank -{ - public int mTemperature = 20; - public int mProcessingEnergy = 0; - public int mLossTimer = 0; - public FluidStack mSteam = null; - public boolean mHadNoWater = false; - - public GT_MetaTileEntity_Boiler(int aID, String aName, String aNameRegional, String aDescription, ITexture... aTextures) - { - super(aID, aName, aNameRegional, 0, 4, aDescription, aTextures); - } - - public GT_MetaTileEntity_Boiler(String aName, int aTier, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, 4, aDescription, aTextures); - } - - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) - { - ITexture[] tmp = mTextures[aSide >= 2 ? aSide != aFacing ? 2 : ((byte)(aActive ? 4 : 3)) : aSide][aColorIndex + 1]; - //mTextures[(aSide==aFacing?(aActive?4:3):aSide==GT_Utility.getOppositeSide(aFacing)?2:aSide==0?0:aSide==1?1:2)][aColorIndex+1]; - if(aSide!=aFacing&&tmp.length==2){ - tmp = new ITexture[]{tmp[0]}; - } - return tmp; - } - - public boolean isElectric() - { - return false; - } - - public boolean isPneumatic() - { - return false; - } - - public boolean isSteampowered() - { - return false; - } - - public boolean isSimpleMachine() - { - return false; - } - - public boolean isFacingValid(byte aFacing) - { - return aFacing > 1; - } - - public boolean isAccessAllowed(EntityPlayer aPlayer) - { - return true; - } - - public boolean isValidSlot(int aIndex) - { - return true; - } - - public int getProgresstime() - { - return this.mTemperature; - } - - public int maxProgresstime() - { - return 500; - } - - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) - { - if (aBaseMetaTileEntity.isClientSide()) { - return true; + extends GT_MetaTileEntity_BasicTank { + public int mTemperature = 20; + public int mProcessingEnergy = 0; + public int mLossTimer = 0; + public FluidStack mSteam = null; + public boolean mHadNoWater = false; + + public GT_MetaTileEntity_Boiler(int aID, String aName, String aNameRegional, String aDescription, ITexture... aTextures) { + super(aID, aName, aNameRegional, 0, 4, aDescription, aTextures); } - if (aPlayer != null) { - if (GT_Utility.areStacksEqual(aPlayer.getCurrentEquippedItem(), new ItemStack(Items.water_bucket, 1))) - { - fill(Materials.Water.getFluid(1000 * aPlayer.getCurrentEquippedItem().stackSize), true); - aPlayer.getCurrentEquippedItem().func_150996_a(Items.bucket); - } - else - { - aBaseMetaTileEntity.openGUI(aPlayer); - } + + public GT_MetaTileEntity_Boiler(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 4, aDescription, aTextures); } - return true; - } - - public boolean doesFillContainers() - { - return true; - } - - public boolean doesEmptyContainers() - { - return true; - } - - public boolean canTankBeFilled() - { - return true; - } - - public boolean canTankBeEmptied() - { - return true; - } - - public boolean displaysItemStack() - { - return false; - } - - public boolean displaysStackSize() - { - return false; - } - - public boolean isFluidInputAllowed(FluidStack aFluid) - { - return GT_ModHandler.isWater(aFluid); - } - - public FluidStack getDrainableStack() - { - return this.mSteam; - } - - public FluidStack setDrainableStack(FluidStack aFluid) - { - this.mSteam = aFluid;return this.mSteam; - } - - public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCover) - { - return GregTech_API.getCoverBehavior(aCover.toStack()).isSimpleCover(); - } - - public void saveNBTData(NBTTagCompound aNBT) - { - super.saveNBTData(aNBT); - aNBT.setInteger("mLossTimer", this.mLossTimer); - aNBT.setInteger("mTemperature", this.mTemperature); - aNBT.setInteger("mProcessingEnergy", this.mProcessingEnergy); - if (this.mSteam != null) { - try - { - aNBT.setTag("mSteam", this.mSteam.writeToNBT(new NBTTagCompound())); - } - catch (Throwable e) {} - } - } - - public void loadNBTData(NBTTagCompound aNBT) - { - super.loadNBTData(aNBT); - this.mLossTimer = aNBT.getInteger("mLossTimer"); - this.mTemperature = aNBT.getInteger("mTemperature"); - this.mProcessingEnergy = aNBT.getInteger("mProcessingEnergy"); - this.mSteam = FluidStack.loadFluidStackFromNBT(aNBT.getCompoundTag("mSteam")); - } - - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) - { - if ((aBaseMetaTileEntity.isServerSide()) && (aTick > 20L)) - { - if (this.mTemperature <= 20) - { - this.mTemperature = 20; - this.mLossTimer = 0; - } - if (++this.mLossTimer > 40) - { - this.mTemperature -= 1; - this.mLossTimer = 0; - } - for (byte i = 1; (this.mSteam != null) && (i < 6); i = (byte)(i + 1)) { - if (i != aBaseMetaTileEntity.getFrontFacing()) - { - IFluidHandler tTileEntity = aBaseMetaTileEntity.getITankContainerAtSide(i); - if (tTileEntity != null) - { - FluidStack tDrained = aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(i), Math.max(1, this.mSteam.amount / 2), false); - if (tDrained != null) - { - int tFilledAmount = tTileEntity.fill(ForgeDirection.getOrientation(i).getOpposite(), tDrained, false); - if (tFilledAmount > 0) { - tTileEntity.fill(ForgeDirection.getOrientation(i).getOpposite(), aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(i), tFilledAmount, true), true); - } - } - } + + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + ITexture[] tmp = mTextures[aSide >= 2 ? aSide != aFacing ? 2 : ((byte) (aActive ? 4 : 3)) : aSide][aColorIndex + 1]; + //mTextures[(aSide==aFacing?(aActive?4:3):aSide==GT_Utility.getOppositeSide(aFacing)?2:aSide==0?0:aSide==1?1:2)][aColorIndex+1]; + if (aSide != aFacing && tmp.length == 2) { + tmp = new ITexture[]{tmp[0]}; } - } - if (aTick % 10L == 0L) { - if (this.mTemperature > 100) - { - if ((this.mFluid == null) || (!GT_ModHandler.isWater(this.mFluid)) || (this.mFluid.amount <= 0)) - { - this.mHadNoWater = true; - } - else - { - if (this.mHadNoWater) - { - aBaseMetaTileEntity.doExplosion(2048L); - return; - } - this.mFluid.amount -= 1; - if (this.mSteam == null) { - this.mSteam = GT_ModHandler.getSteam(150L); - } else if (GT_ModHandler.isSteam(this.mSteam)) { - this.mSteam.amount += 150; + return tmp; + } + + public boolean isElectric() { + return false; + } + + public boolean isPneumatic() { + return false; + } + + public boolean isSteampowered() { + return false; + } + + public boolean isSimpleMachine() { + return false; + } + + public boolean isFacingValid(byte aFacing) { + return aFacing > 1; + } + + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + public boolean isValidSlot(int aIndex) { + return true; + } + + public int getProgresstime() { + return this.mTemperature; + } + + public int maxProgresstime() { + return 500; + } + + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + if (aBaseMetaTileEntity.isClientSide()) { + return true; + } + if (aPlayer != null) { + if (GT_Utility.areStacksEqual(aPlayer.getCurrentEquippedItem(), new ItemStack(Items.water_bucket, 1))) { + fill(Materials.Water.getFluid(1000 * aPlayer.getCurrentEquippedItem().stackSize), true); + aPlayer.getCurrentEquippedItem().func_150996_a(Items.bucket); } else { - this.mSteam = GT_ModHandler.getSteam(150L); + aBaseMetaTileEntity.openGUI(aPlayer); } - } } - else { - this.mHadNoWater = false; - } - } - if ((this.mSteam != null) && - (this.mSteam.amount > 32000)) - { - sendSound((byte)1); - this.mSteam.amount = 24000; - } - if ((this.mProcessingEnergy <= 0) && (aBaseMetaTileEntity.isAllowedToWork()) && - (this.mInventory[2] != null)) { - if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.gem.get(Materials.Coal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dust.get(Materials.Coal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dustImpure.get(Materials.Coal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.crushed.get(Materials.Coal)))) - { - this.mProcessingEnergy += 160; - aBaseMetaTileEntity.decrStackSize(2, 1); - if (aBaseMetaTileEntity.getRandomNumber(3) == 0) { - aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)); - } - } - else if (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.gem.get(Materials.Charcoal))) - { - this.mProcessingEnergy += 160; - aBaseMetaTileEntity.decrStackSize(2, 1); - if (aBaseMetaTileEntity.getRandomNumber(3) == 0) { - aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 1L)); - } - } - else if (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], "fuelCoke")) - { - this.mProcessingEnergy += 640; - aBaseMetaTileEntity.decrStackSize(2, 1); - if (aBaseMetaTileEntity.getRandomNumber(2) == 0) { - aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 1L)); - } - } - else if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.gem.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dust.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dustImpure.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.crushed.get(Materials.Lignite)))) - { - this.mProcessingEnergy += 40; - aBaseMetaTileEntity.decrStackSize(2, 1); - if (aBaseMetaTileEntity.getRandomNumber(8) == 0) { - aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)); - } - } - } - if ((this.mTemperature < 1000) && (this.mProcessingEnergy > 0) && (aTick % 12L == 0L)) - { - this.mProcessingEnergy -= 2; - this.mTemperature += 1; - } - aBaseMetaTileEntity.setActive(this.mProcessingEnergy > 0); + return true; } - } - - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - return (aIndex == 1) || (aIndex == 3); - } - - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - return aIndex == 2; - } - - public void doSound(byte aIndex, double aX, double aY, double aZ) - { - if (aIndex == 1) - { - GT_Utility.doSoundAtClient((String)GregTech_API.sSoundList.get(Integer.valueOf(4)), 2, 1.0F, aX, aY, aZ); - for (int l = 0; l < 8; l++) { - getBaseMetaTileEntity().getWorld().spawnParticle("largesmoke", aX - 0.5D + Math.random(), aY, aZ - 0.5D + Math.random(), 0.0D, 0.0D, 0.0D); - } + + public boolean doesFillContainers() { + return true; + } + + public boolean doesEmptyContainers() { + return true; + } + + public boolean canTankBeFilled() { + return true; + } + + public boolean canTankBeEmptied() { + return true; + } + + public boolean displaysItemStack() { + return false; + } + + public boolean displaysStackSize() { + return false; + } + + public boolean isFluidInputAllowed(FluidStack aFluid) { + return GT_ModHandler.isWater(aFluid); + } + + public FluidStack getDrainableStack() { + return this.mSteam; + } + + public FluidStack setDrainableStack(FluidStack aFluid) { + this.mSteam = aFluid; + return this.mSteam; + } + + public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCover) { + return GregTech_API.getCoverBehavior(aCover.toStack()).isSimpleCover(); + } + + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + aNBT.setInteger("mLossTimer", this.mLossTimer); + aNBT.setInteger("mTemperature", this.mTemperature); + aNBT.setInteger("mProcessingEnergy", this.mProcessingEnergy); + if (this.mSteam != null) { + try { + aNBT.setTag("mSteam", this.mSteam.writeToNBT(new NBTTagCompound())); + } catch (Throwable e) { + } + } + } + + public void loadNBTData(NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + this.mLossTimer = aNBT.getInteger("mLossTimer"); + this.mTemperature = aNBT.getInteger("mTemperature"); + this.mProcessingEnergy = aNBT.getInteger("mProcessingEnergy"); + this.mSteam = FluidStack.loadFluidStackFromNBT(aNBT.getCompoundTag("mSteam")); + } + + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + if ((aBaseMetaTileEntity.isServerSide()) && (aTick > 20L)) { + if (this.mTemperature <= 20) { + this.mTemperature = 20; + this.mLossTimer = 0; + } + if (++this.mLossTimer > 40) { + this.mTemperature -= 1; + this.mLossTimer = 0; + } + for (byte i = 1; (this.mSteam != null) && (i < 6); i = (byte) (i + 1)) { + if (i != aBaseMetaTileEntity.getFrontFacing()) { + IFluidHandler tTileEntity = aBaseMetaTileEntity.getITankContainerAtSide(i); + if (tTileEntity != null) { + FluidStack tDrained = aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(i), Math.max(1, this.mSteam.amount / 2), false); + if (tDrained != null) { + int tFilledAmount = tTileEntity.fill(ForgeDirection.getOrientation(i).getOpposite(), tDrained, false); + if (tFilledAmount > 0) { + tTileEntity.fill(ForgeDirection.getOrientation(i).getOpposite(), aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(i), tFilledAmount, true), true); + } + } + } + } + } + if (aTick % 10L == 0L) { + if (this.mTemperature > 100) { + if ((this.mFluid == null) || (!GT_ModHandler.isWater(this.mFluid)) || (this.mFluid.amount <= 0)) { + this.mHadNoWater = true; + } else { + if (this.mHadNoWater) { + aBaseMetaTileEntity.doExplosion(2048L); + return; + } + this.mFluid.amount -= 1; + if (this.mSteam == null) { + this.mSteam = GT_ModHandler.getSteam(150L); + } else if (GT_ModHandler.isSteam(this.mSteam)) { + this.mSteam.amount += 150; + } else { + this.mSteam = GT_ModHandler.getSteam(150L); + } + } + } else { + this.mHadNoWater = false; + } + } + if ((this.mSteam != null) && + (this.mSteam.amount > 32000)) { + sendSound((byte) 1); + this.mSteam.amount = 24000; + } + if ((this.mProcessingEnergy <= 0) && (aBaseMetaTileEntity.isAllowedToWork()) && + (this.mInventory[2] != null)) { + if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.gem.get(Materials.Coal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dust.get(Materials.Coal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dustImpure.get(Materials.Coal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.crushed.get(Materials.Coal)))) { + this.mProcessingEnergy += 160; + aBaseMetaTileEntity.decrStackSize(2, 1); + if (aBaseMetaTileEntity.getRandomNumber(3) == 0) { + aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)); + } + } else if (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.gem.get(Materials.Charcoal))) { + this.mProcessingEnergy += 160; + aBaseMetaTileEntity.decrStackSize(2, 1); + if (aBaseMetaTileEntity.getRandomNumber(3) == 0) { + aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 1L)); + } + } else if (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], "fuelCoke")) { + this.mProcessingEnergy += 640; + aBaseMetaTileEntity.decrStackSize(2, 1); + if (aBaseMetaTileEntity.getRandomNumber(2) == 0) { + aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 1L)); + } + } else if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.gem.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dust.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dustImpure.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.crushed.get(Materials.Lignite)))) { + this.mProcessingEnergy += 40; + aBaseMetaTileEntity.decrStackSize(2, 1); + if (aBaseMetaTileEntity.getRandomNumber(8) == 0) { + aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)); + } + } + } + if ((this.mTemperature < 1000) && (this.mProcessingEnergy > 0) && (aTick % 12L == 0L)) { + this.mProcessingEnergy -= 2; + this.mTemperature += 1; + } + aBaseMetaTileEntity.setActive(this.mProcessingEnergy > 0); + } + } + + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return (aIndex == 1) || (aIndex == 3); + } + + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return aIndex == 2; + } + + public void doSound(byte aIndex, double aX, double aY, double aZ) { + if (aIndex == 1) { + GT_Utility.doSoundAtClient((String) GregTech_API.sSoundList.get(Integer.valueOf(4)), 2, 1.0F, aX, aY, aZ); + for (int l = 0; l < 8; l++) { + getBaseMetaTileEntity().getWorld().spawnParticle("largesmoke", aX - 0.5D + Math.random(), aY, aZ - 0.5D + Math.random(), 0.0D, 0.0D, 0.0D); + } + } + } + + public int getCapacity() { + return 16000; + } + + public int getTankPressure() { + return 100; } - } - - public int getCapacity() - { - return 16000; - } - - public int getTankPressure() - { - return 100; - } } diff --git a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Bronze.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Bronze.java index e683eb09..1a68147f 100644 --- a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Bronze.java @@ -4,7 +4,6 @@ import gregtech.api.enums.Dyes; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; @@ -19,158 +18,127 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidHandler; public class GT_MetaTileEntity_Boiler_Bronze - extends GT_MetaTileEntity_Boiler -{ - public GT_MetaTileEntity_Boiler_Bronze(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional, "An early way to get Steam Power", new ITexture[0]); - } - - public GT_MetaTileEntity_Boiler_Bronze(String aName, int aTier, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, aDescription, aTextures); - } - - public ITexture[][][] getTextureSet(ITexture[] aTextures) - { - ITexture[][][] rTextures = new ITexture[5][17][]; - for (byte i = -1; i < 16; i++) - { - rTextures[0][(i + 1)] = new ITexture[] { new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_BOTTOM, Dyes.getModulation(i, Dyes._NULL.mRGBa)) }; - rTextures[1][(i + 1)] = new ITexture[] { new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_TOP, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE) }; - rTextures[2][(i + 1)] = new ITexture[] { new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE) }; - rTextures[3][(i + 1)] = new ITexture[] { new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.BOILER_FRONT) }; - rTextures[4][(i + 1)] = new ITexture[] { new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.BOILER_FRONT_ACTIVE) }; + extends GT_MetaTileEntity_Boiler { + public GT_MetaTileEntity_Boiler_Bronze(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional, "An early way to get Steam Power", new ITexture[0]); } - return rTextures; - } - - public int maxProgresstime() - { - return 500; - } - - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_Container_Boiler(aPlayerInventory, aBaseMetaTileEntity, 16000); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_Boiler(aPlayerInventory, aBaseMetaTileEntity, "BronzeBoiler.png", 16000); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_Boiler_Bronze(this.mName, this.mTier, this.mDescription, this.mTextures); - } - - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) - { - if ((aBaseMetaTileEntity.isServerSide()) && (aTick > 20L)) - { - if (this.mTemperature <= 20) - { - this.mTemperature = 20; - this.mLossTimer = 0; - } - if (++this.mLossTimer > 45) - { - this.mTemperature -= 1; - this.mLossTimer = 0; - } - for (byte i = 1; (this.mSteam != null) && (i < 6); i = (byte)(i + 1)) { - if (i != aBaseMetaTileEntity.getFrontFacing()) - { - IFluidHandler tTileEntity = aBaseMetaTileEntity.getITankContainerAtSide(i); - if (tTileEntity != null) - { - FluidStack tDrained = aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(i), Math.max(1, this.mSteam.amount / 2), false); - if (tDrained != null) - { - int tFilledAmount = tTileEntity.fill(ForgeDirection.getOrientation(i).getOpposite(), tDrained, false); - if (tFilledAmount > 0) { - tTileEntity.fill(ForgeDirection.getOrientation(i).getOpposite(), aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(i), tFilledAmount, true), true); - } - } - } - } - } - if (aTick % 25L == 0L) { - if (this.mTemperature > 100) - { - if ((this.mFluid == null) || (!GT_ModHandler.isWater(this.mFluid)) || (this.mFluid.amount <= 0)) - { - this.mHadNoWater = true; - } - else - { - if (this.mHadNoWater) - { - aBaseMetaTileEntity.doExplosion(2048L); - return; - } - this.mFluid.amount -= 1; - if (this.mSteam == null) { - this.mSteam = GT_ModHandler.getSteam(150L); - } else if (GT_ModHandler.isSteam(this.mSteam)) { - this.mSteam.amount += 150; - } else { - this.mSteam = GT_ModHandler.getSteam(150L); - } - } - } - else { - this.mHadNoWater = false; - } - } - if ((this.mSteam != null) && - (this.mSteam.amount > 16000)) - { - sendSound((byte)1); - this.mSteam.amount = 12000; - } - if ((this.mProcessingEnergy <= 0) && (aBaseMetaTileEntity.isAllowedToWork()) && - (this.mInventory[2] != null)) { - if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.gem.get(Materials.Coal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dust.get(Materials.Coal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dustImpure.get(Materials.Coal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.crushed.get(Materials.Coal)))) - { - this.mProcessingEnergy += 160; - aBaseMetaTileEntity.decrStackSize(2, 1); - if (aBaseMetaTileEntity.getRandomNumber(3) == 0) { - aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)); - } - } - else if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.gem.get(Materials.Charcoal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dust.get(Materials.Charcoal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dustImpure.get(Materials.Charcoal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.crushed.get(Materials.Charcoal)))) - { - this.mProcessingEnergy += 160; - aBaseMetaTileEntity.decrStackSize(2, 1); - if (aBaseMetaTileEntity.getRandomNumber(3) == 0) { - aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 1L)); - } - } - else if (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], "fuelCoke")) - { - this.mProcessingEnergy += 640; - aBaseMetaTileEntity.decrStackSize(2, 1); - if (aBaseMetaTileEntity.getRandomNumber(2) == 0) { - aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 1L)); - } - } - else if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.gem.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dust.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dustImpure.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.crushed.get(Materials.Lignite)))) - { - this.mProcessingEnergy += 40; - aBaseMetaTileEntity.decrStackSize(2, 1); - if (aBaseMetaTileEntity.getRandomNumber(8) == 0) { - aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)); - } - } - } - if ((this.mTemperature < 500) && (this.mProcessingEnergy > 0) && (aTick % 12L == 0L)) - { - this.mProcessingEnergy -= 1; - this.mTemperature += 1; - } - aBaseMetaTileEntity.setActive(this.mProcessingEnergy > 0); + + public GT_MetaTileEntity_Boiler_Bronze(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aDescription, aTextures); + } + + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + ITexture[][][] rTextures = new ITexture[5][17][]; + for (byte i = -1; i < 16; i++) { + rTextures[0][(i + 1)] = new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_BOTTOM, Dyes.getModulation(i, Dyes._NULL.mRGBa))}; + rTextures[1][(i + 1)] = new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_TOP, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE)}; + rTextures[2][(i + 1)] = new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE)}; + rTextures[3][(i + 1)] = new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.BOILER_FRONT)}; + rTextures[4][(i + 1)] = new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.BOILER_FRONT_ACTIVE)}; + } + return rTextures; + } + + public int maxProgresstime() { + return 500; + } + + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_Container_Boiler(aPlayerInventory, aBaseMetaTileEntity, 16000); + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_Boiler(aPlayerInventory, aBaseMetaTileEntity, "BronzeBoiler.png", 16000); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Boiler_Bronze(this.mName, this.mTier, this.mDescription, this.mTextures); + } + + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + if ((aBaseMetaTileEntity.isServerSide()) && (aTick > 20L)) { + if (this.mTemperature <= 20) { + this.mTemperature = 20; + this.mLossTimer = 0; + } + if (++this.mLossTimer > 45) { + this.mTemperature -= 1; + this.mLossTimer = 0; + } + for (byte i = 1; (this.mSteam != null) && (i < 6); i = (byte) (i + 1)) { + if (i != aBaseMetaTileEntity.getFrontFacing()) { + IFluidHandler tTileEntity = aBaseMetaTileEntity.getITankContainerAtSide(i); + if (tTileEntity != null) { + FluidStack tDrained = aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(i), Math.max(1, this.mSteam.amount / 2), false); + if (tDrained != null) { + int tFilledAmount = tTileEntity.fill(ForgeDirection.getOrientation(i).getOpposite(), tDrained, false); + if (tFilledAmount > 0) { + tTileEntity.fill(ForgeDirection.getOrientation(i).getOpposite(), aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(i), tFilledAmount, true), true); + } + } + } + } + } + if (aTick % 25L == 0L) { + if (this.mTemperature > 100) { + if ((this.mFluid == null) || (!GT_ModHandler.isWater(this.mFluid)) || (this.mFluid.amount <= 0)) { + this.mHadNoWater = true; + } else { + if (this.mHadNoWater) { + aBaseMetaTileEntity.doExplosion(2048L); + return; + } + this.mFluid.amount -= 1; + if (this.mSteam == null) { + this.mSteam = GT_ModHandler.getSteam(150L); + } else if (GT_ModHandler.isSteam(this.mSteam)) { + this.mSteam.amount += 150; + } else { + this.mSteam = GT_ModHandler.getSteam(150L); + } + } + } else { + this.mHadNoWater = false; + } + } + if ((this.mSteam != null) && + (this.mSteam.amount > 16000)) { + sendSound((byte) 1); + this.mSteam.amount = 12000; + } + if ((this.mProcessingEnergy <= 0) && (aBaseMetaTileEntity.isAllowedToWork()) && + (this.mInventory[2] != null)) { + if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.gem.get(Materials.Coal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dust.get(Materials.Coal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dustImpure.get(Materials.Coal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.crushed.get(Materials.Coal)))) { + this.mProcessingEnergy += 160; + aBaseMetaTileEntity.decrStackSize(2, 1); + if (aBaseMetaTileEntity.getRandomNumber(3) == 0) { + aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)); + } + } else if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.gem.get(Materials.Charcoal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dust.get(Materials.Charcoal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dustImpure.get(Materials.Charcoal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.crushed.get(Materials.Charcoal)))) { + this.mProcessingEnergy += 160; + aBaseMetaTileEntity.decrStackSize(2, 1); + if (aBaseMetaTileEntity.getRandomNumber(3) == 0) { + aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 1L)); + } + } else if (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], "fuelCoke")) { + this.mProcessingEnergy += 640; + aBaseMetaTileEntity.decrStackSize(2, 1); + if (aBaseMetaTileEntity.getRandomNumber(2) == 0) { + aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 1L)); + } + } else if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.gem.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dust.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dustImpure.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.crushed.get(Materials.Lignite)))) { + this.mProcessingEnergy += 40; + aBaseMetaTileEntity.decrStackSize(2, 1); + if (aBaseMetaTileEntity.getRandomNumber(8) == 0) { + aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)); + } + } + } + if ((this.mTemperature < 500) && (this.mProcessingEnergy > 0) && (aTick % 12L == 0L)) { + this.mProcessingEnergy -= 1; + this.mTemperature += 1; + } + aBaseMetaTileEntity.setActive(this.mProcessingEnergy > 0); + } } - } } diff --git a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java index be715de6..0adff0b9 100644 --- a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java +++ b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java @@ -4,7 +4,6 @@ import gregtech.api.enums.Dyes; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; @@ -19,142 +18,116 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidHandler; public class GT_MetaTileEntity_Boiler_Lava - extends GT_MetaTileEntity_Boiler -{ - public GT_MetaTileEntity_Boiler_Lava(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional, "A Boiler running off Lava", new ITexture[0]); - } - - public GT_MetaTileEntity_Boiler_Lava(String aName, int aTier, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, aDescription, aTextures); - } - - public ITexture[][][] getTextureSet(ITexture[] aTextures) - { - ITexture[][][] rTextures = new ITexture[5][17][]; - for (byte i = -1; i < 16; i++){ - rTextures[0][(i + 1)] = new ITexture [] { new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_BOTTOM, Dyes.getModulation(i, Dyes._NULL.mRGBa)) }; - rTextures[1][(i + 1)] = new ITexture [] { new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_TOP, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE) }; - rTextures[2][(i + 1)] = new ITexture [] { new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE) }; - rTextures[3][(i + 1)] = new ITexture [] { new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.BOILER_LAVA_FRONT) }; - rTextures[4][(i + 1)] = new ITexture [] { new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.BOILER_LAVA_FRONT_ACTIVE) }; + extends GT_MetaTileEntity_Boiler { + public GT_MetaTileEntity_Boiler_Lava(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional, "A Boiler running off Lava", new ITexture[0]); } - return rTextures; - } - - public int maxProgresstime() - { - return 1000; - } - - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_Container_Boiler(aPlayerInventory, aBaseMetaTileEntity, 32000); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_Boiler(aPlayerInventory, aBaseMetaTileEntity, "SteelBoiler.png", 32000); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_Boiler_Lava(this.mName, this.mTier, this.mDescription, this.mTextures); - } - - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) - { - if ((aBaseMetaTileEntity.isServerSide()) && (aTick > 20L)) - { - if (this.mTemperature <= 20) - { - this.mTemperature = 20; - this.mLossTimer = 0; - } - if (++this.mLossTimer > 20) - { - this.mTemperature -= 1; - this.mLossTimer = 0; - } - for (byte i = 1; (this.mSteam != null) && (i < 6); i = (byte)(i + 1)) { - if (i != aBaseMetaTileEntity.getFrontFacing()) - { - IFluidHandler tTileEntity = aBaseMetaTileEntity.getITankContainerAtSide(i); - if (tTileEntity != null) - { - FluidStack tDrained = aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(i), Math.max(1, this.mSteam.amount / 2), false); - if (tDrained != null) - { - int tFilledAmount = tTileEntity.fill(ForgeDirection.getOrientation(i).getOpposite(), tDrained, false); - if (tFilledAmount > 0) { - tTileEntity.fill(ForgeDirection.getOrientation(i).getOpposite(), aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(i), tFilledAmount, true), true); - } - } - } - } - } - if (aTick % 10L == 0L) { - if (this.mTemperature > 100) - { - if ((this.mFluid == null) || (!GT_ModHandler.isWater(this.mFluid)) || (this.mFluid.amount <= 0)) - { - this.mHadNoWater = true; - } - else - { - if (this.mHadNoWater) - { - aBaseMetaTileEntity.doExplosion(2048L); - return; - } - this.mFluid.amount -= 1; - if (this.mSteam == null) { - this.mSteam = GT_ModHandler.getSteam(300L); - } else if (GT_ModHandler.isSteam(this.mSteam)) { - this.mSteam.amount += 300; - } else { - this.mSteam = GT_ModHandler.getSteam(300L); - } - } - } - else { - this.mHadNoWater = false; - } - } - if ((this.mSteam != null) && - (this.mSteam.amount > 32000)) - { - sendSound((byte)1); - this.mSteam.amount = 24000; - } - if ((this.mProcessingEnergy <= 0) && (aBaseMetaTileEntity.isAllowedToWork()) && - (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.bucket.get(Materials.Lava)))) - { - this.mProcessingEnergy += 1000; - aBaseMetaTileEntity.decrStackSize(2, 1); - aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.bucket, Materials.Empty, 1L)); - } - if ((this.mTemperature < 1000) && (this.mProcessingEnergy > 0) && (aTick % 8L == 0L)) - { - this.mProcessingEnergy -= 3; - this.mTemperature += 1; - } - aBaseMetaTileEntity.setActive(this.mProcessingEnergy > 0); + + public GT_MetaTileEntity_Boiler_Lava(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aDescription, aTextures); } - } - - public final int fill(FluidStack aFluid, boolean doFill) - { - if ((GT_ModHandler.isLava(aFluid)) && (this.mProcessingEnergy < 50)) - { - int tFilledAmount = Math.min(50, aFluid.amount); - if (doFill) { - this.mProcessingEnergy += tFilledAmount; - } - return tFilledAmount; + + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + ITexture[][][] rTextures = new ITexture[5][17][]; + for (byte i = -1; i < 16; i++) { + rTextures[0][(i + 1)] = new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_BOTTOM, Dyes.getModulation(i, Dyes._NULL.mRGBa))}; + rTextures[1][(i + 1)] = new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_TOP, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE)}; + rTextures[2][(i + 1)] = new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE)}; + rTextures[3][(i + 1)] = new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.BOILER_LAVA_FRONT)}; + rTextures[4][(i + 1)] = new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.BOILER_LAVA_FRONT_ACTIVE)}; + } + return rTextures; + } + + public int maxProgresstime() { + return 1000; + } + + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_Container_Boiler(aPlayerInventory, aBaseMetaTileEntity, 32000); + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_Boiler(aPlayerInventory, aBaseMetaTileEntity, "SteelBoiler.png", 32000); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Boiler_Lava(this.mName, this.mTier, this.mDescription, this.mTextures); + } + + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + if ((aBaseMetaTileEntity.isServerSide()) && (aTick > 20L)) { + if (this.mTemperature <= 20) { + this.mTemperature = 20; + this.mLossTimer = 0; + } + if (++this.mLossTimer > 20) { + this.mTemperature -= 1; + this.mLossTimer = 0; + } + for (byte i = 1; (this.mSteam != null) && (i < 6); i = (byte) (i + 1)) { + if (i != aBaseMetaTileEntity.getFrontFacing()) { + IFluidHandler tTileEntity = aBaseMetaTileEntity.getITankContainerAtSide(i); + if (tTileEntity != null) { + FluidStack tDrained = aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(i), Math.max(1, this.mSteam.amount / 2), false); + if (tDrained != null) { + int tFilledAmount = tTileEntity.fill(ForgeDirection.getOrientation(i).getOpposite(), tDrained, false); + if (tFilledAmount > 0) { + tTileEntity.fill(ForgeDirection.getOrientation(i).getOpposite(), aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(i), tFilledAmount, true), true); + } + } + } + } + } + if (aTick % 10L == 0L) { + if (this.mTemperature > 100) { + if ((this.mFluid == null) || (!GT_ModHandler.isWater(this.mFluid)) || (this.mFluid.amount <= 0)) { + this.mHadNoWater = true; + } else { + if (this.mHadNoWater) { + aBaseMetaTileEntity.doExplosion(2048L); + return; + } + this.mFluid.amount -= 1; + if (this.mSteam == null) { + this.mSteam = GT_ModHandler.getSteam(300L); + } else if (GT_ModHandler.isSteam(this.mSteam)) { + this.mSteam.amount += 300; + } else { + this.mSteam = GT_ModHandler.getSteam(300L); + } + } + } else { + this.mHadNoWater = false; + } + } + if ((this.mSteam != null) && + (this.mSteam.amount > 32000)) { + sendSound((byte) 1); + this.mSteam.amount = 24000; + } + if ((this.mProcessingEnergy <= 0) && (aBaseMetaTileEntity.isAllowedToWork()) && + (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.bucket.get(Materials.Lava)))) { + this.mProcessingEnergy += 1000; + aBaseMetaTileEntity.decrStackSize(2, 1); + aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.bucket, Materials.Empty, 1L)); + } + if ((this.mTemperature < 1000) && (this.mProcessingEnergy > 0) && (aTick % 8L == 0L)) { + this.mProcessingEnergy -= 3; + this.mTemperature += 1; + } + aBaseMetaTileEntity.setActive(this.mProcessingEnergy > 0); + } + } + + public final int fill(FluidStack aFluid, boolean doFill) { + if ((GT_ModHandler.isLava(aFluid)) && (this.mProcessingEnergy < 50)) { + int tFilledAmount = Math.min(50, aFluid.amount); + if (doFill) { + this.mProcessingEnergy += tFilledAmount; + } + return tFilledAmount; + } + return super.fill(aFluid, doFill); } - return super.fill(aFluid, doFill); - } } diff --git a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java index 346b4511..c013f87a 100644 --- a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java +++ b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java @@ -2,151 +2,122 @@ package gregtech.common.tileentities.boilers; import gregtech.api.enums.Dyes; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_Utility; import gregtech.common.gui.GT_Container_Boiler; import gregtech.common.gui.GT_GUIContainer_Boiler; import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidHandler; public class GT_MetaTileEntity_Boiler_Solar - extends GT_MetaTileEntity_Boiler -{ - public GT_MetaTileEntity_Boiler_Solar(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional, "Steam Power by the Sun", new ITexture[0]); - } - - public GT_MetaTileEntity_Boiler_Solar(String aName, int aTier, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, aDescription, aTextures); - } - - public ITexture[][][] getTextureSet(ITexture[] aTextures) - { - ITexture[][][] rTextures = new ITexture[4][17][]; - for (byte i = -1; i < 16; i = (byte)(i + 1)) - {ITexture[] tmp0 ={ new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_BOTTOM, Dyes.getModulation(i, Dyes._NULL.mRGBa)) }; - rTextures[0][(i + 1)] = tmp0; - ITexture[] tmp1 ={ new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_TOP, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.BOILER_SOLAR) }; - rTextures[1][(i + 1)] = tmp1; - ITexture[] tmp2 ={ new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)) }; - rTextures[2][(i + 1)] = tmp2; - ITexture[] tmp3 ={ new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE) }; - rTextures[3][(i + 1)] = tmp3; + extends GT_MetaTileEntity_Boiler { + public GT_MetaTileEntity_Boiler_Solar(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional, "Steam Power by the Sun", new ITexture[0]); } - return rTextures; - } - - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) - { - return mTextures[aSide >= 2 ? ((byte)(aSide != aFacing ? 2 : 3)) : aSide][aColorIndex + 1]; - } - - public int maxProgresstime() - { - return 500; - } - - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_Container_Boiler(aPlayerInventory, aBaseMetaTileEntity, 16000); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_Boiler(aPlayerInventory, aBaseMetaTileEntity, "SolarBoiler.png", 16000); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_Boiler_Solar(this.mName, this.mTier, this.mDescription, this.mTextures); - } - - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) - { - if ((aBaseMetaTileEntity.isServerSide()) && (aTick > 20L)) - { - if (this.mTemperature <= 20) - { - this.mTemperature = 20; - this.mLossTimer = 0; - } - if (++this.mLossTimer > 45) - { - this.mTemperature -= 1; - this.mLossTimer = 0; - } - if (this.mSteam != null) - { - byte i = aBaseMetaTileEntity.getFrontFacing(); - IFluidHandler tTileEntity = aBaseMetaTileEntity.getITankContainerAtSide(i); - if (tTileEntity != null) - { - FluidStack tDrained = aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(i), Math.max(1, this.mSteam.amount / 2), false); - if (tDrained != null) - { - int tFilledAmount = tTileEntity.fill(ForgeDirection.getOrientation(i).getOpposite(), tDrained, false); - if (tFilledAmount > 0) { - tTileEntity.fill(ForgeDirection.getOrientation(i).getOpposite(), aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(i), tFilledAmount, true), true); - } - } - } - } - if (aTick % 25L == 0L) { - if (this.mTemperature > 100) - { - if ((this.mFluid == null) || (!GT_ModHandler.isWater(this.mFluid)) || (this.mFluid.amount <= 0)) - { - this.mHadNoWater = true; - } - else - { - if (this.mHadNoWater) - { - aBaseMetaTileEntity.doExplosion(2048L); - return; - } - this.mFluid.amount -= 1; - if (this.mSteam == null) { - this.mSteam = GT_ModHandler.getSteam(150L); - } else if (GT_ModHandler.isSteam(this.mSteam)) { - this.mSteam.amount += 150; - } else { - this.mSteam = GT_ModHandler.getSteam(150L); - } - } - } - else { - this.mHadNoWater = false; - } - } - if ((this.mSteam != null) && - (this.mSteam.amount > 16000)) - { - sendSound((byte)1); - this.mSteam.amount = 12000; - } - if ((this.mProcessingEnergy <= 0) && (aBaseMetaTileEntity.isAllowedToWork()) && (aTick % 256L == 0L) && (!aBaseMetaTileEntity.getWorld().isThundering())) - { - boolean bRain = aBaseMetaTileEntity.getWorld().isRaining() && aBaseMetaTileEntity.getBiome().rainfall > 0.0F; - mProcessingEnergy += bRain && aBaseMetaTileEntity.getWorld().skylightSubtracted >= 4 || !aBaseMetaTileEntity.getSkyAtSide((byte)1) ? 0 : !bRain && aBaseMetaTileEntity.getWorld().isDaytime() ? 8 : 1; - } - if ((this.mTemperature < 500) && (this.mProcessingEnergy > 0) && (aTick % 12L == 0L)) - { - this.mProcessingEnergy -= 1; - this.mTemperature += 1; - } - aBaseMetaTileEntity.setActive(this.mProcessingEnergy > 0); + + public GT_MetaTileEntity_Boiler_Solar(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aDescription, aTextures); + } + + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + ITexture[][][] rTextures = new ITexture[4][17][]; + for (byte i = -1; i < 16; i = (byte) (i + 1)) { + ITexture[] tmp0 = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_BOTTOM, Dyes.getModulation(i, Dyes._NULL.mRGBa))}; + rTextures[0][(i + 1)] = tmp0; + ITexture[] tmp1 = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_TOP, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.BOILER_SOLAR)}; + rTextures[1][(i + 1)] = tmp1; + ITexture[] tmp2 = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa))}; + rTextures[2][(i + 1)] = tmp2; + ITexture[] tmp3 = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE)}; + rTextures[3][(i + 1)] = tmp3; + } + return rTextures; + } + + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + return mTextures[aSide >= 2 ? ((byte) (aSide != aFacing ? 2 : 3)) : aSide][aColorIndex + 1]; + } + + public int maxProgresstime() { + return 500; + } + + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_Container_Boiler(aPlayerInventory, aBaseMetaTileEntity, 16000); + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_Boiler(aPlayerInventory, aBaseMetaTileEntity, "SolarBoiler.png", 16000); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Boiler_Solar(this.mName, this.mTier, this.mDescription, this.mTextures); + } + + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + if ((aBaseMetaTileEntity.isServerSide()) && (aTick > 20L)) { + if (this.mTemperature <= 20) { + this.mTemperature = 20; + this.mLossTimer = 0; + } + if (++this.mLossTimer > 45) { + this.mTemperature -= 1; + this.mLossTimer = 0; + } + if (this.mSteam != null) { + byte i = aBaseMetaTileEntity.getFrontFacing(); + IFluidHandler tTileEntity = aBaseMetaTileEntity.getITankContainerAtSide(i); + if (tTileEntity != null) { + FluidStack tDrained = aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(i), Math.max(1, this.mSteam.amount / 2), false); + if (tDrained != null) { + int tFilledAmount = tTileEntity.fill(ForgeDirection.getOrientation(i).getOpposite(), tDrained, false); + if (tFilledAmount > 0) { + tTileEntity.fill(ForgeDirection.getOrientation(i).getOpposite(), aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(i), tFilledAmount, true), true); + } + } + } + } + if (aTick % 25L == 0L) { + if (this.mTemperature > 100) { + if ((this.mFluid == null) || (!GT_ModHandler.isWater(this.mFluid)) || (this.mFluid.amount <= 0)) { + this.mHadNoWater = true; + } else { + if (this.mHadNoWater) { + aBaseMetaTileEntity.doExplosion(2048L); + return; + } + this.mFluid.amount -= 1; + if (this.mSteam == null) { + this.mSteam = GT_ModHandler.getSteam(150L); + } else if (GT_ModHandler.isSteam(this.mSteam)) { + this.mSteam.amount += 150; + } else { + this.mSteam = GT_ModHandler.getSteam(150L); + } + } + } else { + this.mHadNoWater = false; + } + } + if ((this.mSteam != null) && + (this.mSteam.amount > 16000)) { + sendSound((byte) 1); + this.mSteam.amount = 12000; + } + if ((this.mProcessingEnergy <= 0) && (aBaseMetaTileEntity.isAllowedToWork()) && (aTick % 256L == 0L) && (!aBaseMetaTileEntity.getWorld().isThundering())) { + boolean bRain = aBaseMetaTileEntity.getWorld().isRaining() && aBaseMetaTileEntity.getBiome().rainfall > 0.0F; + mProcessingEnergy += bRain && aBaseMetaTileEntity.getWorld().skylightSubtracted >= 4 || !aBaseMetaTileEntity.getSkyAtSide((byte) 1) ? 0 : !bRain && aBaseMetaTileEntity.getWorld().isDaytime() ? 8 : 1; + } + if ((this.mTemperature < 500) && (this.mProcessingEnergy > 0) && (aTick % 12L == 0L)) { + this.mProcessingEnergy -= 1; + this.mTemperature += 1; + } + aBaseMetaTileEntity.setActive(this.mProcessingEnergy > 0); + } } - } } diff --git a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Steel.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Steel.java index e6e3f918..d46b8767 100644 --- a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Steel.java +++ b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Steel.java @@ -4,7 +4,6 @@ import gregtech.api.enums.Dyes; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; @@ -19,162 +18,132 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidHandler; public class GT_MetaTileEntity_Boiler_Steel - extends GT_MetaTileEntity_Boiler -{ - public GT_MetaTileEntity_Boiler_Steel(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional, "Faster than the Bronze Boiler", new ITexture[0]); - } - - public GT_MetaTileEntity_Boiler_Steel(String aName, int aTier, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, aDescription, aTextures); - } - - public ITexture[][][] getTextureSet(ITexture[] aTextures) - { - ITexture[][][] rTextures = new ITexture[5][17][]; - for (byte i = -1; i < 16; i = (byte)(i + 1)) - {ITexture[] tmp0 ={ new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_BOTTOM, Dyes.getModulation(i, Dyes._NULL.mRGBa)) }; - rTextures[0][(i + 1)] = tmp0; - ITexture[] tmp1 ={ new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_TOP, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE) }; -rTextures[1][(i + 1)] = tmp1; - ITexture[] tmp2 ={ new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE) }; -rTextures[2][(i + 1)] = tmp2; - ITexture[] tmp4 ={ new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.BOILER_FRONT) }; -rTextures[3][(i + 1)] = tmp4; - ITexture[] tmp5 ={ new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.BOILER_FRONT_ACTIVE) }; -rTextures[4][(i + 1)] = tmp5; + extends GT_MetaTileEntity_Boiler { + public GT_MetaTileEntity_Boiler_Steel(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional, "Faster than the Bronze Boiler", new ITexture[0]); } - return rTextures; - } - - public int maxProgresstime() - { - return 1000; - } - - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_Container_Boiler(aPlayerInventory, aBaseMetaTileEntity, 32000); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_Boiler(aPlayerInventory, aBaseMetaTileEntity, "SteelBoiler.png", 32000); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_Boiler_Steel(this.mName, this.mTier, this.mDescription, this.mTextures); - } - - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) - { - if ((aBaseMetaTileEntity.isServerSide()) && (aTick > 20L)) - { - if (this.mTemperature <= 20) - { - this.mTemperature = 20; - this.mLossTimer = 0; - } - if (++this.mLossTimer > 40) - { - this.mTemperature -= 1; - this.mLossTimer = 0; - } - for (byte i = 1; (this.mSteam != null) && (i < 6); i = (byte)(i + 1)) { - if (i != aBaseMetaTileEntity.getFrontFacing()) - { - IFluidHandler tTileEntity = aBaseMetaTileEntity.getITankContainerAtSide(i); - if (tTileEntity != null) - { - FluidStack tDrained = aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(i), Math.max(1, this.mSteam.amount / 2), false); - if (tDrained != null) - { - int tFilledAmount = tTileEntity.fill(ForgeDirection.getOrientation(i).getOpposite(), tDrained, false); - if (tFilledAmount > 0) { - tTileEntity.fill(ForgeDirection.getOrientation(i).getOpposite(), aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(i), tFilledAmount, true), true); - } - } - } - } - } - if (aTick % 10L == 0L) { - if (this.mTemperature > 100) - { - if ((this.mFluid == null) || (!GT_ModHandler.isWater(this.mFluid)) || (this.mFluid.amount <= 0)) - { - this.mHadNoWater = true; - } - else - { - if (this.mHadNoWater) - { - aBaseMetaTileEntity.doExplosion(2048L); - return; - } - this.mFluid.amount -= 1; - if (this.mSteam == null) { - this.mSteam = GT_ModHandler.getSteam(150L); - } else if (GT_ModHandler.isSteam(this.mSteam)) { - this.mSteam.amount += 150; - } else { - this.mSteam = GT_ModHandler.getSteam(150L); - } - } - } - else { - this.mHadNoWater = false; - } - } - if ((this.mSteam != null) && - (this.mSteam.amount > 32000)) - { - sendSound((byte)1); - this.mSteam.amount = 24000; - } - if ((this.mProcessingEnergy <= 0) && (aBaseMetaTileEntity.isAllowedToWork()) && - (this.mInventory[2] != null)) { - if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.gem.get(Materials.Coal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dust.get(Materials.Coal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dustImpure.get(Materials.Coal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.crushed.get(Materials.Coal)))) - { - this.mProcessingEnergy += 160; - aBaseMetaTileEntity.decrStackSize(2, 1); - if (aBaseMetaTileEntity.getRandomNumber(3) == 0) { - aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)); - } - } - else if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.gem.get(Materials.Charcoal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dust.get(Materials.Charcoal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dustImpure.get(Materials.Charcoal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.crushed.get(Materials.Charcoal)))) - { - this.mProcessingEnergy += 160; - aBaseMetaTileEntity.decrStackSize(2, 1); - if (aBaseMetaTileEntity.getRandomNumber(3) == 0) { - aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 1L)); - } - } - else if (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], "fuelCoke")) - { - this.mProcessingEnergy += 640; - aBaseMetaTileEntity.decrStackSize(2, 1); - if (aBaseMetaTileEntity.getRandomNumber(2) == 0) { - aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 1L)); - } - } - else if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.gem.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dust.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dustImpure.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.crushed.get(Materials.Lignite)))) - { - this.mProcessingEnergy += 40; - aBaseMetaTileEntity.decrStackSize(2, 1); - if (aBaseMetaTileEntity.getRandomNumber(8) == 0) { - aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)); - } - } - } - if ((this.mTemperature < 1000) && (this.mProcessingEnergy > 0) && (aTick % 12L == 0L)) - { - this.mProcessingEnergy -= 2; - this.mTemperature += 1; - } - aBaseMetaTileEntity.setActive(this.mProcessingEnergy > 0); + + public GT_MetaTileEntity_Boiler_Steel(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aDescription, aTextures); + } + + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + ITexture[][][] rTextures = new ITexture[5][17][]; + for (byte i = -1; i < 16; i = (byte) (i + 1)) { + ITexture[] tmp0 = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_BOTTOM, Dyes.getModulation(i, Dyes._NULL.mRGBa))}; + rTextures[0][(i + 1)] = tmp0; + ITexture[] tmp1 = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_TOP, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE)}; + rTextures[1][(i + 1)] = tmp1; + ITexture[] tmp2 = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE)}; + rTextures[2][(i + 1)] = tmp2; + ITexture[] tmp4 = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.BOILER_FRONT)}; + rTextures[3][(i + 1)] = tmp4; + ITexture[] tmp5 = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.BOILER_FRONT_ACTIVE)}; + rTextures[4][(i + 1)] = tmp5; + } + return rTextures; + } + + public int maxProgresstime() { + return 1000; + } + + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_Container_Boiler(aPlayerInventory, aBaseMetaTileEntity, 32000); + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_Boiler(aPlayerInventory, aBaseMetaTileEntity, "SteelBoiler.png", 32000); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Boiler_Steel(this.mName, this.mTier, this.mDescription, this.mTextures); + } + + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + if ((aBaseMetaTileEntity.isServerSide()) && (aTick > 20L)) { + if (this.mTemperature <= 20) { + this.mTemperature = 20; + this.mLossTimer = 0; + } + if (++this.mLossTimer > 40) { + this.mTemperature -= 1; + this.mLossTimer = 0; + } + for (byte i = 1; (this.mSteam != null) && (i < 6); i = (byte) (i + 1)) { + if (i != aBaseMetaTileEntity.getFrontFacing()) { + IFluidHandler tTileEntity = aBaseMetaTileEntity.getITankContainerAtSide(i); + if (tTileEntity != null) { + FluidStack tDrained = aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(i), Math.max(1, this.mSteam.amount / 2), false); + if (tDrained != null) { + int tFilledAmount = tTileEntity.fill(ForgeDirection.getOrientation(i).getOpposite(), tDrained, false); + if (tFilledAmount > 0) { + tTileEntity.fill(ForgeDirection.getOrientation(i).getOpposite(), aBaseMetaTileEntity.drain(ForgeDirection.getOrientation(i), tFilledAmount, true), true); + } + } + } + } + } + if (aTick % 10L == 0L) { + if (this.mTemperature > 100) { + if ((this.mFluid == null) || (!GT_ModHandler.isWater(this.mFluid)) || (this.mFluid.amount <= 0)) { + this.mHadNoWater = true; + } else { + if (this.mHadNoWater) { + aBaseMetaTileEntity.doExplosion(2048L); + return; + } + this.mFluid.amount -= 1; + if (this.mSteam == null) { + this.mSteam = GT_ModHandler.getSteam(150L); + } else if (GT_ModHandler.isSteam(this.mSteam)) { + this.mSteam.amount += 150; + } else { + this.mSteam = GT_ModHandler.getSteam(150L); + } + } + } else { + this.mHadNoWater = false; + } + } + if ((this.mSteam != null) && + (this.mSteam.amount > 32000)) { + sendSound((byte) 1); + this.mSteam.amount = 24000; + } + if ((this.mProcessingEnergy <= 0) && (aBaseMetaTileEntity.isAllowedToWork()) && + (this.mInventory[2] != null)) { + if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.gem.get(Materials.Coal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dust.get(Materials.Coal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dustImpure.get(Materials.Coal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.crushed.get(Materials.Coal)))) { + this.mProcessingEnergy += 160; + aBaseMetaTileEntity.decrStackSize(2, 1); + if (aBaseMetaTileEntity.getRandomNumber(3) == 0) { + aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)); + } + } else if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.gem.get(Materials.Charcoal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dust.get(Materials.Charcoal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dustImpure.get(Materials.Charcoal))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.crushed.get(Materials.Charcoal)))) { + this.mProcessingEnergy += 160; + aBaseMetaTileEntity.decrStackSize(2, 1); + if (aBaseMetaTileEntity.getRandomNumber(3) == 0) { + aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 1L)); + } + } else if (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], "fuelCoke")) { + this.mProcessingEnergy += 640; + aBaseMetaTileEntity.decrStackSize(2, 1); + if (aBaseMetaTileEntity.getRandomNumber(2) == 0) { + aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 1L)); + } + } else if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.gem.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dust.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dustImpure.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.crushed.get(Materials.Lignite)))) { + this.mProcessingEnergy += 40; + aBaseMetaTileEntity.decrStackSize(2, 1); + if (aBaseMetaTileEntity.getRandomNumber(8) == 0) { + aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)); + } + } + } + if ((this.mTemperature < 1000) && (this.mProcessingEnergy > 0) && (aTick % 12L == 0L)) { + this.mProcessingEnergy -= 2; + this.mTemperature += 1; + } + aBaseMetaTileEntity.setActive(this.mProcessingEnergy > 0); + } } - } } diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java index 4ed569dc..eaa17b62 100644 --- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java +++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java @@ -5,122 +5,99 @@ import gregtech.api.GregTech_API; import gregtech.api.enums.ConfigCategories; import gregtech.api.enums.ItemList; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.implementations.*; -import gregtech.api.objects.GT_ArrayList; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicGenerator; import gregtech.api.objects.GT_RenderedTexture; -import gregtech.api.util.GT_Config; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import net.minecraft.item.ItemStack; public class GT_MetaTileEntity_DieselGenerator - extends GT_MetaTileEntity_BasicGenerator -{ - - public int mEfficiency; - public boolean isOutputFacing(byte aSide) - { - return aSide == getBaseMetaTileEntity().getFrontFacing(); - } - - public GT_MetaTileEntity_DieselGenerator(int aID, String aName, String aNameRegional, int aTier) - { - super(aID, aName, aNameRegional, aTier, "Requires liquid Fuel", new ITexture[0]); - onConfigLoad(); - } - - public GT_MetaTileEntity_DieselGenerator(String aName, int aTier, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, aDescription, aTextures); - onConfigLoad(); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_DieselGenerator(this.mName, this.mTier, this.mDescription, this.mTextures); - } - - public GT_Recipe.GT_Recipe_Map getRecipes() - { - return GT_Recipe.GT_Recipe_Map.sDieselFuels; - } - - public int getCapacity() - { - return 16000; - } + extends GT_MetaTileEntity_BasicGenerator { - public void onConfigLoad() - { - this.mEfficiency =GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "DieselGenerator.efficiency.tier."+this.mTier, (100 - this.mTier * 10)); -} + public int mEfficiency; - public int getEfficiency() - { - return this.mEfficiency; - } - - public int getFuelValue(ItemStack aStack) - { - int rValue = Math.max(GT_ModHandler.getFuelCanValue(aStack) * 6 / 5, super.getFuelValue(aStack)); - if (ItemList.Fuel_Can_Plastic_Filled.isStackEqual(aStack, false, true)) { - rValue = Math.max(rValue, GameRegistry.getFuelValue(aStack) * 3); + public GT_MetaTileEntity_DieselGenerator(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, "Requires liquid Fuel", new ITexture[0]); + onConfigLoad(); + } + + public GT_MetaTileEntity_DieselGenerator(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aDescription, aTextures); + onConfigLoad(); + } + + public boolean isOutputFacing(byte aSide) { + return aSide == getBaseMetaTileEntity().getFrontFacing(); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_DieselGenerator(this.mName, this.mTier, this.mDescription, this.mTextures); + } + + public GT_Recipe.GT_Recipe_Map getRecipes() { + return GT_Recipe.GT_Recipe_Map.sDieselFuels; + } + + public int getCapacity() { + return 16000; + } + + public void onConfigLoad() { + this.mEfficiency = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "DieselGenerator.efficiency.tier." + this.mTier, (100 - this.mTier * 10)); + } + + public int getEfficiency() { + return this.mEfficiency; + } + + public int getFuelValue(ItemStack aStack) { + int rValue = Math.max(GT_ModHandler.getFuelCanValue(aStack) * 6 / 5, super.getFuelValue(aStack)); + if (ItemList.Fuel_Can_Plastic_Filled.isStackEqual(aStack, false, true)) { + rValue = Math.max(rValue, GameRegistry.getFuelValue(aStack) * 3); + } + return rValue; + } + + public ITexture[] getFront(byte aColor) { + return new ITexture[]{super.getFront(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_FRONT), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier]}; + } + + public ITexture[] getBack(byte aColor) { + return new ITexture[]{super.getBack(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_BACK)}; + } + + public ITexture[] getBottom(byte aColor) { + return new ITexture[]{super.getBottom(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_BOTTOM)}; + } + + public ITexture[] getTop(byte aColor) { + return new ITexture[]{super.getTop(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_TOP)}; + } + + public ITexture[] getSides(byte aColor) { + return new ITexture[]{super.getSides(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_SIDE)}; + } + + public ITexture[] getFrontActive(byte aColor) { + return new ITexture[]{super.getFrontActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_FRONT_ACTIVE), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier]}; + } + + public ITexture[] getBackActive(byte aColor) { + return new ITexture[]{super.getBackActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_BACK_ACTIVE)}; + } + + public ITexture[] getBottomActive(byte aColor) { + return new ITexture[]{super.getBottomActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_BOTTOM_ACTIVE)}; + } + + public ITexture[] getTopActive(byte aColor) { + return new ITexture[]{super.getTopActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_TOP_ACTIVE)}; + } + + public ITexture[] getSidesActive(byte aColor) { + return new ITexture[]{super.getSidesActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_SIDE_ACTIVE)}; } - return rValue; - } - - public ITexture[] getFront(byte aColor) - { - return new ITexture[] { super.getFront(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_FRONT), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier] }; - } - - public ITexture[] getBack(byte aColor) - { - return new ITexture[] { super.getBack(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_BACK) }; - } - - public ITexture[] getBottom(byte aColor) - { - return new ITexture[] { super.getBottom(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_BOTTOM) }; - } - - public ITexture[] getTop(byte aColor) - { - return new ITexture[] { super.getTop(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_TOP) }; - } - - public ITexture[] getSides(byte aColor) - { - return new ITexture[] { super.getSides(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_SIDE) }; - } - - public ITexture[] getFrontActive(byte aColor) - { - return new ITexture[] { super.getFrontActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_FRONT_ACTIVE), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier] }; - } - - public ITexture[] getBackActive(byte aColor) - { - return new ITexture[] { super.getBackActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_BACK_ACTIVE) }; - } - - public ITexture[] getBottomActive(byte aColor) - { - return new ITexture[] { super.getBottomActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_BOTTOM_ACTIVE) }; - } - - public ITexture[] getTopActive(byte aColor) - { - return new ITexture[] { super.getTopActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_TOP_ACTIVE) }; - } - - public ITexture[] getSidesActive(byte aColor) - { - return new ITexture[] { super.getSidesActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.DIESEL_GENERATOR_SIDE_ACTIVE) }; - } } diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_FluidNaquadahReactor.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_FluidNaquadahReactor.java index fef02461..928c7261 100644 --- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_FluidNaquadahReactor.java +++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_FluidNaquadahReactor.java @@ -3,106 +3,88 @@ package gregtech.common.tileentities.generators; import gregtech.api.GregTech_API; import gregtech.api.enums.ConfigCategories; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicGenerator; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; public class GT_MetaTileEntity_FluidNaquadahReactor - extends GT_MetaTileEntity_BasicGenerator -{ - public int mEfficiency; - public boolean isOutputFacing(byte aSide) - { - return (aSide > 1) && (aSide != getBaseMetaTileEntity().getFrontFacing()) && (aSide != getBaseMetaTileEntity().getBackFacing()); - } - - public GT_MetaTileEntity_FluidNaquadahReactor(int aID, String aName, String aNameRegional, int aTier) - { - super(aID, aName, aNameRegional, aTier, "Requires Enriched Naquadah Cells", new ITexture[0]);onConfigLoad(); - } - - public GT_MetaTileEntity_FluidNaquadahReactor(String aName, int aTier, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, aDescription, aTextures);onConfigLoad(); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_FluidNaquadahReactor(this.mName, this.mTier, this.mDescription, this.mTextures); - } - - public GT_Recipe.GT_Recipe_Map getRecipes() - { - return GT_Recipe.GT_Recipe_Map.sFluidNaquadahReactorFuels; - } - - public int getCapacity() - { - return 16000; - } - - public int getEfficiency() - { - return mEfficiency; - } - - public void onConfigLoad() - { - this.mEfficiency =GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "FluidNaquadah.efficiency.tier."+this.mTier, 100); -} - - public ITexture[] getFront(byte aColor) - { - return new ITexture[] { super.getFront(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_FLUID_FRONT) }; - } - - public ITexture[] getBack(byte aColor) - { - return new ITexture[] { super.getBack(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_FLUID_BACK) }; - } - - public ITexture[] getBottom(byte aColor) - { - return new ITexture[] { super.getBottom(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_FLUID_BOTTOM) }; - } - - public ITexture[] getTop(byte aColor) - { - return new ITexture[] { super.getTop(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_FLUID_TOP) }; - } - - public ITexture[] getSides(byte aColor) - { - return new ITexture[] { super.getSides(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_FLUID_SIDE) }; - } - - public ITexture[] getFrontActive(byte aColor) - { - return new ITexture[] { super.getFrontActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_FLUID_FRONT_ACTIVE) }; - } - - public ITexture[] getBackActive(byte aColor) - { - return new ITexture[] { super.getBackActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_FLUID_BACK_ACTIVE) }; - } - - public ITexture[] getBottomActive(byte aColor) - { - return new ITexture[] { super.getBottomActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_FLUID_BOTTOM_ACTIVE) }; - } - - public ITexture[] getTopActive(byte aColor) - { - return new ITexture[] { super.getTopActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_FLUID_TOP_ACTIVE) }; - } - - public ITexture[] getSidesActive(byte aColor) - { - return new ITexture[] { super.getSidesActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_FLUID_SIDE_ACTIVE) }; - } + extends GT_MetaTileEntity_BasicGenerator { + public int mEfficiency; + + public GT_MetaTileEntity_FluidNaquadahReactor(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, "Requires Enriched Naquadah Cells", new ITexture[0]); + onConfigLoad(); + } + + public GT_MetaTileEntity_FluidNaquadahReactor(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aDescription, aTextures); + onConfigLoad(); + } + + public boolean isOutputFacing(byte aSide) { + return (aSide > 1) && (aSide != getBaseMetaTileEntity().getFrontFacing()) && (aSide != getBaseMetaTileEntity().getBackFacing()); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_FluidNaquadahReactor(this.mName, this.mTier, this.mDescription, this.mTextures); + } + + public GT_Recipe.GT_Recipe_Map getRecipes() { + return GT_Recipe.GT_Recipe_Map.sFluidNaquadahReactorFuels; + } + + public int getCapacity() { + return 16000; + } + + public int getEfficiency() { + return mEfficiency; + } + + public void onConfigLoad() { + this.mEfficiency = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "FluidNaquadah.efficiency.tier." + this.mTier, 100); + } + + public ITexture[] getFront(byte aColor) { + return new ITexture[]{super.getFront(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_FLUID_FRONT)}; + } + + public ITexture[] getBack(byte aColor) { + return new ITexture[]{super.getBack(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_FLUID_BACK)}; + } + + public ITexture[] getBottom(byte aColor) { + return new ITexture[]{super.getBottom(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_FLUID_BOTTOM)}; + } + + public ITexture[] getTop(byte aColor) { + return new ITexture[]{super.getTop(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_FLUID_TOP)}; + } + + public ITexture[] getSides(byte aColor) { + return new ITexture[]{super.getSides(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_FLUID_SIDE)}; + } + + public ITexture[] getFrontActive(byte aColor) { + return new ITexture[]{super.getFrontActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_FLUID_FRONT_ACTIVE)}; + } + + public ITexture[] getBackActive(byte aColor) { + return new ITexture[]{super.getBackActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_FLUID_BACK_ACTIVE)}; + } + + public ITexture[] getBottomActive(byte aColor) { + return new ITexture[]{super.getBottomActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_FLUID_BOTTOM_ACTIVE)}; + } + + public ITexture[] getTopActive(byte aColor) { + return new ITexture[]{super.getTopActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_FLUID_TOP_ACTIVE)}; + } + + public ITexture[] getSidesActive(byte aColor) { + return new ITexture[]{super.getSidesActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_FLUID_SIDE_ACTIVE)}; + } } diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java index 488771a6..0f6db156 100644 --- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java +++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java @@ -3,110 +3,90 @@ package gregtech.common.tileentities.generators; import gregtech.api.GregTech_API; import gregtech.api.enums.ConfigCategories; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicGenerator; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; public class GT_MetaTileEntity_GasTurbine - extends GT_MetaTileEntity_BasicGenerator -{ + extends GT_MetaTileEntity_BasicGenerator { - public int mEfficiency; - public boolean isOutputFacing(byte aSide) - { - return aSide == getBaseMetaTileEntity().getFrontFacing(); - } - - public GT_MetaTileEntity_GasTurbine(int aID, String aName, String aNameRegional, int aTier) - { - super(aID, aName, aNameRegional, aTier, "Requires flammable Gasses", new ITexture[0]); -onConfigLoad(); - } - - public GT_MetaTileEntity_GasTurbine(String aName, int aTier, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, aDescription, aTextures); -onConfigLoad(); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_GasTurbine(this.mName, this.mTier, this.mDescription, this.mTextures); - } - - public GT_Recipe.GT_Recipe_Map getRecipes() - { - return GT_Recipe.GT_Recipe_Map.sTurbineFuels; - } - - public int getCapacity() - { - return 16000; - } + public int mEfficiency; -public void onConfigLoad() - { - this.mEfficiency =GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "GasTurbine.efficiency.tier."+this.mTier, (100 - this.mTier * 10)); -} - - - public int getEfficiency() - { - return this.mEfficiency; - } - - public ITexture[] getFront(byte aColor) - { - return new ITexture[] { super.getFront(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.GAS_TURBINE_FRONT), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier] }; - } - - public ITexture[] getBack(byte aColor) - { - return new ITexture[] { super.getBack(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.GAS_TURBINE_BACK) }; - } - - public ITexture[] getBottom(byte aColor) - { - return new ITexture[] { super.getBottom(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.GAS_TURBINE_BOTTOM) }; - } - - public ITexture[] getTop(byte aColor) - { - return new ITexture[] { super.getTop(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.GAS_TURBINE_TOP) }; - } - - public ITexture[] getSides(byte aColor) - { - return new ITexture[] { super.getSides(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.GAS_TURBINE_SIDE) }; - } - - public ITexture[] getFrontActive(byte aColor) - { - return new ITexture[] { super.getFrontActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.GAS_TURBINE_FRONT_ACTIVE), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier] }; - } - - public ITexture[] getBackActive(byte aColor) - { - return new ITexture[] { super.getBackActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.GAS_TURBINE_BACK_ACTIVE) }; - } - - public ITexture[] getBottomActive(byte aColor) - { - return new ITexture[] { super.getBottomActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.GAS_TURBINE_BOTTOM_ACTIVE) }; - } - - public ITexture[] getTopActive(byte aColor) - { - return new ITexture[] { super.getTopActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.GAS_TURBINE_TOP_ACTIVE) }; - } - - public ITexture[] getSidesActive(byte aColor) - { - return new ITexture[] { super.getSidesActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.GAS_TURBINE_SIDE_ACTIVE) }; - } + public GT_MetaTileEntity_GasTurbine(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, "Requires flammable Gasses", new ITexture[0]); + onConfigLoad(); + } + + public GT_MetaTileEntity_GasTurbine(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aDescription, aTextures); + onConfigLoad(); + } + + public boolean isOutputFacing(byte aSide) { + return aSide == getBaseMetaTileEntity().getFrontFacing(); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_GasTurbine(this.mName, this.mTier, this.mDescription, this.mTextures); + } + + public GT_Recipe.GT_Recipe_Map getRecipes() { + return GT_Recipe.GT_Recipe_Map.sTurbineFuels; + } + + public int getCapacity() { + return 16000; + } + + public void onConfigLoad() { + this.mEfficiency = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "GasTurbine.efficiency.tier." + this.mTier, (100 - this.mTier * 10)); + } + + + public int getEfficiency() { + return this.mEfficiency; + } + + public ITexture[] getFront(byte aColor) { + return new ITexture[]{super.getFront(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.GAS_TURBINE_FRONT), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier]}; + } + + public ITexture[] getBack(byte aColor) { + return new ITexture[]{super.getBack(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.GAS_TURBINE_BACK)}; + } + + public ITexture[] getBottom(byte aColor) { + return new ITexture[]{super.getBottom(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.GAS_TURBINE_BOTTOM)}; + } + + public ITexture[] getTop(byte aColor) { + return new ITexture[]{super.getTop(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.GAS_TURBINE_TOP)}; + } + + public ITexture[] getSides(byte aColor) { + return new ITexture[]{super.getSides(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.GAS_TURBINE_SIDE)}; + } + + public ITexture[] getFrontActive(byte aColor) { + return new ITexture[]{super.getFrontActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.GAS_TURBINE_FRONT_ACTIVE), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier]}; + } + + public ITexture[] getBackActive(byte aColor) { + return new ITexture[]{super.getBackActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.GAS_TURBINE_BACK_ACTIVE)}; + } + + public ITexture[] getBottomActive(byte aColor) { + return new ITexture[]{super.getBottomActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.GAS_TURBINE_BOTTOM_ACTIVE)}; + } + + public ITexture[] getTopActive(byte aColor) { + return new ITexture[]{super.getTopActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.GAS_TURBINE_TOP_ACTIVE)}; + } + + public ITexture[] getSidesActive(byte aColor) { + return new ITexture[]{super.getSidesActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.GAS_TURBINE_SIDE_ACTIVE)}; + } } diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java index 06935e61..602c7fc8 100644 --- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java +++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java @@ -3,110 +3,90 @@ package gregtech.common.tileentities.generators; import gregtech.api.GregTech_API; import gregtech.api.enums.ConfigCategories; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicGenerator; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; public class GT_MetaTileEntity_MagicEnergyConverter - extends GT_MetaTileEntity_BasicGenerator -{ + extends GT_MetaTileEntity_BasicGenerator { - public int mEfficiency; - public boolean isOutputFacing(byte aSide) - { - return aSide == getBaseMetaTileEntity().getFrontFacing(); - } - - public GT_MetaTileEntity_MagicEnergyConverter(int aID, String aName, String aNameRegional, int aTier) - { - super(aID, aName, aNameRegional, aTier, "Put your strange stuff in here", new ITexture[0]); -onConfigLoad(); - } - - public GT_MetaTileEntity_MagicEnergyConverter(String aName, int aTier, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, aDescription, aTextures); -onConfigLoad(); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_MagicEnergyConverter(this.mName, this.mTier, this.mDescription, this.mTextures); - } - - public GT_Recipe.GT_Recipe_Map getRecipes() - { - return GT_Recipe.GT_Recipe_Map.sMagicFuels; - } - - public int getCapacity() - { - return 16000; - } + public int mEfficiency; -public void onConfigLoad() - { - this.mEfficiency =GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyConverter.efficiency.tier."+this.mTier, 100-this.mTier*10); -} + public GT_MetaTileEntity_MagicEnergyConverter(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, "Put your strange stuff in here", new ITexture[0]); + onConfigLoad(); + } - - public int getEfficiency() - { - return this.mEfficiency; - } - - public ITexture[] getFront(byte aColor) - { - return new ITexture[] { super.getFront(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier] }; - } - - public ITexture[] getBack(byte aColor) - { - return new ITexture[] { super.getBack(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_FRONT) }; - } - - public ITexture[] getBottom(byte aColor) - { - return new ITexture[] { super.getBottom(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC) }; - } - - public ITexture[] getTop(byte aColor) - { - return new ITexture[] { super.getTop(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC) }; - } - - public ITexture[] getSides(byte aColor) - { - return new ITexture[] { super.getSides(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC) }; - } - - public ITexture[] getFrontActive(byte aColor) - { - return new ITexture[] { super.getFrontActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_ACTIVE), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier] }; - } - - public ITexture[] getBackActive(byte aColor) - { - return new ITexture[] { super.getBackActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_FRONT_ACTIVE) }; - } - - public ITexture[] getBottomActive(byte aColor) - { - return new ITexture[] { super.getBottomActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_ACTIVE) }; - } - - public ITexture[] getTopActive(byte aColor) - { - return new ITexture[] { super.getTopActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_ACTIVE) }; - } - - public ITexture[] getSidesActive(byte aColor) - { - return new ITexture[] { super.getSidesActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_ACTIVE) }; - } + public GT_MetaTileEntity_MagicEnergyConverter(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aDescription, aTextures); + onConfigLoad(); + } + + public boolean isOutputFacing(byte aSide) { + return aSide == getBaseMetaTileEntity().getFrontFacing(); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_MagicEnergyConverter(this.mName, this.mTier, this.mDescription, this.mTextures); + } + + public GT_Recipe.GT_Recipe_Map getRecipes() { + return GT_Recipe.GT_Recipe_Map.sMagicFuels; + } + + public int getCapacity() { + return 16000; + } + + public void onConfigLoad() { + this.mEfficiency = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyConverter.efficiency.tier." + this.mTier, 100 - this.mTier * 10); + } + + + public int getEfficiency() { + return this.mEfficiency; + } + + public ITexture[] getFront(byte aColor) { + return new ITexture[]{super.getFront(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier]}; + } + + public ITexture[] getBack(byte aColor) { + return new ITexture[]{super.getBack(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_FRONT)}; + } + + public ITexture[] getBottom(byte aColor) { + return new ITexture[]{super.getBottom(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC)}; + } + + public ITexture[] getTop(byte aColor) { + return new ITexture[]{super.getTop(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC)}; + } + + public ITexture[] getSides(byte aColor) { + return new ITexture[]{super.getSides(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC)}; + } + + public ITexture[] getFrontActive(byte aColor) { + return new ITexture[]{super.getFrontActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_ACTIVE), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier]}; + } + + public ITexture[] getBackActive(byte aColor) { + return new ITexture[]{super.getBackActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_FRONT_ACTIVE)}; + } + + public ITexture[] getBottomActive(byte aColor) { + return new ITexture[]{super.getBottomActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_ACTIVE)}; + } + + public ITexture[] getTopActive(byte aColor) { + return new ITexture[]{super.getTopActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_ACTIVE)}; + } + + public ITexture[] getSidesActive(byte aColor) { + return new ITexture[]{super.getSidesActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_ACTIVE)}; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java index 18add453..f638beba 100644 --- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java +++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java @@ -1,304 +1,270 @@ package gregtech.common.tileentities.generators; -import static gregtech.api.enums.GT_Values.V; - -import java.util.ArrayList; - -import thaumcraft.api.aspects.Aspect; -import thaumcraft.api.aspects.AspectList; -import thaumcraft.api.aspects.IEssentiaContainerItem; -import thaumcraft.api.visnet.VisNetHandler; import cpw.mods.fml.common.Loader; -import net.minecraft.block.Block; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.entity.item.EntityEnderCrystal; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemEnchantedBook; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; import gregtech.api.GregTech_API; import gregtech.api.enums.ConfigCategories; import gregtech.api.enums.TC_Aspects; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicGenerator; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; +import net.minecraft.block.Block; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.entity.item.EntityEnderCrystal; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemEnchantedBook; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.AspectList; +import thaumcraft.api.aspects.IEssentiaContainerItem; +import thaumcraft.api.visnet.VisNetHandler; -public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_BasicGenerator -{ +import java.util.ArrayList; - public int mEfficiency; - public static boolean sAllowMultipleEggs = true; - public static GT_MetaTileEntity_MagicalEnergyAbsorber mActiveSiphon = null; - public static int sEnergyPerEnderCrystal = 32; - public static int sEnergyFromVis = 12800; - public static final ArrayList sUsedDragonCrystalList = new ArrayList(); - public EntityEnderCrystal mTargetedCrystal; - public static int sDragonEggEnergyPerTick = 128; - public static boolean isThaumcraftLoaded; - - public boolean isOutputFacing(byte aSide) - { - return aSide == getBaseMetaTileEntity().getFrontFacing(); - } - - public GT_MetaTileEntity_MagicalEnergyAbsorber(int aID, String aName, String aNameRegional, int aTier) - { - super(aID, aName, aNameRegional, aTier, "Feasts on magic close to it", new ITexture[0]); - onConfigLoad(); - } - - public GT_MetaTileEntity_MagicalEnergyAbsorber(String aName, int aTier, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, aDescription, aTextures); - onConfigLoad(); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_MagicalEnergyAbsorber(this.mName, this.mTier, this.mDescription, this.mTextures); - } - - public GT_Recipe.GT_Recipe_Map getRecipes() - { - return GT_Recipe.GT_Recipe_Map.sMagicFuels; - } - - public int getCapacity() - { - return 16000; - } +import static gregtech.api.enums.GT_Values.V; - public void onConfigLoad() - { - this.mEfficiency =GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyAbsorber.efficiency.tier."+this.mTier, 100-this.mTier*10); - this.sAllowMultipleEggs = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyAbsorber.AllowMultipleEggs", false); - this.sEnergyPerEnderCrystal = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyAbsorber.EnergyPerTick.EnderCrystal", 32); - this.sEnergyFromVis = (GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyAbsorber.EnergyPerVisDivisor", 2500)*10); - this.sDragonEggEnergyPerTick = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyAbsorber.EnergyPerTick", 2048); - this.isThaumcraftLoaded = Loader.isModLoaded("Thaumcraft"); - } - - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.isAllowedToWork() && aBaseMetaTileEntity.getUniversalEnergyStored() < maxEUOutput() + aBaseMetaTileEntity.getEUCapacity()) { - //Dragon Egg - if(hasEgg()&&aTick%10==0){ - getBaseMetaTileEntity().increaseStoredEnergyUnits(sDragonEggEnergyPerTick*getEfficiency()*10, false); - if ((mActiveSiphon != this) && (!sAllowMultipleEggs)) { - if ((mActiveSiphon == null) || (mActiveSiphon.getBaseMetaTileEntity() == null) || (mActiveSiphon.getBaseMetaTileEntity().isInvalidTileEntity()) || (!mActiveSiphon.hasEgg())) { - mActiveSiphon = this; - } else { - Block tEgg = mActiveSiphon.getBaseMetaTileEntity().getBlockOffset(0, 1, 0); - if(!getBaseMetaTileEntity().getWorld().getChunkFromBlockCoords(mActiveSiphon.getBaseMetaTileEntity().getXCoord(), mActiveSiphon.getBaseMetaTileEntity().getZCoord()).isChunkLoaded&&(tEgg==Blocks.dragon_egg||tEgg.getUnlocalizedName().equals("tile.dragonEgg"))) - {getBaseMetaTileEntity().doExplosion(Integer.MAX_VALUE);}else{ - mActiveSiphon=this; - } - - } - } - } - //Energyzed node - if(isThaumcraftLoaded){ - try{ - World tmpWorld = this.getBaseMetaTileEntity().getWorld(); - int tmpX = this.getBaseMetaTileEntity().getXCoord(); - int tmpY = this.getBaseMetaTileEntity().getYCoord(); - int tmpZ = this.getBaseMetaTileEntity().getZCoord(); - int fire = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.FIRE, 1000); - int earth = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.EARTH, 1000); - int air = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.AIR, 1000); - int destruction = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.ENTROPY, 1000); - int order = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.ORDER, 1000); - int water = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.WATER, 1000); - int visEU = (int) (Math.pow(fire, 4)+Math.pow(earth, 4)+Math.pow(air, 4)+Math.pow(destruction, 4)+Math.pow(order, 4)+Math.pow(water, 4)); - int mult = 85; - if(fire>4)mult+=15; - if(earth>4)mult+=15; - if(air>4)mult+=15; - if(destruction>4)mult+=15; - if(order>4)mult+=15; - if(water>4)mult+=15; - visEU = (visEU*mult) / 100; - getBaseMetaTileEntity().increaseStoredEnergyUnits(Math.min(maxEUOutput(), visEU*getEfficiency()/this.sEnergyFromVis), false); - }catch (Throwable e){} - } - //EnderCrystal - - if (sEnergyPerEnderCrystal > 0) { - if (this.mTargetedCrystal == null) - { - ArrayList tList = (ArrayList)getBaseMetaTileEntity().getWorld().getEntitiesWithinAABB(EntityEnderCrystal.class, AxisAlignedBB.getBoundingBox(getBaseMetaTileEntity().getXCoord() - 64, getBaseMetaTileEntity().getYCoord() - 64, getBaseMetaTileEntity().getZCoord() - 64, getBaseMetaTileEntity().getXCoord() + 64, getBaseMetaTileEntity().getYCoord() + 64, getBaseMetaTileEntity().getZCoord() + 64)); - if ((tList != null) && (!tList.isEmpty())) - { - tList.removeAll(sUsedDragonCrystalList); - if (tList.size() > 0) - { - this.mTargetedCrystal = ((EntityEnderCrystal)tList.get(0)); - if (this.mTargetedCrystal != null) { - sUsedDragonCrystalList.add(this.mTargetedCrystal); - } - } - } - } - else if (this.mTargetedCrystal.isEntityAlive()) - { - getBaseMetaTileEntity().increaseStoredEnergyUnits(sEnergyPerEnderCrystal * 10, false); - } - else - { - sUsedDragonCrystalList.remove(this.mTargetedCrystal); - this.mTargetedCrystal = null; - } - } - - //Absorb entchantments - try - { - if ((this.mInventory[0] != null) && (this.mInventory[1] == null)) - { - if(isThaumcraftLoaded && this.mInventory[0].getItem() instanceof IEssentiaContainerItem){ - AspectList tAspect = ((IEssentiaContainerItem)this.mInventory[0].getItem()).getAspects(this.mInventory[0]); - TC_Aspects tValue = TC_Aspects.valueOf(tAspect.getAspects()[0].getTag().toUpperCase()); - int tEU = (tValue.mValue*tAspect.getAmount((Aspect) tValue.mAspect)*100); - getBaseMetaTileEntity().increaseStoredEnergyUnits(tEU, true); - ItemStack tStack = this.mInventory[0].copy(); - tStack.setTagCompound(null); - tStack.setItemDamage(0); - tStack.stackSize=1; - this.mInventory[1]=tStack; - this.mInventory[0].stackSize--; - if(this.mInventory[0].stackSize<1){this.mInventory[0]=null;} - - }else{ - if ((this.mInventory[0].isItemEnchanted()) && (this.mInventory[0].getItem().getItemEnchantability() > 0)) - { - NBTTagList tEnchantments = this.mInventory[0].getEnchantmentTagList(); - if (tEnchantments != null) - { - for (int i = 0; i < tEnchantments.tagCount(); i++) - { - short tID = ((NBTTagCompound)tEnchantments.getCompoundTagAt(i)).getShort("id"); - short tLevel = ((NBTTagCompound)tEnchantments.getCompoundTagAt(i)).getShort("lvl"); - if ((tID > -1) && (tID < Enchantment.enchantmentsList.length)) - { - Enchantment tEnchantment = Enchantment.enchantmentsList[tID]; - if (tEnchantment != null) { - getBaseMetaTileEntity().increaseStoredEnergyUnits(1000000 * tLevel / (tEnchantment.getMaxLevel() * tEnchantment.getWeight()), true); - } - } - } - this.mInventory[0].stackTagCompound.removeTag("ench"); - } - } - else if ((this.mInventory[0].getItem() instanceof ItemEnchantedBook)) - { - NBTTagList tEnchantments = ((ItemEnchantedBook)this.mInventory[0].getItem()).func_92110_g(this.mInventory[0]); - if (tEnchantments != null) - { - for (int i = 0; i < tEnchantments.tagCount(); i++) - { - short tID = ((NBTTagCompound)tEnchantments.getCompoundTagAt(i)).getShort("id"); - short tLevel = ((NBTTagCompound)tEnchantments.getCompoundTagAt(i)).getShort("lvl"); - if ((tID > -1) && (tID < Enchantment.enchantmentsBookList.length)) - { - Enchantment tEnchantment = Enchantment.enchantmentsBookList[tID]; - if (tEnchantment != null) { - getBaseMetaTileEntity().increaseStoredEnergyUnits(1000000 * tLevel / (tEnchantment.getMaxLevel() * tEnchantment.getWeight()), true); - } - } - } - this.mInventory[0] = new ItemStack(Items.book, 1); - } - } - this.mInventory[1] = this.mInventory[0]; - this.mInventory[0] = null; - } - }} - catch (Throwable e){} - } - } - - public void inValidate() - { - if (mActiveSiphon == this) { - mActiveSiphon = null; - } - } - - public boolean hasEgg() - { - Block above = getBaseMetaTileEntity().getBlockOffset(0, 1, 0); - if(above==null||Blocks.air==above){return false;} - return Blocks.dragon_egg == above || above.getUnlocalizedName().equals("tile.dragonEgg"); - } - - @Override public long maxEUStore(){return Math.max(getEUVar(), V[mTier] * 16000 + getMinimumStoredEU());} - - public int getEfficiency() - { - return this.mEfficiency; - } - - public ITexture[] getFront(byte aColor) - { - return new ITexture[] { super.getFront(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier] }; - } - - public ITexture[] getBack(byte aColor) - { - return new ITexture[] { super.getBack(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_FRONT) }; - } - - public ITexture[] getBottom(byte aColor) - { - return new ITexture[] { super.getBottom(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC) }; - } - - public ITexture[] getTop(byte aColor) - { - return new ITexture[] { super.getTop(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_DRAGONEGG) }; - } - - public ITexture[] getSides(byte aColor) - { - return new ITexture[] { super.getSides(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC) }; - } - - public ITexture[] getFrontActive(byte aColor) - { - return new ITexture[] { super.getFrontActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_ACTIVE), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier] }; - } - - public ITexture[] getBackActive(byte aColor) - { - return new ITexture[] { super.getBackActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_FRONT_ACTIVE) }; - } - - public ITexture[] getBottomActive(byte aColor) - { - return new ITexture[] { super.getBottomActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_ACTIVE) }; - } - - public ITexture[] getTopActive(byte aColor) - { - return new ITexture[] { super.getTopActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_DRAGONEGG) }; - } - - public ITexture[] getSidesActive(byte aColor) - { - return new ITexture[] { super.getSidesActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_ACTIVE) }; - } +public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_BasicGenerator { + + public static final ArrayList sUsedDragonCrystalList = new ArrayList(); + public static boolean sAllowMultipleEggs = true; + public static GT_MetaTileEntity_MagicalEnergyAbsorber mActiveSiphon = null; + public static int sEnergyPerEnderCrystal = 32; + public static int sEnergyFromVis = 12800; + public static int sDragonEggEnergyPerTick = 128; + public static boolean isThaumcraftLoaded; + public int mEfficiency; + public EntityEnderCrystal mTargetedCrystal; + + public GT_MetaTileEntity_MagicalEnergyAbsorber(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, "Feasts on magic close to it", new ITexture[0]); + onConfigLoad(); + } + + public GT_MetaTileEntity_MagicalEnergyAbsorber(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aDescription, aTextures); + onConfigLoad(); + } + + public boolean isOutputFacing(byte aSide) { + return aSide == getBaseMetaTileEntity().getFrontFacing(); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_MagicalEnergyAbsorber(this.mName, this.mTier, this.mDescription, this.mTextures); + } + + public GT_Recipe.GT_Recipe_Map getRecipes() { + return GT_Recipe.GT_Recipe_Map.sMagicFuels; + } + + public int getCapacity() { + return 16000; + } + + public void onConfigLoad() { + this.mEfficiency = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyAbsorber.efficiency.tier." + this.mTier, 100 - this.mTier * 10); + this.sAllowMultipleEggs = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyAbsorber.AllowMultipleEggs", false); + this.sEnergyPerEnderCrystal = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyAbsorber.EnergyPerTick.EnderCrystal", 32); + this.sEnergyFromVis = (GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyAbsorber.EnergyPerVisDivisor", 2500) * 10); + this.sDragonEggEnergyPerTick = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyAbsorber.EnergyPerTick", 2048); + this.isThaumcraftLoaded = Loader.isModLoaded("Thaumcraft"); + } + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.isAllowedToWork() && aBaseMetaTileEntity.getUniversalEnergyStored() < maxEUOutput() + aBaseMetaTileEntity.getEUCapacity()) { + //Dragon Egg + if (hasEgg() && aTick % 10 == 0) { + getBaseMetaTileEntity().increaseStoredEnergyUnits(sDragonEggEnergyPerTick * getEfficiency() * 10, false); + if ((mActiveSiphon != this) && (!sAllowMultipleEggs)) { + if ((mActiveSiphon == null) || (mActiveSiphon.getBaseMetaTileEntity() == null) || (mActiveSiphon.getBaseMetaTileEntity().isInvalidTileEntity()) || (!mActiveSiphon.hasEgg())) { + mActiveSiphon = this; + } else { + Block tEgg = mActiveSiphon.getBaseMetaTileEntity().getBlockOffset(0, 1, 0); + if (!getBaseMetaTileEntity().getWorld().getChunkFromBlockCoords(mActiveSiphon.getBaseMetaTileEntity().getXCoord(), mActiveSiphon.getBaseMetaTileEntity().getZCoord()).isChunkLoaded && (tEgg == Blocks.dragon_egg || tEgg.getUnlocalizedName().equals("tile.dragonEgg"))) { + getBaseMetaTileEntity().doExplosion(Integer.MAX_VALUE); + } else { + mActiveSiphon = this; + } + + } + } + } + //Energyzed node + if (isThaumcraftLoaded) { + try { + World tmpWorld = this.getBaseMetaTileEntity().getWorld(); + int tmpX = this.getBaseMetaTileEntity().getXCoord(); + int tmpY = this.getBaseMetaTileEntity().getYCoord(); + int tmpZ = this.getBaseMetaTileEntity().getZCoord(); + int fire = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.FIRE, 1000); + int earth = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.EARTH, 1000); + int air = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.AIR, 1000); + int destruction = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.ENTROPY, 1000); + int order = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.ORDER, 1000); + int water = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.WATER, 1000); + int visEU = (int) (Math.pow(fire, 4) + Math.pow(earth, 4) + Math.pow(air, 4) + Math.pow(destruction, 4) + Math.pow(order, 4) + Math.pow(water, 4)); + int mult = 85; + if (fire > 4) mult += 15; + if (earth > 4) mult += 15; + if (air > 4) mult += 15; + if (destruction > 4) mult += 15; + if (order > 4) mult += 15; + if (water > 4) mult += 15; + visEU = (visEU * mult) / 100; + getBaseMetaTileEntity().increaseStoredEnergyUnits(Math.min(maxEUOutput(), visEU * getEfficiency() / this.sEnergyFromVis), false); + } catch (Throwable e) { + } + } + //EnderCrystal + + if (sEnergyPerEnderCrystal > 0) { + if (this.mTargetedCrystal == null) { + ArrayList tList = (ArrayList) getBaseMetaTileEntity().getWorld().getEntitiesWithinAABB(EntityEnderCrystal.class, AxisAlignedBB.getBoundingBox(getBaseMetaTileEntity().getXCoord() - 64, getBaseMetaTileEntity().getYCoord() - 64, getBaseMetaTileEntity().getZCoord() - 64, getBaseMetaTileEntity().getXCoord() + 64, getBaseMetaTileEntity().getYCoord() + 64, getBaseMetaTileEntity().getZCoord() + 64)); + if ((tList != null) && (!tList.isEmpty())) { + tList.removeAll(sUsedDragonCrystalList); + if (tList.size() > 0) { + this.mTargetedCrystal = ((EntityEnderCrystal) tList.get(0)); + if (this.mTargetedCrystal != null) { + sUsedDragonCrystalList.add(this.mTargetedCrystal); + } + } + } + } else if (this.mTargetedCrystal.isEntityAlive()) { + getBaseMetaTileEntity().increaseStoredEnergyUnits(sEnergyPerEnderCrystal * 10, false); + } else { + sUsedDragonCrystalList.remove(this.mTargetedCrystal); + this.mTargetedCrystal = null; + } + } + + //Absorb entchantments + try { + if ((this.mInventory[0] != null) && (this.mInventory[1] == null)) { + if (isThaumcraftLoaded && this.mInventory[0].getItem() instanceof IEssentiaContainerItem) { + AspectList tAspect = ((IEssentiaContainerItem) this.mInventory[0].getItem()).getAspects(this.mInventory[0]); + TC_Aspects tValue = TC_Aspects.valueOf(tAspect.getAspects()[0].getTag().toUpperCase()); + int tEU = (tValue.mValue * tAspect.getAmount((Aspect) tValue.mAspect) * 100); + getBaseMetaTileEntity().increaseStoredEnergyUnits(tEU, true); + ItemStack tStack = this.mInventory[0].copy(); + tStack.setTagCompound(null); + tStack.setItemDamage(0); + tStack.stackSize = 1; + this.mInventory[1] = tStack; + this.mInventory[0].stackSize--; + if (this.mInventory[0].stackSize < 1) { + this.mInventory[0] = null; + } + + } else { + if ((this.mInventory[0].isItemEnchanted()) && (this.mInventory[0].getItem().getItemEnchantability() > 0)) { + NBTTagList tEnchantments = this.mInventory[0].getEnchantmentTagList(); + if (tEnchantments != null) { + for (int i = 0; i < tEnchantments.tagCount(); i++) { + short tID = ((NBTTagCompound) tEnchantments.getCompoundTagAt(i)).getShort("id"); + short tLevel = ((NBTTagCompound) tEnchantments.getCompoundTagAt(i)).getShort("lvl"); + if ((tID > -1) && (tID < Enchantment.enchantmentsList.length)) { + Enchantment tEnchantment = Enchantment.enchantmentsList[tID]; + if (tEnchantment != null) { + getBaseMetaTileEntity().increaseStoredEnergyUnits(1000000 * tLevel / (tEnchantment.getMaxLevel() * tEnchantment.getWeight()), true); + } + } + } + this.mInventory[0].stackTagCompound.removeTag("ench"); + } + } else if ((this.mInventory[0].getItem() instanceof ItemEnchantedBook)) { + NBTTagList tEnchantments = ((ItemEnchantedBook) this.mInventory[0].getItem()).func_92110_g(this.mInventory[0]); + if (tEnchantments != null) { + for (int i = 0; i < tEnchantments.tagCount(); i++) { + short tID = ((NBTTagCompound) tEnchantments.getCompoundTagAt(i)).getShort("id"); + short tLevel = ((NBTTagCompound) tEnchantments.getCompoundTagAt(i)).getShort("lvl"); + if ((tID > -1) && (tID < Enchantment.enchantmentsBookList.length)) { + Enchantment tEnchantment = Enchantment.enchantmentsBookList[tID]; + if (tEnchantment != null) { + getBaseMetaTileEntity().increaseStoredEnergyUnits(1000000 * tLevel / (tEnchantment.getMaxLevel() * tEnchantment.getWeight()), true); + } + } + } + this.mInventory[0] = new ItemStack(Items.book, 1); + } + } + this.mInventory[1] = this.mInventory[0]; + this.mInventory[0] = null; + } + } + } catch (Throwable e) { + } + } + } + + public void inValidate() { + if (mActiveSiphon == this) { + mActiveSiphon = null; + } + } + + public boolean hasEgg() { + Block above = getBaseMetaTileEntity().getBlockOffset(0, 1, 0); + if (above == null || Blocks.air == above) { + return false; + } + return Blocks.dragon_egg == above || above.getUnlocalizedName().equals("tile.dragonEgg"); + } + + @Override + public long maxEUStore() { + return Math.max(getEUVar(), V[mTier] * 16000 + getMinimumStoredEU()); + } + + public int getEfficiency() { + return this.mEfficiency; + } + + public ITexture[] getFront(byte aColor) { + return new ITexture[]{super.getFront(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier]}; + } + + public ITexture[] getBack(byte aColor) { + return new ITexture[]{super.getBack(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_FRONT)}; + } + + public ITexture[] getBottom(byte aColor) { + return new ITexture[]{super.getBottom(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC)}; + } + + public ITexture[] getTop(byte aColor) { + return new ITexture[]{super.getTop(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_DRAGONEGG)}; + } + + public ITexture[] getSides(byte aColor) { + return new ITexture[]{super.getSides(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC)}; + } + + public ITexture[] getFrontActive(byte aColor) { + return new ITexture[]{super.getFrontActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_ACTIVE), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier]}; + } + + public ITexture[] getBackActive(byte aColor) { + return new ITexture[]{super.getBackActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_FRONT_ACTIVE)}; + } + + public ITexture[] getBottomActive(byte aColor) { + return new ITexture[]{super.getBottomActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_ACTIVE)}; + } + + public ITexture[] getTopActive(byte aColor) { + return new ITexture[]{super.getTopActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_DRAGONEGG)}; + } + + public ITexture[] getSidesActive(byte aColor) { + return new ITexture[]{super.getSidesActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_ACTIVE)}; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java index c5474329..020369e3 100644 --- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java +++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java @@ -3,110 +3,90 @@ package gregtech.common.tileentities.generators; import gregtech.api.GregTech_API; import gregtech.api.enums.ConfigCategories; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicGenerator; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; public class GT_MetaTileEntity_PlasmaGenerator - extends GT_MetaTileEntity_BasicGenerator -{ + extends GT_MetaTileEntity_BasicGenerator { - public int mEfficiency; - public boolean isOutputFacing(byte aSide) - { - return aSide == getBaseMetaTileEntity().getFrontFacing(); - } - - public GT_MetaTileEntity_PlasmaGenerator(int aID, String aName, String aNameRegional, int aTier) - { - super(aID, aName, aNameRegional, aTier, "Plasma into energy", new ITexture[0]); -onConfigLoad(); - } - - public GT_MetaTileEntity_PlasmaGenerator(String aName, int aTier, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, aDescription, aTextures); -onConfigLoad(); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_PlasmaGenerator(this.mName, this.mTier, this.mDescription, this.mTextures); - } - - public GT_Recipe.GT_Recipe_Map getRecipes() - { - return GT_Recipe.GT_Recipe_Map.sPlasmaFuels; - } - - public int getCapacity() - { - return 16000; - } + public int mEfficiency; -public void onConfigLoad() - { - this.mEfficiency =GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "PlasmaGenerator.efficiency.tier."+this.mTier, (10 + (this.mTier * 10))); -} + public GT_MetaTileEntity_PlasmaGenerator(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, "Plasma into energy", new ITexture[0]); + onConfigLoad(); + } - - public int getEfficiency() - { - return this.mEfficiency; - } - - public ITexture[] getFront(byte aColor) - { - return new ITexture[] { super.getFront(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier] }; - } - - public ITexture[] getBack(byte aColor) - { - return new ITexture[] { super.getBack(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS) }; - } - - public ITexture[] getBottom(byte aColor) - { - return new ITexture[] { super.getBottom(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS) }; - } - - public ITexture[] getTop(byte aColor) - { - return new ITexture[] { super.getTop(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS) }; - } - - public ITexture[] getSides(byte aColor) - { - return new ITexture[] { super.getSides(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS) }; - } - - public ITexture[] getFrontActive(byte aColor) - { - return new ITexture[] { super.getFrontActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS_YELLOW), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier] }; - } - - public ITexture[] getBackActive(byte aColor) - { - return new ITexture[] { super.getBackActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS_YELLOW) }; - } - - public ITexture[] getBottomActive(byte aColor) - { - return new ITexture[] { super.getBottomActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS_YELLOW) }; - } - - public ITexture[] getTopActive(byte aColor) - { - return new ITexture[] { super.getTopActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS_YELLOW) }; - } - - public ITexture[] getSidesActive(byte aColor) - { - return new ITexture[] { super.getSidesActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS_YELLOW) }; - } + public GT_MetaTileEntity_PlasmaGenerator(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aDescription, aTextures); + onConfigLoad(); + } + + public boolean isOutputFacing(byte aSide) { + return aSide == getBaseMetaTileEntity().getFrontFacing(); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_PlasmaGenerator(this.mName, this.mTier, this.mDescription, this.mTextures); + } + + public GT_Recipe.GT_Recipe_Map getRecipes() { + return GT_Recipe.GT_Recipe_Map.sPlasmaFuels; + } + + public int getCapacity() { + return 16000; + } + + public void onConfigLoad() { + this.mEfficiency = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "PlasmaGenerator.efficiency.tier." + this.mTier, (10 + (this.mTier * 10))); + } + + + public int getEfficiency() { + return this.mEfficiency; + } + + public ITexture[] getFront(byte aColor) { + return new ITexture[]{super.getFront(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier]}; + } + + public ITexture[] getBack(byte aColor) { + return new ITexture[]{super.getBack(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS)}; + } + + public ITexture[] getBottom(byte aColor) { + return new ITexture[]{super.getBottom(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS)}; + } + + public ITexture[] getTop(byte aColor) { + return new ITexture[]{super.getTop(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS)}; + } + + public ITexture[] getSides(byte aColor) { + return new ITexture[]{super.getSides(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS)}; + } + + public ITexture[] getFrontActive(byte aColor) { + return new ITexture[]{super.getFrontActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS_YELLOW), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier]}; + } + + public ITexture[] getBackActive(byte aColor) { + return new ITexture[]{super.getBackActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS_YELLOW)}; + } + + public ITexture[] getBottomActive(byte aColor) { + return new ITexture[]{super.getBottomActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS_YELLOW)}; + } + + public ITexture[] getTopActive(byte aColor) { + return new ITexture[]{super.getTopActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS_YELLOW)}; + } + + public ITexture[] getSidesActive(byte aColor) { + return new ITexture[]{super.getSidesActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS_YELLOW)}; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SolidNaquadahReactor.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SolidNaquadahReactor.java index ef569485..faf47c19 100644 --- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SolidNaquadahReactor.java +++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SolidNaquadahReactor.java @@ -3,106 +3,88 @@ package gregtech.common.tileentities.generators; import gregtech.api.GregTech_API; import gregtech.api.enums.ConfigCategories; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicGenerator; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; public class GT_MetaTileEntity_SolidNaquadahReactor - extends GT_MetaTileEntity_BasicGenerator -{ - public int mEfficiency; - public boolean isOutputFacing(byte aSide) - { - return (aSide > 1) && (aSide != getBaseMetaTileEntity().getFrontFacing()) && (aSide != getBaseMetaTileEntity().getBackFacing()); - } - - public GT_MetaTileEntity_SolidNaquadahReactor(int aID, String aName, String aNameRegional, int aTier) - { - super(aID, aName, aNameRegional, aTier, "Requires Enriched Naquadah Bolts", new ITexture[0]);onConfigLoad(); - } - - public GT_MetaTileEntity_SolidNaquadahReactor(String aName, int aTier, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, aDescription, aTextures);onConfigLoad(); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_SolidNaquadahReactor(this.mName, this.mTier, this.mDescription, this.mTextures); - } - - public GT_Recipe.GT_Recipe_Map getRecipes() - { - return GT_Recipe.GT_Recipe_Map.sSmallNaquadahReactorFuels; - } - - public int getCapacity() - { - return 0; - } - - public int getEfficiency() - { - return mEfficiency; - } - - public void onConfigLoad() - { - this.mEfficiency =GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "SolidNaquadah.efficiency.tier."+this.mTier, 80); -} - - public ITexture[] getFront(byte aColor) - { - return new ITexture[] { super.getFront(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_FRONT) }; - } - - public ITexture[] getBack(byte aColor) - { - return new ITexture[] { super.getBack(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_BACK) }; - } - - public ITexture[] getBottom(byte aColor) - { - return new ITexture[] { super.getBottom(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_BOTTOM) }; - } - - public ITexture[] getTop(byte aColor) - { - return new ITexture[] { super.getTop(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_TOP) }; - } - - public ITexture[] getSides(byte aColor) - { - return new ITexture[] { super.getSides(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_SIDE) }; - } - - public ITexture[] getFrontActive(byte aColor) - { - return new ITexture[] { super.getFrontActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE) }; - } - - public ITexture[] getBackActive(byte aColor) - { - return new ITexture[] { super.getBackActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_BACK_ACTIVE) }; - } - - public ITexture[] getBottomActive(byte aColor) - { - return new ITexture[] { super.getBottomActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_BOTTOM_ACTIVE) }; - } - - public ITexture[] getTopActive(byte aColor) - { - return new ITexture[] { super.getTopActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_TOP_ACTIVE) }; - } - - public ITexture[] getSidesActive(byte aColor) - { - return new ITexture[] { super.getSidesActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_SIDE_ACTIVE) }; - } + extends GT_MetaTileEntity_BasicGenerator { + public int mEfficiency; + + public GT_MetaTileEntity_SolidNaquadahReactor(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, "Requires Enriched Naquadah Bolts", new ITexture[0]); + onConfigLoad(); + } + + public GT_MetaTileEntity_SolidNaquadahReactor(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aDescription, aTextures); + onConfigLoad(); + } + + public boolean isOutputFacing(byte aSide) { + return (aSide > 1) && (aSide != getBaseMetaTileEntity().getFrontFacing()) && (aSide != getBaseMetaTileEntity().getBackFacing()); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_SolidNaquadahReactor(this.mName, this.mTier, this.mDescription, this.mTextures); + } + + public GT_Recipe.GT_Recipe_Map getRecipes() { + return GT_Recipe.GT_Recipe_Map.sSmallNaquadahReactorFuels; + } + + public int getCapacity() { + return 0; + } + + public int getEfficiency() { + return mEfficiency; + } + + public void onConfigLoad() { + this.mEfficiency = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "SolidNaquadah.efficiency.tier." + this.mTier, 80); + } + + public ITexture[] getFront(byte aColor) { + return new ITexture[]{super.getFront(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_FRONT)}; + } + + public ITexture[] getBack(byte aColor) { + return new ITexture[]{super.getBack(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_BACK)}; + } + + public ITexture[] getBottom(byte aColor) { + return new ITexture[]{super.getBottom(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_BOTTOM)}; + } + + public ITexture[] getTop(byte aColor) { + return new ITexture[]{super.getTop(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_TOP)}; + } + + public ITexture[] getSides(byte aColor) { + return new ITexture[]{super.getSides(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_SIDE)}; + } + + public ITexture[] getFrontActive(byte aColor) { + return new ITexture[]{super.getFrontActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE)}; + } + + public ITexture[] getBackActive(byte aColor) { + return new ITexture[]{super.getBackActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_BACK_ACTIVE)}; + } + + public ITexture[] getBottomActive(byte aColor) { + return new ITexture[]{super.getBottomActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_BOTTOM_ACTIVE)}; + } + + public ITexture[] getTopActive(byte aColor) { + return new ITexture[]{super.getTopActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_TOP_ACTIVE)}; + } + + public ITexture[] getSidesActive(byte aColor) { + return new ITexture[]{super.getSidesActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_SIDE_ACTIVE)}; + } } diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java index 6a82eed4..6cfc98d8 100644 --- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java +++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java @@ -3,7 +3,6 @@ package gregtech.common.tileentities.generators; import gregtech.api.GregTech_API; import gregtech.api.enums.ConfigCategories; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; @@ -11,113 +10,92 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicGenera import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import net.minecraftforge.fluids.FluidStack; public class GT_MetaTileEntity_SteamTurbine - extends GT_MetaTileEntity_BasicGenerator -{ + extends GT_MetaTileEntity_BasicGenerator { - public int mEfficiency; - public boolean isOutputFacing(byte aSide) - { - return aSide == getBaseMetaTileEntity().getFrontFacing(); - } - - public GT_MetaTileEntity_SteamTurbine(int aID, String aName, String aNameRegional, int aTier) - { - super(aID, aName, aNameRegional, aTier, "Requires Steam to run", new ITexture[0]); -onConfigLoad(); - } - - public GT_MetaTileEntity_SteamTurbine(String aName, int aTier, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, aDescription, aTextures); -onConfigLoad(); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_SteamTurbine(this.mName, this.mTier, this.mDescription, this.mTextures); - } - - public GT_Recipe.GT_Recipe_Map getRecipes() - { - return null; - } - - public int getCapacity() - { - return 24000 * this.mTier; - } + public int mEfficiency; -public void onConfigLoad() - { - this.mEfficiency =GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "SteamTurbine.efficiency.tier."+this.mTier, (200 / consumedFluidPerOperation(GT_ModHandler.getSteam(1L)))); -} - - public int getEfficiency() - { - return this.mEfficiency; - } - - public int getFuelValue(FluidStack aLiquid) - { - return GT_ModHandler.isSteam(aLiquid) ? 1 : 0; - } - - public int consumedFluidPerOperation(FluidStack aLiquid) - { - return 2 + this.mTier; - } - - public ITexture[] getFront(byte aColor) - { - return new ITexture[] { super.getFront(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_FRONT), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier] }; - } - - public ITexture[] getBack(byte aColor) - { - return new ITexture[] { super.getBack(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_BACK) }; - } - - public ITexture[] getBottom(byte aColor) - { - return new ITexture[] { super.getBottom(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_BOTTOM) }; - } - - public ITexture[] getTop(byte aColor) - { - return new ITexture[] { super.getTop(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_TOP) }; - } - - public ITexture[] getSides(byte aColor) - { - return new ITexture[] { super.getSides(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_SIDE) }; - } - - public ITexture[] getFrontActive(byte aColor) - { - return new ITexture[] { super.getFrontActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_FRONT_ACTIVE), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier] }; - } - - public ITexture[] getBackActive(byte aColor) - { - return new ITexture[] { super.getBackActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_BACK_ACTIVE) }; - } - - public ITexture[] getBottomActive(byte aColor) - { - return new ITexture[] { super.getBottomActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_BOTTOM_ACTIVE) }; - } - - public ITexture[] getTopActive(byte aColor) - { - return new ITexture[] { super.getTopActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_TOP_ACTIVE) }; - } - - public ITexture[] getSidesActive(byte aColor) - { - return new ITexture[] { super.getSidesActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_SIDE_ACTIVE) }; - } + public GT_MetaTileEntity_SteamTurbine(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, "Requires Steam to run", new ITexture[0]); + onConfigLoad(); + } + + public GT_MetaTileEntity_SteamTurbine(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aDescription, aTextures); + onConfigLoad(); + } + + public boolean isOutputFacing(byte aSide) { + return aSide == getBaseMetaTileEntity().getFrontFacing(); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_SteamTurbine(this.mName, this.mTier, this.mDescription, this.mTextures); + } + + public GT_Recipe.GT_Recipe_Map getRecipes() { + return null; + } + + public int getCapacity() { + return 24000 * this.mTier; + } + + public void onConfigLoad() { + this.mEfficiency = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "SteamTurbine.efficiency.tier." + this.mTier, (200 / consumedFluidPerOperation(GT_ModHandler.getSteam(1L)))); + } + + public int getEfficiency() { + return this.mEfficiency; + } + + public int getFuelValue(FluidStack aLiquid) { + return GT_ModHandler.isSteam(aLiquid) ? 1 : 0; + } + + public int consumedFluidPerOperation(FluidStack aLiquid) { + return 2 + this.mTier; + } + + public ITexture[] getFront(byte aColor) { + return new ITexture[]{super.getFront(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_FRONT), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier]}; + } + + public ITexture[] getBack(byte aColor) { + return new ITexture[]{super.getBack(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_BACK)}; + } + + public ITexture[] getBottom(byte aColor) { + return new ITexture[]{super.getBottom(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_BOTTOM)}; + } + + public ITexture[] getTop(byte aColor) { + return new ITexture[]{super.getTop(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_TOP)}; + } + + public ITexture[] getSides(byte aColor) { + return new ITexture[]{super.getSides(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_SIDE)}; + } + + public ITexture[] getFrontActive(byte aColor) { + return new ITexture[]{super.getFrontActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_FRONT_ACTIVE), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier]}; + } + + public ITexture[] getBackActive(byte aColor) { + return new ITexture[]{super.getBackActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_BACK_ACTIVE)}; + } + + public ITexture[] getBottomActive(byte aColor) { + return new ITexture[]{super.getBottomActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_BOTTOM_ACTIVE)}; + } + + public ITexture[] getTopActive(byte aColor) { + return new ITexture[]{super.getTopActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_TOP_ACTIVE)}; + } + + public ITexture[] getSidesActive(byte aColor) { + return new ITexture[]{super.getSidesActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_SIDE_ACTIVE)}; + } } diff --git a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Bronze.java index 9ee2253c..74f49df8 100644 --- a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Bronze.java @@ -2,7 +2,6 @@ package gregtech.common.tileentities.machines; import gregtech.api.enums.Dyes; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -10,32 +9,26 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicHull_N import gregtech.api.objects.GT_RenderedTexture; public class GT_MetaTileEntity_BasicHull_Bronze - extends GT_MetaTileEntity_BasicHull_NonElectric -{ - public GT_MetaTileEntity_BasicHull_Bronze(int aID, String aName, String aNameRegional, int aTier, String aDescription) - { - super(aID, aName, aNameRegional, aTier, aDescription); - } - - public GT_MetaTileEntity_BasicHull_Bronze(String aName, int aTier, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, aDescription, aTextures); - } - - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_BasicHull_Bronze(this.mName, this.mTier, this.mDescription, this.mTextures); - } - - public ITexture[][][] getTextureSet(ITexture[] aTextures) - { - ITexture[][][] rTextures = new ITexture[3][17][]; - for (byte i = -1; i < 16; i = (byte)(i + 1)) - { - rTextures[0][(i + 1)] = new ITexture[] { new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZE_BOTTOM, Dyes.getModulation(i, Dyes._NULL.mRGBa)) }; - rTextures[1][(i + 1)] = new ITexture[] { new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZE_TOP, Dyes.getModulation(i, Dyes._NULL.mRGBa)) }; - rTextures[2][(i + 1)] = new ITexture[] { new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZE_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)) }; + extends GT_MetaTileEntity_BasicHull_NonElectric { + public GT_MetaTileEntity_BasicHull_Bronze(int aID, String aName, String aNameRegional, int aTier, String aDescription) { + super(aID, aName, aNameRegional, aTier, aDescription); + } + + public GT_MetaTileEntity_BasicHull_Bronze(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aDescription, aTextures); + } + + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_BasicHull_Bronze(this.mName, this.mTier, this.mDescription, this.mTextures); + } + + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + ITexture[][][] rTextures = new ITexture[3][17][]; + for (byte i = -1; i < 16; i = (byte) (i + 1)) { + rTextures[0][(i + 1)] = new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZE_BOTTOM, Dyes.getModulation(i, Dyes._NULL.mRGBa))}; + rTextures[1][(i + 1)] = new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZE_TOP, Dyes.getModulation(i, Dyes._NULL.mRGBa))}; + rTextures[2][(i + 1)] = new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZE_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa))}; + } + return rTextures; } - return rTextures; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_BronzeBricks.java b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_BronzeBricks.java index 3d881266..2382a41e 100644 --- a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_BronzeBricks.java +++ b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_BronzeBricks.java @@ -1,7 +1,7 @@ package gregtech.common.tileentities.machines; -import gregtech.api.enums.*; -import gregtech.api.enums.Textures.BlockIcons; +import gregtech.api.enums.Dyes; +import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -9,34 +9,29 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicHull_N import gregtech.api.objects.GT_RenderedTexture; public class GT_MetaTileEntity_BasicHull_BronzeBricks - extends GT_MetaTileEntity_BasicHull_NonElectric -{ - public GT_MetaTileEntity_BasicHull_BronzeBricks(int aID, String aName, String aNameRegional, int aTier, String aDescription) - { - super(aID, aName, aNameRegional, aTier, aDescription); - } - - public GT_MetaTileEntity_BasicHull_BronzeBricks(String aName, int aTier, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, aDescription, aTextures); - } - - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_BasicHull_BronzeBricks(this.mName, this.mTier, this.mDescription, this.mTextures); - } - - public ITexture[][][] getTextureSet(ITexture[] aTextures) - { - ITexture[][][] rTextures = new ITexture[3][17][]; - for (byte i = -1; i < 16; i = (byte)(i + 1)) - {ITexture[] tmp0 ={ new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_BOTTOM, Dyes.getModulation(i, Dyes._NULL.mRGBa)) }; - rTextures[0][(i + 1)] = tmp0; - ITexture[] tmp1 = { new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_TOP, Dyes.getModulation(i, Dyes._NULL.mRGBa)) }; -rTextures[1][(i + 1)] =tmp1; - ITexture[] tmp2 ={ new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)) }; -rTextures[2][(i + 1)] = tmp2; + extends GT_MetaTileEntity_BasicHull_NonElectric { + public GT_MetaTileEntity_BasicHull_BronzeBricks(int aID, String aName, String aNameRegional, int aTier, String aDescription) { + super(aID, aName, aNameRegional, aTier, aDescription); + } + + public GT_MetaTileEntity_BasicHull_BronzeBricks(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aDescription, aTextures); + } + + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_BasicHull_BronzeBricks(this.mName, this.mTier, this.mDescription, this.mTextures); + } + + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + ITexture[][][] rTextures = new ITexture[3][17][]; + for (byte i = -1; i < 16; i = (byte) (i + 1)) { + ITexture[] tmp0 = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_BOTTOM, Dyes.getModulation(i, Dyes._NULL.mRGBa))}; + rTextures[0][(i + 1)] = tmp0; + ITexture[] tmp1 = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_TOP, Dyes.getModulation(i, Dyes._NULL.mRGBa))}; + rTextures[1][(i + 1)] = tmp1; + ITexture[] tmp2 = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa))}; + rTextures[2][(i + 1)] = tmp2; + } + return rTextures; } - return rTextures; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Steel.java b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Steel.java index 00e4481d..e1395d59 100644 --- a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Steel.java +++ b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_Steel.java @@ -2,7 +2,6 @@ package gregtech.common.tileentities.machines; import gregtech.api.enums.Dyes; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -10,34 +9,29 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicHull_N import gregtech.api.objects.GT_RenderedTexture; public class GT_MetaTileEntity_BasicHull_Steel - extends GT_MetaTileEntity_BasicHull_NonElectric -{ - public GT_MetaTileEntity_BasicHull_Steel(int aID, String aName, String aNameRegional, int aTier, String aDescription) - { - super(aID, aName, aNameRegional, aTier, aDescription); - } - - public GT_MetaTileEntity_BasicHull_Steel(String aName, int aTier, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, aDescription, aTextures); - } - - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_BasicHull_Steel(this.mName, this.mTier, this.mDescription, this.mTextures); - } - - public ITexture[][][] getTextureSet(ITexture[] aTextures) - { - ITexture[][][] rTextures = new ITexture[3][17][]; - for (byte i = -1; i < 16; i = (byte)(i + 1)) - {ITexture[] tmp0 ={ new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEEL_BOTTOM, Dyes.getModulation(i, Dyes._NULL.mRGBa)) }; - rTextures[0][(i + 1)] = tmp0; - ITexture[] tmp1 ={ new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEEL_TOP, Dyes.getModulation(i, Dyes._NULL.mRGBa)) }; -rTextures[1][(i + 1)] = tmp1; - ITexture[] tmp2 = { new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEEL_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)) }; -rTextures[2][(i + 1)] =tmp2; + extends GT_MetaTileEntity_BasicHull_NonElectric { + public GT_MetaTileEntity_BasicHull_Steel(int aID, String aName, String aNameRegional, int aTier, String aDescription) { + super(aID, aName, aNameRegional, aTier, aDescription); + } + + public GT_MetaTileEntity_BasicHull_Steel(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aDescription, aTextures); + } + + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_BasicHull_Steel(this.mName, this.mTier, this.mDescription, this.mTextures); + } + + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + ITexture[][][] rTextures = new ITexture[3][17][]; + for (byte i = -1; i < 16; i = (byte) (i + 1)) { + ITexture[] tmp0 = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEEL_BOTTOM, Dyes.getModulation(i, Dyes._NULL.mRGBa))}; + rTextures[0][(i + 1)] = tmp0; + ITexture[] tmp1 = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEEL_TOP, Dyes.getModulation(i, Dyes._NULL.mRGBa))}; + rTextures[1][(i + 1)] = tmp1; + ITexture[] tmp2 = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEEL_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa))}; + rTextures[2][(i + 1)] = tmp2; + } + return rTextures; } - return rTextures; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_SteelBricks.java b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_SteelBricks.java index 81079617..f8e35fdc 100644 --- a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_SteelBricks.java +++ b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_BasicHull_SteelBricks.java @@ -2,7 +2,6 @@ package gregtech.common.tileentities.machines; import gregtech.api.enums.Dyes; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -10,34 +9,29 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicHull_N import gregtech.api.objects.GT_RenderedTexture; public class GT_MetaTileEntity_BasicHull_SteelBricks - extends GT_MetaTileEntity_BasicHull_NonElectric -{ - public GT_MetaTileEntity_BasicHull_SteelBricks(int aID, String aName, String aNameRegional, int aTier, String aDescription) - { - super(aID, aName, aNameRegional, aTier, aDescription); - } - - public GT_MetaTileEntity_BasicHull_SteelBricks(String aName, int aTier, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, aDescription, aTextures); - } - - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_BasicHull_SteelBricks(this.mName, this.mTier, this.mDescription, this.mTextures); - } - - public ITexture[][][] getTextureSet(ITexture[] aTextures) - { - ITexture[][][] rTextures = new ITexture[3][17][]; - for (byte i = -1; i < 16; i = (byte)(i + 1)) - {ITexture[] tmp0 ={ new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_BOTTOM, Dyes.getModulation(i, Dyes._NULL.mRGBa)) }; - rTextures[0][(i + 1)] = tmp0; - ITexture[] tmp1 ={ new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_TOP, Dyes.getModulation(i, Dyes._NULL.mRGBa)) }; -rTextures[1][(i + 1)] = tmp1; - ITexture[] tmp2 ={ new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa)) }; -rTextures[2][(i + 1)] = tmp2; + extends GT_MetaTileEntity_BasicHull_NonElectric { + public GT_MetaTileEntity_BasicHull_SteelBricks(int aID, String aName, String aNameRegional, int aTier, String aDescription) { + super(aID, aName, aNameRegional, aTier, aDescription); + } + + public GT_MetaTileEntity_BasicHull_SteelBricks(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aDescription, aTextures); + } + + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_BasicHull_SteelBricks(this.mName, this.mTier, this.mDescription, this.mTextures); + } + + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + ITexture[][][] rTextures = new ITexture[3][17][]; + for (byte i = -1; i < 16; i = (byte) (i + 1)) { + ITexture[] tmp0 = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_BOTTOM, Dyes.getModulation(i, Dyes._NULL.mRGBa))}; + rTextures[0][(i + 1)] = tmp0; + ITexture[] tmp1 = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_TOP, Dyes.getModulation(i, Dyes._NULL.mRGBa))}; + rTextures[1][(i + 1)] = tmp1; + ITexture[] tmp2 = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEELBRICKS_SIDE, Dyes.getModulation(i, Dyes._NULL.mRGBa))}; + rTextures[2][(i + 1)] = tmp2; + } + return rTextures; } - return rTextures; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Boxinator.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Boxinator.java index bf498a22..a869ad8d 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Boxinator.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Boxinator.java @@ -1,9 +1,7 @@ package gregtech.common.tileentities.machines.basic; -import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; @@ -11,99 +9,91 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachin import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.CraftingManager; public class GT_MetaTileEntity_Boxinator - extends GT_MetaTileEntity_BasicMachine -{ - public GT_MetaTileEntity_Boxinator(int aID, String aName, String aNameRegional, int aTier) - { - super(aID, aName, aNameRegional, aTier, 1, "Puts things into Boxes", 2, 1, "Packager.png", "", new ITexture[] { new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_BOXINATOR_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_BOXINATOR), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_BOXINATOR_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_BOXINATOR), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_BOXINATOR_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_BOXINATOR), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_BOXINATOR_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_BOXINATOR) }); - } - - public GT_MetaTileEntity_Boxinator(String aName, int aTier, String aDescription, ITexture[][][] aTextures, String aGUIName, String aNEIName) - { - super(aName, aTier, 1, aDescription, aTextures, 2, 1, aGUIName, aNEIName); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_Boxinator(this.mName, this.mTier, this.mDescription, this.mTextures, this.mGUIName, this.mNEIName); - } - - public GT_Recipe.GT_Recipe_Map getRecipeList() - { - return GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes; - } - - public int checkRecipe() - { - int tCheck = super.checkRecipe(); - if (tCheck != 0) { - return tCheck; + extends GT_MetaTileEntity_BasicMachine { + public GT_MetaTileEntity_Boxinator(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 1, "Puts things into Boxes", 2, 1, "Packager.png", "", new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_BOXINATOR_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_BOXINATOR), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_BOXINATOR_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_BOXINATOR), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_BOXINATOR_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_BOXINATOR), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_BOXINATOR_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_BOXINATOR)}); } - if ((GT_Utility.isStackValid(getInputAt(0))) && (GT_Utility.isStackValid(getInputAt(1))) && (GT_Utility.getContainerItem(getInputAt(0), true) == null)) - { - if ((ItemList.Schematic_1by1.isStackEqual(getInputAt(1))) && (getInputAt(0).stackSize >= 1)) - { - this.mOutputItems[0] = GT_ModHandler.getRecipeOutput(new ItemStack[] { getInputAt(0) }); - if (this.mOutputItems[0] != null) { - if (canOutput(new ItemStack[] { this.mOutputItems[0] })) - { - getInputAt(0).stackSize -= 1; - this.mEUt = (32 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); - this.mMaxProgresstime = (16 / (1 << this.mTier - 1)); - return 2; - } + + public GT_MetaTileEntity_Boxinator(String aName, int aTier, String aDescription, ITexture[][][] aTextures, String aGUIName, String aNEIName) { + super(aName, aTier, 1, aDescription, aTextures, 2, 1, aGUIName, aNEIName); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Boxinator(this.mName, this.mTier, this.mDescription, this.mTextures, this.mGUIName, this.mNEIName); + } + + public GT_Recipe.GT_Recipe_Map getRecipeList() { + return GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes; + } + + public int checkRecipe() { + int tCheck = super.checkRecipe(); + if (tCheck != 0) { + return tCheck; + } + if ((GT_Utility.isStackValid(getInputAt(0))) && (GT_Utility.isStackValid(getInputAt(1))) && (GT_Utility.getContainerItem(getInputAt(0), true) == null)) { + if ((ItemList.Schematic_1by1.isStackEqual(getInputAt(1))) && (getInputAt(0).stackSize >= 1)) { + this.mOutputItems[0] = GT_ModHandler.getRecipeOutput(new ItemStack[]{getInputAt(0)}); + if (this.mOutputItems[0] != null) { + if (canOutput(new ItemStack[]{this.mOutputItems[0]})) { + getInputAt(0).stackSize -= 1; + this.mEUt = (32 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); + this.mMaxProgresstime = (16 / (1 << this.mTier - 1)); + return 2; + } + } + return 0; + } + if ((ItemList.Schematic_2by2.isStackEqual(getInputAt(1))) && (getInputAt(0).stackSize >= 4)) { + this.mOutputItems[0] = GT_ModHandler.getRecipeOutput(new ItemStack[]{getInputAt(0), getInputAt(0), null, getInputAt(0), getInputAt(0)}); + if (this.mOutputItems[0] != null) { + if (canOutput(new ItemStack[]{this.mOutputItems[0]})) { + getInputAt(0).stackSize -= 4; + this.mEUt = (32 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); + this.mMaxProgresstime = (32 / (1 << this.mTier - 1)); + return 2; + } + } + return 0; + } + if ((ItemList.Schematic_3by3.isStackEqual(getInputAt(1))) && (getInputAt(0).stackSize >= 9)) { + this.mOutputItems[0] = GT_ModHandler.getRecipeOutput(new ItemStack[]{getInputAt(0), getInputAt(0), getInputAt(0), getInputAt(0), getInputAt(0), getInputAt(0), getInputAt(0), getInputAt(0), getInputAt(0)}); + if (this.mOutputItems[0] != null) { + if (canOutput(new ItemStack[]{this.mOutputItems[0]})) { + getInputAt(0).stackSize -= 9; + this.mEUt = (32 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); + this.mMaxProgresstime = (64 / (1 << this.mTier - 1)); + return 2; + } + } + return 0; + } } return 0; - } - if ((ItemList.Schematic_2by2.isStackEqual(getInputAt(1))) && (getInputAt(0).stackSize >= 4)) - { - this.mOutputItems[0] = GT_ModHandler.getRecipeOutput(new ItemStack[] { getInputAt(0), getInputAt(0), null, getInputAt(0), getInputAt(0) }); - if (this.mOutputItems[0] != null) { - if (canOutput(new ItemStack[] { this.mOutputItems[0] })) - { - getInputAt(0).stackSize -= 4; - this.mEUt = (32 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); - this.mMaxProgresstime = (32 / (1 << this.mTier - 1)); - return 2; - } - } - return 0; - } - if ((ItemList.Schematic_3by3.isStackEqual(getInputAt(1))) && (getInputAt(0).stackSize >= 9)) - { - this.mOutputItems[0] = GT_ModHandler.getRecipeOutput(new ItemStack[] { getInputAt(0), getInputAt(0), getInputAt(0), getInputAt(0), getInputAt(0), getInputAt(0), getInputAt(0), getInputAt(0), getInputAt(0) }); - if (this.mOutputItems[0] != null) { - if (canOutput(new ItemStack[] { this.mOutputItems[0] })) - { - getInputAt(0).stackSize -= 9; - this.mEUt = (32 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); - this.mMaxProgresstime = (64 / (1 << this.mTier - 1)); - return 2; - } - } - return 0; - } } - return 0; - } - - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - if (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) - { - if ((ItemList.Schematic_1by1.isStackEqual(getInputAt(1))) || (ItemList.Schematic_2by2.isStackEqual(getInputAt(1))) || (ItemList.Schematic_3by3.isStackEqual(getInputAt(1)))) { - if(GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes.findRecipe(getBaseMetaTileEntity(), true, gregtech.api.enums.GT_Values.V[this.mTier], null, new ItemStack[] { GT_Utility.copyAmount(64L, new Object[] { aStack }), getInputAt(1) }) != null){return true;} - if(ItemList.Schematic_1by1.isStackEqual(getInputAt(1))&>_ModHandler.getRecipeOutput(new ItemStack[] { aStack })!=null)return true; - if(ItemList.Schematic_2by2.isStackEqual(getInputAt(1))&>_ModHandler.getRecipeOutput(new ItemStack[] { aStack, aStack, null, aStack, aStack })!=null){return true;} - if(ItemList.Schematic_3by3.isStackEqual(getInputAt(1))&&(GT_ModHandler.getRecipeOutput(new ItemStack[] { aStack,aStack,aStack,aStack,aStack,aStack,aStack,aStack,aStack })!=null)){return true;} - }else{return GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes.containsInput(aStack);} + + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + if (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) { + if ((ItemList.Schematic_1by1.isStackEqual(getInputAt(1))) || (ItemList.Schematic_2by2.isStackEqual(getInputAt(1))) || (ItemList.Schematic_3by3.isStackEqual(getInputAt(1)))) { + if (GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes.findRecipe(getBaseMetaTileEntity(), true, gregtech.api.enums.GT_Values.V[this.mTier], null, new ItemStack[]{GT_Utility.copyAmount(64L, new Object[]{aStack}), getInputAt(1)}) != null) { + return true; + } + if (ItemList.Schematic_1by1.isStackEqual(getInputAt(1)) && GT_ModHandler.getRecipeOutput(new ItemStack[]{aStack}) != null) + return true; + if (ItemList.Schematic_2by2.isStackEqual(getInputAt(1)) && GT_ModHandler.getRecipeOutput(new ItemStack[]{aStack, aStack, null, aStack, aStack}) != null) { + return true; + } + if (ItemList.Schematic_3by3.isStackEqual(getInputAt(1)) && (GT_ModHandler.getRecipeOutput(new ItemStack[]{aStack, aStack, aStack, aStack, aStack, aStack, aStack, aStack, aStack}) != null)) { + return true; + } + } else { + return GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes.containsInput(aStack); + } + } + return false; } - return false; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java index 8be43c1b..a9c4299e 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java @@ -1,7 +1,6 @@ package gregtech.common.tileentities.machines.basic; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; @@ -12,54 +11,44 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; public class GT_MetaTileEntity_Disassembler - extends GT_MetaTileEntity_BasicMachine -{ - public GT_MetaTileEntity_Disassembler(int aID, String aName, String aNameRegional, int aTier) - { - super(aID, aName, aNameRegional, aTier, 1, "Disassembles Machines at " + (50 + 10 * aTier) + "% Efficiency", 1, 9, "Disassembler.png", "", new ITexture[] { new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_DISASSEMBLER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_DISASSEMBLER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_DISASSEMBLER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_DISASSEMBLER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_DISASSEMBLER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_DISASSEMBLER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_DISASSEMBLER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_DISASSEMBLER) }); - } - - public GT_MetaTileEntity_Disassembler(String aName, int aTier, String aDescription, ITexture[][][] aTextures, String aGUIName, String aNEIName) - { - super(aName, aTier, 1, aDescription, aTextures, 1, 9, aGUIName, aNEIName); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_Disassembler(this.mName, this.mTier, this.mDescription, this.mTextures, this.mGUIName, this.mNEIName); - } - - public int checkRecipe() - { - if ((getInputAt(0) != null) && (isOutputEmpty())) - { - NBTTagCompound tNBT = getInputAt(0).getTagCompound(); - if (tNBT != null) - { - tNBT = tNBT.getCompoundTag("GT.CraftingComponents"); - if (tNBT != null) - { - getInputAt(0).stackSize -= 1; - this.mEUt = (16 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); - this.mMaxProgresstime = 80; - for (int i = 0; i < this.mOutputItems.length; i++) { - if (getBaseMetaTileEntity().getRandomNumber(100) < 50 + 10 * this.mTier) - { - this.mOutputItems[i] = GT_Utility.loadItem(tNBT, "Ingredient." + i); - if (this.mOutputItems[i] != null) { - this.mMaxProgresstime *= 1.7; - } - } - } - return 2; - } - } + extends GT_MetaTileEntity_BasicMachine { + public GT_MetaTileEntity_Disassembler(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 1, "Disassembles Machines at " + (50 + 10 * aTier) + "% Efficiency", 1, 9, "Disassembler.png", "", new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_DISASSEMBLER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_DISASSEMBLER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_DISASSEMBLER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_DISASSEMBLER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_DISASSEMBLER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_DISASSEMBLER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_DISASSEMBLER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_DISASSEMBLER)}); + } + + public GT_MetaTileEntity_Disassembler(String aName, int aTier, String aDescription, ITexture[][][] aTextures, String aGUIName, String aNEIName) { + super(aName, aTier, 1, aDescription, aTextures, 1, 9, aGUIName, aNEIName); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Disassembler(this.mName, this.mTier, this.mDescription, this.mTextures, this.mGUIName, this.mNEIName); + } + + public int checkRecipe() { + if ((getInputAt(0) != null) && (isOutputEmpty())) { + NBTTagCompound tNBT = getInputAt(0).getTagCompound(); + if (tNBT != null) { + tNBT = tNBT.getCompoundTag("GT.CraftingComponents"); + if (tNBT != null) { + getInputAt(0).stackSize -= 1; + this.mEUt = (16 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); + this.mMaxProgresstime = 80; + for (int i = 0; i < this.mOutputItems.length; i++) { + if (getBaseMetaTileEntity().getRandomNumber(100) < 50 + 10 * this.mTier) { + this.mOutputItems[i] = GT_Utility.loadItem(tNBT, "Ingredient." + i); + if (this.mOutputItems[i] != null) { + this.mMaxProgresstime *= 1.7; + } + } + } + return 2; + } + } + } + return 0; + } + + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) && (aStack.getTagCompound() != null) && (aStack.getTagCompound().getCompoundTag("GT.CraftingComponents") != null); } - return 0; - } - - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) && (aStack.getTagCompound() != null) && (aStack.getTagCompound().getCompoundTag("GT.CraftingComponents") != null); - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java index 1932ad49..d7bd1e19 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java @@ -4,7 +4,6 @@ import gregtech.api.enums.ConfigCategories; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; @@ -14,64 +13,54 @@ import gregtech.api.util.GT_Config; import net.minecraftforge.fluids.FluidStack; public class GT_MetaTileEntity_Massfabricator - extends GT_MetaTileEntity_BasicMachine -{ - public static int sUUAperUUM = 1; - public static int sUUASpeedBonus = 4; - public static int sDurationMultiplier = 3215; - public static boolean sRequiresUUA = false; - - public GT_MetaTileEntity_Massfabricator(int aID, String aName, String aNameRegional, int aTier) - { - super(aID, aName, aNameRegional, aTier, 1, "UUM = Matter * Fabrication Squared", 1, 1, "Massfabricator.png", "", new ITexture[] { new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_MASSFAB_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_MASSFAB), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_MASSFAB_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_MASSFAB), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_MASSFAB_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_MASSFAB), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_MASSFAB_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_MASSFAB) }); - } - - public GT_MetaTileEntity_Massfabricator(String aName, int aTier, String aDescription, ITexture[][][] aTextures, String aGUIName, String aNEIName) - { - super(aName, aTier, 1, aDescription, aTextures, 1, 1, aGUIName, aNEIName); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_Massfabricator(this.mName, this.mTier, this.mDescription, this.mTextures, this.mGUIName, this.mNEIName); - } - - public void onConfigLoad(GT_Config aConfig) - { - super.onConfigLoad(aConfig); - sDurationMultiplier = aConfig.get(ConfigCategories.machineconfig, "Massfabricator.UUM_Duration_Multiplier", sDurationMultiplier); - sUUAperUUM = aConfig.get(ConfigCategories.machineconfig, "Massfabricator.UUA_per_UUM", sUUAperUUM); - sUUASpeedBonus = aConfig.get(ConfigCategories.machineconfig, "Massfabricator.UUA_Speed_Bonus", sUUASpeedBonus); - sRequiresUUA = aConfig.get(ConfigCategories.machineconfig, "Massfabricator.UUA_Requirement", sRequiresUUA); - Materials.UUAmplifier.mChemicalFormula = ("Mass Fabricator Eff/Speed Bonus: x" + sUUASpeedBonus); - } - - public int checkRecipe() - { - FluidStack tFluid = getDrainableStack(); - if ((tFluid == null) || (tFluid.amount < getCapacity())) - { - this.mOutputFluid = Materials.UUMatter.getFluid(1L); - this.mEUt = ((int)gregtech.api.enums.GT_Values.V[this.mTier]); - this.mMaxProgresstime = (sDurationMultiplier / (1 << this.mTier - 1)); - if (((tFluid = getFillableStack()) != null) && (tFluid.amount >= sUUAperUUM) && (tFluid.isFluidEqual(Materials.UUAmplifier.getFluid(1L)))) - { - tFluid.amount -= sUUAperUUM; - this.mMaxProgresstime /= sUUASpeedBonus; - return 2; - } - return (sRequiresUUA) || (ItemList.Circuit_Integrated.isStackEqual(getInputAt(0), true, true)) ? 1 : 2; + extends GT_MetaTileEntity_BasicMachine { + public static int sUUAperUUM = 1; + public static int sUUASpeedBonus = 4; + public static int sDurationMultiplier = 3215; + public static boolean sRequiresUUA = false; + + public GT_MetaTileEntity_Massfabricator(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 1, "UUM = Matter * Fabrication Squared", 1, 1, "Massfabricator.png", "", new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_MASSFAB_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_MASSFAB), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_MASSFAB_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_MASSFAB), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_MASSFAB_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_MASSFAB), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_MASSFAB_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_MASSFAB)}); + } + + public GT_MetaTileEntity_Massfabricator(String aName, int aTier, String aDescription, ITexture[][][] aTextures, String aGUIName, String aNEIName) { + super(aName, aTier, 1, aDescription, aTextures, 1, 1, aGUIName, aNEIName); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Massfabricator(this.mName, this.mTier, this.mDescription, this.mTextures, this.mGUIName, this.mNEIName); + } + + public void onConfigLoad(GT_Config aConfig) { + super.onConfigLoad(aConfig); + sDurationMultiplier = aConfig.get(ConfigCategories.machineconfig, "Massfabricator.UUM_Duration_Multiplier", sDurationMultiplier); + sUUAperUUM = aConfig.get(ConfigCategories.machineconfig, "Massfabricator.UUA_per_UUM", sUUAperUUM); + sUUASpeedBonus = aConfig.get(ConfigCategories.machineconfig, "Massfabricator.UUA_Speed_Bonus", sUUASpeedBonus); + sRequiresUUA = aConfig.get(ConfigCategories.machineconfig, "Massfabricator.UUA_Requirement", sRequiresUUA); + Materials.UUAmplifier.mChemicalFormula = ("Mass Fabricator Eff/Speed Bonus: x" + sUUASpeedBonus); + } + + public int checkRecipe() { + FluidStack tFluid = getDrainableStack(); + if ((tFluid == null) || (tFluid.amount < getCapacity())) { + this.mOutputFluid = Materials.UUMatter.getFluid(1L); + this.mEUt = ((int) gregtech.api.enums.GT_Values.V[this.mTier]); + this.mMaxProgresstime = (sDurationMultiplier / (1 << this.mTier - 1)); + if (((tFluid = getFillableStack()) != null) && (tFluid.amount >= sUUAperUUM) && (tFluid.isFluidEqual(Materials.UUAmplifier.getFluid(1L)))) { + tFluid.amount -= sUUAperUUM; + this.mMaxProgresstime /= sUUASpeedBonus; + return 2; + } + return (sRequiresUUA) || (ItemList.Circuit_Integrated.isStackEqual(getInputAt(0), true, true)) ? 1 : 2; + } + return 0; + } + + public boolean isFluidInputAllowed(FluidStack aFluid) { + return aFluid.isFluidEqual(Materials.UUAmplifier.getFluid(1L)); + } + + public int getCapacity() { + return Math.max(sUUAperUUM, 1000); } - return 0; - } - - public boolean isFluidInputAllowed(FluidStack aFluid) - { - return aFluid.isFluidEqual(Materials.UUAmplifier.getFluid(1L)); - } - - public int getCapacity() - { - return Math.max(sUUAperUUM, 1000); - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MonsterRepellent.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MonsterRepellent.java index 87183502..88434e31 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MonsterRepellent.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MonsterRepellent.java @@ -1,13 +1,5 @@ package gregtech.common.tileentities.machines.basic; -import static gregtech.api.enums.GT_Values.V; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.common.eventhandler.Event; -import net.minecraft.entity.EnumCreatureType; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.living.LivingSpawnEvent; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -15,65 +7,124 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_TieredMachineBlock; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_SpawnEventHandler; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +import static gregtech.api.enums.GT_Values.V; public class GT_MetaTileEntity_MonsterRepellent extends GT_MetaTileEntity_TieredMachineBlock { - public int mRange = 16; - - public GT_MetaTileEntity_MonsterRepellent(int aID, String aName, String aNameRegional, int aTier) { - super(aID, aName, aNameRegional, aTier, 0, "Reprells nasty Creatures. Range: "+(4 + (12*aTier))+" unpowered / "+(16 + (48*aTier))+" powered"); - } + public int mRange = 16; - public GT_MetaTileEntity_MonsterRepellent(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) { - super(aName, aTier, aInvSlotCount, aDescription, aTextures); - } + public GT_MetaTileEntity_MonsterRepellent(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 0, "Reprells nasty Creatures. Range: " + (4 + (12 * aTier)) + " unpowered / " + (16 + (48 * aTier)) + " powered"); + } - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_MonsterRepellent(this.mName, this.mTier, this.mInventory.length, this.mDescription, this.mTextures); - } + public GT_MetaTileEntity_MonsterRepellent(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aInvSlotCount, aDescription, aTextures); + } - @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) }; - } - - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) { - if (aBaseMetaTileEntity.isAllowedToWork() && aBaseMetaTileEntity.isServerSide()) { - int[] tCoords = new int[]{aBaseMetaTileEntity.getXCoord(),aBaseMetaTileEntity.getYCoord(),aBaseMetaTileEntity.getZCoord(),aBaseMetaTileEntity.getWorld().provider.dimensionId}; - if((aTimer%600 == 0)&&!GT_SpawnEventHandler.mobReps.contains(tCoords)){ - GT_SpawnEventHandler.mobReps.add(tCoords); - } - if(aBaseMetaTileEntity.isUniversalEnergyStored(getMinimumStoredEU()) && aBaseMetaTileEntity.decreaseStoredEnergyUnits(1 << (this.mTier*2), false)){ - mRange = 16 + (48*mTier); - }else{ - mRange = 4 + (12*mTier); - }} - } - - @Override - public void onFirstTick(IGregTechTileEntity aBaseMetaTileEntity) { - int[] tCoords = new int[]{aBaseMetaTileEntity.getXCoord(),aBaseMetaTileEntity.getYCoord(),aBaseMetaTileEntity.getZCoord(),aBaseMetaTileEntity.getWorld().provider.dimensionId}; - GT_SpawnEventHandler.mobReps.add(tCoords); - } - - @Override - public void onRemoval() { - int[] tCoords = new int[]{this.getBaseMetaTileEntity().getXCoord(),this.getBaseMetaTileEntity().getYCoord(),this.getBaseMetaTileEntity().getZCoord(),this.getBaseMetaTileEntity().getWorld().provider.dimensionId}; - GT_SpawnEventHandler.mobReps.remove(tCoords); - } - @Override public boolean isSimpleMachine() {return false;} - @Override public boolean isFacingValid(byte aFacing) {return true;} - @Override public boolean isEnetInput() {return true;} - @Override public boolean isInputFacing(byte aSide) {return true;} - @Override public boolean isTeleporterCompatible() {return false;} - @Override public long getMinimumStoredEU() {return 512;} - @Override public long maxEUStore() {return 512+V[mTier]*50;} - @Override public long maxEUInput() {return V[mTier];} - @Override public long maxAmperesIn() {return 2;} - @Override public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {return false;} - @Override public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {return false;} - @Override public ITexture[][][] getTextureSet(ITexture[] aTextures) {return null;} - @Override public void saveNBTData(NBTTagCompound aNBT) {} - @Override public void loadNBTData(NBTTagCompound aNBT) {} - } + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_MonsterRepellent(this.mName, this.mTier, this.mInventory.length, this.mDescription, this.mTextures); + } + + @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)}; + } + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) { + if (aBaseMetaTileEntity.isAllowedToWork() && aBaseMetaTileEntity.isServerSide()) { + int[] tCoords = new int[]{aBaseMetaTileEntity.getXCoord(), aBaseMetaTileEntity.getYCoord(), aBaseMetaTileEntity.getZCoord(), aBaseMetaTileEntity.getWorld().provider.dimensionId}; + if ((aTimer % 600 == 0) && !GT_SpawnEventHandler.mobReps.contains(tCoords)) { + GT_SpawnEventHandler.mobReps.add(tCoords); + } + if (aBaseMetaTileEntity.isUniversalEnergyStored(getMinimumStoredEU()) && aBaseMetaTileEntity.decreaseStoredEnergyUnits(1 << (this.mTier * 2), false)) { + mRange = 16 + (48 * mTier); + } else { + mRange = 4 + (12 * mTier); + } + } + } + + @Override + public void onFirstTick(IGregTechTileEntity aBaseMetaTileEntity) { + int[] tCoords = new int[]{aBaseMetaTileEntity.getXCoord(), aBaseMetaTileEntity.getYCoord(), aBaseMetaTileEntity.getZCoord(), aBaseMetaTileEntity.getWorld().provider.dimensionId}; + GT_SpawnEventHandler.mobReps.add(tCoords); + } + + @Override + public void onRemoval() { + int[] tCoords = new int[]{this.getBaseMetaTileEntity().getXCoord(), this.getBaseMetaTileEntity().getYCoord(), this.getBaseMetaTileEntity().getZCoord(), this.getBaseMetaTileEntity().getWorld().provider.dimensionId}; + GT_SpawnEventHandler.mobReps.remove(tCoords); + } + + @Override + public boolean isSimpleMachine() { + return false; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return true; + } + + @Override + public boolean isEnetInput() { + return true; + } + + @Override + public boolean isInputFacing(byte aSide) { + return true; + } + + @Override + public boolean isTeleporterCompatible() { + return false; + } + + @Override + public long getMinimumStoredEU() { + return 512; + } + + @Override + public long maxEUStore() { + return 512 + V[mTier] * 50; + } + + @Override + public long maxEUInput() { + return V[mTier]; + } + + @Override + public long maxAmperesIn() { + return 2; + } + + @Override + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return false; + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return false; + } + + @Override + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + return null; + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + } +} diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_PotionBrewer.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_PotionBrewer.java index 35110b6a..2dcde9c0 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_PotionBrewer.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_PotionBrewer.java @@ -3,7 +3,6 @@ package gregtech.common.tileentities.machines.basic; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; @@ -11,149 +10,130 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachin import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; public class GT_MetaTileEntity_PotionBrewer - extends GT_MetaTileEntity_BasicMachine -{ - public GT_MetaTileEntity_PotionBrewer(int aID, String aName, String aNameRegional, int aTier) - { - super(aID, aName, aNameRegional, aTier, 1, "Brewing your Drinks", 1, 0, "PotionBrewer.png", "", new ITexture[] { new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_POTIONBREWER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_POTIONBREWER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_POTIONBREWER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_POTIONBREWER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_POTIONBREWER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_POTIONBREWER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_POTIONBREWER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_POTIONBREWER) }); - } - - public GT_MetaTileEntity_PotionBrewer(String aName, int aTier, String aDescription, ITexture[][][] aTextures, String aGUIName, String aNEIName) - { - super(aName, aTier, 1, aDescription, aTextures, 1, 0, aGUIName, aNEIName); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_PotionBrewer(this.mName, this.mTier, this.mDescription, this.mTextures, this.mGUIName, this.mNEIName); - } - - public GT_Recipe.GT_Recipe_Map getRecipeList() - { - return GT_Recipe.GT_Recipe_Map.sBrewingRecipes; - } - - public int checkRecipe() - { - int tCheck = super.checkRecipe(); - if (tCheck != 0) { - return tCheck; + extends GT_MetaTileEntity_BasicMachine { + public GT_MetaTileEntity_PotionBrewer(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 1, "Brewing your Drinks", 1, 0, "PotionBrewer.png", "", new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_POTIONBREWER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_POTIONBREWER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_POTIONBREWER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_POTIONBREWER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_POTIONBREWER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_POTIONBREWER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_POTIONBREWER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_POTIONBREWER)}); } - FluidStack aFluid = getFillableStack(); - if ((getDrainableStack() == null) && (aFluid != null) && (getInputAt(0) != null)) - { - String tInputName = aFluid.getFluid().getName(); - if (tInputName.startsWith("potion.")) - { - tInputName = tInputName.replaceFirst("potion.", ""); - int tFirstDot = tInputName.indexOf('.') + 1; - String tModifier = tFirstDot <= 0 ? "" : tInputName.substring(tFirstDot); - if (!tModifier.isEmpty()) { - tInputName = tInputName.replaceFirst("." + tModifier, ""); - } - if (GT_Utility.areStacksEqual(new ItemStack(Items.fermented_spider_eye, 1, 0), getInputAt(0))) - { - if (tInputName.equals("poison")) { - return setOutput("potion.damage" + tModifier); - } - if (tInputName.equals("health")) { - return setOutput("potion.damage" + tModifier); - } - if (tInputName.equals("waterbreathing")) { - return setOutput("potion.damage" + tModifier); - } - if (tInputName.equals("nightvision")) { - return setOutput("potion.invisibility" + tModifier); - } - if (tInputName.equals("fireresistance")) { - return setOutput("potion.slowness" + tModifier); - } - if (tInputName.equals("speed")) { - return setOutput("potion.slowness" + tModifier); - } - if (tInputName.equals("strength")) { - return setOutput("potion.weakness" + tModifier); - } - if (tInputName.equals("regen")) { - return setOutput("potion.poison" + tModifier); - } - return setOutput("potion.weakness"); - } - if (GT_Utility.areStacksEqual(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L), getInputAt(0))) - { - if (!tModifier.startsWith("strong")) { - return setOutput("potion." + tInputName + ".strong" + (tModifier.isEmpty() ? "" : new StringBuilder().append(".").append(tModifier).toString())); - } - if (tModifier.startsWith("long")) { - return setOutput("potion." + tInputName + tModifier.replaceFirst("long", "")); - } - return setOutput("potion.thick"); - } - if (GT_Utility.areStacksEqual(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), getInputAt(0))) - { - if (!tModifier.startsWith("long")) { - return setOutput("potion." + tInputName + ".long" + (tModifier.isEmpty() ? "" : new StringBuilder().append(".").append(tModifier).toString())); - } - if (tModifier.startsWith("strong")) { - return setOutput("potion." + tInputName + tModifier.replaceFirst("strong", "")); - } - return setOutput("potion.mundane"); - } - if (GT_Utility.areStacksEqual(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gunpowder, 1L), getInputAt(0))) - { - if (!tInputName.endsWith(".splash")) { - return setOutput("potion." + tInputName + ".splash"); - } - return setOutput("potion.mundane"); - } - } + + public GT_MetaTileEntity_PotionBrewer(String aName, int aTier, String aDescription, ITexture[][][] aTextures, String aGUIName, String aNEIName) { + super(aName, aTier, 1, aDescription, aTextures, 1, 0, aGUIName, aNEIName); } - return 0; - } - - private final int setOutput(String aFluidName) - { - this.mOutputFluid = FluidRegistry.getFluidStack(aFluidName, 750); - if (this.mOutputFluid == null) - { - this.mOutputFluid = FluidRegistry.getFluidStack("potion.mundane", getFillableStack().amount); - getInputAt(0).stackSize -= 1; - getFillableStack().amount = 0; - this.mEUt = (4 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); - this.mMaxProgresstime = (128 / (1 << this.mTier - 1)); - return 2; + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_PotionBrewer(this.mName, this.mTier, this.mDescription, this.mTextures, this.mGUIName, this.mNEIName); } - if (getFillableStack().amount < 750) { - return 0; + + public GT_Recipe.GT_Recipe_Map getRecipeList() { + return GT_Recipe.GT_Recipe_Map.sBrewingRecipes; + } + + public int checkRecipe() { + int tCheck = super.checkRecipe(); + if (tCheck != 0) { + return tCheck; + } + FluidStack aFluid = getFillableStack(); + if ((getDrainableStack() == null) && (aFluid != null) && (getInputAt(0) != null)) { + String tInputName = aFluid.getFluid().getName(); + if (tInputName.startsWith("potion.")) { + tInputName = tInputName.replaceFirst("potion.", ""); + int tFirstDot = tInputName.indexOf('.') + 1; + String tModifier = tFirstDot <= 0 ? "" : tInputName.substring(tFirstDot); + if (!tModifier.isEmpty()) { + tInputName = tInputName.replaceFirst("." + tModifier, ""); + } + if (GT_Utility.areStacksEqual(new ItemStack(Items.fermented_spider_eye, 1, 0), getInputAt(0))) { + if (tInputName.equals("poison")) { + return setOutput("potion.damage" + tModifier); + } + if (tInputName.equals("health")) { + return setOutput("potion.damage" + tModifier); + } + if (tInputName.equals("waterbreathing")) { + return setOutput("potion.damage" + tModifier); + } + if (tInputName.equals("nightvision")) { + return setOutput("potion.invisibility" + tModifier); + } + if (tInputName.equals("fireresistance")) { + return setOutput("potion.slowness" + tModifier); + } + if (tInputName.equals("speed")) { + return setOutput("potion.slowness" + tModifier); + } + if (tInputName.equals("strength")) { + return setOutput("potion.weakness" + tModifier); + } + if (tInputName.equals("regen")) { + return setOutput("potion.poison" + tModifier); + } + return setOutput("potion.weakness"); + } + if (GT_Utility.areStacksEqual(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L), getInputAt(0))) { + if (!tModifier.startsWith("strong")) { + return setOutput("potion." + tInputName + ".strong" + (tModifier.isEmpty() ? "" : new StringBuilder().append(".").append(tModifier).toString())); + } + if (tModifier.startsWith("long")) { + return setOutput("potion." + tInputName + tModifier.replaceFirst("long", "")); + } + return setOutput("potion.thick"); + } + if (GT_Utility.areStacksEqual(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), getInputAt(0))) { + if (!tModifier.startsWith("long")) { + return setOutput("potion." + tInputName + ".long" + (tModifier.isEmpty() ? "" : new StringBuilder().append(".").append(tModifier).toString())); + } + if (tModifier.startsWith("strong")) { + return setOutput("potion." + tInputName + tModifier.replaceFirst("strong", "")); + } + return setOutput("potion.mundane"); + } + if (GT_Utility.areStacksEqual(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gunpowder, 1L), getInputAt(0))) { + if (!tInputName.endsWith(".splash")) { + return setOutput("potion." + tInputName + ".splash"); + } + return setOutput("potion.mundane"); + } + } + } + return 0; + } + + private final int setOutput(String aFluidName) { + this.mOutputFluid = FluidRegistry.getFluidStack(aFluidName, 750); + if (this.mOutputFluid == null) { + this.mOutputFluid = FluidRegistry.getFluidStack("potion.mundane", getFillableStack().amount); + getInputAt(0).stackSize -= 1; + getFillableStack().amount = 0; + this.mEUt = (4 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); + this.mMaxProgresstime = (128 / (1 << this.mTier - 1)); + return 2; + } + if (getFillableStack().amount < 750) { + return 0; + } + getInputAt(0).stackSize -= 1; + getFillableStack().amount -= 750; + this.mEUt = (4 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); + this.mMaxProgresstime = (128 / (1 << this.mTier - 1)); + return 2; + } + + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) && (getRecipeList().containsInput(aStack)); + } + + public boolean isFluidInputAllowed(FluidStack aFluid) { + return (aFluid.getFluid().getName().startsWith("potion.")) || (super.isFluidInputAllowed(aFluid)); + } + + public int getCapacity() { + return 750; } - getInputAt(0).stackSize -= 1; - getFillableStack().amount -= 750; - this.mEUt = (4 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); - this.mMaxProgresstime = (128 / (1 << this.mTier - 1)); - return 2; - } - - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) && (getRecipeList().containsInput(aStack)); - } - - public boolean isFluidInputAllowed(FluidStack aFluid) - { - return (aFluid.getFluid().getName().startsWith("potion.")) || (super.isFluidInputAllowed(aFluid)); - } - - public int getCapacity() - { - return 750; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Printer.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Printer.java index b4058f88..2f1eecdd 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Printer.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Printer.java @@ -7,59 +7,47 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; +import net.minecraft.item.ItemStack; import java.util.ArrayList; -import net.minecraft.item.ItemStack; - public class GT_MetaTileEntity_Printer - extends GT_MetaTileEntity_BasicMachine -{ - public GT_MetaTileEntity_Printer(int aID, String aName, String aNameRegional, int aTier) - { - super(aID, aName, aNameRegional, aTier, 1, "It can copy Books and paint Stuff", 1, 1, "Printer.png", GT_Recipe.GT_Recipe_Map.sPrinterRecipes.mNEIName, new ITexture[0]); - } - - public GT_MetaTileEntity_Printer(String aName, int aTier, String aDescription, ITexture[][][] aTextures, String aGUIName, String aNEIName) - { - super(aName, aTier, 1, aDescription, aTextures, 2, 2, aGUIName, aNEIName); - } - - public int checkRecipe() - { - if (getOutputAt(0) != null) - { - this.mOutputBlocked += 1; + extends GT_MetaTileEntity_BasicMachine { + public GT_MetaTileEntity_Printer(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 1, "It can copy Books and paint Stuff", 1, 1, "Printer.png", GT_Recipe.GT_Recipe_Map.sPrinterRecipes.mNEIName, new ITexture[0]); } - else if ((GT_Utility.isStackValid(getInputAt(0))) && (getInputAt(0).stackSize > 0) && - (GT_Utility.isStackInvalid(getSpecialSlot())) && - (OrePrefixes.block.contains(getInputAt(0)))) - { - ArrayList tList = GT_OreDictUnificator.getOres(GT_OreDictUnificator.getAssociation(getInputAt(0))); - if (tList.size() > 1) - { - tList.add(tList.get(0)); - int i = 0; - for (int j = tList.size() - 1; i < j; i++) { - if (GT_Utility.areStacksEqual(getInputAt(0), (ItemStack)tList.get(i))) - { - this.mOutputItems[0] = GT_Utility.copyAmount(1L, new Object[] { tList.get(i + 1) }); - this.mEUt = (1 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); - this.mMaxProgresstime = (32 / (1 << this.mTier - 1)); - getInputAt(0).stackSize -= 1; - return 2; - } + + public GT_MetaTileEntity_Printer(String aName, int aTier, String aDescription, ITexture[][][] aTextures, String aGUIName, String aNEIName) { + super(aName, aTier, 1, aDescription, aTextures, 2, 2, aGUIName, aNEIName); + } + + public int checkRecipe() { + if (getOutputAt(0) != null) { + this.mOutputBlocked += 1; + } else if ((GT_Utility.isStackValid(getInputAt(0))) && (getInputAt(0).stackSize > 0) && + (GT_Utility.isStackInvalid(getSpecialSlot())) && + (OrePrefixes.block.contains(getInputAt(0)))) { + ArrayList tList = GT_OreDictUnificator.getOres(GT_OreDictUnificator.getAssociation(getInputAt(0))); + if (tList.size() > 1) { + tList.add(tList.get(0)); + int i = 0; + for (int j = tList.size() - 1; i < j; i++) { + if (GT_Utility.areStacksEqual(getInputAt(0), (ItemStack) tList.get(i))) { + this.mOutputItems[0] = GT_Utility.copyAmount(1L, new Object[]{tList.get(i + 1)}); + this.mEUt = (1 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); + this.mMaxProgresstime = (32 / (1 << this.mTier - 1)); + getInputAt(0).stackSize -= 1; + return 2; + } + } + } } - } + this.mMaxProgresstime = 0; + return 0; + } + + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return null; } - this.mMaxProgresstime = 0; - return 0; - } - - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return null; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java index 40020ef4..b1ba0101 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java @@ -1,19 +1,5 @@ package gregtech.common.tileentities.machines.basic; -import static gregtech.api.enums.GT_Values.V; - -import java.util.ArrayList; -import java.util.Iterator; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.ChunkPosition; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.IFluidBlock; import gregtech.api.enums.Textures; import gregtech.api.gui.GT_Container_BasicTank; import gregtech.api.gui.GT_GUIContainer_BasicTank; @@ -21,360 +7,440 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.BaseTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.ChunkPosition; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidBlock; + +import java.util.ArrayList; +import java.util.Iterator; + +import static gregtech.api.enums.GT_Values.V; public class GT_MetaTileEntity_Pump extends GT_MetaTileEntity_Hatch { - public ArrayList mPumpList = new ArrayList(); - public int mPumpTimer = 0; - public int mPumpCountBelow = 0; - public Block mPumpedBlock1 = null; - public Block mPumpedBlock2 = null; + public ArrayList mPumpList = new ArrayList(); + public int mPumpTimer = 0; + public int mPumpCountBelow = 0; + public Block mPumpedBlock1 = null; + public Block mPumpedBlock2 = null; - public GT_MetaTileEntity_Pump(int aID, String aName, String aNameRegional, int aTier) { - super(aID, aName, aNameRegional, aTier, 3, "The best way of emptying Oceans!"); - } + public GT_MetaTileEntity_Pump(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 3, "The best way of emptying Oceans!"); + } - public GT_MetaTileEntity_Pump(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { - super(aName, aTier, 3, aDescription,aTextures); - } + public GT_MetaTileEntity_Pump(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 3, aDescription, aTextures); + } - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_Pump(this.mName, this.mTier, this.mDescription, this.mTextures); - } + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Pump(this.mName, this.mTier, this.mDescription, this.mTextures); + } - public void saveNBTData(NBTTagCompound aNBT) { - super.saveNBTData(aNBT); - aNBT.setString("mPumpedBlock1", this.mPumpedBlock1 == null ? "" : this.mPumpedBlock1.getUnlocalizedName()); - aNBT.setString("mPumpedBlock2", this.mPumpedBlock2 == null ? "" : this.mPumpedBlock2.getUnlocalizedName()); - } + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + aNBT.setString("mPumpedBlock1", this.mPumpedBlock1 == null ? "" : this.mPumpedBlock1.getUnlocalizedName()); + aNBT.setString("mPumpedBlock2", this.mPumpedBlock2 == null ? "" : this.mPumpedBlock2.getUnlocalizedName()); + } - public void loadNBTData(NBTTagCompound aNBT) { - super.loadNBTData(aNBT); - this.mPumpedBlock1 = Block.getBlockFromName(aNBT.getString("mPumpedBlock1")); - this.mPumpedBlock2 = Block.getBlockFromName(aNBT.getString("mPumpedBlock2")); - } - - @Override + public void loadNBTData(NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + this.mPumpedBlock1 = Block.getBlockFromName(aNBT.getString("mPumpedBlock1")); + this.mPumpedBlock2 = Block.getBlockFromName(aNBT.getString("mPumpedBlock2")); + } + + @Override public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_Container_BasicTank(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override + return new GT_Container_BasicTank(aPlayerInventory, aBaseMetaTileEntity); + } + + @Override public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_BasicTank(aPlayerInventory, aBaseMetaTileEntity, getLocalName()); - } - @Override - public boolean doesFillContainers() { - return true; - } - @Override - public boolean doesEmptyContainers() { - return false; - } - @Override - public boolean canTankBeFilled() { - return false; - } - @Override - public boolean canTankBeEmptied() { - return true; - } - @Override - public boolean displaysItemStack() { - return true; - } - @Override - public boolean displaysStackSize() { - return false; - } - - @Override - public boolean isFluidInputAllowed(FluidStack aFluid) { - return false; - } + return new GT_GUIContainer_BasicTank(aPlayerInventory, aBaseMetaTileEntity, getLocalName()); + } - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - super.onPostTick(aBaseMetaTileEntity, aTick); - if (getBaseMetaTileEntity().isServerSide()) { - this.mPumpTimer -= 1; - if ((getBaseMetaTileEntity() instanceof BaseTileEntity)) { - ((BaseTileEntity) getBaseMetaTileEntity()).ignoreUnloadedChunks = false; - } - this.doTickProfilingInThisTick = true; - this.mPumpCountBelow = 0; - IGregTechTileEntity tTileEntity; - for (int i = 1; (i < 21) && ((tTileEntity = getBaseMetaTileEntity().getIGregTechTileEntityAtSideAndDistance((byte) 0, i)) != null) - && (tTileEntity.getMetaTileEntity() != null) && ((tTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_Pump)); i++) { - getBaseMetaTileEntity().setActive(tTileEntity.isActive()); - this.mPumpCountBelow += 1; - ((GT_MetaTileEntity_Pump) tTileEntity.getMetaTileEntity()).mPumpTimer -= 1; - } - if (this.mPumpCountBelow <= 0) { - if ((getBaseMetaTileEntity().isAllowedToWork()) && (getBaseMetaTileEntity().isUniversalEnergyStored(16*((int)Math.pow(4, this.mTier)))) - && ((this.mFluid == null) || (this.mFluid.amount + 1000 <= getCapacity()))) { - boolean tMovedOneDown = false; - if ((this.mPumpList.isEmpty()) && (getBaseMetaTileEntity().getTimer() % 100L == 0L)) { - tMovedOneDown = moveOneDown(); - } - if ((GT_Utility.isBlockInvalid(this.mPumpedBlock1)) || (GT_Utility.isBlockInvalid(this.mPumpedBlock2))) { - getFluidAt(getBaseMetaTileEntity().getXCoord(), getYOfPumpHead() - 1, getBaseMetaTileEntity().getZCoord()); - if ((GT_Utility.isBlockInvalid(this.mPumpedBlock1)) || (GT_Utility.isBlockInvalid(this.mPumpedBlock2))) { - getFluidAt(getBaseMetaTileEntity().getXCoord(), getYOfPumpHead(), getBaseMetaTileEntity().getZCoord() + 1); - } - if ((GT_Utility.isBlockInvalid(this.mPumpedBlock1)) || (GT_Utility.isBlockInvalid(this.mPumpedBlock2))) { - getFluidAt(getBaseMetaTileEntity().getXCoord(), getYOfPumpHead(), getBaseMetaTileEntity().getZCoord() - 1); - } - if ((GT_Utility.isBlockInvalid(this.mPumpedBlock1)) || (GT_Utility.isBlockInvalid(this.mPumpedBlock2))) { - getFluidAt(getBaseMetaTileEntity().getXCoord() + 1, getYOfPumpHead(), getBaseMetaTileEntity().getZCoord()); - } - if ((GT_Utility.isBlockInvalid(this.mPumpedBlock1)) || (GT_Utility.isBlockInvalid(this.mPumpedBlock2))) { - getFluidAt(getBaseMetaTileEntity().getXCoord() - 1, getYOfPumpHead(), getBaseMetaTileEntity().getZCoord()); - } - } else if (getYOfPumpHead() < getBaseMetaTileEntity().getYCoord()) { - if ((tMovedOneDown) || ((this.mPumpList.isEmpty()) && (getBaseMetaTileEntity().getTimer() % 200L == 100L)) || (getBaseMetaTileEntity().getTimer() % 72000L == 100L)) { - 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(), 10*((int)Math.pow(1.6, this.mTier))); - } - } - if ((!tMovedOneDown) && (this.mPumpTimer <= 0)) { - while ((!this.mPumpList.isEmpty()) - && (!consumeFluid(((ChunkPosition) this.mPumpList.get(this.mPumpList.size() - 1)).chunkPosX, - ((ChunkPosition) this.mPumpList.get(this.mPumpList.size() - 1)).chunkPosY, - ((ChunkPosition) this.mPumpList.remove(this.mPumpList.size() - 1)).chunkPosZ))) { - } - this.mPumpTimer = 160/((int)Math.pow(2, this.mTier)); - } - } - } - getBaseMetaTileEntity().setActive(!this.mPumpList.isEmpty()); - } - } - } + @Override + public boolean doesFillContainers() { + return true; + } - private boolean moveOneDown() { - if ((this.mInventory[0] == null) || (this.mInventory[0].stackSize < 1) - || (!GT_Utility.areStacksEqual(this.mInventory[0], GT_ModHandler.getIC2Item("miningPipe", 1L)))) { - return false; - } - int yHead = getYOfPumpHead(); - if (yHead <= 0) { - return false; - } - if ((!consumeFluid(getBaseMetaTileEntity().getXCoord(), yHead - 1, getBaseMetaTileEntity().getZCoord()))&& (!getBaseMetaTileEntity().getAir(getBaseMetaTileEntity().getXCoord(), yHead - 1, getBaseMetaTileEntity().getZCoord()))) { + @Override + public boolean doesEmptyContainers() { + return false; + } - return false; - } - if (!(getBaseMetaTileEntity().getWorld().setBlock(getBaseMetaTileEntity().getXCoord(), yHead - 1, getBaseMetaTileEntity().getZCoord(),GT_Utility.getBlockFromStack(GT_ModHandler.getIC2Item("miningPipeTip", 1L))))) { - return false; - } - if (yHead != getBaseMetaTileEntity().getYCoord()) { - getBaseMetaTileEntity().getWorld().setBlock(getBaseMetaTileEntity().getXCoord(), yHead, getBaseMetaTileEntity().getZCoord(),GT_Utility.getBlockFromStack(GT_ModHandler.getIC2Item("miningPipe", 1L))); - } - getBaseMetaTileEntity().decrStackSize(0, 1); - return true; - } + @Override + public boolean canTankBeFilled() { + return false; + } - private int getYOfPumpHead() { - int y = getBaseMetaTileEntity().getYCoord() - 1; - while (getBaseMetaTileEntity().getBlock(getBaseMetaTileEntity().getXCoord(), y, getBaseMetaTileEntity().getZCoord()) == GT_Utility - .getBlockFromStack(GT_ModHandler.getIC2Item("miningPipe", 1L))) { - y--; - } - if (y == getBaseMetaTileEntity().getYCoord() - 1) { - if (getBaseMetaTileEntity().getBlock(getBaseMetaTileEntity().getXCoord(), y, getBaseMetaTileEntity().getZCoord()) != GT_Utility - .getBlockFromStack(GT_ModHandler.getIC2Item("miningPipeTip", 1L))) { - return y + 1; - } - } else if (getBaseMetaTileEntity().getBlock(getBaseMetaTileEntity().getXCoord(), y, getBaseMetaTileEntity().getZCoord()) != GT_Utility - .getBlockFromStack(GT_ModHandler.getIC2Item("miningPipeTip", 1L))&&this.mInventory[0] != null&&this.mInventory[0].stackSize>0&>_Utility.areStacksEqual(this.mInventory[0], GT_ModHandler.getIC2Item("miningPipe", 1L))) { - getBaseMetaTileEntity().getWorld().setBlock(getBaseMetaTileEntity().getXCoord(), y, getBaseMetaTileEntity().getZCoord(), - GT_Utility.getBlockFromStack(GT_ModHandler.getIC2Item("miningPipeTip", 1L))); - getBaseMetaTileEntity().decrStackSize(0, 1); - - } - return y; - } + @Override + public boolean canTankBeEmptied() { + return true; + } - private void scanForFluid(int aX, int aY, int aZ, ArrayList aList, int mX, int mZ, int mDist) { - doTickProfilingInThisTick = false; + @Override + public boolean displaysItemStack() { + return true; + } + + @Override + public boolean displaysStackSize() { + return false; + } + + @Override + public boolean isFluidInputAllowed(FluidStack aFluid) { + return false; + } + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + super.onPostTick(aBaseMetaTileEntity, aTick); + if (getBaseMetaTileEntity().isServerSide()) { + this.mPumpTimer -= 1; + if ((getBaseMetaTileEntity() instanceof BaseTileEntity)) { + ((BaseTileEntity) getBaseMetaTileEntity()).ignoreUnloadedChunks = false; + } + this.doTickProfilingInThisTick = true; + this.mPumpCountBelow = 0; + IGregTechTileEntity tTileEntity; + for (int i = 1; (i < 21) && ((tTileEntity = getBaseMetaTileEntity().getIGregTechTileEntityAtSideAndDistance((byte) 0, i)) != null) + && (tTileEntity.getMetaTileEntity() != null) && ((tTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_Pump)); i++) { + getBaseMetaTileEntity().setActive(tTileEntity.isActive()); + this.mPumpCountBelow += 1; + ((GT_MetaTileEntity_Pump) tTileEntity.getMetaTileEntity()).mPumpTimer -= 1; + } + if (this.mPumpCountBelow <= 0) { + if ((getBaseMetaTileEntity().isAllowedToWork()) && (getBaseMetaTileEntity().isUniversalEnergyStored(16 * ((int) Math.pow(4, this.mTier)))) + && ((this.mFluid == null) || (this.mFluid.amount + 1000 <= getCapacity()))) { + boolean tMovedOneDown = false; + if ((this.mPumpList.isEmpty()) && (getBaseMetaTileEntity().getTimer() % 100L == 0L)) { + tMovedOneDown = moveOneDown(); + } + if ((GT_Utility.isBlockInvalid(this.mPumpedBlock1)) || (GT_Utility.isBlockInvalid(this.mPumpedBlock2))) { + getFluidAt(getBaseMetaTileEntity().getXCoord(), getYOfPumpHead() - 1, getBaseMetaTileEntity().getZCoord()); + if ((GT_Utility.isBlockInvalid(this.mPumpedBlock1)) || (GT_Utility.isBlockInvalid(this.mPumpedBlock2))) { + getFluidAt(getBaseMetaTileEntity().getXCoord(), getYOfPumpHead(), getBaseMetaTileEntity().getZCoord() + 1); + } + if ((GT_Utility.isBlockInvalid(this.mPumpedBlock1)) || (GT_Utility.isBlockInvalid(this.mPumpedBlock2))) { + getFluidAt(getBaseMetaTileEntity().getXCoord(), getYOfPumpHead(), getBaseMetaTileEntity().getZCoord() - 1); + } + if ((GT_Utility.isBlockInvalid(this.mPumpedBlock1)) || (GT_Utility.isBlockInvalid(this.mPumpedBlock2))) { + getFluidAt(getBaseMetaTileEntity().getXCoord() + 1, getYOfPumpHead(), getBaseMetaTileEntity().getZCoord()); + } + if ((GT_Utility.isBlockInvalid(this.mPumpedBlock1)) || (GT_Utility.isBlockInvalid(this.mPumpedBlock2))) { + getFluidAt(getBaseMetaTileEntity().getXCoord() - 1, getYOfPumpHead(), getBaseMetaTileEntity().getZCoord()); + } + } else if (getYOfPumpHead() < getBaseMetaTileEntity().getYCoord()) { + if ((tMovedOneDown) || ((this.mPumpList.isEmpty()) && (getBaseMetaTileEntity().getTimer() % 200L == 100L)) || (getBaseMetaTileEntity().getTimer() % 72000L == 100L)) { + 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(), 10 * ((int) Math.pow(1.6, this.mTier))); + } + } + if ((!tMovedOneDown) && (this.mPumpTimer <= 0)) { + while ((!this.mPumpList.isEmpty()) + && (!consumeFluid(((ChunkPosition) this.mPumpList.get(this.mPumpList.size() - 1)).chunkPosX, + ((ChunkPosition) this.mPumpList.get(this.mPumpList.size() - 1)).chunkPosY, + ((ChunkPosition) this.mPumpList.remove(this.mPumpList.size() - 1)).chunkPosZ))) { + } + this.mPumpTimer = 160 / ((int) Math.pow(2, this.mTier)); + } + } + } + getBaseMetaTileEntity().setActive(!this.mPumpList.isEmpty()); + } + } + } + + private boolean moveOneDown() { + if ((this.mInventory[0] == null) || (this.mInventory[0].stackSize < 1) + || (!GT_Utility.areStacksEqual(this.mInventory[0], GT_ModHandler.getIC2Item("miningPipe", 1L)))) { + return false; + } + int yHead = getYOfPumpHead(); + if (yHead <= 0) { + return false; + } + if ((!consumeFluid(getBaseMetaTileEntity().getXCoord(), yHead - 1, getBaseMetaTileEntity().getZCoord())) && (!getBaseMetaTileEntity().getAir(getBaseMetaTileEntity().getXCoord(), yHead - 1, getBaseMetaTileEntity().getZCoord()))) { + + return false; + } + if (!(getBaseMetaTileEntity().getWorld().setBlock(getBaseMetaTileEntity().getXCoord(), yHead - 1, getBaseMetaTileEntity().getZCoord(), GT_Utility.getBlockFromStack(GT_ModHandler.getIC2Item("miningPipeTip", 1L))))) { + return false; + } + if (yHead != getBaseMetaTileEntity().getYCoord()) { + getBaseMetaTileEntity().getWorld().setBlock(getBaseMetaTileEntity().getXCoord(), yHead, getBaseMetaTileEntity().getZCoord(), GT_Utility.getBlockFromStack(GT_ModHandler.getIC2Item("miningPipe", 1L))); + } + getBaseMetaTileEntity().decrStackSize(0, 1); + return true; + } + + private int getYOfPumpHead() { + int y = getBaseMetaTileEntity().getYCoord() - 1; + while (getBaseMetaTileEntity().getBlock(getBaseMetaTileEntity().getXCoord(), y, getBaseMetaTileEntity().getZCoord()) == GT_Utility + .getBlockFromStack(GT_ModHandler.getIC2Item("miningPipe", 1L))) { + y--; + } + if (y == getBaseMetaTileEntity().getYCoord() - 1) { + if (getBaseMetaTileEntity().getBlock(getBaseMetaTileEntity().getXCoord(), y, getBaseMetaTileEntity().getZCoord()) != GT_Utility + .getBlockFromStack(GT_ModHandler.getIC2Item("miningPipeTip", 1L))) { + return y + 1; + } + } else if (getBaseMetaTileEntity().getBlock(getBaseMetaTileEntity().getXCoord(), y, getBaseMetaTileEntity().getZCoord()) != GT_Utility + .getBlockFromStack(GT_ModHandler.getIC2Item("miningPipeTip", 1L)) && this.mInventory[0] != null && this.mInventory[0].stackSize > 0 && GT_Utility.areStacksEqual(this.mInventory[0], GT_ModHandler.getIC2Item("miningPipe", 1L))) { + getBaseMetaTileEntity().getWorld().setBlock(getBaseMetaTileEntity().getXCoord(), y, getBaseMetaTileEntity().getZCoord(), + GT_Utility.getBlockFromStack(GT_ModHandler.getIC2Item("miningPipeTip", 1L))); + getBaseMetaTileEntity().decrStackSize(0, 1); + + } + return y; + } + + private void scanForFluid(int aX, int aY, int aZ, ArrayList aList, int mX, int mZ, int mDist) { + doTickProfilingInThisTick = false; ArrayList tList1 = new ArrayList(); ArrayList tList2 = new ArrayList(); tList1.add(new ChunkPosition(aX, aY, aZ)); - while(!tList1.isEmpty()) - { + while (!tList1.isEmpty()) { Iterator i$ = tList1.iterator(); - do - { - if(!i$.hasNext()) + do { + if (!i$.hasNext()) break; - ChunkPosition tPos = (ChunkPosition)i$.next(); - if(tPos.chunkPosX < mX + mDist) + ChunkPosition tPos = (ChunkPosition) i$.next(); + if (tPos.chunkPosX < mX + mDist) addToFirstListIfFluidAndNotAlreadyAddedToAnyOfTheLists(tPos.chunkPosX + 1, tPos.chunkPosY, tPos.chunkPosZ, tList2, aList); - if(tPos.chunkPosX > mX - mDist) + if (tPos.chunkPosX > mX - mDist) addToFirstListIfFluidAndNotAlreadyAddedToAnyOfTheLists(tPos.chunkPosX - 1, tPos.chunkPosY, tPos.chunkPosZ, tList2, aList); - if(tPos.chunkPosZ < mZ + mDist) + if (tPos.chunkPosZ < mZ + mDist) addToFirstListIfFluidAndNotAlreadyAddedToAnyOfTheLists(tPos.chunkPosX, tPos.chunkPosY, tPos.chunkPosZ + 1, tList2, aList); - if(tPos.chunkPosZ > mZ - mDist) + if (tPos.chunkPosZ > mZ - mDist) addToFirstListIfFluidAndNotAlreadyAddedToAnyOfTheLists(tPos.chunkPosX, tPos.chunkPosY, tPos.chunkPosZ - 1, tList2, aList); addToFirstListIfFluidAndNotAlreadyAddedToAnyOfTheLists(tPos.chunkPosX, tPos.chunkPosY + 1, tPos.chunkPosZ, tList2, aList); ChunkPosition tCoordinate = new ChunkPosition(aX, aY + 1, aZ); - if(tPos.chunkPosX == mX && tPos.chunkPosZ == mZ && tPos.chunkPosY < getBaseMetaTileEntity().getYCoord() && !aList.contains(tCoordinate) && !tList2.contains(tCoordinate)) + if (tPos.chunkPosX == mX && tPos.chunkPosZ == mZ && tPos.chunkPosY < getBaseMetaTileEntity().getYCoord() && !aList.contains(tCoordinate) && !tList2.contains(tCoordinate)) tList2.add(tCoordinate); - } while(true); + } while (true); aList.addAll(tList2); tList1 = tList2; tList2 = new ArrayList(); } - for(int y = getBaseMetaTileEntity().getYCoord(); y >= aY; y--) + for (int y = getBaseMetaTileEntity().getYCoord(); y >= aY; y--) aList.remove(new ChunkPosition(aX, y, aZ)); - } + } - private boolean addToFirstListIfFluidAndNotAlreadyAddedToAnyOfTheLists(int aX, int aY, int aZ, ArrayList aList1, - ArrayList aList2) { - ChunkPosition tCoordinate = new ChunkPosition(aX, aY, aZ); - if ((!aList1.contains(tCoordinate)) && (!aList2.contains(tCoordinate))) { - Block aBlock = getBaseMetaTileEntity().getBlock(aX, aY, aZ); - if ((this.mPumpedBlock1 == aBlock) || (this.mPumpedBlock2 == aBlock)) { - aList1.add(tCoordinate); - return true; - } - } - return false; - } + private boolean addToFirstListIfFluidAndNotAlreadyAddedToAnyOfTheLists(int aX, int aY, int aZ, ArrayList aList1, + ArrayList aList2) { + ChunkPosition tCoordinate = new ChunkPosition(aX, aY, aZ); + if ((!aList1.contains(tCoordinate)) && (!aList2.contains(tCoordinate))) { + Block aBlock = getBaseMetaTileEntity().getBlock(aX, aY, aZ); + if ((this.mPumpedBlock1 == aBlock) || (this.mPumpedBlock2 == aBlock)) { + aList1.add(tCoordinate); + return true; + } + } + return false; + } - private void getFluidAt(int aX, int aY, int aZ) { - Block aBlock = getBaseMetaTileEntity().getBlock(aX, aY, aZ); - if (GT_Utility.isBlockValid(aBlock)) { - if ((aBlock == Blocks.water) || (aBlock == Blocks.flowing_water)) { - this.mPumpedBlock1 = Blocks.water; - this.mPumpedBlock2 = Blocks.flowing_water; - return; - } - if ((aBlock == Blocks.lava) || (aBlock == Blocks.flowing_lava)) { - this.mPumpedBlock1 = Blocks.lava; - this.mPumpedBlock2 = Blocks.flowing_lava; - return; - } - if ((aBlock instanceof IFluidBlock)) { - this.mPumpedBlock1 = aBlock; - this.mPumpedBlock2 = aBlock; - return; - } - } - this.mPumpedBlock1 = null; - this.mPumpedBlock2 = null; - } + private void getFluidAt(int aX, int aY, int aZ) { + Block aBlock = getBaseMetaTileEntity().getBlock(aX, aY, aZ); + if (GT_Utility.isBlockValid(aBlock)) { + if ((aBlock == Blocks.water) || (aBlock == Blocks.flowing_water)) { + this.mPumpedBlock1 = Blocks.water; + this.mPumpedBlock2 = Blocks.flowing_water; + return; + } + if ((aBlock == Blocks.lava) || (aBlock == Blocks.flowing_lava)) { + this.mPumpedBlock1 = Blocks.lava; + this.mPumpedBlock2 = Blocks.flowing_lava; + return; + } + if ((aBlock instanceof IFluidBlock)) { + this.mPumpedBlock1 = aBlock; + this.mPumpedBlock2 = aBlock; + return; + } + } + this.mPumpedBlock1 = null; + this.mPumpedBlock2 = null; + } - private boolean consumeFluid(int aX, int aY, int aZ) { - Block aBlock = getBaseMetaTileEntity().getBlock(aX, aY, aZ); - int aMeta = getBaseMetaTileEntity().getMetaID(aX, aY, aZ); - if ((GT_Utility.isBlockValid(aBlock)) && ((this.mPumpedBlock1 == aBlock) || (this.mPumpedBlock2 == aBlock))) { - if ((aBlock == Blocks.water) || (aBlock == Blocks.flowing_water)) { - if (aMeta == 0) { - if (this.mFluid == null) { - getBaseMetaTileEntity().decreaseStoredEnergyUnits(16*((int)Math.pow(4, this.mTier)), true); - this.mFluid = GT_ModHandler.getWater(1000L); - } else if (GT_ModHandler.isWater(this.mFluid)) { - getBaseMetaTileEntity().decreaseStoredEnergyUnits(16*((int)Math.pow(4, this.mTier)), true); - this.mFluid.amount += 1000; - } else { - return false; - } - } else { - getBaseMetaTileEntity().decreaseStoredEnergyUnits(4*((int)Math.pow(4, this.mTier)), true); - } - } - if ((aBlock == Blocks.lava) || (aBlock == Blocks.flowing_lava)) { - if (aMeta == 0) { - if (this.mFluid == null) { - getBaseMetaTileEntity().decreaseStoredEnergyUnits(16*((int)Math.pow(4, this.mTier)), true); - this.mFluid = GT_ModHandler.getLava(1000L); - } else if (GT_ModHandler.isLava(this.mFluid)) { - getBaseMetaTileEntity().decreaseStoredEnergyUnits(16*((int)Math.pow(4, this.mTier)), true); - this.mFluid.amount += 1000; - } else { - return false; - } - } else { - getBaseMetaTileEntity().decreaseStoredEnergyUnits(4*((int)Math.pow(4, this.mTier)), true); - } - } - if ((aBlock instanceof IFluidBlock)) { - if (this.mFluid == null) { - this.mFluid = ((IFluidBlock) aBlock).drain(getBaseMetaTileEntity().getWorld(), aX, aY, aZ, true); - getBaseMetaTileEntity().decreaseStoredEnergyUnits(this.mFluid == null ? 1000 : this.mFluid.amount, true); - }else if(this.mFluid.isFluidEqual(((IFluidBlock) aBlock).drain(getBaseMetaTileEntity().getWorld(), aX, aY, aZ, false))){ - this.getBaseMetaTileEntity().getWorld().setBlockToAir( aX, aY, aZ); - this.mFluid.amount += 1000; - getBaseMetaTileEntity().decreaseStoredEnergyUnits(16*((int)Math.pow(4, this.mTier)), true); - }else { - return false; - } - } - getBaseMetaTileEntity().getWorld().setBlock(aX, aY, aZ,Blocks.air,0,2); - return true; - } - return false; - } + private boolean consumeFluid(int aX, int aY, int aZ) { + Block aBlock = getBaseMetaTileEntity().getBlock(aX, aY, aZ); + int aMeta = getBaseMetaTileEntity().getMetaID(aX, aY, aZ); + if ((GT_Utility.isBlockValid(aBlock)) && ((this.mPumpedBlock1 == aBlock) || (this.mPumpedBlock2 == aBlock))) { + if ((aBlock == Blocks.water) || (aBlock == Blocks.flowing_water)) { + if (aMeta == 0) { + if (this.mFluid == null) { + getBaseMetaTileEntity().decreaseStoredEnergyUnits(16 * ((int) Math.pow(4, this.mTier)), true); + this.mFluid = GT_ModHandler.getWater(1000L); + } else if (GT_ModHandler.isWater(this.mFluid)) { + getBaseMetaTileEntity().decreaseStoredEnergyUnits(16 * ((int) Math.pow(4, this.mTier)), true); + this.mFluid.amount += 1000; + } else { + return false; + } + } else { + getBaseMetaTileEntity().decreaseStoredEnergyUnits(4 * ((int) Math.pow(4, this.mTier)), true); + } + } + if ((aBlock == Blocks.lava) || (aBlock == Blocks.flowing_lava)) { + if (aMeta == 0) { + if (this.mFluid == null) { + getBaseMetaTileEntity().decreaseStoredEnergyUnits(16 * ((int) Math.pow(4, this.mTier)), true); + this.mFluid = GT_ModHandler.getLava(1000L); + } else if (GT_ModHandler.isLava(this.mFluid)) { + getBaseMetaTileEntity().decreaseStoredEnergyUnits(16 * ((int) Math.pow(4, this.mTier)), true); + this.mFluid.amount += 1000; + } else { + return false; + } + } else { + getBaseMetaTileEntity().decreaseStoredEnergyUnits(4 * ((int) Math.pow(4, this.mTier)), true); + } + } + if ((aBlock instanceof IFluidBlock)) { + if (this.mFluid == null) { + this.mFluid = ((IFluidBlock) aBlock).drain(getBaseMetaTileEntity().getWorld(), aX, aY, aZ, true); + getBaseMetaTileEntity().decreaseStoredEnergyUnits(this.mFluid == null ? 1000 : this.mFluid.amount, true); + } else if (this.mFluid.isFluidEqual(((IFluidBlock) aBlock).drain(getBaseMetaTileEntity().getWorld(), aX, aY, aZ, false))) { + this.getBaseMetaTileEntity().getWorld().setBlockToAir(aX, aY, aZ); + this.mFluid.amount += 1000; + getBaseMetaTileEntity().decreaseStoredEnergyUnits(16 * ((int) Math.pow(4, this.mTier)), true); + } else { + return false; + } + } + getBaseMetaTileEntity().getWorld().setBlock(aX, aY, aZ, Blocks.air, 0, 2); + return true; + } + return false; + } - @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) return true; - aBaseMetaTileEntity.openGUI(aPlayer); - return true; - } + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + if (aBaseMetaTileEntity.isClientSide()) return true; + aBaseMetaTileEntity.openGUI(aPlayer); + return true; + } - @Override public boolean isSimpleMachine() {return false;} - @Override public boolean isOverclockerUpgradable() {return false;} - @Override public boolean isTransformerUpgradable() {return false;} - @Override public boolean isElectric() {return true;} - @Override public boolean isFacingValid(byte aFacing) {return true;} - @Override public boolean isEnetInput() {return true;} - @Override public boolean isInputFacing(byte aSide) {return true;} - @Override public boolean isOutputFacing(byte aSide) {return false;} - @Override public boolean isTeleporterCompatible() {return false;} - @Override public long getMinimumStoredEU() {return V[mTier]*16;} - @Override public long maxEUStore() {return V[mTier]*64;} - @Override public long maxEUInput() {return V[mTier];} - @Override public long maxSteamStore() {return maxEUStore();} - @Override public long maxAmperesIn() {return 2;} - @Override public int getStackDisplaySlot() {return 2;} - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - - - @Override - public int getCapacity() { - return 16000*this.mTier; - } - @Override - public int getTankPressure() { - return 100; - } - - @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 == 0||aSide ==1) ? null : new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ADV_PUMP) }; - } + @Override + public boolean isSimpleMachine() { + return false; + } - @Override - public ITexture[] getTexturesActive(ITexture aBaseTexture) { - return getTexturesInactive(aBaseTexture); - } + @Override + public boolean isOverclockerUpgradable() { + return false; + } - @Override - public ITexture[] getTexturesInactive(ITexture aBaseTexture) { - return new ITexture[] { - new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ADV_PUMP),new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ADV_PUMP), - new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ADV_PUMP),new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ADV_PUMP),}; - } + @Override + public boolean isTransformerUpgradable() { + return false; + } + + @Override + public boolean isElectric() { + return true; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return true; + } + + @Override + public boolean isEnetInput() { + return true; + } + + @Override + public boolean isInputFacing(byte aSide) { + return true; + } + + @Override + public boolean isOutputFacing(byte aSide) { + return false; + } + + @Override + public boolean isTeleporterCompatible() { + return false; + } + + @Override + public long getMinimumStoredEU() { + return V[mTier] * 16; + } + + @Override + public long maxEUStore() { + return V[mTier] * 64; + } + + @Override + public long maxEUInput() { + return V[mTier]; + } + + @Override + public long maxSteamStore() { + return maxEUStore(); + } + + @Override + public long maxAmperesIn() { + return 2; + } + + @Override + public int getStackDisplaySlot() { + return 2; + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + + @Override + public int getCapacity() { + return 16000 * this.mTier; + } + + @Override + public int getTankPressure() { + return 100; + } + + @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 == 0 || aSide == 1) ? null : new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ADV_PUMP)}; + } + + @Override + public ITexture[] getTexturesActive(ITexture aBaseTexture) { + return getTexturesInactive(aBaseTexture); + } + + @Override + public ITexture[] getTexturesInactive(ITexture aBaseTexture) { + return new ITexture[]{ + new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ADV_PUMP), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ADV_PUMP), + new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ADV_PUMP), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ADV_PUMP),}; + } } diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Replicator.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Replicator.java index c5a0ecfc..6f3818b4 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Replicator.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Replicator.java @@ -1,12 +1,7 @@ package gregtech.common.tileentities.machines.basic; import gregtech.api.GregTech_API; -import gregtech.api.enums.Element; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; +import gregtech.api.enums.*; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; @@ -15,105 +10,86 @@ import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import gregtech.common.items.behaviors.Behaviour_DataOrb; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; - import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; +import java.util.Iterator; + public class GT_MetaTileEntity_Replicator - extends GT_MetaTileEntity_BasicMachine -{ - private static int sHeaviestElementMass = 0; - - public GT_MetaTileEntity_Replicator(int aID, String aName, String aNameRegional, int aTier) - { - super(aID, aName, aNameRegional, aTier, 1, "Producing Elemental Matter", 1, 1, "Replicator.png", "", new ITexture[] { new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_REPLICATOR_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_REPLICATOR), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_REPLICATOR_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_REPLICATOR), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_REPLICATOR_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_REPLICATOR), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_REPLICATOR_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_REPLICATOR) }); - } - - public GT_MetaTileEntity_Replicator(String aName, int aTier, String aDescription, ITexture[][][] aTextures, String aGUIName, String aNEIName) - { - super(aName, aTier, 1, aDescription, aTextures, 1, 1, aGUIName, aNEIName); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_Replicator(this.mName, this.mTier, this.mDescription, this.mTextures, this.mGUIName, this.mNEIName); - } - - public int checkRecipe() - { - FluidStack tFluid = getFillableStack(); - if ((tFluid != null) && (tFluid.isFluidEqual(Materials.UUMatter.getFluid(1L)))) - { - ItemStack tDataOrb = getSpecialSlot(); - if ((ItemList.Tool_DataOrb.isStackEqual(tDataOrb, false, true)) && (Behaviour_DataOrb.getDataTitle(tDataOrb).equals("Elemental-Scan"))) - { - Materials tMaterial = (Materials)Element.get(Behaviour_DataOrb.getDataName(tDataOrb)).mLinkedMaterials.get(0); - long tMass = tMaterial.getMass(); - if ((tFluid.amount >= tMass) && (tMass > 0L)) - { - this.mEUt = ((int)gregtech.api.enums.GT_Values.V[this.mTier]); - this.mMaxProgresstime = ((int)(tMass * 512L / (1 << this.mTier - 1))); - if ((this.mOutputItems[0] = GT_OreDictUnificator.get(OrePrefixes.dust, tMaterial, 1L)) == null) - { - if ((this.mOutputItems[0] = GT_OreDictUnificator.get(OrePrefixes.cell, tMaterial, 1L)) != null) { - if ((this.mOutputFluid = GT_Utility.getFluidForFilledItem(this.mOutputItems[0], true)) == null) - { - if (ItemList.Cell_Empty.isStackEqual(getInputAt(0))) { - if (canOutput(new ItemStack[] { this.mOutputItems[0] })) - { - getInputAt(0).stackSize -= 1; FluidStack - tmp231_230 = tFluid;tmp231_230.amount = ((int)(tmp231_230.amount - tMass)); - return 2; - } + extends GT_MetaTileEntity_BasicMachine { + private static int sHeaviestElementMass = 0; + + public GT_MetaTileEntity_Replicator(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 1, "Producing Elemental Matter", 1, 1, "Replicator.png", "", new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_REPLICATOR_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_REPLICATOR), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_REPLICATOR_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_REPLICATOR), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_REPLICATOR_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_REPLICATOR), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_REPLICATOR_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_REPLICATOR)}); + } + + public GT_MetaTileEntity_Replicator(String aName, int aTier, String aDescription, ITexture[][][] aTextures, String aGUIName, String aNEIName) { + super(aName, aTier, 1, aDescription, aTextures, 1, 1, aGUIName, aNEIName); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Replicator(this.mName, this.mTier, this.mDescription, this.mTextures, this.mGUIName, this.mNEIName); + } + + public int checkRecipe() { + FluidStack tFluid = getFillableStack(); + if ((tFluid != null) && (tFluid.isFluidEqual(Materials.UUMatter.getFluid(1L)))) { + ItemStack tDataOrb = getSpecialSlot(); + if ((ItemList.Tool_DataOrb.isStackEqual(tDataOrb, false, true)) && (Behaviour_DataOrb.getDataTitle(tDataOrb).equals("Elemental-Scan"))) { + Materials tMaterial = (Materials) Element.get(Behaviour_DataOrb.getDataName(tDataOrb)).mLinkedMaterials.get(0); + long tMass = tMaterial.getMass(); + if ((tFluid.amount >= tMass) && (tMass > 0L)) { + this.mEUt = ((int) gregtech.api.enums.GT_Values.V[this.mTier]); + this.mMaxProgresstime = ((int) (tMass * 512L / (1 << this.mTier - 1))); + if ((this.mOutputItems[0] = GT_OreDictUnificator.get(OrePrefixes.dust, tMaterial, 1L)) == null) { + if ((this.mOutputItems[0] = GT_OreDictUnificator.get(OrePrefixes.cell, tMaterial, 1L)) != null) { + if ((this.mOutputFluid = GT_Utility.getFluidForFilledItem(this.mOutputItems[0], true)) == null) { + if (ItemList.Cell_Empty.isStackEqual(getInputAt(0))) { + if (canOutput(new ItemStack[]{this.mOutputItems[0]})) { + getInputAt(0).stackSize -= 1; + FluidStack + tmp231_230 = tFluid; + tmp231_230.amount = ((int) (tmp231_230.amount - tMass)); + return 2; + } + } + } else { + this.mOutputItems[0] = null; + if ((getDrainableStack() == null) || ((getDrainableStack().isFluidEqual(this.mOutputFluid)) && (getDrainableStack().amount < 16000))) { + FluidStack tmp287_286 = tFluid; + tmp287_286.amount = ((int) (tmp287_286.amount - tMass)); + return 2; + } + } + } + } else if (canOutput(new ItemStack[]{this.mOutputItems[0]})) { + FluidStack tmp322_321 = tFluid; + tmp322_321.amount = ((int) (tmp322_321.amount - tMass)); + return 2; + } } - } - else - { - this.mOutputItems[0] = null; - if ((getDrainableStack() == null) || ((getDrainableStack().isFluidEqual(this.mOutputFluid)) && (getDrainableStack().amount < 16000))) - { - FluidStack tmp287_286 = tFluid;tmp287_286.amount = ((int)(tmp287_286.amount - tMass)); - return 2; - } - } } - } - else if (canOutput(new ItemStack[] { this.mOutputItems[0] })) - { - FluidStack tmp322_321 = tFluid;tmp322_321.amount = ((int)(tmp322_321.amount - tMass)); - return 2; - } } - } + return 0; } - return 0; - } - - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) && (ItemList.Cell_Empty.isStackEqual(aStack)); - } - - public boolean isFluidInputAllowed(FluidStack aFluid) - { - return aFluid.isFluidEqual(Materials.UUMatter.getFluid(1L)); - } - - public int getCapacity() - { - if ((sHeaviestElementMass == 0) && (GregTech_API.sPostloadFinished)) - { - Materials tMaterial; - for (Iterator i$ = Materials.VALUES.iterator(); i$.hasNext(); sHeaviestElementMass = Math.max(sHeaviestElementMass, (int)tMaterial.getMass())) - { - tMaterial = (Materials)i$.next(); - if ((tMaterial.mElement == null) || (tMaterial.mElement.mIsIsotope)) {} - } + + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) && (ItemList.Cell_Empty.isStackEqual(aStack)); + } + + public boolean isFluidInputAllowed(FluidStack aFluid) { + return aFluid.isFluidEqual(Materials.UUMatter.getFluid(1L)); + } + + public int getCapacity() { + if ((sHeaviestElementMass == 0) && (GregTech_API.sPostloadFinished)) { + Materials tMaterial; + for (Iterator i$ = Materials.VALUES.iterator(); i$.hasNext(); sHeaviestElementMass = Math.max(sHeaviestElementMass, (int) tMaterial.getMass())) { + tMaterial = (Materials) i$.next(); + if ((tMaterial.mElement == null) || (tMaterial.mElement.mIsIsotope)) { + } + } + } + return sHeaviestElementMass; } - return sHeaviestElementMass; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_RockBreaker.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_RockBreaker.java index aab40f71..171c6a84 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_RockBreaker.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_RockBreaker.java @@ -3,7 +3,6 @@ package gregtech.common.tileentities.machines.basic; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; @@ -11,72 +10,59 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachin import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; public class GT_MetaTileEntity_RockBreaker - extends GT_MetaTileEntity_BasicMachine -{ - public GT_MetaTileEntity_RockBreaker(int aID, String aName, String aNameRegional, int aTier) - { - super(aID, aName, aNameRegional, aTier, 1, "Put Lava and Water adjacent", 1, 1, "RockBreaker.png", "", new ITexture[] { new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_ROCK_BREAKER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_ROCK_BREAKER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_ROCK_BREAKER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_ROCK_BREAKER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_ROCK_BREAKER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_ROCK_BREAKER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_ROCK_BREAKER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_ROCK_BREAKER) }); - } - - public GT_MetaTileEntity_RockBreaker(String aName, int aTier, String aDescription, ITexture[][][] aTextures, String aGUIName, String aNEIName) - { - super(aName, aTier, 1, aDescription, aTextures, 1, 1, aGUIName, aNEIName); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_RockBreaker(this.mName, this.mTier, this.mDescription, this.mTextures, this.mGUIName, this.mNEIName); - } - - public GT_Recipe.GT_Recipe_Map getRecipeList() - { - return GT_Recipe.GT_Recipe_Map.sRockBreakerFakeRecipes; - } - - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) && (getRecipeList().containsInput(aStack)); - } - - public int checkRecipe() - { - IGregTechTileEntity aBaseMetaTileEntity = getBaseMetaTileEntity(); - if ((aBaseMetaTileEntity.getBlockOffset(0, 0, 1) == Blocks.water) || (aBaseMetaTileEntity.getBlockOffset(0, 0, -1) == Blocks.water) || (aBaseMetaTileEntity.getBlockOffset(-1, 0, 0) == Blocks.water) || (aBaseMetaTileEntity.getBlockOffset(1, 0, 0) == Blocks.water)) - { - ItemStack tOutput = null; - if (aBaseMetaTileEntity.getBlockOffset(0, 1, 0) == Blocks.lava) { - tOutput = new ItemStack(Blocks.stone, 1); - } else if ((aBaseMetaTileEntity.getBlockOffset(0, 0, 1) == Blocks.lava) || (aBaseMetaTileEntity.getBlockOffset(0, 0, -1) == Blocks.lava) || (aBaseMetaTileEntity.getBlockOffset(-1, 0, 0) == Blocks.lava) || (aBaseMetaTileEntity.getBlockOffset(1, 0, 0) == Blocks.lava)) { - tOutput = new ItemStack(Blocks.cobblestone, 1); - } - if (tOutput != null) { - if (GT_Utility.areStacksEqual(getInputAt(0), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L))) - { - tOutput = new ItemStack(Blocks.obsidian, 1); - if (canOutput(new ItemStack[] { tOutput })) - { - getInputAt(0).stackSize -= 1; - this.mOutputItems[0] = tOutput; - this.mMaxProgresstime = (128 / (1 << this.mTier - 1)); - this.mEUt = (32 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); - return 2; - } - } - else if (canOutput(new ItemStack[] { tOutput })) - { - this.mOutputItems[0] = tOutput; - this.mMaxProgresstime = (16 / (1 << this.mTier - 1)); - this.mEUt = (32 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); - return 2; - } - } + extends GT_MetaTileEntity_BasicMachine { + public GT_MetaTileEntity_RockBreaker(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 1, "Put Lava and Water adjacent", 1, 1, "RockBreaker.png", "", new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_ROCK_BREAKER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_ROCK_BREAKER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_ROCK_BREAKER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_ROCK_BREAKER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_ROCK_BREAKER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_ROCK_BREAKER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_ROCK_BREAKER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_ROCK_BREAKER)}); + } + + public GT_MetaTileEntity_RockBreaker(String aName, int aTier, String aDescription, ITexture[][][] aTextures, String aGUIName, String aNEIName) { + super(aName, aTier, 1, aDescription, aTextures, 1, 1, aGUIName, aNEIName); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_RockBreaker(this.mName, this.mTier, this.mDescription, this.mTextures, this.mGUIName, this.mNEIName); + } + + public GT_Recipe.GT_Recipe_Map getRecipeList() { + return GT_Recipe.GT_Recipe_Map.sRockBreakerFakeRecipes; + } + + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) && (getRecipeList().containsInput(aStack)); + } + + public int checkRecipe() { + IGregTechTileEntity aBaseMetaTileEntity = getBaseMetaTileEntity(); + if ((aBaseMetaTileEntity.getBlockOffset(0, 0, 1) == Blocks.water) || (aBaseMetaTileEntity.getBlockOffset(0, 0, -1) == Blocks.water) || (aBaseMetaTileEntity.getBlockOffset(-1, 0, 0) == Blocks.water) || (aBaseMetaTileEntity.getBlockOffset(1, 0, 0) == Blocks.water)) { + ItemStack tOutput = null; + if (aBaseMetaTileEntity.getBlockOffset(0, 1, 0) == Blocks.lava) { + tOutput = new ItemStack(Blocks.stone, 1); + } else if ((aBaseMetaTileEntity.getBlockOffset(0, 0, 1) == Blocks.lava) || (aBaseMetaTileEntity.getBlockOffset(0, 0, -1) == Blocks.lava) || (aBaseMetaTileEntity.getBlockOffset(-1, 0, 0) == Blocks.lava) || (aBaseMetaTileEntity.getBlockOffset(1, 0, 0) == Blocks.lava)) { + tOutput = new ItemStack(Blocks.cobblestone, 1); + } + if (tOutput != null) { + if (GT_Utility.areStacksEqual(getInputAt(0), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L))) { + tOutput = new ItemStack(Blocks.obsidian, 1); + if (canOutput(new ItemStack[]{tOutput})) { + getInputAt(0).stackSize -= 1; + this.mOutputItems[0] = tOutput; + this.mMaxProgresstime = (128 / (1 << this.mTier - 1)); + this.mEUt = (32 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); + return 2; + } + } else if (canOutput(new ItemStack[]{tOutput})) { + this.mOutputItems[0] = tOutput; + this.mMaxProgresstime = (16 / (1 << this.mTier - 1)); + this.mEUt = (32 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); + return 2; + } + } + } + return 0; } - return 0; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java index 6b53904f..bb1afd3a 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java @@ -1,215 +1,177 @@ package gregtech.common.tileentities.machines.basic; import forestry.api.genetics.AlleleManager; -import forestry.api.genetics.IAlleleRegistry; import forestry.api.genetics.IIndividual; import gregtech.GT_Mod; import gregtech.api.GregTech_API; -import gregtech.api.enums.Element; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; +import gregtech.api.enums.*; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.objects.ItemData; -import gregtech.api.objects.MaterialStack; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; import gregtech.common.items.behaviors.Behaviour_DataOrb; - -import java.util.Map; - import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fluids.FluidStack; public class GT_MetaTileEntity_Scanner - extends GT_MetaTileEntity_BasicMachine -{ - public GT_MetaTileEntity_Scanner(int aID, String aName, String aNameRegional, int aTier) - { - super(aID, aName, aNameRegional, aTier, 1, "Scans Crops and other things.", 1, 1, "Scanner.png", "", new ITexture[] { new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_SCANNER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_SCANNER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_SCANNER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_SCANNER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_SCANNER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_SCANNER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_SCANNER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_SCANNER) }); - } - - public GT_MetaTileEntity_Scanner(String aName, int aTier, String aDescription, ITexture[][][] aTextures, String aGUIName, String aNEIName) - { - super(aName, aTier, 1, aDescription, aTextures, 1, 1, aGUIName, aNEIName); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_Scanner(this.mName, this.mTier, this.mDescription, this.mTextures, this.mGUIName, this.mNEIName); - } - - public int checkRecipe() - { - ItemStack aStack = getInputAt(0); - if (getOutputAt(0) != null) - { - this.mOutputBlocked += 1; + extends GT_MetaTileEntity_BasicMachine { + public GT_MetaTileEntity_Scanner(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 1, "Scans Crops and other things.", 1, 1, "Scanner.png", "", new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_SCANNER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_SCANNER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_SCANNER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_SCANNER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_SCANNER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_SCANNER), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_SCANNER_ACTIVE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_SCANNER)}); } - else if ((GT_Utility.isStackValid(aStack)) && (aStack.stackSize > 0)) - { - if ((getFillableStack() != null) && (getFillableStack().containsFluid(Materials.Honey.getFluid(100L)))) { - try - { - Object tIndividual = AlleleManager.alleleRegistry.getIndividual(aStack); - if (tIndividual != null) - { - if (((IIndividual)tIndividual).analyze()) - { - getFillableStack().amount -= 100; - this.mOutputItems[0] = GT_Utility.copy(new Object[] { aStack }); - aStack.stackSize = 0; - NBTTagCompound tNBT = new NBTTagCompound(); - ((IIndividual)tIndividual).writeToNBT(tNBT); - this.mOutputItems[0].setTagCompound(tNBT); - this.mMaxProgresstime = (500 / (1 << this.mTier - 1)); - this.mEUt = (2 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); - return 2; + + public GT_MetaTileEntity_Scanner(String aName, int aTier, String aDescription, ITexture[][][] aTextures, String aGUIName, String aNEIName) { + super(aName, aTier, 1, aDescription, aTextures, 1, 1, aGUIName, aNEIName); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Scanner(this.mName, this.mTier, this.mDescription, this.mTextures, this.mGUIName, this.mNEIName); + } + + public int checkRecipe() { + ItemStack aStack = getInputAt(0); + if (getOutputAt(0) != null) { + this.mOutputBlocked += 1; + } else if ((GT_Utility.isStackValid(aStack)) && (aStack.stackSize > 0)) { + if ((getFillableStack() != null) && (getFillableStack().containsFluid(Materials.Honey.getFluid(100L)))) { + try { + Object tIndividual = AlleleManager.alleleRegistry.getIndividual(aStack); + if (tIndividual != null) { + if (((IIndividual) tIndividual).analyze()) { + getFillableStack().amount -= 100; + this.mOutputItems[0] = GT_Utility.copy(new Object[]{aStack}); + aStack.stackSize = 0; + NBTTagCompound tNBT = new NBTTagCompound(); + ((IIndividual) tIndividual).writeToNBT(tNBT); + this.mOutputItems[0].setTagCompound(tNBT); + this.mMaxProgresstime = (500 / (1 << this.mTier - 1)); + this.mEUt = (2 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); + return 2; + } + this.mOutputItems[0] = GT_Utility.copy(new Object[]{aStack}); + aStack.stackSize = 0; + this.mMaxProgresstime = 1; + this.mEUt = 1; + return 2; + } + } catch (Throwable e) { + if (GT_Values.D1) { + e.printStackTrace(GT_Log.err); + } + } } - this.mOutputItems[0] = GT_Utility.copy(new Object[] { aStack }); - aStack.stackSize = 0; - this.mMaxProgresstime = 1; - this.mEUt = 1; - return 2; - } - } - catch (Throwable e) - { - if (GT_Values.D1) { - e.printStackTrace(GT_Log.err); - } - } - } - if (ItemList.IC2_Crop_Seeds.isStackEqual(aStack, true, true)) - { - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT == null) { - tNBT = new NBTTagCompound(); - } - if (tNBT.getByte("scan") < 4) - { - tNBT.setByte("scan", (byte)4); - this.mMaxProgresstime = (160 / (1 << this.mTier - 1)); - this.mEUt = (8 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); - } - else - { - this.mMaxProgresstime = 1; - this.mEUt = 1; - } - aStack.stackSize -= 1; - this.mOutputItems[0] = GT_Utility.copyAmount(1L, new Object[] { aStack }); - this.mOutputItems[0].setTagCompound(tNBT); - return 2; - } - if (ItemList.Tool_DataOrb.isStackEqual(getSpecialSlot(), false, true)) - { - if (ItemList.Tool_DataOrb.isStackEqual(aStack, false, true)) - { - aStack.stackSize -= 1; - this.mOutputItems[0] = GT_Utility.copyAmount(1L, new Object[] { getSpecialSlot() }); - this.mMaxProgresstime = (512 / (1 << this.mTier - 1)); - this.mEUt = (32 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); - return 2; - } - ItemData tData = GT_OreDictUnificator.getAssociation(aStack); - if ((tData != null) && ((tData.mPrefix == OrePrefixes.dust) || (tData.mPrefix == OrePrefixes.cell)) && (tData.mMaterial.mMaterial.mElement != null) && (!tData.mMaterial.mMaterial.mElement.mIsIsotope) && (tData.mMaterial.mMaterial != Materials.Magic) && (tData.mMaterial.mMaterial.getMass() > 0L)) - { - getSpecialSlot().stackSize -= 1; - aStack.stackSize -= 1; - - this.mOutputItems[0] = ItemList.Tool_DataOrb.get(1L, new Object[0]); - Behaviour_DataOrb.setDataTitle(this.mOutputItems[0], "Elemental-Scan"); - Behaviour_DataOrb.setDataName(this.mOutputItems[0], tData.mMaterial.mMaterial.mElement.name()); - this.mMaxProgresstime = ((int)(tData.mMaterial.mMaterial.getMass() * 8192L / (1 << this.mTier - 1))); - this.mEUt = (32 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); - return 2; - } - } - if (ItemList.Tool_DataStick.isStackEqual(getSpecialSlot(), false, true)) - { - if (ItemList.Tool_DataStick.isStackEqual(aStack, false, true)) - { - aStack.stackSize -= 1; - this.mOutputItems[0] = GT_Utility.copyAmount(1L, new Object[] { getSpecialSlot() }); - this.mMaxProgresstime = (128 / (1 << this.mTier - 1)); - this.mEUt = (32 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); - return 2; - } - if (aStack.getItem() == Items.written_book) - { - getSpecialSlot().stackSize -= 1; - aStack.stackSize -= 1; - - this.mOutputItems[0] = GT_Utility.copyAmount(1L, new Object[] { getSpecialSlot() }); - this.mOutputItems[0].setTagCompound(aStack.getTagCompound()); - this.mMaxProgresstime = (128 / (1 << this.mTier - 1)); - this.mEUt = (32 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); - return 2; - } - if (aStack.getItem() == Items.filled_map) - { - getSpecialSlot().stackSize -= 1; - aStack.stackSize -= 1; - - this.mOutputItems[0] = GT_Utility.copyAmount(1L, new Object[] { getSpecialSlot() }); - this.mOutputItems[0].setTagCompound(GT_Utility.getNBTContainingShort(new NBTTagCompound(), "map_id", (short)aStack.getItemDamage())); - this.mMaxProgresstime = (128 / (1 << this.mTier - 1)); - this.mEUt = (32 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); - return 2; - } - } - } - return 0; - } + if (ItemList.IC2_Crop_Seeds.isStackEqual(aStack, true, true)) { + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) { + tNBT = new NBTTagCompound(); + } + if (tNBT.getByte("scan") < 4) { + tNBT.setByte("scan", (byte) 4); + this.mMaxProgresstime = (160 / (1 << this.mTier - 1)); + this.mEUt = (8 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); + } else { + this.mMaxProgresstime = 1; + this.mEUt = 1; + } + aStack.stackSize -= 1; + this.mOutputItems[0] = GT_Utility.copyAmount(1L, new Object[]{aStack}); + this.mOutputItems[0].setTagCompound(tNBT); + return 2; + } + if (ItemList.Tool_DataOrb.isStackEqual(getSpecialSlot(), false, true)) { + if (ItemList.Tool_DataOrb.isStackEqual(aStack, false, true)) { + aStack.stackSize -= 1; + this.mOutputItems[0] = GT_Utility.copyAmount(1L, new Object[]{getSpecialSlot()}); + this.mMaxProgresstime = (512 / (1 << this.mTier - 1)); + this.mEUt = (32 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); + return 2; + } + ItemData tData = GT_OreDictUnificator.getAssociation(aStack); + if ((tData != null) && ((tData.mPrefix == OrePrefixes.dust) || (tData.mPrefix == OrePrefixes.cell)) && (tData.mMaterial.mMaterial.mElement != null) && (!tData.mMaterial.mMaterial.mElement.mIsIsotope) && (tData.mMaterial.mMaterial != Materials.Magic) && (tData.mMaterial.mMaterial.getMass() > 0L)) { + getSpecialSlot().stackSize -= 1; + aStack.stackSize -= 1; -@Override -public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - if (mProgresstime>=(mMaxProgresstime-1)) {try{ - if(this.mOutputItems[0].getUnlocalizedName().equals("gt.metaitem.01.32707")){ - GT_Mod.instance.achievements.issueAchievement(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), "scanning");}}catch (Exception e){} - } - super.onPostTick(aBaseMetaTileEntity, aTick); -} + this.mOutputItems[0] = ItemList.Tool_DataOrb.get(1L, new Object[0]); + Behaviour_DataOrb.setDataTitle(this.mOutputItems[0], "Elemental-Scan"); + Behaviour_DataOrb.setDataName(this.mOutputItems[0], tData.mMaterial.mMaterial.mElement.name()); + this.mMaxProgresstime = ((int) (tData.mMaterial.mMaterial.getMass() * 8192L / (1 << this.mTier - 1))); + this.mEUt = (32 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); + return 2; + } + } + if (ItemList.Tool_DataStick.isStackEqual(getSpecialSlot(), false, true)) { + if (ItemList.Tool_DataStick.isStackEqual(aStack, false, true)) { + aStack.stackSize -= 1; + this.mOutputItems[0] = GT_Utility.copyAmount(1L, new Object[]{getSpecialSlot()}); + this.mMaxProgresstime = (128 / (1 << this.mTier - 1)); + this.mEUt = (32 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); + return 2; + } + if (aStack.getItem() == Items.written_book) { + getSpecialSlot().stackSize -= 1; + aStack.stackSize -= 1; - - public GT_Recipe.GT_Recipe_Map getRecipeList() - { - return GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes; - } - - public int getCapacity() - { - return 1000; - } - - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) && (getRecipeList().containsInput(aStack)); - } - - public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) - { - super.startSoundLoop(aIndex, aX, aY, aZ); - if (aIndex == 1) { - GT_Utility.doSoundAtClient((String)GregTech_API.sSoundList.get(Integer.valueOf(212)), 10, 1.0F, aX, aY, aZ); + this.mOutputItems[0] = GT_Utility.copyAmount(1L, new Object[]{getSpecialSlot()}); + this.mOutputItems[0].setTagCompound(aStack.getTagCompound()); + this.mMaxProgresstime = (128 / (1 << this.mTier - 1)); + this.mEUt = (32 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); + return 2; + } + if (aStack.getItem() == Items.filled_map) { + getSpecialSlot().stackSize -= 1; + aStack.stackSize -= 1; + + this.mOutputItems[0] = GT_Utility.copyAmount(1L, new Object[]{getSpecialSlot()}); + this.mOutputItems[0].setTagCompound(GT_Utility.getNBTContainingShort(new NBTTagCompound(), "map_id", (short) aStack.getItemDamage())); + this.mMaxProgresstime = (128 / (1 << this.mTier - 1)); + this.mEUt = (32 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); + return 2; + } + } + } + return 0; + } + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + if (mProgresstime >= (mMaxProgresstime - 1)) { + try { + if (this.mOutputItems[0].getUnlocalizedName().equals("gt.metaitem.01.32707")) { + GT_Mod.instance.achievements.issueAchievement(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), "scanning"); + } + } catch (Exception e) { + } + } + super.onPostTick(aBaseMetaTileEntity, aTick); + } + + + public GT_Recipe.GT_Recipe_Map getRecipeList() { + return GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes; + } + + public int getCapacity() { + return 1000; + } + + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) && (getRecipeList().containsInput(aStack)); + } + + public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) { + super.startSoundLoop(aIndex, aX, aY, aZ); + if (aIndex == 1) { + GT_Utility.doSoundAtClient((String) GregTech_API.sSoundList.get(Integer.valueOf(212)), 10, 1.0F, aX, aY, aZ); + } + } + + public void startProcess() { + sendLoopStart((byte) 1); } - } - - public void startProcess() - { - sendLoopStart((byte)1); - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java index e0c6225a..ee472317 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java @@ -1,6 +1,16 @@ package gregtech.common.tileentities.machines.basic; -import static gregtech.api.enums.GT_Values.V; +import gregtech.api.enums.ConfigCategories; +import gregtech.api.enums.Textures; +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.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_Teleporter; import net.minecraft.client.particle.EntityFX; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityHanging; @@ -8,14 +18,7 @@ import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.boss.EntityDragonPart; import net.minecraft.entity.effect.EntityWeatherEffect; -import net.minecraft.entity.item.EntityBoat; -import net.minecraft.entity.item.EntityEnderCrystal; -import net.minecraft.entity.item.EntityEnderEye; -import net.minecraft.entity.item.EntityFireworkRocket; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.item.EntityMinecart; -import net.minecraft.entity.item.EntityTNTPrimed; -import net.minecraft.entity.item.EntityXPOrb; +import net.minecraft.entity.item.*; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.projectile.EntityArrow; @@ -25,316 +28,346 @@ import net.minecraft.entity.projectile.EntityThrowable; import net.minecraft.init.Blocks; 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_BasicTank{ +import static gregtech.api.enums.GT_Values.V; - public int mTargetX = 0; - public int mTargetY = 0; - public int mTargetZ = 0; - public int mTargetD = 0; - public boolean mDebug = false; - public boolean hasEgg = false; - public static boolean sInterDimensionalTeleportAllowed = true; - - public GT_MetaTileEntity_Teleporter(int aID, String aName, String aNameRegional, int aTier) { - super(aID, aName, aNameRegional, aTier, 3, "Teleport long distances with this little device."); - } +public class GT_MetaTileEntity_Teleporter extends GT_MetaTileEntity_BasicTank { - public GT_MetaTileEntity_Teleporter(String aName, int aTier, String aDescription, ITexture[][][] 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); - } - + public static boolean sInterDimensionalTeleportAllowed = true; + public int mTargetX = 0; + public int mTargetY = 0; + public int mTargetZ = 0; + public int mTargetD = 0; + public boolean mDebug = false; + public boolean hasEgg = false; - @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); - } - - public String[] getInfoData() - { - return new String[] { "Coordinates:", "X: " + this.mTargetX, "Y: " + this.mTargetY, "Z: " + this.mTargetZ, "Dimension: " + this.mTargetD }; - } + public GT_MetaTileEntity_Teleporter(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 3, "Teleport long distances with this little device."); + } - @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 !=this.getBaseMetaTileEntity().getFrontFacing()) ? null : aActive ? new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TELEPORTER_ACTIVE) : new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TELEPORTER) }; - } + public GT_MetaTileEntity_Teleporter(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 3, aDescription, aTextures); + } + private static float weightCalculation(Entity aEntity) { + try { + if ((aEntity instanceof EntityFX)) { + return -1.0F; + } + } catch (Throwable e) { + } + if ((aEntity instanceof EntityFishHook)) { + return -1.0F; + } + if ((aEntity instanceof EntityDragonPart)) { + return -1.0F; + } + if ((aEntity instanceof EntityWeatherEffect)) { + return -1.0F; + } + if ((aEntity instanceof EntityPlayer)) { + EntityPlayer tPlayer = (EntityPlayer) aEntity; + int tCount = 64; + for (int i = 0; i < 36; i++) { + if (tPlayer.inventory.getStackInSlot(i) != null) { + tCount += (tPlayer.inventory.getStackInSlot(i).getMaxStackSize() > 1 ? tPlayer.inventory.getStackInSlot(i).stackSize : 64); + } + } + for (int i = 0; i < 4; i++) { + if (tPlayer.inventory.armorInventory[i] != null) { + tCount += 256; + } + } + return Math.min(5.0F, tCount / 666.6F); + } + if (GT_Utility.getClassName(aEntity).equals("EntityItnt")) { + return 5.0F; + } + if (GT_Utility.getClassName(aEntity).equals("EntityNuke")) { + return 50.0F; + } + if ((aEntity instanceof EntityArrow)) { + return 0.001F; + } + if ((aEntity instanceof EntityBoat)) { + return 0.1F; + } + if ((aEntity instanceof EntityEnderCrystal)) { + return 2.0F; + } + if ((aEntity instanceof EntityEnderEye)) { + return 0.001F; + } + if ((aEntity instanceof EntityFireball)) { + return 0.001F; + } + if ((aEntity instanceof EntityFireworkRocket)) { + return 0.001F; + } + if ((aEntity instanceof EntityHanging)) { + return 0.005F; + } + if ((aEntity instanceof EntityItem)) { + return 0.001F; + } + if ((aEntity instanceof EntityLiving)) { + return 0.5F; + } + if ((aEntity instanceof EntityMinecart)) { + return 0.1F; + } + if ((aEntity instanceof EntityThrowable)) { + return 0.001F; + } + if ((aEntity instanceof EntityTNTPrimed)) { + return 5.0F; + } + if ((aEntity instanceof EntityXPOrb)) { + return 0.001F; + } + return -1.0F; + } - public void saveNBTData(NBTTagCompound aNBT) - { - aNBT.setInteger("mTargetX", this.mTargetX); - aNBT.setInteger("mTargetY", this.mTargetY); - aNBT.setInteger("mTargetZ", this.mTargetZ); - aNBT.setInteger("mTargetD", this.mTargetD); - aNBT.setBoolean("mDebug", this.mDebug); - } - - public void loadNBTData(NBTTagCompound aNBT) - { - this.mTargetX = aNBT.getInteger("mTargetX"); - this.mTargetY = aNBT.getInteger("mTargetY"); - this.mTargetZ = aNBT.getInteger("mTargetZ"); - this.mTargetD = aNBT.getInteger("mTargetD"); - this.mDebug = aNBT.getBoolean("mDebug"); - } - - public void onConfigLoad(GT_Config aConfig) - { - sInterDimensionalTeleportAllowed = aConfig.get(ConfigCategories.machineconfig, "Teleporter.Interdimensional", true); - } - - public void onFirstTick() - { - if (getBaseMetaTileEntity().isServerSide()) - { - if ((this.mTargetX == 0) && (this.mTargetY == 0) && (this.mTargetZ == 0) && (this.mTargetD == 0)) - { - this.mTargetX = getBaseMetaTileEntity().getXCoord(); - this.mTargetY = getBaseMetaTileEntity().getYCoord(); - this.mTargetZ = getBaseMetaTileEntity().getZCoord(); - this.mTargetD = getBaseMetaTileEntity().getWorld().provider.dimensionId; - } - this.hasEgg = checkForEgg(); - } - } - - public boolean checkForEgg() - { - for (byte i = -5; i <= 5; i = (byte)(i + 1)) { - for (byte j = -5; j <= 5; j = (byte)(j + 1)) { - for (byte k = -5; k <= 5; k = (byte)(k + 1)) { - if (getBaseMetaTileEntity().getBlockOffset(i, j, k) == Blocks.dragon_egg) { - return true; - } - } - } - } - return false; - } - - public boolean hasDimensionalTeleportCapability() - { - return (this.mDebug) || (this.hasEgg); - } - - public boolean isDimensionalTeleportAvailable() - { - return (this.mDebug) || ((hasDimensionalTeleportCapability()) && (GT_Utility.isRealDimension(this.mTargetD)) && (GT_Utility.isRealDimension(getBaseMetaTileEntity().getWorld().provider.dimensionId))); - } - - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - super.onPostTick(aBaseMetaTileEntity, aTick); - if (getBaseMetaTileEntity().isServerSide()) - { - if (getBaseMetaTileEntity().getTimer() % 100L == 50L) { - this.hasEgg = checkForEgg(); - } - if ((getBaseMetaTileEntity().isAllowedToWork()) && (getBaseMetaTileEntity().getRedstone())) - { - 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 (getBaseMetaTileEntity().decreaseStoredEnergyUnits((int)(tDistance * tDistance * weightCalculation(tEntity)), false)) - { - if (tEntity.ridingEntity != null) { - tEntity.mountEntity(null); - } - if (tEntity.riddenByEntity != null) { - tEntity.riddenByEntity.mountEntity(null); - } - 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).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); - } - } - } - } - }} - getBaseMetaTileEntity().setActive(true); - } - else - { - getBaseMetaTileEntity().setActive(false); - } - } - } - - private int distanceCalculation() - { - return Math.abs(((this.mTargetD != getBaseMetaTileEntity().getWorld().provider.dimensionId) && (isDimensionalTeleportAvailable()) ? 100 : 1) * (int)Math.sqrt(Math.pow(getBaseMetaTileEntity().getXCoord() - this.mTargetX, 2.0D) + Math.pow(getBaseMetaTileEntity().getYCoord() - this.mTargetY, 2.0D) + Math.pow(getBaseMetaTileEntity().getZCoord() - this.mTargetZ, 2.0D))); - } - - private static float weightCalculation(Entity aEntity) - { - try - { - if ((aEntity instanceof EntityFX)) { - return -1.0F; - } - } - catch (Throwable e) {} - if ((aEntity instanceof EntityFishHook)) { - return -1.0F; - } - if ((aEntity instanceof EntityDragonPart)) { - return -1.0F; - } - if ((aEntity instanceof EntityWeatherEffect)) { - return -1.0F; - } - if ((aEntity instanceof EntityPlayer)) - { - EntityPlayer tPlayer = (EntityPlayer)aEntity; - int tCount = 64; - for (int i = 0; i < 36; i++) { - if (tPlayer.inventory.getStackInSlot(i) != null) { - tCount += (tPlayer.inventory.getStackInSlot(i).getMaxStackSize() > 1 ? tPlayer.inventory.getStackInSlot(i).stackSize : 64); - } - } - for (int i = 0; i < 4; i++) { - if (tPlayer.inventory.armorInventory[i] != null) { - tCount += 256; - } - } - return Math.min(5.0F, tCount / 666.6F); - } - if (GT_Utility.getClassName(aEntity).equals("EntityItnt")) { - return 5.0F; - } - if (GT_Utility.getClassName(aEntity).equals("EntityNuke")) { - return 50.0F; - } - if ((aEntity instanceof EntityArrow)) { - return 0.001F; - } - if ((aEntity instanceof EntityBoat)) { - return 0.1F; - } - if ((aEntity instanceof EntityEnderCrystal)) { - return 2.0F; - } - if ((aEntity instanceof EntityEnderEye)) { - return 0.001F; - } - if ((aEntity instanceof EntityFireball)) { - return 0.001F; - } - if ((aEntity instanceof EntityFireworkRocket)) { - return 0.001F; - } - if ((aEntity instanceof EntityHanging)) { - return 0.005F; - } - if ((aEntity instanceof EntityItem)) { - return 0.001F; - } - if ((aEntity instanceof EntityLiving)) { - return 0.5F; - } - if ((aEntity instanceof EntityMinecart)) { - return 0.1F; - } - if ((aEntity instanceof EntityThrowable)) { - return 0.001F; - } - if ((aEntity instanceof EntityTNTPrimed)) { - return 5.0F; - } - if ((aEntity instanceof EntityXPOrb)) { - return 0.001F; - } - return -1.0F; - } - - @Override public boolean isSimpleMachine() {return false;} - @Override public boolean isOverclockerUpgradable() {return false;} - @Override public boolean isTransformerUpgradable() {return false;} - @Override public boolean isElectric() {return true;} - @Override public boolean isFacingValid(byte aFacing) {return true;} - @Override public boolean isEnetInput() {return true;} - @Override public boolean isInputFacing(byte aSide) {return true;} - @Override public boolean isOutputFacing(byte aSide) {return false;} - @Override public boolean isTeleporterCompatible() {return false;} - @Override public long getMinimumStoredEU() {return V[mTier]*16;} - @Override public long maxEUStore() {return 100000000;} - @Override public long maxEUInput() {return V[mTier];} - @Override public long maxSteamStore() {return maxEUStore();} - @Override public long maxAmperesIn() {return 2;} - @Override public int getStackDisplaySlot() {return 2;} - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + if (aBaseMetaTileEntity.isClientSide()) return true; + this.hasEgg = checkForEgg(); + aBaseMetaTileEntity.openGUI(aPlayer); + return true; + } - @Override - public boolean doesFillContainers() { - return false; - } + @Override + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_Container_Teleporter(aPlayerInventory, aBaseMetaTileEntity); + } - @Override - public boolean doesEmptyContainers() { - return false; - } + @Override + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_Teleporter(aPlayerInventory, aBaseMetaTileEntity); + } - @Override - public boolean canTankBeFilled() { - return true; - } + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Teleporter(this.mName, this.mTier, this.mDescription, this.mTextures); + } - @Override - public boolean canTankBeEmptied() { - return false; - } + public String[] getInfoData() { + return new String[]{"Coordinates:", "X: " + this.mTargetX, "Y: " + this.mTargetY, "Z: " + this.mTargetZ, "Dimension: " + this.mTargetD}; + } - @Override - public boolean displaysItemStack() { - return false; - } + @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 != this.getBaseMetaTileEntity().getFrontFacing()) ? null : aActive ? new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TELEPORTER_ACTIVE) : new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TELEPORTER)}; + } - @Override - public boolean displaysStackSize() { - return false; - } + public void saveNBTData(NBTTagCompound aNBT) { + aNBT.setInteger("mTargetX", this.mTargetX); + aNBT.setInteger("mTargetY", this.mTargetY); + aNBT.setInteger("mTargetZ", this.mTargetZ); + aNBT.setInteger("mTargetD", this.mTargetD); + aNBT.setBoolean("mDebug", this.mDebug); + } + + public void loadNBTData(NBTTagCompound aNBT) { + this.mTargetX = aNBT.getInteger("mTargetX"); + this.mTargetY = aNBT.getInteger("mTargetY"); + this.mTargetZ = aNBT.getInteger("mTargetZ"); + this.mTargetD = aNBT.getInteger("mTargetD"); + this.mDebug = aNBT.getBoolean("mDebug"); + } + + public void onConfigLoad(GT_Config aConfig) { + sInterDimensionalTeleportAllowed = aConfig.get(ConfigCategories.machineconfig, "Teleporter.Interdimensional", true); + } + + public void onFirstTick() { + if (getBaseMetaTileEntity().isServerSide()) { + if ((this.mTargetX == 0) && (this.mTargetY == 0) && (this.mTargetZ == 0) && (this.mTargetD == 0)) { + this.mTargetX = getBaseMetaTileEntity().getXCoord(); + this.mTargetY = getBaseMetaTileEntity().getYCoord(); + this.mTargetZ = getBaseMetaTileEntity().getZCoord(); + this.mTargetD = getBaseMetaTileEntity().getWorld().provider.dimensionId; + } + this.hasEgg = checkForEgg(); + } + } + + public boolean checkForEgg() { + for (byte i = -5; i <= 5; i = (byte) (i + 1)) { + for (byte j = -5; j <= 5; j = (byte) (j + 1)) { + for (byte k = -5; k <= 5; k = (byte) (k + 1)) { + if (getBaseMetaTileEntity().getBlockOffset(i, j, k) == Blocks.dragon_egg) { + return true; + } + } + } + } + return false; + } + + public boolean hasDimensionalTeleportCapability() { + return (this.mDebug) || (this.hasEgg); + } + + public boolean isDimensionalTeleportAvailable() { + return (this.mDebug) || ((hasDimensionalTeleportCapability()) && (GT_Utility.isRealDimension(this.mTargetD)) && (GT_Utility.isRealDimension(getBaseMetaTileEntity().getWorld().provider.dimensionId))); + } + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + super.onPostTick(aBaseMetaTileEntity, aTick); + if (getBaseMetaTileEntity().isServerSide()) { + if (getBaseMetaTileEntity().getTimer() % 100L == 50L) { + this.hasEgg = checkForEgg(); + } + if ((getBaseMetaTileEntity().isAllowedToWork()) && (getBaseMetaTileEntity().getRedstone())) { + 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 (getBaseMetaTileEntity().decreaseStoredEnergyUnits((int) (tDistance * tDistance * weightCalculation(tEntity)), false)) { + if (tEntity.ridingEntity != null) { + tEntity.mountEntity(null); + } + if (tEntity.riddenByEntity != null) { + tEntity.riddenByEntity.mountEntity(null); + } + 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).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); + } + } + } + } + } + } + getBaseMetaTileEntity().setActive(true); + } else { + getBaseMetaTileEntity().setActive(false); + } + } + } + + private int distanceCalculation() { + return Math.abs(((this.mTargetD != getBaseMetaTileEntity().getWorld().provider.dimensionId) && (isDimensionalTeleportAvailable()) ? 100 : 1) * (int) Math.sqrt(Math.pow(getBaseMetaTileEntity().getXCoord() - this.mTargetX, 2.0D) + Math.pow(getBaseMetaTileEntity().getYCoord() - this.mTargetY, 2.0D) + Math.pow(getBaseMetaTileEntity().getZCoord() - this.mTargetZ, 2.0D))); + } + + @Override + public boolean isSimpleMachine() { + return false; + } + + @Override + public boolean isOverclockerUpgradable() { + return false; + } + + @Override + public boolean isTransformerUpgradable() { + return false; + } + + @Override + public boolean isElectric() { + return true; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return true; + } + + @Override + public boolean isEnetInput() { + return true; + } + + @Override + public boolean isInputFacing(byte aSide) { + return true; + } + + @Override + public boolean isOutputFacing(byte aSide) { + return false; + } + + @Override + public boolean isTeleporterCompatible() { + return false; + } + + @Override + public long getMinimumStoredEU() { + return V[mTier] * 16; + } + + @Override + public long maxEUStore() { + return 100000000; + } + + @Override + public long maxEUInput() { + return V[mTier]; + } + + @Override + public long maxSteamStore() { + return maxEUStore(); + } + + @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; + } - @Override - public ITexture[][][] getTextureSet(ITexture[] aTextures) { - return null; - } - } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java index f510d064..fd3546f9 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java @@ -5,13 +5,11 @@ import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.GT_RenderedTexture; -import gregtech.api.util.GT_CoverBehavior; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import gregtech.common.gui.GT_Container_BronzeBlastFurnace; @@ -22,381 +20,322 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; public class GT_MetaTileEntity_BronzeBlastFurnace - extends MetaTileEntity -{ - public int mMaxProgresstime = 0; - public int mUpdate = 5; - public int mProgresstime = 0; - public boolean mMachine = false; - private static final ITexture[] FACING_SIDE = { new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEPLATEDBRICKS) }; - private static final ITexture[] FACING_FRONT = { new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBLASTFURNACE) }; - private static final ITexture[] FACING_ACTIVE = { new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBLASTFURNACE_ACTIVE) }; - public ItemStack mOutputItem1; - public ItemStack mOutputItem2; - - public GT_MetaTileEntity_BronzeBlastFurnace(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional, 4); - } - - public GT_MetaTileEntity_BronzeBlastFurnace(String aName) - { - super(aName, 4); - } - - public String[] getDescription() - { - return new String[] { "To get your first Steel", "Multiblock: 3x3x4 hollow with opening on top", "32 Bronze Plated Bricks required" }; - } - - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) - { - if (aSide == aFacing) { - return aActive ? FACING_ACTIVE : FACING_FRONT; + extends MetaTileEntity { + private static final ITexture[] FACING_SIDE = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEPLATEDBRICKS)}; + private static final ITexture[] FACING_FRONT = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBLASTFURNACE)}; + private static final ITexture[] FACING_ACTIVE = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEBLASTFURNACE_ACTIVE)}; + public int mMaxProgresstime = 0; + public int mUpdate = 5; + public int mProgresstime = 0; + public boolean mMachine = false; + public ItemStack mOutputItem1; + public ItemStack mOutputItem2; + + public GT_MetaTileEntity_BronzeBlastFurnace(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional, 4); } - return FACING_SIDE; - } - - public boolean isSteampowered() - { - return false; - } - - public boolean isElectric() - { - return false; - } - - public boolean isPneumatic() - { - return false; - } - - public boolean isEnetInput() - { - return false; - } - - public boolean isEnetOutput() - { - return false; - } - - public boolean isInputFacing(byte aSide) - { - return false; - } - - public boolean isOutputFacing(byte aSide) - { - return false; - } - - public boolean isTeleporterCompatible() - { - return false; - } - - public boolean isFacingValid(byte aFacing) - { - return aFacing > 1; - } - - public boolean isAccessAllowed(EntityPlayer aPlayer) - { - return true; - } - - public int getProgresstime() - { - return this.mProgresstime; - } - - public int maxProgresstime() - { - return this.mMaxProgresstime; - } - - public int increaseProgress(int aProgress) - { - this.mProgresstime += aProgress;return this.mMaxProgresstime - this.mProgresstime; - } - - public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCoverID) - { - return (GregTech_API.getCoverBehavior(aCoverID.toStack()).isSimpleCover()) && (super.allowCoverOnSide(aSide, aCoverID)); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_BronzeBlastFurnace(this.mName); - } - - public void saveNBTData(NBTTagCompound aNBT) - { - aNBT.setInteger("mProgresstime", this.mProgresstime); - aNBT.setInteger("mMaxProgresstime", this.mMaxProgresstime); - if (this.mOutputItem1 != null) - { - NBTTagCompound tNBT = new NBTTagCompound(); - this.mOutputItem1.writeToNBT(tNBT); - aNBT.setTag("mOutputItem1", tNBT); + + public GT_MetaTileEntity_BronzeBlastFurnace(String aName) { + super(aName, 4); } - if (this.mOutputItem2 != null) - { - NBTTagCompound tNBT = new NBTTagCompound(); - this.mOutputItem2.writeToNBT(tNBT); - aNBT.setTag("mOutputItem2", tNBT); + + public String[] getDescription() { + return new String[]{"To get your first Steel", "Multiblock: 3x3x4 hollow with opening on top", "32 Bronze Plated Bricks required"}; } - } - - public void loadNBTData(NBTTagCompound aNBT) - { - this.mUpdate = 5; - this.mProgresstime = aNBT.getInteger("mProgresstime"); - this.mMaxProgresstime = aNBT.getInteger("mMaxProgresstime"); - this.mOutputItem1 = GT_Utility.loadItem(aNBT, "mOutputItem1"); - this.mOutputItem2 = GT_Utility.loadItem(aNBT, "mOutputItem2"); - } - - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) - { - if (aBaseMetaTileEntity.isClientSide()) { - return true; + + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + if (aSide == aFacing) { + return aActive ? FACING_ACTIVE : FACING_FRONT; + } + return FACING_SIDE; } - aBaseMetaTileEntity.openGUI(aPlayer); - return true; - } - - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_Container_BronzeBlastFurnace(aPlayerInventory, aBaseMetaTileEntity); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_BronzeBlastFurnace(aPlayerInventory, aBaseMetaTileEntity); - } - - private boolean checkMachine() - { - int xDir = ForgeDirection.getOrientation(getBaseMetaTileEntity().getBackFacing()).offsetX;int zDir = ForgeDirection.getOrientation(getBaseMetaTileEntity().getBackFacing()).offsetZ; - for (int i = -1; i < 2; i++) { - for (int j = -1; j < 3; j++) { - for (int k = -1; k < 2; k++) { - if ((xDir + i != 0) || (j != 0) || (zDir + k != 0)) { - if ((i != 0) || (j == -1) || (k != 0)) - { - if ((getBaseMetaTileEntity().getBlockOffset(xDir + i, j, zDir + k) != GregTech_API.sBlockCasings1) || (getBaseMetaTileEntity().getMetaIDOffset(xDir + i, j, zDir + k) != 10)) { - return false; - } + + public boolean isSteampowered() { + return false; + } + + public boolean isElectric() { + return false; + } + + public boolean isPneumatic() { + return false; + } + + public boolean isEnetInput() { + return false; + } + + public boolean isEnetOutput() { + return false; + } + + public boolean isInputFacing(byte aSide) { + return false; + } + + public boolean isOutputFacing(byte aSide) { + return false; + } + + public boolean isTeleporterCompatible() { + return false; + } + + public boolean isFacingValid(byte aFacing) { + return aFacing > 1; + } + + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + public int getProgresstime() { + return this.mProgresstime; + } + + public int maxProgresstime() { + return this.mMaxProgresstime; + } + + public int increaseProgress(int aProgress) { + this.mProgresstime += aProgress; + return this.mMaxProgresstime - this.mProgresstime; + } + + public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCoverID) { + return (GregTech_API.getCoverBehavior(aCoverID.toStack()).isSimpleCover()) && (super.allowCoverOnSide(aSide, aCoverID)); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_BronzeBlastFurnace(this.mName); + } + + public void saveNBTData(NBTTagCompound aNBT) { + aNBT.setInteger("mProgresstime", this.mProgresstime); + aNBT.setInteger("mMaxProgresstime", this.mMaxProgresstime); + if (this.mOutputItem1 != null) { + NBTTagCompound tNBT = new NBTTagCompound(); + this.mOutputItem1.writeToNBT(tNBT); + aNBT.setTag("mOutputItem1", tNBT); + } + if (this.mOutputItem2 != null) { + NBTTagCompound tNBT = new NBTTagCompound(); + this.mOutputItem2.writeToNBT(tNBT); + aNBT.setTag("mOutputItem2", tNBT); + } + } + + public void loadNBTData(NBTTagCompound aNBT) { + this.mUpdate = 5; + this.mProgresstime = aNBT.getInteger("mProgresstime"); + this.mMaxProgresstime = aNBT.getInteger("mMaxProgresstime"); + this.mOutputItem1 = GT_Utility.loadItem(aNBT, "mOutputItem1"); + this.mOutputItem2 = GT_Utility.loadItem(aNBT, "mOutputItem2"); + } + + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + if (aBaseMetaTileEntity.isClientSide()) { + return true; + } + aBaseMetaTileEntity.openGUI(aPlayer); + return true; + } + + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_Container_BronzeBlastFurnace(aPlayerInventory, aBaseMetaTileEntity); + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_BronzeBlastFurnace(aPlayerInventory, aBaseMetaTileEntity); + } + + private boolean checkMachine() { + int xDir = ForgeDirection.getOrientation(getBaseMetaTileEntity().getBackFacing()).offsetX; + int zDir = ForgeDirection.getOrientation(getBaseMetaTileEntity().getBackFacing()).offsetZ; + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 3; j++) { + for (int k = -1; k < 2; k++) { + if ((xDir + i != 0) || (j != 0) || (zDir + k != 0)) { + if ((i != 0) || (j == -1) || (k != 0)) { + if ((getBaseMetaTileEntity().getBlockOffset(xDir + i, j, zDir + k) != GregTech_API.sBlockCasings1) || (getBaseMetaTileEntity().getMetaIDOffset(xDir + i, j, zDir + k) != 10)) { + return false; + } + } else if ((!GT_Utility.arrayContains(getBaseMetaTileEntity().getBlockOffset(xDir + i, j, zDir + k), new Object[]{Blocks.lava, Blocks.flowing_lava, null})) && (!getBaseMetaTileEntity().getAirOffset(xDir + i, j, zDir + k))) { + return false; + } + } + } } - else if ((!GT_Utility.arrayContains(getBaseMetaTileEntity().getBlockOffset(xDir + i, j, zDir + k), new Object[] { Blocks.lava, Blocks.flowing_lava, null })) && (!getBaseMetaTileEntity().getAirOffset(xDir + i, j, zDir + k))) { - return false; + } + return true; + } + + public void onMachineBlockUpdate() { + this.mUpdate = 5; + } + + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) { + if ((aBaseMetaTileEntity.isClientSide()) && + (aBaseMetaTileEntity.isActive())) { + aBaseMetaTileEntity.getWorld().spawnParticle("largesmoke", aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1) + Math.random(), aBaseMetaTileEntity.getOffsetY(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1) + Math.random(), 0.0D, 0.3D, 0.0D); + } + if (aBaseMetaTileEntity.isServerSide()) { + if (this.mUpdate-- == 0) { + this.mMachine = checkMachine(); + } + if (this.mMachine) { + if (this.mMaxProgresstime > 0) { + if (++this.mProgresstime >= this.mMaxProgresstime) { + addOutputProducts(); + this.mOutputItem1 = null; + this.mOutputItem2 = null; + this.mProgresstime = 0; + this.mMaxProgresstime = 0; + try { + GT_Mod.instance.achievements.issueAchievement(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), "steel"); + } catch (Exception e) { + } + } + } else if (aBaseMetaTileEntity.isAllowedToWork()) { + checkRecipe(); + } + } + aBaseMetaTileEntity.setActive((this.mMaxProgresstime > 0) && (this.mMachine)); + if (aBaseMetaTileEntity.isActive()) { + if (aBaseMetaTileEntity.getAir(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord(), aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1))) { + aBaseMetaTileEntity.getWorld().setBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord(), aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1), Blocks.lava, 1, 2); + this.mUpdate = 1; + } + if (aBaseMetaTileEntity.getAir(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord() + 1, aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1))) { + aBaseMetaTileEntity.getWorld().setBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord() + 1, aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1), Blocks.lava, 1, 2); + this.mUpdate = 1; + } + } else { + if (aBaseMetaTileEntity.getBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord(), aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1)) == Blocks.lava) { + aBaseMetaTileEntity.getWorld().setBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord(), aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1), Blocks.air, 0, 2); + this.mUpdate = 1; + } + if (aBaseMetaTileEntity.getBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord() + 1, aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1)) == Blocks.lava) { + aBaseMetaTileEntity.getWorld().setBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord() + 1, aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1), Blocks.air, 0, 2); + this.mUpdate = 1; + } } - } } - } } - return true; - } - - public void onMachineBlockUpdate() - { - this.mUpdate = 5; - } - - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) - { - if ((aBaseMetaTileEntity.isClientSide()) && - (aBaseMetaTileEntity.isActive())) { - aBaseMetaTileEntity.getWorld().spawnParticle("largesmoke", aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1) + Math.random(), aBaseMetaTileEntity.getOffsetY(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1) + Math.random(), 0.0D, 0.3D, 0.0D); + + private void addOutputProducts() { + if (this.mOutputItem1 != null) { + if (this.mInventory[2] == null) { + this.mInventory[2] = GT_Utility.copy(new Object[]{this.mOutputItem1}); + } else if (GT_Utility.areStacksEqual(this.mInventory[2], this.mOutputItem1)) { + this.mInventory[2].stackSize = Math.min(this.mOutputItem1.getMaxStackSize(), this.mOutputItem1.stackSize + this.mInventory[2].stackSize); + } + } + if (this.mOutputItem2 != null) { + if (this.mInventory[3] == null) { + this.mInventory[3] = GT_Utility.copy(new Object[]{this.mOutputItem2}); + } else if (GT_Utility.areStacksEqual(this.mInventory[3], this.mOutputItem2)) { + this.mInventory[3].stackSize = Math.min(this.mOutputItem2.getMaxStackSize(), this.mOutputItem2.stackSize + this.mInventory[3].stackSize); + } + } } - if (aBaseMetaTileEntity.isServerSide()) - { - if (this.mUpdate-- == 0) { - this.mMachine = checkMachine(); - } - if (this.mMachine) { - if (this.mMaxProgresstime > 0) - { - if (++this.mProgresstime >= this.mMaxProgresstime) - { - addOutputProducts(); - this.mOutputItem1 = null; - this.mOutputItem2 = null; - this.mProgresstime = 0; - this.mMaxProgresstime = 0; - try{GT_Mod.instance.achievements.issueAchievement(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), "steel");}catch(Exception e){} - } + + private boolean spaceForOutput(ItemStack aStack1, ItemStack aStack2) { + if (((this.mInventory[2] == null) || (aStack1 == null) || ((this.mInventory[2].stackSize + aStack1.stackSize <= this.mInventory[2].getMaxStackSize()) && (GT_Utility.areStacksEqual(this.mInventory[2], aStack1)))) && ( + (this.mInventory[3] == null) || (aStack2 == null) || ((this.mInventory[3].stackSize + aStack2.stackSize <= this.mInventory[3].getMaxStackSize()) && (GT_Utility.areStacksEqual(this.mInventory[3], aStack2))))) { + return true; } - else if (aBaseMetaTileEntity.isAllowedToWork()) { - checkRecipe(); - } - } - aBaseMetaTileEntity.setActive((this.mMaxProgresstime > 0) && (this.mMachine)); - if (aBaseMetaTileEntity.isActive()) - { - if (aBaseMetaTileEntity.getAir(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord(), aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1))) - { - aBaseMetaTileEntity.getWorld().setBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord(), aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1), Blocks.lava, 1, 2); - this.mUpdate = 1; - } - if (aBaseMetaTileEntity.getAir(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord() + 1, aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1))) - { - aBaseMetaTileEntity.getWorld().setBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord() + 1, aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1), Blocks.lava, 1, 2); - this.mUpdate = 1; - } - } - else - { - if (aBaseMetaTileEntity.getBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord(), aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1)) == Blocks.lava) - { - aBaseMetaTileEntity.getWorld().setBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord(), aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1), Blocks.air, 0, 2); - this.mUpdate = 1; - } - if (aBaseMetaTileEntity.getBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord() + 1, aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1)) == Blocks.lava) - { - aBaseMetaTileEntity.getWorld().setBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord() + 1, aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1), Blocks.air, 0, 2); - this.mUpdate = 1; - } - } + return false; } - } - - private void addOutputProducts() - { - if (this.mOutputItem1 != null) { - if (this.mInventory[2] == null) { - this.mInventory[2] = GT_Utility.copy(new Object[] { this.mOutputItem1 }); - } else if (GT_Utility.areStacksEqual(this.mInventory[2], this.mOutputItem1)) { - this.mInventory[2].stackSize = Math.min(this.mOutputItem1.getMaxStackSize(), this.mOutputItem1.stackSize + this.mInventory[2].stackSize); - } + + private boolean checkRecipe() { + if (!this.mMachine) { + return false; + } + if ((this.mInventory[0] != null) && (this.mInventory[1] != null) && (this.mInventory[0].stackSize >= 1)) { + if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[0], "dustIron")) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[0], "ingotIron"))) { + if ((this.mInventory[1].getItem() == Items.coal) && (this.mInventory[1].stackSize >= 4) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 4L)))) { + getBaseMetaTileEntity().decrStackSize(0, 1); + getBaseMetaTileEntity().decrStackSize(1, 4); + this.mMaxProgresstime = 7200; + return true; + } + if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "fuelCoke")) && (this.mInventory[1].stackSize >= 2) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 4L)))) { + getBaseMetaTileEntity().decrStackSize(0, 1); + getBaseMetaTileEntity().decrStackSize(1, 2); + this.mMaxProgresstime = 4800; + return true; + } + if ((this.mInventory[0].stackSize >= 9) && ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "blockCoal")) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "blockCharcoal"))) && (this.mInventory[1].stackSize >= 4) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 4L)))) { + getBaseMetaTileEntity().decrStackSize(0, 9); + getBaseMetaTileEntity().decrStackSize(1, 4); + this.mMaxProgresstime = 64800; + return true; + } + } else if (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[0], "dustSteel")) { + if ((this.mInventory[1].getItem() == Items.coal) && (this.mInventory[1].stackSize >= 2) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2L)))) { + getBaseMetaTileEntity().decrStackSize(0, 1); + getBaseMetaTileEntity().decrStackSize(1, 2); + this.mMaxProgresstime = 3600; + return true; + } + if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "fuelCoke")) && (this.mInventory[1].stackSize >= 1) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 2L)))) { + getBaseMetaTileEntity().decrStackSize(0, 1); + getBaseMetaTileEntity().decrStackSize(1, 1); + this.mMaxProgresstime = 2400; + return true; + } + if ((this.mInventory[0].stackSize >= 9) && ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "blockCoal")) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "blockCharcoal"))) && (this.mInventory[1].stackSize >= 2) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2L)))) { + getBaseMetaTileEntity().decrStackSize(0, 9); + getBaseMetaTileEntity().decrStackSize(1, 2); + this.mMaxProgresstime = 32400; + return true; + } + } else if (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[0], "blockIron")) { + if ((this.mInventory[1].getItem() == Items.coal) && (this.mInventory[1].stackSize >= 36) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 4L)))) { + getBaseMetaTileEntity().decrStackSize(0, 1); + getBaseMetaTileEntity().decrStackSize(1, 36); + this.mMaxProgresstime = 64800; + return true; + } + if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "fuelCoke")) && (this.mInventory[1].stackSize >= 18) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 4L)))) { + getBaseMetaTileEntity().decrStackSize(0, 1); + getBaseMetaTileEntity().decrStackSize(1, 18); + this.mMaxProgresstime = 43200; + return true; + } + if (((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "blockCoal")) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "blockCharcoal"))) && (this.mInventory[1].stackSize >= 4) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 4L)))) { + getBaseMetaTileEntity().decrStackSize(0, 1); + getBaseMetaTileEntity().decrStackSize(1, 4); + this.mMaxProgresstime = 64800; + return true; + } + } + } + this.mOutputItem1 = null; + this.mOutputItem2 = null; + return false; } - if (this.mOutputItem2 != null) { - if (this.mInventory[3] == null) { - this.mInventory[3] = GT_Utility.copy(new Object[] { this.mOutputItem2 }); - } else if (GT_Utility.areStacksEqual(this.mInventory[3], this.mOutputItem2)) { - this.mInventory[3].stackSize = Math.min(this.mOutputItem2.getMaxStackSize(), this.mOutputItem2.stackSize + this.mInventory[3].stackSize); - } + + public boolean isGivingInformation() { + return false; } - } - - private boolean spaceForOutput(ItemStack aStack1, ItemStack aStack2) - { - if (((this.mInventory[2] == null) || (aStack1 == null) || ((this.mInventory[2].stackSize + aStack1.stackSize <= this.mInventory[2].getMaxStackSize()) && (GT_Utility.areStacksEqual(this.mInventory[2], aStack1)))) && ( - (this.mInventory[3] == null) || (aStack2 == null) || ((this.mInventory[3].stackSize + aStack2.stackSize <= this.mInventory[3].getMaxStackSize()) && (GT_Utility.areStacksEqual(this.mInventory[3], aStack2))))) { - return true; + + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return aIndex > 1; } - return false; - } - - private boolean checkRecipe() - { - if (!this.mMachine) { - return false; + + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + if (aIndex < 2) { + } + return !GT_Utility.areStacksEqual(aStack, this.mInventory[0]); } - if ((this.mInventory[0] != null) && (this.mInventory[1] != null) && (this.mInventory[0].stackSize >= 1)) { - if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[0], "dustIron")) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[0], "ingotIron"))) - { - if ((this.mInventory[1].getItem() == Items.coal) && (this.mInventory[1].stackSize >= 4) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 4L)))) - { - getBaseMetaTileEntity().decrStackSize(0, 1); - getBaseMetaTileEntity().decrStackSize(1, 4); - this.mMaxProgresstime = 7200; - return true; - } - if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "fuelCoke")) && (this.mInventory[1].stackSize >= 2) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 4L)))) - { - getBaseMetaTileEntity().decrStackSize(0, 1); - getBaseMetaTileEntity().decrStackSize(1, 2); - this.mMaxProgresstime = 4800; - return true; - } - if ((this.mInventory[0].stackSize >= 9) && ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "blockCoal")) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "blockCharcoal"))) && (this.mInventory[1].stackSize >= 4) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 4L)))) - { - getBaseMetaTileEntity().decrStackSize(0, 9); - getBaseMetaTileEntity().decrStackSize(1, 4); - this.mMaxProgresstime = 64800; - return true; - } - } - else if (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[0], "dustSteel")) - { - if ((this.mInventory[1].getItem() == Items.coal) && (this.mInventory[1].stackSize >= 2) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2L)))) - { - getBaseMetaTileEntity().decrStackSize(0, 1); - getBaseMetaTileEntity().decrStackSize(1, 2); - this.mMaxProgresstime = 3600; - return true; - } - if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "fuelCoke")) && (this.mInventory[1].stackSize >= 1) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 2L)))) - { - getBaseMetaTileEntity().decrStackSize(0, 1); - getBaseMetaTileEntity().decrStackSize(1, 1); - this.mMaxProgresstime = 2400; - return true; - } - if ((this.mInventory[0].stackSize >= 9) && ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "blockCoal")) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "blockCharcoal"))) && (this.mInventory[1].stackSize >= 2) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2L)))) - { - getBaseMetaTileEntity().decrStackSize(0, 9); - getBaseMetaTileEntity().decrStackSize(1, 2); - this.mMaxProgresstime = 32400; - return true; - } - } - else if (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[0], "blockIron")) - { - if ((this.mInventory[1].getItem() == Items.coal) && (this.mInventory[1].stackSize >= 36) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 4L)))) - { - getBaseMetaTileEntity().decrStackSize(0, 1); - getBaseMetaTileEntity().decrStackSize(1, 36); - this.mMaxProgresstime = 64800; - return true; - } - if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "fuelCoke")) && (this.mInventory[1].stackSize >= 18) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 4L)))) - { - getBaseMetaTileEntity().decrStackSize(0, 1); - getBaseMetaTileEntity().decrStackSize(1, 18); - this.mMaxProgresstime = 43200; - return true; - } - if (((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "blockCoal")) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "blockCharcoal"))) && (this.mInventory[1].stackSize >= 4) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 4L)))) - { - getBaseMetaTileEntity().decrStackSize(0, 1); - getBaseMetaTileEntity().decrStackSize(1, 4); - this.mMaxProgresstime = 64800; - return true; - } - } + + public byte getTileEntityBaseType() { + return 0; } - this.mOutputItem1 = null; - this.mOutputItem2 = null; - return false; - } - - public boolean isGivingInformation() - { - return false; - } - - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - return aIndex > 1; - } - - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - if (aIndex < 2) {} - return !GT_Utility.areStacksEqual(aStack, this.mInventory[0]); - } - - public byte getTileEntityBaseType() - { - return 0; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java index 632cdcbd..98d7c253 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java @@ -2,7 +2,6 @@ package gregtech.common.tileentities.machines.multi; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -11,12 +10,7 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Outpu import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; - -import java.util.ArrayList; - -import scala.actors.threadpool.Arrays; import net.minecraft.block.Block; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; @@ -24,169 +18,158 @@ import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; public class GT_MetaTileEntity_DistillationTower - extends GT_MetaTileEntity_MultiBlockBase -{ - public GT_MetaTileEntity_DistillationTower(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional); - } - - public GT_MetaTileEntity_DistillationTower(String aName) - { - super(aName); - } - - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_DistillationTower(this.mName); - } - - public String[] getDescription() - { - return new String[] { "Controller Block for the Distillation Tower", "Size: 3x6x3 (Hollow)", "Controller (front bottom)", "1x Input Hatch (bottom)", "5x Output Hatch (one each height level besides botton)","1x Output Bus (Botton)", "1x Energy Hatch (anywhere)", "1x Maintenance Hatch (anywhere)", "Clean Stainless Steel Casings for the rest (26 at least!)" }; - } - - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) - { - if (aSide == aFacing) { - return new ITexture[] { Textures.BlockIcons.CASING_BLOCKS[49], new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_VACUUM_FREEZER) }; - } - return new ITexture[] { Textures.BlockIcons.CASING_BLOCKS[49] }; - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "VacuumFreezer.png"); - } - - public GT_Recipe.GT_Recipe_Map getRecipeMap() - { - return GT_Recipe.GT_Recipe_Map.sDistillationRecipes; - } - - public boolean isCorrectMachinePart(ItemStack aStack) - { - return true; - } - - public boolean isFacingValid(byte aFacing) - { - return aFacing > 1; - } - - public boolean checkRecipe(ItemStack aStack) - { - - long tVoltage = getMaxInputVoltage(); - byte tTier = (byte)Math.max(1, GT_Utility.getTier(tVoltage)); - if(this.mInputHatches.size()>0&&this.mInputHatches.get(0)!=null&&this.mInputHatches.get(0).mFluid!=null&&this.mInputHatches.get(0).mFluid.amount>0){ - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sDistillationRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], new FluidStack[]{this.mInputHatches.get(0).mFluid}, new ItemStack[] {}); - if (tRecipe != null) { - if (tRecipe.isRecipeInputEqual(true, new FluidStack[]{this.mInputHatches.get(0).mFluid}, new ItemStack[] {})) - { - this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); - this.mEfficiencyIncrease = 10000; - if (tRecipe.mEUt <= 16) - { - this.mEUt = (tRecipe.mEUt * (1 << tTier - 1) * (1 << tTier - 1)); - this.mMaxProgresstime = (tRecipe.mDuration / (1 << tTier - 1)); - } - else - { - this.mEUt = tRecipe.mEUt; - this.mMaxProgresstime = tRecipe.mDuration; - while (this.mEUt <= gregtech.api.enums.GT_Values.V[(tTier - 1)]) - { - this.mEUt *= 4; - this.mMaxProgresstime /= 2; - } - } - if (this.mEUt > 0) { - this.mEUt = (-this.mEUt); - } - this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime); - this.mOutputItems = new ItemStack[] { tRecipe.getOutput(0) }; - this.mOutputFluids = tRecipe.mFluidOutputs; - updateSlots(); - return true; - } - }} - - return false; - } - private static boolean controller; - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) - { - int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX;int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; - if (!aBaseMetaTileEntity.getAirOffset(xDir, 1, zDir)) { - return false; - } - int tAmount = 0; - controller=false; - for (int i = -1; i < 2; i++) { - for (int j = -1; j < 2; j++) { - for (int h = 0; h < 6; h++) { - if (!(i==0&&j==0&&(h>0&&h<5)))//((h > 0)&&(h<5)) || (((xDir + i != 0) || (zDir + j != 0)) && ((i != 0) || (j != 0))) - { - IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, h, zDir + j); - if ((!addMaintenanceToMachineList(tTileEntity, 49)) && (!addInputToMachineList(tTileEntity, 49)) && (!addOutputToMachineList(tTileEntity, 49)) && (!addEnergyInputToMachineList(tTileEntity, 49))&&(!ignoreController(aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j)))) - { - if (aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j) != GregTech_API.sBlockCasings4) { - return false; - } - if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j) != 1) { - return false; - } - tAmount++; - } - } - } - } - } - if(this.mInputHatches.size()!=1||this.mOutputBusses.size()!=1||this.mInputBusses.size()!=0||this.mOutputHatches.size()!=5){return false;} - int height = this.getBaseMetaTileEntity().getYCoord(); - if(this.mInputHatches.get(0).getBaseMetaTileEntity().getYCoord()!=height||this.mOutputBusses.get(0).getBaseMetaTileEntity().getYCoord()!=height){return false;} - GT_MetaTileEntity_Hatch_Output[] tmpHatches = new GT_MetaTileEntity_Hatch_Output[5]; - for(int i=0;i< this.mOutputHatches.size();i++){ - int hatchNumber = this.mOutputHatches.get(i).getBaseMetaTileEntity().getYCoord()-1-height; - if(tmpHatches[hatchNumber]==null){ - tmpHatches[hatchNumber]=this.mOutputHatches.get(i); - }else{return false;} - } - this.mOutputHatches.clear(); - for(int i=0;i< tmpHatches.length;i++){ - this.mOutputHatches.add(tmpHatches[i]); - } - return tAmount >= 26; - } + extends GT_MetaTileEntity_MultiBlockBase { + private static boolean controller; - public boolean ignoreController(Block tTileEntity){ - if(!controller&&tTileEntity == GregTech_API.sBlockMachines){return true;} - return false; - } - - public int getMaxEfficiency(ItemStack aStack) - { - return 10000; - } - - public int getPollutionPerTick(ItemStack aStack) - { - return 0; - } - - public int getDamageToComponent(ItemStack aStack) - { - return 0; - } - - public int getAmountOfOutputs() - { - return 1; - } - - public boolean explodesOnComponentBreak(ItemStack aStack) - { - return false; - } + public GT_MetaTileEntity_DistillationTower(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); + } + + public GT_MetaTileEntity_DistillationTower(String aName) { + super(aName); + } + + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_DistillationTower(this.mName); + } + + public String[] getDescription() { + return new String[]{"Controller Block for the Distillation Tower", "Size: 3x6x3 (Hollow)", "Controller (front bottom)", "1x Input Hatch (bottom)", "5x Output Hatch (one each height level besides botton)", "1x Output Bus (Botton)", "1x Energy Hatch (anywhere)", "1x Maintenance Hatch (anywhere)", "Clean Stainless Steel Casings for the rest (26 at least!)"}; + } + + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + if (aSide == aFacing) { + return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[49], new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_VACUUM_FREEZER)}; + } + return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[49]}; + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "VacuumFreezer.png"); + } + + public GT_Recipe.GT_Recipe_Map getRecipeMap() { + return GT_Recipe.GT_Recipe_Map.sDistillationRecipes; + } + + public boolean isCorrectMachinePart(ItemStack aStack) { + return true; + } + + public boolean isFacingValid(byte aFacing) { + return aFacing > 1; + } + + public boolean checkRecipe(ItemStack aStack) { + + long tVoltage = getMaxInputVoltage(); + byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage)); + if (this.mInputHatches.size() > 0 && this.mInputHatches.get(0) != null && this.mInputHatches.get(0).mFluid != null && this.mInputHatches.get(0).mFluid.amount > 0) { + GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sDistillationRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], new FluidStack[]{this.mInputHatches.get(0).mFluid}, new ItemStack[]{}); + if (tRecipe != null) { + if (tRecipe.isRecipeInputEqual(true, new FluidStack[]{this.mInputHatches.get(0).mFluid}, new ItemStack[]{})) { + this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); + this.mEfficiencyIncrease = 10000; + if (tRecipe.mEUt <= 16) { + this.mEUt = (tRecipe.mEUt * (1 << tTier - 1) * (1 << tTier - 1)); + this.mMaxProgresstime = (tRecipe.mDuration / (1 << tTier - 1)); + } else { + this.mEUt = tRecipe.mEUt; + this.mMaxProgresstime = tRecipe.mDuration; + while (this.mEUt <= gregtech.api.enums.GT_Values.V[(tTier - 1)]) { + this.mEUt *= 4; + this.mMaxProgresstime /= 2; + } + } + if (this.mEUt > 0) { + this.mEUt = (-this.mEUt); + } + this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime); + this.mOutputItems = new ItemStack[]{tRecipe.getOutput(0)}; + this.mOutputFluids = tRecipe.mFluidOutputs; + updateSlots(); + return true; + } + } + } + + return false; + } + + public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX; + int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; + if (!aBaseMetaTileEntity.getAirOffset(xDir, 1, zDir)) { + return false; + } + int tAmount = 0; + controller = false; + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 2; j++) { + for (int h = 0; h < 6; h++) { + if (!(i == 0 && j == 0 && (h > 0 && h < 5)))//((h > 0)&&(h<5)) || (((xDir + i != 0) || (zDir + j != 0)) && ((i != 0) || (j != 0))) + { + IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, h, zDir + j); + if ((!addMaintenanceToMachineList(tTileEntity, 49)) && (!addInputToMachineList(tTileEntity, 49)) && (!addOutputToMachineList(tTileEntity, 49)) && (!addEnergyInputToMachineList(tTileEntity, 49)) && (!ignoreController(aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j)))) { + if (aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j) != GregTech_API.sBlockCasings4) { + return false; + } + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j) != 1) { + return false; + } + tAmount++; + } + } + } + } + } + if (this.mInputHatches.size() != 1 || this.mOutputBusses.size() != 1 || this.mInputBusses.size() != 0 || this.mOutputHatches.size() != 5) { + return false; + } + int height = this.getBaseMetaTileEntity().getYCoord(); + if (this.mInputHatches.get(0).getBaseMetaTileEntity().getYCoord() != height || this.mOutputBusses.get(0).getBaseMetaTileEntity().getYCoord() != height) { + return false; + } + GT_MetaTileEntity_Hatch_Output[] tmpHatches = new GT_MetaTileEntity_Hatch_Output[5]; + for (int i = 0; i < this.mOutputHatches.size(); i++) { + int hatchNumber = this.mOutputHatches.get(i).getBaseMetaTileEntity().getYCoord() - 1 - height; + if (tmpHatches[hatchNumber] == null) { + tmpHatches[hatchNumber] = this.mOutputHatches.get(i); + } else { + return false; + } + } + this.mOutputHatches.clear(); + for (int i = 0; i < tmpHatches.length; i++) { + this.mOutputHatches.add(tmpHatches[i]); + } + return tAmount >= 26; + } + + public boolean ignoreController(Block tTileEntity) { + if (!controller && tTileEntity == GregTech_API.sBlockMachines) { + return true; + } + return false; + } + + public int getMaxEfficiency(ItemStack aStack) { + return 10000; + } + + public int getPollutionPerTick(ItemStack aStack) { + return 0; + } + + public int getDamageToComponent(ItemStack aStack) { + return 0; + } + + public int getAmountOfOutputs() { + return 1; + } + + public boolean explodesOnComponentBreak(ItemStack aStack) { + return false; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java index 8e77293c..0c6463fc 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java @@ -2,7 +2,6 @@ package gregtech.common.tileentities.machines.multi; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -10,234 +9,205 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; - -import java.util.ArrayList; -import java.util.Arrays; - import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; +import java.util.ArrayList; +import java.util.Arrays; + public class GT_MetaTileEntity_ElectricBlastFurnace - extends GT_MetaTileEntity_MultiBlockBase -{ - private int mHeatingCapacity = 0; - - public GT_MetaTileEntity_ElectricBlastFurnace(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional); - } - - public GT_MetaTileEntity_ElectricBlastFurnace(String aName) - { - super(aName); - } - - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_ElectricBlastFurnace(this.mName); - } - - public String[] getDescription() - { - return new String[] { "Controller Block for the Blast Furnace", "Size: 3x3x4 (Hollow)", "Controller (front middle at bottom)", "16x Heating Coils (two middle Layers, hollow)", "1x Input (one of bottom)", "1x Output (one of bottom)", "1x Energy Hatch (one of bottom)", "1x Maintenance Hatch (one of bottom)", "1x Muffler Hatch (top middle)", "Heat Proof Machine Casings for the rest" }; - } - - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) - { - if (aSide == aFacing) { - return new ITexture[] { Textures.BlockIcons.CASING_BLOCKS[11], new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE) }; + extends GT_MetaTileEntity_MultiBlockBase { + private int mHeatingCapacity = 0; + + public GT_MetaTileEntity_ElectricBlastFurnace(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); } - return new ITexture[] { Textures.BlockIcons.CASING_BLOCKS[11] }; - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "ElectricBlastFurnace.png"); - } - - public GT_Recipe.GT_Recipe_Map getRecipeMap() - { - return GT_Recipe.GT_Recipe_Map.sBlastRecipes; - } - - public boolean isCorrectMachinePart(ItemStack aStack) - { - return true; - } - - public boolean isFacingValid(byte aFacing) - { - return aFacing > 1; - } - - public boolean checkRecipe(ItemStack aStack) - { - ArrayList tInputList = getStoredInputs(); - for (int i = 0; i < tInputList.size() - 1; i++) { - for (int j = i + 1; j < tInputList.size(); j++) { - if (GT_Utility.areStacksEqual((ItemStack)tInputList.get(i), (ItemStack)tInputList.get(j))) { - if (((ItemStack)tInputList.get(i)).stackSize >= ((ItemStack)tInputList.get(j)).stackSize) - { - tInputList.remove(j--); - } - else - { - tInputList.remove(i--); break; - } - } - } + + public GT_MetaTileEntity_ElectricBlastFurnace(String aName) { + super(aName); } - ItemStack[] tInputs = (ItemStack[])Arrays.copyOfRange(tInputList.toArray(new ItemStack[tInputList.size()]), 0, 2); - - ArrayList tFluidList = getStoredFluids(); - for (int i = 0; i < tFluidList.size() - 1; i++) { - for (int j = i + 1; j < tFluidList.size(); j++) { - if (GT_Utility.areFluidsEqual((FluidStack)tFluidList.get(i), (FluidStack)tFluidList.get(j))) { - if (((FluidStack)tFluidList.get(i)).amount >= ((FluidStack)tFluidList.get(j)).amount) - { - tFluidList.remove(j--); - } - else - { - tFluidList.remove(i--); break; - } - } - } + + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_ElectricBlastFurnace(this.mName); } - FluidStack[] tFluids = (FluidStack[])Arrays.copyOfRange(tFluidList.toArray(new FluidStack[tInputList.size()]), 0, 1); - if (tInputList.size() > 0) - { - long tVoltage = getMaxInputVoltage(); - byte tTier = (byte)Math.max(1, GT_Utility.getTier(tVoltage)); - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sBlastRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], tFluids, tInputs); - if ((tRecipe != null) && (this.mHeatingCapacity >= tRecipe.mSpecialValue) && (tRecipe.isRecipeInputEqual(true, tFluids, tInputs))) - { - this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); - this.mEfficiencyIncrease = 10000; - if (tRecipe.mEUt <= 16) - { - this.mEUt = (tRecipe.mEUt * (1 << tTier - 1) * (1 << tTier - 1)); - this.mMaxProgresstime = (tRecipe.mDuration / (1 << tTier - 1)); + + public String[] getDescription() { + return new String[]{"Controller Block for the Blast Furnace", "Size: 3x3x4 (Hollow)", "Controller (front middle at bottom)", "16x Heating Coils (two middle Layers, hollow)", "1x Input (one of bottom)", "1x Output (one of bottom)", "1x Energy Hatch (one of bottom)", "1x Maintenance Hatch (one of bottom)", "1x Muffler Hatch (top middle)", "Heat Proof Machine Casings for the rest"}; + } + + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + if (aSide == aFacing) { + return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[11], new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE)}; } - else - { - this.mEUt = tRecipe.mEUt; - this.mMaxProgresstime = tRecipe.mDuration; - while (this.mEUt <= gregtech.api.enums.GT_Values.V[(tTier - 1)]) - { - this.mEUt *= 4; - this.mMaxProgresstime /= 2; - } - } - if (this.mEUt > 0) { - this.mEUt = (-this.mEUt); - } - this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime); - this.mOutputItems = new ItemStack[] { tRecipe.getOutput(0), tRecipe.getOutput(1) }; - updateSlots(); + return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[11]}; + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "ElectricBlastFurnace.png"); + } + + public GT_Recipe.GT_Recipe_Map getRecipeMap() { + return GT_Recipe.GT_Recipe_Map.sBlastRecipes; + } + + public boolean isCorrectMachinePart(ItemStack aStack) { return true; - } } - return false; - } - - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) - { - int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX;int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; - - this.mHeatingCapacity = 0; - if (!aBaseMetaTileEntity.getAirOffset(xDir, 1, zDir)) { - return false; + + public boolean isFacingValid(byte aFacing) { + return aFacing > 1; } - if (!aBaseMetaTileEntity.getAirOffset(xDir, 2, zDir)) { - return false; - } - addMufflerToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir, 3, zDir), 11); - - byte tUsedMeta = aBaseMetaTileEntity.getMetaIDOffset(xDir + 1, 2, zDir); - switch (tUsedMeta) - { - case 12: - this.mHeatingCapacity = 1800; break; - case 13: - this.mHeatingCapacity = 2700; break; - case 14: - this.mHeatingCapacity = 3600; break; - default: - return false; - } - for (int i = -1; i < 2; i++) { - for (int j = -1; j < 2; j++) { - if ((i != 0) || (j != 0)) - { - if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 2, zDir + j) != GregTech_API.sBlockCasings1) { - return false; - } - if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 2, zDir + j) != tUsedMeta) { - return false; - } - if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 1, zDir + j) != GregTech_API.sBlockCasings1) { - return false; - } - if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 1, zDir + j) != tUsedMeta) { - return false; - } - if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 3, zDir + j) != GregTech_API.sBlockCasings1) { - return false; - } - if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 3, zDir + j) != 11) { - return false; - } - } - } - } - for (int i = -1; i < 2; i++) { - for (int j = -1; j < 2; j++) { - if ((xDir + i != 0) || (zDir + j != 0)) - { - IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, 0, zDir + j); - if ((!addMaintenanceToMachineList(tTileEntity, 11)) && (!addInputToMachineList(tTileEntity, 11)) && (!addOutputToMachineList(tTileEntity, 11)) && (!addEnergyInputToMachineList(tTileEntity, 11))) - { - if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 0, zDir + j) != GregTech_API.sBlockCasings1) { - return false; + + public boolean checkRecipe(ItemStack aStack) { + ArrayList tInputList = getStoredInputs(); + for (int i = 0; i < tInputList.size() - 1; i++) { + for (int j = i + 1; j < tInputList.size(); j++) { + if (GT_Utility.areStacksEqual((ItemStack) tInputList.get(i), (ItemStack) tInputList.get(j))) { + if (((ItemStack) tInputList.get(i)).stackSize >= ((ItemStack) tInputList.get(j)).stackSize) { + tInputList.remove(j--); + } else { + tInputList.remove(i--); + break; + } + } } - if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 0, zDir + j) != 11) { - return false; - } - } } - } + ItemStack[] tInputs = (ItemStack[]) Arrays.copyOfRange(tInputList.toArray(new ItemStack[tInputList.size()]), 0, 2); + + ArrayList tFluidList = getStoredFluids(); + for (int i = 0; i < tFluidList.size() - 1; i++) { + for (int j = i + 1; j < tFluidList.size(); j++) { + if (GT_Utility.areFluidsEqual((FluidStack) tFluidList.get(i), (FluidStack) tFluidList.get(j))) { + if (((FluidStack) tFluidList.get(i)).amount >= ((FluidStack) tFluidList.get(j)).amount) { + tFluidList.remove(j--); + } else { + tFluidList.remove(i--); + break; + } + } + } + } + FluidStack[] tFluids = (FluidStack[]) Arrays.copyOfRange(tFluidList.toArray(new FluidStack[tInputList.size()]), 0, 1); + if (tInputList.size() > 0) { + long tVoltage = getMaxInputVoltage(); + byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage)); + GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sBlastRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], tFluids, tInputs); + if ((tRecipe != null) && (this.mHeatingCapacity >= tRecipe.mSpecialValue) && (tRecipe.isRecipeInputEqual(true, tFluids, tInputs))) { + this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); + this.mEfficiencyIncrease = 10000; + if (tRecipe.mEUt <= 16) { + this.mEUt = (tRecipe.mEUt * (1 << tTier - 1) * (1 << tTier - 1)); + this.mMaxProgresstime = (tRecipe.mDuration / (1 << tTier - 1)); + } else { + this.mEUt = tRecipe.mEUt; + this.mMaxProgresstime = tRecipe.mDuration; + while (this.mEUt <= gregtech.api.enums.GT_Values.V[(tTier - 1)]) { + this.mEUt *= 4; + this.mMaxProgresstime /= 2; + } + } + if (this.mEUt > 0) { + this.mEUt = (-this.mEUt); + } + this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime); + this.mOutputItems = new ItemStack[]{tRecipe.getOutput(0), tRecipe.getOutput(1)}; + updateSlots(); + return true; + } + } + return false; + } + + public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX; + int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; + + this.mHeatingCapacity = 0; + if (!aBaseMetaTileEntity.getAirOffset(xDir, 1, zDir)) { + return false; + } + if (!aBaseMetaTileEntity.getAirOffset(xDir, 2, zDir)) { + return false; + } + addMufflerToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir, 3, zDir), 11); + + byte tUsedMeta = aBaseMetaTileEntity.getMetaIDOffset(xDir + 1, 2, zDir); + switch (tUsedMeta) { + case 12: + this.mHeatingCapacity = 1800; + break; + case 13: + this.mHeatingCapacity = 2700; + break; + case 14: + this.mHeatingCapacity = 3600; + break; + default: + return false; + } + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 2; j++) { + if ((i != 0) || (j != 0)) { + if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 2, zDir + j) != GregTech_API.sBlockCasings1) { + return false; + } + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 2, zDir + j) != tUsedMeta) { + return false; + } + if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 1, zDir + j) != GregTech_API.sBlockCasings1) { + return false; + } + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 1, zDir + j) != tUsedMeta) { + return false; + } + if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 3, zDir + j) != GregTech_API.sBlockCasings1) { + return false; + } + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 3, zDir + j) != 11) { + return false; + } + } + } + } + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 2; j++) { + if ((xDir + i != 0) || (zDir + j != 0)) { + IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, 0, zDir + j); + if ((!addMaintenanceToMachineList(tTileEntity, 11)) && (!addInputToMachineList(tTileEntity, 11)) && (!addOutputToMachineList(tTileEntity, 11)) && (!addEnergyInputToMachineList(tTileEntity, 11))) { + if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 0, zDir + j) != GregTech_API.sBlockCasings1) { + return false; + } + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 0, zDir + j) != 11) { + return false; + } + } + } + } + } + this.mHeatingCapacity += 100 * (GT_Utility.getTier(getMaxInputVoltage()) - 2); + return true; + } + + public int getMaxEfficiency(ItemStack aStack) { + return 10000; + } + + public int getPollutionPerTick(ItemStack aStack) { + return 10; + } + + public int getDamageToComponent(ItemStack aStack) { + return 0; + } + + public int getAmountOfOutputs() { + return 2; + } + + public boolean explodesOnComponentBreak(ItemStack aStack) { + return false; } - this.mHeatingCapacity += 100 * (GT_Utility.getTier(getMaxInputVoltage()) - 2); - return true; - } - - public int getMaxEfficiency(ItemStack aStack) - { - return 10000; - } - - public int getPollutionPerTick(ItemStack aStack) - { - return 10; - } - - public int getDamageToComponent(ItemStack aStack) - { - return 0; - } - - public int getAmountOfOutputs() - { - return 2; - } - - public boolean explodesOnComponentBreak(ItemStack aStack) - { - return false; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java index 8a5a1d6b..c49fe6fe 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java @@ -1,445 +1,436 @@ package gregtech.common.tileentities.machines.multi; -import java.util.ArrayList; -import java.util.Arrays; - import gregtech.GT_Mod; -import gregtech.api.GregTech_API; import gregtech.api.enums.Dyes; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Textures; import gregtech.api.gui.GT_Container_MultiMachine; -import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gregtech.api.metatileentity.implementations.*; import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; -import gregtech.api.metatileentity.implementations.*; import gregtech.common.gui.GT_GUIContainer_FusionReactor; import net.minecraft.block.Block; -import net.minecraft.client.multiplayer.WorldClient; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.world.World; -import net.minecraft.world.WorldType; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; +import java.util.ArrayList; + public abstract class GT_MetaTileEntity_FusionComputer extends GT_MetaTileEntity_MultiBlockBase { - public GT_Recipe mLastRecipe; - public int mEUStore; + public GT_Recipe mLastRecipe; + public int mEUStore; - public GT_MetaTileEntity_FusionComputer(int aID, String aName, String aNameRegional, int tier) { - super(aID, aName, aNameRegional); - } + public GT_MetaTileEntity_FusionComputer(int aID, String aName, String aNameRegional, int tier) { + super(aID, aName, aNameRegional); + } - public GT_MetaTileEntity_FusionComputer(String aName) { - super(aName); - } + public GT_MetaTileEntity_FusionComputer(String aName) { + super(aName); + } - public abstract int tier(); + public abstract int tier(); - public abstract long maxEUStore(); + public abstract long maxEUStore(); - @Override - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_Container_MultiMachine(aPlayerInventory, aBaseMetaTileEntity); - } + @Override + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_Container_MultiMachine(aPlayerInventory, aBaseMetaTileEntity); + } - @Override - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_FusionReactor(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "FusionComputer.png", GT_Recipe.GT_Recipe_Map.sFusionRecipes.mNEIName); - } + @Override + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_FusionReactor(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "FusionComputer.png", GT_Recipe.GT_Recipe_Map.sFusionRecipes.mNEIName); + } - public abstract MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity); + public abstract MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity); - public boolean allowCoverOnSide(byte aSide, GT_ItemStack aStack) { - - return aSide != getBaseMetaTileEntity().getFrontFacing(); - } + public boolean allowCoverOnSide(byte aSide, GT_ItemStack aStack) { - @Override - public void saveNBTData(NBTTagCompound aNBT) { - super.saveNBTData(aNBT); - } + return aSide != getBaseMetaTileEntity().getFrontFacing(); + } - @Override - public void loadNBTData(NBTTagCompound aNBT) { - super.loadNBTData(aNBT); - } + @Override + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + } - @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - int xCenter = getBaseMetaTileEntity().getXCoord() + ForgeDirection.getOrientation(getBaseMetaTileEntity().getFrontFacing()).offsetX * 5; - int yCenter = getBaseMetaTileEntity().getYCoord(); - int zCenter = getBaseMetaTileEntity().getZCoord() + ForgeDirection.getOrientation(getBaseMetaTileEntity().getFrontFacing()).offsetZ * 5; - if (((isAdvancedMachineCasing(xCenter + 5, yCenter, zCenter)) || (xCenter + 5 == getBaseMetaTileEntity().getXCoord())) - && ((isAdvancedMachineCasing(xCenter - 5, yCenter, zCenter)) || (xCenter - 5 == getBaseMetaTileEntity().getXCoord())) - && ((isAdvancedMachineCasing(xCenter, yCenter, zCenter + 5)) || (zCenter + 5 == getBaseMetaTileEntity().getZCoord())) - && ((isAdvancedMachineCasing(xCenter, yCenter, zCenter - 5)) || (zCenter - 5 == getBaseMetaTileEntity().getZCoord())) && (checkCoils(xCenter, yCenter, zCenter)) - && (checkHulls(xCenter, yCenter, zCenter)) && (checkUpperOrLowerHulls(xCenter, yCenter + 1, zCenter)) && (checkUpperOrLowerHulls(xCenter, yCenter - 1, zCenter)) - && (addIfEnergyInjector(xCenter + 4, yCenter, zCenter + 3, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter + 4, yCenter, zCenter - 3, aBaseMetaTileEntity)) - && (addIfEnergyInjector(xCenter + 4, yCenter, zCenter + 5, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter + 4, yCenter, zCenter - 5, aBaseMetaTileEntity)) - && (addIfEnergyInjector(xCenter - 4, yCenter, zCenter + 3, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 4, yCenter, zCenter - 3, aBaseMetaTileEntity)) - && (addIfEnergyInjector(xCenter - 4, yCenter, zCenter + 5, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 4, yCenter, zCenter - 5, aBaseMetaTileEntity)) - && (addIfEnergyInjector(xCenter + 3, yCenter, zCenter + 4, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 3, yCenter, zCenter + 4, aBaseMetaTileEntity)) - && (addIfEnergyInjector(xCenter + 5, yCenter, zCenter + 4, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 5, yCenter, zCenter + 4, aBaseMetaTileEntity)) - && (addIfEnergyInjector(xCenter + 3, yCenter, zCenter - 4, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 3, yCenter, zCenter - 4, aBaseMetaTileEntity)) - && (addIfEnergyInjector(xCenter + 5, yCenter, zCenter - 4, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 5, yCenter, zCenter - 4, aBaseMetaTileEntity)) - && (addIfExtractor(xCenter + 1, yCenter, zCenter - 5, aBaseMetaTileEntity)) && (addIfExtractor(xCenter + 1, yCenter, zCenter + 5, aBaseMetaTileEntity)) - && (addIfExtractor(xCenter - 1, yCenter, zCenter - 5, aBaseMetaTileEntity)) && (addIfExtractor(xCenter - 1, yCenter, zCenter + 5, aBaseMetaTileEntity)) - && (addIfExtractor(xCenter + 1, yCenter, zCenter - 7, aBaseMetaTileEntity)) && (addIfExtractor(xCenter + 1, yCenter, zCenter + 7, aBaseMetaTileEntity)) - && (addIfExtractor(xCenter - 1, yCenter, zCenter - 7, aBaseMetaTileEntity)) && (addIfExtractor(xCenter - 1, yCenter, zCenter + 7, aBaseMetaTileEntity)) - && (addIfExtractor(xCenter + 5, yCenter, zCenter - 1, aBaseMetaTileEntity)) && (addIfExtractor(xCenter + 5, yCenter, zCenter + 1, aBaseMetaTileEntity)) - && (addIfExtractor(xCenter - 5, yCenter, zCenter - 1, aBaseMetaTileEntity)) && (addIfExtractor(xCenter - 5, yCenter, zCenter + 1, aBaseMetaTileEntity)) - && (addIfExtractor(xCenter + 7, yCenter, zCenter - 1, aBaseMetaTileEntity)) && (addIfExtractor(xCenter + 7, yCenter, zCenter + 1, aBaseMetaTileEntity)) - && (addIfExtractor(xCenter - 7, yCenter, zCenter - 1, aBaseMetaTileEntity)) && (addIfExtractor(xCenter - 7, yCenter, zCenter + 1, aBaseMetaTileEntity)) - && (addIfInjector(xCenter + 1, yCenter + 1, zCenter - 6, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 1, yCenter + 1, zCenter + 6, aBaseMetaTileEntity)) - && (addIfInjector(xCenter - 1, yCenter + 1, zCenter - 6, aBaseMetaTileEntity)) && (addIfInjector(xCenter - 1, yCenter + 1, zCenter + 6, aBaseMetaTileEntity)) - && (addIfInjector(xCenter - 6, yCenter + 1, zCenter + 1, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 6, yCenter + 1, zCenter + 1, aBaseMetaTileEntity)) - && (addIfInjector(xCenter - 6, yCenter + 1, zCenter - 1, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 6, yCenter + 1, zCenter - 1, aBaseMetaTileEntity)) - && (addIfInjector(xCenter + 1, yCenter - 1, zCenter - 6, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 1, yCenter - 1, zCenter + 6, aBaseMetaTileEntity)) - && (addIfInjector(xCenter - 1, yCenter - 1, zCenter - 6, aBaseMetaTileEntity)) && (addIfInjector(xCenter - 1, yCenter - 1, zCenter + 6, aBaseMetaTileEntity)) - && (addIfInjector(xCenter - 6, yCenter - 1, zCenter + 1, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 6, yCenter - 1, zCenter + 1, aBaseMetaTileEntity)) - && (addIfInjector(xCenter - 6, yCenter - 1, zCenter - 1, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 6, yCenter - 1, zCenter - 1, aBaseMetaTileEntity)) - && (this.mEnergyHatches.size() >= 1) && (this.mOutputHatches.size() >= 1) && (this.mInputHatches.size() >= 2)) { - if (this.mEnergyHatches != null) { - for (int i = 0; i < this.mEnergyHatches.size(); i++) { - if (this.mEnergyHatches.get(i).mTier < tier()) - return false; - } - } - if (this.mOutputHatches != null) { - for (int i = 0; i < this.mOutputHatches.size(); i++) { - if (this.mOutputHatches.get(i).mTier < tier()) - return false; - } - } - if (this.mInputHatches != null) { - for (int i = 0; i < this.mInputHatches.size(); i++) { - if (this.mInputHatches.get(i).mTier < tier()) - return false; - } - } - mWrench = true; - mScrewdriver = true; - mSoftHammer = true; - mHardHammer = true; - mSolderingTool = true; - mCrowbar = true; - return true; - } - return false; - } + @Override + public void loadNBTData(NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + } - private boolean checkTier(byte tier, ArrayList list) { - if (list != null) { - for (int i = 0; i < list.size(); i++) { - if (list.get(i).mTier < tier) { - return false; - } - } - } - return true; - } + @Override + public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + int xCenter = getBaseMetaTileEntity().getXCoord() + ForgeDirection.getOrientation(getBaseMetaTileEntity().getFrontFacing()).offsetX * 5; + int yCenter = getBaseMetaTileEntity().getYCoord(); + int zCenter = getBaseMetaTileEntity().getZCoord() + ForgeDirection.getOrientation(getBaseMetaTileEntity().getFrontFacing()).offsetZ * 5; + if (((isAdvancedMachineCasing(xCenter + 5, yCenter, zCenter)) || (xCenter + 5 == getBaseMetaTileEntity().getXCoord())) + && ((isAdvancedMachineCasing(xCenter - 5, yCenter, zCenter)) || (xCenter - 5 == getBaseMetaTileEntity().getXCoord())) + && ((isAdvancedMachineCasing(xCenter, yCenter, zCenter + 5)) || (zCenter + 5 == getBaseMetaTileEntity().getZCoord())) + && ((isAdvancedMachineCasing(xCenter, yCenter, zCenter - 5)) || (zCenter - 5 == getBaseMetaTileEntity().getZCoord())) && (checkCoils(xCenter, yCenter, zCenter)) + && (checkHulls(xCenter, yCenter, zCenter)) && (checkUpperOrLowerHulls(xCenter, yCenter + 1, zCenter)) && (checkUpperOrLowerHulls(xCenter, yCenter - 1, zCenter)) + && (addIfEnergyInjector(xCenter + 4, yCenter, zCenter + 3, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter + 4, yCenter, zCenter - 3, aBaseMetaTileEntity)) + && (addIfEnergyInjector(xCenter + 4, yCenter, zCenter + 5, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter + 4, yCenter, zCenter - 5, aBaseMetaTileEntity)) + && (addIfEnergyInjector(xCenter - 4, yCenter, zCenter + 3, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 4, yCenter, zCenter - 3, aBaseMetaTileEntity)) + && (addIfEnergyInjector(xCenter - 4, yCenter, zCenter + 5, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 4, yCenter, zCenter - 5, aBaseMetaTileEntity)) + && (addIfEnergyInjector(xCenter + 3, yCenter, zCenter + 4, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 3, yCenter, zCenter + 4, aBaseMetaTileEntity)) + && (addIfEnergyInjector(xCenter + 5, yCenter, zCenter + 4, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 5, yCenter, zCenter + 4, aBaseMetaTileEntity)) + && (addIfEnergyInjector(xCenter + 3, yCenter, zCenter - 4, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 3, yCenter, zCenter - 4, aBaseMetaTileEntity)) + && (addIfEnergyInjector(xCenter + 5, yCenter, zCenter - 4, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 5, yCenter, zCenter - 4, aBaseMetaTileEntity)) + && (addIfExtractor(xCenter + 1, yCenter, zCenter - 5, aBaseMetaTileEntity)) && (addIfExtractor(xCenter + 1, yCenter, zCenter + 5, aBaseMetaTileEntity)) + && (addIfExtractor(xCenter - 1, yCenter, zCenter - 5, aBaseMetaTileEntity)) && (addIfExtractor(xCenter - 1, yCenter, zCenter + 5, aBaseMetaTileEntity)) + && (addIfExtractor(xCenter + 1, yCenter, zCenter - 7, aBaseMetaTileEntity)) && (addIfExtractor(xCenter + 1, yCenter, zCenter + 7, aBaseMetaTileEntity)) + && (addIfExtractor(xCenter - 1, yCenter, zCenter - 7, aBaseMetaTileEntity)) && (addIfExtractor(xCenter - 1, yCenter, zCenter + 7, aBaseMetaTileEntity)) + && (addIfExtractor(xCenter + 5, yCenter, zCenter - 1, aBaseMetaTileEntity)) && (addIfExtractor(xCenter + 5, yCenter, zCenter + 1, aBaseMetaTileEntity)) + && (addIfExtractor(xCenter - 5, yCenter, zCenter - 1, aBaseMetaTileEntity)) && (addIfExtractor(xCenter - 5, yCenter, zCenter + 1, aBaseMetaTileEntity)) + && (addIfExtractor(xCenter + 7, yCenter, zCenter - 1, aBaseMetaTileEntity)) && (addIfExtractor(xCenter + 7, yCenter, zCenter + 1, aBaseMetaTileEntity)) + && (addIfExtractor(xCenter - 7, yCenter, zCenter - 1, aBaseMetaTileEntity)) && (addIfExtractor(xCenter - 7, yCenter, zCenter + 1, aBaseMetaTileEntity)) + && (addIfInjector(xCenter + 1, yCenter + 1, zCenter - 6, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 1, yCenter + 1, zCenter + 6, aBaseMetaTileEntity)) + && (addIfInjector(xCenter - 1, yCenter + 1, zCenter - 6, aBaseMetaTileEntity)) && (addIfInjector(xCenter - 1, yCenter + 1, zCenter + 6, aBaseMetaTileEntity)) + && (addIfInjector(xCenter - 6, yCenter + 1, zCenter + 1, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 6, yCenter + 1, zCenter + 1, aBaseMetaTileEntity)) + && (addIfInjector(xCenter - 6, yCenter + 1, zCenter - 1, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 6, yCenter + 1, zCenter - 1, aBaseMetaTileEntity)) + && (addIfInjector(xCenter + 1, yCenter - 1, zCenter - 6, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 1, yCenter - 1, zCenter + 6, aBaseMetaTileEntity)) + && (addIfInjector(xCenter - 1, yCenter - 1, zCenter - 6, aBaseMetaTileEntity)) && (addIfInjector(xCenter - 1, yCenter - 1, zCenter + 6, aBaseMetaTileEntity)) + && (addIfInjector(xCenter - 6, yCenter - 1, zCenter + 1, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 6, yCenter - 1, zCenter + 1, aBaseMetaTileEntity)) + && (addIfInjector(xCenter - 6, yCenter - 1, zCenter - 1, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 6, yCenter - 1, zCenter - 1, aBaseMetaTileEntity)) + && (this.mEnergyHatches.size() >= 1) && (this.mOutputHatches.size() >= 1) && (this.mInputHatches.size() >= 2)) { + if (this.mEnergyHatches != null) { + for (int i = 0; i < this.mEnergyHatches.size(); i++) { + if (this.mEnergyHatches.get(i).mTier < tier()) + return false; + } + } + if (this.mOutputHatches != null) { + for (int i = 0; i < this.mOutputHatches.size(); i++) { + if (this.mOutputHatches.get(i).mTier < tier()) + return false; + } + } + if (this.mInputHatches != null) { + for (int i = 0; i < this.mInputHatches.size(); i++) { + if (this.mInputHatches.get(i).mTier < tier()) + return false; + } + } + mWrench = true; + mScrewdriver = true; + mSoftHammer = true; + mHardHammer = true; + mSolderingTool = true; + mCrowbar = true; + return true; + } + return false; + } - private boolean checkCoils(int aX, int aY, int aZ) { - return (isFusionCoil(aX + 6, aY, aZ - 1)) && (isFusionCoil(aX + 6, aY, aZ)) && (isFusionCoil(aX + 6, aY, aZ + 1)) && (isFusionCoil(aX + 5, aY, aZ - 3)) && (isFusionCoil(aX + 5, aY, aZ - 2)) - && (isFusionCoil(aX + 5, aY, aZ + 2)) && (isFusionCoil(aX + 5, aY, aZ + 3)) && (isFusionCoil(aX + 4, aY, aZ - 4)) && (isFusionCoil(aX + 4, aY, aZ + 4)) - && (isFusionCoil(aX + 3, aY, aZ - 5)) && (isFusionCoil(aX + 3, aY, aZ + 5)) && (isFusionCoil(aX + 2, aY, aZ - 5)) && (isFusionCoil(aX + 2, aY, aZ + 5)) - && (isFusionCoil(aX + 1, aY, aZ - 6)) && (isFusionCoil(aX + 1, aY, aZ + 6)) && (isFusionCoil(aX, aY, aZ - 6)) && (isFusionCoil(aX, aY, aZ + 6)) && (isFusionCoil(aX - 1, aY, aZ - 6)) - && (isFusionCoil(aX - 1, aY, aZ + 6)) && (isFusionCoil(aX - 2, aY, aZ - 5)) && (isFusionCoil(aX - 2, aY, aZ + 5)) && (isFusionCoil(aX - 3, aY, aZ - 5)) - && (isFusionCoil(aX - 3, aY, aZ + 5)) && (isFusionCoil(aX - 4, aY, aZ - 4)) && (isFusionCoil(aX - 4, aY, aZ + 4)) && (isFusionCoil(aX - 5, aY, aZ - 3)) - && (isFusionCoil(aX - 5, aY, aZ - 2)) && (isFusionCoil(aX - 5, aY, aZ + 2)) && (isFusionCoil(aX - 5, aY, aZ + 3)) && (isFusionCoil(aX - 6, aY, aZ - 1)) - && (isFusionCoil(aX - 6, aY, aZ)) && (isFusionCoil(aX - 6, aY, aZ + 1)); - } + private boolean checkTier(byte tier, ArrayList list) { + if (list != null) { + for (int i = 0; i < list.size(); i++) { + if (list.get(i).mTier < tier) { + return false; + } + } + } + return true; + } - private boolean checkUpperOrLowerHulls(int aX, int aY, int aZ) { - return (isAdvancedMachineCasing(aX + 6, aY, aZ)) && (isAdvancedMachineCasing(aX + 5, aY, aZ - 3)) && (isAdvancedMachineCasing(aX + 5, aY, aZ - 2)) - && (isAdvancedMachineCasing(aX + 5, aY, aZ + 2)) && (isAdvancedMachineCasing(aX + 5, aY, aZ + 3)) && (isAdvancedMachineCasing(aX + 4, aY, aZ - 4)) - && (isAdvancedMachineCasing(aX + 4, aY, aZ + 4)) && (isAdvancedMachineCasing(aX + 3, aY, aZ - 5)) && (isAdvancedMachineCasing(aX + 3, aY, aZ + 5)) - && (isAdvancedMachineCasing(aX + 2, aY, aZ - 5)) && (isAdvancedMachineCasing(aX + 2, aY, aZ + 5)) && (isAdvancedMachineCasing(aX, aY, aZ - 6)) - && (isAdvancedMachineCasing(aX, aY, aZ + 6)) && (isAdvancedMachineCasing(aX - 2, aY, aZ - 5)) && (isAdvancedMachineCasing(aX - 2, aY, aZ + 5)) - && (isAdvancedMachineCasing(aX - 3, aY, aZ - 5)) && (isAdvancedMachineCasing(aX - 3, aY, aZ + 5)) && (isAdvancedMachineCasing(aX - 4, aY, aZ - 4)) - && (isAdvancedMachineCasing(aX - 4, aY, aZ + 4)) && (isAdvancedMachineCasing(aX - 5, aY, aZ - 3)) && (isAdvancedMachineCasing(aX - 5, aY, aZ - 2)) - && (isAdvancedMachineCasing(aX - 5, aY, aZ + 2)) && (isAdvancedMachineCasing(aX - 5, aY, aZ + 3)) && (isAdvancedMachineCasing(aX - 6, aY, aZ)); - } + private boolean checkCoils(int aX, int aY, int aZ) { + return (isFusionCoil(aX + 6, aY, aZ - 1)) && (isFusionCoil(aX + 6, aY, aZ)) && (isFusionCoil(aX + 6, aY, aZ + 1)) && (isFusionCoil(aX + 5, aY, aZ - 3)) && (isFusionCoil(aX + 5, aY, aZ - 2)) + && (isFusionCoil(aX + 5, aY, aZ + 2)) && (isFusionCoil(aX + 5, aY, aZ + 3)) && (isFusionCoil(aX + 4, aY, aZ - 4)) && (isFusionCoil(aX + 4, aY, aZ + 4)) + && (isFusionCoil(aX + 3, aY, aZ - 5)) && (isFusionCoil(aX + 3, aY, aZ + 5)) && (isFusionCoil(aX + 2, aY, aZ - 5)) && (isFusionCoil(aX + 2, aY, aZ + 5)) + && (isFusionCoil(aX + 1, aY, aZ - 6)) && (isFusionCoil(aX + 1, aY, aZ + 6)) && (isFusionCoil(aX, aY, aZ - 6)) && (isFusionCoil(aX, aY, aZ + 6)) && (isFusionCoil(aX - 1, aY, aZ - 6)) + && (isFusionCoil(aX - 1, aY, aZ + 6)) && (isFusionCoil(aX - 2, aY, aZ - 5)) && (isFusionCoil(aX - 2, aY, aZ + 5)) && (isFusionCoil(aX - 3, aY, aZ - 5)) + && (isFusionCoil(aX - 3, aY, aZ + 5)) && (isFusionCoil(aX - 4, aY, aZ - 4)) && (isFusionCoil(aX - 4, aY, aZ + 4)) && (isFusionCoil(aX - 5, aY, aZ - 3)) + && (isFusionCoil(aX - 5, aY, aZ - 2)) && (isFusionCoil(aX - 5, aY, aZ + 2)) && (isFusionCoil(aX - 5, aY, aZ + 3)) && (isFusionCoil(aX - 6, aY, aZ - 1)) + && (isFusionCoil(aX - 6, aY, aZ)) && (isFusionCoil(aX - 6, aY, aZ + 1)); + } - private boolean checkHulls(int aX, int aY, int aZ) { - return (isAdvancedMachineCasing(aX + 6, aY, aZ - 3)) && (isAdvancedMachineCasing(aX + 6, aY, aZ - 2)) && (isAdvancedMachineCasing(aX + 6, aY, aZ + 2)) - && (isAdvancedMachineCasing(aX + 6, aY, aZ + 3)) && (isAdvancedMachineCasing(aX + 3, aY, aZ - 6)) && (isAdvancedMachineCasing(aX + 3, aY, aZ + 6)) - && (isAdvancedMachineCasing(aX + 2, aY, aZ - 6)) && (isAdvancedMachineCasing(aX + 2, aY, aZ + 6)) && (isAdvancedMachineCasing(aX - 2, aY, aZ - 6)) - && (isAdvancedMachineCasing(aX - 2, aY, aZ + 6)) && (isAdvancedMachineCasing(aX - 3, aY, aZ - 6)) && (isAdvancedMachineCasing(aX - 3, aY, aZ + 6)) - && (isAdvancedMachineCasing(aX - 7, aY, aZ)) && (isAdvancedMachineCasing(aX + 7, aY, aZ)) && (isAdvancedMachineCasing(aX, aY, aZ - 7)) && (isAdvancedMachineCasing(aX, aY, aZ + 7)) - && (isAdvancedMachineCasing(aX - 6, aY, aZ - 3)) && (isAdvancedMachineCasing(aX - 6, aY, aZ - 2)) && (isAdvancedMachineCasing(aX - 6, aY, aZ + 2)) - && (isAdvancedMachineCasing(aX - 6, aY, aZ + 3)) && (isAdvancedMachineCasing(aX - 4, aY, aZ - 2)) && (isAdvancedMachineCasing(aX - 4, aY, aZ + 2)) - && (isAdvancedMachineCasing(aX + 4, aY, aZ - 2)) && (isAdvancedMachineCasing(aX + 4, aY, aZ + 2)) && (isAdvancedMachineCasing(aX - 2, aY, aZ - 4)) - && (isAdvancedMachineCasing(aX - 2, aY, aZ + 4)) && (isAdvancedMachineCasing(aX + 2, aY, aZ - 4)) && (isAdvancedMachineCasing(aX + 2, aY, aZ + 4)); - } + private boolean checkUpperOrLowerHulls(int aX, int aY, int aZ) { + return (isAdvancedMachineCasing(aX + 6, aY, aZ)) && (isAdvancedMachineCasing(aX + 5, aY, aZ - 3)) && (isAdvancedMachineCasing(aX + 5, aY, aZ - 2)) + && (isAdvancedMachineCasing(aX + 5, aY, aZ + 2)) && (isAdvancedMachineCasing(aX + 5, aY, aZ + 3)) && (isAdvancedMachineCasing(aX + 4, aY, aZ - 4)) + && (isAdvancedMachineCasing(aX + 4, aY, aZ + 4)) && (isAdvancedMachineCasing(aX + 3, aY, aZ - 5)) && (isAdvancedMachineCasing(aX + 3, aY, aZ + 5)) + && (isAdvancedMachineCasing(aX + 2, aY, aZ - 5)) && (isAdvancedMachineCasing(aX + 2, aY, aZ + 5)) && (isAdvancedMachineCasing(aX, aY, aZ - 6)) + && (isAdvancedMachineCasing(aX, aY, aZ + 6)) && (isAdvancedMachineCasing(aX - 2, aY, aZ - 5)) && (isAdvancedMachineCasing(aX - 2, aY, aZ + 5)) + && (isAdvancedMachineCasing(aX - 3, aY, aZ - 5)) && (isAdvancedMachineCasing(aX - 3, aY, aZ + 5)) && (isAdvancedMachineCasing(aX - 4, aY, aZ - 4)) + && (isAdvancedMachineCasing(aX - 4, aY, aZ + 4)) && (isAdvancedMachineCasing(aX - 5, aY, aZ - 3)) && (isAdvancedMachineCasing(aX - 5, aY, aZ - 2)) + && (isAdvancedMachineCasing(aX - 5, aY, aZ + 2)) && (isAdvancedMachineCasing(aX - 5, aY, aZ + 3)) && (isAdvancedMachineCasing(aX - 6, aY, aZ)); + } - private boolean addIfEnergyInjector(int aX, int aY, int aZ, IGregTechTileEntity aBaseMetaTileEntity) { - if (addEnergyInputToMachineList(aBaseMetaTileEntity.getIGregTechTileEntity(aX, aY, aZ), 53)) { - return true; - } - return isAdvancedMachineCasing(aX, aY, aZ); - } + private boolean checkHulls(int aX, int aY, int aZ) { + return (isAdvancedMachineCasing(aX + 6, aY, aZ - 3)) && (isAdvancedMachineCasing(aX + 6, aY, aZ - 2)) && (isAdvancedMachineCasing(aX + 6, aY, aZ + 2)) + && (isAdvancedMachineCasing(aX + 6, aY, aZ + 3)) && (isAdvancedMachineCasing(aX + 3, aY, aZ - 6)) && (isAdvancedMachineCasing(aX + 3, aY, aZ + 6)) + && (isAdvancedMachineCasing(aX + 2, aY, aZ - 6)) && (isAdvancedMachineCasing(aX + 2, aY, aZ + 6)) && (isAdvancedMachineCasing(aX - 2, aY, aZ - 6)) + && (isAdvancedMachineCasing(aX - 2, aY, aZ + 6)) && (isAdvancedMachineCasing(aX - 3, aY, aZ - 6)) && (isAdvancedMachineCasing(aX - 3, aY, aZ + 6)) + && (isAdvancedMachineCasing(aX - 7, aY, aZ)) && (isAdvancedMachineCasing(aX + 7, aY, aZ)) && (isAdvancedMachineCasing(aX, aY, aZ - 7)) && (isAdvancedMachineCasing(aX, aY, aZ + 7)) + && (isAdvancedMachineCasing(aX - 6, aY, aZ - 3)) && (isAdvancedMachineCasing(aX - 6, aY, aZ - 2)) && (isAdvancedMachineCasing(aX - 6, aY, aZ + 2)) + && (isAdvancedMachineCasing(aX - 6, aY, aZ + 3)) && (isAdvancedMachineCasing(aX - 4, aY, aZ - 2)) && (isAdvancedMachineCasing(aX - 4, aY, aZ + 2)) + && (isAdvancedMachineCasing(aX + 4, aY, aZ - 2)) && (isAdvancedMachineCasing(aX + 4, aY, aZ + 2)) && (isAdvancedMachineCasing(aX - 2, aY, aZ - 4)) + && (isAdvancedMachineCasing(aX - 2, aY, aZ + 4)) && (isAdvancedMachineCasing(aX + 2, aY, aZ - 4)) && (isAdvancedMachineCasing(aX + 2, aY, aZ + 4)); + } - private boolean addIfInjector(int aX, int aY, int aZ, IGregTechTileEntity aTileEntity) { - if (addInputToMachineList(aTileEntity.getIGregTechTileEntity(aX, aY, aZ), 53)) { - return true; - } - return isAdvancedMachineCasing(aX, aY, aZ); - } + private boolean addIfEnergyInjector(int aX, int aY, int aZ, IGregTechTileEntity aBaseMetaTileEntity) { + if (addEnergyInputToMachineList(aBaseMetaTileEntity.getIGregTechTileEntity(aX, aY, aZ), 53)) { + return true; + } + return isAdvancedMachineCasing(aX, aY, aZ); + } - private boolean addIfExtractor(int aX, int aY, int aZ, IGregTechTileEntity aTileEntity) { - if (addOutputToMachineList(aTileEntity.getIGregTechTileEntity(aX, aY, aZ), 53)) { - return true; - } - return isAdvancedMachineCasing(aX, aY, aZ); - } + private boolean addIfInjector(int aX, int aY, int aZ, IGregTechTileEntity aTileEntity) { + if (addInputToMachineList(aTileEntity.getIGregTechTileEntity(aX, aY, aZ), 53)) { + return true; + } + return isAdvancedMachineCasing(aX, aY, aZ); + } - private boolean isAdvancedMachineCasing(int aX, int aY, int aZ) { - return (getBaseMetaTileEntity().getBlock(aX, aY, aZ) == getCasing()) && (getBaseMetaTileEntity().getMetaID(aX, aY, aZ) == getCasingMeta()); - } + private boolean addIfExtractor(int aX, int aY, int aZ, IGregTechTileEntity aTileEntity) { + if (addOutputToMachineList(aTileEntity.getIGregTechTileEntity(aX, aY, aZ), 53)) { + return true; + } + return isAdvancedMachineCasing(aX, aY, aZ); + } - public abstract Block getCasing(); + private boolean isAdvancedMachineCasing(int aX, int aY, int aZ) { + return (getBaseMetaTileEntity().getBlock(aX, aY, aZ) == getCasing()) && (getBaseMetaTileEntity().getMetaID(aX, aY, aZ) == getCasingMeta()); + } - public abstract int getCasingMeta(); + public abstract Block getCasing(); - private boolean isFusionCoil(int aX, int aY, int aZ) { - return (getBaseMetaTileEntity().getBlock(aX, aY, aZ) == getFusionCoil() && (getBaseMetaTileEntity().getMetaID(aX, aY, aZ) == getFusionCoilMeta())); - } + public abstract int getCasingMeta(); - public abstract Block getFusionCoil(); + private boolean isFusionCoil(int aX, int aY, int aZ) { + return (getBaseMetaTileEntity().getBlock(aX, aY, aZ) == getFusionCoil() && (getBaseMetaTileEntity().getMetaID(aX, aY, aZ) == getFusionCoilMeta())); + } - public abstract int getFusionCoilMeta(); + public abstract Block getFusionCoil(); - public abstract String[] getDescription(); + public abstract int getFusionCoilMeta(); - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { - ITexture[] sTexture; - if (aSide == aFacing) { - sTexture = new ITexture[] { new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS, Dyes.getModulation(-1, Dyes._NULL.mRGBa)), new GT_RenderedTexture(getIconOverlay()) }; - } else { - if (!aActive) { - sTexture = new ITexture[] { new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS, Dyes.getModulation(-1, Dyes._NULL.mRGBa)) }; - } else { - sTexture = new ITexture[] { new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS_YELLOW, Dyes.getModulation(-1, Dyes._NULL.mRGBa)) }; - } - } - return sTexture; - } + public abstract String[] getDescription(); - public abstract IIconContainer getIconOverlay(); + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + ITexture[] sTexture; + if (aSide == aFacing) { + sTexture = new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS, Dyes.getModulation(-1, Dyes._NULL.mRGBa)), new GT_RenderedTexture(getIconOverlay())}; + } else { + if (!aActive) { + sTexture = new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS, Dyes.getModulation(-1, Dyes._NULL.mRGBa))}; + } else { + sTexture = new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS_YELLOW, Dyes.getModulation(-1, Dyes._NULL.mRGBa))}; + } + } + return sTexture; + } - @Override - public boolean isCorrectMachinePart(ItemStack aStack) { - return true; - } + public abstract IIconContainer getIconOverlay(); - public int overclock(int mStartEnergy) { - if (tierOverclock() == 1) { - return 1; - } - if (tierOverclock() == 2) { - return mStartEnergy < 160000000 ? 2 : 1; - } - return mStartEnergy < 160000000 ? 4 : mStartEnergy > 320000000 ? 2 : 1; - } + @Override + public boolean isCorrectMachinePart(ItemStack aStack) { + return true; + } - @Override - public boolean checkRecipe(ItemStack aStack) { - ArrayList tFluidList = getStoredFluids(); - for (int i = 0; i < tFluidList.size() - 1; i++) { - for (int j = i + 1; j < tFluidList.size(); j++) { - if (GT_Utility.areFluidsEqual((FluidStack) tFluidList.get(i), (FluidStack) tFluidList.get(j))) { - if (((FluidStack) tFluidList.get(i)).amount >= ((FluidStack) tFluidList.get(j)).amount) { - tFluidList.remove(j--); - } else { - tFluidList.remove(i--); - break; - } - } - } - } - if (tFluidList.size() > 1) { - FluidStack[] tFluids = tFluidList.toArray(new FluidStack[tFluidList.size()]); - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sFusionRecipes.findRecipe(this.getBaseMetaTileEntity(), this.mLastRecipe, false, GT_Values.V[8], tFluids, new ItemStack[] {}); - if (tRecipe == null&&!mRunningOnLoad) { - turnCasingActive(false); - this.mLastRecipe = null; - return false; - } - if (mRunningOnLoad||tRecipe.isRecipeInputEqual(true, tFluids, new ItemStack[] {})) { - this.mLastRecipe = tRecipe; - this.mEUt = (this.mLastRecipe.mEUt * overclock(this.mLastRecipe.mSpecialValue)); - this.mMaxProgresstime = this.mLastRecipe.mDuration / overclock(this.mLastRecipe.mSpecialValue); - this.mEfficiencyIncrease = 10000; - this.mOutputFluids = this.mLastRecipe.mFluidOutputs; - turnCasingActive(true); - mRunningOnLoad=false; - return true; - } - } - return false; - } + public int overclock(int mStartEnergy) { + if (tierOverclock() == 1) { + return 1; + } + if (tierOverclock() == 2) { + return mStartEnergy < 160000000 ? 2 : 1; + } + return mStartEnergy < 160000000 ? 4 : mStartEnergy > 320000000 ? 2 : 1; + } - public abstract int tierOverclock(); + @Override + public boolean checkRecipe(ItemStack aStack) { + ArrayList tFluidList = getStoredFluids(); + for (int i = 0; i < tFluidList.size() - 1; i++) { + for (int j = i + 1; j < tFluidList.size(); j++) { + if (GT_Utility.areFluidsEqual((FluidStack) tFluidList.get(i), (FluidStack) tFluidList.get(j))) { + if (((FluidStack) tFluidList.get(i)).amount >= ((FluidStack) tFluidList.get(j)).amount) { + tFluidList.remove(j--); + } else { + tFluidList.remove(i--); + break; + } + } + } + } + if (tFluidList.size() > 1) { + FluidStack[] tFluids = tFluidList.toArray(new FluidStack[tFluidList.size()]); + GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sFusionRecipes.findRecipe(this.getBaseMetaTileEntity(), this.mLastRecipe, false, GT_Values.V[8], tFluids, new ItemStack[]{}); + if (tRecipe == null && !mRunningOnLoad) { + turnCasingActive(false); + this.mLastRecipe = null; + return false; + } + if (mRunningOnLoad || tRecipe.isRecipeInputEqual(true, tFluids, new ItemStack[]{})) { + this.mLastRecipe = tRecipe; + this.mEUt = (this.mLastRecipe.mEUt * overclock(this.mLastRecipe.mSpecialValue)); + this.mMaxProgresstime = this.mLastRecipe.mDuration / overclock(this.mLastRecipe.mSpecialValue); + this.mEfficiencyIncrease = 10000; + this.mOutputFluids = this.mLastRecipe.mFluidOutputs; + turnCasingActive(true); + mRunningOnLoad = false; + return true; + } + } + return false; + } - public boolean turnCasingActive(boolean status) { - if (this.mEnergyHatches != null) { - for (GT_MetaTileEntity_Hatch_Energy hatch : this.mEnergyHatches) { - hatch.mMachineBlock = status ? (byte) 52 : (byte) 53; - } - } - if (this.mOutputHatches != null) { - for (GT_MetaTileEntity_Hatch_Output hatch : this.mOutputHatches) { - hatch.mMachineBlock = status ? (byte) 52 : (byte) 53; - } - } - if (this.mInputHatches != null) { - for (GT_MetaTileEntity_Hatch_Input hatch : this.mInputHatches) { - hatch.mMachineBlock = status ? (byte) 52 : (byte) 53; - } - } - return true; - } + public abstract int tierOverclock(); - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - if (aBaseMetaTileEntity.isServerSide()) { - if (mEfficiency < 0) - mEfficiency = 0; - if(mRunningOnLoad&&checkMachine(aBaseMetaTileEntity, mInventory[1])){ - this.mEUStore = (int) aBaseMetaTileEntity.getStoredEU(); - checkRecipe(mInventory[1]);} - if (--mUpdate == 0 || --mStartUpCheck == 0) { - mInputHatches.clear(); - mInputBusses.clear(); - mOutputHatches.clear(); - mOutputBusses.clear(); - mDynamoHatches.clear(); - mEnergyHatches.clear(); - mMufflerHatches.clear(); - mMaintenanceHatches.clear(); - mMachine = checkMachine(aBaseMetaTileEntity, mInventory[1]); - } - if (mStartUpCheck < 0) { - if (mMachine) { - if (this.mEnergyHatches != null) { - for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) - if (isValidMetaTileEntity(tHatch)) { - if (aBaseMetaTileEntity.getStoredEU() + (2048 * tierOverclock()) < maxEUStore() - && tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(2048 * tierOverclock(), false)) { - aBaseMetaTileEntity.increaseStoredEnergyUnits(2048 * tierOverclock(), true); - } - } - } - if (this.mEUStore <= 0 && mMaxProgresstime > 0) { - stopMachine(); - } - if (getRepairStatus() > 0) { - if (mMaxProgresstime > 0 && doRandomMaintenanceDamage()) { - this.getBaseMetaTileEntity().decreaseStoredEnergyUnits(mEUt, true); - if (mMaxProgresstime > 0 && ++mProgresstime >= mMaxProgresstime) { - if (mOutputItems != null)for (ItemStack tStack : mOutputItems )if (tStack != null)addOutput(tStack); - if (mOutputFluids != null)for (FluidStack tStack : mOutputFluids)if (tStack != null)addOutput(tStack); - mEfficiency = Math.max(0, Math.min(mEfficiency + mEfficiencyIncrease, getMaxEfficiency(mInventory[1]) - ((getIdealStatus() - getRepairStatus()) * 1000))); - mOutputItems = null; - mProgresstime = 0; - mMaxProgresstime = 0; - mEfficiencyIncrease = 0; - if (mOutputFluids != null && mOutputFluids.length > 0) { - GT_Mod.instance.achievements.issueAchivementHatchFluid(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), mOutputFluids[0]); - } - this.mEUStore = (int) aBaseMetaTileEntity.getStoredEU(); - if (aBaseMetaTileEntity.isAllowedToWork()) - checkRecipe(mInventory[1]); - } - } else { - if (aTick % 100 == 0 || aBaseMetaTileEntity.hasWorkJustBeenEnabled() || aBaseMetaTileEntity.hasInventoryBeenModified()) { - turnCasingActive(mMaxProgresstime > 0); - if (aBaseMetaTileEntity.isAllowedToWork()) { - this.mEUStore = (int) aBaseMetaTileEntity.getStoredEU(); - if (checkRecipe(mInventory[1]) && aBaseMetaTileEntity.getStoredEU() >= this.mLastRecipe.mSpecialValue) { - aBaseMetaTileEntity.decreaseStoredEnergyUnits(this.mLastRecipe.mSpecialValue, true); - } - } - if (mMaxProgresstime <= 0) - mEfficiency = Math.max(0, mEfficiency - 1000); - } - } - } else { - this.mLastRecipe = null; - stopMachine(); - } - } else { - turnCasingActive(false); - this.mLastRecipe = null; - stopMachine(); - } - } - aBaseMetaTileEntity.setErrorDisplayID((aBaseMetaTileEntity.getErrorDisplayID() & ~127) | (mWrench ? 0 : 1) | (mScrewdriver ? 0 : 2) | (mSoftHammer ? 0 : 4) | (mHardHammer ? 0 : 8) - | (mSolderingTool ? 0 : 16) | (mCrowbar ? 0 : 32) | (mMachine ? 0 : 64)); - aBaseMetaTileEntity.setActive(mMaxProgresstime > 0); - } - } + public boolean turnCasingActive(boolean status) { + if (this.mEnergyHatches != null) { + for (GT_MetaTileEntity_Hatch_Energy hatch : this.mEnergyHatches) { + hatch.mMachineBlock = status ? (byte) 52 : (byte) 53; + } + } + if (this.mOutputHatches != null) { + for (GT_MetaTileEntity_Hatch_Output hatch : this.mOutputHatches) { + hatch.mMachineBlock = status ? (byte) 52 : (byte) 53; + } + } + if (this.mInputHatches != null) { + for (GT_MetaTileEntity_Hatch_Input hatch : this.mInputHatches) { + hatch.mMachineBlock = status ? (byte) 52 : (byte) 53; + } + } + return true; + } - @Override - public boolean onRunningTick(ItemStack aStack) { - if (mEUt < 0) { - if (!drainEnergyInput(((long) -mEUt * 10000) / Math.max(1000, mEfficiency))) { - this.mLastRecipe = null; - stopMachine(); - return false; - } - } - if (this.mEUStore <= 0) { - this.mLastRecipe = null; - stopMachine(); - return false; - } - return true; - } + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + if (aBaseMetaTileEntity.isServerSide()) { + if (mEfficiency < 0) + mEfficiency = 0; + if (mRunningOnLoad && checkMachine(aBaseMetaTileEntity, mInventory[1])) { + this.mEUStore = (int) aBaseMetaTileEntity.getStoredEU(); + checkRecipe(mInventory[1]); + } + if (--mUpdate == 0 || --mStartUpCheck == 0) { + mInputHatches.clear(); + mInputBusses.clear(); + mOutputHatches.clear(); + mOutputBusses.clear(); + mDynamoHatches.clear(); + mEnergyHatches.clear(); + mMufflerHatches.clear(); + mMaintenanceHatches.clear(); + mMachine = checkMachine(aBaseMetaTileEntity, mInventory[1]); + } + if (mStartUpCheck < 0) { + if (mMachine) { + if (this.mEnergyHatches != null) { + for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) + if (isValidMetaTileEntity(tHatch)) { + if (aBaseMetaTileEntity.getStoredEU() + (2048 * tierOverclock()) < maxEUStore() + && tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(2048 * tierOverclock(), false)) { + aBaseMetaTileEntity.increaseStoredEnergyUnits(2048 * tierOverclock(), true); + } + } + } + if (this.mEUStore <= 0 && mMaxProgresstime > 0) { + stopMachine(); + } + if (getRepairStatus() > 0) { + if (mMaxProgresstime > 0 && doRandomMaintenanceDamage()) { + this.getBaseMetaTileEntity().decreaseStoredEnergyUnits(mEUt, true); + if (mMaxProgresstime > 0 && ++mProgresstime >= mMaxProgresstime) { + if (mOutputItems != null) + for (ItemStack tStack : mOutputItems) if (tStack != null) addOutput(tStack); + if (mOutputFluids != null) + for (FluidStack tStack : mOutputFluids) if (tStack != null) addOutput(tStack); + mEfficiency = Math.max(0, Math.min(mEfficiency + mEfficiencyIncrease, getMaxEfficiency(mInventory[1]) - ((getIdealStatus() - getRepairStatus()) * 1000))); + mOutputItems = null; + mProgresstime = 0; + mMaxProgresstime = 0; + mEfficiencyIncrease = 0; + if (mOutputFluids != null && mOutputFluids.length > 0) { + GT_Mod.instance.achievements.issueAchivementHatchFluid(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), mOutputFluids[0]); + } + this.mEUStore = (int) aBaseMetaTileEntity.getStoredEU(); + if (aBaseMetaTileEntity.isAllowedToWork()) + checkRecipe(mInventory[1]); + } + } else { + if (aTick % 100 == 0 || aBaseMetaTileEntity.hasWorkJustBeenEnabled() || aBaseMetaTileEntity.hasInventoryBeenModified()) { + turnCasingActive(mMaxProgresstime > 0); + if (aBaseMetaTileEntity.isAllowedToWork()) { + this.mEUStore = (int) aBaseMetaTileEntity.getStoredEU(); + if (checkRecipe(mInventory[1]) && aBaseMetaTileEntity.getStoredEU() >= this.mLastRecipe.mSpecialValue) { + aBaseMetaTileEntity.decreaseStoredEnergyUnits(this.mLastRecipe.mSpecialValue, true); + } + } + if (mMaxProgresstime <= 0) + mEfficiency = Math.max(0, mEfficiency - 1000); + } + } + } else { + this.mLastRecipe = null; + stopMachine(); + } + } else { + turnCasingActive(false); + this.mLastRecipe = null; + stopMachine(); + } + } + aBaseMetaTileEntity.setErrorDisplayID((aBaseMetaTileEntity.getErrorDisplayID() & ~127) | (mWrench ? 0 : 1) | (mScrewdriver ? 0 : 2) | (mSoftHammer ? 0 : 4) | (mHardHammer ? 0 : 8) + | (mSolderingTool ? 0 : 16) | (mCrowbar ? 0 : 32) | (mMachine ? 0 : 64)); + aBaseMetaTileEntity.setActive(mMaxProgresstime > 0); + } + } - public boolean drainEnergyInput(long aEU) { - return false; - } + @Override + public boolean onRunningTick(ItemStack aStack) { + if (mEUt < 0) { + if (!drainEnergyInput(((long) -mEUt * 10000) / Math.max(1000, mEfficiency))) { + this.mLastRecipe = null; + stopMachine(); + return false; + } + } + if (this.mEUStore <= 0) { + this.mLastRecipe = null; + stopMachine(); + return false; + } + return true; + } - @Override - public int getMaxEfficiency(ItemStack aStack) { - return 10000; - } + public boolean drainEnergyInput(long aEU) { + return false; + } - @Override - public int getPollutionPerTick(ItemStack aStack) { - return 0; - } + @Override + public int getMaxEfficiency(ItemStack aStack) { + return 10000; + } - @Override - public int getDamageToComponent(ItemStack aStack) { - return 0; - } + @Override + public int getPollutionPerTick(ItemStack aStack) { + return 0; + } - @Override - public int getAmountOfOutputs() { - return 0; - } + @Override + public int getDamageToComponent(ItemStack aStack) { + return 0; + } - @Override - public boolean explodesOnComponentBreak(ItemStack aStack) { - return false; - } + @Override + public int getAmountOfOutputs() { + return 0; + } + + @Override + public boolean explodesOnComponentBreak(ItemStack aStack) { + return false; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer1.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer1.java index 3c23afcb..39d38e9b 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer1.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer1.java @@ -7,47 +7,63 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import net.minecraft.block.Block; -public class GT_MetaTileEntity_FusionComputer1 extends GT_MetaTileEntity_FusionComputer{ +public class GT_MetaTileEntity_FusionComputer1 extends GT_MetaTileEntity_FusionComputer { - public GT_MetaTileEntity_FusionComputer1(int aID, String aName, String aNameRegional) { - super(aID, aName, aNameRegional, 6); - } - - public GT_MetaTileEntity_FusionComputer1(String aName) {super(aName);} + public GT_MetaTileEntity_FusionComputer1(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional, 6); + } - @Override - public int tier() {return 6;} + public GT_MetaTileEntity_FusionComputer1(String aName) { + super(aName); + } - @Override - public long maxEUStore() {return 160000000L*(Math.min(16, this.mEnergyHatches.size()))/16L;} + @Override + public int tier() { + return 6; + } - @Override - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_FusionComputer1(mName); - } - @Override - public int getCasingMeta() {return 6;} + @Override + public long maxEUStore() { + return 160000000L * (Math.min(16, this.mEnergyHatches.size())) / 16L; + } - @Override - public Block getFusionCoil() {return GregTech_API.sBlockCasings1;} + @Override + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_FusionComputer1(mName); + } - @Override - public int getFusionCoilMeta() {return 15;} - - public String[] getDescription() - {return new String[] { "It's over 9000!!!","LuV Casings around Superconducting Coils","2-16 Input Hatches","1-16 Output Hatches","1-16 Energy Hatches","All Hatches must be LuV or better","2048EU/t and 10mio EU Cap per Energy Hatch" };} + @Override + public int getCasingMeta() { + return 6; + } - @Override - public int tierOverclock() {return 1;} + @Override + public Block getFusionCoil() { + return GregTech_API.sBlockCasings1; + } - @Override - public Block getCasing() { - return GregTech_API.sBlockCasings1; - } + @Override + public int getFusionCoilMeta() { + return 15; + } - @Override - public IIconContainer getIconOverlay() { - return Textures.BlockIcons.OVERLAY_FUSION1; - } + public String[] getDescription() { + return new String[]{"It's over 9000!!!", "LuV Casings around Superconducting Coils", "2-16 Input Hatches", "1-16 Output Hatches", "1-16 Energy Hatches", "All Hatches must be LuV or better", "2048EU/t and 10mio EU Cap per Energy Hatch"}; + } + + @Override + public int tierOverclock() { + return 1; + } + + @Override + public Block getCasing() { + return GregTech_API.sBlockCasings1; + } + + @Override + public IIconContainer getIconOverlay() { + return Textures.BlockIcons.OVERLAY_FUSION1; + } } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer2.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer2.java index d101875b..1fd1ca75 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer2.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer2.java @@ -7,46 +7,62 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import net.minecraft.block.Block; -public class GT_MetaTileEntity_FusionComputer2 extends GT_MetaTileEntity_FusionComputer{ +public class GT_MetaTileEntity_FusionComputer2 extends GT_MetaTileEntity_FusionComputer { - public GT_MetaTileEntity_FusionComputer2(int aID, String aName, String aNameRegional) { - super(aID, aName, aNameRegional, 6); - } - - public GT_MetaTileEntity_FusionComputer2(String aName) {super(aName);} + public GT_MetaTileEntity_FusionComputer2(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional, 6); + } - @Override - public int tier() {return 7;} + public GT_MetaTileEntity_FusionComputer2(String aName) { + super(aName); + } - @Override - public long maxEUStore() {return 320000000L*(Math.min(16, this.mEnergyHatches.size()))/16L;} + @Override + public int tier() { + return 7; + } - @Override - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_FusionComputer2(mName); - } - @Override - public int getCasingMeta() {return 6;} + @Override + public long maxEUStore() { + return 320000000L * (Math.min(16, this.mEnergyHatches.size())) / 16L; + } - @Override - public Block getFusionCoil() {return GregTech_API.sBlockCasings4;} + @Override + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_FusionComputer2(mName); + } - @Override - public int getFusionCoilMeta() {return 7;} - - public String[] getDescription() - {return new String[] { "It's over 9000!!!","Fusion Casings around Fusion Coils","2-16 Input Hatches","1-16 Output Hatches","1-16 Energy Hatches","All Hatches must be ZPMV or better","4096EU/t and 20mio EU Cap per Energy Hatch" };} + @Override + public int getCasingMeta() { + return 6; + } - @Override - public int tierOverclock() {return 2;} + @Override + public Block getFusionCoil() { + return GregTech_API.sBlockCasings4; + } - @Override - public Block getCasing() { - return GregTech_API.sBlockCasings4; - } + @Override + public int getFusionCoilMeta() { + return 7; + } - @Override - public IIconContainer getIconOverlay() { - return Textures.BlockIcons.OVERLAY_FUSION2; - } + public String[] getDescription() { + return new String[]{"It's over 9000!!!", "Fusion Casings around Fusion Coils", "2-16 Input Hatches", "1-16 Output Hatches", "1-16 Energy Hatches", "All Hatches must be ZPMV or better", "4096EU/t and 20mio EU Cap per Energy Hatch"}; + } + + @Override + public int tierOverclock() { + return 2; + } + + @Override + public Block getCasing() { + return GregTech_API.sBlockCasings4; + } + + @Override + public IIconContainer getIconOverlay() { + return Textures.BlockIcons.OVERLAY_FUSION2; + } } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer3.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer3.java index b7334bd4..c24476cd 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer3.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer3.java @@ -7,48 +7,64 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import net.minecraft.block.Block; -public class GT_MetaTileEntity_FusionComputer3 extends GT_MetaTileEntity_FusionComputer{ +public class GT_MetaTileEntity_FusionComputer3 extends GT_MetaTileEntity_FusionComputer { - public GT_MetaTileEntity_FusionComputer3(int aID, String aName, String aNameRegional) { - super(aID, aName, aNameRegional, 6); - } - - public GT_MetaTileEntity_FusionComputer3(String aName) {super(aName);} + public GT_MetaTileEntity_FusionComputer3(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional, 6); + } - @Override - public int tier() {return 8;} + public GT_MetaTileEntity_FusionComputer3(String aName) { + super(aName); + } - @Override - public long maxEUStore() {return 640000000L*(Math.min(16, this.mEnergyHatches.size()))/16L;} + @Override + public int tier() { + return 8; + } - @Override - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_FusionComputer3(mName); - } - @Override - public int getCasingMeta() {return 8;} + @Override + public long maxEUStore() { + return 640000000L * (Math.min(16, this.mEnergyHatches.size())) / 16L; + } - @Override - public Block getFusionCoil() {return GregTech_API.sBlockCasings4;} + @Override + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_FusionComputer3(mName); + } - @Override - public int getFusionCoilMeta() {return 7;} - - public String[] getDescription() - {return new String[] { "A SUN DOWN ON EARTH","Fusion Casings MK II around Fusion Coils","2-16 Input Hatches","1-16 Output Hatches","1-16 Energy Hatches","All Hatches must be UV or better","8192EU/t and 40mio EU Cap per Energy Hatch" };} + @Override + public int getCasingMeta() { + return 8; + } - @Override - public int tierOverclock() {return 4;} + @Override + public Block getFusionCoil() { + return GregTech_API.sBlockCasings4; + } - @Override - public Block getCasing() { - return GregTech_API.sBlockCasings4; - } + @Override + public int getFusionCoilMeta() { + return 7; + } - @Override - public IIconContainer getIconOverlay() { - return Textures.BlockIcons.OVERLAY_FUSION3; - } + public String[] getDescription() { + return new String[]{"A SUN DOWN ON EARTH", "Fusion Casings MK II around Fusion Coils", "2-16 Input Hatches", "1-16 Output Hatches", "1-16 Energy Hatches", "All Hatches must be UV or better", "8192EU/t and 40mio EU Cap per Energy Hatch"}; + } + + @Override + public int tierOverclock() { + return 4; + } + + @Override + public Block getCasing() { + return GregTech_API.sBlockCasings4; + } + + @Override + public IIconContainer getIconOverlay() { + return Textures.BlockIcons.OVERLAY_FUSION3; + } } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java index 3a6a51fa..d3c72835 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java @@ -1,18 +1,6 @@ package gregtech.common.tileentities.machines.multi; -import java.util.ArrayList; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.InventoryPlayer; -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.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; -import gregtech.GT_Mod; import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.ITexture; @@ -20,284 +8,273 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; +import net.minecraft.block.Block; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; -public class GT_MetaTileEntity_HeatExchanger extends GT_MetaTileEntity_MultiBlockBase{ - public GT_MetaTileEntity_HeatExchanger(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional); - } - - public GT_MetaTileEntity_HeatExchanger(String aName) - { - super(aName); - } - - public String[] getDescription() - { - return new String[] { "Controller Block for the Heat Exchanger", "Size: 3x3x4", "Controller (front middle at bottom)", "3x3x4 of Stable Titanium Casing (hollow, Min 24!)", "2 Titanium Pipe Casing Blocks inside the Hollow Casing", "1x Distillated Water Input (one of the Casings)","min 1 Steam Output (one of the Casings)", "1x Maintenance Hatch (one of the Casings)", "1x Hot Fluid Input (botton Center)", "1x Cold Fluid Output (top Center)" }; - } - - @Override - public void loadNBTData(NBTTagCompound aNBT) { - superheated = aNBT.getBoolean("superheated"); - super.loadNBTData(aNBT);} - - @Override - public void saveNBTData(NBTTagCompound aNBT) { - aNBT.setBoolean("superheated", superheated); - super.saveNBTData(aNBT);} - - public GT_MetaTileEntity_Hatch_Input mInputHotFluidHatch; - public GT_MetaTileEntity_Hatch_Output mOutputColdFluidHatch; - public boolean superheated=false; - - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) - { - if (aSide == aFacing) { - return new ITexture[] { Textures.BlockIcons.CASING_BLOCKS[50], new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_LARGE_BOILER_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_LARGE_BOILER) }; - } - return new ITexture[] { Textures.BlockIcons.CASING_BLOCKS[50] }; - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "LargeBoiler.png"); - } - - public boolean isCorrectMachinePart(ItemStack aStack) - { - return true; - } - - public boolean isFacingValid(byte aFacing) - { - return aFacing > 1; - } - - public boolean checkRecipe(ItemStack aStack) { - if (mInputHotFluidHatch.getFluid() == null) - return true; - - int fluidAmountToConsume = mInputHotFluidHatch.getFluidAmount(); // how much fluid is in hatch - - int superheated_threshold = 4000; // default: must have 4000L per second to generate superheated steam - float efficiency = 1f; // default: operate at 100% efficiency with no integrated circuitry - float penalty_per_config = 0.015f; // penalize 1.5% efficiency per circuitry level (1-25) - int shs_reduction_per_config = 150; // reduce threshold 150L/s per circuitry level (1-25) - float steam_output_multiplier = 4f; // default: multiply output by 4 - float penalty = 0.0f; // penalty to apply to output based on circuitry level (1-25). - boolean do_lava = false; - - // Do we have an integrated circuit with a valid configuration? - if (mInventory[1] != null && mInventory[1].getUnlocalizedName().startsWith("gt.integrated_circuit")) { - int circuit_config = mInventory[1].getItemDamage(); - if (circuit_config >= 1 && circuit_config <= 25) { - // If so, apply the penalty and reduced threshold. - penalty = (circuit_config - 1) * penalty_per_config; - superheated_threshold -= (shs_reduction_per_config * (circuit_config - 1)); - } - } - efficiency -= penalty; - - // If we're working with lava, adjust the threshold and multipliers accordingly. - if (GT_ModHandler.isLava(mInputHotFluidHatch.getFluid())) { - superheated_threshold /= 4; - do_lava = true; - } else if (mInputHotFluidHatch.getFluid().isFluidEqual(FluidRegistry.getFluidStack("ic2hotcoolant", 1))) { - steam_output_multiplier = 0.5f; - } else { - // If we're working with neither, fail out - return false; - } - - superheated = fluidAmountToConsume >= superheated_threshold; // set the internal superheated flag if we have enough hot fluid. Used in the onRunningTick method. - fluidAmountToConsume = Math.min(fluidAmountToConsume, superheated_threshold * 2); // Don't consume too much hot fluid per second - mInputHotFluidHatch.drain(fluidAmountToConsume, true); - this.mMaxProgresstime = 20; - this.mEUt = (int) (fluidAmountToConsume * steam_output_multiplier * efficiency); - if (do_lava) { - mOutputColdFluidHatch.fill(FluidRegistry.getFluidStack("ic2pahoehoelava", fluidAmountToConsume), true); - this.mEfficiencyIncrease = 80; - } else { - mOutputColdFluidHatch.fill(FluidRegistry.getFluidStack("ic2coolant", fluidAmountToConsume), true); - this.mEfficiencyIncrease = 80; - } - return true; - } - - private float water; - private int useWater(float input) { - water = water + input; - int usage = (int) water; - water = water - (int) usage; - return usage; - } - - public boolean onRunningTick(ItemStack aStack) { - if (this.mEUt > 0) { - int tGeneratedEU = (int) (this.mEUt * 2L * this.mEfficiency / 10000L); // APPROXIMATELY how much steam to generate. - if (tGeneratedEU > 0) { - - if (superheated) - tGeneratedEU /= 2; // We produce half as much superheated steam if necessary - - int distilledConsumed = useWater(tGeneratedEU / 160f); // how much distilled water to consume - //tGeneratedEU = distilledConsumed * 160; // EXACTLY how much steam to generate, producing a perfect 1:160 ratio with distilled water consumption - - FluidStack distilledStack = GT_ModHandler.getDistilledWater(distilledConsumed); - if (depleteInput(distilledStack)) // Consume the distilled water - { - if (superheated) { - addOutput(FluidRegistry.getFluidStack("ic2superheatedsteam", tGeneratedEU)); // Generate superheated steam - } else { - addOutput(GT_ModHandler.getSteam(tGeneratedEU)); // Generate regular steam - } - } else { - explodeMultiblock(); // Generate crater - } - } - return true; - } - return true; - } - private static boolean controller; - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) - { - int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX;int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; - - int tCasingAmount = 0;int tFireboxAmount = 0;controller=false; - for (int i = -1; i < 2; i++) { - for (int j = -1; j < 2; j++) { - if ((i != 0) || (j != 0)) - { - for (int k = 0; k <= 3; k++) { - if (!addOutputToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, k, zDir + j), 50)&&!addInputToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, k, zDir + j), 50)&&!addMaintenanceToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, k, zDir + j), 50)&&!ignoreController(aBaseMetaTileEntity.getBlockOffset(xDir + i, k, zDir + j))) - { - if (aBaseMetaTileEntity.getBlockOffset(xDir + i, k, zDir + j) != getCasingBlock()) { - return false; - } - if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, k, zDir + j) != getCasingMeta()) { - return false; - } - tCasingAmount++; - } - } - }else{ - if(!addHotFluidInputToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, 0, zDir + j), 50)){ - return false; - } - if(!addColdFluidOutputToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, 3, zDir + j), 50)){ - return false; - } - if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 1, zDir + j) != getPipeBlock()) { - return false; - } - if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 1, zDir + j) != getPipeMeta()) { - return false; - } - - if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 2, zDir + j) != getPipeBlock()) { - return false; - } - if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 2, zDir + j) != getPipeMeta()) { - return false; - } - } - } - } - return (tCasingAmount >= 24); - } - - public boolean ignoreController(Block tTileEntity){ - if(!controller&&tTileEntity == GregTech_API.sBlockMachines){return true;} - return false; - } - - public boolean addColdFluidOutputToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { - if (aTileEntity == null) return false; - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity == null) return false; - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output) { - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).mMachineBlock = (byte)aBaseCasingIndex; - mOutputColdFluidHatch = (GT_MetaTileEntity_Hatch_Output)aMetaTileEntity; - return true; - } - return false; - } - - public boolean addHotFluidInputToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { - if (aTileEntity == null) return false; - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity == null) return false; - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) { - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).mMachineBlock = (byte)aBaseCasingIndex; - ((GT_MetaTileEntity_Hatch_Input)aMetaTileEntity).mRecipeMap = getRecipeMap(); - mInputHotFluidHatch = (GT_MetaTileEntity_Hatch_Input)aMetaTileEntity; - return true; - } - return false; - } - - public Block getCasingBlock() - { - return GregTech_API.sBlockCasings4; - } - - public byte getCasingMeta() - { - return 2; - } - - public byte getCasingTextureIndex() - { - return 50; - } - - public Block getPipeBlock() - { - return GregTech_API.sBlockCasings2; - } - - public byte getPipeMeta() - { - return 14; - } - - public int getMaxEfficiency(ItemStack aStack) - { - return 10000; - } - - public int getPollutionPerTick(ItemStack aStack) - { - return 0; - } - - public int getDamageToComponent(ItemStack aStack) - { - return 0; - } - - public int getAmountOfOutputs() - { - return 1; - } - - public boolean explodesOnComponentBreak(ItemStack aStack) - { - return false; - } - - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_HeatExchanger(this.mName); - } - } +public class GT_MetaTileEntity_HeatExchanger extends GT_MetaTileEntity_MultiBlockBase { + private static boolean controller; + public GT_MetaTileEntity_Hatch_Input mInputHotFluidHatch; + public GT_MetaTileEntity_Hatch_Output mOutputColdFluidHatch; + public boolean superheated = false; + private float water; + + public GT_MetaTileEntity_HeatExchanger(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); + } + public GT_MetaTileEntity_HeatExchanger(String aName) { + super(aName); + } + + public String[] getDescription() { + return new String[]{"Controller Block for the Heat Exchanger", "Size: 3x3x4", "Controller (front middle at bottom)", "3x3x4 of Stable Titanium Casing (hollow, Min 24!)", "2 Titanium Pipe Casing Blocks inside the Hollow Casing", "1x Distillated Water Input (one of the Casings)", "min 1 Steam Output (one of the Casings)", "1x Maintenance Hatch (one of the Casings)", "1x Hot Fluid Input (botton Center)", "1x Cold Fluid Output (top Center)"}; + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + superheated = aNBT.getBoolean("superheated"); + super.loadNBTData(aNBT); + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + aNBT.setBoolean("superheated", superheated); + super.saveNBTData(aNBT); + } + + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + if (aSide == aFacing) { + return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[50], new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_LARGE_BOILER_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_LARGE_BOILER)}; + } + return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[50]}; + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "LargeBoiler.png"); + } + + public boolean isCorrectMachinePart(ItemStack aStack) { + return true; + } + + public boolean isFacingValid(byte aFacing) { + return aFacing > 1; + } + + public boolean checkRecipe(ItemStack aStack) { + if (mInputHotFluidHatch.getFluid() == null) + return true; + + int fluidAmountToConsume = mInputHotFluidHatch.getFluidAmount(); // how much fluid is in hatch + + int superheated_threshold = 4000; // default: must have 4000L per second to generate superheated steam + float efficiency = 1f; // default: operate at 100% efficiency with no integrated circuitry + float penalty_per_config = 0.015f; // penalize 1.5% efficiency per circuitry level (1-25) + int shs_reduction_per_config = 150; // reduce threshold 150L/s per circuitry level (1-25) + float steam_output_multiplier = 4f; // default: multiply output by 4 + float penalty = 0.0f; // penalty to apply to output based on circuitry level (1-25). + boolean do_lava = false; + + // Do we have an integrated circuit with a valid configuration? + if (mInventory[1] != null && mInventory[1].getUnlocalizedName().startsWith("gt.integrated_circuit")) { + int circuit_config = mInventory[1].getItemDamage(); + if (circuit_config >= 1 && circuit_config <= 25) { + // If so, apply the penalty and reduced threshold. + penalty = (circuit_config - 1) * penalty_per_config; + superheated_threshold -= (shs_reduction_per_config * (circuit_config - 1)); + } + } + efficiency -= penalty; + + // If we're working with lava, adjust the threshold and multipliers accordingly. + if (GT_ModHandler.isLava(mInputHotFluidHatch.getFluid())) { + superheated_threshold /= 4; + do_lava = true; + } else if (mInputHotFluidHatch.getFluid().isFluidEqual(FluidRegistry.getFluidStack("ic2hotcoolant", 1))) { + steam_output_multiplier = 0.5f; + } else { + // If we're working with neither, fail out + return false; + } + + superheated = fluidAmountToConsume >= superheated_threshold; // set the internal superheated flag if we have enough hot fluid. Used in the onRunningTick method. + fluidAmountToConsume = Math.min(fluidAmountToConsume, superheated_threshold * 2); // Don't consume too much hot fluid per second + mInputHotFluidHatch.drain(fluidAmountToConsume, true); + this.mMaxProgresstime = 20; + this.mEUt = (int) (fluidAmountToConsume * steam_output_multiplier * efficiency); + if (do_lava) { + mOutputColdFluidHatch.fill(FluidRegistry.getFluidStack("ic2pahoehoelava", fluidAmountToConsume), true); + this.mEfficiencyIncrease = 80; + } else { + mOutputColdFluidHatch.fill(FluidRegistry.getFluidStack("ic2coolant", fluidAmountToConsume), true); + this.mEfficiencyIncrease = 80; + } + return true; + } + + private int useWater(float input) { + water = water + input; + int usage = (int) water; + water = water - (int) usage; + return usage; + } + + public boolean onRunningTick(ItemStack aStack) { + if (this.mEUt > 0) { + int tGeneratedEU = (int) (this.mEUt * 2L * this.mEfficiency / 10000L); // APPROXIMATELY how much steam to generate. + if (tGeneratedEU > 0) { + + if (superheated) + tGeneratedEU /= 2; // We produce half as much superheated steam if necessary + + int distilledConsumed = useWater(tGeneratedEU / 160f); // how much distilled water to consume + //tGeneratedEU = distilledConsumed * 160; // EXACTLY how much steam to generate, producing a perfect 1:160 ratio with distilled water consumption + + FluidStack distilledStack = GT_ModHandler.getDistilledWater(distilledConsumed); + if (depleteInput(distilledStack)) // Consume the distilled water + { + if (superheated) { + addOutput(FluidRegistry.getFluidStack("ic2superheatedsteam", tGeneratedEU)); // Generate superheated steam + } else { + addOutput(GT_ModHandler.getSteam(tGeneratedEU)); // Generate regular steam + } + } else { + explodeMultiblock(); // Generate crater + } + } + return true; + } + return true; + } + + public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX; + int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; + + int tCasingAmount = 0; + int tFireboxAmount = 0; + controller = false; + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 2; j++) { + if ((i != 0) || (j != 0)) { + for (int k = 0; k <= 3; k++) { + if (!addOutputToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, k, zDir + j), 50) && !addInputToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, k, zDir + j), 50) && !addMaintenanceToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, k, zDir + j), 50) && !ignoreController(aBaseMetaTileEntity.getBlockOffset(xDir + i, k, zDir + j))) { + if (aBaseMetaTileEntity.getBlockOffset(xDir + i, k, zDir + j) != getCasingBlock()) { + return false; + } + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, k, zDir + j) != getCasingMeta()) { + return false; + } + tCasingAmount++; + } + } + } else { + if (!addHotFluidInputToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, 0, zDir + j), 50)) { + return false; + } + if (!addColdFluidOutputToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, 3, zDir + j), 50)) { + return false; + } + if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 1, zDir + j) != getPipeBlock()) { + return false; + } + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 1, zDir + j) != getPipeMeta()) { + return false; + } + + if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 2, zDir + j) != getPipeBlock()) { + return false; + } + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 2, zDir + j) != getPipeMeta()) { + return false; + } + } + } + } + return (tCasingAmount >= 24); + } + + public boolean ignoreController(Block tTileEntity) { + if (!controller && tTileEntity == GregTech_API.sBlockMachines) { + return true; + } + return false; + } + + public boolean addColdFluidOutputToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { + if (aTileEntity == null) return false; + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity == null) return false; + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output) { + ((GT_MetaTileEntity_Hatch) aMetaTileEntity).mMachineBlock = (byte) aBaseCasingIndex; + mOutputColdFluidHatch = (GT_MetaTileEntity_Hatch_Output) aMetaTileEntity; + return true; + } + return false; + } + + public boolean addHotFluidInputToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { + if (aTileEntity == null) return false; + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity == null) return false; + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) { + ((GT_MetaTileEntity_Hatch) aMetaTileEntity).mMachineBlock = (byte) aBaseCasingIndex; + ((GT_MetaTileEntity_Hatch_Input) aMetaTileEntity).mRecipeMap = getRecipeMap(); + mInputHotFluidHatch = (GT_MetaTileEntity_Hatch_Input) aMetaTileEntity; + return true; + } + return false; + } + + public Block getCasingBlock() { + return GregTech_API.sBlockCasings4; + } + + public byte getCasingMeta() { + return 2; + } + + public byte getCasingTextureIndex() { + return 50; + } + + public Block getPipeBlock() { + return GregTech_API.sBlockCasings2; + } + + public byte getPipeMeta() { + return 14; + } + + public int getMaxEfficiency(ItemStack aStack) { + return 10000; + } + + public int getPollutionPerTick(ItemStack aStack) { + return 0; + } + + public int getDamageToComponent(ItemStack aStack) { + return 0; + } + + public int getAmountOfOutputs() { + return 1; + } + + public boolean explodesOnComponentBreak(ItemStack aStack) { + return false; + } + + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_HeatExchanger(this.mName); + } +} diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java index fdc206b3..a6118435 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java @@ -2,7 +2,6 @@ package gregtech.common.tileentities.machines.multi; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -10,165 +9,139 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Map; - import net.minecraft.block.Block; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; +import java.util.ArrayList; +import java.util.Arrays; + public class GT_MetaTileEntity_ImplosionCompressor - extends GT_MetaTileEntity_MultiBlockBase -{ - public GT_MetaTileEntity_ImplosionCompressor(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional); - } - - public GT_MetaTileEntity_ImplosionCompressor(String aName) - { - super(aName); - } - - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_ImplosionCompressor(this.mName); - } - - public String[] getDescription() - { - return new String[] { "Controller Block for the Implosion Compressor", "Size: 3x3x3 (Hollow)", "Controller (front centered)", "1x Input (anywhere)", "1x Output (anywhere)", "1x Energy Hatch (anywhere)", "1x Maintenance Hatch (anywhere)", "1x Muffler Hatch (anywhere)", "Solid Steel Casings for the rest (16 at least!)" }; - } - - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) - { - if (aSide == aFacing) { - return new ITexture[] { Textures.BlockIcons.CASING_BLOCKS[16], new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_IMPLOSION_COMPRESSOR_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_IMPLOSION_COMPRESSOR) }; + extends GT_MetaTileEntity_MultiBlockBase { + public GT_MetaTileEntity_ImplosionCompressor(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); } - return new ITexture[] { Textures.BlockIcons.CASING_BLOCKS[16] }; - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "ImplosionCompressor.png"); - } - - public GT_Recipe.GT_Recipe_Map getRecipeMap() - { - return GT_Recipe.GT_Recipe_Map.sImplosionRecipes; - } - - public boolean isCorrectMachinePart(ItemStack aStack) - { - return true; - } - - public boolean isFacingValid(byte aFacing) - { - return aFacing > 1; - } - - public boolean checkRecipe(ItemStack aStack) - { - ArrayList tInputList = getStoredInputs(); - for (int i = 0; i < tInputList.size() - 1; i++) { - for (int j = i + 1; j < tInputList.size(); j++) { - if (GT_Utility.areStacksEqual((ItemStack)tInputList.get(i), (ItemStack)tInputList.get(j))) { - if (((ItemStack)tInputList.get(i)).stackSize >= ((ItemStack)tInputList.get(j)).stackSize) - { - tInputList.remove(j--); - } - else - { - tInputList.remove(i--); break; - } + + public GT_MetaTileEntity_ImplosionCompressor(String aName) { + super(aName); + } + + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_ImplosionCompressor(this.mName); + } + + public String[] getDescription() { + return new String[]{"Controller Block for the Implosion Compressor", "Size: 3x3x3 (Hollow)", "Controller (front centered)", "1x Input (anywhere)", "1x Output (anywhere)", "1x Energy Hatch (anywhere)", "1x Maintenance Hatch (anywhere)", "1x Muffler Hatch (anywhere)", "Solid Steel Casings for the rest (16 at least!)"}; + } + + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + if (aSide == aFacing) { + return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[16], new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_IMPLOSION_COMPRESSOR_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_IMPLOSION_COMPRESSOR)}; } - } + return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[16]}; } - ItemStack[] tInputs = (ItemStack[])Arrays.copyOfRange(tInputList.toArray(new ItemStack[tInputList.size()]), 0, 2); - if (tInputList.size() > 0) - { - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sImplosionRecipes.findRecipe(getBaseMetaTileEntity(), false, 9223372036854775807L, null, tInputs); - if ((tRecipe != null) && (tRecipe.isRecipeInputEqual(true, null, tInputs))) - { - this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); - this.mEfficiencyIncrease = 10000; - - this.mEUt = (-tRecipe.mEUt); - this.mMaxProgresstime = Math.max(1, tRecipe.mDuration); - this.mOutputItems = new ItemStack[] { tRecipe.getOutput(0), tRecipe.getOutput(1) }; - sendLoopStart((byte)20); - updateSlots(); + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "ImplosionCompressor.png"); + } + + public GT_Recipe.GT_Recipe_Map getRecipeMap() { + return GT_Recipe.GT_Recipe_Map.sImplosionRecipes; + } + + public boolean isCorrectMachinePart(ItemStack aStack) { return true; - } } - return false; - } - - public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) - { - super.startSoundLoop(aIndex, aX, aY, aZ); - if (aIndex == 20) { - GT_Utility.doSoundAtClient((String)GregTech_API.sSoundList.get(Integer.valueOf(5)), 10, 1.0F, aX, aY, aZ); + + public boolean isFacingValid(byte aFacing) { + return aFacing > 1; } - } - - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) - { - int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX;int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; - if (!aBaseMetaTileEntity.getAirOffset(xDir, 0, zDir)) { - return false; - } - int tAmount = 0; - for (int i = -1; i < 2; i++) { - for (int j = -1; j < 2; j++) { - for (int h = -1; h < 2; h++) { - if ((h != 0) || (((xDir + i != 0) || (zDir + j != 0)) && ((i != 0) || (j != 0)))) - { - IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, h, zDir + j); - if ((!addMaintenanceToMachineList(tTileEntity, 16)) && (!addMufflerToMachineList(tTileEntity, 16)) && (!addInputToMachineList(tTileEntity, 16)) && (!addOutputToMachineList(tTileEntity, 16)) && (!addEnergyInputToMachineList(tTileEntity, 16))) - { - Block tBlock = aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j); - byte tMeta = aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j); - if (((tBlock != GregTech_API.sBlockCasings2) || (tMeta != 0)) && ((tBlock != GregTech_API.sBlockCasings3) || (tMeta != 4))) { - return false; - } - tAmount++; + + public boolean checkRecipe(ItemStack aStack) { + ArrayList tInputList = getStoredInputs(); + for (int i = 0; i < tInputList.size() - 1; i++) { + for (int j = i + 1; j < tInputList.size(); j++) { + if (GT_Utility.areStacksEqual((ItemStack) tInputList.get(i), (ItemStack) tInputList.get(j))) { + if (((ItemStack) tInputList.get(i)).stackSize >= ((ItemStack) tInputList.get(j)).stackSize) { + tInputList.remove(j--); + } else { + tInputList.remove(i--); + break; + } + } } - } } - } + ItemStack[] tInputs = (ItemStack[]) Arrays.copyOfRange(tInputList.toArray(new ItemStack[tInputList.size()]), 0, 2); + if (tInputList.size() > 0) { + GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sImplosionRecipes.findRecipe(getBaseMetaTileEntity(), false, 9223372036854775807L, null, tInputs); + if ((tRecipe != null) && (tRecipe.isRecipeInputEqual(true, null, tInputs))) { + this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); + this.mEfficiencyIncrease = 10000; + + this.mEUt = (-tRecipe.mEUt); + this.mMaxProgresstime = Math.max(1, tRecipe.mDuration); + this.mOutputItems = new ItemStack[]{tRecipe.getOutput(0), tRecipe.getOutput(1)}; + sendLoopStart((byte) 20); + updateSlots(); + return true; + } + } + return false; + } + + public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) { + super.startSoundLoop(aIndex, aX, aY, aZ); + if (aIndex == 20) { + GT_Utility.doSoundAtClient((String) GregTech_API.sSoundList.get(Integer.valueOf(5)), 10, 1.0F, aX, aY, aZ); + } + } + + public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX; + int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; + if (!aBaseMetaTileEntity.getAirOffset(xDir, 0, zDir)) { + return false; + } + int tAmount = 0; + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 2; j++) { + for (int h = -1; h < 2; h++) { + if ((h != 0) || (((xDir + i != 0) || (zDir + j != 0)) && ((i != 0) || (j != 0)))) { + IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, h, zDir + j); + if ((!addMaintenanceToMachineList(tTileEntity, 16)) && (!addMufflerToMachineList(tTileEntity, 16)) && (!addInputToMachineList(tTileEntity, 16)) && (!addOutputToMachineList(tTileEntity, 16)) && (!addEnergyInputToMachineList(tTileEntity, 16))) { + Block tBlock = aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j); + byte tMeta = aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j); + if (((tBlock != GregTech_API.sBlockCasings2) || (tMeta != 0)) && ((tBlock != GregTech_API.sBlockCasings3) || (tMeta != 4))) { + return false; + } + tAmount++; + } + } + } + } + } + return tAmount >= 16; + } + + public int getMaxEfficiency(ItemStack aStack) { + return 10000; + } + + public int getPollutionPerTick(ItemStack aStack) { + return 1000; + } + + public int getDamageToComponent(ItemStack aStack) { + return 0; + } + + public int getAmountOfOutputs() { + return 2; + } + + public boolean explodesOnComponentBreak(ItemStack aStack) { + return false; } - return tAmount >= 16; - } - - public int getMaxEfficiency(ItemStack aStack) - { - return 10000; - } - - public int getPollutionPerTick(ItemStack aStack) - { - return 1000; - } - - public int getDamageToComponent(ItemStack aStack) - { - return 0; - } - - public int getAmountOfOutputs() - { - return 2; - } - - public boolean explodesOnComponentBreak(ItemStack aStack) - { - return false; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java index 3a30fc43..88d8ae1e 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java @@ -3,7 +3,6 @@ package gregtech.common.tileentities.machines.multi; import gregtech.GT_Mod; import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -11,249 +10,219 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockB import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map_Fuel; import gregtech.api.util.GT_Utility; - -import java.util.ArrayList; - import net.minecraft.block.Block; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; +import java.util.ArrayList; + public abstract class GT_MetaTileEntity_LargeBoiler - extends GT_MetaTileEntity_MultiBlockBase -{ - public GT_MetaTileEntity_LargeBoiler(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional); - } - - public GT_MetaTileEntity_LargeBoiler(String aName) - { - super(aName); - } - - public String[] getDescription() - { - return new String[] { "Controller Block for the Large Boiler", "Size: 3x3x5", "Controller (front middle in Fireboxes)", "3x3 of Fire Boxes (bottom Layer, Min 3!)", "3x3x4 of Casing (above Fireboxes, hollow, Min 24!)", "3 Pipe Casing Blocks inside the Hollow Casing", "1x Input (one of Fireboxes)", "1x Maintenance Hatch (one of Fireboxes)", "1x Muffler Hatch (one of Fireboxes)", "1x Fluid Output (one of Main Casing)" }; - } - - public abstract Block getCasingBlock(); - - public abstract byte getCasingMeta(); - - public abstract byte getCasingTextureIndex(); - - public abstract Block getPipeBlock(); - - public abstract byte getPipeMeta(); - - public abstract Block getFireboxBlock(); - - public abstract byte getFireboxMeta(); - - public abstract byte getFireboxTextureIndex(); - - public abstract int getEUt(); - - public abstract int getEfficiencyIncrease(); - - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) - { - if (aSide == aFacing) { - return new ITexture[] { Textures.BlockIcons.CASING_BLOCKS[getCasingTextureIndex()], new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_LARGE_BOILER_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_LARGE_BOILER) }; - } - return new ITexture[] { Textures.BlockIcons.CASING_BLOCKS[getCasingTextureIndex()] }; - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "LargeBoiler.png"); - } - - public boolean isCorrectMachinePart(ItemStack aStack) - { - return true; - } - - public boolean isFacingValid(byte aFacing) - { - return aFacing > 1; - } - - public boolean checkRecipe(ItemStack aStack) - { - for (GT_Recipe tRecipe : GT_Recipe.GT_Recipe_Map.sDieselFuels.mRecipeList) - { - FluidStack tFluid = GT_Utility.getFluidForFilledItem(tRecipe.getRepresentativeInput(0), true); - if ((tFluid != null) && (tRecipe.mSpecialValue > 1)) - { - tFluid.amount = 1000; - if (depleteInput(tFluid)) - { - this.mMaxProgresstime = (tRecipe.mSpecialValue / 2); - this.mEUt = getEUt(); - this.mEfficiencyIncrease = (this.mMaxProgresstime * getEfficiencyIncrease() * 4); - return true; - } - } - } - for (GT_Recipe tRecipe : GT_Recipe.GT_Recipe_Map.sDenseLiquidFuels.mRecipeList) - { - FluidStack tFluid = GT_Utility.getFluidForFilledItem(tRecipe.getRepresentativeInput(0), true); - if (tFluid != null) - { - tFluid.amount = 1000; - if (depleteInput(tFluid)) - { - this.mMaxProgresstime = Math.max(1, tRecipe.mSpecialValue * 2); - this.mEUt = getEUt(); - this.mEfficiencyIncrease = (this.mMaxProgresstime * getEfficiencyIncrease()); - return true; - } - } - } - ArrayList tInputList = getStoredInputs(); - if (!tInputList.isEmpty()) { - for (ItemStack tInput : tInputList) { - if ((GT_Utility.getFluidForFilledItem(tInput, true) == null) && ((this.mMaxProgresstime = GT_ModHandler.getFuelValue(tInput) / 80) > 0)) - { - this.mEUt = getEUt(); - this.mEfficiencyIncrease = (this.mMaxProgresstime * getEfficiencyIncrease()); - this.mOutputItems = new ItemStack[] { GT_Utility.getContainerItem(tInput, true) }; - tInput.stackSize -= 1; - updateSlots(); - return true; - } - } - } - this.mMaxProgresstime = 0; - this.mEUt = 0; - return false; - } - - public boolean onRunningTick(ItemStack aStack) - { - if (this.mEUt > 0) - { - int tGeneratedEU = (int)(this.mEUt * 2L * this.mEfficiency / 10000L); - if (tGeneratedEU > 0) { - long amount = (tGeneratedEU + 160) / 160; - if (depleteInput(Materials.Water.getFluid(amount)) || depleteInput(GT_ModHandler.getDistilledWater(amount))) { - addOutput(GT_ModHandler.getSteam(tGeneratedEU)); - } else { - explodeMultiblock(); - } - } - return true; - } - return true; - } + extends GT_MetaTileEntity_MultiBlockBase { + private boolean firstRun = true; -private boolean firstRun = true; + public GT_MetaTileEntity_LargeBoiler(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); + } -@Override -public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - if (mProgresstime>0&&firstRun) {firstRun = false;try{ - GT_Mod.instance.achievements.issueAchievement(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), "extremepressure");}catch (Exception e){} - } - super.onPostTick(aBaseMetaTileEntity, aTick); -} - - - - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) - { - int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX;int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; - - int tCasingAmount = 0;int tFireboxAmount = 0; - for (int i = -1; i < 2; i++) { - for (int j = -1; j < 2; j++) { - if ((i != 0) || (j != 0)) - { - for (int k = 1; k <= 4; k++) { - if (!addOutputToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, k, zDir + j), getCasingTextureIndex())) - { - if (aBaseMetaTileEntity.getBlockOffset(xDir + i, k, zDir + j) != getCasingBlock()) { - return false; - } - if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, k, zDir + j) != getCasingMeta()) { - return false; - } - tCasingAmount++; - } - } - } - else - { - for (int k = 1; k <= 3; k++) - { - if (aBaseMetaTileEntity.getBlockOffset(xDir + i, k, zDir + j) != getPipeBlock()) { - return false; - } - if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, k, zDir + j) != getPipeMeta()) { - return false; - } - } - if (!addOutputToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, 4, zDir + j), getCasingTextureIndex())) - { - if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 4, zDir + j) != getCasingBlock()) { - return false; - } - if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 4, zDir + j) != getCasingMeta()) { - return false; - } - tCasingAmount++; - } - } - } - } - for (int i = -1; i < 2; i++) { - for (int j = -1; j < 2; j++) { - if ((xDir + i != 0) || (zDir + j != 0)) - { - IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, 0, zDir + j); - if ((!addMaintenanceToMachineList(tTileEntity, getFireboxTextureIndex())) && (!addInputToMachineList(tTileEntity, getFireboxTextureIndex())) && (!addMufflerToMachineList(tTileEntity, getFireboxTextureIndex()))) - { - if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 0, zDir + j) != getFireboxBlock()) { - return false; - } - if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 0, zDir + j) != getFireboxMeta()) { - return false; - } - tFireboxAmount++; - } - } - } - } - return (tCasingAmount >= 24) && (tFireboxAmount >= 3); - } - - public int getMaxEfficiency(ItemStack aStack) - { - return 10000; - } - - public int getPollutionPerTick(ItemStack aStack) - { - return 10; - } - - public int getDamageToComponent(ItemStack aStack) - { - return 0; - } - - public int getAmountOfOutputs() - { - return 1; - } - - public boolean explodesOnComponentBreak(ItemStack aStack) - { - return false; - } + public GT_MetaTileEntity_LargeBoiler(String aName) { + super(aName); + } + + public String[] getDescription() { + return new String[]{"Controller Block for the Large Boiler", "Size: 3x3x5", "Controller (front middle in Fireboxes)", "3x3 of Fire Boxes (bottom Layer, Min 3!)", "3x3x4 of Casing (above Fireboxes, hollow, Min 24!)", "3 Pipe Casing Blocks inside the Hollow Casing", "1x Input (one of Fireboxes)", "1x Maintenance Hatch (one of Fireboxes)", "1x Muffler Hatch (one of Fireboxes)", "1x Fluid Output (one of Main Casing)"}; + } + + public abstract Block getCasingBlock(); + + public abstract byte getCasingMeta(); + + public abstract byte getCasingTextureIndex(); + + public abstract Block getPipeBlock(); + + public abstract byte getPipeMeta(); + + public abstract Block getFireboxBlock(); + + public abstract byte getFireboxMeta(); + + public abstract byte getFireboxTextureIndex(); + + public abstract int getEUt(); + + public abstract int getEfficiencyIncrease(); + + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + if (aSide == aFacing) { + return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[getCasingTextureIndex()], new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_LARGE_BOILER_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_LARGE_BOILER)}; + } + return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[getCasingTextureIndex()]}; + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "LargeBoiler.png"); + } + + public boolean isCorrectMachinePart(ItemStack aStack) { + return true; + } + + public boolean isFacingValid(byte aFacing) { + return aFacing > 1; + } + + public boolean checkRecipe(ItemStack aStack) { + for (GT_Recipe tRecipe : GT_Recipe.GT_Recipe_Map.sDieselFuels.mRecipeList) { + FluidStack tFluid = GT_Utility.getFluidForFilledItem(tRecipe.getRepresentativeInput(0), true); + if ((tFluid != null) && (tRecipe.mSpecialValue > 1)) { + tFluid.amount = 1000; + if (depleteInput(tFluid)) { + this.mMaxProgresstime = (tRecipe.mSpecialValue / 2); + this.mEUt = getEUt(); + this.mEfficiencyIncrease = (this.mMaxProgresstime * getEfficiencyIncrease() * 4); + return true; + } + } + } + for (GT_Recipe tRecipe : GT_Recipe.GT_Recipe_Map.sDenseLiquidFuels.mRecipeList) { + FluidStack tFluid = GT_Utility.getFluidForFilledItem(tRecipe.getRepresentativeInput(0), true); + if (tFluid != null) { + tFluid.amount = 1000; + if (depleteInput(tFluid)) { + this.mMaxProgresstime = Math.max(1, tRecipe.mSpecialValue * 2); + this.mEUt = getEUt(); + this.mEfficiencyIncrease = (this.mMaxProgresstime * getEfficiencyIncrease()); + return true; + } + } + } + ArrayList tInputList = getStoredInputs(); + if (!tInputList.isEmpty()) { + for (ItemStack tInput : tInputList) { + if ((GT_Utility.getFluidForFilledItem(tInput, true) == null) && ((this.mMaxProgresstime = GT_ModHandler.getFuelValue(tInput) / 80) > 0)) { + this.mEUt = getEUt(); + this.mEfficiencyIncrease = (this.mMaxProgresstime * getEfficiencyIncrease()); + this.mOutputItems = new ItemStack[]{GT_Utility.getContainerItem(tInput, true)}; + tInput.stackSize -= 1; + updateSlots(); + return true; + } + } + } + this.mMaxProgresstime = 0; + this.mEUt = 0; + return false; + } + + public boolean onRunningTick(ItemStack aStack) { + if (this.mEUt > 0) { + int tGeneratedEU = (int) (this.mEUt * 2L * this.mEfficiency / 10000L); + if (tGeneratedEU > 0) { + long amount = (tGeneratedEU + 160) / 160; + if (depleteInput(Materials.Water.getFluid(amount)) || depleteInput(GT_ModHandler.getDistilledWater(amount))) { + addOutput(GT_ModHandler.getSteam(tGeneratedEU)); + } else { + explodeMultiblock(); + } + } + return true; + } + return true; + } + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + if (mProgresstime > 0 && firstRun) { + firstRun = false; + try { + GT_Mod.instance.achievements.issueAchievement(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), "extremepressure"); + } catch (Exception e) { + } + } + super.onPostTick(aBaseMetaTileEntity, aTick); + } + + + public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX; + int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; + + int tCasingAmount = 0; + int tFireboxAmount = 0; + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 2; j++) { + if ((i != 0) || (j != 0)) { + for (int k = 1; k <= 4; k++) { + if (!addOutputToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, k, zDir + j), getCasingTextureIndex())) { + if (aBaseMetaTileEntity.getBlockOffset(xDir + i, k, zDir + j) != getCasingBlock()) { + return false; + } + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, k, zDir + j) != getCasingMeta()) { + return false; + } + tCasingAmount++; + } + } + } else { + for (int k = 1; k <= 3; k++) { + if (aBaseMetaTileEntity.getBlockOffset(xDir + i, k, zDir + j) != getPipeBlock()) { + return false; + } + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, k, zDir + j) != getPipeMeta()) { + return false; + } + } + if (!addOutputToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, 4, zDir + j), getCasingTextureIndex())) { + if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 4, zDir + j) != getCasingBlock()) { + return false; + } + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 4, zDir + j) != getCasingMeta()) { + return false; + } + tCasingAmount++; + } + } + } + } + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 2; j++) { + if ((xDir + i != 0) || (zDir + j != 0)) { + IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, 0, zDir + j); + if ((!addMaintenanceToMachineList(tTileEntity, getFireboxTextureIndex())) && (!addInputToMachineList(tTileEntity, getFireboxTextureIndex())) && (!addMufflerToMachineList(tTileEntity, getFireboxTextureIndex()))) { + if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 0, zDir + j) != getFireboxBlock()) { + return false; + } + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 0, zDir + j) != getFireboxMeta()) { + return false; + } + tFireboxAmount++; + } + } + } + } + return (tCasingAmount >= 24) && (tFireboxAmount >= 3); + } + + public int getMaxEfficiency(ItemStack aStack) { + return 10000; + } + + public int getPollutionPerTick(ItemStack aStack) { + return 10; + } + + public int getDamageToComponent(ItemStack aStack) { + return 0; + } + + public int getAmountOfOutputs() { + return 1; + } + + public boolean explodesOnComponentBreak(ItemStack aStack) { + return false; + } } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Bronze.java index 2df675ef..ed16103d 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Bronze.java @@ -6,70 +6,56 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.block.Block; public class GT_MetaTileEntity_LargeBoiler_Bronze - extends GT_MetaTileEntity_LargeBoiler -{ - public GT_MetaTileEntity_LargeBoiler_Bronze(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional); - } - - public GT_MetaTileEntity_LargeBoiler_Bronze(String aName) - { - super(aName); - } - - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_LargeBoiler_Bronze(this.mName); - } - - public Block getCasingBlock() - { - return GregTech_API.sBlockCasings1; - } - - public byte getCasingMeta() - { - return 10; - } - - public byte getCasingTextureIndex() - { - return 10; - } - - public Block getPipeBlock() - { - return GregTech_API.sBlockCasings2; - } - - public byte getPipeMeta() - { - return 12; - } - - public Block getFireboxBlock() - { - return GregTech_API.sBlockCasings3; - } - - public byte getFireboxMeta() - { - return 13; - } - - public byte getFireboxTextureIndex() - { - return 45; - } - - public int getEUt() - { - return 400; - } - - public int getEfficiencyIncrease() - { - return 16; - } + extends GT_MetaTileEntity_LargeBoiler { + public GT_MetaTileEntity_LargeBoiler_Bronze(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); + } + + public GT_MetaTileEntity_LargeBoiler_Bronze(String aName) { + super(aName); + } + + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_LargeBoiler_Bronze(this.mName); + } + + public Block getCasingBlock() { + return GregTech_API.sBlockCasings1; + } + + public byte getCasingMeta() { + return 10; + } + + public byte getCasingTextureIndex() { + return 10; + } + + public Block getPipeBlock() { + return GregTech_API.sBlockCasings2; + } + + public byte getPipeMeta() { + return 12; + } + + public Block getFireboxBlock() { + return GregTech_API.sBlockCasings3; + } + + public byte getFireboxMeta() { + return 13; + } + + public byte getFireboxTextureIndex() { + return 45; + } + + public int getEUt() { + return 400; + } + + public int getEfficiencyIncrease() { + return 16; + } } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Steel.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Steel.java index 29f0901e..40e31788 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Steel.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Steel.java @@ -6,70 +6,56 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.block.Block; public class GT_MetaTileEntity_LargeBoiler_Steel - extends GT_MetaTileEntity_LargeBoiler -{ - public GT_MetaTileEntity_LargeBoiler_Steel(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional); - } - - public GT_MetaTileEntity_LargeBoiler_Steel(String aName) - { - super(aName); - } - - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_LargeBoiler_Steel(this.mName); - } - - public Block getCasingBlock() - { - return GregTech_API.sBlockCasings2; - } - - public byte getCasingMeta() - { - return 0; - } - - public byte getCasingTextureIndex() - { - return 16; - } - - public Block getPipeBlock() - { - return GregTech_API.sBlockCasings2; - } - - public byte getPipeMeta() - { - return 13; - } - - public Block getFireboxBlock() - { - return GregTech_API.sBlockCasings3; - } - - public byte getFireboxMeta() - { - return 14; - } - - public byte getFireboxTextureIndex() - { - return 46; - } - - public int getEUt() - { - return 600; - } - - public int getEfficiencyIncrease() - { - return 12; - } + extends GT_MetaTileEntity_LargeBoiler { + public GT_MetaTileEntity_LargeBoiler_Steel(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); + } + + public GT_MetaTileEntity_LargeBoiler_Steel(String aName) { + super(aName); + } + + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_LargeBoiler_Steel(this.mName); + } + + public Block getCasingBlock() { + return GregTech_API.sBlockCasings2; + } + + public byte getCasingMeta() { + return 0; + } + + public byte getCasingTextureIndex() { + return 16; + } + + public Block getPipeBlock() { + return GregTech_API.sBlockCasings2; + } + + public byte getPipeMeta() { + return 13; + } + + public Block getFireboxBlock() { + return GregTech_API.sBlockCasings3; + } + + public byte getFireboxMeta() { + return 14; + } + + public byte getFireboxTextureIndex() { + return 46; + } + + public int getEUt() { + return 600; + } + + public int getEfficiencyIncrease() { + return 12; + } } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Titanium.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Titanium.java index 7d11836a..070339ac 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Titanium.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Titanium.java @@ -6,70 +6,56 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.block.Block; public class GT_MetaTileEntity_LargeBoiler_Titanium - extends GT_MetaTileEntity_LargeBoiler -{ - public GT_MetaTileEntity_LargeBoiler_Titanium(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional); - } - - public GT_MetaTileEntity_LargeBoiler_Titanium(String aName) - { - super(aName); - } - - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_LargeBoiler_Titanium(this.mName); - } - - public Block getCasingBlock() - { - return GregTech_API.sBlockCasings4; - } - - public byte getCasingMeta() - { - return 2; - } - - public byte getCasingTextureIndex() - { - return 50; - } - - public Block getPipeBlock() - { - return GregTech_API.sBlockCasings2; - } - - public byte getPipeMeta() - { - return 14; - } - - public Block getFireboxBlock() - { - return GregTech_API.sBlockCasings4; - } - - public byte getFireboxMeta() - { - return 3; - } - - public byte getFireboxTextureIndex() - { - return 51; - } - - public int getEUt() - { - return 800; - } - - public int getEfficiencyIncrease() - { - return 8; - } + extends GT_MetaTileEntity_LargeBoiler { + public GT_MetaTileEntity_LargeBoiler_Titanium(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); + } + + public GT_MetaTileEntity_LargeBoiler_Titanium(String aName) { + super(aName); + } + + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_LargeBoiler_Titanium(this.mName); + } + + public Block getCasingBlock() { + return GregTech_API.sBlockCasings4; + } + + public byte getCasingMeta() { + return 2; + } + + public byte getCasingTextureIndex() { + return 50; + } + + public Block getPipeBlock() { + return GregTech_API.sBlockCasings2; + } + + public byte getPipeMeta() { + return 14; + } + + public Block getFireboxBlock() { + return GregTech_API.sBlockCasings4; + } + + public byte getFireboxMeta() { + return 3; + } + + public byte getFireboxTextureIndex() { + return 51; + } + + public int getEUt() { + return 800; + } + + public int getEfficiencyIncrease() { + return 8; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_TungstenSteel.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_TungstenSteel.java index c3c3cbec..64cdcbb1 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_TungstenSteel.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_TungstenSteel.java @@ -6,70 +6,56 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.block.Block; public class GT_MetaTileEntity_LargeBoiler_TungstenSteel - extends GT_MetaTileEntity_LargeBoiler -{ - public GT_MetaTileEntity_LargeBoiler_TungstenSteel(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional); - } - - public GT_MetaTileEntity_LargeBoiler_TungstenSteel(String aName) - { - super(aName); - } - - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_LargeBoiler_TungstenSteel(this.mName); - } - - public Block getCasingBlock() - { - return GregTech_API.sBlockCasings4; - } - - public byte getCasingMeta() - { - return 0; - } - - public byte getCasingTextureIndex() - { - return 48; - } - - public Block getPipeBlock() - { - return GregTech_API.sBlockCasings2; - } - - public byte getPipeMeta() - { - return 15; - } - - public Block getFireboxBlock() - { - return GregTech_API.sBlockCasings3; - } - - public byte getFireboxMeta() - { - return 15; - } - - public byte getFireboxTextureIndex() - { - return 47; - } - - public int getEUt() - { - return 1000; - } - - public int getEfficiencyIncrease() - { - return 4; - } + extends GT_MetaTileEntity_LargeBoiler { + public GT_MetaTileEntity_LargeBoiler_TungstenSteel(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); + } + + public GT_MetaTileEntity_LargeBoiler_TungstenSteel(String aName) { + super(aName); + } + + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_LargeBoiler_TungstenSteel(this.mName); + } + + public Block getCasingBlock() { + return GregTech_API.sBlockCasings4; + } + + public byte getCasingMeta() { + return 0; + } + + public byte getCasingTextureIndex() { + return 48; + } + + public Block getPipeBlock() { + return GregTech_API.sBlockCasings2; + } + + public byte getPipeMeta() { + return 15; + } + + public Block getFireboxBlock() { + return GregTech_API.sBlockCasings3; + } + + public byte getFireboxMeta() { + return 15; + } + + public byte getFireboxTextureIndex() { + return 47; + } + + public int getEUt() { + return 1000; + } + + public int getEfficiencyIncrease() { + return 4; + } } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java index d8b765c8..7544ef60 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java @@ -1,192 +1,187 @@ package gregtech.common.tileentities.machines.multi; -import java.util.ArrayList; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fluids.FluidStack; -import gregtech.api.GregTech_API; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Textures; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Dynamo; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; -import gregtech.api.objects.GT_RenderedTexture; -import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; import gregtech.common.items.GT_MetaGenerated_Tool_01; +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.fluids.FluidStack; -public abstract class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_MultiBlockBase{ +import java.util.ArrayList; - public GT_MetaTileEntity_LargeTurbine(int aID, String aName, String aNameRegional){super(aID, aName, aNameRegional);} - public GT_MetaTileEntity_LargeTurbine(String aName){super(aName);} +public abstract class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_MultiBlockBase { + + protected int baseEff = 0; + protected int optFlow = 0; + protected int counter = 0; + + public GT_MetaTileEntity_LargeTurbine(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); + } + public GT_MetaTileEntity_LargeTurbine(String aName) { + super(aName); + } + + @Override + public boolean isCorrectMachinePart(ItemStack aStack) { + return getMaxEfficiency(aStack) > 0; + } + + @Override + public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + byte tSide = getBaseMetaTileEntity().getBackFacing(); + if ((getBaseMetaTileEntity().getAirAtSideAndDistance(getBaseMetaTileEntity().getBackFacing(), 1)) && (getBaseMetaTileEntity().getAirAtSideAndDistance(getBaseMetaTileEntity().getBackFacing(), 2))) { + int tAirCount = 0; + for (byte i = -1; i < 2; i = (byte) (i + 1)) { + for (byte j = -1; j < 2; j = (byte) (j + 1)) { + for (byte k = -1; k < 2; k = (byte) (k + 1)) { + if (getBaseMetaTileEntity().getAirOffset(i, j, k)) { + tAirCount++; + } + } + } + } + if (tAirCount != 10) { + return false; + } + for (byte i = 2; i < 6; i = (byte) (i + 1)) { + IGregTechTileEntity tTileEntity; + if ((null != (tTileEntity = getBaseMetaTileEntity().getIGregTechTileEntityAtSideAndDistance(i, 2))) && + (tTileEntity.getFrontFacing() == getBaseMetaTileEntity().getFrontFacing()) && (tTileEntity.getMetaTileEntity() != null) && + ((tTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_LargeTurbine))) { + return false; + } + } + int tX = getBaseMetaTileEntity().getXCoord(); + int tY = getBaseMetaTileEntity().getYCoord(); + int tZ = getBaseMetaTileEntity().getZCoord(); + for (byte i = -1; i < 2; i = (byte) (i + 1)) { + for (byte j = -1; j < 2; j = (byte) (j + 1)) { + if ((i != 0) || (j != 0)) { + for (byte k = 0; k < 4; k = (byte) (k + 1)) { + if (((i == 0) || (j == 0)) && ((k == 1) || (k == 2))) { + if (getBaseMetaTileEntity().getBlock(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)) == getCasingBlock() && getBaseMetaTileEntity().getMetaID(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)) == getCasingMeta()) { + } else if (!addToMachineList(getBaseMetaTileEntity().getIGregTechTileEntity(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)))) { + return false; + } + } else if (getBaseMetaTileEntity().getBlock(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)) == getCasingBlock() && getBaseMetaTileEntity().getMetaID(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)) == getCasingMeta()) { + } else { + return false; + } + } + } + } + } + this.mDynamoHatches.clear(); + IGregTechTileEntity tTileEntity = getBaseMetaTileEntity().getIGregTechTileEntityAtSideAndDistance(getBaseMetaTileEntity().getBackFacing(), 3); + if ((tTileEntity != null) && (tTileEntity.getMetaTileEntity() != null)) { + if ((tTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_Dynamo)) { + this.mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo) tTileEntity.getMetaTileEntity()); + ((GT_MetaTileEntity_Hatch) tTileEntity.getMetaTileEntity()).mMachineBlock = getCasingTextureIndex(); + } else { + return false; + } + } + } else { + return false; + } + return true; + } + + public abstract Block getCasingBlock(); + + public abstract byte getCasingMeta(); + + public abstract byte getCasingTextureIndex(); + + private boolean addToMachineList(IGregTechTileEntity tTileEntity) { + return ((addMaintenanceToMachineList(tTileEntity, getCasingTextureIndex())) || (addInputToMachineList(tTileEntity, getCasingTextureIndex())) || (addOutputToMachineList(tTileEntity, getCasingTextureIndex())) || (addMufflerToMachineList(tTileEntity, getCasingTextureIndex()))); + } - @Override - public boolean isCorrectMachinePart(ItemStack aStack) { - return getMaxEfficiency(aStack) > 0; - } + @Override + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + } - protected int baseEff=0; - protected int optFlow=0; - protected int counter=0; + @Override + public void loadNBTData(NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + } - @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - byte tSide = getBaseMetaTileEntity().getBackFacing(); - if ((getBaseMetaTileEntity().getAirAtSideAndDistance(getBaseMetaTileEntity().getBackFacing(), 1)) && (getBaseMetaTileEntity().getAirAtSideAndDistance(getBaseMetaTileEntity().getBackFacing(), 2))) - { - int tAirCount = 0; - for (byte i = -1; i < 2; i = (byte)(i + 1)) { - for (byte j = -1; j < 2; j = (byte)(j + 1)) { - for (byte k = -1; k < 2; k = (byte)(k + 1)) { - if (getBaseMetaTileEntity().getAirOffset(i, j, k)) { - tAirCount++; - } - } - } - } - if (tAirCount != 10) { - return false; - } - for (byte i = 2; i < 6; i = (byte)(i + 1)) - { - IGregTechTileEntity tTileEntity; - if ((null != (tTileEntity = getBaseMetaTileEntity().getIGregTechTileEntityAtSideAndDistance(i, 2))) && - (tTileEntity.getFrontFacing() == getBaseMetaTileEntity().getFrontFacing()) && (tTileEntity.getMetaTileEntity() != null) && - ((tTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_LargeTurbine))) { - return false; - } - } - int tX = getBaseMetaTileEntity().getXCoord();int tY = getBaseMetaTileEntity().getYCoord();int tZ = getBaseMetaTileEntity().getZCoord(); - for (byte i = -1; i < 2; i = (byte)(i + 1)) { - for (byte j = -1; j < 2; j = (byte)(j + 1)) { - if ((i != 0) || (j != 0)) { - for (byte k = 0; k < 4; k = (byte)(k + 1)) { - if (((i == 0) || (j == 0)) && ((k == 1) || (k == 2))) - { - if (getBaseMetaTileEntity().getBlock(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)) == getCasingBlock() && getBaseMetaTileEntity().getMetaID(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)) == getCasingMeta()) - {}else if (!addToMachineList(getBaseMetaTileEntity().getIGregTechTileEntity(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)))) { - return false; - } - } - else if (getBaseMetaTileEntity().getBlock(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)) == getCasingBlock()&& getBaseMetaTileEntity().getMetaID(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)) == getCasingMeta()) - {}else {return false; - } - } - } - } - } - this.mDynamoHatches.clear(); - IGregTechTileEntity tTileEntity = getBaseMetaTileEntity().getIGregTechTileEntityAtSideAndDistance(getBaseMetaTileEntity().getBackFacing(), 3); - if ((tTileEntity != null) && (tTileEntity.getMetaTileEntity() != null)) { - if ((tTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_Dynamo)) { - this.mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo)tTileEntity.getMetaTileEntity()); - ((GT_MetaTileEntity_Hatch)tTileEntity.getMetaTileEntity()).mMachineBlock = getCasingTextureIndex(); - } else { - return false; - } - } - } - else - { - return false; - } - return true; - } - - public abstract Block getCasingBlock(); - - public abstract byte getCasingMeta(); - - public abstract byte getCasingTextureIndex(); - - private boolean addToMachineList(IGregTechTileEntity tTileEntity){ - return ((addMaintenanceToMachineList(tTileEntity, getCasingTextureIndex())) || (addInputToMachineList(tTileEntity, getCasingTextureIndex())) || (addOutputToMachineList(tTileEntity, getCasingTextureIndex()))|| (addMufflerToMachineList(tTileEntity, getCasingTextureIndex()))); - } - + @Override + public boolean checkRecipe(ItemStack aStack) { + ArrayList tFluids = getStoredFluids(); + if (tFluids.size() > 0) { + if (baseEff == 0 || optFlow == 0 || counter >= 1000 || this.getBaseMetaTileEntity().hasWorkJustBeenEnabled() + || this.getBaseMetaTileEntity().hasInventoryBeenModified()) { + counter = 0; + baseEff = (int) ((50.0F + + (10.0F * ((GT_MetaGenerated_Tool) aStack.getItem()).getToolCombatDamage(aStack))) * 100); + optFlow = (int) Math.max(Float.MIN_NORMAL, + ((GT_MetaGenerated_Tool) aStack.getItem()).getToolStats(aStack).getSpeedMultiplier() + * ((GT_MetaGenerated_Tool) aStack.getItem()).getPrimaryMaterial(aStack).mToolSpeed + * 50); + } else { + counter++; + } + } + + int newPower = fluidIntoPower(tFluids, optFlow, baseEff); // How much the turbine should be producing with this flow + int difference = newPower - this.mEUt; // difference between current output and new output + + // Magic numbers: can always change by at least 10 eu/t, but otherwise by at most 1 percent of the difference in power level (per tick) + // This is how much the turbine can actually change during this tick + int maxChangeAllowed = Math.max(10, (int) Math.ceil(Math.abs(difference) * 0.01)); + + if (Math.abs(difference) > maxChangeAllowed) { // If this difference is too big, use the maximum allowed change + int change = maxChangeAllowed * (difference > 0 ? 1 : -1); // Make the change positive or negative. + this.mEUt += change; // Apply the change + } else + this.mEUt = newPower; + + if (mEUt <= 0) { - - @Override - public void saveNBTData(NBTTagCompound aNBT) { - super.saveNBTData(aNBT); - } - - @Override - public void loadNBTData(NBTTagCompound aNBT) { - super.loadNBTData(aNBT); - } - - @Override - public boolean checkRecipe(ItemStack aStack) { - ArrayList tFluids = getStoredFluids(); - if (tFluids.size() > 0) { - if (baseEff == 0 || optFlow == 0 || counter >= 1000 || this.getBaseMetaTileEntity().hasWorkJustBeenEnabled() - || this.getBaseMetaTileEntity().hasInventoryBeenModified()) { - counter = 0; - baseEff = (int) ((50.0F - + (10.0F * ((GT_MetaGenerated_Tool) aStack.getItem()).getToolCombatDamage(aStack))) * 100); - optFlow = (int) Math.max(Float.MIN_NORMAL, - ((GT_MetaGenerated_Tool) aStack.getItem()).getToolStats(aStack).getSpeedMultiplier() - * ((GT_MetaGenerated_Tool) aStack.getItem()).getPrimaryMaterial(aStack).mToolSpeed - * 50); - } else { - counter++; - } - } - - int newPower = fluidIntoPower(tFluids, optFlow, baseEff); // How much the turbine should be producing with this flow - int difference = newPower - this.mEUt; // difference between current output and new output - - // Magic numbers: can always change by at least 10 eu/t, but otherwise by at most 1 percent of the difference in power level (per tick) - // This is how much the turbine can actually change during this tick - int maxChangeAllowed = Math.max(10, (int) Math.ceil(Math.abs(difference) * 0.01)); - - if (Math.abs(difference) > maxChangeAllowed) { // If this difference is too big, use the maximum allowed change - int change = maxChangeAllowed * (difference > 0 ? 1 : -1); // Make the change positive or negative. - this.mEUt += change; // Apply the change - } - else - this.mEUt = newPower; - - if (mEUt <= 0) { - // this.mEfficiencyIncrease = (-10); - this.mEfficiency = 0; - //stopMachine(); - return false; - } else { - this.mMaxProgresstime = 1; - this.mEfficiencyIncrease = (10); - return true; - } - } - - abstract int fluidIntoPower(ArrayList aFluids, int aOptFlow, int aBaseEff); - - @Override - public int getDamageToComponent(ItemStack aStack) { - return 1; - } + this.mEfficiency = 0; + //stopMachine(); + return false; + } else { + this.mMaxProgresstime = 1; + this.mEfficiencyIncrease = (10); + return true; + } + } - public int getMaxEfficiency(ItemStack aStack) - { - if (GT_Utility.isStackInvalid(aStack)) { - return 0; - } - if (aStack.getItem() instanceof GT_MetaGenerated_Tool_01) { - return 10000; - } - return 0; - } - - @Override - public int getAmountOfOutputs() {return 0;} - @Override - public boolean explodesOnComponentBreak(ItemStack aStack) {return true;} + abstract int fluidIntoPower(ArrayList aFluids, int aOptFlow, int aBaseEff); + + @Override + public int getDamageToComponent(ItemStack aStack) { + return 1; + } + + public int getMaxEfficiency(ItemStack aStack) { + if (GT_Utility.isStackInvalid(aStack)) { + return 0; + } + if (aStack.getItem() instanceof GT_MetaGenerated_Tool_01) { + return 10000; + } + return 0; + } + + @Override + public int getAmountOfOutputs() { + return 0; + } + + @Override + public boolean explodesOnComponentBreak(ItemStack aStack) { + return true; + } } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java index 2f750ab9..0fa94f00 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java @@ -1,73 +1,83 @@ package gregtech.common.tileentities.machines.multi; -import java.util.ArrayList; -import java.util.Collection; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.objects.GT_RenderedTexture; -import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; -public class GT_MetaTileEntity_LargeTurbine_Gas extends GT_MetaTileEntity_LargeTurbine{ +import java.util.ArrayList; +import java.util.Collection; - public GT_MetaTileEntity_LargeTurbine_Gas(int aID, String aName, String aNameRegional){super(aID, aName, aNameRegional);} - public GT_MetaTileEntity_LargeTurbine_Gas(String aName){super(aName);} +public class GT_MetaTileEntity_LargeTurbine_Gas extends GT_MetaTileEntity_LargeTurbine { - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { - return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][aColorIndex+1], aFacing == aSide ? aActive ? new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE_ACTIVE5):new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE5) : Textures.BlockIcons.CASING_BLOCKS[57]}; - } - - - public String[] getDescription() - { - return new String[] { - "Controller Block for the Large Gas Turbine", - "Size: 3x3x4 (Hollow)", "Controller (front centered)", - "1x Input Hatch (side centered)", - "1x Dynamo Hatch (back centered)", - "1x Maintenance Hatch (side centered)", - "1x Muffler Hatch (side centered)", - "Turbine Casings for the rest (24 at least!)", - "Needs a Turbine Item (inside controller GUI)"}; - } - - public int getFuelValue(FluidStack aLiquid) { - if (aLiquid == null || GT_Recipe_Map.sTurbineFuels == null) return 0; - FluidStack tLiquid; - Collection tRecipeList = GT_Recipe_Map.sTurbineFuels.mRecipeList; - if (tRecipeList != null) for (GT_Recipe tFuel : tRecipeList) if ((tLiquid = GT_Utility.getFluidForFilledItem(tFuel.getRepresentativeInput(0), true)) != null) if (aLiquid.isFluidEqual(tLiquid)) return tFuel.mSpecialValue; - return 0; - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {return new GT_MetaTileEntity_LargeTurbine_Gas(mName);} - @Override - public Block getCasingBlock() { - return GregTech_API.sBlockCasings4; - } - @Override - public byte getCasingMeta() { - return 9; - } - @Override - public byte getCasingTextureIndex() { - return 46; - } - @Override - public int getPollutionPerTick(ItemStack aStack) { - return 10; - } + public GT_MetaTileEntity_LargeTurbine_Gas(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); + } + + public GT_MetaTileEntity_LargeTurbine_Gas(String aName) { + super(aName); + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][aColorIndex + 1], aFacing == aSide ? aActive ? new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE_ACTIVE5) : new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE5) : Textures.BlockIcons.CASING_BLOCKS[57]}; + } + + + public String[] getDescription() { + return new String[]{ + "Controller Block for the Large Gas Turbine", + "Size: 3x3x4 (Hollow)", "Controller (front centered)", + "1x Input Hatch (side centered)", + "1x Dynamo Hatch (back centered)", + "1x Maintenance Hatch (side centered)", + "1x Muffler Hatch (side centered)", + "Turbine Casings for the rest (24 at least!)", + "Needs a Turbine Item (inside controller GUI)"}; + } + + public int getFuelValue(FluidStack aLiquid) { + if (aLiquid == null || GT_Recipe_Map.sTurbineFuels == null) return 0; + FluidStack tLiquid; + Collection tRecipeList = GT_Recipe_Map.sTurbineFuels.mRecipeList; + if (tRecipeList != null) for (GT_Recipe tFuel : tRecipeList) + if ((tLiquid = GT_Utility.getFluidForFilledItem(tFuel.getRepresentativeInput(0), true)) != null) + if (aLiquid.isFluidEqual(tLiquid)) return tFuel.mSpecialValue; + return 0; + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_LargeTurbine_Gas(mName); + } + + @Override + public Block getCasingBlock() { + return GregTech_API.sBlockCasings4; + } + + @Override + public byte getCasingMeta() { + return 9; + } + + @Override + public byte getCasingTextureIndex() { + return 46; + } + + @Override + public int getPollutionPerTick(ItemStack aStack) { + return 10; + } @Override int fluidIntoPower(ArrayList aFluids, int aOptFlow, int aBaseEff) { diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java index d57aa52d..03f85015 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java @@ -1,63 +1,72 @@ package gregtech.common.tileentities.machines.multi; -import java.util.ArrayList; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; -public class GT_MetaTileEntity_LargeTurbine_HPSteam extends GT_MetaTileEntity_LargeTurbine{ +import java.util.ArrayList; - public GT_MetaTileEntity_LargeTurbine_HPSteam(int aID, String aName, String aNameRegional){super(aID, aName, aNameRegional);} - public GT_MetaTileEntity_LargeTurbine_HPSteam(String aName){super(aName);} +public class GT_MetaTileEntity_LargeTurbine_HPSteam extends GT_MetaTileEntity_LargeTurbine { + + public boolean achievement = false; + + public GT_MetaTileEntity_LargeTurbine_HPSteam(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); + } + + public GT_MetaTileEntity_LargeTurbine_HPSteam(String aName) { + super(aName); + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][aColorIndex + 1], aFacing == aSide ? aActive ? new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE_ACTIVE5) : new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE5) : Textures.BlockIcons.CASING_BLOCKS[57]}; + } + + public String[] getDescription() { + return new String[]{ + "Controller Block for the Large High Pressure Steam Turbine", + "Size: 3x3x4 (Hollow)", "Controller (front centered)", + "1x Input Hatch (side centered)", "1x Output Hatch(side centered)", + "1x Dynamo Hatch (back centered)", + "1x Maintenance Hatch (side centered)", + "Turbine Casings for the rest (24 at least!)", + "Needs a Turbine Item (inside controller GUI)"}; + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_LargeTurbine_HPSteam(mName); + } + + @Override + public Block getCasingBlock() { + return GregTech_API.sBlockCasings4; + } + + @Override + public byte getCasingMeta() { + return 9; + } + + @Override + public byte getCasingTextureIndex() { + return 46; + } + + @Override + public int getPollutionPerTick(ItemStack aStack) { + return 0; + } - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { - return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][aColorIndex+1], aFacing == aSide ? aActive ? new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE_ACTIVE5):new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE5) : Textures.BlockIcons.CASING_BLOCKS[57]}; - } - - - public String[] getDescription() - { - return new String[] { - "Controller Block for the Large High Pressure Steam Turbine", - "Size: 3x3x4 (Hollow)", "Controller (front centered)", - "1x Input Hatch (side centered)", "1x Output Hatch(side centered)", - "1x Dynamo Hatch (back centered)", - "1x Maintenance Hatch (side centered)", - "Turbine Casings for the rest (24 at least!)", - "Needs a Turbine Item (inside controller GUI)" }; - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {return new GT_MetaTileEntity_LargeTurbine_HPSteam(mName);} - @Override - public Block getCasingBlock() { - return GregTech_API.sBlockCasings4; - } - @Override - public byte getCasingMeta() { - return 9; - } - @Override - public byte getCasingTextureIndex() { - return 46; - } - @Override - public int getPollutionPerTick(ItemStack aStack) { - return 0; - } - public boolean achievement=false; - @Override int fluidIntoPower(ArrayList aFluids, int aOptFlow, int aBaseEff) { int tEU = 0; @@ -72,13 +81,16 @@ public class GT_MetaTileEntity_LargeTurbine_HPSteam extends GT_MetaTileEntity_La depleteInput(new FluidStack(aFluids.get(i), flow)); // deplete that amount remainingFlow -= flow; // track amount we're allowed to keep depleting from hatches totalFlow += flow; // track total used - if(!achievement){ - try{GT_Mod.instance.achievements.issueAchievement(this.getBaseMetaTileEntity().getWorld().getPlayerEntityByName(this.getBaseMetaTileEntity().getOwnerName()), "efficientsteam");}catch(Exception e){} - achievement=true; + if (!achievement) { + try { + GT_Mod.instance.achievements.issueAchievement(this.getBaseMetaTileEntity().getWorld().getPlayerEntityByName(this.getBaseMetaTileEntity().getOwnerName()), "efficientsteam"); + } catch (Exception e) { + } + achievement = true; } } } - + tEU = (int) (Math.min((float) aOptFlow, totalFlow)); addOutput(GT_ModHandler.getSteam(totalFlow)); if (totalFlow > 0 && totalFlow != aOptFlow) { diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java index 5b7ea5c3..b44fbc71 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java @@ -1,74 +1,83 @@ package gregtech.common.tileentities.machines.multi; -import java.util.ArrayList; -import java.util.Collection; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; -import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.objects.GT_RenderedTexture; -import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; +import gregtech.api.util.GT_Utility; +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; -public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_LargeTurbine{ +import java.util.ArrayList; +import java.util.Collection; - public GT_MetaTileEntity_LargeTurbine_Plasma(int aID, String aName, String aNameRegional){super(aID, aName, aNameRegional);} - public GT_MetaTileEntity_LargeTurbine_Plasma(String aName){super(aName);} +public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_LargeTurbine { + + public GT_MetaTileEntity_LargeTurbine_Plasma(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); + } + + public GT_MetaTileEntity_LargeTurbine_Plasma(String aName) { + super(aName); + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][aColorIndex + 1], aFacing == aSide ? aActive ? new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE_ACTIVE5) : new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE5) : Textures.BlockIcons.CASING_BLOCKS[57]}; + } + + + public String[] getDescription() { + return new String[]{ + "Controller Block for the Large Plasma Generator", + "Size: 3x3x4 (Hollow)", "Controller (front centered)", + "1x Input Hatch (side centered)", + "1x Dynamo Hatch (back centered)", + "1x Maintenance Hatch (side centered)", + "Turbine Casings for the rest (24 at least!)", + "Needs a Turbine Item (inside controller GUI)"}; + } + + public int getFuelValue(FluidStack aLiquid) { + if (aLiquid == null || GT_Recipe_Map.sTurbineFuels == null) return 0; + FluidStack tLiquid; + Collection tRecipeList = GT_Recipe_Map.sPlasmaFuels.mRecipeList; + if (tRecipeList != null) for (GT_Recipe tFuel : tRecipeList) + if ((tLiquid = GT_Utility.getFluidForFilledItem(tFuel.getRepresentativeInput(0), true)) != null) + if (aLiquid.isFluidEqual(tLiquid)) return tFuel.mSpecialValue; + return 0; + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_LargeTurbine_Plasma(mName); + } + + @Override + public Block getCasingBlock() { + return GregTech_API.sBlockCasings4; + } + + @Override + public byte getCasingMeta() { + return 9; + } + + @Override + public byte getCasingTextureIndex() { + return 46; + } + + @Override + public int getPollutionPerTick(ItemStack aStack) { + return 0; + } - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { - return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][aColorIndex+1], aFacing == aSide ? aActive ? new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE_ACTIVE5):new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE5) : Textures.BlockIcons.CASING_BLOCKS[57]}; - } - - - public String[] getDescription() - { - return new String[] { - "Controller Block for the Large Plasma Generator", - "Size: 3x3x4 (Hollow)", "Controller (front centered)", - "1x Input Hatch (side centered)", - "1x Dynamo Hatch (back centered)", - "1x Maintenance Hatch (side centered)", - "Turbine Casings for the rest (24 at least!)", - "Needs a Turbine Item (inside controller GUI)" }; - } - - public int getFuelValue(FluidStack aLiquid) { - if (aLiquid == null || GT_Recipe_Map.sTurbineFuels == null) return 0; - FluidStack tLiquid; - Collection tRecipeList = GT_Recipe_Map.sPlasmaFuels.mRecipeList; - if (tRecipeList != null) for (GT_Recipe tFuel : tRecipeList) if ((tLiquid = GT_Utility.getFluidForFilledItem(tFuel.getRepresentativeInput(0), true)) != null) if (aLiquid.isFluidEqual(tLiquid)) return tFuel.mSpecialValue; - return 0; - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {return new GT_MetaTileEntity_LargeTurbine_Plasma(mName);} - @Override - public Block getCasingBlock() { - return GregTech_API.sBlockCasings4; - } - @Override - public byte getCasingMeta() { - return 9; - } - @Override - public byte getCasingTextureIndex() { - return 46; - } - @Override - public int getPollutionPerTick(ItemStack aStack) { - return 0; - } - @Override int fluidIntoPower(ArrayList aFluids, int aOptFlow, int aBaseEff) { aOptFlow *= 20; @@ -79,7 +88,7 @@ public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_Lar if (aFluids.size() >= 1) { FluidStack firstFuelType = new FluidStack(aFluids.get(0), 0); // Identify a SINGLE type of fluid to process. Doesn't matter which one. Ignore the rest! int fuelValue = getFuelValue(firstFuelType); - actualOptimalFlow = (int) ((aOptFlow + fuelValue -1 )/ fuelValue); + actualOptimalFlow = (int) ((aOptFlow + fuelValue - 1) / fuelValue); int remainingFlow = (int) (actualOptimalFlow * 1.25f); // Allowed to use up to 125% of optimal flow. Variable required outside of loop for multi-hatch scenarios. int flow = 0; int totalFlow = 0; diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java index 7a3f4503..b697ad82 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java @@ -1,72 +1,81 @@ package gregtech.common.tileentities.machines.multi; -import java.util.ArrayList; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; -public class GT_MetaTileEntity_LargeTurbine_Steam extends GT_MetaTileEntity_LargeTurbine{ +import java.util.ArrayList; - public GT_MetaTileEntity_LargeTurbine_Steam(int aID, String aName, String aNameRegional){super(aID, aName, aNameRegional);} - public GT_MetaTileEntity_LargeTurbine_Steam(String aName){super(aName);} +public class GT_MetaTileEntity_LargeTurbine_Steam extends GT_MetaTileEntity_LargeTurbine { + + private float water; + private boolean achievement = false; + + public GT_MetaTileEntity_LargeTurbine_Steam(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); + } + + + public GT_MetaTileEntity_LargeTurbine_Steam(String aName) { + super(aName); + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][aColorIndex + 1], aFacing == aSide ? aActive ? new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE_ACTIVE5) : new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE5) : Textures.BlockIcons.CASING_BLOCKS[57]}; + } + + public String[] getDescription() { + return new String[]{ + "Controller Block for the Large Steam Turbine", + "Size: 3x3x4 (Hollow)", "Controller (front centered)", + "1x Input Hatch (side centered)", "1x Output Hatch(side centered)", + "1x Dynamo Hatch (back centered)", + "1x Maintenance Hatch (side centered)", + "Turbine Casings for the rest (24 at least!)", + "Needs a Turbine Item (inside controller GUI)"}; + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_LargeTurbine_Steam(mName); + } + + @Override + public Block getCasingBlock() { + return GregTech_API.sBlockCasings4; + } + + @Override + public byte getCasingMeta() { + return 9; + } + + @Override + public byte getCasingTextureIndex() { + return 46; + } + + @Override + public int getPollutionPerTick(ItemStack aStack) { + return 0; + } + + private int useWater(float input) { + water = water + input; + int usage = (int) water; + water = water - (int) usage; + return usage; + } - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { - return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][aColorIndex+1], aFacing == aSide ? aActive ? new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE_ACTIVE5):new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE5) : Textures.BlockIcons.CASING_BLOCKS[57]}; - } - - - public String[] getDescription() - { - return new String[] { - "Controller Block for the Large Steam Turbine", - "Size: 3x3x4 (Hollow)", "Controller (front centered)", - "1x Input Hatch (side centered)", "1x Output Hatch(side centered)", - "1x Dynamo Hatch (back centered)", - "1x Maintenance Hatch (side centered)", - "Turbine Casings for the rest (24 at least!)", - "Needs a Turbine Item (inside controller GUI)" }; - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {return new GT_MetaTileEntity_LargeTurbine_Steam(mName);} - @Override - public Block getCasingBlock() { - return GregTech_API.sBlockCasings4; - } - @Override - public byte getCasingMeta() { - return 9; - } - @Override - public byte getCasingTextureIndex() { - return 46; - } - @Override - public int getPollutionPerTick(ItemStack aStack) { - return 0; - } - - private float water; - private int useWater(float input){ - water = water + input; - int usage = (int)water; - water = water - (int)usage; - return usage; - } - - private boolean achievement = false; - @Override int fluidIntoPower(ArrayList aFluids, int aOptFlow, int aBaseEff) { int tEU = 0; @@ -75,16 +84,19 @@ public class GT_MetaTileEntity_LargeTurbine_Steam extends GT_MetaTileEntity_Larg int remainingFlow = (int) (aOptFlow * 1.25f); // Allowed to use up to 125% of optimal flow. Variable required outside of loop for multi-hatch scenarios. for (int i = 0; i < aFluids.size() && remainingFlow > 0; i++) { // loop through each hatch; extract inputs and track totals. - String fluidName = aFluids.get(i).getFluid().getUnlocalizedName(aFluids.get(i)); - if (fluidName.equals("fluid.steam") || fluidName.equals("ic2.fluidSteam") || fluidName.equals("fluid.mfr.steam.still.name")) { - flow = aFluids.get(i).amount; // Get all (steam) in hatch + String fluidName = aFluids.get(i).getFluid().getUnlocalizedName(aFluids.get(i)); + if (fluidName.equals("fluid.steam") || fluidName.equals("ic2.fluidSteam") || fluidName.equals("fluid.mfr.steam.still.name")) { + flow = aFluids.get(i).amount; // Get all (steam) in hatch flow = Math.min(flow, Math.min(remainingFlow, (int) (aOptFlow * 1.25f))); // try to use up to 125% of optimal flow w/o exceeding remainingFlow depleteInput(new FluidStack(aFluids.get(i), flow)); // deplete that amount remainingFlow -= flow; // track amount we're allowed to continue depleting from hatches totalFlow += flow; // track total input used - if(!achievement){ - try{GT_Mod.instance.achievements.issueAchievement(this.getBaseMetaTileEntity().getWorld().getPlayerEntityByName(this.getBaseMetaTileEntity().getOwnerName()), "muchsteam");}catch(Exception e){} - achievement=true; + if (!achievement) { + try { + GT_Mod.instance.achievements.issueAchievement(this.getBaseMetaTileEntity().getWorld().getPlayerEntityByName(this.getBaseMetaTileEntity().getOwnerName()), "muchsteam"); + } catch (Exception e) { + } + achievement = true; } } } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java index fc2a8a90..77698c07 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java @@ -2,7 +2,6 @@ package gregtech.common.tileentities.machines.multi; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -11,179 +10,158 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockB import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; - -import java.util.ArrayList; - import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; +import java.util.ArrayList; + public class GT_MetaTileEntity_MultiFurnace - extends GT_MetaTileEntity_MultiBlockBase -{ - private int mLevel = 0; - - public GT_MetaTileEntity_MultiFurnace(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional); - } - - public GT_MetaTileEntity_MultiFurnace(String aName) - { - super(aName); - } - - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_MultiFurnace(this.mName); - } - - public String[] getDescription() - { - return new String[] { "Smelts up to 6-18 Items at once", "Controller Block for the Multi Smelter", "Size: 3x3x3 (Hollow)", "Controller (front middle at bottom)", "8x Heating Coils (middle Layer, hollow)", "1x Input (one of bottom)", "1x Output (one of bottom)", "1x Energy Hatch (one of bottom)", "1x Maintenance Hatch (one of bottom)", "1x Muffler Hatch (top middle)", "Heat Proof Machine Casings for the rest" }; - } - - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) - { - if (aSide == aFacing) { - return new ITexture[] { Textures.BlockIcons.CASING_BLOCKS[11], new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_MULTI_SMELTER_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_MULTI_SMELTER) }; + extends GT_MetaTileEntity_MultiBlockBase { + private int mLevel = 0; + + public GT_MetaTileEntity_MultiFurnace(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); } - return new ITexture[] { Textures.BlockIcons.CASING_BLOCKS[11] }; - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "MultiFurnace.png"); - } - - public GT_Recipe.GT_Recipe_Map getRecipeMap() - { - return GT_Recipe.GT_Recipe_Map.sFurnaceRecipes; - } - - public boolean isCorrectMachinePart(ItemStack aStack) - { - return true; - } - - public boolean isFacingValid(byte aFacing) - { - return aFacing > 1; - } - - public boolean checkRecipe(ItemStack aStack) - { - ArrayList tInputList = getStoredInputs(); - if (!tInputList.isEmpty()) - { - byte tTier = (byte)Math.max(1, GT_Utility.getTier(getMaxInputVoltage())); - - int j = 0; - this.mOutputItems = new ItemStack[6 * this.mLevel]; - for (int i = 0; (i < 100) && (j < this.mOutputItems.length); i++) { - if (null != (this.mOutputItems[j] = GT_ModHandler.getSmeltingOutput((ItemStack)tInputList.get(i % tInputList.size()), true, null))) { - j++; + + public GT_MetaTileEntity_MultiFurnace(String aName) { + super(aName); + } + + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_MultiFurnace(this.mName); + } + + public String[] getDescription() { + return new String[]{"Smelts up to 6-18 Items at once", "Controller Block for the Multi Smelter", "Size: 3x3x3 (Hollow)", "Controller (front middle at bottom)", "8x Heating Coils (middle Layer, hollow)", "1x Input (one of bottom)", "1x Output (one of bottom)", "1x Energy Hatch (one of bottom)", "1x Maintenance Hatch (one of bottom)", "1x Muffler Hatch (top middle)", "Heat Proof Machine Casings for the rest"}; + } + + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + if (aSide == aFacing) { + return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[11], new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_MULTI_SMELTER_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_MULTI_SMELTER)}; } - } - if (j > 0) - { - this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); - this.mEfficiencyIncrease = 10000; - - this.mEUt = (-4 * (1 << tTier - 1) * (1 << tTier - 1) * this.mLevel); - this.mMaxProgresstime = Math.max(1, 512 / (1 << tTier - 1)); - } - updateSlots(); - return true; + return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[11]}; } - return false; - } - - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) - { - int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX;int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; - - this.mLevel = 0; - if (!aBaseMetaTileEntity.getAirOffset(xDir, 1, zDir)) { - return false; + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "MultiFurnace.png"); } - addMufflerToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir, 2, zDir), 11); - - byte tUsedMeta = aBaseMetaTileEntity.getMetaIDOffset(xDir + 1, 1, zDir); - switch (tUsedMeta) - { - case 12: - this.mLevel = 1; break; - case 13: - this.mLevel = 2; break; - case 14: - this.mLevel = 3; break; - default: - return false; + + public GT_Recipe.GT_Recipe_Map getRecipeMap() { + return GT_Recipe.GT_Recipe_Map.sFurnaceRecipes; } - for (int i = -1; i < 2; i++) { - for (int j = -1; j < 2; j++) { - if ((i != 0) || (j != 0)) - { - if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 1, zDir + j) != GregTech_API.sBlockCasings1) { - return false; - } - if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 1, zDir + j) != tUsedMeta) { - return false; - } - if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 2, zDir + j) != GregTech_API.sBlockCasings1) { - return false; - } - if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 2, zDir + j) != 11) { - return false; - } - } - } + + public boolean isCorrectMachinePart(ItemStack aStack) { + return true; } - for (int i = -1; i < 2; i++) { - for (int j = -1; j < 2; j++) { - if ((xDir + i != 0) || (zDir + j != 0)) - { - IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, 0, zDir + j); - if ((!addMaintenanceToMachineList(tTileEntity, 11)) && (!addInputToMachineList(tTileEntity, 11)) && (!addOutputToMachineList(tTileEntity, 11)) && (!addEnergyInputToMachineList(tTileEntity, 11))) - { - if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 0, zDir + j) != GregTech_API.sBlockCasings1) { - return false; + + public boolean isFacingValid(byte aFacing) { + return aFacing > 1; + } + + public boolean checkRecipe(ItemStack aStack) { + ArrayList tInputList = getStoredInputs(); + if (!tInputList.isEmpty()) { + byte tTier = (byte) Math.max(1, GT_Utility.getTier(getMaxInputVoltage())); + + int j = 0; + this.mOutputItems = new ItemStack[6 * this.mLevel]; + for (int i = 0; (i < 100) && (j < this.mOutputItems.length); i++) { + if (null != (this.mOutputItems[j] = GT_ModHandler.getSmeltingOutput((ItemStack) tInputList.get(i % tInputList.size()), true, null))) { + j++; + } } - if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 0, zDir + j) != 11) { - return false; + if (j > 0) { + this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); + this.mEfficiencyIncrease = 10000; + + this.mEUt = (-4 * (1 << tTier - 1) * (1 << tTier - 1) * this.mLevel); + this.mMaxProgresstime = Math.max(1, 512 / (1 << tTier - 1)); } - } + updateSlots(); + return true; } - } + return false; + } + + public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX; + int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; + + this.mLevel = 0; + if (!aBaseMetaTileEntity.getAirOffset(xDir, 1, zDir)) { + return false; + } + addMufflerToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir, 2, zDir), 11); + + byte tUsedMeta = aBaseMetaTileEntity.getMetaIDOffset(xDir + 1, 1, zDir); + switch (tUsedMeta) { + case 12: + this.mLevel = 1; + break; + case 13: + this.mLevel = 2; + break; + case 14: + this.mLevel = 3; + break; + default: + return false; + } + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 2; j++) { + if ((i != 0) || (j != 0)) { + if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 1, zDir + j) != GregTech_API.sBlockCasings1) { + return false; + } + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 1, zDir + j) != tUsedMeta) { + return false; + } + if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 2, zDir + j) != GregTech_API.sBlockCasings1) { + return false; + } + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 2, zDir + j) != 11) { + return false; + } + } + } + } + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 2; j++) { + if ((xDir + i != 0) || (zDir + j != 0)) { + IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, 0, zDir + j); + if ((!addMaintenanceToMachineList(tTileEntity, 11)) && (!addInputToMachineList(tTileEntity, 11)) && (!addOutputToMachineList(tTileEntity, 11)) && (!addEnergyInputToMachineList(tTileEntity, 11))) { + if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 0, zDir + j) != GregTech_API.sBlockCasings1) { + return false; + } + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 0, zDir + j) != 11) { + return false; + } + } + } + } + } + return true; + } + + public int getMaxEfficiency(ItemStack aStack) { + return 10000; + } + + public int getPollutionPerTick(ItemStack aStack) { + return 20; + } + + public int getDamageToComponent(ItemStack aStack) { + return 0; + } + + public int getAmountOfOutputs() { + return 18; + } + + public boolean explodesOnComponentBreak(ItemStack aStack) { + return false; } - return true; - } - - public int getMaxEfficiency(ItemStack aStack) - { - return 10000; - } - - public int getPollutionPerTick(ItemStack aStack) - { - return 20; - } - - public int getDamageToComponent(ItemStack aStack) - { - return 0; - } - - public int getAmountOfOutputs() - { - return 18; - } - - public boolean explodesOnComponentBreak(ItemStack aStack) - { - return false; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java index a3478adc..dd7a7930 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java @@ -1,298 +1,313 @@ package gregtech.common.tileentities.machines.multi; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import org.apache.commons.lang3.ArrayUtils; - -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; import gregtech.api.gui.GT_GUIContainer_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_BasicMachine_GT_Recipe; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidStack; +import org.apache.commons.lang3.ArrayUtils; -public class GT_MetaTileEntity_ProcessingArray extends GT_MetaTileEntity_MultiBlockBase{ - - public GT_MetaTileEntity_ProcessingArray(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional); - } - - public GT_MetaTileEntity_ProcessingArray(String aName) - { - super(aName); - } - - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_ProcessingArray(this.mName); - } - - public String[] getDescription() - { - return new String[] { "Controller Block for the Processing Array", - "Size: 3x3x3 (Hollow)", - "Controller (front centered)", - "1x Input (anywhere)", - "1x Output (anywhere)", - "1x Energy Hatch (anywhere)", - "1x Maintenance Hatch (anywhere)", - "Robust Tungstensteel Casings for the rest (16 at least!)", - "Place up to 16 Single Block GT Machines into the GUI Inventory", - "They will work the same way as placed directly in world"}; - } - - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) - { - if (aSide == aFacing) { - return new ITexture[] { Textures.BlockIcons.CASING_BLOCKS[48], new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_LARGE_BOILER_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_LARGE_BOILER) }; - } - return new ITexture[] { Textures.BlockIcons.CASING_BLOCKS[48] }; - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "VacuumFreezer.png"); - } - - public GT_Recipe.GT_Recipe_Map getRecipeMap() - { - if(mInventory[1]==null)return null; - String tmp = mInventory[1].getUnlocalizedName().replaceAll("gt.blockmachines.basicmachine.", ""); - if(tmp.startsWith("centrifuge")){ - return GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes; - }else if(tmp.startsWith("electrolyzer")){ - return GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes; - }else if(tmp.startsWith("alloysmelter")){ - return GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes; - }else if(tmp.startsWith("assembler")){ - return GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; - }else if(tmp.startsWith("compressor")){ - return GT_Recipe.GT_Recipe_Map.sCompressorRecipes; - }else if(tmp.startsWith("extractor")){ - return GT_Recipe.GT_Recipe_Map.sExtractorRecipes; - }else if(tmp.startsWith("macerator")){ - return GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; - }else if(tmp.startsWith("recycler")){ - return GT_Recipe.GT_Recipe_Map.sRecyclerRecipes; - }else if(tmp.startsWith("thermalcentrifuge")){ - return GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes; - }else if(tmp.startsWith("orewasher")){ - return GT_Recipe.GT_Recipe_Map.sOreWasherRecipes; - }else if(tmp.startsWith("chemicalreactor")){ - return GT_Recipe.GT_Recipe_Map.sChemicalRecipes; - }else if(tmp.startsWith("chemicalbath")){ - return GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes; - }else if(tmp.startsWith("electromagneticseparator")){ - return GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes; - }else if(tmp.startsWith("autoclave")){ - return GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes; - }else if(tmp.startsWith("mixer")){ - return GT_Recipe.GT_Recipe_Map.sMixerRecipes; - }else if(tmp.startsWith("hammer")){ - return GT_Recipe.GT_Recipe_Map.sHammerRecipes; - }else if(tmp.startsWith("sifter")){ - return GT_Recipe.GT_Recipe_Map.sSifterRecipes; - }else if(tmp.startsWith("extruder")){ - return GT_Recipe.GT_Recipe_Map.sExtruderRecipes; - }else if(tmp.startsWith("laserengraver")){ - return GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes; - }else if(tmp.startsWith("bender")){ - return GT_Recipe.GT_Recipe_Map.sBenderRecipes; - }else if(tmp.startsWith("wiremill")){ - return GT_Recipe.GT_Recipe_Map.sWiremillRecipes; - }else if(tmp.startsWith("arcfurnace")){ - return GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes; - } - return null; - } - - public boolean isCorrectMachinePart(ItemStack aStack) - { - if(aStack!=null&&aStack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.")){ - return true;} - return false; - } - - public boolean isFacingValid(byte aFacing) - { - return aFacing > 1; - } - - GT_Recipe mLastRecipe; - public boolean checkRecipe(ItemStack aStack){ - if(!isCorrectMachinePart(mInventory[1])){return false;} - GT_Recipe.GT_Recipe_Map map = getRecipeMap(); - if(map==null){return false;} - ArrayList tInputList = getStoredInputs(); - int tTier = 0; - if(mInventory[1].getUnlocalizedName().endsWith("1")){tTier=1;} - if(mInventory[1].getUnlocalizedName().endsWith("2")){tTier=2;} - if(mInventory[1].getUnlocalizedName().endsWith("3")){tTier=3;} - if(mInventory[1].getUnlocalizedName().endsWith("4")){tTier=4;} - if(mInventory[1].getUnlocalizedName().endsWith("5")){tTier=5;} - for (int i = 0; i < tInputList.size() - 1; i++) { - for (int j = i + 1; j < tInputList.size(); j++) { - if (GT_Utility.areStacksEqual((ItemStack)tInputList.get(i), (ItemStack)tInputList.get(j))) { - if (((ItemStack)tInputList.get(i)).stackSize >= ((ItemStack)tInputList.get(j)).stackSize) - { - tInputList.remove(j--); - } - else - { - tInputList.remove(i--); break; - } - } - } - } - ItemStack[] tInputs = (ItemStack[])Arrays.copyOfRange(tInputList.toArray(new ItemStack[tInputList.size()]), 0, 2); - - ArrayList tFluidList = getStoredFluids(); - for (int i = 0; i < tFluidList.size() - 1; i++) { - for (int j = i + 1; j < tFluidList.size(); j++) { - if (GT_Utility.areFluidsEqual((FluidStack)tFluidList.get(i), (FluidStack)tFluidList.get(j))) { - if (((FluidStack)tFluidList.get(i)).amount >= ((FluidStack)tFluidList.get(j)).amount) - { - tFluidList.remove(j--); - } - else - { - tFluidList.remove(i--); break; - } - } - } - } - FluidStack[] tFluids = (FluidStack[])Arrays.copyOfRange(tFluidList.toArray(new FluidStack[tInputList.size()]), 0, 1); - if(tInputList.size() > 0 || tFluids.length>0){ - GT_Recipe tRecipe = map.findRecipe(getBaseMetaTileEntity(), mLastRecipe, false, gregtech.api.enums.GT_Values.V[tTier], tFluids, tInputs); - if (tRecipe != null) { - if(tRecipe.mFluidInputs!=null){ - - } - mLastRecipe = tRecipe; - this.mEUt = 0; - this.mOutputItems = null; - this.mOutputFluids = null; - int machines = Math.min(16,mInventory[1].stackSize); - int i = 0; - for(;i 0) { - this.mEUt = (-this.mEUt); - } - ItemStack[] tOut = new ItemStack[tRecipe.mOutputs.length]; - for(int h = 0;h overStacks = new ArrayList(); - for(int f =0; f < tOut.length ; f++){ - if(tOut[f].getMaxStackSize()0){ - ItemStack[] tmp = new ItemStack[overStacks.size()]; - tmp = overStacks.toArray(tmp); - tOut = ArrayUtils.addAll(tOut, tmp); - } - List tSList = new ArrayList(); - for(ItemStack tS : tOut){ - if(tS.stackSize>0)tSList.add(tS); - } - tOut = tSList.toArray(new ItemStack[tSList.size()]); - this.mOutputItems = tOut; - this.mOutputFluids = new FluidStack[]{tFOut}; - updateSlots(); - return true; - } - } - return false; - } - - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) - { - int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX;int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; - if (!aBaseMetaTileEntity.getAirOffset(xDir, 0, zDir)) { - return false; - } - int tAmount = 0; - for (int i = -1; i < 2; i++) { - for (int j = -1; j < 2; j++) { - for (int h = -1; h < 2; h++) { - if ((h != 0) || (((xDir + i != 0) || (zDir + j != 0)) && ((i != 0) || (j != 0)))) - { - IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, h, zDir + j); - if ((!addMaintenanceToMachineList(tTileEntity, 48)) && (!addInputToMachineList(tTileEntity, 48)) && (!addOutputToMachineList(tTileEntity, 48)) && (!addEnergyInputToMachineList(tTileEntity, 48))) - { - if (aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j) != GregTech_API.sBlockCasings4) { - return false; - } - if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j) != 0) { - return false; - } - tAmount++; - } - } - } - } - } - return tAmount >= 16; - } - - public int getMaxEfficiency(ItemStack aStack){return 10000;} - public int getPollutionPerTick(ItemStack aStack){return 0;} - public int getDamageToComponent(ItemStack aStack){return 0;} - public int getAmountOfOutputs(){return 1;} - public boolean explodesOnComponentBreak(ItemStack aStack){return false;} - } \ No newline at end of file +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class GT_MetaTileEntity_ProcessingArray extends GT_MetaTileEntity_MultiBlockBase { + + GT_Recipe mLastRecipe; + + public GT_MetaTileEntity_ProcessingArray(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); + } + + public GT_MetaTileEntity_ProcessingArray(String aName) { + super(aName); + } + + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_ProcessingArray(this.mName); + } + + public String[] getDescription() { + return new String[]{"Controller Block for the Processing Array", + "Size: 3x3x3 (Hollow)", + "Controller (front centered)", + "1x Input (anywhere)", + "1x Output (anywhere)", + "1x Energy Hatch (anywhere)", + "1x Maintenance Hatch (anywhere)", + "Robust Tungstensteel Casings for the rest (16 at least!)", + "Place up to 16 Single Block GT Machines into the GUI Inventory", + "They will work the same way as placed directly in world"}; + } + + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + if (aSide == aFacing) { + return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[48], new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_LARGE_BOILER_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_LARGE_BOILER)}; + } + return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[48]}; + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "VacuumFreezer.png"); + } + + public GT_Recipe.GT_Recipe_Map getRecipeMap() { + if (mInventory[1] == null) return null; + String tmp = mInventory[1].getUnlocalizedName().replaceAll("gt.blockmachines.basicmachine.", ""); + if (tmp.startsWith("centrifuge")) { + return GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes; + } else if (tmp.startsWith("electrolyzer")) { + return GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes; + } else if (tmp.startsWith("alloysmelter")) { + return GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes; + } else if (tmp.startsWith("assembler")) { + return GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; + } else if (tmp.startsWith("compressor")) { + return GT_Recipe.GT_Recipe_Map.sCompressorRecipes; + } else if (tmp.startsWith("extractor")) { + return GT_Recipe.GT_Recipe_Map.sExtractorRecipes; + } else if (tmp.startsWith("macerator")) { + return GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; + } else if (tmp.startsWith("recycler")) { + return GT_Recipe.GT_Recipe_Map.sRecyclerRecipes; + } else if (tmp.startsWith("thermalcentrifuge")) { + return GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes; + } else if (tmp.startsWith("orewasher")) { + return GT_Recipe.GT_Recipe_Map.sOreWasherRecipes; + } else if (tmp.startsWith("chemicalreactor")) { + return GT_Recipe.GT_Recipe_Map.sChemicalRecipes; + } else if (tmp.startsWith("chemicalbath")) { + return GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes; + } else if (tmp.startsWith("electromagneticseparator")) { + return GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes; + } else if (tmp.startsWith("autoclave")) { + return GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes; + } else if (tmp.startsWith("mixer")) { + return GT_Recipe.GT_Recipe_Map.sMixerRecipes; + } else if (tmp.startsWith("hammer")) { + return GT_Recipe.GT_Recipe_Map.sHammerRecipes; + } else if (tmp.startsWith("sifter")) { + return GT_Recipe.GT_Recipe_Map.sSifterRecipes; + } else if (tmp.startsWith("extruder")) { + return GT_Recipe.GT_Recipe_Map.sExtruderRecipes; + } else if (tmp.startsWith("laserengraver")) { + return GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes; + } else if (tmp.startsWith("bender")) { + return GT_Recipe.GT_Recipe_Map.sBenderRecipes; + } else if (tmp.startsWith("wiremill")) { + return GT_Recipe.GT_Recipe_Map.sWiremillRecipes; + } else if (tmp.startsWith("arcfurnace")) { + return GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes; + } + return null; + } + + public boolean isCorrectMachinePart(ItemStack aStack) { + if (aStack != null && aStack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.")) { + return true; + } + return false; + } + + public boolean isFacingValid(byte aFacing) { + return aFacing > 1; + } + + public boolean checkRecipe(ItemStack aStack) { + if (!isCorrectMachinePart(mInventory[1])) { + return false; + } + GT_Recipe.GT_Recipe_Map map = getRecipeMap(); + if (map == null) { + return false; + } + ArrayList tInputList = getStoredInputs(); + int tTier = 0; + if (mInventory[1].getUnlocalizedName().endsWith("1")) { + tTier = 1; + } + if (mInventory[1].getUnlocalizedName().endsWith("2")) { + tTier = 2; + } + if (mInventory[1].getUnlocalizedName().endsWith("3")) { + tTier = 3; + } + if (mInventory[1].getUnlocalizedName().endsWith("4")) { + tTier = 4; + } + if (mInventory[1].getUnlocalizedName().endsWith("5")) { + tTier = 5; + } + for (int i = 0; i < tInputList.size() - 1; i++) { + for (int j = i + 1; j < tInputList.size(); j++) { + if (GT_Utility.areStacksEqual((ItemStack) tInputList.get(i), (ItemStack) tInputList.get(j))) { + if (((ItemStack) tInputList.get(i)).stackSize >= ((ItemStack) tInputList.get(j)).stackSize) { + tInputList.remove(j--); + } else { + tInputList.remove(i--); + break; + } + } + } + } + ItemStack[] tInputs = (ItemStack[]) Arrays.copyOfRange(tInputList.toArray(new ItemStack[tInputList.size()]), 0, 2); + + ArrayList tFluidList = getStoredFluids(); + for (int i = 0; i < tFluidList.size() - 1; i++) { + for (int j = i + 1; j < tFluidList.size(); j++) { + if (GT_Utility.areFluidsEqual((FluidStack) tFluidList.get(i), (FluidStack) tFluidList.get(j))) { + if (((FluidStack) tFluidList.get(i)).amount >= ((FluidStack) tFluidList.get(j)).amount) { + tFluidList.remove(j--); + } else { + tFluidList.remove(i--); + break; + } + } + } + } + FluidStack[] tFluids = (FluidStack[]) Arrays.copyOfRange(tFluidList.toArray(new FluidStack[tInputList.size()]), 0, 1); + if (tInputList.size() > 0 || tFluids.length > 0) { + GT_Recipe tRecipe = map.findRecipe(getBaseMetaTileEntity(), mLastRecipe, false, gregtech.api.enums.GT_Values.V[tTier], tFluids, tInputs); + if (tRecipe != null) { + if (tRecipe.mFluidInputs != null) { + + } + mLastRecipe = tRecipe; + this.mEUt = 0; + this.mOutputItems = null; + this.mOutputFluids = null; + int machines = Math.min(16, mInventory[1].stackSize); + int i = 0; + for (; i < machines; i++) { + if (!tRecipe.isRecipeInputEqual(true, tFluids, tInputs)) { + if (i == 0) { + return false; + } + break; + } + } + this.mMaxProgresstime = tRecipe.mDuration; + this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); + this.mEfficiencyIncrease = 10000; + if (tRecipe.mEUt <= 16) { + this.mEUt = (tRecipe.mEUt * (1 << tTier - 1) * (1 << tTier - 1)); + this.mMaxProgresstime = (tRecipe.mDuration / (1 << tTier - 1)); + } else { + this.mEUt = tRecipe.mEUt; + this.mMaxProgresstime = tRecipe.mDuration; + while (this.mEUt <= gregtech.api.enums.GT_Values.V[(tTier - 1)]) { + this.mEUt *= 4; + this.mMaxProgresstime /= 2; + } + } + this.mEUt *= i; + if (this.mEUt > 0) { + this.mEUt = (-this.mEUt); + } + ItemStack[] tOut = new ItemStack[tRecipe.mOutputs.length]; + for (int h = 0; h < tRecipe.mOutputs.length; h++) { + tOut[h] = tRecipe.getOutput(h).copy(); + tOut[h].stackSize = 0; + } + FluidStack tFOut = null; + if (tRecipe.getFluidOutput(0) != null) tFOut = tRecipe.getFluidOutput(0).copy(); + for (int f = 0; f < tOut.length; f++) { + if (tRecipe.mOutputs[f] != null && tOut[f] != null) { + for (int g = 0; g < i; g++) { + if (getBaseMetaTileEntity().getRandomNumber(10000) < tRecipe.getOutputChance(f)) + tOut[f].stackSize += tRecipe.mOutputs[f].stackSize; + } + } + } + if (tFOut != null) { + int tSize = tFOut.amount; + tFOut.amount = tSize * i; + } + this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime); + List overStacks = new ArrayList(); + for (int f = 0; f < tOut.length; f++) { + if (tOut[f].getMaxStackSize() < tOut[f].stackSize) { + while (tOut[f].getMaxStackSize() < tOut[f].stackSize) { + ItemStack tmp = tOut[f].copy(); + tmp.stackSize = tmp.getMaxStackSize(); + tOut[f].stackSize = tOut[f].stackSize - tOut[f].getMaxStackSize(); + overStacks.add(tmp); + } + } + } + if (overStacks.size() > 0) { + ItemStack[] tmp = new ItemStack[overStacks.size()]; + tmp = overStacks.toArray(tmp); + tOut = ArrayUtils.addAll(tOut, tmp); + } + List tSList = new ArrayList(); + for (ItemStack tS : tOut) { + if (tS.stackSize > 0) tSList.add(tS); + } + tOut = tSList.toArray(new ItemStack[tSList.size()]); + this.mOutputItems = tOut; + this.mOutputFluids = new FluidStack[]{tFOut}; + updateSlots(); + return true; + } + } + return false; + } + + public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX; + int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; + if (!aBaseMetaTileEntity.getAirOffset(xDir, 0, zDir)) { + return false; + } + int tAmount = 0; + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 2; j++) { + for (int h = -1; h < 2; h++) { + if ((h != 0) || (((xDir + i != 0) || (zDir + j != 0)) && ((i != 0) || (j != 0)))) { + IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, h, zDir + j); + if ((!addMaintenanceToMachineList(tTileEntity, 48)) && (!addInputToMachineList(tTileEntity, 48)) && (!addOutputToMachineList(tTileEntity, 48)) && (!addEnergyInputToMachineList(tTileEntity, 48))) { + if (aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j) != GregTech_API.sBlockCasings4) { + return false; + } + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j) != 0) { + return false; + } + tAmount++; + } + } + } + } + } + return tAmount >= 16; + } + + public int getMaxEfficiency(ItemStack aStack) { + return 10000; + } + + public int getPollutionPerTick(ItemStack aStack) { + return 0; + } + + public int getDamageToComponent(ItemStack aStack) { + return 0; + } + + public int getAmountOfOutputs() { + return 1; + } + + public boolean explodesOnComponentBreak(ItemStack aStack) { + return false; + } +} \ No newline at end of file diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java index c0d4af25..e222584d 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java @@ -2,7 +2,6 @@ package gregtech.common.tileentities.machines.multi; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -10,160 +9,134 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; - -import java.util.ArrayList; - import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; +import java.util.ArrayList; + public class GT_MetaTileEntity_VacuumFreezer - extends GT_MetaTileEntity_MultiBlockBase -{ - public GT_MetaTileEntity_VacuumFreezer(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional); - } - - public GT_MetaTileEntity_VacuumFreezer(String aName) - { - super(aName); - } - - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_VacuumFreezer(this.mName); - } - - public String[] getDescription() - { - return new String[] { "Controller Block for the Vacuum Freezer", "Size: 3x3x3 (Hollow)", "Controller (front centered)", "1x Input (anywhere)", "1x Output (anywhere)", "1x Energy Hatch (anywhere)", "1x Maintenance Hatch (anywhere)", "Frost Proof Casings for the rest (16 at least!)" }; - } - - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) - { - if (aSide == aFacing) { - return new ITexture[] { Textures.BlockIcons.CASING_BLOCKS[17], new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_VACUUM_FREEZER) }; + extends GT_MetaTileEntity_MultiBlockBase { + public GT_MetaTileEntity_VacuumFreezer(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); } - return new ITexture[] { Textures.BlockIcons.CASING_BLOCKS[17] }; - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "VacuumFreezer.png"); - } - - public GT_Recipe.GT_Recipe_Map getRecipeMap() - { - return GT_Recipe.GT_Recipe_Map.sVacuumRecipes; - } - - public boolean isCorrectMachinePart(ItemStack aStack) - { - return true; - } - - public boolean isFacingValid(byte aFacing) - { - return aFacing > 1; - } - - public boolean checkRecipe(ItemStack aStack) - { - ArrayList tInputList = getStoredInputs(); - for (ItemStack tInput : tInputList) - { - long tVoltage = getMaxInputVoltage(); - byte tTier = (byte)Math.max(1, GT_Utility.getTier(tVoltage)); - - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sVacuumRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], null, new ItemStack[] { tInput }); - if (tRecipe != null) { - if (tRecipe.isRecipeInputEqual(true, null, new ItemStack[] { tInput })) - { - this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); - this.mEfficiencyIncrease = 10000; - if (tRecipe.mEUt <= 16) - { - this.mEUt = (tRecipe.mEUt * (1 << tTier - 1) * (1 << tTier - 1)); - this.mMaxProgresstime = (tRecipe.mDuration / (1 << tTier - 1)); - } - else - { - this.mEUt = tRecipe.mEUt; - this.mMaxProgresstime = tRecipe.mDuration; - while (this.mEUt <= gregtech.api.enums.GT_Values.V[(tTier - 1)]) - { - this.mEUt *= 4; - this.mMaxProgresstime /= 2; - } - } - if (this.mEUt > 0) { - this.mEUt = (-this.mEUt); - } - this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime); - this.mOutputItems = new ItemStack[] { tRecipe.getOutput(0) }; - updateSlots(); - return true; + + public GT_MetaTileEntity_VacuumFreezer(String aName) { + super(aName); + } + + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_VacuumFreezer(this.mName); + } + + public String[] getDescription() { + return new String[]{"Controller Block for the Vacuum Freezer", "Size: 3x3x3 (Hollow)", "Controller (front centered)", "1x Input (anywhere)", "1x Output (anywhere)", "1x Energy Hatch (anywhere)", "1x Maintenance Hatch (anywhere)", "Frost Proof Casings for the rest (16 at least!)"}; + } + + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + if (aSide == aFacing) { + return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[17], new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_VACUUM_FREEZER)}; } - } + return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[17]}; } - return false; - } - - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) - { - int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX;int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; - if (!aBaseMetaTileEntity.getAirOffset(xDir, 0, zDir)) { - return false; + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "VacuumFreezer.png"); } - int tAmount = 0; - for (int i = -1; i < 2; i++) { - for (int j = -1; j < 2; j++) { - for (int h = -1; h < 2; h++) { - if ((h != 0) || (((xDir + i != 0) || (zDir + j != 0)) && ((i != 0) || (j != 0)))) - { - IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, h, zDir + j); - if ((!addMaintenanceToMachineList(tTileEntity, 17)) && (!addInputToMachineList(tTileEntity, 17)) && (!addOutputToMachineList(tTileEntity, 17)) && (!addEnergyInputToMachineList(tTileEntity, 17))) - { - if (aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j) != GregTech_API.sBlockCasings2) { - return false; - } - if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j) != 1) { - return false; - } - tAmount++; + + public GT_Recipe.GT_Recipe_Map getRecipeMap() { + return GT_Recipe.GT_Recipe_Map.sVacuumRecipes; + } + + public boolean isCorrectMachinePart(ItemStack aStack) { + return true; + } + + public boolean isFacingValid(byte aFacing) { + return aFacing > 1; + } + + public boolean checkRecipe(ItemStack aStack) { + ArrayList tInputList = getStoredInputs(); + for (ItemStack tInput : tInputList) { + long tVoltage = getMaxInputVoltage(); + byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage)); + + GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sVacuumRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], null, new ItemStack[]{tInput}); + if (tRecipe != null) { + if (tRecipe.isRecipeInputEqual(true, null, new ItemStack[]{tInput})) { + this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); + this.mEfficiencyIncrease = 10000; + if (tRecipe.mEUt <= 16) { + this.mEUt = (tRecipe.mEUt * (1 << tTier - 1) * (1 << tTier - 1)); + this.mMaxProgresstime = (tRecipe.mDuration / (1 << tTier - 1)); + } else { + this.mEUt = tRecipe.mEUt; + this.mMaxProgresstime = tRecipe.mDuration; + while (this.mEUt <= gregtech.api.enums.GT_Values.V[(tTier - 1)]) { + this.mEUt *= 4; + this.mMaxProgresstime /= 2; + } + } + if (this.mEUt > 0) { + this.mEUt = (-this.mEUt); + } + this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime); + this.mOutputItems = new ItemStack[]{tRecipe.getOutput(0)}; + updateSlots(); + return true; + } } - } } - } + return false; + } + + public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX; + int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; + if (!aBaseMetaTileEntity.getAirOffset(xDir, 0, zDir)) { + return false; + } + int tAmount = 0; + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 2; j++) { + for (int h = -1; h < 2; h++) { + if ((h != 0) || (((xDir + i != 0) || (zDir + j != 0)) && ((i != 0) || (j != 0)))) { + IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, h, zDir + j); + if ((!addMaintenanceToMachineList(tTileEntity, 17)) && (!addInputToMachineList(tTileEntity, 17)) && (!addOutputToMachineList(tTileEntity, 17)) && (!addEnergyInputToMachineList(tTileEntity, 17))) { + if (aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j) != GregTech_API.sBlockCasings2) { + return false; + } + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j) != 1) { + return false; + } + tAmount++; + } + } + } + } + } + return tAmount >= 16; + } + + public int getMaxEfficiency(ItemStack aStack) { + return 10000; + } + + public int getPollutionPerTick(ItemStack aStack) { + return 0; + } + + public int getDamageToComponent(ItemStack aStack) { + return 0; + } + + public int getAmountOfOutputs() { + return 1; + } + + public boolean explodesOnComponentBreak(ItemStack aStack) { + return false; } - return tAmount >= 16; - } - - public int getMaxEfficiency(ItemStack aStack) - { - return 10000; - } - - public int getPollutionPerTick(ItemStack aStack) - { - return 0; - } - - public int getDamageToComponent(ItemStack aStack) - { - return 0; - } - - public int getAmountOfOutputs() - { - return 1; - } - - public boolean explodesOnComponentBreak(ItemStack aStack) - { - return false; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Bronze.java index ce722b63..c62b795a 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Bronze.java @@ -2,7 +2,6 @@ package gregtech.common.tileentities.machines.steam; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.gui.GT_GUIContainer_BasicMachine; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -10,107 +9,83 @@ import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_Bronze; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; - -import java.util.Map; - import net.minecraft.entity.player.InventoryPlayer; public class GT_MetaTileEntity_AlloySmelter_Bronze - extends GT_MetaTileEntity_BasicMachine_Bronze -{ - public GT_MetaTileEntity_AlloySmelter_Bronze(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional, "Combination Smelter", 2, 1, true); - } - - public GT_MetaTileEntity_AlloySmelter_Bronze(String aName, String aDescription, ITexture[][][] aTextures) - { - super(aName, aDescription, aTextures, 2, 1, true); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_AlloySmelter_Bronze(this.mName, this.mDescription, this.mTextures); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "BronzeAlloySmelter.png", GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes.mUnlocalizedName); - } - - public int checkRecipe() - { - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[1], null, getAllInputs()); - if ((tRecipe != null) && (canOutput(tRecipe.mOutputs)) && (tRecipe.isRecipeInputEqual(true, null, getAllInputs()))) - { - this.mOutputItems[0] = tRecipe.getOutput(0); - if (tRecipe.mEUt <= 16) - { - this.mEUt = tRecipe.mEUt; - this.mMaxProgresstime = (tRecipe.mDuration * 2); - } - else - { - this.mEUt = tRecipe.mEUt; - this.mMaxProgresstime = (tRecipe.mDuration * 2); - } - return 2; + extends GT_MetaTileEntity_BasicMachine_Bronze { + public GT_MetaTileEntity_AlloySmelter_Bronze(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional, "Combination Smelter", 2, 1, true); } - return 0; - } - - public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) - { - super.startSoundLoop(aIndex, aX, aY, aZ); - if (aIndex == 1) { - GT_Utility.doSoundAtClient((String)GregTech_API.sSoundList.get(Integer.valueOf(208)), 10, 1.0F, aX, aY, aZ); + + public GT_MetaTileEntity_AlloySmelter_Bronze(String aName, String aDescription, ITexture[][][] aTextures) { + super(aName, aDescription, aTextures, 2, 1, true); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_AlloySmelter_Bronze(this.mName, this.mDescription, this.mTextures); + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "BronzeAlloySmelter.png", GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes.mUnlocalizedName); + } + + public int checkRecipe() { + GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[1], null, getAllInputs()); + if ((tRecipe != null) && (canOutput(tRecipe.mOutputs)) && (tRecipe.isRecipeInputEqual(true, null, getAllInputs()))) { + this.mOutputItems[0] = tRecipe.getOutput(0); + if (tRecipe.mEUt <= 16) { + this.mEUt = tRecipe.mEUt; + this.mMaxProgresstime = (tRecipe.mDuration * 2); + } else { + this.mEUt = tRecipe.mEUt; + this.mMaxProgresstime = (tRecipe.mDuration * 2); + } + return 2; + } + return 0; + } + + public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) { + super.startSoundLoop(aIndex, aX, aY, aZ); + if (aIndex == 1) { + GT_Utility.doSoundAtClient((String) GregTech_API.sSoundList.get(Integer.valueOf(208)), 10, 1.0F, aX, aY, aZ); + } + } + + public void startProcess() { + sendLoopStart((byte) 1); + } + + public ITexture[] getSideFacingActive(byte aColor) { + return new ITexture[]{super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_ALLOY_SMELTER_ACTIVE)}; + } + + public ITexture[] getSideFacingInactive(byte aColor) { + return new ITexture[]{super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_ALLOY_SMELTER)}; + } + + public ITexture[] getFrontFacingActive(byte aColor) { + return new ITexture[]{super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_ALLOY_SMELTER_ACTIVE)}; + } + + public ITexture[] getFrontFacingInactive(byte aColor) { + return new ITexture[]{super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_ALLOY_SMELTER)}; + } + + public ITexture[] getTopFacingActive(byte aColor) { + return new ITexture[]{super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_ALLOY_SMELTER_ACTIVE)}; + } + + public ITexture[] getTopFacingInactive(byte aColor) { + return new ITexture[]{super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_ALLOY_SMELTER)}; + } + + public ITexture[] getBottomFacingActive(byte aColor) { + return new ITexture[]{super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER_ACTIVE)}; + } + + public ITexture[] getBottomFacingInactive(byte aColor) { + return new ITexture[]{super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER)}; } - } - - public void startProcess() - { - sendLoopStart((byte)1); - } - - public ITexture[] getSideFacingActive(byte aColor) - { - return new ITexture[] { super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_ALLOY_SMELTER_ACTIVE) }; - } - - public ITexture[] getSideFacingInactive(byte aColor) - { - return new ITexture[] { super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_ALLOY_SMELTER) }; - } - - public ITexture[] getFrontFacingActive(byte aColor) - { - return new ITexture[] { super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_ALLOY_SMELTER_ACTIVE) }; - } - - public ITexture[] getFrontFacingInactive(byte aColor) - { - return new ITexture[] { super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_ALLOY_SMELTER) }; - } - - public ITexture[] getTopFacingActive(byte aColor) - { - return new ITexture[] { super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_ALLOY_SMELTER_ACTIVE) }; - } - - public ITexture[] getTopFacingInactive(byte aColor) - { - return new ITexture[] { super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_ALLOY_SMELTER) }; - } - - public ITexture[] getBottomFacingActive(byte aColor) - { - return new ITexture[] { super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER_ACTIVE) }; - } - - public ITexture[] getBottomFacingInactive(byte aColor) - { - return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER) }; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Steel.java index 3de31757..fe32ca8b 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Steel.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_AlloySmelter_Steel.java @@ -2,7 +2,6 @@ package gregtech.common.tileentities.machines.steam; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.gui.GT_GUIContainer_BasicMachine; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -10,107 +9,83 @@ import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_Steel; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; - -import java.util.Map; - import net.minecraft.entity.player.InventoryPlayer; public class GT_MetaTileEntity_AlloySmelter_Steel - extends GT_MetaTileEntity_BasicMachine_Steel -{ - public GT_MetaTileEntity_AlloySmelter_Steel(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional, "Combination Smelter", 2, 1, true); - } - - public GT_MetaTileEntity_AlloySmelter_Steel(String aName, String aDescription, ITexture[][][] aTextures) - { - super(aName, aDescription, aTextures, 2, 1, true); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_AlloySmelter_Steel(this.mName, this.mDescription, this.mTextures); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "SteelAlloySmelter.png", GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes.mUnlocalizedName); - } - - public int checkRecipe() - { - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[2], null, getAllInputs()); - if ((tRecipe != null) && (canOutput(tRecipe.mOutputs)) && (tRecipe.isRecipeInputEqual(true, null, getAllInputs()))) - { - this.mOutputItems[0] = tRecipe.getOutput(0); - if (tRecipe.mEUt <= 16) - { - this.mEUt = (tRecipe.mEUt * 3); - this.mMaxProgresstime = tRecipe.mDuration; - } - else - { - this.mEUt = (tRecipe.mEUt * 3); - this.mMaxProgresstime = tRecipe.mDuration; - } - return 2; + extends GT_MetaTileEntity_BasicMachine_Steel { + public GT_MetaTileEntity_AlloySmelter_Steel(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional, "Combination Smelter", 2, 1, true); } - return 0; - } - - public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) - { - super.startSoundLoop(aIndex, aX, aY, aZ); - if (aIndex == 1) { - GT_Utility.doSoundAtClient((String)GregTech_API.sSoundList.get(Integer.valueOf(208)), 10, 1.0F, aX, aY, aZ); + + public GT_MetaTileEntity_AlloySmelter_Steel(String aName, String aDescription, ITexture[][][] aTextures) { + super(aName, aDescription, aTextures, 2, 1, true); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_AlloySmelter_Steel(this.mName, this.mDescription, this.mTextures); + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "SteelAlloySmelter.png", GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes.mUnlocalizedName); + } + + public int checkRecipe() { + GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[2], null, getAllInputs()); + if ((tRecipe != null) && (canOutput(tRecipe.mOutputs)) && (tRecipe.isRecipeInputEqual(true, null, getAllInputs()))) { + this.mOutputItems[0] = tRecipe.getOutput(0); + if (tRecipe.mEUt <= 16) { + this.mEUt = (tRecipe.mEUt * 3); + this.mMaxProgresstime = tRecipe.mDuration; + } else { + this.mEUt = (tRecipe.mEUt * 3); + this.mMaxProgresstime = tRecipe.mDuration; + } + return 2; + } + return 0; + } + + public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) { + super.startSoundLoop(aIndex, aX, aY, aZ); + if (aIndex == 1) { + GT_Utility.doSoundAtClient((String) GregTech_API.sSoundList.get(Integer.valueOf(208)), 10, 1.0F, aX, aY, aZ); + } + } + + public void startProcess() { + sendLoopStart((byte) 1); + } + + public ITexture[] getSideFacingActive(byte aColor) { + return new ITexture[]{super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_ALLOY_SMELTER_ACTIVE)}; + } + + public ITexture[] getSideFacingInactive(byte aColor) { + return new ITexture[]{super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_ALLOY_SMELTER)}; + } + + public ITexture[] getFrontFacingActive(byte aColor) { + return new ITexture[]{super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_ALLOY_SMELTER_ACTIVE)}; + } + + public ITexture[] getFrontFacingInactive(byte aColor) { + return new ITexture[]{super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_ALLOY_SMELTER)}; + } + + public ITexture[] getTopFacingActive(byte aColor) { + return new ITexture[]{super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_ALLOY_SMELTER_ACTIVE)}; + } + + public ITexture[] getTopFacingInactive(byte aColor) { + return new ITexture[]{super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_ALLOY_SMELTER)}; + } + + public ITexture[] getBottomFacingActive(byte aColor) { + return new ITexture[]{super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER_ACTIVE)}; + } + + public ITexture[] getBottomFacingInactive(byte aColor) { + return new ITexture[]{super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER)}; } - } - - public void startProcess() - { - sendLoopStart((byte)1); - } - - public ITexture[] getSideFacingActive(byte aColor) - { - return new ITexture[] { super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_ALLOY_SMELTER_ACTIVE) }; - } - - public ITexture[] getSideFacingInactive(byte aColor) - { - return new ITexture[] { super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_ALLOY_SMELTER) }; - } - - public ITexture[] getFrontFacingActive(byte aColor) - { - return new ITexture[] { super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_ALLOY_SMELTER_ACTIVE) }; - } - - public ITexture[] getFrontFacingInactive(byte aColor) - { - return new ITexture[] { super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_ALLOY_SMELTER) }; - } - - public ITexture[] getTopFacingActive(byte aColor) - { - return new ITexture[] { super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_ALLOY_SMELTER_ACTIVE) }; - } - - public ITexture[] getTopFacingInactive(byte aColor) - { - return new ITexture[] { super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_ALLOY_SMELTER) }; - } - - public ITexture[] getBottomFacingActive(byte aColor) - { - return new ITexture[] { super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER_ACTIVE) }; - } - - public ITexture[] getBottomFacingInactive(byte aColor) - { - return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER) }; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java index f69dd2ad..b3bbcc98 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java @@ -2,7 +2,6 @@ package gregtech.common.tileentities.machines.steam; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.gui.GT_GUIContainer_BasicMachine; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -11,102 +10,83 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachin import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; - -import java.util.Map; - import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; public class GT_MetaTileEntity_Compressor_Bronze - extends GT_MetaTileEntity_BasicMachine_Bronze -{ - public GT_MetaTileEntity_Compressor_Bronze(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional, "Compressing Items", 1, 1, false); - } - - public GT_MetaTileEntity_Compressor_Bronze(String aName, String aDescription, ITexture[][][] aTextures) - { - super(aName, aDescription, aTextures, 1, 1, false); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "BronzeCompressor.png", "ic2.compressor"); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_Compressor_Bronze(this.mName, this.mDescription, this.mTextures); - } - - public int checkRecipe() - { - if (null != (this.mOutputItems[0] = GT_ModHandler.getCompressorOutput(getInputAt(0), true, getOutputAt(0)))) - { - this.mEUt = 2; - this.mMaxProgresstime = 800; - return 2; + extends GT_MetaTileEntity_BasicMachine_Bronze { + public GT_MetaTileEntity_Compressor_Bronze(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional, "Compressing Items", 1, 1, false); } - return 0; - } - - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) {return false;} - return GT_ModHandler.getCompressorOutput(GT_Utility.copyAmount(64L, new Object[] { aStack }), false, null) != null; - } - - public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) - { - super.startSoundLoop(aIndex, aX, aY, aZ); - if (aIndex == 1) { - GT_Utility.doSoundAtClient((String)GregTech_API.sSoundList.get(Integer.valueOf(203)), 10, 1.0F, aX, aY, aZ); + + public GT_MetaTileEntity_Compressor_Bronze(String aName, String aDescription, ITexture[][][] aTextures) { + super(aName, aDescription, aTextures, 1, 1, false); + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "BronzeCompressor.png", "ic2.compressor"); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Compressor_Bronze(this.mName, this.mDescription, this.mTextures); + } + + public int checkRecipe() { + if (null != (this.mOutputItems[0] = GT_ModHandler.getCompressorOutput(getInputAt(0), true, getOutputAt(0)))) { + this.mEUt = 2; + this.mMaxProgresstime = 800; + return 2; + } + return 0; + } + + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) { + return false; + } + return GT_ModHandler.getCompressorOutput(GT_Utility.copyAmount(64L, new Object[]{aStack}), false, null) != null; + } + + public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) { + super.startSoundLoop(aIndex, aX, aY, aZ); + if (aIndex == 1) { + GT_Utility.doSoundAtClient((String) GregTech_API.sSoundList.get(Integer.valueOf(203)), 10, 1.0F, aX, aY, aZ); + } + } + + public void startProcess() { + sendLoopStart((byte) 1); + } + + public ITexture[] getSideFacingActive(byte aColor) { + return new ITexture[]{super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_COMPRESSOR_ACTIVE)}; + } + + public ITexture[] getSideFacingInactive(byte aColor) { + return new ITexture[]{super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_COMPRESSOR)}; + } + + public ITexture[] getFrontFacingActive(byte aColor) { + return new ITexture[]{super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_COMPRESSOR_ACTIVE)}; + } + + public ITexture[] getFrontFacingInactive(byte aColor) { + return new ITexture[]{super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_COMPRESSOR)}; + } + + public ITexture[] getTopFacingActive(byte aColor) { + return new ITexture[]{super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_COMPRESSOR_ACTIVE)}; + } + + public ITexture[] getTopFacingInactive(byte aColor) { + return new ITexture[]{super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_COMPRESSOR)}; + } + + public ITexture[] getBottomFacingActive(byte aColor) { + return new ITexture[]{super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_COMPRESSOR_ACTIVE)}; + } + + public ITexture[] getBottomFacingInactive(byte aColor) { + return new ITexture[]{super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_COMPRESSOR)}; } - } - - public void startProcess() - { - sendLoopStart((byte)1); - } - - public ITexture[] getSideFacingActive(byte aColor) - { - return new ITexture[] { super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_COMPRESSOR_ACTIVE) }; - } - - public ITexture[] getSideFacingInactive(byte aColor) - { - return new ITexture[] { super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_COMPRESSOR) }; - } - - public ITexture[] getFrontFacingActive(byte aColor) - { - return new ITexture[] { super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_COMPRESSOR_ACTIVE) }; - } - - public ITexture[] getFrontFacingInactive(byte aColor) - { - return new ITexture[] { super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_COMPRESSOR) }; - } - - public ITexture[] getTopFacingActive(byte aColor) - { - return new ITexture[] { super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_COMPRESSOR_ACTIVE) }; - } - - public ITexture[] getTopFacingInactive(byte aColor) - { - return new ITexture[] { super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_COMPRESSOR) }; - } - - public ITexture[] getBottomFacingActive(byte aColor) - { - return new ITexture[] { super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_COMPRESSOR_ACTIVE) }; - } - - public ITexture[] getBottomFacingInactive(byte aColor) - { - return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_COMPRESSOR) }; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java index f448e8b4..94917c91 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java @@ -2,7 +2,6 @@ package gregtech.common.tileentities.machines.steam; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.gui.GT_GUIContainer_BasicMachine; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -11,102 +10,83 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachin import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; - -import java.util.Map; - import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; public class GT_MetaTileEntity_Compressor_Steel - extends GT_MetaTileEntity_BasicMachine_Steel -{ - public GT_MetaTileEntity_Compressor_Steel(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional, "Compressing Items", 1, 1, false); - } - - public GT_MetaTileEntity_Compressor_Steel(String aName, String aDescription, ITexture[][][] aTextures) - { - super(aName, aDescription, aTextures, 1, 1, false); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "SteelCompressor.png", "ic2.compressor"); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_Compressor_Steel(this.mName, this.mDescription, this.mTextures); - } - - public int checkRecipe() - { - if (null != (this.mOutputItems[0] = GT_ModHandler.getCompressorOutput(getInputAt(0), true, getOutputAt(0)))) - { - this.mEUt = 6; - this.mMaxProgresstime = 400; - return 2; + extends GT_MetaTileEntity_BasicMachine_Steel { + public GT_MetaTileEntity_Compressor_Steel(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional, "Compressing Items", 1, 1, false); } - return 0; - } - - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) {return false;} - return GT_ModHandler.getCompressorOutput(GT_Utility.copyAmount(64L, new Object[] { aStack }), false, null) != null; - } - - public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) - { - super.startSoundLoop(aIndex, aX, aY, aZ); - if (aIndex == 1) { - GT_Utility.doSoundAtClient((String)GregTech_API.sSoundList.get(Integer.valueOf(203)), 10, 1.0F, aX, aY, aZ); + + public GT_MetaTileEntity_Compressor_Steel(String aName, String aDescription, ITexture[][][] aTextures) { + super(aName, aDescription, aTextures, 1, 1, false); + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "SteelCompressor.png", "ic2.compressor"); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Compressor_Steel(this.mName, this.mDescription, this.mTextures); + } + + public int checkRecipe() { + if (null != (this.mOutputItems[0] = GT_ModHandler.getCompressorOutput(getInputAt(0), true, getOutputAt(0)))) { + this.mEUt = 6; + this.mMaxProgresstime = 400; + return 2; + } + return 0; + } + + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) { + return false; + } + return GT_ModHandler.getCompressorOutput(GT_Utility.copyAmount(64L, new Object[]{aStack}), false, null) != null; + } + + public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) { + super.startSoundLoop(aIndex, aX, aY, aZ); + if (aIndex == 1) { + GT_Utility.doSoundAtClient((String) GregTech_API.sSoundList.get(Integer.valueOf(203)), 10, 1.0F, aX, aY, aZ); + } + } + + public void startProcess() { + sendLoopStart((byte) 1); + } + + public ITexture[] getSideFacingActive(byte aColor) { + return new ITexture[]{super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_COMPRESSOR_ACTIVE)}; + } + + public ITexture[] getSideFacingInactive(byte aColor) { + return new ITexture[]{super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_COMPRESSOR)}; + } + + public ITexture[] getFrontFacingActive(byte aColor) { + return new ITexture[]{super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_COMPRESSOR_ACTIVE)}; + } + + public ITexture[] getFrontFacingInactive(byte aColor) { + return new ITexture[]{super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_COMPRESSOR)}; + } + + public ITexture[] getTopFacingActive(byte aColor) { + return new ITexture[]{super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_COMPRESSOR_ACTIVE)}; + } + + public ITexture[] getTopFacingInactive(byte aColor) { + return new ITexture[]{super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_COMPRESSOR)}; + } + + public ITexture[] getBottomFacingActive(byte aColor) { + return new ITexture[]{super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_COMPRESSOR_ACTIVE)}; + } + + public ITexture[] getBottomFacingInactive(byte aColor) { + return new ITexture[]{super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_COMPRESSOR)}; } - } - - public void startProcess() - { - sendLoopStart((byte)1); - } - - public ITexture[] getSideFacingActive(byte aColor) - { - return new ITexture[] { super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_COMPRESSOR_ACTIVE) }; - } - - public ITexture[] getSideFacingInactive(byte aColor) - { - return new ITexture[] { super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_COMPRESSOR) }; - } - - public ITexture[] getFrontFacingActive(byte aColor) - { - return new ITexture[] { super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_COMPRESSOR_ACTIVE) }; - } - - public ITexture[] getFrontFacingInactive(byte aColor) - { - return new ITexture[] { super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_COMPRESSOR) }; - } - - public ITexture[] getTopFacingActive(byte aColor) - { - return new ITexture[] { super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_COMPRESSOR_ACTIVE) }; - } - - public ITexture[] getTopFacingInactive(byte aColor) - { - return new ITexture[] { super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_COMPRESSOR) }; - } - - public ITexture[] getBottomFacingActive(byte aColor) - { - return new ITexture[] { super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_COMPRESSOR_ACTIVE) }; - } - - public ITexture[] getBottomFacingInactive(byte aColor) - { - return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_COMPRESSOR) }; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java index 03c31a5b..5181c827 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java @@ -2,7 +2,6 @@ package gregtech.common.tileentities.machines.steam; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.gui.GT_GUIContainer_BasicMachine; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -11,102 +10,83 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachin import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; - -import java.util.Map; - import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; public class GT_MetaTileEntity_Extractor_Bronze - extends GT_MetaTileEntity_BasicMachine_Bronze -{ - public GT_MetaTileEntity_Extractor_Bronze(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional, "Extracting your first Rubber", 1, 1, false); - } - - public GT_MetaTileEntity_Extractor_Bronze(String aName, String aDescription, ITexture[][][] aTextures) - { - super(aName, aDescription, aTextures, 1, 1, false); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "BronzeExtractor.png", "ic2.extractor"); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_Extractor_Bronze(this.mName, this.mDescription, this.mTextures); - } - - public int checkRecipe() - { - if (null != (this.mOutputItems[0] = GT_ModHandler.getExtractorOutput(getInputAt(0), true, getOutputAt(0)))) - { - this.mEUt = 2; - this.mMaxProgresstime = 800; - return 2; + extends GT_MetaTileEntity_BasicMachine_Bronze { + public GT_MetaTileEntity_Extractor_Bronze(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional, "Extracting your first Rubber", 1, 1, false); } - return 0; - } - - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) {return false;} - return GT_ModHandler.getExtractorOutput(GT_Utility.copyAmount(64L, new Object[] { aStack }), false, null) != null; - } - - public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) - { - super.startSoundLoop(aIndex, aX, aY, aZ); - if (aIndex == 1) { - GT_Utility.doSoundAtClient((String)GregTech_API.sSoundList.get(Integer.valueOf(200)), 10, 1.0F, aX, aY, aZ); + + public GT_MetaTileEntity_Extractor_Bronze(String aName, String aDescription, ITexture[][][] aTextures) { + super(aName, aDescription, aTextures, 1, 1, false); + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "BronzeExtractor.png", "ic2.extractor"); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Extractor_Bronze(this.mName, this.mDescription, this.mTextures); + } + + public int checkRecipe() { + if (null != (this.mOutputItems[0] = GT_ModHandler.getExtractorOutput(getInputAt(0), true, getOutputAt(0)))) { + this.mEUt = 2; + this.mMaxProgresstime = 800; + return 2; + } + return 0; + } + + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) { + return false; + } + return GT_ModHandler.getExtractorOutput(GT_Utility.copyAmount(64L, new Object[]{aStack}), false, null) != null; + } + + public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) { + super.startSoundLoop(aIndex, aX, aY, aZ); + if (aIndex == 1) { + GT_Utility.doSoundAtClient((String) GregTech_API.sSoundList.get(Integer.valueOf(200)), 10, 1.0F, aX, aY, aZ); + } + } + + public void startProcess() { + sendLoopStart((byte) 1); + } + + public ITexture[] getSideFacingActive(byte aColor) { + return new ITexture[]{super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_EXTRACTOR_ACTIVE)}; + } + + public ITexture[] getSideFacingInactive(byte aColor) { + return new ITexture[]{super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_EXTRACTOR)}; + } + + public ITexture[] getFrontFacingActive(byte aColor) { + return new ITexture[]{super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_EXTRACTOR_ACTIVE)}; + } + + public ITexture[] getFrontFacingInactive(byte aColor) { + return new ITexture[]{super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_EXTRACTOR)}; + } + + public ITexture[] getTopFacingActive(byte aColor) { + return new ITexture[]{super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_EXTRACTOR_ACTIVE)}; + } + + public ITexture[] getTopFacingInactive(byte aColor) { + return new ITexture[]{super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_EXTRACTOR)}; + } + + public ITexture[] getBottomFacingActive(byte aColor) { + return new ITexture[]{super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_EXTRACTOR_ACTIVE)}; + } + + public ITexture[] getBottomFacingInactive(byte aColor) { + return new ITexture[]{super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_EXTRACTOR)}; } - } - - public void startProcess() - { - sendLoopStart((byte)1); - } - - public ITexture[] getSideFacingActive(byte aColor) - { - return new ITexture[] { super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_EXTRACTOR_ACTIVE) }; - } - - public ITexture[] getSideFacingInactive(byte aColor) - { - return new ITexture[] { super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_EXTRACTOR) }; - } - - public ITexture[] getFrontFacingActive(byte aColor) - { - return new ITexture[] { super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_EXTRACTOR_ACTIVE) }; - } - - public ITexture[] getFrontFacingInactive(byte aColor) - { - return new ITexture[] { super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_EXTRACTOR) }; - } - - public ITexture[] getTopFacingActive(byte aColor) - { - return new ITexture[] { super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_EXTRACTOR_ACTIVE) }; - } - - public ITexture[] getTopFacingInactive(byte aColor) - { - return new ITexture[] { super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_EXTRACTOR) }; - } - - public ITexture[] getBottomFacingActive(byte aColor) - { - return new ITexture[] { super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_EXTRACTOR_ACTIVE) }; - } - - public ITexture[] getBottomFacingInactive(byte aColor) - { - return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_EXTRACTOR) }; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java index f30adfc5..db044aea 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java @@ -2,7 +2,6 @@ package gregtech.common.tileentities.machines.steam; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.gui.GT_GUIContainer_BasicMachine; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -11,102 +10,83 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachin import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; - -import java.util.Map; - import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; public class GT_MetaTileEntity_Extractor_Steel - extends GT_MetaTileEntity_BasicMachine_Steel -{ - public GT_MetaTileEntity_Extractor_Steel(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional, "Extracting your first Rubber", 1, 1, false); - } - - public GT_MetaTileEntity_Extractor_Steel(String aName, String aDescription, ITexture[][][] aTextures) - { - super(aName, aDescription, aTextures, 1, 1, false); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "SteelExtractor.png", "ic2.extractor"); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_Extractor_Steel(this.mName, this.mDescription, this.mTextures); - } - - public int checkRecipe() - { - if (null != (this.mOutputItems[0] = GT_ModHandler.getExtractorOutput(getInputAt(0), true, getOutputAt(0)))) - { - this.mEUt = 6; - this.mMaxProgresstime = 400; - return 2; + extends GT_MetaTileEntity_BasicMachine_Steel { + public GT_MetaTileEntity_Extractor_Steel(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional, "Extracting your first Rubber", 1, 1, false); } - return 0; - } - - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) {return false;} - return GT_ModHandler.getExtractorOutput(GT_Utility.copyAmount(64L, new Object[] { aStack }), false, null) != null; - } - - public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) - { - super.startSoundLoop(aIndex, aX, aY, aZ); - if (aIndex == 1) { - GT_Utility.doSoundAtClient((String)GregTech_API.sSoundList.get(Integer.valueOf(200)), 10, 1.0F, aX, aY, aZ); + + public GT_MetaTileEntity_Extractor_Steel(String aName, String aDescription, ITexture[][][] aTextures) { + super(aName, aDescription, aTextures, 1, 1, false); + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "SteelExtractor.png", "ic2.extractor"); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Extractor_Steel(this.mName, this.mDescription, this.mTextures); + } + + public int checkRecipe() { + if (null != (this.mOutputItems[0] = GT_ModHandler.getExtractorOutput(getInputAt(0), true, getOutputAt(0)))) { + this.mEUt = 6; + this.mMaxProgresstime = 400; + return 2; + } + return 0; + } + + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) { + return false; + } + return GT_ModHandler.getExtractorOutput(GT_Utility.copyAmount(64L, new Object[]{aStack}), false, null) != null; + } + + public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) { + super.startSoundLoop(aIndex, aX, aY, aZ); + if (aIndex == 1) { + GT_Utility.doSoundAtClient((String) GregTech_API.sSoundList.get(Integer.valueOf(200)), 10, 1.0F, aX, aY, aZ); + } + } + + public void startProcess() { + sendLoopStart((byte) 1); + } + + public ITexture[] getSideFacingActive(byte aColor) { + return new ITexture[]{super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_EXTRACTOR_ACTIVE)}; + } + + public ITexture[] getSideFacingInactive(byte aColor) { + return new ITexture[]{super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_EXTRACTOR)}; + } + + public ITexture[] getFrontFacingActive(byte aColor) { + return new ITexture[]{super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_EXTRACTOR_ACTIVE)}; + } + + public ITexture[] getFrontFacingInactive(byte aColor) { + return new ITexture[]{super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_EXTRACTOR)}; + } + + public ITexture[] getTopFacingActive(byte aColor) { + return new ITexture[]{super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_EXTRACTOR_ACTIVE)}; + } + + public ITexture[] getTopFacingInactive(byte aColor) { + return new ITexture[]{super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_EXTRACTOR)}; + } + + public ITexture[] getBottomFacingActive(byte aColor) { + return new ITexture[]{super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_EXTRACTOR_ACTIVE)}; + } + + public ITexture[] getBottomFacingInactive(byte aColor) { + return new ITexture[]{super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_EXTRACTOR)}; } - } - - public void startProcess() - { - sendLoopStart((byte)1); - } - - public ITexture[] getSideFacingActive(byte aColor) - { - return new ITexture[] { super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_EXTRACTOR_ACTIVE) }; - } - - public ITexture[] getSideFacingInactive(byte aColor) - { - return new ITexture[] { super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_EXTRACTOR) }; - } - - public ITexture[] getFrontFacingActive(byte aColor) - { - return new ITexture[] { super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_EXTRACTOR_ACTIVE) }; - } - - public ITexture[] getFrontFacingInactive(byte aColor) - { - return new ITexture[] { super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_EXTRACTOR) }; - } - - public ITexture[] getTopFacingActive(byte aColor) - { - return new ITexture[] { super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_EXTRACTOR_ACTIVE) }; - } - - public ITexture[] getTopFacingInactive(byte aColor) - { - return new ITexture[] { super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_EXTRACTOR) }; - } - - public ITexture[] getBottomFacingActive(byte aColor) - { - return new ITexture[] { super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_EXTRACTOR_ACTIVE) }; - } - - public ITexture[] getBottomFacingInactive(byte aColor) - { - return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_EXTRACTOR) }; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java index 8cdaf470..5b0877a3 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java @@ -2,7 +2,6 @@ package gregtech.common.tileentities.machines.steam; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.gui.GT_GUIContainer_BasicMachine; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -10,107 +9,83 @@ import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_Bronze; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; - -import java.util.Map; - import net.minecraft.entity.player.InventoryPlayer; public class GT_MetaTileEntity_ForgeHammer_Bronze - extends GT_MetaTileEntity_BasicMachine_Bronze -{ - public GT_MetaTileEntity_ForgeHammer_Bronze(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional, "Forge Hammer", 1, 1, false); - } - - public GT_MetaTileEntity_ForgeHammer_Bronze(String aName, String aDescription, ITexture[][][] aTextures) - { - super(aName, aDescription, aTextures, 1, 1, false); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_ForgeHammer_Bronze(this.mName, this.mDescription, this.mTextures); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "BronzeHammer.png", GT_Recipe.GT_Recipe_Map.sHammerRecipes.mUnlocalizedName, (byte)6, (byte)3); - } - - public int checkRecipe() - { - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[1], null, getAllInputs()); - if ((tRecipe != null) && (canOutput(tRecipe.mOutputs)) && (tRecipe.isRecipeInputEqual(true, null, getAllInputs()))) - { - this.mOutputItems[0] = tRecipe.getOutput(0); - if (tRecipe.mEUt <= 16) - { - this.mEUt = tRecipe.mEUt; - this.mMaxProgresstime = (tRecipe.mDuration * 2); - } - else - { - this.mEUt = tRecipe.mEUt; - this.mMaxProgresstime = (tRecipe.mDuration * 2); - } - return 2; + extends GT_MetaTileEntity_BasicMachine_Bronze { + public GT_MetaTileEntity_ForgeHammer_Bronze(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional, "Forge Hammer", 1, 1, false); } - return 0; - } - - public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) - { - super.startSoundLoop(aIndex, aX, aY, aZ); - if (aIndex == 1) { - GT_Utility.doSoundAtClient((String)GregTech_API.sSoundList.get(Integer.valueOf(1)), 10, 1.0F, aX, aY, aZ); + + public GT_MetaTileEntity_ForgeHammer_Bronze(String aName, String aDescription, ITexture[][][] aTextures) { + super(aName, aDescription, aTextures, 1, 1, false); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_ForgeHammer_Bronze(this.mName, this.mDescription, this.mTextures); + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "BronzeHammer.png", GT_Recipe.GT_Recipe_Map.sHammerRecipes.mUnlocalizedName, (byte) 6, (byte) 3); + } + + public int checkRecipe() { + GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[1], null, getAllInputs()); + if ((tRecipe != null) && (canOutput(tRecipe.mOutputs)) && (tRecipe.isRecipeInputEqual(true, null, getAllInputs()))) { + this.mOutputItems[0] = tRecipe.getOutput(0); + if (tRecipe.mEUt <= 16) { + this.mEUt = tRecipe.mEUt; + this.mMaxProgresstime = (tRecipe.mDuration * 2); + } else { + this.mEUt = tRecipe.mEUt; + this.mMaxProgresstime = (tRecipe.mDuration * 2); + } + return 2; + } + return 0; + } + + public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) { + super.startSoundLoop(aIndex, aX, aY, aZ); + if (aIndex == 1) { + GT_Utility.doSoundAtClient((String) GregTech_API.sSoundList.get(Integer.valueOf(1)), 10, 1.0F, aX, aY, aZ); + } + } + + public void startProcess() { + sendLoopStart((byte) 1); + } + + public ITexture[] getSideFacingActive(byte aColor) { + return new ITexture[]{super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_HAMMER_ACTIVE)}; + } + + public ITexture[] getSideFacingInactive(byte aColor) { + return new ITexture[]{super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_HAMMER)}; + } + + public ITexture[] getFrontFacingActive(byte aColor) { + return new ITexture[]{super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_HAMMER_ACTIVE)}; + } + + public ITexture[] getFrontFacingInactive(byte aColor) { + return new ITexture[]{super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_HAMMER)}; + } + + public ITexture[] getTopFacingActive(byte aColor) { + return new ITexture[]{super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_HAMMER_ACTIVE)}; + } + + public ITexture[] getTopFacingInactive(byte aColor) { + return new ITexture[]{super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_HAMMER)}; + } + + public ITexture[] getBottomFacingActive(byte aColor) { + return new ITexture[]{super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_HAMMER_ACTIVE)}; + } + + public ITexture[] getBottomFacingInactive(byte aColor) { + return new ITexture[]{super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_HAMMER)}; } - } - - public void startProcess() - { - sendLoopStart((byte)1); - } - - public ITexture[] getSideFacingActive(byte aColor) - { - return new ITexture[] { super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_HAMMER_ACTIVE) }; - } - - public ITexture[] getSideFacingInactive(byte aColor) - { - return new ITexture[] { super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_HAMMER) }; - } - - public ITexture[] getFrontFacingActive(byte aColor) - { - return new ITexture[] { super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_HAMMER_ACTIVE) }; - } - - public ITexture[] getFrontFacingInactive(byte aColor) - { - return new ITexture[] { super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_HAMMER) }; - } - - public ITexture[] getTopFacingActive(byte aColor) - { - return new ITexture[] { super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_HAMMER_ACTIVE) }; - } - - public ITexture[] getTopFacingInactive(byte aColor) - { - return new ITexture[] { super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_HAMMER) }; - } - - public ITexture[] getBottomFacingActive(byte aColor) - { - return new ITexture[] { super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_HAMMER_ACTIVE) }; - } - - public ITexture[] getBottomFacingInactive(byte aColor) - { - return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_HAMMER) }; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java index a8e41598..6d2c7d48 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java @@ -2,7 +2,6 @@ package gregtech.common.tileentities.machines.steam; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.gui.GT_GUIContainer_BasicMachine; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -10,107 +9,83 @@ import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_Steel; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; - -import java.util.Map; - import net.minecraft.entity.player.InventoryPlayer; public class GT_MetaTileEntity_ForgeHammer_Steel - extends GT_MetaTileEntity_BasicMachine_Steel -{ - public GT_MetaTileEntity_ForgeHammer_Steel(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional, "Forge Hammer", 1, 1, false); - } - - public GT_MetaTileEntity_ForgeHammer_Steel(String aName, String aDescription, ITexture[][][] aTextures) - { - super(aName, aDescription, aTextures, 1, 1, false); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_ForgeHammer_Steel(this.mName, this.mDescription, this.mTextures); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "SteelHammer.png", GT_Recipe.GT_Recipe_Map.sHammerRecipes.mUnlocalizedName, (byte)6, (byte)3); - } - - public int checkRecipe() - { - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[2], null, getAllInputs()); - if ((tRecipe != null) && (canOutput(tRecipe.mOutputs)) && (tRecipe.isRecipeInputEqual(true, null, getAllInputs()))) - { - this.mOutputItems[0] = tRecipe.getOutput(0); - if (tRecipe.mEUt <= 16) - { - this.mEUt = (tRecipe.mEUt * 3); - this.mMaxProgresstime = tRecipe.mDuration; - } - else - { - this.mEUt = (tRecipe.mEUt * 3); - this.mMaxProgresstime = tRecipe.mDuration; - } - return 2; + extends GT_MetaTileEntity_BasicMachine_Steel { + public GT_MetaTileEntity_ForgeHammer_Steel(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional, "Forge Hammer", 1, 1, false); } - return 0; - } - - public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) - { - super.startSoundLoop(aIndex, aX, aY, aZ); - if (aIndex == 1) { - GT_Utility.doSoundAtClient((String)GregTech_API.sSoundList.get(Integer.valueOf(1)), 10, 1.0F, aX, aY, aZ); + + public GT_MetaTileEntity_ForgeHammer_Steel(String aName, String aDescription, ITexture[][][] aTextures) { + super(aName, aDescription, aTextures, 1, 1, false); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_ForgeHammer_Steel(this.mName, this.mDescription, this.mTextures); + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "SteelHammer.png", GT_Recipe.GT_Recipe_Map.sHammerRecipes.mUnlocalizedName, (byte) 6, (byte) 3); + } + + public int checkRecipe() { + GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[2], null, getAllInputs()); + if ((tRecipe != null) && (canOutput(tRecipe.mOutputs)) && (tRecipe.isRecipeInputEqual(true, null, getAllInputs()))) { + this.mOutputItems[0] = tRecipe.getOutput(0); + if (tRecipe.mEUt <= 16) { + this.mEUt = (tRecipe.mEUt * 3); + this.mMaxProgresstime = tRecipe.mDuration; + } else { + this.mEUt = (tRecipe.mEUt * 3); + this.mMaxProgresstime = tRecipe.mDuration; + } + return 2; + } + return 0; + } + + public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) { + super.startSoundLoop(aIndex, aX, aY, aZ); + if (aIndex == 1) { + GT_Utility.doSoundAtClient((String) GregTech_API.sSoundList.get(Integer.valueOf(1)), 10, 1.0F, aX, aY, aZ); + } + } + + public void startProcess() { + sendLoopStart((byte) 1); + } + + public ITexture[] getSideFacingActive(byte aColor) { + return new ITexture[]{super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_HAMMER_ACTIVE)}; + } + + public ITexture[] getSideFacingInactive(byte aColor) { + return new ITexture[]{super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_HAMMER)}; + } + + public ITexture[] getFrontFacingActive(byte aColor) { + return new ITexture[]{super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_HAMMER_ACTIVE)}; + } + + public ITexture[] getFrontFacingInactive(byte aColor) { + return new ITexture[]{super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_HAMMER)}; + } + + public ITexture[] getTopFacingActive(byte aColor) { + return new ITexture[]{super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_HAMMER_ACTIVE)}; + } + + public ITexture[] getTopFacingInactive(byte aColor) { + return new ITexture[]{super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_HAMMER)}; + } + + public ITexture[] getBottomFacingActive(byte aColor) { + return new ITexture[]{super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_HAMMER_ACTIVE)}; + } + + public ITexture[] getBottomFacingInactive(byte aColor) { + return new ITexture[]{super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_HAMMER)}; } - } - - public void startProcess() - { - sendLoopStart((byte)1); - } - - public ITexture[] getSideFacingActive(byte aColor) - { - return new ITexture[] { super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_HAMMER_ACTIVE) }; - } - - public ITexture[] getSideFacingInactive(byte aColor) - { - return new ITexture[] { super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_HAMMER) }; - } - - public ITexture[] getFrontFacingActive(byte aColor) - { - return new ITexture[] { super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_HAMMER_ACTIVE) }; - } - - public ITexture[] getFrontFacingInactive(byte aColor) - { - return new ITexture[] { super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_HAMMER) }; - } - - public ITexture[] getTopFacingActive(byte aColor) - { - return new ITexture[] { super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_HAMMER_ACTIVE) }; - } - - public ITexture[] getTopFacingInactive(byte aColor) - { - return new ITexture[] { super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_HAMMER) }; - } - - public ITexture[] getBottomFacingActive(byte aColor) - { - return new ITexture[] { super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_HAMMER_ACTIVE) }; - } - - public ITexture[] getBottomFacingInactive(byte aColor) - { - return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_HAMMER) }; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Bronze.java index 0a4f86fc..1aaeb7f6 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Bronze.java @@ -2,7 +2,6 @@ package gregtech.common.tileentities.machines.steam; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.gui.GT_GUIContainer_BasicMachine; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -11,102 +10,83 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachin import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; - -import java.util.Map; - import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; public class GT_MetaTileEntity_Furnace_Bronze - extends GT_MetaTileEntity_BasicMachine_Bronze -{ - public GT_MetaTileEntity_Furnace_Bronze(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional, "Smelting things with compressed Steam", 1, 1, true); - } - - public GT_MetaTileEntity_Furnace_Bronze(String aName, String aDescription, ITexture[][][] aTextures) - { - super(aName, aDescription, aTextures, 1, 1, true); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "BronzeFurnace.png", "smelting"); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_Furnace_Bronze(this.mName, this.mDescription, this.mTextures); - } - - public int checkRecipe() - { - if (null != (this.mOutputItems[0] = GT_ModHandler.getSmeltingOutput(getInputAt(0), true, getOutputAt(0)))) - { - this.mEUt = 4; - this.mMaxProgresstime = 256; - return 2; + extends GT_MetaTileEntity_BasicMachine_Bronze { + public GT_MetaTileEntity_Furnace_Bronze(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional, "Smelting things with compressed Steam", 1, 1, true); } - return 0; - } - - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) {return false;} - return GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(64L, new Object[] { aStack }), false, null) != null; - } - - public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) - { - super.startSoundLoop(aIndex, aX, aY, aZ); - if (aIndex == 1) { - GT_Utility.doSoundAtClient((String)GregTech_API.sSoundList.get(Integer.valueOf(207)), 10, 1.0F, aX, aY, aZ); + + public GT_MetaTileEntity_Furnace_Bronze(String aName, String aDescription, ITexture[][][] aTextures) { + super(aName, aDescription, aTextures, 1, 1, true); + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "BronzeFurnace.png", "smelting"); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Furnace_Bronze(this.mName, this.mDescription, this.mTextures); + } + + public int checkRecipe() { + if (null != (this.mOutputItems[0] = GT_ModHandler.getSmeltingOutput(getInputAt(0), true, getOutputAt(0)))) { + this.mEUt = 4; + this.mMaxProgresstime = 256; + return 2; + } + return 0; + } + + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) { + return false; + } + return GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(64L, new Object[]{aStack}), false, null) != null; + } + + public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) { + super.startSoundLoop(aIndex, aX, aY, aZ); + if (aIndex == 1) { + GT_Utility.doSoundAtClient((String) GregTech_API.sSoundList.get(Integer.valueOf(207)), 10, 1.0F, aX, aY, aZ); + } + } + + public void startProcess() { + sendLoopStart((byte) 1); + } + + public ITexture[] getSideFacingActive(byte aColor) { + return new ITexture[]{super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_FURNACE_ACTIVE)}; + } + + public ITexture[] getSideFacingInactive(byte aColor) { + return new ITexture[]{super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_FURNACE)}; + } + + public ITexture[] getFrontFacingActive(byte aColor) { + return new ITexture[]{super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_FURNACE_ACTIVE)}; + } + + public ITexture[] getFrontFacingInactive(byte aColor) { + return new ITexture[]{super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_FURNACE)}; + } + + public ITexture[] getTopFacingActive(byte aColor) { + return new ITexture[]{super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_FURNACE_ACTIVE)}; + } + + public ITexture[] getTopFacingInactive(byte aColor) { + return new ITexture[]{super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_FURNACE)}; + } + + public ITexture[] getBottomFacingActive(byte aColor) { + return new ITexture[]{super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_FURNACE_ACTIVE)}; + } + + public ITexture[] getBottomFacingInactive(byte aColor) { + return new ITexture[]{super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_FURNACE)}; } - } - - public void startProcess() - { - sendLoopStart((byte)1); - } - - public ITexture[] getSideFacingActive(byte aColor) - { - return new ITexture[] { super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_FURNACE_ACTIVE) }; - } - - public ITexture[] getSideFacingInactive(byte aColor) - { - return new ITexture[] { super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_FURNACE) }; - } - - public ITexture[] getFrontFacingActive(byte aColor) - { - return new ITexture[] { super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_FURNACE_ACTIVE) }; - } - - public ITexture[] getFrontFacingInactive(byte aColor) - { - return new ITexture[] { super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_FURNACE) }; - } - - public ITexture[] getTopFacingActive(byte aColor) - { - return new ITexture[] { super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_FURNACE_ACTIVE) }; - } - - public ITexture[] getTopFacingInactive(byte aColor) - { - return new ITexture[] { super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_FURNACE) }; - } - - public ITexture[] getBottomFacingActive(byte aColor) - { - return new ITexture[] { super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_FURNACE_ACTIVE) }; - } - - public ITexture[] getBottomFacingInactive(byte aColor) - { - return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_FURNACE) }; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Steel.java index 12b915af..4e79958f 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Steel.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Furnace_Steel.java @@ -2,7 +2,6 @@ package gregtech.common.tileentities.machines.steam; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.gui.GT_GUIContainer_BasicMachine; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -11,102 +10,83 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachin import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; - -import java.util.Map; - import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; public class GT_MetaTileEntity_Furnace_Steel - extends GT_MetaTileEntity_BasicMachine_Steel -{ - public GT_MetaTileEntity_Furnace_Steel(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional, "Smelting things with compressed Steam", 1, 1, true); - } - - public GT_MetaTileEntity_Furnace_Steel(String aName, String aDescription, ITexture[][][] aTextures) - { - super(aName, aDescription, aTextures, 1, 1, true); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "SteelFurnace.png", "smelting"); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_Furnace_Steel(this.mName, this.mDescription, this.mTextures); - } - - public int checkRecipe() - { - if (null != (this.mOutputItems[0] = GT_ModHandler.getSmeltingOutput(getInputAt(0), true, getOutputAt(0)))) - { - this.mEUt = 12; - this.mMaxProgresstime = 128; - return 2; + extends GT_MetaTileEntity_BasicMachine_Steel { + public GT_MetaTileEntity_Furnace_Steel(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional, "Smelting things with compressed Steam", 1, 1, true); } - return 0; - } - - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) {return false;} - return GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(64L, new Object[] { aStack }), false, null) != null; - } - - public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) - { - super.startSoundLoop(aIndex, aX, aY, aZ); - if (aIndex == 1) { - GT_Utility.doSoundAtClient((String)GregTech_API.sSoundList.get(Integer.valueOf(207)), 10, 1.0F, aX, aY, aZ); + + public GT_MetaTileEntity_Furnace_Steel(String aName, String aDescription, ITexture[][][] aTextures) { + super(aName, aDescription, aTextures, 1, 1, true); + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "SteelFurnace.png", "smelting"); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Furnace_Steel(this.mName, this.mDescription, this.mTextures); + } + + public int checkRecipe() { + if (null != (this.mOutputItems[0] = GT_ModHandler.getSmeltingOutput(getInputAt(0), true, getOutputAt(0)))) { + this.mEUt = 12; + this.mMaxProgresstime = 128; + return 2; + } + return 0; + } + + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) { + return false; + } + return GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(64L, new Object[]{aStack}), false, null) != null; + } + + public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) { + super.startSoundLoop(aIndex, aX, aY, aZ); + if (aIndex == 1) { + GT_Utility.doSoundAtClient((String) GregTech_API.sSoundList.get(Integer.valueOf(207)), 10, 1.0F, aX, aY, aZ); + } + } + + public void startProcess() { + sendLoopStart((byte) 1); + } + + public ITexture[] getSideFacingActive(byte aColor) { + return new ITexture[]{super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_FURNACE_ACTIVE)}; + } + + public ITexture[] getSideFacingInactive(byte aColor) { + return new ITexture[]{super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_FURNACE)}; + } + + public ITexture[] getFrontFacingActive(byte aColor) { + return new ITexture[]{super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_FURNACE_ACTIVE)}; + } + + public ITexture[] getFrontFacingInactive(byte aColor) { + return new ITexture[]{super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_FURNACE)}; + } + + public ITexture[] getTopFacingActive(byte aColor) { + return new ITexture[]{super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_FURNACE_ACTIVE)}; + } + + public ITexture[] getTopFacingInactive(byte aColor) { + return new ITexture[]{super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_FURNACE)}; + } + + public ITexture[] getBottomFacingActive(byte aColor) { + return new ITexture[]{super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_FURNACE_ACTIVE)}; + } + + public ITexture[] getBottomFacingInactive(byte aColor) { + return new ITexture[]{super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_FURNACE)}; } - } - - public void startProcess() - { - sendLoopStart((byte)1); - } - - public ITexture[] getSideFacingActive(byte aColor) - { - return new ITexture[] { super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_FURNACE_ACTIVE) }; - } - - public ITexture[] getSideFacingInactive(byte aColor) - { - return new ITexture[] { super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_FURNACE) }; - } - - public ITexture[] getFrontFacingActive(byte aColor) - { - return new ITexture[] { super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_FURNACE_ACTIVE) }; - } - - public ITexture[] getFrontFacingInactive(byte aColor) - { - return new ITexture[] { super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_FURNACE) }; - } - - public ITexture[] getTopFacingActive(byte aColor) - { - return new ITexture[] { super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_FURNACE_ACTIVE) }; - } - - public ITexture[] getTopFacingInactive(byte aColor) - { - return new ITexture[] { super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_FURNACE) }; - } - - public ITexture[] getBottomFacingActive(byte aColor) - { - return new ITexture[] { super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_FURNACE_ACTIVE) }; - } - - public ITexture[] getBottomFacingInactive(byte aColor) - { - return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_FURNACE) }; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Bronze.java index 6a28464e..d88ecb7e 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Bronze.java @@ -1,9 +1,7 @@ package gregtech.common.tileentities.machines.steam; -import static gregtech.api.enums.GT_Values.V; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.gui.GT_GUIContainer_BasicMachine; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -12,121 +10,105 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachin import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; - -import java.util.Map; -import java.util.Random; - +import gregtech.api.util.GT_Utility; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.fluids.FluidStack; + +import java.util.Random; + +import static gregtech.api.enums.GT_Values.V; public class GT_MetaTileEntity_Macerator_Bronze - extends GT_MetaTileEntity_BasicMachine_Bronze -{ - public GT_MetaTileEntity_Macerator_Bronze(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional, "Macerating your Ores", 1, 1, false); - } - - public GT_MetaTileEntity_Macerator_Bronze(String aName, String aDescription, ITexture[][][] aTextures) - { - super(aName, aDescription, aTextures, 1, 1, false); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "BronzeMacerator.png", "ic2.macerator"); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_Macerator_Bronze(this.mName, this.mDescription, this.mTextures); - } - - public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) - { - super.onPreTick(aBaseMetaTileEntity, aTick); - if ((aBaseMetaTileEntity.isClientSide()) && (aBaseMetaTileEntity.isActive()) && (aBaseMetaTileEntity.getFrontFacing() != 1) && (aBaseMetaTileEntity.getCoverIDAtSide((byte)1) == 0) && (!aBaseMetaTileEntity.getOpacityAtSide((byte)1))) - { - Random tRandom = aBaseMetaTileEntity.getWorld().rand; - aBaseMetaTileEntity.getWorld().spawnParticle("smoke", aBaseMetaTileEntity.getXCoord() + 0.8F - tRandom.nextFloat() * 0.6F, aBaseMetaTileEntity.getYCoord() + 0.9F + tRandom.nextFloat() * 0.2F, aBaseMetaTileEntity.getZCoord() + 0.8F - tRandom.nextFloat() * 0.6F, 0.0D, 0.0D, 0.0D); + extends GT_MetaTileEntity_BasicMachine_Bronze { + public GT_MetaTileEntity_Macerator_Bronze(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional, "Macerating your Ores", 1, 1, false); } - } - - public int checkRecipe() - { - GT_Recipe_Map tMap = GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; - if (tMap == null) return DID_NOT_FIND_RECIPE; - GT_Recipe tRecipe = tMap.findRecipe(getBaseMetaTileEntity(), mLastRecipe, false, V[1], null, null, getAllInputs()); - if (tRecipe == null) return DID_NOT_FIND_RECIPE; - if (tRecipe.mCanBeBuffered) mLastRecipe = tRecipe; - if (!canOutput(tRecipe)) {mOutputBlocked++; return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS;} - if(tRecipe.getOutput(0)!=null) mOutputItems[0] = tRecipe.getOutput(0); - this.mEUt = 2; - this.mMaxProgresstime = 800; - getInputAt(0).stackSize-=tRecipe.mInputs[0].stackSize; - return FOUND_AND_SUCCESSFULLY_USED_RECIPE; - } - - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) {return false;} - return GT_ModHandler.getMaceratorOutput(GT_Utility.copyAmount(64L, new Object[] { aStack }), false, null) != null; - } - - public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) - { - super.startSoundLoop(aIndex, aX, aY, aZ); - if (aIndex == 1) { - GT_Utility.doSoundAtClient((String)GregTech_API.sSoundList.get(Integer.valueOf(201)), 10, 1.0F, aX, aY, aZ); + + public GT_MetaTileEntity_Macerator_Bronze(String aName, String aDescription, ITexture[][][] aTextures) { + super(aName, aDescription, aTextures, 1, 1, false); + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "BronzeMacerator.png", "ic2.macerator"); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Macerator_Bronze(this.mName, this.mDescription, this.mTextures); + } + + public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + super.onPreTick(aBaseMetaTileEntity, aTick); + if ((aBaseMetaTileEntity.isClientSide()) && (aBaseMetaTileEntity.isActive()) && (aBaseMetaTileEntity.getFrontFacing() != 1) && (aBaseMetaTileEntity.getCoverIDAtSide((byte) 1) == 0) && (!aBaseMetaTileEntity.getOpacityAtSide((byte) 1))) { + Random tRandom = aBaseMetaTileEntity.getWorld().rand; + aBaseMetaTileEntity.getWorld().spawnParticle("smoke", aBaseMetaTileEntity.getXCoord() + 0.8F - tRandom.nextFloat() * 0.6F, aBaseMetaTileEntity.getYCoord() + 0.9F + tRandom.nextFloat() * 0.2F, aBaseMetaTileEntity.getZCoord() + 0.8F - tRandom.nextFloat() * 0.6F, 0.0D, 0.0D, 0.0D); + } + } + + public int checkRecipe() { + GT_Recipe_Map tMap = GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; + if (tMap == null) return DID_NOT_FIND_RECIPE; + GT_Recipe tRecipe = tMap.findRecipe(getBaseMetaTileEntity(), mLastRecipe, false, V[1], null, null, getAllInputs()); + if (tRecipe == null) return DID_NOT_FIND_RECIPE; + if (tRecipe.mCanBeBuffered) mLastRecipe = tRecipe; + if (!canOutput(tRecipe)) { + mOutputBlocked++; + return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; + } + if (tRecipe.getOutput(0) != null) mOutputItems[0] = tRecipe.getOutput(0); + this.mEUt = 2; + this.mMaxProgresstime = 800; + getInputAt(0).stackSize -= tRecipe.mInputs[0].stackSize; + return FOUND_AND_SUCCESSFULLY_USED_RECIPE; + } + + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) { + return false; + } + return GT_ModHandler.getMaceratorOutput(GT_Utility.copyAmount(64L, new Object[]{aStack}), false, null) != null; + } + + public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) { + super.startSoundLoop(aIndex, aX, aY, aZ); + if (aIndex == 1) { + GT_Utility.doSoundAtClient((String) GregTech_API.sSoundList.get(Integer.valueOf(201)), 10, 1.0F, aX, aY, aZ); + } + } + + public void startProcess() { + sendLoopStart((byte) 1); + } + + public ITexture[] getSideFacingActive(byte aColor) { + return new ITexture[]{super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_MACERATOR_ACTIVE)}; + } + + public ITexture[] getSideFacingInactive(byte aColor) { + return new ITexture[]{super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_MACERATOR)}; + } + + public ITexture[] getFrontFacingActive(byte aColor) { + return new ITexture[]{super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_MACERATOR_ACTIVE)}; + } + + public ITexture[] getFrontFacingInactive(byte aColor) { + return new ITexture[]{super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_MACERATOR)}; + } + + public ITexture[] getTopFacingActive(byte aColor) { + return new ITexture[]{super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_MACERATOR_ACTIVE)}; + } + + public ITexture[] getTopFacingInactive(byte aColor) { + return new ITexture[]{super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_MACERATOR)}; + } + + public ITexture[] getBottomFacingActive(byte aColor) { + return new ITexture[]{super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_MACERATOR_ACTIVE)}; + } + + public ITexture[] getBottomFacingInactive(byte aColor) { + return new ITexture[]{super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_MACERATOR)}; } - } - - public void startProcess() - { - sendLoopStart((byte)1); - } - - public ITexture[] getSideFacingActive(byte aColor) - { - return new ITexture[] { super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_MACERATOR_ACTIVE) }; - } - - public ITexture[] getSideFacingInactive(byte aColor) - { - return new ITexture[] { super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_MACERATOR) }; - } - - public ITexture[] getFrontFacingActive(byte aColor) - { - return new ITexture[] { super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_MACERATOR_ACTIVE) }; - } - - public ITexture[] getFrontFacingInactive(byte aColor) - { - return new ITexture[] { super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_MACERATOR) }; - } - - public ITexture[] getTopFacingActive(byte aColor) - { - return new ITexture[] { super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_MACERATOR_ACTIVE) }; - } - - public ITexture[] getTopFacingInactive(byte aColor) - { - return new ITexture[] { super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_MACERATOR) }; - } - - public ITexture[] getBottomFacingActive(byte aColor) - { - return new ITexture[] { super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_MACERATOR_ACTIVE) }; - } - - public ITexture[] getBottomFacingInactive(byte aColor) - { - return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_MACERATOR) }; - } } diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java index 59b13f6e..41c4046e 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java @@ -1,9 +1,7 @@ package gregtech.common.tileentities.machines.steam; -import static gregtech.api.enums.GT_Values.V; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.gui.GT_GUIContainer_BasicMachine; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -12,120 +10,105 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachin import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; - -import java.util.Map; -import java.util.Random; - +import gregtech.api.util.GT_Utility; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; -import net.minecraft.world.World; + +import java.util.Random; + +import static gregtech.api.enums.GT_Values.V; public class GT_MetaTileEntity_Macerator_Steel - extends GT_MetaTileEntity_BasicMachine_Steel -{ - public GT_MetaTileEntity_Macerator_Steel(int aID, String aName, String aNameRegional) - { - super(aID, aName, aNameRegional, "Macerating your Ores", 1, 1, false); - } - - public GT_MetaTileEntity_Macerator_Steel(String aName, String aDescription, ITexture[][][] aTextures) - { - super(aName, aDescription, aTextures, 1, 1, false); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) - { - return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "SteelMacerator.png", "ic2.macerator"); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_Macerator_Steel(this.mName, this.mDescription, this.mTextures); - } - - public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) - { - super.onPreTick(aBaseMetaTileEntity, aTick); - if ((aBaseMetaTileEntity.isClientSide()) && (aBaseMetaTileEntity.isActive()) && (aBaseMetaTileEntity.getFrontFacing() != 1) && (aBaseMetaTileEntity.getCoverIDAtSide((byte)1) == 0) && (!aBaseMetaTileEntity.getOpacityAtSide((byte)1))) - { - Random tRandom = aBaseMetaTileEntity.getWorld().rand; - aBaseMetaTileEntity.getWorld().spawnParticle("smoke", aBaseMetaTileEntity.getXCoord() + 0.8F - tRandom.nextFloat() * 0.6F, aBaseMetaTileEntity.getYCoord() + 0.9F + tRandom.nextFloat() * 0.2F, aBaseMetaTileEntity.getZCoord() + 0.8F - tRandom.nextFloat() * 0.6F, 0.0D, 0.0D, 0.0D); + extends GT_MetaTileEntity_BasicMachine_Steel { + public GT_MetaTileEntity_Macerator_Steel(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional, "Macerating your Ores", 1, 1, false); } - } - - public int checkRecipe() - { - GT_Recipe_Map tMap = GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; - if (tMap == null) return DID_NOT_FIND_RECIPE; - GT_Recipe tRecipe = tMap.findRecipe(getBaseMetaTileEntity(), mLastRecipe, false, V[1], null, null, getAllInputs()); - if (tRecipe == null) return DID_NOT_FIND_RECIPE; - if (tRecipe.mCanBeBuffered) mLastRecipe = tRecipe; - if (!canOutput(tRecipe)) {mOutputBlocked++; return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS;} - if(tRecipe.getOutput(0)!=null) mOutputItems[0] = tRecipe.getOutput(0); - this.mEUt = 6; - this.mMaxProgresstime = 400; - getInputAt(0).stackSize-=tRecipe.mInputs[0].stackSize; - return FOUND_AND_SUCCESSFULLY_USED_RECIPE; - } - - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) {return false;} - return GT_ModHandler.getMaceratorOutput(GT_Utility.copyAmount(64L, new Object[] { aStack }), false, null) != null; - } - - public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) - { - super.startSoundLoop(aIndex, aX, aY, aZ); - if (aIndex == 1) { - GT_Utility.doSoundAtClient((String)GregTech_API.sSoundList.get(Integer.valueOf(201)), 10, 1.0F, aX, aY, aZ); + + public GT_MetaTileEntity_Macerator_Steel(String aName, String aDescription, ITexture[][][] aTextures) { + super(aName, aDescription, aTextures, 1, 1, false); + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "SteelMacerator.png", "ic2.macerator"); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Macerator_Steel(this.mName, this.mDescription, this.mTextures); + } + + public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + super.onPreTick(aBaseMetaTileEntity, aTick); + if ((aBaseMetaTileEntity.isClientSide()) && (aBaseMetaTileEntity.isActive()) && (aBaseMetaTileEntity.getFrontFacing() != 1) && (aBaseMetaTileEntity.getCoverIDAtSide((byte) 1) == 0) && (!aBaseMetaTileEntity.getOpacityAtSide((byte) 1))) { + Random tRandom = aBaseMetaTileEntity.getWorld().rand; + aBaseMetaTileEntity.getWorld().spawnParticle("smoke", aBaseMetaTileEntity.getXCoord() + 0.8F - tRandom.nextFloat() * 0.6F, aBaseMetaTileEntity.getYCoord() + 0.9F + tRandom.nextFloat() * 0.2F, aBaseMetaTileEntity.getZCoord() + 0.8F - tRandom.nextFloat() * 0.6F, 0.0D, 0.0D, 0.0D); + } + } + + public int checkRecipe() { + GT_Recipe_Map tMap = GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; + if (tMap == null) return DID_NOT_FIND_RECIPE; + GT_Recipe tRecipe = tMap.findRecipe(getBaseMetaTileEntity(), mLastRecipe, false, V[1], null, null, getAllInputs()); + if (tRecipe == null) return DID_NOT_FIND_RECIPE; + if (tRecipe.mCanBeBuffered) mLastRecipe = tRecipe; + if (!canOutput(tRecipe)) { + mOutputBlocked++; + return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; + } + if (tRecipe.getOutput(0) != null) mOutputItems[0] = tRecipe.getOutput(0); + this.mEUt = 6; + this.mMaxProgresstime = 400; + getInputAt(0).stackSize -= tRecipe.mInputs[0].stackSize; + return FOUND_AND_SUCCESSFULLY_USED_RECIPE; + } + + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) { + return false; + } + return GT_ModHandler.getMaceratorOutput(GT_Utility.copyAmount(64L, new Object[]{aStack}), false, null) != null; + } + + public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) { + super.startSoundLoop(aIndex, aX, aY, aZ); + if (aIndex == 1) { + GT_Utility.doSoundAtClient((String) GregTech_API.sSoundList.get(Integer.valueOf(201)), 10, 1.0F, aX, aY, aZ); + } + } + + public void startProcess() { + sendLoopStart((byte) 1); + } + + public ITexture[] getSideFacingActive(byte aColor) { + return new ITexture[]{super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_MACERATOR_ACTIVE)}; + } + + public ITexture[] getSideFacingInactive(byte aColor) { + return new ITexture[]{super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_MACERATOR)}; + } + + public ITexture[] getFrontFacingActive(byte aColor) { + return new ITexture[]{super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_MACERATOR_ACTIVE)}; + } + + public ITexture[] getFrontFacingInactive(byte aColor) { + return new ITexture[]{super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_MACERATOR)}; + } + + public ITexture[] getTopFacingActive(byte aColor) { + return new ITexture[]{super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_MACERATOR_ACTIVE)}; + } + + public ITexture[] getTopFacingInactive(byte aColor) { + return new ITexture[]{super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_MACERATOR)}; + } + + public ITexture[] getBottomFacingActive(byte aColor) { + return new ITexture[]{super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_MACERATOR_ACTIVE)}; + } + + public ITexture[] getBottomFacingInactive(byte aColor) { + return new ITexture[]{super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_MACERATOR)}; } - } - - public void startProcess() - { - sendLoopStart((byte)1); - } - - public ITexture[] getSideFacingActive(byte aColor) - { - return new ITexture[] { super.getSideFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_MACERATOR_ACTIVE) }; - } - - public ITexture[] getSideFacingInactive(byte aColor) - { - return new ITexture[] { super.getSideFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_STEAM_MACERATOR) }; - } - - public ITexture[] getFrontFacingActive(byte aColor) - { - return new ITexture[] { super.getFrontFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_MACERATOR_ACTIVE) }; - } - - public ITexture[] getFrontFacingInactive(byte aColor) - { - return new ITexture[] { super.getFrontFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_STEAM_MACERATOR) }; - } - - public ITexture[] getTopFacingActive(byte aColor) - { - return new ITexture[] { super.getTopFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_MACERATOR_ACTIVE) }; - } - - public ITexture[] getTopFacingInactive(byte aColor) - { - return new ITexture[] { super.getTopFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_TOP_STEAM_MACERATOR) }; - } - - public ITexture[] getBottomFacingActive(byte aColor) - { - return new ITexture[] { super.getBottomFacingActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_MACERATOR_ACTIVE) }; - } - - public ITexture[] getBottomFacingInactive(byte aColor) - { - return new ITexture[] { super.getBottomFacingInactive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_STEAM_MACERATOR) }; - } } diff --git a/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_Locker.java b/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_Locker.java index f0beaa45..c9b57fc7 100644 --- a/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_Locker.java +++ b/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_Locker.java @@ -2,7 +2,6 @@ package gregtech.common.tileentities.storage; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -10,188 +9,152 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_TieredMachi import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Utility; - -import java.util.Map; - import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; public class GT_MetaTileEntity_Locker - extends GT_MetaTileEntity_TieredMachineBlock -{ - public byte mType = 0; - - public GT_MetaTileEntity_Locker(int aID, String aName, String aNameRegional, int aTier) - { - super(aID, aName, aNameRegional, aTier, 4, "Stores and recharges Armor", new ITexture[0]); - } - - public GT_MetaTileEntity_Locker(String aName, int aTier, String aDescription, ITexture[][][] aTextures) - { - super(aName, aTier, 4, aDescription, aTextures); - } - - public String[] getDescription() - { - return new String[] { this.mDescription, "Click with Screwdriver to change Style" }; - } - - public ITexture[][][] getTextureSet(ITexture[] aTextures) - { - ITexture[][][] rTextures = new ITexture[3][17][]; - for (byte i = -1; i < 16; i = (byte)(i + 1)) - {ITexture[] tmp0 ={ Textures.BlockIcons.MACHINE_CASINGS[this.mTier][(i + 1)] }; - rTextures[0][(i + 1)] = tmp0; - ITexture[] tmp1 ={ Textures.BlockIcons.MACHINE_CASINGS[this.mTier][(i + 1)], Textures.BlockIcons.OVERLAYS_ENERGY_IN[this.mTier] }; -rTextures[1][(i + 1)] = tmp1; - ITexture[] tmp2 = { Textures.BlockIcons.MACHINE_CASINGS[this.mTier][(i + 1)], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_LOCKER) }; -rTextures[2][(i + 1)] =tmp2; + extends GT_MetaTileEntity_TieredMachineBlock { + public byte mType = 0; + + public GT_MetaTileEntity_Locker(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 4, "Stores and recharges Armor", new ITexture[0]); } - return rTextures; - } - - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) - { - if (aSide == aFacing) { - return new ITexture[] { this.mTextures[2][(aColorIndex + 1)][0], this.mTextures[2][(aColorIndex + 1)][1], Textures.BlockIcons.LOCKERS[java.lang.Math.abs(this.mType % Textures.BlockIcons.LOCKERS.length)] }; + + public GT_MetaTileEntity_Locker(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 4, aDescription, aTextures); } - return this.mTextures[0][(aColorIndex + 1)]; - } - - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) - { - return new GT_MetaTileEntity_Locker(this.mName, this.mTier, this.mDescription, this.mTextures); - } - - public boolean isSimpleMachine() - { - return false; - } - - public boolean isElectric() - { - return true; - } - - public boolean isValidSlot(int aIndex) - { - return true; - } - - public boolean isFacingValid(byte aFacing) - { - return aFacing > 1; - } - - public boolean isEnetInput() - { - return true; - } - - public boolean isInputFacing(byte aSide) - { - return aSide == getBaseMetaTileEntity().getBackFacing(); - } - - public boolean isTeleporterCompatible() - { - return false; - } - - public long maxEUStore() - { - return gregtech.api.enums.GT_Values.V[this.mTier] * maxAmperesIn(); - } - - public long maxEUInput() - { - return gregtech.api.enums.GT_Values.V[this.mTier]; - } - - public long maxAmperesIn() - { - return this.mInventory.length * 2; - } - - public int rechargerSlotStartIndex() - { - return 0; - } - - public int rechargerSlotCount() - { - return getBaseMetaTileEntity().isAllowedToWork() ? this.mInventory.length : 0; - } - - public boolean isAccessAllowed(EntityPlayer aPlayer) - { - return true; - } - - public void saveNBTData(NBTTagCompound aNBT) - { - aNBT.setByte("mType", this.mType); - } - - public void loadNBTData(NBTTagCompound aNBT) - { - this.mType = aNBT.getByte("mType"); - } - - public void onValueUpdate(byte aValue) - { - this.mType = aValue; - } - - public byte getUpdateData() - { - return this.mType; - } - - public void doSound(byte aIndex, double aX, double aY, double aZ) - { - if (aIndex == 16) { - GT_Utility.doSoundAtClient((String)GregTech_API.sSoundList.get(Integer.valueOf(3)), 1, 1.0F); + + public String[] getDescription() { + return new String[]{this.mDescription, "Click with Screwdriver to change Style"}; } - } - - public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) - { - if (aSide == getBaseMetaTileEntity().getFrontFacing()) { - this.mType = ((byte)(this.mType + 1)); + + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + ITexture[][][] rTextures = new ITexture[3][17][]; + for (byte i = -1; i < 16; i = (byte) (i + 1)) { + ITexture[] tmp0 = {Textures.BlockIcons.MACHINE_CASINGS[this.mTier][(i + 1)]}; + rTextures[0][(i + 1)] = tmp0; + ITexture[] tmp1 = {Textures.BlockIcons.MACHINE_CASINGS[this.mTier][(i + 1)], Textures.BlockIcons.OVERLAYS_ENERGY_IN[this.mTier]}; + rTextures[1][(i + 1)] = tmp1; + ITexture[] tmp2 = {Textures.BlockIcons.MACHINE_CASINGS[this.mTier][(i + 1)], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_LOCKER)}; + rTextures[2][(i + 1)] = tmp2; + } + return rTextures; } - } - - public boolean allowCoverOnSide(byte aSide, GT_ItemStack aStack) - { - return aSide != getBaseMetaTileEntity().getFrontFacing(); - } - - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) - { - if ((aBaseMetaTileEntity.isServerSide()) && (aSide == aBaseMetaTileEntity.getFrontFacing())) - { - for (int i = 0; i < 4; i++) - { - ItemStack tSwapStack = this.mInventory[i]; - this.mInventory[i] = aPlayer.inventory.armorInventory[i]; - aPlayer.inventory.armorInventory[i] = tSwapStack; - } - aPlayer.inventoryContainer.detectAndSendChanges(); - sendSound((byte)16); + + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + if (aSide == aFacing) { + return new ITexture[]{this.mTextures[2][(aColorIndex + 1)][0], this.mTextures[2][(aColorIndex + 1)][1], Textures.BlockIcons.LOCKERS[java.lang.Math.abs(this.mType % Textures.BlockIcons.LOCKERS.length)]}; + } + return this.mTextures[0][(aColorIndex + 1)]; + } + + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Locker(this.mName, this.mTier, this.mDescription, this.mTextures); + } + + public boolean isSimpleMachine() { + return false; + } + + public boolean isElectric() { + return true; + } + + public boolean isValidSlot(int aIndex) { + return true; + } + + public boolean isFacingValid(byte aFacing) { + return aFacing > 1; + } + + public boolean isEnetInput() { + return true; + } + + public boolean isInputFacing(byte aSide) { + return aSide == getBaseMetaTileEntity().getBackFacing(); + } + + public boolean isTeleporterCompatible() { + return false; + } + + public long maxEUStore() { + return gregtech.api.enums.GT_Values.V[this.mTier] * maxAmperesIn(); + } + + public long maxEUInput() { + return gregtech.api.enums.GT_Values.V[this.mTier]; + } + + public long maxAmperesIn() { + return this.mInventory.length * 2; + } + + public int rechargerSlotStartIndex() { + return 0; + } + + public int rechargerSlotCount() { + return getBaseMetaTileEntity().isAllowedToWork() ? this.mInventory.length : 0; + } + + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + public void saveNBTData(NBTTagCompound aNBT) { + aNBT.setByte("mType", this.mType); + } + + public void loadNBTData(NBTTagCompound aNBT) { + this.mType = aNBT.getByte("mType"); + } + + public void onValueUpdate(byte aValue) { + this.mType = aValue; + } + + public byte getUpdateData() { + return this.mType; + } + + public void doSound(byte aIndex, double aX, double aY, double aZ) { + if (aIndex == 16) { + GT_Utility.doSoundAtClient((String) GregTech_API.sSoundList.get(Integer.valueOf(3)), 1, 1.0F); + } + } + + public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { + if (aSide == getBaseMetaTileEntity().getFrontFacing()) { + this.mType = ((byte) (this.mType + 1)); + } + } + + public boolean allowCoverOnSide(byte aSide, GT_ItemStack aStack) { + return aSide != getBaseMetaTileEntity().getFrontFacing(); + } + + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) { + if ((aBaseMetaTileEntity.isServerSide()) && (aSide == aBaseMetaTileEntity.getFrontFacing())) { + for (int i = 0; i < 4; i++) { + ItemStack tSwapStack = this.mInventory[i]; + this.mInventory[i] = aPlayer.inventory.armorInventory[i]; + aPlayer.inventory.armorInventory[i] = tSwapStack; + } + aPlayer.inventoryContainer.detectAndSendChanges(); + sendSound((byte) 16); + } + return true; + } + + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return false; + } + + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return false; } - return true; - } - - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - return false; - } - - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) - { - return false; - } } diff --git a/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumChest.java b/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumChest.java index 08428153..a05ca2ba 100644 --- a/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumChest.java +++ b/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumChest.java @@ -1,63 +1,62 @@ package gregtech.common.tileentities.storage; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import gregtech.api.enums.Textures; -import gregtech.api.gui.GT_ContainerMetaTile_Machine; -import gregtech.api.gui.GT_Container_1by1; -import gregtech.api.gui.GT_Container_2by2; -import gregtech.api.gui.GT_Container_3by3; -import gregtech.api.gui.GT_Container_4by4; -import gregtech.api.gui.GT_Container_BasicTank; -import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; -import gregtech.api.gui.GT_GUIContainer_1by1; -import gregtech.api.gui.GT_GUIContainer_2by2; -import gregtech.api.gui.GT_GUIContainer_3by3; -import gregtech.api.gui.GT_GUIContainer_4by4; -import gregtech.api.gui.GT_GUIContainer_BasicTank; import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_TieredMachineBlock; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Utility; import gregtech.common.gui.GT_Container_QuantumChest; import gregtech.common.gui.GT_GUIContainer_QuantumChest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; -public class GT_MetaTileEntity_QuantumChest extends GT_MetaTileEntity_TieredMachineBlock{ - public GT_MetaTileEntity_QuantumChest(int aID, String aName, String aNameRegional, int aTier) { - super(aID, aName, aNameRegional, aTier, 3, "This Chest stores "+((int)((Math.pow(6, aTier))*270000))+" Blocks"); - } - +public class GT_MetaTileEntity_QuantumChest extends GT_MetaTileEntity_TieredMachineBlock { + public int mItemCount = 0; + public ItemStack mItemStack = null; + public GT_MetaTileEntity_QuantumChest(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 3, "This Chest stores " + ((int) ((Math.pow(6, aTier)) * 270000)) + " Blocks"); + } + + public GT_MetaTileEntity_QuantumChest(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 3, aDescription, aTextures); + } + + @Override + public boolean isSimpleMachine() { + return true; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return true; + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + @Override + public boolean isValidSlot(int aIndex) { + return true; + } + + @Override + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_QuantumChest(mName, mTier, mDescription, mTextures); + } + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + if (aBaseMetaTileEntity.isClientSide()) return true; + aBaseMetaTileEntity.openGUI(aPlayer); + return true; + } - public int mItemCount = 0; - public ItemStack mItemStack = null; - - public GT_MetaTileEntity_QuantumChest(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { - super(aName, aTier, 3, aDescription, aTextures); - } - - @Override public boolean isSimpleMachine() {return true;} - @Override public boolean isFacingValid(byte aFacing) {return true;} - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - @Override public boolean isValidSlot(int aIndex) {return true;} - - @Override - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_QuantumChest(mName, mTier, mDescription, mTextures); - } - - @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) return true; - aBaseMetaTileEntity.openGUI(aPlayer); - return true; - } - // public void onRightclick(EntityPlayer aPlayer) // { // ItemStack tPlayerItem = aPlayer.inventory.getCurrentItem(); @@ -95,143 +94,133 @@ public class GT_MetaTileEntity_QuantumChest extends GT_MetaTileEntity_TieredMach // aPlayer.field_71069_bz.func_75142_b(); // } // } - - @Override + + @Override public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_Container_QuantumChest(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override + return new GT_Container_QuantumChest(aPlayerInventory, aBaseMetaTileEntity); + } + + @Override public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_QuantumChest(aPlayerInventory, aBaseMetaTileEntity, getLocalName()); - } - - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) { + return new GT_GUIContainer_QuantumChest(aPlayerInventory, aBaseMetaTileEntity, getLocalName()); + } - if (getBaseMetaTileEntity().isServerSide()&& getBaseMetaTileEntity().isAllowedToWork()) - { - if ((getItemCount() <= 0) ){ - this.mItemStack = null; - this.mItemCount = 0; - } - if (this.mItemStack == null&&this.mInventory[0]!=null) - { - this.mItemStack = mInventory[0].copy(); - } - if ((this.mInventory[0]!=null)&&(this.mItemCount < getMaxItemCount()) && GT_Utility.areStacksEqual(this.mInventory[0],this.mItemStack)) - { - this.mItemCount += this.mInventory[0].stackSize; - if (this.mItemCount > getMaxItemCount()) - { - this.mInventory[0].stackSize = (this.mItemCount - getMaxItemCount()); - this.mItemCount = getMaxItemCount(); - } - else - { - this.mInventory[0] = null; - } - } - if (this.mInventory[1] == null&&mItemStack!=null) - { - this.mInventory[1] = mItemStack.copy(); - this.mInventory[1].stackSize = Math.min(mItemStack.getMaxStackSize(), this.mItemCount); - this.mItemCount -= this.mInventory[1].stackSize; - } - else if ((this.mItemCount > 0) && GT_Utility.areStacksEqual(this.mInventory[1],this.mItemStack)&&this.mInventory[1].getMaxStackSize()>this.mInventory[1].stackSize) - { - int tmp = Math.min(this.mItemCount, this.mInventory[1].getMaxStackSize()-this.mInventory[1].stackSize); - this.mInventory[1].stackSize += tmp; - this.mItemCount -= tmp; - } - if(this.mItemStack!=null){ - this.mInventory[2]= this.mItemStack.copy(); - }else{this.mInventory[2]=null;} - } - } - - private int getItemCount() - { - return this.mItemCount; - } - - public int getProgresstime() - { - return this.mItemCount + (this.mInventory[0] == null ? 0 : this.mInventory[0].stackSize) + (this.mInventory[1] == null ? 0 : this.mInventory[1].stackSize); - } - - public int maxProgresstime() - { - return getMaxItemCount(); - } - - public int getMaxItemCount() - { - return (int) (((Math.pow(6, mTier))*270000) - 128); - } - - public void setItemCount(int aCount) - { - this.mItemCount = aCount; - } - - @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return true; - } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return true; - } - - @Override - public String[] getInfoData() { - - if(mItemStack==null){ - return new String[]{ - "Quantum Chest", - "Stored Items:", - "No Items", - Integer.toString(0), - Integer.toString(getMaxItemCount())}; - } - return new String[] { - "Quantum Chest", - "Stored Items:", - mItemStack.getDisplayName(), - Integer.toString(mItemCount), - Integer.toString(getMaxItemCount())}; - } - - @Override - public boolean isGivingInformation() { - return true; - } + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) { - @Override - public void saveNBTData(NBTTagCompound aNBT) { - aNBT.setInteger("mItemCount", this.mItemCount); - if(this.mItemStack!=null) - aNBT.setTag("mItemStack", this.mItemStack.writeToNBT(new NBTTagCompound())); - } + if (getBaseMetaTileEntity().isServerSide() && getBaseMetaTileEntity().isAllowedToWork()) { + if ((getItemCount() <= 0)) { + this.mItemStack = null; + this.mItemCount = 0; + } + if (this.mItemStack == null && this.mInventory[0] != null) { + this.mItemStack = mInventory[0].copy(); + } + if ((this.mInventory[0] != null) && (this.mItemCount < getMaxItemCount()) && GT_Utility.areStacksEqual(this.mInventory[0], this.mItemStack)) { + this.mItemCount += this.mInventory[0].stackSize; + if (this.mItemCount > getMaxItemCount()) { + this.mInventory[0].stackSize = (this.mItemCount - getMaxItemCount()); + this.mItemCount = getMaxItemCount(); + } else { + this.mInventory[0] = null; + } + } + if (this.mInventory[1] == null && mItemStack != null) { + this.mInventory[1] = mItemStack.copy(); + this.mInventory[1].stackSize = Math.min(mItemStack.getMaxStackSize(), this.mItemCount); + this.mItemCount -= this.mInventory[1].stackSize; + } else if ((this.mItemCount > 0) && GT_Utility.areStacksEqual(this.mInventory[1], this.mItemStack) && this.mInventory[1].getMaxStackSize() > this.mInventory[1].stackSize) { + int tmp = Math.min(this.mItemCount, this.mInventory[1].getMaxStackSize() - this.mInventory[1].stackSize); + this.mInventory[1].stackSize += tmp; + this.mItemCount -= tmp; + } + if (this.mItemStack != null) { + this.mInventory[2] = this.mItemStack.copy(); + } else { + this.mInventory[2] = null; + } + } + } - @Override - public void loadNBTData(NBTTagCompound aNBT) { - if(aNBT.hasKey("mItemCount")) - this.mItemCount = aNBT.getInteger("mItemCount"); - if(aNBT.hasKey("mItemStack")) - this.mItemStack = ItemStack.loadItemStackFromNBT((NBTTagCompound) aNBT.getTag("mItemStack")); - } + private int getItemCount() { + return this.mItemCount; + } - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity,byte aSide, byte aFacing, byte aColorIndex, boolean aActive,boolean aRedstone) { - if(aBaseMetaTileEntity.getFrontFacing()==0&&aSide==4){return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex+1],new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_QCHEST)}; } - return aSide == aBaseMetaTileEntity.getFrontFacing() ? new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex+1],new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_QCHEST)} :new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex+1]};//aSide != aFacing ? mMachineBlock != 0 ? new ITexture[] {Textures.BlockIcons.CASING_BLOCKS[mMachineBlock]} : new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex+1]} : mMachineBlock != 0 ? aActive ? getTexturesActive(Textures.BlockIcons.CASING_BLOCKS[mMachineBlock]) : getTexturesInactive(Textures.BlockIcons.CASING_BLOCKS[mMachineBlock]) : aActive ? getTexturesActive(Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex+1]) : getTexturesInactive(Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex+1]); - } + public void setItemCount(int aCount) { + this.mItemCount = aCount; + } - @Override - public ITexture[][][] getTextureSet(ITexture[] aTextures) { - return new ITexture[0][0][0]; - } + public int getProgresstime() { + return this.mItemCount + (this.mInventory[0] == null ? 0 : this.mInventory[0].stackSize) + (this.mInventory[1] == null ? 0 : this.mInventory[1].stackSize); + } + + public int maxProgresstime() { + return getMaxItemCount(); + } + + public int getMaxItemCount() { + return (int) (((Math.pow(6, mTier)) * 270000) - 128); + } + + @Override + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return true; + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return true; + } + + @Override + public String[] getInfoData() { + + if (mItemStack == null) { + return new String[]{ + "Quantum Chest", + "Stored Items:", + "No Items", + Integer.toString(0), + Integer.toString(getMaxItemCount())}; + } + return new String[]{ + "Quantum Chest", + "Stored Items:", + mItemStack.getDisplayName(), + Integer.toString(mItemCount), + Integer.toString(getMaxItemCount())}; + } + + @Override + public boolean isGivingInformation() { + return true; + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + aNBT.setInteger("mItemCount", this.mItemCount); + if (this.mItemStack != null) + aNBT.setTag("mItemStack", this.mItemStack.writeToNBT(new NBTTagCompound())); + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + if (aNBT.hasKey("mItemCount")) + this.mItemCount = aNBT.getInteger("mItemCount"); + if (aNBT.hasKey("mItemStack")) + this.mItemStack = ItemStack.loadItemStackFromNBT((NBTTagCompound) aNBT.getTag("mItemStack")); + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + if (aBaseMetaTileEntity.getFrontFacing() == 0 && aSide == 4) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_QCHEST)}; + } + return aSide == aBaseMetaTileEntity.getFrontFacing() ? new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_QCHEST)} : new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1]};//aSide != aFacing ? mMachineBlock != 0 ? new ITexture[] {Textures.BlockIcons.CASING_BLOCKS[mMachineBlock]} : new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex+1]} : mMachineBlock != 0 ? aActive ? getTexturesActive(Textures.BlockIcons.CASING_BLOCKS[mMachineBlock]) : getTexturesInactive(Textures.BlockIcons.CASING_BLOCKS[mMachineBlock]) : aActive ? getTexturesActive(Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex+1]) : getTexturesInactive(Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex+1]); + } + + @Override + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + return new ITexture[0][0][0]; + } } \ No newline at end of file diff --git a/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumTank.java b/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumTank.java index a27feb58..1be8e2ff 100644 --- a/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumTank.java +++ b/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumTank.java @@ -2,128 +2,137 @@ package gregtech.common.tileentities.storage; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.implementations.*; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; import gregtech.api.objects.GT_RenderedTexture; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; public class GT_MetaTileEntity_QuantumTank - extends GT_MetaTileEntity_BasicTank -{ - public GT_MetaTileEntity_QuantumTank(int aID, String aName, String aNameRegional, int aTier) { - super(aID, aName, aNameRegional, aTier, 3, "Stores "+((int)(Math.pow(6, aTier)*267000))+"L of fluid"); - } - - public GT_MetaTileEntity_QuantumTank(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { - super(aName, aTier, 3, aDescription, aTextures); - } - - @Override - public ITexture[][][] getTextureSet(ITexture[] aTextures) { - return new ITexture[0][0][0]; - } + extends GT_MetaTileEntity_BasicTank { + public GT_MetaTileEntity_QuantumTank(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 3, "Stores " + ((int) (Math.pow(6, aTier) * 267000)) + "L of fluid"); + } - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { - return aSide ==1 ? new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex+1],new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_QTANK)} :new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex+1]}; - } - - @Override - public void saveNBTData(NBTTagCompound aNBT) { - super.saveNBTData(aNBT); - } - - @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) return true; - aBaseMetaTileEntity.openGUI(aPlayer); - return true; - } - - @Override public boolean isSimpleMachine() {return true;} - @Override public boolean isFacingValid(byte aFacing) {return true;} - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - - @Override - public void loadNBTData(NBTTagCompound aNBT) { - super.loadNBTData(aNBT); - } - - @Override - public final byte getUpdateData() { - return 0x00; - } - - @Override - public boolean doesFillContainers() { - return true; - } - - @Override - public boolean doesEmptyContainers() { - return true; - } - - @Override - public boolean canTankBeFilled() { - return true; - } - - @Override - public boolean canTankBeEmptied() { - return true; - } - - @Override - public boolean displaysItemStack() { - return true; - } - - @Override - public boolean displaysStackSize() { - return false; - } - - @Override - public String[] getInfoData() { - - if(mFluid==null){ - return new String[]{ - "Quantum Tank", - "Stored Fluid:", - "No Fluid", - Integer.toString(0)+"L", - Integer.toString(getCapacity())+"L"}; - } - return new String[] { - "Quantum Tank", - "Stored Fluid:", - mFluid.getLocalizedName(), - Integer.toString(mFluid.amount)+"L", - Integer.toString(getCapacity())+"L"}; - } - - @Override - public boolean isGivingInformation() { - return true; - } + public GT_MetaTileEntity_QuantumTank(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 3, aDescription, aTextures); + } + + @Override + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + return new ITexture[0][0][0]; + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + return aSide == 1 ? new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_QTANK)} : new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1]}; + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + } + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + if (aBaseMetaTileEntity.isClientSide()) return true; + aBaseMetaTileEntity.openGUI(aPlayer); + return true; + } + + @Override + public boolean isSimpleMachine() { + return true; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return true; + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + } + + @Override + public final byte getUpdateData() { + return 0x00; + } + + @Override + public boolean doesFillContainers() { + return true; + } + + @Override + public boolean doesEmptyContainers() { + return true; + } + + @Override + public boolean canTankBeFilled() { + return true; + } + + @Override + public boolean canTankBeEmptied() { + return true; + } + + @Override + public boolean displaysItemStack() { + return true; + } + + @Override + public boolean displaysStackSize() { + return false; + } + + @Override + public String[] getInfoData() { + + if (mFluid == null) { + return new String[]{ + "Quantum Tank", + "Stored Fluid:", + "No Fluid", + Integer.toString(0) + "L", + Integer.toString(getCapacity()) + "L"}; + } + return new String[]{ + "Quantum Tank", + "Stored Fluid:", + mFluid.getLocalizedName(), + Integer.toString(mFluid.amount) + "L", + Integer.toString(getCapacity()) + "L"}; + } + + @Override + public boolean isGivingInformation() { + return true; + } + + @Override + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_QuantumTank(mName, mTier, mDescription, mTextures); + } + + @Override + public int getCapacity() { + return (int) (Math.pow(6, mTier) * 267000); + } + + @Override + public int getTankPressure() { + return 100; + } - @Override - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_QuantumTank(mName, mTier, mDescription, mTextures); - } - - @Override - public int getCapacity() { - return (int) (Math.pow(6, mTier)*267000); - } - - @Override - public int getTankPressure() { - return 100; - } - } \ No newline at end of file diff --git a/src/main/java/gregtech/common/tools/GT_Tool.java b/src/main/java/gregtech/common/tools/GT_Tool.java index 30995b6d..054aafb4 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool.java +++ b/src/main/java/gregtech/common/tools/GT_Tool.java @@ -4,10 +4,6 @@ import gregtech.api.GregTech_API; import gregtech.api.damagesources.GT_DamageSources; import gregtech.api.interfaces.IToolStats; import gregtech.api.items.GT_MetaGenerated_Tool; - -import java.util.List; -import java.util.Map; - import net.minecraft.block.Block; import net.minecraft.enchantment.Enchantment; import net.minecraft.entity.Entity; @@ -19,152 +15,126 @@ import net.minecraft.util.DamageSource; import net.minecraft.util.EntityDamageSource; import net.minecraft.util.IChatComponent; import net.minecraftforge.event.world.BlockEvent; -import net.minecraftforge.event.world.BlockEvent.HarvestDropsEvent; + +import java.util.List; public abstract class GT_Tool - implements IToolStats -{ - public static final Enchantment[] FORTUNE_ENCHANTMENT = { Enchantment.fortune }; - public static final Enchantment[] LOOTING_ENCHANTMENT = { Enchantment.looting }; - public static final Enchantment[] ZERO_ENCHANTMENTS = new Enchantment[0]; - public static final int[] ZERO_ENCHANTMENT_LEVELS = new int[0]; - - public int getToolDamagePerBlockBreak() - { - return 100; - } - - public int getToolDamagePerDropConversion() - { - return 100; - } - - public int getToolDamagePerContainerCraft() - { - return 800; - } - - public int getToolDamagePerEntityAttack() - { - return 200; - } - - public float getSpeedMultiplier() - { - return 1.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public int getHurtResistanceTime(int aOriginalHurtResistance, Entity aEntity) - { - return aOriginalHurtResistance; - } - - public String getMiningSound() - { - return null; - } - - public String getCraftingSound() - { - return null; - } - - public String getEntityHitSound() - { - return null; - } - - public String getBreakingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public int getBaseQuality() - { - return 0; - } - - public boolean canBlock() - { - return false; - } - - public boolean isCrowbar() - { - return false; - } - - public boolean isGrafter() - { - return false; - } - - public boolean isWeapon() - { - return false; - } - - public boolean isRangedWeapon() - { - return false; - } - - public boolean isMiningTool() - { - return true; - } - - public DamageSource getDamageSource(EntityLivingBase aPlayer, Entity aEntity) - { - return GT_DamageSources.getCombatDamage((aPlayer instanceof EntityPlayer) ? "player" : "mob", aPlayer, (aEntity instanceof EntityLivingBase) ? getDeathMessage(aPlayer, (EntityLivingBase)aEntity) : null); - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new EntityDamageSource((aPlayer instanceof EntityPlayer) ? "player" : "mob", aPlayer).func_151519_b(aEntity); - } - - public int convertBlockDrops(List aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) - { - return 0; - } - - public ItemStack getBrokenItem(ItemStack aStack) - { - return null; - } - - public Enchantment[] getEnchantments(ItemStack aStack) - { - return ZERO_ENCHANTMENTS; - } - - public int[] getEnchantmentLevels(ItemStack aStack) - { - return ZERO_ENCHANTMENT_LEVELS; - } - - public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) - { - aPlayer.triggerAchievement(AchievementList.openInventory); - aPlayer.triggerAchievement(AchievementList.mineWood); - aPlayer.triggerAchievement(AchievementList.buildWorkBench); - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) {} - - public float getNormalDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer) - { - return aOriginalDamage; - } - - public float getMagicDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer) - { - return aOriginalDamage; - } + implements IToolStats { + public static final Enchantment[] FORTUNE_ENCHANTMENT = {Enchantment.fortune}; + public static final Enchantment[] LOOTING_ENCHANTMENT = {Enchantment.looting}; + public static final Enchantment[] ZERO_ENCHANTMENTS = new Enchantment[0]; + public static final int[] ZERO_ENCHANTMENT_LEVELS = new int[0]; + + public int getToolDamagePerBlockBreak() { + return 100; + } + + public int getToolDamagePerDropConversion() { + return 100; + } + + public int getToolDamagePerContainerCraft() { + return 800; + } + + public int getToolDamagePerEntityAttack() { + return 200; + } + + public float getSpeedMultiplier() { + return 1.0F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public int getHurtResistanceTime(int aOriginalHurtResistance, Entity aEntity) { + return aOriginalHurtResistance; + } + + public String getMiningSound() { + return null; + } + + public String getCraftingSound() { + return null; + } + + public String getEntityHitSound() { + return null; + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public int getBaseQuality() { + return 0; + } + + public boolean canBlock() { + return false; + } + + public boolean isCrowbar() { + return false; + } + + public boolean isGrafter() { + return false; + } + + public boolean isWeapon() { + return false; + } + + public boolean isRangedWeapon() { + return false; + } + + public boolean isMiningTool() { + return true; + } + + public DamageSource getDamageSource(EntityLivingBase aPlayer, Entity aEntity) { + return GT_DamageSources.getCombatDamage((aPlayer instanceof EntityPlayer) ? "player" : "mob", aPlayer, (aEntity instanceof EntityLivingBase) ? getDeathMessage(aPlayer, (EntityLivingBase) aEntity) : null); + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new EntityDamageSource((aPlayer instanceof EntityPlayer) ? "player" : "mob", aPlayer).func_151519_b(aEntity); + } + + public int convertBlockDrops(List aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) { + return 0; + } + + public ItemStack getBrokenItem(ItemStack aStack) { + return null; + } + + public Enchantment[] getEnchantments(ItemStack aStack) { + return ZERO_ENCHANTMENTS; + } + + public int[] getEnchantmentLevels(ItemStack aStack) { + return ZERO_ENCHANTMENT_LEVELS; + } + + public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) { + aPlayer.triggerAchievement(AchievementList.openInventory); + aPlayer.triggerAchievement(AchievementList.mineWood); + aPlayer.triggerAchievement(AchievementList.buildWorkBench); + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + } + + public float getNormalDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer) { + return aOriginalDamage; + } + + public float getMagicDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer) { + return aOriginalDamage; + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Axe.java b/src/main/java/gregtech/common/tools/GT_Tool_Axe.java index 28cd415a..f74aeca5 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Axe.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Axe.java @@ -1,14 +1,9 @@ package gregtech.common.tools; import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; - -import java.util.List; -import java.util.Map; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; @@ -17,130 +12,107 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; -import net.minecraft.world.World; import net.minecraftforge.event.world.BlockEvent; -import net.minecraftforge.event.world.BlockEvent.HarvestDropsEvent; + +import java.util.List; public class GT_Tool_Axe - extends GT_Tool -{ - public int getToolDamagePerBlockBreak() - { - return 50; - } - - public int getToolDamagePerDropConversion() - { - return 100; - } - - public int getToolDamagePerContainerCraft() - { - return 100; - } - - public int getToolDamagePerEntityAttack() - { - return 200; - } - - public int getBaseQuality() - { - return 0; - } - - public float getBaseDamage() - { - return 3.0F; - } - - public float getSpeedMultiplier() - { - return 2.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public String getCraftingSound() - { - return null; - } - - public String getEntityHitSound() - { - return null; - } - - public String getBreakingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public String getMiningSound() - { - return null; - } - - public boolean canBlock() - { - return false; - } - - public boolean isCrowbar() - { - return false; - } - - public boolean isWeapon() - { - return true; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - String tTool = aBlock.getHarvestTool(aMetaData); - return ((tTool != null) && (tTool.equals("axe"))) || (aBlock.getMaterial() == Material.wood); - } - - public int convertBlockDrops(List aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) - { - int rAmount = 0; - if ((GregTech_API.sTimber) && (!aPlayer.isSneaking()) && (OrePrefixes.log.contains(new ItemStack(aBlock, 1, aMetaData)))) - { - int tY = aY + 1; - for (int tH = aPlayer.worldObj.getHeight(); tY < tH; tY++) - { - if ((aPlayer.worldObj.getBlock(aX, tY, aZ) != aBlock) || (!aPlayer.worldObj.func_147480_a(aX, tY, aZ, true))) { - break; - } - rAmount++; - } + extends GT_Tool { + public int getToolDamagePerBlockBreak() { + return 50; + } + + public int getToolDamagePerDropConversion() { + return 100; + } + + public int getToolDamagePerContainerCraft() { + return 100; + } + + public int getToolDamagePerEntityAttack() { + return 200; + } + + public int getBaseQuality() { + return 0; + } + + public float getBaseDamage() { + return 3.0F; + } + + public float getSpeedMultiplier() { + return 2.0F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public String getCraftingSound() { + return null; + } + + public String getEntityHitSound() { + return null; + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public String getMiningSound() { + return null; + } + + public boolean canBlock() { + return false; + } + + public boolean isCrowbar() { + return false; + } + + public boolean isWeapon() { + return true; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + String tTool = aBlock.getHarvestTool(aMetaData); + return ((tTool != null) && (tTool.equals("axe"))) || (aBlock.getMaterial() == Material.wood); + } + + public int convertBlockDrops(List aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) { + int rAmount = 0; + if ((GregTech_API.sTimber) && (!aPlayer.isSneaking()) && (OrePrefixes.log.contains(new ItemStack(aBlock, 1, aMetaData)))) { + int tY = aY + 1; + for (int tH = aPlayer.worldObj.getHeight(); tY < tH; tY++) { + if ((aPlayer.worldObj.getBlock(aX, tY, aZ) != aBlock) || (!aPlayer.worldObj.func_147480_a(aX, tY, aZ, true))) { + break; + } + rAmount++; + } + } + return rAmount; + } + + public ItemStack getBrokenItem(ItemStack aStack) { + return null; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[OrePrefixes.toolHeadAxe.mTextureIndex] : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mIconSet.mTextures[OrePrefixes.stick.mTextureIndex]; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been chopped by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } - return rAmount; - } - - public ItemStack getBrokenItem(ItemStack aStack) - { - return null; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[OrePrefixes.toolHeadAxe.mTextureIndex] : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mIconSet.mTextures[OrePrefixes.stick.mTextureIndex]; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) {} - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been chopped by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); - } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_BranchCutter.java b/src/main/java/gregtech/common/tools/GT_Tool_BranchCutter.java index a1e29211..7cefcdfd 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_BranchCutter.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_BranchCutter.java @@ -1,100 +1,77 @@ package gregtech.common.tools; -import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; - -import java.util.List; -import java.util.Random; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; -import net.minecraft.world.World; import net.minecraftforge.event.world.BlockEvent; -import net.minecraftforge.event.world.BlockEvent.HarvestDropsEvent; + +import java.util.List; public class GT_Tool_BranchCutter - extends GT_Tool -{ - public float getBaseDamage() - { - return 2.5F; - } - - public float getSpeedMultiplier() - { - return 0.25F; - } - - public float getMaxDurabilityMultiplier() - { - return 0.25F; - } - - public boolean isGrafter() - { - return true; - } - - public int convertBlockDrops(List aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) - { - if (aBlock.getMaterial() == Material.leaves) - { - aEvent.dropChance = Math.min(1.0F, Math.max(aEvent.dropChance, (aStack.getItem().getHarvestLevel(aStack, "") + 1) * 0.2F)); - if (aBlock == Blocks.leaves) - { - aDrops.clear(); - if (((aMetaData & 0x3) == 0) && (aPlayer.worldObj.rand.nextInt(9) <= aFortune * 2)) { - aDrops.add(new ItemStack(Items.apple, 1, 0)); - } else { - aDrops.add(new ItemStack(Blocks.sapling, 1, aMetaData & 0x3)); - } - } - else if (aBlock == Blocks.leaves2) - { - aDrops.clear(); - aDrops.add(new ItemStack(Blocks.sapling, 1, (aMetaData & 0x3) + 4)); - } - else if (aBlock == GT_Utility.getBlockFromStack(GT_ModHandler.getIC2Item("rubberLeaves", 1L))) - { - aDrops.clear(); - aDrops.add(GT_ModHandler.getIC2Item("rubberSapling", 1L)); - } + extends GT_Tool { + public float getBaseDamage() { + return 2.5F; + } + + public float getSpeedMultiplier() { + return 0.25F; + } + + public float getMaxDurabilityMultiplier() { + return 0.25F; + } + + public boolean isGrafter() { + return true; + } + + public int convertBlockDrops(List aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) { + if (aBlock.getMaterial() == Material.leaves) { + aEvent.dropChance = Math.min(1.0F, Math.max(aEvent.dropChance, (aStack.getItem().getHarvestLevel(aStack, "") + 1) * 0.2F)); + if (aBlock == Blocks.leaves) { + aDrops.clear(); + if (((aMetaData & 0x3) == 0) && (aPlayer.worldObj.rand.nextInt(9) <= aFortune * 2)) { + aDrops.add(new ItemStack(Items.apple, 1, 0)); + } else { + aDrops.add(new ItemStack(Blocks.sapling, 1, aMetaData & 0x3)); + } + } else if (aBlock == Blocks.leaves2) { + aDrops.clear(); + aDrops.add(new ItemStack(Blocks.sapling, 1, (aMetaData & 0x3) + 4)); + } else if (aBlock == GT_Utility.getBlockFromStack(GT_ModHandler.getIC2Item("rubberLeaves", 1L))) { + aDrops.clear(); + aDrops.add(GT_ModHandler.getIC2Item("rubberSapling", 1L)); + } + } + return 0; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + String tTool = aBlock.getHarvestTool(aMetaData); + return ((tTool != null) && (tTool.equals("grafter"))) || (aBlock.getMaterial() == Material.leaves); + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? Textures.ItemIcons.GRAFTER : null; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been trimmed by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } - return 0; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - String tTool = aBlock.getHarvestTool(aMetaData); - return ((tTool != null) && (tTool.equals("grafter"))) || (aBlock.getMaterial() == Material.leaves); - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? Textures.ItemIcons.GRAFTER : null; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been trimmed by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); - } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_ButcheryKnife.java b/src/main/java/gregtech/common/tools/GT_Tool_ButcheryKnife.java index 5c96cbb3..92080795 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_ButcheryKnife.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_ButcheryKnife.java @@ -1,8 +1,6 @@ package gregtech.common.tools; -import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; import net.minecraft.block.Block; @@ -15,85 +13,68 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; public class GT_Tool_ButcheryKnife - extends GT_Tool -{ - public int getToolDamagePerBlockBreak() - { - return 200; - } - - public int getToolDamagePerDropConversion() - { - return 100; - } - - public int getToolDamagePerContainerCraft() - { - return 100; - } - - public int getToolDamagePerEntityAttack() - { - return 400; - } - - public float getBaseDamage() - { - return 1.0F; - } - - public int getHurtResistanceTime(int aOriginalHurtResistance, Entity aEntity) - { - return aOriginalHurtResistance * 2; - } - - public float getSpeedMultiplier() - { - return 0.1F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public boolean isWeapon() - { - return true; - } - - public boolean isMiningTool() - { - return false; - } - - public Enchantment[] getEnchantments(ItemStack aStack) - { - return LOOTING_ENCHANTMENT; - } - - public int[] getEnchantmentLevels(ItemStack aStack) - { - return new int[] { (2 + GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mToolQuality) / 2 }; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? Textures.ItemIcons.BUTCHERYKNIFE : null; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + " has butchered " + EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE); - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - return false; - } + extends GT_Tool { + public int getToolDamagePerBlockBreak() { + return 200; + } + + public int getToolDamagePerDropConversion() { + return 100; + } + + public int getToolDamagePerContainerCraft() { + return 100; + } + + public int getToolDamagePerEntityAttack() { + return 400; + } + + public float getBaseDamage() { + return 1.0F; + } + + public int getHurtResistanceTime(int aOriginalHurtResistance, Entity aEntity) { + return aOriginalHurtResistance * 2; + } + + public float getSpeedMultiplier() { + return 0.1F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public boolean isWeapon() { + return true; + } + + public boolean isMiningTool() { + return false; + } + + public Enchantment[] getEnchantments(ItemStack aStack) { + return LOOTING_ENCHANTMENT; + } + + public int[] getEnchantmentLevels(ItemStack aStack) { + return new int[]{(2 + GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mToolQuality) / 2}; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? Textures.ItemIcons.BUTCHERYKNIFE : null; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + " has butchered " + EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE); + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + return false; + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_BuzzSaw.java b/src/main/java/gregtech/common/tools/GT_Tool_BuzzSaw.java index 1db0c0be..d92baa7f 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_BuzzSaw.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_BuzzSaw.java @@ -1,14 +1,9 @@ package gregtech.common.tools; import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; - -import java.util.Map; - import net.minecraft.block.Block; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; @@ -17,65 +12,52 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; public class GT_Tool_BuzzSaw - extends GT_Tool_Saw -{ - public int getToolDamagePerContainerCraft() - { - return 100; - } - - public int getToolDamagePerEntityAttack() - { - return 300; - } - - public float getBaseDamage() - { - return 1.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public String getCraftingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(104)); - } - - public String getEntityHitSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(105)); - } - - public String getBreakingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public String getMiningSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(104)); - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - return false; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadBuzzSaw.mTextureIndex] : Textures.ItemIcons.HANDLE_BUZZSAW; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got buzzed by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); - } + extends GT_Tool_Saw { + public int getToolDamagePerContainerCraft() { + return 100; + } + + public int getToolDamagePerEntityAttack() { + return 300; + } + + public float getBaseDamage() { + return 1.0F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public String getCraftingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(104)); + } + + public String getEntityHitSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(105)); + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public String getMiningSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(104)); + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + return false; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadBuzzSaw.mTextureIndex] : Textures.ItemIcons.HANDLE_BUZZSAW; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got buzzed by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_HV.java b/src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_HV.java index 0847a6db..d5f86f4b 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_HV.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_HV.java @@ -1,55 +1,44 @@ package gregtech.common.tools; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import net.minecraft.item.ItemStack; public class GT_Tool_Chainsaw_HV - extends GT_Tool_Chainsaw_LV -{ - public int getToolDamagePerBlockBreak() - { - return 800; - } - - public int getToolDamagePerDropConversion() - { - return 1600; - } - - public int getToolDamagePerContainerCraft() - { - return 12800; - } - - public int getToolDamagePerEntityAttack() - { - return 3200; - } - - public int getBaseQuality() - { - return 1; - } - - public float getBaseDamage() - { - return 4.0F; - } - - public float getSpeedMultiplier() - { - return 4.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 4.0F; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? gregtech.api.items.GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadChainsaw.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_HV; - } + extends GT_Tool_Chainsaw_LV { + public int getToolDamagePerBlockBreak() { + return 800; + } + + public int getToolDamagePerDropConversion() { + return 1600; + } + + public int getToolDamagePerContainerCraft() { + return 12800; + } + + public int getToolDamagePerEntityAttack() { + return 3200; + } + + public int getBaseQuality() { + return 1; + } + + public float getBaseDamage() { + return 4.0F; + } + + public float getSpeedMultiplier() { + return 4.0F; + } + + public float getMaxDurabilityMultiplier() { + return 4.0F; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? gregtech.api.items.GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadChainsaw.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_HV; + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_LV.java b/src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_LV.java index 987ec8be..2e32c5ea 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_LV.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_LV.java @@ -2,14 +2,9 @@ package gregtech.common.tools; import gregtech.GT_Mod; import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; - -import java.util.Map; - import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -18,97 +13,81 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; public class GT_Tool_Chainsaw_LV - extends GT_Tool_Saw -{ - public int getToolDamagePerBlockBreak() - { - return 50; - } - - public int getToolDamagePerDropConversion() - { - return 100; - } - - public int getToolDamagePerContainerCraft() - { - return 800; - } - - public int getToolDamagePerEntityAttack() - { - return 200; - } - - public int getBaseQuality() - { - return 0; - } - - public float getBaseDamage() - { - return 3.0F; - } - - public float getSpeedMultiplier() - { - return 2.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public String getCraftingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(104)); - } - - public String getEntityHitSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(105)); - } - - public String getBreakingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public String getMiningSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(104)); - } - - public boolean canBlock() - { - return false; - } - - public boolean isWeapon() - { - return true; - } + extends GT_Tool_Saw { + public int getToolDamagePerBlockBreak() { + return 50; + } - public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) - { - super.onToolCrafted(aStack, aPlayer); - try{GT_Mod.instance.achievements.issueAchievement(aPlayer, "brrrr");}catch(Exception e){} - } + public int getToolDamagePerDropConversion() { + return 100; + } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadChainsaw.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_LV; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " was massacred by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); - } + public int getToolDamagePerContainerCraft() { + return 800; + } + + public int getToolDamagePerEntityAttack() { + return 200; + } + + public int getBaseQuality() { + return 0; + } + + public float getBaseDamage() { + return 3.0F; + } + + public float getSpeedMultiplier() { + return 2.0F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public String getCraftingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(104)); + } + + public String getEntityHitSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(105)); + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public String getMiningSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(104)); + } + + public boolean canBlock() { + return false; + } + + public boolean isWeapon() { + return true; + } + + public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) { + super.onToolCrafted(aStack, aPlayer); + try { + GT_Mod.instance.achievements.issueAchievement(aPlayer, "brrrr"); + } catch (Exception e) { + } + } + + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadChainsaw.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_LV; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " was massacred by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_MV.java b/src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_MV.java index 2c46049a..303420f0 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_MV.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_MV.java @@ -1,55 +1,44 @@ package gregtech.common.tools; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import net.minecraft.item.ItemStack; public class GT_Tool_Chainsaw_MV - extends GT_Tool_Chainsaw_LV -{ - public int getToolDamagePerBlockBreak() - { - return 200; - } - - public int getToolDamagePerDropConversion() - { - return 400; - } - - public int getToolDamagePerContainerCraft() - { - return 3200; - } - - public int getToolDamagePerEntityAttack() - { - return 800; - } - - public int getBaseQuality() - { - return 1; - } - - public float getBaseDamage() - { - return 3.5F; - } - - public float getSpeedMultiplier() - { - return 3.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 2.0F; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? gregtech.api.items.GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadChainsaw.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_MV; - } + extends GT_Tool_Chainsaw_LV { + public int getToolDamagePerBlockBreak() { + return 200; + } + + public int getToolDamagePerDropConversion() { + return 400; + } + + public int getToolDamagePerContainerCraft() { + return 3200; + } + + public int getToolDamagePerEntityAttack() { + return 800; + } + + public int getBaseQuality() { + return 1; + } + + public float getBaseDamage() { + return 3.5F; + } + + public float getSpeedMultiplier() { + return 3.0F; + } + + public float getMaxDurabilityMultiplier() { + return 2.0F; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? gregtech.api.items.GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadChainsaw.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_MV; + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Crowbar.java b/src/main/java/gregtech/common/tools/GT_Tool_Crowbar.java index 87c30b4a..185f34b7 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Crowbar.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Crowbar.java @@ -1,20 +1,12 @@ package gregtech.common.tools; import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.IToolStats; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.common.items.GT_MetaGenerated_Tool_01; import gregtech.common.items.behaviors.Behaviour_Crowbar; - -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; @@ -23,123 +15,103 @@ import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; +import java.util.Iterator; + public class GT_Tool_Crowbar - extends GT_Tool -{ - public int getToolDamagePerBlockBreak() - { - return 50; - } - - public int getToolDamagePerDropConversion() - { - return 100; - } - - public int getToolDamagePerContainerCraft() - { - return 100; - } - - public int getToolDamagePerEntityAttack() - { - return 200; - } - - public int getBaseQuality() - { - return 0; - } - - public float getBaseDamage() - { - return 2.0F; - } - - public float getSpeedMultiplier() - { - return 1.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public String getCraftingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public String getEntityHitSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public String getBreakingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public String getMiningSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public boolean canBlock() - { - return true; - } - - public boolean isCrowbar() - { - return true; - } - - public boolean isWeapon() - { - return true; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - if (aBlock.getMaterial() == Material.circuits) { - return true; + extends GT_Tool { + public int getToolDamagePerBlockBreak() { + return 50; } - String tTool = aBlock.getHarvestTool(aMetaData); - if ((tTool == null) || (tTool.equals(""))) - { - for (Iterator i$ = GT_MetaGenerated_Tool_01.INSTANCE.mToolStats.values().iterator(); i$.hasNext(); i$.next()) - { - if (((i$ instanceof GT_Tool_Crowbar)) && (!((IToolStats)i$).isMinableBlock(aBlock, aMetaData))) {return false;} - } - return true; + + public int getToolDamagePerDropConversion() { + return 100; + } + + public int getToolDamagePerContainerCraft() { + return 100; + } + + public int getToolDamagePerEntityAttack() { + return 200; + } + + public int getBaseQuality() { + return 0; + } + + public float getBaseDamage() { + return 2.0F; + } + + public float getSpeedMultiplier() { + return 1.0F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public String getCraftingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public String getEntityHitSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public String getMiningSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public boolean canBlock() { + return true; + } + + public boolean isCrowbar() { + return true; + } + + public boolean isWeapon() { + return true; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + if (aBlock.getMaterial() == Material.circuits) { + return true; + } + String tTool = aBlock.getHarvestTool(aMetaData); + if ((tTool == null) || (tTool.equals(""))) { + for (Iterator i$ = GT_MetaGenerated_Tool_01.INSTANCE.mToolStats.values().iterator(); i$.hasNext(); i$.next()) { + if (((i$ instanceof GT_Tool_Crowbar)) && (!((IToolStats) i$).isMinableBlock(aBlock, aMetaData))) { + return false; + } + } + return true; + } + return tTool.equals("crowbar"); + } + + public ItemStack getBrokenItem(ItemStack aStack) { + return null; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? Textures.ItemIcons.CROWBAR : null; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : null; + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + aItem.addItemBehavior(aID, new Behaviour_Crowbar(1, 1000)); + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " was removed by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } - return tTool.equals("crowbar"); - } - - public ItemStack getBrokenItem(ItemStack aStack) - { - return null; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? Textures.ItemIcons.CROWBAR : null; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : null; - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) - { - aItem.addItemBehavior(aID, new Behaviour_Crowbar(1, 1000)); - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " was removed by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); - } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Drill_HV.java b/src/main/java/gregtech/common/tools/GT_Tool_Drill_HV.java index 03167c16..d51644f5 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Drill_HV.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Drill_HV.java @@ -2,63 +2,53 @@ package gregtech.common.tools; import gregtech.GT_Mod; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; -import gregtech.common.GT_Proxy; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; public class GT_Tool_Drill_HV - extends GT_Tool_Drill_LV -{ - public int getToolDamagePerBlockBreak() - { - return GT_Mod.gregtechproxy.mHardRock ? 400 : 800; - } - - public int getToolDamagePerDropConversion() - { - return 1600; - } - - public int getToolDamagePerContainerCraft() - { - return 12800; - } - - public int getToolDamagePerEntityAttack() - { - return 3200; - } - - public int getBaseQuality() - { - return 1; - } - - public float getBaseDamage() - { - return 3.0F; - } - - public float getSpeedMultiplier() - { - return 9.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 4.0F; - } + extends GT_Tool_Drill_LV { + public int getToolDamagePerBlockBreak() { + return GT_Mod.gregtechproxy.mHardRock ? 400 : 800; + } - public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) - { - super.onToolCrafted(aStack, aPlayer); - try{GT_Mod.instance.achievements.issueAchievement(aPlayer, "highpowerdrill");}catch(Exception e){} - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? gregtech.api.items.GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadDrill.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_HV; - } + public int getToolDamagePerDropConversion() { + return 1600; + } + + public int getToolDamagePerContainerCraft() { + return 12800; + } + + public int getToolDamagePerEntityAttack() { + return 3200; + } + + public int getBaseQuality() { + return 1; + } + + public float getBaseDamage() { + return 3.0F; + } + + public float getSpeedMultiplier() { + return 9.0F; + } + + public float getMaxDurabilityMultiplier() { + return 4.0F; + } + + public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) { + super.onToolCrafted(aStack, aPlayer); + try { + GT_Mod.instance.achievements.issueAchievement(aPlayer, "highpowerdrill"); + } catch (Exception e) { + } + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? gregtech.api.items.GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadDrill.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_HV; + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Drill_LV.java b/src/main/java/gregtech/common/tools/GT_Tool_Drill_LV.java index 85291094..f8167687 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Drill_LV.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Drill_LV.java @@ -2,15 +2,9 @@ package gregtech.common.tools; import gregtech.GT_Mod; import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; -import gregtech.common.GT_Proxy; - -import java.util.Map; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; @@ -22,111 +16,94 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; public class GT_Tool_Drill_LV - extends GT_Tool -{ - public int getToolDamagePerBlockBreak() - { - return GT_Mod.gregtechproxy.mHardRock ? 25 : 50; - } - - public int getToolDamagePerDropConversion() - { - return 100; - } - - public int getToolDamagePerContainerCraft() - { - return 100; - } - - public int getToolDamagePerEntityAttack() - { - return 200; - } - - public int getBaseQuality() - { - return 0; - } - - public float getBaseDamage() - { - return 2.0F; - } - - public float getSpeedMultiplier() - { - return 3.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public String getCraftingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(106)); - } - - public String getEntityHitSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(106)); - } - - public String getBreakingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(106)); - } - - public String getMiningSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(106)); - } - - public boolean canBlock() - { - return false; - } - - public boolean isCrowbar() - { - return false; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - String tTool = aBlock.getHarvestTool(aMetaData); - return ((tTool != null) && ((tTool.equals("pickaxe")) || (tTool.equals("shovel")))) || (aBlock.getMaterial() == Material.rock) || (aBlock.getMaterial() == Material.iron) || (aBlock.getMaterial() == Material.anvil) || (aBlock.getMaterial() == Material.sand) || (aBlock.getMaterial() == Material.grass) || (aBlock.getMaterial() == Material.ground) || (aBlock.getMaterial() == Material.snow) || (aBlock.getMaterial() == Material.clay) || (aBlock.getMaterial() == Material.glass); - } - - public ItemStack getBrokenItem(ItemStack aStack) - { - return null; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadDrill.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_LV; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) {} - - public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) - { - super.onToolCrafted(aStack, aPlayer); - aPlayer.triggerAchievement(AchievementList.buildPickaxe); - aPlayer.triggerAchievement(AchievementList.buildBetterPickaxe); - try{GT_Mod.instance.achievements.issueAchievement(aPlayer, "driltime");}catch(Exception e){} - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got the Drill! (by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + ")"); - } + extends GT_Tool { + public int getToolDamagePerBlockBreak() { + return GT_Mod.gregtechproxy.mHardRock ? 25 : 50; + } + + public int getToolDamagePerDropConversion() { + return 100; + } + + public int getToolDamagePerContainerCraft() { + return 100; + } + + public int getToolDamagePerEntityAttack() { + return 200; + } + + public int getBaseQuality() { + return 0; + } + + public float getBaseDamage() { + return 2.0F; + } + + public float getSpeedMultiplier() { + return 3.0F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public String getCraftingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(106)); + } + + public String getEntityHitSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(106)); + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(106)); + } + + public String getMiningSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(106)); + } + + public boolean canBlock() { + return false; + } + + public boolean isCrowbar() { + return false; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + String tTool = aBlock.getHarvestTool(aMetaData); + return ((tTool != null) && ((tTool.equals("pickaxe")) || (tTool.equals("shovel")))) || (aBlock.getMaterial() == Material.rock) || (aBlock.getMaterial() == Material.iron) || (aBlock.getMaterial() == Material.anvil) || (aBlock.getMaterial() == Material.sand) || (aBlock.getMaterial() == Material.grass) || (aBlock.getMaterial() == Material.ground) || (aBlock.getMaterial() == Material.snow) || (aBlock.getMaterial() == Material.clay) || (aBlock.getMaterial() == Material.glass); + } + + public ItemStack getBrokenItem(ItemStack aStack) { + return null; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadDrill.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_LV; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + } + + public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) { + super.onToolCrafted(aStack, aPlayer); + aPlayer.triggerAchievement(AchievementList.buildPickaxe); + aPlayer.triggerAchievement(AchievementList.buildBetterPickaxe); + try { + GT_Mod.instance.achievements.issueAchievement(aPlayer, "driltime"); + } catch (Exception e) { + } + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got the Drill! (by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + ")"); + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Drill_MV.java b/src/main/java/gregtech/common/tools/GT_Tool_Drill_MV.java index 4548e463..05c62579 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Drill_MV.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Drill_MV.java @@ -2,56 +2,44 @@ package gregtech.common.tools; import gregtech.GT_Mod; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; -import gregtech.common.GT_Proxy; import net.minecraft.item.ItemStack; public class GT_Tool_Drill_MV - extends GT_Tool_Drill_LV -{ - public int getToolDamagePerBlockBreak() - { - return GT_Mod.gregtechproxy.mHardRock ? 100 : 200; - } - - public int getToolDamagePerDropConversion() - { - return 400; - } - - public int getToolDamagePerContainerCraft() - { - return 3200; - } - - public int getToolDamagePerEntityAttack() - { - return 800; - } - - public int getBaseQuality() - { - return 1; - } - - public float getBaseDamage() - { - return 2.5F; - } - - public float getSpeedMultiplier() - { - return 6.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 2.0F; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? gregtech.api.items.GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadDrill.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_MV; - } + extends GT_Tool_Drill_LV { + public int getToolDamagePerBlockBreak() { + return GT_Mod.gregtechproxy.mHardRock ? 100 : 200; + } + + public int getToolDamagePerDropConversion() { + return 400; + } + + public int getToolDamagePerContainerCraft() { + return 3200; + } + + public int getToolDamagePerEntityAttack() { + return 800; + } + + public int getBaseQuality() { + return 1; + } + + public float getBaseDamage() { + return 2.5F; + } + + public float getSpeedMultiplier() { + return 6.0F; + } + + public float getMaxDurabilityMultiplier() { + return 2.0F; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? gregtech.api.items.GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadDrill.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_MV; + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_File.java b/src/main/java/gregtech/common/tools/GT_Tool_File.java index 29d04f81..5bb07c06 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_File.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_File.java @@ -1,14 +1,9 @@ package gregtech.common.tools; import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; - -import java.util.Map; - import net.minecraft.block.Block; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; @@ -17,108 +12,88 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; public class GT_Tool_File - extends GT_Tool -{ - public int getToolDamagePerBlockBreak() - { - return 50; - } - - public int getToolDamagePerDropConversion() - { - return 100; - } - - public int getToolDamagePerContainerCraft() - { - return 400; - } - - public int getToolDamagePerEntityAttack() - { - return 200; - } - - public int getBaseQuality() - { - return 0; - } - - public float getBaseDamage() - { - return 1.5F; - } - - public float getSpeedMultiplier() - { - return 1.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public String getCraftingSound() - { - return null; - } - - public String getEntityHitSound() - { - return null; - } - - public String getBreakingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public String getMiningSound() - { - return null; - } - - public boolean canBlock() - { - return true; - } - - public boolean isCrowbar() - { - return false; - } - - public boolean isMiningTool() - { - return false; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - String tTool = aBlock.getHarvestTool(aMetaData); - return (tTool != null) && (tTool.equals("file")); - } - - public ItemStack getBrokenItem(ItemStack aStack) - { - return null; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadFile.mTextureIndex] : Textures.ItemIcons.HANDLE_FILE; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) {} - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been filed D for 'Dead' by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); - } + extends GT_Tool { + public int getToolDamagePerBlockBreak() { + return 50; + } + + public int getToolDamagePerDropConversion() { + return 100; + } + + public int getToolDamagePerContainerCraft() { + return 400; + } + + public int getToolDamagePerEntityAttack() { + return 200; + } + + public int getBaseQuality() { + return 0; + } + + public float getBaseDamage() { + return 1.5F; + } + + public float getSpeedMultiplier() { + return 1.0F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public String getCraftingSound() { + return null; + } + + public String getEntityHitSound() { + return null; + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public String getMiningSound() { + return null; + } + + public boolean canBlock() { + return true; + } + + public boolean isCrowbar() { + return false; + } + + public boolean isMiningTool() { + return false; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + String tTool = aBlock.getHarvestTool(aMetaData); + return (tTool != null) && (tTool.equals("file")); + } + + public ItemStack getBrokenItem(ItemStack aStack) { + return null; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadFile.mTextureIndex] : Textures.ItemIcons.HANDLE_FILE; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been filed D for 'Dead' by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_HardHammer.java b/src/main/java/gregtech/common/tools/GT_Tool_HardHammer.java index f7212b9a..cf8186b7 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_HardHammer.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_HardHammer.java @@ -2,18 +2,11 @@ package gregtech.common.tools; import gregtech.GT_Mod; import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; import gregtech.common.items.behaviors.Behaviour_Prospecting; - -import java.util.Arrays; -import java.util.List; -import java.util.Map; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; @@ -21,170 +14,142 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.monster.EntityIronGolem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; -import net.minecraft.stats.AchievementList; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; import net.minecraftforge.event.world.BlockEvent; -import net.minecraftforge.event.world.BlockEvent.HarvestDropsEvent; + +import java.util.Arrays; +import java.util.List; public class GT_Tool_HardHammer - extends GT_Tool -{ - public static final List mEffectiveList = Arrays.asList(new String[] { EntityIronGolem.class.getName(), "EntityTowerGuardian" }); - - public float getNormalDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer) - { - String tName = aEntity.getClass().getName(); - tName = tName.substring(tName.lastIndexOf(".") + 1); - return (mEffectiveList.contains(tName)) || (tName.contains("Golem")) ? aOriginalDamage * 2.0F : aOriginalDamage; - } - - public int getToolDamagePerBlockBreak() - { - return 50; - } - - public int getToolDamagePerDropConversion() - { - return 200; - } - - public int getToolDamagePerContainerCraft() - { - return 400; - } - - public int getToolDamagePerEntityAttack() - { - return 200; - } - - public int getBaseQuality() - { - return 0; - } - - public float getBaseDamage() - { - return 3.0F; - } - - public int getHurtResistanceTime(int aOriginalHurtResistance, Entity aEntity) - { - return aOriginalHurtResistance * 2; - } - - public float getSpeedMultiplier() - { - return 0.75F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public String getCraftingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(1)); - } - - public String getEntityHitSound() - { - return null; - } - - public String getBreakingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(2)); - } - - public String getMiningSound() - { - return null; - } - - public boolean canBlock() - { - return true; - } - - public boolean isCrowbar() - { - return false; - } - - public boolean isWeapon() - { - return true; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - String tTool = aBlock.getHarvestTool(aMetaData); - return ((tTool != null) && ((tTool.equals("hammer")) || (tTool.equals("pickaxe")))) || (aBlock.getMaterial() == Material.rock) || (aBlock.getMaterial() == Material.glass) || (aBlock.getMaterial() == Material.ice) || (aBlock.getMaterial() == Material.packedIce) || (GT_Recipe.GT_Recipe_Map.sHammerRecipes.containsInput(new ItemStack(aBlock, 1, aMetaData))); - } - - public int convertBlockDrops(List aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) - { - int rConversions = 0; - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes.findRecipe(null, true, 2147483647L, null, new ItemStack[] { new ItemStack(aBlock, 1, aMetaData) }); - if ((tRecipe == null) || (aBlock.hasTileEntity(aMetaData))) - { - for (ItemStack tDrop : aDrops) - { - tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes.findRecipe(null, true, 2147483647L, null, new ItemStack[] { GT_Utility.copyAmount(1L, new Object[] { tDrop }) }); - if (tRecipe != null) - { - ItemStack tHammeringOutput = tRecipe.getOutput(0); - if (tHammeringOutput != null) - { - rConversions += tDrop.stackSize; - tDrop.stackSize *= tHammeringOutput.stackSize; - tHammeringOutput.stackSize = tDrop.stackSize; - GT_Utility.setStack(tDrop, tHammeringOutput); - } - } - } - } - else - { - aDrops.clear(); - aDrops.add(tRecipe.getOutput(0)); - rConversions++; - } - return rConversions; - } - - public ItemStack getBrokenItem(ItemStack aStack) - { - return null; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadHammer.mTextureIndex] : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.stick.mTextureIndex]; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) - { - aItem.addItemBehavior(aID, new Behaviour_Prospecting(1, 1000)); - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " was squashed by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); - } + extends GT_Tool { + public static final List mEffectiveList = Arrays.asList(new String[]{EntityIronGolem.class.getName(), "EntityTowerGuardian"}); - public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) - { - super.onToolCrafted(aStack, aPlayer); - try{GT_Mod.instance.achievements.issueAchievement(aPlayer, "tools");}catch(Exception e){} - } + public float getNormalDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer) { + String tName = aEntity.getClass().getName(); + tName = tName.substring(tName.lastIndexOf(".") + 1); + return (mEffectiveList.contains(tName)) || (tName.contains("Golem")) ? aOriginalDamage * 2.0F : aOriginalDamage; + } + + public int getToolDamagePerBlockBreak() { + return 50; + } + + public int getToolDamagePerDropConversion() { + return 200; + } + + public int getToolDamagePerContainerCraft() { + return 400; + } + + public int getToolDamagePerEntityAttack() { + return 200; + } + + public int getBaseQuality() { + return 0; + } + + public float getBaseDamage() { + return 3.0F; + } + + public int getHurtResistanceTime(int aOriginalHurtResistance, Entity aEntity) { + return aOriginalHurtResistance * 2; + } + + public float getSpeedMultiplier() { + return 0.75F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public String getCraftingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(1)); + } + + public String getEntityHitSound() { + return null; + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(2)); + } + + public String getMiningSound() { + return null; + } + + public boolean canBlock() { + return true; + } + + public boolean isCrowbar() { + return false; + } + + public boolean isWeapon() { + return true; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + String tTool = aBlock.getHarvestTool(aMetaData); + return ((tTool != null) && ((tTool.equals("hammer")) || (tTool.equals("pickaxe")))) || (aBlock.getMaterial() == Material.rock) || (aBlock.getMaterial() == Material.glass) || (aBlock.getMaterial() == Material.ice) || (aBlock.getMaterial() == Material.packedIce) || (GT_Recipe.GT_Recipe_Map.sHammerRecipes.containsInput(new ItemStack(aBlock, 1, aMetaData))); + } + + public int convertBlockDrops(List aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) { + int rConversions = 0; + GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes.findRecipe(null, true, 2147483647L, null, new ItemStack[]{new ItemStack(aBlock, 1, aMetaData)}); + if ((tRecipe == null) || (aBlock.hasTileEntity(aMetaData))) { + for (ItemStack tDrop : aDrops) { + tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes.findRecipe(null, true, 2147483647L, null, new ItemStack[]{GT_Utility.copyAmount(1L, new Object[]{tDrop})}); + if (tRecipe != null) { + ItemStack tHammeringOutput = tRecipe.getOutput(0); + if (tHammeringOutput != null) { + rConversions += tDrop.stackSize; + tDrop.stackSize *= tHammeringOutput.stackSize; + tHammeringOutput.stackSize = tDrop.stackSize; + GT_Utility.setStack(tDrop, tHammeringOutput); + } + } + } + } else { + aDrops.clear(); + aDrops.add(tRecipe.getOutput(0)); + rConversions++; + } + return rConversions; + } + + public ItemStack getBrokenItem(ItemStack aStack) { + return null; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadHammer.mTextureIndex] : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.stick.mTextureIndex]; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + aItem.addItemBehavior(aID, new Behaviour_Prospecting(1, 1000)); + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " was squashed by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); + } + + public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) { + super.onToolCrafted(aStack, aPlayer); + try { + GT_Mod.instance.achievements.issueAchievement(aPlayer, "tools"); + } catch (Exception e) { + } + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Hoe.java b/src/main/java/gregtech/common/tools/GT_Tool_Hoe.java index 3e6f4687..7ae5b093 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Hoe.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Hoe.java @@ -1,11 +1,9 @@ package gregtech.common.tools; import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.common.items.behaviors.Behaviour_Hoe; -import java.util.Map; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; @@ -17,112 +15,90 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; public class GT_Tool_Hoe - extends GT_Tool -{ - public int getToolDamagePerBlockBreak() - { - return 50; - } - - public int getToolDamagePerDropConversion() - { - return 100; - } - - public int getToolDamagePerContainerCraft() - { - return 100; - } - - public int getToolDamagePerEntityAttack() - { - return 200; - } - - public int getBaseQuality() - { - return 0; - } - - public float getBaseDamage() - { - return 1.75F; - } - - public float getSpeedMultiplier() - { - return 1.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public String getCraftingSound() - { - return null; - } - - public String getEntityHitSound() - { - return null; - } - - public String getBreakingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public String getMiningSound() - { - return null; - } - - public boolean canBlock() - { - return false; - } - - public boolean isCrowbar() - { - return false; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - String tTool = aBlock.getHarvestTool(aMetaData); - return ((tTool != null) && (tTool.equals("hoe"))) || (aBlock.getMaterial() == Material.gourd); - } - - public ItemStack getBrokenItem(ItemStack aStack) - { - return null; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadHoe.mTextureIndex] : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.stick.mTextureIndex]; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) - { - aItem.addItemBehavior(aID, new Behaviour_Hoe(100)); - } - - public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) - { - super.onToolCrafted(aStack, aPlayer); - aPlayer.triggerAchievement(AchievementList.buildHoe); - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been called a stupid Hoe by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); - } + extends GT_Tool { + public int getToolDamagePerBlockBreak() { + return 50; + } + + public int getToolDamagePerDropConversion() { + return 100; + } + + public int getToolDamagePerContainerCraft() { + return 100; + } + + public int getToolDamagePerEntityAttack() { + return 200; + } + + public int getBaseQuality() { + return 0; + } + + public float getBaseDamage() { + return 1.75F; + } + + public float getSpeedMultiplier() { + return 1.0F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public String getCraftingSound() { + return null; + } + + public String getEntityHitSound() { + return null; + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public String getMiningSound() { + return null; + } + + public boolean canBlock() { + return false; + } + + public boolean isCrowbar() { + return false; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + String tTool = aBlock.getHarvestTool(aMetaData); + return ((tTool != null) && (tTool.equals("hoe"))) || (aBlock.getMaterial() == Material.gourd); + } + + public ItemStack getBrokenItem(ItemStack aStack) { + return null; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadHoe.mTextureIndex] : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.stick.mTextureIndex]; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + aItem.addItemBehavior(aID, new Behaviour_Hoe(100)); + } + + public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) { + super.onToolCrafted(aStack, aPlayer); + aPlayer.triggerAchievement(AchievementList.buildHoe); + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been called a stupid Hoe by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_JackHammer.java b/src/main/java/gregtech/common/tools/GT_Tool_JackHammer.java index 43043f9d..a1ad88c6 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_JackHammer.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_JackHammer.java @@ -2,15 +2,9 @@ package gregtech.common.tools; import gregtech.GT_Mod; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; -import gregtech.common.GT_Proxy; - -import java.util.List; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; @@ -20,102 +14,86 @@ import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; import net.minecraftforge.event.world.BlockEvent; -import net.minecraftforge.event.world.BlockEvent.HarvestDropsEvent; + +import java.util.List; public class GT_Tool_JackHammer - extends GT_Tool_Drill_LV -{ - public int getToolDamagePerBlockBreak() - { - return GT_Mod.gregtechproxy.mHardRock ? 200 : 400; - } - - public int getToolDamagePerDropConversion() - { - return 400; - } - - public int getToolDamagePerContainerCraft() - { - return 3200; - } - - public int getToolDamagePerEntityAttack() - { - return 800; - } - - public int getBaseQuality() - { - return 1; - } - - public float getBaseDamage() - { - return 3.0F; - } - - public float getSpeedMultiplier() - { - return 12.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 2.0F; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - String tTool = aBlock.getHarvestTool(aMetaData); - return ((tTool != null) && (tTool.equals("pickaxe"))) || (aBlock.getMaterial() == Material.rock) || (aBlock.getMaterial() == Material.glass) || (aBlock.getMaterial() == Material.ice) || (aBlock.getMaterial() == Material.packedIce); - } - - public int convertBlockDrops(List aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) - { - int rConversions = 0; - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes.findRecipe(null, true, 2147483647L, null, new ItemStack[] { new ItemStack(aBlock, 1, aMetaData) }); - if ((tRecipe == null) || (aBlock.hasTileEntity(aMetaData))) - { - for (ItemStack tDrop : aDrops) - { - tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes.findRecipe(null, true, 2147483647L, null, new ItemStack[] { GT_Utility.copyAmount(1L, new Object[] { tDrop }) }); - if (tRecipe != null) - { - ItemStack tHammeringOutput = tRecipe.getOutput(0); - if (tHammeringOutput != null) - { - rConversions += tDrop.stackSize; - tDrop.stackSize *= tHammeringOutput.stackSize; - tHammeringOutput.stackSize = tDrop.stackSize; - GT_Utility.setStack(tDrop, tHammeringOutput); - } + extends GT_Tool_Drill_LV { + public int getToolDamagePerBlockBreak() { + return GT_Mod.gregtechproxy.mHardRock ? 200 : 400; + } + + public int getToolDamagePerDropConversion() { + return 400; + } + + public int getToolDamagePerContainerCraft() { + return 3200; + } + + public int getToolDamagePerEntityAttack() { + return 800; + } + + public int getBaseQuality() { + return 1; + } + + public float getBaseDamage() { + return 3.0F; + } + + public float getSpeedMultiplier() { + return 12.0F; + } + + public float getMaxDurabilityMultiplier() { + return 2.0F; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + String tTool = aBlock.getHarvestTool(aMetaData); + return ((tTool != null) && (tTool.equals("pickaxe"))) || (aBlock.getMaterial() == Material.rock) || (aBlock.getMaterial() == Material.glass) || (aBlock.getMaterial() == Material.ice) || (aBlock.getMaterial() == Material.packedIce); + } + + public int convertBlockDrops(List aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) { + int rConversions = 0; + GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes.findRecipe(null, true, 2147483647L, null, new ItemStack[]{new ItemStack(aBlock, 1, aMetaData)}); + if ((tRecipe == null) || (aBlock.hasTileEntity(aMetaData))) { + for (ItemStack tDrop : aDrops) { + tRecipe = GT_Recipe.GT_Recipe_Map.sHammerRecipes.findRecipe(null, true, 2147483647L, null, new ItemStack[]{GT_Utility.copyAmount(1L, new Object[]{tDrop})}); + if (tRecipe != null) { + ItemStack tHammeringOutput = tRecipe.getOutput(0); + if (tHammeringOutput != null) { + rConversions += tDrop.stackSize; + tDrop.stackSize *= tHammeringOutput.stackSize; + tHammeringOutput.stackSize = tDrop.stackSize; + GT_Utility.setStack(tDrop, tHammeringOutput); + } + } + } + } else { + aDrops.clear(); + aDrops.add(tRecipe.getOutput(0)); + rConversions++; } - } + return rConversions; } - else - { - aDrops.clear(); - aDrops.add(tRecipe.getOutput(0)); - rConversions++; + + public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) { + super.onToolCrafted(aStack, aPlayer); + try { + GT_Mod.instance.achievements.issueAchievement(aPlayer, "hammertime"); + } catch (Exception e) { + } } - return rConversions; - } - public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) - { - super.onToolCrafted(aStack, aPlayer); - try{GT_Mod.instance.achievements.issueAchievement(aPlayer, "hammertime");}catch(Exception e){} - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? Textures.ItemIcons.JACKHAMMER : null; - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been jackhammered into pieces by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); - } + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? Textures.ItemIcons.JACKHAMMER : null; + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been jackhammered into pieces by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Knife.java b/src/main/java/gregtech/common/tools/GT_Tool_Knife.java index 962d7e5c..5b46e82b 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Knife.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Knife.java @@ -1,7 +1,6 @@ package gregtech.common.tools; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; @@ -10,50 +9,40 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; public class GT_Tool_Knife - extends GT_Tool_Sword -{ - public int getToolDamagePerBlockBreak() - { - return 100; - } - - public int getToolDamagePerDropConversion() - { - return 100; - } - - public int getToolDamagePerContainerCraft() - { - return 100; - } - - public int getToolDamagePerEntityAttack() - { - return 200; - } - - public float getBaseDamage() - { - return 2.0F; - } - - public float getSpeedMultiplier() - { - return 0.5F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? Textures.ItemIcons.KNIFE : null; - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText("<" + EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + "> " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + " what are you doing?, " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + "?!? STAHP!!!"); - } + extends GT_Tool_Sword { + public int getToolDamagePerBlockBreak() { + return 100; + } + + public int getToolDamagePerDropConversion() { + return 100; + } + + public int getToolDamagePerContainerCraft() { + return 100; + } + + public int getToolDamagePerEntityAttack() { + return 200; + } + + public float getBaseDamage() { + return 2.0F; + } + + public float getSpeedMultiplier() { + return 0.5F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? Textures.ItemIcons.KNIFE : null; + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText("<" + EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + "> " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + " what are you doing?, " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + "?!? STAHP!!!"); + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Mortar.java b/src/main/java/gregtech/common/tools/GT_Tool_Mortar.java index 7284fe22..c569e4b5 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Mortar.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Mortar.java @@ -2,14 +2,9 @@ package gregtech.common.tools; import gregtech.api.GregTech_API; import gregtech.api.enums.Dyes; -import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; - -import java.util.Map; - import net.minecraft.block.Block; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; @@ -18,107 +13,87 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; public class GT_Tool_Mortar - extends GT_Tool -{ - public int getToolDamagePerBlockBreak() - { - return 50; - } - - public int getToolDamagePerDropConversion() - { - return 100; - } - - public int getToolDamagePerContainerCraft() - { - return 400; - } - - public int getToolDamagePerEntityAttack() - { - return 200; - } - - public int getBaseQuality() - { - return 0; - } - - public float getBaseDamage() - { - return 2.0F; - } - - public float getSpeedMultiplier() - { - return 1.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public String getCraftingSound() - { - return null; - } - - public String getEntityHitSound() - { - return null; - } - - public String getBreakingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public String getMiningSound() - { - return null; - } - - public boolean canBlock() - { - return false; - } - - public boolean isCrowbar() - { - return false; - } - - public boolean isMiningTool() - { - return false; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - return false; - } - - public ItemStack getBrokenItem(ItemStack aStack) - { - return null; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? Textures.ItemIcons.MORTAR : null; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : Dyes._NULL.mRGBa; - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) {} - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " was grounded by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); - } + extends GT_Tool { + public int getToolDamagePerBlockBreak() { + return 50; + } + + public int getToolDamagePerDropConversion() { + return 100; + } + + public int getToolDamagePerContainerCraft() { + return 400; + } + + public int getToolDamagePerEntityAttack() { + return 200; + } + + public int getBaseQuality() { + return 0; + } + + public float getBaseDamage() { + return 2.0F; + } + + public float getSpeedMultiplier() { + return 1.0F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public String getCraftingSound() { + return null; + } + + public String getEntityHitSound() { + return null; + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public String getMiningSound() { + return null; + } + + public boolean canBlock() { + return false; + } + + public boolean isCrowbar() { + return false; + } + + public boolean isMiningTool() { + return false; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + return false; + } + + public ItemStack getBrokenItem(ItemStack aStack) { + return null; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? Textures.ItemIcons.MORTAR : null; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : Dyes._NULL.mRGBa; + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " was grounded by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Pickaxe.java b/src/main/java/gregtech/common/tools/GT_Tool_Pickaxe.java index a0bb3271..59fd09aa 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Pickaxe.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Pickaxe.java @@ -2,11 +2,8 @@ package gregtech.common.tools; import gregtech.GT_Mod; import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; -import gregtech.common.GT_Proxy; -import java.util.Map; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; @@ -18,111 +15,94 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; public class GT_Tool_Pickaxe - extends GT_Tool -{ - public int getToolDamagePerBlockBreak() - { - return GT_Mod.gregtechproxy.mHardRock ? 25 : 50; - } - - public int getToolDamagePerDropConversion() - { - return 100; - } - - public int getToolDamagePerContainerCraft() - { - return 100; - } - - public int getToolDamagePerEntityAttack() - { - return 200; - } - - public int getBaseQuality() - { - return 0; - } - - public float getBaseDamage() - { - return 1.5F; - } - - public float getSpeedMultiplier() - { - return 1.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public String getCraftingSound() - { - return null; - } - - public String getEntityHitSound() - { - return null; - } - - public String getBreakingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public String getMiningSound() - { - return null; - } - - public boolean canBlock() - { - return false; - } - - public boolean isCrowbar() - { - return false; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - String tTool = aBlock.getHarvestTool(aMetaData); - return ((tTool != null) && (tTool.equals("pickaxe"))) || (aBlock.getMaterial() == Material.rock) || (aBlock.getMaterial() == Material.iron) || (aBlock.getMaterial() == Material.anvil) || (aBlock.getMaterial() == Material.glass); - } - - public ItemStack getBrokenItem(ItemStack aStack) - { - return null; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadPickaxe.mTextureIndex] : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.stick.mTextureIndex]; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) {} - - public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) - { - super.onToolCrafted(aStack, aPlayer); - aPlayer.triggerAchievement(AchievementList.buildPickaxe); - aPlayer.triggerAchievement(AchievementList.buildBetterPickaxe); - try{GT_Mod.instance.achievements.issueAchievement(aPlayer, "flintpick");}catch(Exception e){} - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got mined by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); - } + extends GT_Tool { + public int getToolDamagePerBlockBreak() { + return GT_Mod.gregtechproxy.mHardRock ? 25 : 50; + } + + public int getToolDamagePerDropConversion() { + return 100; + } + + public int getToolDamagePerContainerCraft() { + return 100; + } + + public int getToolDamagePerEntityAttack() { + return 200; + } + + public int getBaseQuality() { + return 0; + } + + public float getBaseDamage() { + return 1.5F; + } + + public float getSpeedMultiplier() { + return 1.0F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public String getCraftingSound() { + return null; + } + + public String getEntityHitSound() { + return null; + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public String getMiningSound() { + return null; + } + + public boolean canBlock() { + return false; + } + + public boolean isCrowbar() { + return false; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + String tTool = aBlock.getHarvestTool(aMetaData); + return ((tTool != null) && (tTool.equals("pickaxe"))) || (aBlock.getMaterial() == Material.rock) || (aBlock.getMaterial() == Material.iron) || (aBlock.getMaterial() == Material.anvil) || (aBlock.getMaterial() == Material.glass); + } + + public ItemStack getBrokenItem(ItemStack aStack) { + return null; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadPickaxe.mTextureIndex] : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.stick.mTextureIndex]; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + } + + public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) { + super.onToolCrafted(aStack, aPlayer); + aPlayer.triggerAchievement(AchievementList.buildPickaxe); + aPlayer.triggerAchievement(AchievementList.buildBetterPickaxe); + try { + GT_Mod.instance.achievements.issueAchievement(aPlayer, "flintpick"); + } catch (Exception e) { + } + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got mined by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Plow.java b/src/main/java/gregtech/common/tools/GT_Tool_Plow.java index 5f120bf3..a7666d34 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Plow.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Plow.java @@ -1,11 +1,7 @@ package gregtech.common.tools; -import gregtech.api.enums.Materials; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; - -import java.util.List; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; @@ -13,69 +9,58 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.monster.EntitySnowman; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.server.management.ItemInWorldManager; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; -import net.minecraft.world.World; import net.minecraftforge.event.world.BlockEvent; -import net.minecraftforge.event.world.BlockEvent.HarvestDropsEvent; + +import java.util.List; public class GT_Tool_Plow - extends GT_Tool -{ - private ThreadLocal sIsHarvestingRightNow = new ThreadLocal(); - - public float getNormalDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer) - { - return (aEntity instanceof EntitySnowman) ? aOriginalDamage * 4.0F : aOriginalDamage; - } - - public float getBaseDamage() - { - return 1.0F; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - String tTool = aBlock.getHarvestTool(aMetaData); - return ((tTool != null) && (tTool.equals("plow"))) || (aBlock.getMaterial() == Material.snow) || (aBlock.getMaterial() == Material.craftedSnow); - } - - public int convertBlockDrops(List aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) - { - int rConversions = 0; - if ((this.sIsHarvestingRightNow.get() == null) && ((aPlayer instanceof EntityPlayerMP))) - { - this.sIsHarvestingRightNow.set(this); - for (int i = -1; i < 2; i++) { - for (int j = -1; j < 2; j++) { - for (int k = -1; k < 2; k++) { - if (((i != 0) || (j != 0) || (k != 0)) && (aStack.getItem().getDigSpeed(aStack, aPlayer.worldObj.getBlock(aX + i, aY + j, aZ + k), aPlayer.worldObj.getBlockMetadata(aX + i, aY + j, aZ + k)) > 0.0F) && (((EntityPlayerMP)aPlayer).theItemInWorldManager.tryHarvestBlock(aX + i, aY + j, aZ + k))) { - rConversions++; - } - } - } - } - this.sIsHarvestingRightNow.set(null); + extends GT_Tool { + private ThreadLocal sIsHarvestingRightNow = new ThreadLocal(); + + public float getNormalDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer) { + return (aEntity instanceof EntitySnowman) ? aOriginalDamage * 4.0F : aOriginalDamage; + } + + public float getBaseDamage() { + return 1.0F; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + String tTool = aBlock.getHarvestTool(aMetaData); + return ((tTool != null) && (tTool.equals("plow"))) || (aBlock.getMaterial() == Material.snow) || (aBlock.getMaterial() == Material.craftedSnow); + } + + public int convertBlockDrops(List aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) { + int rConversions = 0; + if ((this.sIsHarvestingRightNow.get() == null) && ((aPlayer instanceof EntityPlayerMP))) { + this.sIsHarvestingRightNow.set(this); + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 2; j++) { + for (int k = -1; k < 2; k++) { + if (((i != 0) || (j != 0) || (k != 0)) && (aStack.getItem().getDigSpeed(aStack, aPlayer.worldObj.getBlock(aX + i, aY + j, aZ + k), aPlayer.worldObj.getBlockMetadata(aX + i, aY + j, aZ + k)) > 0.0F) && (((EntityPlayerMP) aPlayer).theItemInWorldManager.tryHarvestBlock(aX + i, aY + j, aZ + k))) { + rConversions++; + } + } + } + } + this.sIsHarvestingRightNow.set(null); + } + return rConversions; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadPlow.mTextureIndex] : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.stick.mTextureIndex]; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + " plew through the yard of " + EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE); } - return rConversions; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadPlow.mTextureIndex] : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.stick.mTextureIndex]; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + " plew through the yard of " + EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE); - } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Plunger.java b/src/main/java/gregtech/common/tools/GT_Tool_Plunger.java index e8f406ee..ba615a39 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Plunger.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Plunger.java @@ -1,18 +1,13 @@ package gregtech.common.tools; import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.IItemBehaviour; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.util.GT_Utility; import gregtech.common.items.behaviors.Behaviour_Plunger_Fluid; import gregtech.common.items.behaviors.Behaviour_Plunger_Item; - -import java.util.Map; - import net.minecraft.block.Block; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; @@ -21,70 +16,57 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; public class GT_Tool_Plunger - extends GT_Tool -{ - public float getBaseDamage() - { - return 1.25F; - } - - public float getMaxDurabilityMultiplier() - { - return 0.25F; - } - - public String getCraftingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(101)); - } - - public String getEntityHitSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(101)); - } - - public String getBreakingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public String getMiningSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(101)); - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - String tTool = aBlock.getHarvestTool(aMetaData); - return (tTool != null) && (tTool.equals("plunger")); - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? Textures.ItemIcons.PLUNGER : null; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) - { - aItem.addItemBehavior(aID, new Behaviour_Plunger_Item(getToolDamagePerDropConversion())); - aItem.addItemBehavior(aID, new Behaviour_Plunger_Fluid(getToolDamagePerDropConversion())); - try - { - Object tObject = GT_Utility.callConstructor("gregtech.common.items.behaviors.Behaviour_Plunger_Essentia", 0, null, false, new Object[] { Integer.valueOf(getToolDamagePerDropConversion()) }); - if ((tObject instanceof IItemBehaviour)) { - aItem.addItemBehavior(aID, (IItemBehaviour)tObject); - } + extends GT_Tool { + public float getBaseDamage() { + return 1.25F; + } + + public float getMaxDurabilityMultiplier() { + return 0.25F; + } + + public String getCraftingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(101)); + } + + public String getEntityHitSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(101)); + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public String getMiningSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(101)); + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + String tTool = aBlock.getHarvestTool(aMetaData); + return (tTool != null) && (tTool.equals("plunger")); + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? Textures.ItemIcons.PLUNGER : null; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + aItem.addItemBehavior(aID, new Behaviour_Plunger_Item(getToolDamagePerDropConversion())); + aItem.addItemBehavior(aID, new Behaviour_Plunger_Fluid(getToolDamagePerDropConversion())); + try { + Object tObject = GT_Utility.callConstructor("gregtech.common.items.behaviors.Behaviour_Plunger_Essentia", 0, null, false, new Object[]{Integer.valueOf(getToolDamagePerDropConversion())}); + if ((tObject instanceof IItemBehaviour)) { + aItem.addItemBehavior(aID, (IItemBehaviour) tObject); + } + } catch (Throwable e) { + } + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got stuck trying to escape through a Pipe while fighting " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } - catch (Throwable e) {} - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got stuck trying to escape through a Pipe while fighting " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); - } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_RollingPin.java b/src/main/java/gregtech/common/tools/GT_Tool_RollingPin.java index 619a6b39..910b58c9 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_RollingPin.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_RollingPin.java @@ -1,9 +1,7 @@ package gregtech.common.tools; import gregtech.api.enums.Dyes; -import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; import net.minecraft.block.Block; @@ -14,52 +12,43 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; public class GT_Tool_RollingPin - extends GT_Tool -{ - public int getToolDamagePerBlockBreak() - { - return 50; - } - - public int getToolDamagePerDropConversion() - { - return 100; - } - - public int getToolDamagePerContainerCraft() - { - return 100; - } - - public int getToolDamagePerEntityAttack() - { - return 200; - } - - public float getBaseDamage() - { - return 2.0F; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - return false; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : Dyes._NULL.mRGBa; - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) {} - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? Textures.ItemIcons.ROLLING_PIN : null; - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got flattened by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); - } + extends GT_Tool { + public int getToolDamagePerBlockBreak() { + return 50; + } + + public int getToolDamagePerDropConversion() { + return 100; + } + + public int getToolDamagePerContainerCraft() { + return 100; + } + + public int getToolDamagePerEntityAttack() { + return 200; + } + + public float getBaseDamage() { + return 2.0F; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + return false; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : Dyes._NULL.mRGBa; + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? Textures.ItemIcons.ROLLING_PIN : null; + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got flattened by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Saw.java b/src/main/java/gregtech/common/tools/GT_Tool_Saw.java index 0a406971..084873eb 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Saw.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Saw.java @@ -1,16 +1,9 @@ package gregtech.common.tools; import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; @@ -20,123 +13,102 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; -import net.minecraft.world.World; import net.minecraftforge.common.IShearable; import net.minecraftforge.event.world.BlockEvent; -import net.minecraftforge.event.world.BlockEvent.HarvestDropsEvent; + +import java.util.ArrayList; +import java.util.List; public class GT_Tool_Saw - extends GT_Tool -{ - public int getToolDamagePerBlockBreak() - { - return 50; - } - - public int getToolDamagePerDropConversion() - { - return 100; - } - - public int getToolDamagePerContainerCraft() - { - return 200; - } - - public int getToolDamagePerEntityAttack() - { - return 200; - } - - public int getBaseQuality() - { - return 0; - } - - public float getBaseDamage() - { - return 1.75F; - } - - public float getSpeedMultiplier() - { - return 1.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public String getCraftingSound() - { - return null; - } - - public String getEntityHitSound() - { - return null; - } - - public String getBreakingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public String getMiningSound() - { - return null; - } - - public int convertBlockDrops(List aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) - { - if ((aBlock.getMaterial() == Material.leaves) && ((aBlock instanceof IShearable))) - { - aPlayer.worldObj.setBlock(aX, aY, aZ, aBlock, aMetaData, 0); - if (((IShearable)aBlock).isShearable(aStack, aPlayer.worldObj, aX, aY, aZ)) - { - ArrayList tDrops = ((IShearable)aBlock).onSheared(aStack, aPlayer.worldObj, aX, aY, aZ, aFortune); - aDrops.clear(); - aDrops.addAll(tDrops); - aEvent.dropChance = 1.0F; - } - aPlayer.worldObj.setBlock(aX, aY, aZ, Blocks.air, 0, 0); + extends GT_Tool { + public int getToolDamagePerBlockBreak() { + return 50; } - else if (((aBlock.getMaterial() == Material.ice) || (aBlock.getMaterial() == Material.packedIce)) && (aDrops.isEmpty())) - { - aDrops.add(new ItemStack(aBlock, 1, aMetaData)); - aPlayer.worldObj.setBlockToAir(aX, aY, aZ); - aEvent.dropChance = 1.0F; - return 1; + + public int getToolDamagePerDropConversion() { + return 100; + } + + public int getToolDamagePerContainerCraft() { + return 200; + } + + public int getToolDamagePerEntityAttack() { + return 200; + } + + public int getBaseQuality() { + return 0; + } + + public float getBaseDamage() { + return 1.75F; + } + + public float getSpeedMultiplier() { + return 1.0F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public String getCraftingSound() { + return null; + } + + public String getEntityHitSound() { + return null; + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public String getMiningSound() { + return null; + } + + public int convertBlockDrops(List aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) { + if ((aBlock.getMaterial() == Material.leaves) && ((aBlock instanceof IShearable))) { + aPlayer.worldObj.setBlock(aX, aY, aZ, aBlock, aMetaData, 0); + if (((IShearable) aBlock).isShearable(aStack, aPlayer.worldObj, aX, aY, aZ)) { + ArrayList tDrops = ((IShearable) aBlock).onSheared(aStack, aPlayer.worldObj, aX, aY, aZ, aFortune); + aDrops.clear(); + aDrops.addAll(tDrops); + aEvent.dropChance = 1.0F; + } + aPlayer.worldObj.setBlock(aX, aY, aZ, Blocks.air, 0, 0); + } else if (((aBlock.getMaterial() == Material.ice) || (aBlock.getMaterial() == Material.packedIce)) && (aDrops.isEmpty())) { + aDrops.add(new ItemStack(aBlock, 1, aMetaData)); + aPlayer.worldObj.setBlockToAir(aX, aY, aZ); + aEvent.dropChance = 1.0F; + return 1; + } + return 0; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + String tTool = aBlock.getHarvestTool(aMetaData); + return ((tTool != null) && ((tTool.equals("axe")) || (tTool.equals("saw")))) || (aBlock.getMaterial() == Material.leaves) || (aBlock.getMaterial() == Material.vine) || (aBlock.getMaterial() == Material.wood) || (aBlock.getMaterial() == Material.cactus) || (aBlock.getMaterial() == Material.ice) || (aBlock.getMaterial() == Material.packedIce); + } + + public ItemStack getBrokenItem(ItemStack aStack) { + return null; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadSaw.mTextureIndex] : Textures.ItemIcons.HANDLE_SAW; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " was getting cut down by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } - return 0; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - String tTool = aBlock.getHarvestTool(aMetaData); - return ((tTool != null) && ((tTool.equals("axe")) || (tTool.equals("saw")))) || (aBlock.getMaterial() == Material.leaves) || (aBlock.getMaterial() == Material.vine) || (aBlock.getMaterial() == Material.wood) || (aBlock.getMaterial() == Material.cactus) || (aBlock.getMaterial() == Material.ice) || (aBlock.getMaterial() == Material.packedIce); - } - - public ItemStack getBrokenItem(ItemStack aStack) - { - return null; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadSaw.mTextureIndex] : Textures.ItemIcons.HANDLE_SAW; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) {} - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " was getting cut down by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); - } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Scoop.java b/src/main/java/gregtech/common/tools/GT_Tool_Scoop.java index 62bb1720..422ca7af 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Scoop.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Scoop.java @@ -1,16 +1,11 @@ package gregtech.common.tools; import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.IItemBehaviour; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.util.GT_Utility; - -import java.util.Map; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; @@ -20,115 +15,93 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; public class GT_Tool_Scoop - extends GT_Tool -{ - public static Material sBeeHiveMaterial; - - public int getToolDamagePerBlockBreak() - { - return 200; - } - - public int getToolDamagePerDropConversion() - { - return 100; - } - - public int getToolDamagePerContainerCraft() - { - return 800; - } - - public int getToolDamagePerEntityAttack() - { - return 200; - } - - public int getBaseQuality() - { - return 0; - } - - public float getBaseDamage() - { - return 1.0F; - } - - public float getSpeedMultiplier() - { - return 1.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public String getCraftingSound() - { - return null; - } - - public String getEntityHitSound() - { - return null; - } - - public String getBreakingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public String getMiningSound() - { - return null; - } - - public boolean canBlock() - { - return false; - } - - public boolean isCrowbar() - { - return false; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - String tTool = aBlock.getHarvestTool(aMetaData); - return ((tTool != null) && (tTool.equals("scoop"))) || (aBlock.getMaterial() == sBeeHiveMaterial); - } - - public ItemStack getBrokenItem(ItemStack aStack) - { - return null; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? Textures.ItemIcons.SCOOP : null; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) - { - try - { - Object tObject = GT_Utility.callConstructor("gregtech.common.items.behaviors.Behaviour_Scoop", 0, null, false, new Object[] { Integer.valueOf(200) }); - if ((tObject instanceof IItemBehaviour)) { - aItem.addItemBehavior(aID, (IItemBehaviour)tObject); - } + extends GT_Tool { + public static Material sBeeHiveMaterial; + + public int getToolDamagePerBlockBreak() { + return 200; + } + + public int getToolDamagePerDropConversion() { + return 100; + } + + public int getToolDamagePerContainerCraft() { + return 800; + } + + public int getToolDamagePerEntityAttack() { + return 200; + } + + public int getBaseQuality() { + return 0; + } + + public float getBaseDamage() { + return 1.0F; + } + + public float getSpeedMultiplier() { + return 1.0F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public String getCraftingSound() { + return null; + } + + public String getEntityHitSound() { + return null; + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public String getMiningSound() { + return null; + } + + public boolean canBlock() { + return false; + } + + public boolean isCrowbar() { + return false; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + String tTool = aBlock.getHarvestTool(aMetaData); + return ((tTool != null) && (tTool.equals("scoop"))) || (aBlock.getMaterial() == sBeeHiveMaterial); + } + + public ItemStack getBrokenItem(ItemStack aStack) { + return null; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? Textures.ItemIcons.SCOOP : null; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + try { + Object tObject = GT_Utility.callConstructor("gregtech.common.items.behaviors.Behaviour_Scoop", 0, null, false, new Object[]{Integer.valueOf(200)}); + if ((tObject instanceof IItemBehaviour)) { + aItem.addItemBehavior(aID, (IItemBehaviour) tObject); + } + } catch (Throwable e) { + } + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got scooped up by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); } - catch (Throwable e) {} - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got scooped up by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); - } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Screwdriver.java b/src/main/java/gregtech/common/tools/GT_Tool_Screwdriver.java index 41e97287..a49459fc 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Screwdriver.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Screwdriver.java @@ -1,17 +1,10 @@ package gregtech.common.tools; import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.common.items.behaviors.Behaviour_Screwdriver; - -import java.util.Arrays; -import java.util.List; -import java.util.Map; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; @@ -24,121 +17,101 @@ import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; +import java.util.Arrays; +import java.util.List; + public class GT_Tool_Screwdriver - extends GT_Tool -{ - public static final List mEffectiveList = Arrays.asList(new String[] { EntityCaveSpider.class.getName(), EntitySpider.class.getName(), "EntityTFHedgeSpider", "EntityTFKingSpider", "EntityTFSwarmSpider", "EntityTFTowerBroodling" }); - - public float getNormalDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer) - { - String tName = aEntity.getClass().getName(); - tName = tName.substring(tName.lastIndexOf(".") + 1); - return mEffectiveList.contains(tName) ? aOriginalDamage * 2.0F : aOriginalDamage; - } - - public int getToolDamagePerBlockBreak() - { - return 200; - } - - public int getToolDamagePerDropConversion() - { - return 100; - } - - public int getToolDamagePerContainerCraft() - { - return 400; - } - - public int getToolDamagePerEntityAttack() - { - return 200; - } - - public int getBaseQuality() - { - return 0; - } - - public float getBaseDamage() - { - return 1.5F; - } - - public float getSpeedMultiplier() - { - return 1.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public String getCraftingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(100)); - } - - public String getEntityHitSound() - { - return null; - } - - public String getBreakingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public String getMiningSound() - { - return null; - } - - public boolean canBlock() - { - return true; - } - - public boolean isCrowbar() - { - return false; - } - - public boolean isMiningTool() - { - return false; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - String tTool = aBlock.getHarvestTool(aMetaData); - return ((tTool != null) && (tTool.equals("screwdriver"))) || (aBlock.getMaterial() == Material.circuits); - } - - public ItemStack getBrokenItem(ItemStack aStack) - { - return null; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadScrewdriver.mTextureIndex] : Textures.ItemIcons.HANDLE_SCREWDRIVER; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) - { - aItem.addItemBehavior(aID, new Behaviour_Screwdriver(1, 200)); - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " is screwed! (by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + ")"); - } + extends GT_Tool { + public static final List mEffectiveList = Arrays.asList(new String[]{EntityCaveSpider.class.getName(), EntitySpider.class.getName(), "EntityTFHedgeSpider", "EntityTFKingSpider", "EntityTFSwarmSpider", "EntityTFTowerBroodling"}); + + public float getNormalDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer) { + String tName = aEntity.getClass().getName(); + tName = tName.substring(tName.lastIndexOf(".") + 1); + return mEffectiveList.contains(tName) ? aOriginalDamage * 2.0F : aOriginalDamage; + } + + public int getToolDamagePerBlockBreak() { + return 200; + } + + public int getToolDamagePerDropConversion() { + return 100; + } + + public int getToolDamagePerContainerCraft() { + return 400; + } + + public int getToolDamagePerEntityAttack() { + return 200; + } + + public int getBaseQuality() { + return 0; + } + + public float getBaseDamage() { + return 1.5F; + } + + public float getSpeedMultiplier() { + return 1.0F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public String getCraftingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(100)); + } + + public String getEntityHitSound() { + return null; + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public String getMiningSound() { + return null; + } + + public boolean canBlock() { + return true; + } + + public boolean isCrowbar() { + return false; + } + + public boolean isMiningTool() { + return false; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + String tTool = aBlock.getHarvestTool(aMetaData); + return ((tTool != null) && (tTool.equals("screwdriver"))) || (aBlock.getMaterial() == Material.circuits); + } + + public ItemStack getBrokenItem(ItemStack aStack) { + return null; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadScrewdriver.mTextureIndex] : Textures.ItemIcons.HANDLE_SCREWDRIVER; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + aItem.addItemBehavior(aID, new Behaviour_Screwdriver(1, 200)); + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " is screwed! (by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + ")"); + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Screwdriver_LV.java b/src/main/java/gregtech/common/tools/GT_Tool_Screwdriver_LV.java index 43186f3a..eeb1adcb 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Screwdriver_LV.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Screwdriver_LV.java @@ -1,32 +1,25 @@ package gregtech.common.tools; -import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; import net.minecraft.item.ItemStack; public class GT_Tool_Screwdriver_LV - extends GT_Tool_Screwdriver -{ - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public int getToolDamagePerContainerCraft() - { - return 200; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadScrewdriver.mTextureIndex] : Textures.ItemIcons.HANDLE_ELECTRIC_SCREWDRIVER; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } + extends GT_Tool_Screwdriver { + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public int getToolDamagePerContainerCraft() { + return 200; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadScrewdriver.mTextureIndex] : Textures.ItemIcons.HANDLE_ELECTRIC_SCREWDRIVER; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Sense.java b/src/main/java/gregtech/common/tools/GT_Tool_Sense.java index ff8f48af..44a70a67 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Sense.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Sense.java @@ -1,80 +1,65 @@ package gregtech.common.tools; -import gregtech.api.enums.Materials; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.common.items.behaviors.Behaviour_Sense; - -import java.util.List; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.server.management.ItemInWorldManager; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; -import net.minecraft.world.World; import net.minecraftforge.event.world.BlockEvent; -import net.minecraftforge.event.world.BlockEvent.HarvestDropsEvent; + +import java.util.List; public class GT_Tool_Sense - extends GT_Tool -{ - private ThreadLocal sIsHarvestingRightNow = new ThreadLocal(); - - public float getBaseDamage() - { - return 3.0F; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - String tTool = aBlock.getHarvestTool(aMetaData); - return ((tTool != null) && ((tTool.equals("sense")) || (tTool.equals("scythe")))) || (aBlock.getMaterial() == Material.plants) || (aBlock.getMaterial() == Material.leaves); - } - - public int convertBlockDrops(List aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) - { - int rConversions = 0; - if ((this.sIsHarvestingRightNow.get() == null) && ((aPlayer instanceof EntityPlayerMP))) - { - this.sIsHarvestingRightNow.set(this); - for (int i = -1; i < 2; i++) { - for (int j = -1; j < 2; j++) { - for (int k = -1; k < 2; k++) { - if (((i != 0) || (j != 0) || (k != 0)) && (aStack.getItem().getDigSpeed(aStack, aPlayer.worldObj.getBlock(aX + i, aY + j, aZ + k), aPlayer.worldObj.getBlockMetadata(aX + i, aY + j, aZ + k)) > 0.0F) && (((EntityPlayerMP)aPlayer).theItemInWorldManager.tryHarvestBlock(aX + i, aY + j, aZ + k))) { - rConversions++; - } - } - } - } - this.sIsHarvestingRightNow.set(null); + extends GT_Tool { + private ThreadLocal sIsHarvestingRightNow = new ThreadLocal(); + + public float getBaseDamage() { + return 3.0F; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + String tTool = aBlock.getHarvestTool(aMetaData); + return ((tTool != null) && ((tTool.equals("sense")) || (tTool.equals("scythe")))) || (aBlock.getMaterial() == Material.plants) || (aBlock.getMaterial() == Material.leaves); + } + + public int convertBlockDrops(List aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) { + int rConversions = 0; + if ((this.sIsHarvestingRightNow.get() == null) && ((aPlayer instanceof EntityPlayerMP))) { + this.sIsHarvestingRightNow.set(this); + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 2; j++) { + for (int k = -1; k < 2; k++) { + if (((i != 0) || (j != 0) || (k != 0)) && (aStack.getItem().getDigSpeed(aStack, aPlayer.worldObj.getBlock(aX + i, aY + j, aZ + k), aPlayer.worldObj.getBlockMetadata(aX + i, aY + j, aZ + k)) > 0.0F) && (((EntityPlayerMP) aPlayer).theItemInWorldManager.tryHarvestBlock(aX + i, aY + j, aZ + k))) { + rConversions++; + } + } + } + } + this.sIsHarvestingRightNow.set(null); + } + return rConversions; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadSense.mTextureIndex] : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.stick.mTextureIndex]; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + aItem.addItemBehavior(aID, new Behaviour_Sense(getToolDamagePerBlockBreak())); + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + " has taken the Soul of " + EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE); } - return rConversions; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadSense.mTextureIndex] : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.stick.mTextureIndex]; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) - { - aItem.addItemBehavior(aID, new Behaviour_Sense(getToolDamagePerBlockBreak())); - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + " has taken the Soul of " + EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE); - } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Shovel.java b/src/main/java/gregtech/common/tools/GT_Tool_Shovel.java index 27029337..677777d3 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Shovel.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Shovel.java @@ -1,10 +1,8 @@ package gregtech.common.tools; import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; -import java.util.Map; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; @@ -14,103 +12,84 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; public class GT_Tool_Shovel - extends GT_Tool -{ - public int getToolDamagePerBlockBreak() - { - return 50; - } - - public int getToolDamagePerDropConversion() - { - return 100; - } - - public int getToolDamagePerContainerCraft() - { - return 100; - } - - public int getToolDamagePerEntityAttack() - { - return 200; - } - - public int getBaseQuality() - { - return 0; - } - - public float getBaseDamage() - { - return 1.5F; - } - - public float getSpeedMultiplier() - { - return 1.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public String getCraftingSound() - { - return null; - } - - public String getEntityHitSound() - { - return null; - } - - public String getBreakingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public String getMiningSound() - { - return null; - } - - public boolean canBlock() - { - return false; - } - - public boolean isCrowbar() - { - return false; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - String tTool = aBlock.getHarvestTool(aMetaData); - return ((tTool != null) && (tTool.equals("shovel"))) || (aBlock.getMaterial() == Material.sand) || (aBlock.getMaterial() == Material.grass) || (aBlock.getMaterial() == Material.ground) || (aBlock.getMaterial() == Material.snow) || (aBlock.getMaterial() == Material.clay); - } - - public ItemStack getBrokenItem(ItemStack aStack) - { - return null; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadShovel.mTextureIndex] : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.stick.mTextureIndex]; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) {} - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got dug up by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); - } + extends GT_Tool { + public int getToolDamagePerBlockBreak() { + return 50; + } + + public int getToolDamagePerDropConversion() { + return 100; + } + + public int getToolDamagePerContainerCraft() { + return 100; + } + + public int getToolDamagePerEntityAttack() { + return 200; + } + + public int getBaseQuality() { + return 0; + } + + public float getBaseDamage() { + return 1.5F; + } + + public float getSpeedMultiplier() { + return 1.0F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public String getCraftingSound() { + return null; + } + + public String getEntityHitSound() { + return null; + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public String getMiningSound() { + return null; + } + + public boolean canBlock() { + return false; + } + + public boolean isCrowbar() { + return false; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + String tTool = aBlock.getHarvestTool(aMetaData); + return ((tTool != null) && (tTool.equals("shovel"))) || (aBlock.getMaterial() == Material.sand) || (aBlock.getMaterial() == Material.grass) || (aBlock.getMaterial() == Material.ground) || (aBlock.getMaterial() == Material.snow) || (aBlock.getMaterial() == Material.clay); + } + + public ItemStack getBrokenItem(ItemStack aStack) { + return null; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadShovel.mTextureIndex] : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.stick.mTextureIndex]; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got dug up by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_SoftHammer.java b/src/main/java/gregtech/common/tools/GT_Tool_SoftHammer.java index fe89fffa..1f1624ea 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_SoftHammer.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_SoftHammer.java @@ -1,11 +1,9 @@ package gregtech.common.tools; import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.common.items.behaviors.Behaviour_SoftHammer; -import java.util.Map; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -15,121 +13,97 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; public class GT_Tool_SoftHammer - extends GT_Tool -{ - public int getToolDamagePerBlockBreak() - { - return 50; - } - - public int getToolDamagePerDropConversion() - { - return 100; - } - - public int getToolDamagePerContainerCraft() - { - return 800; - } - - public int getToolDamagePerEntityAttack() - { - return 200; - } - - public int getBaseQuality() - { - return 0; - } - - public float getBaseDamage() - { - return 3.0F; - } - - public int getHurtResistanceTime(int aOriginalHurtResistance, Entity aEntity) - { - return aOriginalHurtResistance * 2; - } - - public float getSpeedMultiplier() - { - return 0.1F; - } - - public float getMaxDurabilityMultiplier() - { - return 8.0F; - } - - public String getCraftingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(101)); - } - - public String getEntityHitSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(101)); - } - - public String getBreakingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public String getMiningSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(101)); - } - - public boolean canBlock() - { - return true; - } - - public boolean isCrowbar() - { - return false; - } - - public boolean isMiningTool() - { - return false; - } - - public boolean isWeapon() - { - return true; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - String tTool = aBlock.getHarvestTool(aMetaData); - return (tTool != null) && (tTool.equals("softhammer")); - } - - public ItemStack getBrokenItem(ItemStack aStack) - { - return null; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadHammer.mTextureIndex] : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.stick.mTextureIndex]; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) - { - aItem.addItemBehavior(aID, new Behaviour_SoftHammer(100)); - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " was hammered to death by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); - } + extends GT_Tool { + public int getToolDamagePerBlockBreak() { + return 50; + } + + public int getToolDamagePerDropConversion() { + return 100; + } + + public int getToolDamagePerContainerCraft() { + return 800; + } + + public int getToolDamagePerEntityAttack() { + return 200; + } + + public int getBaseQuality() { + return 0; + } + + public float getBaseDamage() { + return 3.0F; + } + + public int getHurtResistanceTime(int aOriginalHurtResistance, Entity aEntity) { + return aOriginalHurtResistance * 2; + } + + public float getSpeedMultiplier() { + return 0.1F; + } + + public float getMaxDurabilityMultiplier() { + return 8.0F; + } + + public String getCraftingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(101)); + } + + public String getEntityHitSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(101)); + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public String getMiningSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(101)); + } + + public boolean canBlock() { + return true; + } + + public boolean isCrowbar() { + return false; + } + + public boolean isMiningTool() { + return false; + } + + public boolean isWeapon() { + return true; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + String tTool = aBlock.getHarvestTool(aMetaData); + return (tTool != null) && (tTool.equals("softhammer")); + } + + public ItemStack getBrokenItem(ItemStack aStack) { + return null; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadHammer.mTextureIndex] : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.stick.mTextureIndex]; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + aItem.addItemBehavior(aID, new Behaviour_SoftHammer(100)); + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " was hammered to death by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Soldering_Iron.java b/src/main/java/gregtech/common/tools/GT_Tool_Soldering_Iron.java index fa496cdc..b1045278 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Soldering_Iron.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Soldering_Iron.java @@ -1,8 +1,5 @@ package gregtech.common.tools; -import java.util.Arrays; -import java.util.List; - import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; import gregtech.api.interfaces.IIconContainer; @@ -20,119 +17,100 @@ import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; -public class GT_Tool_Soldering_Iron extends GT_Tool{ - public static final List mEffectiveList = Arrays.asList(new String[] { EntityCaveSpider.class.getName(), EntitySpider.class.getName(), "EntityTFHedgeSpider", "EntityTFKingSpider", "EntityTFSwarmSpider", "EntityTFTowerBroodling" }); - - public float getNormalDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer) - { - String tName = aEntity.getClass().getName(); - tName = tName.substring(tName.lastIndexOf(".") + 1); - return mEffectiveList.contains(tName) ? aOriginalDamage * 2.0F : aOriginalDamage; - } - - public int getToolDamagePerBlockBreak() - { - return 1000; - } - - public int getToolDamagePerDropConversion() - { - return 500; - } - - public int getToolDamagePerContainerCraft() - { - return 1000; - } - - public int getToolDamagePerEntityAttack() - { - return 500; - } - - public int getBaseQuality() - { - return 0; - } - - public float getBaseDamage() - { - return 1.5F; - } - - public float getSpeedMultiplier() - { - return 1.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public String getCraftingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(100)); - } - - public String getEntityHitSound() - { - return null; - } - - public String getBreakingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public String getMiningSound() - { - return null; - } - - public boolean canBlock() - { - return true; - } - - public boolean isCrowbar() - { - return false; - } - - public boolean isMiningTool() - { - return false; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - String tTool = aBlock.getHarvestTool(aMetaData); - return ((tTool != null) && (tTool.equals("soldering_iron"))) || (aBlock.getMaterial() == Material.circuits); - } - - public ItemStack getBrokenItem(ItemStack aStack) - { - return null; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[49] : Textures.ItemIcons.HANDLE_SOLDERING; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) - { - aItem.addItemBehavior(aID, new Behaviour_Screwdriver(1, 200)); - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got soldert! (by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + ")"); - } - } +import java.util.Arrays; +import java.util.List; + +public class GT_Tool_Soldering_Iron extends GT_Tool { + public static final List mEffectiveList = Arrays.asList(new String[]{EntityCaveSpider.class.getName(), EntitySpider.class.getName(), "EntityTFHedgeSpider", "EntityTFKingSpider", "EntityTFSwarmSpider", "EntityTFTowerBroodling"}); + + public float getNormalDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer) { + String tName = aEntity.getClass().getName(); + tName = tName.substring(tName.lastIndexOf(".") + 1); + return mEffectiveList.contains(tName) ? aOriginalDamage * 2.0F : aOriginalDamage; + } + + public int getToolDamagePerBlockBreak() { + return 1000; + } + + public int getToolDamagePerDropConversion() { + return 500; + } + + public int getToolDamagePerContainerCraft() { + return 1000; + } + + public int getToolDamagePerEntityAttack() { + return 500; + } + + public int getBaseQuality() { + return 0; + } + + public float getBaseDamage() { + return 1.5F; + } + + public float getSpeedMultiplier() { + return 1.0F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public String getCraftingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(100)); + } + + public String getEntityHitSound() { + return null; + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public String getMiningSound() { + return null; + } + + public boolean canBlock() { + return true; + } + + public boolean isCrowbar() { + return false; + } + + public boolean isMiningTool() { + return false; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + String tTool = aBlock.getHarvestTool(aMetaData); + return ((tTool != null) && (tTool.equals("soldering_iron"))) || (aBlock.getMaterial() == Material.circuits); + } + + public ItemStack getBrokenItem(ItemStack aStack) { + return null; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[49] : Textures.ItemIcons.HANDLE_SOLDERING; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + aItem.addItemBehavior(aID, new Behaviour_Screwdriver(1, 200)); + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got soldert! (by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + ")"); + } +} diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Sword.java b/src/main/java/gregtech/common/tools/GT_Tool_Sword.java index 90579dcb..44e524e5 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Sword.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Sword.java @@ -1,14 +1,9 @@ package gregtech.common.tools; import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; - -import java.util.Map; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; @@ -16,107 +11,86 @@ import net.minecraft.item.ItemStack; import net.minecraft.stats.AchievementList; public class GT_Tool_Sword - extends GT_Tool -{ - public int getToolDamagePerBlockBreak() - { - return 200; - } - - public int getToolDamagePerDropConversion() - { - return 100; - } - - public int getToolDamagePerContainerCraft() - { - return 100; - } - - public int getToolDamagePerEntityAttack() - { - return 100; - } - - public int getBaseQuality() - { - return 0; - } - - public float getBaseDamage() - { - return 4.0F; - } - - public float getSpeedMultiplier() - { - return 1.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public String getCraftingSound() - { - return null; - } - - public String getEntityHitSound() - { - return null; - } - - public String getBreakingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public String getMiningSound() - { - return null; - } - - public boolean canBlock() - { - return true; - } - - public boolean isCrowbar() - { - return false; - } - - public boolean isWeapon() - { - return true; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - String tTool = aBlock.getHarvestTool(aMetaData); - return ((tTool != null) && (tTool.equals("sword"))) || (aBlock.getMaterial() == Material.leaves) || (aBlock.getMaterial() == Material.gourd) || (aBlock.getMaterial() == Material.vine) || (aBlock.getMaterial() == Material.web) || (aBlock.getMaterial() == Material.cloth) || (aBlock.getMaterial() == Material.carpet) || (aBlock.getMaterial() == Material.plants) || (aBlock.getMaterial() == Material.cactus) || (aBlock.getMaterial() == Material.cake) || (aBlock.getMaterial() == Material.tnt) || (aBlock.getMaterial() == Material.sponge); - } - - public ItemStack getBrokenItem(ItemStack aStack) - { - return null; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadSword.mTextureIndex] : Textures.ItemIcons.HANDLE_SWORD; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) - { - super.onToolCrafted(aStack, aPlayer); - aPlayer.triggerAchievement(AchievementList.buildSword); - } + extends GT_Tool { + public int getToolDamagePerBlockBreak() { + return 200; + } + + public int getToolDamagePerDropConversion() { + return 100; + } + + public int getToolDamagePerContainerCraft() { + return 100; + } + + public int getToolDamagePerEntityAttack() { + return 100; + } + + public int getBaseQuality() { + return 0; + } + + public float getBaseDamage() { + return 4.0F; + } + + public float getSpeedMultiplier() { + return 1.0F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public String getCraftingSound() { + return null; + } + + public String getEntityHitSound() { + return null; + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public String getMiningSound() { + return null; + } + + public boolean canBlock() { + return true; + } + + public boolean isCrowbar() { + return false; + } + + public boolean isWeapon() { + return true; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + String tTool = aBlock.getHarvestTool(aMetaData); + return ((tTool != null) && (tTool.equals("sword"))) || (aBlock.getMaterial() == Material.leaves) || (aBlock.getMaterial() == Material.gourd) || (aBlock.getMaterial() == Material.vine) || (aBlock.getMaterial() == Material.web) || (aBlock.getMaterial() == Material.cloth) || (aBlock.getMaterial() == Material.carpet) || (aBlock.getMaterial() == Material.plants) || (aBlock.getMaterial() == Material.cactus) || (aBlock.getMaterial() == Material.cake) || (aBlock.getMaterial() == Material.tnt) || (aBlock.getMaterial() == Material.sponge); + } + + public ItemStack getBrokenItem(ItemStack aStack) { + return null; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadSword.mTextureIndex] : Textures.ItemIcons.HANDLE_SWORD; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return !aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) { + super.onToolCrafted(aStack, aPlayer); + aPlayer.triggerAchievement(AchievementList.buildSword); + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Turbine.java b/src/main/java/gregtech/common/tools/GT_Tool_Turbine.java index 7640c4fe..8ac83ef4 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Turbine.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Turbine.java @@ -1,6 +1,5 @@ package gregtech.common.tools; -import gregtech.api.enums.Textures; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; import net.minecraft.block.Block; @@ -10,18 +9,36 @@ import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; -public abstract class GT_Tool_Turbine extends GT_Tool{ - public abstract float getBaseDamage(); - @Override public boolean isMinableBlock(Block aBlock, byte aMetaData) {return false;} - @Override public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) {return aIsToolHead ? getTurbineIcon(): null;} - @Override public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) {return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : null;} - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + " put " + EnumChatFormatting.RED + - aEntity.getCommandSenderName()+"s" + EnumChatFormatting.WHITE + " head into a turbine"); - } - public abstract IIconContainer getTurbineIcon(); - public abstract float getSpeedMultiplier(); - public abstract float getMaxDurabilityMultiplier(); - public ItemStack getBrokenItem(ItemStack aStack){return null;} +public abstract class GT_Tool_Turbine extends GT_Tool { + public abstract float getBaseDamage(); + + @Override + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + return false; + } + + @Override + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? getTurbineIcon() : null; + } + + @Override + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : null; + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + " put " + EnumChatFormatting.RED + + aEntity.getCommandSenderName() + "s" + EnumChatFormatting.WHITE + " head into a turbine"); + } + + public abstract IIconContainer getTurbineIcon(); + + public abstract float getSpeedMultiplier(); + + public abstract float getMaxDurabilityMultiplier(); + + public ItemStack getBrokenItem(ItemStack aStack) { + return null; + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Huge.java b/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Huge.java index f2ec5a73..fa5d9901 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Huge.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Huge.java @@ -4,8 +4,23 @@ import gregtech.api.enums.Textures; import gregtech.api.interfaces.IIconContainer; public class GT_Tool_Turbine_Huge extends GT_Tool_Turbine { - @Override public float getSpeedMultiplier() {return 4.0F;} - @Override public float getMaxDurabilityMultiplier() {return 4.0F;} - @Override public float getBaseDamage() {return 3.0F;} - @Override public IIconContainer getTurbineIcon() {return Textures.ItemIcons.TURBINE_HUGE;} + @Override + public float getSpeedMultiplier() { + return 4.0F; + } + + @Override + public float getMaxDurabilityMultiplier() { + return 4.0F; + } + + @Override + public float getBaseDamage() { + return 3.0F; + } + + @Override + public IIconContainer getTurbineIcon() { + return Textures.ItemIcons.TURBINE_HUGE; + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Large.java b/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Large.java index ed0713cd..d8bff76c 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Large.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Large.java @@ -4,8 +4,23 @@ import gregtech.api.enums.Textures; import gregtech.api.interfaces.IIconContainer; public class GT_Tool_Turbine_Large extends GT_Tool_Turbine { - @Override public float getSpeedMultiplier() {return 3.0F;} - @Override public float getMaxDurabilityMultiplier() {return 3.0F;} - @Override public float getBaseDamage() {return 5.0F;} - @Override public IIconContainer getTurbineIcon() {return Textures.ItemIcons.TURBINE_LARGE;} + @Override + public float getSpeedMultiplier() { + return 3.0F; + } + + @Override + public float getMaxDurabilityMultiplier() { + return 3.0F; + } + + @Override + public float getBaseDamage() { + return 5.0F; + } + + @Override + public IIconContainer getTurbineIcon() { + return Textures.ItemIcons.TURBINE_LARGE; + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Normal.java b/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Normal.java index a29ad632..a4ff2368 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Normal.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Normal.java @@ -4,8 +4,23 @@ import gregtech.api.enums.Textures; import gregtech.api.interfaces.IIconContainer; public class GT_Tool_Turbine_Normal extends GT_Tool_Turbine { - @Override public float getSpeedMultiplier() {return 2.0F;} - @Override public float getMaxDurabilityMultiplier() {return 2.0F;} - @Override public float getBaseDamage() {return 2.5F;} - @Override public IIconContainer getTurbineIcon() {return Textures.ItemIcons.TURBINE;} + @Override + public float getSpeedMultiplier() { + return 2.0F; + } + + @Override + public float getMaxDurabilityMultiplier() { + return 2.0F; + } + + @Override + public float getBaseDamage() { + return 2.5F; + } + + @Override + public IIconContainer getTurbineIcon() { + return Textures.ItemIcons.TURBINE; + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Small.java b/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Small.java index 4292ab73..58bd6b2d 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Small.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Small.java @@ -4,9 +4,24 @@ import gregtech.api.enums.Textures; import gregtech.api.interfaces.IIconContainer; public class GT_Tool_Turbine_Small extends GT_Tool_Turbine { - @Override public float getSpeedMultiplier() {return 1.0F;} - @Override public float getMaxDurabilityMultiplier() {return 1.0F;} - @Override public float getBaseDamage() {return 0.0F;} - @Override public IIconContainer getTurbineIcon() {return Textures.ItemIcons.TURBINE_SMALL;} - + @Override + public float getSpeedMultiplier() { + return 1.0F; + } + + @Override + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + @Override + public float getBaseDamage() { + return 0.0F; + } + + @Override + public IIconContainer getTurbineIcon() { + return Textures.ItemIcons.TURBINE_SMALL; + } + } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_UniversalSpade.java b/src/main/java/gregtech/common/tools/GT_Tool_UniversalSpade.java index d5f6c022..03fd6a97 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_UniversalSpade.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_UniversalSpade.java @@ -2,13 +2,9 @@ package gregtech.common.tools; import gregtech.GT_Mod; import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.common.items.behaviors.Behaviour_Crowbar; - -import java.util.Map; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; @@ -20,118 +16,98 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; public class GT_Tool_UniversalSpade - extends GT_Tool -{ - public int getToolDamagePerBlockBreak() - { - return 50; - } - - public int getToolDamagePerDropConversion() - { - return 100; - } - - public int getToolDamagePerContainerCraft() - { - return 400; - } - - public int getToolDamagePerEntityAttack() - { - return 100; - } - - public int getBaseQuality() - { - return 0; - } - - public float getBaseDamage() - { - return 3.0F; - } - - public float getSpeedMultiplier() - { - return 0.75F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public String getCraftingSound() - { - return null; - } - - public String getEntityHitSound() - { - return null; - } - - public String getBreakingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public String getMiningSound() - { - return null; - } - - public boolean canBlock() - { - return true; - } - - public boolean isCrowbar() - { - return true; - } - - public boolean isWeapon() - { - return true; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - String tTool = aBlock.getHarvestTool(aMetaData); - return ((tTool != null) && ((tTool.equals("shovel")) || (tTool.equals("axe")) || (tTool.equals("saw")) || (tTool.equals("sword")) || (tTool.equals("crowbar")))) || (aBlock.getMaterial() == Material.sand) || (aBlock.getMaterial() == Material.grass) || (aBlock.getMaterial() == Material.ground) || (aBlock.getMaterial() == Material.snow) || (aBlock.getMaterial() == Material.clay) || (aBlock.getMaterial() == Material.leaves) || (aBlock.getMaterial() == Material.vine) || (aBlock.getMaterial() == Material.wood) || (aBlock.getMaterial() == Material.cactus) || (aBlock.getMaterial() == Material.circuits) || (aBlock.getMaterial() == Material.gourd) || (aBlock.getMaterial() == Material.web) || (aBlock.getMaterial() == Material.cloth) || (aBlock.getMaterial() == Material.carpet) || (aBlock.getMaterial() == Material.plants) || (aBlock.getMaterial() == Material.cake) || (aBlock.getMaterial() == Material.tnt) || (aBlock.getMaterial() == Material.sponge); - } - - public ItemStack getBrokenItem(ItemStack aStack) - { - return null; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadUniversalSpade.mTextureIndex] : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.stick.mTextureIndex]; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) - { - aItem.addItemBehavior(aID, new Behaviour_Crowbar(2, 2000)); - } - - public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) - { - super.onToolCrafted(aStack, aPlayer); - aPlayer.triggerAchievement(AchievementList.buildSword); - try{GT_Mod.instance.achievements.issueAchievement(aPlayer, "unitool");}catch(Exception e){} - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been digged by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); - } + extends GT_Tool { + public int getToolDamagePerBlockBreak() { + return 50; + } + + public int getToolDamagePerDropConversion() { + return 100; + } + + public int getToolDamagePerContainerCraft() { + return 400; + } + + public int getToolDamagePerEntityAttack() { + return 100; + } + + public int getBaseQuality() { + return 0; + } + + public float getBaseDamage() { + return 3.0F; + } + + public float getSpeedMultiplier() { + return 0.75F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public String getCraftingSound() { + return null; + } + + public String getEntityHitSound() { + return null; + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public String getMiningSound() { + return null; + } + + public boolean canBlock() { + return true; + } + + public boolean isCrowbar() { + return true; + } + + public boolean isWeapon() { + return true; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + String tTool = aBlock.getHarvestTool(aMetaData); + return ((tTool != null) && ((tTool.equals("shovel")) || (tTool.equals("axe")) || (tTool.equals("saw")) || (tTool.equals("sword")) || (tTool.equals("crowbar")))) || (aBlock.getMaterial() == Material.sand) || (aBlock.getMaterial() == Material.grass) || (aBlock.getMaterial() == Material.ground) || (aBlock.getMaterial() == Material.snow) || (aBlock.getMaterial() == Material.clay) || (aBlock.getMaterial() == Material.leaves) || (aBlock.getMaterial() == Material.vine) || (aBlock.getMaterial() == Material.wood) || (aBlock.getMaterial() == Material.cactus) || (aBlock.getMaterial() == Material.circuits) || (aBlock.getMaterial() == Material.gourd) || (aBlock.getMaterial() == Material.web) || (aBlock.getMaterial() == Material.cloth) || (aBlock.getMaterial() == Material.carpet) || (aBlock.getMaterial() == Material.plants) || (aBlock.getMaterial() == Material.cake) || (aBlock.getMaterial() == Material.tnt) || (aBlock.getMaterial() == Material.sponge); + } + + public ItemStack getBrokenItem(ItemStack aStack) { + return null; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadUniversalSpade.mTextureIndex] : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.stick.mTextureIndex]; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + aItem.addItemBehavior(aID, new Behaviour_Crowbar(2, 2000)); + } + + public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) { + super.onToolCrafted(aStack, aPlayer); + aPlayer.triggerAchievement(AchievementList.buildSword); + try { + GT_Mod.instance.achievements.issueAchievement(aPlayer, "unitool"); + } catch (Exception e) { + } + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " has been digged by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_WireCutter.java b/src/main/java/gregtech/common/tools/GT_Tool_WireCutter.java index 4d9a4afd..473abf78 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_WireCutter.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_WireCutter.java @@ -1,14 +1,9 @@ package gregtech.common.tools; import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; - -import java.util.Map; - import net.minecraft.block.Block; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; @@ -17,103 +12,84 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; public class GT_Tool_WireCutter - extends GT_Tool -{ - public int getToolDamagePerBlockBreak() - { - return 100; - } - - public int getToolDamagePerDropConversion() - { - return 100; - } - - public int getToolDamagePerContainerCraft() - { - return 400; - } - - public int getToolDamagePerEntityAttack() - { - return 200; - } - - public int getBaseQuality() - { - return 0; - } - - public float getBaseDamage() - { - return 1.25F; - } - - public float getSpeedMultiplier() - { - return 1.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public String getCraftingSound() - { - return null; - } - - public String getEntityHitSound() - { - return null; - } - - public String getBreakingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public String getMiningSound() - { - return null; - } - - public boolean canBlock() - { - return false; - } - - public boolean isCrowbar() - { - return false; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - String tTool = aBlock.getHarvestTool(aMetaData); - return (tTool != null) && (tTool.equals("cutter")); - } - - public ItemStack getBrokenItem(ItemStack aStack) - { - return null; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? Textures.ItemIcons.WIRE_CUTTER : null; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) {} - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + " has cut the Cable for the Life Support Machine of " + EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE); - } + extends GT_Tool { + public int getToolDamagePerBlockBreak() { + return 100; + } + + public int getToolDamagePerDropConversion() { + return 100; + } + + public int getToolDamagePerContainerCraft() { + return 400; + } + + public int getToolDamagePerEntityAttack() { + return 200; + } + + public int getBaseQuality() { + return 0; + } + + public float getBaseDamage() { + return 1.25F; + } + + public float getSpeedMultiplier() { + return 1.0F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public String getCraftingSound() { + return null; + } + + public String getEntityHitSound() { + return null; + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public String getMiningSound() { + return null; + } + + public boolean canBlock() { + return false; + } + + public boolean isCrowbar() { + return false; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + String tTool = aBlock.getHarvestTool(aMetaData); + return (tTool != null) && (tTool.equals("cutter")); + } + + public ItemStack getBrokenItem(ItemStack aStack) { + return null; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? Textures.ItemIcons.WIRE_CUTTER : null; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + " has cut the Cable for the Life Support Machine of " + EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE); + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Wrench.java b/src/main/java/gregtech/common/tools/GT_Tool_Wrench.java index 2b68b6ea..0a703f23 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Wrench.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Wrench.java @@ -1,17 +1,10 @@ package gregtech.common.tools; import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.common.items.behaviors.Behaviour_Wrench; - -import java.util.Arrays; -import java.util.List; -import java.util.Map; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; @@ -24,121 +17,101 @@ import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; +import java.util.Arrays; +import java.util.List; + public class GT_Tool_Wrench - extends GT_Tool -{ - public static final List mEffectiveList = Arrays.asList(new String[] { EntityIronGolem.class.getName(), "EntityTowerGuardian" }); - - public float getNormalDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer) - { - String tName = aEntity.getClass().getName(); - tName = tName.substring(tName.lastIndexOf(".") + 1); - return (mEffectiveList.contains(tName)) || (tName.contains("Golem")) ? aOriginalDamage * 2.0F : aOriginalDamage; - } - - public int getToolDamagePerBlockBreak() - { - return 50; - } - - public int getToolDamagePerDropConversion() - { - return 100; - } - - public int getToolDamagePerContainerCraft() - { - return 800; - } - - public int getToolDamagePerEntityAttack() - { - return 200; - } - - public int getBaseQuality() - { - return 0; - } - - public float getBaseDamage() - { - return 3.0F; - } - - public int getHurtResistanceTime(int aOriginalHurtResistance, Entity aEntity) - { - return aOriginalHurtResistance * 2; - } - - public float getSpeedMultiplier() - { - return 1.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public String getCraftingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(100)); - } - - public String getEntityHitSound() - { - return null; - } - - public String getBreakingSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - public String getMiningSound() - { - return (String)GregTech_API.sSoundList.get(Integer.valueOf(100)); - } - - public boolean canBlock() - { - return false; - } - - public boolean isCrowbar() - { - return false; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) - { - String tTool = aBlock.getHarvestTool(aMetaData); - return ((tTool != null) && (tTool.equals("wrench"))) || (aBlock.getMaterial() == Material.piston) || (aBlock == Blocks.hopper) || (aBlock == Blocks.dispenser) || (aBlock == Blocks.dropper); - } - - public ItemStack getBrokenItem(ItemStack aStack) - { - return null; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? Textures.ItemIcons.WRENCH : null; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : null; - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) - { - aItem.addItemBehavior(aID, new Behaviour_Wrench(100)); - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) - { - return new ChatComponentText(EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + " threw a Monkey Wrench into the Plans of " + EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE); - } + extends GT_Tool { + public static final List mEffectiveList = Arrays.asList(new String[]{EntityIronGolem.class.getName(), "EntityTowerGuardian"}); + + public float getNormalDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer) { + String tName = aEntity.getClass().getName(); + tName = tName.substring(tName.lastIndexOf(".") + 1); + return (mEffectiveList.contains(tName)) || (tName.contains("Golem")) ? aOriginalDamage * 2.0F : aOriginalDamage; + } + + public int getToolDamagePerBlockBreak() { + return 50; + } + + public int getToolDamagePerDropConversion() { + return 100; + } + + public int getToolDamagePerContainerCraft() { + return 800; + } + + public int getToolDamagePerEntityAttack() { + return 200; + } + + public int getBaseQuality() { + return 0; + } + + public float getBaseDamage() { + return 3.0F; + } + + public int getHurtResistanceTime(int aOriginalHurtResistance, Entity aEntity) { + return aOriginalHurtResistance * 2; + } + + public float getSpeedMultiplier() { + return 1.0F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public String getCraftingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(100)); + } + + public String getEntityHitSound() { + return null; + } + + public String getBreakingSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); + } + + public String getMiningSound() { + return (String) GregTech_API.sSoundList.get(Integer.valueOf(100)); + } + + public boolean canBlock() { + return false; + } + + public boolean isCrowbar() { + return false; + } + + public boolean isMinableBlock(Block aBlock, byte aMetaData) { + String tTool = aBlock.getHarvestTool(aMetaData); + return ((tTool != null) && (tTool.equals("wrench"))) || (aBlock.getMaterial() == Material.piston) || (aBlock == Blocks.hopper) || (aBlock == Blocks.dispenser) || (aBlock == Blocks.dropper); + } + + public ItemStack getBrokenItem(ItemStack aStack) { + return null; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? Textures.ItemIcons.WRENCH : null; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : null; + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + aItem.addItemBehavior(aID, new Behaviour_Wrench(100)); + } + + public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { + return new ChatComponentText(EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + " threw a Monkey Wrench into the Plans of " + EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE); + } } \ No newline at end of file diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Wrench_HV.java b/src/main/java/gregtech/common/tools/GT_Tool_Wrench_HV.java index e3b565dc..3d5bf97c 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Wrench_HV.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Wrench_HV.java @@ -1,67 +1,53 @@ package gregtech.common.tools; -import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; import net.minecraft.item.ItemStack; public class GT_Tool_Wrench_HV - extends GT_Tool_Wrench_LV -{ - public int getToolDamagePerBlockBreak() - { - return 800; - } - - public int getToolDamagePerDropConversion() - { - return 1600; - } - - public int getToolDamagePerContainerCraft() - { - return 12800; - } - - public int getToolDamagePerEntityAttack() - { - return 3200; - } - - public int getBaseQuality() - { - return 1; - } - - public float getBaseDamage() - { - return 2.0F; - } - - public float getSpeedMultiplier() - { - return 4.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 4.0F; - } - - public boolean canBlock() - { - return false; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadWrench.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_HV; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } + extends GT_Tool_Wrench_LV { + public int getToolDamagePerBlockBreak() { + return 800; + } + + public int getToolDamagePerDropConversion() { + return 1600; + } + + public int getToolDamagePerContainerCraft() { + return 12800; + } + + public int getToolDamagePerEntityAttack() { + return 3200; + } + + public int getBaseQuality() { + return 1; + } + + public float getBaseDamage() { + return 2.0F; + } + + public float getSpeedMultiplier() { + return 4.0F; + } + + public float getMaxDurabilityMultiplier() { + return 4.0F; + } + + public boolean canBlock() { + return false; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadWrench.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_HV; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Wrench_LV.java b/src/main/java/gregtech/common/tools/GT_Tool_Wrench_LV.java index 5cd294e1..f9b333f1 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Wrench_LV.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Wrench_LV.java @@ -1,8 +1,6 @@ package gregtech.common.tools; -import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; import net.minecraft.entity.Entity; @@ -10,65 +8,52 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; public class GT_Tool_Wrench_LV - extends GT_Tool_Wrench -{ - public float getNormalDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer) - { - return aOriginalDamage; - } - - public int getToolDamagePerBlockBreak() - { - return 50; - } - - public int getToolDamagePerDropConversion() - { - return 100; - } - - public int getToolDamagePerContainerCraft() - { - return 800; - } - - public int getToolDamagePerEntityAttack() - { - return 200; - } - - public int getBaseQuality() - { - return 0; - } - - public float getBaseDamage() - { - return 1.0F; - } - - public float getSpeedMultiplier() - { - return 2.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 1.0F; - } - - public boolean canBlock() - { - return false; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadWrench.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_LV; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } + extends GT_Tool_Wrench { + public float getNormalDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer) { + return aOriginalDamage; + } + + public int getToolDamagePerBlockBreak() { + return 50; + } + + public int getToolDamagePerDropConversion() { + return 100; + } + + public int getToolDamagePerContainerCraft() { + return 800; + } + + public int getToolDamagePerEntityAttack() { + return 200; + } + + public int getBaseQuality() { + return 0; + } + + public float getBaseDamage() { + return 1.0F; + } + + public float getSpeedMultiplier() { + return 2.0F; + } + + public float getMaxDurabilityMultiplier() { + return 1.0F; + } + + public boolean canBlock() { + return false; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadWrench.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_LV; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Wrench_MV.java b/src/main/java/gregtech/common/tools/GT_Tool_Wrench_MV.java index 212bc0cd..45f87fa3 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Wrench_MV.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Wrench_MV.java @@ -1,67 +1,53 @@ package gregtech.common.tools; -import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.ItemIcons; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; import net.minecraft.item.ItemStack; public class GT_Tool_Wrench_MV - extends GT_Tool_Wrench_LV -{ - public int getToolDamagePerBlockBreak() - { - return 200; - } - - public int getToolDamagePerDropConversion() - { - return 400; - } - - public int getToolDamagePerContainerCraft() - { - return 3200; - } - - public int getToolDamagePerEntityAttack() - { - return 800; - } - - public int getBaseQuality() - { - return 1; - } - - public float getBaseDamage() - { - return 1.5F; - } - - public float getSpeedMultiplier() - { - return 3.0F; - } - - public float getMaxDurabilityMultiplier() - { - return 2.0F; - } - - public boolean canBlock() - { - return false; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadWrench.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_MV; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) - { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } + extends GT_Tool_Wrench_LV { + public int getToolDamagePerBlockBreak() { + return 200; + } + + public int getToolDamagePerDropConversion() { + return 400; + } + + public int getToolDamagePerContainerCraft() { + return 3200; + } + + public int getToolDamagePerEntityAttack() { + return 800; + } + + public int getBaseQuality() { + return 1; + } + + public float getBaseDamage() { + return 1.5F; + } + + public float getSpeedMultiplier() { + return 3.0F; + } + + public float getMaxDurabilityMultiplier() { + return 2.0F; + } + + public boolean canBlock() { + return false; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadWrench.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_MV; + } + + public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + } } diff --git a/src/main/java/gregtech/loaders/load/GT_CoverBehaviorLoader.java b/src/main/java/gregtech/loaders/load/GT_CoverBehaviorLoader.java index c44d52a9..72a87500 100644 --- a/src/main/java/gregtech/loaders/load/GT_CoverBehaviorLoader.java +++ b/src/main/java/gregtech/loaders/load/GT_CoverBehaviorLoader.java @@ -1,13 +1,10 @@ package gregtech.loaders.load; import gregtech.api.util.GT_Log; -import java.io.PrintStream; public class GT_CoverBehaviorLoader - implements Runnable -{ - public void run() - { - GT_Log.out.println("GT_Mod: Adding Cover Behaviors"); - } + implements Runnable { + public void run() { + GT_Log.out.println("GT_Mod: Adding Cover Behaviors"); + } } diff --git a/src/main/java/gregtech/loaders/load/GT_FuelLoader.java b/src/main/java/gregtech/loaders/load/GT_FuelLoader.java index d5934ebb..62e891fe 100644 --- a/src/main/java/gregtech/loaders/load/GT_FuelLoader.java +++ b/src/main/java/gregtech/loaders/load/GT_FuelLoader.java @@ -3,33 +3,27 @@ package gregtech.loaders.load; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map_Fuel; -import java.io.PrintStream; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class GT_FuelLoader - implements Runnable -{ - public void run() - { - GT_Log.out.println("GT_Mod: Initializing various Fuels."); - new GT_Recipe(new ItemStack(Items.lava_bucket), new ItemStack(Blocks.obsidian), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Electrum, 1L), 30, 2); - - GT_Recipe.GT_Recipe_Map.sSmallNaquadahReactorFuels.addRecipe(true, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.NaquadahEnriched, 1L) }, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Naquadah, 1L) }, null, null, null, 0, 0, 25000); - GT_Recipe.GT_Recipe_Map.sLargeNaquadahReactorFuels.addRecipe(true, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.NaquadahEnriched, 1L) }, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Naquadah, 1L) }, null, null, null, 0, 0, 200000); - GT_Recipe.GT_Recipe_Map.sFluidNaquadahReactorFuels.addRecipe(true, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.cell, Materials.NaquadahEnriched, 1L) }, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Empty, 1L) }, null, null, null, 0, 0, 200000); - - GT_Values.RA.addFuel(GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1L, 4), null, 4, 5); - GT_Values.RA.addFuel(new ItemStack(Items.experience_bottle, 1), null, 10, 5); - GT_Values.RA.addFuel(new ItemStack(Items.ghast_tear, 1), null, 50, 5); - GT_Values.RA.addFuel(new ItemStack(Blocks.beacon, 1), null, Materials.NetherStar.mFuelPower * 2, Materials.NetherStar.mFuelType); - } + implements Runnable { + public void run() { + GT_Log.out.println("GT_Mod: Initializing various Fuels."); + new GT_Recipe(new ItemStack(Items.lava_bucket), new ItemStack(Blocks.obsidian), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Electrum, 1L), 30, 2); + + GT_Recipe.GT_Recipe_Map.sSmallNaquadahReactorFuels.addRecipe(true, new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.NaquadahEnriched, 1L)}, new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Naquadah, 1L)}, null, null, null, 0, 0, 25000); + GT_Recipe.GT_Recipe_Map.sLargeNaquadahReactorFuels.addRecipe(true, new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.NaquadahEnriched, 1L)}, new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Naquadah, 1L)}, null, null, null, 0, 0, 200000); + GT_Recipe.GT_Recipe_Map.sFluidNaquadahReactorFuels.addRecipe(true, new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.cell, Materials.NaquadahEnriched, 1L)}, new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Empty, 1L)}, null, null, null, 0, 0, 200000); + + GT_Values.RA.addFuel(GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1L, 4), null, 4, 5); + GT_Values.RA.addFuel(new ItemStack(Items.experience_bottle, 1), null, 10, 5); + GT_Values.RA.addFuel(new ItemStack(Items.ghast_tear, 1), null, 50, 5); + GT_Values.RA.addFuel(new ItemStack(Blocks.beacon, 1), null, Materials.NetherStar.mFuelPower * 2, Materials.NetherStar.mFuelType); + } } diff --git a/src/main/java/gregtech/loaders/load/GT_ItemIterator.java b/src/main/java/gregtech/loaders/load/GT_ItemIterator.java index 169365a4..de2e0737 100644 --- a/src/main/java/gregtech/loaders/load/GT_ItemIterator.java +++ b/src/main/java/gregtech/loaders/load/GT_ItemIterator.java @@ -2,25 +2,12 @@ package gregtech.loaders.load; import buildcraft.api.tools.IToolWrench; import gregtech.api.GregTech_API; -import gregtech.api.enums.ConfigCategories; -import gregtech.api.enums.ConfigCategories.Recipes; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OreDictNames; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.ToolDictNames; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; +import gregtech.api.enums.*; import gregtech.api.items.GT_Generic_Item; -import gregtech.api.util.GT_Config; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; - -import java.io.PrintStream; -import java.util.Iterator; - import mods.railcraft.api.core.items.IToolCrowbar; import net.minecraft.block.Block; import net.minecraft.init.Blocks; @@ -28,275 +15,249 @@ import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; -import net.minecraft.util.RegistryNamespaced; import net.minecraftforge.fluids.IFluidContainerItem; +import java.util.Iterator; + public class GT_ItemIterator - implements Runnable -{ - public void run() - { - GT_Log.out.println("GT_Mod: Scanning for certain kinds of compatible Machineblocks."); - ItemStack tStack2; - ItemStack tStack; - if (null != (tStack = GT_ModHandler.getRecipeOutput(new ItemStack[] { tStack2 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 1L), tStack2, tStack2, tStack2, null, tStack2, tStack2, tStack2, tStack2 }))) - { - GT_ModHandler.addPulverisationRecipe(tStack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bronze, 8L), null, 0, false); - GT_ModHandler.addSmeltingRecipe(tStack, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 8L)); - } - if (null != (tStack = GT_ModHandler.getRecipeOutput(new ItemStack[] { tStack2 = GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Bronze, 1L), tStack2, tStack2, tStack2, null, tStack2, tStack2, tStack2, tStack2 }))) - { - GT_OreDictUnificator.registerOre(OreDictNames.craftingRawMachineTier00, tStack); - GT_ModHandler.addPulverisationRecipe(tStack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bronze, 8L), null, 0, false); - GT_ModHandler.addSmeltingRecipe(tStack, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 8L)); - } - ItemStack tStack3; - if (null != (tStack = GT_ModHandler.getRecipeOutput(new ItemStack[] { tStack2 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), tStack3 = new ItemStack(Blocks.glass, 1, 0), tStack2, tStack3, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Gold, 1L), tStack3, tStack2, tStack3, tStack2 }))) { - GT_ModHandler.addPulverisationRecipe(tStack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 4L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 1L), 0, false); - } - if (null != (tStack = GT_ModHandler.getRecipeOutput(new ItemStack[] { tStack2 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), tStack3 = new ItemStack(Blocks.glass, 1, 0), tStack2, tStack3, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Gold, 1L), tStack3, tStack2, tStack3, tStack2 }))) { - GT_ModHandler.addPulverisationRecipe(tStack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 4L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 1L), 0, false); - } - GT_Log.out.println("GT_Mod: Registering various Tools to be usable on GregTech Machines"); - GregTech_API.registerScrewdriver(GT_ModHandler.getRecipeOutput(new ItemStack[] { null, new ItemStack(Items.iron_ingot, 1), null, new ItemStack(Items.stick, 1) })); - GregTech_API.registerScrewdriver(GT_ModHandler.getRecipeOutput(new ItemStack[] { new ItemStack(Items.iron_ingot, 1), null, null, null, new ItemStack(Items.stick, 1) })); - - GT_Log.out.println("GT_Mod: Adding Food Recipes to the Automatic Canning Machine. (also during the following Item Iteration)"); - GT_Values.RA.addCannerRecipe(new ItemStack(Items.rotten_flesh, 1, 32767), ItemList.IC2_Food_Can_Empty.get(4L, new Object[0]), ItemList.IC2_Food_Can_Spoiled.get(4L, new Object[0]), null, 200, 1); - GT_Values.RA.addCannerRecipe(new ItemStack(Items.spider_eye, 1, 32767), ItemList.IC2_Food_Can_Empty.get(2L, new Object[0]), ItemList.IC2_Food_Can_Spoiled.get(2L, new Object[0]), null, 100, 1); - GT_Values.RA.addCannerRecipe(ItemList.Food_Poisonous_Potato.get(1L, new Object[0]), ItemList.IC2_Food_Can_Empty.get(2L, new Object[0]), ItemList.IC2_Food_Can_Spoiled.get(2L, new Object[0]), null, 100, 1); - GT_Values.RA.addCannerRecipe(new ItemStack(Items.cake, 1, 32767), ItemList.IC2_Food_Can_Empty.get(12L, new Object[0]), ItemList.IC2_Food_Can_Filled.get(12L, new Object[0]), null, 600, 1); - GT_Values.RA.addCannerRecipe(new ItemStack(Items.mushroom_stew, 1, 32767), ItemList.IC2_Food_Can_Empty.get(6L, new Object[0]), ItemList.IC2_Food_Can_Filled.get(6L, new Object[0]), new ItemStack(Items.bowl, 1), 300, 1); - - GT_Log.out.println("GT_Mod: Scanning ItemList."); - - Iterator tIterator = Item.itemRegistry.iterator(); - while (tIterator.hasNext()) - { - Object tObject; - if (((tObject = tIterator.next()) != null) && ((tObject instanceof Item)) && (!(tObject instanceof GT_Generic_Item))) - { - Item tItem = (Item)tObject; - String tName; - if ((tName = tItem.getUnlocalizedName()) != null) - { - try - { - if ((tItem instanceof IToolCrowbar)) { - if ((!tItem.isDamageable()) && (!GT_ModHandler.isElectricItem(new ItemStack(tItem, 1, 0)))) - { - if ((GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "infiniteDurabilityRCCrowbars", false)) && - (GT_ModHandler.removeRecipeByOutput(new ItemStack(tItem, 1, 32767)))) { - GT_Log.out.println("GT_Mod: Removed infinite RC Crowbar: " + tName); - } - } - else if (GregTech_API.registerCrowbar(new ItemStack(tItem, 1, 32767))) { - GT_Log.out.println("GT_Mod: Registered valid RC Crowbar: " + tName); - } - } - } - catch (Throwable e) {} - try - { - if ((tItem instanceof IToolWrench)) { - if ((!tItem.isDamageable()) && (!GT_ModHandler.isElectricItem(new ItemStack(tItem, 1, 0)))) - { - if ((GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "infiniteDurabilityBCWrenches", false)) && - (GT_ModHandler.removeRecipeByOutput(new ItemStack(tItem, 1, 32767)))) { - GT_Log.out.println("GT_Mod: Removed infinite BC Wrench: " + tName); - } - } - else if (GregTech_API.registerWrench(new ItemStack(tItem, 1, 32767))) { - GT_Log.out.println("GT_Mod: Registered valid BC Wrench: " + tName); - } - } - } - catch (Throwable e) {} - Block tBlock = GT_Utility.getBlockFromStack(new ItemStack(tItem, 1, 0)); - if (tBlock != null) - { - if (tName.endsWith("beehives")) - { - tBlock.setHarvestLevel("scoop", 0); - gregtech.common.tools.GT_Tool_Scoop.sBeeHiveMaterial = tBlock.getMaterial(); - } - if (OrePrefixes.stone.mDefaultStackSize < tItem.getItemStackLimit(new ItemStack(tItem, 1, 0))) { - try - { - if ((tBlock.isReplaceableOreGen(GT_Values.DW, 0, 0, 0, Blocks.stone)) || (tBlock.isReplaceableOreGen(GT_Values.DW, 0, 0, 0, Blocks.netherrack)) || (tBlock.isReplaceableOreGen(GT_Values.DW, 0, 0, 0, Blocks.end_stone))) { - tItem.setMaxStackSize(OrePrefixes.stone.mDefaultStackSize); - } - } - catch (Throwable e) - { - e.printStackTrace(GT_Log.err); - } - } - } - if (((tItem instanceof ItemFood)) && (tItem != ItemList.IC2_Food_Can_Filled.getItem()) && (tItem != ItemList.IC2_Food_Can_Spoiled.getItem())) - { - int tFoodValue = ((ItemFood)tItem).func_150905_g(new ItemStack(tItem, 1, 0)); - if (tFoodValue > 0) { - GT_Values.RA.addCannerRecipe(new ItemStack(tItem, 1, 32767), ItemList.IC2_Food_Can_Empty.get(tFoodValue, new Object[0]), ItemList.IC2_Food_Can_Filled.get(tFoodValue, new Object[0]), GT_Utility.getContainerItem(new ItemStack(tItem, 1, 0), true), tFoodValue * 100, 1); - } - } - if ((tItem instanceof IFluidContainerItem)) { - GT_OreDictUnificator.addToBlacklist(new ItemStack(tItem, 1, 32767)); - } - if ((tName.equals("item.ItemSensorLocationCard")) || (tName.equals("item.ItemEnergySensorLocationCard")) || (tName.equals("item.ItemEnergyArrayLocationCard")) || (tName.equals("item.ItemTextCard"))) { - GT_Values.RA.addAssemblerRecipe(new ItemStack(tItem, 1, 32767), null, ItemList.Circuit_Basic.get(2L, new Object[0]), 200, 32); - } - if (tName.equals("item.ItemTimeCard")) { - GT_Values.RA.addAssemblerRecipe(new ItemStack(tItem, 1, 32767), null, ItemList.Circuit_Basic.get(1L, new Object[0]), 100, 32); - } - if (tName.equals("tile.ArsMagica:ore_vinteum")) { - GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Vinteum, new ItemStack(tItem, 1, 0)); - } - if (tName.equals("item.ArsMagica:purified_vinteum")) { - GT_Values.RA.addFuel(new ItemStack(tItem, 1, 0), null, 256, 5); - } - if ((tName.equals("item.fieryBlood")) || (tName.equals("item.fieryTears"))) { - GT_Values.RA.addFuel(new ItemStack(tItem, 1, 0), null, 2048, 5); - } - if (tName.equals("tile.TFRoots")) - { - GT_ModHandler.addPulverisationRecipe(new ItemStack(tItem, 1, 0), new ItemStack(Items.stick, 2), new ItemStack(Items.stick, 1), 30); - GT_ModHandler.addSawmillRecipe(new ItemStack(tItem, 1, 0), new ItemStack(Items.stick, 4), new ItemStack(Items.stick, 2)); - GT_Values.RA.addFuel(new ItemStack(tItem, 1, 1), new ItemStack(Items.stick, 4), 32, 5); - } - if (tName.equals("item.tconstruct.manual")) { - GT_OreDictUnificator.registerOre("bookTinkersManual", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.ArsMagica:spell_parchment")) { - GT_OreDictUnificator.registerOre("paperArsSpellParchment", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.ArsMagica:spell_recipe")) { - GT_OreDictUnificator.registerOre("paperArsSpellRecipe", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.ArsMagica:spell_book")) { - GT_OreDictUnificator.registerOre("bookArsSpells", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.myst.page")) { - GT_OreDictUnificator.registerOre("paperMystcraft", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.myst.agebook")) { - GT_OreDictUnificator.registerOre("bookMystcraftAge", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.myst.linkbook")) { - GT_OreDictUnificator.registerOre("bookMystcraftLink", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.myst.notebook")) { - GT_OreDictUnificator.registerOre("bookNotes", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.itemManuelBook")) { - GT_OreDictUnificator.registerOre("bookWritten", new ItemStack(tItem, 1, 0)); - } - if (tName.equals("item.blueprintItem")) { - GT_OreDictUnificator.registerOre("paperBlueprint", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.ccprintout")) - { - GT_OreDictUnificator.registerOre("paperWritten", new ItemStack(tItem, 1, 0)); - GT_OreDictUnificator.registerOre("paperWritten", new ItemStack(tItem, 1, 1)); - GT_OreDictUnificator.registerOre("bookWritten", new ItemStack(tItem, 1, 2)); - } - if (tName.equals("item.blueprintItem")) { - GT_OreDictUnificator.registerOre("paperBlueprint", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.wirelessmap")) { - GT_OreDictUnificator.registerOre("paperMap", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.ItemResearchNotes")) { - GT_OreDictUnificator.registerOre("paperResearch", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.ItemThaumonomicon")) { - GT_OreDictUnificator.registerOre("bookThaumonomicon", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.ligniteCoal")) { - GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Lignite, new ItemStack(tItem, 1, 0)); - } - if ((tName.equals("tile.extrabiomes.redrock")) || (tName.equals("tile.bop.redRocks"))) - { - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Redrock, new ItemStack(tItem, 1, 0)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Redrock, new ItemStack(tItem, 1, 1)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Redrock, new ItemStack(tItem, 1, 2)); - } - if (tName.equals("tile.rpstone")) - { - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Marble, new ItemStack(tItem, 1, 0)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 1)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Marble, new ItemStack(tItem, 1, 2)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 3)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 4)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 5)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 6)); - } - if ((tName.equals("tile.sedimentaryStone")) || ((tName.equals("tile.igneousStone")) || (tName.equals("tile.igneousStoneBrick")) || (tName.equals("tile.igneousCobblestone")))) - { - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(tItem, 1, 0)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(tItem, 1, 1)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Rhyolite, new ItemStack(tItem, 1, 2)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Andesite, new ItemStack(tItem, 1, 3)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Gabbro, new ItemStack(tItem, 1, 4)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 5)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Komatiite, new ItemStack(tItem, 1, 6)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Dacite, new ItemStack(tItem, 1, 7)); - - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(tItem, 1, 8)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(tItem, 1, 9)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Rhyolite, new ItemStack(tItem, 1, 10)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Andesite, new ItemStack(tItem, 1, 11)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Gabbro, new ItemStack(tItem, 1, 12)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 13)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Komatiite, new ItemStack(tItem, 1, 14)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Dacite, new ItemStack(tItem, 1, 15)); - } - if ((tName.equals("tile.metamorphicStone")) || (tName.equals("tile.metamorphicStoneBrick")) || (tName.equals("tile.metamorphicCobblestone"))) - { - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Gneiss, new ItemStack(tItem, 1, 0)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Eclogite, new ItemStack(tItem, 1, 1)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Marble, new ItemStack(tItem, 1, 2)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Quartzite, new ItemStack(tItem, 1, 3)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Blueschist, new ItemStack(tItem, 1, 4)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Greenschist, new ItemStack(tItem, 1, 5)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Soapstone, new ItemStack(tItem, 1, 6)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Migmatite, new ItemStack(tItem, 1, 7)); - - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Gneiss, new ItemStack(tItem, 1, 8)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Eclogite, new ItemStack(tItem, 1, 9)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Marble, new ItemStack(tItem, 1, 10)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Quartzite, new ItemStack(tItem, 1, 11)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Blueschist, new ItemStack(tItem, 1, 12)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Greenschist, new ItemStack(tItem, 1, 13)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Soapstone, new ItemStack(tItem, 1, 14)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Migmatite, new ItemStack(tItem, 1, 15)); - } - if (tName.equals("tile.blockCosmeticSolid")) - { - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Obsidian, new ItemStack(tItem, 1, 0)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Obsidian, new ItemStack(tItem, 1, 1)); - } - if (tName.equals("tile.enderchest")) { - GT_OreDictUnificator.registerOre(OreDictNames.enderChest, new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("tile.autoWorkbenchBlock")) { - GT_OreDictUnificator.registerOre(OreDictNames.craftingWorkBench, new ItemStack(tItem, 1, 0)); - } - if (tName.equals("tile.pumpBlock")) - { - GT_OreDictUnificator.registerOre(OreDictNames.craftingPump, new ItemStack(tItem, 1, 0)); - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "BCPump", false)) { - GT_ModHandler.removeRecipeByOutput(new ItemStack(tItem, 1, 0)); - } - } - if (tName.equals("tile.tankBlock")) { - GT_OreDictUnificator.registerOre(OreDictNames.craftingTank, new ItemStack(tItem, 1, 0)); - } - if (tName.equals("item.drawplateDiamond")) { - GT_OreDictUnificator.registerOre(ToolDictNames.craftingToolDrawplate, new ItemStack(tItem, 1, 32767)); - } + implements Runnable { + public void run() { + GT_Log.out.println("GT_Mod: Scanning for certain kinds of compatible Machineblocks."); + ItemStack tStack2; + ItemStack tStack; + if (null != (tStack = GT_ModHandler.getRecipeOutput(new ItemStack[]{tStack2 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 1L), tStack2, tStack2, tStack2, null, tStack2, tStack2, tStack2, tStack2}))) { + GT_ModHandler.addPulverisationRecipe(tStack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bronze, 8L), null, 0, false); + GT_ModHandler.addSmeltingRecipe(tStack, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 8L)); + } + if (null != (tStack = GT_ModHandler.getRecipeOutput(new ItemStack[]{tStack2 = GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Bronze, 1L), tStack2, tStack2, tStack2, null, tStack2, tStack2, tStack2, tStack2}))) { + GT_OreDictUnificator.registerOre(OreDictNames.craftingRawMachineTier00, tStack); + GT_ModHandler.addPulverisationRecipe(tStack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bronze, 8L), null, 0, false); + GT_ModHandler.addSmeltingRecipe(tStack, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 8L)); + } + ItemStack tStack3; + if (null != (tStack = GT_ModHandler.getRecipeOutput(new ItemStack[]{tStack2 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), tStack3 = new ItemStack(Blocks.glass, 1, 0), tStack2, tStack3, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Gold, 1L), tStack3, tStack2, tStack3, tStack2}))) { + GT_ModHandler.addPulverisationRecipe(tStack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 4L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 1L), 0, false); + } + if (null != (tStack = GT_ModHandler.getRecipeOutput(new ItemStack[]{tStack2 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), tStack3 = new ItemStack(Blocks.glass, 1, 0), tStack2, tStack3, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Gold, 1L), tStack3, tStack2, tStack3, tStack2}))) { + GT_ModHandler.addPulverisationRecipe(tStack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 4L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 1L), 0, false); + } + GT_Log.out.println("GT_Mod: Registering various Tools to be usable on GregTech Machines"); + GregTech_API.registerScrewdriver(GT_ModHandler.getRecipeOutput(new ItemStack[]{null, new ItemStack(Items.iron_ingot, 1), null, new ItemStack(Items.stick, 1)})); + GregTech_API.registerScrewdriver(GT_ModHandler.getRecipeOutput(new ItemStack[]{new ItemStack(Items.iron_ingot, 1), null, null, null, new ItemStack(Items.stick, 1)})); + + GT_Log.out.println("GT_Mod: Adding Food Recipes to the Automatic Canning Machine. (also during the following Item Iteration)"); + GT_Values.RA.addCannerRecipe(new ItemStack(Items.rotten_flesh, 1, 32767), ItemList.IC2_Food_Can_Empty.get(4L, new Object[0]), ItemList.IC2_Food_Can_Spoiled.get(4L, new Object[0]), null, 200, 1); + GT_Values.RA.addCannerRecipe(new ItemStack(Items.spider_eye, 1, 32767), ItemList.IC2_Food_Can_Empty.get(2L, new Object[0]), ItemList.IC2_Food_Can_Spoiled.get(2L, new Object[0]), null, 100, 1); + GT_Values.RA.addCannerRecipe(ItemList.Food_Poisonous_Potato.get(1L, new Object[0]), ItemList.IC2_Food_Can_Empty.get(2L, new Object[0]), ItemList.IC2_Food_Can_Spoiled.get(2L, new Object[0]), null, 100, 1); + GT_Values.RA.addCannerRecipe(new ItemStack(Items.cake, 1, 32767), ItemList.IC2_Food_Can_Empty.get(12L, new Object[0]), ItemList.IC2_Food_Can_Filled.get(12L, new Object[0]), null, 600, 1); + GT_Values.RA.addCannerRecipe(new ItemStack(Items.mushroom_stew, 1, 32767), ItemList.IC2_Food_Can_Empty.get(6L, new Object[0]), ItemList.IC2_Food_Can_Filled.get(6L, new Object[0]), new ItemStack(Items.bowl, 1), 300, 1); + + GT_Log.out.println("GT_Mod: Scanning ItemList."); + + Iterator tIterator = Item.itemRegistry.iterator(); + while (tIterator.hasNext()) { + Object tObject; + if (((tObject = tIterator.next()) != null) && ((tObject instanceof Item)) && (!(tObject instanceof GT_Generic_Item))) { + Item tItem = (Item) tObject; + String tName; + if ((tName = tItem.getUnlocalizedName()) != null) { + try { + if ((tItem instanceof IToolCrowbar)) { + if ((!tItem.isDamageable()) && (!GT_ModHandler.isElectricItem(new ItemStack(tItem, 1, 0)))) { + if ((GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "infiniteDurabilityRCCrowbars", false)) && + (GT_ModHandler.removeRecipeByOutput(new ItemStack(tItem, 1, 32767)))) { + GT_Log.out.println("GT_Mod: Removed infinite RC Crowbar: " + tName); + } + } else if (GregTech_API.registerCrowbar(new ItemStack(tItem, 1, 32767))) { + GT_Log.out.println("GT_Mod: Registered valid RC Crowbar: " + tName); + } + } + } catch (Throwable e) { + } + try { + if ((tItem instanceof IToolWrench)) { + if ((!tItem.isDamageable()) && (!GT_ModHandler.isElectricItem(new ItemStack(tItem, 1, 0)))) { + if ((GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "infiniteDurabilityBCWrenches", false)) && + (GT_ModHandler.removeRecipeByOutput(new ItemStack(tItem, 1, 32767)))) { + GT_Log.out.println("GT_Mod: Removed infinite BC Wrench: " + tName); + } + } else if (GregTech_API.registerWrench(new ItemStack(tItem, 1, 32767))) { + GT_Log.out.println("GT_Mod: Registered valid BC Wrench: " + tName); + } + } + } catch (Throwable e) { + } + Block tBlock = GT_Utility.getBlockFromStack(new ItemStack(tItem, 1, 0)); + if (tBlock != null) { + if (tName.endsWith("beehives")) { + tBlock.setHarvestLevel("scoop", 0); + gregtech.common.tools.GT_Tool_Scoop.sBeeHiveMaterial = tBlock.getMaterial(); + } + if (OrePrefixes.stone.mDefaultStackSize < tItem.getItemStackLimit(new ItemStack(tItem, 1, 0))) { + try { + if ((tBlock.isReplaceableOreGen(GT_Values.DW, 0, 0, 0, Blocks.stone)) || (tBlock.isReplaceableOreGen(GT_Values.DW, 0, 0, 0, Blocks.netherrack)) || (tBlock.isReplaceableOreGen(GT_Values.DW, 0, 0, 0, Blocks.end_stone))) { + tItem.setMaxStackSize(OrePrefixes.stone.mDefaultStackSize); + } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } + } + if (((tItem instanceof ItemFood)) && (tItem != ItemList.IC2_Food_Can_Filled.getItem()) && (tItem != ItemList.IC2_Food_Can_Spoiled.getItem())) { + int tFoodValue = ((ItemFood) tItem).func_150905_g(new ItemStack(tItem, 1, 0)); + if (tFoodValue > 0) { + GT_Values.RA.addCannerRecipe(new ItemStack(tItem, 1, 32767), ItemList.IC2_Food_Can_Empty.get(tFoodValue, new Object[0]), ItemList.IC2_Food_Can_Filled.get(tFoodValue, new Object[0]), GT_Utility.getContainerItem(new ItemStack(tItem, 1, 0), true), tFoodValue * 100, 1); + } + } + if ((tItem instanceof IFluidContainerItem)) { + GT_OreDictUnificator.addToBlacklist(new ItemStack(tItem, 1, 32767)); + } + if ((tName.equals("item.ItemSensorLocationCard")) || (tName.equals("item.ItemEnergySensorLocationCard")) || (tName.equals("item.ItemEnergyArrayLocationCard")) || (tName.equals("item.ItemTextCard"))) { + GT_Values.RA.addAssemblerRecipe(new ItemStack(tItem, 1, 32767), null, ItemList.Circuit_Basic.get(2L, new Object[0]), 200, 32); + } + if (tName.equals("item.ItemTimeCard")) { + GT_Values.RA.addAssemblerRecipe(new ItemStack(tItem, 1, 32767), null, ItemList.Circuit_Basic.get(1L, new Object[0]), 100, 32); + } + if (tName.equals("tile.ArsMagica:ore_vinteum")) { + GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Vinteum, new ItemStack(tItem, 1, 0)); + } + if (tName.equals("item.ArsMagica:purified_vinteum")) { + GT_Values.RA.addFuel(new ItemStack(tItem, 1, 0), null, 256, 5); + } + if ((tName.equals("item.fieryBlood")) || (tName.equals("item.fieryTears"))) { + GT_Values.RA.addFuel(new ItemStack(tItem, 1, 0), null, 2048, 5); + } + if (tName.equals("tile.TFRoots")) { + GT_ModHandler.addPulverisationRecipe(new ItemStack(tItem, 1, 0), new ItemStack(Items.stick, 2), new ItemStack(Items.stick, 1), 30); + GT_ModHandler.addSawmillRecipe(new ItemStack(tItem, 1, 0), new ItemStack(Items.stick, 4), new ItemStack(Items.stick, 2)); + GT_Values.RA.addFuel(new ItemStack(tItem, 1, 1), new ItemStack(Items.stick, 4), 32, 5); + } + if (tName.equals("item.tconstruct.manual")) { + GT_OreDictUnificator.registerOre("bookTinkersManual", new ItemStack(tItem, 1, 32767)); + } + if (tName.equals("item.ArsMagica:spell_parchment")) { + GT_OreDictUnificator.registerOre("paperArsSpellParchment", new ItemStack(tItem, 1, 32767)); + } + if (tName.equals("item.ArsMagica:spell_recipe")) { + GT_OreDictUnificator.registerOre("paperArsSpellRecipe", new ItemStack(tItem, 1, 32767)); + } + if (tName.equals("item.ArsMagica:spell_book")) { + GT_OreDictUnificator.registerOre("bookArsSpells", new ItemStack(tItem, 1, 32767)); + } + if (tName.equals("item.myst.page")) { + GT_OreDictUnificator.registerOre("paperMystcraft", new ItemStack(tItem, 1, 32767)); + } + if (tName.equals("item.myst.agebook")) { + GT_OreDictUnificator.registerOre("bookMystcraftAge", new ItemStack(tItem, 1, 32767)); + } + if (tName.equals("item.myst.linkbook")) { + GT_OreDictUnificator.registerOre("bookMystcraftLink", new ItemStack(tItem, 1, 32767)); + } + if (tName.equals("item.myst.notebook")) { + GT_OreDictUnificator.registerOre("bookNotes", new ItemStack(tItem, 1, 32767)); + } + if (tName.equals("item.itemManuelBook")) { + GT_OreDictUnificator.registerOre("bookWritten", new ItemStack(tItem, 1, 0)); + } + if (tName.equals("item.blueprintItem")) { + GT_OreDictUnificator.registerOre("paperBlueprint", new ItemStack(tItem, 1, 32767)); + } + if (tName.equals("item.ccprintout")) { + GT_OreDictUnificator.registerOre("paperWritten", new ItemStack(tItem, 1, 0)); + GT_OreDictUnificator.registerOre("paperWritten", new ItemStack(tItem, 1, 1)); + GT_OreDictUnificator.registerOre("bookWritten", new ItemStack(tItem, 1, 2)); + } + if (tName.equals("item.blueprintItem")) { + GT_OreDictUnificator.registerOre("paperBlueprint", new ItemStack(tItem, 1, 32767)); + } + if (tName.equals("item.wirelessmap")) { + GT_OreDictUnificator.registerOre("paperMap", new ItemStack(tItem, 1, 32767)); + } + if (tName.equals("item.ItemResearchNotes")) { + GT_OreDictUnificator.registerOre("paperResearch", new ItemStack(tItem, 1, 32767)); + } + if (tName.equals("item.ItemThaumonomicon")) { + GT_OreDictUnificator.registerOre("bookThaumonomicon", new ItemStack(tItem, 1, 32767)); + } + if (tName.equals("item.ligniteCoal")) { + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Lignite, new ItemStack(tItem, 1, 0)); + } + if ((tName.equals("tile.extrabiomes.redrock")) || (tName.equals("tile.bop.redRocks"))) { + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Redrock, new ItemStack(tItem, 1, 0)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Redrock, new ItemStack(tItem, 1, 1)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Redrock, new ItemStack(tItem, 1, 2)); + } + if (tName.equals("tile.rpstone")) { + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Marble, new ItemStack(tItem, 1, 0)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 1)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Marble, new ItemStack(tItem, 1, 2)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 3)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 4)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 5)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 6)); + } + if ((tName.equals("tile.sedimentaryStone")) || ((tName.equals("tile.igneousStone")) || (tName.equals("tile.igneousStoneBrick")) || (tName.equals("tile.igneousCobblestone")))) { + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(tItem, 1, 0)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(tItem, 1, 1)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Rhyolite, new ItemStack(tItem, 1, 2)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Andesite, new ItemStack(tItem, 1, 3)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Gabbro, new ItemStack(tItem, 1, 4)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 5)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Komatiite, new ItemStack(tItem, 1, 6)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Dacite, new ItemStack(tItem, 1, 7)); + + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(tItem, 1, 8)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(tItem, 1, 9)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Rhyolite, new ItemStack(tItem, 1, 10)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Andesite, new ItemStack(tItem, 1, 11)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Gabbro, new ItemStack(tItem, 1, 12)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 13)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Komatiite, new ItemStack(tItem, 1, 14)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Dacite, new ItemStack(tItem, 1, 15)); + } + if ((tName.equals("tile.metamorphicStone")) || (tName.equals("tile.metamorphicStoneBrick")) || (tName.equals("tile.metamorphicCobblestone"))) { + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Gneiss, new ItemStack(tItem, 1, 0)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Eclogite, new ItemStack(tItem, 1, 1)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Marble, new ItemStack(tItem, 1, 2)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Quartzite, new ItemStack(tItem, 1, 3)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Blueschist, new ItemStack(tItem, 1, 4)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Greenschist, new ItemStack(tItem, 1, 5)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Soapstone, new ItemStack(tItem, 1, 6)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Migmatite, new ItemStack(tItem, 1, 7)); + + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Gneiss, new ItemStack(tItem, 1, 8)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Eclogite, new ItemStack(tItem, 1, 9)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Marble, new ItemStack(tItem, 1, 10)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Quartzite, new ItemStack(tItem, 1, 11)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Blueschist, new ItemStack(tItem, 1, 12)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Greenschist, new ItemStack(tItem, 1, 13)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Soapstone, new ItemStack(tItem, 1, 14)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Migmatite, new ItemStack(tItem, 1, 15)); + } + if (tName.equals("tile.blockCosmeticSolid")) { + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Obsidian, new ItemStack(tItem, 1, 0)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Obsidian, new ItemStack(tItem, 1, 1)); + } + if (tName.equals("tile.enderchest")) { + GT_OreDictUnificator.registerOre(OreDictNames.enderChest, new ItemStack(tItem, 1, 32767)); + } + if (tName.equals("tile.autoWorkbenchBlock")) { + GT_OreDictUnificator.registerOre(OreDictNames.craftingWorkBench, new ItemStack(tItem, 1, 0)); + } + if (tName.equals("tile.pumpBlock")) { + GT_OreDictUnificator.registerOre(OreDictNames.craftingPump, new ItemStack(tItem, 1, 0)); + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "BCPump", false)) { + GT_ModHandler.removeRecipeByOutput(new ItemStack(tItem, 1, 0)); + } + } + if (tName.equals("tile.tankBlock")) { + GT_OreDictUnificator.registerOre(OreDictNames.craftingTank, new ItemStack(tItem, 1, 0)); + } + if (tName.equals("item.drawplateDiamond")) { + GT_OreDictUnificator.registerOre(ToolDictNames.craftingToolDrawplate, new ItemStack(tItem, 1, 32767)); + } + } + } } - } } - } } diff --git a/src/main/java/gregtech/loaders/load/GT_SonictronLoader.java b/src/main/java/gregtech/loaders/load/GT_SonictronLoader.java index 0d22d1b3..1aa13ca9 100644 --- a/src/main/java/gregtech/loaders/load/GT_SonictronLoader.java +++ b/src/main/java/gregtech/loaders/load/GT_SonictronLoader.java @@ -2,159 +2,154 @@ package gregtech.loaders.load; import gregtech.GT_Mod; import gregtech.api.util.GT_Log; -import gregtech.common.GT_Proxy; -import java.io.PrintStream; -import java.util.ArrayList; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class GT_SonictronLoader - implements Runnable -{ - public void run() - { - GT_Log.out.println("GT_Mod: Loading Sonictron Sounds"); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.iron_block, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("note.harp"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(25)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.gold_block, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("note.pling"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(25)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.stone, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("note.bd"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(25)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.log, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("note.bassattack"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(25)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.planks, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("note.bass"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(25)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.glass, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("note.hat"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(25)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.sand, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("note.snare"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(25)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.record_cat, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("streaming."); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(12)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.tnt, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("random.explode"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(3)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.fire, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("fire.fire"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.flint_and_steel, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("fire.ignite"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.lava, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("liquid.lavapop"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.water, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("liquid.water"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.water_bucket, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("liquid.splash"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.lava_bucket, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("random.fizz"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.portal, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("portal.portal"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.end_portal, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("portal.travel"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.end_portal_frame, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("portal.trigger"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.glass_pane, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("random.glass"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.ender_pearl, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("random.orb"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.ender_eye, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("random.levelup"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.stone_button, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("random.click"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.cobblestone, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("damage.fallbig"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.dirt, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("damage.fallsmall"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.iron_sword, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("damage.hurtflesh"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.diamond_sword, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("random.hurt"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.bow, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("random.bow"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.arrow, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("random.drr"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.fishing_rod, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("random.bowhit"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.iron_shovel, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("random.break"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.bucket, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("random.breath"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.potionitem, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("random.drink"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.glass_bottle, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("random.burp"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.ender_chest == null ? Blocks.obsidian : Blocks.ender_chest, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("random.chestopen"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.chest, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("random.chestclosed"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.iron_door, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("random.door_open"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.wooden_door, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("random.door_close"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.porkchop, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("random.eat"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.wool, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("step.cloth"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.grass, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("step.grass"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.gravel, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("step.gravel"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.snow, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("step.snow"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.piston, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("tile.piston.out"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.sticky_piston, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("tile.piston.in"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.mossy_cobblestone, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("ambient.cave.cave"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.lapis_block, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("ambient.weather.rain"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.diamond_block, 1)); - GT_Mod.gregtechproxy.mSoundNames.add("ambient.weather.thunder"); - GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); - } + implements Runnable { + public void run() { + GT_Log.out.println("GT_Mod: Loading Sonictron Sounds"); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.iron_block, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("note.harp"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(25)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.gold_block, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("note.pling"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(25)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.stone, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("note.bd"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(25)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.log, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("note.bassattack"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(25)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.planks, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("note.bass"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(25)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.glass, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("note.hat"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(25)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.sand, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("note.snare"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(25)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.record_cat, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("streaming."); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(12)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.tnt, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("random.explode"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(3)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.fire, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("fire.fire"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.flint_and_steel, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("fire.ignite"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.lava, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("liquid.lavapop"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.water, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("liquid.water"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.water_bucket, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("liquid.splash"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.lava_bucket, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("random.fizz"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.portal, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("portal.portal"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.end_portal, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("portal.travel"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.end_portal_frame, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("portal.trigger"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.glass_pane, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("random.glass"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.ender_pearl, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("random.orb"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.ender_eye, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("random.levelup"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.stone_button, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("random.click"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.cobblestone, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("damage.fallbig"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.dirt, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("damage.fallsmall"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.iron_sword, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("damage.hurtflesh"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.diamond_sword, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("random.hurt"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.bow, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("random.bow"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.arrow, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("random.drr"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.fishing_rod, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("random.bowhit"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.iron_shovel, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("random.break"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.bucket, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("random.breath"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.potionitem, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("random.drink"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.glass_bottle, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("random.burp"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.ender_chest == null ? Blocks.obsidian : Blocks.ender_chest, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("random.chestopen"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.chest, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("random.chestclosed"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.iron_door, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("random.door_open"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.wooden_door, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("random.door_close"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Items.porkchop, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("random.eat"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.wool, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("step.cloth"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.grass, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("step.grass"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.gravel, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("step.gravel"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.snow, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("step.snow"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.piston, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("tile.piston.out"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.sticky_piston, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("tile.piston.in"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.mossy_cobblestone, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("ambient.cave.cave"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.lapis_block, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("ambient.weather.rain"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + GT_Mod.gregtechproxy.mSoundItems.add(new ItemStack(Blocks.diamond_block, 1)); + GT_Mod.gregtechproxy.mSoundNames.add("ambient.weather.thunder"); + GT_Mod.gregtechproxy.mSoundCounts.add(Integer.valueOf(1)); + } } diff --git a/src/main/java/gregtech/loaders/misc/GT_Achievements.java b/src/main/java/gregtech/loaders/misc/GT_Achievements.java index 73c29a32..0b0aada7 100644 --- a/src/main/java/gregtech/loaders/misc/GT_Achievements.java +++ b/src/main/java/gregtech/loaders/misc/GT_Achievements.java @@ -1,11 +1,5 @@ package gregtech.loaders.misc; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -import thaumcraft.api.ThaumcraftApi; -import thaumcraft.api.ThaumcraftApiHelper; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.eventhandler.SubscribeEvent; @@ -16,24 +10,14 @@ import gregtech.api.GregTech_API; import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; -import gregtech.api.enums.OreDictNames; import gregtech.api.enums.OrePrefixes; -import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.objects.ItemData; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Utility; -import gregtech.common.blocks.GT_Block_Casings1; -import gregtech.common.blocks.GT_TileEntity_Ores; -import gregtech.common.items.GT_MetaGenerated_Item_01; import gregtech.common.items.GT_MetaGenerated_Tool_01; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; import net.minecraft.init.Items; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.stats.Achievement; import net.minecraft.stats.AchievementList; @@ -42,459 +26,472 @@ import net.minecraftforge.common.AchievementPage; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.player.EntityItemPickupEvent; import net.minecraftforge.fluids.FluidStack; +import thaumcraft.api.ThaumcraftApiHelper; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; public class GT_Achievements { - public HashMap achievementList; - public HashMap issuedAchievements; -public int adjX = 5; -public int adjY = 9; - - public GT_Achievements() { - this.achievementList = new HashMap(); - this.issuedAchievements = new HashMap(); - for (int i = 0; i < oreList.size(); i++) { - if (GT_Values.D1 && this.achievementList.get(oreList.get(i).name()) == null) { - GT_Log.out.println("achievement." + oreList.get(i).name() + "=Find " + oreList.get(i).name() + " Ore"); - GT_Log.out.println("achievement." + oreList.get(i).name() + ".desc=Height: " + (oreStats.get(i)[0]) + "-" + (oreStats.get(i)[1]) + ", Chance: "+ (oreStats.get(i)[2]) + ", " + (oreStats.get(i)[3] == 1 ? "Overworld" : "") + "/" + (oreStats.get(i)[4] == 1 ? "Nether" : "") + "/"+ (oreStats.get(i)[5] == 1 ? "End" : "")); - } - registerOreAchievement(oreList.get(i)); - } - registerAchievement("flintpick", 0, 0, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(2, 1, Materials.Flint, Materials.Wood, null), "", false); - registerAchievement("crops", -4, 0, GT_ModHandler.getIC2Item("crop", 1L), "flintpick", false); - registerAchievement("havestlead", -4, 2, ItemList.Crop_Drop_Plumbilia.get(1, new Object[] {}), "crops", false); - registerAchievement("havestcopper", -2, 1, ItemList.Crop_Drop_Coppon.get(1, new Object[] {}), "crops", false); - registerAchievement("havesttin", -2, -1, ItemList.Crop_Drop_Tine.get(1, new Object[] {}), "crops", false); - registerAchievement("havestoil", -4, -4, ItemList.Crop_Drop_OilBerry.get(1, new Object[] {}), "crops", false); - registerAchievement("havestiron", -2, -3, ItemList.Crop_Drop_Ferru.get(1, new Object[] {}), "crops", false); - registerAchievement("havestgold", -2, -6, ItemList.Crop_Drop_Aurelia.get(1, new Object[] {}), "havestiron", false); - registerAchievement("havestsilver", -4, -5, ItemList.Crop_Drop_Argentia.get(1, new Object[] {}), "havestiron", false); - registerAchievement("havestemeralds", -2, -8, ItemList.Crop_Drop_BobsYerUncleRanks.get(1, new Object[] {}), "havestgold", false); + public static List oreList = new ArrayList(); + public static List oreStats = new ArrayList(); + public static int oreReg = -1; + public HashMap achievementList; + public HashMap issuedAchievements; + public int adjX = 5; + public int adjY = 9; - registerAchievement("tools", 0, 4, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(12, 1, Materials.Iron, Materials.Wood, null), "flintpick", false); - registerAchievement("driltime", 2, 4, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(100, 1, Materials.BlueSteel, Materials.StainlessSteel, null),"tools", false); - registerAchievement("brrrr", 2, 6, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(110, 1, Materials.BlueSteel, Materials.StainlessSteel, null),"driltime", false); - registerAchievement("highpowerdrill", 3, 5,GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(104, 1, Materials.TungstenSteel, Materials.TungstenSteel, null), "driltime", false); - registerAchievement("hammertime", 3, 7,GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(130, 1, Materials.TungstenSteel, Materials.TungstenSteel, null), "highpowerdrill", false); - registerAchievement("repair", 4, 5, ItemList.Machine_HV_Disassembler.get(1, new Object[] {}), "highpowerdrill", false); + public GT_Achievements() { + this.achievementList = new HashMap(); + this.issuedAchievements = new HashMap(); + for (int i = 0; i < oreList.size(); i++) { + if (GT_Values.D1 && this.achievementList.get(oreList.get(i).name()) == null) { + GT_Log.out.println("achievement." + oreList.get(i).name() + "=Find " + oreList.get(i).name() + " Ore"); + GT_Log.out.println("achievement." + oreList.get(i).name() + ".desc=Height: " + (oreStats.get(i)[0]) + "-" + (oreStats.get(i)[1]) + ", Chance: " + (oreStats.get(i)[2]) + ", " + (oreStats.get(i)[3] == 1 ? "Overworld" : "") + "/" + (oreStats.get(i)[4] == 1 ? "Nether" : "") + "/" + (oreStats.get(i)[5] == 1 ? "End" : "")); + } + registerOreAchievement(oreList.get(i)); + } + registerAchievement("flintpick", 0, 0, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(2, 1, Materials.Flint, Materials.Wood, null), "", false); + registerAchievement("crops", -4, 0, GT_ModHandler.getIC2Item("crop", 1L), "flintpick", false); + registerAchievement("havestlead", -4, 2, ItemList.Crop_Drop_Plumbilia.get(1, new Object[]{}), "crops", false); + registerAchievement("havestcopper", -2, 1, ItemList.Crop_Drop_Coppon.get(1, new Object[]{}), "crops", false); + registerAchievement("havesttin", -2, -1, ItemList.Crop_Drop_Tine.get(1, new Object[]{}), "crops", false); + registerAchievement("havestoil", -4, -4, ItemList.Crop_Drop_OilBerry.get(1, new Object[]{}), "crops", false); + registerAchievement("havestiron", -2, -3, ItemList.Crop_Drop_Ferru.get(1, new Object[]{}), "crops", false); + registerAchievement("havestgold", -2, -6, ItemList.Crop_Drop_Aurelia.get(1, new Object[]{}), "havestiron", false); + registerAchievement("havestsilver", -4, -5, ItemList.Crop_Drop_Argentia.get(1, new Object[]{}), "havestiron", false); + registerAchievement("havestemeralds", -2, -8, ItemList.Crop_Drop_BobsYerUncleRanks.get(1, new Object[]{}), "havestgold", false); - registerAchievement("unitool", -2, 4, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(32, 1, Materials.Steel, Materials.Iron, null), "tools", false); - registerAchievement("recycling", -4, 4, ItemList.Machine_LV_ArcFurnace.get(1, new Object[] {}), "unitool", false); + registerAchievement("tools", 0, 4, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(12, 1, Materials.Iron, Materials.Wood, null), "flintpick", false); + registerAchievement("driltime", 2, 4, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(100, 1, Materials.BlueSteel, Materials.StainlessSteel, null), "tools", false); + registerAchievement("brrrr", 2, 6, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(110, 1, Materials.BlueSteel, Materials.StainlessSteel, null), "driltime", false); + registerAchievement("highpowerdrill", 3, 5, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(104, 1, Materials.TungstenSteel, Materials.TungstenSteel, null), "driltime", false); + registerAchievement("hammertime", 3, 7, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(130, 1, Materials.TungstenSteel, Materials.TungstenSteel, null), "highpowerdrill", false); + registerAchievement("repair", 4, 5, ItemList.Machine_HV_Disassembler.get(1, new Object[]{}), "highpowerdrill", false); - registerAchievement("crushed", 0, 6, GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Tin, 1L), "tools", false); - registerAchievement("cleandust", 0, 10, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), "crushed", false); - registerAchievement("washing", -2, 6, GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Iron, 1L), "crushed", false); - registerAchievement("spinit", -4, 6, GT_OreDictUnificator.get(OrePrefixes.crushedCentrifuged, Materials.Redstone, 1L), "crushed", false); - registerAchievement("newfuel", -4, 8, ItemList.ThoriumCell_4.get(1, new Object[] {}), "spinit", false); - registerAchievement("newmetal", -4, 10, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lutetium, 1L), "newfuel", false); - registerAchievement("reflect", -2, 9, ItemList.Neutron_Reflector.get(1, new Object[] {}), "newfuel", false); + registerAchievement("unitool", -2, 4, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(32, 1, Materials.Steel, Materials.Iron, null), "tools", false); + registerAchievement("recycling", -4, 4, ItemList.Machine_LV_ArcFurnace.get(1, new Object[]{}), "unitool", false); - registerAchievement("bronze", 2, 0, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bronze, 1L), "flintpick", false); - registerAchievement("simplyeco", 2, 2, ItemList.Machine_Bronze_Boiler_Solar.get(1, new Object[] {}), "bronze", false); - registerAchievement("firststeam", 2, -2, ItemList.Machine_Bronze_Boiler.get(1, new Object[] {}), "bronze", false); - registerAchievement("alloysmelter", 2, -4, ItemList.Machine_Bronze_AlloySmelter.get(1, new Object[] {}), "firststeam", false); - registerAchievement("macerator", 0, -2, ItemList.Machine_Bronze_Macerator.get(1, new Object[] {}), "firststeam", false); - registerAchievement("extract", 0, -4, ItemList.Machine_Bronze_Extractor.get(1, new Object[] {}), "alloysmelter", false); + registerAchievement("crushed", 0, 6, GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Tin, 1L), "tools", false); + registerAchievement("cleandust", 0, 10, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), "crushed", false); + registerAchievement("washing", -2, 6, GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Iron, 1L), "crushed", false); + registerAchievement("spinit", -4, 6, GT_OreDictUnificator.get(OrePrefixes.crushedCentrifuged, Materials.Redstone, 1L), "crushed", false); + registerAchievement("newfuel", -4, 8, ItemList.ThoriumCell_4.get(1, new Object[]{}), "spinit", false); + registerAchievement("newmetal", -4, 10, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lutetium, 1L), "newfuel", false); + registerAchievement("reflect", -2, 9, ItemList.Neutron_Reflector.get(1, new Object[]{}), "newfuel", false); - registerAchievement("smallparts", 0, -8, ItemList.Circuit_Primitive.get(1, new Object[] {}), "extract", false); - registerAchievement("bettercircuits", 0, -10, ItemList.Circuit_Good.get(1, new Object[] {}), "smallparts", false); - registerAchievement("stepforward", -2, -10, ItemList.Circuit_Advanced.get(1, new Object[] {}), "bettercircuits", false); - registerAchievement("energyflow", -4, -10, ItemList.Circuit_Master.get(1, new Object[] {}), "stepforward", false); - registerAchievement("orbs", -6, -10, ItemList.Energy_LapotronicOrb.get(1, new Object[] {}), "energyflow", false); - registerAchievement("thatspower", -8, -10, ItemList.Energy_LapotronicOrb2.get(1, new Object[] {}), "orbs", false); - registerAchievement("datasaving", -2, -12, ItemList.Tool_DataOrb.get(1, new Object[] {}), "stepforward", false); - registerAchievement("superbuffer", 0, -12, ItemList.Automation_SuperBuffer_LV.get(1, new Object[] {}), "datasaving", false); - registerAchievement("newstorage", -2, -14, ItemList.Quantum_Chest_HV.get(1, new Object[] {}), "superbuffer", false); - registerAchievement("whereistheocean", 2, -14, ItemList.Quantum_Tank_IV.get(1, new Object[] {}), "superbuffer", false); - registerAchievement("luck", 2, -6, ItemList.ZPM.get(1, new Object[] {}), "", false); - - registerAchievement("steel", 4, 0, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), "bronze", false); - registerAchievement("highpressure", 4, 2, ItemList.Machine_Steel_Boiler.get(1, new Object[] {}), "steel", false); - registerAchievement("extremepressure", 4, 4, ItemList.Machine_Multi_LargeBoiler_Steel.get(1, new Object[] {}), "highpressure", false); - registerAchievement("cheapermac", 6, 1, ItemList.Machine_LV_Hammer.get(1, new Object[] {}), "steel", false); - registerAchievement("complexalloys", 6, 3, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.BlueSteel, 1L), "cheapermac", false); - - registerAchievement("magneticiron", 4, -2, GT_OreDictUnificator.get(OrePrefixes.stick, Materials.IronMagnetic, 1L), "steel", false); - registerAchievement("lvmotor", 4, -6, ItemList.Electric_Motor_LV.get(1, new Object[] {}), "magneticiron", false); - registerAchievement("pumpcover", 2, -8, ItemList.Electric_Pump_LV.get(1, new Object[] {}), "lvmotor", false); - registerAchievement("closeit", 2, -10, ItemList.Cover_Shutter.get(1, new Object[] {}), "pumpcover", false); - registerAchievement("slurp", 2, -12, ItemList.Pump_HV.get(1, new Object[] {}), "closeit", false); - registerAchievement("transport", 4, -10, ItemList.Conveyor_Module_LV.get(1, new Object[] {}), "lvmotor", false); - registerAchievement("manipulation", 4, -12, ItemList.Cover_Controller.get(1, new Object[] {}), "transport", false); - registerAchievement("buffer", 4, -14, ItemList.Automation_ChestBuffer_LV.get(1, new Object[] {}), "manipulation", false); - registerAchievement("complexmachines", 6, -9, ItemList.Robot_Arm_LV.get(1, new Object[] {}), "lvmotor", false); - registerAchievement("avengers", 8, -11, ItemList.Machine_LV_Assembler.get(1, new Object[] {}), "complexmachines", false); - registerAchievement("filterregulate", 10, -11, ItemList.Component_Filter.get(1, new Object[] {}), "avengers", false); - - registerAchievement("steampower", 6, -6, ItemList.Generator_Steam_Turbine_LV.get(1, new Object[] {}), "lvmotor", false); - registerAchievement("batterys", 6, -4, ItemList.Battery_Buffer_2by2_MV.get(1, new Object[] {}), "steampower", false); - registerAchievement("badweather", 6, -8, ItemList.Casing_FireHazard.get(1, new Object[] {}), "steampower", false); - registerAchievement("electricproblems", 7, -7, ItemList.Casing_ExplosionHazard.get(1, new Object[] {}), "steampower", false); - registerAchievement("ebf", 8, -6, ItemList.Machine_Multi_BlastFurnace.get(1, new Object[] {}), "steampower", false); - registerAchievement("energyhatch", 12, -6, ItemList.Hatch_Energy_LV.get(1, new Object[] {}), "ebf", false); - - registerAchievement("gtaluminium", 8, 0, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Aluminium, 1L), "steel", false); - registerAchievement("highpowersmelt", 8, 2, ItemList.Machine_Multi_Furnace.get(1, new Object[] {}), "gtaluminium", false); - registerAchievement("oilplant", 8, 4, ItemList.Distillation_Tower.get(1, new Object[] {}), "highpowersmelt", false); - registerAchievement("factory", 8, 6, ItemList.Processing_Array.get(1, new Object[] {}), "oilplant", false); - registerAchievement("upgradeebf", 8, -2, ItemList.Hatch_Energy_MV.get(1, new Object[] {}), "gtaluminium", false); - registerAchievement("maintainance", 10, -2, ItemList.Hatch_Maintenance.get(1, new Object[] {}), "upgradeebf", false); - - registerAchievement("titan", 10, 0, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Titanium, 1L), "gtaluminium", false); - registerAchievement("magic", 10, 4, ItemList.MagicEnergyConverter_LV.get(1, new Object[] {}), "titan", false); - registerAchievement("highmage", 10, 6, ItemList.MagicEnergyAbsorber_HV.get(1, new Object[] {}), "magic", false); - registerAchievement("artificaldia", 11, 2, ItemList.IC2_Industrial_Diamond.get(1, new Object[] {}), "titan", false); - registerAchievement("muchsteam", 12, 1, ItemList.LargeSteamTurbine.get(1, new Object[] {}), "titan", false); - registerAchievement("efficientsteam", 12, 3, ItemList.LargeSteamTurbine.get(1, new Object[] {}), "muchsteam", false); - - registerAchievement("upgrade", 14, 0, ItemList.Casing_Coil_Kanthal.get(1, new Object[] {}), "titan", false); - registerAchievement("tungsten", 16, 0, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tungsten, 1L), "upgrade", false); - registerAchievement("hightech", 15, -1, ItemList.Field_Generator_LV.get(1, new Object[] {}), "tungsten", false); - registerAchievement("amplifier", 17, -3, ItemList.Machine_LV_Amplifab.get(1, new Object[] {}), "hightech", false); - registerAchievement("scanning", 13, -2, ItemList.Machine_HV_Scanner.get(1, new Object[] {}), "hightech", false); - registerAchievement("alienpower", 14, -4, ItemList.Generator_Naquadah_Mark_I.get(1, new Object[] {}), "hightech", false); - registerAchievement("universal", 15, -6, ItemList.Machine_LV_Massfab.get(1, new Object[] {}), "hightech", false); - registerAchievement("replication", 17, -6, ItemList.Machine_LV_Replicator.get(1, new Object[] {}), "universal", false); - - registerAchievement("upgrade2", 16, 6, ItemList.Casing_Coil_Nichrome.get(1, new Object[] {}), "tungsten", false); - registerAchievement("tungstensteel", 14, 6, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.TungstenSteel, 1L), "upgrade2", false); - registerAchievement("conducting", 12, 6, ItemList.Casing_Coil_Superconductor.get(1, new Object[] {}), "tungstensteel", false); - registerAchievement("fusion", 14, 8, ItemList.FusionComputer_LuV.get(1, new Object[] {}), "tungstensteel", false); - registerAchievement("higherefficency", 14, 10, ItemList.Generator_Plasma_IV.get(1, new Object[] {}), "fusion", false); - registerAchievement("advancing", 12, 8, ItemList.FusionComputer_ZPMV.get(1, new Object[] {}), "fusion", false); - registerAchievement("tothelimit", 12, 10, ItemList.Generator_Plasma_LuV.get(1, new Object[] {}), "advancing", false); - registerAchievement("denseaspossible", 10, 10, ItemList.FusionComputer_UV.get(1, new Object[] {}), "tothelimit", false); - registerAchievement("fullefficiency", 10, 12, ItemList.Generator_Plasma_ZPMV.get(1, new Object[] {}), "denseaspossible", false); - registerAchievement("whatnow", 8, 10, ItemList.ZPM2.get(1, new Object[] {}), "denseaspossible", false); + registerAchievement("bronze", 2, 0, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bronze, 1L), "flintpick", false); + registerAchievement("simplyeco", 2, 2, ItemList.Machine_Bronze_Boiler_Solar.get(1, new Object[]{}), "bronze", false); + registerAchievement("firststeam", 2, -2, ItemList.Machine_Bronze_Boiler.get(1, new Object[]{}), "bronze", false); + registerAchievement("alloysmelter", 2, -4, ItemList.Machine_Bronze_AlloySmelter.get(1, new Object[]{}), "firststeam", false); + registerAchievement("macerator", 0, -2, ItemList.Machine_Bronze_Macerator.get(1, new Object[]{}), "firststeam", false); + registerAchievement("extract", 0, -4, ItemList.Machine_Bronze_Extractor.get(1, new Object[]{}), "alloysmelter", false); - if(GT_Mod.gregtechproxy.mAchievements){ - AchievementPage.registerAchievementPage(new AchievementPage("GregTech 5", (Achievement[]) this.achievementList.values().toArray( - new Achievement[this.achievementList.size()]))); - MinecraftForge.EVENT_BUS.register(this); - FMLCommonHandler.instance().bus().register(this);} - } + registerAchievement("smallparts", 0, -8, ItemList.Circuit_Primitive.get(1, new Object[]{}), "extract", false); + registerAchievement("bettercircuits", 0, -10, ItemList.Circuit_Good.get(1, new Object[]{}), "smallparts", false); + registerAchievement("stepforward", -2, -10, ItemList.Circuit_Advanced.get(1, new Object[]{}), "bettercircuits", false); + registerAchievement("energyflow", -4, -10, ItemList.Circuit_Master.get(1, new Object[]{}), "stepforward", false); + registerAchievement("orbs", -6, -10, ItemList.Energy_LapotronicOrb.get(1, new Object[]{}), "energyflow", false); + registerAchievement("thatspower", -8, -10, ItemList.Energy_LapotronicOrb2.get(1, new Object[]{}), "orbs", false); + registerAchievement("datasaving", -2, -12, ItemList.Tool_DataOrb.get(1, new Object[]{}), "stepforward", false); + registerAchievement("superbuffer", 0, -12, ItemList.Automation_SuperBuffer_LV.get(1, new Object[]{}), "datasaving", false); + registerAchievement("newstorage", -2, -14, ItemList.Quantum_Chest_HV.get(1, new Object[]{}), "superbuffer", false); + registerAchievement("whereistheocean", 2, -14, ItemList.Quantum_Tank_IV.get(1, new Object[]{}), "superbuffer", false); + registerAchievement("luck", 2, -6, ItemList.ZPM.get(1, new Object[]{}), "", false); - public Achievement registerAchievement(String textId, int x, int y, ItemStack icon, Achievement requirement, boolean special) { - if(!GT_Mod.gregtechproxy.mAchievements){return null;}; - Achievement achievement = new Achievement(textId, textId, this.adjX + x, this.adjY+y, icon, requirement); - if (special) { - achievement.setSpecial(); - } - achievement.registerStat(); - if (GT_Values.D2) { - GT_Log.out.println("achievement." + textId + "="); - GT_Log.out.println("achievement." + textId + ".desc="); - } - this.achievementList.put(textId, achievement); - return achievement; - } + registerAchievement("steel", 4, 0, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), "bronze", false); + registerAchievement("highpressure", 4, 2, ItemList.Machine_Steel_Boiler.get(1, new Object[]{}), "steel", false); + registerAchievement("extremepressure", 4, 4, ItemList.Machine_Multi_LargeBoiler_Steel.get(1, new Object[]{}), "highpressure", false); + registerAchievement("cheapermac", 6, 1, ItemList.Machine_LV_Hammer.get(1, new Object[]{}), "steel", false); + registerAchievement("complexalloys", 6, 3, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.BlueSteel, 1L), "cheapermac", false); - public Achievement registerAchievement(String textId, int x, int y, ItemStack icon, String requirement, boolean special) { - if(!GT_Mod.gregtechproxy.mAchievements){return null;}; - Achievement achievement = new Achievement(textId, textId, this.adjX + x, this.adjY+y, icon, getAchievement(requirement)); - if (special) { - achievement.setSpecial(); - } - achievement.registerStat(); - if (GT_Values.D2) { - GT_Log.out.println("achievement." + textId + "="); - GT_Log.out.println("achievement." + textId + ".desc="); - } - this.achievementList.put(textId, achievement); - return achievement; - } + registerAchievement("magneticiron", 4, -2, GT_OreDictUnificator.get(OrePrefixes.stick, Materials.IronMagnetic, 1L), "steel", false); + registerAchievement("lvmotor", 4, -6, ItemList.Electric_Motor_LV.get(1, new Object[]{}), "magneticiron", false); + registerAchievement("pumpcover", 2, -8, ItemList.Electric_Pump_LV.get(1, new Object[]{}), "lvmotor", false); + registerAchievement("closeit", 2, -10, ItemList.Cover_Shutter.get(1, new Object[]{}), "pumpcover", false); + registerAchievement("slurp", 2, -12, ItemList.Pump_HV.get(1, new Object[]{}), "closeit", false); + registerAchievement("transport", 4, -10, ItemList.Conveyor_Module_LV.get(1, new Object[]{}), "lvmotor", false); + registerAchievement("manipulation", 4, -12, ItemList.Cover_Controller.get(1, new Object[]{}), "transport", false); + registerAchievement("buffer", 4, -14, ItemList.Automation_ChestBuffer_LV.get(1, new Object[]{}), "manipulation", false); + registerAchievement("complexmachines", 6, -9, ItemList.Robot_Arm_LV.get(1, new Object[]{}), "lvmotor", false); + registerAchievement("avengers", 8, -11, ItemList.Machine_LV_Assembler.get(1, new Object[]{}), "complexmachines", false); + registerAchievement("filterregulate", 10, -11, ItemList.Component_Filter.get(1, new Object[]{}), "avengers", false); - public static List oreList = new ArrayList(); - public static List oreStats = new ArrayList(); + registerAchievement("steampower", 6, -6, ItemList.Generator_Steam_Turbine_LV.get(1, new Object[]{}), "lvmotor", false); + registerAchievement("batterys", 6, -4, ItemList.Battery_Buffer_2by2_MV.get(1, new Object[]{}), "steampower", false); + registerAchievement("badweather", 6, -8, ItemList.Casing_FireHazard.get(1, new Object[]{}), "steampower", false); + registerAchievement("electricproblems", 7, -7, ItemList.Casing_ExplosionHazard.get(1, new Object[]{}), "steampower", false); + registerAchievement("ebf", 8, -6, ItemList.Machine_Multi_BlastFurnace.get(1, new Object[]{}), "steampower", false); + registerAchievement("energyhatch", 12, -6, ItemList.Hatch_Energy_LV.get(1, new Object[]{}), "ebf", false); - public static void registerOre(Materials aMaterial, int min, int max, int chance, boolean overworld, boolean nether, boolean end) { - if (aMaterial != Materials._NULL) { - oreList.add(aMaterial); - } - oreStats.add(new Integer[] { min, max, chance, overworld ? 1 : 0, nether ? 1 : 0, end ? 1 : 0 }); - } + registerAchievement("gtaluminium", 8, 0, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Aluminium, 1L), "steel", false); + registerAchievement("highpowersmelt", 8, 2, ItemList.Machine_Multi_Furnace.get(1, new Object[]{}), "gtaluminium", false); + registerAchievement("oilplant", 8, 4, ItemList.Distillation_Tower.get(1, new Object[]{}), "highpowersmelt", false); + registerAchievement("factory", 8, 6, ItemList.Processing_Array.get(1, new Object[]{}), "oilplant", false); + registerAchievement("upgradeebf", 8, -2, ItemList.Hatch_Energy_MV.get(1, new Object[]{}), "gtaluminium", false); + registerAchievement("maintainance", 10, -2, ItemList.Hatch_Maintenance.get(1, new Object[]{}), "upgradeebf", false); - public static int oreReg = -1; + registerAchievement("titan", 10, 0, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Titanium, 1L), "gtaluminium", false); + registerAchievement("magic", 10, 4, ItemList.MagicEnergyConverter_LV.get(1, new Object[]{}), "titan", false); + registerAchievement("highmage", 10, 6, ItemList.MagicEnergyAbsorber_HV.get(1, new Object[]{}), "magic", false); + registerAchievement("artificaldia", 11, 2, ItemList.IC2_Industrial_Diamond.get(1, new Object[]{}), "titan", false); + registerAchievement("muchsteam", 12, 1, ItemList.LargeSteamTurbine.get(1, new Object[]{}), "titan", false); + registerAchievement("efficientsteam", 12, 3, ItemList.LargeSteamTurbine.get(1, new Object[]{}), "muchsteam", false); - public Achievement registerOreAchievement(Materials aMaterial) { - if (this.achievementList.get(aMaterial.name()) == null) { - oreReg++; - return registerAchievement(aMaterial.name(), -(6 + oreReg % 5), ((oreReg) / 5) - 8, new ItemStack(GregTech_API.sBlockOres1, 1, - aMaterial.mMetaItemSubID), AchievementList.openInventory, false); - } - return null; - } + registerAchievement("upgrade", 14, 0, ItemList.Casing_Coil_Kanthal.get(1, new Object[]{}), "titan", false); + registerAchievement("tungsten", 16, 0, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tungsten, 1L), "upgrade", false); + registerAchievement("hightech", 15, -1, ItemList.Field_Generator_LV.get(1, new Object[]{}), "tungsten", false); + registerAchievement("amplifier", 17, -3, ItemList.Machine_LV_Amplifab.get(1, new Object[]{}), "hightech", false); + registerAchievement("scanning", 13, -2, ItemList.Machine_HV_Scanner.get(1, new Object[]{}), "hightech", false); + registerAchievement("alienpower", 14, -4, ItemList.Generator_Naquadah_Mark_I.get(1, new Object[]{}), "hightech", false); + registerAchievement("universal", 15, -6, ItemList.Machine_LV_Massfab.get(1, new Object[]{}), "hightech", false); + registerAchievement("replication", 17, -6, ItemList.Machine_LV_Replicator.get(1, new Object[]{}), "universal", false); - public void issueAchievement(EntityPlayer entityplayer, String textId) { - if(entityplayer==null||!GT_Mod.gregtechproxy.mAchievements){ - return; - } + registerAchievement("upgrade2", 16, 6, ItemList.Casing_Coil_Nichrome.get(1, new Object[]{}), "tungsten", false); + registerAchievement("tungstensteel", 14, 6, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.TungstenSteel, 1L), "upgrade2", false); + registerAchievement("conducting", 12, 6, ItemList.Casing_Coil_Superconductor.get(1, new Object[]{}), "tungstensteel", false); + registerAchievement("fusion", 14, 8, ItemList.FusionComputer_LuV.get(1, new Object[]{}), "tungstensteel", false); + registerAchievement("higherefficency", 14, 10, ItemList.Generator_Plasma_IV.get(1, new Object[]{}), "fusion", false); + registerAchievement("advancing", 12, 8, ItemList.FusionComputer_ZPMV.get(1, new Object[]{}), "fusion", false); + registerAchievement("tothelimit", 12, 10, ItemList.Generator_Plasma_LuV.get(1, new Object[]{}), "advancing", false); + registerAchievement("denseaspossible", 10, 10, ItemList.FusionComputer_UV.get(1, new Object[]{}), "tothelimit", false); + registerAchievement("fullefficiency", 10, 12, ItemList.Generator_Plasma_ZPMV.get(1, new Object[]{}), "denseaspossible", false); + registerAchievement("whatnow", 8, 10, ItemList.ZPM2.get(1, new Object[]{}), "denseaspossible", false); + + if (GT_Mod.gregtechproxy.mAchievements) { + AchievementPage.registerAchievementPage(new AchievementPage("GregTech 5", (Achievement[]) this.achievementList.values().toArray( + new Achievement[this.achievementList.size()]))); + MinecraftForge.EVENT_BUS.register(this); + FMLCommonHandler.instance().bus().register(this); + } + } + + public static void registerOre(Materials aMaterial, int min, int max, int chance, boolean overworld, boolean nether, boolean end) { + if (aMaterial != Materials._NULL) { + oreList.add(aMaterial); + } + oreStats.add(new Integer[]{min, max, chance, overworld ? 1 : 0, nether ? 1 : 0, end ? 1 : 0}); + } + + public Achievement registerAchievement(String textId, int x, int y, ItemStack icon, Achievement requirement, boolean special) { + if (!GT_Mod.gregtechproxy.mAchievements) { + return null; + } + ; + Achievement achievement = new Achievement(textId, textId, this.adjX + x, this.adjY + y, icon, requirement); + if (special) { + achievement.setSpecial(); + } + achievement.registerStat(); + if (GT_Values.D2) { + GT_Log.out.println("achievement." + textId + "="); + GT_Log.out.println("achievement." + textId + ".desc="); + } + this.achievementList.put(textId, achievement); + return achievement; + } + + public Achievement registerAchievement(String textId, int x, int y, ItemStack icon, String requirement, boolean special) { + if (!GT_Mod.gregtechproxy.mAchievements) { + return null; + } + ; + Achievement achievement = new Achievement(textId, textId, this.adjX + x, this.adjY + y, icon, getAchievement(requirement)); + if (special) { + achievement.setSpecial(); + } + achievement.registerStat(); + if (GT_Values.D2) { + GT_Log.out.println("achievement." + textId + "="); + GT_Log.out.println("achievement." + textId + ".desc="); + } + this.achievementList.put(textId, achievement); + return achievement; + } + + public Achievement registerOreAchievement(Materials aMaterial) { + if (this.achievementList.get(aMaterial.name()) == null) { + oreReg++; + return registerAchievement(aMaterial.name(), -(6 + oreReg % 5), ((oreReg) / 5) - 8, new ItemStack(GregTech_API.sBlockOres1, 1, + aMaterial.mMetaItemSubID), AchievementList.openInventory, false); + } + return null; + } + + public void issueAchievement(EntityPlayer entityplayer, String textId) { + if (entityplayer == null || !GT_Mod.gregtechproxy.mAchievements) { + return; + } // if (this.achievementList.containsKey(textId)) { // if(this.issuedAchievements.containsKey((entityplayer.getDisplayName()+textId))){ // return; // }else{ // this.issuedAchievements.put((entityplayer.getDisplayName()+textId), true); - entityplayer.triggerAchievement((StatBase) this.achievementList.get(textId)); + entityplayer.triggerAchievement((StatBase) this.achievementList.get(textId)); // } // } - } + } - public Achievement getAchievement(String textId) { - if (this.achievementList.containsKey(textId)) { - return (Achievement) this.achievementList.get(textId); - } - return null; - } - - public void issueAchivementHatch(EntityPlayer player, ItemStack stack){ - if (player == null||stack==null) { - return; - } - ItemData data = GT_OreDictUnificator.getItemData(stack); - - if (data != null) { - if (data.mPrefix == OrePrefixes.ingot) { - if(data.mMaterial.mMaterial==Materials.Aluminium){ - issueAchievement(player, "gtaluminium"); - }else if(data.mMaterial.mMaterial==Materials.Titanium){ - issueAchievement(player, "titan"); - }else if(data.mMaterial.mMaterial==Materials.BlueSteel){ - issueAchievement(player, "complexalloys"); - }else if(data.mMaterial.mMaterial==Materials.Tungsten){ - issueAchievement(player, "tungsten"); - }else if(data.mMaterial.mMaterial==Materials.TungstenSteel){ - issueAchievement(player, "tungstensteel"); - } - - - }} - if(stack.getUnlocalizedName().equals("ic2.itemPartIndustrialDiamond")){ - issueAchievement(player, "artificaldia"); - } - } - - public void issueAchivementHatchFluid(EntityPlayer player, FluidStack fluid){ - if (player == null||fluid==null) { - return; - } - if(fluid.getFluid().getUnlocalizedName().equals("fluid.plasma.helium")){ - issueAchievement(player, "fusion"); - }else if(fluid.getFluid().getUnlocalizedName().equals("fluid.molten.europium")){ - issueAchievement(player, "advancing"); - }else if(fluid.getFluid().getUnlocalizedName().equals("fluid.molten.americium")){ - issueAchievement(player, "tothelimit"); - }else if(fluid.getFluid().getUnlocalizedName().equals("fluid.molten.neutronium")){ - issueAchievement(player, "denseaspossible"); - }else if(fluid.getFluid().getUnlocalizedName().equals("fluid.plasma.nitrogen")){ - issueAchievement(player, "higherefficency"); - } - } + public Achievement getAchievement(String textId) { + if (this.achievementList.containsKey(textId)) { + return (Achievement) this.achievementList.get(textId); + } + return null; + } - @SubscribeEvent - public void onCrafting(ItemCraftedEvent event) { - EntityPlayer player = event.player; - ItemStack stack = event.crafting; - if (player == null||stack==null) { - return; - } - ItemData data = GT_OreDictUnificator.getItemData(stack); - if (data != null) { - if (data.mPrefix == OrePrefixes.dust&&data.mMaterial.mMaterial == Materials.Bronze) { - issueAchievement(player, "bronze"); - }else if(data.mPrefix == OrePrefixes.circuit&&data.mMaterial.mMaterial == Materials.Advanced){ - issueAchievement(player, "stepforward"); - } - } - if(stack.getUnlocalizedName().startsWith("gt.metaitem.")){ - if(stack.getUnlocalizedName().equals("gt.metaitem.01.2300")){ - issueAchievement(player, "bronze"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.01.32700")){ - issueAchievement(player, "smallparts"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.01.23354")){ - issueAchievement(player, "magneticiron"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.01.32600")){ - issueAchievement(player, "lvmotor"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.01.32610")){ - issueAchievement(player, "pumpcover"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.01.32630")){ - issueAchievement(player, "transport"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.01.32650")){ - issueAchievement(player, "complexmachines"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.01.32670")){ - issueAchievement(player, "hightech"); - } - }else if(stack.getUnlocalizedName().equals("ic2.blockCrop")){ - issueAchievement(player, "crops"); - }else if(stack.getUnlocalizedName().startsWith("gt.blockmachines.")){ - if(stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.arcfurnace.tier.")){ - issueAchievement(player, "recycling"); - }else if(stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.disassembler.tier.")){ - issueAchievement(player, "repair"); - }else if(stack.getUnlocalizedName().equals("gt.blockmachines.boiler.solar")){ - issueAchievement(player, "simplyeco"); - }else if(stack.getUnlocalizedName().equals("gt.blockmachines.boiler.bronze")){ - issueAchievement(player, "firststeam"); - }else if(stack.getUnlocalizedName().equals("gt.blockmachines.boiler.steel")){ - issueAchievement(player, "highpressure"); - }else if(stack.getUnlocalizedName().equals("gt.blockmachines.bronzemachine.macerator")){ - issueAchievement(player, "macerator"); - }else if(stack.getUnlocalizedName().equals("gt.blockmachines.bronzemachine.alloysmelter")){ - issueAchievement(player, "alloysmelter"); - }else if(stack.getUnlocalizedName().equals("gt.blockmachines.bronzemachine.extractor")){ - issueAchievement(player, "extract"); - }else if(stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.disassembler.tier.")){ - issueAchievement(player, "repair"); - }else if(stack.getUnlocalizedName().startsWith("gt.blockmachines.automation.superbuffer.tier.")){ - issueAchievement(player, "superbuffer"); - }else if(stack.getUnlocalizedName().startsWith("gt.blockmachines.quantum.tank.tier.")){ - issueAchievement(player, "whereistheocean"); - }else if(stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.disassembler.tier.")){ - issueAchievement(player, "repair"); - }else if(stack.getUnlocalizedName().startsWith("gt.blockmachines.quantum.chest.tier.")){ - issueAchievement(player, "newstorage"); - }else if(stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.hammer.tier.")){ - issueAchievement(player, "cheapermac"); - }else if(stack.getUnlocalizedName().startsWith("gt.blockmachines.automation.chestbuffer.tier.")){ - issueAchievement(player, "buffer"); - }else if(stack.getUnlocalizedName().startsWith("gt.blockmachines.basicgenerator.steamturbine.tier.")){ - issueAchievement(player, "steampower"); - }else if(stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.pump.tier.")){ - issueAchievement(player, "slurp"); - }else if(stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.assembler.tier.")){ - issueAchievement(player, "avengers"); - }else if(stack.getUnlocalizedName().equals("gt.blockmachines.multimachine.blastfurnace")){ - issueAchievement(player, "ebf"); - }else if(stack.getUnlocalizedName().startsWith("gt.blockmachines.batterybuffer.")){ - issueAchievement(player, "batterys"); - }else if(stack.getUnlocalizedName().equals("gt.blockmachines.hatch.energy.tier.02")){ - issueAchievement(player, "upgradeebf"); - }else if(stack.getUnlocalizedName().equals("gt.blockmachines.multimachine.multifurnace")){ - issueAchievement(player, "highpowersmelt"); - }else if(stack.getUnlocalizedName().equals("gt.blockmachines.hatch.energy.tier.01")){ - issueAchievement(player, "energyhatch"); - }else if(stack.getUnlocalizedName().equals("gt.blockmachines.multimachine.processingarray")){ - issueAchievement(player, "factory"); - }else if(stack.getUnlocalizedName().equals("gt.blockmachines.basicgenerator.magicenergyconverter.tier.01")){ - issueAchievement(player, "magic"); - }else if(stack.getUnlocalizedName().equals("gt.blockmachines.basicgenerator.magicenergyabsorber.tier.03")){ - issueAchievement(player, "highmage"); - }else if(stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.amplifab.tier.")){ - issueAchievement(player, "amplifier"); - }else if(stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.massfab.tier.")){ - issueAchievement(player, "universal"); - }else if(stack.getUnlocalizedName().startsWith("gt.blockmachines.basicgenerator.naquadah.tier.")){ - issueAchievement(player, "alienpower"); - }else if(stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.replicator.tier.")){ - issueAchievement(player, "replication"); - }else if(stack.getUnlocalizedName().equals("gt.blockmachines.basicgenerator.plasmagenerator.tier.07")){ - issueAchievement(player, "fullefficiency"); - }else if(stack.getUnlocalizedName().equals("gt.blockmachines.multimachine.largeturbine")){ - issueAchievement(player, "muchsteam"); - }else if(stack.getUnlocalizedName().equals("gt.blockmachines.multimachine.largehpturbine")){ - issueAchievement(player, "efficientsteam"); - } - }else if(stack.getUnlocalizedName().equals("gt.Thoriumcell")){ - issueAchievement(player, "newfuel"); - }else if(stack.getUnlocalizedName().equals("gt.neutronreflector")){ - issueAchievement(player, "reflect"); - }else if(stack.getUnlocalizedName().equals("gt.blockcasings.13")){ - issueAchievement(player, "upgrade"); - }else if(stack.getUnlocalizedName().equals("gt.blockcasings.14")){ - issueAchievement(player, "upgrade2"); - }else if(stack.getUnlocalizedName().equals("gt.blockcasings.15")){ - issueAchievement(player, "conducting"); - } - } + public void issueAchivementHatch(EntityPlayer player, ItemStack stack) { + if (player == null || stack == null) { + return; + } + ItemData data = GT_OreDictUnificator.getItemData(stack); - @SubscribeEvent - public void onSmelting(ItemSmeltedEvent event) { - EntityPlayer player = event.player; - ItemStack stack = event.smelting; - if (player == null||stack==null) { - return; - } - if (stack.getItem() == Items.bread) { - event.player.triggerAchievement(AchievementList.makeBread); - } - } + if (data != null) { + if (data.mPrefix == OrePrefixes.ingot) { + if (data.mMaterial.mMaterial == Materials.Aluminium) { + issueAchievement(player, "gtaluminium"); + } else if (data.mMaterial.mMaterial == Materials.Titanium) { + issueAchievement(player, "titan"); + } else if (data.mMaterial.mMaterial == Materials.BlueSteel) { + issueAchievement(player, "complexalloys"); + } else if (data.mMaterial.mMaterial == Materials.Tungsten) { + issueAchievement(player, "tungsten"); + } else if (data.mMaterial.mMaterial == Materials.TungstenSteel) { + issueAchievement(player, "tungstensteel"); + } - @SubscribeEvent - public void onItemPickup(EntityItemPickupEvent event) { - EntityPlayer player = event.entityPlayer; - ItemStack stack = event.item.getEntityItem(); - if (player == null||stack==null) { - return; - } + + } + } + if (stack.getUnlocalizedName().equals("ic2.itemPartIndustrialDiamond")) { + issueAchievement(player, "artificaldia"); + } + } + + public void issueAchivementHatchFluid(EntityPlayer player, FluidStack fluid) { + if (player == null || fluid == null) { + return; + } + if (fluid.getFluid().getUnlocalizedName().equals("fluid.plasma.helium")) { + issueAchievement(player, "fusion"); + } else if (fluid.getFluid().getUnlocalizedName().equals("fluid.molten.europium")) { + issueAchievement(player, "advancing"); + } else if (fluid.getFluid().getUnlocalizedName().equals("fluid.molten.americium")) { + issueAchievement(player, "tothelimit"); + } else if (fluid.getFluid().getUnlocalizedName().equals("fluid.molten.neutronium")) { + issueAchievement(player, "denseaspossible"); + } else if (fluid.getFluid().getUnlocalizedName().equals("fluid.plasma.nitrogen")) { + issueAchievement(player, "higherefficency"); + } + } + + @SubscribeEvent + public void onCrafting(ItemCraftedEvent event) { + EntityPlayer player = event.player; + ItemStack stack = event.crafting; + if (player == null || stack == null) { + return; + } + ItemData data = GT_OreDictUnificator.getItemData(stack); + if (data != null) { + if (data.mPrefix == OrePrefixes.dust && data.mMaterial.mMaterial == Materials.Bronze) { + issueAchievement(player, "bronze"); + } else if (data.mPrefix == OrePrefixes.circuit && data.mMaterial.mMaterial == Materials.Advanced) { + issueAchievement(player, "stepforward"); + } + } + if (stack.getUnlocalizedName().startsWith("gt.metaitem.")) { + if (stack.getUnlocalizedName().equals("gt.metaitem.01.2300")) { + issueAchievement(player, "bronze"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.01.32700")) { + issueAchievement(player, "smallparts"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.01.23354")) { + issueAchievement(player, "magneticiron"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.01.32600")) { + issueAchievement(player, "lvmotor"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.01.32610")) { + issueAchievement(player, "pumpcover"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.01.32630")) { + issueAchievement(player, "transport"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.01.32650")) { + issueAchievement(player, "complexmachines"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.01.32670")) { + issueAchievement(player, "hightech"); + } + } else if (stack.getUnlocalizedName().equals("ic2.blockCrop")) { + issueAchievement(player, "crops"); + } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.")) { + if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.arcfurnace.tier.")) { + issueAchievement(player, "recycling"); + } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.disassembler.tier.")) { + issueAchievement(player, "repair"); + } else if (stack.getUnlocalizedName().equals("gt.blockmachines.boiler.solar")) { + issueAchievement(player, "simplyeco"); + } else if (stack.getUnlocalizedName().equals("gt.blockmachines.boiler.bronze")) { + issueAchievement(player, "firststeam"); + } else if (stack.getUnlocalizedName().equals("gt.blockmachines.boiler.steel")) { + issueAchievement(player, "highpressure"); + } else if (stack.getUnlocalizedName().equals("gt.blockmachines.bronzemachine.macerator")) { + issueAchievement(player, "macerator"); + } else if (stack.getUnlocalizedName().equals("gt.blockmachines.bronzemachine.alloysmelter")) { + issueAchievement(player, "alloysmelter"); + } else if (stack.getUnlocalizedName().equals("gt.blockmachines.bronzemachine.extractor")) { + issueAchievement(player, "extract"); + } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.disassembler.tier.")) { + issueAchievement(player, "repair"); + } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.automation.superbuffer.tier.")) { + issueAchievement(player, "superbuffer"); + } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.quantum.tank.tier.")) { + issueAchievement(player, "whereistheocean"); + } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.disassembler.tier.")) { + issueAchievement(player, "repair"); + } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.quantum.chest.tier.")) { + issueAchievement(player, "newstorage"); + } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.hammer.tier.")) { + issueAchievement(player, "cheapermac"); + } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.automation.chestbuffer.tier.")) { + issueAchievement(player, "buffer"); + } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicgenerator.steamturbine.tier.")) { + issueAchievement(player, "steampower"); + } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.pump.tier.")) { + issueAchievement(player, "slurp"); + } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.assembler.tier.")) { + issueAchievement(player, "avengers"); + } else if (stack.getUnlocalizedName().equals("gt.blockmachines.multimachine.blastfurnace")) { + issueAchievement(player, "ebf"); + } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.batterybuffer.")) { + issueAchievement(player, "batterys"); + } else if (stack.getUnlocalizedName().equals("gt.blockmachines.hatch.energy.tier.02")) { + issueAchievement(player, "upgradeebf"); + } else if (stack.getUnlocalizedName().equals("gt.blockmachines.multimachine.multifurnace")) { + issueAchievement(player, "highpowersmelt"); + } else if (stack.getUnlocalizedName().equals("gt.blockmachines.hatch.energy.tier.01")) { + issueAchievement(player, "energyhatch"); + } else if (stack.getUnlocalizedName().equals("gt.blockmachines.multimachine.processingarray")) { + issueAchievement(player, "factory"); + } else if (stack.getUnlocalizedName().equals("gt.blockmachines.basicgenerator.magicenergyconverter.tier.01")) { + issueAchievement(player, "magic"); + } else if (stack.getUnlocalizedName().equals("gt.blockmachines.basicgenerator.magicenergyabsorber.tier.03")) { + issueAchievement(player, "highmage"); + } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.amplifab.tier.")) { + issueAchievement(player, "amplifier"); + } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.massfab.tier.")) { + issueAchievement(player, "universal"); + } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicgenerator.naquadah.tier.")) { + issueAchievement(player, "alienpower"); + } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.replicator.tier.")) { + issueAchievement(player, "replication"); + } else if (stack.getUnlocalizedName().equals("gt.blockmachines.basicgenerator.plasmagenerator.tier.07")) { + issueAchievement(player, "fullefficiency"); + } else if (stack.getUnlocalizedName().equals("gt.blockmachines.multimachine.largeturbine")) { + issueAchievement(player, "muchsteam"); + } else if (stack.getUnlocalizedName().equals("gt.blockmachines.multimachine.largehpturbine")) { + issueAchievement(player, "efficientsteam"); + } + } else if (stack.getUnlocalizedName().equals("gt.Thoriumcell")) { + issueAchievement(player, "newfuel"); + } else if (stack.getUnlocalizedName().equals("gt.neutronreflector")) { + issueAchievement(player, "reflect"); + } else if (stack.getUnlocalizedName().equals("gt.blockcasings.13")) { + issueAchievement(player, "upgrade"); + } else if (stack.getUnlocalizedName().equals("gt.blockcasings.14")) { + issueAchievement(player, "upgrade2"); + } else if (stack.getUnlocalizedName().equals("gt.blockcasings.15")) { + issueAchievement(player, "conducting"); + } + } + + @SubscribeEvent + public void onSmelting(ItemSmeltedEvent event) { + EntityPlayer player = event.player; + ItemStack stack = event.smelting; + if (player == null || stack == null) { + return; + } + if (stack.getItem() == Items.bread) { + event.player.triggerAchievement(AchievementList.makeBread); + } + } + + @SubscribeEvent + public void onItemPickup(EntityItemPickupEvent event) { + EntityPlayer player = event.entityPlayer; + ItemStack stack = event.item.getEntityItem(); + if (player == null || stack == null) { + return; + } // System.out.println("Pickup: "+stack.getUnlocalizedName()); - ItemData data = GT_OreDictUnificator.getItemData(stack); - if (data != null) { - if (data.mPrefix == OrePrefixes.dust) { - if(data.mMaterial.mMaterial == Materials.Lutetium){ - issueAchievement(player, "newmetal"); - } - issueAchievement(player, "cleandust"); - } else if (data.mPrefix == OrePrefixes.ore || data.mPrefix == OrePrefixes.oreBlackgranite || data.mPrefix == OrePrefixes.oreEndstone - || data.mPrefix == OrePrefixes.oreNetherrack || data.mPrefix == OrePrefixes.oreRedgranite) { - for (int i = 0; i < data.getAllMaterialStacks().size(); i++) { - issueAchievement(player, data.getAllMaterialStacks().get(i).mMaterial.name()); - if(data.getAllMaterialStacks().get(i).mMaterial == Materials.AnyIron){issueAchievement(player, "iron");} - } - }else if(data.mPrefix == OrePrefixes.crushed){ - issueAchievement(player, "crushed"); - }else if(data.mPrefix == OrePrefixes.crushedPurified){ - issueAchievement(player, "washing"); - }else if(data.mPrefix == OrePrefixes.crushedCentrifuged){ - issueAchievement(player, "spinit"); - }else if(data.mMaterial.mMaterial == Materials.Steel){ - if(data.mPrefix == OrePrefixes.ingot && stack.stackSize == stack.getMaxStackSize()){ - issueAchievement(player, "steel"); - }else if(data.mPrefix == OrePrefixes.nugget && Loader.isModLoaded("Thaumcraft")){ - if(ThaumcraftApiHelper.isResearchComplete(player.getDisplayName(), "GT_IRON_TO_STEEL")){ - issueAchievement(player, "steel"); - } - } - }else if(data.mPrefix == OrePrefixes.circuit&&data.mMaterial.mMaterial == Materials.Advanced){ - issueAchievement(player, "stepforward"); - } - } - if(stack.getUnlocalizedName().startsWith("gt.metaitem.")){ - if(stack.getUnlocalizedName().equals("gt.metaitem.02.32500")){ - issueAchievement(player, "havestlead"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.02.32501")){ - issueAchievement(player, "havestsilver"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.02.32503")){ - issueAchievement(player, "havestiron"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.02.32504")){ - issueAchievement(player, "havestgold"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.02.32530")){ - issueAchievement(player, "havestcopper"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.02.32540")){ - issueAchievement(player, "havesttin"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.02.32510")){ - issueAchievement(player, "havestoil"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.02.32511")){ - issueAchievement(player, "havestemeralds"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.01.32706")){ - issueAchievement(player, "energyflow"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.01.32702")){ - issueAchievement(player, "bettercircuits"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.01.32707")){ - issueAchievement(player, "datasaving"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.01.32597")){ - issueAchievement(player, "orbs"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.01.32599")){ - issueAchievement(player, "thatspower"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.01.32598")){ - issueAchievement(player, "luck"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.01.32749")){ - issueAchievement(player, "closeit"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.01.32730")){ - issueAchievement(player, "manipulation"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.01.32729")){ - issueAchievement(player, "filterregulate"); - }else if(stack.getUnlocalizedName().equals("gt.metaitem.01.32605")){ - issueAchievement(player, "whatnow"); - } - } - } + ItemData data = GT_OreDictUnificator.getItemData(stack); + if (data != null) { + if (data.mPrefix == OrePrefixes.dust) { + if (data.mMaterial.mMaterial == Materials.Lutetium) { + issueAchievement(player, "newmetal"); + } + issueAchievement(player, "cleandust"); + } else if (data.mPrefix == OrePrefixes.ore || data.mPrefix == OrePrefixes.oreBlackgranite || data.mPrefix == OrePrefixes.oreEndstone + || data.mPrefix == OrePrefixes.oreNetherrack || data.mPrefix == OrePrefixes.oreRedgranite) { + for (int i = 0; i < data.getAllMaterialStacks().size(); i++) { + issueAchievement(player, data.getAllMaterialStacks().get(i).mMaterial.name()); + if (data.getAllMaterialStacks().get(i).mMaterial == Materials.AnyIron) { + issueAchievement(player, "iron"); + } + } + } else if (data.mPrefix == OrePrefixes.crushed) { + issueAchievement(player, "crushed"); + } else if (data.mPrefix == OrePrefixes.crushedPurified) { + issueAchievement(player, "washing"); + } else if (data.mPrefix == OrePrefixes.crushedCentrifuged) { + issueAchievement(player, "spinit"); + } else if (data.mMaterial.mMaterial == Materials.Steel) { + if (data.mPrefix == OrePrefixes.ingot && stack.stackSize == stack.getMaxStackSize()) { + issueAchievement(player, "steel"); + } else if (data.mPrefix == OrePrefixes.nugget && Loader.isModLoaded("Thaumcraft")) { + if (ThaumcraftApiHelper.isResearchComplete(player.getDisplayName(), "GT_IRON_TO_STEEL")) { + issueAchievement(player, "steel"); + } + } + } else if (data.mPrefix == OrePrefixes.circuit && data.mMaterial.mMaterial == Materials.Advanced) { + issueAchievement(player, "stepforward"); + } + } + if (stack.getUnlocalizedName().startsWith("gt.metaitem.")) { + if (stack.getUnlocalizedName().equals("gt.metaitem.02.32500")) { + issueAchievement(player, "havestlead"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.02.32501")) { + issueAchievement(player, "havestsilver"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.02.32503")) { + issueAchievement(player, "havestiron"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.02.32504")) { + issueAchievement(player, "havestgold"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.02.32530")) { + issueAchievement(player, "havestcopper"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.02.32540")) { + issueAchievement(player, "havesttin"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.02.32510")) { + issueAchievement(player, "havestoil"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.02.32511")) { + issueAchievement(player, "havestemeralds"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.01.32706")) { + issueAchievement(player, "energyflow"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.01.32702")) { + issueAchievement(player, "bettercircuits"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.01.32707")) { + issueAchievement(player, "datasaving"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.01.32597")) { + issueAchievement(player, "orbs"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.01.32599")) { + issueAchievement(player, "thatspower"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.01.32598")) { + issueAchievement(player, "luck"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.01.32749")) { + issueAchievement(player, "closeit"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.01.32730")) { + issueAchievement(player, "manipulation"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.01.32729")) { + issueAchievement(player, "filterregulate"); + } else if (stack.getUnlocalizedName().equals("gt.metaitem.01.32605")) { + issueAchievement(player, "whatnow"); + } + } + } } diff --git a/src/main/java/gregtech/loaders/misc/GT_CoverLoader.java b/src/main/java/gregtech/loaders/misc/GT_CoverLoader.java index f4a73c87..9ceba957 100644 --- a/src/main/java/gregtech/loaders/misc/GT_CoverLoader.java +++ b/src/main/java/gregtech/loaders/misc/GT_CoverLoader.java @@ -2,7 +2,6 @@ package gregtech.loaders.misc; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.objects.GT_CopiedBlockTexture; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; @@ -10,17 +9,15 @@ import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; public class GT_CoverLoader - implements Runnable -{ - public void run() - { - for (byte i = 0; i < 16; i = (byte)(i + 1)) { - GregTech_API.registerCover(new ItemStack(Blocks.carpet, 1, i), new GT_CopiedBlockTexture(Blocks.wool, 0, i), null); + implements Runnable { + public void run() { + for (byte i = 0; i < 16; i = (byte) (i + 1)) { + GregTech_API.registerCover(new ItemStack(Blocks.carpet, 1, i), new GT_CopiedBlockTexture(Blocks.wool, 0, i), null); + } + GregTech_API.registerCover(GT_ModHandler.getIC2Item("reactorVent", 1L), new GT_RenderedTexture(Textures.BlockIcons.VENT_NORMAL), null); + GregTech_API.registerCover(GT_ModHandler.getIC2Item("reactorVentCore", 1L), new GT_RenderedTexture(Textures.BlockIcons.VENT_NORMAL), null); + GregTech_API.registerCover(GT_ModHandler.getIC2Item("reactorVentGold", 1L), new GT_RenderedTexture(Textures.BlockIcons.VENT_ADVANCED), null); + GregTech_API.registerCover(GT_ModHandler.getIC2Item("reactorVentSpread", 1L), new GT_RenderedTexture(Textures.BlockIcons.VENT_NORMAL), null); + GregTech_API.registerCover(GT_ModHandler.getIC2Item("reactorVentDiamond", 1L), new GT_RenderedTexture(Textures.BlockIcons.VENT_ADVANCED), null); } - GregTech_API.registerCover(GT_ModHandler.getIC2Item("reactorVent", 1L), new GT_RenderedTexture(Textures.BlockIcons.VENT_NORMAL), null); - GregTech_API.registerCover(GT_ModHandler.getIC2Item("reactorVentCore", 1L), new GT_RenderedTexture(Textures.BlockIcons.VENT_NORMAL), null); - GregTech_API.registerCover(GT_ModHandler.getIC2Item("reactorVentGold", 1L), new GT_RenderedTexture(Textures.BlockIcons.VENT_ADVANCED), null); - GregTech_API.registerCover(GT_ModHandler.getIC2Item("reactorVentSpread", 1L), new GT_RenderedTexture(Textures.BlockIcons.VENT_NORMAL), null); - GregTech_API.registerCover(GT_ModHandler.getIC2Item("reactorVentDiamond", 1L), new GT_RenderedTexture(Textures.BlockIcons.VENT_ADVANCED), null); - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingAll.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingAll.java index f153e5da..310b0f05 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingAll.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingAll.java @@ -2,18 +2,15 @@ package gregtech.loaders.oreprocessing; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -public class ProcessingAll implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingAll() - { - for (OrePrefixes tPrefix : OrePrefixes.values()) tPrefix.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (((aStack.getItem() instanceof net.minecraft.item.ItemBlock)) && (aPrefix.mDefaultStackSize < aStack.getItem().getItemStackLimit(aStack))) aStack.getItem().setMaxStackSize(aPrefix.mDefaultStackSize); - } +public class ProcessingAll implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingAll() { + for (OrePrefixes tPrefix : OrePrefixes.values()) tPrefix.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (((aStack.getItem() instanceof net.minecraft.item.ItemBlock)) && (aPrefix.mDefaultStackSize < aStack.getItem().getItemStackLimit(aStack))) + aStack.getItem().setMaxStackSize(aPrefix.mDefaultStackSize); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java index 4100022e..fd4fd984 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java @@ -3,41 +3,43 @@ package gregtech.loaders.oreprocessing; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_Utility; -import gregtech.api.util.GT_Utility.ItemNBT; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.item.ItemStack; -public class ProcessingArrows implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingArrows() - { - for (OrePrefixes tPrefix : OrePrefixes.values()) if (tPrefix.name().startsWith("arrowGt")) { tPrefix.add(this); - } - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - ItemStack tOutput = GT_Utility.copyAmount(1L, new Object[] { aStack });GT_Utility.updateItemStack(tOutput); - GT_Utility.ItemNBT.addEnchantment(tOutput, Enchantment.smite, EnchantmentHelper.getEnchantmentLevel(Enchantment.smite.effectId, tOutput) + 3); - GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.HolyWater.getFluid(25L), tOutput, null, null, null, 100, 2); - - tOutput = GT_Utility.copyAmount(1L, new Object[] { aStack });GT_Utility.updateItemStack(tOutput); - GT_Utility.ItemNBT.addEnchantment(tOutput, Enchantment.fireAspect, EnchantmentHelper.getEnchantmentLevel(Enchantment.fireAspect.effectId, tOutput) + 3); - GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.FierySteel.getFluid(25L), tOutput, null, null, null, 100, 2); - - tOutput = GT_Utility.copyAmount(1L, new Object[] { aStack });GT_Utility.updateItemStack(tOutput); - GT_Utility.ItemNBT.addEnchantment(tOutput, Enchantment.fireAspect, EnchantmentHelper.getEnchantmentLevel(Enchantment.fireAspect.effectId, tOutput) + 1); - GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.Blaze.getMolten(18L), tOutput, null, null, null, 100, 2); - - tOutput = GT_Utility.copyAmount(1L, new Object[] { aStack });GT_Utility.updateItemStack(tOutput); - GT_Utility.ItemNBT.addEnchantment(tOutput, Enchantment.knockback, EnchantmentHelper.getEnchantmentLevel(Enchantment.knockback.effectId, tOutput) + 1); - GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.Rubber.getMolten(18L), tOutput, null, null, null, 100, 2); - - tOutput = GT_Utility.copyAmount(1L, new Object[] { aStack });GT_Utility.updateItemStack(tOutput); - GT_Utility.ItemNBT.addEnchantment(tOutput, gregtech.api.enchants.Enchantment_EnderDamage.INSTANCE, EnchantmentHelper.getEnchantmentLevel(gregtech.api.enchants.Enchantment_EnderDamage.INSTANCE.effectId, tOutput) + 1); - GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.Mercury.getFluid(25L), tOutput, null, null, null, 100, 2); - } +public class ProcessingArrows implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingArrows() { + for (OrePrefixes tPrefix : OrePrefixes.values()) + if (tPrefix.name().startsWith("arrowGt")) { + tPrefix.add(this); + } + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + ItemStack tOutput = GT_Utility.copyAmount(1L, new Object[]{aStack}); + GT_Utility.updateItemStack(tOutput); + GT_Utility.ItemNBT.addEnchantment(tOutput, Enchantment.smite, EnchantmentHelper.getEnchantmentLevel(Enchantment.smite.effectId, tOutput) + 3); + GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), Materials.HolyWater.getFluid(25L), tOutput, null, null, null, 100, 2); + + tOutput = GT_Utility.copyAmount(1L, new Object[]{aStack}); + GT_Utility.updateItemStack(tOutput); + GT_Utility.ItemNBT.addEnchantment(tOutput, Enchantment.fireAspect, EnchantmentHelper.getEnchantmentLevel(Enchantment.fireAspect.effectId, tOutput) + 3); + GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), Materials.FierySteel.getFluid(25L), tOutput, null, null, null, 100, 2); + + tOutput = GT_Utility.copyAmount(1L, new Object[]{aStack}); + GT_Utility.updateItemStack(tOutput); + GT_Utility.ItemNBT.addEnchantment(tOutput, Enchantment.fireAspect, EnchantmentHelper.getEnchantmentLevel(Enchantment.fireAspect.effectId, tOutput) + 1); + GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), Materials.Blaze.getMolten(18L), tOutput, null, null, null, 100, 2); + + tOutput = GT_Utility.copyAmount(1L, new Object[]{aStack}); + GT_Utility.updateItemStack(tOutput); + GT_Utility.ItemNBT.addEnchantment(tOutput, Enchantment.knockback, EnchantmentHelper.getEnchantmentLevel(Enchantment.knockback.effectId, tOutput) + 1); + GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), Materials.Rubber.getMolten(18L), tOutput, null, null, null, 100, 2); + + tOutput = GT_Utility.copyAmount(1L, new Object[]{aStack}); + GT_Utility.updateItemStack(tOutput); + GT_Utility.ItemNBT.addEnchantment(tOutput, gregtech.api.enchants.Enchantment_EnderDamage.INSTANCE, EnchantmentHelper.getEnchantmentLevel(gregtech.api.enchants.Enchantment_EnderDamage.INSTANCE.effectId, tOutput) + 1); + GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), Materials.Mercury.getFluid(25L), tOutput, null, null, null, 100, 2); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBattery.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBattery.java index dd6984d9..2b8eecfc 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBattery.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBattery.java @@ -4,22 +4,18 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingBattery implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingBattery() - { - OrePrefixes.battery.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aMaterial == Materials.Lithium) { - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_ModHandler.getIC2Item("cropnalyzer", 1L, 32767), ItemList.Tool_Scanner.getAlmostBroken(1L, new Object[0]), 12800, 16); +public class ProcessingBattery implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingBattery() { + OrePrefixes.battery.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aMaterial == Materials.Lithium) { + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_ModHandler.getIC2Item("cropnalyzer", 1L, 32767), ItemList.Tool_Scanner.getAlmostBroken(1L, new Object[0]), 12800, 16); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java index eda781bd..a061b0e2 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java @@ -7,15 +7,13 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingBeans implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingBeans() - { - OrePrefixes.beans.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aOreDictName.equals("beansCocoa")) GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cocoa, 1L)); - } +public class ProcessingBeans implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingBeans() { + OrePrefixes.beans.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aOreDictName.equals("beansCocoa")) + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cocoa, 1L)); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java index 98f08594..e07ea64b 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java @@ -1,68 +1,73 @@ package gregtech.loaders.oreprocessing; import gregtech.api.GregTech_API; -import gregtech.api.enums.ConfigCategories; -import gregtech.api.enums.ConfigCategories.Recipes; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; +import gregtech.api.enums.*; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingBlock() - { - OrePrefixes.block.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L), null, (int)Math.max(aMaterial.getMass() * 10L, 1L), 30); - - ItemStack tStack1 = GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L);ItemStack tStack2 = GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L);ItemStack tStack3 = GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L); - - GT_ModHandler.removeRecipe(new ItemStack[] { GT_Utility.copyAmount(1L, new Object[] { aStack }) }); - - if (tStack1 != null) GT_ModHandler.removeRecipe(new ItemStack[] { tStack1, tStack1, tStack1, tStack1, tStack1, tStack1, tStack1, tStack1, tStack1 }); - if (tStack2 != null) GT_ModHandler.removeRecipe(new ItemStack[] { tStack2, tStack2, tStack2, tStack2, tStack2, tStack2, tStack2, tStack2, tStack2 }); - if (tStack3 != null) { GT_ModHandler.removeRecipe(new ItemStack[] { tStack3, tStack3, tStack3, tStack3, tStack3, tStack3, tStack3, tStack3, tStack3 }); +public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingBlock() { + OrePrefixes.block.add(this); } - if (aMaterial.mStandardMoltenFluid != null) { GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Block.get(0L, new Object[0]), aMaterial.getMolten(1296L), GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L), 288, 8); + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L), null, (int) Math.max(aMaterial.getMass() * 10L, 1L), 30); + + ItemStack tStack1 = GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L); + ItemStack tStack2 = GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L); + ItemStack tStack3 = GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L); + + GT_ModHandler.removeRecipe(new ItemStack[]{GT_Utility.copyAmount(1L, new Object[]{aStack})}); + + if (tStack1 != null) + GT_ModHandler.removeRecipe(new ItemStack[]{tStack1, tStack1, tStack1, tStack1, tStack1, tStack1, tStack1, tStack1, tStack1}); + if (tStack2 != null) + GT_ModHandler.removeRecipe(new ItemStack[]{tStack2, tStack2, tStack2, tStack2, tStack2, tStack2, tStack2, tStack2, tStack2}); + if (tStack3 != null) { + GT_ModHandler.removeRecipe(new ItemStack[]{tStack3, tStack3, tStack3, tStack3, tStack3, tStack3, tStack3, tStack3, tStack3}); + } + if (aMaterial.mStandardMoltenFluid != null) { + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Block.get(0L, new Object[0]), aMaterial.getMolten(1296L), GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L), 288, 8); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.storageblockcrafting, OrePrefixes.block.get(aMaterial).toString(), false)) { + if ((tStack1 == null) && (tStack2 == null) && (tStack3 != null)) + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L), new Object[]{"XXX", "XXX", "XXX", Character.valueOf('X'), OrePrefixes.dust.get(aMaterial)}); + if (tStack2 != null) + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L), new Object[]{"XXX", "XXX", "XXX", Character.valueOf('X'), OrePrefixes.gem.get(aMaterial)}); + if (tStack1 != null) { + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L), new Object[]{"XXX", "XXX", "XXX", Character.valueOf('X'), OrePrefixes.ingot.get(aMaterial)}); + } + } + if (tStack1 != null) tStack1.stackSize = 9; + if (tStack2 != null) tStack2.stackSize = 9; + if (tStack3 != null) { + tStack3.stackSize = 9; + } + GT_Values.RA.addForgeHammerRecipe(aStack, tStack2, 100, 24); + + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.storageblockdecrafting, OrePrefixes.block.get(aMaterial).toString(), tStack2 != null)) { + if (tStack3 != null) + GT_ModHandler.addShapelessCraftingRecipe(tStack3, new Object[]{OrePrefixes.block.get(aMaterial)}); + if (tStack2 != null) + GT_ModHandler.addShapelessCraftingRecipe(tStack2, new Object[]{OrePrefixes.block.get(aMaterial)}); + if (tStack1 != null) { + GT_ModHandler.addShapelessCraftingRecipe(tStack1, new Object[]{OrePrefixes.block.get(aMaterial)}); + } + } + switch (aMaterial) { + case Mercury: + System.err.println("'blockQuickSilver'?, In which Ice Desert can you actually place this as a solid Block?"); + break; + case Iron: + case WroughtIron: + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Rod.get(0L, new Object[0]), ItemList.IC2_ShaftIron.get(1L, new Object[0]), 640, 120); + GT_Values.RA.addAssemblerRecipe(ItemList.IC2_Compressed_Coal_Ball.get(8L, new Object[0]), GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.IC2_Compressed_Coal_Chunk.get(1L, new Object[0]), 400, 4); + break; + case Steel: + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Rod.get(0L, new Object[0]), ItemList.IC2_ShaftSteel.get(1L, new Object[0]), 1280, 120); + GT_Values.RA.addAssemblerRecipe(ItemList.IC2_Compressed_Coal_Ball.get(8L, new Object[0]), GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.IC2_Compressed_Coal_Chunk.get(1L, new Object[0]), 400, 4); + } } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.storageblockcrafting, OrePrefixes.block.get(aMaterial).toString(), false)) { - if ((tStack1 == null) && (tStack2 == null) && (tStack3 != null)) GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L), new Object[] { "XXX", "XXX", "XXX", Character.valueOf('X'), OrePrefixes.dust.get(aMaterial) }); - if (tStack2 != null) GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L), new Object[] { "XXX", "XXX", "XXX", Character.valueOf('X'), OrePrefixes.gem.get(aMaterial) }); - if (tStack1 != null) { GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L), new Object[] { "XXX", "XXX", "XXX", Character.valueOf('X'), OrePrefixes.ingot.get(aMaterial) }); - } - } - if (tStack1 != null) tStack1.stackSize = 9; - if (tStack2 != null) tStack2.stackSize = 9; - if (tStack3 != null) { tStack3.stackSize = 9; - } - GT_Values.RA.addForgeHammerRecipe(aStack, tStack2, 100, 24); - - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.storageblockdecrafting, OrePrefixes.block.get(aMaterial).toString(), tStack2 != null)) { - if (tStack3 != null) GT_ModHandler.addShapelessCraftingRecipe(tStack3, new Object[] { OrePrefixes.block.get(aMaterial) }); - if (tStack2 != null) GT_ModHandler.addShapelessCraftingRecipe(tStack2, new Object[] { OrePrefixes.block.get(aMaterial) }); - if (tStack1 != null) { GT_ModHandler.addShapelessCraftingRecipe(tStack1, new Object[] { OrePrefixes.block.get(aMaterial) }); - } - } - switch (aMaterial) { - case Mercury: - System.err.println("'blockQuickSilver'?, In which Ice Desert can you actually place this as a solid Block?"); - break; - case Iron: case WroughtIron: - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Extruder_Rod.get(0L, new Object[0]), ItemList.IC2_ShaftIron.get(1L, new Object[0]), 640, 120); - GT_Values.RA.addAssemblerRecipe(ItemList.IC2_Compressed_Coal_Ball.get(8L, new Object[0]), GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.IC2_Compressed_Coal_Chunk.get(1L, new Object[0]), 400, 4); - break; - case Steel: - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Extruder_Rod.get(0L, new Object[0]), ItemList.IC2_ShaftSteel.get(1L, new Object[0]), 1280, 120); - GT_Values.RA.addAssemblerRecipe(ItemList.IC2_Compressed_Coal_Ball.get(8L, new Object[0]), GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.IC2_Compressed_Coal_Chunk.get(1L, new Object[0]), 400, 4); - } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBolt.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBolt.java index 7303c8a7..61bfcbd1 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBolt.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBolt.java @@ -1,26 +1,20 @@ package gregtech.loaders.oreprocessing; import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.SubTag; -import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; -import gregtech.common.items.GT_MetaGenerated_Tool_01; -import net.minecraft.block.material.Material; import net.minecraft.item.ItemStack; -public class ProcessingBolt implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingBolt() - { - OrePrefixes.bolt.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (!aMaterial.contains(SubTag.NO_WORKING)) GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.screw, aMaterial, 1L), null, (int)Math.max(aMaterial.getMass() / 8L, 1L), 4); - } +public class ProcessingBolt implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingBolt() { + OrePrefixes.bolt.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (!aMaterial.contains(SubTag.NO_WORKING)) + GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.screw, aMaterial, 1L), null, (int) Math.max(aMaterial.getMass() / 8L, 1L), 4); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java index 73c6e3e1..df158b8d 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java @@ -5,100 +5,86 @@ import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.interfaces.IOreRecipeRegistrator; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.objects.MaterialStack; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; import net.minecraft.item.ItemStack; +import java.util.ArrayList; +import java.util.Iterator; + public class ProcessingCell - implements IOreRecipeRegistrator -{ - public ProcessingCell() - { - OrePrefixes.cell.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aMaterial == Materials.Empty) - { - GT_ModHandler.removeRecipeByOutput(aStack); - if (aModName.equalsIgnoreCase("AtomicScience")) { - GT_ModHandler.addExtractionRecipe(ItemList.Cell_Empty.get(1L, new Object[0]), aStack); - } + implements IOreRecipeRegistrator { + public ProcessingCell() { + OrePrefixes.cell.add(this); } - else - { - if (aMaterial.mFuelPower > 0) { - GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_Utility.getFluidForFilledItem(aStack, true) == null ? GT_Utility.getContainerItem(aStack, true) : null, aMaterial.mFuelPower, aMaterial.mFuelType); - } - if ((aMaterial.mMaterialList.size() > 0) && ((aMaterial.mExtraData & 0x3) != 0)) - { - int tAllAmount = 0; - MaterialStack tMat2; - for (Iterator i$ = aMaterial.mMaterialList.iterator(); i$.hasNext(); tAllAmount = (int)(tAllAmount + tMat2.mAmount)) { - tMat2 = (MaterialStack)i$.next(); - } - long tItemAmount = 0L;long tCapsuleCount = GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(new ItemStack[] { aStack }) * -tAllAmount;long tDensityMultiplier = aMaterial.getDensity() > 3628800L ? aMaterial.getDensity() / 3628800L : 1L; - ArrayList tList = new ArrayList(); - for ( MaterialStack tMat : aMaterial.mMaterialList) { - if (tMat.mAmount > 0L) - { - ItemStack tStack; - if (tMat.mMaterial == Materials.Air) - { - tStack = ItemList.Cell_Air.get(tMat.mAmount * tDensityMultiplier / 2L, new Object[0]); + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aMaterial == Materials.Empty) { + GT_ModHandler.removeRecipeByOutput(aStack); + if (aModName.equalsIgnoreCase("AtomicScience")) { + GT_ModHandler.addExtractionRecipe(ItemList.Cell_Empty.get(1L, new Object[0]), aStack); } - else - { - tStack = GT_OreDictUnificator.get(OrePrefixes.dust, tMat.mMaterial, tMat.mAmount); - if (tStack == null) { - tStack = GT_OreDictUnificator.get(OrePrefixes.cell, tMat.mMaterial, tMat.mAmount); - } + } else { + if (aMaterial.mFuelPower > 0) { + GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_Utility.getFluidForFilledItem(aStack, true) == null ? GT_Utility.getContainerItem(aStack, true) : null, aMaterial.mFuelPower, aMaterial.mFuelType); } - if (tItemAmount + tMat.mAmount * 3628800L <= aStack.getMaxStackSize() * aMaterial.getDensity()) - { - tItemAmount += tMat.mAmount * 3628800L; - if (tStack != null) - { - ItemStack tmp397_395 = tStack;tmp397_395.stackSize = ((int)(tmp397_395.stackSize * tDensityMultiplier)); - while ((tStack.stackSize > 64) && (tCapsuleCount + GT_ModHandler.getCapsuleCellContainerCount(tStack) * 64 < 0L ? tList.size() < 5 : tList.size() < 6) && (tCapsuleCount + GT_ModHandler.getCapsuleCellContainerCount(tStack) * 64 <= 64L)) - { - tCapsuleCount += GT_ModHandler.getCapsuleCellContainerCount(tStack) * 64; - tList.add(GT_Utility.copyAmount(64L, new Object[] { tStack })); - tStack.stackSize -= 64; + if ((aMaterial.mMaterialList.size() > 0) && ((aMaterial.mExtraData & 0x3) != 0)) { + int tAllAmount = 0; + MaterialStack tMat2; + for (Iterator i$ = aMaterial.mMaterialList.iterator(); i$.hasNext(); tAllAmount = (int) (tAllAmount + tMat2.mAmount)) { + tMat2 = (MaterialStack) i$.next(); } - if (tStack.stackSize > 0) { - if (tCapsuleCount + GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(new ItemStack[] { tStack }) <= 64L) { - if (tCapsuleCount + GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(new ItemStack[] { tStack }) < 0L ? tList.size() < 5 : tList.size() < 6) - { - tCapsuleCount += GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(new ItemStack[] { tStack }); - tList.add(tStack); + long tItemAmount = 0L; + long tCapsuleCount = GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(new ItemStack[]{aStack}) * -tAllAmount; + long tDensityMultiplier = aMaterial.getDensity() > 3628800L ? aMaterial.getDensity() / 3628800L : 1L; + ArrayList tList = new ArrayList(); + for (MaterialStack tMat : aMaterial.mMaterialList) { + if (tMat.mAmount > 0L) { + ItemStack tStack; + if (tMat.mMaterial == Materials.Air) { + tStack = ItemList.Cell_Air.get(tMat.mAmount * tDensityMultiplier / 2L, new Object[0]); + } else { + tStack = GT_OreDictUnificator.get(OrePrefixes.dust, tMat.mMaterial, tMat.mAmount); + if (tStack == null) { + tStack = GT_OreDictUnificator.get(OrePrefixes.cell, tMat.mMaterial, tMat.mAmount); + } + } + if (tItemAmount + tMat.mAmount * 3628800L <= aStack.getMaxStackSize() * aMaterial.getDensity()) { + tItemAmount += tMat.mAmount * 3628800L; + if (tStack != null) { + ItemStack tmp397_395 = tStack; + tmp397_395.stackSize = ((int) (tmp397_395.stackSize * tDensityMultiplier)); + while ((tStack.stackSize > 64) && (tCapsuleCount + GT_ModHandler.getCapsuleCellContainerCount(tStack) * 64 < 0L ? tList.size() < 5 : tList.size() < 6) && (tCapsuleCount + GT_ModHandler.getCapsuleCellContainerCount(tStack) * 64 <= 64L)) { + tCapsuleCount += GT_ModHandler.getCapsuleCellContainerCount(tStack) * 64; + tList.add(GT_Utility.copyAmount(64L, new Object[]{tStack})); + tStack.stackSize -= 64; + } + if (tStack.stackSize > 0) { + if (tCapsuleCount + GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(new ItemStack[]{tStack}) <= 64L) { + if (tCapsuleCount + GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(new ItemStack[]{tStack}) < 0L ? tList.size() < 5 : tList.size() < 6) { + tCapsuleCount += GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(new ItemStack[]{tStack}); + tList.add(tStack); + } + } + } + } + } + } + } + tItemAmount = (tItemAmount * tDensityMultiplier % aMaterial.getDensity() > 0L ? 1 : 0) + tItemAmount * tDensityMultiplier / aMaterial.getDensity(); + if (tList.size() > 0) { + if ((aMaterial.mExtraData & 0x1) != 0) { + //GT_Values.RA.addElectrolyzerRecipe(GT_Utility.copyAmount(tItemAmount, new Object[] { aStack }), tCapsuleCount > 0L ? (int)tCapsuleCount : 0, (ItemStack)tList.get(0), tList.size() < 2 ? null : (ItemStack)tList.get(1), tList.size() < 3 ? null : (ItemStack)tList.get(2), tList.size() < 4 ? null : (ItemStack)tList.get(3), tList.size() < 5 ? null : (ItemStack)tList.get(4), tList.size() < 6 ? null : tCapsuleCount < 0L ? ItemList.Cell_Empty.get(-tCapsuleCount, new Object[0]) : (ItemStack)tList.get(5), (int)Math.max(1L, Math.abs(aMaterial.getProtons() * 8L * tItemAmount)), Math.min(4, tList.size()) * 30); + GT_Values.RA.addElectrolyzerRecipe(GT_Utility.copyAmount(tItemAmount, new Object[]{aStack}), tCapsuleCount <= 0L ? 0 : (int) tCapsuleCount, (ItemStack) tList.get(0), tList.size() >= 2 ? (ItemStack) tList.get(1) : null, tList.size() >= 3 ? (ItemStack) tList.get(2) : null, tList.size() >= 4 ? (ItemStack) tList.get(3) : null, tList.size() >= 5 ? (ItemStack) tList.get(4) : null, tCapsuleCount >= 0L ? tList.size() >= 6 ? (ItemStack) tList.get(5) : null : ItemList.Cell_Empty.get(-tCapsuleCount, new Object[0]), (int) Math.max(1L, Math.abs(aMaterial.getProtons() * 8L * tItemAmount)), Math.min(4, tList.size()) * 30); + } + if ((aMaterial.mExtraData & 0x2) != 0) { + //GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(tItemAmount, new Object[] { aStack }), tCapsuleCount > 0L ? (int)tCapsuleCount : 0, (ItemStack)tList.get(0), tList.size() < 2 ? null : (ItemStack)tList.get(1), tList.size() < 3 ? null : (ItemStack)tList.get(2), tList.size() < 4 ? null : (ItemStack)tList.get(3), tList.size() < 5 ? null : (ItemStack)tList.get(4), tList.size() < 6 ? null : tCapsuleCount < 0L ? ItemList.Cell_Empty.get(-tCapsuleCount, new Object[0]) : (ItemStack)tList.get(5), (int)Math.max(1L, Math.abs(aMaterial.getMass() * 2L * tItemAmount))); + GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(tItemAmount, new Object[]{aStack}), tCapsuleCount <= 0L ? 0 : (int) tCapsuleCount, (ItemStack) tList.get(0), tList.size() >= 2 ? (ItemStack) tList.get(1) : null, tList.size() >= 3 ? (ItemStack) tList.get(2) : null, tList.size() >= 4 ? (ItemStack) tList.get(3) : null, tList.size() >= 5 ? (ItemStack) tList.get(4) : null, tCapsuleCount >= 0L ? tList.size() >= 6 ? (ItemStack) tList.get(5) : null : ItemList.Cell_Empty.get(-tCapsuleCount, new Object[0]), (int) Math.max(1L, Math.abs(aMaterial.getMass() * 2L * tItemAmount))); } - } } - } } - } } - tItemAmount = (tItemAmount * tDensityMultiplier % aMaterial.getDensity() > 0L ? 1 : 0) + tItemAmount * tDensityMultiplier / aMaterial.getDensity(); - if (tList.size() > 0) - { - if ((aMaterial.mExtraData & 0x1) != 0) { - //GT_Values.RA.addElectrolyzerRecipe(GT_Utility.copyAmount(tItemAmount, new Object[] { aStack }), tCapsuleCount > 0L ? (int)tCapsuleCount : 0, (ItemStack)tList.get(0), tList.size() < 2 ? null : (ItemStack)tList.get(1), tList.size() < 3 ? null : (ItemStack)tList.get(2), tList.size() < 4 ? null : (ItemStack)tList.get(3), tList.size() < 5 ? null : (ItemStack)tList.get(4), tList.size() < 6 ? null : tCapsuleCount < 0L ? ItemList.Cell_Empty.get(-tCapsuleCount, new Object[0]) : (ItemStack)tList.get(5), (int)Math.max(1L, Math.abs(aMaterial.getProtons() * 8L * tItemAmount)), Math.min(4, tList.size()) * 30); - GT_Values.RA.addElectrolyzerRecipe(GT_Utility.copyAmount(tItemAmount, new Object[] { aStack }), tCapsuleCount <= 0L ? 0 : (int)tCapsuleCount, (ItemStack)tList.get(0), tList.size() >= 2 ? (ItemStack)tList.get(1) : null, tList.size() >= 3 ? (ItemStack)tList.get(2) : null, tList.size() >= 4 ? (ItemStack)tList.get(3) : null, tList.size() >= 5 ? (ItemStack)tList.get(4) : null, tCapsuleCount >= 0L ? tList.size() >= 6 ? (ItemStack)tList.get(5) : null : ItemList.Cell_Empty.get(-tCapsuleCount, new Object[0]), (int)Math.max(1L, Math.abs(aMaterial.getProtons() * 8L * tItemAmount)), Math.min(4, tList.size()) * 30); - } - if ((aMaterial.mExtraData & 0x2) != 0) { - //GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(tItemAmount, new Object[] { aStack }), tCapsuleCount > 0L ? (int)tCapsuleCount : 0, (ItemStack)tList.get(0), tList.size() < 2 ? null : (ItemStack)tList.get(1), tList.size() < 3 ? null : (ItemStack)tList.get(2), tList.size() < 4 ? null : (ItemStack)tList.get(3), tList.size() < 5 ? null : (ItemStack)tList.get(4), tList.size() < 6 ? null : tCapsuleCount < 0L ? ItemList.Cell_Empty.get(-tCapsuleCount, new Object[0]) : (ItemStack)tList.get(5), (int)Math.max(1L, Math.abs(aMaterial.getMass() * 2L * tItemAmount))); - GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(tItemAmount, new Object[] { aStack }), tCapsuleCount <= 0L ? 0 : (int)tCapsuleCount, (ItemStack)tList.get(0), tList.size() >= 2 ? (ItemStack)tList.get(1) : null, tList.size() >= 3 ? (ItemStack)tList.get(2) : null, tList.size() >= 4 ? (ItemStack)tList.get(3) : null, tList.size() >= 5 ? (ItemStack)tList.get(4) : null, tCapsuleCount >= 0L ? tList.size() >= 6 ? (ItemStack)tList.get(5) : null : ItemList.Cell_Empty.get(-tCapsuleCount, new Object[0]), (int)Math.max(1L, Math.abs(aMaterial.getMass() * 2L * tItemAmount))); - } - } - } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCellPlasma.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCellPlasma.java index de3e48ab..942196d4 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCellPlasma.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCellPlasma.java @@ -3,25 +3,21 @@ package gregtech.loaders.oreprocessing; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingCellPlasma implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingCellPlasma() - { - OrePrefixes.cellPlasma.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aMaterial == Materials.Empty) { - GT_ModHandler.removeRecipeByOutput(aStack); - } else { - GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_Utility.getFluidForFilledItem(aStack, true) == null ? GT_Utility.getContainerItem(aStack, true) : null, (int)Math.max(1024L, 1024L * aMaterial.getMass()), 4); - GT_Values.RA.addVacuumFreezerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), gregtech.api.util.GT_OreDictUnificator.get(OrePrefixes.cell, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 2L, 1L)); +public class ProcessingCellPlasma implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingCellPlasma() { + OrePrefixes.cellPlasma.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aMaterial == Materials.Empty) { + GT_ModHandler.removeRecipeByOutput(aStack); + } else { + GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_Utility.getFluidForFilledItem(aStack, true) == null ? GT_Utility.getContainerItem(aStack, true) : null, (int) Math.max(1024L, 1024L * aMaterial.getMass()), 4); + GT_Values.RA.addVacuumFreezerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), gregtech.api.util.GT_OreDictUnificator.get(OrePrefixes.cell, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 2L, 1L)); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCircuit.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCircuit.java index 9164641d..33f9dcac 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCircuit.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCircuit.java @@ -7,28 +7,31 @@ import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_ModHandler; import net.minecraft.item.ItemStack; -public class ProcessingCircuit implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingCircuit() - { - OrePrefixes.circuit.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - switch (aMaterial) { - case Good: case Advanced: case Data: case Elite: case Master: case Ultimate: - if (!gregtech.api.util.GT_OreDictUnificator.isBlacklisted(aStack)) GT_ModHandler.removeRecipeByOutput(aStack); - break; - case Primitive: - GT_ModHandler.removeRecipeByOutput(aStack); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Circuit_Primitive.get(1L, new Object[0]), new Object[] { GT_ModHandler.getIC2Item("casingadviron", 1L), OrePrefixes.wireGt01.get(Materials.RedAlloy), OrePrefixes.wireGt01.get(Materials.RedAlloy), OrePrefixes.wireGt01.get(Materials.Tin) }); - break; - case Basic: - GT_ModHandler.removeRecipeByOutput(aStack); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Basic.get(1L, new Object[0]), new Object[] { "WWW", "CPC", "WWW", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Primitive), Character.valueOf('W'), OreDictNames.craftingWireCopper, Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Basic.get(1L, new Object[0]), new Object[] { "WCW", "WPW", "WCW", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Primitive), Character.valueOf('W'), OreDictNames.craftingWireCopper, Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel) }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Circuit_Basic.get(1L, new Object[0]), new Object[] { ItemList.Circuit_Integrated.getWildcard(1L, new Object[0]) }); +public class ProcessingCircuit implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingCircuit() { + OrePrefixes.circuit.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + switch (aMaterial) { + case Good: + case Advanced: + case Data: + case Elite: + case Master: + case Ultimate: + if (!gregtech.api.util.GT_OreDictUnificator.isBlacklisted(aStack)) + GT_ModHandler.removeRecipeByOutput(aStack); + break; + case Primitive: + GT_ModHandler.removeRecipeByOutput(aStack); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Circuit_Primitive.get(1L, new Object[0]), new Object[]{GT_ModHandler.getIC2Item("casingadviron", 1L), OrePrefixes.wireGt01.get(Materials.RedAlloy), OrePrefixes.wireGt01.get(Materials.RedAlloy), OrePrefixes.wireGt01.get(Materials.Tin)}); + break; + case Basic: + GT_ModHandler.removeRecipeByOutput(aStack); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Basic.get(1L, new Object[0]), new Object[]{"WWW", "CPC", "WWW", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Primitive), Character.valueOf('W'), OreDictNames.craftingWireCopper, Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Basic.get(1L, new Object[0]), new Object[]{"WCW", "WPW", "WCW", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Primitive), Character.valueOf('W'), OreDictNames.craftingWireCopper, Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel)}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Circuit_Basic.get(1L, new Object[0]), new Object[]{ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCompressed.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCompressed.java index 24a28193..bf402ad8 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCompressed.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCompressed.java @@ -10,17 +10,14 @@ import gregtech.api.util.GT_RecipeRegistrator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingCompressed implements IOreRecipeRegistrator -{ - public ProcessingCompressed() - { - OrePrefixes.compressed.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.removeRecipeByOutput(aStack); - GregTech_API.registerCover(aStack, new GT_RenderedTexture(aMaterial.mIconSet.mTextures[72], aMaterial.mRGBa, false), null); - GT_RecipeRegistrator.registerUsagesForMaterials(GT_Utility.copyAmount(1L, new Object[] { aStack }), null, false); - } +public class ProcessingCompressed implements IOreRecipeRegistrator { + public ProcessingCompressed() { + OrePrefixes.compressed.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.removeRecipeByOutput(aStack); + GregTech_API.registerCover(aStack, new GT_RenderedTexture(aMaterial.mIconSet.mTextures[72], aMaterial.mRGBa, false), null); + GT_RecipeRegistrator.registerUsagesForMaterials(GT_Utility.copyAmount(1L, new Object[]{aStack}), null, false); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java index 6fd802eb..5c8e4143 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java @@ -1,61 +1,53 @@ package gregtech.loaders.oreprocessing; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OreDictNames; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; +import gregtech.api.enums.*; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; -public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingCrafting() - { - OrePrefixes.crafting.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aOreDictName.equals(OreDictNames.craftingQuartz.toString())) { - GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.redstone_torch, 3, 32767), GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.Concrete.getMolten(144L), new ItemStack(net.minecraft.init.Items.comparator, 1, 0), 800, 1); - } else if (aOreDictName.equals(OreDictNames.craftingWireCopper.toString())) { - GT_Values.RA.addAssemblerRecipe(ItemList.Circuit_Basic.get(1L, new Object[0]), GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_ModHandler.getIC2Item("frequencyTransmitter", 1L), 800, 1); - } else if (aOreDictName.equals(OreDictNames.craftingWireTin.toString())) { - GT_Values.RA.addAssemblerRecipe(ItemList.Circuit_Basic.get(1L, new Object[0]), GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_ModHandler.getIC2Item("frequencyTransmitter", 1L), 800, 1); - } else if (aOreDictName.equals(OreDictNames.craftingLensBlue.toString())) { - GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.block, Materials.Iron, 1L), GT_Utility.copyAmount(0L, new Object[] { aStack }), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 13), 2000, 1920); - GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.block, Materials.WroughtIron, 1L), GT_Utility.copyAmount(0L, new Object[] { aStack }), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 13), 2000, 1920); - GT_Values.RA.addLaserEngraverRecipe(ItemList.IC2_LapotronCrystal.getWildcard(1L, new Object[0]), GT_Utility.copyAmount(0L, new Object[] { aStack }), ItemList.Circuit_Parts_Crystal_Chip_Master.get(3L, new Object[0]), 256, 480); - } else if (aOreDictName.equals(OreDictNames.craftingLensYellow.toString())) { - GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.block, Materials.Iron, 1L), GT_Utility.copyAmount(0L, new Object[] { aStack }), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 14), 2000, 1920); - GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.block, Materials.WroughtIron, 1L), GT_Utility.copyAmount(0L, new Object[] { aStack }), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 14), 2000, 1920); - } else if (aOreDictName.equals(OreDictNames.craftingLensCyan.toString())) { - GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.block, Materials.Iron, 1L), GT_Utility.copyAmount(0L, new Object[] { aStack }), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 15), 2000, 1920); - GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.block, Materials.WroughtIron, 1L), GT_Utility.copyAmount(0L, new Object[] { aStack }), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 15), 2000, 1920); - } else if (aOreDictName.equals(OreDictNames.craftingLensRed.toString())) { - GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Redstone, 1L), GT_Utility.copyAmount(0L, new Object[] { aStack }), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 0), 50, 120); - - GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Copper, 1L), GT_Utility.copyAmount(0L, new Object[] { aStack }), ItemList.Circuit_Parts_Wiring_Basic.get(1L, new Object[0]), 64, 30); - GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.foil, Materials.AnnealedCopper, 1L), GT_Utility.copyAmount(0L, new Object[] { aStack }), ItemList.Circuit_Parts_Wiring_Basic.get(1L, new Object[0]), 64, 30); - GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Gold, 1L), GT_Utility.copyAmount(0L, new Object[] { aStack }), ItemList.Circuit_Parts_Wiring_Advanced.get(1L, new Object[0]), 64, 120); - GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Electrum, 1L), GT_Utility.copyAmount(0L, new Object[] { aStack }), ItemList.Circuit_Parts_Wiring_Advanced.get(1L, new Object[0]), 64, 120); - GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Platinum, 1L), GT_Utility.copyAmount(0L, new Object[] { aStack }), ItemList.Circuit_Parts_Wiring_Elite.get(1L, new Object[0]), 64, 480); - } else if (aOreDictName.equals(OreDictNames.craftingLensGreen.toString())) { - GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Olivine, 1L), GT_Utility.copyAmount(0L, new Object[] { aStack }), ItemList.Circuit_Parts_Crystal_Chip_Elite.get(1L, new Object[0]), 256, 480); - GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Emerald, 1L), GT_Utility.copyAmount(0L, new Object[] { aStack }), ItemList.Circuit_Parts_Crystal_Chip_Elite.get(1L, new Object[0]), 256, 480); - } else if (aOreDictName.equals(OreDictNames.craftingLensWhite.toString())) { - GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.block, Materials.Iron, 1L), GT_Utility.copyAmount(0L, new Object[] { aStack }), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 19), 2000, 1920); - GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.block, Materials.WroughtIron, 1L), GT_Utility.copyAmount(0L, new Object[] { aStack }), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 19), 2000, 1920); - - GT_Values.RA.addLaserEngraverRecipe(new ItemStack(Blocks.sandstone, 1, 2), GT_Utility.copyAmount(0L, new Object[] { aStack }), new ItemStack(Blocks.sandstone, 1, 1), 50, 16); - GT_Values.RA.addLaserEngraverRecipe(new ItemStack(Blocks.stone, 1, 0), GT_Utility.copyAmount(0L, new Object[] { aStack }), new ItemStack(Blocks.stonebrick, 1, 3), 50, 16); - GT_Values.RA.addLaserEngraverRecipe(new ItemStack(Blocks.quartz_block, 1, 0), GT_Utility.copyAmount(0L, new Object[] { aStack }), new ItemStack(Blocks.quartz_block, 1, 1), 50, 16); - GT_Values.RA.addLaserEngraverRecipe(GT_ModHandler.getModItem("appliedenergistics2", "tile.BlockQuartz", 1L), GT_Utility.copyAmount(0L, new Object[] { aStack }), GT_ModHandler.getModItem("appliedenergistics2", "tile.BlockQuartzChiseled", 1L), 50, 16); +public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingCrafting() { + OrePrefixes.crafting.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aOreDictName.equals(OreDictNames.craftingQuartz.toString())) { + GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.redstone_torch, 3, 32767), GT_Utility.copyAmount(1L, new Object[]{aStack}), Materials.Concrete.getMolten(144L), new ItemStack(net.minecraft.init.Items.comparator, 1, 0), 800, 1); + } else if (aOreDictName.equals(OreDictNames.craftingWireCopper.toString())) { + GT_Values.RA.addAssemblerRecipe(ItemList.Circuit_Basic.get(1L, new Object[0]), GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_ModHandler.getIC2Item("frequencyTransmitter", 1L), 800, 1); + } else if (aOreDictName.equals(OreDictNames.craftingWireTin.toString())) { + GT_Values.RA.addAssemblerRecipe(ItemList.Circuit_Basic.get(1L, new Object[0]), GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_ModHandler.getIC2Item("frequencyTransmitter", 1L), 800, 1); + } else if (aOreDictName.equals(OreDictNames.craftingLensBlue.toString())) { + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.block, Materials.Iron, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 13), 2000, 1920); + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.block, Materials.WroughtIron, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 13), 2000, 1920); + GT_Values.RA.addLaserEngraverRecipe(ItemList.IC2_LapotronCrystal.getWildcard(1L, new Object[0]), GT_Utility.copyAmount(0L, new Object[]{aStack}), ItemList.Circuit_Parts_Crystal_Chip_Master.get(3L, new Object[0]), 256, 480); + } else if (aOreDictName.equals(OreDictNames.craftingLensYellow.toString())) { + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.block, Materials.Iron, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 14), 2000, 1920); + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.block, Materials.WroughtIron, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 14), 2000, 1920); + } else if (aOreDictName.equals(OreDictNames.craftingLensCyan.toString())) { + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.block, Materials.Iron, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 15), 2000, 1920); + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.block, Materials.WroughtIron, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 15), 2000, 1920); + } else if (aOreDictName.equals(OreDictNames.craftingLensRed.toString())) { + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Redstone, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 0), 50, 120); + + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Copper, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), ItemList.Circuit_Parts_Wiring_Basic.get(1L, new Object[0]), 64, 30); + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.foil, Materials.AnnealedCopper, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), ItemList.Circuit_Parts_Wiring_Basic.get(1L, new Object[0]), 64, 30); + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Gold, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), ItemList.Circuit_Parts_Wiring_Advanced.get(1L, new Object[0]), 64, 120); + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Electrum, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), ItemList.Circuit_Parts_Wiring_Advanced.get(1L, new Object[0]), 64, 120); + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Platinum, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), ItemList.Circuit_Parts_Wiring_Elite.get(1L, new Object[0]), 64, 480); + } else if (aOreDictName.equals(OreDictNames.craftingLensGreen.toString())) { + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Olivine, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), ItemList.Circuit_Parts_Crystal_Chip_Elite.get(1L, new Object[0]), 256, 480); + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Emerald, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), ItemList.Circuit_Parts_Crystal_Chip_Elite.get(1L, new Object[0]), 256, 480); + } else if (aOreDictName.equals(OreDictNames.craftingLensWhite.toString())) { + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.block, Materials.Iron, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 19), 2000, 1920); + GT_Values.RA.addLaserEngraverRecipe(GT_OreDictUnificator.get(OrePrefixes.block, Materials.WroughtIron, 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 19), 2000, 1920); + + GT_Values.RA.addLaserEngraverRecipe(new ItemStack(Blocks.sandstone, 1, 2), GT_Utility.copyAmount(0L, new Object[]{aStack}), new ItemStack(Blocks.sandstone, 1, 1), 50, 16); + GT_Values.RA.addLaserEngraverRecipe(new ItemStack(Blocks.stone, 1, 0), GT_Utility.copyAmount(0L, new Object[]{aStack}), new ItemStack(Blocks.stonebrick, 1, 3), 50, 16); + GT_Values.RA.addLaserEngraverRecipe(new ItemStack(Blocks.quartz_block, 1, 0), GT_Utility.copyAmount(0L, new Object[]{aStack}), new ItemStack(Blocks.quartz_block, 1, 1), 50, 16); + GT_Values.RA.addLaserEngraverRecipe(GT_ModHandler.getModItem("appliedenergistics2", "tile.BlockQuartz", 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GT_ModHandler.getModItem("appliedenergistics2", "tile.BlockQuartzChiseled", 1L), 50, 16); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java index 9155ecac..ac38b284 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java @@ -4,48 +4,43 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; -public class ProcessingCrop implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingCrop() - { - OrePrefixes.crop.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, net.minecraft.item.ItemStack aStack) - { - GT_ModHandler.addCompressionRecipe(gregtech.api.util.GT_Utility.copyAmount(8L, new Object[] { aStack }), ItemList.IC2_PlantballCompressed.get(1L, new Object[0])); - if (aOreDictName.equals("cropTea")) { - GT_Values.RA.addBrewingRecipe(aStack, FluidRegistry.WATER, FluidRegistry.getFluid("potion.tea"), false); - GT_Values.RA.addBrewingRecipe(aStack, GT_ModHandler.getDistilledWater(1L).getFluid(), FluidRegistry.getFluid("potion.tea"), false); - } else if (aOreDictName.equals("cropGrape")) { - GT_Values.RA.addBrewingRecipe(aStack, FluidRegistry.WATER, FluidRegistry.getFluid("potion.grapejuice"), false); - GT_Values.RA.addBrewingRecipe(aStack, GT_ModHandler.getDistilledWater(1L).getFluid(), FluidRegistry.getFluid("potion.grapejuice"), false); - } else if (aOreDictName.equals("cropChilipepper")) { - GT_ModHandler.addPulverisationRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chili, 1L)); - } else if (aOreDictName.equals("cropCoffee")) { - GT_ModHandler.addPulverisationRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coffee, 1L)); - } else if (aOreDictName.equals("cropPotato")) { - GT_Values.RA.addSlicerRecipe(aStack, ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Raw_PotatoChips.get(1L, new Object[0]), 64, 4); - GT_Values.RA.addSlicerRecipe(aStack, ItemList.Shape_Slicer_Stripes.get(0L, new Object[0]), ItemList.Food_Raw_Fries.get(1L, new Object[0]), 64, 4); - GT_Values.RA.addBrewingRecipe(aStack, FluidRegistry.WATER, FluidRegistry.getFluid("potion.potatojuice"), true); - GT_Values.RA.addBrewingRecipe(aStack, GT_ModHandler.getDistilledWater(1L).getFluid(), FluidRegistry.getFluid("potion.potatojuice"), true); - } else if (aOreDictName.equals("cropLemon")) { - GT_Values.RA.addSlicerRecipe(aStack, ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Sliced_Lemon.get(4L, new Object[0]), 64, 4); - GT_Values.RA.addBrewingRecipe(aStack, FluidRegistry.WATER, FluidRegistry.getFluid("potion.lemonjuice"), false); - GT_Values.RA.addBrewingRecipe(aStack, GT_ModHandler.getDistilledWater(1L).getFluid(), FluidRegistry.getFluid("potion.lemonjuice"), false); - GT_Values.RA.addBrewingRecipe(aStack, FluidRegistry.getFluid("potion.vodka"), FluidRegistry.getFluid("potion.leninade"), true); - } else if (aOreDictName.equals("cropTomato")) { - GT_Values.RA.addSlicerRecipe(aStack, ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Sliced_Tomato.get(4L, new Object[0]), 64, 4); - } else if (aOreDictName.equals("cropCucumber")) { - GT_Values.RA.addSlicerRecipe(aStack, ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Sliced_Cucumber.get(4L, new Object[0]), 64, 4); - } else if (aOreDictName.equals("cropOnion")) { - GT_Values.RA.addSlicerRecipe(aStack, ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Sliced_Onion.get(4L, new Object[0]), 64, 4); +public class ProcessingCrop implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingCrop() { + OrePrefixes.crop.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, net.minecraft.item.ItemStack aStack) { + GT_ModHandler.addCompressionRecipe(gregtech.api.util.GT_Utility.copyAmount(8L, new Object[]{aStack}), ItemList.IC2_PlantballCompressed.get(1L, new Object[0])); + if (aOreDictName.equals("cropTea")) { + GT_Values.RA.addBrewingRecipe(aStack, FluidRegistry.WATER, FluidRegistry.getFluid("potion.tea"), false); + GT_Values.RA.addBrewingRecipe(aStack, GT_ModHandler.getDistilledWater(1L).getFluid(), FluidRegistry.getFluid("potion.tea"), false); + } else if (aOreDictName.equals("cropGrape")) { + GT_Values.RA.addBrewingRecipe(aStack, FluidRegistry.WATER, FluidRegistry.getFluid("potion.grapejuice"), false); + GT_Values.RA.addBrewingRecipe(aStack, GT_ModHandler.getDistilledWater(1L).getFluid(), FluidRegistry.getFluid("potion.grapejuice"), false); + } else if (aOreDictName.equals("cropChilipepper")) { + GT_ModHandler.addPulverisationRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chili, 1L)); + } else if (aOreDictName.equals("cropCoffee")) { + GT_ModHandler.addPulverisationRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coffee, 1L)); + } else if (aOreDictName.equals("cropPotato")) { + GT_Values.RA.addSlicerRecipe(aStack, ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Raw_PotatoChips.get(1L, new Object[0]), 64, 4); + GT_Values.RA.addSlicerRecipe(aStack, ItemList.Shape_Slicer_Stripes.get(0L, new Object[0]), ItemList.Food_Raw_Fries.get(1L, new Object[0]), 64, 4); + GT_Values.RA.addBrewingRecipe(aStack, FluidRegistry.WATER, FluidRegistry.getFluid("potion.potatojuice"), true); + GT_Values.RA.addBrewingRecipe(aStack, GT_ModHandler.getDistilledWater(1L).getFluid(), FluidRegistry.getFluid("potion.potatojuice"), true); + } else if (aOreDictName.equals("cropLemon")) { + GT_Values.RA.addSlicerRecipe(aStack, ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Sliced_Lemon.get(4L, new Object[0]), 64, 4); + GT_Values.RA.addBrewingRecipe(aStack, FluidRegistry.WATER, FluidRegistry.getFluid("potion.lemonjuice"), false); + GT_Values.RA.addBrewingRecipe(aStack, GT_ModHandler.getDistilledWater(1L).getFluid(), FluidRegistry.getFluid("potion.lemonjuice"), false); + GT_Values.RA.addBrewingRecipe(aStack, FluidRegistry.getFluid("potion.vodka"), FluidRegistry.getFluid("potion.leninade"), true); + } else if (aOreDictName.equals("cropTomato")) { + GT_Values.RA.addSlicerRecipe(aStack, ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Sliced_Tomato.get(4L, new Object[0]), 64, 4); + } else if (aOreDictName.equals("cropCucumber")) { + GT_Values.RA.addSlicerRecipe(aStack, ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Sliced_Cucumber.get(4L, new Object[0]), 64, 4); + } else if (aOreDictName.equals("cropOnion")) { + GT_Values.RA.addSlicerRecipe(aStack, ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Sliced_Onion.get(4L, new Object[0]), 64, 4); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedCentrifuged.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedCentrifuged.java index 0af27d1b..278bf294 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedCentrifuged.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedCentrifuged.java @@ -8,16 +8,13 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingCrushedCentrifuged implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingCrushedCentrifuged() - { - OrePrefixes.crushedCentrifuged.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_Values.RA.addForgeHammerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), 10, 16); - GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, GT_Utility.selectItemInList(2, aMaterial.mMacerateInto, aMaterial.mOreByProducts), 1L), 10, false); - } +public class ProcessingCrushedCentrifuged implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingCrushedCentrifuged() { + OrePrefixes.crushedCentrifuged.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_Values.RA.addForgeHammerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), 10, 16); + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, GT_Utility.selectItemInList(2, aMaterial.mMacerateInto, aMaterial.mOreByProducts), 1L), 10, false); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedPurified.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedPurified.java index 384187f2..bcefdcd9 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedPurified.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedPurified.java @@ -8,17 +8,15 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingCrushedPurified implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingCrushedPurified() - { - OrePrefixes.crushedPurified.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.addThermalCentrifugeRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), (int)Math.min(5000L, Math.abs(aMaterial.getMass() * 20L)), new Object[] { GT_OreDictUnificator.get(OrePrefixes.crushedCentrifuged, aMaterial.mMacerateInto, GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, GT_Utility.selectItemInList(1, aMaterial.mMacerateInto, aMaterial.mOreByProducts), 1L) }); - ItemStack tGem = GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L); - if (tGem != null) GT_Values.RA.addSifterRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, tGem, 1L), GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, tGem, 1L), tGem, GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, tGem, 1L), GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, tGem, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, tGem, 1L) }, new int[] { 100, 400, 1500, 2000, 4000, 5000 }, 800, 16); - } +public class ProcessingCrushedPurified implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingCrushedPurified() { + OrePrefixes.crushedPurified.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.addThermalCentrifugeRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), (int) Math.min(5000L, Math.abs(aMaterial.getMass() * 20L)), new Object[]{GT_OreDictUnificator.get(OrePrefixes.crushedCentrifuged, aMaterial.mMacerateInto, GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, GT_Utility.selectItemInList(1, aMaterial.mMacerateInto, aMaterial.mOreByProducts), 1L)}); + ItemStack tGem = GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L); + if (tGem != null) + GT_Values.RA.addSifterRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, tGem, 1L), GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, tGem, 1L), tGem, GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, tGem, 1L), GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, tGem, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, tGem, 1L)}, new int[]{100, 400, 1500, 2000, 4000, 5000}, 800, 16); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java index 92faac97..8a4e1156 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java @@ -8,17 +8,14 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingCrystallized implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingCrystallized() - { - OrePrefixes.crystal.add(this); - OrePrefixes.crystalline.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_Values.RA.addForgeHammerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), 10, 16); - GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), null, 10, false); - } +public class ProcessingCrystallized implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingCrystallized() { + OrePrefixes.crystal.add(this); + OrePrefixes.crystalline.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_Values.RA.addForgeHammerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), 10, 16); + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), null, 10, false); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java index bb24587e..7bdad850 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java @@ -4,33 +4,33 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.SubTag; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; -public class ProcessingDirty implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingDirty() - { - OrePrefixes.clump.add(this); - OrePrefixes.shard.add(this); - OrePrefixes.crushed.add(this); - OrePrefixes.dirtyGravel.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, net.minecraft.item.ItemStack aStack) - { - GT_Values.RA.addForgeHammerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial.mMacerateInto, 1L), 10, 16); - GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial.mMacerateInto, GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), 1L), GT_OreDictUnificator.get(OrePrefixes.dust, GT_Utility.selectItemInList(0, aMaterial.mMacerateInto, aMaterial.mOreByProducts), 1L), 10, false); - GT_ModHandler.addOreWasherRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), 1000, new Object[] { GT_OreDictUnificator.get(aPrefix == OrePrefixes.crushed ? OrePrefixes.crushedPurified : OrePrefixes.dustPure, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, GT_Utility.selectItemInList(0, aMaterial.mMacerateInto, aMaterial.mOreByProducts), 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L) }); - GT_ModHandler.addThermalCentrifugeRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), (int)Math.min(5000L, Math.abs(aMaterial.getMass() * 20L)), new Object[] { GT_OreDictUnificator.get(aPrefix == OrePrefixes.crushed ? OrePrefixes.crushedCentrifuged : OrePrefixes.dust, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, GT_Utility.selectItemInList(1, aMaterial.mMacerateInto, aMaterial.mOreByProducts), 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L) }); - - if (aMaterial.contains(SubTag.WASHING_MERCURY)) GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.Mercury.getFluid(1000L), GT_OreDictUnificator.get(aPrefix == OrePrefixes.crushed ? OrePrefixes.crushedPurified : OrePrefixes.dustPure, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L), new int[] { 10000, 7000, 4000 }, 800, 8); - if (aMaterial.contains(SubTag.WASHING_SODIUMPERSULFATE)) GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.SodiumPersulfate.getFluid(1000L), GT_OreDictUnificator.get(aPrefix == OrePrefixes.crushed ? OrePrefixes.crushedPurified : OrePrefixes.dustPure, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L), new int[] { 10000, 7000, 4000 }, 800, 8); - for (Materials tMaterial : aMaterial.mOreByProducts) { - if (tMaterial.contains(SubTag.WASHING_MERCURY)) GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.Mercury.getFluid(1000L), GT_OreDictUnificator.get(aPrefix == OrePrefixes.crushed ? OrePrefixes.crushedPurified : OrePrefixes.dustPure, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, tMaterial.mMacerateInto, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L), new int[] { 10000, 7000, 4000 }, 800, 8); - if (tMaterial.contains(SubTag.WASHING_SODIUMPERSULFATE)) GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.SodiumPersulfate.getFluid(1000L), GT_OreDictUnificator.get(aPrefix == OrePrefixes.crushed ? OrePrefixes.crushedPurified : OrePrefixes.dustPure, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, tMaterial.mMacerateInto, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L), new int[] { 10000, 7000, 4000 }, 800, 8); +public class ProcessingDirty implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingDirty() { + OrePrefixes.clump.add(this); + OrePrefixes.shard.add(this); + OrePrefixes.crushed.add(this); + OrePrefixes.dirtyGravel.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, net.minecraft.item.ItemStack aStack) { + GT_Values.RA.addForgeHammerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial.mMacerateInto, 1L), 10, 16); + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial.mMacerateInto, GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), 1L), GT_OreDictUnificator.get(OrePrefixes.dust, GT_Utility.selectItemInList(0, aMaterial.mMacerateInto, aMaterial.mOreByProducts), 1L), 10, false); + GT_ModHandler.addOreWasherRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), 1000, new Object[]{GT_OreDictUnificator.get(aPrefix == OrePrefixes.crushed ? OrePrefixes.crushedPurified : OrePrefixes.dustPure, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, GT_Utility.selectItemInList(0, aMaterial.mMacerateInto, aMaterial.mOreByProducts), 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L)}); + GT_ModHandler.addThermalCentrifugeRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), (int) Math.min(5000L, Math.abs(aMaterial.getMass() * 20L)), new Object[]{GT_OreDictUnificator.get(aPrefix == OrePrefixes.crushed ? OrePrefixes.crushedCentrifuged : OrePrefixes.dust, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, GT_Utility.selectItemInList(1, aMaterial.mMacerateInto, aMaterial.mOreByProducts), 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L)}); + + if (aMaterial.contains(SubTag.WASHING_MERCURY)) + GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), Materials.Mercury.getFluid(1000L), GT_OreDictUnificator.get(aPrefix == OrePrefixes.crushed ? OrePrefixes.crushedPurified : OrePrefixes.dustPure, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L), new int[]{10000, 7000, 4000}, 800, 8); + if (aMaterial.contains(SubTag.WASHING_SODIUMPERSULFATE)) + GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), Materials.SodiumPersulfate.getFluid(1000L), GT_OreDictUnificator.get(aPrefix == OrePrefixes.crushed ? OrePrefixes.crushedPurified : OrePrefixes.dustPure, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L), new int[]{10000, 7000, 4000}, 800, 8); + for (Materials tMaterial : aMaterial.mOreByProducts) { + if (tMaterial.contains(SubTag.WASHING_MERCURY)) + GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), Materials.Mercury.getFluid(1000L), GT_OreDictUnificator.get(aPrefix == OrePrefixes.crushed ? OrePrefixes.crushedPurified : OrePrefixes.dustPure, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, tMaterial.mMacerateInto, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L), new int[]{10000, 7000, 4000}, 800, 8); + if (tMaterial.contains(SubTag.WASHING_SODIUMPERSULFATE)) + GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), Materials.SodiumPersulfate.getFluid(1000L), GT_OreDictUnificator.get(aPrefix == OrePrefixes.crushed ? OrePrefixes.crushedPurified : OrePrefixes.dustPure, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, tMaterial.mMacerateInto, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L), new int[]{10000, 7000, 4000}, 800, 8); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java index 0800d244..ee9665d8 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java @@ -1,166 +1,188 @@ package gregtech.loaders.oreprocessing; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.SubTag; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; +import gregtech.api.enums.*; import gregtech.api.objects.MaterialStack; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_RecipeRegistrator; import gregtech.api.util.GT_Utility; -import java.util.ArrayList; -import java.util.List; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; -public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingDust() - { - OrePrefixes.dust.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aMaterial.mFuelPower > 0) GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[] { aStack }), null, aMaterial.mFuelPower, aMaterial.mFuelType); - if (GT_Utility.getFluidForFilledItem(GT_OreDictUnificator.get(OrePrefixes.cell, aMaterial, 1L), true) == null) GT_Values.RA.addCannerRecipe(aStack, ItemList.Cell_Empty.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.cell, aMaterial, 1L), null, 100, 1); - GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(16L, new Object[] { aStack }), ItemList.Crate_Empty.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.crateGtDust, aMaterial, 1L), 100, 8); - GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.crateGtDust, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 16L), ItemList.Crate_Empty.get(1L, new Object[0]), 800, 1); - if (!aMaterial.mBlastFurnaceRequired) { - GT_RecipeRegistrator.registerReverseFluidSmelting(aStack, aMaterial, aPrefix.mMaterialAmount, null); - if (aMaterial.mSmeltInto.mArcSmeltInto != aMaterial) { GT_RecipeRegistrator.registerReverseArcSmelting(GT_Utility.copyAmount(1L, new Object[] { aStack }), aMaterial, aPrefix.mMaterialAmount, null, null, null); - } - } - - ItemStack tStack; -if ((null != (tStack = GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L))) && (!aMaterial.contains(SubTag.NO_SMELTING))) -{ - if (aMaterial.mBlastFurnaceRequired) - { - GT_ModHandler.removeFurnaceSmelting(aStack); - GT_Values.RA.addBlastRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), null, null, null, aMaterial.mBlastFurnaceTemp > 1750 ? GT_OreDictUnificator.get(OrePrefixes.ingotHot, aMaterial.mSmeltInto, tStack, 1L) : GT_Utility.copyAmount(1L, new Object[] { tStack }), null, (int)Math.max(aMaterial.getMass() / 40L, 1L) * aMaterial.mBlastFurnaceTemp, 120, aMaterial.mBlastFurnaceTemp); - if (aMaterial.mBlastFurnaceTemp <= 1000) { - GT_ModHandler.addRCBlastFurnaceRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_Utility.copyAmount(1L, new Object[] { tStack }), aMaterial.mBlastFurnaceTemp); - } - } - else - { - GT_ModHandler.addSmeltingRecipe(aStack, tStack); - } -} -else if (!aMaterial.contains(SubTag.NO_WORKING)) -{ - if ((!OrePrefixes.block.isIgnored(aMaterial)) && - (null == GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L))) { - GT_ModHandler.addCompressionRecipe(GT_Utility.copyAmount(9L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L)); - } - if (((OrePrefixes.block.isIgnored(aMaterial)) || (null == GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L))) && (aMaterial != Materials.GraniteRed) && (aMaterial != Materials.GraniteBlack) && (aMaterial != Materials.Glass) && (aMaterial != Materials.Obsidian) && (aMaterial != Materials.Glowstone) && (aMaterial != Materials.Paper)) { - GT_ModHandler.addCompressionRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)); - } -} - +import java.util.ArrayList; +public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingDust() { + OrePrefixes.dust.add(this); + } - if ((aMaterial.mMaterialList.size() > 0) && ((aMaterial.mExtraData & 0x3) != 0)) { - long tItemAmount = 0L;long tCapsuleCount = 0L;long tDensityMultiplier = aMaterial.getDensity() > 3628800L ? aMaterial.getDensity() / 3628800L : 1L; - ArrayList tList = new ArrayList(); - for (MaterialStack tMat : aMaterial.mMaterialList) if (tMat.mAmount > 0L) - { - if (tMat.mMaterial == Materials.Air) { - tStack = ItemList.Cell_Air.get(tMat.mAmount / 2L, new Object[0]); - } else { - tStack = GT_OreDictUnificator.get(OrePrefixes.dust, tMat.mMaterial, tMat.mAmount); - if (tStack == null) - tStack = GT_OreDictUnificator.get(OrePrefixes.cell, tMat.mMaterial, tMat.mAmount); - } - if (tItemAmount + tMat.mAmount * 3628800L <= aStack.getMaxStackSize() * aMaterial.getDensity()) { - tItemAmount += tMat.mAmount * 3628800L; - if (tStack != null) { - ItemStack tmp793_791 = tStack;tmp793_791.stackSize = ((int)(tmp793_791.stackSize * tDensityMultiplier)); - while ((tStack.stackSize > 64) && (tList.size() < 6) && (tCapsuleCount + GT_ModHandler.getCapsuleCellContainerCount(tStack) * 64 <= 64L)) { - tCapsuleCount += GT_ModHandler.getCapsuleCellContainerCount(tStack) * 64; - tList.add(GT_Utility.copyAmount(64L, new Object[] { tStack })); - tStack.stackSize -= 64; - } - if ((tStack.stackSize > 0) && (tList.size() < 6)) { if (tCapsuleCount + GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(new ItemStack[] { tStack }) <= 64L) { - tCapsuleCount += GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(new ItemStack[] { tStack }); - tList.add(tStack); - } - } + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aMaterial.mFuelPower > 0) + GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[]{aStack}), null, aMaterial.mFuelPower, aMaterial.mFuelType); + if (GT_Utility.getFluidForFilledItem(GT_OreDictUnificator.get(OrePrefixes.cell, aMaterial, 1L), true) == null) + GT_Values.RA.addCannerRecipe(aStack, ItemList.Cell_Empty.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.cell, aMaterial, 1L), null, 100, 1); + GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(16L, new Object[]{aStack}), ItemList.Crate_Empty.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.crateGtDust, aMaterial, 1L), 100, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.crateGtDust, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 16L), ItemList.Crate_Empty.get(1L, new Object[0]), 800, 1); + if (!aMaterial.mBlastFurnaceRequired) { + GT_RecipeRegistrator.registerReverseFluidSmelting(aStack, aMaterial, aPrefix.mMaterialAmount, null); + if (aMaterial.mSmeltInto.mArcSmeltInto != aMaterial) { + GT_RecipeRegistrator.registerReverseArcSmelting(GT_Utility.copyAmount(1L, new Object[]{aStack}), aMaterial, aPrefix.mMaterialAmount, null, null, null); } - } } - tItemAmount = (tItemAmount * tDensityMultiplier % aMaterial.getDensity() > 0L ? 1 : 0) + tItemAmount * tDensityMultiplier / aMaterial.getDensity(); - if (tList.size() > 0) { - FluidStack tFluid = null; - for (int i = 0; i < tList.size(); i++) { if ((!ItemList.Cell_Air.isStackEqual(tList.get(i))) && ((tFluid = GT_Utility.getFluidForFilledItem((ItemStack)tList.get(i), true)) != null)) { - tFluid.amount *= ((ItemStack)tList.get(i)).stackSize; - tCapsuleCount -= GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(new ItemStack[] { (ItemStack)tList.get(i) }); - tList.remove(i); - break; - } + + ItemStack tStack; + if ((null != (tStack = GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L))) && (!aMaterial.contains(SubTag.NO_SMELTING))) { + if (aMaterial.mBlastFurnaceRequired) { + GT_ModHandler.removeFurnaceSmelting(aStack); + GT_Values.RA.addBlastRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), null, null, null, aMaterial.mBlastFurnaceTemp > 1750 ? GT_OreDictUnificator.get(OrePrefixes.ingotHot, aMaterial.mSmeltInto, tStack, 1L) : GT_Utility.copyAmount(1L, new Object[]{tStack}), null, (int) Math.max(aMaterial.getMass() / 40L, 1L) * aMaterial.mBlastFurnaceTemp, 120, aMaterial.mBlastFurnaceTemp); + if (aMaterial.mBlastFurnaceTemp <= 1000) { + GT_ModHandler.addRCBlastFurnaceRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_Utility.copyAmount(1L, new Object[]{tStack}), aMaterial.mBlastFurnaceTemp); + } + } else { + GT_ModHandler.addSmeltingRecipe(aStack, tStack); + } + } else if (!aMaterial.contains(SubTag.NO_WORKING)) { + if ((!OrePrefixes.block.isIgnored(aMaterial)) && + (null == GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L))) { + GT_ModHandler.addCompressionRecipe(GT_Utility.copyAmount(9L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L)); + } + if (((OrePrefixes.block.isIgnored(aMaterial)) || (null == GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L))) && (aMaterial != Materials.GraniteRed) && (aMaterial != Materials.GraniteBlack) && (aMaterial != Materials.Glass) && (aMaterial != Materials.Obsidian) && (aMaterial != Materials.Glowstone) && (aMaterial != Materials.Paper)) { + GT_ModHandler.addCompressionRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)); + } } - if ((aMaterial.mExtraData & 0x1) != 0) GT_Values.RA.addElectrolyzerRecipe(GT_Utility.copyAmount(tItemAmount, new Object[] { aStack }), tCapsuleCount > 0L ? ItemList.Cell_Empty.get(tCapsuleCount, new Object[0]) : null, null, tFluid, (ItemStack)tList.get(0), tList.size() < 2 ? null : (ItemStack)tList.get(1), tList.size() < 3 ? null : (ItemStack)tList.get(2), tList.size() < 4 ? null : (ItemStack)tList.get(3), tList.size() < 5 ? null : (ItemStack)tList.get(4), tList.size() < 6 ? null : (ItemStack)tList.get(5), null, (int)Math.max(1L, Math.abs(aMaterial.getProtons() * 2L * tItemAmount)), Math.min(4, tList.size()) * 30); - if ((aMaterial.mExtraData & 0x2) != 0) { GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(tItemAmount, new Object[] { aStack }), tCapsuleCount > 0L ? ItemList.Cell_Empty.get(tCapsuleCount, new Object[0]) : null, null, tFluid, (ItemStack)tList.get(0), tList.size() < 2 ? null : (ItemStack)tList.get(1), tList.size() < 3 ? null : (ItemStack)tList.get(2), tList.size() < 4 ? null : (ItemStack)tList.get(3), tList.size() < 5 ? null : (ItemStack)tList.get(4), tList.size() < 6 ? null : (ItemStack)tList.get(5), null, (int)Math.max(1L, Math.abs(aMaterial.getMass() * 4L * tItemAmount)), Math.min(4, tList.size()) * 5); + + + if ((aMaterial.mMaterialList.size() > 0) && ((aMaterial.mExtraData & 0x3) != 0)) { + long tItemAmount = 0L; + long tCapsuleCount = 0L; + long tDensityMultiplier = aMaterial.getDensity() > 3628800L ? aMaterial.getDensity() / 3628800L : 1L; + ArrayList tList = new ArrayList(); + for (MaterialStack tMat : aMaterial.mMaterialList) + if (tMat.mAmount > 0L) { + if (tMat.mMaterial == Materials.Air) { + tStack = ItemList.Cell_Air.get(tMat.mAmount / 2L, new Object[0]); + } else { + tStack = GT_OreDictUnificator.get(OrePrefixes.dust, tMat.mMaterial, tMat.mAmount); + if (tStack == null) + tStack = GT_OreDictUnificator.get(OrePrefixes.cell, tMat.mMaterial, tMat.mAmount); + } + if (tItemAmount + tMat.mAmount * 3628800L <= aStack.getMaxStackSize() * aMaterial.getDensity()) { + tItemAmount += tMat.mAmount * 3628800L; + if (tStack != null) { + ItemStack tmp793_791 = tStack; + tmp793_791.stackSize = ((int) (tmp793_791.stackSize * tDensityMultiplier)); + while ((tStack.stackSize > 64) && (tList.size() < 6) && (tCapsuleCount + GT_ModHandler.getCapsuleCellContainerCount(tStack) * 64 <= 64L)) { + tCapsuleCount += GT_ModHandler.getCapsuleCellContainerCount(tStack) * 64; + tList.add(GT_Utility.copyAmount(64L, new Object[]{tStack})); + tStack.stackSize -= 64; + } + if ((tStack.stackSize > 0) && (tList.size() < 6)) { + if (tCapsuleCount + GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(new ItemStack[]{tStack}) <= 64L) { + tCapsuleCount += GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(new ItemStack[]{tStack}); + tList.add(tStack); + } + } + } + } + } + tItemAmount = (tItemAmount * tDensityMultiplier % aMaterial.getDensity() > 0L ? 1 : 0) + tItemAmount * tDensityMultiplier / aMaterial.getDensity(); + if (tList.size() > 0) { + FluidStack tFluid = null; + for (int i = 0; i < tList.size(); i++) { + if ((!ItemList.Cell_Air.isStackEqual(tList.get(i))) && ((tFluid = GT_Utility.getFluidForFilledItem((ItemStack) tList.get(i), true)) != null)) { + tFluid.amount *= ((ItemStack) tList.get(i)).stackSize; + tCapsuleCount -= GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(new ItemStack[]{(ItemStack) tList.get(i)}); + tList.remove(i); + break; + } + } + if ((aMaterial.mExtraData & 0x1) != 0) + GT_Values.RA.addElectrolyzerRecipe(GT_Utility.copyAmount(tItemAmount, new Object[]{aStack}), tCapsuleCount > 0L ? ItemList.Cell_Empty.get(tCapsuleCount, new Object[0]) : null, null, tFluid, (ItemStack) tList.get(0), tList.size() < 2 ? null : (ItemStack) tList.get(1), tList.size() < 3 ? null : (ItemStack) tList.get(2), tList.size() < 4 ? null : (ItemStack) tList.get(3), tList.size() < 5 ? null : (ItemStack) tList.get(4), tList.size() < 6 ? null : (ItemStack) tList.get(5), null, (int) Math.max(1L, Math.abs(aMaterial.getProtons() * 2L * tItemAmount)), Math.min(4, tList.size()) * 30); + if ((aMaterial.mExtraData & 0x2) != 0) { + GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(tItemAmount, new Object[]{aStack}), tCapsuleCount > 0L ? ItemList.Cell_Empty.get(tCapsuleCount, new Object[0]) : null, null, tFluid, (ItemStack) tList.get(0), tList.size() < 2 ? null : (ItemStack) tList.get(1), tList.size() < 3 ? null : (ItemStack) tList.get(2), tList.size() < 4 ? null : (ItemStack) tList.get(3), tList.size() < 5 ? null : (ItemStack) tList.get(4), tList.size() < 6 ? null : (ItemStack) tList.get(5), null, (int) Math.max(1L, Math.abs(aMaterial.getMass() * 4L * tItemAmount)), Math.min(4, tList.size()) * 5); + } + } + } + if (aMaterial.contains(SubTag.CRYSTALLISABLE)) { + GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), Materials.Water.getFluid(200L), GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L), 7000, 2000, 24); + GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_ModHandler.getDistilledWater(200L), GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L), 9000, 1500, 24); + } + + switch (aMaterial) { + case _NULL: + break; + case Glass: + GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new ItemStack(net.minecraft.init.Blocks.glass)); + break; + case NetherQuartz: + case Quartz: + case CertusQuartz: + if (gregtech.api.GregTech_API.sRecipeFile.get(gregtech.api.enums.ConfigCategories.Recipes.disabledrecipes, "QuartzDustSmeltingIntoAESilicon", true)) + GT_ModHandler.removeFurnaceSmelting(aStack); + break; + case MeatRaw: + GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatCooked, 1L)); + break; + case Mercury: + System.err.println("Quicksilver Dust?, To melt that, you don't even need a Furnace..."); + break; + case Tetrahedrite: + case Chalcopyrite: + case Malachite: + GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Copper, 6L)); + break; + case Pentlandite: + GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Nickel, 6L)); + break; + case Garnierite: + GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Nickel, 1L)); + break; + case Cassiterite: + case CassiteriteSand: + GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1L)); + break; + case Magnetite: + case VanadiumMagnetite: + case BasalticMineralSand: + case GraniticMineralSand: + GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Iron, 3L)); + break; + case YellowLimonite: + case BrownLimonite: + case BandedIron: + GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L)); + break; + case Coal: + GT_ModHandler.addLiquidTransposerFillRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), Materials.Water.getFluid(125L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HydratedCoal, 1L), 125); + break; + case HydratedCoal: + GT_ModHandler.addLiquidTransposerEmptyRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), Materials.Water.getFluid(125L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L), 125); + GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L)); + break; + case Diamond: + GT_Values.RA.addImplosionRecipe(GT_Utility.copyAmount(4L, new Object[]{aStack}), 32, ItemList.IC2_Industrial_Diamond.get(3L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 16L)); + break; + case Opal: + case Olivine: + case Emerald: + case Ruby: + case Sapphire: + case GreenSapphire: + case Topaz: + case BlueTopaz: + case Tanzanite: + GT_Values.RA.addImplosionRecipe(GT_Utility.copyAmount(4L, new Object[]{aStack}), 24, GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 3L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 12L)); + break; + case FoolsRuby: + case GarnetRed: + case GarnetYellow: + case Jasper: + case Amber: + case Monazite: + case Forcicium: + case Forcillium: + case Force: + GT_Values.RA.addImplosionRecipe(GT_Utility.copyAmount(4L, new Object[]{aStack}), 16, GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 3L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 8L)); } - } } - if (aMaterial.contains(SubTag.CRYSTALLISABLE)) { - GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.Water.getFluid(200L), GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L), 7000, 2000, 24); - GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_ModHandler.getDistilledWater(200L), GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L), 9000, 1500, 24); - } - - switch (aMaterial) { - case _NULL: - break; - case Glass: - GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), new ItemStack(net.minecraft.init.Blocks.glass)); - break; - case NetherQuartz: case Quartz: case CertusQuartz: - if (gregtech.api.GregTech_API.sRecipeFile.get(gregtech.api.enums.ConfigCategories.Recipes.disabledrecipes, "QuartzDustSmeltingIntoAESilicon", true)) GT_ModHandler.removeFurnaceSmelting(aStack); - break; - case MeatRaw: - GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatCooked, 1L)); - break; - case Mercury: - System.err.println("Quicksilver Dust?, To melt that, you don't even need a Furnace..."); - break; - case Tetrahedrite: case Chalcopyrite: case Malachite: - GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Copper, 6L)); - break; - case Pentlandite: - GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Nickel, 6L)); - break; - case Garnierite: - GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Nickel, 1L)); - break; - case Cassiterite: case CassiteriteSand: - GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1L)); - break; - case Magnetite: case VanadiumMagnetite: case BasalticMineralSand: case GraniticMineralSand: - GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Iron, 3L)); - break; - case YellowLimonite: case BrownLimonite: case BandedIron: - GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L)); - break; - case Coal: - GT_ModHandler.addLiquidTransposerFillRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.Water.getFluid(125L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HydratedCoal, 1L), 125); - break; - case HydratedCoal: - GT_ModHandler.addLiquidTransposerEmptyRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.Water.getFluid(125L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L), 125); - GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L)); - break; - case Diamond: - GT_Values.RA.addImplosionRecipe(GT_Utility.copyAmount(4L, new Object[] { aStack }), 32, ItemList.IC2_Industrial_Diamond.get(3L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 16L)); - break; - case Opal: case Olivine: case Emerald: case Ruby: case Sapphire: case GreenSapphire: case Topaz: case BlueTopaz: case Tanzanite: - GT_Values.RA.addImplosionRecipe(GT_Utility.copyAmount(4L, new Object[] { aStack }), 24, GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 3L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 12L)); - break; - case FoolsRuby: case GarnetRed: case GarnetYellow: case Jasper: case Amber: case Monazite: case Forcicium: case Forcillium: case Force: - GT_Values.RA.addImplosionRecipe(GT_Utility.copyAmount(4L, new Object[] { aStack }), 16, GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 3L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 8L)); - } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDustImpure.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDustImpure.java index dd8f1e1d..043e864d 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDustImpure.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDustImpure.java @@ -4,62 +4,61 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.SubTag; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; -public class ProcessingDustImpure implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingDustImpure() - { - OrePrefixes.dustPure.add(this); - OrePrefixes.dustImpure.add(this); - OrePrefixes.dustRefined.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - Materials tByProduct = (Materials)GT_Utility.selectItemInList(aPrefix == OrePrefixes.dustRefined ? 2 : aPrefix == OrePrefixes.dustPure ? 1 : 0, aMaterial, aMaterial.mOreByProducts); - - if (aPrefix == OrePrefixes.dustPure) { - if (aMaterial.contains(SubTag.ELECTROMAGNETIC_SEPERATION_GOLD)) GT_Values.RA.addElectromagneticSeparatorRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Gold, 1L), new int[] { 10000, 4000, 2000 }, 400, 24); - if (aMaterial.contains(SubTag.ELECTROMAGNETIC_SEPERATION_IRON)) GT_Values.RA.addElectromagneticSeparatorRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Iron, 1L), new int[] { 10000, 4000, 2000 }, 400, 24); - if (aMaterial.contains(SubTag.ELECTROMAGNETIC_SEPERATION_NEODYMIUM)) { GT_Values.RA.addElectromagneticSeparatorRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Neodymium, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Neodymium, 1L), new int[] { 10000, 4000, 2000 }, 400, 24); - } +public class ProcessingDustImpure implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingDustImpure() { + OrePrefixes.dustPure.add(this); + OrePrefixes.dustImpure.add(this); + OrePrefixes.dustRefined.add(this); } - if (aMaterial.contains(SubTag.CRYSTALLISABLE)) { - GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.Water.getFluid(200L), GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L), 9000, 2000, 24); - GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), gregtech.api.util.GT_ModHandler.getDistilledWater(200L), GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L), 9500, 1500, 24); - } - - ItemStack tStack = GT_OreDictUnificator.get(OrePrefixes.dustTiny, tByProduct, GT_OreDictUnificator.get(OrePrefixes.nugget, tByProduct, 1L), 1L); - if (tStack == null) { - tStack = GT_OreDictUnificator.get(OrePrefixes.dustSmall, tByProduct, 1L); - if (tStack == null) { - tStack = GT_OreDictUnificator.get(OrePrefixes.dust, tByProduct, GT_OreDictUnificator.get(OrePrefixes.gem, tByProduct, 1L), 1L); - if (tStack == null) { - tStack = GT_OreDictUnificator.get(OrePrefixes.cell, tByProduct, 1L); - if (tStack == null) { - GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), 0, GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), null, null, null, null, null, (int)Math.max(1L, aMaterial.getMass())); - } else { - FluidStack tFluid = GT_Utility.getFluidForFilledItem(tStack, true); - if (tFluid == null) { - GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(9L, new Object[] { aStack }), 1, GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 9L), tStack, null, null, null, null, (int)Math.max(1L, aMaterial.getMass() * 72L)); - } else { - tFluid.amount /= 10; - GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), null, null, tFluid, GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), null, null, null, null, null, null, (int)Math.max(1L, aMaterial.getMass() * 8L), 5); + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + Materials tByProduct = (Materials) GT_Utility.selectItemInList(aPrefix == OrePrefixes.dustRefined ? 2 : aPrefix == OrePrefixes.dustPure ? 1 : 0, aMaterial, aMaterial.mOreByProducts); + + if (aPrefix == OrePrefixes.dustPure) { + if (aMaterial.contains(SubTag.ELECTROMAGNETIC_SEPERATION_GOLD)) + GT_Values.RA.addElectromagneticSeparatorRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Gold, 1L), new int[]{10000, 4000, 2000}, 400, 24); + if (aMaterial.contains(SubTag.ELECTROMAGNETIC_SEPERATION_IRON)) + GT_Values.RA.addElectromagneticSeparatorRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Iron, 1L), new int[]{10000, 4000, 2000}, 400, 24); + if (aMaterial.contains(SubTag.ELECTROMAGNETIC_SEPERATION_NEODYMIUM)) { + GT_Values.RA.addElectromagneticSeparatorRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Neodymium, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Neodymium, 1L), new int[]{10000, 4000, 2000}, 400, 24); } - } - } else { - GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(9L, new Object[] { aStack }), 0, GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 9L), tStack, null, null, null, null, (int)Math.max(1L, aMaterial.getMass() * 72L)); } - } else { - GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), 0, GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 2L), tStack, null, null, null, null, (int)Math.max(1L, aMaterial.getMass() * 16L)); - } - } else { - GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), 0, GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), tStack, null, null, null, null, (int)Math.max(1L, aMaterial.getMass() * 8L)); + if (aMaterial.contains(SubTag.CRYSTALLISABLE)) { + GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), Materials.Water.getFluid(200L), GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L), 9000, 2000, 24); + GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), gregtech.api.util.GT_ModHandler.getDistilledWater(200L), GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L), 9500, 1500, 24); + } + + ItemStack tStack = GT_OreDictUnificator.get(OrePrefixes.dustTiny, tByProduct, GT_OreDictUnificator.get(OrePrefixes.nugget, tByProduct, 1L), 1L); + if (tStack == null) { + tStack = GT_OreDictUnificator.get(OrePrefixes.dustSmall, tByProduct, 1L); + if (tStack == null) { + tStack = GT_OreDictUnificator.get(OrePrefixes.dust, tByProduct, GT_OreDictUnificator.get(OrePrefixes.gem, tByProduct, 1L), 1L); + if (tStack == null) { + tStack = GT_OreDictUnificator.get(OrePrefixes.cell, tByProduct, 1L); + if (tStack == null) { + GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), 0, GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), null, null, null, null, null, (int) Math.max(1L, aMaterial.getMass())); + } else { + FluidStack tFluid = GT_Utility.getFluidForFilledItem(tStack, true); + if (tFluid == null) { + GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(9L, new Object[]{aStack}), 1, GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 9L), tStack, null, null, null, null, (int) Math.max(1L, aMaterial.getMass() * 72L)); + } else { + tFluid.amount /= 10; + GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), null, null, tFluid, GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), null, null, null, null, null, null, (int) Math.max(1L, aMaterial.getMass() * 8L), 5); + } + } + } else { + GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(9L, new Object[]{aStack}), 0, GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 9L), tStack, null, null, null, null, (int) Math.max(1L, aMaterial.getMass() * 72L)); + } + } else { + GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), 0, GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 2L), tStack, null, null, null, null, (int) Math.max(1L, aMaterial.getMass() * 16L)); + } + } else { + GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), 0, GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), tStack, null, null, null, null, (int) Math.max(1L, aMaterial.getMass() * 8L)); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDustSmall.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDustSmall.java index 16d91881..9f47d43b 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDustSmall.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDustSmall.java @@ -4,31 +4,28 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_RecipeRegistrator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingDustSmall implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingDustSmall() - { - OrePrefixes.dustSmall.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(4L, new Object[] { aStack }), ItemList.Schematic_Dust.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), 100, 4); - if (!aMaterial.mBlastFurnaceRequired) { - GT_RecipeRegistrator.registerReverseFluidSmelting(aStack, aMaterial, aPrefix.mMaterialAmount, null); - if (aMaterial.mSmeltInto.mArcSmeltInto != aMaterial) { GT_RecipeRegistrator.registerReverseArcSmelting(GT_Utility.copyAmount(1L, new Object[] { aStack }), aMaterial, aPrefix.mMaterialAmount, null, null, null); - } +public class ProcessingDustSmall implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingDustSmall() { + OrePrefixes.dustSmall.add(this); } - if (aMaterial.mBlastFurnaceRequired) { - GT_Values.RA.addBlastRecipe(GT_Utility.copyAmount(4L, new Object[] { aStack }), null, null, null, aMaterial.mBlastFurnaceTemp > 1750 ? GT_OreDictUnificator.get(OrePrefixes.ingotHot, aMaterial.mSmeltInto, GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L), 1L) : GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L), null, (int)Math.max(aMaterial.getMass() / 40L, 1L) * aMaterial.mBlastFurnaceTemp, 120, aMaterial.mBlastFurnaceTemp); - } else { - gregtech.api.util.GT_ModHandler.addAlloySmelterRecipe(GT_Utility.copyAmount(4L, new Object[] { aStack }), ItemList.Shape_Mold_Ingot.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L), 130, 3, true); + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(4L, new Object[]{aStack}), ItemList.Schematic_Dust.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), 100, 4); + if (!aMaterial.mBlastFurnaceRequired) { + GT_RecipeRegistrator.registerReverseFluidSmelting(aStack, aMaterial, aPrefix.mMaterialAmount, null); + if (aMaterial.mSmeltInto.mArcSmeltInto != aMaterial) { + GT_RecipeRegistrator.registerReverseArcSmelting(GT_Utility.copyAmount(1L, new Object[]{aStack}), aMaterial, aPrefix.mMaterialAmount, null, null, null); + } + } + if (aMaterial.mBlastFurnaceRequired) { + GT_Values.RA.addBlastRecipe(GT_Utility.copyAmount(4L, new Object[]{aStack}), null, null, null, aMaterial.mBlastFurnaceTemp > 1750 ? GT_OreDictUnificator.get(OrePrefixes.ingotHot, aMaterial.mSmeltInto, GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L), 1L) : GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L), null, (int) Math.max(aMaterial.getMass() / 40L, 1L) * aMaterial.mBlastFurnaceTemp, 120, aMaterial.mBlastFurnaceTemp); + } else { + gregtech.api.util.GT_ModHandler.addAlloySmelterRecipe(GT_Utility.copyAmount(4L, new Object[]{aStack}), ItemList.Shape_Mold_Ingot.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L), 130, 3, true); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDustTiny.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDustTiny.java index 760785cf..0eb3f35b 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDustTiny.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDustTiny.java @@ -4,36 +4,33 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_RecipeRegistrator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingDustTiny implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingDustTiny() - { - OrePrefixes.dustTiny.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(9L, new Object[] { aStack }), ItemList.Schematic_Dust.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), 100, 4); - if (!aMaterial.mBlastFurnaceRequired) { - GT_RecipeRegistrator.registerReverseFluidSmelting(aStack, aMaterial, aPrefix.mMaterialAmount, null); - if (aMaterial.mSmeltInto.mArcSmeltInto != aMaterial) { GT_RecipeRegistrator.registerReverseArcSmelting(GT_Utility.copyAmount(1L, new Object[] { aStack }), aMaterial, aPrefix.mMaterialAmount, null, null, null); - } +public class ProcessingDustTiny implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingDustTiny() { + OrePrefixes.dustTiny.add(this); } - if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMELTING)) { - if (aMaterial.mBlastFurnaceRequired) { - GT_Values.RA.addBlastRecipe(GT_Utility.copyAmount(9L, new Object[] { aStack }), null, null, null, aMaterial.mBlastFurnaceTemp > 1750 ? GT_OreDictUnificator.get(OrePrefixes.ingotHot, aMaterial.mSmeltInto, GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L), 1L) : GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L), null, (int)Math.max(aMaterial.getMass() / 40L, 1L) * aMaterial.mBlastFurnaceTemp, 120, aMaterial.mBlastFurnaceTemp); - GT_ModHandler.removeFurnaceSmelting(aStack); - } else { - GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial.mSmeltInto, 1L)); - GT_ModHandler.addAlloySmelterRecipe(GT_Utility.copyAmount(9L, new Object[] { aStack }), ItemList.Shape_Mold_Ingot.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L), 130, 3, true); - } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(9L, new Object[]{aStack}), ItemList.Schematic_Dust.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), 100, 4); + if (!aMaterial.mBlastFurnaceRequired) { + GT_RecipeRegistrator.registerReverseFluidSmelting(aStack, aMaterial, aPrefix.mMaterialAmount, null); + if (aMaterial.mSmeltInto.mArcSmeltInto != aMaterial) { + GT_RecipeRegistrator.registerReverseArcSmelting(GT_Utility.copyAmount(1L, new Object[]{aStack}), aMaterial, aPrefix.mMaterialAmount, null, null, null); + } + } + if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMELTING)) { + if (aMaterial.mBlastFurnaceRequired) { + GT_Values.RA.addBlastRecipe(GT_Utility.copyAmount(9L, new Object[]{aStack}), null, null, null, aMaterial.mBlastFurnaceTemp > 1750 ? GT_OreDictUnificator.get(OrePrefixes.ingotHot, aMaterial.mSmeltInto, GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L), 1L) : GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L), null, (int) Math.max(aMaterial.getMass() / 40L, 1L) * aMaterial.mBlastFurnaceTemp, 120, aMaterial.mBlastFurnaceTemp); + GT_ModHandler.removeFurnaceSmelting(aStack); + } else { + GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial.mSmeltInto, 1L)); + GT_ModHandler.addAlloySmelterRecipe(GT_Utility.copyAmount(9L, new Object[]{aStack}), ItemList.Shape_Mold_Ingot.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L), 130, 3, true); + } + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java index 007943f1..2d0255cd 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java @@ -5,7 +5,6 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.interfaces.IOreRecipeRegistrator; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; @@ -13,22 +12,19 @@ import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidRegistry; -public class ProcessingDye implements IOreRecipeRegistrator -{ - public ProcessingDye() - { - OrePrefixes.dye.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - Dyes aDye = Dyes.get(aOreDictName); - if ((aDye.mIndex >= 0) && (aDye.mIndex < 16) && - (GT_Utility.getContainerItem(aStack, true) == null)) { - GT_ModHandler.addAlloySmelterRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 8L), GT_Utility.copyAmount(1L, new Object[] { aStack }), new ItemStack(Blocks.stained_glass, 8, 15 - aDye.mIndex), 200, 8, false); - GT_ModHandler.addAlloySmelterRecipe(new ItemStack(Blocks.glass, 8, 32767), GT_Utility.copyAmount(1L, new Object[] { aStack }), new ItemStack(Blocks.stained_glass, 8, 15 - aDye.mIndex), 200, 8, false); - GT_Values.RA.addMixerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), null, null, null, Materials.Water.getFluid(144L), FluidRegistry.getFluidStack("dye.watermixed." + aDye.name().toLowerCase(), 144), null, 16, 4); - GT_Values.RA.addMixerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), null, null, null, GT_ModHandler.getDistilledWater(144L), FluidRegistry.getFluidStack("dye.watermixed." + aDye.name().toLowerCase(), 144), null, 16, 4); +public class ProcessingDye implements IOreRecipeRegistrator { + public ProcessingDye() { + OrePrefixes.dye.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + Dyes aDye = Dyes.get(aOreDictName); + if ((aDye.mIndex >= 0) && (aDye.mIndex < 16) && + (GT_Utility.getContainerItem(aStack, true) == null)) { + GT_ModHandler.addAlloySmelterRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 8L), GT_Utility.copyAmount(1L, new Object[]{aStack}), new ItemStack(Blocks.stained_glass, 8, 15 - aDye.mIndex), 200, 8, false); + GT_ModHandler.addAlloySmelterRecipe(new ItemStack(Blocks.glass, 8, 32767), GT_Utility.copyAmount(1L, new Object[]{aStack}), new ItemStack(Blocks.stained_glass, 8, 15 - aDye.mIndex), 200, 8, false); + GT_Values.RA.addMixerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), null, null, null, Materials.Water.getFluid(144L), FluidRegistry.getFluidStack("dye.watermixed." + aDye.name().toLowerCase(), 144), null, 16, 4); + GT_Values.RA.addMixerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), null, null, null, GT_ModHandler.getDistilledWater(144L), FluidRegistry.getFluidStack("dye.watermixed." + aDye.name().toLowerCase(), 144), null, 16, 4); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java index 38d47274..358a6113 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java @@ -7,15 +7,12 @@ import gregtech.api.interfaces.IOreRecipeRegistrator; import gregtech.api.objects.GT_RenderedTexture; import net.minecraft.item.ItemStack; -public class ProcessingFoil implements IOreRecipeRegistrator -{ - public ProcessingFoil() - { - OrePrefixes.foil.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GregTech_API.registerCover(aStack, new GT_RenderedTexture(aMaterial.mIconSet.mTextures[70], aMaterial.mRGBa, false), null); - } +public class ProcessingFoil implements IOreRecipeRegistrator { + public ProcessingFoil() { + OrePrefixes.foil.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GregTech_API.registerCover(aStack, new GT_RenderedTexture(aMaterial.mIconSet.mTextures[70], aMaterial.mRGBa, false), null); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java index 1e9e5717..41d67bd6 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java @@ -4,36 +4,32 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.objects.MaterialStack; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingFood implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingFood() - { - OrePrefixes.food.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aOreDictName.equals("foodCheese")) { - GT_Values.RA.addSlicerRecipe(aStack, ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Sliced_Cheese.get(4L, new Object[0]), 64, 4); - GT_OreDictUnificator.addItemData(aStack, new gregtech.api.objects.ItemData(Materials.Cheese, 3628800L, new MaterialStack[0])); - } else if (aOreDictName.equals("foodDough")) { - GT_ModHandler.removeFurnaceSmelting(aStack); - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Food_Flat_Dough.get(1L, new Object[0]), 16, 4); - - GT_Values.RA.addMixerRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), null, null, null, null, ItemList.Food_Dough_Sugar.get(2L, new Object[0]), 32, 8); - GT_Values.RA.addMixerRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cocoa, 1L), null, null, null, null, ItemList.Food_Dough_Chocolate.get(2L, new Object[0]), 32, 8); - GT_Values.RA.addMixerRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chocolate, 1L), null, null, null, null, ItemList.Food_Dough_Chocolate.get(2L, new Object[0]), 32, 8); - - GT_Values.RA.addFormingPressRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Mold_Bun.get(0L, new Object[0]), ItemList.Food_Raw_Bun.get(1L, new Object[0]), 128, 4); - GT_Values.RA.addFormingPressRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), ItemList.Shape_Mold_Bread.get(0L, new Object[0]), ItemList.Food_Raw_Bread.get(1L, new Object[0]), 256, 4); - GT_Values.RA.addFormingPressRecipe(GT_Utility.copyAmount(3L, new Object[] { aStack }), ItemList.Shape_Mold_Baguette.get(0L, new Object[0]), ItemList.Food_Raw_Baguette.get(1L, new Object[0]), 384, 4); +public class ProcessingFood implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingFood() { + OrePrefixes.food.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aOreDictName.equals("foodCheese")) { + GT_Values.RA.addSlicerRecipe(aStack, ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Sliced_Cheese.get(4L, new Object[0]), 64, 4); + GT_OreDictUnificator.addItemData(aStack, new gregtech.api.objects.ItemData(Materials.Cheese, 3628800L, new MaterialStack[0])); + } else if (aOreDictName.equals("foodDough")) { + GT_ModHandler.removeFurnaceSmelting(aStack); + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Food_Flat_Dough.get(1L, new Object[0]), 16, 4); + + GT_Values.RA.addMixerRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), null, null, null, null, ItemList.Food_Dough_Sugar.get(2L, new Object[0]), 32, 8); + GT_Values.RA.addMixerRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cocoa, 1L), null, null, null, null, ItemList.Food_Dough_Chocolate.get(2L, new Object[0]), 32, 8); + GT_Values.RA.addMixerRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chocolate, 1L), null, null, null, null, ItemList.Food_Dough_Chocolate.get(2L, new Object[0]), 32, 8); + + GT_Values.RA.addFormingPressRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Mold_Bun.get(0L, new Object[0]), ItemList.Food_Raw_Bun.get(1L, new Object[0]), 128, 4); + GT_Values.RA.addFormingPressRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), ItemList.Shape_Mold_Bread.get(0L, new Object[0]), ItemList.Food_Raw_Bread.get(1L, new Object[0]), 256, 4); + GT_Values.RA.addFormingPressRecipe(GT_Utility.copyAmount(3L, new Object[]{aStack}), ItemList.Shape_Mold_Baguette.get(0L, new Object[0]), ItemList.Food_Raw_Baguette.get(1L, new Object[0]), 384, 4); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGear.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGear.java index dc224f20..a8ad741c 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGear.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGear.java @@ -4,21 +4,18 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import net.minecraft.item.ItemStack; -public class ProcessingGear implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingGear() - { - OrePrefixes.gearGt.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.removeRecipeByOutput(aStack); - if (aMaterial.mStandardMoltenFluid != null) GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Gear.get(0L, new Object[0]), aMaterial.getMolten(576L), GT_OreDictUnificator.get(aPrefix, aMaterial, 1L), 128, 8); - } +public class ProcessingGear implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingGear() { + OrePrefixes.gearGt.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.removeRecipeByOutput(aStack); + if (aMaterial.mStandardMoltenFluid != null) + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Gear.get(0L, new Object[0]), aMaterial.getMolten(576L), GT_OreDictUnificator.get(aPrefix, aMaterial, 1L), 128, 8); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGearSmall.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGearSmall.java index 4a403ff1..93be5d68 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGearSmall.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGearSmall.java @@ -4,19 +4,16 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingGearSmall implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingGearSmall() - { - OrePrefixes.gearGtSmall.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aMaterial.mStandardMoltenFluid != null) GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Gear_Small.get(0L, new Object[0]), aMaterial.getMolten(144L), GT_Utility.copyAmount(1L, new Object[] { aStack }), 16, 8); - } +public class ProcessingGearSmall implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingGearSmall() { + OrePrefixes.gearGtSmall.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aMaterial.mStandardMoltenFluid != null) + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Gear_Small.get(0L, new Object[0]), aMaterial.getMolten(144L), GT_Utility.copyAmount(1L, new Object[]{aStack}), 16, 8); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java index 33f2e0ac..c2e28e96 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java @@ -1,56 +1,55 @@ package gregtech.loaders.oreprocessing; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.SubTag; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; +import gregtech.api.enums.*; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingGem() - { - OrePrefixes.gem.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aMaterial.mFuelPower > 0) { GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[] { aStack }), null, aMaterial.mFuelPower * 2, aMaterial.mFuelType); +public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingGem() { + OrePrefixes.gem.add(this); } - GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(16L, new Object[] { aStack }), ItemList.Crate_Empty.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.crateGtGem, aMaterial, 1L), 100, 8); - GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.crateGtGem, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 16L), ItemList.Crate_Empty.get(1L, new Object[0]), 800, 1); - - if (!OrePrefixes.block.isIgnored(aMaterial)) GT_ModHandler.addCompressionRecipe(GT_Utility.copyAmount(9L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L)); - if (!aMaterial.contains(SubTag.NO_SMELTING)) { GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L)); + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aMaterial.mFuelPower > 0) { + GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[]{aStack}), null, aMaterial.mFuelPower * 2, aMaterial.mFuelType); + } + GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(16L, new Object[]{aStack}), ItemList.Crate_Empty.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.crateGtGem, aMaterial, 1L), 100, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.crateGtGem, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 16L), ItemList.Crate_Empty.get(1L, new Object[0]), 800, 1); + + if (!OrePrefixes.block.isIgnored(aMaterial)) + GT_ModHandler.addCompressionRecipe(GT_Utility.copyAmount(9L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L)); + if (!aMaterial.contains(SubTag.NO_SMELTING)) { + GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L)); + } + if (aMaterial.contains(SubTag.NO_SMASHING)) { + GT_Values.RA.addForgeHammerRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 2L), 64, 16); + } else { + GT_Values.RA.addForgeHammerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), (int) Math.max(aMaterial.getMass(), 1L), 16); + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 2L, 1L), 24); + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 2L, 1L), 96); + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(3L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 3L, 1L), 96); + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(4L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 4L, 1L), 96); + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(5L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 5L, 1L), 96); + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(9L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 9L, 1L), 96); + } + + if (!aMaterial.contains(SubTag.NO_WORKING)) { + GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 2L), (int) Math.max(aMaterial.getMass(), 1L), 16); + } + gregtech.api.util.GT_RecipeRegistrator.registerUsagesForMaterials(GT_Utility.copyAmount(1L, new Object[]{aStack}), OrePrefixes.plate.get(aMaterial).toString(), !aMaterial.contains(SubTag.NO_SMASHING)); + + switch (aMaterial) { + case _NULL: + break; + case Coal: + case Charcoal: + if (gregtech.api.GregTech_API.sRecipeFile.get(gregtech.api.enums.ConfigCategories.Recipes.disabledrecipes, "torchesFromCoal", false)) + GT_ModHandler.removeRecipe(new ItemStack[]{GT_Utility.copyAmount(1L, new Object[]{aStack}), null, null, new ItemStack(net.minecraft.init.Items.stick, 1, 0)}); + break; + case CertusQuartz: + GT_Values.RA.addElectrolyzerRecipe(aStack, 0, GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 1), null, null, null, null, null, 2000, 30); + } } - if (aMaterial.contains(SubTag.NO_SMASHING)) { - GT_Values.RA.addForgeHammerRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 2L), 64, 16); - } else { - GT_Values.RA.addForgeHammerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), (int)Math.max(aMaterial.getMass(), 1L), 16); - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 2L, 1L), 24); - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 2L, 1L), 96); - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(3L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 3L, 1L), 96); - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(4L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 4L, 1L), 96); - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(5L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 5L, 1L), 96); - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(9L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 9L, 1L), 96); - } - - if (!aMaterial.contains(SubTag.NO_WORKING)) { GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 2L), (int)Math.max(aMaterial.getMass(), 1L), 16); - } - gregtech.api.util.GT_RecipeRegistrator.registerUsagesForMaterials(GT_Utility.copyAmount(1L, new Object[] { aStack }), OrePrefixes.plate.get(aMaterial).toString(), !aMaterial.contains(SubTag.NO_SMASHING)); - - switch (aMaterial) { - case _NULL: - break; - case Coal: case Charcoal: if (gregtech.api.GregTech_API.sRecipeFile.get(gregtech.api.enums.ConfigCategories.Recipes.disabledrecipes, "torchesFromCoal", false)) GT_ModHandler.removeRecipe(new ItemStack[] { GT_Utility.copyAmount(1L, new Object[] { aStack }), null, null, new ItemStack(net.minecraft.init.Items.stick, 1, 0) }); - break; - case CertusQuartz: - GT_Values.RA.addElectrolyzerRecipe(aStack, 0, GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 1), null, null, null, null, null, 2000, 30); - } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGemChipped.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGemChipped.java index 788b3339..1299336f 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGemChipped.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGemChipped.java @@ -3,21 +3,19 @@ package gregtech.loaders.oreprocessing; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingGemChipped implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingGemChipped() - { - OrePrefixes.gemChipped.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aMaterial.mFuelPower > 0) GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[] { aStack }), null, aMaterial.mFuelPower / 2, aMaterial.mFuelType); - if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_WORKING)) GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 1L), (int)Math.max(aMaterial.getMass(), 1L), 8); - } +public class ProcessingGemChipped implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingGemChipped() { + OrePrefixes.gemChipped.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aMaterial.mFuelPower > 0) + GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[]{aStack}), null, aMaterial.mFuelPower / 2, aMaterial.mFuelType); + if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_WORKING)) + GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 1L), (int) Math.max(aMaterial.getMass(), 1L), 8); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGemExquisite.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGemExquisite.java index 0d089212..851635c5 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGemExquisite.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGemExquisite.java @@ -3,22 +3,20 @@ package gregtech.loaders.oreprocessing; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingGemExquisite implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingGemExquisite() - { - OrePrefixes.gemExquisite.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aMaterial.mFuelPower > 0) GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[] { aStack }), null, aMaterial.mFuelPower * 8, aMaterial.mFuelType); - if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_WORKING)) GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 3L), GT_OreDictUnificator.getDust(aMaterial, aPrefix.mMaterialAmount - OrePrefixes.stickLong.mMaterialAmount * 3L), (int)Math.max(aMaterial.getMass() * 10L, 1L), 16); - GT_Values.RA.addForgeHammerRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 2L), 64, 16); - } +public class ProcessingGemExquisite implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingGemExquisite() { + OrePrefixes.gemExquisite.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aMaterial.mFuelPower > 0) + GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[]{aStack}), null, aMaterial.mFuelPower * 8, aMaterial.mFuelType); + if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_WORKING)) + GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 3L), GT_OreDictUnificator.getDust(aMaterial, aPrefix.mMaterialAmount - OrePrefixes.stickLong.mMaterialAmount * 3L), (int) Math.max(aMaterial.getMass() * 10L, 1L), 16); + GT_Values.RA.addForgeHammerRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 2L), 64, 16); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawed.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawed.java index 26a5eb41..fad39c93 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawed.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawed.java @@ -3,22 +3,20 @@ package gregtech.loaders.oreprocessing; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingGemFlawed implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingGemFlawed() - { - OrePrefixes.gemFlawed.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aMaterial.mFuelPower > 0) GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[] { aStack }), null, aMaterial.mFuelPower, aMaterial.mFuelType); - if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_WORKING)) GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 2L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L), (int)Math.max(aMaterial.getMass(), 1L), 12); - GT_Values.RA.addForgeHammerRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, 2L), 64, 16); - } +public class ProcessingGemFlawed implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingGemFlawed() { + OrePrefixes.gemFlawed.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aMaterial.mFuelPower > 0) + GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[]{aStack}), null, aMaterial.mFuelPower, aMaterial.mFuelType); + if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_WORKING)) + GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 2L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L), (int) Math.max(aMaterial.getMass(), 1L), 12); + GT_Values.RA.addForgeHammerRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, 2L), 64, 16); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawless.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawless.java index fd413de2..be156619 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawless.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawless.java @@ -3,22 +3,20 @@ package gregtech.loaders.oreprocessing; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingGemFlawless implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingGemFlawless() - { - OrePrefixes.gemFlawless.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aMaterial.mFuelPower > 0) GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[] { aStack }), null, aMaterial.mFuelPower * 4, aMaterial.mFuelType); - if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_WORKING)) GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L), GT_OreDictUnificator.getDust(aMaterial, aPrefix.mMaterialAmount - OrePrefixes.stickLong.mMaterialAmount), (int)Math.max(aMaterial.getMass() * 5L, 1L), 16); - GT_Values.RA.addForgeHammerRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 2L), 64, 16); - } +public class ProcessingGemFlawless implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingGemFlawless() { + OrePrefixes.gemFlawless.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aMaterial.mFuelPower > 0) + GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[]{aStack}), null, aMaterial.mFuelPower * 4, aMaterial.mFuelType); + if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_WORKING)) + GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L), GT_OreDictUnificator.getDust(aMaterial, aPrefix.mMaterialAmount - OrePrefixes.stickLong.mMaterialAmount), (int) Math.max(aMaterial.getMass() * 5L, 1L), 16); + GT_Values.RA.addForgeHammerRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 2L), 64, 16); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot1.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot1.java index 066e0d3d..541d2968 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot1.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot1.java @@ -1,63 +1,62 @@ package gregtech.loaders.oreprocessing; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.SubTag; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; +import gregtech.api.enums.*; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_RecipeRegistrator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingIngot1 implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingIngot1() - { - OrePrefixes.ingot.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aMaterial.mFuelPower > 0) { GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[] { aStack }), null, aMaterial.mFuelPower, aMaterial.mFuelType); +public class ProcessingIngot1 implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingIngot1() { + OrePrefixes.ingot.add(this); } - GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(16L, new Object[] { aStack }), ItemList.Crate_Empty.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.crateGtIngot, aMaterial, 1L), 100, 8); - GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.crateGtIngot, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 16L), ItemList.Crate_Empty.get(1L, new Object[0]), 800, 1); - - if (aMaterial.mStandardMoltenFluid != null) GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Ingot.get(0L, new Object[0]), aMaterial.getMolten(144L), GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L), 32, 8); - GT_RecipeRegistrator.registerReverseFluidSmelting(aStack, aMaterial, aPrefix.mMaterialAmount, null); - GT_RecipeRegistrator.registerReverseMacerating(aStack, aMaterial, aPrefix.mMaterialAmount, null, null, null, false); - if (aMaterial.mSmeltInto.mArcSmeltInto != aMaterial) { GT_RecipeRegistrator.registerReverseArcSmelting(GT_Utility.copyAmount(1L, new Object[] { aStack }), aMaterial, aPrefix.mMaterialAmount, null, null, null); - } - if (!aMaterial.contains(SubTag.NO_SMASHING)) { - GT_Values.RA.addWiremillRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_Utility.copy(new Object[] { GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 2L), GT_OreDictUnificator.get(OrePrefixes.wireFine, aMaterial, 8L) }), 100, 4); - GT_Values.RA.addForgeHammerRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), (int)Math.max(aMaterial.getMass(), 1L), 16); - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 1L, 1L), 24); - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 2L, 1L), 96); - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(3L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 3L, 1L), 96); - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(4L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 4L, 1L), 96); - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(5L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 5L, 1L), 96); - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(9L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 9L, 1L), 96); - } - + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aMaterial.mFuelPower > 0) { + GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[]{aStack}), null, aMaterial.mFuelPower, aMaterial.mFuelType); + } + GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(16L, new Object[]{aStack}), ItemList.Crate_Empty.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.crateGtIngot, aMaterial, 1L), 100, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.crateGtIngot, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 16L), ItemList.Crate_Empty.get(1L, new Object[0]), 800, 1); + + if (aMaterial.mStandardMoltenFluid != null) + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Ingot.get(0L, new Object[0]), aMaterial.getMolten(144L), GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L), 32, 8); + GT_RecipeRegistrator.registerReverseFluidSmelting(aStack, aMaterial, aPrefix.mMaterialAmount, null); + GT_RecipeRegistrator.registerReverseMacerating(aStack, aMaterial, aPrefix.mMaterialAmount, null, null, null, false); + if (aMaterial.mSmeltInto.mArcSmeltInto != aMaterial) { + GT_RecipeRegistrator.registerReverseArcSmelting(GT_Utility.copyAmount(1L, new Object[]{aStack}), aMaterial, aPrefix.mMaterialAmount, null, null, null); + } + if (!aMaterial.contains(SubTag.NO_SMASHING)) { + GT_Values.RA.addWiremillRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_Utility.copy(new Object[]{GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 2L), GT_OreDictUnificator.get(OrePrefixes.wireFine, aMaterial, 8L)}), 100, 4); + GT_Values.RA.addForgeHammerRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), (int) Math.max(aMaterial.getMass(), 1L), 16); + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 1L, 1L), 24); + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 2L, 1L), 96); + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(3L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 3L, 1L), 96); + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(4L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 4L, 1L), 96); + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(5L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 5L, 1L), 96); + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(9L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 9L, 1L), 96); + } - if (!OrePrefixes.block.isIgnored(aMaterial)) GT_ModHandler.addCompressionRecipe(GT_Utility.copyAmount(9L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L)); - if (!aMaterial.contains(SubTag.NO_WORKING)) GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial.mMacerateInto, 2L), (int)Math.max(aMaterial.getMass() * 5L, 1L), 16); - if (!aMaterial.contains(SubTag.NO_SMELTING)) { - GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Mold_Nugget.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial, 9L), 100, 1); - if ((GT_ModHandler.getSmeltingOutput(aStack, false, null) == null) && (GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial.mSmeltInto, 1L) != null) && (!GT_ModHandler.addSmeltingRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial.mSmeltInto, 9L)))) GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial.mSmeltInto, 9L), new Object[] { aOreDictName }); } - ItemStack tStack; - if ((null != (tStack = GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L))) && ( - (aMaterial.mBlastFurnaceRequired) || (aMaterial.contains(SubTag.NO_SMELTING)))) { GT_ModHandler.removeFurnaceSmelting(tStack); + if (!OrePrefixes.block.isIgnored(aMaterial)) + GT_ModHandler.addCompressionRecipe(GT_Utility.copyAmount(9L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L)); + if (!aMaterial.contains(SubTag.NO_WORKING)) + GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial.mMacerateInto, 2L), (int) Math.max(aMaterial.getMass() * 5L, 1L), 16); + if (!aMaterial.contains(SubTag.NO_SMELTING)) { + GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Mold_Nugget.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial, 9L), 100, 1); + if ((GT_ModHandler.getSmeltingOutput(aStack, false, null) == null) && (GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial.mSmeltInto, 1L) != null) && (!GT_ModHandler.addSmeltingRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial.mSmeltInto, 9L)))) + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial.mSmeltInto, 9L), new Object[]{aOreDictName}); + } + ItemStack tStack; + if ((null != (tStack = GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L))) && ( + (aMaterial.mBlastFurnaceRequired) || (aMaterial.contains(SubTag.NO_SMELTING)))) { + GT_ModHandler.removeFurnaceSmelting(tStack); + } + + GT_RecipeRegistrator.registerUsagesForMaterials(GT_Utility.copyAmount(1L, new Object[]{aStack}), OrePrefixes.plate.get(aMaterial).toString(), !aMaterial.contains(SubTag.NO_SMASHING)); + + if (aMaterial == Materials.Mercury) { + System.err.println("Quicksilver Ingots?, Don't tell me there is an Armor made of that highly toxic and very likely to be melting Material!"); + } } - - GT_RecipeRegistrator.registerUsagesForMaterials(GT_Utility.copyAmount(1L, new Object[] { aStack }), OrePrefixes.plate.get(aMaterial).toString(), !aMaterial.contains(SubTag.NO_SMASHING)); - - if (aMaterial == Materials.Mercury) { - System.err.println("Quicksilver Ingots?, Don't tell me there is an Armor made of that highly toxic and very likely to be melting Material!"); - } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot2.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot2.java index 9521a1ce..c6cd49a8 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot2.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot2.java @@ -3,23 +3,19 @@ package gregtech.loaders.oreprocessing; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingIngot2 implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingIngot2() - { - OrePrefixes.ingotDouble.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) { - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 1L, 1L), 96); - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 2L, 1L), 96); +public class ProcessingIngot2 implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingIngot2() { + OrePrefixes.ingotDouble.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) { + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 1L, 1L), 96); + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 2L, 1L), 96); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot3.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot3.java index 171f0746..8cd0a8d0 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot3.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot3.java @@ -3,23 +3,19 @@ package gregtech.loaders.oreprocessing; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingIngot3 implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingIngot3() - { - OrePrefixes.ingotTriple.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) { - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 1L, 1L), 96); - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(3L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 3L, 1L), 96); +public class ProcessingIngot3 implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingIngot3() { + OrePrefixes.ingotTriple.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) { + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 1L, 1L), 96); + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(3L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 3L, 1L), 96); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot4.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot4.java index d0a24168..cce098aa 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot4.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot4.java @@ -8,17 +8,14 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingIngot4 implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingIngot4() - { - OrePrefixes.ingotQuadruple.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (!aMaterial.contains(SubTag.NO_SMASHING)) { - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 1L, 1L), 96); +public class ProcessingIngot4 implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingIngot4() { + OrePrefixes.ingotQuadruple.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (!aMaterial.contains(SubTag.NO_SMASHING)) { + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 1L, 1L), 96); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot5.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot5.java index d08e5988..68aef0bf 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot5.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot5.java @@ -8,17 +8,14 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingIngot5 implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingIngot5() - { - OrePrefixes.ingotQuintuple.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (!aMaterial.contains(SubTag.NO_SMASHING)) { - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(5L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 1L, 1L), 96); +public class ProcessingIngot5 implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingIngot5() { + OrePrefixes.ingotQuintuple.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (!aMaterial.contains(SubTag.NO_SMASHING)) { + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(5L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 1L, 1L), 96); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngotHot.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngotHot.java index 939e4f2f..7248aaca 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngotHot.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngotHot.java @@ -7,15 +7,12 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingIngotHot implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingIngotHot() - { - OrePrefixes.ingotHot.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_Values.RA.addVacuumFreezerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 3L, 1L)); - } +public class ProcessingIngotHot implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingIngotHot() { + OrePrefixes.ingotHot.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_Values.RA.addVacuumFreezerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 3L, 1L)); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingItem.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingItem.java index 63d5c771..80ee117e 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingItem.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingItem.java @@ -3,7 +3,6 @@ package gregtech.loaders.oreprocessing; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.objects.ItemData; import gregtech.api.objects.MaterialStack; import gregtech.api.util.GT_ModHandler; @@ -11,60 +10,44 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingItem implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingItem() - { - OrePrefixes.item.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (GT_OreDictUnificator.getItemData(aStack) == null) - { - - if (!aOreDictName.equals("itemCertusQuartz")) - { - - if (!aOreDictName.equals("itemNetherQuartz")) - { - - if (aOreDictName.equals("itemSilicon")) { - GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Silicon, 3628800L, new MaterialStack[0])); - GT_Values.RA.addFormingPressRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 0L, 19), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 20), 200, 16); - } - else if (aOreDictName.equals("itemWheat")) { - GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Wheat, 3628800L, new MaterialStack[0])); - } - else if (aOreDictName.equals("itemManganese")) { - GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Manganese, 3628800L, new MaterialStack[0])); - } - else if (aOreDictName.equals("itemSalt")) { - GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Salt, 3628800L, new MaterialStack[0])); - } - else if (aOreDictName.equals("itemMagnesium")) { - GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Magnesium, 3628800L, new MaterialStack[0])); - } - else if ((aOreDictName.equals("itemPhosphorite")) || (aOreDictName.equals("itemPhosphorus"))) { - GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Phosphorus, 3628800L, new MaterialStack[0])); - } - else if (aOreDictName.equals("itemSulfur")) { - GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Sulfur, 3628800L, new MaterialStack[0])); - } - else if ((aOreDictName.equals("itemAluminum")) || (aOreDictName.equals("itemAluminium"))) { - GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Aluminium, 3628800L, new MaterialStack[0])); - } - else if (aOreDictName.equals("itemSaltpeter")) { - GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Saltpeter, 3628800L, new MaterialStack[0])); - } - else if (aOreDictName.equals("itemUranium")) { - GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Uranium, 3628800L, new MaterialStack[0])); - } - else { - //System.out.println("Item Name: " + aOreDictName + " !!!Unknown Item detected!!! Please report to GregTech Intergalactical for additional compatiblity. This is not an Error, it's just an Information."); - } - } - } +public class ProcessingItem implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingItem() { + OrePrefixes.item.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (GT_OreDictUnificator.getItemData(aStack) == null) { + + if (!aOreDictName.equals("itemCertusQuartz")) { + + if (!aOreDictName.equals("itemNetherQuartz")) { + + if (aOreDictName.equals("itemSilicon")) { + GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Silicon, 3628800L, new MaterialStack[0])); + GT_Values.RA.addFormingPressRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 0L, 19), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 20), 200, 16); + } else if (aOreDictName.equals("itemWheat")) { + GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Wheat, 3628800L, new MaterialStack[0])); + } else if (aOreDictName.equals("itemManganese")) { + GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Manganese, 3628800L, new MaterialStack[0])); + } else if (aOreDictName.equals("itemSalt")) { + GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Salt, 3628800L, new MaterialStack[0])); + } else if (aOreDictName.equals("itemMagnesium")) { + GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Magnesium, 3628800L, new MaterialStack[0])); + } else if ((aOreDictName.equals("itemPhosphorite")) || (aOreDictName.equals("itemPhosphorus"))) { + GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Phosphorus, 3628800L, new MaterialStack[0])); + } else if (aOreDictName.equals("itemSulfur")) { + GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Sulfur, 3628800L, new MaterialStack[0])); + } else if ((aOreDictName.equals("itemAluminum")) || (aOreDictName.equals("itemAluminium"))) { + GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Aluminium, 3628800L, new MaterialStack[0])); + } else if (aOreDictName.equals("itemSaltpeter")) { + GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Saltpeter, 3628800L, new MaterialStack[0])); + } else if (aOreDictName.equals("itemUranium")) { + GT_OreDictUnificator.addItemData(aStack, new ItemData(Materials.Uranium, 3628800L, new MaterialStack[0])); + } else { + //System.out.println("Item Name: " + aOreDictName + " !!!Unknown Item detected!!! Please report to GregTech Intergalactical for additional compatiblity. This is not an Error, it's just an Information."); + } + } + } + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingLeaves.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLeaves.java index 39d0cec0..352a8d4d 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingLeaves.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLeaves.java @@ -4,12 +4,11 @@ import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import net.minecraft.item.ItemStack; -public class ProcessingLeaves implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingLeaves() - { - OrePrefixes.treeLeaves.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) {} +public class ProcessingLeaves implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingLeaves() { + OrePrefixes.treeLeaves.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java index 0e00bb6c..97361aae 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java @@ -1,24 +1,19 @@ package gregtech.loaders.oreprocessing; import gregtech.api.GregTech_API; -import gregtech.api.enums.Dyes; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.Textures; -import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.objects.GT_MultiTexture; import gregtech.api.objects.GT_RenderedTexture; import net.minecraft.item.ItemStack; -public class ProcessingLens implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingLens() - { - OrePrefixes.lens.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GregTech_API.registerCover(aStack, new GT_MultiTexture(new gregtech.api.interfaces.ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_LENS, aMaterial.mRGBa, false) }), new gregtech.common.covers.GT_Cover_Lens(aMaterial.mColor.mIndex)); - } +public class ProcessingLens implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingLens() { + OrePrefixes.lens.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GregTech_API.registerCover(aStack, new GT_MultiTexture(new gregtech.api.interfaces.ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_LENS, aMaterial.mRGBa, false)}), new gregtech.common.covers.GT_Cover_Lens(aMaterial.mColor.mIndex)); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java index 6d747ab0..40333c08 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java @@ -2,85 +2,78 @@ package gregtech.loaders.oreprocessing; import gregtech.GT_Mod; import gregtech.api.GregTech_API; -import gregtech.api.enums.ConfigCategories; -import gregtech.api.enums.ConfigCategories.Recipes; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; -import gregtech.api.util.GT_Config; +import gregtech.api.enums.*; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; -import gregtech.common.GT_Proxy; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; -public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingLog() - { - OrePrefixes.log.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aOreDictName.equals("logRubber")) { - GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), null, null, Materials.Methane.getGas(60L), ItemList.IC2_Resin.get(1L, new Object[0]), GT_ModHandler.getIC2Item("plantBall", 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), null, null, new int[] { 5000, 3750, 2500, 2500 }, 200, 20); - GT_ModHandler.addSawmillRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.IC2_Resin.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 16L)); - GT_ModHandler.addExtractionRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Rubber, 1L)); - GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 6L), ItemList.IC2_Resin.get(1L, new Object[0]), 33, false); - } else { - GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 6L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), 80, false); +public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingLog() { + OrePrefixes.log.add(this); } - - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Wood, 2L), gregtech.api.util.GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | gregtech.api.util.GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "sLf", Character.valueOf('L'), GT_Utility.copyAmount(1L, new Object[] { aStack }) }); - GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Wood, 4L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L), 160, 8); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), Materials.SeedOil.getFluid(50L), ItemList.FR_Stick.get(1L, new Object[0]), 16, 8); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(8L, new Object[] { aStack }), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), Materials.SeedOil.getFluid(250L), ItemList.FR_Casing_Impregnated.get(1L, new Object[0]), 64, 16); - GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.Creosote.getFluid(1000L), GT_ModHandler.getModItem("Railcraft", "tile.railcraft.cube", 1L, 8), null, null, null, 16, 16); - - int aMeta = aStack.getItemDamage(); - - if (aMeta == 32767) { - if ((GT_Utility.areStacksEqual(GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(1L, new Object[] { aStack }), false, null), new ItemStack(Items.coal, 1, 1))) && - (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", false))) { GT_ModHandler.removeFurnaceSmelting(GT_Utility.copyAmount(1L, new Object[] { aStack })); - } - for (int i = 0; i < 16; i++) { - if ((GT_Utility.areStacksEqual(GT_ModHandler.getSmeltingOutput(new ItemStack(aStack.getItem(), 1, i), false, null), new ItemStack(Items.coal, 1, 1))) && - (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", false))) { GT_ModHandler.removeFurnaceSmelting(new ItemStack(aStack.getItem(), 1, i)); + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aOreDictName.equals("logRubber")) { + GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), null, null, Materials.Methane.getGas(60L), ItemList.IC2_Resin.get(1L, new Object[0]), GT_ModHandler.getIC2Item("plantBall", 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), null, null, new int[]{5000, 3750, 2500, 2500}, 200, 20); + GT_ModHandler.addSawmillRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.IC2_Resin.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 16L)); + GT_ModHandler.addExtractionRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Rubber, 1L)); + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 6L), ItemList.IC2_Resin.get(1L, new Object[0]), 33, false); + } else { + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 6L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), 80, false); } - ItemStack tStack = GT_ModHandler.getRecipeOutput(new ItemStack[] { new ItemStack(aStack.getItem(), 1, i) }); - if (tStack != null) { - ItemStack tPlanks = GT_Utility.copy(new Object[] { tStack }); - tPlanks.stackSize = (tPlanks.stackSize * 3 / 2); - GT_Values.RA.addCutterRecipe(new ItemStack(aStack.getItem(), 1, i), Materials.Lubricant.getFluid(1L), GT_Utility.copy(new Object[] { tPlanks }), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), 200, 8); - GT_Values.RA.addCutterRecipe(new ItemStack(aStack.getItem(), 1, i), GT_Utility.copyAmount(GT_Mod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize : tStack.stackSize * 5 / 4, new Object[] { tStack }), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L), 200, 8); - GT_ModHandler.addSawmillRecipe(new ItemStack(aStack.getItem(), 1, i), tPlanks, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L)); - GT_ModHandler.removeRecipe(new ItemStack[] { new ItemStack(aStack.getItem(), 1, i) }); - GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(GT_Mod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize : tStack.stackSize * 5 / 4, new Object[] { tStack }), new Object[] { "s", "L", Character.valueOf('L'), new ItemStack(aStack.getItem(), 1, i) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(tStack.stackSize / (GT_Mod.gregtechproxy.mNerfedWoodPlank ? 2 : 1), new Object[] { tStack }), new Object[] { new ItemStack(aStack.getItem(), 1, i) }); + + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Wood, 2L), gregtech.api.util.GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | gregtech.api.util.GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"sLf", Character.valueOf('L'), GT_Utility.copyAmount(1L, new Object[]{aStack})}); + GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Wood, 4L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L), 160, 8); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), Materials.SeedOil.getFluid(50L), ItemList.FR_Stick.get(1L, new Object[0]), 16, 8); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(8L, new Object[]{aStack}), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), Materials.SeedOil.getFluid(250L), ItemList.FR_Casing_Impregnated.get(1L, new Object[0]), 64, 16); + GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), Materials.Creosote.getFluid(1000L), GT_ModHandler.getModItem("Railcraft", "tile.railcraft.cube", 1L, 8), null, null, null, 16, 16); + + int aMeta = aStack.getItemDamage(); + + if (aMeta == 32767) { + if ((GT_Utility.areStacksEqual(GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(1L, new Object[]{aStack}), false, null), new ItemStack(Items.coal, 1, 1))) && + (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", false))) { + GT_ModHandler.removeFurnaceSmelting(GT_Utility.copyAmount(1L, new Object[]{aStack})); + } + for (int i = 0; i < 16; i++) { + if ((GT_Utility.areStacksEqual(GT_ModHandler.getSmeltingOutput(new ItemStack(aStack.getItem(), 1, i), false, null), new ItemStack(Items.coal, 1, 1))) && + (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", false))) { + GT_ModHandler.removeFurnaceSmelting(new ItemStack(aStack.getItem(), 1, i)); + } + ItemStack tStack = GT_ModHandler.getRecipeOutput(new ItemStack[]{new ItemStack(aStack.getItem(), 1, i)}); + if (tStack != null) { + ItemStack tPlanks = GT_Utility.copy(new Object[]{tStack}); + tPlanks.stackSize = (tPlanks.stackSize * 3 / 2); + GT_Values.RA.addCutterRecipe(new ItemStack(aStack.getItem(), 1, i), Materials.Lubricant.getFluid(1L), GT_Utility.copy(new Object[]{tPlanks}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), 200, 8); + GT_Values.RA.addCutterRecipe(new ItemStack(aStack.getItem(), 1, i), GT_Utility.copyAmount(GT_Mod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize : tStack.stackSize * 5 / 4, new Object[]{tStack}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L), 200, 8); + GT_ModHandler.addSawmillRecipe(new ItemStack(aStack.getItem(), 1, i), tPlanks, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L)); + GT_ModHandler.removeRecipe(new ItemStack[]{new ItemStack(aStack.getItem(), 1, i)}); + GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(GT_Mod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize : tStack.stackSize * 5 / 4, new Object[]{tStack}), new Object[]{"s", "L", Character.valueOf('L'), new ItemStack(aStack.getItem(), 1, i)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(tStack.stackSize / (GT_Mod.gregtechproxy.mNerfedWoodPlank ? 2 : 1), new Object[]{tStack}), new Object[]{new ItemStack(aStack.getItem(), 1, i)}); + } + } + } else { + if ((GT_Utility.areStacksEqual(GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(1L, new Object[]{aStack}), false, null), new ItemStack(Items.coal, 1, 1))) && + (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", false))) { + GT_ModHandler.removeFurnaceSmelting(GT_Utility.copyAmount(1L, new Object[]{aStack})); + } + ItemStack tStack = GT_ModHandler.getRecipeOutput(new ItemStack[]{GT_Utility.copyAmount(1L, new Object[]{aStack})}); + if (tStack != null) { + ItemStack tPlanks = GT_Utility.copy(new Object[]{tStack}); + tPlanks.stackSize = (tPlanks.stackSize * 3 / 2); + GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), Materials.Lubricant.getFluid(1L), GT_Utility.copy(new Object[]{tPlanks}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), 200, 8); + GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_Utility.copyAmount(GT_Mod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize : tStack.stackSize * 5 / 4, new Object[]{tStack}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L), 200, 8); + GT_ModHandler.addSawmillRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), tPlanks, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L)); + GT_ModHandler.removeRecipe(new ItemStack[]{GT_Utility.copyAmount(1L, new Object[]{aStack})}); + GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(GT_Mod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize : tStack.stackSize * 5 / 4, new Object[]{tStack}), new Object[]{"s", "L", Character.valueOf('L'), GT_Utility.copyAmount(1L, new Object[]{aStack})}); + GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(tStack.stackSize / (GT_Mod.gregtechproxy.mNerfedWoodPlank ? 2 : 1), new Object[]{tStack}), new Object[]{GT_Utility.copyAmount(1L, new Object[]{aStack})}); + } } - } - } else { - if ((GT_Utility.areStacksEqual(GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(1L, new Object[] { aStack }), false, null), new ItemStack(Items.coal, 1, 1))) && - (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", false))) { GT_ModHandler.removeFurnaceSmelting(GT_Utility.copyAmount(1L, new Object[] { aStack })); - } - ItemStack tStack = GT_ModHandler.getRecipeOutput(new ItemStack[] { GT_Utility.copyAmount(1L, new Object[] { aStack }) }); - if (tStack != null) { - ItemStack tPlanks = GT_Utility.copy(new Object[] { tStack }); - tPlanks.stackSize = (tPlanks.stackSize * 3 / 2); - GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.Lubricant.getFluid(1L), GT_Utility.copy(new Object[] { tPlanks }), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), 200, 8); - GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_Utility.copyAmount(GT_Mod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize : tStack.stackSize * 5 / 4, new Object[] { tStack }), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L), 200, 8); - GT_ModHandler.addSawmillRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), tPlanks, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L)); - GT_ModHandler.removeRecipe(new ItemStack[] { GT_Utility.copyAmount(1L, new Object[] { aStack }) }); - GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(GT_Mod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize : tStack.stackSize * 5 / 4, new Object[] { tStack }), new Object[] { "s", "L", Character.valueOf('L'), GT_Utility.copyAmount(1L, new Object[] { aStack }) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(tStack.stackSize / (GT_Mod.gregtechproxy.mNerfedWoodPlank ? 2 : 1), new Object[] { tStack }), new Object[] { GT_Utility.copyAmount(1L, new Object[] { aStack }) }); - } + + if ((GT_Utility.areStacksEqual(GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(1L, new Object[]{aStack}), false, null), new ItemStack(Items.coal, 1, 1))) && + (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", false))) + GT_ModHandler.removeFurnaceSmelting(GT_Utility.copyAmount(1L, new Object[]{aStack})); } - - if ((GT_Utility.areStacksEqual(GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(1L, new Object[] { aStack }), false, null), new ItemStack(Items.coal, 1, 1))) && - (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", false))) GT_ModHandler.removeFurnaceSmelting(GT_Utility.copyAmount(1L, new Object[] { aStack })); - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java index a28b6912..a84c11c6 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java @@ -1,38 +1,33 @@ package gregtech.loaders.oreprocessing; -import appeng.api.config.TunnelType; import appeng.core.Api; import gregtech.GT_Mod; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.SubTag; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; +import gregtech.api.enums.*; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_RecipeRegistrator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingNugget implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingNugget() - { - OrePrefixes.nugget.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aMaterial == Materials.Iron) GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.WroughtIron, 1L)); - if (!aMaterial.contains(SubTag.NO_WORKING)) GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.round, aMaterial, 1L), null, (int)Math.max(aMaterial.getMass() / 4L, 1L), 8); - GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(9L, new Object[] { aStack }), aMaterial.contains(SubTag.SMELTING_TO_GEM) ? ItemList.Shape_Mold_Ball.get(0L, new Object[0]) : ItemList.Shape_Mold_Ingot.get(0L, new Object[0]), GT_OreDictUnificator.get(aMaterial.contains(SubTag.SMELTING_TO_GEM) ? OrePrefixes.gem : OrePrefixes.ingot, aMaterial.mSmeltInto, 1L), 200, 2); - if (aMaterial.mStandardMoltenFluid != null) GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Nugget.get(0L, new Object[0]), aMaterial.getMolten(16L), GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial, 1L), 16, 4); - GT_RecipeRegistrator.registerReverseFluidSmelting(aStack, aMaterial, aPrefix.mMaterialAmount, null); - GT_RecipeRegistrator.registerReverseMacerating(aStack, aMaterial, aPrefix.mMaterialAmount, null, null, null, false); - - if(GT_Mod.gregtechproxy.mAE2Integration){ - Api.INSTANCE.registries().matterCannon().registerAmmo(GT_OreDictUnificator.get(OrePrefixes.round, aMaterial, 1L), aMaterial.getMass());; - } - } +public class ProcessingNugget implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingNugget() { + OrePrefixes.nugget.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aMaterial == Materials.Iron) + GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.WroughtIron, 1L)); + if (!aMaterial.contains(SubTag.NO_WORKING)) + GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.round, aMaterial, 1L), null, (int) Math.max(aMaterial.getMass() / 4L, 1L), 8); + GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(9L, new Object[]{aStack}), aMaterial.contains(SubTag.SMELTING_TO_GEM) ? ItemList.Shape_Mold_Ball.get(0L, new Object[0]) : ItemList.Shape_Mold_Ingot.get(0L, new Object[0]), GT_OreDictUnificator.get(aMaterial.contains(SubTag.SMELTING_TO_GEM) ? OrePrefixes.gem : OrePrefixes.ingot, aMaterial.mSmeltInto, 1L), 200, 2); + if (aMaterial.mStandardMoltenFluid != null) + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Nugget.get(0L, new Object[0]), aMaterial.getMolten(16L), GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial, 1L), 16, 4); + GT_RecipeRegistrator.registerReverseFluidSmelting(aStack, aMaterial, aPrefix.mMaterialAmount, null); + GT_RecipeRegistrator.registerReverseMacerating(aStack, aMaterial, aPrefix.mMaterialAmount, null, null, null, false); + + if (GT_Mod.gregtechproxy.mAE2Integration) { + Api.INSTANCE.registries().matterCannon().registerAmmo(GT_OreDictUnificator.get(OrePrefixes.round, aMaterial, 1L), aMaterial.getMass()); + ; + } + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java index 7af18315..b0b2604b 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java @@ -1,118 +1,122 @@ package gregtech.loaders.oreprocessing; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.SubTag; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; +import gregtech.api.enums.*; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; -import java.util.ArrayList; import net.minecraft.item.ItemStack; -public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingOre() - { - for (OrePrefixes tPrefix : OrePrefixes.values()) if ((tPrefix.name().startsWith("ore")) && (tPrefix != OrePrefixes.orePoor) && (tPrefix != OrePrefixes.oreSmall) && (tPrefix != OrePrefixes.oreRich) && (tPrefix != OrePrefixes.oreNormal)) tPrefix.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - boolean tIsRich = (aPrefix == OrePrefixes.oreNether) || (aPrefix == OrePrefixes.oreEnd) || (aPrefix == OrePrefixes.oreDense); - - if (aMaterial == Materials.Oilsands) { - GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), null, null, Materials.Oil.getFluid(tIsRich ? 1000L : 500L), new ItemStack(net.minecraft.init.Blocks.sand, 1, 0), null, null, null, null, null, new int[] { tIsRich ? '?' : '?' }, tIsRich ? 2000 : 1000, 5); - } else { - registerStandardOreRecipes(aPrefix, aMaterial, GT_Utility.copyAmount(1L, new Object[] { aStack }), Math.max(1, gregtech.api.GregTech_API.sOPStuff.get(gregtech.api.enums.ConfigCategories.Materials.oreprocessingoutputmultiplier, aMaterial.toString(), 1)) * (tIsRich ? 2 : 1)); - } - } - - private ArrayList mAlreadyListedOres = new ArrayList(1000); - - private boolean registerStandardOreRecipes(OrePrefixes aPrefix, Materials aMaterial, ItemStack aOreStack, int aMultiplier) { - if ((aOreStack == null) || (aMaterial == null)) return false; - GT_ModHandler.addValuableOre(GT_Utility.getBlockFromStack(aOreStack), aOreStack.getItemDamage(), aMaterial.mOreValue); - Materials tMaterial = aMaterial.mOreReplacement;Materials tPrimaryByMaterial = null;Materials tSecondaryByMaterial = null; - aMultiplier = Math.max(1, aMultiplier); - aOreStack = GT_Utility.copyAmount(1L, new Object[] { aOreStack }); - aOreStack.stackSize = 1; - +import java.util.ArrayList; - ItemStack tIngot = GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mDirectSmelting, 1L); - ItemStack tGem = GT_OreDictUnificator.get(OrePrefixes.gem, tMaterial, 1L); - ItemStack tSmeltInto = tIngot == null ? null : aMaterial.contains(SubTag.SMELTING_TO_GEM) ? GT_OreDictUnificator.get(OrePrefixes.gem, tMaterial.mDirectSmelting, GT_OreDictUnificator.get(OrePrefixes.crystal, tMaterial.mDirectSmelting, GT_OreDictUnificator.get(OrePrefixes.gem, tMaterial, GT_OreDictUnificator.get(OrePrefixes.crystal, tMaterial, 1L), 1L), 1L), 1L) : tIngot; - - ItemStack tSmall = GT_OreDictUnificator.get(OrePrefixes.dustSmall, tMaterial, 1L); - ItemStack tDust = GT_OreDictUnificator.get(OrePrefixes.dust, tMaterial, tGem, 1L); - ItemStack tCleaned = GT_OreDictUnificator.get(OrePrefixes.crushedPurified, tMaterial, tDust, 1L); - ItemStack tCrushed = GT_OreDictUnificator.get(OrePrefixes.crushed, tMaterial, aMaterial.mOreMultiplier * aMultiplier); - ItemStack tPrimaryByProduct = null;ItemStack tPrimaryByProductSmall = null;ItemStack tSecondaryByProduct = null;ItemStack tSecondaryByProductSmall = null; - - if (tCrushed == null) { - tCrushed = GT_OreDictUnificator.get(OrePrefixes.dustImpure, tMaterial, GT_Utility.copyAmount(aMaterial.mOreMultiplier * aMultiplier, new Object[] { tCleaned, tDust, tGem }), aMaterial.mOreMultiplier * aMultiplier); +public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistrator { + private ArrayList mAlreadyListedOres = new ArrayList(1000); + + public ProcessingOre() { + for (OrePrefixes tPrefix : OrePrefixes.values()) + if ((tPrefix.name().startsWith("ore")) && (tPrefix != OrePrefixes.orePoor) && (tPrefix != OrePrefixes.oreSmall) && (tPrefix != OrePrefixes.oreRich) && (tPrefix != OrePrefixes.oreNormal)) + tPrefix.add(this); } - - ArrayList tByProductStacks = new ArrayList(); - - for (Materials tMat : aMaterial.mOreByProducts) { - ItemStack tByProduct = GT_OreDictUnificator.get(OrePrefixes.dust, tMat, 1L); - if (tByProduct != null) tByProductStacks.add(tByProduct); - if (tPrimaryByProduct == null) { - tPrimaryByMaterial = tMat; - tPrimaryByProduct = GT_OreDictUnificator.get(OrePrefixes.dust, tMat, 1L); - tPrimaryByProductSmall = GT_OreDictUnificator.get(OrePrefixes.dustSmall, tMat, 1L); - if (tPrimaryByProductSmall == null) tPrimaryByProductSmall = GT_OreDictUnificator.get(OrePrefixes.dustTiny, tMat, GT_OreDictUnificator.get(OrePrefixes.nugget, tMat, 2L), 2L); - } - if ((tSecondaryByProduct == null) || (tSecondaryByMaterial == tPrimaryByMaterial)) { - tSecondaryByMaterial = tMat; - tSecondaryByProduct = GT_OreDictUnificator.get(OrePrefixes.dust, tMat, 1L); - tSecondaryByProductSmall = GT_OreDictUnificator.get(OrePrefixes.dustSmall, tMat, 1L); - if (tSecondaryByProductSmall == null) { tSecondaryByProductSmall = GT_OreDictUnificator.get(OrePrefixes.dustTiny, tMat, GT_OreDictUnificator.get(OrePrefixes.nugget, tMat, 2L), 2L); + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + boolean tIsRich = (aPrefix == OrePrefixes.oreNether) || (aPrefix == OrePrefixes.oreEnd) || (aPrefix == OrePrefixes.oreDense); + + if (aMaterial == Materials.Oilsands) { + GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), null, null, Materials.Oil.getFluid(tIsRich ? 1000L : 500L), new ItemStack(net.minecraft.init.Blocks.sand, 1, 0), null, null, null, null, null, new int[]{tIsRich ? '?' : '?'}, tIsRich ? 2000 : 1000, 5); + } else { + registerStandardOreRecipes(aPrefix, aMaterial, GT_Utility.copyAmount(1L, new Object[]{aStack}), Math.max(1, gregtech.api.GregTech_API.sOPStuff.get(gregtech.api.enums.ConfigCategories.Materials.oreprocessingoutputmultiplier, aMaterial.toString(), 1)) * (tIsRich ? 2 : 1)); } - } } - if ((!tByProductStacks.isEmpty()) && (!this.mAlreadyListedOres.contains(aMaterial))) { - this.mAlreadyListedOres.add(aMaterial); - gregtech.api.util.GT_Recipe.GT_Recipe_Map.sByProductList.addFakeRecipe(false, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.ore, aMaterial, aOreStack, 1L) }, (ItemStack[])tByProductStacks.toArray(new ItemStack[tByProductStacks.size()]), null, null, null, null, 0, 0, 0); + + private boolean registerStandardOreRecipes(OrePrefixes aPrefix, Materials aMaterial, ItemStack aOreStack, int aMultiplier) { + if ((aOreStack == null) || (aMaterial == null)) return false; + GT_ModHandler.addValuableOre(GT_Utility.getBlockFromStack(aOreStack), aOreStack.getItemDamage(), aMaterial.mOreValue); + Materials tMaterial = aMaterial.mOreReplacement; + Materials tPrimaryByMaterial = null; + Materials tSecondaryByMaterial = null; + aMultiplier = Math.max(1, aMultiplier); + aOreStack = GT_Utility.copyAmount(1L, new Object[]{aOreStack}); + aOreStack.stackSize = 1; + + + ItemStack tIngot = GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mDirectSmelting, 1L); + ItemStack tGem = GT_OreDictUnificator.get(OrePrefixes.gem, tMaterial, 1L); + ItemStack tSmeltInto = tIngot == null ? null : aMaterial.contains(SubTag.SMELTING_TO_GEM) ? GT_OreDictUnificator.get(OrePrefixes.gem, tMaterial.mDirectSmelting, GT_OreDictUnificator.get(OrePrefixes.crystal, tMaterial.mDirectSmelting, GT_OreDictUnificator.get(OrePrefixes.gem, tMaterial, GT_OreDictUnificator.get(OrePrefixes.crystal, tMaterial, 1L), 1L), 1L), 1L) : tIngot; + + ItemStack tSmall = GT_OreDictUnificator.get(OrePrefixes.dustSmall, tMaterial, 1L); + ItemStack tDust = GT_OreDictUnificator.get(OrePrefixes.dust, tMaterial, tGem, 1L); + ItemStack tCleaned = GT_OreDictUnificator.get(OrePrefixes.crushedPurified, tMaterial, tDust, 1L); + ItemStack tCrushed = GT_OreDictUnificator.get(OrePrefixes.crushed, tMaterial, aMaterial.mOreMultiplier * aMultiplier); + ItemStack tPrimaryByProduct = null; + ItemStack tPrimaryByProductSmall = null; + ItemStack tSecondaryByProduct = null; + ItemStack tSecondaryByProductSmall = null; + + if (tCrushed == null) { + tCrushed = GT_OreDictUnificator.get(OrePrefixes.dustImpure, tMaterial, GT_Utility.copyAmount(aMaterial.mOreMultiplier * aMultiplier, new Object[]{tCleaned, tDust, tGem}), aMaterial.mOreMultiplier * aMultiplier); + } + + ArrayList tByProductStacks = new ArrayList(); + + for (Materials tMat : aMaterial.mOreByProducts) { + ItemStack tByProduct = GT_OreDictUnificator.get(OrePrefixes.dust, tMat, 1L); + if (tByProduct != null) tByProductStacks.add(tByProduct); + if (tPrimaryByProduct == null) { + tPrimaryByMaterial = tMat; + tPrimaryByProduct = GT_OreDictUnificator.get(OrePrefixes.dust, tMat, 1L); + tPrimaryByProductSmall = GT_OreDictUnificator.get(OrePrefixes.dustSmall, tMat, 1L); + if (tPrimaryByProductSmall == null) + tPrimaryByProductSmall = GT_OreDictUnificator.get(OrePrefixes.dustTiny, tMat, GT_OreDictUnificator.get(OrePrefixes.nugget, tMat, 2L), 2L); + } + if ((tSecondaryByProduct == null) || (tSecondaryByMaterial == tPrimaryByMaterial)) { + tSecondaryByMaterial = tMat; + tSecondaryByProduct = GT_OreDictUnificator.get(OrePrefixes.dust, tMat, 1L); + tSecondaryByProductSmall = GT_OreDictUnificator.get(OrePrefixes.dustSmall, tMat, 1L); + if (tSecondaryByProductSmall == null) { + tSecondaryByProductSmall = GT_OreDictUnificator.get(OrePrefixes.dustTiny, tMat, GT_OreDictUnificator.get(OrePrefixes.nugget, tMat, 2L), 2L); + } + } + } + if ((!tByProductStacks.isEmpty()) && (!this.mAlreadyListedOres.contains(aMaterial))) { + this.mAlreadyListedOres.add(aMaterial); + gregtech.api.util.GT_Recipe.GT_Recipe_Map.sByProductList.addFakeRecipe(false, new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.ore, aMaterial, aOreStack, 1L)}, (ItemStack[]) tByProductStacks.toArray(new ItemStack[tByProductStacks.size()]), null, null, null, null, 0, 0, 0); + } + + if (tPrimaryByMaterial == null) tPrimaryByMaterial = tMaterial; + if (tPrimaryByProduct == null) tPrimaryByProduct = tDust; + if (tPrimaryByProductSmall == null) { + tPrimaryByProductSmall = tSmall; + } + if (tSecondaryByMaterial == null) tSecondaryByMaterial = tPrimaryByMaterial; + if (tSecondaryByProduct == null) tSecondaryByProduct = tPrimaryByProduct; + if (tSecondaryByProductSmall == null) { + tSecondaryByProductSmall = tPrimaryByProductSmall; + } + boolean tHasSmelting = false; + + if (tSmeltInto != null) { + if ((aMaterial.mBlastFurnaceRequired) || (aMaterial.mDirectSmelting.mBlastFurnaceRequired)) { + GT_ModHandler.removeFurnaceSmelting(aOreStack); + } else { + GT_ModHandler.addInductionSmelterRecipe(aOreStack, new ItemStack(net.minecraft.init.Blocks.sand, 1), GT_Utility.mul(aMultiplier * (aMaterial.contains(SubTag.INDUCTIONSMELTING_LOW_OUTPUT) ? 1 : 2) * aMaterial.mSmeltingMultiplier, new Object[]{tSmeltInto}), ItemList.TE_Slag_Rich.get(1L, new Object[0]), 300 * aMultiplier, 10 * aMultiplier); + GT_ModHandler.addInductionSmelterRecipe(aOreStack, ItemList.TE_Slag_Rich.get(aMultiplier, new Object[0]), GT_Utility.mul(aMultiplier * (aMaterial.contains(SubTag.INDUCTIONSMELTING_LOW_OUTPUT) ? 2 : 3) * aMaterial.mSmeltingMultiplier, new Object[]{tSmeltInto}), ItemList.TE_Slag.get(aMultiplier, new Object[0]), 300 * aMultiplier, 95); + tHasSmelting = GT_ModHandler.addSmeltingRecipe(aOreStack, GT_Utility.copyAmount(aMultiplier * aMaterial.mSmeltingMultiplier, new Object[]{tSmeltInto})); + } + + if (aMaterial.contains(SubTag.BLASTFURNACE_CALCITE_TRIPLE)) { + GT_Values.RA.addBlastRecipe(aOreStack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, aMultiplier), null, null, GT_Utility.mul(aMultiplier * 3 * aMaterial.mSmeltingMultiplier, new Object[]{tSmeltInto}), ItemList.TE_Slag.get(1L, new Object[]{GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L)}), tSmeltInto.stackSize * 500, 120, 1500); + } else if (aMaterial.contains(SubTag.BLASTFURNACE_CALCITE_DOUBLE)) { + GT_Values.RA.addBlastRecipe(aOreStack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, aMultiplier), null, null, GT_Utility.mul(aMultiplier * 2 * aMaterial.mSmeltingMultiplier, new Object[]{tSmeltInto}), ItemList.TE_Slag.get(1L, new Object[]{GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L)}), tSmeltInto.stackSize * 500, 120, 1500); + } + } + + if (!tHasSmelting) { + tHasSmelting = GT_ModHandler.addSmeltingRecipe(aOreStack, GT_OreDictUnificator.get(OrePrefixes.gem, tMaterial.mDirectSmelting, Math.max(1, aMultiplier * aMaterial.mSmeltingMultiplier / 2))); + } + + if (tCrushed != null) { + GT_Values.RA.addForgeHammerRecipe(aOreStack, GT_Utility.copy(new Object[]{GT_Utility.copyAmount(tCrushed.stackSize, new Object[]{tGem}), tCrushed}), 16, 10); + GT_ModHandler.addPulverisationRecipe(aOreStack, GT_Utility.mul(2L, new Object[]{tCrushed}), tMaterial.contains(SubTag.PULVERIZING_CINNABAR) ? GT_OreDictUnificator.get(OrePrefixes.crystal, Materials.Cinnabar, GT_OreDictUnificator.get(OrePrefixes.gem, tPrimaryByMaterial, GT_Utility.copyAmount(1L, new Object[]{tPrimaryByProduct}), 1L), 1L) : GT_OreDictUnificator.get(OrePrefixes.gem, tPrimaryByMaterial, GT_Utility.copyAmount(1L, new Object[]{tPrimaryByProduct}), 1L), tPrimaryByProduct == null ? 0 : tPrimaryByProduct.stackSize * 10 * aMultiplier * aMaterial.mByProductMultiplier, GT_OreDictUnificator.getDust(aPrefix.mSecondaryMaterial), 50, true); + } + return true; } - - if (tPrimaryByMaterial == null) tPrimaryByMaterial = tMaterial; - if (tPrimaryByProduct == null) tPrimaryByProduct = tDust; - if (tPrimaryByProductSmall == null) { tPrimaryByProductSmall = tSmall; - } - if (tSecondaryByMaterial == null) tSecondaryByMaterial = tPrimaryByMaterial; - if (tSecondaryByProduct == null) tSecondaryByProduct = tPrimaryByProduct; - if (tSecondaryByProductSmall == null) { tSecondaryByProductSmall = tPrimaryByProductSmall; - } - boolean tHasSmelting = false; - - if (tSmeltInto != null) { - if ((aMaterial.mBlastFurnaceRequired) || (aMaterial.mDirectSmelting.mBlastFurnaceRequired)) { - GT_ModHandler.removeFurnaceSmelting(aOreStack); - } else { - GT_ModHandler.addInductionSmelterRecipe(aOreStack, new ItemStack(net.minecraft.init.Blocks.sand, 1), GT_Utility.mul(aMultiplier * (aMaterial.contains(SubTag.INDUCTIONSMELTING_LOW_OUTPUT) ? 1 : 2) * aMaterial.mSmeltingMultiplier, new Object[] { tSmeltInto }), ItemList.TE_Slag_Rich.get(1L, new Object[0]), 300 * aMultiplier, 10 * aMultiplier); - GT_ModHandler.addInductionSmelterRecipe(aOreStack, ItemList.TE_Slag_Rich.get(aMultiplier, new Object[0]), GT_Utility.mul(aMultiplier * (aMaterial.contains(SubTag.INDUCTIONSMELTING_LOW_OUTPUT) ? 2 : 3) * aMaterial.mSmeltingMultiplier, new Object[] { tSmeltInto }), ItemList.TE_Slag.get(aMultiplier, new Object[0]), 300 * aMultiplier, 95); - tHasSmelting = GT_ModHandler.addSmeltingRecipe(aOreStack, GT_Utility.copyAmount(aMultiplier * aMaterial.mSmeltingMultiplier, new Object[] { tSmeltInto })); - } - - if (aMaterial.contains(SubTag.BLASTFURNACE_CALCITE_TRIPLE)) { - GT_Values.RA.addBlastRecipe(aOreStack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, aMultiplier), null, null, GT_Utility.mul(aMultiplier * 3 * aMaterial.mSmeltingMultiplier, new Object[] { tSmeltInto }), ItemList.TE_Slag.get(1L, new Object[] { GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L) }), tSmeltInto.stackSize * 500, 120, 1500); - } else if (aMaterial.contains(SubTag.BLASTFURNACE_CALCITE_DOUBLE)) { - GT_Values.RA.addBlastRecipe(aOreStack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, aMultiplier), null, null, GT_Utility.mul(aMultiplier * 2 * aMaterial.mSmeltingMultiplier, new Object[] { tSmeltInto }), ItemList.TE_Slag.get(1L, new Object[] { GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L) }), tSmeltInto.stackSize * 500, 120, 1500); - } - } - - if (!tHasSmelting) { - tHasSmelting = GT_ModHandler.addSmeltingRecipe(aOreStack, GT_OreDictUnificator.get(OrePrefixes.gem, tMaterial.mDirectSmelting, Math.max(1, aMultiplier * aMaterial.mSmeltingMultiplier / 2))); - } - - if (tCrushed != null) { - GT_Values.RA.addForgeHammerRecipe(aOreStack, GT_Utility.copy(new Object[] { GT_Utility.copyAmount(tCrushed.stackSize, new Object[] { tGem }), tCrushed }), 16, 10); - GT_ModHandler.addPulverisationRecipe(aOreStack, GT_Utility.mul(2L, new Object[] { tCrushed }), tMaterial.contains(SubTag.PULVERIZING_CINNABAR) ? GT_OreDictUnificator.get(OrePrefixes.crystal, Materials.Cinnabar, GT_OreDictUnificator.get(OrePrefixes.gem, tPrimaryByMaterial, GT_Utility.copyAmount(1L, new Object[] { tPrimaryByProduct }), 1L), 1L) : GT_OreDictUnificator.get(OrePrefixes.gem, tPrimaryByMaterial, GT_Utility.copyAmount(1L, new Object[] { tPrimaryByProduct }), 1L), tPrimaryByProduct == null ? 0 : tPrimaryByProduct.stackSize * 10 * aMultiplier * aMaterial.mByProductMultiplier, GT_OreDictUnificator.getDust(aPrefix.mSecondaryMaterial), 50, true); - } - return true; - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java index e9013898..ac70febc 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java @@ -8,29 +8,34 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingOrePoor implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingOrePoor() - { - OrePrefixes.orePoor.add(this); - OrePrefixes.oreSmall.add(this); - OrePrefixes.oreNormal.add(this); - OrePrefixes.oreRich.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - int aMultiplier = 1; - switch (aPrefix) { - case oreSmall: aMultiplier = 1; break; - case orePoor: aMultiplier = 2; break; - case oreNormal: aMultiplier = 3; break; - case oreRich: aMultiplier = 4; +public class ProcessingOrePoor implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingOrePoor() { + OrePrefixes.orePoor.add(this); + OrePrefixes.oreSmall.add(this); + OrePrefixes.oreNormal.add(this); + OrePrefixes.oreRich.add(this); } - if (aMaterial != null) { - GT_Values.RA.addForgeHammerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, aMultiplier), 16, 10); - GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 2 * aMultiplier), GT_OreDictUnificator.get(OrePrefixes.dustTiny, GT_Utility.selectItemInList(0, aMaterial, aMaterial.mOreByProducts), 1L), 5 * aMultiplier, GT_OreDictUnificator.getDust(aPrefix.mSecondaryMaterial), 100, true); - if (aMaterial.contains(gregtech.api.enums.SubTag.NO_SMELTING)) GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial.mDirectSmelting, aMultiplier)); + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + int aMultiplier = 1; + switch (aPrefix) { + case oreSmall: + aMultiplier = 1; + break; + case orePoor: + aMultiplier = 2; + break; + case oreNormal: + aMultiplier = 3; + break; + case oreRich: + aMultiplier = 4; + } + if (aMaterial != null) { + GT_Values.RA.addForgeHammerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, aMultiplier), 16, 10); + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 2 * aMultiplier), GT_OreDictUnificator.get(OrePrefixes.dustTiny, GT_Utility.selectItemInList(0, aMaterial, aMaterial.mOreByProducts), 1L), 5 * aMultiplier, GT_OreDictUnificator.getDust(aPrefix.mSecondaryMaterial), 100, true); + if (aMaterial.contains(gregtech.api.enums.SubTag.NO_SMELTING)) + GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial.mDirectSmelting, aMultiplier)); + } } - } } \ No newline at end of file diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingOreSmelting.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOreSmelting.java index 93e24bc3..e03f23ae 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingOreSmelting.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOreSmelting.java @@ -4,39 +4,41 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.SubTag; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingOreSmelting implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - private final OrePrefixes[] mSmeltingPrefixes = { OrePrefixes.crushed, OrePrefixes.crushedPurified, OrePrefixes.crushedCentrifuged, OrePrefixes.dustImpure, OrePrefixes.dustPure, OrePrefixes.dustRefined }; - - public ProcessingOreSmelting() { - for (OrePrefixes tPrefix : this.mSmeltingPrefixes) tPrefix.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.removeFurnaceSmelting(aStack); - if (!aMaterial.contains(SubTag.NO_SMELTING)) { - if ((aMaterial.mBlastFurnaceRequired) || (aMaterial.mDirectSmelting.mBlastFurnaceRequired)) { - GT_Values.RA.addBlastRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), null, null, null, aMaterial.mBlastFurnaceTemp > 1750 ? GT_OreDictUnificator.get(OrePrefixes.ingotHot, aMaterial, GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L), 1L) : GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L), null, (int)Math.max(aMaterial.getMass() / 4L, 1L) * aMaterial.mBlastFurnaceTemp, 120, aMaterial.mBlastFurnaceTemp); - if (aMaterial.mBlastFurnaceTemp <= 1000) GT_ModHandler.addRCBlastFurnaceRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L), aMaterial.mBlastFurnaceTemp * 2); - } else { - switch (aPrefix) { - case crushed: case crushedPurified: case crushedCentrifuged: - ItemStack tStack = GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial.mDirectSmelting, aMaterial.mDirectSmelting == aMaterial ? 10L : 3L); - if (tStack == null) tStack = GT_OreDictUnificator.get(aMaterial.contains(SubTag.SMELTING_TO_GEM) ? OrePrefixes.gem : OrePrefixes.ingot, aMaterial.mDirectSmelting, 1L); - if ((tStack == null) && (!aMaterial.contains(SubTag.SMELTING_TO_GEM))) tStack = GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mDirectSmelting, 1L); - GT_ModHandler.addSmeltingRecipe(aStack, tStack); - break; - default: - GT_ModHandler.addSmeltingRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mDirectSmelting, 1L)); - } - } +public class ProcessingOreSmelting implements gregtech.api.interfaces.IOreRecipeRegistrator { + private final OrePrefixes[] mSmeltingPrefixes = {OrePrefixes.crushed, OrePrefixes.crushedPurified, OrePrefixes.crushedCentrifuged, OrePrefixes.dustImpure, OrePrefixes.dustPure, OrePrefixes.dustRefined}; + + public ProcessingOreSmelting() { + for (OrePrefixes tPrefix : this.mSmeltingPrefixes) tPrefix.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.removeFurnaceSmelting(aStack); + if (!aMaterial.contains(SubTag.NO_SMELTING)) { + if ((aMaterial.mBlastFurnaceRequired) || (aMaterial.mDirectSmelting.mBlastFurnaceRequired)) { + GT_Values.RA.addBlastRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), null, null, null, aMaterial.mBlastFurnaceTemp > 1750 ? GT_OreDictUnificator.get(OrePrefixes.ingotHot, aMaterial, GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L), 1L) : GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L), null, (int) Math.max(aMaterial.getMass() / 4L, 1L) * aMaterial.mBlastFurnaceTemp, 120, aMaterial.mBlastFurnaceTemp); + if (aMaterial.mBlastFurnaceTemp <= 1000) + GT_ModHandler.addRCBlastFurnaceRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L), aMaterial.mBlastFurnaceTemp * 2); + } else { + switch (aPrefix) { + case crushed: + case crushedPurified: + case crushedCentrifuged: + ItemStack tStack = GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial.mDirectSmelting, aMaterial.mDirectSmelting == aMaterial ? 10L : 3L); + if (tStack == null) + tStack = GT_OreDictUnificator.get(aMaterial.contains(SubTag.SMELTING_TO_GEM) ? OrePrefixes.gem : OrePrefixes.ingot, aMaterial.mDirectSmelting, 1L); + if ((tStack == null) && (!aMaterial.contains(SubTag.SMELTING_TO_GEM))) + tStack = GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mDirectSmelting, 1L); + GT_ModHandler.addSmeltingRecipe(aStack, tStack); + break; + default: + GT_ModHandler.addSmeltingRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mDirectSmelting, 1L)); + } + } + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeLarge.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeLarge.java index a149407b..6eb17be1 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeLarge.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeLarge.java @@ -5,21 +5,17 @@ import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.SubTag; import gregtech.api.enums.ToolDictNames; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_ModHandler.RecipeBits; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingPipeLarge implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingPipeLarge() - { - OrePrefixes.pipeLarge.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if ((!aMaterial.contains(SubTag.NO_WORKING)) && ((aMaterial.contains(SubTag.WOOD)) || (!aMaterial.contains(SubTag.NO_SMASHING)))) { - GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PHP", "P P", "PWP", Character.valueOf('P'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) : OrePrefixes.plate.get(aMaterial), Character.valueOf('H'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSoftHammer : ToolDictNames.craftingToolHardHammer, Character.valueOf('W'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSaw : ToolDictNames.craftingToolWrench }); +public class ProcessingPipeLarge implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingPipeLarge() { + OrePrefixes.pipeLarge.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if ((!aMaterial.contains(SubTag.NO_WORKING)) && ((aMaterial.contains(SubTag.WOOD)) || (!aMaterial.contains(SubTag.NO_SMASHING)))) { + GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", "P P", "PWP", Character.valueOf('P'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) : OrePrefixes.plate.get(aMaterial), Character.valueOf('H'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSoftHammer : ToolDictNames.craftingToolHardHammer, Character.valueOf('W'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSaw : ToolDictNames.craftingToolWrench}); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeMedium.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeMedium.java index 229b72dd..2bfc4b86 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeMedium.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeMedium.java @@ -5,21 +5,17 @@ import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.SubTag; import gregtech.api.enums.ToolDictNames; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_ModHandler.RecipeBits; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingPipeMedium implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingPipeMedium() - { - OrePrefixes.pipeMedium.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if ((!aMaterial.contains(SubTag.NO_WORKING)) && ((aMaterial.contains(SubTag.WOOD)) || (!aMaterial.contains(SubTag.NO_SMASHING)))) { - GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "W H", "PPP", Character.valueOf('P'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) : OrePrefixes.plate.get(aMaterial), Character.valueOf('H'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSoftHammer : ToolDictNames.craftingToolHardHammer, Character.valueOf('W'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSaw : ToolDictNames.craftingToolWrench }); +public class ProcessingPipeMedium implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingPipeMedium() { + OrePrefixes.pipeMedium.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if ((!aMaterial.contains(SubTag.NO_WORKING)) && ((aMaterial.contains(SubTag.WOOD)) || (!aMaterial.contains(SubTag.NO_SMASHING)))) { + GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "W H", "PPP", Character.valueOf('P'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) : OrePrefixes.plate.get(aMaterial), Character.valueOf('H'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSoftHammer : ToolDictNames.craftingToolHardHammer, Character.valueOf('W'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSaw : ToolDictNames.craftingToolWrench}); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeRestrictive.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeRestrictive.java index b38a58a5..a4bb2989 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeRestrictive.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeRestrictive.java @@ -2,20 +2,17 @@ package gregtech.loaders.oreprocessing; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.objects.MaterialStack; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingPipeRestrictive implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingPipeRestrictive() - { - for (OrePrefixes tPrefix : OrePrefixes.values()) if (tPrefix.name().startsWith("pipeRestrictive")) tPrefix.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - gregtech.api.enums.GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(aOreDictName.replaceFirst("Restrictive", ""), null, 1L, false, true), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Steel, aPrefix.mSecondaryMaterial.mAmount / OrePrefixes.ring.mMaterialAmount), GT_Utility.copyAmount(1L, new Object[] { aStack }), (int)(aPrefix.mSecondaryMaterial.mAmount * 400L / OrePrefixes.ring.mMaterialAmount), 4); - } +public class ProcessingPipeRestrictive implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingPipeRestrictive() { + for (OrePrefixes tPrefix : OrePrefixes.values()) + if (tPrefix.name().startsWith("pipeRestrictive")) tPrefix.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + gregtech.api.enums.GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(aOreDictName.replaceFirst("Restrictive", ""), null, 1L, false, true), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Steel, aPrefix.mSecondaryMaterial.mAmount / OrePrefixes.ring.mMaterialAmount), GT_Utility.copyAmount(1L, new Object[]{aStack}), (int) (aPrefix.mSecondaryMaterial.mAmount * 400L / OrePrefixes.ring.mMaterialAmount), 4); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeSmall.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeSmall.java index d95a2b90..57d43c8c 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeSmall.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeSmall.java @@ -5,21 +5,17 @@ import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.SubTag; import gregtech.api.enums.ToolDictNames; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_ModHandler.RecipeBits; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingPipeSmall implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingPipeSmall() - { - OrePrefixes.pipeSmall.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if ((!aMaterial.contains(SubTag.NO_WORKING)) && ((aMaterial.contains(SubTag.WOOD)) || (!aMaterial.contains(SubTag.NO_SMASHING)))) { - GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(6L, new Object[] { aStack }), GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PWP", "P P", "PHP", Character.valueOf('P'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) : OrePrefixes.plate.get(aMaterial), Character.valueOf('H'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSoftHammer : ToolDictNames.craftingToolHardHammer, Character.valueOf('W'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSaw : ToolDictNames.craftingToolWrench }); +public class ProcessingPipeSmall implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingPipeSmall() { + OrePrefixes.pipeSmall.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if ((!aMaterial.contains(SubTag.NO_WORKING)) && ((aMaterial.contains(SubTag.WOOD)) || (!aMaterial.contains(SubTag.NO_SMASHING)))) { + GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(6L, new Object[]{aStack}), GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PWP", "P P", "PHP", Character.valueOf('P'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) : OrePrefixes.plate.get(aMaterial), Character.valueOf('H'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSoftHammer : ToolDictNames.craftingToolHardHammer, Character.valueOf('W'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSaw : ToolDictNames.craftingToolWrench}); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java index 22d4e88c..77a595cc 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java @@ -4,7 +4,6 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; @@ -12,48 +11,46 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; -public class ProcessingPlank implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingPlank() - { - OrePrefixes.plank.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aOreDictName.startsWith("plankWood")) { - GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), null, 10, 8); - GT_Values.RA.addCNCRecipe(GT_Utility.copyAmount(4L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Wood, 1L), 800, 1); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(8L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), new ItemStack(Blocks.noteblock, 1), 200, 4); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(8L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Diamond, 1L), new ItemStack(Blocks.jukebox, 1), 400, 4); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Iron, 1L), ItemList.Crate_Empty.get(1L, new Object[0]), 200, 1); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.screw, Materials.WroughtIron, 1L), ItemList.Crate_Empty.get(1L, new Object[0]), 200, 1); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Steel, 1L), ItemList.Crate_Empty.get(1L, new Object[0]), 200, 1); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new ItemStack(Blocks.wooden_button, 1), 100, 4); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), new ItemStack(Blocks.wooden_pressure_plate, 1), 200, 4); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(3L, new Object[] { aStack }), ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), new ItemStack(Blocks.trapdoor, 1), 300, 4); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(4L, new Object[] { aStack }), ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), new ItemStack(Blocks.crafting_table, 1), 400, 4); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(6L, new Object[] { aStack }), ItemList.Circuit_Integrated.getWithDamage(0L, 6L, new Object[0]), new ItemStack(Items.wooden_door, 1), 600, 4); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(8L, new Object[] { aStack }), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), new ItemStack(Blocks.chest, 1), 800, 4); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(6L, new Object[] { aStack }), new ItemStack(Items.book, 3), new ItemStack(Blocks.bookshelf, 1), 400, 4); - - if (aStack.getItemDamage() == 32767) { - for (byte i = 0; i < 16; i = (byte)(i + 1)) { - ItemStack tStack = GT_Utility.copyMetaData(i, new Object[] { aStack });ItemStack tOutput = GT_ModHandler.getRecipeOutput(new ItemStack[] { tStack, tStack, tStack }); - if ((tOutput != null) && (tOutput.stackSize >= 3)) { - GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[] { tStack }), GT_Utility.copyAmount(tOutput.stackSize / 3, new Object[] { tOutput }), null, 25, 4); - GT_ModHandler.removeRecipe(new ItemStack[] { tStack, tStack, tStack }); - GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(tOutput.stackSize / 3, new Object[] { tOutput }), new Object[] { "sP", Character.valueOf('P'), tStack }); - } - } - } else { - ItemStack tOutput = GT_ModHandler.getRecipeOutput(new ItemStack[] { aStack, aStack, aStack }); - if ((tOutput != null) && (tOutput.stackSize >= 3)) { - GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_Utility.copyAmount(tOutput.stackSize / 3, new Object[] { tOutput }), null, 25, 4); - GT_ModHandler.removeRecipe(new ItemStack[] { aStack, aStack, aStack }); - GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(tOutput.stackSize / 3, new Object[] { tOutput }), new Object[] { "sP", Character.valueOf('P'), aStack }); - } - } +public class ProcessingPlank implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingPlank() { + OrePrefixes.plank.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aOreDictName.startsWith("plankWood")) { + GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), null, 10, 8); + GT_Values.RA.addCNCRecipe(GT_Utility.copyAmount(4L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Wood, 1L), 800, 1); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(8L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), new ItemStack(Blocks.noteblock, 1), 200, 4); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(8L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Diamond, 1L), new ItemStack(Blocks.jukebox, 1), 400, 4); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Iron, 1L), ItemList.Crate_Empty.get(1L, new Object[0]), 200, 1); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.screw, Materials.WroughtIron, 1L), ItemList.Crate_Empty.get(1L, new Object[0]), 200, 1); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Steel, 1L), ItemList.Crate_Empty.get(1L, new Object[0]), 200, 1); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new ItemStack(Blocks.wooden_button, 1), 100, 4); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), new ItemStack(Blocks.wooden_pressure_plate, 1), 200, 4); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(3L, new Object[]{aStack}), ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), new ItemStack(Blocks.trapdoor, 1), 300, 4); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(4L, new Object[]{aStack}), ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), new ItemStack(Blocks.crafting_table, 1), 400, 4); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(6L, new Object[]{aStack}), ItemList.Circuit_Integrated.getWithDamage(0L, 6L, new Object[0]), new ItemStack(Items.wooden_door, 1), 600, 4); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(8L, new Object[]{aStack}), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), new ItemStack(Blocks.chest, 1), 800, 4); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(6L, new Object[]{aStack}), new ItemStack(Items.book, 3), new ItemStack(Blocks.bookshelf, 1), 400, 4); + + if (aStack.getItemDamage() == 32767) { + for (byte i = 0; i < 16; i = (byte) (i + 1)) { + ItemStack tStack = GT_Utility.copyMetaData(i, new Object[]{aStack}); + ItemStack tOutput = GT_ModHandler.getRecipeOutput(new ItemStack[]{tStack, tStack, tStack}); + if ((tOutput != null) && (tOutput.stackSize >= 3)) { + GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[]{tStack}), GT_Utility.copyAmount(tOutput.stackSize / 3, new Object[]{tOutput}), null, 25, 4); + GT_ModHandler.removeRecipe(new ItemStack[]{tStack, tStack, tStack}); + GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(tOutput.stackSize / 3, new Object[]{tOutput}), new Object[]{"sP", Character.valueOf('P'), tStack}); + } + } + } else { + ItemStack tOutput = GT_ModHandler.getRecipeOutput(new ItemStack[]{aStack, aStack, aStack}); + if ((tOutput != null) && (tOutput.stackSize >= 3)) { + GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_Utility.copyAmount(tOutput.stackSize / 3, new Object[]{tOutput}), null, 25, 4); + GT_ModHandler.removeRecipe(new ItemStack[]{aStack, aStack, aStack}); + GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(tOutput.stackSize / 3, new Object[]{tOutput}), new Object[]{"sP", Character.valueOf('P'), aStack}); + } + } + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate1.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate1.java index 96fe6a47..55966cbd 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate1.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate1.java @@ -5,7 +5,6 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.objects.GT_CopiedBlockTexture; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; @@ -14,54 +13,84 @@ import gregtech.api.util.GT_Utility; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; -public class ProcessingPlate1 implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingPlate1() - { - OrePrefixes.plate.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.removeRecipeByOutput(aStack); - GT_ModHandler.removeRecipe(new ItemStack[] { aStack }); - - GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(16L, new Object[] { aStack }), ItemList.Crate_Empty.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.crateGtPlate, aMaterial, 1L), 100, 8); - GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.crateGtPlate, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 16L), ItemList.Crate_Empty.get(1L, new Object[0]), 800, 1); - - if (aMaterial.mStandardMoltenFluid != null) { GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Plate.get(0L, new Object[0]), aMaterial.getMolten(144L), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), 32, 8); +public class ProcessingPlate1 implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingPlate1() { + OrePrefixes.plate.add(this); } - switch (aMaterial) { - case Iron: GregTech_API.registerCover(aStack, new GT_CopiedBlockTexture(Blocks.iron_block, 1, 0), null); break; - case Gold: GregTech_API.registerCover(aStack, new GT_CopiedBlockTexture(Blocks.gold_block, 1, 0), null); break; - case Diamond: GregTech_API.registerCover(aStack, new GT_CopiedBlockTexture(Blocks.diamond_block, 1, 0), null); break; - case Emerald: GregTech_API.registerCover(aStack, new GT_CopiedBlockTexture(Blocks.emerald_block, 1, 0), null); break; - case Lapis: GregTech_API.registerCover(aStack, new GT_CopiedBlockTexture(Blocks.lapis_block, 1, 0), null); break; - case Coal: GregTech_API.registerCover(aStack, new GT_CopiedBlockTexture(Blocks.coal_block, 1, 0), null); break; - case Redstone: GregTech_API.registerCover(aStack, new GT_CopiedBlockTexture(Blocks.redstone_block, 1, 0), null); break; - case Glowstone: GregTech_API.registerCover(aStack, new GT_CopiedBlockTexture(Blocks.glowstone, 1, 0), null); break; - case NetherQuartz: GregTech_API.registerCover(aStack, new GT_CopiedBlockTexture(Blocks.quartz_block, 1, 0), null); break; - case Obsidian: GregTech_API.registerCover(aStack, new GT_CopiedBlockTexture(Blocks.obsidian, 1, 0), null); break; - case Stone: GregTech_API.registerCover(aStack, new GT_CopiedBlockTexture(Blocks.stone, 1, 0), null); break; - case GraniteBlack: GregTech_API.registerCover(aStack, new GT_RenderedTexture(gregtech.api.enums.Textures.BlockIcons.GRANITE_BLACK_SMOOTH), null); break; - case GraniteRed: GregTech_API.registerCover(aStack, new GT_RenderedTexture(gregtech.api.enums.Textures.BlockIcons.GRANITE_RED_SMOOTH), null); break; - case Concrete: GregTech_API.registerCover(aStack, new GT_RenderedTexture(gregtech.api.enums.Textures.BlockIcons.CONCRETE_LIGHT_SMOOTH), null); break; - default: GregTech_API.registerCover(aStack, new GT_RenderedTexture(aMaterial.mIconSet.mTextures[71], aMaterial.mRGBa, false), null); + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.removeRecipeByOutput(aStack); + GT_ModHandler.removeRecipe(new ItemStack[]{aStack}); + + GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(16L, new Object[]{aStack}), ItemList.Crate_Empty.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.crateGtPlate, aMaterial, 1L), 100, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.crateGtPlate, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 16L), ItemList.Crate_Empty.get(1L, new Object[0]), 800, 1); + + if (aMaterial.mStandardMoltenFluid != null) { + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Plate.get(0L, new Object[0]), aMaterial.getMolten(144L), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), 32, 8); + } + switch (aMaterial) { + case Iron: + GregTech_API.registerCover(aStack, new GT_CopiedBlockTexture(Blocks.iron_block, 1, 0), null); + break; + case Gold: + GregTech_API.registerCover(aStack, new GT_CopiedBlockTexture(Blocks.gold_block, 1, 0), null); + break; + case Diamond: + GregTech_API.registerCover(aStack, new GT_CopiedBlockTexture(Blocks.diamond_block, 1, 0), null); + break; + case Emerald: + GregTech_API.registerCover(aStack, new GT_CopiedBlockTexture(Blocks.emerald_block, 1, 0), null); + break; + case Lapis: + GregTech_API.registerCover(aStack, new GT_CopiedBlockTexture(Blocks.lapis_block, 1, 0), null); + break; + case Coal: + GregTech_API.registerCover(aStack, new GT_CopiedBlockTexture(Blocks.coal_block, 1, 0), null); + break; + case Redstone: + GregTech_API.registerCover(aStack, new GT_CopiedBlockTexture(Blocks.redstone_block, 1, 0), null); + break; + case Glowstone: + GregTech_API.registerCover(aStack, new GT_CopiedBlockTexture(Blocks.glowstone, 1, 0), null); + break; + case NetherQuartz: + GregTech_API.registerCover(aStack, new GT_CopiedBlockTexture(Blocks.quartz_block, 1, 0), null); + break; + case Obsidian: + GregTech_API.registerCover(aStack, new GT_CopiedBlockTexture(Blocks.obsidian, 1, 0), null); + break; + case Stone: + GregTech_API.registerCover(aStack, new GT_CopiedBlockTexture(Blocks.stone, 1, 0), null); + break; + case GraniteBlack: + GregTech_API.registerCover(aStack, new GT_RenderedTexture(gregtech.api.enums.Textures.BlockIcons.GRANITE_BLACK_SMOOTH), null); + break; + case GraniteRed: + GregTech_API.registerCover(aStack, new GT_RenderedTexture(gregtech.api.enums.Textures.BlockIcons.GRANITE_RED_SMOOTH), null); + break; + case Concrete: + GregTech_API.registerCover(aStack, new GT_RenderedTexture(gregtech.api.enums.Textures.BlockIcons.CONCRETE_LIGHT_SMOOTH), null); + break; + default: + GregTech_API.registerCover(aStack, new GT_RenderedTexture(aMaterial.mIconSet.mTextures[71], aMaterial.mRGBa, false), null); + } + + if (aMaterial.mFuelPower > 0) + GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[]{aStack}), null, aMaterial.mFuelPower, aMaterial.mFuelType); + GT_Utility.removeSimpleIC2MachineRecipe(GT_Utility.copyAmount(9L, new Object[]{aStack}), GT_ModHandler.getCompressorRecipeList(), GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L)); + GT_Values.RA.addImplosionRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), 2, GT_OreDictUnificator.get(OrePrefixes.compressed, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)); + if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_WORKING)) { + GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.lens, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L), (int) Math.max(aMaterial.getMass() / 2L, 1L), 16); + } + if (aMaterial == Materials.Paper) + GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(GregTech_API.sRecipeFile.get(gregtech.api.enums.ConfigCategories.Recipes.harderrecipes, aStack, true) ? 2L : 3L, new Object[]{aStack}), new Object[]{"XXX", Character.valueOf('X'), new ItemStack(net.minecraft.init.Items.reeds, 1, 32767)}); + if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) { + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.foil, aMaterial, 4L), (int) Math.max(aMaterial.getMass() * 1L, 1L), 24); + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 2L, 1L), 96); + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(3L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 3L, 1L), 96); + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(4L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 4L, 1L), 96); + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(5L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 5L, 1L), 96); + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(9L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 9L, 1L), 96); + } } - - if (aMaterial.mFuelPower > 0) GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[] { aStack }), null, aMaterial.mFuelPower, aMaterial.mFuelType); - GT_Utility.removeSimpleIC2MachineRecipe(GT_Utility.copyAmount(9L, new Object[] { aStack }), GT_ModHandler.getCompressorRecipeList(), GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L)); - GT_Values.RA.addImplosionRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), 2 , GT_OreDictUnificator.get(OrePrefixes.compressed, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny,Materials.DarkAsh,1L)); - if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_WORKING)) { GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.lens, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L), (int)Math.max(aMaterial.getMass() / 2L, 1L), 16); - } - if (aMaterial == Materials.Paper) GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(GregTech_API.sRecipeFile.get(gregtech.api.enums.ConfigCategories.Recipes.harderrecipes, aStack, true) ? 2L : 3L, new Object[] { aStack }), new Object[] { "XXX", Character.valueOf('X'), new ItemStack(net.minecraft.init.Items.reeds, 1, 32767) }); - if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) { - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.foil, aMaterial, 4L), (int)Math.max(aMaterial.getMass() * 1L, 1L), 24); - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 2L, 1L), 96); - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(3L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 3L, 1L), 96); - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(4L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 4L, 1L), 96); - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(5L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 5L, 1L), 96); - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(9L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 9L, 1L), 96); - } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate2.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate2.java index c64ba8a8..778ec50e 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate2.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate2.java @@ -4,33 +4,28 @@ import gregtech.api.GregTech_API; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.SubTag; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingPlate2 implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingPlate2() - { - OrePrefixes.plateDouble.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.removeRecipeByOutput(aStack); - - GregTech_API.registerCover(aStack, new gregtech.api.objects.GT_RenderedTexture(aMaterial.mIconSet.mTextures[72], aMaterial.mRGBa, false), null); - if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) { - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 2L, 1L), 96); +public class ProcessingPlate2 implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingPlate2() { + OrePrefixes.plateDouble.add(this); } - if ((!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) && (GregTech_API.sRecipeFile.get(gregtech.api.enums.ConfigCategories.Tools.hammerdoubleplate, OrePrefixes.plate.get(aMaterial).toString(), true))) { - GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), gregtech.api.util.GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | gregtech.api.util.GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "I", "B", "h", Character.valueOf('I'), OrePrefixes.plate.get(aMaterial), Character.valueOf('B'), OrePrefixes.plate.get(aMaterial) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), new Object[] { gregtech.api.enums.ToolDictNames.craftingToolForgeHammer, OrePrefixes.plate.get(aMaterial), OrePrefixes.plate.get(aMaterial) }); - } else { - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 2L), gregtech.api.enums.ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), Materials.Glue.getFluid(10L), GT_Utility.copyAmount(1L, new Object[] { aStack }), 64, 8); + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.removeRecipeByOutput(aStack); + + GregTech_API.registerCover(aStack, new gregtech.api.objects.GT_RenderedTexture(aMaterial.mIconSet.mTextures[72], aMaterial.mRGBa, false), null); + if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) { + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 2L, 1L), 96); + } + if ((!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) && (GregTech_API.sRecipeFile.get(gregtech.api.enums.ConfigCategories.Tools.hammerdoubleplate, OrePrefixes.plate.get(aMaterial).toString(), true))) { + GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), gregtech.api.util.GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | gregtech.api.util.GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"I", "B", "h", Character.valueOf('I'), OrePrefixes.plate.get(aMaterial), Character.valueOf('B'), OrePrefixes.plate.get(aMaterial)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new Object[]{gregtech.api.enums.ToolDictNames.craftingToolForgeHammer, OrePrefixes.plate.get(aMaterial), OrePrefixes.plate.get(aMaterial)}); + } else { + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 2L), gregtech.api.enums.ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), Materials.Glue.getFluid(10L), GT_Utility.copyAmount(1L, new Object[]{aStack}), 64, 8); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate3.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate3.java index 4c0a4bc3..08488e28 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate3.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate3.java @@ -4,33 +4,29 @@ import gregtech.api.GregTech_API; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingPlate3 implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingPlate3() - { - OrePrefixes.plateTriple.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.removeRecipeByOutput(aStack); - - GregTech_API.registerCover(aStack, new gregtech.api.objects.GT_RenderedTexture(aMaterial.mIconSet.mTextures[73], aMaterial.mRGBa, false), null); - - if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) { - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(3L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 3L, 1L), 96); +public class ProcessingPlate3 implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingPlate3() { + OrePrefixes.plateTriple.add(this); } - if ((!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) && (GregTech_API.sRecipeFile.get(gregtech.api.enums.ConfigCategories.Tools.hammertripleplate, OrePrefixes.plate.get(aMaterial).toString(), true))) { - GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), gregtech.api.util.GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | gregtech.api.util.GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "I", "B", "h", Character.valueOf('I'), OrePrefixes.plateDouble.get(aMaterial), Character.valueOf('B'), OrePrefixes.plate.get(aMaterial) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), new Object[] { gregtech.api.enums.ToolDictNames.craftingToolForgeHammer, OrePrefixes.plate.get(aMaterial), OrePrefixes.plate.get(aMaterial), OrePrefixes.plate.get(aMaterial) }); - } else { - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 3L), gregtech.api.enums.ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), Materials.Glue.getFluid(20L), GT_Utility.copyAmount(1L, new Object[] { aStack }), 96, 8); + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.removeRecipeByOutput(aStack); + + GregTech_API.registerCover(aStack, new gregtech.api.objects.GT_RenderedTexture(aMaterial.mIconSet.mTextures[73], aMaterial.mRGBa, false), null); + + if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) { + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(3L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 3L, 1L), 96); + } + if ((!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) && (GregTech_API.sRecipeFile.get(gregtech.api.enums.ConfigCategories.Tools.hammertripleplate, OrePrefixes.plate.get(aMaterial).toString(), true))) { + GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), gregtech.api.util.GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | gregtech.api.util.GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"I", "B", "h", Character.valueOf('I'), OrePrefixes.plateDouble.get(aMaterial), Character.valueOf('B'), OrePrefixes.plate.get(aMaterial)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new Object[]{gregtech.api.enums.ToolDictNames.craftingToolForgeHammer, OrePrefixes.plate.get(aMaterial), OrePrefixes.plate.get(aMaterial), OrePrefixes.plate.get(aMaterial)}); + } else { + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 3L), gregtech.api.enums.ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), Materials.Glue.getFluid(20L), GT_Utility.copyAmount(1L, new Object[]{aStack}), 96, 8); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate4.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate4.java index a9c6fab4..7bf8d73f 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate4.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate4.java @@ -4,29 +4,26 @@ import gregtech.api.GregTech_API; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingPlate4 implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingPlate4() - { - OrePrefixes.plateQuadruple.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.removeRecipeByOutput(aStack); - GregTech_API.registerCover(aStack, new gregtech.api.objects.GT_RenderedTexture(aMaterial.mIconSet.mTextures[74], aMaterial.mRGBa, false), null); - if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_WORKING)) GT_Values.RA.addCNCRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial, 1L), (int)Math.max(aMaterial.getMass() * 2L, 1L), 32); - if ((!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) && (GregTech_API.sRecipeFile.get(gregtech.api.enums.ConfigCategories.Tools.hammerquadrupleplate, OrePrefixes.plate.get(aMaterial).toString(), true))) { - GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), gregtech.api.util.GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | gregtech.api.util.GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "I", "B", "h", Character.valueOf('I'), OrePrefixes.plateTriple.get(aMaterial), Character.valueOf('B'), OrePrefixes.plate.get(aMaterial) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), new Object[] { gregtech.api.enums.ToolDictNames.craftingToolForgeHammer, OrePrefixes.plate.get(aMaterial), OrePrefixes.plate.get(aMaterial), OrePrefixes.plate.get(aMaterial), OrePrefixes.plate.get(aMaterial) }); - } else { - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 4L), gregtech.api.enums.ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), Materials.Glue.getFluid(30L), GT_Utility.copyAmount(1L, new Object[] { aStack }), 128, 8); +public class ProcessingPlate4 implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingPlate4() { + OrePrefixes.plateQuadruple.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.removeRecipeByOutput(aStack); + GregTech_API.registerCover(aStack, new gregtech.api.objects.GT_RenderedTexture(aMaterial.mIconSet.mTextures[74], aMaterial.mRGBa, false), null); + if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_WORKING)) + GT_Values.RA.addCNCRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial, 1L), (int) Math.max(aMaterial.getMass() * 2L, 1L), 32); + if ((!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) && (GregTech_API.sRecipeFile.get(gregtech.api.enums.ConfigCategories.Tools.hammerquadrupleplate, OrePrefixes.plate.get(aMaterial).toString(), true))) { + GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), gregtech.api.util.GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | gregtech.api.util.GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"I", "B", "h", Character.valueOf('I'), OrePrefixes.plateTriple.get(aMaterial), Character.valueOf('B'), OrePrefixes.plate.get(aMaterial)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new Object[]{gregtech.api.enums.ToolDictNames.craftingToolForgeHammer, OrePrefixes.plate.get(aMaterial), OrePrefixes.plate.get(aMaterial), OrePrefixes.plate.get(aMaterial), OrePrefixes.plate.get(aMaterial)}); + } else { + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 4L), gregtech.api.enums.ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), Materials.Glue.getFluid(30L), GT_Utility.copyAmount(1L, new Object[]{aStack}), 128, 8); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate5.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate5.java index 602c96f7..1d0ccf45 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate5.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate5.java @@ -6,26 +6,22 @@ import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.ToolDictNames; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_ModHandler.RecipeBits; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingPlate5 implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingPlate5() - { - OrePrefixes.plateQuintuple.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.removeRecipeByOutput(aStack); - GregTech_API.registerCover(aStack, new gregtech.api.objects.GT_RenderedTexture(aMaterial.mIconSet.mTextures[75], aMaterial.mRGBa, false), null); - if ((!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) && (GregTech_API.sRecipeFile.get(gregtech.api.enums.ConfigCategories.Tools.hammerquintupleplate, OrePrefixes.plate.get(aMaterial).toString(), true))) { - GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "I", "B", "h", Character.valueOf('I'), OrePrefixes.plateQuadruple.get(aMaterial), Character.valueOf('B'), OrePrefixes.plate.get(aMaterial) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), new Object[] { ToolDictNames.craftingToolForgeHammer, OrePrefixes.plate.get(aMaterial), OrePrefixes.plate.get(aMaterial), OrePrefixes.plate.get(aMaterial), OrePrefixes.plate.get(aMaterial), OrePrefixes.plate.get(aMaterial) }); - } else { - gregtech.api.enums.GT_Values.RA.addAssemblerRecipe(gregtech.api.util.GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 5L), ItemList.Circuit_Integrated.getWithDamage(0L, 5L, new Object[0]), Materials.Glue.getFluid(40L), GT_Utility.copyAmount(1L, new Object[] { aStack }), 160, 8); +public class ProcessingPlate5 implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingPlate5() { + OrePrefixes.plateQuintuple.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.removeRecipeByOutput(aStack); + GregTech_API.registerCover(aStack, new gregtech.api.objects.GT_RenderedTexture(aMaterial.mIconSet.mTextures[75], aMaterial.mRGBa, false), null); + if ((!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) && (GregTech_API.sRecipeFile.get(gregtech.api.enums.ConfigCategories.Tools.hammerquintupleplate, OrePrefixes.plate.get(aMaterial).toString(), true))) { + GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"I", "B", "h", Character.valueOf('I'), OrePrefixes.plateQuadruple.get(aMaterial), Character.valueOf('B'), OrePrefixes.plate.get(aMaterial)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new Object[]{ToolDictNames.craftingToolForgeHammer, OrePrefixes.plate.get(aMaterial), OrePrefixes.plate.get(aMaterial), OrePrefixes.plate.get(aMaterial), OrePrefixes.plate.get(aMaterial), OrePrefixes.plate.get(aMaterial)}); + } else { + gregtech.api.enums.GT_Values.RA.addAssemblerRecipe(gregtech.api.util.GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 5L), ItemList.Circuit_Integrated.getWithDamage(0L, 5L, new Object[0]), Materials.Glue.getFluid(40L), GT_Utility.copyAmount(1L, new Object[]{aStack}), 160, 8); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate9.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate9.java index e4e72414..2cdcf71f 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate9.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate9.java @@ -8,16 +8,13 @@ import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; import net.minecraft.item.ItemStack; -public class ProcessingPlate9 implements IOreRecipeRegistrator -{ - public ProcessingPlate9() - { - OrePrefixes.plateDense.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.removeRecipeByOutput(aStack); - GregTech_API.registerCover(aStack, new GT_RenderedTexture(aMaterial.mIconSet.mTextures[76], aMaterial.mRGBa, false), null); - } +public class ProcessingPlate9 implements IOreRecipeRegistrator { + public ProcessingPlate9() { + OrePrefixes.plateDense.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.removeRecipeByOutput(aStack); + GregTech_API.registerCover(aStack, new GT_RenderedTexture(aMaterial.mIconSet.mTextures[76], aMaterial.mRGBa, false), null); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlateAlloy.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlateAlloy.java index 16dacfe8..19ee91bd 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlateAlloy.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlateAlloy.java @@ -3,31 +3,25 @@ package gregtech.loaders.oreprocessing; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; -public class ProcessingPlateAlloy implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingPlateAlloy() - { - OrePrefixes.plateAlloy.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aOreDictName.equals("plateAlloyCarbon")) { - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("generator", 1L), GT_Utility.copyAmount(4L, new Object[] { aStack }), GT_ModHandler.getIC2Item("windMill", 1L), 6400, 8); +public class ProcessingPlateAlloy implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingPlateAlloy() { + OrePrefixes.plateAlloy.add(this); } - else if (aOreDictName.equals("plateAlloyAdvanced")) { - GT_ModHandler.addAlloySmelterRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), new ItemStack(Blocks.glass, 3, 32767), GT_ModHandler.getIC2Item("reinforcedGlass", 4L), 400, 4, false); - GT_ModHandler.addAlloySmelterRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 3L), GT_ModHandler.getIC2Item("reinforcedGlass", 4L), 400, 4, false); + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aOreDictName.equals("plateAlloyCarbon")) { + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("generator", 1L), GT_Utility.copyAmount(4L, new Object[]{aStack}), GT_ModHandler.getIC2Item("windMill", 1L), 6400, 8); + } else if (aOreDictName.equals("plateAlloyAdvanced")) { + GT_ModHandler.addAlloySmelterRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new ItemStack(Blocks.glass, 3, 32767), GT_ModHandler.getIC2Item("reinforcedGlass", 4L), 400, 4, false); + GT_ModHandler.addAlloySmelterRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 3L), GT_ModHandler.getIC2Item("reinforcedGlass", 4L), 400, 4, false); + } else if (aOreDictName.equals("plateAlloyIridium")) { + GT_ModHandler.removeRecipeByOutput(aStack); + } } - else if (aOreDictName.equals("plateAlloyIridium")) { - GT_ModHandler.removeRecipeByOutput(aStack); - } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPure.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPure.java index c1b8aec7..dbc15df0 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPure.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPure.java @@ -8,18 +8,15 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingPure implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingPure() - { - OrePrefixes.crushedPurified.add(this); - OrePrefixes.cleanGravel.add(this); - OrePrefixes.reduced.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_Values.RA.addForgeHammerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dustPure, aMaterial.mMacerateInto, 1L), 10, 16); - GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dustPure, aMaterial.mMacerateInto, GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), 1L), GT_OreDictUnificator.get(OrePrefixes.dust, GT_Utility.selectItemInList(1, aMaterial.mMacerateInto, aMaterial.mOreByProducts), 1L), 10, false); - } +public class ProcessingPure implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingPure() { + OrePrefixes.crushedPurified.add(this); + OrePrefixes.cleanGravel.add(this); + OrePrefixes.reduced.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_Values.RA.addForgeHammerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dustPure, aMaterial.mMacerateInto, 1L), 10, 16); + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dustPure, aMaterial.mMacerateInto, GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), 1L), GT_OreDictUnificator.get(OrePrefixes.dust, GT_Utility.selectItemInList(1, aMaterial.mMacerateInto, aMaterial.mOreByProducts), 1L), 10, false); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java index 66efcc63..fd7131e7 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java @@ -7,15 +7,15 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingRecycling implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingRecycling() - { - for (OrePrefixes tPrefix : OrePrefixes.values()) if ((tPrefix.mIsMaterialBased) && (tPrefix.mMaterialAmount > 0L) && (tPrefix.mIsContainer)) tPrefix.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if ((aMaterial != Materials.Empty) && (GT_Utility.getFluidForFilledItem(aStack, true) == null)) GT_Values.RA.addCannerRecipe(aStack, null, GT_Utility.getContainerItem(aStack, true), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, aPrefix.mMaterialAmount / 3628800L), (int)Math.max(aMaterial.getMass() / 2L, 1L), 2); - } +public class ProcessingRecycling implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingRecycling() { + for (OrePrefixes tPrefix : OrePrefixes.values()) + if ((tPrefix.mIsMaterialBased) && (tPrefix.mMaterialAmount > 0L) && (tPrefix.mIsContainer)) + tPrefix.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if ((aMaterial != Materials.Empty) && (GT_Utility.getFluidForFilledItem(aStack, true) == null)) + GT_Values.RA.addCannerRecipe(aStack, null, GT_Utility.getContainerItem(aStack, true), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, aPrefix.mMaterialAmount / 3628800L), (int) Math.max(aMaterial.getMass() / 2L, 1L), 2); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSand.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSand.java index 1cb9eca0..8e2806e7 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSand.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSand.java @@ -3,25 +3,21 @@ package gregtech.loaders.oreprocessing; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; -public class ProcessingSand implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingSand() - { - OrePrefixes.sand.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aOreDictName.equals("sandCracked")) { - GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(16L, new Object[] { aStack }), -1, gregtech.api.util.GT_ModHandler.getFuelCan(25000), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 8L), null, null, null, new ItemStack(Blocks.sand, 10), 2500); - } else if (aOreDictName.equals("sandOil")) { - GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), 1, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oil, 1L), new ItemStack(Blocks.sand, 1, 0), null, null, null, null, 1000); +public class ProcessingSand implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingSand() { + OrePrefixes.sand.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aOreDictName.equals("sandCracked")) { + GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(16L, new Object[]{aStack}), -1, gregtech.api.util.GT_ModHandler.getFuelCan(25000), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 8L), null, null, null, new ItemStack(Blocks.sand, 10), 2500); + } else if (aOreDictName.equals("sandOil")) { + GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), 1, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oil, 1L), new ItemStack(Blocks.sand, 1, 0), null, null, null, null, 1000); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java index 53b4f6fd..cb3ee570 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java @@ -8,16 +8,13 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingSaplings implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingSaplings() - { - OrePrefixes.treeSapling.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 2L), null, 0, false); - GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Wood, 1L), 16, 8); - } +public class ProcessingSaplings implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingSaplings() { + OrePrefixes.treeSapling.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 2L), null, 0, false); + GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Wood, 1L), 16, 8); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java index 7c601eeb..d1520082 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java @@ -1,11 +1,6 @@ package gregtech.loaders.oreprocessing; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.SubTag; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; +import gregtech.api.enums.*; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; @@ -13,95 +8,113 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; -public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingShaping() - { - OrePrefixes.ingot.add(this); - OrePrefixes.dust.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (((aMaterial == Materials.Glass) || (GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L) != null)) && (!aMaterial.contains(SubTag.NO_SMELTING))) { - int tAmount = (int)(aPrefix.mMaterialAmount / 3628800L); - if ((tAmount > 0) && (tAmount <= 64) && (aPrefix.mMaterialAmount % 3628800L == 0L)) { - int tVoltageMultiplier = aMaterial.mBlastFurnaceTemp >= 2800 ? 64 : 16; - - if (aMaterial.contains(SubTag.NO_SMASHING)) { - tVoltageMultiplier /= 4; - } - else if (aPrefix.name().startsWith(OrePrefixes.dust.name())) { return; - } - - if (!OrePrefixes.block.isIgnored(aMaterial.mSmeltInto)) { - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(9L, new Object[] { aStack }), ItemList.Shape_Extruder_Block.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.block, aMaterial.mSmeltInto, tAmount), 10 * tAmount, 8 * tVoltageMultiplier); - GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(9L, new Object[] { aStack }), ItemList.Shape_Mold_Block.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.block, aMaterial.mSmeltInto, tAmount), 5 * tAmount, 4 * tVoltageMultiplier); - } - if ((aPrefix != OrePrefixes.ingot) || (aMaterial != aMaterial.mSmeltInto)) { - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Extruder_Ingot.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, tAmount), 10, 4 * tVoltageMultiplier); - } - - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Extruder_Pipe_Tiny.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeTiny, aMaterial.mSmeltInto, tAmount * 2), 4 * tAmount, 8 * tVoltageMultiplier); - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Extruder_Pipe_Small.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeSmall, aMaterial.mSmeltInto, tAmount), 8 * tAmount, 8 * tVoltageMultiplier); - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(3L, new Object[] { aStack }), ItemList.Shape_Extruder_Pipe_Medium.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeMedium, aMaterial.mSmeltInto, tAmount), 24 * tAmount, 8 * tVoltageMultiplier); - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(6L, new Object[] { aStack }), ItemList.Shape_Extruder_Pipe_Large.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeLarge, aMaterial.mSmeltInto, tAmount), 48 * tAmount, 8 * tVoltageMultiplier); - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(12L, new Object[] { aStack }), ItemList.Shape_Extruder_Pipe_Huge.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeHuge, aMaterial.mSmeltInto, tAmount), 96 * tAmount, 8 * tVoltageMultiplier); - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Extruder_Plate.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial.mSmeltInto, tAmount), (int)Math.max(aMaterial.getMass() * 1L * tAmount, tAmount), 8 * tVoltageMultiplier); - if (tAmount * 2 <= 64) GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Extruder_Rod.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mSmeltInto, tAmount * 2), (int)Math.max(aMaterial.getMass() * 2L * tAmount, tAmount), 6 * tVoltageMultiplier); - if (tAmount * 2 <= 64) GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Extruder_Wire.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial.mSmeltInto, tAmount * 2), (int)Math.max(aMaterial.getMass() * 2L * tAmount, tAmount), 6 * tVoltageMultiplier); - if (tAmount * 8 <= 64) GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Extruder_Bolt.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial.mSmeltInto, tAmount * 8), (int)Math.max(aMaterial.getMass() * 2L * tAmount, tAmount), 8 * tVoltageMultiplier); - if (tAmount * 4 <= 64) GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Extruder_Ring.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial.mSmeltInto, tAmount * 4), (int)Math.max(aMaterial.getMass() * 2L * tAmount, tAmount), 6 * tVoltageMultiplier); - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), ItemList.Shape_Extruder_Sword.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, aMaterial.mSmeltInto, tAmount), (int)Math.max(aMaterial.getMass() * 2L * tAmount, tAmount), 8 * tVoltageMultiplier); - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(3L, new Object[] { aStack }), ItemList.Shape_Extruder_Pickaxe.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, aMaterial.mSmeltInto, tAmount), (int)Math.max(aMaterial.getMass() * 3L * tAmount, tAmount), 8 * tVoltageMultiplier); - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Extruder_Shovel.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, aMaterial.mSmeltInto, tAmount), (int)Math.max(aMaterial.getMass() * 1L * tAmount, tAmount), 8 * tVoltageMultiplier); - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(3L, new Object[] { aStack }), ItemList.Shape_Extruder_Axe.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, aMaterial.mSmeltInto, tAmount), (int)Math.max(aMaterial.getMass() * 3L * tAmount, tAmount), 8 * tVoltageMultiplier); - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), ItemList.Shape_Extruder_Hoe.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, aMaterial.mSmeltInto, tAmount), (int)Math.max(aMaterial.getMass() * 2L * tAmount, tAmount), 8 * tVoltageMultiplier); - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(6L, new Object[] { aStack }), ItemList.Shape_Extruder_Hammer.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.toolHeadHammer, aMaterial.mSmeltInto, tAmount), (int)Math.max(aMaterial.getMass() * 6L * tAmount, tAmount), 8 * tVoltageMultiplier); - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), ItemList.Shape_Extruder_File.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.toolHeadFile, aMaterial.mSmeltInto, tAmount), (int)Math.max(aMaterial.getMass() * 2L * tAmount, tAmount), 8 * tVoltageMultiplier); - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), ItemList.Shape_Extruder_Saw.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.toolHeadSaw, aMaterial.mSmeltInto, tAmount), (int)Math.max(aMaterial.getMass() * 2L * tAmount, tAmount), 8 * tVoltageMultiplier); - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(4L, new Object[] { aStack }), ItemList.Shape_Extruder_Gear.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial.mSmeltInto, tAmount), (int)Math.max(aMaterial.getMass() * 5L * tAmount, tAmount), 8 * tVoltageMultiplier); - - GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), ItemList.Shape_Mold_Plate.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial.mSmeltInto, tAmount), (int)Math.max(aMaterial.getMass() * 2L * tAmount, tAmount), 2 * tVoltageMultiplier); - GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(8L, new Object[] { aStack }), ItemList.Shape_Mold_Gear.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial.mSmeltInto, tAmount), (int)Math.max(aMaterial.getMass() * 10L * tAmount, tAmount), 2 * tVoltageMultiplier); - switch (aMaterial.mSmeltInto) { - case Glass: - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Extruder_Bottle.get(0L, new Object[0]), new ItemStack(Items.glass_bottle, 1), tAmount * 32, 16); - GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Mold_Bottle.get(0L, new Object[0]), new ItemStack(Items.glass_bottle, 1), tAmount * 64, 4); - break; - case Steel: - if (tAmount * 2 <= 64) GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Extruder_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casingadviron", tAmount * 2), tAmount * 32, 3 * tVoltageMultiplier); - if (tAmount * 2 <= 64) GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), ItemList.Shape_Mold_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casingadviron", tAmount * 3), tAmount * 128, 1 * tVoltageMultiplier); - break; - case Iron: case WroughtIron: - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Extruder_Cell.get(0L, new Object[0]), GT_ModHandler.getIC2Item("fuelRod", tAmount), tAmount * 128, 32); - if (tAmount * 2 <= 64) GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Extruder_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casingiron", tAmount * 2), tAmount * 32, 3 * tVoltageMultiplier); - if (tAmount * 2 <= 64) GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), ItemList.Shape_Mold_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casingiron", tAmount * 3), tAmount * 128, 1 * tVoltageMultiplier); - if (tAmount * 31 <= 64) GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(31L, new Object[] { aStack }), ItemList.Shape_Mold_Anvil.get(0L, new Object[0]), new ItemStack(Blocks.anvil, 1, 0), tAmount * 512, 4 * tVoltageMultiplier); - break; - case Tin: - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), ItemList.Shape_Extruder_Cell.get(0L, new Object[0]), ItemList.Cell_Empty.get(tAmount, new Object[0]), tAmount * 128, 32); - if (tAmount * 2 <= 64) GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Extruder_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casingtin", tAmount * 2), tAmount * 32, 3 * tVoltageMultiplier); - if (tAmount * 2 <= 64) GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), ItemList.Shape_Mold_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casingtin", tAmount * 3), tAmount * 128, 1 * tVoltageMultiplier); - break; - case Lead: - if (tAmount * 2 <= 64) GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Extruder_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casinglead", tAmount * 2), tAmount * 32, 3 * tVoltageMultiplier); - if (tAmount * 2 <= 64) GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), ItemList.Shape_Mold_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casinglead", tAmount * 3), tAmount * 128, 1 * tVoltageMultiplier); - break; - case Copper: case AnnealedCopper: - if (tAmount * 2 <= 64) GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Extruder_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casingcopper", tAmount * 2), tAmount * 32, 3 * tVoltageMultiplier); - if (tAmount * 2 <= 64) GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), ItemList.Shape_Mold_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casingcopper", tAmount * 3), tAmount * 128, 1 * tVoltageMultiplier); - break; - case Bronze: - if (tAmount * 2 <= 64) GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Extruder_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casingbronze", tAmount * 2), tAmount * 32, 3 * tVoltageMultiplier); - if (tAmount * 2 <= 64) GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), ItemList.Shape_Mold_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casingbronze", tAmount * 3), tAmount * 128, 1 * tVoltageMultiplier); - break; - case Gold: - if (tAmount * 2 <= 64) GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Shape_Extruder_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casinggold", tAmount * 2), tAmount * 32, 3 * tVoltageMultiplier); - if (tAmount * 2 <= 64) GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), ItemList.Shape_Mold_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casinggold", tAmount * 3), tAmount * 128, 1 * tVoltageMultiplier); - break; - } - } +public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingShaping() { + OrePrefixes.ingot.add(this); + OrePrefixes.dust.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (((aMaterial == Materials.Glass) || (GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L) != null)) && (!aMaterial.contains(SubTag.NO_SMELTING))) { + int tAmount = (int) (aPrefix.mMaterialAmount / 3628800L); + if ((tAmount > 0) && (tAmount <= 64) && (aPrefix.mMaterialAmount % 3628800L == 0L)) { + int tVoltageMultiplier = aMaterial.mBlastFurnaceTemp >= 2800 ? 64 : 16; + + if (aMaterial.contains(SubTag.NO_SMASHING)) { + tVoltageMultiplier /= 4; + } else if (aPrefix.name().startsWith(OrePrefixes.dust.name())) { + return; + } + + if (!OrePrefixes.block.isIgnored(aMaterial.mSmeltInto)) { + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(9L, new Object[]{aStack}), ItemList.Shape_Extruder_Block.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.block, aMaterial.mSmeltInto, tAmount), 10 * tAmount, 8 * tVoltageMultiplier); + GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(9L, new Object[]{aStack}), ItemList.Shape_Mold_Block.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.block, aMaterial.mSmeltInto, tAmount), 5 * tAmount, 4 * tVoltageMultiplier); + } + if ((aPrefix != OrePrefixes.ingot) || (aMaterial != aMaterial.mSmeltInto)) { + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Ingot.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, tAmount), 10, 4 * tVoltageMultiplier); + } + + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Pipe_Tiny.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeTiny, aMaterial.mSmeltInto, tAmount * 2), 4 * tAmount, 8 * tVoltageMultiplier); + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Pipe_Small.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeSmall, aMaterial.mSmeltInto, tAmount), 8 * tAmount, 8 * tVoltageMultiplier); + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(3L, new Object[]{aStack}), ItemList.Shape_Extruder_Pipe_Medium.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeMedium, aMaterial.mSmeltInto, tAmount), 24 * tAmount, 8 * tVoltageMultiplier); + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(6L, new Object[]{aStack}), ItemList.Shape_Extruder_Pipe_Large.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeLarge, aMaterial.mSmeltInto, tAmount), 48 * tAmount, 8 * tVoltageMultiplier); + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(12L, new Object[]{aStack}), ItemList.Shape_Extruder_Pipe_Huge.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeHuge, aMaterial.mSmeltInto, tAmount), 96 * tAmount, 8 * tVoltageMultiplier); + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Plate.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial.mSmeltInto, tAmount), (int) Math.max(aMaterial.getMass() * 1L * tAmount, tAmount), 8 * tVoltageMultiplier); + if (tAmount * 2 <= 64) + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Rod.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mSmeltInto, tAmount * 2), (int) Math.max(aMaterial.getMass() * 2L * tAmount, tAmount), 6 * tVoltageMultiplier); + if (tAmount * 2 <= 64) + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Wire.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial.mSmeltInto, tAmount * 2), (int) Math.max(aMaterial.getMass() * 2L * tAmount, tAmount), 6 * tVoltageMultiplier); + if (tAmount * 8 <= 64) + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Bolt.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial.mSmeltInto, tAmount * 8), (int) Math.max(aMaterial.getMass() * 2L * tAmount, tAmount), 8 * tVoltageMultiplier); + if (tAmount * 4 <= 64) + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Ring.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial.mSmeltInto, tAmount * 4), (int) Math.max(aMaterial.getMass() * 2L * tAmount, tAmount), 6 * tVoltageMultiplier); + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), ItemList.Shape_Extruder_Sword.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, aMaterial.mSmeltInto, tAmount), (int) Math.max(aMaterial.getMass() * 2L * tAmount, tAmount), 8 * tVoltageMultiplier); + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(3L, new Object[]{aStack}), ItemList.Shape_Extruder_Pickaxe.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, aMaterial.mSmeltInto, tAmount), (int) Math.max(aMaterial.getMass() * 3L * tAmount, tAmount), 8 * tVoltageMultiplier); + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Shovel.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, aMaterial.mSmeltInto, tAmount), (int) Math.max(aMaterial.getMass() * 1L * tAmount, tAmount), 8 * tVoltageMultiplier); + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(3L, new Object[]{aStack}), ItemList.Shape_Extruder_Axe.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, aMaterial.mSmeltInto, tAmount), (int) Math.max(aMaterial.getMass() * 3L * tAmount, tAmount), 8 * tVoltageMultiplier); + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), ItemList.Shape_Extruder_Hoe.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, aMaterial.mSmeltInto, tAmount), (int) Math.max(aMaterial.getMass() * 2L * tAmount, tAmount), 8 * tVoltageMultiplier); + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(6L, new Object[]{aStack}), ItemList.Shape_Extruder_Hammer.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.toolHeadHammer, aMaterial.mSmeltInto, tAmount), (int) Math.max(aMaterial.getMass() * 6L * tAmount, tAmount), 8 * tVoltageMultiplier); + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), ItemList.Shape_Extruder_File.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.toolHeadFile, aMaterial.mSmeltInto, tAmount), (int) Math.max(aMaterial.getMass() * 2L * tAmount, tAmount), 8 * tVoltageMultiplier); + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), ItemList.Shape_Extruder_Saw.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.toolHeadSaw, aMaterial.mSmeltInto, tAmount), (int) Math.max(aMaterial.getMass() * 2L * tAmount, tAmount), 8 * tVoltageMultiplier); + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(4L, new Object[]{aStack}), ItemList.Shape_Extruder_Gear.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial.mSmeltInto, tAmount), (int) Math.max(aMaterial.getMass() * 5L * tAmount, tAmount), 8 * tVoltageMultiplier); + + GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), ItemList.Shape_Mold_Plate.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial.mSmeltInto, tAmount), (int) Math.max(aMaterial.getMass() * 2L * tAmount, tAmount), 2 * tVoltageMultiplier); + GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(8L, new Object[]{aStack}), ItemList.Shape_Mold_Gear.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial.mSmeltInto, tAmount), (int) Math.max(aMaterial.getMass() * 10L * tAmount, tAmount), 2 * tVoltageMultiplier); + switch (aMaterial.mSmeltInto) { + case Glass: + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Bottle.get(0L, new Object[0]), new ItemStack(Items.glass_bottle, 1), tAmount * 32, 16); + GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Mold_Bottle.get(0L, new Object[0]), new ItemStack(Items.glass_bottle, 1), tAmount * 64, 4); + break; + case Steel: + if (tAmount * 2 <= 64) + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casingadviron", tAmount * 2), tAmount * 32, 3 * tVoltageMultiplier); + if (tAmount * 2 <= 64) + GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), ItemList.Shape_Mold_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casingadviron", tAmount * 3), tAmount * 128, 1 * tVoltageMultiplier); + break; + case Iron: + case WroughtIron: + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Cell.get(0L, new Object[0]), GT_ModHandler.getIC2Item("fuelRod", tAmount), tAmount * 128, 32); + if (tAmount * 2 <= 64) + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casingiron", tAmount * 2), tAmount * 32, 3 * tVoltageMultiplier); + if (tAmount * 2 <= 64) + GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), ItemList.Shape_Mold_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casingiron", tAmount * 3), tAmount * 128, 1 * tVoltageMultiplier); + if (tAmount * 31 <= 64) + GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(31L, new Object[]{aStack}), ItemList.Shape_Mold_Anvil.get(0L, new Object[0]), new ItemStack(Blocks.anvil, 1, 0), tAmount * 512, 4 * tVoltageMultiplier); + break; + case Tin: + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), ItemList.Shape_Extruder_Cell.get(0L, new Object[0]), ItemList.Cell_Empty.get(tAmount, new Object[0]), tAmount * 128, 32); + if (tAmount * 2 <= 64) + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casingtin", tAmount * 2), tAmount * 32, 3 * tVoltageMultiplier); + if (tAmount * 2 <= 64) + GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), ItemList.Shape_Mold_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casingtin", tAmount * 3), tAmount * 128, 1 * tVoltageMultiplier); + break; + case Lead: + if (tAmount * 2 <= 64) + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casinglead", tAmount * 2), tAmount * 32, 3 * tVoltageMultiplier); + if (tAmount * 2 <= 64) + GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), ItemList.Shape_Mold_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casinglead", tAmount * 3), tAmount * 128, 1 * tVoltageMultiplier); + break; + case Copper: + case AnnealedCopper: + if (tAmount * 2 <= 64) + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casingcopper", tAmount * 2), tAmount * 32, 3 * tVoltageMultiplier); + if (tAmount * 2 <= 64) + GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), ItemList.Shape_Mold_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casingcopper", tAmount * 3), tAmount * 128, 1 * tVoltageMultiplier); + break; + case Bronze: + if (tAmount * 2 <= 64) + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casingbronze", tAmount * 2), tAmount * 32, 3 * tVoltageMultiplier); + if (tAmount * 2 <= 64) + GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), ItemList.Shape_Mold_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casingbronze", tAmount * 3), tAmount * 128, 1 * tVoltageMultiplier); + break; + case Gold: + if (tAmount * 2 <= 64) + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casinggold", tAmount * 2), tAmount * 32, 3 * tVoltageMultiplier); + if (tAmount * 2 <= 64) + GT_Values.RA.addAlloySmelterRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), ItemList.Shape_Mold_Casing.get(0L, new Object[0]), GT_ModHandler.getIC2Item("casinggold", tAmount * 3), tAmount * 128, 1 * tVoltageMultiplier); + break; + } + } + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java index a79ce45f..8fcfdc98 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java @@ -7,17 +7,14 @@ import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingSlab implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingSlab() - { - OrePrefixes.slab.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aOreDictName.startsWith("slabWood")) { - GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(3L, new Object[] { aStack }), Materials.Creosote.getFluid(1000L), ItemList.RC_Tie_Wood.get(1L, new Object[0]), null, null, null, 200, 4); +public class ProcessingSlab implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingSlab() { + OrePrefixes.slab.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aOreDictName.startsWith("slabWood")) { + GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(3L, new Object[]{aStack}), Materials.Creosote.getFluid(1000L), ItemList.RC_Tie_Wood.get(1L, new Object[0]), null, null, null, 200, 4); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStick.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStick.java index 6a1084fe..009abbb3 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStick.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStick.java @@ -3,24 +3,21 @@ package gregtech.loaders.oreprocessing; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingStick implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingStick() - { - OrePrefixes.stick.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_WORKING)) GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 4L), null, (int)Math.max(aMaterial.getMass() * 2L, 1L), 4); - if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) { - GT_Values.RA.addForgeHammerRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L), (int)Math.max(aMaterial.getMass(), 1L), 16); - GT_Values.RA.addWiremillRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_Utility.copy(new Object[] { GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.wireFine, aMaterial, 4L) }), 50, 4); +public class ProcessingStick implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingStick() { + OrePrefixes.stick.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_WORKING)) + GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 4L), null, (int) Math.max(aMaterial.getMass() * 2L, 1L), 4); + if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) { + GT_Values.RA.addForgeHammerRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L), (int) Math.max(aMaterial.getMass(), 1L), 16); + GT_Values.RA.addWiremillRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_Utility.copy(new Object[]{GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.wireFine, aMaterial, 4L)}), 50, 4); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java index b3249e94..88969bd1 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java @@ -8,18 +8,16 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingStickLong implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingStickLong() - { - OrePrefixes.stickLong.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (!aMaterial.contains(SubTag.NO_WORKING)) GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 2L), null, (int)Math.max(aMaterial.getMass(), 1L), 4); - if (!aMaterial.contains(SubTag.NO_SMASHING)) { - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.spring, aMaterial, 1L), 200, 16); +public class ProcessingStickLong implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingStickLong() { + OrePrefixes.stickLong.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (!aMaterial.contains(SubTag.NO_WORKING)) + GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 2L), null, (int) Math.max(aMaterial.getMass(), 1L), 4); + if (!aMaterial.contains(SubTag.NO_SMASHING)) { + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.spring, aMaterial, 1L), 200, 16); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStone.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStone.java index c581536e..848586d9 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStone.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStone.java @@ -5,7 +5,6 @@ import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.interfaces.IOreRecipeRegistrator; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; @@ -15,58 +14,58 @@ import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class ProcessingStone - implements IOreRecipeRegistrator -{ - public ProcessingStone() - { - OrePrefixes.stone.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - Block aBlock = GT_Utility.getBlockFromStack(aStack); - switch (aMaterial) { - case _NULL: - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(3L, new Object[] { aStack }), new ItemStack(Blocks.redstone_torch, 2), Materials.Redstone.getMolten(144L), new ItemStack(Items.repeater, 1), 100, 4); - break; - case Sand: - GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), new ItemStack(Blocks.sand, 1, 0), null, 10, false); - break; - case Endstone: - GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dustImpure, Materials.Endstone, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tungsten, 1L), 5, false); - break; - case Netherrack: - GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dustImpure, Materials.Netherrack, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Gold, 1L), 5, false); - break; - case NetherBrick: - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new ItemStack(Blocks.nether_brick_fence, 1), 100, 4); - break; - case Obsidian: - if (aBlock != Blocks.air) aBlock.setResistance(20.0F); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_Utility.copyAmount(5L, new Object[] { aStack }), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 6), 64, 32); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.NetherStar, 1L), GT_Utility.copyAmount(3L, new Object[] { aStack }), Materials.Glass.getMolten(720L), new ItemStack(Blocks.beacon, 1, 0), 32, 16); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.IC2_Compressed_Coal_Ball.get(8L, new Object[0]), ItemList.IC2_Compressed_Coal_Chunk.get(1L, new Object[0]), 400, 4); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(8L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.EnderEye, 1L), new ItemStack(Blocks.ender_chest, 1), 400, 4); - GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_ModHandler.getModItem("Railcraft", "cube.crushed.obsidian", 1L, GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L)), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), 10, true); - GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), null, 200, 32); - break; - case Concrete: - GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), null, 100, 32); - GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L)); - break; - case Redrock: case Marble: case Basalt: case Quartzite: - GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), 10, false); - break; - case Flint: - GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial, 2L), new ItemStack(Items.flint, 1), 50, false); - break; - case GraniteBlack: - GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), null, 200, 32); - GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Thorium, 1L), 1, false); - break; - case GraniteRed: - GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), null, 200, 32); - GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Uranium, 1L), 1, false); + implements IOreRecipeRegistrator { + public ProcessingStone() { + OrePrefixes.stone.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + Block aBlock = GT_Utility.getBlockFromStack(aStack); + switch (aMaterial) { + case _NULL: + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(3L, new Object[]{aStack}), new ItemStack(Blocks.redstone_torch, 2), Materials.Redstone.getMolten(144L), new ItemStack(Items.repeater, 1), 100, 4); + break; + case Sand: + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new ItemStack(Blocks.sand, 1, 0), null, 10, false); + break; + case Endstone: + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dustImpure, Materials.Endstone, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tungsten, 1L), 5, false); + break; + case Netherrack: + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dustImpure, Materials.Netherrack, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Gold, 1L), 5, false); + break; + case NetherBrick: + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new ItemStack(Blocks.nether_brick_fence, 1), 100, 4); + break; + case Obsidian: + if (aBlock != Blocks.air) aBlock.setResistance(20.0F); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_Utility.copyAmount(5L, new Object[]{aStack}), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 6), 64, 32); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.NetherStar, 1L), GT_Utility.copyAmount(3L, new Object[]{aStack}), Materials.Glass.getMolten(720L), new ItemStack(Blocks.beacon, 1, 0), 32, 16); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.IC2_Compressed_Coal_Ball.get(8L, new Object[0]), ItemList.IC2_Compressed_Coal_Chunk.get(1L, new Object[0]), 400, 4); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(8L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.EnderEye, 1L), new ItemStack(Blocks.ender_chest, 1), 400, 4); + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_ModHandler.getModItem("Railcraft", "cube.crushed.obsidian", 1L, GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L)), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), 10, true); + GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), null, 200, 32); + break; + case Concrete: + GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), null, 100, 32); + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L)); + break; + case Redrock: + case Marble: + case Basalt: + case Quartzite: + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), 10, false); + break; + case Flint: + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial, 2L), new ItemStack(Items.flint, 1), 50, false); + break; + case GraniteBlack: + GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), null, 200, 32); + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Thorium, 1L), 1, false); + break; + case GraniteRed: + GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), null, 200, 32); + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Uranium, 1L), 1, false); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStoneCobble.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStoneCobble.java index 75cc12fc..f97b361a 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStoneCobble.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStoneCobble.java @@ -4,25 +4,21 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; -public class ProcessingStoneCobble implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingStoneCobble() - { - OrePrefixes.stoneCobble.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), new ItemStack(Blocks.lever, 1), 400, 1); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(8L, new Object[] { aStack }), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), new ItemStack(Blocks.furnace, 1), 400, 4); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(7L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), new ItemStack(Blocks.dropper, 1), 400, 4); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(7L, new Object[] { aStack }), new ItemStack(Items.bow, 1, 0), Materials.Redstone.getMolten(144L), new ItemStack(Blocks.dispenser, 1), 400, 4); - } +public class ProcessingStoneCobble implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingStoneCobble() { + OrePrefixes.stoneCobble.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), new ItemStack(Blocks.lever, 1), 400, 1); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(8L, new Object[]{aStack}), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), new ItemStack(Blocks.furnace, 1), 400, 4); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(7L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), new ItemStack(Blocks.dropper, 1), 400, 4); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(7L, new Object[]{aStack}), new ItemStack(Items.bow, 1, 0), Materials.Redstone.getMolten(144L), new ItemStack(Blocks.dispenser, 1), 400, 4); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStoneVarious.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStoneVarious.java index a3bc8503..f3f1fe1f 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStoneVarious.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStoneVarious.java @@ -3,30 +3,26 @@ package gregtech.loaders.oreprocessing; import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_Utility; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; -public class ProcessingStoneVarious implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingStoneVarious() - { - OrePrefixes.stone.add(this); - OrePrefixes.stoneCobble.add(this); - OrePrefixes.stoneBricks.add(this); - OrePrefixes.stoneChiseled.add(this); - OrePrefixes.stoneCracked.add(this); - OrePrefixes.stoneMossy.add(this); - OrePrefixes.stoneMossyBricks.add(this); - OrePrefixes.stoneSmooth.add(this); - } - - public void registerOre(OrePrefixes aPrefix, gregtech.api.enums.Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aPrefix == OrePrefixes.stoneSmooth) { - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new ItemStack(Blocks.stone_button, 1), 100, 4); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), new ItemStack(Blocks.stone_pressure_plate, 1), 200, 4); +public class ProcessingStoneVarious implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingStoneVarious() { + OrePrefixes.stone.add(this); + OrePrefixes.stoneCobble.add(this); + OrePrefixes.stoneBricks.add(this); + OrePrefixes.stoneChiseled.add(this); + OrePrefixes.stoneCracked.add(this); + OrePrefixes.stoneMossy.add(this); + OrePrefixes.stoneMossyBricks.add(this); + OrePrefixes.stoneSmooth.add(this); + } + + public void registerOre(OrePrefixes aPrefix, gregtech.api.enums.Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aPrefix == OrePrefixes.stoneSmooth) { + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new ItemStack(Blocks.stone_button, 1), 100, 4); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), new ItemStack(Blocks.stone_pressure_plate, 1), 200, 4); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadArrow.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadArrow.java index 2824a17b..4d07c8c7 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadArrow.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadArrow.java @@ -4,19 +4,16 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingToolHeadArrow implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingToolHeadArrow() - { - OrePrefixes.toolHeadArrow.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aMaterial.mStandardMoltenFluid != null) GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Arrow.get(0L, new Object[0]), aMaterial.getMolten(36L), GT_Utility.copyAmount(1L, new Object[] { aStack }), 16, 4); - } +public class ProcessingToolHeadArrow implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingToolHeadArrow() { + OrePrefixes.toolHeadArrow.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aMaterial.mStandardMoltenFluid != null) + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Arrow.get(0L, new Object[0]), aMaterial.getMolten(36L), GT_Utility.copyAmount(1L, new Object[]{aStack}), 16, 4); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadAxe.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadAxe.java index 8c6ac19b..ad1614bb 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadAxe.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadAxe.java @@ -6,15 +6,12 @@ import gregtech.api.util.GT_ModHandler; import gregtech.common.items.GT_MetaGenerated_Tool_01; import net.minecraft.item.ItemStack; -public class ProcessingToolHeadAxe implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingToolHeadAxe() - { - OrePrefixes.toolHeadAxe.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(6, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); - } +public class ProcessingToolHeadAxe implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingToolHeadAxe() { + OrePrefixes.toolHeadAxe.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(6, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[]{aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial)}); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadBuzzSaw.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadBuzzSaw.java index 77ea257e..0c57ef99 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadBuzzSaw.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadBuzzSaw.java @@ -4,21 +4,17 @@ import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_ModHandler.RecipeBits; import gregtech.common.items.GT_MetaGenerated_Tool_01; import net.minecraft.item.ItemStack; -public class ProcessingToolHeadBuzzSaw implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingToolHeadBuzzSaw() - { - OrePrefixes.toolHeadBuzzSaw.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(140, 1, aMaterial, Materials.StainlessSteel, new long[] { 100000L, 32L, 1L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PBM", "dXG", "SGP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Lithium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(140, 1, aMaterial, Materials.StainlessSteel, new long[] { 75000L, 32L, 1L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PBM", "dXG", "SGP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Cadmium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(140, 1, aMaterial, Materials.StainlessSteel, new long[] { 50000L, 32L, 1L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PBM", "dXG", "SGP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Sodium.get(1L, new Object[0]) }); - } +public class ProcessingToolHeadBuzzSaw implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingToolHeadBuzzSaw() { + OrePrefixes.toolHeadBuzzSaw.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(140, 1, aMaterial, Materials.StainlessSteel, new long[]{100000L, 32L, 1L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PBM", "dXG", "SGP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Lithium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(140, 1, aMaterial, Materials.StainlessSteel, new long[]{75000L, 32L, 1L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PBM", "dXG", "SGP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Cadmium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(140, 1, aMaterial, Materials.StainlessSteel, new long[]{50000L, 32L, 1L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PBM", "dXG", "SGP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Sodium.get(1L, new Object[0])}); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadChainsaw.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadChainsaw.java index f61b8d0c..a0f37924 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadChainsaw.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadChainsaw.java @@ -4,27 +4,23 @@ import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_ModHandler.RecipeBits; import gregtech.common.items.GT_MetaGenerated_Tool_01; import net.minecraft.item.ItemStack; -public class ProcessingToolHeadChainsaw implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingToolHeadChainsaw() - { - OrePrefixes.toolHeadChainsaw.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(110, 1, aMaterial, Materials.StainlessSteel, new long[] { 100000L, 32L, 1L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Lithium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(112, 1, aMaterial, Materials.Titanium, new long[] { 400000L, 128L, 2L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_MV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_MV_Lithium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(114, 1, aMaterial, Materials.TungstenSteel, new long[] { 1600000L, 512L, 3L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.TungstenSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.TungstenSteel), Character.valueOf('B'), ItemList.Battery_RE_HV_Lithium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(110, 1, aMaterial, Materials.StainlessSteel, new long[] { 75000L, 32L, 1L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Cadmium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(112, 1, aMaterial, Materials.Titanium, new long[] { 300000L, 128L, 2L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_MV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_MV_Cadmium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(114, 1, aMaterial, Materials.TungstenSteel, new long[] { 1200000L, 512L, 3L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.TungstenSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.TungstenSteel), Character.valueOf('B'), ItemList.Battery_RE_HV_Cadmium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(110, 1, aMaterial, Materials.StainlessSteel, new long[] { 50000L, 32L, 1L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Sodium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(112, 1, aMaterial, Materials.Titanium, new long[] { 200000L, 128L, 2L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_MV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_MV_Sodium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(114, 1, aMaterial, Materials.TungstenSteel, new long[] { 800000L, 512L, 3L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.TungstenSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.TungstenSteel), Character.valueOf('B'), ItemList.Battery_RE_HV_Sodium.get(1L, new Object[0]) }); - } +public class ProcessingToolHeadChainsaw implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingToolHeadChainsaw() { + OrePrefixes.toolHeadChainsaw.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(110, 1, aMaterial, Materials.StainlessSteel, new long[]{100000L, 32L, 1L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Lithium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(112, 1, aMaterial, Materials.Titanium, new long[]{400000L, 128L, 2L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_MV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_MV_Lithium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(114, 1, aMaterial, Materials.TungstenSteel, new long[]{1600000L, 512L, 3L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.TungstenSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.TungstenSteel), Character.valueOf('B'), ItemList.Battery_RE_HV_Lithium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(110, 1, aMaterial, Materials.StainlessSteel, new long[]{75000L, 32L, 1L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Cadmium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(112, 1, aMaterial, Materials.Titanium, new long[]{300000L, 128L, 2L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_MV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_MV_Cadmium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(114, 1, aMaterial, Materials.TungstenSteel, new long[]{1200000L, 512L, 3L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.TungstenSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.TungstenSteel), Character.valueOf('B'), ItemList.Battery_RE_HV_Cadmium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(110, 1, aMaterial, Materials.StainlessSteel, new long[]{50000L, 32L, 1L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Sodium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(112, 1, aMaterial, Materials.Titanium, new long[]{200000L, 128L, 2L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_MV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_MV_Sodium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(114, 1, aMaterial, Materials.TungstenSteel, new long[]{800000L, 512L, 3L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.TungstenSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.TungstenSteel), Character.valueOf('B'), ItemList.Battery_RE_HV_Sodium.get(1L, new Object[0])}); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadDrill.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadDrill.java index d58cab1c..2ba4b164 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadDrill.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadDrill.java @@ -4,31 +4,27 @@ import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_ModHandler.RecipeBits; import gregtech.common.items.GT_MetaGenerated_Tool_01; import net.minecraft.item.ItemStack; -public class ProcessingToolHeadDrill implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingToolHeadDrill() - { - OrePrefixes.toolHeadDrill.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(100, 1, aMaterial, Materials.StainlessSteel, new long[] { 100000L, 32L, 1L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Lithium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(100, 1, aMaterial, Materials.StainlessSteel, new long[] { 75000L, 32L, 1L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Cadmium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(100, 1, aMaterial, Materials.StainlessSteel, new long[] { 50000L, 32L, 1L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Sodium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(102, 1, aMaterial, Materials.Titanium, new long[] { 400000L, 128L, 2L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_MV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_MV_Lithium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(102, 1, aMaterial, Materials.Titanium, new long[] { 300000L, 128L, 2L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_MV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_MV_Cadmium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(102, 1, aMaterial, Materials.Titanium, new long[] { 200000L, 128L, 2L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_MV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_MV_Sodium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(104, 1, aMaterial, Materials.TungstenSteel, new long[] { 1600000L, 512L, 3L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.TungstenSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.TungstenSteel), Character.valueOf('B'), ItemList.Battery_RE_HV_Lithium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(104, 1, aMaterial, Materials.TungstenSteel, new long[] { 1200000L, 512L, 3L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.TungstenSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.TungstenSteel), Character.valueOf('B'), ItemList.Battery_RE_HV_Cadmium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(104, 1, aMaterial, Materials.TungstenSteel, new long[] { 800000L, 512L, 3L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.TungstenSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.TungstenSteel), Character.valueOf('B'), ItemList.Battery_RE_HV_Sodium.get(1L, new Object[0]) }); - - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(130, 1, aMaterial, Materials.Titanium, new long[] { 1600000L, 512L, 3L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "PRP", "MPB", Character.valueOf('X'), OrePrefixes.stickLong.get(aMaterial), Character.valueOf('M'), ItemList.Electric_Piston_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('R'), OrePrefixes.spring.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_HV_Lithium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(130, 1, aMaterial, Materials.Titanium, new long[] { 1200000L, 512L, 3L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "PRP", "MPB", Character.valueOf('X'), OrePrefixes.stickLong.get(aMaterial), Character.valueOf('M'), ItemList.Electric_Piston_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('R'), OrePrefixes.spring.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_HV_Cadmium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(130, 1, aMaterial, Materials.Titanium, new long[] { 800000L, 512L, 3L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "PRP", "MPB", Character.valueOf('X'), OrePrefixes.stickLong.get(aMaterial), Character.valueOf('M'), ItemList.Electric_Piston_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('R'), OrePrefixes.spring.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_HV_Sodium.get(1L, new Object[0]) }); - } +public class ProcessingToolHeadDrill implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingToolHeadDrill() { + OrePrefixes.toolHeadDrill.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(100, 1, aMaterial, Materials.StainlessSteel, new long[]{100000L, 32L, 1L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Lithium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(100, 1, aMaterial, Materials.StainlessSteel, new long[]{75000L, 32L, 1L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Cadmium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(100, 1, aMaterial, Materials.StainlessSteel, new long[]{50000L, 32L, 1L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Sodium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(102, 1, aMaterial, Materials.Titanium, new long[]{400000L, 128L, 2L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_MV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_MV_Lithium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(102, 1, aMaterial, Materials.Titanium, new long[]{300000L, 128L, 2L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_MV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_MV_Cadmium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(102, 1, aMaterial, Materials.Titanium, new long[]{200000L, 128L, 2L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_MV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_MV_Sodium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(104, 1, aMaterial, Materials.TungstenSteel, new long[]{1600000L, 512L, 3L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.TungstenSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.TungstenSteel), Character.valueOf('B'), ItemList.Battery_RE_HV_Lithium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(104, 1, aMaterial, Materials.TungstenSteel, new long[]{1200000L, 512L, 3L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.TungstenSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.TungstenSteel), Character.valueOf('B'), ItemList.Battery_RE_HV_Cadmium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(104, 1, aMaterial, Materials.TungstenSteel, new long[]{800000L, 512L, 3L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.TungstenSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.TungstenSteel), Character.valueOf('B'), ItemList.Battery_RE_HV_Sodium.get(1L, new Object[0])}); + + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(130, 1, aMaterial, Materials.Titanium, new long[]{1600000L, 512L, 3L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "PRP", "MPB", Character.valueOf('X'), OrePrefixes.stickLong.get(aMaterial), Character.valueOf('M'), ItemList.Electric_Piston_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('R'), OrePrefixes.spring.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_HV_Lithium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(130, 1, aMaterial, Materials.Titanium, new long[]{1200000L, 512L, 3L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "PRP", "MPB", Character.valueOf('X'), OrePrefixes.stickLong.get(aMaterial), Character.valueOf('M'), ItemList.Electric_Piston_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('R'), OrePrefixes.spring.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_HV_Cadmium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(130, 1, aMaterial, Materials.Titanium, new long[]{800000L, 512L, 3L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "PRP", "MPB", Character.valueOf('X'), OrePrefixes.stickLong.get(aMaterial), Character.valueOf('M'), ItemList.Electric_Piston_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('R'), OrePrefixes.spring.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_HV_Sodium.get(1L, new Object[0])}); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadFile.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadFile.java index f89367b4..34d7eac5 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadFile.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadFile.java @@ -4,22 +4,18 @@ import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.SubTag; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_ModHandler.RecipeBits; import gregtech.common.items.GT_MetaGenerated_Tool_01; import net.minecraft.item.ItemStack; -public class ProcessingToolHeadFile implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingToolHeadFile() - { - OrePrefixes.toolHeadFile.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(18, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); - if ((!aMaterial.contains(SubTag.NO_SMASHING)) && (!aMaterial.contains(SubTag.BOUNCY))) { - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(18, 1, aMaterial, aMaterial.mHandleMaterial, null), GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "P", "P", "S", Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('S'), OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); +public class ProcessingToolHeadFile implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingToolHeadFile() { + OrePrefixes.toolHeadFile.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(18, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[]{aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial)}); + if ((!aMaterial.contains(SubTag.NO_SMASHING)) && (!aMaterial.contains(SubTag.BOUNCY))) { + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(18, 1, aMaterial, aMaterial.mHandleMaterial, null), GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"P", "P", "S", Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('S'), OrePrefixes.stick.get(aMaterial.mHandleMaterial)}); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHammer.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHammer.java index c459495b..8c9cdc28 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHammer.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHammer.java @@ -1,53 +1,44 @@ package gregtech.loaders.oreprocessing; -import gregtech.api.enums.Dyes; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.SubTag; +import gregtech.api.enums.*; import gregtech.api.interfaces.IOreRecipeRegistrator; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Utility; -import gregtech.api.util.GT_ModHandler.RecipeBits; import gregtech.common.items.GT_MetaGenerated_Tool_01; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; -public class ProcessingToolHeadHammer implements IOreRecipeRegistrator -{ - public ProcessingToolHeadHammer() - { - OrePrefixes.toolHeadHammer.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if ((aMaterial != Materials.Stone) && (aMaterial != Materials.Flint)) { - GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats((aMaterial.contains(SubTag.BOUNCY)) || (aMaterial.contains(SubTag.WOOD)) ? 14 : 12, 1, aMaterial, aMaterial.mHandleMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats((aMaterial.contains(SubTag.BOUNCY)) || (aMaterial.contains(SubTag.WOOD)) ? 14 : 12, 1, aMaterial, aMaterial.mHandleMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "XX ", "XXS", "XX ", Character.valueOf('X'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(Materials.Wood) : OrePrefixes.ingot.get(aMaterial), Character.valueOf('S'), OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats((aMaterial.contains(SubTag.BOUNCY)) || (aMaterial.contains(SubTag.WOOD)) ? 14 : 12, 1, aMaterial, aMaterial.mHandleMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "XX ", "XXS", "XX ", Character.valueOf('X'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(Materials.Wood) : OrePrefixes.gem.get(aMaterial), Character.valueOf('S'), OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); - if (aMaterial != Materials.Rubber) GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(44, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "xRR", " SR", "S f", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('R'), OrePrefixes.plate.get(Materials.Rubber) }); - if ((!aMaterial.contains(SubTag.WOOD)) && (!aMaterial.contains(SubTag.BOUNCY)) && (!aMaterial.contains(SubTag.NO_SMASHING))) { - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(16, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "IhI", "III", " I ", Character.valueOf('I'), OrePrefixes.ingot.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(20, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "hDS", "DSD", "SDf", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('D'), Dyes.dyeBlue }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(22, 1, aMaterial, aMaterial.mHandleMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " fS", " Sh", "W ", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('W'), OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(26, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PfP", "hPd", "STS", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('T'), OrePrefixes.screw.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(28, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SWS", "SSS", "xSh", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('W'), new ItemStack(Blocks.wool, 1, 32767) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(30, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PfP", "PdP", "STS", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('T'), OrePrefixes.screw.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(34, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "fPh", " S ", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(36, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPf", "PP ", "Sh ", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(aMaterial) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(160, 1, aMaterial, Materials.Rubber, new long[] { 100000L, 32L, 1L, -1L }), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "LBf", "Sd ", "P ", 'B', OrePrefixes.bolt.get(aMaterial), 'P', OrePrefixes.plate.get(Materials.Rubber),'S',OrePrefixes.stick.get(Materials.Iron),'L',ItemList.Battery_RE_LV_Lithium.get(1L, new Object[0]) }); - -// GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(1L,OrePrefixes.turbineBlade.get(aMaterial)), gregtech.api.util.GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | gregtech.api.util.GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "B", "B", "B", 'S', OrePrefixes.screw.get(aMaterial), 'B', OrePrefixes.plate.get(aMaterial) }); - - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 4L),GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Magnalium, 1L),GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(170, 1, aMaterial, aMaterial, null), 160, 100); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 8L),GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Titanium, 1L),GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(172, 1, aMaterial, aMaterial, null), 320, 400); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 12L),GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.TungstenSteel, 1L),GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(174, 1, aMaterial, aMaterial, null), 640, 1600); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 16L),GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Americium, 1L),GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(176, 1, aMaterial, aMaterial, null), 1280, 6400); -} +public class ProcessingToolHeadHammer implements IOreRecipeRegistrator { + public ProcessingToolHeadHammer() { + OrePrefixes.toolHeadHammer.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if ((aMaterial != Materials.Stone) && (aMaterial != Materials.Flint)) { + GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats((aMaterial.contains(SubTag.BOUNCY)) || (aMaterial.contains(SubTag.WOOD)) ? 14 : 12, 1, aMaterial, aMaterial.mHandleMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats((aMaterial.contains(SubTag.BOUNCY)) || (aMaterial.contains(SubTag.WOOD)) ? 14 : 12, 1, aMaterial, aMaterial.mHandleMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XX ", "XXS", "XX ", Character.valueOf('X'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(Materials.Wood) : OrePrefixes.ingot.get(aMaterial), Character.valueOf('S'), OrePrefixes.stick.get(aMaterial.mHandleMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats((aMaterial.contains(SubTag.BOUNCY)) || (aMaterial.contains(SubTag.WOOD)) ? 14 : 12, 1, aMaterial, aMaterial.mHandleMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XX ", "XXS", "XX ", Character.valueOf('X'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(Materials.Wood) : OrePrefixes.gem.get(aMaterial), Character.valueOf('S'), OrePrefixes.stick.get(aMaterial.mHandleMaterial)}); + if (aMaterial != Materials.Rubber) + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(44, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"xRR", " SR", "S f", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('R'), OrePrefixes.plate.get(Materials.Rubber)}); + if ((!aMaterial.contains(SubTag.WOOD)) && (!aMaterial.contains(SubTag.BOUNCY)) && (!aMaterial.contains(SubTag.NO_SMASHING))) { + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(16, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"IhI", "III", " I ", Character.valueOf('I'), OrePrefixes.ingot.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(20, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"hDS", "DSD", "SDf", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('D'), Dyes.dyeBlue}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(22, 1, aMaterial, aMaterial.mHandleMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" fS", " Sh", "W ", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('W'), OrePrefixes.stick.get(aMaterial.mHandleMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(26, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PfP", "hPd", "STS", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('T'), OrePrefixes.screw.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(28, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SWS", "SSS", "xSh", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('W'), new ItemStack(Blocks.wool, 1, 32767)}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(30, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PfP", "PdP", "STS", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('T'), OrePrefixes.screw.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(34, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"fPh", " S ", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(36, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPf", "PP ", "Sh ", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(160, 1, aMaterial, Materials.Rubber, new long[]{100000L, 32L, 1L, -1L}), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"LBf", "Sd ", "P ", 'B', OrePrefixes.bolt.get(aMaterial), 'P', OrePrefixes.plate.get(Materials.Rubber), 'S', OrePrefixes.stick.get(Materials.Iron), 'L', ItemList.Battery_RE_LV_Lithium.get(1L, new Object[0])}); + +// GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(1L,OrePrefixes.turbineBlade.get(aMaterial)), gregtech.api.util.GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | gregtech.api.util.GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "B", "B", "B", 'S', OrePrefixes.screw.get(aMaterial), 'B', OrePrefixes.plate.get(aMaterial) }); + + + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 4L), GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Magnalium, 1L), GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(170, 1, aMaterial, aMaterial, null), 160, 100); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 8L), GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Titanium, 1L), GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(172, 1, aMaterial, aMaterial, null), 320, 400); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 12L), GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.TungstenSteel, 1L), GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(174, 1, aMaterial, aMaterial, null), 640, 1600); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 16L), GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Americium, 1L), GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(176, 1, aMaterial, aMaterial, null), 1280, 6400); + } + } } - } } \ No newline at end of file diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHoe.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHoe.java index c1cbd497..3cca974b 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHoe.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHoe.java @@ -6,15 +6,12 @@ import gregtech.api.util.GT_ModHandler; import gregtech.common.items.GT_MetaGenerated_Tool_01; import net.minecraft.item.ItemStack; -public class ProcessingToolHeadHoe implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingToolHeadHoe() - { - OrePrefixes.toolHeadHoe.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(8, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); - } +public class ProcessingToolHeadHoe implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingToolHeadHoe() { + OrePrefixes.toolHeadHoe.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(8, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[]{aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial)}); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPickaxe.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPickaxe.java index d5ff3c78..2d5205f3 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPickaxe.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPickaxe.java @@ -6,15 +6,12 @@ import gregtech.api.util.GT_ModHandler; import gregtech.common.items.GT_MetaGenerated_Tool_01; import net.minecraft.item.ItemStack; -public class ProcessingToolHeadPickaxe implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingToolHeadPickaxe() - { - OrePrefixes.toolHeadPickaxe.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(2, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); - } +public class ProcessingToolHeadPickaxe implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingToolHeadPickaxe() { + OrePrefixes.toolHeadPickaxe.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(2, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[]{aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial)}); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPlow.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPlow.java index 3f758089..66ab06f2 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPlow.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadPlow.java @@ -6,15 +6,12 @@ import gregtech.api.util.GT_ModHandler; import gregtech.common.items.GT_MetaGenerated_Tool_01; import net.minecraft.item.ItemStack; -public class ProcessingToolHeadPlow implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingToolHeadPlow() - { - OrePrefixes.toolHeadPlow.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(42, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); - } +public class ProcessingToolHeadPlow implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingToolHeadPlow() { + OrePrefixes.toolHeadPlow.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(42, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[]{aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial)}); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSaw.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSaw.java index 11cb5113..df49b848 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSaw.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSaw.java @@ -6,15 +6,12 @@ import gregtech.api.util.GT_ModHandler; import gregtech.common.items.GT_MetaGenerated_Tool_01; import net.minecraft.item.ItemStack; -public class ProcessingToolHeadSaw implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingToolHeadSaw() - { - OrePrefixes.toolHeadSaw.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(10, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); - } +public class ProcessingToolHeadSaw implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingToolHeadSaw() { + OrePrefixes.toolHeadSaw.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(10, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[]{aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial)}); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSense.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSense.java index 78a3762c..09bcd749 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSense.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSense.java @@ -6,15 +6,12 @@ import gregtech.api.util.GT_ModHandler; import gregtech.common.items.GT_MetaGenerated_Tool_01; import net.minecraft.item.ItemStack; -public class ProcessingToolHeadSense implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingToolHeadSense() - { - OrePrefixes.toolHeadSense.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(40, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); - } +public class ProcessingToolHeadSense implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingToolHeadSense() { + OrePrefixes.toolHeadSense.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(40, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[]{aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial)}); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadShovel.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadShovel.java index d8b6bf32..949b2744 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadShovel.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadShovel.java @@ -6,15 +6,12 @@ import gregtech.api.util.GT_ModHandler; import gregtech.common.items.GT_MetaGenerated_Tool_01; import net.minecraft.item.ItemStack; -public class ProcessingToolHeadShovel implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingToolHeadShovel() - { - OrePrefixes.toolHeadShovel.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(4, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); - } +public class ProcessingToolHeadShovel implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingToolHeadShovel() { + OrePrefixes.toolHeadShovel.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(4, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[]{aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial)}); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSword.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSword.java index fcf3680e..19a3fac3 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSword.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadSword.java @@ -6,15 +6,12 @@ import gregtech.api.util.GT_ModHandler; import gregtech.common.items.GT_MetaGenerated_Tool_01; import net.minecraft.item.ItemStack; -public class ProcessingToolHeadSword implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingToolHeadSword() - { - OrePrefixes.toolHeadSword.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(0, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); - } +public class ProcessingToolHeadSword implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingToolHeadSword() { + OrePrefixes.toolHeadSword.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(0, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[]{aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial)}); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadUniversalSpade.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadUniversalSpade.java index 119be3c0..90ba6609 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadUniversalSpade.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadUniversalSpade.java @@ -7,15 +7,12 @@ import gregtech.api.util.GT_ModHandler; import gregtech.common.items.GT_MetaGenerated_Tool_01; import net.minecraft.item.ItemStack; -public class ProcessingToolHeadUniversalSpade implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingToolHeadUniversalSpade() - { - OrePrefixes.toolHeadUniversalSpade.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(32, 1, aMaterial, aMaterial, null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial), OrePrefixes.screw.get(aMaterial), ToolDictNames.craftingToolScrewdriver }); - } +public class ProcessingToolHeadUniversalSpade implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingToolHeadUniversalSpade() { + OrePrefixes.toolHeadUniversalSpade.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.addShapelessCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(32, 1, aMaterial, aMaterial, null), new Object[]{aOreDictName, OrePrefixes.stick.get(aMaterial), OrePrefixes.screw.get(aMaterial), ToolDictNames.craftingToolScrewdriver}); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadWrench.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadWrench.java index 87434b86..ecbc0b9d 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadWrench.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadWrench.java @@ -4,31 +4,27 @@ import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_ModHandler.RecipeBits; import gregtech.common.items.GT_MetaGenerated_Tool_01; import net.minecraft.item.ItemStack; -public class ProcessingToolHeadWrench implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingToolHeadWrench() - { - OrePrefixes.toolHeadWrench.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(120, 1, aMaterial, Materials.StainlessSteel, new long[] { 100000L, 32L, 1L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Lithium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(122, 1, aMaterial, Materials.Titanium, new long[] { 400000L, 128L, 2L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_MV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_MV_Lithium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(124, 1, aMaterial, Materials.TungstenSteel, new long[] { 1600000L, 512L, 3L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.TungstenSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.TungstenSteel), Character.valueOf('B'), ItemList.Battery_RE_HV_Lithium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(120, 1, aMaterial, Materials.StainlessSteel, new long[] { 75000L, 32L, 1L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Cadmium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(122, 1, aMaterial, Materials.Titanium, new long[] { 300000L, 128L, 2L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_MV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_MV_Cadmium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(124, 1, aMaterial, Materials.TungstenSteel, new long[] { 1200000L, 512L, 3L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.TungstenSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.TungstenSteel), Character.valueOf('B'), ItemList.Battery_RE_HV_Cadmium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(120, 1, aMaterial, Materials.StainlessSteel, new long[] { 50000L, 32L, 1L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Sodium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(122, 1, aMaterial, Materials.Titanium, new long[] { 200000L, 128L, 2L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_MV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_MV_Sodium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(124, 1, aMaterial, Materials.TungstenSteel, new long[] { 800000L, 512L, 3L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.TungstenSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.TungstenSteel), Character.valueOf('B'), ItemList.Battery_RE_HV_Sodium.get(1L, new Object[0]) }); - - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(150, 1, aMaterial, Materials.StainlessSteel, new long[] { 100000L, 32L, 1L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PdX", "MGS", "GBP", Character.valueOf('X'), OrePrefixes.stickLong.get(aMaterial), Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Lithium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(150, 1, aMaterial, Materials.StainlessSteel, new long[] { 75000L, 32L, 1L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PdX", "MGS", "GBP", Character.valueOf('X'), OrePrefixes.stickLong.get(aMaterial), Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Cadmium.get(1L, new Object[0]) }); - GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(150, 1, aMaterial, Materials.StainlessSteel, new long[] { 50000L, 32L, 1L, -1L }), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PdX", "MGS", "GBP", Character.valueOf('X'), OrePrefixes.stickLong.get(aMaterial), Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Sodium.get(1L, new Object[0]) }); - } +public class ProcessingToolHeadWrench implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingToolHeadWrench() { + OrePrefixes.toolHeadWrench.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(120, 1, aMaterial, Materials.StainlessSteel, new long[]{100000L, 32L, 1L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Lithium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(122, 1, aMaterial, Materials.Titanium, new long[]{400000L, 128L, 2L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_MV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_MV_Lithium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(124, 1, aMaterial, Materials.TungstenSteel, new long[]{1600000L, 512L, 3L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.TungstenSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.TungstenSteel), Character.valueOf('B'), ItemList.Battery_RE_HV_Lithium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(120, 1, aMaterial, Materials.StainlessSteel, new long[]{75000L, 32L, 1L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Cadmium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(122, 1, aMaterial, Materials.Titanium, new long[]{300000L, 128L, 2L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_MV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_MV_Cadmium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(124, 1, aMaterial, Materials.TungstenSteel, new long[]{1200000L, 512L, 3L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.TungstenSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.TungstenSteel), Character.valueOf('B'), ItemList.Battery_RE_HV_Cadmium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(120, 1, aMaterial, Materials.StainlessSteel, new long[]{50000L, 32L, 1L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Sodium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(122, 1, aMaterial, Materials.Titanium, new long[]{200000L, 128L, 2L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_MV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Titanium), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_MV_Sodium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(124, 1, aMaterial, Materials.TungstenSteel, new long[]{800000L, 512L, 3L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SXd", "GMG", "PBP", Character.valueOf('X'), aOreDictName, Character.valueOf('M'), ItemList.Electric_Motor_HV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.TungstenSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.TungstenSteel), Character.valueOf('B'), ItemList.Battery_RE_HV_Sodium.get(1L, new Object[0])}); + + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(150, 1, aMaterial, Materials.StainlessSteel, new long[]{100000L, 32L, 1L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PdX", "MGS", "GBP", Character.valueOf('X'), OrePrefixes.stickLong.get(aMaterial), Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Lithium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(150, 1, aMaterial, Materials.StainlessSteel, new long[]{75000L, 32L, 1L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PdX", "MGS", "GBP", Character.valueOf('X'), OrePrefixes.stickLong.get(aMaterial), Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Cadmium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(150, 1, aMaterial, Materials.StainlessSteel, new long[]{50000L, 32L, 1L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PdX", "MGS", "GBP", Character.valueOf('X'), OrePrefixes.stickLong.get(aMaterial), Character.valueOf('M'), ItemList.Electric_Motor_LV.get(1L, new Object[0]), Character.valueOf('S'), OrePrefixes.screw.get(Materials.StainlessSteel), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('G'), OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Sodium.get(1L, new Object[0])}); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java index b906df68..74fe9a7c 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java @@ -4,42 +4,40 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.interfaces.IOreRecipeRegistrator; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; public class ProcessingTransforming - implements IOreRecipeRegistrator -{ - public ProcessingTransforming() - { - for (OrePrefixes tPrefix : OrePrefixes.values()) if (((tPrefix.mMaterialAmount > 0L) && (!tPrefix.mIsContainer) && (!tPrefix.mIsEnchantable)) || (tPrefix == OrePrefixes.plank)) tPrefix.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aPrefix == OrePrefixes.plank) aPrefix = OrePrefixes.plate; - switch (aMaterial) { - case Wood: - GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.SeedOil.getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 120L, true)), GT_OreDictUnificator.get(aPrefix, Materials.WoodSealed, 1L), GT_Values.NI, GT_Values.NI, null, 100, 8); - GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.SeedOilLin.getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 80L, true)), GT_OreDictUnificator.get(aPrefix, Materials.WoodSealed, 1L), GT_Values.NI, GT_Values.NI, null, 100, 8); - GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.SeedOilHemp.getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 80L, true)), GT_OreDictUnificator.get(aPrefix, Materials.WoodSealed, 1L), GT_Values.NI, GT_Values.NI, null, 100, 8); - break; - case Iron: - GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.FierySteel.getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 250L, true)), GT_OreDictUnificator.get(aPrefix, Materials.FierySteel, 1L), GT_Values.NI, GT_Values.NI, null, 100, 8); - GT_Values.RA.addPolarizerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(aPrefix, Materials.IronMagnetic, 1L), (int)Math.max(16L, aPrefix.mMaterialAmount * 128L / 3628800L), 16); - break; - case WroughtIron: - GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.FierySteel.getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 225L, true)), GT_OreDictUnificator.get(aPrefix, Materials.FierySteel, 1L), GT_Values.NI, GT_Values.NI, null, 100, 8); - GT_Values.RA.addPolarizerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(aPrefix, Materials.IronMagnetic, 1L), (int)Math.max(16L, aPrefix.mMaterialAmount * 128L / 3628800L), 16); - break; - case Steel: - GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), Materials.FierySteel.getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 200L, true)), GT_OreDictUnificator.get(aPrefix, Materials.FierySteel, 1L), GT_Values.NI, GT_Values.NI, null, 100, 8); - GT_Values.RA.addPolarizerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(aPrefix, Materials.SteelMagnetic, 1L), (int)Math.max(16L, aPrefix.mMaterialAmount * 128L / 3628800L), 16); - break; - case Neodymium: - GT_Values.RA.addPolarizerRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(aPrefix, Materials.NeodymiumMagnetic, 1L), (int)Math.max(16L, aPrefix.mMaterialAmount * 128L / 3628800L), 256); + implements IOreRecipeRegistrator { + public ProcessingTransforming() { + for (OrePrefixes tPrefix : OrePrefixes.values()) + if (((tPrefix.mMaterialAmount > 0L) && (!tPrefix.mIsContainer) && (!tPrefix.mIsEnchantable)) || (tPrefix == OrePrefixes.plank)) + tPrefix.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aPrefix == OrePrefixes.plank) aPrefix = OrePrefixes.plate; + switch (aMaterial) { + case Wood: + GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), Materials.SeedOil.getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 120L, true)), GT_OreDictUnificator.get(aPrefix, Materials.WoodSealed, 1L), GT_Values.NI, GT_Values.NI, null, 100, 8); + GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), Materials.SeedOilLin.getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 80L, true)), GT_OreDictUnificator.get(aPrefix, Materials.WoodSealed, 1L), GT_Values.NI, GT_Values.NI, null, 100, 8); + GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), Materials.SeedOilHemp.getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 80L, true)), GT_OreDictUnificator.get(aPrefix, Materials.WoodSealed, 1L), GT_Values.NI, GT_Values.NI, null, 100, 8); + break; + case Iron: + GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), Materials.FierySteel.getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 250L, true)), GT_OreDictUnificator.get(aPrefix, Materials.FierySteel, 1L), GT_Values.NI, GT_Values.NI, null, 100, 8); + GT_Values.RA.addPolarizerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(aPrefix, Materials.IronMagnetic, 1L), (int) Math.max(16L, aPrefix.mMaterialAmount * 128L / 3628800L), 16); + break; + case WroughtIron: + GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), Materials.FierySteel.getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 225L, true)), GT_OreDictUnificator.get(aPrefix, Materials.FierySteel, 1L), GT_Values.NI, GT_Values.NI, null, 100, 8); + GT_Values.RA.addPolarizerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(aPrefix, Materials.IronMagnetic, 1L), (int) Math.max(16L, aPrefix.mMaterialAmount * 128L / 3628800L), 16); + break; + case Steel: + GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), Materials.FierySteel.getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 200L, true)), GT_OreDictUnificator.get(aPrefix, Materials.FierySteel, 1L), GT_Values.NI, GT_Values.NI, null, 100, 8); + GT_Values.RA.addPolarizerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(aPrefix, Materials.SteelMagnetic, 1L), (int) Math.max(16L, aPrefix.mMaterialAmount * 128L / 3628800L), 16); + break; + case Neodymium: + GT_Values.RA.addPolarizerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(aPrefix, Materials.NeodymiumMagnetic, 1L), (int) Math.max(16L, aPrefix.mMaterialAmount * 128L / 3628800L), 256); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWax.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWax.java index 9f33c770..ce3f59ff 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWax.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWax.java @@ -6,15 +6,13 @@ import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingWax implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingWax() - { - OrePrefixes.wax.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - if (aOreDictName.equals("waxMagical")) GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[] { aStack }), null, 6, 5); - } +public class ProcessingWax implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingWax() { + OrePrefixes.wax.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if (aOreDictName.equals("waxMagical")) + GT_Values.RA.addFuel(GT_Utility.copyAmount(1L, new Object[]{aStack}), null, 6, 5); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire01.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire01.java index 30ddd5de..96c02700 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire01.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire01.java @@ -1,44 +1,39 @@ package gregtech.loaders.oreprocessing; import appeng.api.config.TunnelType; -import appeng.api.features.IP2PTunnelRegistry; import appeng.core.Api; import gregtech.GT_Mod; import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingWire01 implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingWire01() - { - OrePrefixes.wireGt01.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, aMaterial, 1L), new Object[] { aOreDictName, OrePrefixes.plate.get(Materials.Rubber) }); - if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) { - GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.springSmall, aMaterial, 2L), 100, 8); - GT_Values.RA.addWiremillRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.wireFine, aMaterial, 4L), 200, 8); +public class ProcessingWire01 implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingWire01() { + OrePrefixes.wireGt01.add(this); } - GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 1L), GT_OreDictUnificator.get(OrePrefixes.cableGt01, aMaterial, 1L), 100, 8); - GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 1L), 100, 8); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(2L, new Object[] { aStack }), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.wireGt02, aMaterial, 1L), 150, 8); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(4L, new Object[] { aStack }), ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.wireGt04, aMaterial, 1L), 200, 8); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(8L, new Object[] { aStack }), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.wireGt08, aMaterial, 1L), 300, 8); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(12L, new Object[] { aStack }), ItemList.Circuit_Integrated.getWithDamage(0L, 12L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.wireGt12, aMaterial, 1L), 400, 8); - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(16L, new Object[] { aStack }), ItemList.Circuit_Integrated.getWithDamage(0L, 16L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.wireGt16, aMaterial, 1L), 500, 8); - - if(GT_Mod.gregtechproxy.mAE2Integration){ - Api.INSTANCE.registries().p2pTunnel().addNewAttunement(aStack, TunnelType.IC2_POWER); - Api.INSTANCE.registries().p2pTunnel().addNewAttunement(GT_OreDictUnificator.get(OrePrefixes.cableGt01, aMaterial, 1L), TunnelType.IC2_POWER); + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, aMaterial, 1L), new Object[]{aOreDictName, OrePrefixes.plate.get(Materials.Rubber)}); + if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) { + GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.springSmall, aMaterial, 2L), 100, 8); + GT_Values.RA.addWiremillRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.wireFine, aMaterial, 4L), 200, 8); + } + GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 1L), GT_OreDictUnificator.get(OrePrefixes.cableGt01, aMaterial, 1L), 100, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 1L), 100, 8); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.wireGt02, aMaterial, 1L), 150, 8); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(4L, new Object[]{aStack}), ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.wireGt04, aMaterial, 1L), 200, 8); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(8L, new Object[]{aStack}), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.wireGt08, aMaterial, 1L), 300, 8); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(12L, new Object[]{aStack}), ItemList.Circuit_Integrated.getWithDamage(0L, 12L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.wireGt12, aMaterial, 1L), 400, 8); + GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(16L, new Object[]{aStack}), ItemList.Circuit_Integrated.getWithDamage(0L, 16L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.wireGt16, aMaterial, 1L), 500, 8); + + if (GT_Mod.gregtechproxy.mAE2Integration) { + Api.INSTANCE.registries().p2pTunnel().addNewAttunement(aStack, TunnelType.IC2_POWER); + Api.INSTANCE.registries().p2pTunnel().addNewAttunement(GT_OreDictUnificator.get(OrePrefixes.cableGt01, aMaterial, 1L), TunnelType.IC2_POWER); + } } - } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire02.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire02.java index 6fe6f80e..90ef818a 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire02.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire02.java @@ -11,24 +11,21 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingWire02 implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingWire02() - { - OrePrefixes.wireGt02.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 1L), GT_OreDictUnificator.get(OrePrefixes.cableGt02, aMaterial, 1L), 150, 8); - GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt02, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 1L), 150, 8); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt02, aMaterial, 1L), new Object[] { aOreDictName, OrePrefixes.plate.get(Materials.Rubber) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 2L), new Object[] { aOreDictName }); - GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), new Object[] { OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial) }); - - if(GT_Mod.gregtechproxy.mAE2Integration){ - Api.INSTANCE.registries().p2pTunnel().addNewAttunement(aStack, TunnelType.IC2_POWER); - Api.INSTANCE.registries().p2pTunnel().addNewAttunement(GT_OreDictUnificator.get(OrePrefixes.cableGt02, aMaterial, 1L), TunnelType.IC2_POWER); - } - } +public class ProcessingWire02 implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingWire02() { + OrePrefixes.wireGt02.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 1L), GT_OreDictUnificator.get(OrePrefixes.cableGt02, aMaterial, 1L), 150, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt02, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 1L), 150, 8); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt02, aMaterial, 1L), new Object[]{aOreDictName, OrePrefixes.plate.get(Materials.Rubber)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 2L), new Object[]{aOreDictName}); + GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new Object[]{OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial)}); + + if (GT_Mod.gregtechproxy.mAE2Integration) { + Api.INSTANCE.registries().p2pTunnel().addNewAttunement(aStack, TunnelType.IC2_POWER); + Api.INSTANCE.registries().p2pTunnel().addNewAttunement(GT_OreDictUnificator.get(OrePrefixes.cableGt02, aMaterial, 1L), TunnelType.IC2_POWER); + } + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire04.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire04.java index bd81db8b..c2513492 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire04.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire04.java @@ -11,24 +11,21 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingWire04 implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingWire04() - { - OrePrefixes.wireGt04.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 2L), GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L), 200, 8); - GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 2L), 200, 8); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L), new Object[] { aOreDictName, OrePrefixes.plate.get(Materials.Rubber), OrePrefixes.plate.get(Materials.Rubber) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 4L), new Object[] { aOreDictName }); - GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), new Object[] { OrePrefixes.wireGt02.get(aMaterial), OrePrefixes.wireGt02.get(aMaterial) }); - - if(GT_Mod.gregtechproxy.mAE2Integration){ - Api.INSTANCE.registries().p2pTunnel().addNewAttunement(aStack, TunnelType.IC2_POWER); - Api.INSTANCE.registries().p2pTunnel().addNewAttunement(GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L), TunnelType.IC2_POWER); - } - } +public class ProcessingWire04 implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingWire04() { + OrePrefixes.wireGt04.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 2L), GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L), 200, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 2L), 200, 8); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L), new Object[]{aOreDictName, OrePrefixes.plate.get(Materials.Rubber), OrePrefixes.plate.get(Materials.Rubber)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 4L), new Object[]{aOreDictName}); + GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new Object[]{OrePrefixes.wireGt02.get(aMaterial), OrePrefixes.wireGt02.get(aMaterial)}); + + if (GT_Mod.gregtechproxy.mAE2Integration) { + Api.INSTANCE.registries().p2pTunnel().addNewAttunement(aStack, TunnelType.IC2_POWER); + Api.INSTANCE.registries().p2pTunnel().addNewAttunement(GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L), TunnelType.IC2_POWER); + } + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire08.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire08.java index 74b489f4..69b90165 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire08.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire08.java @@ -11,24 +11,21 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingWire08 implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingWire08() - { - OrePrefixes.wireGt08.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 3L), GT_OreDictUnificator.get(OrePrefixes.cableGt08, aMaterial, 1L), 300, 8); - GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt08, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 3L), 300, 8); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt08, aMaterial, 1L), new Object[] { aOreDictName, OrePrefixes.plate.get(Materials.Rubber), OrePrefixes.plate.get(Materials.Rubber), OrePrefixes.plate.get(Materials.Rubber) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 8L), new Object[] { aOreDictName }); - GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), new Object[] { OrePrefixes.wireGt04.get(aMaterial), OrePrefixes.wireGt04.get(aMaterial) }); - - if(GT_Mod.gregtechproxy.mAE2Integration){ - Api.INSTANCE.registries().p2pTunnel().addNewAttunement(aStack, TunnelType.IC2_POWER); - Api.INSTANCE.registries().p2pTunnel().addNewAttunement(GT_OreDictUnificator.get(OrePrefixes.cableGt08, aMaterial, 1L), TunnelType.IC2_POWER); - } - } +public class ProcessingWire08 implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingWire08() { + OrePrefixes.wireGt08.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 3L), GT_OreDictUnificator.get(OrePrefixes.cableGt08, aMaterial, 1L), 300, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt08, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 3L), 300, 8); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt08, aMaterial, 1L), new Object[]{aOreDictName, OrePrefixes.plate.get(Materials.Rubber), OrePrefixes.plate.get(Materials.Rubber), OrePrefixes.plate.get(Materials.Rubber)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 8L), new Object[]{aOreDictName}); + GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new Object[]{OrePrefixes.wireGt04.get(aMaterial), OrePrefixes.wireGt04.get(aMaterial)}); + + if (GT_Mod.gregtechproxy.mAE2Integration) { + Api.INSTANCE.registries().p2pTunnel().addNewAttunement(aStack, TunnelType.IC2_POWER); + Api.INSTANCE.registries().p2pTunnel().addNewAttunement(GT_OreDictUnificator.get(OrePrefixes.cableGt08, aMaterial, 1L), TunnelType.IC2_POWER); + } + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire12.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire12.java index b23c6a13..9aa8474a 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire12.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire12.java @@ -11,24 +11,21 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingWire12 implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingWire12() - { - OrePrefixes.wireGt12.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 4L), GT_OreDictUnificator.get(OrePrefixes.cableGt12, aMaterial, 1L), 400, 8); - GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt12, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[] { aStack }), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 4L), 400, 8); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt12, aMaterial, 1L), new Object[] { aOreDictName, OrePrefixes.plate.get(Materials.Rubber), OrePrefixes.plate.get(Materials.Rubber), OrePrefixes.plate.get(Materials.Rubber), OrePrefixes.plate.get(Materials.Rubber) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 12L), new Object[] { aOreDictName }); - GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), new Object[] { OrePrefixes.wireGt08.get(aMaterial), OrePrefixes.wireGt04.get(aMaterial) }); - - if(GT_Mod.gregtechproxy.mAE2Integration){ - Api.INSTANCE.registries().p2pTunnel().addNewAttunement(aStack, TunnelType.IC2_POWER); - Api.INSTANCE.registries().p2pTunnel().addNewAttunement(GT_OreDictUnificator.get(OrePrefixes.cableGt12, aMaterial, 1L), TunnelType.IC2_POWER); - } - } +public class ProcessingWire12 implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingWire12() { + OrePrefixes.wireGt12.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 4L), GT_OreDictUnificator.get(OrePrefixes.cableGt12, aMaterial, 1L), 400, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt12, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 4L), 400, 8); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt12, aMaterial, 1L), new Object[]{aOreDictName, OrePrefixes.plate.get(Materials.Rubber), OrePrefixes.plate.get(Materials.Rubber), OrePrefixes.plate.get(Materials.Rubber), OrePrefixes.plate.get(Materials.Rubber)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 12L), new Object[]{aOreDictName}); + GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new Object[]{OrePrefixes.wireGt08.get(aMaterial), OrePrefixes.wireGt04.get(aMaterial)}); + + if (GT_Mod.gregtechproxy.mAE2Integration) { + Api.INSTANCE.registries().p2pTunnel().addNewAttunement(aStack, TunnelType.IC2_POWER); + Api.INSTANCE.registries().p2pTunnel().addNewAttunement(GT_OreDictUnificator.get(OrePrefixes.cableGt12, aMaterial, 1L), TunnelType.IC2_POWER); + } + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire16.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire16.java index 5a9a5170..0ec3abb7 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire16.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire16.java @@ -10,21 +10,18 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; -public class ProcessingWire16 implements gregtech.api.interfaces.IOreRecipeRegistrator -{ - public ProcessingWire16() - { - OrePrefixes.wireGt16.add(this); - } - - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) - { - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 16L), new Object[] { aOreDictName }); - GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), new Object[] { OrePrefixes.wireGt08.get(aMaterial), OrePrefixes.wireGt08.get(aMaterial) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[] { aStack }), new Object[] { OrePrefixes.wireGt12.get(aMaterial), OrePrefixes.wireGt04.get(aMaterial) }); - - if(GT_Mod.gregtechproxy.mAE2Integration){ - Api.INSTANCE.registries().p2pTunnel().addNewAttunement(aStack, TunnelType.IC2_POWER); - } - } +public class ProcessingWire16 implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingWire16() { + OrePrefixes.wireGt16.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 16L), new Object[]{aOreDictName}); + GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new Object[]{OrePrefixes.wireGt08.get(aMaterial), OrePrefixes.wireGt08.get(aMaterial)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new Object[]{OrePrefixes.wireGt12.get(aMaterial), OrePrefixes.wireGt04.get(aMaterial)}); + + if (GT_Mod.gregtechproxy.mAE2Integration) { + Api.INSTANCE.registries().p2pTunnel().addNewAttunement(aStack, TunnelType.IC2_POWER); + } + } } diff --git a/src/main/java/gregtech/loaders/postload/GT_BlockResistanceLoader.java b/src/main/java/gregtech/loaders/postload/GT_BlockResistanceLoader.java index ffa1779b..5a0917d5 100644 --- a/src/main/java/gregtech/loaders/postload/GT_BlockResistanceLoader.java +++ b/src/main/java/gregtech/loaders/postload/GT_BlockResistanceLoader.java @@ -2,53 +2,48 @@ package gregtech.loaders.postload; import gregtech.GT_Mod; import gregtech.api.util.GT_Utility; -import gregtech.common.GT_Proxy; -import java.util.Set; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.item.ItemAxe; import net.minecraft.item.ItemPickaxe; +import java.util.Set; + public class GT_BlockResistanceLoader - implements Runnable -{ - public void run() - { - if (GT_Mod.gregtechproxy.mHardRock) - { - Blocks.stone.setHardness(16.0F); - Blocks.brick_block.setHardness(32.0F); - Blocks.hardened_clay.setHardness(32.0F); - Blocks.stained_hardened_clay.setHardness(32.0F); - Blocks.cobblestone.setHardness(12.0F); - Blocks.stonebrick.setHardness(24.0F); + implements Runnable { + public void run() { + if (GT_Mod.gregtechproxy.mHardRock) { + Blocks.stone.setHardness(16.0F); + Blocks.brick_block.setHardness(32.0F); + Blocks.hardened_clay.setHardness(32.0F); + Blocks.stained_hardened_clay.setHardness(32.0F); + Blocks.cobblestone.setHardness(12.0F); + Blocks.stonebrick.setHardness(24.0F); + } + Blocks.stone.setResistance(10.0F); + Blocks.cobblestone.setResistance(10.0F); + Blocks.stonebrick.setResistance(10.0F); + Blocks.brick_block.setResistance(20.0F); + Blocks.hardened_clay.setResistance(15.0F); + Blocks.stained_hardened_clay.setResistance(15.0F); + + + Blocks.bed.setHarvestLevel("axe", 0); + Blocks.hay_block.setHarvestLevel("axe", 0); + Blocks.tnt.setHarvestLevel("pickaxe", 0); + Blocks.sponge.setHarvestLevel("axe", 0); + Blocks.monster_egg.setHarvestLevel("pickaxe", 0); + + GT_Utility.callMethod(Material.tnt, "func_85158_p", true, false, false, new Object[0]); + GT_Utility.callMethod(Material.tnt, "setAdventureModeExempt", true, false, false, new Object[0]); + + Set tSet = (Set) GT_Utility.getFieldContent(ItemAxe.class, "field_150917_c", true, true); + tSet.add(Blocks.bed); + tSet.add(Blocks.hay_block); + tSet.add(Blocks.sponge); + + tSet = (Set) GT_Utility.getFieldContent(ItemPickaxe.class, "field_150915_c", true, true); + tSet.add(Blocks.monster_egg); + tSet.add(Blocks.tnt); } - Blocks.stone.setResistance(10.0F); - Blocks.cobblestone.setResistance(10.0F); - Blocks.stonebrick.setResistance(10.0F); - Blocks.brick_block.setResistance(20.0F); - Blocks.hardened_clay.setResistance(15.0F); - Blocks.stained_hardened_clay.setResistance(15.0F); - - - - Blocks.bed.setHarvestLevel("axe", 0); - Blocks.hay_block.setHarvestLevel("axe", 0); - Blocks.tnt.setHarvestLevel("pickaxe", 0); - Blocks.sponge.setHarvestLevel("axe", 0); - Blocks.monster_egg.setHarvestLevel("pickaxe", 0); - - GT_Utility.callMethod(Material.tnt, "func_85158_p", true, false, false, new Object[0]); - GT_Utility.callMethod(Material.tnt, "setAdventureModeExempt", true, false, false, new Object[0]); - - Set tSet = (Set)GT_Utility.getFieldContent(ItemAxe.class, "field_150917_c", true, true); - tSet.add(Blocks.bed); - tSet.add(Blocks.hay_block); - tSet.add(Blocks.sponge); - - tSet = (Set)GT_Utility.getFieldContent(ItemPickaxe.class, "field_150915_c", true, true); - tSet.add(Blocks.monster_egg); - tSet.add(Blocks.tnt); - } } diff --git a/src/main/java/gregtech/loaders/postload/GT_BookAndLootLoader.java b/src/main/java/gregtech/loaders/postload/GT_BookAndLootLoader.java index 09f7bb47..3e651b28 100644 --- a/src/main/java/gregtech/loaders/postload/GT_BookAndLootLoader.java +++ b/src/main/java/gregtech/loaders/postload/GT_BookAndLootLoader.java @@ -6,114 +6,128 @@ import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_OreDictUnificator; -import gregtech.common.GT_Proxy; -import java.io.PrintStream; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.util.WeightedRandomChestContent; import net.minecraftforge.common.ChestGenHooks; public class GT_BookAndLootLoader - implements Runnable -{ - public void run() - { - GT_Log.out.println("GT_Mod: Adding worldgenerated Chest Content."); - if (GT_Mod.gregtechproxy.mIncreaseDungeonLoot) - { - ChestGenHooks tChest = ChestGenHooks.getInfo("bonusChest");tChest.setMax(tChest.getMax() + 8);tChest.setMin(tChest.getMin() + 4); - tChest = ChestGenHooks.getInfo("dungeonChest");tChest.setMax(tChest.getMax() + 6);tChest.setMin(tChest.getMin() + 3); - tChest = ChestGenHooks.getInfo("pyramidDesertyChest");tChest.setMax(tChest.getMax() + 8);tChest.setMin(tChest.getMin() + 4); - tChest = ChestGenHooks.getInfo("pyramidJungleChest");tChest.setMax(tChest.getMax() + 16);tChest.setMin(tChest.getMin() + 8); - tChest = ChestGenHooks.getInfo("pyramidJungleDispenser");tChest.setMax(tChest.getMax() + 2);tChest.setMin(tChest.getMin() + 1); - tChest = ChestGenHooks.getInfo("mineshaftCorridor");tChest.setMax(tChest.getMax() + 4);tChest.setMin(tChest.getMin() + 2); - tChest = ChestGenHooks.getInfo("villageBlacksmith");tChest.setMax(tChest.getMax() + 12);tChest.setMin(tChest.getMin() + 6); - tChest = ChestGenHooks.getInfo("strongholdCrossing");tChest.setMax(tChest.getMax() + 8);tChest.setMin(tChest.getMin() + 4); - tChest = ChestGenHooks.getInfo("strongholdCorridor");tChest.setMax(tChest.getMax() + 6);tChest.setMin(tChest.getMin() + 3); - tChest = ChestGenHooks.getInfo("strongholdLibrary");tChest.setMax(tChest.getMax() + 16);tChest.setMin(tChest.getMin() + 8); + implements Runnable { + public void run() { + GT_Log.out.println("GT_Mod: Adding worldgenerated Chest Content."); + if (GT_Mod.gregtechproxy.mIncreaseDungeonLoot) { + ChestGenHooks tChest = ChestGenHooks.getInfo("bonusChest"); + tChest.setMax(tChest.getMax() + 8); + tChest.setMin(tChest.getMin() + 4); + tChest = ChestGenHooks.getInfo("dungeonChest"); + tChest.setMax(tChest.getMax() + 6); + tChest.setMin(tChest.getMin() + 3); + tChest = ChestGenHooks.getInfo("pyramidDesertyChest"); + tChest.setMax(tChest.getMax() + 8); + tChest.setMin(tChest.getMin() + 4); + tChest = ChestGenHooks.getInfo("pyramidJungleChest"); + tChest.setMax(tChest.getMax() + 16); + tChest.setMin(tChest.getMin() + 8); + tChest = ChestGenHooks.getInfo("pyramidJungleDispenser"); + tChest.setMax(tChest.getMax() + 2); + tChest.setMin(tChest.getMin() + 1); + tChest = ChestGenHooks.getInfo("mineshaftCorridor"); + tChest.setMax(tChest.getMax() + 4); + tChest.setMin(tChest.getMin() + 2); + tChest = ChestGenHooks.getInfo("villageBlacksmith"); + tChest.setMax(tChest.getMax() + 12); + tChest.setMin(tChest.getMin() + 6); + tChest = ChestGenHooks.getInfo("strongholdCrossing"); + tChest.setMax(tChest.getMax() + 8); + tChest.setMin(tChest.getMin() + 4); + tChest = ChestGenHooks.getInfo("strongholdCorridor"); + tChest.setMax(tChest.getMax() + 6); + tChest.setMin(tChest.getMin() + 3); + tChest = ChestGenHooks.getInfo("strongholdLibrary"); + tChest.setMax(tChest.getMax() + 16); + tChest.setMin(tChest.getMin() + 8); + } + ChestGenHooks.addItem("bonusChest", new WeightedRandomChestContent(ItemList.Bottle_Purple_Drink.get(1L, new Object[0]), 8, 16, 2)); + + + ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(ItemList.Bottle_Holy_Water.get(1L, new Object[0]), 4, 8, 20)); + ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(ItemList.Bottle_Purple_Drink.get(1L, new Object[0]), 8, 16, 80)); + ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Silver, 1L), 1, 6, 120)); + ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Lead, 1L), 1, 6, 30)); + ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), 1, 6, 60)); + ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 1L), 1, 6, 60)); + ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Manganese, 1L), 1, 6, 60)); + ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.DamascusSteel, 1L), 1, 6, 10)); + ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Emerald, 1L), 1, 6, 20)); + ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L), 1, 6, 20)); + ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L), 1, 6, 20)); + ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GreenSapphire, 1L), 1, 6, 20)); + ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Olivine, 1L), 1, 6, 20)); + ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GarnetRed, 1L), 1, 6, 40)); + ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GarnetYellow, 1L), 1, 6, 40)); + ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Neodymium, 1L), 1, 6, 40)); + ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chrome, 1L), 1, 3, 40)); + + ChestGenHooks.addItem("pyramidDesertyChest", new WeightedRandomChestContent(ItemList.Bottle_Holy_Water.get(1L, new Object[0]), 4, 8, 2)); + ChestGenHooks.addItem("pyramidDesertyChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Silver, 1L), 4, 16, 12)); + ChestGenHooks.addItem("pyramidDesertyChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Platinum, 1L), 2, 8, 4)); + ChestGenHooks.addItem("pyramidDesertyChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L), 2, 8, 2)); + ChestGenHooks.addItem("pyramidDesertyChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L), 2, 8, 2)); + ChestGenHooks.addItem("pyramidDesertyChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GreenSapphire, 1L), 2, 8, 2)); + ChestGenHooks.addItem("pyramidDesertyChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Olivine, 1L), 2, 8, 2)); + ChestGenHooks.addItem("pyramidDesertyChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GarnetRed, 1L), 2, 8, 4)); + ChestGenHooks.addItem("pyramidDesertyChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GarnetYellow, 1L), 2, 8, 4)); + + ChestGenHooks.addItem("pyramidJungleChest", new WeightedRandomChestContent(ItemList.Coin_Gold_Ancient.get(1L, new Object[0]), 16, 64, 10)); + ChestGenHooks.addItem("pyramidJungleChest", new WeightedRandomChestContent(ItemList.ZPM.getWithCharge(1L, 2147483647, new Object[0]), 1, 1, 1)); + ChestGenHooks.addItem("pyramidJungleChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 1L), 4, 16, 12)); + ChestGenHooks.addItem("pyramidJungleChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L), 2, 8, 2)); + ChestGenHooks.addItem("pyramidJungleChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L), 2, 8, 2)); + ChestGenHooks.addItem("pyramidJungleChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GreenSapphire, 1L), 2, 8, 2)); + ChestGenHooks.addItem("pyramidJungleChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Olivine, 1L), 2, 8, 2)); + ChestGenHooks.addItem("pyramidJungleChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GarnetRed, 1L), 2, 8, 4)); + ChestGenHooks.addItem("pyramidJungleChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GarnetYellow, 1L), 2, 8, 4)); + + ChestGenHooks.addItem("pyramidJungleDispenser", new WeightedRandomChestContent(new ItemStack(Items.fire_charge, 1), 2, 8, 30)); + ChestGenHooks.addItem("pyramidJungleDispenser", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.arrowGtWood, Materials.DamascusSteel, 1L), 8, 16, 20)); + + + ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Silver, 1L), 1, 4, 12)); + ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Lead, 1L), 1, 4, 3)); + ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), 1, 4, 6)); + ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 1L), 1, 4, 6)); + ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L), 1, 4, 2)); + ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GreenSapphire, 1L), 1, 4, 2)); + ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Olivine, 1L), 1, 4, 2)); + ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GarnetRed, 1L), 1, 4, 4)); + ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GarnetYellow, 1L), 1, 4, 4)); + ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L), 1, 4, 2)); + ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Emerald, 1L), 1, 4, 2)); + ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.DamascusSteel, 1L), 1, 4, 1)); + ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.DamascusSteel, 1L), 1, 4, 1)); + + ChestGenHooks.addItem("villageBlacksmith", new WeightedRandomChestContent(ItemList.McGuffium_239.get(1L, new Object[0]), 1, 1, 1)); + ChestGenHooks.addItem("villageBlacksmith", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chrome, 1L), 1, 4, 6)); + ChestGenHooks.addItem("villageBlacksmith", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Neodymium, 1L), 2, 8, 6)); + ChestGenHooks.addItem("villageBlacksmith", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Manganese, 1L), 2, 8, 12)); + ChestGenHooks.addItem("villageBlacksmith", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), 4, 12, 12)); + ChestGenHooks.addItem("villageBlacksmith", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 1L), 4, 12, 12)); + ChestGenHooks.addItem("villageBlacksmith", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Brass, 1L), 4, 12, 12)); + ChestGenHooks.addItem("villageBlacksmith", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.DamascusSteel, 1L), 4, 12, 1)); + + ChestGenHooks.addItem("strongholdCrossing", new WeightedRandomChestContent(ItemList.Bottle_Holy_Water.get(1L, new Object[0]), 4, 8, 6)); + ChestGenHooks.addItem("strongholdCrossing", new WeightedRandomChestContent(ItemList.McGuffium_239.get(1L, new Object[0]), 1, 1, 10)); + + ChestGenHooks.addItem("strongholdCrossing", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.crateGtIngot, Materials.DamascusSteel, 1L), 4, 8, 6)); + ChestGenHooks.addItem("strongholdCrossing", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.crateGtIngot, Materials.Steel, 1L), 8, 16, 12)); + ChestGenHooks.addItem("strongholdCrossing", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.crateGtIngot, Materials.Bronze, 1L), 8, 16, 12)); + ChestGenHooks.addItem("strongholdCrossing", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.crateGtIngot, Materials.Manganese, 1L), 4, 8, 12)); + ChestGenHooks.addItem("strongholdCrossing", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.crateGtDust, Materials.Neodymium, 1L), 4, 8, 6)); + ChestGenHooks.addItem("strongholdCrossing", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.crateGtDust, Materials.Chrome, 1L), 2, 4, 6)); + + ChestGenHooks.addItem("strongholdCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.DamascusSteel, 1L), 1, 4, 6)); + ChestGenHooks.addItem("strongholdCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.DamascusSteel, 1L), 1, 4, 6)); + ChestGenHooks.addItem("strongholdCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.arrowGtWood, Materials.DamascusSteel, 1L), 16, 48, 6)); + ChestGenHooks.addItem("strongholdCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.arrowGtWood, Materials.SterlingSilver, 1L), 8, 24, 6)); } - ChestGenHooks.addItem("bonusChest", new WeightedRandomChestContent(ItemList.Bottle_Purple_Drink.get(1L, new Object[0]), 8, 16, 2)); - - - - ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(ItemList.Bottle_Holy_Water.get(1L, new Object[0]), 4, 8, 20)); - ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(ItemList.Bottle_Purple_Drink.get(1L, new Object[0]), 8, 16, 80)); - ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Silver, 1L), 1, 6, 120)); - ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Lead, 1L), 1, 6, 30)); - ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), 1, 6, 60)); - ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 1L), 1, 6, 60)); - ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Manganese, 1L), 1, 6, 60)); - ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.DamascusSteel, 1L), 1, 6, 10)); - ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Emerald, 1L), 1, 6, 20)); - ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L), 1, 6, 20)); - ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L), 1, 6, 20)); - ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GreenSapphire, 1L), 1, 6, 20)); - ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Olivine, 1L), 1, 6, 20)); - ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GarnetRed, 1L), 1, 6, 40)); - ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GarnetYellow, 1L), 1, 6, 40)); - ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Neodymium, 1L), 1, 6, 40)); - ChestGenHooks.addItem("dungeonChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chrome, 1L), 1, 3, 40)); - - ChestGenHooks.addItem("pyramidDesertyChest", new WeightedRandomChestContent(ItemList.Bottle_Holy_Water.get(1L, new Object[0]), 4, 8, 2)); - ChestGenHooks.addItem("pyramidDesertyChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Silver, 1L), 4, 16, 12)); - ChestGenHooks.addItem("pyramidDesertyChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Platinum, 1L), 2, 8, 4)); - ChestGenHooks.addItem("pyramidDesertyChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L), 2, 8, 2)); - ChestGenHooks.addItem("pyramidDesertyChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L), 2, 8, 2)); - ChestGenHooks.addItem("pyramidDesertyChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GreenSapphire, 1L), 2, 8, 2)); - ChestGenHooks.addItem("pyramidDesertyChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Olivine, 1L), 2, 8, 2)); - ChestGenHooks.addItem("pyramidDesertyChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GarnetRed, 1L), 2, 8, 4)); - ChestGenHooks.addItem("pyramidDesertyChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GarnetYellow, 1L), 2, 8, 4)); - - ChestGenHooks.addItem("pyramidJungleChest", new WeightedRandomChestContent(ItemList.Coin_Gold_Ancient.get(1L, new Object[0]), 16, 64, 10)); - ChestGenHooks.addItem("pyramidJungleChest", new WeightedRandomChestContent(ItemList.ZPM.getWithCharge(1L, 2147483647, new Object[0]), 1, 1, 1)); - ChestGenHooks.addItem("pyramidJungleChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 1L), 4, 16, 12)); - ChestGenHooks.addItem("pyramidJungleChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L), 2, 8, 2)); - ChestGenHooks.addItem("pyramidJungleChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L), 2, 8, 2)); - ChestGenHooks.addItem("pyramidJungleChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GreenSapphire, 1L), 2, 8, 2)); - ChestGenHooks.addItem("pyramidJungleChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Olivine, 1L), 2, 8, 2)); - ChestGenHooks.addItem("pyramidJungleChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GarnetRed, 1L), 2, 8, 4)); - ChestGenHooks.addItem("pyramidJungleChest", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GarnetYellow, 1L), 2, 8, 4)); - - ChestGenHooks.addItem("pyramidJungleDispenser", new WeightedRandomChestContent(new ItemStack(Items.fire_charge, 1), 2, 8, 30)); - ChestGenHooks.addItem("pyramidJungleDispenser", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.arrowGtWood, Materials.DamascusSteel, 1L), 8, 16, 20)); - - - ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Silver, 1L), 1, 4, 12)); - ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Lead, 1L), 1, 4, 3)); - ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), 1, 4, 6)); - ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 1L), 1, 4, 6)); - ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L), 1, 4, 2)); - ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GreenSapphire, 1L), 1, 4, 2)); - ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Olivine, 1L), 1, 4, 2)); - ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GarnetRed, 1L), 1, 4, 4)); - ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GarnetYellow, 1L), 1, 4, 4)); - ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L), 1, 4, 2)); - ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Emerald, 1L), 1, 4, 2)); - ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.DamascusSteel, 1L), 1, 4, 1)); - ChestGenHooks.addItem("mineshaftCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.DamascusSteel, 1L), 1, 4, 1)); - - ChestGenHooks.addItem("villageBlacksmith", new WeightedRandomChestContent(ItemList.McGuffium_239.get(1L, new Object[0]), 1, 1, 1)); - ChestGenHooks.addItem("villageBlacksmith", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chrome, 1L), 1, 4, 6)); - ChestGenHooks.addItem("villageBlacksmith", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Neodymium, 1L), 2, 8, 6)); - ChestGenHooks.addItem("villageBlacksmith", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Manganese, 1L), 2, 8, 12)); - ChestGenHooks.addItem("villageBlacksmith", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), 4, 12, 12)); - ChestGenHooks.addItem("villageBlacksmith", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 1L), 4, 12, 12)); - ChestGenHooks.addItem("villageBlacksmith", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Brass, 1L), 4, 12, 12)); - ChestGenHooks.addItem("villageBlacksmith", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.DamascusSteel, 1L), 4, 12, 1)); - - ChestGenHooks.addItem("strongholdCrossing", new WeightedRandomChestContent(ItemList.Bottle_Holy_Water.get(1L, new Object[0]), 4, 8, 6)); - ChestGenHooks.addItem("strongholdCrossing", new WeightedRandomChestContent(ItemList.McGuffium_239.get(1L, new Object[0]), 1, 1, 10)); - - ChestGenHooks.addItem("strongholdCrossing", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.crateGtIngot, Materials.DamascusSteel, 1L), 4, 8, 6)); - ChestGenHooks.addItem("strongholdCrossing", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.crateGtIngot, Materials.Steel, 1L), 8, 16, 12)); - ChestGenHooks.addItem("strongholdCrossing", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.crateGtIngot, Materials.Bronze, 1L), 8, 16, 12)); - ChestGenHooks.addItem("strongholdCrossing", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.crateGtIngot, Materials.Manganese, 1L), 4, 8, 12)); - ChestGenHooks.addItem("strongholdCrossing", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.crateGtDust, Materials.Neodymium, 1L), 4, 8, 6)); - ChestGenHooks.addItem("strongholdCrossing", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.crateGtDust, Materials.Chrome, 1L), 2, 4, 6)); - - ChestGenHooks.addItem("strongholdCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.DamascusSteel, 1L), 1, 4, 6)); - ChestGenHooks.addItem("strongholdCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.DamascusSteel, 1L), 1, 4, 6)); - ChestGenHooks.addItem("strongholdCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.arrowGtWood, Materials.DamascusSteel, 1L), 16, 48, 6)); - ChestGenHooks.addItem("strongholdCorridor", new WeightedRandomChestContent(GT_OreDictUnificator.get(OrePrefixes.arrowGtWood, Materials.SterlingSilver, 1L), 8, 24, 6)); - } } diff --git a/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java index acb3d800..88611633 100644 --- a/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java +++ b/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java @@ -1,665 +1,637 @@ package gregtech.loaders.postload; +import cpw.mods.fml.common.Loader; import gregtech.GT_Mod; import gregtech.api.GregTech_API; -import gregtech.api.enums.ConfigCategories; -import gregtech.api.enums.ConfigCategories.Recipes; -import gregtech.api.enums.Dyes; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OreDictNames; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.ToolDictNames; -import gregtech.api.util.GT_Config; +import gregtech.api.enums.*; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_ModHandler.RecipeBits; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; -import gregtech.common.GT_Proxy; - -import java.io.PrintStream; - -import appeng.api.features.IP2PTunnelRegistry; -import appeng.core.Api; -import cpw.mods.fml.common.Loader; import net.minecraft.init.Blocks; import net.minecraft.init.Items; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class GT_CraftingRecipeLoader - implements Runnable -{ - public void run() - { - GT_Log.out.println("GT_Mod: Adding nerfed Vanilla Recipes."); - GT_ModHandler.addCraftingRecipe(new ItemStack(Items.bucket, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, new Object[] { "XhX", " X ", Character.valueOf('X'), OrePrefixes.plate.get(Materials.AnyIron) }); - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.recipereplacements, "Iron.Bucket", true)) { - GT_ModHandler.addCraftingRecipe(new ItemStack(Items.bucket, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "X X", " X ", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.AnyIron) }); - } - ItemStack tMat = new ItemStack(Items.iron_ingot); - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.recipereplacements, "Iron.PressurePlate", true)) - { - ItemStack tStack; - if (null != (tStack = GT_ModHandler.removeRecipe(new ItemStack[] { tMat, tMat, null, null, null, null, null, null, null }))) { - GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, new Object[] { "XXh", Character.valueOf('X'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('I'), OrePrefixes.ingot.get(Materials.AnyIron) }); - } - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.recipereplacements, "Iron.Door", true)) - { - ItemStack tStack; - if (null != (tStack = GT_ModHandler.removeRecipe(new ItemStack[] { tMat, tMat, null, tMat, tMat, null, tMat, tMat, null }))) { - GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, new Object[] { "XX ", "XXh", "XX ", Character.valueOf('X'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('I'), OrePrefixes.ingot.get(Materials.AnyIron) }); - } - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.recipereplacements, "Iron.Cauldron", true)) - { - ItemStack tStack; - if (null != (tStack = GT_ModHandler.removeRecipe(new ItemStack[] { tMat, null, tMat, tMat, null, tMat, tMat, tMat, tMat }))) { - GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, new Object[] { "X X", "XhX", "XXX", Character.valueOf('X'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('I'), OrePrefixes.ingot.get(Materials.AnyIron) }); - } - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.recipereplacements, "Iron.Hopper", true)) - { - ItemStack tStack; - if (null != (tStack = GT_ModHandler.removeRecipe(new ItemStack[] { tMat, null, tMat, tMat, new ItemStack(Blocks.chest, 1, 0), tMat, null, tMat, null }))) { - GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, new Object[] { "XwX", "XCX", " X ", Character.valueOf('X'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('I'), OrePrefixes.ingot.get(Materials.AnyIron), Character.valueOf('C'), "craftingChest" }); - } - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.recipereplacements, "Iron.Bars", true)) - { - ItemStack tStack; - if (null != (tStack = GT_ModHandler.removeRecipe(new ItemStack[] { tMat, tMat, tMat, tMat, tMat, tMat, null, null, null }))) - { - tStack.stackSize /= 2; - GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, new Object[] { " w ", "XXX", "XXX", Character.valueOf('X'), OrePrefixes.stick.get(Materials.AnyIron), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('I'), OrePrefixes.ingot.get(Materials.AnyIron) }); - } - } - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("ironFence", 6L), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[] { "XXX", "XXX", " w ", Character.valueOf('X'), OrePrefixes.stick.get(Materials.AnyIron), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('I'), OrePrefixes.ingot.get(Materials.AnyIron) }); - - tMat = new ItemStack(Items.gold_ingot); - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.recipereplacements, "Gold.PressurePlate", true)) - { - ItemStack tStack; - if (null != (tStack = GT_ModHandler.removeRecipe(new ItemStack[] { tMat, tMat, null, null, null, null, null, null, null }))) { - GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, new Object[] { "XXh", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Gold), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('I'), OrePrefixes.ingot.get(Materials.Gold) }); - } - } - tMat = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 1L); - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.recipereplacements, "Rubber.Sheet", true)) - { - ItemStack tStack; - if (null != (tStack = GT_ModHandler.removeRecipe(new ItemStack[] { tMat, tMat, tMat, tMat, tMat, tMat, null, null, null }))) { - GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, new Object[] { "XXX", "XXX", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Rubber) }); - } - } - GT_ModHandler.removeRecipeByOutput(ItemList.Bottle_Empty.get(1L, new Object[0])); - GT_ModHandler.removeRecipeByOutput(ItemList.IC2_Spray_WeedEx.get(1L, new Object[0])); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("reBattery", 1L)); - - ItemStack tStack = GT_ModHandler.removeRecipe(new ItemStack[] { new ItemStack(Blocks.planks, 1, 0), null, null, new ItemStack(Blocks.planks, 1, 0) }); - if (tStack != null) - { - GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(GT_Mod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize : tStack.stackSize * 5 / 4, new Object[] { tStack }), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "s", "P", "P", Character.valueOf('P'), OrePrefixes.plank.get(Materials.Wood) }); - GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(GT_Mod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize / 2 : tStack.stackSize, new Object[] { tStack }), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "P", "P", Character.valueOf('P'), OrePrefixes.plank.get(Materials.Wood) }); - } - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.wooden_pressure_plate, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "PP", Character.valueOf('P'), OrePrefixes.plank.get(Materials.Wood) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.stone_button, 2, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "S", "S", Character.valueOf('S'), OrePrefixes.stone }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.stone_pressure_plate, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "SS", Character.valueOf('S'), OrePrefixes.stone }); - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.stone_button, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.stone }); - - GT_Log.out.println("GT_Mod: Adding Vanilla Convenience Recipes."); - - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.stonebrick, 1, 3), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "f", "X", Character.valueOf('X'), new ItemStack(Blocks.double_stone_slab, 1, 8) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.gravel, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "h", "X", Character.valueOf('X'), new ItemStack(Blocks.cobblestone, 1, 0) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.cobblestone, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "h", "X", Character.valueOf('X'), new ItemStack(Blocks.stone, 1, 0) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.stonebrick, 1, 2), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "h", "X", Character.valueOf('X'), new ItemStack(Blocks.stonebrick, 1, 0) }); - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.double_stone_slab, 1, 8), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { new ItemStack(Blocks.double_stone_slab, 1, 0) }); - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.double_stone_slab, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { new ItemStack(Blocks.double_stone_slab, 1, 8) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.double_stone_slab, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "B", "B", Character.valueOf('B'), new ItemStack(Blocks.stone_slab, 1, 0) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.cobblestone, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "B", "B", Character.valueOf('B'), new ItemStack(Blocks.stone_slab, 1, 3) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.brick_block, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "B", "B", Character.valueOf('B'), new ItemStack(Blocks.stone_slab, 1, 4) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.stonebrick, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "B", "B", Character.valueOf('B'), new ItemStack(Blocks.stone_slab, 1, 5) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.nether_brick, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "B", "B", Character.valueOf('B'), new ItemStack(Blocks.stone_slab, 1, 6) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.quartz_block, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "B", "B", Character.valueOf('B'), new ItemStack(Blocks.stone_slab, 1, 7) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.double_stone_slab, 1, 8), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "B", "B", Character.valueOf('B'), new ItemStack(Blocks.stone_slab, 1, 8) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.planks, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "B", "B", Character.valueOf('B'), new ItemStack(Blocks.wooden_slab, 1, 0) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.planks, 1, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "B", "B", Character.valueOf('B'), new ItemStack(Blocks.wooden_slab, 1, 1) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.planks, 1, 2), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "B", "B", Character.valueOf('B'), new ItemStack(Blocks.wooden_slab, 1, 2) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.planks, 1, 3), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "B", "B", Character.valueOf('B'), new ItemStack(Blocks.wooden_slab, 1, 3) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.planks, 1, 4), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "B", "B", Character.valueOf('B'), new ItemStack(Blocks.wooden_slab, 1, 4) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.planks, 1, 5), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "B", "B", Character.valueOf('B'), new ItemStack(Blocks.wooden_slab, 1, 5) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.planks, 1, 6), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "B", "B", Character.valueOf('B'), new ItemStack(Blocks.wooden_slab, 1, 6) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.planks, 1, 7), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "B", "B", Character.valueOf('B'), new ItemStack(Blocks.wooden_slab, 1, 7) }); - - GT_ModHandler.addCraftingRecipe(new ItemStack(Items.stick, 2, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "s", "X", Character.valueOf('X'), new ItemStack(Blocks.deadbush, 1, 32767) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Items.stick, 2, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "s", "X", Character.valueOf('X'), new ItemStack(Blocks.tallgrass, 1, 0) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Items.stick, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "s", "X", Character.valueOf('X'), OrePrefixes.treeSapling }); - - GT_ModHandler.addCraftingRecipe(new ItemStack(Items.comparator, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " T ", "TQT", "SSS", Character.valueOf('Q'), OreDictNames.craftingQuartz, Character.valueOf('S'), OrePrefixes.stoneSmooth, Character.valueOf('T'), OreDictNames.craftingRedstoneTorch }); - - GT_Log.out.println("GT_Mod: Adding Tool Recipes."); - GT_ModHandler.addCraftingRecipe(new ItemStack(Items.minecart, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, new Object[] { " h ", "PwP", "WPW", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('W'), ItemList.Component_Minecart_Wheels_Iron }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Items.minecart, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " h ", "PwP", "WPW", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('W'), ItemList.Component_Minecart_Wheels_Steel }); - - GT_ModHandler.addCraftingRecipe(new ItemStack(Items.chest_minecart, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, new Object[] { "X", "C", Character.valueOf('C'), new ItemStack(Items.minecart, 1), Character.valueOf('X'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Items.furnace_minecart, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, new Object[] { "X", "C", Character.valueOf('C'), new ItemStack(Items.minecart, 1), Character.valueOf('X'), OreDictNames.craftingFurnace }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Items.hopper_minecart, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, new Object[] { "X", "C", Character.valueOf('C'), new ItemStack(Items.minecart, 1), Character.valueOf('X'), new ItemStack(Blocks.hopper, 1, 32767) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Items.tnt_minecart, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, new Object[] { "X", "C", Character.valueOf('C'), new ItemStack(Items.minecart, 1), Character.valueOf('X'), new ItemStack(Blocks.tnt, 1, 32767) }); - - GT_ModHandler.addCraftingRecipe(new ItemStack(Items.chainmail_helmet, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, new Object[] { "RRR", "RhR", Character.valueOf('R'), OrePrefixes.ring.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Items.chainmail_chestplate, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, new Object[] { "RhR", "RRR", "RRR", Character.valueOf('R'), OrePrefixes.ring.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Items.chainmail_leggings, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, new Object[] { "RRR", "RhR", "R R", Character.valueOf('R'), OrePrefixes.ring.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Items.chainmail_boots, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, new Object[] { "R R", "RhR", Character.valueOf('R'), OrePrefixes.ring.get(Materials.Steel) }); - - GT_Log.out.println("GT_Mod: Adding Wool and Color releated Recipes."); - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeOrange }); - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 2), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeMagenta }); - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 3), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeLightBlue }); - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 4), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeYellow }); - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 5), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeLime }); - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 6), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyePink }); - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 7), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeGray }); - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 8), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeLightGray }); - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 9), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeCyan }); - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 10), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyePurple }); - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 11), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeBlue }); - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 12), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeBrown }); - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 13), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeGreen }); - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 14), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeRed }); - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 15), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { new ItemStack(Blocks.wool, 1, 0), Dyes.dyeBlack }); - - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.stained_glass, 8, 0), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "GGG", "GDG", "GGG", Character.valueOf('G'), new ItemStack(Blocks.glass, 1), Character.valueOf('D'), Dyes.dyeWhite }); - - GT_Log.out.println("GT_Mod: Putting a Potato on a Stick."); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Packaged_PotatoChips.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.foil.get(Materials.Aluminium), ItemList.Food_PotatoChips }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Packaged_ChiliChips.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.foil.get(Materials.Aluminium), ItemList.Food_ChiliChips }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Packaged_Fries.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.plateDouble.get(Materials.Paper), ItemList.Food_Fries }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Chum_On_Stick.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.stick.get(Materials.Wood), ItemList.Food_Chum }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Potato_On_Stick.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.stick.get(Materials.Wood), ItemList.Food_Raw_Potato }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Potato_On_Stick_Roasted.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.stick.get(Materials.Wood), ItemList.Food_Baked_Potato }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Dough.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.bucket.get(Materials.Water), OrePrefixes.dust.get(Materials.Wheat) }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Dough_Sugar.get(2L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "foodDough", OrePrefixes.dust.get(Materials.Sugar) }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Dough_Chocolate.get(2L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "foodDough", OrePrefixes.dust.get(Materials.Cocoa) }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Dough_Chocolate.get(2L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "foodDough", OrePrefixes.dust.get(Materials.Chocolate) }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Flat_Dough.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "foodDough", ToolDictNames.craftingToolRollingPin }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Raw_Bun.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "foodDough" }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Raw_Bread.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "foodDough", "foodDough" }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Raw_Baguette.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "foodDough", "foodDough", "foodDough" }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Raw_Cake.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Dough_Sugar, ItemList.Food_Dough_Sugar, ItemList.Food_Dough_Sugar, ItemList.Food_Dough_Sugar }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_ChiliChips.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_PotatoChips, OrePrefixes.dust.get(Materials.Chili) }); - - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sliced_Buns.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Bun }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sliced_Breads.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Bread, ItemList.Food_Sliced_Bread }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sliced_Baguettes.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Baguette, ItemList.Food_Sliced_Baguette }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sliced_Bun.get(2L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Buns }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sliced_Bread.get(2L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Breads }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sliced_Baguette.get(2L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Baguettes }); - - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Burger_Veggie.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Buns, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Onion }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Burger_Cheese.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Buns, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Burger_Meat.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Buns, OrePrefixes.dust.get(Materials.MeatCooked) }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Burger_Chum.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Buns, ItemList.Food_Chum }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Burger_Veggie.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Onion }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Burger_Cheese.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Burger_Meat.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Bun, OrePrefixes.dust.get(Materials.MeatCooked) }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Burger_Chum.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Bun, ItemList.Food_Chum }); - - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sandwich_Veggie.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Breads, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Onion }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sandwich_Cheese.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Breads, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sandwich_Bacon.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Breads, new ItemStack(Items.cooked_porkchop, 1) }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sandwich_Steak.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Breads, new ItemStack(Items.cooked_beef, 1) }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sandwich_Veggie.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Bread, ItemList.Food_Sliced_Bread, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Onion }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sandwich_Cheese.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Bread, ItemList.Food_Sliced_Bread, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sandwich_Bacon.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Bread, ItemList.Food_Sliced_Bread, new ItemStack(Items.cooked_porkchop, 1) }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sandwich_Steak.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Bread, ItemList.Food_Sliced_Bread, new ItemStack(Items.cooked_beef, 1) }); - - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Large_Sandwich_Veggie.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Baguettes, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Onion }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Large_Sandwich_Cheese.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Baguettes, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Large_Sandwich_Bacon.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Baguettes, new ItemStack(Items.cooked_porkchop, 1), new ItemStack(Items.cooked_porkchop, 1) }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Large_Sandwich_Steak.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Baguettes, new ItemStack(Items.cooked_beef, 1), new ItemStack(Items.cooked_beef, 1) }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Large_Sandwich_Veggie.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Baguette, ItemList.Food_Sliced_Baguette, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Onion }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Large_Sandwich_Cheese.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Baguette, ItemList.Food_Sliced_Baguette, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Large_Sandwich_Bacon.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Baguette, ItemList.Food_Sliced_Baguette, new ItemStack(Items.cooked_porkchop, 1), new ItemStack(Items.cooked_porkchop, 1) }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Large_Sandwich_Steak.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Sliced_Baguette, ItemList.Food_Sliced_Baguette, new ItemStack(Items.cooked_beef, 1), new ItemStack(Items.cooked_beef, 1) }); - - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Raw_Pizza_Veggie.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Flat_Dough, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Onion }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Raw_Pizza_Cheese.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Flat_Dough, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Raw_Pizza_Meat.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { ItemList.Food_Flat_Dough, OrePrefixes.dust.get(Materials.MeatCooked) }); - - GT_ModHandler.addCraftingRecipe(ItemList.Food_Sliced_Cheese.get(4L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "kX", Character.valueOf('X'), "foodCheese" }); - GT_ModHandler.addCraftingRecipe(ItemList.Food_Sliced_Lemon.get(4L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "kX", Character.valueOf('X'), "cropLemon" }); - GT_ModHandler.addCraftingRecipe(ItemList.Food_Sliced_Tomato.get(4L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "kX", Character.valueOf('X'), "cropTomato" }); - GT_ModHandler.addCraftingRecipe(ItemList.Food_Sliced_Onion.get(4L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "kX", Character.valueOf('X'), "cropOnion" }); - GT_ModHandler.addCraftingRecipe(ItemList.Food_Sliced_Cucumber.get(4L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "kX", Character.valueOf('X'), "cropCucumber" }); - GT_ModHandler.addCraftingRecipe(ItemList.Food_Sliced_Bun.get(2L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "kX", Character.valueOf('X'), ItemList.Food_Baked_Bun }); - GT_ModHandler.addCraftingRecipe(ItemList.Food_Sliced_Bread.get(2L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "kX", Character.valueOf('X'), ItemList.Food_Baked_Bread }); - GT_ModHandler.addCraftingRecipe(ItemList.Food_Sliced_Baguette.get(2L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "kX", Character.valueOf('X'), ItemList.Food_Baked_Baguette }); - GT_ModHandler.addCraftingRecipe(ItemList.Food_Raw_PotatoChips.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "kX", Character.valueOf('X'), "cropPotato" }); - GT_ModHandler.addCraftingRecipe(ItemList.Food_Raw_Cookie.get(4L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "kX", Character.valueOf('X'), ItemList.Food_Dough_Chocolate }); - - GT_ModHandler.addCraftingRecipe(ItemList.Food_Raw_Fries.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "k", "X", Character.valueOf('X'), "cropPotato" }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Items.bowl, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "k", "X", Character.valueOf('X'), OrePrefixes.plank.get(Materials.Wood) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Rubber, 1L), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "k", "X", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Rubber) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadArrow, Materials.Flint, 1L), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "f", "X", Character.valueOf('X'), new ItemStack(Items.flint, 1, 32767) }); - - GT_ModHandler.addCraftingRecipe(new ItemStack(Items.arrow, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, new Object[] { " H", " S ", "F ", Character.valueOf('H'), new ItemStack(Items.flint, 1, 32767), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('F'), OreDictNames.craftingFeather }); - - GT_ModHandler.removeRecipe(new ItemStack[] { new ItemStack(Blocks.planks), null, new ItemStack(Blocks.planks), null, new ItemStack(Blocks.planks) }); - GT_ModHandler.removeRecipeByOutput(ItemList.Food_Baked_Bread.get(1L, new Object[0])); - GT_ModHandler.removeRecipeByOutput(new ItemStack(Items.cookie, 1)); - GT_ModHandler.removeRecipe(new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L) }); - if (null != GT_Utility.setStack(GT_ModHandler.getRecipeOutput(true, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L), null, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1L) }), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "bronzeingotcrafting", true) ? 1L : 2L))) { - GT_Log.out.println("GT_Mod: Changed Forestrys Bronze Recipe"); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "enchantmenttable", false)) - { - GT_Log.out.println("GT_Mod: Removing the Recipe of the Enchantment Table, to have more Fun at enchanting with the Anvil and Books from Dungeons."); - GT_ModHandler.removeRecipeByOutput(new ItemStack(Blocks.enchanting_table, 1)); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "enderchest", false)) { - GT_ModHandler.removeRecipeByOutput(new ItemStack(Blocks.ender_chest, 1)); - } - tStack = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 1L); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getRecipeOutput(new ItemStack[] { null, new ItemStack(Blocks.sand, 1, 0), null, null, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Apatite, 1L), null, null, new ItemStack(Blocks.sand, 1, 0), null }), new Object[] { "S", "A", "S", Character.valueOf('A'), OrePrefixes.dust.get(Materials.Apatite), Character.valueOf('S'), new ItemStack(Blocks.sand, 1, 32767) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getRecipeOutput(new ItemStack[] { tStack, tStack, tStack, tStack, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Apatite, 1L), tStack, tStack, tStack, tStack }), new Object[] { "SSS", "SAS", "SSS", Character.valueOf('A'), OrePrefixes.dust.get(Materials.Apatite), Character.valueOf('S'), OrePrefixes.dust.get(Materials.Ash) }); - - GT_Log.out.println("GT_Mod: Adding Mixed Metal Ingot Recipes."); - GT_ModHandler.removeRecipeByOutput(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0])); - - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium) }); - - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Nickel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Nickel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Nickel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Nickel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Nickel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Nickel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium) }); - - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Invar), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Invar), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Invar), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Invar), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Invar), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Invar), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium) }); - - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium) }); - - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(4L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(4L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium) }); - - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(4L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(4L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium) }); - - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Tungsten), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Tungsten), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(4L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Tungsten), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Tungsten), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Tungsten), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(4L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Tungsten), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium) }); - - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(5L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(5L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(6L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(5L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(5L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(6L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium) }); - - GT_Log.out.println("GT_Mod: Adding Rolling Machine Recipes."); - GT_ModHandler.addRollingMachineRecipe(ItemList.RC_Rail_Standard.get(4L, new Object[0]), new Object[] { "X X", "X X", "X X", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Aluminium).toString() }); - GT_ModHandler.addRollingMachineRecipe(ItemList.RC_Rail_Standard.get(32L, new Object[0]), new Object[] { "X X", "X X", "X X", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Titanium).toString() }); - GT_ModHandler.addRollingMachineRecipe(ItemList.RC_Rail_Standard.get(32L, new Object[0]), new Object[] { "X X", "X X", "X X", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Tungsten).toString() }); - - GT_ModHandler.addRollingMachineRecipe(ItemList.RC_Rail_Reinforced.get(32L, new Object[0]), new Object[] { "X X", "X X", "X X", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.TungstenSteel).toString() }); - - GT_ModHandler.addRollingMachineRecipe(ItemList.RC_Rebar.get(2L, new Object[0]), new Object[] { " X", " X ", "X ", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Aluminium).toString() }); - GT_ModHandler.addRollingMachineRecipe(ItemList.RC_Rebar.get(16L, new Object[0]), new Object[] { " X", " X ", "X ", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Titanium).toString() }); - GT_ModHandler.addRollingMachineRecipe(ItemList.RC_Rebar.get(16L, new Object[0]), new Object[] { " X", " X ", "X ", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Tungsten).toString() }); - GT_ModHandler.addRollingMachineRecipe(ItemList.RC_Rebar.get(48L, new Object[0]), new Object[] { " X", " X ", "X ", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.TungstenSteel).toString() }); - - GT_ModHandler.addRollingMachineRecipe(GT_ModHandler.getModItem("Railcraft", "post.metal.light.blue", 8L), new Object[] { "XXX", " X ", "XXX", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Aluminium).toString() }); - GT_ModHandler.addRollingMachineRecipe(GT_ModHandler.getModItem("Railcraft", "post.metal.purple", 64L), new Object[] { "XXX", " X ", "XXX", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Titanium).toString() }); - GT_ModHandler.addRollingMachineRecipe(GT_ModHandler.getModItem("Railcraft", "post.metal.black", 64L), new Object[] { "XXX", " X ", "XXX", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Tungsten).toString() }); - - GT_ModHandler.addRollingMachineRecipe(GT_ModHandler.getModItem("Railcraft", "post.metal.light.blue", 8L), new Object[] { "X X", "XXX", "X X", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Aluminium).toString() }); - GT_ModHandler.addRollingMachineRecipe(GT_ModHandler.getModItem("Railcraft", "post.metal.purple", 64L), new Object[] { "X X", "XXX", "X X", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Titanium).toString() }); - GT_ModHandler.addRollingMachineRecipe(GT_ModHandler.getModItem("Railcraft", "post.metal.black", 64L), new Object[] { "X X", "XXX", "X X", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Tungsten).toString() }); - - GT_Log.out.println("GT_Mod: Replacing Railcraft Recipes with slightly more OreDicted Variants"); - - long tBitMask = GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES_IF_SAME_NBT | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_NATIVE_RECIPES | GT_ModHandler.RecipeBits.ONLY_ADD_IF_THERE_IS_ANOTHER_RECIPE_FOR_IT; - char tHammer = ' ';char tFile = ' ';char tWrench = ' '; - OrePrefixes tIngot = OrePrefixes.ingot; - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "railcraft_stuff_use_tools", true)) - { - tHammer = 'h';tFile = 'f';tWrench = 'w'; - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "railcraft_stuff_use_plates", true)) { - tIngot = OrePrefixes.plate; - } - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "part.gear", 2L, 3), tBitMask | GT_ModHandler.RecipeBits.MIRRORED, new Object[] { tHammer + "" + tFile, "XX", "XX", Character.valueOf('X'), tIngot.get(Materials.Tin) }); - - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "part.gear", 1L, 0), tBitMask, new Object[] { tHammer + "X ", "XGX", " X" + tFile, Character.valueOf('X'), OrePrefixes.nugget.get(Materials.Gold), Character.valueOf('G'), GT_ModHandler.getModItem("Railcraft", "part.gear", 1L, 3) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "part.gear", 1L, 1), tBitMask, new Object[] { tHammer + "X ", "XGX", " X" + tFile, Character.valueOf('X'), tIngot.get(Materials.AnyIron), Character.valueOf('G'), GT_ModHandler.getModItem("Railcraft", "part.gear", 1L, 3) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "part.gear", 1L, 2), tBitMask, new Object[] { tHammer + "X ", "XGX", " X" + tFile, Character.valueOf('X'), tIngot.get(Materials.Steel), Character.valueOf('G'), GT_ModHandler.getModItem("Railcraft", "part.gear", 1L, 3) }); - - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 8L, 0), tBitMask, new Object[] { tWrench + "PP", tHammer + "PP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyIron) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 8L, 1), tBitMask, new Object[] { "GPG", "PGP", "GPG", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('G'), new ItemStack(Blocks.glass_pane, 1, 32767) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 8L, 2), tBitMask, new Object[] { "BPB", "PLP", "BPB", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('B'), new ItemStack(Blocks.iron_bars, 1, 32767), Character.valueOf('L'), new ItemStack(Blocks.lever, 1, 32767) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 3), tBitMask, new Object[] { tWrench + "P", tHammer + "P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyIron) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 4), tBitMask, new Object[] { tWrench + "P", tHammer + "P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 5), tBitMask, new Object[] { "BBB", "BFB", "BOB", Character.valueOf('B'), OrePrefixes.ingot.get(Materials.Brick), Character.valueOf('F'), new ItemStack(Items.fire_charge, 1, 32767), Character.valueOf('O'), OreDictNames.craftingFurnace }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 6), tBitMask, new Object[] { "PUP", "BFB", "POP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('B'), new ItemStack(Blocks.iron_bars, 1, 32767), Character.valueOf('F'), new ItemStack(Items.fire_charge, 1, 32767), Character.valueOf('U'), OrePrefixes.bucket.get(Materials.Empty), Character.valueOf('O'), OreDictNames.craftingFurnace }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 7), tBitMask | GT_ModHandler.RecipeBits.MIRRORED, new Object[] { "PPP", tHammer + "G" + tWrench, "OTO", Character.valueOf('P'), OrePrefixes.nugget.get(Materials.Gold), Character.valueOf('O'), GT_ModHandler.getModItem("Railcraft", "part.gear", 1L, 0), Character.valueOf('G'), new ItemStack(Blocks.glass, 1, 32767), Character.valueOf('T'), OreDictNames.craftingPiston }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 8), tBitMask | GT_ModHandler.RecipeBits.MIRRORED, new Object[] { "PPP", tHammer + "G" + tWrench, "OTO", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('O'), GT_ModHandler.getModItem("Railcraft", "part.gear", 1L, 1), Character.valueOf('G'), new ItemStack(Blocks.glass, 1, 32767), Character.valueOf('T'), OreDictNames.craftingPiston }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 9), tBitMask | GT_ModHandler.RecipeBits.MIRRORED, new Object[] { "PPP", tHammer + "G" + tWrench, "OTO", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('O'), GT_ModHandler.getModItem("Railcraft", "part.gear", 1L, 2), Character.valueOf('G'), new ItemStack(Blocks.glass, 1, 32767), Character.valueOf('T'), OreDictNames.craftingPiston }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 10), tBitMask, new Object[] { " E ", " O ", "OIO", Character.valueOf('I'), tIngot.get(Materials.Gold), Character.valueOf('E'), OrePrefixes.gem.get(Materials.EnderPearl), Character.valueOf('O'), OrePrefixes.stone.get(Materials.Obsidian) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 11), tBitMask, new Object[] { "OOO", "OEO", "OOO", Character.valueOf('E'), OrePrefixes.gem.get(Materials.EnderPearl), Character.valueOf('O'), OrePrefixes.stone.get(Materials.Obsidian) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 12), tBitMask, new Object[] { "GPG", "PAP", "GPG", Character.valueOf('P'), OreDictNames.craftingPiston, Character.valueOf('A'), OreDictNames.craftingAnvil, Character.valueOf('G'), GT_ModHandler.getModItem("Railcraft", "part.gear", 1L, 2) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 8L, 13), tBitMask, new Object[] { tWrench + "PP", tHammer + "PP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 8L, 14), tBitMask, new Object[] { "GPG", "PGP", "GPG", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('G'), new ItemStack(Blocks.glass_pane, 1, 32767) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 8L, 15), tBitMask, new Object[] { "BPB", "PLP", "BPB", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('B'), new ItemStack(Blocks.iron_bars, 1, 32767), Character.valueOf('L'), new ItemStack(Blocks.lever, 1, 32767) }); - - GT_ModHandler.addCraftingRecipe(ItemList.RC_ShuntingWireFrame.get(6L, new Object[0]), tBitMask, new Object[] { "PPP", "R" + tWrench + "R", "RRR", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('R'), ItemList.RC_Rebar.get(1L, new Object[0]) }); - - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 1L, 0), tBitMask, new Object[] { "IOI", "GEG", "IOI", Character.valueOf('I'), tIngot.get(Materials.Gold), Character.valueOf('G'), OrePrefixes.gem.get(Materials.Diamond), Character.valueOf('E'), OrePrefixes.gem.get(Materials.EnderPearl), Character.valueOf('O'), OrePrefixes.stone.get(Materials.Obsidian) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 3L, 1), tBitMask, new Object[] { "BPB", "P" + tWrench + "P", "BPB", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('B'), OrePrefixes.block.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 1L, 2), tBitMask, new Object[] { "IOI", "GEG", "IOI", Character.valueOf('I'), tIngot.get(Materials.Gold), Character.valueOf('G'), OrePrefixes.gem.get(Materials.Emerald), Character.valueOf('E'), OrePrefixes.gem.get(Materials.EnderPearl), Character.valueOf('O'), OrePrefixes.stone.get(Materials.Obsidian) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 4L, 3), tBitMask, new Object[] { "PPP", "PFP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('F'), OreDictNames.craftingFurnace }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 1L, 5), tBitMask, new Object[] { " N ", "RCR", Character.valueOf('R'), OrePrefixes.dust.get(Materials.Redstone), Character.valueOf('N'), OrePrefixes.stone.get(Materials.Netherrack), Character.valueOf('C'), new ItemStack(Items.cauldron, 1, 0) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 1L, 6), tBitMask, new Object[] { "SGS", "EDE", "SGS", Character.valueOf('E'), OrePrefixes.gem.get(Materials.Emerald), Character.valueOf('S'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('G'), new ItemStack(Blocks.glass_pane, 1, 32767), Character.valueOf('D'), new ItemStack(Blocks.dispenser, 1, 32767) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 1L, 8), tBitMask, new Object[] { "IPI", "PCP", "IPI", Character.valueOf('P'), OreDictNames.craftingPiston, Character.valueOf('I'), tIngot.get(Materials.AnyIron), Character.valueOf('C'), new ItemStack(Blocks.crafting_table, 1, 32767) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 1L, 9), tBitMask, new Object[] { " I ", " T ", " D ", Character.valueOf('I'), new ItemStack(Blocks.iron_bars, 1, 32767), Character.valueOf('T'), GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 4), Character.valueOf('D'), new ItemStack(Blocks.dispenser, 1, 32767) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 1L, 10), tBitMask, new Object[] { " I ", "RTR", " D ", Character.valueOf('I'), new ItemStack(Blocks.iron_bars, 1, 32767), Character.valueOf('T'), GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 4), Character.valueOf('D'), new ItemStack(Blocks.dispenser, 1, 32767), Character.valueOf('R'), OrePrefixes.dust.get(Materials.Redstone) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 1L, 10), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "RTR", Character.valueOf('T'), GT_ModHandler.getModItem("Railcraft", "machine.alpha", 1L, 9), Character.valueOf('R'), OrePrefixes.dust.get(Materials.Redstone) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 1L, 11), tBitMask, new Object[] { "PCP", "CSC", "PCP", Character.valueOf('P'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('S'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('C'), new ItemStack(Items.golden_carrot, 1, 0) }); - if(GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "DisableRCBlastFurnace", false)){ - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 4L,12)); - } - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 1L, 13), tBitMask, new Object[] { "TSB", "SCS", "PSP", Character.valueOf('P'), OreDictNames.craftingPiston, Character.valueOf('S'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('B'), OreDictNames.craftingBook, Character.valueOf('C'), new ItemStack(Blocks.crafting_table, 1, 32767), Character.valueOf('T'), new ItemStack(Items.diamond_pickaxe, 1, 0) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 6L, 14), tBitMask, new Object[] { "PPP", "ISI", "PPP", Character.valueOf('P'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('I'), tIngot.get(Materials.AnyIron), Character.valueOf('S'), "slimeball" }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 4L, 15), tBitMask, new Object[] { "PDP", "DBD", "PDP", Character.valueOf('P'), OreDictNames.craftingPiston, Character.valueOf('B'), OrePrefixes.block.get(Materials.Steel), Character.valueOf('D'), OrePrefixes.gem.get(Materials.Diamond) }); - - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.epsilon", 1L, 0), tBitMask, new Object[] { "PWP", "WWW", "PWP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('W'), OrePrefixes.wireGt02.get(Materials.Copper) }); - - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "tool.crowbar", 1L, 0), tBitMask, new Object[] { tHammer + "DS", "DSD", "SD" + tFile, Character.valueOf('S'), OrePrefixes.ingot.get(Materials.Iron), Character.valueOf('D'), Dyes.dyeRed }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "tool.crowbar.reinforced", 1L, 0), tBitMask, new Object[] { tHammer + "DS", "DSD", "SD" + tFile, Character.valueOf('S'), OrePrefixes.ingot.get(Materials.Steel), Character.valueOf('D'), Dyes.dyeRed }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "tool.whistle.tuner", 1L, 0), tBitMask | GT_ModHandler.RecipeBits.MIRRORED, new Object[] { "S" + tHammer + "S", "SSS", " S" + tFile, Character.valueOf('S'), OrePrefixes.nugget.get(Materials.Iron) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "part.turbine.blade", 1L, 0), tBitMask, new Object[] { "S" + tFile, "S ", "S" + tHammer, Character.valueOf('S'), tIngot.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "part.turbine.disk", 1L, 0), tBitMask, new Object[] { "SSS", "SBS", "SSS", Character.valueOf('B'), OrePrefixes.block.get(Materials.Steel), Character.valueOf('S'), GT_ModHandler.getModItem("Railcraft", "part.turbine.blade", 1L, 0) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "part.turbine.rotor", 1L, 0), tBitMask, new Object[] { "SSS", " " + tWrench + " ", Character.valueOf('S'), GT_ModHandler.getModItem("Railcraft", "part.turbine.disk", 1L, 0) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "borehead.iron", 1L, 0), tBitMask, new Object[] { "SSS", "SBS", "SSS", Character.valueOf('B'), OrePrefixes.block.get(Materials.Iron), Character.valueOf('S'), tIngot.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "borehead.steel", 1L, 0), tBitMask, new Object[] { "SSS", "SBS", "SSS", Character.valueOf('B'), OrePrefixes.block.get(Materials.Steel), Character.valueOf('S'), tIngot.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "borehead.diamond", 1L, 0), tBitMask, new Object[] { "SSS", "SBS", "SSS", Character.valueOf('B'), OrePrefixes.block.get(Materials.Diamond), Character.valueOf('S'), tIngot.get(Materials.Steel) }); - - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "cart.loco.steam.solid", 1L, 0), tBitMask, new Object[] { "TTF", "TTF", "BCC", Character.valueOf('C'), new ItemStack(Items.minecart, 1), Character.valueOf('T'), GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 4), Character.valueOf('F'), GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 5), Character.valueOf('B'), new ItemStack(Blocks.iron_bars, 1, 32767) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "cart.loco.electric", 1L, 0), tBitMask, new Object[] { "LP" + tWrench, "PEP", "GCG", Character.valueOf('C'), new ItemStack(Items.minecart, 1), Character.valueOf('E'), GT_ModHandler.getModItem("Railcraft", "machine.epsilon", 1L, 0), Character.valueOf('G'), GT_ModHandler.getModItem("Railcraft", "part.gear", 1L, 2), Character.valueOf('L'), new ItemStack(Blocks.redstone_lamp, 1, 32767), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "cart.bore", 1L, 0), tBitMask, new Object[] { "BCB", "FCF", tHammer + "A" + tWrench, Character.valueOf('C'), new ItemStack(Items.minecart, 1), Character.valueOf('A'), new ItemStack(Items.chest_minecart, 1), Character.valueOf('F'), OreDictNames.craftingFurnace, Character.valueOf('B'), OrePrefixes.block.get(Materials.Steel) }); - - GT_Log.out.println("GT_Mod: Beginning to add regular Crafting Recipes."); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("scaffold", 4L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "WWW", " S ", "S S", Character.valueOf('W'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood) }); - - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Superconductor, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "NPT", "CCC", "HPT", Character.valueOf('H'), OrePrefixes.cell.get(Materials.Helium), Character.valueOf('N'), OrePrefixes.cell.get(Materials.Nitrogen), Character.valueOf('T'), OrePrefixes.pipeTiny.get(Materials.TungstenSteel), Character.valueOf('P'), ItemList.Electric_Pump_LV, Character.valueOf('C'), OrePrefixes.wireGt01.get(Materials.NiobiumTitanium) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Superconductor, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "NPT", "CCC", "HPT", Character.valueOf('H'), OrePrefixes.cell.get(Materials.Helium), Character.valueOf('N'), OrePrefixes.cell.get(Materials.Nitrogen), Character.valueOf('T'), OrePrefixes.pipeTiny.get(Materials.TungstenSteel), Character.valueOf('P'), ItemList.Electric_Pump_LV, Character.valueOf('C'), OrePrefixes.wireGt01.get(Materials.VanadiumGallium) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Superconductor, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "NPT", "CCC", "NPT", Character.valueOf('N'), OrePrefixes.cell.get(Materials.Nitrogen), Character.valueOf('T'), OrePrefixes.pipeTiny.get(Materials.TungstenSteel), Character.valueOf('P'), ItemList.Electric_Pump_LV, Character.valueOf('C'), OrePrefixes.wireGt01.get(Materials.YttriumBariumCuprate) }); - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Superconductor, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "NPT", "CCC", "NPT", Character.valueOf('N'), OrePrefixes.cell.get(Materials.Nitrogen), Character.valueOf('T'), OrePrefixes.pipeTiny.get(Materials.TungstenSteel), Character.valueOf('P'), ItemList.Electric_Pump_LV, Character.valueOf('C'), OrePrefixes.wireGt01.get(Materials.Naquadah) }); - - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.IronMagnetic, 1L), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.stick.get(Materials.AnyIron), OrePrefixes.dust.get(Materials.Redstone), OrePrefixes.dust.get(Materials.Redstone), OrePrefixes.dust.get(Materials.Redstone), OrePrefixes.dust.get(Materials.Redstone) }); - - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Item_Casing_Gold.get(1L, new Object[0]), new Object[] { "h P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Gold) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Item_Casing_Iron.get(1L, new Object[0]), new Object[] { "h P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyIron) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Item_Casing_Bronze.get(1L, new Object[0]), new Object[] { "h P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Item_Casing_Copper.get(1L, new Object[0]), new Object[] { "h P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyCopper) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Item_Casing_Tin.get(1L, new Object[0]), new Object[] { "h P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Item_Casing_Lead.get(1L, new Object[0]), new Object[] { "h P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Lead) }); - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Item_Casing_Steel.get(1L, new Object[0]), new Object[] { "h P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel) }); - - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.torch, 2), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "C", "S", Character.valueOf('C'), OrePrefixes.dust.get(Materials.Sulfur), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.torch, 6), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "C", "S", Character.valueOf('C'), OrePrefixes.dust.get(Materials.Phosphorus), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood) }); - - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.piston, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "WWW", "CBC", "CRC", Character.valueOf('W'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('C'), OrePrefixes.stoneCobble, Character.valueOf('R'), OrePrefixes.dust.get(Materials.Redstone), Character.valueOf('B'), OrePrefixes.ingot.get(Materials.AnyIron) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.piston, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "WWW", "CBC", "CRC", Character.valueOf('W'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('C'), OrePrefixes.stoneCobble, Character.valueOf('R'), OrePrefixes.dust.get(Materials.Redstone), Character.valueOf('B'), OrePrefixes.ingot.get(Materials.AnyBronze) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.piston, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "WWW", "CBC", "CRC", Character.valueOf('W'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('C'), OrePrefixes.stoneCobble, Character.valueOf('R'), OrePrefixes.dust.get(Materials.Redstone), Character.valueOf('B'), OrePrefixes.ingot.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.piston, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "WWW", "CBC", "CRC", Character.valueOf('W'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('C'), OrePrefixes.stoneCobble, Character.valueOf('R'), OrePrefixes.dust.get(Materials.Redstone), Character.valueOf('B'), OrePrefixes.ingot.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.piston, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "WWW", "CBC", "CRC", Character.valueOf('W'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('C'), OrePrefixes.stoneCobble, Character.valueOf('R'), OrePrefixes.dust.get(Materials.Redstone), Character.valueOf('B'), OrePrefixes.ingot.get(Materials.Titanium) }); - - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("reactorVent", 1L,1), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "AIA", "I I", "AIA", Character.valueOf('I'), new ItemStack(Blocks.iron_bars, 1), Character.valueOf('A'), OrePrefixes.plate.get(Materials.Aluminium) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_ModHandler.getIC2Item("reactorPlatingExplosive", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { GT_ModHandler.getIC2Item("reactorPlating", 1L), OrePrefixes.plate.get(Materials.Lead) }); - if (!Materials.Steel.mBlastFurnaceRequired) { - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Coal), OrePrefixes.dust.get(Materials.Coal) }); - } - if (GT_Mod.gregtechproxy.mNerfDustCrafting) - { - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Electrum, 6L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Silver), OrePrefixes.dust.get(Materials.Gold) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Brass, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.Zinc) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Brass, 9L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Zinc) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bronze, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.Tin) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Bronze, 9L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tin) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Invar, 9L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Nickel) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Cupronickel, 6L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.AnyCopper) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Nichrome, 15L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.Chrome) }); - } - else - { - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Electrum, 2L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Silver), OrePrefixes.dust.get(Materials.Gold) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Brass, 4L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.Zinc) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Brass, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Zinc) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bronze, 4L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.Tin) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bronze, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tin) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Invar, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Nickel) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cupronickel, 2L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.AnyCopper) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Nichrome, 5L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.Chrome) }); - } - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RoseGold, 5L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Gold), OrePrefixes.dust.get(Materials.Gold), OrePrefixes.dust.get(Materials.Gold), OrePrefixes.dust.get(Materials.Gold), OrePrefixes.dust.get(Materials.AnyCopper) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SterlingSilver, 5L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Silver), OrePrefixes.dust.get(Materials.Silver), OrePrefixes.dust.get(Materials.Silver), OrePrefixes.dust.get(Materials.Silver), OrePrefixes.dust.get(Materials.AnyCopper) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BlackBronze, 5L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Gold), OrePrefixes.dust.get(Materials.Silver), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BismuthBronze, 5L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Bismuth), OrePrefixes.dust.get(Materials.Zinc), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BlackSteel, 5L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.BlackBronze), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Steel) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RedSteel, 8L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.SterlingSilver), OrePrefixes.dust.get(Materials.BismuthBronze), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BlueSteel, 8L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.RoseGold), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel) }); - - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ultimet, 9L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Chrome), OrePrefixes.dust.get(Materials.Chrome), OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.Molybdenum) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CobaltBrass, 9L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Aluminium), OrePrefixes.dust.get(Materials.Cobalt) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.StainlessSteel, 9L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.Manganese), OrePrefixes.dust.get(Materials.Chrome) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.YttriumBariumCuprate, 6L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Yttrium), OrePrefixes.dust.get(Materials.Barium), OrePrefixes.dust.get(Materials.Barium), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Kanthal, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Aluminium), OrePrefixes.dust.get(Materials.Chrome) }); - - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ultimet, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dustTiny.get(Materials.Cobalt), OrePrefixes.dustTiny.get(Materials.Cobalt), OrePrefixes.dustTiny.get(Materials.Cobalt), OrePrefixes.dustTiny.get(Materials.Cobalt), OrePrefixes.dustTiny.get(Materials.Cobalt), OrePrefixes.dustTiny.get(Materials.Chrome), OrePrefixes.dustTiny.get(Materials.Chrome), OrePrefixes.dustTiny.get(Materials.Nickel), OrePrefixes.dustTiny.get(Materials.Molybdenum) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CobaltBrass, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dustTiny.get(Materials.Brass), OrePrefixes.dustTiny.get(Materials.Brass), OrePrefixes.dustTiny.get(Materials.Brass), OrePrefixes.dustTiny.get(Materials.Brass), OrePrefixes.dustTiny.get(Materials.Brass), OrePrefixes.dustTiny.get(Materials.Brass), OrePrefixes.dustTiny.get(Materials.Brass), OrePrefixes.dustTiny.get(Materials.Aluminium), OrePrefixes.dustTiny.get(Materials.Cobalt) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.StainlessSteel, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dustTiny.get(Materials.Iron), OrePrefixes.dustTiny.get(Materials.Iron), OrePrefixes.dustTiny.get(Materials.Iron), OrePrefixes.dustTiny.get(Materials.Iron), OrePrefixes.dustTiny.get(Materials.Iron), OrePrefixes.dustTiny.get(Materials.Iron), OrePrefixes.dustTiny.get(Materials.Nickel), OrePrefixes.dustTiny.get(Materials.Manganese), OrePrefixes.dustTiny.get(Materials.Chrome) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.YttriumBariumCuprate, 6L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dustTiny.get(Materials.Yttrium), OrePrefixes.dustTiny.get(Materials.Barium), OrePrefixes.dustTiny.get(Materials.Barium), OrePrefixes.dustTiny.get(Materials.AnyCopper), OrePrefixes.dustTiny.get(Materials.AnyCopper), OrePrefixes.dustTiny.get(Materials.AnyCopper) }); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Kanthal, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dustTiny.get(Materials.Iron), OrePrefixes.dustTiny.get(Materials.Aluminium), OrePrefixes.dustTiny.get(Materials.Chrome) }); - - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.IronWood, 2L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.LiveRoot), OrePrefixes.dustTiny.get(Materials.Gold) }); - - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Items.gunpowder, 3), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Coal), OrePrefixes.dust.get(Materials.Sulfur), OrePrefixes.dust.get(Materials.Saltpeter), OrePrefixes.dust.get(Materials.Saltpeter) }); - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Items.gunpowder, 2), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Charcoal), OrePrefixes.dust.get(Materials.Sulfur), OrePrefixes.dust.get(Materials.Saltpeter), OrePrefixes.dust.get(Materials.Saltpeter) }); - - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 5L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { OrePrefixes.dust.get(Materials.Potassium), OrePrefixes.cell.get(Materials.Nitrogen), OrePrefixes.cell.get(Materials.Oxygen), OrePrefixes.cell.get(Materials.Oxygen), OrePrefixes.cell.get(Materials.Oxygen) }); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("carbonFiber", 1L)); - - if(GT_Mod.gregtechproxy.mDisableIC2Cables){ - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("copperCableItem", 1L)); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("insulatedCopperCableItem", 1L)); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("goldCableItem", 1L)); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("insulatedGoldCableItem", 1L)); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("insulatedIronCableItem", 1L)); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("glassFiberCableItem", 1L)); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("tinCableItem", 1L)); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("ironCableItem", 1L)); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("insulatedTinCableItem", 1L)); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("detectorCableItem", 1L)); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("splitterCableItem", 1L)); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("electrolyzer", 1L)); + implements Runnable { + public void run() { + GT_Log.out.println("GT_Mod: Adding nerfed Vanilla Recipes."); + GT_ModHandler.addCraftingRecipe(new ItemStack(Items.bucket, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, new Object[]{"XhX", " X ", Character.valueOf('X'), OrePrefixes.plate.get(Materials.AnyIron)}); + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.recipereplacements, "Iron.Bucket", true)) { + GT_ModHandler.addCraftingRecipe(new ItemStack(Items.bucket, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"X X", " X ", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.AnyIron)}); + } + ItemStack tMat = new ItemStack(Items.iron_ingot); + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.recipereplacements, "Iron.PressurePlate", true)) { + ItemStack tStack; + if (null != (tStack = GT_ModHandler.removeRecipe(new ItemStack[]{tMat, tMat, null, null, null, null, null, null, null}))) { + GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, new Object[]{"XXh", Character.valueOf('X'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('I'), OrePrefixes.ingot.get(Materials.AnyIron)}); + } + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.recipereplacements, "Iron.Door", true)) { + ItemStack tStack; + if (null != (tStack = GT_ModHandler.removeRecipe(new ItemStack[]{tMat, tMat, null, tMat, tMat, null, tMat, tMat, null}))) { + GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, new Object[]{"XX ", "XXh", "XX ", Character.valueOf('X'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('I'), OrePrefixes.ingot.get(Materials.AnyIron)}); + } + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.recipereplacements, "Iron.Cauldron", true)) { + ItemStack tStack; + if (null != (tStack = GT_ModHandler.removeRecipe(new ItemStack[]{tMat, null, tMat, tMat, null, tMat, tMat, tMat, tMat}))) { + GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, new Object[]{"X X", "XhX", "XXX", Character.valueOf('X'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('I'), OrePrefixes.ingot.get(Materials.AnyIron)}); + } + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.recipereplacements, "Iron.Hopper", true)) { + ItemStack tStack; + if (null != (tStack = GT_ModHandler.removeRecipe(new ItemStack[]{tMat, null, tMat, tMat, new ItemStack(Blocks.chest, 1, 0), tMat, null, tMat, null}))) { + GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, new Object[]{"XwX", "XCX", " X ", Character.valueOf('X'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('I'), OrePrefixes.ingot.get(Materials.AnyIron), Character.valueOf('C'), "craftingChest"}); + } + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.recipereplacements, "Iron.Bars", true)) { + ItemStack tStack; + if (null != (tStack = GT_ModHandler.removeRecipe(new ItemStack[]{tMat, tMat, tMat, tMat, tMat, tMat, null, null, null}))) { + tStack.stackSize /= 2; + GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, new Object[]{" w ", "XXX", "XXX", Character.valueOf('X'), OrePrefixes.stick.get(Materials.AnyIron), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('I'), OrePrefixes.ingot.get(Materials.AnyIron)}); + } + } + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("ironFence", 6L), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"XXX", "XXX", " w ", Character.valueOf('X'), OrePrefixes.stick.get(Materials.AnyIron), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('I'), OrePrefixes.ingot.get(Materials.AnyIron)}); - if(Loader.isModLoaded("NotEnoughItems")){ - codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("copperCableItem", 1L)); - codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("insulatedCopperCableItem", 1L)); - codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("goldCableItem", 1L)); - codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("insulatedGoldCableItem", 1L)); - codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("insulatedIronCableItem", 1L)); - codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("glassFiberCableItem", 1L)); - codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("tinCableItem", 1L)); - codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("ironCableItem", 1L)); - codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("insulatedTinCableItem", 1L)); - codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("detectorCableItem", 1L)); - codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("splitterCableItem", 1L)); - codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("electrolyzer", 1L)); - } - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("batBox", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("batBox", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "PCP","BBB","PPP", 'C', OrePrefixes.cableGt01.get(Materials.Tin), 'P', OrePrefixes.plank.get(Materials.Wood), 'B', OrePrefixes.battery.get(Materials.Basic)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("mfeUnit", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("mfeUnit", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "CEC","EME","CEC", 'C', OrePrefixes.cableGt01.get(Materials.Gold), 'E', OrePrefixes.battery.get(Materials.Elite), 'M', GT_ModHandler.getIC2Item("machine", 1L)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("lvTransformer", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("lvTransformer", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "PCP","POP","PCP", 'C', OrePrefixes.cableGt01.get(Materials.Tin),'O', GT_ModHandler.getIC2Item("coil", 1L), 'P', OrePrefixes.plank.get(Materials.Wood)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("mvTransformer", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("mvTransformer", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "CMC", 'C', OrePrefixes.cableGt01.get(Materials.Copper),'M', GT_ModHandler.getIC2Item("machine", 1L)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("hvTransformer", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("hvTransformer", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {" C ","IMB"," C ",'C', OrePrefixes.cableGt01.get(Materials.Gold),'M', GT_ModHandler.getIC2Item("mvTransformer", 1L),'I', OrePrefixes.circuit.get(Materials.Basic),'B', OrePrefixes.battery.get(Materials.Advanced)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("evTransformer", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("evTransformer", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {" C ","IMB"," C ",'C', OrePrefixes.cableGt01.get(Materials.Aluminium),'M', GT_ModHandler.getIC2Item("hvTransformer", 1L),'I', OrePrefixes.circuit.get(Materials.Advanced),'B', OrePrefixes.battery.get(Materials.Master)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("cesuUnit", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("cesuUnit", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {"PCP","BBB","PPP",'C', OrePrefixes.cableGt01.get(Materials.Copper),'P', OrePrefixes.plate.get(Materials.Bronze),'B', OrePrefixes.battery.get(Materials.Advanced)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("luminator", 1L)); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("teleporter", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("teleporter", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {"GFG","CMC","GDG",'C', OrePrefixes.cableGt01.get(Materials.Platinum),'G', OrePrefixes.circuit.get(Materials.Advanced),'D', OrePrefixes.gem.get(Materials.Diamond), 'M', GT_ModHandler.getIC2Item("machine", 1L), 'F', GT_ModHandler.getIC2Item("frequencyTransmitter", 1L)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("energyOMat", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("energyOMat", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {"RBR","CMC",'C', OrePrefixes.cableGt01.get(Materials.Copper),'R', OrePrefixes.dust.get(Materials.Redstone),'B', OrePrefixes.battery.get(Materials.Basic), 'M', GT_ModHandler.getIC2Item("machine", 1L)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("advBattery", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("advBattery", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {"CTC","TST","TLT",'C', OrePrefixes.cableGt01.get(Materials.Copper),'S', OrePrefixes.dust.get(Materials.Sulfur),'L', OrePrefixes.dust.get(Materials.Lead), 'T', GT_ModHandler.getIC2Item("casingbronze", 1L)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("boatElectric", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("boatElectric", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {"CCC","XWX","XXX",'C', OrePrefixes.cableGt01.get(Materials.Copper),'X', OrePrefixes.plate.get(Materials.Iron), 'W', GT_ModHandler.getIC2Item("waterMill", 1L)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("cropnalyzer", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("cropnalyzer", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {"CC ","RGR","RIR",'C', OrePrefixes.cableGt01.get(Materials.Copper),'R', OrePrefixes.dust.get(Materials.Redstone),'G', OrePrefixes.block.get(Materials.Glass), 'I', OrePrefixes.circuit.get(Materials.Basic)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("coil", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("coil", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {"CCC","CXC","CCC",'C', OrePrefixes.wireGt01.get(Materials.Copper),'X', OrePrefixes.ingot.get(Materials.AnyIron)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("powerunit", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("powerunit", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {"BCA","BIM","BCA",'C', OrePrefixes.cableGt01.get(Materials.Copper),'B', OrePrefixes.battery.get(Materials.Basic),'A', GT_ModHandler.getIC2Item("casingiron", 1L), 'I', OrePrefixes.circuit.get(Materials.Basic),'M', GT_ModHandler.getIC2Item("elemotor", 1L)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("powerunitsmall", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("powerunitsmall", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {" CA","BIM"," CA",'C', OrePrefixes.cableGt01.get(Materials.Copper),'B', OrePrefixes.battery.get(Materials.Basic),'A', GT_ModHandler.getIC2Item("casingiron", 1L), 'I', OrePrefixes.circuit.get(Materials.Basic),'M', GT_ModHandler.getIC2Item("elemotor", 1L)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("remote", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("remote", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {" C ","TLT"," F ",'C', OrePrefixes.cableGt01.get(Materials.Copper),'L', OrePrefixes.dust.get(Materials.Lapis),'T', GT_ModHandler.getIC2Item("casingtin", 1L),'F', GT_ModHandler.getIC2Item("frequencyTransmitter", 1L)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("odScanner", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("odScanner", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {"PGP","CBC","WWW",'W', OrePrefixes.cableGt01.get(Materials.Copper),'G', OrePrefixes.dust.get(Materials.Glowstone),'B', OrePrefixes.battery.get(Materials.Advanced),'C', OrePrefixes.circuit.get(Materials.Advanced),'P', GT_ModHandler.getIC2Item("casinggold", 1L)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("ovScanner", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("ovScanner", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {"PDP","GCG","WSW",'W', OrePrefixes.cableGt01.get(Materials.Gold),'G', OrePrefixes.dust.get(Materials.Glowstone),'D', OrePrefixes.battery.get(Materials.Elite),'C', OrePrefixes.circuit.get(Materials.Advanced),'P', GT_ModHandler.getIC2Item("casinggold", 1L),'S', GT_ModHandler.getIC2Item("odScanner", 1L)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("solarHelmet", 1L)); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("staticBoots", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("staticBoots", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {"I I","IWI","CCC",'C', OrePrefixes.cableGt01.get(Materials.Copper),'I', OrePrefixes.ingot.get(Materials.Iron),'W', new ItemStack(Blocks.wool)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("ecMeter", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("ecMeter", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {" G ","CIC","C C",'C', OrePrefixes.cableGt01.get(Materials.Copper),'G', OrePrefixes.dust.get(Materials.Glowstone),'I', OrePrefixes.circuit.get(Materials.Basic)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("obscurator", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("obscurator", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {"RER","CAC","RRR",'C', OrePrefixes.cableGt01.get(Materials.Gold),'R', OrePrefixes.dust.get(Materials.Redstone),'E', OrePrefixes.battery.get(Materials.Advanced), 'A', OrePrefixes.circuit.get(Materials.Advanced)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("overclockerUpgrade", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("overclockerUpgrade", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {"CCC","WEW",'W', OrePrefixes.cableGt01.get(Materials.Copper),'C', GT_ModHandler.getIC2Item("reactorCoolantSimple", 1L, 1), 'E', OrePrefixes.circuit.get(Materials.Basic)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("transformerUpgrade", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("transformerUpgrade", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {"GGG","WTW","GEG",'W', OrePrefixes.cableGt01.get(Materials.Gold),'T', GT_ModHandler.getIC2Item("mvTransformer", 1L),'E', OrePrefixes.circuit.get(Materials.Basic),'G', OrePrefixes.block.get(Materials.Glass)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("energyStorageUpgrade", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("energyStorageUpgrade", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {"PPP","WBW","PEP",'W', OrePrefixes.cableGt01.get(Materials.Copper),'E', OrePrefixes.circuit.get(Materials.Basic),'P', OrePrefixes.plank.get(Materials.Wood),'B', OrePrefixes.battery.get(Materials.Basic)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("ejectorUpgrade", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("ejectorUpgrade", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {"PHP","WEW",'W', OrePrefixes.cableGt01.get(Materials.Copper),'E', OrePrefixes.circuit.get(Materials.Basic),'P', new ItemStack(Blocks.piston),'H', new ItemStack(Blocks.hopper)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("suBattery", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("suBattery", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {"W","C","R",'W', OrePrefixes.cableGt01.get(Materials.Copper),'C', OrePrefixes.dust.get(Materials.HydratedCoal),'R', OrePrefixes.dust.get(Materials.Redstone)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("frequencyTransmitter", 1L)); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("pullingUpgrade", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("pullingUpgrade", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] {"PHP","WEW",'W', OrePrefixes.cableGt01.get(Materials.Copper),'P', new ItemStack(Blocks.sticky_piston),'R', new ItemStack(Blocks.hopper),'E',OrePrefixes.circuit.get(Materials.Basic)}); - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("cutter", 1L)); - codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("cutter", 1L)); - }else{GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("glassFiberCableItem", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "GGG", "EDE", "GGG", Character.valueOf('G'), new ItemStack(Blocks.glass, 1, 32767), Character.valueOf('D'), OrePrefixes.dust.get(Materials.Silver), Character.valueOf('E'), ItemList.IC2_Energium_Dust.get(1L, new Object[0]) });} - - GT_ModHandler.removeRecipeByOutput(ItemList.IC2_Energium_Dust.get(1L, new Object[0])); - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.gregtechrecipes, "energycrystalruby", true)) { - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Energium_Dust.get(9L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "RDR", "DRD", "RDR", Character.valueOf('R'), OrePrefixes.dust.get(Materials.Redstone), Character.valueOf('D'), OrePrefixes.dust.get(Materials.Ruby) }); - } else { - GT_ModHandler.addCraftingRecipe(ItemList.IC2_Energium_Dust.get(9L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "RDR", "DRD", "RDR", Character.valueOf('R'), OrePrefixes.dust.get(Materials.Redstone), Character.valueOf('D'), OrePrefixes.dust.get(Materials.Diamond) }); + tMat = new ItemStack(Items.gold_ingot); + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.recipereplacements, "Gold.PressurePlate", true)) { + ItemStack tStack; + if (null != (tStack = GT_ModHandler.removeRecipe(new ItemStack[]{tMat, tMat, null, null, null, null, null, null, null}))) { + GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, new Object[]{"XXh", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Gold), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('I'), OrePrefixes.ingot.get(Materials.Gold)}); + } + } + tMat = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 1L); + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.recipereplacements, "Rubber.Sheet", true)) { + ItemStack tStack; + if (null != (tStack = GT_ModHandler.removeRecipe(new ItemStack[]{tMat, tMat, tMat, tMat, tMat, tMat, null, null, null}))) { + GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, new Object[]{"XXX", "XXX", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Rubber)}); + } + } + GT_ModHandler.removeRecipeByOutput(ItemList.Bottle_Empty.get(1L, new Object[0])); + GT_ModHandler.removeRecipeByOutput(ItemList.IC2_Spray_WeedEx.get(1L, new Object[0])); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("reBattery", 1L)); + + ItemStack tStack = GT_ModHandler.removeRecipe(new ItemStack[]{new ItemStack(Blocks.planks, 1, 0), null, null, new ItemStack(Blocks.planks, 1, 0)}); + if (tStack != null) { + GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(GT_Mod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize : tStack.stackSize * 5 / 4, new Object[]{tStack}), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"s", "P", "P", Character.valueOf('P'), OrePrefixes.plank.get(Materials.Wood)}); + GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(GT_Mod.gregtechproxy.mNerfedWoodPlank ? tStack.stackSize / 2 : tStack.stackSize, new Object[]{tStack}), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"P", "P", Character.valueOf('P'), OrePrefixes.plank.get(Materials.Wood)}); + } + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.wooden_pressure_plate, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"PP", Character.valueOf('P'), OrePrefixes.plank.get(Materials.Wood)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.stone_button, 2, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"S", "S", Character.valueOf('S'), OrePrefixes.stone}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.stone_pressure_plate, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"SS", Character.valueOf('S'), OrePrefixes.stone}); + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.stone_button, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.stone}); + + GT_Log.out.println("GT_Mod: Adding Vanilla Convenience Recipes."); + + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.stonebrick, 1, 3), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"f", "X", Character.valueOf('X'), new ItemStack(Blocks.double_stone_slab, 1, 8)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.gravel, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"h", "X", Character.valueOf('X'), new ItemStack(Blocks.cobblestone, 1, 0)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.cobblestone, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"h", "X", Character.valueOf('X'), new ItemStack(Blocks.stone, 1, 0)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.stonebrick, 1, 2), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"h", "X", Character.valueOf('X'), new ItemStack(Blocks.stonebrick, 1, 0)}); + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.double_stone_slab, 1, 8), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{new ItemStack(Blocks.double_stone_slab, 1, 0)}); + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.double_stone_slab, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{new ItemStack(Blocks.double_stone_slab, 1, 8)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.double_stone_slab, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"B", "B", Character.valueOf('B'), new ItemStack(Blocks.stone_slab, 1, 0)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.cobblestone, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"B", "B", Character.valueOf('B'), new ItemStack(Blocks.stone_slab, 1, 3)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.brick_block, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"B", "B", Character.valueOf('B'), new ItemStack(Blocks.stone_slab, 1, 4)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.stonebrick, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"B", "B", Character.valueOf('B'), new ItemStack(Blocks.stone_slab, 1, 5)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.nether_brick, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"B", "B", Character.valueOf('B'), new ItemStack(Blocks.stone_slab, 1, 6)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.quartz_block, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"B", "B", Character.valueOf('B'), new ItemStack(Blocks.stone_slab, 1, 7)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.double_stone_slab, 1, 8), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"B", "B", Character.valueOf('B'), new ItemStack(Blocks.stone_slab, 1, 8)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.planks, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"B", "B", Character.valueOf('B'), new ItemStack(Blocks.wooden_slab, 1, 0)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.planks, 1, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"B", "B", Character.valueOf('B'), new ItemStack(Blocks.wooden_slab, 1, 1)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.planks, 1, 2), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"B", "B", Character.valueOf('B'), new ItemStack(Blocks.wooden_slab, 1, 2)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.planks, 1, 3), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"B", "B", Character.valueOf('B'), new ItemStack(Blocks.wooden_slab, 1, 3)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.planks, 1, 4), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"B", "B", Character.valueOf('B'), new ItemStack(Blocks.wooden_slab, 1, 4)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.planks, 1, 5), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"B", "B", Character.valueOf('B'), new ItemStack(Blocks.wooden_slab, 1, 5)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.planks, 1, 6), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"B", "B", Character.valueOf('B'), new ItemStack(Blocks.wooden_slab, 1, 6)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.planks, 1, 7), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"B", "B", Character.valueOf('B'), new ItemStack(Blocks.wooden_slab, 1, 7)}); + + GT_ModHandler.addCraftingRecipe(new ItemStack(Items.stick, 2, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"s", "X", Character.valueOf('X'), new ItemStack(Blocks.deadbush, 1, 32767)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Items.stick, 2, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"s", "X", Character.valueOf('X'), new ItemStack(Blocks.tallgrass, 1, 0)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Items.stick, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"s", "X", Character.valueOf('X'), OrePrefixes.treeSapling}); + + GT_ModHandler.addCraftingRecipe(new ItemStack(Items.comparator, 1, 0), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" T ", "TQT", "SSS", Character.valueOf('Q'), OreDictNames.craftingQuartz, Character.valueOf('S'), OrePrefixes.stoneSmooth, Character.valueOf('T'), OreDictNames.craftingRedstoneTorch}); + + GT_Log.out.println("GT_Mod: Adding Tool Recipes."); + GT_ModHandler.addCraftingRecipe(new ItemStack(Items.minecart, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, new Object[]{" h ", "PwP", "WPW", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('W'), ItemList.Component_Minecart_Wheels_Iron}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Items.minecart, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" h ", "PwP", "WPW", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('W'), ItemList.Component_Minecart_Wheels_Steel}); + + GT_ModHandler.addCraftingRecipe(new ItemStack(Items.chest_minecart, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, new Object[]{"X", "C", Character.valueOf('C'), new ItemStack(Items.minecart, 1), Character.valueOf('X'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Items.furnace_minecart, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, new Object[]{"X", "C", Character.valueOf('C'), new ItemStack(Items.minecart, 1), Character.valueOf('X'), OreDictNames.craftingFurnace}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Items.hopper_minecart, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, new Object[]{"X", "C", Character.valueOf('C'), new ItemStack(Items.minecart, 1), Character.valueOf('X'), new ItemStack(Blocks.hopper, 1, 32767)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Items.tnt_minecart, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, new Object[]{"X", "C", Character.valueOf('C'), new ItemStack(Items.minecart, 1), Character.valueOf('X'), new ItemStack(Blocks.tnt, 1, 32767)}); + + GT_ModHandler.addCraftingRecipe(new ItemStack(Items.chainmail_helmet, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, new Object[]{"RRR", "RhR", Character.valueOf('R'), OrePrefixes.ring.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Items.chainmail_chestplate, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, new Object[]{"RhR", "RRR", "RRR", Character.valueOf('R'), OrePrefixes.ring.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Items.chainmail_leggings, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, new Object[]{"RRR", "RhR", "R R", Character.valueOf('R'), OrePrefixes.ring.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Items.chainmail_boots, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, new Object[]{"R R", "RhR", Character.valueOf('R'), OrePrefixes.ring.get(Materials.Steel)}); + + GT_Log.out.println("GT_Mod: Adding Wool and Color releated Recipes."); + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{new ItemStack(Blocks.wool, 1, 0), Dyes.dyeOrange}); + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 2), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{new ItemStack(Blocks.wool, 1, 0), Dyes.dyeMagenta}); + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 3), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{new ItemStack(Blocks.wool, 1, 0), Dyes.dyeLightBlue}); + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 4), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{new ItemStack(Blocks.wool, 1, 0), Dyes.dyeYellow}); + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 5), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{new ItemStack(Blocks.wool, 1, 0), Dyes.dyeLime}); + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 6), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{new ItemStack(Blocks.wool, 1, 0), Dyes.dyePink}); + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 7), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{new ItemStack(Blocks.wool, 1, 0), Dyes.dyeGray}); + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 8), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{new ItemStack(Blocks.wool, 1, 0), Dyes.dyeLightGray}); + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 9), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{new ItemStack(Blocks.wool, 1, 0), Dyes.dyeCyan}); + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 10), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{new ItemStack(Blocks.wool, 1, 0), Dyes.dyePurple}); + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 11), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{new ItemStack(Blocks.wool, 1, 0), Dyes.dyeBlue}); + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 12), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{new ItemStack(Blocks.wool, 1, 0), Dyes.dyeBrown}); + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 13), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{new ItemStack(Blocks.wool, 1, 0), Dyes.dyeGreen}); + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 14), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{new ItemStack(Blocks.wool, 1, 0), Dyes.dyeRed}); + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Blocks.wool, 1, 15), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{new ItemStack(Blocks.wool, 1, 0), Dyes.dyeBlack}); + + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.stained_glass, 8, 0), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"GGG", "GDG", "GGG", Character.valueOf('G'), new ItemStack(Blocks.glass, 1), Character.valueOf('D'), Dyes.dyeWhite}); + + GT_Log.out.println("GT_Mod: Putting a Potato on a Stick."); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Packaged_PotatoChips.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.foil.get(Materials.Aluminium), ItemList.Food_PotatoChips}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Packaged_ChiliChips.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.foil.get(Materials.Aluminium), ItemList.Food_ChiliChips}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Packaged_Fries.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.plateDouble.get(Materials.Paper), ItemList.Food_Fries}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Chum_On_Stick.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.stick.get(Materials.Wood), ItemList.Food_Chum}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Potato_On_Stick.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.stick.get(Materials.Wood), ItemList.Food_Raw_Potato}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Potato_On_Stick_Roasted.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.stick.get(Materials.Wood), ItemList.Food_Baked_Potato}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Dough.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.bucket.get(Materials.Water), OrePrefixes.dust.get(Materials.Wheat)}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Dough_Sugar.get(2L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"foodDough", OrePrefixes.dust.get(Materials.Sugar)}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Dough_Chocolate.get(2L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"foodDough", OrePrefixes.dust.get(Materials.Cocoa)}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Dough_Chocolate.get(2L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"foodDough", OrePrefixes.dust.get(Materials.Chocolate)}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Flat_Dough.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"foodDough", ToolDictNames.craftingToolRollingPin}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Raw_Bun.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"foodDough"}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Raw_Bread.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"foodDough", "foodDough"}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Raw_Baguette.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"foodDough", "foodDough", "foodDough"}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Raw_Cake.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Dough_Sugar, ItemList.Food_Dough_Sugar, ItemList.Food_Dough_Sugar, ItemList.Food_Dough_Sugar}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_ChiliChips.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_PotatoChips, OrePrefixes.dust.get(Materials.Chili)}); + + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sliced_Buns.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Bun}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sliced_Breads.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Bread, ItemList.Food_Sliced_Bread}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sliced_Baguettes.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Baguette, ItemList.Food_Sliced_Baguette}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sliced_Bun.get(2L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Buns}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sliced_Bread.get(2L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Breads}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sliced_Baguette.get(2L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Baguettes}); + + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Burger_Veggie.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Buns, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Onion}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Burger_Cheese.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Buns, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Burger_Meat.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Buns, OrePrefixes.dust.get(Materials.MeatCooked)}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Burger_Chum.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Buns, ItemList.Food_Chum}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Burger_Veggie.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Onion}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Burger_Cheese.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Burger_Meat.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Bun, OrePrefixes.dust.get(Materials.MeatCooked)}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Burger_Chum.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Bun, ItemList.Food_Sliced_Bun, ItemList.Food_Chum}); + + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sandwich_Veggie.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Breads, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Onion}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sandwich_Cheese.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Breads, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sandwich_Bacon.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Breads, new ItemStack(Items.cooked_porkchop, 1)}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sandwich_Steak.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Breads, new ItemStack(Items.cooked_beef, 1)}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sandwich_Veggie.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Bread, ItemList.Food_Sliced_Bread, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Onion}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sandwich_Cheese.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Bread, ItemList.Food_Sliced_Bread, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sandwich_Bacon.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Bread, ItemList.Food_Sliced_Bread, new ItemStack(Items.cooked_porkchop, 1)}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Sandwich_Steak.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Bread, ItemList.Food_Sliced_Bread, new ItemStack(Items.cooked_beef, 1)}); + + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Large_Sandwich_Veggie.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Baguettes, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Onion}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Large_Sandwich_Cheese.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Baguettes, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Large_Sandwich_Bacon.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Baguettes, new ItemStack(Items.cooked_porkchop, 1), new ItemStack(Items.cooked_porkchop, 1)}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Large_Sandwich_Steak.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Baguettes, new ItemStack(Items.cooked_beef, 1), new ItemStack(Items.cooked_beef, 1)}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Large_Sandwich_Veggie.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Baguette, ItemList.Food_Sliced_Baguette, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Onion}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Large_Sandwich_Cheese.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Baguette, ItemList.Food_Sliced_Baguette, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Large_Sandwich_Bacon.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Baguette, ItemList.Food_Sliced_Baguette, new ItemStack(Items.cooked_porkchop, 1), new ItemStack(Items.cooked_porkchop, 1)}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Large_Sandwich_Steak.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Sliced_Baguette, ItemList.Food_Sliced_Baguette, new ItemStack(Items.cooked_beef, 1), new ItemStack(Items.cooked_beef, 1)}); + + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Raw_Pizza_Veggie.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Flat_Dough, ItemList.Food_Sliced_Cucumber, ItemList.Food_Sliced_Tomato, ItemList.Food_Sliced_Onion}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Raw_Pizza_Cheese.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Flat_Dough, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese, ItemList.Food_Sliced_Cheese}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Food_Raw_Pizza_Meat.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Food_Flat_Dough, OrePrefixes.dust.get(Materials.MeatCooked)}); + + GT_ModHandler.addCraftingRecipe(ItemList.Food_Sliced_Cheese.get(4L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"kX", Character.valueOf('X'), "foodCheese"}); + GT_ModHandler.addCraftingRecipe(ItemList.Food_Sliced_Lemon.get(4L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"kX", Character.valueOf('X'), "cropLemon"}); + GT_ModHandler.addCraftingRecipe(ItemList.Food_Sliced_Tomato.get(4L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"kX", Character.valueOf('X'), "cropTomato"}); + GT_ModHandler.addCraftingRecipe(ItemList.Food_Sliced_Onion.get(4L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"kX", Character.valueOf('X'), "cropOnion"}); + GT_ModHandler.addCraftingRecipe(ItemList.Food_Sliced_Cucumber.get(4L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"kX", Character.valueOf('X'), "cropCucumber"}); + GT_ModHandler.addCraftingRecipe(ItemList.Food_Sliced_Bun.get(2L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"kX", Character.valueOf('X'), ItemList.Food_Baked_Bun}); + GT_ModHandler.addCraftingRecipe(ItemList.Food_Sliced_Bread.get(2L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"kX", Character.valueOf('X'), ItemList.Food_Baked_Bread}); + GT_ModHandler.addCraftingRecipe(ItemList.Food_Sliced_Baguette.get(2L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"kX", Character.valueOf('X'), ItemList.Food_Baked_Baguette}); + GT_ModHandler.addCraftingRecipe(ItemList.Food_Raw_PotatoChips.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"kX", Character.valueOf('X'), "cropPotato"}); + GT_ModHandler.addCraftingRecipe(ItemList.Food_Raw_Cookie.get(4L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"kX", Character.valueOf('X'), ItemList.Food_Dough_Chocolate}); + + GT_ModHandler.addCraftingRecipe(ItemList.Food_Raw_Fries.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"k", "X", Character.valueOf('X'), "cropPotato"}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Items.bowl, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"k", "X", Character.valueOf('X'), OrePrefixes.plank.get(Materials.Wood)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Rubber, 1L), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"k", "X", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Rubber)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadArrow, Materials.Flint, 1L), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"f", "X", Character.valueOf('X'), new ItemStack(Items.flint, 1, 32767)}); + + GT_ModHandler.addCraftingRecipe(new ItemStack(Items.arrow, 1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES, new Object[]{" H", " S ", "F ", Character.valueOf('H'), new ItemStack(Items.flint, 1, 32767), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('F'), OreDictNames.craftingFeather}); + + GT_ModHandler.removeRecipe(new ItemStack[]{new ItemStack(Blocks.planks), null, new ItemStack(Blocks.planks), null, new ItemStack(Blocks.planks)}); + GT_ModHandler.removeRecipeByOutput(ItemList.Food_Baked_Bread.get(1L, new Object[0])); + GT_ModHandler.removeRecipeByOutput(new ItemStack(Items.cookie, 1)); + GT_ModHandler.removeRecipe(new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L)}); + if (null != GT_Utility.setStack(GT_ModHandler.getRecipeOutput(true, new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L), null, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1L)}), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "bronzeingotcrafting", true) ? 1L : 2L))) { + GT_Log.out.println("GT_Mod: Changed Forestrys Bronze Recipe"); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "enchantmenttable", false)) { + GT_Log.out.println("GT_Mod: Removing the Recipe of the Enchantment Table, to have more Fun at enchanting with the Anvil and Books from Dungeons."); + GT_ModHandler.removeRecipeByOutput(new ItemStack(Blocks.enchanting_table, 1)); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "enderchest", false)) { + GT_ModHandler.removeRecipeByOutput(new ItemStack(Blocks.ender_chest, 1)); + } + tStack = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 1L); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getRecipeOutput(new ItemStack[]{null, new ItemStack(Blocks.sand, 1, 0), null, null, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Apatite, 1L), null, null, new ItemStack(Blocks.sand, 1, 0), null}), new Object[]{"S", "A", "S", Character.valueOf('A'), OrePrefixes.dust.get(Materials.Apatite), Character.valueOf('S'), new ItemStack(Blocks.sand, 1, 32767)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getRecipeOutput(new ItemStack[]{tStack, tStack, tStack, tStack, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Apatite, 1L), tStack, tStack, tStack, tStack}), new Object[]{"SSS", "SAS", "SSS", Character.valueOf('A'), OrePrefixes.dust.get(Materials.Apatite), Character.valueOf('S'), OrePrefixes.dust.get(Materials.Ash)}); + + GT_Log.out.println("GT_Mod: Adding Mixed Metal Ingot Recipes."); + GT_ModHandler.removeRecipeByOutput(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0])); + + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium)}); + + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Nickel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Nickel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Nickel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Nickel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Nickel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Nickel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium)}); + + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Invar), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Invar), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Invar), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Invar), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Invar), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Invar), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium)}); + + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(2L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium)}); + + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(4L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(4L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium)}); + + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(4L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(4L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium)}); + + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Tungsten), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Tungsten), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(4L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Tungsten), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Tungsten), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(3L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Tungsten), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(4L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.Tungsten), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium)}); + + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(5L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(5L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(6L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(5L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(5L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Zinc)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(6L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"X", "Y", "Z", Character.valueOf('X'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('Y'), OrePrefixes.plate.get(Materials.Brass), Character.valueOf('Z'), OrePrefixes.plate.get(Materials.Aluminium)}); + + GT_Log.out.println("GT_Mod: Adding Rolling Machine Recipes."); + GT_ModHandler.addRollingMachineRecipe(ItemList.RC_Rail_Standard.get(4L, new Object[0]), new Object[]{"X X", "X X", "X X", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Aluminium).toString()}); + GT_ModHandler.addRollingMachineRecipe(ItemList.RC_Rail_Standard.get(32L, new Object[0]), new Object[]{"X X", "X X", "X X", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Titanium).toString()}); + GT_ModHandler.addRollingMachineRecipe(ItemList.RC_Rail_Standard.get(32L, new Object[0]), new Object[]{"X X", "X X", "X X", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Tungsten).toString()}); + + GT_ModHandler.addRollingMachineRecipe(ItemList.RC_Rail_Reinforced.get(32L, new Object[0]), new Object[]{"X X", "X X", "X X", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.TungstenSteel).toString()}); + + GT_ModHandler.addRollingMachineRecipe(ItemList.RC_Rebar.get(2L, new Object[0]), new Object[]{" X", " X ", "X ", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Aluminium).toString()}); + GT_ModHandler.addRollingMachineRecipe(ItemList.RC_Rebar.get(16L, new Object[0]), new Object[]{" X", " X ", "X ", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Titanium).toString()}); + GT_ModHandler.addRollingMachineRecipe(ItemList.RC_Rebar.get(16L, new Object[0]), new Object[]{" X", " X ", "X ", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Tungsten).toString()}); + GT_ModHandler.addRollingMachineRecipe(ItemList.RC_Rebar.get(48L, new Object[0]), new Object[]{" X", " X ", "X ", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.TungstenSteel).toString()}); + + GT_ModHandler.addRollingMachineRecipe(GT_ModHandler.getModItem("Railcraft", "post.metal.light.blue", 8L), new Object[]{"XXX", " X ", "XXX", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Aluminium).toString()}); + GT_ModHandler.addRollingMachineRecipe(GT_ModHandler.getModItem("Railcraft", "post.metal.purple", 64L), new Object[]{"XXX", " X ", "XXX", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Titanium).toString()}); + GT_ModHandler.addRollingMachineRecipe(GT_ModHandler.getModItem("Railcraft", "post.metal.black", 64L), new Object[]{"XXX", " X ", "XXX", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Tungsten).toString()}); + + GT_ModHandler.addRollingMachineRecipe(GT_ModHandler.getModItem("Railcraft", "post.metal.light.blue", 8L), new Object[]{"X X", "XXX", "X X", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Aluminium).toString()}); + GT_ModHandler.addRollingMachineRecipe(GT_ModHandler.getModItem("Railcraft", "post.metal.purple", 64L), new Object[]{"X X", "XXX", "X X", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Titanium).toString()}); + GT_ModHandler.addRollingMachineRecipe(GT_ModHandler.getModItem("Railcraft", "post.metal.black", 64L), new Object[]{"X X", "XXX", "X X", Character.valueOf('X'), OrePrefixes.ingot.get(Materials.Tungsten).toString()}); + + GT_Log.out.println("GT_Mod: Replacing Railcraft Recipes with slightly more OreDicted Variants"); + + long tBitMask = GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES_IF_SAME_NBT | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_SHAPED_RECIPES | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_NATIVE_RECIPES | GT_ModHandler.RecipeBits.ONLY_ADD_IF_THERE_IS_ANOTHER_RECIPE_FOR_IT; + char tHammer = ' '; + char tFile = ' '; + char tWrench = ' '; + OrePrefixes tIngot = OrePrefixes.ingot; + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "railcraft_stuff_use_tools", true)) { + tHammer = 'h'; + tFile = 'f'; + tWrench = 'w'; + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "railcraft_stuff_use_plates", true)) { + tIngot = OrePrefixes.plate; + } + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "part.gear", 2L, 3), tBitMask | GT_ModHandler.RecipeBits.MIRRORED, new Object[]{tHammer + "" + tFile, "XX", "XX", Character.valueOf('X'), tIngot.get(Materials.Tin)}); + + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "part.gear", 1L, 0), tBitMask, new Object[]{tHammer + "X ", "XGX", " X" + tFile, Character.valueOf('X'), OrePrefixes.nugget.get(Materials.Gold), Character.valueOf('G'), GT_ModHandler.getModItem("Railcraft", "part.gear", 1L, 3)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "part.gear", 1L, 1), tBitMask, new Object[]{tHammer + "X ", "XGX", " X" + tFile, Character.valueOf('X'), tIngot.get(Materials.AnyIron), Character.valueOf('G'), GT_ModHandler.getModItem("Railcraft", "part.gear", 1L, 3)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "part.gear", 1L, 2), tBitMask, new Object[]{tHammer + "X ", "XGX", " X" + tFile, Character.valueOf('X'), tIngot.get(Materials.Steel), Character.valueOf('G'), GT_ModHandler.getModItem("Railcraft", "part.gear", 1L, 3)}); + + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 8L, 0), tBitMask, new Object[]{tWrench + "PP", tHammer + "PP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyIron)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 8L, 1), tBitMask, new Object[]{"GPG", "PGP", "GPG", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('G'), new ItemStack(Blocks.glass_pane, 1, 32767)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 8L, 2), tBitMask, new Object[]{"BPB", "PLP", "BPB", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('B'), new ItemStack(Blocks.iron_bars, 1, 32767), Character.valueOf('L'), new ItemStack(Blocks.lever, 1, 32767)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 3), tBitMask, new Object[]{tWrench + "P", tHammer + "P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyIron)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 4), tBitMask, new Object[]{tWrench + "P", tHammer + "P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 5), tBitMask, new Object[]{"BBB", "BFB", "BOB", Character.valueOf('B'), OrePrefixes.ingot.get(Materials.Brick), Character.valueOf('F'), new ItemStack(Items.fire_charge, 1, 32767), Character.valueOf('O'), OreDictNames.craftingFurnace}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 6), tBitMask, new Object[]{"PUP", "BFB", "POP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('B'), new ItemStack(Blocks.iron_bars, 1, 32767), Character.valueOf('F'), new ItemStack(Items.fire_charge, 1, 32767), Character.valueOf('U'), OrePrefixes.bucket.get(Materials.Empty), Character.valueOf('O'), OreDictNames.craftingFurnace}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 7), tBitMask | GT_ModHandler.RecipeBits.MIRRORED, new Object[]{"PPP", tHammer + "G" + tWrench, "OTO", Character.valueOf('P'), OrePrefixes.nugget.get(Materials.Gold), Character.valueOf('O'), GT_ModHandler.getModItem("Railcraft", "part.gear", 1L, 0), Character.valueOf('G'), new ItemStack(Blocks.glass, 1, 32767), Character.valueOf('T'), OreDictNames.craftingPiston}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 8), tBitMask | GT_ModHandler.RecipeBits.MIRRORED, new Object[]{"PPP", tHammer + "G" + tWrench, "OTO", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('O'), GT_ModHandler.getModItem("Railcraft", "part.gear", 1L, 1), Character.valueOf('G'), new ItemStack(Blocks.glass, 1, 32767), Character.valueOf('T'), OreDictNames.craftingPiston}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 9), tBitMask | GT_ModHandler.RecipeBits.MIRRORED, new Object[]{"PPP", tHammer + "G" + tWrench, "OTO", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('O'), GT_ModHandler.getModItem("Railcraft", "part.gear", 1L, 2), Character.valueOf('G'), new ItemStack(Blocks.glass, 1, 32767), Character.valueOf('T'), OreDictNames.craftingPiston}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 10), tBitMask, new Object[]{" E ", " O ", "OIO", Character.valueOf('I'), tIngot.get(Materials.Gold), Character.valueOf('E'), OrePrefixes.gem.get(Materials.EnderPearl), Character.valueOf('O'), OrePrefixes.stone.get(Materials.Obsidian)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 11), tBitMask, new Object[]{"OOO", "OEO", "OOO", Character.valueOf('E'), OrePrefixes.gem.get(Materials.EnderPearl), Character.valueOf('O'), OrePrefixes.stone.get(Materials.Obsidian)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 12), tBitMask, new Object[]{"GPG", "PAP", "GPG", Character.valueOf('P'), OreDictNames.craftingPiston, Character.valueOf('A'), OreDictNames.craftingAnvil, Character.valueOf('G'), GT_ModHandler.getModItem("Railcraft", "part.gear", 1L, 2)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 8L, 13), tBitMask, new Object[]{tWrench + "PP", tHammer + "PP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 8L, 14), tBitMask, new Object[]{"GPG", "PGP", "GPG", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('G'), new ItemStack(Blocks.glass_pane, 1, 32767)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.beta", 8L, 15), tBitMask, new Object[]{"BPB", "PLP", "BPB", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('B'), new ItemStack(Blocks.iron_bars, 1, 32767), Character.valueOf('L'), new ItemStack(Blocks.lever, 1, 32767)}); + + GT_ModHandler.addCraftingRecipe(ItemList.RC_ShuntingWireFrame.get(6L, new Object[0]), tBitMask, new Object[]{"PPP", "R" + tWrench + "R", "RRR", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('R'), ItemList.RC_Rebar.get(1L, new Object[0])}); + + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 1L, 0), tBitMask, new Object[]{"IOI", "GEG", "IOI", Character.valueOf('I'), tIngot.get(Materials.Gold), Character.valueOf('G'), OrePrefixes.gem.get(Materials.Diamond), Character.valueOf('E'), OrePrefixes.gem.get(Materials.EnderPearl), Character.valueOf('O'), OrePrefixes.stone.get(Materials.Obsidian)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 3L, 1), tBitMask, new Object[]{"BPB", "P" + tWrench + "P", "BPB", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('B'), OrePrefixes.block.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 1L, 2), tBitMask, new Object[]{"IOI", "GEG", "IOI", Character.valueOf('I'), tIngot.get(Materials.Gold), Character.valueOf('G'), OrePrefixes.gem.get(Materials.Emerald), Character.valueOf('E'), OrePrefixes.gem.get(Materials.EnderPearl), Character.valueOf('O'), OrePrefixes.stone.get(Materials.Obsidian)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 4L, 3), tBitMask, new Object[]{"PPP", "PFP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('F'), OreDictNames.craftingFurnace}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 1L, 5), tBitMask, new Object[]{" N ", "RCR", Character.valueOf('R'), OrePrefixes.dust.get(Materials.Redstone), Character.valueOf('N'), OrePrefixes.stone.get(Materials.Netherrack), Character.valueOf('C'), new ItemStack(Items.cauldron, 1, 0)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 1L, 6), tBitMask, new Object[]{"SGS", "EDE", "SGS", Character.valueOf('E'), OrePrefixes.gem.get(Materials.Emerald), Character.valueOf('S'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('G'), new ItemStack(Blocks.glass_pane, 1, 32767), Character.valueOf('D'), new ItemStack(Blocks.dispenser, 1, 32767)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 1L, 8), tBitMask, new Object[]{"IPI", "PCP", "IPI", Character.valueOf('P'), OreDictNames.craftingPiston, Character.valueOf('I'), tIngot.get(Materials.AnyIron), Character.valueOf('C'), new ItemStack(Blocks.crafting_table, 1, 32767)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 1L, 9), tBitMask, new Object[]{" I ", " T ", " D ", Character.valueOf('I'), new ItemStack(Blocks.iron_bars, 1, 32767), Character.valueOf('T'), GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 4), Character.valueOf('D'), new ItemStack(Blocks.dispenser, 1, 32767)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 1L, 10), tBitMask, new Object[]{" I ", "RTR", " D ", Character.valueOf('I'), new ItemStack(Blocks.iron_bars, 1, 32767), Character.valueOf('T'), GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 4), Character.valueOf('D'), new ItemStack(Blocks.dispenser, 1, 32767), Character.valueOf('R'), OrePrefixes.dust.get(Materials.Redstone)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 1L, 10), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RTR", Character.valueOf('T'), GT_ModHandler.getModItem("Railcraft", "machine.alpha", 1L, 9), Character.valueOf('R'), OrePrefixes.dust.get(Materials.Redstone)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 1L, 11), tBitMask, new Object[]{"PCP", "CSC", "PCP", Character.valueOf('P'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('S'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('C'), new ItemStack(Items.golden_carrot, 1, 0)}); + if (GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "DisableRCBlastFurnace", false)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 4L, 12)); + } + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 1L, 13), tBitMask, new Object[]{"TSB", "SCS", "PSP", Character.valueOf('P'), OreDictNames.craftingPiston, Character.valueOf('S'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('B'), OreDictNames.craftingBook, Character.valueOf('C'), new ItemStack(Blocks.crafting_table, 1, 32767), Character.valueOf('T'), new ItemStack(Items.diamond_pickaxe, 1, 0)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 6L, 14), tBitMask, new Object[]{"PPP", "ISI", "PPP", Character.valueOf('P'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('I'), tIngot.get(Materials.AnyIron), Character.valueOf('S'), "slimeball"}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.alpha", 4L, 15), tBitMask, new Object[]{"PDP", "DBD", "PDP", Character.valueOf('P'), OreDictNames.craftingPiston, Character.valueOf('B'), OrePrefixes.block.get(Materials.Steel), Character.valueOf('D'), OrePrefixes.gem.get(Materials.Diamond)}); + + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "machine.epsilon", 1L, 0), tBitMask, new Object[]{"PWP", "WWW", "PWP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyIron), Character.valueOf('W'), OrePrefixes.wireGt02.get(Materials.Copper)}); + + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "tool.crowbar", 1L, 0), tBitMask, new Object[]{tHammer + "DS", "DSD", "SD" + tFile, Character.valueOf('S'), OrePrefixes.ingot.get(Materials.Iron), Character.valueOf('D'), Dyes.dyeRed}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "tool.crowbar.reinforced", 1L, 0), tBitMask, new Object[]{tHammer + "DS", "DSD", "SD" + tFile, Character.valueOf('S'), OrePrefixes.ingot.get(Materials.Steel), Character.valueOf('D'), Dyes.dyeRed}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "tool.whistle.tuner", 1L, 0), tBitMask | GT_ModHandler.RecipeBits.MIRRORED, new Object[]{"S" + tHammer + "S", "SSS", " S" + tFile, Character.valueOf('S'), OrePrefixes.nugget.get(Materials.Iron)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "part.turbine.blade", 1L, 0), tBitMask, new Object[]{"S" + tFile, "S ", "S" + tHammer, Character.valueOf('S'), tIngot.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "part.turbine.disk", 1L, 0), tBitMask, new Object[]{"SSS", "SBS", "SSS", Character.valueOf('B'), OrePrefixes.block.get(Materials.Steel), Character.valueOf('S'), GT_ModHandler.getModItem("Railcraft", "part.turbine.blade", 1L, 0)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "part.turbine.rotor", 1L, 0), tBitMask, new Object[]{"SSS", " " + tWrench + " ", Character.valueOf('S'), GT_ModHandler.getModItem("Railcraft", "part.turbine.disk", 1L, 0)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "borehead.iron", 1L, 0), tBitMask, new Object[]{"SSS", "SBS", "SSS", Character.valueOf('B'), OrePrefixes.block.get(Materials.Iron), Character.valueOf('S'), tIngot.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "borehead.steel", 1L, 0), tBitMask, new Object[]{"SSS", "SBS", "SSS", Character.valueOf('B'), OrePrefixes.block.get(Materials.Steel), Character.valueOf('S'), tIngot.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "borehead.diamond", 1L, 0), tBitMask, new Object[]{"SSS", "SBS", "SSS", Character.valueOf('B'), OrePrefixes.block.get(Materials.Diamond), Character.valueOf('S'), tIngot.get(Materials.Steel)}); + + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "cart.loco.steam.solid", 1L, 0), tBitMask, new Object[]{"TTF", "TTF", "BCC", Character.valueOf('C'), new ItemStack(Items.minecart, 1), Character.valueOf('T'), GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 4), Character.valueOf('F'), GT_ModHandler.getModItem("Railcraft", "machine.beta", 1L, 5), Character.valueOf('B'), new ItemStack(Blocks.iron_bars, 1, 32767)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "cart.loco.electric", 1L, 0), tBitMask, new Object[]{"LP" + tWrench, "PEP", "GCG", Character.valueOf('C'), new ItemStack(Items.minecart, 1), Character.valueOf('E'), GT_ModHandler.getModItem("Railcraft", "machine.epsilon", 1L, 0), Character.valueOf('G'), GT_ModHandler.getModItem("Railcraft", "part.gear", 1L, 2), Character.valueOf('L'), new ItemStack(Blocks.redstone_lamp, 1, 32767), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("Railcraft", "cart.bore", 1L, 0), tBitMask, new Object[]{"BCB", "FCF", tHammer + "A" + tWrench, Character.valueOf('C'), new ItemStack(Items.minecart, 1), Character.valueOf('A'), new ItemStack(Items.chest_minecart, 1), Character.valueOf('F'), OreDictNames.craftingFurnace, Character.valueOf('B'), OrePrefixes.block.get(Materials.Steel)}); + + GT_Log.out.println("GT_Mod: Beginning to add regular Crafting Recipes."); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("scaffold", 4L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"WWW", " S ", "S S", Character.valueOf('W'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood)}); + + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Superconductor, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"NPT", "CCC", "HPT", Character.valueOf('H'), OrePrefixes.cell.get(Materials.Helium), Character.valueOf('N'), OrePrefixes.cell.get(Materials.Nitrogen), Character.valueOf('T'), OrePrefixes.pipeTiny.get(Materials.TungstenSteel), Character.valueOf('P'), ItemList.Electric_Pump_LV, Character.valueOf('C'), OrePrefixes.wireGt01.get(Materials.NiobiumTitanium)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Superconductor, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"NPT", "CCC", "HPT", Character.valueOf('H'), OrePrefixes.cell.get(Materials.Helium), Character.valueOf('N'), OrePrefixes.cell.get(Materials.Nitrogen), Character.valueOf('T'), OrePrefixes.pipeTiny.get(Materials.TungstenSteel), Character.valueOf('P'), ItemList.Electric_Pump_LV, Character.valueOf('C'), OrePrefixes.wireGt01.get(Materials.VanadiumGallium)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Superconductor, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"NPT", "CCC", "NPT", Character.valueOf('N'), OrePrefixes.cell.get(Materials.Nitrogen), Character.valueOf('T'), OrePrefixes.pipeTiny.get(Materials.TungstenSteel), Character.valueOf('P'), ItemList.Electric_Pump_LV, Character.valueOf('C'), OrePrefixes.wireGt01.get(Materials.YttriumBariumCuprate)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Superconductor, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"NPT", "CCC", "NPT", Character.valueOf('N'), OrePrefixes.cell.get(Materials.Nitrogen), Character.valueOf('T'), OrePrefixes.pipeTiny.get(Materials.TungstenSteel), Character.valueOf('P'), ItemList.Electric_Pump_LV, Character.valueOf('C'), OrePrefixes.wireGt01.get(Materials.Naquadah)}); + + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.IronMagnetic, 1L), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.stick.get(Materials.AnyIron), OrePrefixes.dust.get(Materials.Redstone), OrePrefixes.dust.get(Materials.Redstone), OrePrefixes.dust.get(Materials.Redstone), OrePrefixes.dust.get(Materials.Redstone)}); + + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Item_Casing_Gold.get(1L, new Object[0]), new Object[]{"h P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Gold)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Item_Casing_Iron.get(1L, new Object[0]), new Object[]{"h P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyIron)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Item_Casing_Bronze.get(1L, new Object[0]), new Object[]{"h P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Item_Casing_Copper.get(1L, new Object[0]), new Object[]{"h P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyCopper)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Item_Casing_Tin.get(1L, new Object[0]), new Object[]{"h P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Item_Casing_Lead.get(1L, new Object[0]), new Object[]{"h P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Lead)}); + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Item_Casing_Steel.get(1L, new Object[0]), new Object[]{"h P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel)}); + + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.torch, 2), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"C", "S", Character.valueOf('C'), OrePrefixes.dust.get(Materials.Sulfur), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.torch, 6), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"C", "S", Character.valueOf('C'), OrePrefixes.dust.get(Materials.Phosphorus), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood)}); + + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.piston, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"WWW", "CBC", "CRC", Character.valueOf('W'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('C'), OrePrefixes.stoneCobble, Character.valueOf('R'), OrePrefixes.dust.get(Materials.Redstone), Character.valueOf('B'), OrePrefixes.ingot.get(Materials.AnyIron)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.piston, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"WWW", "CBC", "CRC", Character.valueOf('W'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('C'), OrePrefixes.stoneCobble, Character.valueOf('R'), OrePrefixes.dust.get(Materials.Redstone), Character.valueOf('B'), OrePrefixes.ingot.get(Materials.AnyBronze)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.piston, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"WWW", "CBC", "CRC", Character.valueOf('W'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('C'), OrePrefixes.stoneCobble, Character.valueOf('R'), OrePrefixes.dust.get(Materials.Redstone), Character.valueOf('B'), OrePrefixes.ingot.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.piston, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"WWW", "CBC", "CRC", Character.valueOf('W'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('C'), OrePrefixes.stoneCobble, Character.valueOf('R'), OrePrefixes.dust.get(Materials.Redstone), Character.valueOf('B'), OrePrefixes.ingot.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.piston, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"WWW", "CBC", "CRC", Character.valueOf('W'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('C'), OrePrefixes.stoneCobble, Character.valueOf('R'), OrePrefixes.dust.get(Materials.Redstone), Character.valueOf('B'), OrePrefixes.ingot.get(Materials.Titanium)}); + + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("reactorVent", 1L, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"AIA", "I I", "AIA", Character.valueOf('I'), new ItemStack(Blocks.iron_bars, 1), Character.valueOf('A'), OrePrefixes.plate.get(Materials.Aluminium)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_ModHandler.getIC2Item("reactorPlatingExplosive", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{GT_ModHandler.getIC2Item("reactorPlating", 1L), OrePrefixes.plate.get(Materials.Lead)}); + if (!Materials.Steel.mBlastFurnaceRequired) { + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Coal), OrePrefixes.dust.get(Materials.Coal)}); + } + if (GT_Mod.gregtechproxy.mNerfDustCrafting) { + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Electrum, 6L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Silver), OrePrefixes.dust.get(Materials.Gold)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Brass, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.Zinc)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Brass, 9L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Zinc)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bronze, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.Tin)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Bronze, 9L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tin)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Invar, 9L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Nickel)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Cupronickel, 6L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.AnyCopper)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Nichrome, 15L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.Chrome)}); + } else { + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Electrum, 2L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Silver), OrePrefixes.dust.get(Materials.Gold)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Brass, 4L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.Zinc)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Brass, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Zinc)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bronze, 4L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.Tin)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bronze, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tetrahedrite), OrePrefixes.dust.get(Materials.Tin)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Invar, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Nickel)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cupronickel, 2L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.AnyCopper)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Nichrome, 5L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.Chrome)}); + } + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RoseGold, 5L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Gold), OrePrefixes.dust.get(Materials.Gold), OrePrefixes.dust.get(Materials.Gold), OrePrefixes.dust.get(Materials.Gold), OrePrefixes.dust.get(Materials.AnyCopper)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SterlingSilver, 5L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Silver), OrePrefixes.dust.get(Materials.Silver), OrePrefixes.dust.get(Materials.Silver), OrePrefixes.dust.get(Materials.Silver), OrePrefixes.dust.get(Materials.AnyCopper)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BlackBronze, 5L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Gold), OrePrefixes.dust.get(Materials.Silver), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BismuthBronze, 5L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Bismuth), OrePrefixes.dust.get(Materials.Zinc), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BlackSteel, 5L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.BlackBronze), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Steel)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RedSteel, 8L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.SterlingSilver), OrePrefixes.dust.get(Materials.BismuthBronze), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BlueSteel, 8L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.RoseGold), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel)}); + + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ultimet, 9L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Chrome), OrePrefixes.dust.get(Materials.Chrome), OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.Molybdenum)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CobaltBrass, 9L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Aluminium), OrePrefixes.dust.get(Materials.Cobalt)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.StainlessSteel, 9L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.Manganese), OrePrefixes.dust.get(Materials.Chrome)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.YttriumBariumCuprate, 6L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Yttrium), OrePrefixes.dust.get(Materials.Barium), OrePrefixes.dust.get(Materials.Barium), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper), OrePrefixes.dust.get(Materials.AnyCopper)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Kanthal, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Aluminium), OrePrefixes.dust.get(Materials.Chrome)}); + + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ultimet, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dustTiny.get(Materials.Cobalt), OrePrefixes.dustTiny.get(Materials.Cobalt), OrePrefixes.dustTiny.get(Materials.Cobalt), OrePrefixes.dustTiny.get(Materials.Cobalt), OrePrefixes.dustTiny.get(Materials.Cobalt), OrePrefixes.dustTiny.get(Materials.Chrome), OrePrefixes.dustTiny.get(Materials.Chrome), OrePrefixes.dustTiny.get(Materials.Nickel), OrePrefixes.dustTiny.get(Materials.Molybdenum)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CobaltBrass, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dustTiny.get(Materials.Brass), OrePrefixes.dustTiny.get(Materials.Brass), OrePrefixes.dustTiny.get(Materials.Brass), OrePrefixes.dustTiny.get(Materials.Brass), OrePrefixes.dustTiny.get(Materials.Brass), OrePrefixes.dustTiny.get(Materials.Brass), OrePrefixes.dustTiny.get(Materials.Brass), OrePrefixes.dustTiny.get(Materials.Aluminium), OrePrefixes.dustTiny.get(Materials.Cobalt)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.StainlessSteel, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dustTiny.get(Materials.Iron), OrePrefixes.dustTiny.get(Materials.Iron), OrePrefixes.dustTiny.get(Materials.Iron), OrePrefixes.dustTiny.get(Materials.Iron), OrePrefixes.dustTiny.get(Materials.Iron), OrePrefixes.dustTiny.get(Materials.Iron), OrePrefixes.dustTiny.get(Materials.Nickel), OrePrefixes.dustTiny.get(Materials.Manganese), OrePrefixes.dustTiny.get(Materials.Chrome)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.YttriumBariumCuprate, 6L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dustTiny.get(Materials.Yttrium), OrePrefixes.dustTiny.get(Materials.Barium), OrePrefixes.dustTiny.get(Materials.Barium), OrePrefixes.dustTiny.get(Materials.AnyCopper), OrePrefixes.dustTiny.get(Materials.AnyCopper), OrePrefixes.dustTiny.get(Materials.AnyCopper)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Kanthal, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dustTiny.get(Materials.Iron), OrePrefixes.dustTiny.get(Materials.Aluminium), OrePrefixes.dustTiny.get(Materials.Chrome)}); + + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.IronWood, 2L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.LiveRoot), OrePrefixes.dustTiny.get(Materials.Gold)}); + + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Items.gunpowder, 3), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Coal), OrePrefixes.dust.get(Materials.Sulfur), OrePrefixes.dust.get(Materials.Saltpeter), OrePrefixes.dust.get(Materials.Saltpeter)}); + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Items.gunpowder, 2), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Charcoal), OrePrefixes.dust.get(Materials.Sulfur), OrePrefixes.dust.get(Materials.Saltpeter), OrePrefixes.dust.get(Materials.Saltpeter)}); + + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 5L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Potassium), OrePrefixes.cell.get(Materials.Nitrogen), OrePrefixes.cell.get(Materials.Oxygen), OrePrefixes.cell.get(Materials.Oxygen), OrePrefixes.cell.get(Materials.Oxygen)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("carbonFiber", 1L)); + + if (GT_Mod.gregtechproxy.mDisableIC2Cables) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("copperCableItem", 1L)); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("insulatedCopperCableItem", 1L)); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("goldCableItem", 1L)); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("insulatedGoldCableItem", 1L)); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("insulatedIronCableItem", 1L)); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("glassFiberCableItem", 1L)); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("tinCableItem", 1L)); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("ironCableItem", 1L)); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("insulatedTinCableItem", 1L)); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("detectorCableItem", 1L)); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("splitterCableItem", 1L)); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("electrolyzer", 1L)); + + if (Loader.isModLoaded("NotEnoughItems")) { + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("copperCableItem", 1L)); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("insulatedCopperCableItem", 1L)); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("goldCableItem", 1L)); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("insulatedGoldCableItem", 1L)); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("insulatedIronCableItem", 1L)); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("glassFiberCableItem", 1L)); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("tinCableItem", 1L)); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("ironCableItem", 1L)); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("insulatedTinCableItem", 1L)); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("detectorCableItem", 1L)); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("splitterCableItem", 1L)); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("electrolyzer", 1L)); + } + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("batBox", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("batBox", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"PCP", "BBB", "PPP", 'C', OrePrefixes.cableGt01.get(Materials.Tin), 'P', OrePrefixes.plank.get(Materials.Wood), 'B', OrePrefixes.battery.get(Materials.Basic)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("mfeUnit", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("mfeUnit", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"CEC", "EME", "CEC", 'C', OrePrefixes.cableGt01.get(Materials.Gold), 'E', OrePrefixes.battery.get(Materials.Elite), 'M', GT_ModHandler.getIC2Item("machine", 1L)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("lvTransformer", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("lvTransformer", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"PCP", "POP", "PCP", 'C', OrePrefixes.cableGt01.get(Materials.Tin), 'O', GT_ModHandler.getIC2Item("coil", 1L), 'P', OrePrefixes.plank.get(Materials.Wood)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("mvTransformer", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("mvTransformer", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"CMC", 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'M', GT_ModHandler.getIC2Item("machine", 1L)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("hvTransformer", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("hvTransformer", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" C ", "IMB", " C ", 'C', OrePrefixes.cableGt01.get(Materials.Gold), 'M', GT_ModHandler.getIC2Item("mvTransformer", 1L), 'I', OrePrefixes.circuit.get(Materials.Basic), 'B', OrePrefixes.battery.get(Materials.Advanced)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("evTransformer", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("evTransformer", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" C ", "IMB", " C ", 'C', OrePrefixes.cableGt01.get(Materials.Aluminium), 'M', GT_ModHandler.getIC2Item("hvTransformer", 1L), 'I', OrePrefixes.circuit.get(Materials.Advanced), 'B', OrePrefixes.battery.get(Materials.Master)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("cesuUnit", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("cesuUnit", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"PCP", "BBB", "PPP", 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'P', OrePrefixes.plate.get(Materials.Bronze), 'B', OrePrefixes.battery.get(Materials.Advanced)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("luminator", 1L)); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("teleporter", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("teleporter", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"GFG", "CMC", "GDG", 'C', OrePrefixes.cableGt01.get(Materials.Platinum), 'G', OrePrefixes.circuit.get(Materials.Advanced), 'D', OrePrefixes.gem.get(Materials.Diamond), 'M', GT_ModHandler.getIC2Item("machine", 1L), 'F', GT_ModHandler.getIC2Item("frequencyTransmitter", 1L)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("energyOMat", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("energyOMat", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RBR", "CMC", 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'R', OrePrefixes.dust.get(Materials.Redstone), 'B', OrePrefixes.battery.get(Materials.Basic), 'M', GT_ModHandler.getIC2Item("machine", 1L)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("advBattery", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("advBattery", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"CTC", "TST", "TLT", 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'S', OrePrefixes.dust.get(Materials.Sulfur), 'L', OrePrefixes.dust.get(Materials.Lead), 'T', GT_ModHandler.getIC2Item("casingbronze", 1L)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("boatElectric", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("boatElectric", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"CCC", "XWX", "XXX", 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'X', OrePrefixes.plate.get(Materials.Iron), 'W', GT_ModHandler.getIC2Item("waterMill", 1L)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("cropnalyzer", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("cropnalyzer", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"CC ", "RGR", "RIR", 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'R', OrePrefixes.dust.get(Materials.Redstone), 'G', OrePrefixes.block.get(Materials.Glass), 'I', OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("coil", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("coil", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"CCC", "CXC", "CCC", 'C', OrePrefixes.wireGt01.get(Materials.Copper), 'X', OrePrefixes.ingot.get(Materials.AnyIron)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("powerunit", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("powerunit", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"BCA", "BIM", "BCA", 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'B', OrePrefixes.battery.get(Materials.Basic), 'A', GT_ModHandler.getIC2Item("casingiron", 1L), 'I', OrePrefixes.circuit.get(Materials.Basic), 'M', GT_ModHandler.getIC2Item("elemotor", 1L)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("powerunitsmall", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("powerunitsmall", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" CA", "BIM", " CA", 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'B', OrePrefixes.battery.get(Materials.Basic), 'A', GT_ModHandler.getIC2Item("casingiron", 1L), 'I', OrePrefixes.circuit.get(Materials.Basic), 'M', GT_ModHandler.getIC2Item("elemotor", 1L)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("remote", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("remote", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" C ", "TLT", " F ", 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'L', OrePrefixes.dust.get(Materials.Lapis), 'T', GT_ModHandler.getIC2Item("casingtin", 1L), 'F', GT_ModHandler.getIC2Item("frequencyTransmitter", 1L)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("odScanner", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("odScanner", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"PGP", "CBC", "WWW", 'W', OrePrefixes.cableGt01.get(Materials.Copper), 'G', OrePrefixes.dust.get(Materials.Glowstone), 'B', OrePrefixes.battery.get(Materials.Advanced), 'C', OrePrefixes.circuit.get(Materials.Advanced), 'P', GT_ModHandler.getIC2Item("casinggold", 1L)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("ovScanner", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("ovScanner", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"PDP", "GCG", "WSW", 'W', OrePrefixes.cableGt01.get(Materials.Gold), 'G', OrePrefixes.dust.get(Materials.Glowstone), 'D', OrePrefixes.battery.get(Materials.Elite), 'C', OrePrefixes.circuit.get(Materials.Advanced), 'P', GT_ModHandler.getIC2Item("casinggold", 1L), 'S', GT_ModHandler.getIC2Item("odScanner", 1L)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("solarHelmet", 1L)); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("staticBoots", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("staticBoots", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"I I", "IWI", "CCC", 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'I', OrePrefixes.ingot.get(Materials.Iron), 'W', new ItemStack(Blocks.wool)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("ecMeter", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("ecMeter", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" G ", "CIC", "C C", 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'G', OrePrefixes.dust.get(Materials.Glowstone), 'I', OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("obscurator", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("obscurator", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RER", "CAC", "RRR", 'C', OrePrefixes.cableGt01.get(Materials.Gold), 'R', OrePrefixes.dust.get(Materials.Redstone), 'E', OrePrefixes.battery.get(Materials.Advanced), 'A', OrePrefixes.circuit.get(Materials.Advanced)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("overclockerUpgrade", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("overclockerUpgrade", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"CCC", "WEW", 'W', OrePrefixes.cableGt01.get(Materials.Copper), 'C', GT_ModHandler.getIC2Item("reactorCoolantSimple", 1L, 1), 'E', OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("transformerUpgrade", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("transformerUpgrade", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"GGG", "WTW", "GEG", 'W', OrePrefixes.cableGt01.get(Materials.Gold), 'T', GT_ModHandler.getIC2Item("mvTransformer", 1L), 'E', OrePrefixes.circuit.get(Materials.Basic), 'G', OrePrefixes.block.get(Materials.Glass)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("energyStorageUpgrade", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("energyStorageUpgrade", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"PPP", "WBW", "PEP", 'W', OrePrefixes.cableGt01.get(Materials.Copper), 'E', OrePrefixes.circuit.get(Materials.Basic), 'P', OrePrefixes.plank.get(Materials.Wood), 'B', OrePrefixes.battery.get(Materials.Basic)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("ejectorUpgrade", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("ejectorUpgrade", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"PHP", "WEW", 'W', OrePrefixes.cableGt01.get(Materials.Copper), 'E', OrePrefixes.circuit.get(Materials.Basic), 'P', new ItemStack(Blocks.piston), 'H', new ItemStack(Blocks.hopper)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("suBattery", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("suBattery", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"W", "C", "R", 'W', OrePrefixes.cableGt01.get(Materials.Copper), 'C', OrePrefixes.dust.get(Materials.HydratedCoal), 'R', OrePrefixes.dust.get(Materials.Redstone)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("frequencyTransmitter", 1L)); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("pullingUpgrade", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("pullingUpgrade", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"PHP", "WEW", 'W', OrePrefixes.cableGt01.get(Materials.Copper), 'P', new ItemStack(Blocks.sticky_piston), 'R', new ItemStack(Blocks.hopper), 'E', OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("cutter", 1L)); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("cutter", 1L)); + } else { + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("glassFiberCableItem", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"GGG", "EDE", "GGG", Character.valueOf('G'), new ItemStack(Blocks.glass, 1, 32767), Character.valueOf('D'), OrePrefixes.dust.get(Materials.Silver), Character.valueOf('E'), ItemList.IC2_Energium_Dust.get(1L, new Object[0])}); + } + + GT_ModHandler.removeRecipeByOutput(ItemList.IC2_Energium_Dust.get(1L, new Object[0])); + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.gregtechrecipes, "energycrystalruby", true)) { + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Energium_Dust.get(9L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RDR", "DRD", "RDR", Character.valueOf('R'), OrePrefixes.dust.get(Materials.Redstone), Character.valueOf('D'), OrePrefixes.dust.get(Materials.Ruby)}); + } else { + GT_ModHandler.addCraftingRecipe(ItemList.IC2_Energium_Dust.get(9L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RDR", "DRD", "RDR", Character.valueOf('R'), OrePrefixes.dust.get(Materials.Redstone), Character.valueOf('D'), OrePrefixes.dust.get(Materials.Diamond)}); + } + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("lapotronCrystal", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("lapotronCrystal", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"LCL", "LSL", "LCL", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('S'), GT_ModHandler.getIC2Item("energyCrystal", 1L, 32767), Character.valueOf('L'), OrePrefixes.dust.get(Materials.Lazurite)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("lapotronCrystal", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"LCL", "LSL", "LCL", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('S'), GT_ModHandler.getIC2Item("energyCrystal", 1L, 32767), Character.valueOf('L'), OrePrefixes.dust.get(Materials.Lapis)}); + + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("luminator", 16L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RTR", "GHG", "GGG", Character.valueOf('H'), OrePrefixes.cell.get(Materials.Helium), Character.valueOf('T'), OrePrefixes.ingot.get(Materials.Tin), Character.valueOf('R'), OrePrefixes.ingot.get(Materials.AnyIron), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("luminator", 16L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RTR", "GHG", "GGG", Character.valueOf('H'), OrePrefixes.cell.get(Materials.Mercury), Character.valueOf('T'), OrePrefixes.ingot.get(Materials.Tin), Character.valueOf('R'), OrePrefixes.ingot.get(Materials.AnyIron), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + + GT_ModHandler.removeRecipe(new ItemStack[]{tStack = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), tStack, tStack, tStack, new ItemStack(Items.coal, 1, 0), tStack, tStack, tStack, tStack}); + GT_ModHandler.removeRecipe(new ItemStack[]{tStack = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), tStack, tStack, tStack, new ItemStack(Items.coal, 1, 1), tStack, tStack, tStack, tStack}); + GT_ModHandler.removeRecipe(new ItemStack[]{null, tStack = new ItemStack(Items.coal, 1), null, tStack, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), tStack, null, tStack, null}); + + GT_ModHandler.removeFurnaceSmelting(new ItemStack(Blocks.hopper)); + + GT_Log.out.println("GT_Mod: Applying harder Recipes for several Blocks."); + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "blockbreaker", false)) { + GT_ModHandler.addCraftingRecipe(GT_ModHandler.removeRecipe(new ItemStack[]{new ItemStack(Blocks.cobblestone, 1), new ItemStack(Items.iron_pickaxe, 1), new ItemStack(Blocks.cobblestone, 1), new ItemStack(Blocks.cobblestone, 1), new ItemStack(Blocks.piston, 1), new ItemStack(Blocks.cobblestone, 1), new ItemStack(Blocks.cobblestone, 1), new ItemStack(Items.redstone, 1), new ItemStack(Blocks.cobblestone, 1)}), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RGR", "RPR", "RCR", Character.valueOf('G'), OreDictNames.craftingGrinder, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('R'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('P'), OreDictNames.craftingPiston}); + } + if ((GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "beryliumreflector", true)) && + (GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("reactorReflectorThick", 1L, 1)))) { + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("reactorReflectorThick", 1L, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" N ", "NBN", " N ", Character.valueOf('B'), OrePrefixes.plate.get(Materials.Beryllium), Character.valueOf('N'), GT_ModHandler.getIC2Item("reactorReflector", 1L, 1)}); + } + if (GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Diamond, 1L) != null) { + tStack = GT_ModHandler.getRecipeOutput(new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Iron, 1L), new ItemStack(Items.redstone, 1), GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Diamond, 1L), new ItemStack(Items.diamond_pickaxe, 1), GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Diamond, 1L)}); + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "quarry", true)) { + GT_ModHandler.removeRecipeByOutput(tStack); + GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"ICI", "GIG", "DPD", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('D'), OrePrefixes.gear.get(Materials.Diamond), Character.valueOf('G'), OrePrefixes.gear.get(Materials.Gold), Character.valueOf('I'), OrePrefixes.gear.get(Materials.Steel), Character.valueOf('P'), GT_ModHandler.getIC2Item("diamondDrill", 1L, 32767)}); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "quarry", false)) { + GT_ModHandler.removeRecipeByOutput(tStack); + } + } + GT_Log.out.println("GT_Mod: Applying Recipes for Tools"); + if ((GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "nanosaber", true)) && + (GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("nanoSaber", 1L)))) { + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("nanoSaber", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"PI ", "PI ", "CLC", Character.valueOf('L'), OrePrefixes.battery.get(Materials.Master), Character.valueOf('I'), OrePrefixes.plateAlloy.get("Iridium"), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Platinum), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master)}); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "namefix", true)) { + GT_ModHandler.addCraftingRecipe(GT_ModHandler.removeRecipeByOutput(new ItemStack(Items.flint_and_steel, 1)) ? new ItemStack(Items.flint_and_steel, 1) : null, GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"S ", " F", Character.valueOf('F'), new ItemStack(Items.flint, 1), Character.valueOf('S'), "nuggetSteel"}); + } + if (GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("diamondDrill", 1L))) { + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("diamondDrill", 1L), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" D ", "DMD", "TAT", Character.valueOf('M'), GT_ModHandler.getIC2Item("miningDrill", 1L, 32767), Character.valueOf('D'), OreDictNames.craftingIndustrialDiamond, Character.valueOf('T'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('A'), OrePrefixes.circuit.get(Materials.Advanced)}); + } + if (GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("miningDrill", 1L))) { + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("miningDrill", 1L), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" S ", "SCS", "SBS", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('B'), OrePrefixes.battery.get(Materials.Basic), Character.valueOf('S'), GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "electricsteeltools", true) ? OrePrefixes.plate.get(Materials.StainlessSteel) : OrePrefixes.plate.get(Materials.Iron)}); + } + if (GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("chainsaw", 1L))) { + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("chainsaw", 1L), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"BS ", "SCS", " SS", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('B'), OrePrefixes.battery.get(Materials.Basic), Character.valueOf('S'), GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "electricsteeltools", true) ? OrePrefixes.plate.get(Materials.StainlessSteel) : OrePrefixes.plate.get(Materials.Iron)}); + } + if (GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("electricHoe", 1L))) { + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("electricHoe", 1L), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"SS ", " C ", " B ", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('B'), OrePrefixes.battery.get(Materials.Basic), Character.valueOf('S'), GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "electricsteeltools", true) ? OrePrefixes.plate.get(Materials.StainlessSteel) : OrePrefixes.plate.get(Materials.Iron)}); + } + if (GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("electricTreetap", 1L))) { + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("electricTreetap", 1L), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" B ", "SCS", "S ", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('B'), OrePrefixes.battery.get(Materials.Basic), Character.valueOf('S'), GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "electricsteeltools", true) ? OrePrefixes.plate.get(Materials.StainlessSteel) : OrePrefixes.plate.get(Materials.Iron)}); + } + GT_Log.out.println("GT_Mod: Removing Q-Armor Recipes if configured."); + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "QHelmet", false)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("quantumHelmet", 1L)); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "QPlate", false)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("quantumBodyarmor", 1L)); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "QLegs", false)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("quantumLeggings", 1L)); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "QBoots", false)) { + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("quantumBoots", 1L)); + } } - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("lapotronCrystal", 1L)); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("lapotronCrystal", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "LCL", "LSL", "LCL", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('S'), GT_ModHandler.getIC2Item("energyCrystal", 1L, 32767), Character.valueOf('L'), OrePrefixes.dust.get(Materials.Lazurite) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("lapotronCrystal", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "LCL", "LSL", "LCL", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('S'), GT_ModHandler.getIC2Item("energyCrystal", 1L, 32767), Character.valueOf('L'), OrePrefixes.dust.get(Materials.Lapis) }); - - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("luminator", 16L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "RTR", "GHG", "GGG", Character.valueOf('H'), OrePrefixes.cell.get(Materials.Helium), Character.valueOf('T'), OrePrefixes.ingot.get(Materials.Tin), Character.valueOf('R'), OrePrefixes.ingot.get(Materials.AnyIron), Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("luminator", 16L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "RTR", "GHG", "GGG", Character.valueOf('H'), OrePrefixes.cell.get(Materials.Mercury), Character.valueOf('T'), OrePrefixes.ingot.get(Materials.Tin), Character.valueOf('R'), OrePrefixes.ingot.get(Materials.AnyIron), Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - - GT_ModHandler.removeRecipe(new ItemStack[] { tStack = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), tStack, tStack, tStack, new ItemStack(Items.coal, 1, 0), tStack, tStack, tStack, tStack }); - GT_ModHandler.removeRecipe(new ItemStack[] { tStack = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), tStack, tStack, tStack, new ItemStack(Items.coal, 1, 1), tStack, tStack, tStack, tStack }); - GT_ModHandler.removeRecipe(new ItemStack[] { null, tStack = new ItemStack(Items.coal, 1), null, tStack, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), tStack, null, tStack, null }); - - GT_ModHandler.removeFurnaceSmelting(new ItemStack(Blocks.hopper)); - - GT_Log.out.println("GT_Mod: Applying harder Recipes for several Blocks."); - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "blockbreaker", false)) { - GT_ModHandler.addCraftingRecipe(GT_ModHandler.removeRecipe(new ItemStack[] { new ItemStack(Blocks.cobblestone, 1), new ItemStack(Items.iron_pickaxe, 1), new ItemStack(Blocks.cobblestone, 1), new ItemStack(Blocks.cobblestone, 1), new ItemStack(Blocks.piston, 1), new ItemStack(Blocks.cobblestone, 1), new ItemStack(Blocks.cobblestone, 1), new ItemStack(Items.redstone, 1), new ItemStack(Blocks.cobblestone, 1) }), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "RGR", "RPR", "RCR", Character.valueOf('G'), OreDictNames.craftingGrinder, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('R'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('P'), OreDictNames.craftingPiston }); - } - if ((GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "beryliumreflector", true)) && - (GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("reactorReflectorThick", 1L,1)))) { - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("reactorReflectorThick", 1L,1), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " N ", "NBN", " N ", Character.valueOf('B'), OrePrefixes.plate.get(Materials.Beryllium), Character.valueOf('N'), GT_ModHandler.getIC2Item("reactorReflector", 1L, 1) }); - } - if (GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Diamond, 1L) != null) - { - tStack = GT_ModHandler.getRecipeOutput(new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Iron, 1L), new ItemStack(Items.redstone, 1), GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Diamond, 1L), new ItemStack(Items.diamond_pickaxe, 1), GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Diamond, 1L) }); - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "quarry", true)) - { - GT_ModHandler.removeRecipeByOutput(tStack); - GT_ModHandler.addCraftingRecipe(tStack, GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "ICI", "GIG", "DPD", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('D'), OrePrefixes.gear.get(Materials.Diamond), Character.valueOf('G'), OrePrefixes.gear.get(Materials.Gold), Character.valueOf('I'), OrePrefixes.gear.get(Materials.Steel), Character.valueOf('P'), GT_ModHandler.getIC2Item("diamondDrill", 1L, 32767) }); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "quarry", false)) { - GT_ModHandler.removeRecipeByOutput(tStack); - } - } - GT_Log.out.println("GT_Mod: Applying Recipes for Tools"); - if ((GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "nanosaber", true)) && - (GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("nanoSaber", 1L)))) { - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("nanoSaber", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "PI ", "PI ", "CLC", Character.valueOf('L'), OrePrefixes.battery.get(Materials.Master), Character.valueOf('I'), OrePrefixes.plateAlloy.get("Iridium"), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Platinum), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master) }); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "namefix", true)) { - GT_ModHandler.addCraftingRecipe(GT_ModHandler.removeRecipeByOutput(new ItemStack(Items.flint_and_steel, 1)) ? new ItemStack(Items.flint_and_steel, 1) : null, GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "S ", " F", Character.valueOf('F'), new ItemStack(Items.flint, 1), Character.valueOf('S'), "nuggetSteel" }); - } - if (GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("diamondDrill", 1L))) { - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("diamondDrill", 1L), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " D ", "DMD", "TAT", Character.valueOf('M'), GT_ModHandler.getIC2Item("miningDrill", 1L, 32767), Character.valueOf('D'), OreDictNames.craftingIndustrialDiamond, Character.valueOf('T'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('A'), OrePrefixes.circuit.get(Materials.Advanced) }); - } - if (GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("miningDrill", 1L))) { - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("miningDrill", 1L), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " S ", "SCS", "SBS", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('B'), OrePrefixes.battery.get(Materials.Basic), Character.valueOf('S'), GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "electricsteeltools", true) ? OrePrefixes.plate.get(Materials.StainlessSteel) : OrePrefixes.plate.get(Materials.Iron) }); - } - if (GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("chainsaw", 1L))) { - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("chainsaw", 1L), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "BS ", "SCS", " SS", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('B'), OrePrefixes.battery.get(Materials.Basic), Character.valueOf('S'), GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "electricsteeltools", true) ? OrePrefixes.plate.get(Materials.StainlessSteel) : OrePrefixes.plate.get(Materials.Iron) }); - } - if (GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("electricHoe", 1L))) { - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("electricHoe", 1L), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { "SS ", " C ", " B ", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('B'), OrePrefixes.battery.get(Materials.Basic), Character.valueOf('S'), GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "electricsteeltools", true) ? OrePrefixes.plate.get(Materials.StainlessSteel) : OrePrefixes.plate.get(Materials.Iron) }); - } - if (GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("electricTreetap", 1L))) { - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("electricTreetap", 1L), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[] { " B ", "SCS", "S ", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('B'), OrePrefixes.battery.get(Materials.Basic), Character.valueOf('S'), GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "electricsteeltools", true) ? OrePrefixes.plate.get(Materials.StainlessSteel) : OrePrefixes.plate.get(Materials.Iron) }); - } - GT_Log.out.println("GT_Mod: Removing Q-Armor Recipes if configured."); - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "QHelmet", false)) { - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("quantumHelmet", 1L)); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "QPlate", false)) { - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("quantumBodyarmor", 1L)); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "QLegs", false)) { - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("quantumLeggings", 1L)); - } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "QBoots", false)) { - GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("quantumBoots", 1L)); - } - } } diff --git a/src/main/java/gregtech/loaders/postload/GT_CropLoader.java b/src/main/java/gregtech/loaders/postload/GT_CropLoader.java index bb9f1cf5..87ccd38c 100644 --- a/src/main/java/gregtech/loaders/postload/GT_CropLoader.java +++ b/src/main/java/gregtech/loaders/postload/GT_CropLoader.java @@ -6,49 +6,43 @@ import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_BaseCrop; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_OreDictUnificator; -import java.io.PrintStream; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class GT_CropLoader - implements Runnable -{ - public void run() - { - GT_Log.out.println("GT_Mod: Register Crops to IC2."); - try - { - new GT_BaseCrop(124, "Indigo", "Eloraam", ItemList.Crop_Drop_Indigo.get(1L, new Object[0]), null, ItemList.Crop_Drop_Indigo.get(4L, new Object[0]), 2, 4, 0, 1, 4, 1, 1, 0, 4, 0, new String[] { "Flower", "Color", "Ingredient" }); - new GT_BaseCrop(125, "Flax", "Eloraam", new ItemStack(Items.string, 1), null, null, 2, 4, 0, 1, 4, 1, 1, 2, 0, 1, new String[] { "Silk", "Vine", "Addictive" }); - new GT_BaseCrop(126, "Oilberries", "Spacetoad", ItemList.Crop_Drop_OilBerry.get(1L, new Object[0]), null, null, 9, 4, 0, 1, 4, 6, 1, 2, 1, 12, new String[] { "Fire", "Dark", "Reed", "Rotten", "Coal", "Oil" }); - new GT_BaseCrop(127, "Bobsyeruncleranks", "GenerikB", ItemList.Crop_Drop_BobsYerUncleRanks.get(1L, new Object[0]), new ItemStack[] { new ItemStack(Items.emerald, 1) }, null, 11, 4, 0, 1, 4, 4, 0, 8, 2, 9, new String[] { "Shiny", "Vine", "Emerald", "Berylium", "Crystal" }); - new GT_BaseCrop(128, "Diareed", "Direwolf20", GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Diamond, 1L), new ItemStack[] { new ItemStack(Items.diamond, 1) }, null, 12, 4, 0, 1, 4, 5, 0, 10, 2, 10, new String[] { "Fire", "Shiny", "Reed", "Coal", "Diamond", "Crystal" }); - new GT_BaseCrop(129, "Withereed", "CovertJaguar", GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L), new ItemStack[] { new ItemStack(Items.coal, 1), new ItemStack(Items.coal, 1) }, null, 8, 4, 0, 1, 4, 2, 0, 4, 1, 3, new String[] { "Fire", "Undead", "Reed", "Coal", "Rotten", "Wither" }); - new GT_BaseCrop(130, "Blazereed", "Mr. Brain", new ItemStack(Items.blaze_powder, 1), new ItemStack[] { new ItemStack(Items.blaze_rod, 1) }, null, 6, 4, 0, 1, 4, 0, 4, 1, 0, 0, new String[] { "Fire", "Blaze", "Reed", "Sulfur" }); - new GT_BaseCrop(131, "Eggplant", "Link", new ItemStack(Items.egg, 1), new ItemStack[] { new ItemStack(Items.chicken, 1), new ItemStack(Items.feather, 1), new ItemStack(Items.feather, 1), new ItemStack(Items.feather, 1) }, null, 6, 3, 900, 2, 3, 0, 4, 1, 0, 0, new String[] { "Chicken", "Egg", "Edible", "Feather", "Flower", "Addictive" }); - new GT_BaseCrop(132, "Corium", "Gregorius Techneticies", new ItemStack(Items.leather, 1), null, null, 6, 4, 0, 1, 4, 0, 2, 3, 1, 0, new String[] { "Cow", "Silk", "Vine" }); - new GT_BaseCrop(133, "Corpseplant", "Mr. Kenny", new ItemStack(Items.rotten_flesh, 1), new ItemStack[] { ItemList.Dye_Bonemeal.get(1L, new Object[0]), ItemList.Dye_Bonemeal.get(1L, new Object[0]), new ItemStack(Items.bone, 1) }, null, 5, 4, 0, 1, 4, 0, 2, 1, 0, 3, new String[] { "Toxic", "Undead", "Vine", "Edible", "Rotten" }); - new GT_BaseCrop(134, "Creeperweed", "General Spaz", GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gunpowder, 1L), null, null, 7, 4, 0, 1, 4, 3, 0, 5, 1, 3, new String[] { "Creeper", "Vine", "Explosive", "Fire", "Sulfur", "Saltpeter", "Coal" }); - new GT_BaseCrop(135, "Enderbloom", "RichardG", GT_OreDictUnificator.get(OrePrefixes.dust, Materials.EnderPearl, 1L), new ItemStack[] { new ItemStack(Items.ender_pearl, 1), new ItemStack(Items.ender_pearl, 1), new ItemStack(Items.ender_eye, 1) }, null, 10, 4, 0, 1, 4, 5, 0, 2, 1, 6, new String[] { "Ender", "Flower", "Shiny" }); - new GT_BaseCrop(136, "Meatrose", "VintageBeef", new ItemStack(Items.dye, 1, 9), new ItemStack[] { new ItemStack(Items.beef, 1), new ItemStack(Items.porkchop, 1), new ItemStack(Items.chicken, 1), new ItemStack(Items.fish, 1) }, null, 7, 4, 1500, 1, 4, 0, 4, 1, 3, 0, new String[] { "Edible", "Flower", "Cow", "Fish", "Chicken", "Pig" }); - new GT_BaseCrop(137, "Milkwart", "Mr. Brain", ItemList.Crop_Drop_MilkWart.get(1L, new Object[0]), null, ItemList.Crop_Drop_MilkWart.get(4L, new Object[0]), 6, 3, 900, 1, 3, 0, 3, 0, 1, 0, new String[] { "Edible", "Milk", "Cow" }); - new GT_BaseCrop(138, "Slimeplant", "Neowulf", new ItemStack(Items.slime_ball, 1), null, null, 6, 4, 0, 3, 4, 3, 0, 0, 0, 2, new String[] { "Slime", "Bouncy", "Sticky", "Bush" }); - new GT_BaseCrop(139, "Spidernip", "Mr. Kenny", new ItemStack(Items.string, 1), new ItemStack[] { new ItemStack(Items.spider_eye, 1), new ItemStack(Blocks.web, 1) }, null, 4, 4, 600, 1, 4, 2, 1, 4, 1, 3, new String[] { "Toxic", "Silk", "Spider", "Flower", "Ingredient", "Addictive" }); - new GT_BaseCrop(140, "Tearstalks", "Neowulf", new ItemStack(Items.ghast_tear, 1), null, null, 8, 4, 0, 1, 4, 1, 2, 0, 0, 0, new String[] { "Healing", "Nether", "Ingredient", "Reed", "Ghast" }); - new GT_BaseCrop(141, "Tine", "Gregorius Techneticies", ItemList.Crop_Drop_Tine.get(1L, new Object[0]), null, null, 5, 3, 0, 2, 3, 2, 0, 3, 0, 0, new String[] { "Shiny", "Metal", "Pine", "Tin", "Bush" }); - new GT_BaseCrop(142, "Coppon", "Mr. Brain", ItemList.Crop_Drop_Coppon.get(1L, new Object[0]), null, null, 6, 3, 0, 2, 3, 2, 0, 1, 1, 1, new String[] { "Shiny", "Metal", "Cotton", "Copper", "Bush" }); - new GT_BaseCrop(143, "Brown Mushrooms", "Mr. Brain", new ItemStack(Blocks.brown_mushroom, 1), null, new ItemStack(Blocks.brown_mushroom, 4), 1, 3, 0, 1, 3, 0, 2, 0, 0, 2, new String[] { "Edible", "Mushroom", "Ingredient" }); - new GT_BaseCrop(144, "Red Mushrooms", "Mr. Kenny", new ItemStack(Blocks.red_mushroom, 1), null, new ItemStack(Blocks.red_mushroom, 4), 1, 3, 0, 1, 3, 0, 1, 3, 0, 2, new String[] { "Toxic", "Mushroom", "Ingredient" }); - new GT_BaseCrop(145, "Argentia", "Eloraam", ItemList.Crop_Drop_Argentia.get(1L, new Object[0]), null, null, 7, 4, 0, 3, 4, 2, 0, 1, 0, 0, new String[] { "Shiny", "Metal", "Silver", "Reed" }); - new GT_BaseCrop(146, "Plumbilia", "KingLemming", ItemList.Crop_Drop_Plumbilia.get(1L, new Object[0]), null, null, 6, 4, 0, 3, 4, 2, 0, 3, 1, 1, new String[] { "Heavy", "Metal", "Lead", "Reed" }); - new GT_BaseCrop(147, "Steeleafranks", "Benimatic", GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steeleaf, 1L), new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steeleaf, 1L) }, null, 10, 4, 0, 1, 4, 3, 0, 7, 2, 8, new String[] { "Metal", "Vine", "Iron" }); - new GT_BaseCrop(148, "Liveroots", "Benimatic", GT_OreDictUnificator.get(OrePrefixes.dust, Materials.LiveRoot, 1L), new ItemStack[] { ItemList.TF_LiveRoot.get(1L, new Object[0]) }, null, 8, 4, 0, 1, 4, 2, 0, 5, 2, 6, new String[] { "Wood", "Vine" }); + implements Runnable { + public void run() { + GT_Log.out.println("GT_Mod: Register Crops to IC2."); + try { + new GT_BaseCrop(124, "Indigo", "Eloraam", ItemList.Crop_Drop_Indigo.get(1L, new Object[0]), null, ItemList.Crop_Drop_Indigo.get(4L, new Object[0]), 2, 4, 0, 1, 4, 1, 1, 0, 4, 0, new String[]{"Flower", "Color", "Ingredient"}); + new GT_BaseCrop(125, "Flax", "Eloraam", new ItemStack(Items.string, 1), null, null, 2, 4, 0, 1, 4, 1, 1, 2, 0, 1, new String[]{"Silk", "Vine", "Addictive"}); + new GT_BaseCrop(126, "Oilberries", "Spacetoad", ItemList.Crop_Drop_OilBerry.get(1L, new Object[0]), null, null, 9, 4, 0, 1, 4, 6, 1, 2, 1, 12, new String[]{"Fire", "Dark", "Reed", "Rotten", "Coal", "Oil"}); + new GT_BaseCrop(127, "Bobsyeruncleranks", "GenerikB", ItemList.Crop_Drop_BobsYerUncleRanks.get(1L, new Object[0]), new ItemStack[]{new ItemStack(Items.emerald, 1)}, null, 11, 4, 0, 1, 4, 4, 0, 8, 2, 9, new String[]{"Shiny", "Vine", "Emerald", "Berylium", "Crystal"}); + new GT_BaseCrop(128, "Diareed", "Direwolf20", GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Diamond, 1L), new ItemStack[]{new ItemStack(Items.diamond, 1)}, null, 12, 4, 0, 1, 4, 5, 0, 10, 2, 10, new String[]{"Fire", "Shiny", "Reed", "Coal", "Diamond", "Crystal"}); + new GT_BaseCrop(129, "Withereed", "CovertJaguar", GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L), new ItemStack[]{new ItemStack(Items.coal, 1), new ItemStack(Items.coal, 1)}, null, 8, 4, 0, 1, 4, 2, 0, 4, 1, 3, new String[]{"Fire", "Undead", "Reed", "Coal", "Rotten", "Wither"}); + new GT_BaseCrop(130, "Blazereed", "Mr. Brain", new ItemStack(Items.blaze_powder, 1), new ItemStack[]{new ItemStack(Items.blaze_rod, 1)}, null, 6, 4, 0, 1, 4, 0, 4, 1, 0, 0, new String[]{"Fire", "Blaze", "Reed", "Sulfur"}); + new GT_BaseCrop(131, "Eggplant", "Link", new ItemStack(Items.egg, 1), new ItemStack[]{new ItemStack(Items.chicken, 1), new ItemStack(Items.feather, 1), new ItemStack(Items.feather, 1), new ItemStack(Items.feather, 1)}, null, 6, 3, 900, 2, 3, 0, 4, 1, 0, 0, new String[]{"Chicken", "Egg", "Edible", "Feather", "Flower", "Addictive"}); + new GT_BaseCrop(132, "Corium", "Gregorius Techneticies", new ItemStack(Items.leather, 1), null, null, 6, 4, 0, 1, 4, 0, 2, 3, 1, 0, new String[]{"Cow", "Silk", "Vine"}); + new GT_BaseCrop(133, "Corpseplant", "Mr. Kenny", new ItemStack(Items.rotten_flesh, 1), new ItemStack[]{ItemList.Dye_Bonemeal.get(1L, new Object[0]), ItemList.Dye_Bonemeal.get(1L, new Object[0]), new ItemStack(Items.bone, 1)}, null, 5, 4, 0, 1, 4, 0, 2, 1, 0, 3, new String[]{"Toxic", "Undead", "Vine", "Edible", "Rotten"}); + new GT_BaseCrop(134, "Creeperweed", "General Spaz", GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gunpowder, 1L), null, null, 7, 4, 0, 1, 4, 3, 0, 5, 1, 3, new String[]{"Creeper", "Vine", "Explosive", "Fire", "Sulfur", "Saltpeter", "Coal"}); + new GT_BaseCrop(135, "Enderbloom", "RichardG", GT_OreDictUnificator.get(OrePrefixes.dust, Materials.EnderPearl, 1L), new ItemStack[]{new ItemStack(Items.ender_pearl, 1), new ItemStack(Items.ender_pearl, 1), new ItemStack(Items.ender_eye, 1)}, null, 10, 4, 0, 1, 4, 5, 0, 2, 1, 6, new String[]{"Ender", "Flower", "Shiny"}); + new GT_BaseCrop(136, "Meatrose", "VintageBeef", new ItemStack(Items.dye, 1, 9), new ItemStack[]{new ItemStack(Items.beef, 1), new ItemStack(Items.porkchop, 1), new ItemStack(Items.chicken, 1), new ItemStack(Items.fish, 1)}, null, 7, 4, 1500, 1, 4, 0, 4, 1, 3, 0, new String[]{"Edible", "Flower", "Cow", "Fish", "Chicken", "Pig"}); + new GT_BaseCrop(137, "Milkwart", "Mr. Brain", ItemList.Crop_Drop_MilkWart.get(1L, new Object[0]), null, ItemList.Crop_Drop_MilkWart.get(4L, new Object[0]), 6, 3, 900, 1, 3, 0, 3, 0, 1, 0, new String[]{"Edible", "Milk", "Cow"}); + new GT_BaseCrop(138, "Slimeplant", "Neowulf", new ItemStack(Items.slime_ball, 1), null, null, 6, 4, 0, 3, 4, 3, 0, 0, 0, 2, new String[]{"Slime", "Bouncy", "Sticky", "Bush"}); + new GT_BaseCrop(139, "Spidernip", "Mr. Kenny", new ItemStack(Items.string, 1), new ItemStack[]{new ItemStack(Items.spider_eye, 1), new ItemStack(Blocks.web, 1)}, null, 4, 4, 600, 1, 4, 2, 1, 4, 1, 3, new String[]{"Toxic", "Silk", "Spider", "Flower", "Ingredient", "Addictive"}); + new GT_BaseCrop(140, "Tearstalks", "Neowulf", new ItemStack(Items.ghast_tear, 1), null, null, 8, 4, 0, 1, 4, 1, 2, 0, 0, 0, new String[]{"Healing", "Nether", "Ingredient", "Reed", "Ghast"}); + new GT_BaseCrop(141, "Tine", "Gregorius Techneticies", ItemList.Crop_Drop_Tine.get(1L, new Object[0]), null, null, 5, 3, 0, 2, 3, 2, 0, 3, 0, 0, new String[]{"Shiny", "Metal", "Pine", "Tin", "Bush"}); + new GT_BaseCrop(142, "Coppon", "Mr. Brain", ItemList.Crop_Drop_Coppon.get(1L, new Object[0]), null, null, 6, 3, 0, 2, 3, 2, 0, 1, 1, 1, new String[]{"Shiny", "Metal", "Cotton", "Copper", "Bush"}); + new GT_BaseCrop(143, "Brown Mushrooms", "Mr. Brain", new ItemStack(Blocks.brown_mushroom, 1), null, new ItemStack(Blocks.brown_mushroom, 4), 1, 3, 0, 1, 3, 0, 2, 0, 0, 2, new String[]{"Edible", "Mushroom", "Ingredient"}); + new GT_BaseCrop(144, "Red Mushrooms", "Mr. Kenny", new ItemStack(Blocks.red_mushroom, 1), null, new ItemStack(Blocks.red_mushroom, 4), 1, 3, 0, 1, 3, 0, 1, 3, 0, 2, new String[]{"Toxic", "Mushroom", "Ingredient"}); + new GT_BaseCrop(145, "Argentia", "Eloraam", ItemList.Crop_Drop_Argentia.get(1L, new Object[0]), null, null, 7, 4, 0, 3, 4, 2, 0, 1, 0, 0, new String[]{"Shiny", "Metal", "Silver", "Reed"}); + new GT_BaseCrop(146, "Plumbilia", "KingLemming", ItemList.Crop_Drop_Plumbilia.get(1L, new Object[0]), null, null, 6, 4, 0, 3, 4, 2, 0, 3, 1, 1, new String[]{"Heavy", "Metal", "Lead", "Reed"}); + new GT_BaseCrop(147, "Steeleafranks", "Benimatic", GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steeleaf, 1L), new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steeleaf, 1L)}, null, 10, 4, 0, 1, 4, 3, 0, 7, 2, 8, new String[]{"Metal", "Vine", "Iron"}); + new GT_BaseCrop(148, "Liveroots", "Benimatic", GT_OreDictUnificator.get(OrePrefixes.dust, Materials.LiveRoot, 1L), new ItemStack[]{ItemList.TF_LiveRoot.get(1L, new Object[0])}, null, 8, 4, 0, 1, 4, 2, 0, 5, 2, 6, new String[]{"Wood", "Vine"}); + } catch (Throwable e) { + GT_Log.err.println("GT_Mod: Failed to register Crops to IC2."); + e.printStackTrace(GT_Log.err); + } } - catch (Throwable e) - { - GT_Log.err.println("GT_Mod: Failed to register Crops to IC2."); - e.printStackTrace(GT_Log.err); - } - } } diff --git a/src/main/java/gregtech/loaders/postload/GT_ItemMaxStacksizeLoader.java b/src/main/java/gregtech/loaders/postload/GT_ItemMaxStacksizeLoader.java index 6d5e177f..eb58894b 100644 --- a/src/main/java/gregtech/loaders/postload/GT_ItemMaxStacksizeLoader.java +++ b/src/main/java/gregtech/loaders/postload/GT_ItemMaxStacksizeLoader.java @@ -4,81 +4,75 @@ import gregtech.GT_Mod; import gregtech.api.enums.ItemList; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_Log; -import gregtech.common.GT_Proxy; -import java.io.PrintStream; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; public class GT_ItemMaxStacksizeLoader - implements Runnable -{ - public void run() - { - GT_Log.out.println("GT_Mod: Changing maximum Stacksizes if configured."); - - ItemList.Upgrade_Overclocker.getItem().setMaxStackSize(GT_Mod.gregtechproxy.mUpgradeCount); - Items.cake.setMaxStackSize(64); - Items.wooden_door.setMaxStackSize(8); - Items.iron_door.setMaxStackSize(8); - if (OrePrefixes.plank.mDefaultStackSize < 64) - { - Item.getItemFromBlock(Blocks.wooden_slab).setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); - Item.getItemFromBlock(Blocks.double_wooden_slab).setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); - Item.getItemFromBlock(Blocks.oak_stairs).setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); - Item.getItemFromBlock(Blocks.jungle_stairs).setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); - Item.getItemFromBlock(Blocks.birch_stairs).setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); - Item.getItemFromBlock(Blocks.spruce_stairs).setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); - Item.getItemFromBlock(Blocks.acacia_stairs).setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); - Item.getItemFromBlock(Blocks.dark_oak_stairs).setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); + implements Runnable { + public void run() { + GT_Log.out.println("GT_Mod: Changing maximum Stacksizes if configured."); + + ItemList.Upgrade_Overclocker.getItem().setMaxStackSize(GT_Mod.gregtechproxy.mUpgradeCount); + Items.cake.setMaxStackSize(64); + Items.wooden_door.setMaxStackSize(8); + Items.iron_door.setMaxStackSize(8); + if (OrePrefixes.plank.mDefaultStackSize < 64) { + Item.getItemFromBlock(Blocks.wooden_slab).setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); + Item.getItemFromBlock(Blocks.double_wooden_slab).setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); + Item.getItemFromBlock(Blocks.oak_stairs).setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); + Item.getItemFromBlock(Blocks.jungle_stairs).setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); + Item.getItemFromBlock(Blocks.birch_stairs).setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); + Item.getItemFromBlock(Blocks.spruce_stairs).setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); + Item.getItemFromBlock(Blocks.acacia_stairs).setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); + Item.getItemFromBlock(Blocks.dark_oak_stairs).setMaxStackSize(OrePrefixes.plank.mDefaultStackSize); + } + if (OrePrefixes.block.mDefaultStackSize < 64) { + Item.getItemFromBlock(Blocks.stone_slab).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.double_stone_slab).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.brick_stairs).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.nether_brick_stairs).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.sandstone_stairs).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.stone_stairs).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.stone_brick_stairs).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.packed_ice).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.ice).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.soul_sand).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.glowstone).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.snow).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.snow).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.iron_block).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.gold_block).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.emerald_block).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.lapis_block).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.diamond_block).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.clay).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.redstone_lamp).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.dirt).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.grass).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.mycelium).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.gravel).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.sand).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.brick_block).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.wool).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.melon_block).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.pumpkin).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.lit_pumpkin).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.dispenser).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.obsidian).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.piston).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.sticky_piston).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.crafting_table).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.glass).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.jukebox).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.anvil).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.chest).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.trapped_chest).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.noteblock).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.mob_spawner).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.bookshelf).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.furnace).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + Item.getItemFromBlock(Blocks.lit_furnace).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); + } } - if (OrePrefixes.block.mDefaultStackSize < 64) - { - Item.getItemFromBlock(Blocks.stone_slab).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.double_stone_slab).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.brick_stairs).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.nether_brick_stairs).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.sandstone_stairs).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.stone_stairs).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.stone_brick_stairs).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.packed_ice).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.ice).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.soul_sand).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.glowstone).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.snow).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.snow).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.iron_block).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.gold_block).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.emerald_block).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.lapis_block).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.diamond_block).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.clay).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.redstone_lamp).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.dirt).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.grass).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.mycelium).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.gravel).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.sand).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.brick_block).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.wool).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.melon_block).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.pumpkin).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.lit_pumpkin).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.dispenser).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.obsidian).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.piston).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.sticky_piston).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.crafting_table).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.glass).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.jukebox).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.anvil).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.chest).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.trapped_chest).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.noteblock).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.mob_spawner).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.bookshelf).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.furnace).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - Item.getItemFromBlock(Blocks.lit_furnace).setMaxStackSize(OrePrefixes.block.mDefaultStackSize); - } - } } diff --git a/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java index aa21c389..95a89b66 100644 --- a/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java +++ b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java @@ -1,42 +1,12 @@ package gregtech.loaders.postload; +import cpw.mods.fml.common.Loader; import gregtech.GT_Mod; import gregtech.api.GregTech_API; -import gregtech.api.enums.ConfigCategories; -import gregtech.api.enums.ConfigCategories.Recipes; -import gregtech.api.enums.Dyes; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.SubTag; -import gregtech.api.enums.TC_Aspects; -//import gregtech.api.enums.TC_Aspects.TC_AspectStack; -import gregtech.api.interfaces.internal.IGT_RecipeAdder; -import gregtech.api.interfaces.internal.IThaumcraftCompat; +import gregtech.api.enums.*; import gregtech.api.objects.MaterialStack; -import gregtech.api.util.GT_Config; -import gregtech.api.util.GT_LanguageManager; -import gregtech.api.util.GT_Log; -import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Utility; +import gregtech.api.util.*; import gregtech.common.GT_DummyWorld; -import gregtech.common.GT_IteratorRandom; -import ic2.api.item.IC2Items; -import ic2.api.recipe.IMachineRecipeManager; -import ic2.core.Ic2Items; - -import java.io.PrintStream; -import java.util.Arrays; - -import cofh.api.modhelpers.ThaumcraftHelper; -import cpw.mods.fml.common.Loader; -import thaumcraft.api.ThaumcraftApi; -import thaumcraft.api.ThaumcraftApiHelper; -import thaumcraft.api.aspects.Aspect; -import thaumcraft.api.aspects.AspectList; -import thaumcraft.api.aspects.IEssentiaContainerItem; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -45,1445 +15,1432 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; +import java.util.Arrays; + +//import gregtech.api.enums.TC_Aspects.TC_AspectStack; + public class GT_MachineRecipeLoader - implements Runnable -{ - public void run() - { - GT_Log.out.println("GT_Mod: Adding non-OreDict Machine Recipes."); - try - { - GT_Utility.removeSimpleIC2MachineRecipe(GT_Values.NI, ic2.api.recipe.Recipes.metalformerExtruding.getRecipes(), ItemList.Cell_Empty.get(3L, new Object[0])); - GT_Utility.removeSimpleIC2MachineRecipe(ItemList.IC2_Energium_Dust.get(1L, new Object[0]), ic2.api.recipe.Recipes.compressor.getRecipes(), GT_Values.NI); - GT_Utility.removeSimpleIC2MachineRecipe(new ItemStack(Items.gunpowder), ic2.api.recipe.Recipes.extractor.getRecipes(), GT_Values.NI); - GT_Utility.removeSimpleIC2MachineRecipe(new ItemStack(Blocks.wool, 1, 32767), ic2.api.recipe.Recipes.extractor.getRecipes(), GT_Values.NI); - } - catch (Throwable e) {} - GT_Values.RA.addFluidExtractionRecipe(new ItemStack(Items.wheat_seeds, 1, 32767), GT_Values.NI, Materials.SeedOil.getFluid(5L), 10000, 32, 2); - GT_Values.RA.addFluidExtractionRecipe(new ItemStack(Items.melon_seeds, 1, 32767), GT_Values.NI, Materials.SeedOil.getFluid(3L), 10000, 32, 2); - GT_Values.RA.addFluidExtractionRecipe(new ItemStack(Items.pumpkin_seeds, 1, 32767), GT_Values.NI, Materials.SeedOil.getFluid(6L), 10000, 32, 2); - try - { - GT_DummyWorld tWorld = (GT_DummyWorld)GT_Values.DW; - while (tWorld.mRandom.mIterationStep > 0) { - GT_Values.RA.addFluidExtractionRecipe(GT_Utility.copyAmount(1L, new Object[] { ForgeHooks.getGrassSeed(tWorld) }), GT_Values.NI, Materials.SeedOil.getFluid(5L), 10000, 64, 2); - } - } - catch (Throwable e) - { - GT_Log.out.println("GT_Mod: failed to iterate somehow, maybe it's your Forge Version causing it. But it's not that important\n"); - e.printStackTrace(GT_Log.err); - } - GT_Values.RA.addPrinterRecipe(GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Paper, 1L), FluidRegistry.getFluidStack("squidink", 36), GT_Values.NI, ItemList.Paper_Punch_Card_Empty.get(1L, new Object[0]), 100, 2); - GT_Values.RA.addPrinterRecipe(ItemList.Paper_Punch_Card_Empty.get(1L, new Object[0]), FluidRegistry.getFluidStack("squidink", 36), ItemList.Tool_DataStick.getWithName(0L, "With Punch Card Data", new Object[0]), ItemList.Paper_Punch_Card_Encoded.get(1L, new Object[0]), 100, 2); - GT_Values.RA.addPrinterRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 3L), FluidRegistry.getFluidStack("squidink", 144), ItemList.Tool_DataStick.getWithName(0L, "With Scanned Book Data", new Object[0]), ItemList.Paper_Printed_Pages.get(1L, new Object[0]), 400, 2); - GT_Values.RA.addPrinterRecipe(new ItemStack(Items.map, 1, 32767), FluidRegistry.getFluidStack("squidink", 144), ItemList.Tool_DataStick.getWithName(0L, "With Scanned Map Data", new Object[0]), new ItemStack(Items.filled_map, 1, 0), 400, 2); - GT_Values.RA.addPrinterRecipe(new ItemStack(Items.book, 1, 32767), FluidRegistry.getFluidStack("squidink", 144), GT_Values.NI, GT_Utility.getWrittenBook("Manual_Printer", ItemList.Book_Written_01.get(1L, new Object[0])), 400, 2); - for (OrePrefixes tPrefix : Arrays.asList(new OrePrefixes[] { OrePrefixes.dust, OrePrefixes.dustSmall, OrePrefixes.dustTiny })) - { - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.EnderPearl, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Blaze, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.EnderEye, 1L * tPrefix.mMaterialAmount), (int)(100L * tPrefix.mMaterialAmount / 3628800L), 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Gold, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Silver, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.Electrum, 2L * tPrefix.mMaterialAmount), (int)(200L * tPrefix.mMaterialAmount / 3628800L), 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Iron, 2L), GT_OreDictUnificator.get(tPrefix, Materials.Nickel, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.Invar, 3L * tPrefix.mMaterialAmount), (int)(300L * tPrefix.mMaterialAmount / 3628800L), 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Iron, 4L), GT_OreDictUnificator.get(tPrefix, Materials.Invar, 3L), GT_OreDictUnificator.get(tPrefix, Materials.Manganese, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Chrome, 1L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.StainlessSteel, 9L * tPrefix.mMaterialAmount), (int)(900L * tPrefix.mMaterialAmount / 3628800L), 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Iron, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Aluminium, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Chrome, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.Kanthal, 3L * tPrefix.mMaterialAmount), (int)(300L * tPrefix.mMaterialAmount / 3628800L), 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Copper, 3L), GT_OreDictUnificator.get(tPrefix, Materials.Barium, 2L), GT_OreDictUnificator.get(tPrefix, Materials.Yttrium, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.YttriumBariumCuprate, 6L * tPrefix.mMaterialAmount), (int)(600L * tPrefix.mMaterialAmount / 3628800L), 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Copper, 3L), GT_OreDictUnificator.get(tPrefix, Materials.Zinc, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.Brass, 4L * tPrefix.mMaterialAmount), (int)(400L * tPrefix.mMaterialAmount / 3628800L), 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Copper, 3L), GT_OreDictUnificator.get(tPrefix, Materials.Tin, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.Bronze, 4L * tPrefix.mMaterialAmount), (int)(400L * tPrefix.mMaterialAmount / 3628800L), 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Copper, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Nickel, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.Cupronickel, 2L * tPrefix.mMaterialAmount), (int)(200L * tPrefix.mMaterialAmount / 3628800L), 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Copper, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Gold, 4L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.RoseGold, 5L * tPrefix.mMaterialAmount), (int)(500L * tPrefix.mMaterialAmount / 3628800L), 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Copper, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Silver, 4L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.SterlingSilver, 5L * tPrefix.mMaterialAmount), (int)(500L * tPrefix.mMaterialAmount / 3628800L), 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Copper, 3L), GT_OreDictUnificator.get(tPrefix, Materials.Electrum, 2L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.BlackBronze, 5L * tPrefix.mMaterialAmount), (int)(500L * tPrefix.mMaterialAmount / 3628800L), 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Bismuth, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Brass, 4L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.BismuthBronze, 5L * tPrefix.mMaterialAmount), (int)(500L * tPrefix.mMaterialAmount / 3628800L), 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.BlackBronze, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Nickel, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Steel, 3L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.BlackSteel, 5L * tPrefix.mMaterialAmount), (int)(500L * tPrefix.mMaterialAmount / 3628800L), 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.SterlingSilver, 1L), GT_OreDictUnificator.get(tPrefix, Materials.BismuthBronze, 1L), GT_OreDictUnificator.get(tPrefix, Materials.BlackSteel, 4L), GT_OreDictUnificator.get(tPrefix, Materials.Steel, 2L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.RedSteel, 8L * tPrefix.mMaterialAmount), (int)(800L * tPrefix.mMaterialAmount / 3628800L), 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.RoseGold, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Brass, 1L), GT_OreDictUnificator.get(tPrefix, Materials.BlackSteel, 4L), GT_OreDictUnificator.get(tPrefix, Materials.Steel, 2L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.BlueSteel, 8L * tPrefix.mMaterialAmount), (int)(800L * tPrefix.mMaterialAmount / 3628800L), 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Cobalt, 5L), GT_OreDictUnificator.get(tPrefix, Materials.Chrome, 2L), GT_OreDictUnificator.get(tPrefix, Materials.Nickel, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Molybdenum, 1L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.Ultimet, 9L * tPrefix.mMaterialAmount), (int)(900L * tPrefix.mMaterialAmount / 3628800L), 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Brass, 7L), GT_OreDictUnificator.get(tPrefix, Materials.Aluminium, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Cobalt, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.CobaltBrass, 9L * tPrefix.mMaterialAmount), (int)(900L * tPrefix.mMaterialAmount / 3628800L), 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Saltpeter, 2L), GT_OreDictUnificator.get(tPrefix, Materials.Sulfur, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Coal, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.Gunpowder, 4L * tPrefix.mMaterialAmount), (int)(400L * tPrefix.mMaterialAmount / 3628800L), 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Saltpeter, 2L), GT_OreDictUnificator.get(tPrefix, Materials.Sulfur, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Charcoal, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.Gunpowder, 3L * tPrefix.mMaterialAmount), (int)(300L * tPrefix.mMaterialAmount / 3628800L), 8); - } - GT_Values.RA.addMixerRecipe(new ItemStack(Items.rotten_flesh, 1, 0), new ItemStack(Items.fermented_spider_eye, 1, 0), ItemList.IC2_Scrap.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatRaw, 1L), FluidRegistry.getFluidStack("potion.purpledrink", 750), FluidRegistry.getFluidStack("sludge", 1000), ItemList.Food_Chum.get(4L, new Object[0]), 128, 24); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wheat, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, Materials.Water.getFluid(1000L), GT_Values.NF, ItemList.Food_Dough.get(2L, new Object[0]), 32, 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chili, 1L), ItemList.Food_PotatoChips.get(1L, new Object[0]), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.Food_ChiliChips.get(1L, new Object[0]), 32, 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Clay, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 3L), GT_Values.NI, GT_Values.NI, Materials.Water.getFluid(500L), Materials.Concrete.getMolten(576L), GT_Values.NI, 20, 16); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Redstone, 5L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ruby, 4L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.IC2_Energium_Dust.get(1L, new Object[0]), 100, 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 5L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ruby, 4L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.IC2_Energium_Dust.get(9L, new Object[0]), 900, 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), new ItemStack(Blocks.brown_mushroom, 1), new ItemStack(Items.spider_eye, 1), GT_Values.NI, GT_Values.NF, GT_Values.NF, new ItemStack(Items.fermented_spider_eye, 1), 100, 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.LiveRoot, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.IronWood, 2L), 100, 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 9L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.LiveRoot, 9L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.IronWood, 18L), 900, 8); - GT_Values.RA.addMixerRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.NetherQuartz, 1L), GT_Values.NI, Materials.Water.getFluid(500L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Fluix, 2L), 20, 16); - GT_Values.RA.addMixerRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.NetherQuartz, 1L), GT_Values.NI, GT_ModHandler.getDistilledWater(500L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Fluix, 2L), 20, 16); - GT_Values.RA.addMixerRecipe(ItemList.IC2_Fertilizer.get(1L, new Object[0]), new ItemStack(Blocks.dirt, 8, 32767), GT_Values.NI, GT_Values.NI, Materials.Water.getFluid(1000L), GT_Values.NF, GT_ModHandler.getModItem("Forestry", "soil", 8L, 0), 64, 16); - GT_Values.RA.addMixerRecipe(ItemList.FR_Fertilizer.get(1L, new Object[0]), new ItemStack(Blocks.dirt, 8, 32767), GT_Values.NI, GT_Values.NI, Materials.Water.getFluid(1000L), GT_Values.NF, GT_ModHandler.getModItem("Forestry", "soil", 8L, 0), 64, 16); - GT_Values.RA.addMixerRecipe(ItemList.FR_Compost.get(1L, new Object[0]), new ItemStack(Blocks.dirt, 8, 32767), GT_Values.NI, GT_Values.NI, Materials.Water.getFluid(1000L), GT_Values.NF, GT_ModHandler.getModItem("Forestry", "soil", 8L, 0), 64, 16); - GT_Values.RA.addMixerRecipe(ItemList.FR_Mulch.get(1L, new Object[0]), new ItemStack(Blocks.dirt, 8, 32767), GT_Values.NI, GT_Values.NI, Materials.Water.getFluid(1000L), GT_Values.NF, GT_ModHandler.getModItem("Forestry", "soil", 9L, 0), 64, 16); - GT_Values.RA.addMixerRecipe(new ItemStack(Blocks.sand, 1, 32767), new ItemStack(Blocks.dirt, 1, 32767), GT_Values.NI, GT_Values.NI, Materials.Water.getFluid(250L), GT_Values.NF, GT_ModHandler.getModItem("Forestry", "soil", 2L, 1), 16, 16); - - GT_Values.RA.addExtruderRecipe(ItemList.FR_Wax.get(1L, new Object[0]), ItemList.Shape_Extruder_Cell.get(0L, new Object[0]), ItemList.FR_WaxCapsule.get(1L, new Object[0]), 64, 16); - GT_Values.RA.addExtruderRecipe(ItemList.FR_RefractoryWax.get(1L, new Object[0]), ItemList.Shape_Extruder_Cell.get(0L, new Object[0]), ItemList.FR_RefractoryCapsule.get(1L, new Object[0]), 128, 16); - - GT_Values.RA.addFluidCannerRecipe(ItemList.Battery_Hull_LV.get(1L, new Object[0]), ItemList.IC2_ReBattery.get(1L, new Object[0]), Materials.Redstone.getMolten(288L), GT_Values.NF); - GT_Values.RA.addFluidCannerRecipe(ItemList.Battery_Hull_LV.get(1L, new Object[0]), ItemList.Battery_SU_LV_Mercury.getWithCharge(1L, Integer.MAX_VALUE, new Object[0]), Materials.Mercury.getFluid(1000L), GT_Values.NF); - GT_Values.RA.addFluidCannerRecipe(ItemList.Battery_Hull_MV.get(1L, new Object[0]), ItemList.Battery_SU_MV_Mercury.getWithCharge(1L, Integer.MAX_VALUE, new Object[0]), Materials.Mercury.getFluid(4000L), GT_Values.NF); - GT_Values.RA.addFluidCannerRecipe(ItemList.Battery_Hull_HV.get(1L, new Object[0]), ItemList.Battery_SU_HV_Mercury.getWithCharge(1L, Integer.MAX_VALUE, new Object[0]), Materials.Mercury.getFluid(16000L), GT_Values.NF); - GT_Values.RA.addFluidCannerRecipe(ItemList.Battery_Hull_LV.get(1L, new Object[0]), ItemList.Battery_SU_LV_SulfuricAcid.getWithCharge(1L, Integer.MAX_VALUE, new Object[0]), Materials.SulfuricAcid.getFluid(1000L), GT_Values.NF); - GT_Values.RA.addFluidCannerRecipe(ItemList.Battery_Hull_MV.get(1L, new Object[0]), ItemList.Battery_SU_MV_SulfuricAcid.getWithCharge(1L, Integer.MAX_VALUE, new Object[0]), Materials.SulfuricAcid.getFluid(4000L), GT_Values.NF); - GT_Values.RA.addFluidCannerRecipe(ItemList.Battery_Hull_HV.get(1L, new Object[0]), ItemList.Battery_SU_HV_SulfuricAcid.getWithCharge(1L, Integer.MAX_VALUE, new Object[0]), Materials.SulfuricAcid.getFluid(16000L), GT_Values.NF); - GT_Values.RA.addFluidCannerRecipe(ItemList.TF_Vial_FieryTears.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), GT_Values.NF, Materials.FierySteel.getFluid(250L)); - - Materials tMaterial = Materials.Iron; - if (tMaterial.mStandardMoltenFluid != null) { - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Casing.get(0L, new Object[0]), tMaterial.getMolten(72L), ItemList.IC2_Item_Casing_Iron.get(1L, new Object[0]), 16, 8); - } - tMaterial = Materials.WroughtIron; - if (tMaterial.mStandardMoltenFluid != null) { - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Casing.get(0L, new Object[0]), tMaterial.getMolten(72L), ItemList.IC2_Item_Casing_Iron.get(1L, new Object[0]), 16, 8); - } - tMaterial = Materials.Gold; - if (tMaterial.mStandardMoltenFluid != null) { - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Casing.get(0L, new Object[0]), tMaterial.getMolten(72L), ItemList.IC2_Item_Casing_Gold.get(1L, new Object[0]), 16, 8); - } - tMaterial = Materials.Bronze; - if (tMaterial.mStandardMoltenFluid != null) { - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Casing.get(0L, new Object[0]), tMaterial.getMolten(72L), ItemList.IC2_Item_Casing_Bronze.get(1L, new Object[0]), 16, 8); - } - tMaterial = Materials.Copper; - if (tMaterial.mStandardMoltenFluid != null) { - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Casing.get(0L, new Object[0]), tMaterial.getMolten(72L), ItemList.IC2_Item_Casing_Copper.get(1L, new Object[0]), 16, 8); - } - tMaterial = Materials.AnnealedCopper; - if (tMaterial.mStandardMoltenFluid != null) { - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Casing.get(0L, new Object[0]), tMaterial.getMolten(72L), ItemList.IC2_Item_Casing_Copper.get(1L, new Object[0]), 16, 8); - } - tMaterial = Materials.Tin; - if (tMaterial.mStandardMoltenFluid != null) { - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Casing.get(0L, new Object[0]), tMaterial.getMolten(72L), ItemList.IC2_Item_Casing_Tin.get(1L, new Object[0]), 16, 8); - } - tMaterial = Materials.Lead; - if (tMaterial.mStandardMoltenFluid != null) { - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Casing.get(0L, new Object[0]), tMaterial.getMolten(72L), ItemList.IC2_Item_Casing_Lead.get(1L, new Object[0]), 16, 8); - } - tMaterial = Materials.Steel; - if (tMaterial.mStandardMoltenFluid != null) { - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Casing.get(0L, new Object[0]), tMaterial.getMolten(72L), ItemList.IC2_Item_Casing_Steel.get(1L, new Object[0]), 16, 8); - } - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Ball.get(0L, new Object[0]), Materials.Mercury.getFluid(1000L), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Mercury, 1L), 128, 4); - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Ball.get(0L, new Object[0]), Materials.Water.getFluid(250L), new ItemStack(Items.snowball, 1, 0), 128, 4); - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Ball.get(0L, new Object[0]), GT_ModHandler.getDistilledWater(250L), new ItemStack(Items.snowball, 1, 0), 128, 4); - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Block.get(0L, new Object[0]), Materials.Water.getFluid(1000L), new ItemStack(Blocks.snow, 1, 0), 512, 4); - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Block.get(0L, new Object[0]), GT_ModHandler.getDistilledWater(1000L), new ItemStack(Blocks.snow, 1, 0), 512, 4); - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Block.get(0L, new Object[0]), Materials.Lava.getFluid(1000L), new ItemStack(Blocks.obsidian, 1, 0), 1024, 16); - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Block.get(0L, new Object[0]), Materials.Concrete.getMolten(144L), new ItemStack(GregTech_API.sBlockConcretes, 1, 8), 12, 4); - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Block.get(0L, new Object[0]), Materials.Glowstone.getMolten(576L), new ItemStack(Blocks.glowstone, 1, 0), 12, 4); - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Block.get(0L, new Object[0]), Materials.Glass.getMolten(144L), new ItemStack(Blocks.glass, 1, 0), 12, 4); - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Plate.get(0L, new Object[0]), Materials.Glass.getMolten(144L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Glass, 1L), 12, 4); - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Bottle.get(0L, new Object[0]), Materials.Glass.getMolten(144L), ItemList.Bottle_Empty.get(1L, new Object[0]), 12, 4); - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Cylinder.get(0L, new Object[0]), Materials.Milk.getFluid(250L), ItemList.Food_Cheese.get(1L, new Object[0]), 1024, 4); - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Cylinder.get(0L, new Object[0]), Materials.Cheese.getMolten(144L), ItemList.Food_Cheese.get(1L, new Object[0]), 64, 8); - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Anvil.get(0L, new Object[0]), Materials.Iron.getMolten(4464L), new ItemStack(Blocks.anvil, 1, 0), 128, 16); - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Anvil.get(0L, new Object[0]), Materials.WroughtIron.getMolten(4464L), new ItemStack(Blocks.anvil, 1, 0), 128, 16); - GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Anvil.get(0L, new Object[0]), Materials.Steel.getMolten(4464L), GT_ModHandler.getModItem("Railcraft", "tile.railcraft.anvil", 1L, 0), 128, 16); - - GT_Values.RA.addChemicalBathRecipe(ItemList.Food_Raw_Fries.get(1L, new Object[0]), Materials.FryingOilHot.getFluid(10L), ItemList.Food_Fries.get(1L, new Object[0]), GT_Values.NI, GT_Values.NI, null, 16, 4); - GT_Values.RA.addChemicalBathRecipe(GT_ModHandler.getIC2Item("dynamite", 1L), Materials.Glue.getFluid(10L), GT_ModHandler.getIC2Item("stickyDynamite", 1L), GT_Values.NI, GT_Values.NI, null, 16, 4); - GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Steel, 1L), Materials.Concrete.getMolten(144L), GT_ModHandler.getIC2Item("reinforcedStone", 1L), GT_Values.NI, GT_Values.NI, null, 200, 4); - GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L), Materials.Water.getFluid(125L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HydratedCoal, 1L), GT_Values.NI, GT_Values.NI, null, 12, 4); - GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), Materials.Water.getFluid(100L), new ItemStack(Items.paper, 1, 0), GT_Values.NI, GT_Values.NI, null, 200, 4); - GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Paper, 1L), Materials.Water.getFluid(100L), new ItemStack(Items.paper, 1, 0), GT_Values.NI, GT_Values.NI, null, 100, 4); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Items.reeds, 1, 32767), Materials.Water.getFluid(100L), new ItemStack(Items.paper, 1, 0), GT_Values.NI, GT_Values.NI, null, 100, 8); - GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L), GT_ModHandler.getDistilledWater(125L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HydratedCoal, 1L), GT_Values.NI, GT_Values.NI, null, 12, 4); - GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), GT_ModHandler.getDistilledWater(100L), new ItemStack(Items.paper, 1, 0), GT_Values.NI, GT_Values.NI, null, 200, 4); - GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Paper, 1L), GT_ModHandler.getDistilledWater(100L), new ItemStack(Items.paper, 1, 0), GT_Values.NI, GT_Values.NI, null, 100, 4); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Items.reeds, 1, 32767), GT_ModHandler.getDistilledWater(100L), new ItemStack(Items.paper, 1, 0), GT_Values.NI, GT_Values.NI, null, 100, 8); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 1), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 2), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 3), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 4), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 5), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 6), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 7), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 8), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 9), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 10), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 11), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 12), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 13), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 14), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 15), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 1), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 2), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 3), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 4), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 5), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 6), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 7), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 8), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 9), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 10), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 11), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 12), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 13), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 14), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 15), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.stained_hardened_clay, 1, 32767), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.hardened_clay, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.stained_glass, 1, 32767), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.glass, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.stained_glass_pane, 1, 32767), Materials.Chlorine.getFluid(20L), new ItemStack(Blocks.glass_pane, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 8), Materials.Water.getFluid(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 0), GT_Values.NI, GT_Values.NI, null, 200, 4); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 9), Materials.Water.getFluid(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 1), GT_Values.NI, GT_Values.NI, null, 200, 4); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 10), Materials.Water.getFluid(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 2), GT_Values.NI, GT_Values.NI, null, 200, 4); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 11), Materials.Water.getFluid(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 3), GT_Values.NI, GT_Values.NI, null, 200, 4); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 12), Materials.Water.getFluid(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 4), GT_Values.NI, GT_Values.NI, null, 200, 4); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 13), Materials.Water.getFluid(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 5), GT_Values.NI, GT_Values.NI, null, 200, 4); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 14), Materials.Water.getFluid(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 6), GT_Values.NI, GT_Values.NI, null, 200, 4); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 15), Materials.Water.getFluid(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 7), GT_Values.NI, GT_Values.NI, null, 200, 4); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 8), GT_ModHandler.getDistilledWater(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 0), GT_Values.NI, GT_Values.NI, null, 200, 4); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 9), GT_ModHandler.getDistilledWater(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 1), GT_Values.NI, GT_Values.NI, null, 200, 4); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 10), GT_ModHandler.getDistilledWater(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 2), GT_Values.NI, GT_Values.NI, null, 200, 4); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 11), GT_ModHandler.getDistilledWater(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 3), GT_Values.NI, GT_Values.NI, null, 200, 4); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 12), GT_ModHandler.getDistilledWater(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 4), GT_Values.NI, GT_Values.NI, null, 200, 4); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 13), GT_ModHandler.getDistilledWater(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 5), GT_Values.NI, GT_Values.NI, null, 200, 4); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 14), GT_ModHandler.getDistilledWater(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 6), GT_Values.NI, GT_Values.NI, null, 200, 4); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 15), GT_ModHandler.getDistilledWater(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 7), GT_Values.NI, GT_Values.NI, null, 200, 4); - for (int j = 0; j < Dyes.dyeRed.getSizeOfFluidList(); j++) { - GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.RedAlloy, 1L), Dyes.dyeRed.getFluidDye(j, 72L), GT_ModHandler.getModItem("BuildCraft|Transport", "pipeWire", 4L, 0), GT_Values.NI, GT_Values.NI, null, 32, 16); - } - for (int j = 0; j < Dyes.dyeBlue.getSizeOfFluidList(); j++) { - GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.RedAlloy, 1L), Dyes.dyeBlue.getFluidDye(j, 72L), GT_ModHandler.getModItem("BuildCraft|Transport", "pipeWire", 4L, 1), GT_Values.NI, GT_Values.NI, null, 32, 16); - } - for (int j = 0; j < Dyes.dyeGreen.getSizeOfFluidList(); j++) { - GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.RedAlloy, 1L), Dyes.dyeGreen.getFluidDye(j, 72L), GT_ModHandler.getModItem("BuildCraft|Transport", "pipeWire", 4L, 2), GT_Values.NI, GT_Values.NI, null, 32, 16); - } - for (int j = 0; j < Dyes.dyeYellow.getSizeOfFluidList(); j++) { - GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.RedAlloy, 1L), Dyes.dyeYellow.getFluidDye(j, 72L), GT_ModHandler.getModItem("BuildCraft|Transport", "pipeWire", 4L, 3), GT_Values.NI, GT_Values.NI, null, 32, 16); - } - for (byte i = 0; i < 16; i = (byte)(i + 1)) { - for (int j = 0; j < Dyes.VALUES[i].getSizeOfFluidList(); j++) - { - if (i != 15) { - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 0), Dyes.VALUES[i].getFluidDye(j, 144L), new ItemStack(Blocks.wool, 1, 15 - i), GT_Values.NI, GT_Values.NI, null, 64, 2); - } - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.glass, 1, 0), Dyes.VALUES[i].getFluidDye(j, 18L), new ItemStack(Blocks.stained_glass, 1, 15 - i), GT_Values.NI, GT_Values.NI, null, 64, 2); - GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.hardened_clay, 1, 0), Dyes.VALUES[i].getFluidDye(j, 18L), new ItemStack(Blocks.stained_hardened_clay, 1, 15 - i), GT_Values.NI, GT_Values.NI, null, 64, 2); - } - } - GT_Values.RA.addFluidExtractionRecipe(ItemList.Dye_SquidInk.get(1L, new Object[0]), GT_Values.NI, FluidRegistry.getFluidStack("squidink", 144), 10000, 128, 4); - GT_Values.RA.addFluidExtractionRecipe(ItemList.Dye_Indigo.get(1L, new Object[0]), GT_Values.NI, FluidRegistry.getFluidStack("indigo", 144), 10000, 128, 4); - GT_Values.RA.addFluidExtractionRecipe(ItemList.Crop_Drop_Indigo.get(1L, new Object[0]), GT_Values.NI, FluidRegistry.getFluidStack("indigo", 144), 10000, 128, 4); - GT_Values.RA.addFluidExtractionRecipe(ItemList.Crop_Drop_MilkWart.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Milk, 1L), GT_ModHandler.getMilk(150L), 1000, 128, 4); - GT_Values.RA.addFluidExtractionRecipe(ItemList.Crop_Drop_OilBerry.get(1L, new Object[0]), GT_Values.NI, Materials.Oil.getFluid(100L), 10000, 128, 4); - GT_Values.RA.addFluidExtractionRecipe(new ItemStack(Items.fish, 1, 0), GT_Values.NI, Materials.FishOil.getFluid(4L), 10000, 16, 4); - GT_Values.RA.addFluidExtractionRecipe(new ItemStack(Items.fish, 1, 1), GT_Values.NI, Materials.FishOil.getFluid(6L), 10000, 16, 4); - GT_Values.RA.addFluidExtractionRecipe(new ItemStack(Items.fish, 1, 2), GT_Values.NI, Materials.FishOil.getFluid(7L), 10000, 16, 4); - GT_Values.RA.addFluidExtractionRecipe(new ItemStack(Items.fish, 1, 3), GT_Values.NI, Materials.FishOil.getFluid(3L), 10000, 16, 4); - GT_Values.RA.addFluidExtractionRecipe(new ItemStack(Items.coal, 1, 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 1L), Materials.Creosote.getFluid(100L), 1000, 128, 4); - GT_Values.RA.addFluidExtractionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), ItemList.IC2_Plantball.get(1L, new Object[0]), Materials.Creosote.getFluid(5L), 100, 16, 4); - GT_Values.RA.addFluidExtractionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HydratedCoal, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L), Materials.Water.getFluid(100L), 10000, 32, 4); - GT_Values.RA.addFluidExtractionRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Mercury, 1L), GT_Values.NI, Materials.Mercury.getFluid(1000L), 10000, 128, 4); - GT_Values.RA.addFluidExtractionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Monazite, 1L), GT_Values.NI, Materials.Helium.getFluid(200L), 10000, 64, 64); - - GT_Values.RA.addFluidSmelterRecipe(new ItemStack(Items.snowball, 1, 0), GT_Values.NI, Materials.Water.getFluid(250L), 10000, 32, 4); - GT_Values.RA.addFluidSmelterRecipe(new ItemStack(Blocks.snow, 1, 0), GT_Values.NI, Materials.Water.getFluid(1000L), 10000, 128, 4); - GT_Values.RA.addFluidSmelterRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ice, 1L), GT_Values.NI, Materials.Ice.getSolid(1000L), 10000, 128, 4); - GT_Values.RA.addFluidSmelterRecipe(GT_ModHandler.getModItem("Forestry", "phosphor", 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphor, 1L), Materials.Lava.getFluid(800L), 1000, 256, 128); - - GT_Values.RA.addAutoclaveRecipe(ItemList.IC2_Energium_Dust.get(9L, new Object[0]), Materials.Water.getFluid(1000L), ItemList.IC2_EnergyCrystal.get(1L, new Object[0]), 10000, 500, 256); - GT_Values.RA.addAutoclaveRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemCrystalSeed", 1L, 0), Materials.Water.getFluid(200L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 10), 10000, 2000, 24); - GT_Values.RA.addAutoclaveRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemCrystalSeed", 1L, 600), Materials.Water.getFluid(200L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 11), 10000, 2000, 24); - GT_Values.RA.addAutoclaveRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemCrystalSeed", 1L, 1200), Materials.Water.getFluid(200L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 12), 10000, 2000, 24); - GT_Values.RA.addAutoclaveRecipe(ItemList.IC2_Energium_Dust.get(9L, new Object[0]), GT_ModHandler.getDistilledWater(1000L), ItemList.IC2_EnergyCrystal.get(1L, new Object[0]), 10000, 250, 256); - GT_Values.RA.addAutoclaveRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemCrystalSeed", 1L, 0), GT_ModHandler.getDistilledWater(200L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 10), 10000, 1000, 24); - GT_Values.RA.addAutoclaveRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemCrystalSeed", 1L, 600), GT_ModHandler.getDistilledWater(200L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 11), 10000, 1000, 24); - GT_Values.RA.addAutoclaveRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemCrystalSeed", 1L, 1200), GT_ModHandler.getDistilledWater(200L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 12), 10000, 1000, 24); - - GT_Values.RA.addSlicerRecipe(ItemList.Food_Dough_Chocolate.get(1L, new Object[0]), ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Raw_Cookie.get(4L, new Object[0]), 128, 4); - GT_Values.RA.addSlicerRecipe(ItemList.Food_Baked_Bun.get(1L, new Object[0]), ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Sliced_Bun.get(2L, new Object[0]), 128, 4); - GT_Values.RA.addSlicerRecipe(ItemList.Food_Baked_Bread.get(1L, new Object[0]), ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Sliced_Bread.get(2L, new Object[0]), 128, 4); - GT_Values.RA.addSlicerRecipe(ItemList.Food_Baked_Baguette.get(1L, new Object[0]), ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Sliced_Baguette.get(2L, new Object[0]), 128, 4); - - GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 0), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 1), 100, 120); - GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 0), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 1), 100, 120); - GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Gold, 1L), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 0), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 2), 200, 120); - GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1L), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 0), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 3), 100, 480); - GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.EnderPearl, 1L), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 0), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 2L, 4), 200, 120); - GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NetherQuartz, 1L), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 0), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 5), 300, 120); - GT_Values.RA.addFormingPressRecipe(new ItemStack(Items.comparator, 1, 32767), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 0), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 6), 300, 120); - GT_Values.RA.addFormingPressRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 10), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 0L, 13), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 16), 200, 16); - GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.CertusQuartz, 1L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 0L, 13), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 16), 200, 16); - GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 0L, 14), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 17), 200, 16); - GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Gold, 1L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 0L, 15), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 18), 200, 16); - GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Silicon, 1L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 0L, 19), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 20), 200, 16); - GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Silicon, 1L), ItemList.Circuit_Parts_Wiring_Basic.get(4L, new Object[0]), ItemList.Circuit_Board_Basic.get(1L, new Object[0]), 32, 16); - GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Silicon, 1L), ItemList.Circuit_Parts_Wiring_Advanced.get(4L, new Object[0]), ItemList.Circuit_Board_Advanced.get(1L, new Object[0]), 32, 64); - GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Silicon, 2L), ItemList.Circuit_Parts_Wiring_Elite.get(4L, new Object[0]), ItemList.Circuit_Board_Elite.get(1L, new Object[0]), 32, 256); - GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Lapis, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L), ItemList.Circuit_Parts_Advanced.get(2L, new Object[0]), 32, 64); - GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Lazurite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L), ItemList.Circuit_Parts_Advanced.get(2L, new Object[0]), 32, 64); - GT_Values.RA.addFormingPressRecipe(ItemList.Food_Dough_Sugar.get(4L, new Object[0]), ItemList.Shape_Mold_Cylinder.get(0L, new Object[0]), ItemList.Food_Raw_Cake.get(1L, new Object[0]), 384, 4); - GT_Values.RA.addFormingPressRecipe(new ItemStack(Blocks.glass, 1, 32767), ItemList.Shape_Mold_Arrow.get(0L, new Object[0]), ItemList.Arrow_Head_Glass_Emtpy.get(1L, new Object[0]), 64, 4); - for (Materials tMat : Materials.VALUES) { - if ((tMat.mStandardMoltenFluid != null) && (tMat.contains(SubTag.SOLDERING_MATERIAL))) - { - int tMultiplier = tMat.contains(SubTag.SOLDERING_MATERIAL_GOOD) ? 1 : tMat.contains(SubTag.SOLDERING_MATERIAL_BAD) ? 4 : 2; - - GT_Values.RA.addAssemblerRecipe(ItemList.IC2_Item_Casing_Steel.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.RedAlloy, 1L), tMat.getMolten(144L * tMultiplier / 8L), ItemList.Circuit_Primitive.get(1L, new Object[0]), 16, 8); - GT_Values.RA.addAssemblerRecipe(ItemList.Circuit_Board_Basic.get(1L, new Object[0]), ItemList.Circuit_Primitive.get(2L, new Object[0]), tMat.getMolten(144L * tMultiplier / 4L), ItemList.Circuit_Basic.get(1L, new Object[0]), 32, 16); - GT_Values.RA.addAssemblerRecipe(ItemList.Circuit_Basic.get(1L, new Object[0]), ItemList.Circuit_Primitive.get(2L, new Object[0]), tMat.getMolten(144L * tMultiplier / 4L), ItemList.Circuit_Good.get(1L, new Object[0]), 32, 16); - GT_Values.RA.addAssemblerRecipe(ItemList.Circuit_Board_Advanced.get(1L, new Object[0]), ItemList.Circuit_Parts_Advanced.get(2L, new Object[0]), tMat.getMolten(144L * tMultiplier / 2L), ItemList.Circuit_Advanced.get(1L, new Object[0]), 32, 64); - GT_Values.RA.addAssemblerRecipe(ItemList.Circuit_Board_Advanced.get(1L, new Object[0]), ItemList.Circuit_Parts_Crystal_Chip_Elite.get(1L, new Object[0]), tMat.getMolten(144L * tMultiplier / 2L), ItemList.Circuit_Data.get(1L, new Object[0]), 32, 64); - GT_Values.RA.addAssemblerRecipe(ItemList.Circuit_Board_Elite.get(1L, new Object[0]), ItemList.Circuit_Data.get(3L, new Object[0]), tMat.getMolten(144L * tMultiplier / 1L), ItemList.Circuit_Elite.get(1L, new Object[0]), 32, 256); - GT_Values.RA.addAssemblerRecipe(ItemList.Circuit_Board_Elite.get(1L, new Object[0]), ItemList.Circuit_Parts_Crystal_Chip_Master.get(3L, new Object[0]), tMat.getMolten(144L * tMultiplier / 1L), ItemList.Circuit_Master.get(1L, new Object[0]), 32, 256); - GT_Values.RA.addAssemblerRecipe(ItemList.Circuit_Data.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Plastic, 2L), tMat.getMolten(144L * tMultiplier / 2L), ItemList.Tool_DataStick.get(1L, new Object[0]), 128, 64); - for (ItemStack tPlate : new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L) }) - { - GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.lever, 1, 32767), tPlate, tMat.getMolten(144L * tMultiplier / 2L), ItemList.Cover_Controller.get(1L, new Object[0]), 800, 16); - GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.redstone_torch, 1, 32767), tPlate, tMat.getMolten(144L * tMultiplier / 2L), ItemList.Cover_ActivityDetector.get(1L, new Object[0]), 800, 16); - GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.heavy_weighted_pressure_plate, 1, 32767), tPlate, tMat.getMolten(144L * tMultiplier / 2L), ItemList.Cover_FluidDetector.get(1L, new Object[0]), 800, 16); - GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.light_weighted_pressure_plate, 1, 32767), tPlate, tMat.getMolten(144L * tMultiplier / 2L), ItemList.Cover_ItemDetector.get(1L, new Object[0]), 800, 16); - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("ecMeter", 1L), tPlate, tMat.getMolten(144L * tMultiplier / 2L), ItemList.Cover_EnergyDetector.get(1L, new Object[0]), 800, 16); - } - } - } - GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.redstone_torch, 2, 32767), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), Materials.Concrete.getMolten(144L), new ItemStack(Items.repeater, 1, 0), 800, 1); - GT_Values.RA.addAssemblerRecipe(new ItemStack(Items.leather, 1, 32767), new ItemStack(Items.lead, 1, 32767), Materials.Glue.getFluid(50L), new ItemStack(Items.name_tag, 1, 0), 100, 8); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 8L), new ItemStack(Items.compass, 1, 32767), GT_Values.NF, new ItemStack(Items.map, 1, 0), 100, 8); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tantalum, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Manganese, 1L), Materials.Plastic.getMolten(144L), ItemList.Battery_RE_ULV_Tantalum.get(1L, new Object[0]), 100, 4); - GT_Values.RA.addAssemblerRecipe(ItemList.Circuit_Elite.get(2L, new Object[0]), ItemList.Circuit_Parts_Crystal_Chip_Elite.get(18L, new Object[0]), GT_Values.NF, ItemList.Tool_DataOrb.get(1L, new Object[0]), 512, 256); - GT_Values.RA.addAssemblerRecipe(ItemList.Circuit_Master.get(2L, new Object[0]), ItemList.Circuit_Parts_Crystal_Chip_Master.get(18L, new Object[0]), GT_Values.NF, ItemList.Energy_LapotronicOrb.get(1L, new Object[0]), 512, 1024); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Europium, 4L), ItemList.Energy_LapotronicOrb.get(8L, new Object[0]), GT_Values.NF, ItemList.Energy_LapotronicOrb2.get(1L, new Object[0]), 2048, 4096); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium, 16L), ItemList.Energy_LapotronicOrb2.get(8L, new Object[0]), GT_Values.NF, ItemList.ZPM2.get(1L, new Object[0]), 32768, 4096); - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("TwilightForest", "item.charmOfLife1", 4L, 0), ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), GT_Values.NF, GT_ModHandler.getModItem("TwilightForest", "item.charmOfLife2", 1L, 0), 100, 8); - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("TwilightForest", "item.charmOfKeeping1", 4L, 0), ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), GT_Values.NF, GT_ModHandler.getModItem("TwilightForest", "item.charmOfKeeping2", 1L, 0), 100, 8); - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("TwilightForest", "item.charmOfKeeping2", 4L, 0), ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), GT_Values.NF, GT_ModHandler.getModItem("TwilightForest", "item.charmOfKeeping3", 1L, 0), 100, 8); - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("TwilightForest", "item.charmOfLife2", 1L, 0), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), GT_Values.NF, GT_ModHandler.getModItem("TwilightForest", "item.charmOfLife1", 4L, 0), 100, 8); - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("TwilightForest", "item.charmOfKeeping2", 1L, 0), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), GT_Values.NF, GT_ModHandler.getModItem("TwilightForest", "item.charmOfKeeping1", 4L, 0), 100, 8); - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("TwilightForest", "item.charmOfKeeping3", 1L, 0), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), GT_Values.NF, GT_ModHandler.getModItem("TwilightForest", "item.charmOfKeeping2", 4L, 0), 100, 8); - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 16), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 20), Materials.Redstone.getMolten(144L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 23), 64, 32); - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 17), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 20), Materials.Redstone.getMolten(144L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 24), 64, 32); - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 18), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 20), Materials.Redstone.getMolten(144L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 22), 64, 32); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CertusQuartz, 1L), new ItemStack(Blocks.sand, 1, 32767), GT_Values.NF, GT_ModHandler.getModItem("appliedenergistics2", "item.ItemCrystalSeed", 2L, 0), 64, 8); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NetherQuartz, 1L), new ItemStack(Blocks.sand, 1, 32767), GT_Values.NF, GT_ModHandler.getModItem("appliedenergistics2", "item.ItemCrystalSeed", 2L, 600), 64, 8); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Fluix, 1L), new ItemStack(Blocks.sand, 1, 32767), GT_Values.NF, GT_ModHandler.getModItem("appliedenergistics2", "item.ItemCrystalSeed", 2L, 1200), 64, 8); - GT_Values.RA.addAssemblerRecipe(ItemList.FR_Wax.get(6L, new Object[0]), new ItemStack(Items.string, 1, 32767), Materials.Water.getFluid(600L), GT_ModHandler.getModItem("Forestry", "candle", 24L, 0), 64, 8); - GT_Values.RA.addAssemblerRecipe(ItemList.FR_Wax.get(2L, new Object[0]), ItemList.FR_Silk.get(1L, new Object[0]), Materials.Water.getFluid(200L), GT_ModHandler.getModItem("Forestry", "candle", 8L, 0), 16, 8); - GT_Values.RA.addAssemblerRecipe(ItemList.FR_Silk.get(9L, new Object[0]), ItemList.Circuit_Integrated.getWithDamage(0L, 9L, new Object[0]), Materials.Water.getFluid(500L), GT_ModHandler.getModItem("Forestry", "craftingMaterial", 1L, 3), 64, 8); - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("Forestry", "propolis", 5L, 2), ItemList.Circuit_Integrated.getWithDamage(0L, 5L, new Object[0]), GT_Values.NF, GT_ModHandler.getModItem("Forestry", "craftingMaterial", 1L, 1), 16, 8); - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("Forestry", "sturdyMachine", 1L, 0), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Diamond, 4L), Materials.Water.getFluid(5000L), ItemList.FR_Casing_Hardened.get(1L, new Object[0]), 64, 32); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 8L), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), GT_Values.NF, ItemList.FR_Casing_Sturdy.get(1L, new Object[0]), 32, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 6L), Materials.Water.getFluid(1000L), GT_ModHandler.getModItem("Forestry", "chipsets", 1L, 0), 16, 8); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 3L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 6L), Materials.Water.getFluid(1000L), GT_ModHandler.getModItem("Forestry", "chipsets", 1L, 1), 32, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 3L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 6L), Materials.Water.getFluid(1000L), GT_ModHandler.getModItem("Forestry", "chipsets", 1L, 2), 48, 24); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.WroughtIron, 3L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 6L), Materials.Water.getFluid(1000L), GT_ModHandler.getModItem("Forestry", "chipsets", 1L, 2), 48, 24); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Gold, 3L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 6L), Materials.Water.getFluid(1000L), GT_ModHandler.getModItem("Forestry", "chipsets", 1L, 3), 64, 32); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), new ItemStack(Blocks.wool, 1, 32767), Materials.Creosote.getFluid(1000L), new ItemStack(Blocks.torch, 6, 0), 400, 1); - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("Forestry", "craftingMaterial", 5L, 1), ItemList.Circuit_Integrated.getWithDamage(0L, 5L, new Object[0]), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.EnderPearl, 1L), 64, 8); - GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.piston, 1, 32767), new ItemStack(Items.slime_ball, 1, 32767), GT_Values.NF, new ItemStack(Blocks.sticky_piston, 1, 0), 100, 4); - GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.piston, 1, 32767), ItemList.IC2_Resin.get(1L, new Object[0]), GT_Values.NF, new ItemStack(Blocks.sticky_piston, 1, 0), 100, 4); - GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.piston, 1, 32767), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), Materials.Glue.getFluid(100L), new ItemStack(Blocks.sticky_piston, 1, 0), 100, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 3L), GT_ModHandler.getIC2Item("carbonMesh", 3L), Materials.Glue.getFluid(300L), ItemList.Duct_Tape.get(1L, new Object[0]), 100, 64); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 3L), new ItemStack(Items.leather, 1, 32767), Materials.Glue.getFluid(20L), new ItemStack(Items.book, 1, 0), 32, 8); - GT_Values.RA.addAssemblerRecipe(ItemList.Paper_Printed_Pages.get(1L, new Object[0]), new ItemStack(Items.leather, 1, 32767), Materials.Glue.getFluid(20L), new ItemStack(Items.written_book, 1, 0), 32, 8); - GT_Values.RA.addAssemblerRecipe(ItemList.IC2_Item_Casing_Tin.get(4L, new Object[0]), new ItemStack(Blocks.glass_pane, 1, 32767), GT_Values.NF, ItemList.Cell_Universal_Fluid.get(1L, new Object[0]), 128, 8); - GT_Values.RA.addAssemblerRecipe(ItemList.Food_Baked_Cake.get(1L, new Object[0]), new ItemStack(Items.egg, 1, 0), Materials.Milk.getFluid(3000L), new ItemStack(Items.cake, 1, 0), 100, 8); - GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Bun.get(2L, new Object[0]), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), GT_Values.NF, ItemList.Food_Sliced_Buns.get(1L, new Object[0]), 100, 4); - GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Bread.get(2L, new Object[0]), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), GT_Values.NF, ItemList.Food_Sliced_Breads.get(1L, new Object[0]), 100, 4); - GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Baguette.get(2L, new Object[0]), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), GT_Values.NF, ItemList.Food_Sliced_Baguettes.get(1L, new Object[0]), 100, 4); - GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Buns.get(1L, new Object[0]), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), GT_Values.NF, ItemList.Food_Sliced_Bun.get(2L, new Object[0]), 100, 4); - GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Breads.get(1L, new Object[0]), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), GT_Values.NF, ItemList.Food_Sliced_Bread.get(2L, new Object[0]), 100, 4); - GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Baguettes.get(1L, new Object[0]), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), GT_Values.NF, ItemList.Food_Sliced_Baguette.get(2L, new Object[0]), 100, 4); - GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Bun.get(2L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatCooked, 1L), GT_Values.NF, ItemList.Food_Burger_Meat.get(1L, new Object[0]), 100, 4); - GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Buns.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatCooked, 1L), GT_Values.NF, ItemList.Food_Burger_Meat.get(1L, new Object[0]), 100, 4); - GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Bun.get(2L, new Object[0]), ItemList.Food_Chum.get(1L, new Object[0]), GT_Values.NF, ItemList.Food_Burger_Chum.get(1L, new Object[0]), 100, 4); - GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Buns.get(1L, new Object[0]), ItemList.Food_Chum.get(1L, new Object[0]), GT_Values.NF, ItemList.Food_Burger_Chum.get(1L, new Object[0]), 100, 4); - GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Bun.get(2L, new Object[0]), ItemList.Food_Sliced_Cheese.get(3L, new Object[0]), GT_Values.NF, ItemList.Food_Burger_Cheese.get(1L, new Object[0]), 100, 4); - GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Buns.get(1L, new Object[0]), ItemList.Food_Sliced_Cheese.get(3L, new Object[0]), GT_Values.NF, ItemList.Food_Burger_Cheese.get(1L, new Object[0]), 100, 4); - GT_Values.RA.addAssemblerRecipe(ItemList.Food_Flat_Dough.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatCooked, 1L), GT_Values.NF, ItemList.Food_Raw_Pizza_Meat.get(1L, new Object[0]), 100, 4); - GT_Values.RA.addAssemblerRecipe(ItemList.Food_Flat_Dough.get(1L, new Object[0]), ItemList.Food_Sliced_Cheese.get(3L, new Object[0]), GT_Values.NF, ItemList.Food_Raw_Pizza_Cheese.get(1L, new Object[0]), 100, 4); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 0), 64, 32); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.AnnealedCopper, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 0), 64, 32); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 1), 64, 32); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 2), 64, 32); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 3), 64, 32); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.WroughtIron, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 3), 64, 32); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Gold, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 4), 64, 32); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Diamond, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 5), 64, 32); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 7), 64, 32); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 8), 64, 32); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Emerald, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 9), 64, 32); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Apatite, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 10), 64, 32); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Lapis, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 11), 64, 32); - - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), Materials.Oil.getFluid(16L), Materials.Fuel.getFluid(16L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), Materials.Oil.getFluid(16L), Materials.Glyceryl.getFluid(1L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), Materials.Oil.getFluid(16L), Materials.Methane.getGas(15L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), Materials.Oil.getFluid(16L), Materials.Lubricant.getFluid(16L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 6L, new Object[0]), Materials.Oil.getFluid(16L), Materials.SulfuricAcid.getFluid(16L), 32, 16, false); - if(FluidRegistry.getFluid("oilgc") != null){ - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new FluidStack(FluidRegistry.getFluid("oilgc"), 16), Materials.Fuel.getFluid(16L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), new FluidStack(FluidRegistry.getFluid("oilgc"), 16), Materials.Glyceryl.getFluid(1L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), new FluidStack(FluidRegistry.getFluid("oilgc"), 16), Materials.Methane.getGas(15L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), new FluidStack(FluidRegistry.getFluid("oilgc"), 16), Materials.Lubricant.getFluid(16L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 6L, new Object[0]), new FluidStack(FluidRegistry.getFluid("oilgc"), 16), Materials.SulfuricAcid.getFluid(16L), 32, 16, false); - GT_Values.RA.addDistillationTowerRecipe(new FluidStack(FluidRegistry.getFluid("oilgc"), 64), new FluidStack[]{Materials.Lubricant.getFluid(16L) , Materials.Fuel.getFluid(64L), Materials.SulfuricAcid.getFluid(64L), Materials.Glyceryl.getFluid(4L), Materials.Methane.getGas(60L)},null, 16, 64); - } - - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new FluidStack(ItemList.sOilLight, 32), Materials.Fuel.getFluid(16L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), new FluidStack(ItemList.sOilLight, 32), Materials.Glyceryl.getFluid(1L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), new FluidStack(ItemList.sOilLight, 32), Materials.Methane.getGas(15L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), new FluidStack(ItemList.sOilLight, 32), Materials.Lubricant.getFluid(16L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 6L, new Object[0]), new FluidStack(ItemList.sOilLight, 32), Materials.SulfuricAcid.getFluid(16L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new FluidStack(ItemList.sOilMedium, 16), Materials.Fuel.getFluid(16L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), new FluidStack(ItemList.sOilMedium, 16), Materials.Glyceryl.getFluid(1L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), new FluidStack(ItemList.sOilMedium, 16), Materials.Methane.getGas(15L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), new FluidStack(ItemList.sOilMedium, 16), Materials.Lubricant.getFluid(16L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 6L, new Object[0]), new FluidStack(ItemList.sOilMedium, 16), Materials.SulfuricAcid.getFluid(16L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new FluidStack(ItemList.sOilHeavy, 8), Materials.Fuel.getFluid(16L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), new FluidStack(ItemList.sOilHeavy, 8), Materials.Glyceryl.getFluid(1L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), new FluidStack(ItemList.sOilHeavy, 8), Materials.Methane.getGas(15L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), new FluidStack(ItemList.sOilHeavy, 8), Materials.Lubricant.getFluid(16L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 6L, new Object[0]), new FluidStack(ItemList.sOilHeavy, 8), Materials.SulfuricAcid.getFluid(16L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new FluidStack(ItemList.sOilExtraHeavy, 4), Materials.Fuel.getFluid(16L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), new FluidStack(ItemList.sOilExtraHeavy, 4), Materials.Glyceryl.getFluid(1L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), new FluidStack(ItemList.sOilExtraHeavy, 4), Materials.Methane.getGas(15L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), new FluidStack(ItemList.sOilExtraHeavy, 4), Materials.Lubricant.getFluid(16L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 6L, new Object[0]), new FluidStack(ItemList.sOilExtraHeavy, 4), Materials.SulfuricAcid.getFluid(16L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), new FluidStack(ItemList.sNaturalGas, 16), Materials.Methane.getGas(30L), 32, 16, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), Materials.Creosote.getFluid(3L), Materials.Lubricant.getFluid(1L), 16, 24, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), Materials.SeedOil.getFluid(4L), Materials.Lubricant.getFluid(1L), 16, 24, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), Materials.FishOil.getFluid(3L), Materials.Lubricant.getFluid(1L), 16, 24, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), Materials.Biomass.getFluid(40L), Materials.Ethanol.getFluid(12L), 16, 24, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 5L, new Object[0]), Materials.Biomass.getFluid(40L), Materials.Water.getFluid(12L), 16, 24, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 5L, new Object[0]), Materials.Water.getFluid(5L), GT_ModHandler.getDistilledWater(4L), 16, 8, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), FluidRegistry.getFluidStack("potion.potatojuice", 2), FluidRegistry.getFluidStack("potion.vodka", 1), 16, 16, true); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), FluidRegistry.getFluidStack("potion.lemonade", 2), FluidRegistry.getFluidStack("potion.alcopops", 1), 16, 16, true); - - GT_Values.RA.addFluidHeaterRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), Materials.Water.getFluid(6L), Materials.Water.getGas(960L), 30, 32); - GT_Values.RA.addFluidHeaterRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), GT_ModHandler.getDistilledWater(6L), Materials.Water.getGas(960L), 30, 32); - GT_Values.RA.addFluidHeaterRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), Materials.SeedOil.getFluid(16L), Materials.FryingOilHot.getFluid(16L), 16, 32); - GT_Values.RA.addFluidHeaterRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), Materials.FishOil.getFluid(16L), Materials.FryingOilHot.getFluid(16L), 16, 32); - - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Talc, 1L), FluidRegistry.getFluid("oil"), FluidRegistry.getFluid("lubricant"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Soapstone, 1L), FluidRegistry.getFluid("oil"), FluidRegistry.getFluid("lubricant"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), FluidRegistry.getFluid("oil"), FluidRegistry.getFluid("lubricant"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Talc, 1L), FluidRegistry.getFluid("creosote"), FluidRegistry.getFluid("lubricant"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Soapstone, 1L), FluidRegistry.getFluid("creosote"), FluidRegistry.getFluid("lubricant"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), FluidRegistry.getFluid("creosote"), FluidRegistry.getFluid("lubricant"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Talc, 1L), FluidRegistry.getFluid("seedoil"), FluidRegistry.getFluid("lubricant"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Soapstone, 1L), FluidRegistry.getFluid("seedoil"), FluidRegistry.getFluid("lubricant"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), FluidRegistry.getFluid("seedoil"), FluidRegistry.getFluid("lubricant"), false); - for (Fluid tFluid : new Fluid[] { FluidRegistry.WATER, GT_ModHandler.getDistilledWater(1L).getFluid() }) - { - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Milk, 1L), tFluid, FluidRegistry.getFluid("milk"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wheat, 1L), tFluid, FluidRegistry.getFluid("potion.wheatyjuice"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Potassium, 1L), tFluid, FluidRegistry.getFluid("potion.mineralwater"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1L), tFluid, FluidRegistry.getFluid("potion.mineralwater"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1L), tFluid, FluidRegistry.getFluid("potion.mineralwater"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 1L), tFluid, FluidRegistry.getFluid("potion.mineralwater"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Salt, 1L), tFluid, FluidRegistry.getFluid("potion.saltywater"), true); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RockSalt, 1L), tFluid, FluidRegistry.getFluid("potion.saltywater"), true); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L), tFluid, FluidRegistry.getFluid("potion.thick"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), tFluid, FluidRegistry.getFluid("potion.mundane"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), tFluid, FluidRegistry.getFluid("potion.mundane"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1L), tFluid, FluidRegistry.getFluid("potion.mundane"), false); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.magma_cream, 1, 0), tFluid, FluidRegistry.getFluid("potion.mundane"), false); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.fermented_spider_eye, 1, 0), tFluid, FluidRegistry.getFluid("potion.mundane"), false); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.spider_eye, 1, 0), tFluid, FluidRegistry.getFluid("potion.mundane"), false); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.speckled_melon, 1, 0), tFluid, FluidRegistry.getFluid("potion.mundane"), false); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.ghast_tear, 1, 0), tFluid, FluidRegistry.getFluid("potion.mundane"), false); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.nether_wart, 1, 0), tFluid, FluidRegistry.getFluid("potion.awkward"), false); - GT_Values.RA.addBrewingRecipe(new ItemStack(Blocks.red_mushroom, 1, 0), tFluid, FluidRegistry.getFluid("potion.poison"), false); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.fish, 1, 3), tFluid, FluidRegistry.getFluid("potion.poison.strong"), true); - GT_Values.RA.addBrewingRecipe(ItemList.IC2_Grin_Powder.get(1L, new Object[0]), tFluid, FluidRegistry.getFluid("potion.poison.strong"), false); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.reeds, 1, 0), tFluid, FluidRegistry.getFluid("potion.reedwater"), false); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.apple, 1, 0), tFluid, FluidRegistry.getFluid("potion.applejuice"), false); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.golden_apple, 1, 0), tFluid, FluidRegistry.getFluid("potion.goldenapplejuice"), true); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.golden_apple, 1, 1), tFluid, FluidRegistry.getFluid("potion.idunsapplejuice"), true); - GT_Values.RA.addBrewingRecipe(ItemList.IC2_Hops.get(1L, new Object[0]), tFluid, FluidRegistry.getFluid("potion.hopsjuice"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coffee, 1L), tFluid, FluidRegistry.getFluid("potion.darkcoffee"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chili, 1L), tFluid, FluidRegistry.getFluid("potion.chillysauce"), false); - - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(2L, new Object[0]), 200); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphorus, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(3L, new Object[0]), 300); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphate, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(2L, new Object[0]), 200); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 3L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(1L, new Object[0]), 100); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(1L, new Object[0]), 100); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(3L, new Object[0]), 300); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphorus, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(4L, new Object[0]), 400); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphate, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(3L, new Object[0]), 300); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 3L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(2L, new Object[0]), 200); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(2L, new Object[0]), 200); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Apatite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(3L, new Object[0]), 300); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Apatite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphorus, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(4L, new Object[0]), 400); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Apatite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphate, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(3L, new Object[0]), 300); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Apatite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 3L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(2L, new Object[0]), 200); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Apatite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(2L, new Object[0]), 200); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glauconite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(3L, new Object[0]), 300); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glauconite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphorus, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(4L, new Object[0]), 400); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glauconite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphate, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(3L, new Object[0]), 300); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glauconite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 3L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(2L, new Object[0]), 200); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glauconite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(2L, new Object[0]), 200); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GlauconiteSand, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(3L, new Object[0]), 300); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GlauconiteSand, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphorus, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(4L, new Object[0]), 400); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GlauconiteSand, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphate, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(3L, new Object[0]), 300); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GlauconiteSand, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 3L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(2L, new Object[0]), 200); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GlauconiteSand, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(2L, new Object[0]), 200); - } - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chili, 1L), FluidRegistry.getFluid("potion.chillysauce"), FluidRegistry.getFluid("potion.hotsauce"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chili, 1L), FluidRegistry.getFluid("potion.hotsauce"), FluidRegistry.getFluid("potion.diabolosauce"), true); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chili, 1L), FluidRegistry.getFluid("potion.diabolosauce"), FluidRegistry.getFluid("potion.diablosauce"), true); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coffee, 1L), FluidRegistry.getFluid("milk"), FluidRegistry.getFluid("potion.coffee"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cocoa, 1L), FluidRegistry.getFluid("milk"), FluidRegistry.getFluid("potion.darkchocolatemilk"), false); - GT_Values.RA.addBrewingRecipe(ItemList.IC2_Hops.get(1L, new Object[0]), FluidRegistry.getFluid("potion.wheatyjuice"), FluidRegistry.getFluid("potion.wheatyhopsjuice"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wheat, 1L), FluidRegistry.getFluid("potion.hopsjuice"), FluidRegistry.getFluid("potion.wheatyhopsjuice"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), FluidRegistry.getFluid("potion.tea"), FluidRegistry.getFluid("potion.sweettea"), true); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), FluidRegistry.getFluid("potion.coffee"), FluidRegistry.getFluid("potion.cafeaulait"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), FluidRegistry.getFluid("potion.cafeaulait"), FluidRegistry.getFluid("potion.laitaucafe"), true); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), FluidRegistry.getFluid("potion.lemonjuice"), FluidRegistry.getFluid("potion.lemonade"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), FluidRegistry.getFluid("potion.darkcoffee"), FluidRegistry.getFluid("potion.darkcafeaulait"), true); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), FluidRegistry.getFluid("potion.darkchocolatemilk"), FluidRegistry.getFluid("potion.chocolatemilk"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ice, 1L), FluidRegistry.getFluid("potion.tea"), FluidRegistry.getFluid("potion.icetea"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gunpowder, 1L), FluidRegistry.getFluid("potion.lemonade"), FluidRegistry.getFluid("potion.cavejohnsonsgrenadejuice"), true); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.fish, 1, 3), FluidRegistry.getFluid("potion.awkward"), FluidRegistry.getFluid("potion.waterbreathing"), false); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.magma_cream, 1, 0), FluidRegistry.getFluid("potion.awkward"), FluidRegistry.getFluid("potion.fireresistance"), false); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.golden_carrot, 1, 0), FluidRegistry.getFluid("potion.awkward"), FluidRegistry.getFluid("potion.nightvision"), false); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.fermented_spider_eye, 1, 0), FluidRegistry.getFluid("potion.awkward"), FluidRegistry.getFluid("potion.weakness"), false); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.spider_eye, 1, 0), FluidRegistry.getFluid("potion.awkward"), FluidRegistry.getFluid("potion.poison"), false); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.speckled_melon, 1, 0), FluidRegistry.getFluid("potion.awkward"), FluidRegistry.getFluid("potion.health"), false); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.ghast_tear, 1, 0), FluidRegistry.getFluid("potion.awkward"), FluidRegistry.getFluid("potion.regen"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), FluidRegistry.getFluid("potion.awkward"), FluidRegistry.getFluid("potion.speed"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1L), FluidRegistry.getFluid("potion.awkward"), FluidRegistry.getFluid("potion.strength"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), FluidRegistry.getFluid("potion.mundane"), FluidRegistry.getFluid("potion.purpledrink"), true); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.fermented_spider_eye, 1, 0), FluidRegistry.getFluid("potion.mundane"), FluidRegistry.getFluid("potion.weakness"), false); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.fermented_spider_eye, 1, 0), FluidRegistry.getFluid("potion.thick"), FluidRegistry.getFluid("potion.weakness"), false); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.spider_eye, 1, 0), FluidRegistry.getFluid("potion.thick"), FluidRegistry.getFluid("potion.poison.strong"), false); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.speckled_melon, 1, 0), FluidRegistry.getFluid("potion.thick"), FluidRegistry.getFluid("potion.health.strong"), false); - GT_Values.RA.addBrewingRecipe(new ItemStack(Items.ghast_tear, 1, 0), FluidRegistry.getFluid("potion.thick"), FluidRegistry.getFluid("potion.regen.strong"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), FluidRegistry.getFluid("potion.thick"), FluidRegistry.getFluid("potion.speed.strong"), false); - GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1L), FluidRegistry.getFluid("potion.thick"), FluidRegistry.getFluid("potion.strength.strong"), false); - - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("milk", 50), FluidRegistry.getFluidStack("potion.mundane", 25), 1024, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.lemonjuice", 50), FluidRegistry.getFluidStack("potion.limoncello", 25), 1024, true); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.applejuice", 50), FluidRegistry.getFluidStack("potion.cider", 25), 1024, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.goldenapplejuice", 50), FluidRegistry.getFluidStack("potion.goldencider", 25), 1024, true); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.idunsapplejuice", 50), FluidRegistry.getFluidStack("potion.notchesbrew", 25), 1024, true); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.reedwater", 50), FluidRegistry.getFluidStack("potion.rum", 25), 1024, true); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.rum", 50), FluidRegistry.getFluidStack("potion.piratebrew", 10), 2048, true); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.grapejuice", 50), FluidRegistry.getFluidStack("potion.wine", 25), 1024, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.wine", 50), FluidRegistry.getFluidStack("potion.vinegar", 10), 2048, true); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.wheatyjuice", 50), FluidRegistry.getFluidStack("potion.scotch", 25), 1024, true); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.scotch", 50), FluidRegistry.getFluidStack("potion.glenmckenner", 10), 2048, true); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.wheatyhopsjuice", 50), FluidRegistry.getFluidStack("potion.beer", 25), 1024, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.hopsjuice", 50), FluidRegistry.getFluidStack("potion.darkbeer", 25), 1024, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.darkbeer", 50), FluidRegistry.getFluidStack("potion.dragonblood", 10), 2048, true); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.awkward", 50), FluidRegistry.getFluidStack("potion.weakness", 25), 1024, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.mundane", 50), FluidRegistry.getFluidStack("potion.weakness", 25), 1024, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.thick", 50), FluidRegistry.getFluidStack("potion.weakness", 25), 1024, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.poison", 50), FluidRegistry.getFluidStack("potion.damage", 25), 1024, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.health", 50), FluidRegistry.getFluidStack("potion.damage", 25), 1024, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.waterbreathing", 50), FluidRegistry.getFluidStack("potion.damage", 25), 1024, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.nightvision", 50), FluidRegistry.getFluidStack("potion.invisibility", 25), 1024, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.fireresistance", 50), FluidRegistry.getFluidStack("potion.slowness", 25), 1024, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.speed", 50), FluidRegistry.getFluidStack("potion.slowness", 25), 1024, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.strength", 50), FluidRegistry.getFluidStack("potion.weakness", 25), 1024, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.regen", 50), FluidRegistry.getFluidStack("potion.poison", 25), 1024, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.poison.strong", 50), FluidRegistry.getFluidStack("potion.damage.strong", 10), 2048, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.health.strong", 50), FluidRegistry.getFluidStack("potion.damage.strong", 10), 2048, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.speed.strong", 50), FluidRegistry.getFluidStack("potion.slowness.strong", 10), 2048, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.strength.strong", 50), FluidRegistry.getFluidStack("potion.weakness.strong", 10), 2048, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.regen.strong", 50), FluidRegistry.getFluidStack("potion.poison.strong", 10), 2048, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.poison.long", 50), FluidRegistry.getFluidStack("potion.damage.long", 10), 2048, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.waterbreathing.long", 50), FluidRegistry.getFluidStack("potion.damage.long", 10), 2048, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.nightvision.long", 50), FluidRegistry.getFluidStack("potion.invisibility.long", 10), 2048, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.fireresistance.long", 50), FluidRegistry.getFluidStack("potion.slowness.long", 10), 2048, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.speed.long", 50), FluidRegistry.getFluidStack("potion.slowness.long", 10), 2048, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.strength.long", 50), FluidRegistry.getFluidStack("potion.weakness.long", 10), 2048, false); - GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.regen.long", 50), FluidRegistry.getFluidStack("potion.poison.long", 10), 2048, false); - - GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_PotatoChips.get(1L, new Object[0]), ItemList.Food_PotatoChips.get(1L, new Object[0])); - GT_ModHandler.addSmeltingRecipe(ItemList.Food_Potato_On_Stick.get(1L, new Object[0]), ItemList.Food_Potato_On_Stick_Roasted.get(1L, new Object[0])); - GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Bun.get(1L, new Object[0]), ItemList.Food_Baked_Bun.get(1L, new Object[0])); - GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Bread.get(1L, new Object[0]), ItemList.Food_Baked_Bread.get(1L, new Object[0])); - GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Baguette.get(1L, new Object[0]), ItemList.Food_Baked_Baguette.get(1L, new Object[0])); - GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Pizza_Veggie.get(1L, new Object[0]), ItemList.Food_Baked_Pizza_Veggie.get(1L, new Object[0])); - GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Pizza_Cheese.get(1L, new Object[0]), ItemList.Food_Baked_Pizza_Cheese.get(1L, new Object[0])); - GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Pizza_Meat.get(1L, new Object[0]), ItemList.Food_Baked_Pizza_Meat.get(1L, new Object[0])); - GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Baguette.get(1L, new Object[0]), ItemList.Food_Baked_Baguette.get(1L, new Object[0])); - GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Cake.get(1L, new Object[0]), ItemList.Food_Baked_Cake.get(1L, new Object[0])); - GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Cookie.get(1L, new Object[0]), new ItemStack(Items.cookie, 1)); - GT_ModHandler.addSmeltingRecipe(new ItemStack(Items.slime_ball, 1), ItemList.IC2_Resin.get(1L, new Object[0])); - - GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.bookshelf, 1, 32767), new ItemStack(Items.book, 3, 0)); - GT_ModHandler.addExtractionRecipe(new ItemStack(Items.slime_ball, 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Rubber, 2L)); - GT_ModHandler.addExtractionRecipe(ItemList.IC2_Resin.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Rubber, 3L)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getIC2Item("rubberSapling", 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Rubber, 1L)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getIC2Item("rubberLeaves", 16L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Rubber, 1L)); - GT_ModHandler.addExtractionRecipe(ItemList.Cell_Air.get(1L, new Object[0]), ItemList.Cell_Empty.get(1L, new Object[0])); - if(Loader.isModLoaded("ExtrabiomesXL")){ - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "waterplant1", 1, 0), new ItemStack(Items.dye,4,2)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "vines", 1, 0), new ItemStack(Items.dye,4,1)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 11), new ItemStack(Items.dye,4,11)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 10), new ItemStack(Items.dye,4,5)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 9), new ItemStack(Items.dye,4,14)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 8), new ItemStack(Items.dye,4,14)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 7), new ItemStack(Items.dye,4,1)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 6), new ItemStack(Items.dye,4,1)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 5), new ItemStack(Items.dye,4,11)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 0), new ItemStack(Items.dye,4,9)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 4), new ItemStack(Items.dye,4,11)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 3), new ItemStack(Items.dye,4,13)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower1", 1, 3), new ItemStack(Items.dye,4,5)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 2), new ItemStack(Items.dye,4,5)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower1", 1, 1), new ItemStack(Items.dye,4,12)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower2", 1, 15), new ItemStack(Items.dye,4,11)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower2", 1, 14), new ItemStack(Items.dye,4,1)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower2", 1, 13), new ItemStack(Items.dye,4,9)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower2", 1, 12), new ItemStack(Items.dye,4,14)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower2", 1, 11), new ItemStack(Items.dye,4,7)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower1", 1, 7), new ItemStack(Items.dye,4,7)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower1", 1, 2), new ItemStack(Items.dye,4,11)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 13), new ItemStack(Items.dye,4,6)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower2", 1, 6), new ItemStack(Items.dye,4,12)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower2", 1, 5), new ItemStack(Items.dye,4,10)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower2", 1, 2), new ItemStack(Items.dye,4,1)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower2", 1, 1), new ItemStack(Items.dye,4,9)); - GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower2", 1, 0), new ItemStack(Items.dye,4,13)); - } - - GT_ModHandler.addCompressionRecipe(ItemList.IC2_Compressed_Coal_Chunk.get(1L, new Object[0]), ItemList.IC2_Industrial_Diamond.get(1L, new Object[0])); - GT_ModHandler.addCompressionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uranium, 1L), GT_ModHandler.getIC2Item("Uran238", 1L)); - GT_ModHandler.addCompressionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uranium235, 1L), GT_ModHandler.getIC2Item("Uran235", 1L)); - GT_ModHandler.addCompressionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plutonium, 1L), GT_ModHandler.getIC2Item("Plutonium", 1L)); - GT_ModHandler.addCompressionRecipe(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Uranium235, 1L), GT_ModHandler.getIC2Item("smallUran235", 1L)); - GT_ModHandler.addCompressionRecipe(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Plutonium, 1L), GT_ModHandler.getIC2Item("smallPlutonium", 1L)); - GT_ModHandler.addCompressionRecipe(new ItemStack(Blocks.ice, 2, 32767), new ItemStack(Blocks.packed_ice, 1, 0)); - GT_ModHandler.addCompressionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ice, 1L), new ItemStack(Blocks.ice, 1, 0)); - GT_ModHandler.addCompressionRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.CertusQuartz, 4L), GT_ModHandler.getModItem("appliedenergistics2", "tile.BlockQuartz", 1L)); - GT_ModHandler.addCompressionRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 8L, 10), GT_ModHandler.getModItem("appliedenergistics2", "tile.BlockQuartz", 1L)); - GT_ModHandler.addCompressionRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 8L, 11), new ItemStack(Blocks.quartz_block, 1, 0)); - GT_ModHandler.addCompressionRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 8L, 12), GT_ModHandler.getModItem("appliedenergistics2", "tile.BlockFluix", 1L)); - GT_ModHandler.addCompressionRecipe(new ItemStack(Items.quartz, 4, 0), new ItemStack(Blocks.quartz_block, 1, 0)); - GT_ModHandler.addCompressionRecipe(new ItemStack(Items.wheat, 9, 0), new ItemStack(Blocks.hay_block, 1, 0)); - GT_ModHandler.addCompressionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 4L), new ItemStack(Blocks.glowstone, 1)); - GT_Values.RA.addCutterRecipe(GT_OreDictUnificator.get(OrePrefixes.block, Materials.Graphite, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Graphite, 9L), GT_Values.NI, 500, 48); - GT_ModHandler.removeFurnaceSmelting(GT_OreDictUnificator.get(OrePrefixes.ore, Materials.Graphite, 1L)); - GT_ModHandler.addSmeltingRecipe(GT_OreDictUnificator.get(OrePrefixes.ore, Materials.Graphite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphite, 1L)); - GT_ModHandler.removeFurnaceSmelting(GT_OreDictUnificator.get(OrePrefixes.oreBlackgranite, Materials.Graphite, 1L)); - GT_ModHandler.addSmeltingRecipe(GT_OreDictUnificator.get(OrePrefixes.oreBlackgranite, Materials.Graphite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphite, 1L)); - GT_ModHandler.removeFurnaceSmelting(GT_OreDictUnificator.get(OrePrefixes.oreEndstone, Materials.Graphite, 1L)); - GT_ModHandler.addSmeltingRecipe(GT_OreDictUnificator.get(OrePrefixes.oreEndstone, Materials.Graphite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphite, 1L)); - GT_ModHandler.removeFurnaceSmelting(GT_OreDictUnificator.get(OrePrefixes.oreNetherrack, Materials.Graphite, 1L)); - GT_ModHandler.addSmeltingRecipe(GT_OreDictUnificator.get(OrePrefixes.oreNetherrack, Materials.Graphite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphite, 1L)); - GT_ModHandler.removeFurnaceSmelting(GT_OreDictUnificator.get(OrePrefixes.oreRedgranite, Materials.Graphite, 1L)); - GT_ModHandler.addSmeltingRecipe(GT_OreDictUnificator.get(OrePrefixes.oreRedgranite, Materials.Graphite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphite, 1L)); - - GT_ModHandler.addPulverisationRecipe(GT_ModHandler.getModItem("appliedenergistics2", "tile.BlockSkyStone", 1L, 32767), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 45), GT_Values.NI, 0, false); - GT_ModHandler.addPulverisationRecipe(GT_ModHandler.getModItem("appliedenergistics2", "tile.BlockSkyChest", 1L, 32767), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 8L, 45), GT_Values.NI, 0, false); - GT_ModHandler.addPulverisationRecipe(new ItemStack(Items.blaze_rod, 1), new ItemStack(Items.blaze_powder, 3), new ItemStack(Items.blaze_powder, 1), 50, false); - GT_ModHandler.addPulverisationRecipe(GT_ModHandler.getModItem("Railcraft", "cube.crushed.obsidian", 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Obsidian, 1L), GT_Values.NI, 0, true); - GT_ModHandler.addPulverisationRecipe(new ItemStack(Items.flint, 1, 32767), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Flint, 4L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Flint, 1L), 40, true); - GT_ModHandler.addPulverisationRecipe(new ItemStack(Blocks.red_mushroom, 1, 32767), ItemList.IC2_Grin_Powder.get(1L, new Object[0])); - GT_ModHandler.addPulverisationRecipe(new ItemStack(Items.item_frame, 1, 32767), new ItemStack(Items.leather, 1), GT_OreDictUnificator.getDust(Materials.Wood, OrePrefixes.stick.mMaterialAmount * 4L), 95, false); - GT_ModHandler.addPulverisationRecipe(new ItemStack(Items.bow, 1, 0), new ItemStack(Items.string, 3), GT_OreDictUnificator.getDust(Materials.Wood, OrePrefixes.stick.mMaterialAmount * 3L), 95, false); - - GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.stonebrick, 1, 0), new ItemStack(Blocks.stonebrick, 1, 2), 16, 10); - GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.stone, 1, 0), new ItemStack(Blocks.cobblestone, 1, 0), 16, 10); - GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.cobblestone, 1, 0), new ItemStack(Blocks.gravel, 1, 0), 16, 10); - GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.sandstone, 1, 32767), new ItemStack(Blocks.sand, 1, 0), 16, 10); - GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.ice, 1, 0), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ice, 1L), 16, 10); - GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.packed_ice, 1, 0), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ice, 2L), 16, 10); - GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.hardened_clay, 1, 0), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Clay, 1L), 16, 10); - GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.stained_hardened_clay, 1, 32767), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Clay, 1L), 16, 10); - GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.brick_block, 1, 0), new ItemStack(Items.brick, 3, 0), 16, 10); - GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.nether_brick, 1, 0), new ItemStack(Items.netherbrick, 3, 0), 16, 10); - GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.stained_glass, 1, 32767), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 1L), 16, 10); - GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.glass, 1, 32767), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 1L), 16, 10); - GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.stained_glass_pane, 1, 32767), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3L), 16, 10); - GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.glass_pane, 1, 32767), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3L), 16, 10); - - GT_Values.RA.addForgeHammerRecipe(GT_ModHandler.getModItem("HardcoreEnderExpansion", "endium_ore", 1), GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Endium,1), 16, 10); - GT_ModHandler.addPulverisationRecipe(GT_ModHandler.getModItem("HardcoreEnderExpansion", "endium_ore", 1), GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Endium,2),GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Endstone,1),50,GT_Values.NI,0, true); - GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Endium, GT_ModHandler.getModItem("HardcoreEnderExpansion", "endium_ingot", 1), true, true); - - GT_Values.RA.addAmplifier(ItemList.IC2_Scrap.get(9L, new Object[0]), 180, 1); - GT_Values.RA.addAmplifier(ItemList.IC2_Scrapbox.get(1L, new Object[0]), 180, 1); - - GT_Values.RA.addBoxingRecipe(ItemList.IC2_Scrap.get(9L, new Object[0]), ItemList.Schematic_3by3.get(0L, new Object[0]), ItemList.IC2_Scrapbox.get(1L, new Object[0]), 16, 1); - GT_Values.RA.addBoxingRecipe(ItemList.Food_Fries.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Paper, 1L), ItemList.Food_Packaged_Fries.get(1L, new Object[0]), 64, 16); - GT_Values.RA.addBoxingRecipe(ItemList.Food_PotatoChips.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Aluminium, 1L), ItemList.Food_Packaged_PotatoChips.get(1L, new Object[0]), 64, 16); - GT_Values.RA.addBoxingRecipe(ItemList.Food_ChiliChips.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Aluminium, 1L), ItemList.Food_Packaged_ChiliChips.get(1L, new Object[0]), 64, 16); - - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 3L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Silicon, 1L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.ElectricalSteel, 4L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 2L), (int)Math.max(Materials.ElectricalSteel.getMass() / 40L, 1L) * Materials.ElectricalSteel.mBlastFurnaceTemp, 480, Materials.ElectricalSteel.mBlastFurnaceTemp); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tungsten, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.TungstenSteel, 2L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L), (int)Math.max(Materials.TungstenSteel.getMass() / 80L, 1L) * Materials.TungstenSteel.mBlastFurnaceTemp, 480, Materials.TungstenSteel.mBlastFurnaceTemp); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Vanadium, 3L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Gallium, 1L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.VanadiumGallium, 4L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 2L), (int)Math.max(Materials.VanadiumGallium.getMass() / 40L, 1L) * Materials.VanadiumGallium.mBlastFurnaceTemp, 480, Materials.VanadiumGallium.mBlastFurnaceTemp); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Niobium, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Titanium, 1L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.NiobiumTitanium, 2L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L), (int)Math.max(Materials.NiobiumTitanium.getMass() / 80L, 1L) * Materials.NiobiumTitanium.mBlastFurnaceTemp, 480, Materials.NiobiumTitanium.mBlastFurnaceTemp); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Nickel, 4L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Chrome, 1L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.Nichrome, 5L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 2L), (int)Math.max(Materials.Nichrome.getMass() / 32L, 1L) * Materials.Nichrome.mBlastFurnaceTemp, 480, Materials.Nichrome.mBlastFurnaceTemp); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ruby, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Aluminium, 3L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L), 400, 100, 1200); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Aluminium, 3L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L), 320, 100, 1200); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GreenSapphire, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Aluminium, 3L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L), 400, 100, 1200); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GreenSapphire, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Aluminium, 3L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L), 320, 100, 1200); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sapphire, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Aluminium, 3L), GT_Values.NI, 400, 100, 1200); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Aluminium, 3L), GT_Values.NI, 320, 100, 1200); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ilmenite, 1L), GT_Values.NI, Materials.Oxygen.getGas(2000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.WroughtIron, 4L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Titanium, 4L), 800, 500, 1700); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Ilmenite, 1L), GT_Values.NI, Materials.Oxygen.getGas(2000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.WroughtIron, 5L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Titanium, 5L), 640, 500, 1700); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Galena, 1L), GT_Values.NI, Materials.Oxygen.getGas(2000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Silver, 4L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Lead, 4L), 400, 500, 1500); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Galena, 1L), GT_Values.NI, Materials.Oxygen.getGas(2000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Silver, 5L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Lead, 5L), 320, 500, 1500); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnetite, 1L), GT_Values.NI, Materials.Oxygen.getGas(2000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.WroughtIron, 4L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L), 400, 500, 1000); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Magnetite, 1L), GT_Values.NI, Materials.Oxygen.getGas(2000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.WroughtIron, 5L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Ash, 1L), 320, 500, 1000); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), GT_Values.NI, Materials.Oxygen.getGas(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L), 500, 120, 1000); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.PigIron, 1L), GT_Values.NI, Materials.Oxygen.getGas(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L), 100, 120, 1000); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.WroughtIron, 1L), GT_Values.NI, Materials.Oxygen.getGas(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L), 100, 120, 1000); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.ShadowIron, 1L), GT_Values.NI, Materials.Oxygen.getGas(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.ShadowSteel, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L), 500, 120, 1100); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.MeteoricIron, 1L), GT_Values.NI, Materials.Oxygen.getGas(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.MeteoricSteel, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L), 500, 120, 1200); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Copper, 1L), GT_Values.NI, Materials.Oxygen.getGas(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.AnnealedCopper, 1L), GT_Values.NI, 500, 120, 1200); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L), GT_Values.NI, Materials.Oxygen.getGas(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.AnnealedCopper, 1L), GT_Values.NI, 500, 120, 1200); - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.ElectricalSteel, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Obsidian, 1L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.DarkSteel, 1L), GT_Values.NI, 4000, 360, 2000); - - GT_Values.RA.addCannerRecipe(GT_ModHandler.getIC2Item("fuelRod", 1), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Lithium, 1L), GT_ModHandler.getIC2Item("reactorLithiumCell", 1,1) , null, 16, 64); - GT_Values.RA.addFluidExtractionRecipe(GT_ModHandler.getIC2Item("TritiumCell", 1), GT_ModHandler.getIC2Item("fuelRod", 1), Materials.Tritium.getGas(32), 10000, 16, 64); - GT_Values.RA.addCannerRecipe( GT_ModHandler.getIC2Item("fuelRod", 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Thorium,3), ItemList.ThoriumCell_1.get(1L, new Object[0]), null, 30, 16); - GT_Values.RA.addCannerRecipe( GT_ModHandler.getIC2Item("fuelRod", 1), GT_ModHandler.getIC2Item("UranFuel",1), GT_ModHandler.getIC2Item("reactorUraniumSimple",1,1), null, 30, 16); - GT_Values.RA.addCannerRecipe( GT_ModHandler.getIC2Item("fuelRod", 1), GT_ModHandler.getIC2Item("MOXFuel",1), GT_ModHandler.getIC2Item("reactorMOXSimple",1,1), null, 30, 16); - - GT_Values.RA.addFusionReactorRecipe(Materials.Lithium.getMolten(16), Materials.Tungsten.getMolten(16), Materials.Iridium.getMolten(16), 32, 32768, 300000000); - GT_Values.RA.addFusionReactorRecipe(Materials.Deuterium.getGas(125), Materials.Tritium.getGas(125), Materials.Helium.getPlasma(125), 16, 4096, 40000000); //Mark 1 Cheap // - GT_Values.RA.addFusionReactorRecipe(Materials.Deuterium.getGas(125), Materials.Helium_3.getGas(125), Materials.Helium.getPlasma(125), 16, 2048, 60000000); //Mark 1 Expensive // - GT_Values.RA.addFusionReactorRecipe(Materials.Carbon.getMolten(125), Materials.Helium_3.getGas(125), Materials.Oxygen.getPlasma(125), 32, 4096, 80000000); //Mark 1 Expensive // - GT_Values.RA.addFusionReactorRecipe(Materials.Aluminium.getMolten(16), Materials.Lithium.getMolten(16), Materials.Sulfur.getPlasma(125), 32, 10240, 240000000); //Mark 2 Cheap - GT_Values.RA.addFusionReactorRecipe(Materials.Beryllium.getMolten(16), Materials.Deuterium.getGas(375), Materials.Nitrogen.getPlasma(175), 16, 16384, 180000000); //Mark 2 Expensive // - GT_Values.RA.addFusionReactorRecipe(Materials.Silicon.getMolten(16), Materials.Magnesium.getMolten(16), Materials.Iron.getPlasma(125), 32, 8192, 360000000); //Mark 3 Cheap // - GT_Values.RA.addFusionReactorRecipe(Materials.Potassium.getMolten(16), Materials.Fluorine.getGas(125), Materials.Nickel.getPlasma(125), 16, 32768, 480000000); //Mark 3 Expensive // - GT_Values.RA.addFusionReactorRecipe(Materials.Beryllium.getMolten(16), Materials.Tungsten.getMolten(16), Materials.Platinum.getMolten(16), 32, 32768, 150000000); // - GT_Values.RA.addFusionReactorRecipe(Materials.Neodymium.getMolten(16), Materials.Hydrogen.getGas(48), Materials.Europium.getMolten(16), 64, 24576, 150000000); // - GT_Values.RA.addFusionReactorRecipe(Materials.Lutetium.getMolten(16), Materials.Chrome.getMolten(16), Materials.Americium.getMolten(16), 96, 49152, 200000000); // - GT_Values.RA.addFusionReactorRecipe(Materials.Plutonium.getMolten(16), Materials.Thorium.getMolten(16), Materials.Naquadah.getMolten(16), 64, 32768, 300000000); // - GT_Values.RA.addFusionReactorRecipe(Materials.Americium.getMolten(16), Materials.Naquadria.getMolten(16), Materials.Neutronium.getMolten(1), 1200, 98304, 600000000); // + implements Runnable { + private final MaterialStack[][] mAlloySmelterList = {{new MaterialStack(Materials.Tetrahedrite, 3L), new MaterialStack(Materials.Tin, 1L), new MaterialStack(Materials.Bronze, 3L)}, {new MaterialStack(Materials.Tetrahedrite, 3L), new MaterialStack(Materials.Zinc, 1L), new MaterialStack(Materials.Brass, 3L)}, {new MaterialStack(Materials.Copper, 3L), new MaterialStack(Materials.Tin, 1L), new MaterialStack(Materials.Bronze, 4L)}, {new MaterialStack(Materials.Copper, 3L), new MaterialStack(Materials.Zinc, 1L), new MaterialStack(Materials.Brass, 4L)}, {new MaterialStack(Materials.Copper, 1L), new MaterialStack(Materials.Nickel, 1L), new MaterialStack(Materials.Cupronickel, 2L)}, {new MaterialStack(Materials.Copper, 1L), new MaterialStack(Materials.Redstone, 4L), new MaterialStack(Materials.RedAlloy, 1L)}, {new MaterialStack(Materials.AnnealedCopper, 3L), new MaterialStack(Materials.Tin, 1L), new MaterialStack(Materials.Bronze, 4L)}, {new MaterialStack(Materials.AnnealedCopper, 3L), new MaterialStack(Materials.Zinc, 1L), new MaterialStack(Materials.Brass, 4L)}, {new MaterialStack(Materials.AnnealedCopper, 1L), new MaterialStack(Materials.Nickel, 1L), new MaterialStack(Materials.Cupronickel, 2L)}, {new MaterialStack(Materials.AnnealedCopper, 1L), new MaterialStack(Materials.Redstone, 4L), new MaterialStack(Materials.RedAlloy, 1L)}, {new MaterialStack(Materials.Iron, 1L), new MaterialStack(Materials.Tin, 1L), new MaterialStack(Materials.TinAlloy, 2L)}, {new MaterialStack(Materials.WroughtIron, 1L), new MaterialStack(Materials.Tin, 1L), new MaterialStack(Materials.TinAlloy, 2L)}, {new MaterialStack(Materials.Iron, 2L), new MaterialStack(Materials.Nickel, 1L), new MaterialStack(Materials.Invar, 3L)}, {new MaterialStack(Materials.WroughtIron, 2L), new MaterialStack(Materials.Nickel, 1L), new MaterialStack(Materials.Invar, 3L)}, {new MaterialStack(Materials.Tin, 9L), new MaterialStack(Materials.Antimony, 1L), new MaterialStack(Materials.SolderingAlloy, 10L)}, {new MaterialStack(Materials.Lead, 4L), new MaterialStack(Materials.Antimony, 1L), new MaterialStack(Materials.BatteryAlloy, 5L)}, {new MaterialStack(Materials.Gold, 1L), new MaterialStack(Materials.Silver, 1L), new MaterialStack(Materials.Electrum, 2L)}, {new MaterialStack(Materials.Magnesium, 1L), new MaterialStack(Materials.Aluminium, 2L), new MaterialStack(Materials.Magnalium, 3L)}, {new MaterialStack(Materials.Silver, 1L), new MaterialStack(Materials.Nikolite, 4L), new MaterialStack(Materials.BlueAlloy, 1L)}}; - GT_Values.RA.addFusionReactorRecipe(Materials.Tungsten.getMolten(16), Materials.Helium.getGas(16), Materials.Osmium.getMolten(16), 64, 24578, 150000000); // - GT_Values.RA.addFusionReactorRecipe(Materials.Manganese.getMolten(16), Materials.Hydrogen.getGas(16), Materials.Iron.getMolten(16), 64, 8192, 120000000); // - GT_Values.RA.addFusionReactorRecipe(Materials.Mercury.getFluid(16), Materials.Magnesium.getMolten(16), Materials.Uranium.getMolten(16), 64, 49152, 240000000); // - GT_Values.RA.addFusionReactorRecipe(Materials.Gold.getMolten(16), Materials.Aluminium.getMolten(16), Materials.Uranium.getMolten(16), 64, 49152, 240000000); // - GT_Values.RA.addFusionReactorRecipe(Materials.Uranium.getMolten(16), Materials.Helium.getGas(16), Materials.Plutonium.getMolten(16), 128, 49152, 480000000); // - GT_Values.RA.addFusionReactorRecipe(Materials.Vanadium.getMolten(16), Materials.Hydrogen.getGas(125), Materials.Chrome.getMolten(16), 64, 24576, 140000000); // - - GT_ModHandler.removeRecipeByOutput(ItemList.IC2_Fertilizer.get(1L, new Object[0])); - GT_Values.RA.addImplosionRecipe(ItemList.IC2_Compressed_Coal_Chunk.get(1L, new Object[0]), 8, ItemList.IC2_Industrial_Diamond.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 4L)); - GT_Values.RA.addFluidExtractionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quartzite,1L), null, Materials.Glass.getMolten(250), 10000, 600, 28);//(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SiliconDioxide,1L), GT_OreDictUnificator.get(OrePrefixes.dust,Materials.SiliconDioxide,2L),GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Glass,1L)/** GT_Utility.fillFluidContainer(Materials.Glass.getMolten(1000), ItemList.Cell_Empty.get(1, new Object[0]), true, true)**/, 600, 16); - - GT_Values.RA.addDistillationTowerRecipe(Materials.Oil.getFluid(64L), new FluidStack[]{Materials.Lubricant.getFluid(16L) , Materials.Fuel.getFluid(64L), Materials.SulfuricAcid.getFluid(64L), Materials.Glyceryl.getFluid(4L), Materials.Methane.getGas(60L)},null, 16, 64); - GT_Values.RA.addDistillationTowerRecipe(new FluidStack(ItemList.sOilLight, 128), new FluidStack[]{Materials.Lubricant.getFluid(16L) , Materials.Fuel.getFluid(64L), Materials.SulfuricAcid.getFluid(64L), Materials.Glyceryl.getFluid(4L), Materials.Methane.getGas(60L)}, null, 16, 64); - GT_Values.RA.addDistillationTowerRecipe(new FluidStack(ItemList.sOilMedium, 64), new FluidStack[]{Materials.Lubricant.getFluid(16L) , Materials.Fuel.getFluid(64L), Materials.SulfuricAcid.getFluid(64L), Materials.Glyceryl.getFluid(4L), Materials.Methane.getGas(60L)}, null, 16, 64); - GT_Values.RA.addDistillationTowerRecipe(new FluidStack(ItemList.sOilHeavy, 32), new FluidStack[]{Materials.Lubricant.getFluid(16L) , Materials.Fuel.getFluid(64L), Materials.SulfuricAcid.getFluid(64L), Materials.Glyceryl.getFluid(4L), Materials.Methane.getGas(60L)}, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.HydratedCoal, 1L), 24, 64); - GT_Values.RA.addDistillationTowerRecipe(new FluidStack(ItemList.sOilExtraHeavy, 16), new FluidStack[]{Materials.Lubricant.getFluid(16L) , Materials.Fuel.getFluid(64L), Materials.SulfuricAcid.getFluid(64L), Materials.Glyceryl.getFluid(4L), Materials.Methane.getGas(60L)}, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.HydratedCoal, 1L), 24, 64); - GT_Values.RA.addDistillationTowerRecipe(new FluidStack(ItemList.sNaturalGas, 64), new FluidStack[]{Materials.Methane.getGas(120L)}, null, 16, 64); - GT_Values.RA.addDistillationTowerRecipe(Materials.Creosote.getFluid(24L), new FluidStack[]{Materials.Lubricant.getFluid(12L)}, null, 16, 96); - GT_Values.RA.addDistillationTowerRecipe(Materials.SeedOil.getFluid(32L), new FluidStack[]{Materials.Lubricant.getFluid(12L)}, null, 16, 96); - GT_Values.RA.addDistillationTowerRecipe(Materials.FishOil.getFluid(24L), new FluidStack[]{Materials.Lubricant.getFluid(12L)}, null, 16, 96); - GT_Values.RA.addDistillationTowerRecipe(Materials.Biomass.getFluid(150L), new FluidStack[]{Materials.Ethanol.getFluid(60L),Materials.Water.getFluid(60L)}, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 1L), 25, 64); - GT_Values.RA.addDistillationTowerRecipe(Materials.Water.getFluid(288L), new FluidStack[]{GT_ModHandler.getDistilledWater(260L)}, null, 16, 64); - GT_Values.RA.addDistillationTowerRecipe(new FluidStack(FluidRegistry.getFluid("ic2biomass"), 250), new FluidStack[]{new FluidStack(FluidRegistry.getFluid("ic2biogas"), 8000),Materials.Water.getFluid(125L)}, ItemList.IC2_Fertilizer.get(1, new Object[0]), 150, 512); - GT_Values.RA.addFuel(GT_ModHandler.getIC2Item("biogasCell", 1L), null, 32, 1); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new FluidStack(FluidRegistry.getFluid("ic2biomass"), 1), new FluidStack(FluidRegistry.getFluid("ic2biogas"),32), 20, 30, false); - GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), new FluidStack(FluidRegistry.getFluid("ic2biomass"), 4), Materials.Water.getFluid(2), 80, 30, false); - - - GT_Values.RA.addFuel(GT_ModHandler.getModItem("Thaumcraft", "ItemShard", 1L, 6), null, 720, 5); - GT_Values.RA.addFuel(GT_ModHandler.getModItem("ForbiddenMagic", "GluttonyShard", 1L), null, 720, 5); - GT_Values.RA.addFuel(GT_ModHandler.getModItem("ForbiddenMagic", "FMResource", 1L, 3), null, 720, 5); - GT_Values.RA.addFuel(GT_ModHandler.getModItem("ForbiddenMagic", "NetherShard", 1L), null, 720, 5); - GT_Values.RA.addFuel(GT_ModHandler.getModItem("ForbiddenMagic", "NetherShard", 1L,1), null, 720, 5); - GT_Values.RA.addFuel(GT_ModHandler.getModItem("ForbiddenMagic", "NetherShard", 1L,2), null, 720, 5); - GT_Values.RA.addFuel(GT_ModHandler.getModItem("ForbiddenMagic", "NetherShard", 1L,3), null, 720, 5); - GT_Values.RA.addFuel(GT_ModHandler.getModItem("ForbiddenMagic", "NetherShard", 1L,4), null, 720, 5); - GT_Values.RA.addFuel(GT_ModHandler.getModItem("ForbiddenMagic", "NetherShard", 1L,5), null, 720, 5); - GT_Values.RA.addFuel(GT_ModHandler.getModItem("ForbiddenMagic", "NetherShard", 1L,6), null, 720, 5); - GT_Values.RA.addFuel(GT_ModHandler.getModItem("TaintedMagic", "WarpedShard", 1L), null, 720, 5); - GT_Values.RA.addFuel(GT_ModHandler.getModItem("TaintedMagic", "FluxShard", 1L), null, 720, 5); - GT_Values.RA.addFuel(GT_ModHandler.getModItem("TaintedMagic", "EldritchShard", 1L), null, 720, 5); - GT_Values.RA.addFuel(GT_ModHandler.getModItem("ThaumicTinkerer", "kamiResource", 1L,6), null, 720, 5); - GT_Values.RA.addFuel(GT_ModHandler.getModItem("ThaumicTinkerer", "kamiResource", 1L,7), null, 720, 5); - - GT_Values.RA.addElectrolyzerRecipe(GT_Values.NI, ItemList.Cell_Empty.get(1L, new Object[0]), Materials.Water.getFluid(3000L), Materials.Hydrogen.getGas(2000L), GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 1500, 30); - GT_Values.RA.addElectrolyzerRecipe(GT_Values.NI, ItemList.Cell_Empty.get(1L, new Object[0]), GT_ModHandler.getDistilledWater(3000L), Materials.Hydrogen.getGas(2000L), GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 1500, 30); - GT_Values.RA.addElectrolyzerRecipe(GT_ModHandler.getIC2Item("electrolyzedWaterCell", 3L), 0, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 2L), GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 30, 30); - GT_Values.RA.addElectrolyzerRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Water, 1L), 0, GT_ModHandler.getIC2Item("electrolyzedWaterCell", 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, 490, 30); - GT_Values.RA.addElectrolyzerRecipe(ItemList.Dye_Bonemeal.get(3L, new Object[0]), 0, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, 98, 26); - GT_Values.RA.addElectrolyzerRecipe(new ItemStack(Blocks.sand, 8), 0, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, 500, 25); - + public void run() { + GT_Log.out.println("GT_Mod: Adding non-OreDict Machine Recipes."); + try { + GT_Utility.removeSimpleIC2MachineRecipe(GT_Values.NI, ic2.api.recipe.Recipes.metalformerExtruding.getRecipes(), ItemList.Cell_Empty.get(3L, new Object[0])); + GT_Utility.removeSimpleIC2MachineRecipe(ItemList.IC2_Energium_Dust.get(1L, new Object[0]), ic2.api.recipe.Recipes.compressor.getRecipes(), GT_Values.NI); + GT_Utility.removeSimpleIC2MachineRecipe(new ItemStack(Items.gunpowder), ic2.api.recipe.Recipes.extractor.getRecipes(), GT_Values.NI); + GT_Utility.removeSimpleIC2MachineRecipe(new ItemStack(Blocks.wool, 1, 32767), ic2.api.recipe.Recipes.extractor.getRecipes(), GT_Values.NI); + } catch (Throwable e) { + } + GT_Values.RA.addFluidExtractionRecipe(new ItemStack(Items.wheat_seeds, 1, 32767), GT_Values.NI, Materials.SeedOil.getFluid(5L), 10000, 32, 2); + GT_Values.RA.addFluidExtractionRecipe(new ItemStack(Items.melon_seeds, 1, 32767), GT_Values.NI, Materials.SeedOil.getFluid(3L), 10000, 32, 2); + GT_Values.RA.addFluidExtractionRecipe(new ItemStack(Items.pumpkin_seeds, 1, 32767), GT_Values.NI, Materials.SeedOil.getFluid(6L), 10000, 32, 2); + try { + GT_DummyWorld tWorld = (GT_DummyWorld) GT_Values.DW; + while (tWorld.mRandom.mIterationStep > 0) { + GT_Values.RA.addFluidExtractionRecipe(GT_Utility.copyAmount(1L, new Object[]{ForgeHooks.getGrassSeed(tWorld)}), GT_Values.NI, Materials.SeedOil.getFluid(5L), 10000, 64, 2); + } + } catch (Throwable e) { + GT_Log.out.println("GT_Mod: failed to iterate somehow, maybe it's your Forge Version causing it. But it's not that important\n"); + e.printStackTrace(GT_Log.err); + } + GT_Values.RA.addPrinterRecipe(GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Paper, 1L), FluidRegistry.getFluidStack("squidink", 36), GT_Values.NI, ItemList.Paper_Punch_Card_Empty.get(1L, new Object[0]), 100, 2); + GT_Values.RA.addPrinterRecipe(ItemList.Paper_Punch_Card_Empty.get(1L, new Object[0]), FluidRegistry.getFluidStack("squidink", 36), ItemList.Tool_DataStick.getWithName(0L, "With Punch Card Data", new Object[0]), ItemList.Paper_Punch_Card_Encoded.get(1L, new Object[0]), 100, 2); + GT_Values.RA.addPrinterRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 3L), FluidRegistry.getFluidStack("squidink", 144), ItemList.Tool_DataStick.getWithName(0L, "With Scanned Book Data", new Object[0]), ItemList.Paper_Printed_Pages.get(1L, new Object[0]), 400, 2); + GT_Values.RA.addPrinterRecipe(new ItemStack(Items.map, 1, 32767), FluidRegistry.getFluidStack("squidink", 144), ItemList.Tool_DataStick.getWithName(0L, "With Scanned Map Data", new Object[0]), new ItemStack(Items.filled_map, 1, 0), 400, 2); + GT_Values.RA.addPrinterRecipe(new ItemStack(Items.book, 1, 32767), FluidRegistry.getFluidStack("squidink", 144), GT_Values.NI, GT_Utility.getWrittenBook("Manual_Printer", ItemList.Book_Written_01.get(1L, new Object[0])), 400, 2); + for (OrePrefixes tPrefix : Arrays.asList(new OrePrefixes[]{OrePrefixes.dust, OrePrefixes.dustSmall, OrePrefixes.dustTiny})) { + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.EnderPearl, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Blaze, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.EnderEye, 1L * tPrefix.mMaterialAmount), (int) (100L * tPrefix.mMaterialAmount / 3628800L), 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Gold, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Silver, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.Electrum, 2L * tPrefix.mMaterialAmount), (int) (200L * tPrefix.mMaterialAmount / 3628800L), 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Iron, 2L), GT_OreDictUnificator.get(tPrefix, Materials.Nickel, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.Invar, 3L * tPrefix.mMaterialAmount), (int) (300L * tPrefix.mMaterialAmount / 3628800L), 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Iron, 4L), GT_OreDictUnificator.get(tPrefix, Materials.Invar, 3L), GT_OreDictUnificator.get(tPrefix, Materials.Manganese, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Chrome, 1L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.StainlessSteel, 9L * tPrefix.mMaterialAmount), (int) (900L * tPrefix.mMaterialAmount / 3628800L), 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Iron, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Aluminium, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Chrome, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.Kanthal, 3L * tPrefix.mMaterialAmount), (int) (300L * tPrefix.mMaterialAmount / 3628800L), 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Copper, 3L), GT_OreDictUnificator.get(tPrefix, Materials.Barium, 2L), GT_OreDictUnificator.get(tPrefix, Materials.Yttrium, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.YttriumBariumCuprate, 6L * tPrefix.mMaterialAmount), (int) (600L * tPrefix.mMaterialAmount / 3628800L), 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Copper, 3L), GT_OreDictUnificator.get(tPrefix, Materials.Zinc, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.Brass, 4L * tPrefix.mMaterialAmount), (int) (400L * tPrefix.mMaterialAmount / 3628800L), 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Copper, 3L), GT_OreDictUnificator.get(tPrefix, Materials.Tin, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.Bronze, 4L * tPrefix.mMaterialAmount), (int) (400L * tPrefix.mMaterialAmount / 3628800L), 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Copper, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Nickel, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.Cupronickel, 2L * tPrefix.mMaterialAmount), (int) (200L * tPrefix.mMaterialAmount / 3628800L), 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Copper, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Gold, 4L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.RoseGold, 5L * tPrefix.mMaterialAmount), (int) (500L * tPrefix.mMaterialAmount / 3628800L), 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Copper, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Silver, 4L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.SterlingSilver, 5L * tPrefix.mMaterialAmount), (int) (500L * tPrefix.mMaterialAmount / 3628800L), 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Copper, 3L), GT_OreDictUnificator.get(tPrefix, Materials.Electrum, 2L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.BlackBronze, 5L * tPrefix.mMaterialAmount), (int) (500L * tPrefix.mMaterialAmount / 3628800L), 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Bismuth, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Brass, 4L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.BismuthBronze, 5L * tPrefix.mMaterialAmount), (int) (500L * tPrefix.mMaterialAmount / 3628800L), 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.BlackBronze, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Nickel, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Steel, 3L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.BlackSteel, 5L * tPrefix.mMaterialAmount), (int) (500L * tPrefix.mMaterialAmount / 3628800L), 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.SterlingSilver, 1L), GT_OreDictUnificator.get(tPrefix, Materials.BismuthBronze, 1L), GT_OreDictUnificator.get(tPrefix, Materials.BlackSteel, 4L), GT_OreDictUnificator.get(tPrefix, Materials.Steel, 2L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.RedSteel, 8L * tPrefix.mMaterialAmount), (int) (800L * tPrefix.mMaterialAmount / 3628800L), 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.RoseGold, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Brass, 1L), GT_OreDictUnificator.get(tPrefix, Materials.BlackSteel, 4L), GT_OreDictUnificator.get(tPrefix, Materials.Steel, 2L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.BlueSteel, 8L * tPrefix.mMaterialAmount), (int) (800L * tPrefix.mMaterialAmount / 3628800L), 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Cobalt, 5L), GT_OreDictUnificator.get(tPrefix, Materials.Chrome, 2L), GT_OreDictUnificator.get(tPrefix, Materials.Nickel, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Molybdenum, 1L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.Ultimet, 9L * tPrefix.mMaterialAmount), (int) (900L * tPrefix.mMaterialAmount / 3628800L), 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Brass, 7L), GT_OreDictUnificator.get(tPrefix, Materials.Aluminium, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Cobalt, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.CobaltBrass, 9L * tPrefix.mMaterialAmount), (int) (900L * tPrefix.mMaterialAmount / 3628800L), 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Saltpeter, 2L), GT_OreDictUnificator.get(tPrefix, Materials.Sulfur, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Coal, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.Gunpowder, 4L * tPrefix.mMaterialAmount), (int) (400L * tPrefix.mMaterialAmount / 3628800L), 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Saltpeter, 2L), GT_OreDictUnificator.get(tPrefix, Materials.Sulfur, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Charcoal, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.Gunpowder, 3L * tPrefix.mMaterialAmount), (int) (300L * tPrefix.mMaterialAmount / 3628800L), 8); + } + GT_Values.RA.addMixerRecipe(new ItemStack(Items.rotten_flesh, 1, 0), new ItemStack(Items.fermented_spider_eye, 1, 0), ItemList.IC2_Scrap.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatRaw, 1L), FluidRegistry.getFluidStack("potion.purpledrink", 750), FluidRegistry.getFluidStack("sludge", 1000), ItemList.Food_Chum.get(4L, new Object[0]), 128, 24); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wheat, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, Materials.Water.getFluid(1000L), GT_Values.NF, ItemList.Food_Dough.get(2L, new Object[0]), 32, 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chili, 1L), ItemList.Food_PotatoChips.get(1L, new Object[0]), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.Food_ChiliChips.get(1L, new Object[0]), 32, 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Clay, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 3L), GT_Values.NI, GT_Values.NI, Materials.Water.getFluid(500L), Materials.Concrete.getMolten(576L), GT_Values.NI, 20, 16); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Redstone, 5L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ruby, 4L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.IC2_Energium_Dust.get(1L, new Object[0]), 100, 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 5L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ruby, 4L), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.IC2_Energium_Dust.get(9L, new Object[0]), 900, 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), new ItemStack(Blocks.brown_mushroom, 1), new ItemStack(Items.spider_eye, 1), GT_Values.NI, GT_Values.NF, GT_Values.NF, new ItemStack(Items.fermented_spider_eye, 1), 100, 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.LiveRoot, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.IronWood, 2L), 100, 8); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 9L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.LiveRoot, 9L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.IronWood, 18L), 900, 8); + GT_Values.RA.addMixerRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.NetherQuartz, 1L), GT_Values.NI, Materials.Water.getFluid(500L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Fluix, 2L), 20, 16); + GT_Values.RA.addMixerRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.NetherQuartz, 1L), GT_Values.NI, GT_ModHandler.getDistilledWater(500L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Fluix, 2L), 20, 16); + GT_Values.RA.addMixerRecipe(ItemList.IC2_Fertilizer.get(1L, new Object[0]), new ItemStack(Blocks.dirt, 8, 32767), GT_Values.NI, GT_Values.NI, Materials.Water.getFluid(1000L), GT_Values.NF, GT_ModHandler.getModItem("Forestry", "soil", 8L, 0), 64, 16); + GT_Values.RA.addMixerRecipe(ItemList.FR_Fertilizer.get(1L, new Object[0]), new ItemStack(Blocks.dirt, 8, 32767), GT_Values.NI, GT_Values.NI, Materials.Water.getFluid(1000L), GT_Values.NF, GT_ModHandler.getModItem("Forestry", "soil", 8L, 0), 64, 16); + GT_Values.RA.addMixerRecipe(ItemList.FR_Compost.get(1L, new Object[0]), new ItemStack(Blocks.dirt, 8, 32767), GT_Values.NI, GT_Values.NI, Materials.Water.getFluid(1000L), GT_Values.NF, GT_ModHandler.getModItem("Forestry", "soil", 8L, 0), 64, 16); + GT_Values.RA.addMixerRecipe(ItemList.FR_Mulch.get(1L, new Object[0]), new ItemStack(Blocks.dirt, 8, 32767), GT_Values.NI, GT_Values.NI, Materials.Water.getFluid(1000L), GT_Values.NF, GT_ModHandler.getModItem("Forestry", "soil", 9L, 0), 64, 16); + GT_Values.RA.addMixerRecipe(new ItemStack(Blocks.sand, 1, 32767), new ItemStack(Blocks.dirt, 1, 32767), GT_Values.NI, GT_Values.NI, Materials.Water.getFluid(250L), GT_Values.NF, GT_ModHandler.getModItem("Forestry", "soil", 2L, 1), 16, 16); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NetherQuartz, 3L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1L), Materials.Water.getFluid(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.NetherQuartz, 3L), 500); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CertusQuartz, 3L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1L), Materials.Water.getFluid(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.CertusQuartz, 3L), 500); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quartzite, 3L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1L), Materials.Water.getFluid(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Quartzite, 3L), 500); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NetherQuartz, 3L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1L), GT_ModHandler.getDistilledWater(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.NetherQuartz, 3L), 500); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CertusQuartz, 3L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1L), GT_ModHandler.getDistilledWater(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.CertusQuartz, 3L), 500); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quartzite, 3L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1L), GT_ModHandler.getDistilledWater(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Quartzite, 3L), 500); - - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uraninite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminium, 1L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uranium, 1L), 1000); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uraninite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 1L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uranium, 1L), 1000); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1L), Materials.Oxygen.getGas(3000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 5L), 500); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1L), GT_Values.NI, Materials.Hydrogen.getGas(4000L), Materials.Methane.getGas(5000L), GT_Values.NI, 3500); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), GT_Values.NI, Materials.Water.getFluid(2000L), Materials.SulfuricAcid.getFluid(3000L), GT_Values.NI, 1150); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1L), Materials.Oxygen.getGas(4000L), Materials.SodiumPersulfate.getFluid(6000L), GT_Values.NI, 8000); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Nitrogen, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1L), Materials.Water.getFluid(2000L), Materials.Glyceryl.getFluid(4000L), ItemList.Cell_Empty.get(1L, new Object[0]), 2700); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Fuel, 1L), GT_Values.NI, Materials.Glyceryl.getFluid(250L), Materials.NitroFuel.getFluid(1250L), ItemList.Cell_Empty.get(1L, new Object[0]), 250); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Glyceryl, 1L), GT_Values.NI, Materials.Fuel.getFluid(4000L), Materials.NitroFuel.getFluid(5000L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Nitrogen, 1L), GT_Values.NI, Materials.Oxygen.getGas(2000L), Materials.NitrogenDioxide.getGas(3000L), ItemList.Cell_Empty.get(1L, new Object[0]), 1250); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 2L), GT_Values.NI, Materials.Nitrogen.getGas(1000L), Materials.NitrogenDioxide.getGas(3000L), ItemList.Cell_Empty.get(2L, new Object[0]), 1250); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1L), GT_Values.NI, Materials.Hydrogen.getGas(2000L), GT_ModHandler.getDistilledWater(3000L), ItemList.Cell_Empty.get(1L, new Object[0]), 10); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 1L), GT_Values.NI, Materials.Oxygen.getGas(500L), GT_ModHandler.getDistilledWater(1500L), ItemList.Cell_Empty.get(1L, new Object[0]), 5); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tin, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 1L), Materials.Glass.getMolten(864L), GT_Values.NF, GT_ModHandler.getModItem("Railcraft", "tile.railcraft.glass", 6L), 50); - - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Gold, 8L), new ItemStack(Items.melon, 1, 32767), new ItemStack(Items.speckled_melon, 1, 0), 50); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Gold, 8L), new ItemStack(Items.carrot, 1, 32767), new ItemStack(Items.golden_carrot, 1, 0), 50); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Gold, 8L), new ItemStack(Items.apple, 1, 32767), new ItemStack(Items.golden_apple, 1, 0), 50); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.block, Materials.Gold, 8L), new ItemStack(Items.apple, 1, 32767), new ItemStack(Items.golden_apple, 1, 1), 50); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1L), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.EnderPearl, 1L), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.EnderEye, 1L), 50); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1L), new ItemStack(Items.slime_ball, 1, 32767), new ItemStack(Items.magma_cream, 1, 0), 50); - - GT_Values.RA.addBenderRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plateAlloy, Materials.Advanced, 1L), 100, 8); - GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Aluminium, 6L), ItemList.RC_Rail_Standard.get(2L, new Object[0]), 200, 15); - GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Iron, 6L), ItemList.RC_Rail_Standard.get(4L, new Object[0]), 400, 15); - GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.WroughtIron, 6L), ItemList.RC_Rail_Standard.get(5L, new Object[0]), 400, 15); - GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Bronze, 6L), ItemList.RC_Rail_Standard.get(3L, new Object[0]), 300, 15); - GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Steel, 6L), ItemList.RC_Rail_Standard.get(8L, new Object[0]), 800, 15); - GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.StainlessSteel, 6L), ItemList.RC_Rail_Standard.get(12L, new Object[0]), 1200, 15); - GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Titanium, 6L), ItemList.RC_Rail_Standard.get(16L, new Object[0]), 1600, 15); - GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.TungstenSteel, 6L), ItemList.RC_Rail_Reinforced.get(24L, new Object[0]), 2400, 30); - GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Aluminium, 12L), ItemList.RC_Rebar.get(4L, new Object[0]), 200, 15); - GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Iron, 12L), ItemList.RC_Rebar.get(8L, new Object[0]), 400, 15); - GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.WroughtIron, 12L), ItemList.RC_Rebar.get(10L, new Object[0]), 400, 15); - GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Bronze, 12L), ItemList.RC_Rebar.get(8L, new Object[0]), 400, 15); - GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Steel, 12L), ItemList.RC_Rebar.get(16L, new Object[0]), 800, 15); - GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.StainlessSteel, 12L), ItemList.RC_Rebar.get(24L, new Object[0]), 1200, 15); - GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Titanium, 12L), ItemList.RC_Rebar.get(32L, new Object[0]), 1600, 15); - GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.TungstenSteel, 12L), ItemList.RC_Rebar.get(48L, new Object[0]), 2400, 15); - GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Tin, 12L), ItemList.Cell_Empty.get(6L, new Object[0]), 1200, 8); - GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 12L), new ItemStack(Items.bucket, 4, 0), 800, 4); - GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 12L), new ItemStack(Items.bucket, 4, 0), 800, 4); - GT_Values.RA.addBenderRecipe(ItemList.IC2_Item_Casing_Iron.get(2L, new Object[0]), GT_ModHandler.getIC2Item("fuelRod", 1L), 100, 8); - GT_Values.RA.addBenderRecipe(ItemList.IC2_Item_Casing_Tin.get(1L, new Object[0]), ItemList.IC2_Food_Can_Empty.get(1L, new Object[0]), 100, 8); - - GT_Values.RA.addVacuumFreezerRecipe(GT_ModHandler.getIC2Item("reactorCoolantSimple", 1L, 32767), GT_ModHandler.getIC2Item("reactorCoolantSimple", 1L,1), 100); - GT_Values.RA.addVacuumFreezerRecipe(GT_ModHandler.getIC2Item("reactorCoolantTriple", 1L, 32767), GT_ModHandler.getIC2Item("reactorCoolantTriple", 1L,1), 300); - GT_Values.RA.addVacuumFreezerRecipe(GT_ModHandler.getIC2Item("reactorCoolantSix", 1L, 32767), GT_ModHandler.getIC2Item("reactorCoolantSix", 1L,1), 600); - GT_Values.RA.addVacuumFreezerRecipe(ItemList.Reactor_Coolant_He_1.getWildcard(1L, new Object[0]), ItemList.Reactor_Coolant_He_1.get(1L, new Object[0]), 600); - GT_Values.RA.addVacuumFreezerRecipe(ItemList.Reactor_Coolant_He_3.getWildcard(1L, new Object[0]), ItemList.Reactor_Coolant_He_3.get(1L, new Object[0]), 1800); - GT_Values.RA.addVacuumFreezerRecipe(ItemList.Reactor_Coolant_He_6.getWildcard(1L, new Object[0]), ItemList.Reactor_Coolant_He_6.get(1L, new Object[0]), 3600); - GT_Values.RA.addVacuumFreezerRecipe(ItemList.Reactor_Coolant_NaK_1.getWildcard(1L, new Object[0]), ItemList.Reactor_Coolant_NaK_1.get(1L, new Object[0]), 600); - GT_Values.RA.addVacuumFreezerRecipe(ItemList.Reactor_Coolant_NaK_3.getWildcard(1L, new Object[0]), ItemList.Reactor_Coolant_NaK_3.get(1L, new Object[0]),1800); - GT_Values.RA.addVacuumFreezerRecipe(ItemList.Reactor_Coolant_NaK_6.getWildcard(1L, new Object[0]), ItemList.Reactor_Coolant_NaK_6.get(1L, new Object[0]),3600); - GT_Values.RA.addVacuumFreezerRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Water, 1L), GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Ice, 1L), 50); - - GT_Values.RA.addAlloySmelterRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lead, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Obsidian, 2L), ItemList.TE_Hardened_Glass.get(2L, new Object[0]), 200, 16); - GT_Values.RA.addAlloySmelterRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Lead, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Obsidian, 2L), ItemList.TE_Hardened_Glass.get(2L, new Object[0]), 200, 16); - - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("BuildCraft|Transport", "item.buildcraftPipe.pipestructurecobblestone", 1L, 0), GT_ModHandler.getModItem("BuildCraft|Transport", "pipePlug", 8L, 0), GT_Values.NI, 32, 16); - for (int i = 0; i < 16; i++) { - GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.stained_glass, 3, i), new ItemStack(Blocks.stained_glass_pane, 8, i), GT_Values.NI, 50, 8); + GT_Values.RA.addExtruderRecipe(ItemList.FR_Wax.get(1L, new Object[0]), ItemList.Shape_Extruder_Cell.get(0L, new Object[0]), ItemList.FR_WaxCapsule.get(1L, new Object[0]), 64, 16); + GT_Values.RA.addExtruderRecipe(ItemList.FR_RefractoryWax.get(1L, new Object[0]), ItemList.Shape_Extruder_Cell.get(0L, new Object[0]), ItemList.FR_RefractoryCapsule.get(1L, new Object[0]), 128, 16); + + GT_Values.RA.addFluidCannerRecipe(ItemList.Battery_Hull_LV.get(1L, new Object[0]), ItemList.IC2_ReBattery.get(1L, new Object[0]), Materials.Redstone.getMolten(288L), GT_Values.NF); + GT_Values.RA.addFluidCannerRecipe(ItemList.Battery_Hull_LV.get(1L, new Object[0]), ItemList.Battery_SU_LV_Mercury.getWithCharge(1L, Integer.MAX_VALUE, new Object[0]), Materials.Mercury.getFluid(1000L), GT_Values.NF); + GT_Values.RA.addFluidCannerRecipe(ItemList.Battery_Hull_MV.get(1L, new Object[0]), ItemList.Battery_SU_MV_Mercury.getWithCharge(1L, Integer.MAX_VALUE, new Object[0]), Materials.Mercury.getFluid(4000L), GT_Values.NF); + GT_Values.RA.addFluidCannerRecipe(ItemList.Battery_Hull_HV.get(1L, new Object[0]), ItemList.Battery_SU_HV_Mercury.getWithCharge(1L, Integer.MAX_VALUE, new Object[0]), Materials.Mercury.getFluid(16000L), GT_Values.NF); + GT_Values.RA.addFluidCannerRecipe(ItemList.Battery_Hull_LV.get(1L, new Object[0]), ItemList.Battery_SU_LV_SulfuricAcid.getWithCharge(1L, Integer.MAX_VALUE, new Object[0]), Materials.SulfuricAcid.getFluid(1000L), GT_Values.NF); + GT_Values.RA.addFluidCannerRecipe(ItemList.Battery_Hull_MV.get(1L, new Object[0]), ItemList.Battery_SU_MV_SulfuricAcid.getWithCharge(1L, Integer.MAX_VALUE, new Object[0]), Materials.SulfuricAcid.getFluid(4000L), GT_Values.NF); + GT_Values.RA.addFluidCannerRecipe(ItemList.Battery_Hull_HV.get(1L, new Object[0]), ItemList.Battery_SU_HV_SulfuricAcid.getWithCharge(1L, Integer.MAX_VALUE, new Object[0]), Materials.SulfuricAcid.getFluid(16000L), GT_Values.NF); + GT_Values.RA.addFluidCannerRecipe(ItemList.TF_Vial_FieryTears.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), GT_Values.NF, Materials.FierySteel.getFluid(250L)); + + Materials tMaterial = Materials.Iron; + if (tMaterial.mStandardMoltenFluid != null) { + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Casing.get(0L, new Object[0]), tMaterial.getMolten(72L), ItemList.IC2_Item_Casing_Iron.get(1L, new Object[0]), 16, 8); + } + tMaterial = Materials.WroughtIron; + if (tMaterial.mStandardMoltenFluid != null) { + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Casing.get(0L, new Object[0]), tMaterial.getMolten(72L), ItemList.IC2_Item_Casing_Iron.get(1L, new Object[0]), 16, 8); + } + tMaterial = Materials.Gold; + if (tMaterial.mStandardMoltenFluid != null) { + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Casing.get(0L, new Object[0]), tMaterial.getMolten(72L), ItemList.IC2_Item_Casing_Gold.get(1L, new Object[0]), 16, 8); + } + tMaterial = Materials.Bronze; + if (tMaterial.mStandardMoltenFluid != null) { + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Casing.get(0L, new Object[0]), tMaterial.getMolten(72L), ItemList.IC2_Item_Casing_Bronze.get(1L, new Object[0]), 16, 8); + } + tMaterial = Materials.Copper; + if (tMaterial.mStandardMoltenFluid != null) { + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Casing.get(0L, new Object[0]), tMaterial.getMolten(72L), ItemList.IC2_Item_Casing_Copper.get(1L, new Object[0]), 16, 8); + } + tMaterial = Materials.AnnealedCopper; + if (tMaterial.mStandardMoltenFluid != null) { + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Casing.get(0L, new Object[0]), tMaterial.getMolten(72L), ItemList.IC2_Item_Casing_Copper.get(1L, new Object[0]), 16, 8); + } + tMaterial = Materials.Tin; + if (tMaterial.mStandardMoltenFluid != null) { + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Casing.get(0L, new Object[0]), tMaterial.getMolten(72L), ItemList.IC2_Item_Casing_Tin.get(1L, new Object[0]), 16, 8); + } + tMaterial = Materials.Lead; + if (tMaterial.mStandardMoltenFluid != null) { + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Casing.get(0L, new Object[0]), tMaterial.getMolten(72L), ItemList.IC2_Item_Casing_Lead.get(1L, new Object[0]), 16, 8); + } + tMaterial = Materials.Steel; + if (tMaterial.mStandardMoltenFluid != null) { + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Casing.get(0L, new Object[0]), tMaterial.getMolten(72L), ItemList.IC2_Item_Casing_Steel.get(1L, new Object[0]), 16, 8); + } + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Ball.get(0L, new Object[0]), Materials.Mercury.getFluid(1000L), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Mercury, 1L), 128, 4); + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Ball.get(0L, new Object[0]), Materials.Water.getFluid(250L), new ItemStack(Items.snowball, 1, 0), 128, 4); + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Ball.get(0L, new Object[0]), GT_ModHandler.getDistilledWater(250L), new ItemStack(Items.snowball, 1, 0), 128, 4); + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Block.get(0L, new Object[0]), Materials.Water.getFluid(1000L), new ItemStack(Blocks.snow, 1, 0), 512, 4); + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Block.get(0L, new Object[0]), GT_ModHandler.getDistilledWater(1000L), new ItemStack(Blocks.snow, 1, 0), 512, 4); + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Block.get(0L, new Object[0]), Materials.Lava.getFluid(1000L), new ItemStack(Blocks.obsidian, 1, 0), 1024, 16); + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Block.get(0L, new Object[0]), Materials.Concrete.getMolten(144L), new ItemStack(GregTech_API.sBlockConcretes, 1, 8), 12, 4); + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Block.get(0L, new Object[0]), Materials.Glowstone.getMolten(576L), new ItemStack(Blocks.glowstone, 1, 0), 12, 4); + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Block.get(0L, new Object[0]), Materials.Glass.getMolten(144L), new ItemStack(Blocks.glass, 1, 0), 12, 4); + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Plate.get(0L, new Object[0]), Materials.Glass.getMolten(144L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Glass, 1L), 12, 4); + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Bottle.get(0L, new Object[0]), Materials.Glass.getMolten(144L), ItemList.Bottle_Empty.get(1L, new Object[0]), 12, 4); + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Cylinder.get(0L, new Object[0]), Materials.Milk.getFluid(250L), ItemList.Food_Cheese.get(1L, new Object[0]), 1024, 4); + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Cylinder.get(0L, new Object[0]), Materials.Cheese.getMolten(144L), ItemList.Food_Cheese.get(1L, new Object[0]), 64, 8); + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Anvil.get(0L, new Object[0]), Materials.Iron.getMolten(4464L), new ItemStack(Blocks.anvil, 1, 0), 128, 16); + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Anvil.get(0L, new Object[0]), Materials.WroughtIron.getMolten(4464L), new ItemStack(Blocks.anvil, 1, 0), 128, 16); + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Anvil.get(0L, new Object[0]), Materials.Steel.getMolten(4464L), GT_ModHandler.getModItem("Railcraft", "tile.railcraft.anvil", 1L, 0), 128, 16); + + GT_Values.RA.addChemicalBathRecipe(ItemList.Food_Raw_Fries.get(1L, new Object[0]), Materials.FryingOilHot.getFluid(10L), ItemList.Food_Fries.get(1L, new Object[0]), GT_Values.NI, GT_Values.NI, null, 16, 4); + GT_Values.RA.addChemicalBathRecipe(GT_ModHandler.getIC2Item("dynamite", 1L), Materials.Glue.getFluid(10L), GT_ModHandler.getIC2Item("stickyDynamite", 1L), GT_Values.NI, GT_Values.NI, null, 16, 4); + GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Steel, 1L), Materials.Concrete.getMolten(144L), GT_ModHandler.getIC2Item("reinforcedStone", 1L), GT_Values.NI, GT_Values.NI, null, 200, 4); + GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L), Materials.Water.getFluid(125L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HydratedCoal, 1L), GT_Values.NI, GT_Values.NI, null, 12, 4); + GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), Materials.Water.getFluid(100L), new ItemStack(Items.paper, 1, 0), GT_Values.NI, GT_Values.NI, null, 200, 4); + GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Paper, 1L), Materials.Water.getFluid(100L), new ItemStack(Items.paper, 1, 0), GT_Values.NI, GT_Values.NI, null, 100, 4); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Items.reeds, 1, 32767), Materials.Water.getFluid(100L), new ItemStack(Items.paper, 1, 0), GT_Values.NI, GT_Values.NI, null, 100, 8); + GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L), GT_ModHandler.getDistilledWater(125L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HydratedCoal, 1L), GT_Values.NI, GT_Values.NI, null, 12, 4); + GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), GT_ModHandler.getDistilledWater(100L), new ItemStack(Items.paper, 1, 0), GT_Values.NI, GT_Values.NI, null, 200, 4); + GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Paper, 1L), GT_ModHandler.getDistilledWater(100L), new ItemStack(Items.paper, 1, 0), GT_Values.NI, GT_Values.NI, null, 100, 4); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Items.reeds, 1, 32767), GT_ModHandler.getDistilledWater(100L), new ItemStack(Items.paper, 1, 0), GT_Values.NI, GT_Values.NI, null, 100, 8); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 1), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 2), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 3), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 4), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 5), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 6), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 7), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 8), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 9), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 10), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 11), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 12), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 13), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 14), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 15), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.wool, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 1), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 2), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 3), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 4), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 5), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 6), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 7), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 8), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 9), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 10), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 11), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 12), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 13), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 14), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.carpet, 1, 15), Materials.Chlorine.getFluid(25L), new ItemStack(Blocks.carpet, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.stained_hardened_clay, 1, 32767), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.hardened_clay, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.stained_glass, 1, 32767), Materials.Chlorine.getFluid(50L), new ItemStack(Blocks.glass, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.stained_glass_pane, 1, 32767), Materials.Chlorine.getFluid(20L), new ItemStack(Blocks.glass_pane, 1, 0), GT_Values.NI, GT_Values.NI, null, 400, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 8), Materials.Water.getFluid(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 0), GT_Values.NI, GT_Values.NI, null, 200, 4); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 9), Materials.Water.getFluid(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 1), GT_Values.NI, GT_Values.NI, null, 200, 4); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 10), Materials.Water.getFluid(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 2), GT_Values.NI, GT_Values.NI, null, 200, 4); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 11), Materials.Water.getFluid(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 3), GT_Values.NI, GT_Values.NI, null, 200, 4); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 12), Materials.Water.getFluid(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 4), GT_Values.NI, GT_Values.NI, null, 200, 4); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 13), Materials.Water.getFluid(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 5), GT_Values.NI, GT_Values.NI, null, 200, 4); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 14), Materials.Water.getFluid(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 6), GT_Values.NI, GT_Values.NI, null, 200, 4); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 15), Materials.Water.getFluid(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 7), GT_Values.NI, GT_Values.NI, null, 200, 4); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 8), GT_ModHandler.getDistilledWater(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 0), GT_Values.NI, GT_Values.NI, null, 200, 4); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 9), GT_ModHandler.getDistilledWater(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 1), GT_Values.NI, GT_Values.NI, null, 200, 4); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 10), GT_ModHandler.getDistilledWater(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 2), GT_Values.NI, GT_Values.NI, null, 200, 4); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 11), GT_ModHandler.getDistilledWater(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 3), GT_Values.NI, GT_Values.NI, null, 200, 4); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 12), GT_ModHandler.getDistilledWater(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 4), GT_Values.NI, GT_Values.NI, null, 200, 4); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 13), GT_ModHandler.getDistilledWater(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 5), GT_Values.NI, GT_Values.NI, null, 200, 4); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 14), GT_ModHandler.getDistilledWater(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 6), GT_Values.NI, GT_Values.NI, null, 200, 4); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(GregTech_API.sBlockConcretes, 1, 15), GT_ModHandler.getDistilledWater(250L), new ItemStack(GregTech_API.sBlockConcretes, 1, 7), GT_Values.NI, GT_Values.NI, null, 200, 4); + for (int j = 0; j < Dyes.dyeRed.getSizeOfFluidList(); j++) { + GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.RedAlloy, 1L), Dyes.dyeRed.getFluidDye(j, 72L), GT_ModHandler.getModItem("BuildCraft|Transport", "pipeWire", 4L, 0), GT_Values.NI, GT_Values.NI, null, 32, 16); + } + for (int j = 0; j < Dyes.dyeBlue.getSizeOfFluidList(); j++) { + GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.RedAlloy, 1L), Dyes.dyeBlue.getFluidDye(j, 72L), GT_ModHandler.getModItem("BuildCraft|Transport", "pipeWire", 4L, 1), GT_Values.NI, GT_Values.NI, null, 32, 16); + } + for (int j = 0; j < Dyes.dyeGreen.getSizeOfFluidList(); j++) { + GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.RedAlloy, 1L), Dyes.dyeGreen.getFluidDye(j, 72L), GT_ModHandler.getModItem("BuildCraft|Transport", "pipeWire", 4L, 2), GT_Values.NI, GT_Values.NI, null, 32, 16); + } + for (int j = 0; j < Dyes.dyeYellow.getSizeOfFluidList(); j++) { + GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.RedAlloy, 1L), Dyes.dyeYellow.getFluidDye(j, 72L), GT_ModHandler.getModItem("BuildCraft|Transport", "pipeWire", 4L, 3), GT_Values.NI, GT_Values.NI, null, 32, 16); + } + for (byte i = 0; i < 16; i = (byte) (i + 1)) { + for (int j = 0; j < Dyes.VALUES[i].getSizeOfFluidList(); j++) { + if (i != 15) { + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.wool, 1, 0), Dyes.VALUES[i].getFluidDye(j, 144L), new ItemStack(Blocks.wool, 1, 15 - i), GT_Values.NI, GT_Values.NI, null, 64, 2); + } + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.glass, 1, 0), Dyes.VALUES[i].getFluidDye(j, 18L), new ItemStack(Blocks.stained_glass, 1, 15 - i), GT_Values.NI, GT_Values.NI, null, 64, 2); + GT_Values.RA.addChemicalBathRecipe(new ItemStack(Blocks.hardened_clay, 1, 0), Dyes.VALUES[i].getFluidDye(j, 18L), new ItemStack(Blocks.stained_hardened_clay, 1, 15 - i), GT_Values.NI, GT_Values.NI, null, 64, 2); + } + } + GT_Values.RA.addFluidExtractionRecipe(ItemList.Dye_SquidInk.get(1L, new Object[0]), GT_Values.NI, FluidRegistry.getFluidStack("squidink", 144), 10000, 128, 4); + GT_Values.RA.addFluidExtractionRecipe(ItemList.Dye_Indigo.get(1L, new Object[0]), GT_Values.NI, FluidRegistry.getFluidStack("indigo", 144), 10000, 128, 4); + GT_Values.RA.addFluidExtractionRecipe(ItemList.Crop_Drop_Indigo.get(1L, new Object[0]), GT_Values.NI, FluidRegistry.getFluidStack("indigo", 144), 10000, 128, 4); + GT_Values.RA.addFluidExtractionRecipe(ItemList.Crop_Drop_MilkWart.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Milk, 1L), GT_ModHandler.getMilk(150L), 1000, 128, 4); + GT_Values.RA.addFluidExtractionRecipe(ItemList.Crop_Drop_OilBerry.get(1L, new Object[0]), GT_Values.NI, Materials.Oil.getFluid(100L), 10000, 128, 4); + GT_Values.RA.addFluidExtractionRecipe(new ItemStack(Items.fish, 1, 0), GT_Values.NI, Materials.FishOil.getFluid(4L), 10000, 16, 4); + GT_Values.RA.addFluidExtractionRecipe(new ItemStack(Items.fish, 1, 1), GT_Values.NI, Materials.FishOil.getFluid(6L), 10000, 16, 4); + GT_Values.RA.addFluidExtractionRecipe(new ItemStack(Items.fish, 1, 2), GT_Values.NI, Materials.FishOil.getFluid(7L), 10000, 16, 4); + GT_Values.RA.addFluidExtractionRecipe(new ItemStack(Items.fish, 1, 3), GT_Values.NI, Materials.FishOil.getFluid(3L), 10000, 16, 4); + GT_Values.RA.addFluidExtractionRecipe(new ItemStack(Items.coal, 1, 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 1L), Materials.Creosote.getFluid(100L), 1000, 128, 4); + GT_Values.RA.addFluidExtractionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), ItemList.IC2_Plantball.get(1L, new Object[0]), Materials.Creosote.getFluid(5L), 100, 16, 4); + GT_Values.RA.addFluidExtractionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HydratedCoal, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L), Materials.Water.getFluid(100L), 10000, 32, 4); + GT_Values.RA.addFluidExtractionRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Mercury, 1L), GT_Values.NI, Materials.Mercury.getFluid(1000L), 10000, 128, 4); + GT_Values.RA.addFluidExtractionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Monazite, 1L), GT_Values.NI, Materials.Helium.getFluid(200L), 10000, 64, 64); + + GT_Values.RA.addFluidSmelterRecipe(new ItemStack(Items.snowball, 1, 0), GT_Values.NI, Materials.Water.getFluid(250L), 10000, 32, 4); + GT_Values.RA.addFluidSmelterRecipe(new ItemStack(Blocks.snow, 1, 0), GT_Values.NI, Materials.Water.getFluid(1000L), 10000, 128, 4); + GT_Values.RA.addFluidSmelterRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ice, 1L), GT_Values.NI, Materials.Ice.getSolid(1000L), 10000, 128, 4); + GT_Values.RA.addFluidSmelterRecipe(GT_ModHandler.getModItem("Forestry", "phosphor", 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphor, 1L), Materials.Lava.getFluid(800L), 1000, 256, 128); + + GT_Values.RA.addAutoclaveRecipe(ItemList.IC2_Energium_Dust.get(9L, new Object[0]), Materials.Water.getFluid(1000L), ItemList.IC2_EnergyCrystal.get(1L, new Object[0]), 10000, 500, 256); + GT_Values.RA.addAutoclaveRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemCrystalSeed", 1L, 0), Materials.Water.getFluid(200L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 10), 10000, 2000, 24); + GT_Values.RA.addAutoclaveRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemCrystalSeed", 1L, 600), Materials.Water.getFluid(200L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 11), 10000, 2000, 24); + GT_Values.RA.addAutoclaveRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemCrystalSeed", 1L, 1200), Materials.Water.getFluid(200L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 12), 10000, 2000, 24); + GT_Values.RA.addAutoclaveRecipe(ItemList.IC2_Energium_Dust.get(9L, new Object[0]), GT_ModHandler.getDistilledWater(1000L), ItemList.IC2_EnergyCrystal.get(1L, new Object[0]), 10000, 250, 256); + GT_Values.RA.addAutoclaveRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemCrystalSeed", 1L, 0), GT_ModHandler.getDistilledWater(200L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 10), 10000, 1000, 24); + GT_Values.RA.addAutoclaveRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemCrystalSeed", 1L, 600), GT_ModHandler.getDistilledWater(200L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 11), 10000, 1000, 24); + GT_Values.RA.addAutoclaveRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemCrystalSeed", 1L, 1200), GT_ModHandler.getDistilledWater(200L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 12), 10000, 1000, 24); + + GT_Values.RA.addSlicerRecipe(ItemList.Food_Dough_Chocolate.get(1L, new Object[0]), ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Raw_Cookie.get(4L, new Object[0]), 128, 4); + GT_Values.RA.addSlicerRecipe(ItemList.Food_Baked_Bun.get(1L, new Object[0]), ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Sliced_Bun.get(2L, new Object[0]), 128, 4); + GT_Values.RA.addSlicerRecipe(ItemList.Food_Baked_Bread.get(1L, new Object[0]), ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Sliced_Bread.get(2L, new Object[0]), 128, 4); + GT_Values.RA.addSlicerRecipe(ItemList.Food_Baked_Baguette.get(1L, new Object[0]), ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Sliced_Baguette.get(2L, new Object[0]), 128, 4); + + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 0), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 1), 100, 120); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 0), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 1), 100, 120); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Gold, 1L), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 0), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 2), 200, 120); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1L), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 0), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 3), 100, 480); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.EnderPearl, 1L), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 0), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 2L, 4), 200, 120); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NetherQuartz, 1L), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 0), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 5), 300, 120); + GT_Values.RA.addFormingPressRecipe(new ItemStack(Items.comparator, 1, 32767), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 0), GT_ModHandler.getModItem("BuildCraft|Silicon", "redstoneChipset", 1L, 6), 300, 120); + GT_Values.RA.addFormingPressRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 10), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 0L, 13), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 16), 200, 16); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.CertusQuartz, 1L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 0L, 13), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 16), 200, 16); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 0L, 14), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 17), 200, 16); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Gold, 1L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 0L, 15), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 18), 200, 16); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Silicon, 1L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 0L, 19), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 20), 200, 16); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Silicon, 1L), ItemList.Circuit_Parts_Wiring_Basic.get(4L, new Object[0]), ItemList.Circuit_Board_Basic.get(1L, new Object[0]), 32, 16); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Silicon, 1L), ItemList.Circuit_Parts_Wiring_Advanced.get(4L, new Object[0]), ItemList.Circuit_Board_Advanced.get(1L, new Object[0]), 32, 64); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Silicon, 2L), ItemList.Circuit_Parts_Wiring_Elite.get(4L, new Object[0]), ItemList.Circuit_Board_Elite.get(1L, new Object[0]), 32, 256); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Lapis, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L), ItemList.Circuit_Parts_Advanced.get(2L, new Object[0]), 32, 64); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Lazurite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L), ItemList.Circuit_Parts_Advanced.get(2L, new Object[0]), 32, 64); + GT_Values.RA.addFormingPressRecipe(ItemList.Food_Dough_Sugar.get(4L, new Object[0]), ItemList.Shape_Mold_Cylinder.get(0L, new Object[0]), ItemList.Food_Raw_Cake.get(1L, new Object[0]), 384, 4); + GT_Values.RA.addFormingPressRecipe(new ItemStack(Blocks.glass, 1, 32767), ItemList.Shape_Mold_Arrow.get(0L, new Object[0]), ItemList.Arrow_Head_Glass_Emtpy.get(1L, new Object[0]), 64, 4); + for (Materials tMat : Materials.VALUES) { + if ((tMat.mStandardMoltenFluid != null) && (tMat.contains(SubTag.SOLDERING_MATERIAL))) { + int tMultiplier = tMat.contains(SubTag.SOLDERING_MATERIAL_GOOD) ? 1 : tMat.contains(SubTag.SOLDERING_MATERIAL_BAD) ? 4 : 2; + + GT_Values.RA.addAssemblerRecipe(ItemList.IC2_Item_Casing_Steel.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.RedAlloy, 1L), tMat.getMolten(144L * tMultiplier / 8L), ItemList.Circuit_Primitive.get(1L, new Object[0]), 16, 8); + GT_Values.RA.addAssemblerRecipe(ItemList.Circuit_Board_Basic.get(1L, new Object[0]), ItemList.Circuit_Primitive.get(2L, new Object[0]), tMat.getMolten(144L * tMultiplier / 4L), ItemList.Circuit_Basic.get(1L, new Object[0]), 32, 16); + GT_Values.RA.addAssemblerRecipe(ItemList.Circuit_Basic.get(1L, new Object[0]), ItemList.Circuit_Primitive.get(2L, new Object[0]), tMat.getMolten(144L * tMultiplier / 4L), ItemList.Circuit_Good.get(1L, new Object[0]), 32, 16); + GT_Values.RA.addAssemblerRecipe(ItemList.Circuit_Board_Advanced.get(1L, new Object[0]), ItemList.Circuit_Parts_Advanced.get(2L, new Object[0]), tMat.getMolten(144L * tMultiplier / 2L), ItemList.Circuit_Advanced.get(1L, new Object[0]), 32, 64); + GT_Values.RA.addAssemblerRecipe(ItemList.Circuit_Board_Advanced.get(1L, new Object[0]), ItemList.Circuit_Parts_Crystal_Chip_Elite.get(1L, new Object[0]), tMat.getMolten(144L * tMultiplier / 2L), ItemList.Circuit_Data.get(1L, new Object[0]), 32, 64); + GT_Values.RA.addAssemblerRecipe(ItemList.Circuit_Board_Elite.get(1L, new Object[0]), ItemList.Circuit_Data.get(3L, new Object[0]), tMat.getMolten(144L * tMultiplier / 1L), ItemList.Circuit_Elite.get(1L, new Object[0]), 32, 256); + GT_Values.RA.addAssemblerRecipe(ItemList.Circuit_Board_Elite.get(1L, new Object[0]), ItemList.Circuit_Parts_Crystal_Chip_Master.get(3L, new Object[0]), tMat.getMolten(144L * tMultiplier / 1L), ItemList.Circuit_Master.get(1L, new Object[0]), 32, 256); + GT_Values.RA.addAssemblerRecipe(ItemList.Circuit_Data.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Plastic, 2L), tMat.getMolten(144L * tMultiplier / 2L), ItemList.Tool_DataStick.get(1L, new Object[0]), 128, 64); + for (ItemStack tPlate : new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L)}) { + GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.lever, 1, 32767), tPlate, tMat.getMolten(144L * tMultiplier / 2L), ItemList.Cover_Controller.get(1L, new Object[0]), 800, 16); + GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.redstone_torch, 1, 32767), tPlate, tMat.getMolten(144L * tMultiplier / 2L), ItemList.Cover_ActivityDetector.get(1L, new Object[0]), 800, 16); + GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.heavy_weighted_pressure_plate, 1, 32767), tPlate, tMat.getMolten(144L * tMultiplier / 2L), ItemList.Cover_FluidDetector.get(1L, new Object[0]), 800, 16); + GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.light_weighted_pressure_plate, 1, 32767), tPlate, tMat.getMolten(144L * tMultiplier / 2L), ItemList.Cover_ItemDetector.get(1L, new Object[0]), 800, 16); + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("ecMeter", 1L), tPlate, tMat.getMolten(144L * tMultiplier / 2L), ItemList.Cover_EnergyDetector.get(1L, new Object[0]), 800, 16); + } + } + } + GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.redstone_torch, 2, 32767), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), Materials.Concrete.getMolten(144L), new ItemStack(Items.repeater, 1, 0), 800, 1); + GT_Values.RA.addAssemblerRecipe(new ItemStack(Items.leather, 1, 32767), new ItemStack(Items.lead, 1, 32767), Materials.Glue.getFluid(50L), new ItemStack(Items.name_tag, 1, 0), 100, 8); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 8L), new ItemStack(Items.compass, 1, 32767), GT_Values.NF, new ItemStack(Items.map, 1, 0), 100, 8); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tantalum, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Manganese, 1L), Materials.Plastic.getMolten(144L), ItemList.Battery_RE_ULV_Tantalum.get(1L, new Object[0]), 100, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.Circuit_Elite.get(2L, new Object[0]), ItemList.Circuit_Parts_Crystal_Chip_Elite.get(18L, new Object[0]), GT_Values.NF, ItemList.Tool_DataOrb.get(1L, new Object[0]), 512, 256); + GT_Values.RA.addAssemblerRecipe(ItemList.Circuit_Master.get(2L, new Object[0]), ItemList.Circuit_Parts_Crystal_Chip_Master.get(18L, new Object[0]), GT_Values.NF, ItemList.Energy_LapotronicOrb.get(1L, new Object[0]), 512, 1024); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Europium, 4L), ItemList.Energy_LapotronicOrb.get(8L, new Object[0]), GT_Values.NF, ItemList.Energy_LapotronicOrb2.get(1L, new Object[0]), 2048, 4096); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium, 16L), ItemList.Energy_LapotronicOrb2.get(8L, new Object[0]), GT_Values.NF, ItemList.ZPM2.get(1L, new Object[0]), 32768, 4096); + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("TwilightForest", "item.charmOfLife1", 4L, 0), ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), GT_Values.NF, GT_ModHandler.getModItem("TwilightForest", "item.charmOfLife2", 1L, 0), 100, 8); + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("TwilightForest", "item.charmOfKeeping1", 4L, 0), ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), GT_Values.NF, GT_ModHandler.getModItem("TwilightForest", "item.charmOfKeeping2", 1L, 0), 100, 8); + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("TwilightForest", "item.charmOfKeeping2", 4L, 0), ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), GT_Values.NF, GT_ModHandler.getModItem("TwilightForest", "item.charmOfKeeping3", 1L, 0), 100, 8); + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("TwilightForest", "item.charmOfLife2", 1L, 0), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), GT_Values.NF, GT_ModHandler.getModItem("TwilightForest", "item.charmOfLife1", 4L, 0), 100, 8); + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("TwilightForest", "item.charmOfKeeping2", 1L, 0), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), GT_Values.NF, GT_ModHandler.getModItem("TwilightForest", "item.charmOfKeeping1", 4L, 0), 100, 8); + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("TwilightForest", "item.charmOfKeeping3", 1L, 0), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), GT_Values.NF, GT_ModHandler.getModItem("TwilightForest", "item.charmOfKeeping2", 4L, 0), 100, 8); + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 16), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 20), Materials.Redstone.getMolten(144L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 23), 64, 32); + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 17), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 20), Materials.Redstone.getMolten(144L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 24), 64, 32); + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 18), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 20), Materials.Redstone.getMolten(144L), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 22), 64, 32); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CertusQuartz, 1L), new ItemStack(Blocks.sand, 1, 32767), GT_Values.NF, GT_ModHandler.getModItem("appliedenergistics2", "item.ItemCrystalSeed", 2L, 0), 64, 8); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NetherQuartz, 1L), new ItemStack(Blocks.sand, 1, 32767), GT_Values.NF, GT_ModHandler.getModItem("appliedenergistics2", "item.ItemCrystalSeed", 2L, 600), 64, 8); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Fluix, 1L), new ItemStack(Blocks.sand, 1, 32767), GT_Values.NF, GT_ModHandler.getModItem("appliedenergistics2", "item.ItemCrystalSeed", 2L, 1200), 64, 8); + GT_Values.RA.addAssemblerRecipe(ItemList.FR_Wax.get(6L, new Object[0]), new ItemStack(Items.string, 1, 32767), Materials.Water.getFluid(600L), GT_ModHandler.getModItem("Forestry", "candle", 24L, 0), 64, 8); + GT_Values.RA.addAssemblerRecipe(ItemList.FR_Wax.get(2L, new Object[0]), ItemList.FR_Silk.get(1L, new Object[0]), Materials.Water.getFluid(200L), GT_ModHandler.getModItem("Forestry", "candle", 8L, 0), 16, 8); + GT_Values.RA.addAssemblerRecipe(ItemList.FR_Silk.get(9L, new Object[0]), ItemList.Circuit_Integrated.getWithDamage(0L, 9L, new Object[0]), Materials.Water.getFluid(500L), GT_ModHandler.getModItem("Forestry", "craftingMaterial", 1L, 3), 64, 8); + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("Forestry", "propolis", 5L, 2), ItemList.Circuit_Integrated.getWithDamage(0L, 5L, new Object[0]), GT_Values.NF, GT_ModHandler.getModItem("Forestry", "craftingMaterial", 1L, 1), 16, 8); + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("Forestry", "sturdyMachine", 1L, 0), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Diamond, 4L), Materials.Water.getFluid(5000L), ItemList.FR_Casing_Hardened.get(1L, new Object[0]), 64, 32); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 8L), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), GT_Values.NF, ItemList.FR_Casing_Sturdy.get(1L, new Object[0]), 32, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 6L), Materials.Water.getFluid(1000L), GT_ModHandler.getModItem("Forestry", "chipsets", 1L, 0), 16, 8); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 3L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 6L), Materials.Water.getFluid(1000L), GT_ModHandler.getModItem("Forestry", "chipsets", 1L, 1), 32, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 3L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 6L), Materials.Water.getFluid(1000L), GT_ModHandler.getModItem("Forestry", "chipsets", 1L, 2), 48, 24); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.WroughtIron, 3L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 6L), Materials.Water.getFluid(1000L), GT_ModHandler.getModItem("Forestry", "chipsets", 1L, 2), 48, 24); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Gold, 3L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 6L), Materials.Water.getFluid(1000L), GT_ModHandler.getModItem("Forestry", "chipsets", 1L, 3), 64, 32); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), new ItemStack(Blocks.wool, 1, 32767), Materials.Creosote.getFluid(1000L), new ItemStack(Blocks.torch, 6, 0), 400, 1); + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("Forestry", "craftingMaterial", 5L, 1), ItemList.Circuit_Integrated.getWithDamage(0L, 5L, new Object[0]), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.EnderPearl, 1L), 64, 8); + GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.piston, 1, 32767), new ItemStack(Items.slime_ball, 1, 32767), GT_Values.NF, new ItemStack(Blocks.sticky_piston, 1, 0), 100, 4); + GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.piston, 1, 32767), ItemList.IC2_Resin.get(1L, new Object[0]), GT_Values.NF, new ItemStack(Blocks.sticky_piston, 1, 0), 100, 4); + GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.piston, 1, 32767), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), Materials.Glue.getFluid(100L), new ItemStack(Blocks.sticky_piston, 1, 0), 100, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 3L), GT_ModHandler.getIC2Item("carbonMesh", 3L), Materials.Glue.getFluid(300L), ItemList.Duct_Tape.get(1L, new Object[0]), 100, 64); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 3L), new ItemStack(Items.leather, 1, 32767), Materials.Glue.getFluid(20L), new ItemStack(Items.book, 1, 0), 32, 8); + GT_Values.RA.addAssemblerRecipe(ItemList.Paper_Printed_Pages.get(1L, new Object[0]), new ItemStack(Items.leather, 1, 32767), Materials.Glue.getFluid(20L), new ItemStack(Items.written_book, 1, 0), 32, 8); + GT_Values.RA.addAssemblerRecipe(ItemList.IC2_Item_Casing_Tin.get(4L, new Object[0]), new ItemStack(Blocks.glass_pane, 1, 32767), GT_Values.NF, ItemList.Cell_Universal_Fluid.get(1L, new Object[0]), 128, 8); + GT_Values.RA.addAssemblerRecipe(ItemList.Food_Baked_Cake.get(1L, new Object[0]), new ItemStack(Items.egg, 1, 0), Materials.Milk.getFluid(3000L), new ItemStack(Items.cake, 1, 0), 100, 8); + GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Bun.get(2L, new Object[0]), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), GT_Values.NF, ItemList.Food_Sliced_Buns.get(1L, new Object[0]), 100, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Bread.get(2L, new Object[0]), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), GT_Values.NF, ItemList.Food_Sliced_Breads.get(1L, new Object[0]), 100, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Baguette.get(2L, new Object[0]), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), GT_Values.NF, ItemList.Food_Sliced_Baguettes.get(1L, new Object[0]), 100, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Buns.get(1L, new Object[0]), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), GT_Values.NF, ItemList.Food_Sliced_Bun.get(2L, new Object[0]), 100, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Breads.get(1L, new Object[0]), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), GT_Values.NF, ItemList.Food_Sliced_Bread.get(2L, new Object[0]), 100, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Baguettes.get(1L, new Object[0]), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), GT_Values.NF, ItemList.Food_Sliced_Baguette.get(2L, new Object[0]), 100, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Bun.get(2L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatCooked, 1L), GT_Values.NF, ItemList.Food_Burger_Meat.get(1L, new Object[0]), 100, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Buns.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatCooked, 1L), GT_Values.NF, ItemList.Food_Burger_Meat.get(1L, new Object[0]), 100, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Bun.get(2L, new Object[0]), ItemList.Food_Chum.get(1L, new Object[0]), GT_Values.NF, ItemList.Food_Burger_Chum.get(1L, new Object[0]), 100, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Buns.get(1L, new Object[0]), ItemList.Food_Chum.get(1L, new Object[0]), GT_Values.NF, ItemList.Food_Burger_Chum.get(1L, new Object[0]), 100, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Bun.get(2L, new Object[0]), ItemList.Food_Sliced_Cheese.get(3L, new Object[0]), GT_Values.NF, ItemList.Food_Burger_Cheese.get(1L, new Object[0]), 100, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.Food_Sliced_Buns.get(1L, new Object[0]), ItemList.Food_Sliced_Cheese.get(3L, new Object[0]), GT_Values.NF, ItemList.Food_Burger_Cheese.get(1L, new Object[0]), 100, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.Food_Flat_Dough.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatCooked, 1L), GT_Values.NF, ItemList.Food_Raw_Pizza_Meat.get(1L, new Object[0]), 100, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.Food_Flat_Dough.get(1L, new Object[0]), ItemList.Food_Sliced_Cheese.get(3L, new Object[0]), GT_Values.NF, ItemList.Food_Raw_Pizza_Cheese.get(1L, new Object[0]), 100, 4); + + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 0), 64, 32); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.AnnealedCopper, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 0), 64, 32); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 1), 64, 32); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 2), 64, 32); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 3), 64, 32); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.WroughtIron, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 3), 64, 32); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Gold, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 4), 64, 32); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Diamond, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 5), 64, 32); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 7), 64, 32); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 8), 64, 32); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Emerald, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 9), 64, 32); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Apatite, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 10), 64, 32); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Lapis, 5L), Materials.Glass.getMolten(72L), GT_ModHandler.getModItem("Forestry", "thermionicTubes", 4L, 11), 64, 32); + + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), Materials.Oil.getFluid(16L), Materials.Fuel.getFluid(16L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), Materials.Oil.getFluid(16L), Materials.Glyceryl.getFluid(1L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), Materials.Oil.getFluid(16L), Materials.Methane.getGas(15L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), Materials.Oil.getFluid(16L), Materials.Lubricant.getFluid(16L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 6L, new Object[0]), Materials.Oil.getFluid(16L), Materials.SulfuricAcid.getFluid(16L), 32, 16, false); + if (FluidRegistry.getFluid("oilgc") != null) { + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new FluidStack(FluidRegistry.getFluid("oilgc"), 16), Materials.Fuel.getFluid(16L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), new FluidStack(FluidRegistry.getFluid("oilgc"), 16), Materials.Glyceryl.getFluid(1L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), new FluidStack(FluidRegistry.getFluid("oilgc"), 16), Materials.Methane.getGas(15L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), new FluidStack(FluidRegistry.getFluid("oilgc"), 16), Materials.Lubricant.getFluid(16L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 6L, new Object[0]), new FluidStack(FluidRegistry.getFluid("oilgc"), 16), Materials.SulfuricAcid.getFluid(16L), 32, 16, false); + GT_Values.RA.addDistillationTowerRecipe(new FluidStack(FluidRegistry.getFluid("oilgc"), 64), new FluidStack[]{Materials.Lubricant.getFluid(16L), Materials.Fuel.getFluid(64L), Materials.SulfuricAcid.getFluid(64L), Materials.Glyceryl.getFluid(4L), Materials.Methane.getGas(60L)}, null, 16, 64); + } + + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new FluidStack(ItemList.sOilLight, 32), Materials.Fuel.getFluid(16L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), new FluidStack(ItemList.sOilLight, 32), Materials.Glyceryl.getFluid(1L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), new FluidStack(ItemList.sOilLight, 32), Materials.Methane.getGas(15L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), new FluidStack(ItemList.sOilLight, 32), Materials.Lubricant.getFluid(16L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 6L, new Object[0]), new FluidStack(ItemList.sOilLight, 32), Materials.SulfuricAcid.getFluid(16L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new FluidStack(ItemList.sOilMedium, 16), Materials.Fuel.getFluid(16L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), new FluidStack(ItemList.sOilMedium, 16), Materials.Glyceryl.getFluid(1L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), new FluidStack(ItemList.sOilMedium, 16), Materials.Methane.getGas(15L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), new FluidStack(ItemList.sOilMedium, 16), Materials.Lubricant.getFluid(16L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 6L, new Object[0]), new FluidStack(ItemList.sOilMedium, 16), Materials.SulfuricAcid.getFluid(16L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new FluidStack(ItemList.sOilHeavy, 8), Materials.Fuel.getFluid(16L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), new FluidStack(ItemList.sOilHeavy, 8), Materials.Glyceryl.getFluid(1L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), new FluidStack(ItemList.sOilHeavy, 8), Materials.Methane.getGas(15L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), new FluidStack(ItemList.sOilHeavy, 8), Materials.Lubricant.getFluid(16L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 6L, new Object[0]), new FluidStack(ItemList.sOilHeavy, 8), Materials.SulfuricAcid.getFluid(16L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new FluidStack(ItemList.sOilExtraHeavy, 4), Materials.Fuel.getFluid(16L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), new FluidStack(ItemList.sOilExtraHeavy, 4), Materials.Glyceryl.getFluid(1L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), new FluidStack(ItemList.sOilExtraHeavy, 4), Materials.Methane.getGas(15L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), new FluidStack(ItemList.sOilExtraHeavy, 4), Materials.Lubricant.getFluid(16L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 6L, new Object[0]), new FluidStack(ItemList.sOilExtraHeavy, 4), Materials.SulfuricAcid.getFluid(16L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), new FluidStack(ItemList.sNaturalGas, 16), Materials.Methane.getGas(30L), 32, 16, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), Materials.Creosote.getFluid(3L), Materials.Lubricant.getFluid(1L), 16, 24, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), Materials.SeedOil.getFluid(4L), Materials.Lubricant.getFluid(1L), 16, 24, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), Materials.FishOil.getFluid(3L), Materials.Lubricant.getFluid(1L), 16, 24, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), Materials.Biomass.getFluid(40L), Materials.Ethanol.getFluid(12L), 16, 24, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 5L, new Object[0]), Materials.Biomass.getFluid(40L), Materials.Water.getFluid(12L), 16, 24, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 5L, new Object[0]), Materials.Water.getFluid(5L), GT_ModHandler.getDistilledWater(4L), 16, 8, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), FluidRegistry.getFluidStack("potion.potatojuice", 2), FluidRegistry.getFluidStack("potion.vodka", 1), 16, 16, true); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), FluidRegistry.getFluidStack("potion.lemonade", 2), FluidRegistry.getFluidStack("potion.alcopops", 1), 16, 16, true); + + GT_Values.RA.addFluidHeaterRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), Materials.Water.getFluid(6L), Materials.Water.getGas(960L), 30, 32); + GT_Values.RA.addFluidHeaterRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), GT_ModHandler.getDistilledWater(6L), Materials.Water.getGas(960L), 30, 32); + GT_Values.RA.addFluidHeaterRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), Materials.SeedOil.getFluid(16L), Materials.FryingOilHot.getFluid(16L), 16, 32); + GT_Values.RA.addFluidHeaterRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), Materials.FishOil.getFluid(16L), Materials.FryingOilHot.getFluid(16L), 16, 32); + + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Talc, 1L), FluidRegistry.getFluid("oil"), FluidRegistry.getFluid("lubricant"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Soapstone, 1L), FluidRegistry.getFluid("oil"), FluidRegistry.getFluid("lubricant"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), FluidRegistry.getFluid("oil"), FluidRegistry.getFluid("lubricant"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Talc, 1L), FluidRegistry.getFluid("creosote"), FluidRegistry.getFluid("lubricant"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Soapstone, 1L), FluidRegistry.getFluid("creosote"), FluidRegistry.getFluid("lubricant"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), FluidRegistry.getFluid("creosote"), FluidRegistry.getFluid("lubricant"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Talc, 1L), FluidRegistry.getFluid("seedoil"), FluidRegistry.getFluid("lubricant"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Soapstone, 1L), FluidRegistry.getFluid("seedoil"), FluidRegistry.getFluid("lubricant"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), FluidRegistry.getFluid("seedoil"), FluidRegistry.getFluid("lubricant"), false); + for (Fluid tFluid : new Fluid[]{FluidRegistry.WATER, GT_ModHandler.getDistilledWater(1L).getFluid()}) { + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Milk, 1L), tFluid, FluidRegistry.getFluid("milk"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wheat, 1L), tFluid, FluidRegistry.getFluid("potion.wheatyjuice"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Potassium, 1L), tFluid, FluidRegistry.getFluid("potion.mineralwater"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1L), tFluid, FluidRegistry.getFluid("potion.mineralwater"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1L), tFluid, FluidRegistry.getFluid("potion.mineralwater"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 1L), tFluid, FluidRegistry.getFluid("potion.mineralwater"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Salt, 1L), tFluid, FluidRegistry.getFluid("potion.saltywater"), true); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RockSalt, 1L), tFluid, FluidRegistry.getFluid("potion.saltywater"), true); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L), tFluid, FluidRegistry.getFluid("potion.thick"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), tFluid, FluidRegistry.getFluid("potion.mundane"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), tFluid, FluidRegistry.getFluid("potion.mundane"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1L), tFluid, FluidRegistry.getFluid("potion.mundane"), false); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.magma_cream, 1, 0), tFluid, FluidRegistry.getFluid("potion.mundane"), false); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.fermented_spider_eye, 1, 0), tFluid, FluidRegistry.getFluid("potion.mundane"), false); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.spider_eye, 1, 0), tFluid, FluidRegistry.getFluid("potion.mundane"), false); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.speckled_melon, 1, 0), tFluid, FluidRegistry.getFluid("potion.mundane"), false); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.ghast_tear, 1, 0), tFluid, FluidRegistry.getFluid("potion.mundane"), false); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.nether_wart, 1, 0), tFluid, FluidRegistry.getFluid("potion.awkward"), false); + GT_Values.RA.addBrewingRecipe(new ItemStack(Blocks.red_mushroom, 1, 0), tFluid, FluidRegistry.getFluid("potion.poison"), false); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.fish, 1, 3), tFluid, FluidRegistry.getFluid("potion.poison.strong"), true); + GT_Values.RA.addBrewingRecipe(ItemList.IC2_Grin_Powder.get(1L, new Object[0]), tFluid, FluidRegistry.getFluid("potion.poison.strong"), false); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.reeds, 1, 0), tFluid, FluidRegistry.getFluid("potion.reedwater"), false); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.apple, 1, 0), tFluid, FluidRegistry.getFluid("potion.applejuice"), false); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.golden_apple, 1, 0), tFluid, FluidRegistry.getFluid("potion.goldenapplejuice"), true); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.golden_apple, 1, 1), tFluid, FluidRegistry.getFluid("potion.idunsapplejuice"), true); + GT_Values.RA.addBrewingRecipe(ItemList.IC2_Hops.get(1L, new Object[0]), tFluid, FluidRegistry.getFluid("potion.hopsjuice"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coffee, 1L), tFluid, FluidRegistry.getFluid("potion.darkcoffee"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chili, 1L), tFluid, FluidRegistry.getFluid("potion.chillysauce"), false); + + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(2L, new Object[0]), 200); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphorus, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(3L, new Object[0]), 300); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphate, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(2L, new Object[0]), 200); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 3L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(1L, new Object[0]), 100); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(1L, new Object[0]), 100); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(3L, new Object[0]), 300); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphorus, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(4L, new Object[0]), 400); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphate, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(3L, new Object[0]), 300); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 3L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(2L, new Object[0]), 200); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(2L, new Object[0]), 200); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Apatite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(3L, new Object[0]), 300); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Apatite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphorus, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(4L, new Object[0]), 400); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Apatite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphate, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(3L, new Object[0]), 300); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Apatite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 3L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(2L, new Object[0]), 200); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Apatite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(2L, new Object[0]), 200); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glauconite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(3L, new Object[0]), 300); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glauconite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphorus, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(4L, new Object[0]), 400); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glauconite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphate, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(3L, new Object[0]), 300); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glauconite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 3L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(2L, new Object[0]), 200); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glauconite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(2L, new Object[0]), 200); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GlauconiteSand, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(3L, new Object[0]), 300); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GlauconiteSand, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphorus, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(4L, new Object[0]), 400); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GlauconiteSand, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphate, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(3L, new Object[0]), 300); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GlauconiteSand, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 3L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(2L, new Object[0]), 200); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GlauconiteSand, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 1L), new FluidStack(tFluid, 1000), GT_Values.NF, ItemList.IC2_Fertilizer.get(2L, new Object[0]), 200); + } + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chili, 1L), FluidRegistry.getFluid("potion.chillysauce"), FluidRegistry.getFluid("potion.hotsauce"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chili, 1L), FluidRegistry.getFluid("potion.hotsauce"), FluidRegistry.getFluid("potion.diabolosauce"), true); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chili, 1L), FluidRegistry.getFluid("potion.diabolosauce"), FluidRegistry.getFluid("potion.diablosauce"), true); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coffee, 1L), FluidRegistry.getFluid("milk"), FluidRegistry.getFluid("potion.coffee"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cocoa, 1L), FluidRegistry.getFluid("milk"), FluidRegistry.getFluid("potion.darkchocolatemilk"), false); + GT_Values.RA.addBrewingRecipe(ItemList.IC2_Hops.get(1L, new Object[0]), FluidRegistry.getFluid("potion.wheatyjuice"), FluidRegistry.getFluid("potion.wheatyhopsjuice"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wheat, 1L), FluidRegistry.getFluid("potion.hopsjuice"), FluidRegistry.getFluid("potion.wheatyhopsjuice"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), FluidRegistry.getFluid("potion.tea"), FluidRegistry.getFluid("potion.sweettea"), true); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), FluidRegistry.getFluid("potion.coffee"), FluidRegistry.getFluid("potion.cafeaulait"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), FluidRegistry.getFluid("potion.cafeaulait"), FluidRegistry.getFluid("potion.laitaucafe"), true); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), FluidRegistry.getFluid("potion.lemonjuice"), FluidRegistry.getFluid("potion.lemonade"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), FluidRegistry.getFluid("potion.darkcoffee"), FluidRegistry.getFluid("potion.darkcafeaulait"), true); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), FluidRegistry.getFluid("potion.darkchocolatemilk"), FluidRegistry.getFluid("potion.chocolatemilk"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ice, 1L), FluidRegistry.getFluid("potion.tea"), FluidRegistry.getFluid("potion.icetea"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gunpowder, 1L), FluidRegistry.getFluid("potion.lemonade"), FluidRegistry.getFluid("potion.cavejohnsonsgrenadejuice"), true); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.fish, 1, 3), FluidRegistry.getFluid("potion.awkward"), FluidRegistry.getFluid("potion.waterbreathing"), false); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.magma_cream, 1, 0), FluidRegistry.getFluid("potion.awkward"), FluidRegistry.getFluid("potion.fireresistance"), false); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.golden_carrot, 1, 0), FluidRegistry.getFluid("potion.awkward"), FluidRegistry.getFluid("potion.nightvision"), false); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.fermented_spider_eye, 1, 0), FluidRegistry.getFluid("potion.awkward"), FluidRegistry.getFluid("potion.weakness"), false); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.spider_eye, 1, 0), FluidRegistry.getFluid("potion.awkward"), FluidRegistry.getFluid("potion.poison"), false); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.speckled_melon, 1, 0), FluidRegistry.getFluid("potion.awkward"), FluidRegistry.getFluid("potion.health"), false); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.ghast_tear, 1, 0), FluidRegistry.getFluid("potion.awkward"), FluidRegistry.getFluid("potion.regen"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), FluidRegistry.getFluid("potion.awkward"), FluidRegistry.getFluid("potion.speed"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1L), FluidRegistry.getFluid("potion.awkward"), FluidRegistry.getFluid("potion.strength"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), FluidRegistry.getFluid("potion.mundane"), FluidRegistry.getFluid("potion.purpledrink"), true); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.fermented_spider_eye, 1, 0), FluidRegistry.getFluid("potion.mundane"), FluidRegistry.getFluid("potion.weakness"), false); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.fermented_spider_eye, 1, 0), FluidRegistry.getFluid("potion.thick"), FluidRegistry.getFluid("potion.weakness"), false); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.spider_eye, 1, 0), FluidRegistry.getFluid("potion.thick"), FluidRegistry.getFluid("potion.poison.strong"), false); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.speckled_melon, 1, 0), FluidRegistry.getFluid("potion.thick"), FluidRegistry.getFluid("potion.health.strong"), false); + GT_Values.RA.addBrewingRecipe(new ItemStack(Items.ghast_tear, 1, 0), FluidRegistry.getFluid("potion.thick"), FluidRegistry.getFluid("potion.regen.strong"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), FluidRegistry.getFluid("potion.thick"), FluidRegistry.getFluid("potion.speed.strong"), false); + GT_Values.RA.addBrewingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1L), FluidRegistry.getFluid("potion.thick"), FluidRegistry.getFluid("potion.strength.strong"), false); + + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("milk", 50), FluidRegistry.getFluidStack("potion.mundane", 25), 1024, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.lemonjuice", 50), FluidRegistry.getFluidStack("potion.limoncello", 25), 1024, true); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.applejuice", 50), FluidRegistry.getFluidStack("potion.cider", 25), 1024, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.goldenapplejuice", 50), FluidRegistry.getFluidStack("potion.goldencider", 25), 1024, true); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.idunsapplejuice", 50), FluidRegistry.getFluidStack("potion.notchesbrew", 25), 1024, true); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.reedwater", 50), FluidRegistry.getFluidStack("potion.rum", 25), 1024, true); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.rum", 50), FluidRegistry.getFluidStack("potion.piratebrew", 10), 2048, true); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.grapejuice", 50), FluidRegistry.getFluidStack("potion.wine", 25), 1024, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.wine", 50), FluidRegistry.getFluidStack("potion.vinegar", 10), 2048, true); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.wheatyjuice", 50), FluidRegistry.getFluidStack("potion.scotch", 25), 1024, true); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.scotch", 50), FluidRegistry.getFluidStack("potion.glenmckenner", 10), 2048, true); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.wheatyhopsjuice", 50), FluidRegistry.getFluidStack("potion.beer", 25), 1024, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.hopsjuice", 50), FluidRegistry.getFluidStack("potion.darkbeer", 25), 1024, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.darkbeer", 50), FluidRegistry.getFluidStack("potion.dragonblood", 10), 2048, true); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.awkward", 50), FluidRegistry.getFluidStack("potion.weakness", 25), 1024, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.mundane", 50), FluidRegistry.getFluidStack("potion.weakness", 25), 1024, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.thick", 50), FluidRegistry.getFluidStack("potion.weakness", 25), 1024, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.poison", 50), FluidRegistry.getFluidStack("potion.damage", 25), 1024, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.health", 50), FluidRegistry.getFluidStack("potion.damage", 25), 1024, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.waterbreathing", 50), FluidRegistry.getFluidStack("potion.damage", 25), 1024, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.nightvision", 50), FluidRegistry.getFluidStack("potion.invisibility", 25), 1024, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.fireresistance", 50), FluidRegistry.getFluidStack("potion.slowness", 25), 1024, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.speed", 50), FluidRegistry.getFluidStack("potion.slowness", 25), 1024, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.strength", 50), FluidRegistry.getFluidStack("potion.weakness", 25), 1024, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.regen", 50), FluidRegistry.getFluidStack("potion.poison", 25), 1024, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.poison.strong", 50), FluidRegistry.getFluidStack("potion.damage.strong", 10), 2048, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.health.strong", 50), FluidRegistry.getFluidStack("potion.damage.strong", 10), 2048, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.speed.strong", 50), FluidRegistry.getFluidStack("potion.slowness.strong", 10), 2048, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.strength.strong", 50), FluidRegistry.getFluidStack("potion.weakness.strong", 10), 2048, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.regen.strong", 50), FluidRegistry.getFluidStack("potion.poison.strong", 10), 2048, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.poison.long", 50), FluidRegistry.getFluidStack("potion.damage.long", 10), 2048, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.waterbreathing.long", 50), FluidRegistry.getFluidStack("potion.damage.long", 10), 2048, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.nightvision.long", 50), FluidRegistry.getFluidStack("potion.invisibility.long", 10), 2048, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.fireresistance.long", 50), FluidRegistry.getFluidStack("potion.slowness.long", 10), 2048, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.speed.long", 50), FluidRegistry.getFluidStack("potion.slowness.long", 10), 2048, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.strength.long", 50), FluidRegistry.getFluidStack("potion.weakness.long", 10), 2048, false); + GT_Values.RA.addFermentingRecipe(FluidRegistry.getFluidStack("potion.regen.long", 50), FluidRegistry.getFluidStack("potion.poison.long", 10), 2048, false); + + GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_PotatoChips.get(1L, new Object[0]), ItemList.Food_PotatoChips.get(1L, new Object[0])); + GT_ModHandler.addSmeltingRecipe(ItemList.Food_Potato_On_Stick.get(1L, new Object[0]), ItemList.Food_Potato_On_Stick_Roasted.get(1L, new Object[0])); + GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Bun.get(1L, new Object[0]), ItemList.Food_Baked_Bun.get(1L, new Object[0])); + GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Bread.get(1L, new Object[0]), ItemList.Food_Baked_Bread.get(1L, new Object[0])); + GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Baguette.get(1L, new Object[0]), ItemList.Food_Baked_Baguette.get(1L, new Object[0])); + GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Pizza_Veggie.get(1L, new Object[0]), ItemList.Food_Baked_Pizza_Veggie.get(1L, new Object[0])); + GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Pizza_Cheese.get(1L, new Object[0]), ItemList.Food_Baked_Pizza_Cheese.get(1L, new Object[0])); + GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Pizza_Meat.get(1L, new Object[0]), ItemList.Food_Baked_Pizza_Meat.get(1L, new Object[0])); + GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Baguette.get(1L, new Object[0]), ItemList.Food_Baked_Baguette.get(1L, new Object[0])); + GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Cake.get(1L, new Object[0]), ItemList.Food_Baked_Cake.get(1L, new Object[0])); + GT_ModHandler.addSmeltingRecipe(ItemList.Food_Raw_Cookie.get(1L, new Object[0]), new ItemStack(Items.cookie, 1)); + GT_ModHandler.addSmeltingRecipe(new ItemStack(Items.slime_ball, 1), ItemList.IC2_Resin.get(1L, new Object[0])); + + GT_ModHandler.addExtractionRecipe(new ItemStack(Blocks.bookshelf, 1, 32767), new ItemStack(Items.book, 3, 0)); + GT_ModHandler.addExtractionRecipe(new ItemStack(Items.slime_ball, 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Rubber, 2L)); + GT_ModHandler.addExtractionRecipe(ItemList.IC2_Resin.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Rubber, 3L)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getIC2Item("rubberSapling", 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Rubber, 1L)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getIC2Item("rubberLeaves", 16L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Rubber, 1L)); + GT_ModHandler.addExtractionRecipe(ItemList.Cell_Air.get(1L, new Object[0]), ItemList.Cell_Empty.get(1L, new Object[0])); + if (Loader.isModLoaded("ExtrabiomesXL")) { + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "waterplant1", 1, 0), new ItemStack(Items.dye, 4, 2)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "vines", 1, 0), new ItemStack(Items.dye, 4, 1)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 11), new ItemStack(Items.dye, 4, 11)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 10), new ItemStack(Items.dye, 4, 5)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 9), new ItemStack(Items.dye, 4, 14)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 8), new ItemStack(Items.dye, 4, 14)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 7), new ItemStack(Items.dye, 4, 1)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 6), new ItemStack(Items.dye, 4, 1)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 5), new ItemStack(Items.dye, 4, 11)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 0), new ItemStack(Items.dye, 4, 9)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 4), new ItemStack(Items.dye, 4, 11)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 3), new ItemStack(Items.dye, 4, 13)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower1", 1, 3), new ItemStack(Items.dye, 4, 5)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 2), new ItemStack(Items.dye, 4, 5)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower1", 1, 1), new ItemStack(Items.dye, 4, 12)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower2", 1, 15), new ItemStack(Items.dye, 4, 11)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower2", 1, 14), new ItemStack(Items.dye, 4, 1)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower2", 1, 13), new ItemStack(Items.dye, 4, 9)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower2", 1, 12), new ItemStack(Items.dye, 4, 14)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower2", 1, 11), new ItemStack(Items.dye, 4, 7)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower1", 1, 7), new ItemStack(Items.dye, 4, 7)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower1", 1, 2), new ItemStack(Items.dye, 4, 11)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower3", 1, 13), new ItemStack(Items.dye, 4, 6)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower2", 1, 6), new ItemStack(Items.dye, 4, 12)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower2", 1, 5), new ItemStack(Items.dye, 4, 10)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower2", 1, 2), new ItemStack(Items.dye, 4, 1)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower2", 1, 1), new ItemStack(Items.dye, 4, 9)); + GT_ModHandler.addExtractionRecipe(GT_ModHandler.getModItem("ExtrabiomesXL", "flower2", 1, 0), new ItemStack(Items.dye, 4, 13)); + } + + GT_ModHandler.addCompressionRecipe(ItemList.IC2_Compressed_Coal_Chunk.get(1L, new Object[0]), ItemList.IC2_Industrial_Diamond.get(1L, new Object[0])); + GT_ModHandler.addCompressionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uranium, 1L), GT_ModHandler.getIC2Item("Uran238", 1L)); + GT_ModHandler.addCompressionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uranium235, 1L), GT_ModHandler.getIC2Item("Uran235", 1L)); + GT_ModHandler.addCompressionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plutonium, 1L), GT_ModHandler.getIC2Item("Plutonium", 1L)); + GT_ModHandler.addCompressionRecipe(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Uranium235, 1L), GT_ModHandler.getIC2Item("smallUran235", 1L)); + GT_ModHandler.addCompressionRecipe(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Plutonium, 1L), GT_ModHandler.getIC2Item("smallPlutonium", 1L)); + GT_ModHandler.addCompressionRecipe(new ItemStack(Blocks.ice, 2, 32767), new ItemStack(Blocks.packed_ice, 1, 0)); + GT_ModHandler.addCompressionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ice, 1L), new ItemStack(Blocks.ice, 1, 0)); + GT_ModHandler.addCompressionRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.CertusQuartz, 4L), GT_ModHandler.getModItem("appliedenergistics2", "tile.BlockQuartz", 1L)); + GT_ModHandler.addCompressionRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 8L, 10), GT_ModHandler.getModItem("appliedenergistics2", "tile.BlockQuartz", 1L)); + GT_ModHandler.addCompressionRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 8L, 11), new ItemStack(Blocks.quartz_block, 1, 0)); + GT_ModHandler.addCompressionRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 8L, 12), GT_ModHandler.getModItem("appliedenergistics2", "tile.BlockFluix", 1L)); + GT_ModHandler.addCompressionRecipe(new ItemStack(Items.quartz, 4, 0), new ItemStack(Blocks.quartz_block, 1, 0)); + GT_ModHandler.addCompressionRecipe(new ItemStack(Items.wheat, 9, 0), new ItemStack(Blocks.hay_block, 1, 0)); + GT_ModHandler.addCompressionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 4L), new ItemStack(Blocks.glowstone, 1)); + GT_Values.RA.addCutterRecipe(GT_OreDictUnificator.get(OrePrefixes.block, Materials.Graphite, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Graphite, 9L), GT_Values.NI, 500, 48); + GT_ModHandler.removeFurnaceSmelting(GT_OreDictUnificator.get(OrePrefixes.ore, Materials.Graphite, 1L)); + GT_ModHandler.addSmeltingRecipe(GT_OreDictUnificator.get(OrePrefixes.ore, Materials.Graphite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphite, 1L)); + GT_ModHandler.removeFurnaceSmelting(GT_OreDictUnificator.get(OrePrefixes.oreBlackgranite, Materials.Graphite, 1L)); + GT_ModHandler.addSmeltingRecipe(GT_OreDictUnificator.get(OrePrefixes.oreBlackgranite, Materials.Graphite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphite, 1L)); + GT_ModHandler.removeFurnaceSmelting(GT_OreDictUnificator.get(OrePrefixes.oreEndstone, Materials.Graphite, 1L)); + GT_ModHandler.addSmeltingRecipe(GT_OreDictUnificator.get(OrePrefixes.oreEndstone, Materials.Graphite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphite, 1L)); + GT_ModHandler.removeFurnaceSmelting(GT_OreDictUnificator.get(OrePrefixes.oreNetherrack, Materials.Graphite, 1L)); + GT_ModHandler.addSmeltingRecipe(GT_OreDictUnificator.get(OrePrefixes.oreNetherrack, Materials.Graphite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphite, 1L)); + GT_ModHandler.removeFurnaceSmelting(GT_OreDictUnificator.get(OrePrefixes.oreRedgranite, Materials.Graphite, 1L)); + GT_ModHandler.addSmeltingRecipe(GT_OreDictUnificator.get(OrePrefixes.oreRedgranite, Materials.Graphite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphite, 1L)); + + GT_ModHandler.addPulverisationRecipe(GT_ModHandler.getModItem("appliedenergistics2", "tile.BlockSkyStone", 1L, 32767), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 45), GT_Values.NI, 0, false); + GT_ModHandler.addPulverisationRecipe(GT_ModHandler.getModItem("appliedenergistics2", "tile.BlockSkyChest", 1L, 32767), GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 8L, 45), GT_Values.NI, 0, false); + GT_ModHandler.addPulverisationRecipe(new ItemStack(Items.blaze_rod, 1), new ItemStack(Items.blaze_powder, 3), new ItemStack(Items.blaze_powder, 1), 50, false); + GT_ModHandler.addPulverisationRecipe(GT_ModHandler.getModItem("Railcraft", "cube.crushed.obsidian", 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Obsidian, 1L), GT_Values.NI, 0, true); + GT_ModHandler.addPulverisationRecipe(new ItemStack(Items.flint, 1, 32767), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Flint, 4L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Flint, 1L), 40, true); + GT_ModHandler.addPulverisationRecipe(new ItemStack(Blocks.red_mushroom, 1, 32767), ItemList.IC2_Grin_Powder.get(1L, new Object[0])); + GT_ModHandler.addPulverisationRecipe(new ItemStack(Items.item_frame, 1, 32767), new ItemStack(Items.leather, 1), GT_OreDictUnificator.getDust(Materials.Wood, OrePrefixes.stick.mMaterialAmount * 4L), 95, false); + GT_ModHandler.addPulverisationRecipe(new ItemStack(Items.bow, 1, 0), new ItemStack(Items.string, 3), GT_OreDictUnificator.getDust(Materials.Wood, OrePrefixes.stick.mMaterialAmount * 3L), 95, false); + + GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.stonebrick, 1, 0), new ItemStack(Blocks.stonebrick, 1, 2), 16, 10); + GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.stone, 1, 0), new ItemStack(Blocks.cobblestone, 1, 0), 16, 10); + GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.cobblestone, 1, 0), new ItemStack(Blocks.gravel, 1, 0), 16, 10); + GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.sandstone, 1, 32767), new ItemStack(Blocks.sand, 1, 0), 16, 10); + GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.ice, 1, 0), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ice, 1L), 16, 10); + GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.packed_ice, 1, 0), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ice, 2L), 16, 10); + GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.hardened_clay, 1, 0), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Clay, 1L), 16, 10); + GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.stained_hardened_clay, 1, 32767), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Clay, 1L), 16, 10); + GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.brick_block, 1, 0), new ItemStack(Items.brick, 3, 0), 16, 10); + GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.nether_brick, 1, 0), new ItemStack(Items.netherbrick, 3, 0), 16, 10); + GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.stained_glass, 1, 32767), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 1L), 16, 10); + GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.glass, 1, 32767), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 1L), 16, 10); + GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.stained_glass_pane, 1, 32767), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3L), 16, 10); + GT_Values.RA.addForgeHammerRecipe(new ItemStack(Blocks.glass_pane, 1, 32767), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glass, 3L), 16, 10); + + GT_Values.RA.addForgeHammerRecipe(GT_ModHandler.getModItem("HardcoreEnderExpansion", "endium_ore", 1), GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Endium, 1), 16, 10); + GT_ModHandler.addPulverisationRecipe(GT_ModHandler.getModItem("HardcoreEnderExpansion", "endium_ore", 1), GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Endium, 2), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Endstone, 1), 50, GT_Values.NI, 0, true); + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Endium, GT_ModHandler.getModItem("HardcoreEnderExpansion", "endium_ingot", 1), true, true); + + GT_Values.RA.addAmplifier(ItemList.IC2_Scrap.get(9L, new Object[0]), 180, 1); + GT_Values.RA.addAmplifier(ItemList.IC2_Scrapbox.get(1L, new Object[0]), 180, 1); + + GT_Values.RA.addBoxingRecipe(ItemList.IC2_Scrap.get(9L, new Object[0]), ItemList.Schematic_3by3.get(0L, new Object[0]), ItemList.IC2_Scrapbox.get(1L, new Object[0]), 16, 1); + GT_Values.RA.addBoxingRecipe(ItemList.Food_Fries.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Paper, 1L), ItemList.Food_Packaged_Fries.get(1L, new Object[0]), 64, 16); + GT_Values.RA.addBoxingRecipe(ItemList.Food_PotatoChips.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Aluminium, 1L), ItemList.Food_Packaged_PotatoChips.get(1L, new Object[0]), 64, 16); + GT_Values.RA.addBoxingRecipe(ItemList.Food_ChiliChips.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Aluminium, 1L), ItemList.Food_Packaged_ChiliChips.get(1L, new Object[0]), 64, 16); + + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 3L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Silicon, 1L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.ElectricalSteel, 4L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 2L), (int) Math.max(Materials.ElectricalSteel.getMass() / 40L, 1L) * Materials.ElectricalSteel.mBlastFurnaceTemp, 480, Materials.ElectricalSteel.mBlastFurnaceTemp); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tungsten, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.TungstenSteel, 2L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L), (int) Math.max(Materials.TungstenSteel.getMass() / 80L, 1L) * Materials.TungstenSteel.mBlastFurnaceTemp, 480, Materials.TungstenSteel.mBlastFurnaceTemp); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Vanadium, 3L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Gallium, 1L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.VanadiumGallium, 4L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 2L), (int) Math.max(Materials.VanadiumGallium.getMass() / 40L, 1L) * Materials.VanadiumGallium.mBlastFurnaceTemp, 480, Materials.VanadiumGallium.mBlastFurnaceTemp); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Niobium, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Titanium, 1L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.NiobiumTitanium, 2L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L), (int) Math.max(Materials.NiobiumTitanium.getMass() / 80L, 1L) * Materials.NiobiumTitanium.mBlastFurnaceTemp, 480, Materials.NiobiumTitanium.mBlastFurnaceTemp); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Nickel, 4L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Chrome, 1L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.Nichrome, 5L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 2L), (int) Math.max(Materials.Nichrome.getMass() / 32L, 1L) * Materials.Nichrome.mBlastFurnaceTemp, 480, Materials.Nichrome.mBlastFurnaceTemp); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ruby, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Aluminium, 3L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L), 400, 100, 1200); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Aluminium, 3L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L), 320, 100, 1200); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GreenSapphire, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Aluminium, 3L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L), 400, 100, 1200); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GreenSapphire, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Aluminium, 3L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L), 320, 100, 1200); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sapphire, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Aluminium, 3L), GT_Values.NI, 400, 100, 1200); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Aluminium, 3L), GT_Values.NI, 320, 100, 1200); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ilmenite, 1L), GT_Values.NI, Materials.Oxygen.getGas(2000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.WroughtIron, 4L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Titanium, 4L), 800, 500, 1700); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Ilmenite, 1L), GT_Values.NI, Materials.Oxygen.getGas(2000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.WroughtIron, 5L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Titanium, 5L), 640, 500, 1700); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Galena, 1L), GT_Values.NI, Materials.Oxygen.getGas(2000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Silver, 4L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Lead, 4L), 400, 500, 1500); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Galena, 1L), GT_Values.NI, Materials.Oxygen.getGas(2000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Silver, 5L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Lead, 5L), 320, 500, 1500); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnetite, 1L), GT_Values.NI, Materials.Oxygen.getGas(2000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.WroughtIron, 4L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L), 400, 500, 1000); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Magnetite, 1L), GT_Values.NI, Materials.Oxygen.getGas(2000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.WroughtIron, 5L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Ash, 1L), 320, 500, 1000); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), GT_Values.NI, Materials.Oxygen.getGas(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L), 500, 120, 1000); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.PigIron, 1L), GT_Values.NI, Materials.Oxygen.getGas(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L), 100, 120, 1000); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.WroughtIron, 1L), GT_Values.NI, Materials.Oxygen.getGas(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L), 100, 120, 1000); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.ShadowIron, 1L), GT_Values.NI, Materials.Oxygen.getGas(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.ShadowSteel, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L), 500, 120, 1100); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.MeteoricIron, 1L), GT_Values.NI, Materials.Oxygen.getGas(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.MeteoricSteel, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L), 500, 120, 1200); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Copper, 1L), GT_Values.NI, Materials.Oxygen.getGas(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.AnnealedCopper, 1L), GT_Values.NI, 500, 120, 1200); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L), GT_Values.NI, Materials.Oxygen.getGas(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.AnnealedCopper, 1L), GT_Values.NI, 500, 120, 1200); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.ElectricalSteel, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Obsidian, 1L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.DarkSteel, 1L), GT_Values.NI, 4000, 360, 2000); + + GT_Values.RA.addCannerRecipe(GT_ModHandler.getIC2Item("fuelRod", 1), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Lithium, 1L), GT_ModHandler.getIC2Item("reactorLithiumCell", 1, 1), null, 16, 64); + GT_Values.RA.addFluidExtractionRecipe(GT_ModHandler.getIC2Item("TritiumCell", 1), GT_ModHandler.getIC2Item("fuelRod", 1), Materials.Tritium.getGas(32), 10000, 16, 64); + GT_Values.RA.addCannerRecipe(GT_ModHandler.getIC2Item("fuelRod", 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Thorium, 3), ItemList.ThoriumCell_1.get(1L, new Object[0]), null, 30, 16); + GT_Values.RA.addCannerRecipe(GT_ModHandler.getIC2Item("fuelRod", 1), GT_ModHandler.getIC2Item("UranFuel", 1), GT_ModHandler.getIC2Item("reactorUraniumSimple", 1, 1), null, 30, 16); + GT_Values.RA.addCannerRecipe(GT_ModHandler.getIC2Item("fuelRod", 1), GT_ModHandler.getIC2Item("MOXFuel", 1), GT_ModHandler.getIC2Item("reactorMOXSimple", 1, 1), null, 30, 16); + + GT_Values.RA.addFusionReactorRecipe(Materials.Lithium.getMolten(16), Materials.Tungsten.getMolten(16), Materials.Iridium.getMolten(16), 32, 32768, 300000000); + GT_Values.RA.addFusionReactorRecipe(Materials.Deuterium.getGas(125), Materials.Tritium.getGas(125), Materials.Helium.getPlasma(125), 16, 4096, 40000000); //Mark 1 Cheap // + GT_Values.RA.addFusionReactorRecipe(Materials.Deuterium.getGas(125), Materials.Helium_3.getGas(125), Materials.Helium.getPlasma(125), 16, 2048, 60000000); //Mark 1 Expensive // + GT_Values.RA.addFusionReactorRecipe(Materials.Carbon.getMolten(125), Materials.Helium_3.getGas(125), Materials.Oxygen.getPlasma(125), 32, 4096, 80000000); //Mark 1 Expensive // + GT_Values.RA.addFusionReactorRecipe(Materials.Aluminium.getMolten(16), Materials.Lithium.getMolten(16), Materials.Sulfur.getPlasma(125), 32, 10240, 240000000); //Mark 2 Cheap + GT_Values.RA.addFusionReactorRecipe(Materials.Beryllium.getMolten(16), Materials.Deuterium.getGas(375), Materials.Nitrogen.getPlasma(175), 16, 16384, 180000000); //Mark 2 Expensive // + GT_Values.RA.addFusionReactorRecipe(Materials.Silicon.getMolten(16), Materials.Magnesium.getMolten(16), Materials.Iron.getPlasma(125), 32, 8192, 360000000); //Mark 3 Cheap // + GT_Values.RA.addFusionReactorRecipe(Materials.Potassium.getMolten(16), Materials.Fluorine.getGas(125), Materials.Nickel.getPlasma(125), 16, 32768, 480000000); //Mark 3 Expensive // + GT_Values.RA.addFusionReactorRecipe(Materials.Beryllium.getMolten(16), Materials.Tungsten.getMolten(16), Materials.Platinum.getMolten(16), 32, 32768, 150000000); // + GT_Values.RA.addFusionReactorRecipe(Materials.Neodymium.getMolten(16), Materials.Hydrogen.getGas(48), Materials.Europium.getMolten(16), 64, 24576, 150000000); // + GT_Values.RA.addFusionReactorRecipe(Materials.Lutetium.getMolten(16), Materials.Chrome.getMolten(16), Materials.Americium.getMolten(16), 96, 49152, 200000000); // + GT_Values.RA.addFusionReactorRecipe(Materials.Plutonium.getMolten(16), Materials.Thorium.getMolten(16), Materials.Naquadah.getMolten(16), 64, 32768, 300000000); // + GT_Values.RA.addFusionReactorRecipe(Materials.Americium.getMolten(16), Materials.Naquadria.getMolten(16), Materials.Neutronium.getMolten(1), 1200, 98304, 600000000); // + + GT_Values.RA.addFusionReactorRecipe(Materials.Tungsten.getMolten(16), Materials.Helium.getGas(16), Materials.Osmium.getMolten(16), 64, 24578, 150000000); // + GT_Values.RA.addFusionReactorRecipe(Materials.Manganese.getMolten(16), Materials.Hydrogen.getGas(16), Materials.Iron.getMolten(16), 64, 8192, 120000000); // + GT_Values.RA.addFusionReactorRecipe(Materials.Mercury.getFluid(16), Materials.Magnesium.getMolten(16), Materials.Uranium.getMolten(16), 64, 49152, 240000000); // + GT_Values.RA.addFusionReactorRecipe(Materials.Gold.getMolten(16), Materials.Aluminium.getMolten(16), Materials.Uranium.getMolten(16), 64, 49152, 240000000); // + GT_Values.RA.addFusionReactorRecipe(Materials.Uranium.getMolten(16), Materials.Helium.getGas(16), Materials.Plutonium.getMolten(16), 128, 49152, 480000000); // + GT_Values.RA.addFusionReactorRecipe(Materials.Vanadium.getMolten(16), Materials.Hydrogen.getGas(125), Materials.Chrome.getMolten(16), 64, 24576, 140000000); // + + GT_ModHandler.removeRecipeByOutput(ItemList.IC2_Fertilizer.get(1L, new Object[0])); + GT_Values.RA.addImplosionRecipe(ItemList.IC2_Compressed_Coal_Chunk.get(1L, new Object[0]), 8, ItemList.IC2_Industrial_Diamond.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 4L)); + GT_Values.RA.addFluidExtractionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quartzite, 1L), null, Materials.Glass.getMolten(250), 10000, 600, 28);//(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SiliconDioxide,1L), GT_OreDictUnificator.get(OrePrefixes.dust,Materials.SiliconDioxide,2L),GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Glass,1L)/** GT_Utility.fillFluidContainer(Materials.Glass.getMolten(1000), ItemList.Cell_Empty.get(1, new Object[0]), true, true)**/, 600, 16); + + GT_Values.RA.addDistillationTowerRecipe(Materials.Oil.getFluid(64L), new FluidStack[]{Materials.Lubricant.getFluid(16L), Materials.Fuel.getFluid(64L), Materials.SulfuricAcid.getFluid(64L), Materials.Glyceryl.getFluid(4L), Materials.Methane.getGas(60L)}, null, 16, 64); + GT_Values.RA.addDistillationTowerRecipe(new FluidStack(ItemList.sOilLight, 128), new FluidStack[]{Materials.Lubricant.getFluid(16L), Materials.Fuel.getFluid(64L), Materials.SulfuricAcid.getFluid(64L), Materials.Glyceryl.getFluid(4L), Materials.Methane.getGas(60L)}, null, 16, 64); + GT_Values.RA.addDistillationTowerRecipe(new FluidStack(ItemList.sOilMedium, 64), new FluidStack[]{Materials.Lubricant.getFluid(16L), Materials.Fuel.getFluid(64L), Materials.SulfuricAcid.getFluid(64L), Materials.Glyceryl.getFluid(4L), Materials.Methane.getGas(60L)}, null, 16, 64); + GT_Values.RA.addDistillationTowerRecipe(new FluidStack(ItemList.sOilHeavy, 32), new FluidStack[]{Materials.Lubricant.getFluid(16L), Materials.Fuel.getFluid(64L), Materials.SulfuricAcid.getFluid(64L), Materials.Glyceryl.getFluid(4L), Materials.Methane.getGas(60L)}, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.HydratedCoal, 1L), 24, 64); + GT_Values.RA.addDistillationTowerRecipe(new FluidStack(ItemList.sOilExtraHeavy, 16), new FluidStack[]{Materials.Lubricant.getFluid(16L), Materials.Fuel.getFluid(64L), Materials.SulfuricAcid.getFluid(64L), Materials.Glyceryl.getFluid(4L), Materials.Methane.getGas(60L)}, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.HydratedCoal, 1L), 24, 64); + GT_Values.RA.addDistillationTowerRecipe(new FluidStack(ItemList.sNaturalGas, 64), new FluidStack[]{Materials.Methane.getGas(120L)}, null, 16, 64); + GT_Values.RA.addDistillationTowerRecipe(Materials.Creosote.getFluid(24L), new FluidStack[]{Materials.Lubricant.getFluid(12L)}, null, 16, 96); + GT_Values.RA.addDistillationTowerRecipe(Materials.SeedOil.getFluid(32L), new FluidStack[]{Materials.Lubricant.getFluid(12L)}, null, 16, 96); + GT_Values.RA.addDistillationTowerRecipe(Materials.FishOil.getFluid(24L), new FluidStack[]{Materials.Lubricant.getFluid(12L)}, null, 16, 96); + GT_Values.RA.addDistillationTowerRecipe(Materials.Biomass.getFluid(150L), new FluidStack[]{Materials.Ethanol.getFluid(60L), Materials.Water.getFluid(60L)}, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 1L), 25, 64); + GT_Values.RA.addDistillationTowerRecipe(Materials.Water.getFluid(288L), new FluidStack[]{GT_ModHandler.getDistilledWater(260L)}, null, 16, 64); + GT_Values.RA.addDistillationTowerRecipe(new FluidStack(FluidRegistry.getFluid("ic2biomass"), 250), new FluidStack[]{new FluidStack(FluidRegistry.getFluid("ic2biogas"), 8000), Materials.Water.getFluid(125L)}, ItemList.IC2_Fertilizer.get(1, new Object[0]), 150, 512); + GT_Values.RA.addFuel(GT_ModHandler.getIC2Item("biogasCell", 1L), null, 32, 1); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new FluidStack(FluidRegistry.getFluid("ic2biomass"), 1), new FluidStack(FluidRegistry.getFluid("ic2biogas"), 32), 20, 30, false); + GT_Values.RA.addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), new FluidStack(FluidRegistry.getFluid("ic2biomass"), 4), Materials.Water.getFluid(2), 80, 30, false); + + + GT_Values.RA.addFuel(GT_ModHandler.getModItem("Thaumcraft", "ItemShard", 1L, 6), null, 720, 5); + GT_Values.RA.addFuel(GT_ModHandler.getModItem("ForbiddenMagic", "GluttonyShard", 1L), null, 720, 5); + GT_Values.RA.addFuel(GT_ModHandler.getModItem("ForbiddenMagic", "FMResource", 1L, 3), null, 720, 5); + GT_Values.RA.addFuel(GT_ModHandler.getModItem("ForbiddenMagic", "NetherShard", 1L), null, 720, 5); + GT_Values.RA.addFuel(GT_ModHandler.getModItem("ForbiddenMagic", "NetherShard", 1L, 1), null, 720, 5); + GT_Values.RA.addFuel(GT_ModHandler.getModItem("ForbiddenMagic", "NetherShard", 1L, 2), null, 720, 5); + GT_Values.RA.addFuel(GT_ModHandler.getModItem("ForbiddenMagic", "NetherShard", 1L, 3), null, 720, 5); + GT_Values.RA.addFuel(GT_ModHandler.getModItem("ForbiddenMagic", "NetherShard", 1L, 4), null, 720, 5); + GT_Values.RA.addFuel(GT_ModHandler.getModItem("ForbiddenMagic", "NetherShard", 1L, 5), null, 720, 5); + GT_Values.RA.addFuel(GT_ModHandler.getModItem("ForbiddenMagic", "NetherShard", 1L, 6), null, 720, 5); + GT_Values.RA.addFuel(GT_ModHandler.getModItem("TaintedMagic", "WarpedShard", 1L), null, 720, 5); + GT_Values.RA.addFuel(GT_ModHandler.getModItem("TaintedMagic", "FluxShard", 1L), null, 720, 5); + GT_Values.RA.addFuel(GT_ModHandler.getModItem("TaintedMagic", "EldritchShard", 1L), null, 720, 5); + GT_Values.RA.addFuel(GT_ModHandler.getModItem("ThaumicTinkerer", "kamiResource", 1L, 6), null, 720, 5); + GT_Values.RA.addFuel(GT_ModHandler.getModItem("ThaumicTinkerer", "kamiResource", 1L, 7), null, 720, 5); + + GT_Values.RA.addElectrolyzerRecipe(GT_Values.NI, ItemList.Cell_Empty.get(1L, new Object[0]), Materials.Water.getFluid(3000L), Materials.Hydrogen.getGas(2000L), GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 1500, 30); + GT_Values.RA.addElectrolyzerRecipe(GT_Values.NI, ItemList.Cell_Empty.get(1L, new Object[0]), GT_ModHandler.getDistilledWater(3000L), Materials.Hydrogen.getGas(2000L), GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 1500, 30); + GT_Values.RA.addElectrolyzerRecipe(GT_ModHandler.getIC2Item("electrolyzedWaterCell", 3L), 0, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 2L), GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 30, 30); + GT_Values.RA.addElectrolyzerRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Water, 1L), 0, GT_ModHandler.getIC2Item("electrolyzedWaterCell", 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, 490, 30); + GT_Values.RA.addElectrolyzerRecipe(ItemList.Dye_Bonemeal.get(3L, new Object[0]), 0, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, 98, 26); + GT_Values.RA.addElectrolyzerRecipe(new ItemStack(Blocks.sand, 8), 0, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, 500, 25); + + + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NetherQuartz, 3L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1L), Materials.Water.getFluid(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.NetherQuartz, 3L), 500); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CertusQuartz, 3L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1L), Materials.Water.getFluid(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.CertusQuartz, 3L), 500); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quartzite, 3L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1L), Materials.Water.getFluid(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Quartzite, 3L), 500); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NetherQuartz, 3L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1L), GT_ModHandler.getDistilledWater(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.NetherQuartz, 3L), 500); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CertusQuartz, 3L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1L), GT_ModHandler.getDistilledWater(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.CertusQuartz, 3L), 500); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quartzite, 3L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1L), GT_ModHandler.getDistilledWater(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Quartzite, 3L), 500); + + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uraninite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminium, 1L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uranium, 1L), 1000); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uraninite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 1L), GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uranium, 1L), 1000); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1L), Materials.Oxygen.getGas(3000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 5L), 500); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1L), GT_Values.NI, Materials.Hydrogen.getGas(4000L), Materials.Methane.getGas(5000L), GT_Values.NI, 3500); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), GT_Values.NI, Materials.Water.getFluid(2000L), Materials.SulfuricAcid.getFluid(3000L), GT_Values.NI, 1150); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1L), Materials.Oxygen.getGas(4000L), Materials.SodiumPersulfate.getFluid(6000L), GT_Values.NI, 8000); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Nitrogen, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1L), Materials.Water.getFluid(2000L), Materials.Glyceryl.getFluid(4000L), ItemList.Cell_Empty.get(1L, new Object[0]), 2700); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Fuel, 1L), GT_Values.NI, Materials.Glyceryl.getFluid(250L), Materials.NitroFuel.getFluid(1250L), ItemList.Cell_Empty.get(1L, new Object[0]), 250); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Glyceryl, 1L), GT_Values.NI, Materials.Fuel.getFluid(4000L), Materials.NitroFuel.getFluid(5000L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Nitrogen, 1L), GT_Values.NI, Materials.Oxygen.getGas(2000L), Materials.NitrogenDioxide.getGas(3000L), ItemList.Cell_Empty.get(1L, new Object[0]), 1250); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 2L), GT_Values.NI, Materials.Nitrogen.getGas(1000L), Materials.NitrogenDioxide.getGas(3000L), ItemList.Cell_Empty.get(2L, new Object[0]), 1250); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1L), GT_Values.NI, Materials.Hydrogen.getGas(2000L), GT_ModHandler.getDistilledWater(3000L), ItemList.Cell_Empty.get(1L, new Object[0]), 10); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 1L), GT_Values.NI, Materials.Oxygen.getGas(500L), GT_ModHandler.getDistilledWater(1500L), ItemList.Cell_Empty.get(1L, new Object[0]), 5); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tin, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 1L), Materials.Glass.getMolten(864L), GT_Values.NF, GT_ModHandler.getModItem("Railcraft", "tile.railcraft.glass", 6L), 50); + + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Gold, 8L), new ItemStack(Items.melon, 1, 32767), new ItemStack(Items.speckled_melon, 1, 0), 50); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Gold, 8L), new ItemStack(Items.carrot, 1, 32767), new ItemStack(Items.golden_carrot, 1, 0), 50); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Gold, 8L), new ItemStack(Items.apple, 1, 32767), new ItemStack(Items.golden_apple, 1, 0), 50); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.block, Materials.Gold, 8L), new ItemStack(Items.apple, 1, 32767), new ItemStack(Items.golden_apple, 1, 1), 50); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1L), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.EnderPearl, 1L), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.EnderEye, 1L), 50); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1L), new ItemStack(Items.slime_ball, 1, 32767), new ItemStack(Items.magma_cream, 1, 0), 50); + + GT_Values.RA.addBenderRecipe(ItemList.IC2_Mixed_Metal_Ingot.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plateAlloy, Materials.Advanced, 1L), 100, 8); + GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Aluminium, 6L), ItemList.RC_Rail_Standard.get(2L, new Object[0]), 200, 15); + GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Iron, 6L), ItemList.RC_Rail_Standard.get(4L, new Object[0]), 400, 15); + GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.WroughtIron, 6L), ItemList.RC_Rail_Standard.get(5L, new Object[0]), 400, 15); + GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Bronze, 6L), ItemList.RC_Rail_Standard.get(3L, new Object[0]), 300, 15); + GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Steel, 6L), ItemList.RC_Rail_Standard.get(8L, new Object[0]), 800, 15); + GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.StainlessSteel, 6L), ItemList.RC_Rail_Standard.get(12L, new Object[0]), 1200, 15); + GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Titanium, 6L), ItemList.RC_Rail_Standard.get(16L, new Object[0]), 1600, 15); + GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.TungstenSteel, 6L), ItemList.RC_Rail_Reinforced.get(24L, new Object[0]), 2400, 30); + GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Aluminium, 12L), ItemList.RC_Rebar.get(4L, new Object[0]), 200, 15); + GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Iron, 12L), ItemList.RC_Rebar.get(8L, new Object[0]), 400, 15); + GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.WroughtIron, 12L), ItemList.RC_Rebar.get(10L, new Object[0]), 400, 15); + GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Bronze, 12L), ItemList.RC_Rebar.get(8L, new Object[0]), 400, 15); + GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Steel, 12L), ItemList.RC_Rebar.get(16L, new Object[0]), 800, 15); + GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.StainlessSteel, 12L), ItemList.RC_Rebar.get(24L, new Object[0]), 1200, 15); + GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Titanium, 12L), ItemList.RC_Rebar.get(32L, new Object[0]), 1600, 15); + GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.TungstenSteel, 12L), ItemList.RC_Rebar.get(48L, new Object[0]), 2400, 15); + GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Tin, 12L), ItemList.Cell_Empty.get(6L, new Object[0]), 1200, 8); + GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 12L), new ItemStack(Items.bucket, 4, 0), 800, 4); + GT_Values.RA.addBenderRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 12L), new ItemStack(Items.bucket, 4, 0), 800, 4); + GT_Values.RA.addBenderRecipe(ItemList.IC2_Item_Casing_Iron.get(2L, new Object[0]), GT_ModHandler.getIC2Item("fuelRod", 1L), 100, 8); + GT_Values.RA.addBenderRecipe(ItemList.IC2_Item_Casing_Tin.get(1L, new Object[0]), ItemList.IC2_Food_Can_Empty.get(1L, new Object[0]), 100, 8); + + GT_Values.RA.addVacuumFreezerRecipe(GT_ModHandler.getIC2Item("reactorCoolantSimple", 1L, 32767), GT_ModHandler.getIC2Item("reactorCoolantSimple", 1L, 1), 100); + GT_Values.RA.addVacuumFreezerRecipe(GT_ModHandler.getIC2Item("reactorCoolantTriple", 1L, 32767), GT_ModHandler.getIC2Item("reactorCoolantTriple", 1L, 1), 300); + GT_Values.RA.addVacuumFreezerRecipe(GT_ModHandler.getIC2Item("reactorCoolantSix", 1L, 32767), GT_ModHandler.getIC2Item("reactorCoolantSix", 1L, 1), 600); + GT_Values.RA.addVacuumFreezerRecipe(ItemList.Reactor_Coolant_He_1.getWildcard(1L, new Object[0]), ItemList.Reactor_Coolant_He_1.get(1L, new Object[0]), 600); + GT_Values.RA.addVacuumFreezerRecipe(ItemList.Reactor_Coolant_He_3.getWildcard(1L, new Object[0]), ItemList.Reactor_Coolant_He_3.get(1L, new Object[0]), 1800); + GT_Values.RA.addVacuumFreezerRecipe(ItemList.Reactor_Coolant_He_6.getWildcard(1L, new Object[0]), ItemList.Reactor_Coolant_He_6.get(1L, new Object[0]), 3600); + GT_Values.RA.addVacuumFreezerRecipe(ItemList.Reactor_Coolant_NaK_1.getWildcard(1L, new Object[0]), ItemList.Reactor_Coolant_NaK_1.get(1L, new Object[0]), 600); + GT_Values.RA.addVacuumFreezerRecipe(ItemList.Reactor_Coolant_NaK_3.getWildcard(1L, new Object[0]), ItemList.Reactor_Coolant_NaK_3.get(1L, new Object[0]), 1800); + GT_Values.RA.addVacuumFreezerRecipe(ItemList.Reactor_Coolant_NaK_6.getWildcard(1L, new Object[0]), ItemList.Reactor_Coolant_NaK_6.get(1L, new Object[0]), 3600); + GT_Values.RA.addVacuumFreezerRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Water, 1L), GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Ice, 1L), 50); + + GT_Values.RA.addAlloySmelterRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lead, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Obsidian, 2L), ItemList.TE_Hardened_Glass.get(2L, new Object[0]), 200, 16); + GT_Values.RA.addAlloySmelterRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Lead, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Obsidian, 2L), ItemList.TE_Hardened_Glass.get(2L, new Object[0]), 200, 16); + + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("BuildCraft|Transport", "item.buildcraftPipe.pipestructurecobblestone", 1L, 0), GT_ModHandler.getModItem("BuildCraft|Transport", "pipePlug", 8L, 0), GT_Values.NI, 32, 16); + for (int i = 0; i < 16; i++) { + GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.stained_glass, 3, i), new ItemStack(Blocks.stained_glass_pane, 8, i), GT_Values.NI, 50, 8); + } + GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.glass, 3, 0), new ItemStack(Blocks.glass_pane, 8, 0), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.stone, 1, 0), new ItemStack(Blocks.stone_slab, 2, 0), GT_Values.NI, 25, 8); + GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.sandstone, 1, 0), new ItemStack(Blocks.stone_slab, 2, 1), GT_Values.NI, 25, 8); + GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.cobblestone, 1, 0), new ItemStack(Blocks.stone_slab, 2, 3), GT_Values.NI, 25, 8); + GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.brick_block, 1, 0), new ItemStack(Blocks.stone_slab, 2, 4), GT_Values.NI, 25, 8); + GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.stonebrick, 1, 0), new ItemStack(Blocks.stone_slab, 2, 5), GT_Values.NI, 25, 8); + GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.nether_brick, 1, 0), new ItemStack(Blocks.stone_slab, 2, 6), GT_Values.NI, 25, 8); + GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.quartz_block, 1, 32767), new ItemStack(Blocks.stone_slab, 2, 7), GT_Values.NI, 25, 8); + GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.glowstone, 1, 0), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Glowstone, 4L), GT_Values.NI, 100, 16); + + GT_Values.RA.addCutterRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), ItemList.IC2_Item_Casing_Iron.get(2L, new Object[0]), GT_Values.NI, 50, 16); + GT_Values.RA.addCutterRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), ItemList.IC2_Item_Casing_Iron.get(2L, new Object[0]), GT_Values.NI, 50, 16); + GT_Values.RA.addCutterRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Gold, 1L), ItemList.IC2_Item_Casing_Gold.get(2L, new Object[0]), GT_Values.NI, 50, 16); + GT_Values.RA.addCutterRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Bronze, 1L), ItemList.IC2_Item_Casing_Bronze.get(2L, new Object[0]), GT_Values.NI, 50, 16); + GT_Values.RA.addCutterRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Copper, 1L), ItemList.IC2_Item_Casing_Copper.get(2L, new Object[0]), GT_Values.NI, 50, 16); + GT_Values.RA.addCutterRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.AnnealedCopper, 1L), ItemList.IC2_Item_Casing_Copper.get(2L, new Object[0]), GT_Values.NI, 50, 16); + GT_Values.RA.addCutterRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Tin, 1L), ItemList.IC2_Item_Casing_Tin.get(2L, new Object[0]), GT_Values.NI, 50, 16); + GT_Values.RA.addCutterRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Lead, 1L), ItemList.IC2_Item_Casing_Lead.get(2L, new Object[0]), GT_Values.NI, 50, 16); + GT_Values.RA.addCutterRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 1L), ItemList.IC2_Item_Casing_Steel.get(2L, new Object[0]), GT_Values.NI, 50, 16); + for (byte i = 0; i < 16; i = (byte) (i + 1)) { + GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.wool, 2, i), new ItemStack(Blocks.carpet, 3, i), GT_Values.NI, 50, 8); + } + GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.wooden_slab, 1, 0), ItemList.Plank_Oak.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.wooden_slab, 1, 1), ItemList.Plank_Spruce.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.wooden_slab, 1, 2), ItemList.Plank_Birch.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.wooden_slab, 1, 3), ItemList.Plank_Jungle.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.wooden_slab, 1, 4), ItemList.Plank_Acacia.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.wooden_slab, 1, 5), ItemList.Plank_DarkOak.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 0), ItemList.Plank_Larch.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 1), ItemList.Plank_Teak.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 2), ItemList.Plank_Acacia_Green.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 3), ItemList.Plank_Lime.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 4), ItemList.Plank_Chestnut.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 5), ItemList.Plank_Wenge.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 6), ItemList.Plank_Baobab.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 7), ItemList.Plank_Sequoia.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 0), ItemList.Plank_Kapok.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 1), ItemList.Plank_Ebony.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 2), ItemList.Plank_Mahagony.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 3), ItemList.Plank_Balsa.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 4), ItemList.Plank_Willow.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 5), ItemList.Plank_Walnut.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 6), ItemList.Plank_Greenheart.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 7), ItemList.Plank_Cherry.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 0), ItemList.Plank_Mahoe.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 1), ItemList.Plank_Poplar.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 2), ItemList.Plank_Palm.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 3), ItemList.Plank_Papaya.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 4), ItemList.Plank_Pine.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 5), ItemList.Plank_Plum.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 6), ItemList.Plank_Maple.get(2L, new Object[0]), GT_Values.NI, 50, 8); + GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 7), ItemList.Plank_Citrus.get(2L, new Object[0]), GT_Values.NI, 50, 8); + + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Cupronickel, 1L), ItemList.Shape_Mold_Credit.get(0L, new Object[0]), ItemList.Credit_Greg_Cupronickel.get(4L, new Object[0]), 100, 16); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Brass, 1L), ItemList.Shape_Mold_Credit.get(0L, new Object[0]), ItemList.Coin_Doge.get(4L, new Object[0]), 100, 16); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), ItemList.Shape_Mold_Credit.get(0L, new Object[0]), ItemList.Credit_Iron.get(4L, new Object[0]), 100, 16); + GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), ItemList.Shape_Mold_Credit.get(0L, new Object[0]), ItemList.Credit_Iron.get(4L, new Object[0]), 100, 16); + + if (!GT_Mod.gregtechproxy.mDisableIC2Cables) { + GT_Values.RA.addWiremillRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Copper, 1L), GT_ModHandler.getIC2Item("copperCableItem", 3L), 100, 2); + GT_Values.RA.addWiremillRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.AnnealedCopper, 1L), GT_ModHandler.getIC2Item("copperCableItem", 3L), 100, 2); + GT_Values.RA.addWiremillRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Tin, 1L), GT_ModHandler.getIC2Item("tinCableItem", 4L), 150, 1); + GT_Values.RA.addWiremillRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), GT_ModHandler.getIC2Item("ironCableItem", 6L), 200, 2); + GT_Values.RA.addWiremillRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), GT_ModHandler.getIC2Item("ironCableItem", 6L), 200, 2); + GT_Values.RA.addWiremillRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Gold, 1L), GT_ModHandler.getIC2Item("goldCableItem", 6L), 200, 1); + } + GT_Values.RA.addWiremillRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 8L), GT_ModHandler.getIC2Item("carbonFiber", 1L), 400, 2); + GT_Values.RA.addWiremillRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphene, 1L), GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Graphene, 1L), 400, 2); + if (!GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "torchesFromCoal", false)) { + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), new ItemStack(Items.coal, 1, 32767), new ItemStack(Blocks.torch, 4), 400, 1); + } + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Gold, 2L), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), new ItemStack(Blocks.light_weighted_pressure_plate, 1), 200, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 2L), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), new ItemStack(Blocks.heavy_weighted_pressure_plate, 1), 200, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 6L), ItemList.Circuit_Integrated.getWithDamage(0L, 6L, new Object[0]), new ItemStack(Items.iron_door, 1), 600, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 7L), ItemList.Circuit_Integrated.getWithDamage(0L, 7L, new Object[0]), new ItemStack(Items.cauldron, 1), 700, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Iron, 1L), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), GT_ModHandler.getIC2Item("ironFence", 1L), 100, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Iron, 3L), ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), new ItemStack(Blocks.iron_bars, 4), 300, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 2L), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), new ItemStack(Blocks.heavy_weighted_pressure_plate, 1), 200, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 6L), ItemList.Circuit_Integrated.getWithDamage(0L, 6L, new Object[0]), new ItemStack(Items.iron_door, 1), 600, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 7L), ItemList.Circuit_Integrated.getWithDamage(0L, 7L, new Object[0]), new ItemStack(Items.cauldron, 1), 700, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.WroughtIron, 1L), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), GT_ModHandler.getIC2Item("ironFence", 1L), 100, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.WroughtIron, 3L), ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), new ItemStack(Blocks.iron_bars, 4), 300, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 3L), ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), new ItemStack(Blocks.fence, 1), 300, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Iron, 2L), new ItemStack(Blocks.tripwire_hook, 1), 400, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.WroughtIron, 2L), new ItemStack(Blocks.tripwire_hook, 1), 400, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 3L), new ItemStack(Items.string, 3, 32767), new ItemStack(Items.bow, 1), 400, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 3L), ItemList.Component_Minecart_Wheels_Iron.get(2L, new Object[0]), new ItemStack(Items.minecart, 1), 500, 2); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 3L), ItemList.Component_Minecart_Wheels_Iron.get(2L, new Object[0]), new ItemStack(Items.minecart, 1), 400, 2); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 3L), ItemList.Component_Minecart_Wheels_Steel.get(2L, new Object[0]), new ItemStack(Items.minecart, 1), 300, 2); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Iron, 2L), ItemList.Component_Minecart_Wheels_Iron.get(1L, new Object[0]), 500, 2); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.WroughtIron, 1L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.WroughtIron, 2L), ItemList.Component_Minecart_Wheels_Iron.get(1L, new Object[0]), 400, 2); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Steel, 2L), ItemList.Component_Minecart_Wheels_Steel.get(1L, new Object[0]), 300, 2); + GT_Values.RA.addAssemblerRecipe(new ItemStack(Items.minecart, 1), new ItemStack(Blocks.hopper, 1, 32767), new ItemStack(Items.hopper_minecart, 1), 400, 4); + GT_Values.RA.addAssemblerRecipe(new ItemStack(Items.minecart, 1), new ItemStack(Blocks.tnt, 1, 32767), new ItemStack(Items.tnt_minecart, 1), 400, 4); + GT_Values.RA.addAssemblerRecipe(new ItemStack(Items.minecart, 1), new ItemStack(Blocks.chest, 1, 32767), new ItemStack(Items.chest_minecart, 1), 400, 4); + GT_Values.RA.addAssemblerRecipe(new ItemStack(Items.minecart, 1), new ItemStack(Blocks.trapped_chest, 1, 32767), new ItemStack(Items.chest_minecart, 1), 400, 4); + GT_Values.RA.addAssemblerRecipe(new ItemStack(Items.minecart, 1), new ItemStack(Blocks.furnace, 1, 32767), new ItemStack(Items.furnace_minecart, 1), 400, 4); + GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.tripwire_hook, 1), new ItemStack(Blocks.chest, 1, 32767), new ItemStack(Blocks.trapped_chest, 1), 200, 4); + GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.stone, 1, 0), ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), new ItemStack(Blocks.stonebrick, 1, 0), 50, 4); + GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.sandstone, 1, 0), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new ItemStack(Blocks.sandstone, 1, 2), 50, 4); + GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.sandstone, 1, 1), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new ItemStack(Blocks.sandstone, 1, 0), 50, 4); + GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.sandstone, 1, 2), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new ItemStack(Blocks.sandstone, 1, 0), 50, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 8L), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), ItemList.Casing_ULV.get(1L, new Object[0]), 25, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 8L), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), ItemList.Casing_LV.get(1L, new Object[0]), 50, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 8L), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), ItemList.Casing_MV.get(1L, new Object[0]), 50, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StainlessSteel, 8L), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), ItemList.Casing_HV.get(1L, new Object[0]), 50, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Titanium, 8L), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), ItemList.Casing_EV.get(1L, new Object[0]), 50, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.TungstenSteel, 8L), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), ItemList.Casing_IV.get(1L, new Object[0]), 50, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Chrome, 8L), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), ItemList.Casing_LuV.get(1L, new Object[0]), 50, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iridium, 8L), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), ItemList.Casing_ZPM.get(1L, new Object[0]), 50, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Osmium, 8L), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), ItemList.Casing_UV.get(1L, new Object[0]), 50, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium, 8L), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), ItemList.Casing_MAX.get(1L, new Object[0]), 50, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Lead, 2L), ItemList.Casing_ULV.get(1L, new Object[0]), ItemList.Hull_ULV.get(1L, new Object[0]), 25, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tin, 2L), ItemList.Casing_LV.get(1L, new Object[0]), ItemList.Hull_LV.get(1L, new Object[0]), 50, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Copper, 2L), ItemList.Casing_MV.get(1L, new Object[0]), ItemList.Hull_MV.get(1L, new Object[0]), 50, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.AnnealedCopper, 2L), ItemList.Casing_MV.get(1L, new Object[0]), ItemList.Hull_MV.get(1L, new Object[0]), 50, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Gold, 2L), ItemList.Casing_HV.get(1L, new Object[0]), ItemList.Hull_HV.get(1L, new Object[0]), 50, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Aluminium, 2L), ItemList.Casing_EV.get(1L, new Object[0]), ItemList.Hull_EV.get(1L, new Object[0]), 50, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tungsten, 2L), ItemList.Casing_IV.get(1L, new Object[0]), ItemList.Hull_IV.get(1L, new Object[0]), 50, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.Tungsten, 2L), ItemList.Casing_LuV.get(1L, new Object[0]), ItemList.Hull_LuV.get(1L, new Object[0]), 50, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.Osmium, 2L), ItemList.Casing_ZPM.get(1L, new Object[0]), ItemList.Hull_ZPM.get(1L, new Object[0]), 50, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt16, Materials.Osmium, 2L), ItemList.Casing_UV.get(1L, new Object[0]), ItemList.Hull_UV.get(1L, new Object[0]), 50, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Superconductor, 2L), ItemList.Casing_MAX.get(1L, new Object[0]), ItemList.Hull_MAX.get(1L, new Object[0]), 50, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 2L), GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tin, 1L), ItemList.Battery_Hull_LV.get(1L, new Object[0]), 1600, 2); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 6L), GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Copper, 2L), ItemList.Battery_Hull_MV.get(1L, new Object[0]), 2400, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 6L), GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.AnnealedCopper, 2L), ItemList.Battery_Hull_MV.get(1L, new Object[0]), 2400, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 18L), GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Gold, 4L), ItemList.Battery_Hull_HV.get(1L, new Object[0]), 3200, 8); + GT_Values.RA.addAssemblerRecipe(new ItemStack(Items.string, 4, 32767), new ItemStack(Items.slime_ball, 1, 32767), new ItemStack(Items.lead, 2), 200, 2); + GT_Values.RA.addAssemblerRecipe(ItemList.IC2_Compressed_Coal_Ball.get(8L, new Object[0]), new ItemStack(Blocks.brick_block, 1), ItemList.IC2_Compressed_Coal_Chunk.get(1L, new Object[0]), 400, 4); + + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("waterMill", 2L), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), GT_ModHandler.getIC2Item("generator", 1L), 6400, 8); + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("batPack", 1L, 32767), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), ItemList.IC2_ReBattery.get(6L, new Object[0]), 800, 4); + GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.stone_slab, 3, 0), ItemList.RC_Rebar.get(1L, new Object[0]), ItemList.RC_Tie_Stone.get(1L, new Object[0]), 128, 8); + GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.stone_slab, 3, 7), ItemList.RC_Rebar.get(1L, new Object[0]), ItemList.RC_Tie_Stone.get(1L, new Object[0]), 128, 8); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Copper, 9L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Lead, 2L), GT_Values.NF, ItemList.RC_ShuntingWire.get(4L, new Object[0]), 1600, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.AnnealedCopper, 9L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Lead, 2L), GT_Values.NF, ItemList.RC_ShuntingWire.get(4L, new Object[0]), 1600, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 3L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Gold, 3L), Materials.Blaze.getMolten(432L), ItemList.RC_Rail_HS.get(8L, new Object[0]), 400, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.RC_Rail_Standard.get(3L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Gold, 3L), Materials.Redstone.getMolten(432L), ItemList.RC_Rail_Adv.get(8L, new Object[0]), 400, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.RC_Rail_Standard.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Copper, 1L), ItemList.RC_Rail_Electric.get(1L, new Object[0]), 50, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.RC_Rail_Standard.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.AnnealedCopper, 1L), ItemList.RC_Rail_Electric.get(1L, new Object[0]), 50, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.RC_Tie_Wood.get(6L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), ItemList.RC_Rail_Wooden.get(6L, new Object[0]), 400, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.RC_Tie_Wood.get(6L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), ItemList.RC_Rail_Wooden.get(6L, new Object[0]), 400, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.RC_Tie_Wood.get(4L, new Object[0]), ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), ItemList.RC_Bed_Wood.get(1L, new Object[0]), 200, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.RC_Tie_Stone.get(4L, new Object[0]), ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), ItemList.RC_Bed_Stone.get(1L, new Object[0]), 200, 4); + for (ItemStack tRail : new ItemStack[]{ItemList.RC_Rail_Standard.get(6L, new Object[0]), ItemList.RC_Rail_Adv.get(6L, new Object[0]), ItemList.RC_Rail_Reinforced.get(6L, new Object[0]), ItemList.RC_Rail_Electric.get(6L, new Object[0]), ItemList.RC_Rail_HS.get(6L, new Object[0]), ItemList.RC_Rail_Wooden.get(6L, new Object[0])}) { + for (ItemStack tBed : new ItemStack[]{ItemList.RC_Bed_Wood.get(1L, new Object[0]), ItemList.RC_Bed_Stone.get(1L, new Object[0])}) { + GT_Values.RA.addAssemblerRecipe(tBed, tRail, GT_ModHandler.getRecipeOutput(new ItemStack[]{tRail, GT_Values.NI, tRail, tRail, tBed, tRail, tRail, GT_Values.NI, tRail}), 400, 4); + GT_Values.RA.addAssemblerRecipe(tBed, tRail, Materials.Redstone.getMolten(144L), GT_ModHandler.getRecipeOutput(new ItemStack[]{tRail, GT_Values.NI, tRail, tRail, tBed, tRail, tRail, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), tRail}), 400, 4); + GT_Values.RA.addAssemblerRecipe(tBed, tRail, Materials.Redstone.getMolten(288L), GT_ModHandler.getRecipeOutput(new ItemStack[]{tRail, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), tRail, tRail, tBed, tRail, tRail, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), tRail}), 400, 4); + } + } + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("carbonFiber", 2L), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), GT_ModHandler.getIC2Item("carbonMesh", 1L), 800, 2); + + GT_Values.RA.addAssemblerRecipe(ItemList.NC_SensorCard.getWildcard(1L, new Object[0]), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), ItemList.Circuit_Basic.get(3L, new Object[0]), 1600, 2); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 4L), GT_ModHandler.getIC2Item("generator", 1L), GT_ModHandler.getIC2Item("waterMill", 2L), 6400, 8); + + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 5L), new ItemStack(Blocks.chest, 1, 32767), new ItemStack(Blocks.hopper), 800, 2); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 5L), new ItemStack(Blocks.trapped_chest, 1, 32767), new ItemStack(Blocks.hopper), 800, 2); + + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 5L), new ItemStack(Blocks.chest, 1, 32767), new ItemStack(Blocks.hopper), 800, 2); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 5L), new ItemStack(Blocks.trapped_chest, 1, 32767), new ItemStack(Blocks.hopper), 800, 2); + + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Magnalium, 2L), GT_ModHandler.getIC2Item("generator", 1L), GT_ModHandler.getIC2Item("windMill", 1L), 6400, 8); + + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.EnderPearl, 1L), new ItemStack(Items.blaze_powder, 1, 0), new ItemStack(Items.ender_eye, 1, 0), 400, 2); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.EnderPearl, 6L), new ItemStack(Items.blaze_rod, 1, 0), new ItemStack(Items.ender_eye, 6, 0), 2500, 2); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.gear, Materials.CobaltBrass, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Diamond, 1L), ItemList.Component_Sawblade_Diamond.get(1L, new Object[0]), 1600, 2); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Flint, 5L), new ItemStack(Blocks.tnt, 3, 32767), GT_ModHandler.getIC2Item("industrialTnt", 5L), 800, 2); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gunpowder, 4L), new ItemStack(Blocks.sand, 4, 32767), new ItemStack(Blocks.tnt, 1), 400, 1); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 4L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 4L), new ItemStack(Blocks.redstone_lamp, 1), 400, 1); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), new ItemStack(Blocks.redstone_torch, 1), 400, 1); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 4L), new ItemStack(Items.compass, 1), 400, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 4L), new ItemStack(Items.compass, 1), 400, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Gold, 4L), new ItemStack(Items.clock, 1), 400, 4); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), new ItemStack(Blocks.torch, 2), 400, 1); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphorus, 1L), new ItemStack(Blocks.torch, 6), 400, 1); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), ItemList.IC2_Resin.get(1L, new Object[0]), new ItemStack(Blocks.torch, 6), 400, 1); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 8L), new ItemStack(Items.flint, 1), ItemList.IC2_Compressed_Coal_Ball.get(1L, new Object[0]), 400, 4); + if (!GT_Mod.gregtechproxy.mDisableIC2Cables) { + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("tinCableItem", 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 1L), GT_ModHandler.getIC2Item("insulatedTinCableItem", 1L), 100, 2); + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("copperCableItem", 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 1L), GT_ModHandler.getIC2Item("insulatedCopperCableItem", 1L), 100, 2); + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("goldCableItem", 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 2L), GT_ModHandler.getIC2Item("insulatedGoldCableItem", 1L), 200, 2); + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("ironCableItem", 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 3L), GT_ModHandler.getIC2Item("insulatedIronCableItem", 1L), 300, 2); + } + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Wood, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), new ItemStack(Items.wooden_sword, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Stone, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), new ItemStack(Items.stone_sword, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), new ItemStack(Items.iron_sword, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), new ItemStack(Items.golden_sword, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Diamond, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), new ItemStack(Items.diamond_sword, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Bronze, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), ItemList.Tool_Sword_Bronze.getUndamaged(1L, new Object[0]), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), ItemList.Tool_Sword_Steel.getUndamaged(1L, new Object[0]), 100, 16); + + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Wood, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.wooden_pickaxe, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Stone, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.stone_pickaxe, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.iron_pickaxe, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.golden_pickaxe, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Diamond, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.diamond_pickaxe, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Bronze, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), ItemList.Tool_Pickaxe_Bronze.getUndamaged(1L, new Object[0]), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), ItemList.Tool_Pickaxe_Steel.getUndamaged(1L, new Object[0]), 100, 16); + + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Wood, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.wooden_shovel, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Stone, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.stone_shovel, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.iron_shovel, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.golden_shovel, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Diamond, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.diamond_shovel, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Bronze, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), ItemList.Tool_Shovel_Bronze.getUndamaged(1L, new Object[0]), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), ItemList.Tool_Shovel_Steel.getUndamaged(1L, new Object[0]), 100, 16); + + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Wood, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.wooden_axe, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Stone, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.stone_axe, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.iron_axe, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.golden_axe, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Diamond, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.diamond_axe, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Bronze, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), ItemList.Tool_Axe_Bronze.getUndamaged(1L, new Object[0]), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), ItemList.Tool_Axe_Steel.getUndamaged(1L, new Object[0]), 100, 16); + + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Wood, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.wooden_hoe, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Stone, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.stone_hoe, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.iron_hoe, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.golden_hoe, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Diamond, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.diamond_hoe, 1), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Bronze, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), ItemList.Tool_Hoe_Bronze.getUndamaged(1L, new Object[0]), 100, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), ItemList.Tool_Hoe_Steel.getUndamaged(1L, new Object[0]), 100, 16); + + GT_ModHandler.removeRecipe(new ItemStack[]{new ItemStack(Items.lava_bucket), ItemList.Cell_Empty.get(1L, new Object[0])}); + GT_ModHandler.removeRecipe(new ItemStack[]{new ItemStack(Items.water_bucket), ItemList.Cell_Empty.get(1L, new Object[0])}); + + GT_ModHandler.removeFurnaceSmelting(ItemList.IC2_Resin.get(1L, new Object[0])); + + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.golden_apple, 1, 1), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(9216L), new ItemStack(Items.gold_ingot, 64), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 9216, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.golden_apple, 1, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), new ItemStack(Items.gold_ingot, 7), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 9216, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.golden_carrot, 1, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), new ItemStack(Items.gold_nugget, 6), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 9216, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.speckled_melon, 1, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), new ItemStack(Items.gold_nugget, 6), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 9216, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.mushroom_stew, 16, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), new ItemStack(Items.bowl, 16, 0), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.apple, 32, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.bread, 64, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.porkchop, 12, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.cooked_porkchop, 16, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.beef, 12, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.cooked_beef, 16, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.fish, 12, 32767), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.cooked_fished, 16, 32767), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.chicken, 12, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.cooked_chicken, 16, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.melon, 64, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Blocks.pumpkin, 16, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.rotten_flesh, 16, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.spider_eye, 32, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.carrot, 16, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(ItemList.Food_Raw_Potato.get(16L, new Object[0]), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(ItemList.Food_Poisonous_Potato.get(12L, new Object[0]), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(ItemList.Food_Baked_Potato.get(24L, new Object[0]), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.cookie, 64, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.cake, 8, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Blocks.brown_mushroom_block, 12, 32767), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Blocks.red_mushroom_block, 12, 32767), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Blocks.brown_mushroom, 32, 32767), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Blocks.red_mushroom, 32, 32767), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.nether_wart, 32, 32767), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(GT_ModHandler.getIC2Item("terraWart", 16L), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(GT_ModHandler.getModItem("TwilightForest", "item.meefRaw", 12L, 32767), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(GT_ModHandler.getModItem("TwilightForest", "item.meefSteak", 16L, 32767), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(GT_ModHandler.getModItem("TwilightForest", "item.venisonRaw", 12L, 32767), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + GT_Values.RA.addCentrifugeRecipe(GT_ModHandler.getModItem("TwilightForest", "item.venisonCooked", 16L, 32767), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); + + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Blocks.sand, 1, 1), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Diamond, 1L), new ItemStack(Blocks.sand, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{5000, 100, 5000}, 50, 30); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Blocks.dirt, 1, 32767), GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.IC2_Plantball.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Clay, 1L), new ItemStack(Blocks.sand, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{1250, 5000, 5000}, 250, 30); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Blocks.grass, 1, 32767), GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.IC2_Plantball.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Clay, 1L), new ItemStack(Blocks.sand, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{2500, 5000, 5000}, 250, 30); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Blocks.mycelium, 1, 32767), GT_Values.NI, GT_Values.NF, GT_Values.NF, new ItemStack(Blocks.brown_mushroom, 1), new ItemStack(Blocks.red_mushroom, 1), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Clay, 1L), new ItemStack(Blocks.sand, 1), GT_Values.NI, GT_Values.NI, new int[]{2500, 2500, 5000, 5000}, 650, 30); + GT_Values.RA.addCentrifugeRecipe(ItemList.IC2_Resin.get(1L, new Object[0]), GT_Values.NI, GT_Values.NF, Materials.Glue.getFluid(100L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Rubber, 2L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plastic, 1L), ItemList.IC2_Plantball.get(1L, new Object[0]), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{10000, 5000, 5000}, 300, 5); + GT_Values.RA.addCentrifugeRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2L), 0, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 1L), ItemList.TE_Slag.get(1L, new Object[]{GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 1L)}), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, 250); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.magma_cream, 1), 0, new ItemStack(Items.blaze_powder, 1), new ItemStack(Items.slime_ball, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, 500); + GT_Values.RA.addCentrifugeRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uranium, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Uranium235, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Plutonium, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{2000, 200}, 800, 320); + GT_Values.RA.addCentrifugeRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plutonium, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Plutonium241, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Uranium, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{2000, 3000}, 1600, 320); + GT_Values.RA.addCentrifugeRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.NaquadahEnriched, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Naquadria, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{5000, 1000}, 3200, 320); + GT_Values.RA.addCentrifugeRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NaquadahEnriched, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Naquadria, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Naquadah, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{2000, 3000}, 6400, 640); + GT_Values.RA.addCentrifugeRecipe(GT_Values.NI, GT_Values.NI, Materials.Hydrogen.getGas(160L), Materials.Deuterium.getGas(40L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 160, 20); + GT_Values.RA.addCentrifugeRecipe(GT_Values.NI, GT_Values.NI, Materials.Deuterium.getGas(160L), Materials.Tritium.getGas(40L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 160, 80); + GT_Values.RA.addCentrifugeRecipe(GT_Values.NI, GT_Values.NI, Materials.Helium.getGas(80L), Materials.Helium_3.getGas(5L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 160, 80); + GT_Values.RA.addCentrifugeRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Gold, 2L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 488, 80); + GT_Values.RA.addCentrifugeRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Endstone, 1L), GT_Values.NI, GT_Values.NF, Materials.Helium.getGas(120L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tungsten, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Platinum, 1L), new ItemStack(Blocks.sand, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{625, 625, 9000, 0, 0, 0}, 320, 20); + GT_Values.RA.addCentrifugeRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Netherrack, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Redstone, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Sulfur, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Coal, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Gold, 1L), GT_Values.NI, GT_Values.NI, new int[]{5625, 9900, 5625, 625, 0, 0}, 160, 20); + GT_Values.RA.addCentrifugeRecipe(new ItemStack(Blocks.soul_sand, 1), GT_Values.NI, GT_Values.NF, Materials.Oil.getFluid(80L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Saltpeter, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Coal, 1L), new ItemStack(Blocks.sand, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{8000, 2000, 9000, 0, 0, 0}, 200, 80); + GT_Values.RA.addCentrifugeRecipe(GT_Values.NI, GT_Values.NI, Materials.Lava.getFluid(100L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Copper, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Tin, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Silver, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Tantalum, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tungsten, 1L), new int[]{2000, 1000, 250, 250, 250, 125}, 80, 80); + GT_Values.RA.addCentrifugeRecipe(GT_Values.NI, GT_Values.NI, FluidRegistry.getFluidStack("ic2pahoehoelava", 100), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Copper, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Tin, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Silver, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Tantalum, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tungsten, 1L), new int[]{2000, 1000, 250, 250, 250, 125}, 40, 80); + + GT_Values.RA.addCentrifugeRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RareEarth, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Neodymium, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Yttrium, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Lanthanum, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Cerium, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Cadmium, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Caesium, 1L), new int[]{2500, 2500, 2500, 2500, 2500, 2500}, 64, 20); + GT_Values.RA.addCentrifugeRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 45), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.BasalticMineralSand, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Olivine, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Obsidian, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Basalt, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Flint, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.RareEarth, 1L), new int[]{2000, 2000, 2000, 2000, 2000, 2000}, 64, 20); + + GT_Utility.removeSimpleIC2MachineRecipe(new ItemStack(Blocks.cobblestone), GT_ModHandler.getMaceratorRecipeList(), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L)); + GT_Utility.removeSimpleIC2MachineRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Lapis, 1L), GT_ModHandler.getMaceratorRecipeList(), ItemList.IC2_Plantball.get(1L, new Object[0])); + GT_Utility.removeSimpleIC2MachineRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), GT_ModHandler.getMaceratorRecipeList(), ItemList.IC2_Plantball.get(1L, new Object[0])); + GT_Utility.removeSimpleIC2MachineRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L), GT_ModHandler.getMaceratorRecipeList(), ItemList.IC2_Plantball.get(1L, new Object[0])); + + if (GregTech_API.sThaumcraftCompat != null) { + String tKey = "GT_WOOD_TO_CHARCOAL"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "You have discovered a way of making charcoal magically instead of using regular ovens for this purpose.

To create charcoal from wood you first need an air-free environment, some vacuus essentia is needed for that, then you need to incinerate the wood using ignis essentia and wait until all the water inside the wood is burned away.

This method however doesn't create creosote oil as byproduct."); + + GregTech_API.sThaumcraftCompat.addResearch(tKey, "Charcoal Transmutation", "Turning wood into charcoal", new String[]{"ALUMENTUM"}, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Charcoal, 1L), 2, 0, 13, 5, Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 10L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 8L)}), null, new Object[]{"gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.log.get(Materials.Wood), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Charcoal, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)}))}); + + tKey = "GT_FILL_WATER_BUCKET"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "You have discovered a way of filling a bucket with aqua essentia in order to simply get water."); + GregTech_API.sThaumcraftCompat.addResearch(tKey, "Water Transmutation", "Filling buckets with water", null, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.bucket, Materials.Water, 1L), 2, 0, 16, 5, Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 4L)}), null, new Object[]{"gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, GT_OreDictUnificator.get(OrePrefixes.bucket, Materials.Empty, 1L), GT_OreDictUnificator.get(OrePrefixes.bucket, Materials.Water, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 4L)})), GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, GT_OreDictUnificator.get(OrePrefixes.capsule, Materials.Empty, 1L), GT_OreDictUnificator.get(OrePrefixes.capsule, Materials.Water, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 4L)})), GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Empty, 1L), GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Water, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 4L)}))}); + + tKey = "GT_TRANSZINC"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "You have discovered a way to multiply zinc by steeping zinc nuggets in metallum harvested from other metals."); + GregTech_API.sThaumcraftCompat.addResearch(tKey, "Zinc Transmutation", "Transformation of metals into zinc", new String[]{"TRANSTIN"}, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Zinc, 1L), 2, 1, 9, 13, Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 3L)}), null, new Object[]{"gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Zinc), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Zinc, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L)}))}); + + tKey = "GT_TRANSANTIMONY"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "You have discovered a way to multiply antimony by steeping antimony nuggets in metallum harvested from other metals."); + GregTech_API.sThaumcraftCompat.addResearch(tKey, "Antimony Transmutation", "Transformation of metals into antimony", new String[]{"GT_TRANSZINC", "TRANSLEAD"}, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Antimony, 1L), 2, 1, 9, 14, Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 3L)}), null, new Object[]{"gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Antimony), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Antimony, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L)}))}); + + tKey = "GT_TRANSNICKEL"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "You have discovered a way to multiply nickel by steeping nickel nuggets in metallum harvested from other metals."); + GregTech_API.sThaumcraftCompat.addResearch(tKey, "Nickel Transmutation", "Transformation of metals into nickel", new String[]{"TRANSLEAD"}, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Nickel, 1L), 2, 1, 9, 15, Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 3L)}), null, new Object[]{"gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Nickel), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Nickel, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)}))}); + + tKey = "GT_TRANSCOBALT"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "You have discovered a way to multiply cobalt by steeping cobalt nuggets in metallum harvested from other metals."); + GregTech_API.sThaumcraftCompat.addResearch(tKey, "Cobalt Transmutation", "Transformation of metals into cobalt", new String[]{"GT_TRANSNICKEL"}, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Cobalt, 1L), 2, 1, 9, 16, Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 3L)}), null, new Object[]{"gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Cobalt), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Cobalt, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1L)}))}); + + tKey = "GT_TRANSBISMUTH"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "You have discovered a way to multiply bismuth by steeping bismuth nuggets in metallum harvested from other metals."); + GregTech_API.sThaumcraftCompat.addResearch(tKey, "Bismuth Transmutation", "Transformation of metals into bismuth", new String[]{"GT_TRANSCOBALT"}, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Bismuth, 1L), 2, 1, 11, 17, Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 3L)}), null, new Object[]{"gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Bismuth), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Bismuth, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1L)}))}); + + tKey = "GT_IRON_TO_STEEL"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "You have discovered a way of making Iron harder by just re-ordering its components.

This Method can be used to create a Material called Steel, which is used in many non-Thaumaturgic applications."); + GregTech_API.sThaumcraftCompat.addResearch(tKey, "Steel Transmutation", "Transforming iron to steel", new String[]{"TRANSIRON", "GT_WOOD_TO_CHARCOAL"}, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Steel, 1L), 3, 0, 13, 8, Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3L)}), null, new Object[]{"gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Iron), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Steel, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 1L)}))}); + + tKey = "GT_TRANSBRONZE"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "You have discovered a way of creating Alloys using the already known transmutations of Copper and Tin.

This Method can be used to create a Bronze directly without having to go through an alloying process."); + GregTech_API.sThaumcraftCompat.addResearch(tKey, "Bronze Transmutation", "Transformation of metals into bronze", new String[]{"TRANSTIN", "TRANSCOPPER"}, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Bronze, 1L), 2, 0, 13, 11, Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 3L)}), null, new Object[]{"gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Bronze), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Bronze, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1L)}))}); + + tKey = "GT_TRANSELECTRUM"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "Your discovery of Bronze Transmutation has lead you to the conclusion it works with other Alloys such as Electrum as well."); + GregTech_API.sThaumcraftCompat.addResearch(tKey, "Electrum Transmutation", "Transformation of metals into electrum", new String[]{"GT_TRANSBRONZE", "TRANSGOLD", "TRANSSILVER"}, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Electrum, 1L), 2, 1, 11, 11, Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 3L)}), null, new Object[]{"gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Electrum), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Electrum, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L)}))}); + + tKey = "GT_TRANSBRASS"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "Your discovery of Bronze Transmutation has lead you to the conclusion it works with other Alloys such as Brass as well."); + GregTech_API.sThaumcraftCompat.addResearch(tKey, "Brass Transmutation", "Transformation of metals into brass", new String[]{"GT_TRANSBRONZE", "GT_TRANSZINC"}, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Brass, 1L), 2, 1, 11, 12, Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 3L)}), null, new Object[]{"gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Brass), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Brass, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1L)}))}); + + tKey = "GT_TRANSINVAR"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "Your discovery of Bronze Transmutation has lead you to the conclusion it works with other Alloys such as Invar as well."); + GregTech_API.sThaumcraftCompat.addResearch(tKey, "Invar Transmutation", "Transformation of metals into invar", new String[]{"GT_TRANSBRONZE", "GT_TRANSNICKEL"}, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Invar, 1L), 2, 1, 11, 15, Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 3L)}), null, new Object[]{"gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Invar), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Invar, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L)}))}); + + tKey = "GT_TRANSCUPRONICKEL"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "Your discovery of Bronze Transmutation has lead you to the conclusion it works with other Alloys such as Cupronickel as well."); + GregTech_API.sThaumcraftCompat.addResearch(tKey, "Cupronickel Transmutation", "Transformation of metals into cupronickel", new String[]{"GT_TRANSBRONZE", "GT_TRANSNICKEL"}, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Cupronickel, 1L), 2, 1, 11, 16, Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 3L)}), null, new Object[]{"gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Cupronickel), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Cupronickel, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)}))}); + + tKey = "GT_TRANSBATTERYALLOY"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "Your discovery of Bronze Transmutation has lead you to the conclusion it works with other Alloys such as Battery Alloy as well."); + GregTech_API.sThaumcraftCompat.addResearch(tKey, "Battery Alloy Transmutation", "Transformation of metals into battery alloy", new String[]{"GT_TRANSBRONZE", "GT_TRANSANTIMONY"}, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.BatteryAlloy, 1L), 2, 1, 11, 13, Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 3L)}), null, new Object[]{"gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.BatteryAlloy), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.BatteryAlloy, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 1L)}))}); + + tKey = "GT_TRANSSOLDERINGALLOY"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "Your discovery of Bronze Transmutation has lead you to the conclusion it works with other Alloys such as Soldering Alloy as well."); + GregTech_API.sThaumcraftCompat.addResearch(tKey, "Soldering Alloy Transmutation", "Transformation of metals into soldering alloy", new String[]{"GT_TRANSBRONZE", "GT_TRANSANTIMONY"}, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.SolderingAlloy, 1L), 2, 1, 11, 14, Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 3L)}), null, new Object[]{"gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.SolderingAlloy), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.SolderingAlloy, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L)}))}); + + tKey = "GT_ADVANCEDMETALLURGY"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "Now that you have discovered all the basic metals, you can finally move on to the next Level of magic metallurgy and create more advanced metals"); + GregTech_API.sThaumcraftCompat.addResearch(tKey, "Advanced Metallurgic Transmutation", "Mastering the basic metals", new String[]{"GT_TRANSBISMUTH", "GT_IRON_TO_STEEL", "GT_TRANSSOLDERINGALLOY", "GT_TRANSBATTERYALLOY", "GT_TRANSBRASS", "GT_TRANSELECTRUM", "GT_TRANSCUPRONICKEL", "GT_TRANSINVAR"}, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), 3, 0, 16, 14, Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 50L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 20L), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 20L), new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTIO, 20L), new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 20L), new TC_Aspects.TC_AspectStack(TC_Aspects.MAGNETO, 20L)}), null, new Object[]{"gt.research.page.1." + tKey}); + + tKey = "GT_TRANSALUMINIUM"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "You have discovered a way to multiply aluminium by steeping aluminium nuggets in metallum harvested from other metals.

This transmutation is slightly harder to achieve, because aluminium has special properties, which require more order to achieve the desired result."); + GregTech_API.sThaumcraftCompat.addResearch(tKey, "Aluminium Transmutation", "Transformation of metals into aluminium", new String[]{"GT_ADVANCEDMETALLURGY"}, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Aluminium, 1L), 4, 0, 19, 14, Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.VOLATUS, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 3L)}), null, new Object[]{"gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Aluminium), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Aluminium, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.VOLATUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)}))}); + + tKey = "GT_CRYSTALLISATION"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "Sometimes when processing your Crystal Shards they become a pile of Dust instead of the mostly required Shard.

You have finally found a way to reverse this Process by using Vitreus Essentia for recrystallising the Shards."); + GregTech_API.sThaumcraftCompat.addResearch(tKey, "Shard Recrystallisation", "Fixing your precious crystals", new String[]{"ALCHEMICALMANUFACTURE"}, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedOrder, 1L), 3, 0, -11, -3, Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3L)}), null, new Object[]{"gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.dust.get(Materials.Amber), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Amber, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L)})), GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.dust.get(Materials.InfusedOrder), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedOrder, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L)})), GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.dust.get(Materials.InfusedEntropy), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedEntropy, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L)})), GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.dust.get(Materials.InfusedAir), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedAir, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L)})), GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.dust.get(Materials.InfusedEarth), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedEarth, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L)})), GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.dust.get(Materials.InfusedFire), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedFire, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L)})), GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.dust.get(Materials.InfusedWater), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedWater, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[]{new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L)}))}); + + tKey = "GT_MAGICENERGY"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, + "While trying to find new ways to integrate magic into your industrial factories, you have discovered a way to convert magical energy into electrical power."); + GregTech_API.sThaumcraftCompat.addResearch(tKey, + "Magic Energy Conversion", + "Magic to Power", + new String[]{"ARCANEBORE"}, + "ARTIFICE", + ItemList.MagicEnergyConverter_LV.get(1L, new Object[0]), + 3, 0, -3, 10, + Arrays.asList(new TC_Aspects.TC_AspectStack[]{ + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 20L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)}), + null, new Object[]{"gt.research.page.1." + tKey, + GregTech_API.sThaumcraftCompat.addInfusionRecipe(tKey, + ItemList.Hull_LV.get(1L, new Object[0]), + new ItemStack[]{ + new ItemStack(Blocks.beacon), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Thaumium, 1L), + ItemList.Sensor_MV.get(2L, new Object[0]), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Thaumium, 1L), + ItemList.Sensor_MV.get(2L, new Object[0]) + }, + ItemList.MagicEnergyConverter_LV.get(1L, new Object[0]), + 5, + Arrays.asList(new TC_Aspects.TC_AspectStack[]{ + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 32L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 32L)}))}); + + tKey = "GT_MAGICENERGY2"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, + "Attempts to increase the output of your Magic Energy generators have resulted in significant improvements."); + GregTech_API.sThaumcraftCompat.addResearch(tKey, + "Adept Magic Energy Conversion", + "Magic to Power", + new String[]{"GT_MAGICENERGY"}, + "ARTIFICE", + ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]), + 1, 1, -4, 12, + Arrays.asList(new TC_Aspects.TC_AspectStack[]{ + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 20L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)}), + null, new Object[]{"gt.research.page.1." + tKey, + GregTech_API.sThaumcraftCompat.addInfusionRecipe(tKey, + ItemList.Hull_MV.get(1L, new Object[0]), + new ItemStack[]{ + new ItemStack(Blocks.beacon), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Data, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Thaumium, 1L), + ItemList.Sensor_HV.get(2L, new Object[0]), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Data, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iridium, 1L), + ItemList.Sensor_HV.get(2L, new Object[0]) + }, + ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]), + 6, + Arrays.asList(new TC_Aspects.TC_AspectStack[]{ + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 64L)}))}); + + tKey = "GT_MAGICENERGY3"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, + "Attempts to further increase the output of your Magic Energy generators have resulted in great improvements."); + GregTech_API.sThaumcraftCompat.addResearch(tKey, + "Master Magic Energy Conversion", + "Magic to Power", + new String[]{"GT_MAGICENERGY2"}, + "ARTIFICE", + ItemList.MagicEnergyConverter_HV.get(1L, new Object[0]), + 1, 1, -4, 14, + Arrays.asList(new TC_Aspects.TC_AspectStack[]{ + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 20L), + new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 20L), + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 40L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 20L)}), + null, new Object[]{"gt.research.page.1." + tKey, + GregTech_API.sThaumcraftCompat.addInfusionRecipe(tKey, + ItemList.Hull_HV.get(1L, new Object[0]), + new ItemStack[]{ + new ItemStack(Blocks.beacon), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Elite, 1L), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Thaumium, 1L), + ItemList.Field_Generator_MV.get(1L, new Object[0]), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Elite, 1L), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Europium, 1L), + ItemList.Field_Generator_MV.get(1L, new Object[0]) + }, + ItemList.MagicEnergyConverter_HV.get(1L, new Object[0]), + 8, + Arrays.asList(new TC_Aspects.TC_AspectStack[]{ + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 128L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 128L)}))}); + + + tKey = "GT_MAGICABSORB"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, + "Research into magical energy conversion methods has identified a way to convert surrounding energies into electrical power."); + GregTech_API.sThaumcraftCompat.addResearch(tKey, + "Magic Energy Absorption", + "Harvesting Magic", + new String[]{"GT_MAGICENERGY"}, + "ARTIFICE", + ItemList.MagicEnergyAbsorber_LV.get(1L, new Object[0]), + 3, 0, -2, 12, + Arrays.asList(new TC_Aspects.TC_AspectStack[]{ + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 20L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)}), + null, new Object[]{"gt.research.page.1." + tKey, + GregTech_API.sThaumcraftCompat.addInfusionRecipe(tKey, + ItemList.Hull_LV.get(1L, new Object[0]), + new ItemStack[]{ + ItemList.MagicEnergyConverter_LV.get(1L, new Object[0]), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Thaumium, 1L), + ItemList.Sensor_MV.get(2L, new Object[0]) + }, + ItemList.MagicEnergyAbsorber_LV.get(1L, new Object[0]), + 6, + Arrays.asList(new TC_Aspects.TC_AspectStack[]{ + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 32L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 32L), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 16L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 32L), + new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 4L)}))}); + + tKey = "GT_MAGICABSORB2"; + GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, + "Moar output! Drain all the Magic!"); + GregTech_API.sThaumcraftCompat.addResearch(tKey, + "Improved Magic Energy Absorption", + "Harvesting Magic", + new String[]{"GT_MAGICABSORB"}, + "ARTIFICE", + ItemList.MagicEnergyAbsorber_EV.get(1L, new Object[0]), + 3, 1, -2, 14, + Arrays.asList(new TC_Aspects.TC_AspectStack[]{ + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 20L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)}), + null, new Object[]{"gt.research.page.1." + tKey, + GregTech_API.sThaumcraftCompat.addInfusionRecipe(tKey, + ItemList.Hull_MV.get(1L, new Object[0]), + new ItemStack[]{ + ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Thaumium, 1L), + ItemList.Sensor_HV.get(2L, new Object[0]), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Thaumium, 1L) + }, + ItemList.MagicEnergyAbsorber_MV.get(1L, new Object[0]), + 6, + Arrays.asList(new TC_Aspects.TC_AspectStack[]{ + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 64L), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 32L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 64L), + new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 8L)})) + + + , GregTech_API.sThaumcraftCompat.addInfusionRecipe(tKey, + ItemList.Hull_HV.get(1L, new Object[0]), + new ItemStack[]{ + ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Elite, 1L), + GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1, 16), + ItemList.Field_Generator_MV.get(1L, new Object[0]), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Elite, 1L), + GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1, 16) + }, + ItemList.MagicEnergyAbsorber_HV.get(1L, new Object[0]), + 8, + Arrays.asList(new TC_Aspects.TC_AspectStack[]{ + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 128L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 128L), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 64L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 128L), + new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 16L)})) + + + , GregTech_API.sThaumcraftCompat.addInfusionRecipe(tKey, + ItemList.Hull_EV.get(1L, new Object[0]), + new ItemStack[]{ + ItemList.MagicEnergyConverter_HV.get(1L, new Object[0]), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Master, 1L), + GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1, 16), + ItemList.Field_Generator_HV.get(1L, new Object[0]), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Master, 1L), + GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1, 16) + }, + ItemList.MagicEnergyAbsorber_EV.get(1L, new Object[0]), + 10, + Arrays.asList(new TC_Aspects.TC_AspectStack[]{ + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 256L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 128L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 256L), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 128L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 256L), + new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 64L)})) + }); + + } + for (MaterialStack[] tMats : this.mAlloySmelterList) { + ItemStack tDust1 = GT_OreDictUnificator.get(OrePrefixes.dust, tMats[0].mMaterial, tMats[0].mAmount); + ItemStack tDust2 = GT_OreDictUnificator.get(OrePrefixes.dust, tMats[1].mMaterial, tMats[1].mAmount); + ItemStack tIngot1 = GT_OreDictUnificator.get(OrePrefixes.ingot, tMats[0].mMaterial, tMats[0].mAmount); + ItemStack tIngot2 = GT_OreDictUnificator.get(OrePrefixes.ingot, tMats[1].mMaterial, tMats[1].mAmount); + ItemStack tOutputIngot = GT_OreDictUnificator.get(OrePrefixes.ingot, tMats[2].mMaterial, tMats[2].mAmount); + if (tOutputIngot != GT_Values.NI) { + GT_ModHandler.addAlloySmelterRecipe(tIngot1, tDust2, tOutputIngot, (int) tMats[2].mAmount * 50, 16, false); + GT_ModHandler.addAlloySmelterRecipe(tIngot1, tIngot2, tOutputIngot, (int) tMats[2].mAmount * 50, 16, false); + GT_ModHandler.addAlloySmelterRecipe(tDust1, tIngot2, tOutputIngot, (int) tMats[2].mAmount * 50, 16, false); + GT_ModHandler.addAlloySmelterRecipe(tDust1, tDust2, tOutputIngot, (int) tMats[2].mAmount * 50, 16, false); + } + } } - GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.glass, 3, 0), new ItemStack(Blocks.glass_pane, 8, 0), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.stone, 1, 0), new ItemStack(Blocks.stone_slab, 2, 0), GT_Values.NI, 25, 8); - GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.sandstone, 1, 0), new ItemStack(Blocks.stone_slab, 2, 1), GT_Values.NI, 25, 8); - GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.cobblestone, 1, 0), new ItemStack(Blocks.stone_slab, 2, 3), GT_Values.NI, 25, 8); - GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.brick_block, 1, 0), new ItemStack(Blocks.stone_slab, 2, 4), GT_Values.NI, 25, 8); - GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.stonebrick, 1, 0), new ItemStack(Blocks.stone_slab, 2, 5), GT_Values.NI, 25, 8); - GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.nether_brick, 1, 0), new ItemStack(Blocks.stone_slab, 2, 6), GT_Values.NI, 25, 8); - GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.quartz_block, 1, 32767), new ItemStack(Blocks.stone_slab, 2, 7), GT_Values.NI, 25, 8); - GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.glowstone, 1, 0), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Glowstone, 4L), GT_Values.NI, 100, 16); - - GT_Values.RA.addCutterRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), ItemList.IC2_Item_Casing_Iron.get(2L, new Object[0]), GT_Values.NI, 50, 16); - GT_Values.RA.addCutterRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), ItemList.IC2_Item_Casing_Iron.get(2L, new Object[0]), GT_Values.NI, 50, 16); - GT_Values.RA.addCutterRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Gold, 1L), ItemList.IC2_Item_Casing_Gold.get(2L, new Object[0]), GT_Values.NI, 50, 16); - GT_Values.RA.addCutterRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Bronze, 1L), ItemList.IC2_Item_Casing_Bronze.get(2L, new Object[0]), GT_Values.NI, 50, 16); - GT_Values.RA.addCutterRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Copper, 1L), ItemList.IC2_Item_Casing_Copper.get(2L, new Object[0]), GT_Values.NI, 50, 16); - GT_Values.RA.addCutterRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.AnnealedCopper, 1L), ItemList.IC2_Item_Casing_Copper.get(2L, new Object[0]), GT_Values.NI, 50, 16); - GT_Values.RA.addCutterRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Tin, 1L), ItemList.IC2_Item_Casing_Tin.get(2L, new Object[0]), GT_Values.NI, 50, 16); - GT_Values.RA.addCutterRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Lead, 1L), ItemList.IC2_Item_Casing_Lead.get(2L, new Object[0]), GT_Values.NI, 50, 16); - GT_Values.RA.addCutterRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 1L), ItemList.IC2_Item_Casing_Steel.get(2L, new Object[0]), GT_Values.NI, 50, 16); - for (byte i = 0; i < 16; i = (byte)(i + 1)) { - GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.wool, 2, i), new ItemStack(Blocks.carpet, 3, i), GT_Values.NI, 50, 8); - } - GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.wooden_slab, 1, 0), ItemList.Plank_Oak.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.wooden_slab, 1, 1), ItemList.Plank_Spruce.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.wooden_slab, 1, 2), ItemList.Plank_Birch.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.wooden_slab, 1, 3), ItemList.Plank_Jungle.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.wooden_slab, 1, 4), ItemList.Plank_Acacia.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(new ItemStack(Blocks.wooden_slab, 1, 5), ItemList.Plank_DarkOak.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 0), ItemList.Plank_Larch.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 1), ItemList.Plank_Teak.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 2), ItemList.Plank_Acacia_Green.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 3), ItemList.Plank_Lime.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 4), ItemList.Plank_Chestnut.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 5), ItemList.Plank_Wenge.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 6), ItemList.Plank_Baobab.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs1", 1L, 7), ItemList.Plank_Sequoia.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 0), ItemList.Plank_Kapok.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 1), ItemList.Plank_Ebony.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 2), ItemList.Plank_Mahagony.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 3), ItemList.Plank_Balsa.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 4), ItemList.Plank_Willow.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 5), ItemList.Plank_Walnut.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 6), ItemList.Plank_Greenheart.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs2", 1L, 7), ItemList.Plank_Cherry.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 0), ItemList.Plank_Mahoe.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 1), ItemList.Plank_Poplar.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 2), ItemList.Plank_Palm.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 3), ItemList.Plank_Papaya.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 4), ItemList.Plank_Pine.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 5), ItemList.Plank_Plum.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 6), ItemList.Plank_Maple.get(2L, new Object[0]), GT_Values.NI, 50, 8); - GT_Values.RA.addCutterRecipe(GT_ModHandler.getModItem("Forestry", "slabs3", 1L, 7), ItemList.Plank_Citrus.get(2L, new Object[0]), GT_Values.NI, 50, 8); - - GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Cupronickel, 1L), ItemList.Shape_Mold_Credit.get(0L, new Object[0]), ItemList.Credit_Greg_Cupronickel.get(4L, new Object[0]), 100, 16); - GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Brass, 1L), ItemList.Shape_Mold_Credit.get(0L, new Object[0]), ItemList.Coin_Doge.get(4L, new Object[0]), 100, 16); - GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), ItemList.Shape_Mold_Credit.get(0L, new Object[0]), ItemList.Credit_Iron.get(4L, new Object[0]), 100, 16); - GT_Values.RA.addFormingPressRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), ItemList.Shape_Mold_Credit.get(0L, new Object[0]), ItemList.Credit_Iron.get(4L, new Object[0]), 100, 16); - - if(!GT_Mod.gregtechproxy.mDisableIC2Cables){ - GT_Values.RA.addWiremillRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Copper, 1L), GT_ModHandler.getIC2Item("copperCableItem", 3L), 100, 2); - GT_Values.RA.addWiremillRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.AnnealedCopper, 1L), GT_ModHandler.getIC2Item("copperCableItem", 3L), 100, 2); - GT_Values.RA.addWiremillRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Tin, 1L), GT_ModHandler.getIC2Item("tinCableItem", 4L), 150, 1); - GT_Values.RA.addWiremillRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), GT_ModHandler.getIC2Item("ironCableItem", 6L), 200, 2); - GT_Values.RA.addWiremillRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), GT_ModHandler.getIC2Item("ironCableItem", 6L), 200, 2); - GT_Values.RA.addWiremillRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Gold, 1L), GT_ModHandler.getIC2Item("goldCableItem", 6L), 200, 1);} - GT_Values.RA.addWiremillRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 8L), GT_ModHandler.getIC2Item("carbonFiber", 1L), 400, 2); - GT_Values.RA.addWiremillRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphene, 1L), GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Graphene, 1L), 400, 2); - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "torchesFromCoal", false)) { - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), new ItemStack(Items.coal, 1, 32767), new ItemStack(Blocks.torch, 4), 400, 1); - } - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Gold, 2L), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), new ItemStack(Blocks.light_weighted_pressure_plate, 1), 200, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 2L), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), new ItemStack(Blocks.heavy_weighted_pressure_plate, 1), 200, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 6L), ItemList.Circuit_Integrated.getWithDamage(0L, 6L, new Object[0]), new ItemStack(Items.iron_door, 1), 600, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 7L), ItemList.Circuit_Integrated.getWithDamage(0L, 7L, new Object[0]), new ItemStack(Items.cauldron, 1), 700, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Iron, 1L), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), GT_ModHandler.getIC2Item("ironFence", 1L), 100, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Iron, 3L), ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), new ItemStack(Blocks.iron_bars, 4), 300, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 2L), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), new ItemStack(Blocks.heavy_weighted_pressure_plate, 1), 200, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 6L), ItemList.Circuit_Integrated.getWithDamage(0L, 6L, new Object[0]), new ItemStack(Items.iron_door, 1), 600, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 7L), ItemList.Circuit_Integrated.getWithDamage(0L, 7L, new Object[0]), new ItemStack(Items.cauldron, 1), 700, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.WroughtIron, 1L), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), GT_ModHandler.getIC2Item("ironFence", 1L), 100, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.WroughtIron, 3L), ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), new ItemStack(Blocks.iron_bars, 4), 300, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 3L), ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), new ItemStack(Blocks.fence, 1), 300, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Iron, 2L), new ItemStack(Blocks.tripwire_hook, 1), 400, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.WroughtIron, 2L), new ItemStack(Blocks.tripwire_hook, 1), 400, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 3L), new ItemStack(Items.string, 3, 32767), new ItemStack(Items.bow, 1), 400, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 3L), ItemList.Component_Minecart_Wheels_Iron.get(2L, new Object[0]), new ItemStack(Items.minecart, 1), 500, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 3L), ItemList.Component_Minecart_Wheels_Iron.get(2L, new Object[0]), new ItemStack(Items.minecart, 1), 400, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 3L), ItemList.Component_Minecart_Wheels_Steel.get(2L, new Object[0]), new ItemStack(Items.minecart, 1), 300, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Iron, 2L), ItemList.Component_Minecart_Wheels_Iron.get(1L, new Object[0]), 500, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.WroughtIron, 1L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.WroughtIron, 2L), ItemList.Component_Minecart_Wheels_Iron.get(1L, new Object[0]), 400, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Steel, 2L), ItemList.Component_Minecart_Wheels_Steel.get(1L, new Object[0]), 300, 2); - GT_Values.RA.addAssemblerRecipe(new ItemStack(Items.minecart, 1), new ItemStack(Blocks.hopper, 1, 32767), new ItemStack(Items.hopper_minecart, 1), 400, 4); - GT_Values.RA.addAssemblerRecipe(new ItemStack(Items.minecart, 1), new ItemStack(Blocks.tnt, 1, 32767), new ItemStack(Items.tnt_minecart, 1), 400, 4); - GT_Values.RA.addAssemblerRecipe(new ItemStack(Items.minecart, 1), new ItemStack(Blocks.chest, 1, 32767), new ItemStack(Items.chest_minecart, 1), 400, 4); - GT_Values.RA.addAssemblerRecipe(new ItemStack(Items.minecart, 1), new ItemStack(Blocks.trapped_chest, 1, 32767), new ItemStack(Items.chest_minecart, 1), 400, 4); - GT_Values.RA.addAssemblerRecipe(new ItemStack(Items.minecart, 1), new ItemStack(Blocks.furnace, 1, 32767), new ItemStack(Items.furnace_minecart, 1), 400, 4); - GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.tripwire_hook, 1), new ItemStack(Blocks.chest, 1, 32767), new ItemStack(Blocks.trapped_chest, 1), 200, 4); - GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.stone, 1, 0), ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), new ItemStack(Blocks.stonebrick, 1, 0), 50, 4); - GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.sandstone, 1, 0), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new ItemStack(Blocks.sandstone, 1, 2), 50, 4); - GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.sandstone, 1, 1), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new ItemStack(Blocks.sandstone, 1, 0), 50, 4); - GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.sandstone, 1, 2), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), new ItemStack(Blocks.sandstone, 1, 0), 50, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 8L), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), ItemList.Casing_ULV.get(1L, new Object[0]), 25, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 8L), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), ItemList.Casing_LV.get(1L, new Object[0]), 50, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 8L), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), ItemList.Casing_MV.get(1L, new Object[0]), 50, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StainlessSteel, 8L), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), ItemList.Casing_HV.get(1L, new Object[0]), 50, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Titanium, 8L), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), ItemList.Casing_EV.get(1L, new Object[0]), 50, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.TungstenSteel, 8L), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), ItemList.Casing_IV.get(1L, new Object[0]), 50, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Chrome, 8L), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), ItemList.Casing_LuV.get(1L, new Object[0]), 50, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iridium, 8L), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), ItemList.Casing_ZPM.get(1L, new Object[0]), 50, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Osmium, 8L), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), ItemList.Casing_UV.get(1L, new Object[0]), 50, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium, 8L), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), ItemList.Casing_MAX.get(1L, new Object[0]), 50, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Lead, 2L), ItemList.Casing_ULV.get(1L, new Object[0]), ItemList.Hull_ULV.get(1L, new Object[0]), 25, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tin, 2L), ItemList.Casing_LV.get(1L, new Object[0]), ItemList.Hull_LV.get(1L, new Object[0]), 50, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Copper, 2L), ItemList.Casing_MV.get(1L, new Object[0]), ItemList.Hull_MV.get(1L, new Object[0]), 50, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.AnnealedCopper, 2L), ItemList.Casing_MV.get(1L, new Object[0]), ItemList.Hull_MV.get(1L, new Object[0]), 50, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Gold, 2L), ItemList.Casing_HV.get(1L, new Object[0]), ItemList.Hull_HV.get(1L, new Object[0]), 50, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Aluminium, 2L), ItemList.Casing_EV.get(1L, new Object[0]), ItemList.Hull_EV.get(1L, new Object[0]), 50, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tungsten, 2L), ItemList.Casing_IV.get(1L, new Object[0]), ItemList.Hull_IV.get(1L, new Object[0]), 50, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.Tungsten, 2L), ItemList.Casing_LuV.get(1L, new Object[0]), ItemList.Hull_LuV.get(1L, new Object[0]), 50, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.Osmium, 2L), ItemList.Casing_ZPM.get(1L, new Object[0]), ItemList.Hull_ZPM.get(1L, new Object[0]), 50, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt16, Materials.Osmium, 2L), ItemList.Casing_UV.get(1L, new Object[0]), ItemList.Hull_UV.get(1L, new Object[0]), 50, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Superconductor, 2L), ItemList.Casing_MAX.get(1L, new Object[0]), ItemList.Hull_MAX.get(1L, new Object[0]), 50, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 2L), GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tin, 1L), ItemList.Battery_Hull_LV.get(1L, new Object[0]), 1600, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 6L), GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Copper, 2L), ItemList.Battery_Hull_MV.get(1L, new Object[0]), 2400, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 6L), GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.AnnealedCopper, 2L), ItemList.Battery_Hull_MV.get(1L, new Object[0]), 2400, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 18L), GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Gold, 4L), ItemList.Battery_Hull_HV.get(1L, new Object[0]), 3200, 8); - GT_Values.RA.addAssemblerRecipe(new ItemStack(Items.string, 4, 32767), new ItemStack(Items.slime_ball, 1, 32767), new ItemStack(Items.lead, 2), 200, 2); - GT_Values.RA.addAssemblerRecipe(ItemList.IC2_Compressed_Coal_Ball.get(8L, new Object[0]), new ItemStack(Blocks.brick_block, 1), ItemList.IC2_Compressed_Coal_Chunk.get(1L, new Object[0]), 400, 4); - - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("waterMill", 2L), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), GT_ModHandler.getIC2Item("generator", 1L), 6400, 8); - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("batPack", 1L, 32767), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), ItemList.IC2_ReBattery.get(6L, new Object[0]), 800, 4); - GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.stone_slab, 3, 0), ItemList.RC_Rebar.get(1L, new Object[0]), ItemList.RC_Tie_Stone.get(1L, new Object[0]), 128, 8); - GT_Values.RA.addAssemblerRecipe(new ItemStack(Blocks.stone_slab, 3, 7), ItemList.RC_Rebar.get(1L, new Object[0]), ItemList.RC_Tie_Stone.get(1L, new Object[0]), 128, 8); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Copper, 9L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Lead, 2L), GT_Values.NF, ItemList.RC_ShuntingWire.get(4L, new Object[0]), 1600, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.AnnealedCopper, 9L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Lead, 2L), GT_Values.NF, ItemList.RC_ShuntingWire.get(4L, new Object[0]), 1600, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 3L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Gold, 3L), Materials.Blaze.getMolten(432L), ItemList.RC_Rail_HS.get(8L, new Object[0]), 400, 4); - GT_Values.RA.addAssemblerRecipe(ItemList.RC_Rail_Standard.get(3L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Gold, 3L), Materials.Redstone.getMolten(432L), ItemList.RC_Rail_Adv.get(8L, new Object[0]), 400, 4); - GT_Values.RA.addAssemblerRecipe(ItemList.RC_Rail_Standard.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Copper, 1L), ItemList.RC_Rail_Electric.get(1L, new Object[0]), 50, 4); - GT_Values.RA.addAssemblerRecipe(ItemList.RC_Rail_Standard.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.AnnealedCopper, 1L), ItemList.RC_Rail_Electric.get(1L, new Object[0]), 50, 4); - GT_Values.RA.addAssemblerRecipe(ItemList.RC_Tie_Wood.get(6L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), ItemList.RC_Rail_Wooden.get(6L, new Object[0]), 400, 4); - GT_Values.RA.addAssemblerRecipe(ItemList.RC_Tie_Wood.get(6L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), ItemList.RC_Rail_Wooden.get(6L, new Object[0]), 400, 4); - GT_Values.RA.addAssemblerRecipe(ItemList.RC_Tie_Wood.get(4L, new Object[0]), ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), ItemList.RC_Bed_Wood.get(1L, new Object[0]), 200, 4); - GT_Values.RA.addAssemblerRecipe(ItemList.RC_Tie_Stone.get(4L, new Object[0]), ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), ItemList.RC_Bed_Stone.get(1L, new Object[0]), 200, 4); - for (ItemStack tRail : new ItemStack[] { ItemList.RC_Rail_Standard.get(6L, new Object[0]), ItemList.RC_Rail_Adv.get(6L, new Object[0]), ItemList.RC_Rail_Reinforced.get(6L, new Object[0]), ItemList.RC_Rail_Electric.get(6L, new Object[0]), ItemList.RC_Rail_HS.get(6L, new Object[0]), ItemList.RC_Rail_Wooden.get(6L, new Object[0]) }) { - for (ItemStack tBed : new ItemStack[] { ItemList.RC_Bed_Wood.get(1L, new Object[0]), ItemList.RC_Bed_Stone.get(1L, new Object[0]) }) - { - GT_Values.RA.addAssemblerRecipe(tBed, tRail, GT_ModHandler.getRecipeOutput(new ItemStack[] { tRail, GT_Values.NI, tRail, tRail, tBed, tRail, tRail, GT_Values.NI, tRail }), 400, 4); - GT_Values.RA.addAssemblerRecipe(tBed, tRail, Materials.Redstone.getMolten(144L), GT_ModHandler.getRecipeOutput(new ItemStack[] { tRail, GT_Values.NI, tRail, tRail, tBed, tRail, tRail, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), tRail }), 400, 4); - GT_Values.RA.addAssemblerRecipe(tBed, tRail, Materials.Redstone.getMolten(288L), GT_ModHandler.getRecipeOutput(new ItemStack[] { tRail, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), tRail, tRail, tBed, tRail, tRail, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), tRail }), 400, 4); - } - } - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("carbonFiber", 2L), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), GT_ModHandler.getIC2Item("carbonMesh", 1L), 800, 2); - - GT_Values.RA.addAssemblerRecipe(ItemList.NC_SensorCard.getWildcard(1L, new Object[0]), ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), ItemList.Circuit_Basic.get(3L, new Object[0]), 1600, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 4L), GT_ModHandler.getIC2Item("generator", 1L), GT_ModHandler.getIC2Item("waterMill", 2L), 6400, 8); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 5L), new ItemStack(Blocks.chest, 1, 32767), new ItemStack(Blocks.hopper), 800, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 5L), new ItemStack(Blocks.trapped_chest, 1, 32767), new ItemStack(Blocks.hopper), 800, 2); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 5L), new ItemStack(Blocks.chest, 1, 32767), new ItemStack(Blocks.hopper), 800, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 5L), new ItemStack(Blocks.trapped_chest, 1, 32767), new ItemStack(Blocks.hopper), 800, 2); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Magnalium, 2L), GT_ModHandler.getIC2Item("generator", 1L), GT_ModHandler.getIC2Item("windMill", 1L), 6400, 8); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.EnderPearl, 1L), new ItemStack(Items.blaze_powder, 1, 0), new ItemStack(Items.ender_eye, 1, 0), 400, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.EnderPearl, 6L), new ItemStack(Items.blaze_rod, 1, 0), new ItemStack(Items.ender_eye, 6, 0), 2500, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.gear, Materials.CobaltBrass, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Diamond, 1L), ItemList.Component_Sawblade_Diamond.get(1L, new Object[0]), 1600, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Flint, 5L), new ItemStack(Blocks.tnt, 3, 32767), GT_ModHandler.getIC2Item("industrialTnt", 5L), 800, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gunpowder, 4L), new ItemStack(Blocks.sand, 4, 32767), new ItemStack(Blocks.tnt, 1), 400, 1); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 4L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 4L), new ItemStack(Blocks.redstone_lamp, 1), 400, 1); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), new ItemStack(Blocks.redstone_torch, 1), 400, 1); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 4L), new ItemStack(Items.compass, 1), 400, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 4L), new ItemStack(Items.compass, 1), 400, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Gold, 4L), new ItemStack(Items.clock, 1), 400, 4); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L), new ItemStack(Blocks.torch, 2), 400, 1); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphorus, 1L), new ItemStack(Blocks.torch, 6), 400, 1); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), ItemList.IC2_Resin.get(1L, new Object[0]), new ItemStack(Blocks.torch, 6), 400, 1); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 8L), new ItemStack(Items.flint, 1), ItemList.IC2_Compressed_Coal_Ball.get(1L, new Object[0]), 400, 4); - if(!GT_Mod.gregtechproxy.mDisableIC2Cables){ - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("tinCableItem", 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 1L), GT_ModHandler.getIC2Item("insulatedTinCableItem", 1L), 100, 2); - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("copperCableItem", 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 1L), GT_ModHandler.getIC2Item("insulatedCopperCableItem", 1L), 100, 2); - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("goldCableItem", 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 2L), GT_ModHandler.getIC2Item("insulatedGoldCableItem", 1L), 200, 2); - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("ironCableItem", 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 3L), GT_ModHandler.getIC2Item("insulatedIronCableItem", 1L), 300, 2); - } - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Wood, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), new ItemStack(Items.wooden_sword, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Stone, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), new ItemStack(Items.stone_sword, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), new ItemStack(Items.iron_sword, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), new ItemStack(Items.golden_sword, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Diamond, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), new ItemStack(Items.diamond_sword, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Bronze, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), ItemList.Tool_Sword_Bronze.getUndamaged(1L, new Object[0]), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), ItemList.Tool_Sword_Steel.getUndamaged(1L, new Object[0]), 100, 16); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Wood, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.wooden_pickaxe, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Stone, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.stone_pickaxe, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.iron_pickaxe, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.golden_pickaxe, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Diamond, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.diamond_pickaxe, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Bronze, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), ItemList.Tool_Pickaxe_Bronze.getUndamaged(1L, new Object[0]), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), ItemList.Tool_Pickaxe_Steel.getUndamaged(1L, new Object[0]), 100, 16); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Wood, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.wooden_shovel, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Stone, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.stone_shovel, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.iron_shovel, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.golden_shovel, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Diamond, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.diamond_shovel, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Bronze, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), ItemList.Tool_Shovel_Bronze.getUndamaged(1L, new Object[0]), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), ItemList.Tool_Shovel_Steel.getUndamaged(1L, new Object[0]), 100, 16); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Wood, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.wooden_axe, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Stone, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.stone_axe, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.iron_axe, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.golden_axe, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Diamond, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.diamond_axe, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Bronze, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), ItemList.Tool_Axe_Bronze.getUndamaged(1L, new Object[0]), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), ItemList.Tool_Axe_Steel.getUndamaged(1L, new Object[0]), 100, 16); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Wood, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.wooden_hoe, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Stone, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.stone_hoe, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.iron_hoe, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.golden_hoe, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Diamond, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), new ItemStack(Items.diamond_hoe, 1), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Bronze, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), ItemList.Tool_Hoe_Bronze.getUndamaged(1L, new Object[0]), 100, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 2L), ItemList.Tool_Hoe_Steel.getUndamaged(1L, new Object[0]), 100, 16); - - GT_ModHandler.removeRecipe(new ItemStack[] { new ItemStack(Items.lava_bucket), ItemList.Cell_Empty.get(1L, new Object[0]) }); - GT_ModHandler.removeRecipe(new ItemStack[] { new ItemStack(Items.water_bucket), ItemList.Cell_Empty.get(1L, new Object[0]) }); - - GT_ModHandler.removeFurnaceSmelting(ItemList.IC2_Resin.get(1L, new Object[0])); - - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.golden_apple, 1, 1), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(9216L), new ItemStack(Items.gold_ingot, 64), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 9216, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.golden_apple, 1, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), new ItemStack(Items.gold_ingot, 7), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 9216, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.golden_carrot, 1, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), new ItemStack(Items.gold_nugget, 6), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 9216, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.speckled_melon, 1, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), new ItemStack(Items.gold_nugget, 6), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 9216, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.mushroom_stew, 16, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), new ItemStack(Items.bowl, 16, 0), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.apple, 32, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.bread, 64, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.porkchop, 12, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.cooked_porkchop, 16, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.beef, 12, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.cooked_beef, 16, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.fish, 12, 32767), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.cooked_fished, 16, 32767), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.chicken, 12, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.cooked_chicken, 16, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.melon, 64, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Blocks.pumpkin, 16, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.rotten_flesh, 16, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.spider_eye, 32, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.carrot, 16, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(ItemList.Food_Raw_Potato.get(16L, new Object[0]), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(ItemList.Food_Poisonous_Potato.get(12L, new Object[0]), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(ItemList.Food_Baked_Potato.get(24L, new Object[0]), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.cookie, 64, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.cake, 8, 0), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Blocks.brown_mushroom_block, 12, 32767), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Blocks.red_mushroom_block, 12, 32767), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Blocks.brown_mushroom, 32, 32767), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Blocks.red_mushroom, 32, 32767), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.nether_wart, 32, 32767), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(GT_ModHandler.getIC2Item("terraWart", 16L), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(GT_ModHandler.getModItem("TwilightForest", "item.meefRaw", 12L, 32767), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(GT_ModHandler.getModItem("TwilightForest", "item.meefSteak", 16L, 32767), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(GT_ModHandler.getModItem("TwilightForest", "item.venisonRaw", 12L, 32767), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - GT_Values.RA.addCentrifugeRecipe(GT_ModHandler.getModItem("TwilightForest", "item.venisonCooked", 16L, 32767), GT_Values.NI, GT_Values.NF, Materials.Methane.getGas(1152L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 4608, 5); - - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Blocks.sand, 1, 1), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Diamond, 1L), new ItemStack(Blocks.sand, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { 5000, 100, 5000 }, 50, 30); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Blocks.dirt, 1, 32767), GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.IC2_Plantball.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Clay, 1L), new ItemStack(Blocks.sand, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { 1250, 5000, 5000 }, 250, 30); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Blocks.grass, 1, 32767), GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.IC2_Plantball.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Clay, 1L), new ItemStack(Blocks.sand, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { 2500, 5000, 5000 }, 250, 30); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Blocks.mycelium, 1, 32767), GT_Values.NI, GT_Values.NF, GT_Values.NF, new ItemStack(Blocks.brown_mushroom, 1), new ItemStack(Blocks.red_mushroom, 1), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Clay, 1L), new ItemStack(Blocks.sand, 1), GT_Values.NI, GT_Values.NI, new int[] { 2500, 2500, 5000, 5000 }, 650, 30); - GT_Values.RA.addCentrifugeRecipe(ItemList.IC2_Resin.get(1L, new Object[0]), GT_Values.NI, GT_Values.NF, Materials.Glue.getFluid(100L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Rubber, 2L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plastic, 1L), ItemList.IC2_Plantball.get(1L, new Object[0]), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { 10000, 5000, 5000 }, 300, 5); - GT_Values.RA.addCentrifugeRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2L), 0, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 1L), ItemList.TE_Slag.get(1L, new Object[] { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 1L) }), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, 250); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Items.magma_cream, 1), 0, new ItemStack(Items.blaze_powder, 1), new ItemStack(Items.slime_ball, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, 500); - GT_Values.RA.addCentrifugeRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Uranium, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Uranium235, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Plutonium, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { 2000, 200 }, 800, 320); - GT_Values.RA.addCentrifugeRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plutonium, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Plutonium241, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Uranium, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { 2000, 3000 }, 1600, 320); - GT_Values.RA.addCentrifugeRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.NaquadahEnriched, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Naquadria, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { 5000, 1000 }, 3200, 320); - GT_Values.RA.addCentrifugeRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NaquadahEnriched, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Naquadria, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Naquadah, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { 2000, 3000 }, 6400, 640); - GT_Values.RA.addCentrifugeRecipe(GT_Values.NI, GT_Values.NI, Materials.Hydrogen.getGas(160L), Materials.Deuterium.getGas(40L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 160, 20); - GT_Values.RA.addCentrifugeRecipe(GT_Values.NI, GT_Values.NI, Materials.Deuterium.getGas(160L), Materials.Tritium.getGas(40L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 160, 80); - GT_Values.RA.addCentrifugeRecipe(GT_Values.NI, GT_Values.NI, Materials.Helium.getGas(80L), Materials.Helium_3.getGas(5L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 160, 80); - GT_Values.RA.addCentrifugeRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Redstone, 2L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Gold, 2L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 488, 80); - GT_Values.RA.addCentrifugeRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Endstone, 1L), GT_Values.NI, GT_Values.NF, Materials.Helium.getGas(120L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tungsten, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Platinum, 1L), new ItemStack(Blocks.sand, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { 625, 625, 9000, 0, 0, 0 }, 320, 20); - GT_Values.RA.addCentrifugeRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Netherrack, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Redstone, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Sulfur, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Coal, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Gold, 1L), GT_Values.NI, GT_Values.NI, new int[] { 5625, 9900, 5625, 625, 0, 0 }, 160, 20); - GT_Values.RA.addCentrifugeRecipe(new ItemStack(Blocks.soul_sand, 1), GT_Values.NI, GT_Values.NF, Materials.Oil.getFluid(80L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Saltpeter, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Coal, 1L), new ItemStack(Blocks.sand, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { 8000, 2000, 9000, 0, 0, 0 }, 200, 80); - GT_Values.RA.addCentrifugeRecipe(GT_Values.NI, GT_Values.NI, Materials.Lava.getFluid(100L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Copper, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Tin, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Silver, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Tantalum, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tungsten, 1L), new int[] { 2000, 1000, 250, 250, 250, 125 }, 80, 80); - GT_Values.RA.addCentrifugeRecipe(GT_Values.NI, GT_Values.NI,FluidRegistry.getFluidStack("ic2pahoehoelava", 100), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Copper, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Tin, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Silver, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Tantalum, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tungsten, 1L), new int[] { 2000, 1000, 250, 250, 250, 125 }, 40, 80); - - GT_Values.RA.addCentrifugeRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RareEarth, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Neodymium, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Yttrium, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Lanthanum, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Cerium, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Cadmium, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Caesium, 1L), new int[] { 2500, 2500, 2500, 2500, 2500, 2500 }, 64, 20); - GT_Values.RA.addCentrifugeRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 45), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.BasalticMineralSand, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Olivine, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Obsidian, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Basalt, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Flint, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.RareEarth, 1L), new int[] { 2000, 2000, 2000, 2000, 2000, 2000 }, 64, 20); - - GT_Utility.removeSimpleIC2MachineRecipe(new ItemStack(Blocks.cobblestone), GT_ModHandler.getMaceratorRecipeList(), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L)); - GT_Utility.removeSimpleIC2MachineRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Lapis, 1L), GT_ModHandler.getMaceratorRecipeList(), ItemList.IC2_Plantball.get(1L, new Object[0])); - GT_Utility.removeSimpleIC2MachineRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), GT_ModHandler.getMaceratorRecipeList(), ItemList.IC2_Plantball.get(1L, new Object[0])); - GT_Utility.removeSimpleIC2MachineRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L), GT_ModHandler.getMaceratorRecipeList(), ItemList.IC2_Plantball.get(1L, new Object[0])); - - if (GregTech_API.sThaumcraftCompat != null) - { - String tKey = "GT_WOOD_TO_CHARCOAL"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "You have discovered a way of making charcoal magically instead of using regular ovens for this purpose.

To create charcoal from wood you first need an air-free environment, some vacuus essentia is needed for that, then you need to incinerate the wood using ignis essentia and wait until all the water inside the wood is burned away.

This method however doesn't create creosote oil as byproduct."); - - GregTech_API.sThaumcraftCompat.addResearch(tKey, "Charcoal Transmutation", "Turning wood into charcoal", new String[] { "ALUMENTUM" }, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Charcoal, 1L), 2, 0, 13, 5, Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 10L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 8L) }), null, new Object[] { "gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.log.get(Materials.Wood), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Charcoal, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })) }); - - tKey = "GT_FILL_WATER_BUCKET"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "You have discovered a way of filling a bucket with aqua essentia in order to simply get water."); - GregTech_API.sThaumcraftCompat.addResearch(tKey, "Water Transmutation", "Filling buckets with water", null, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.bucket, Materials.Water, 1L), 2, 0, 16, 5, Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 4L) }), null, new Object[] { "gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, GT_OreDictUnificator.get(OrePrefixes.bucket, Materials.Empty, 1L), GT_OreDictUnificator.get(OrePrefixes.bucket, Materials.Water, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 4L) })), GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, GT_OreDictUnificator.get(OrePrefixes.capsule, Materials.Empty, 1L), GT_OreDictUnificator.get(OrePrefixes.capsule, Materials.Water, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 4L) })), GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Empty, 1L), GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Water, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 4L) })) }); - - tKey = "GT_TRANSZINC"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "You have discovered a way to multiply zinc by steeping zinc nuggets in metallum harvested from other metals."); - GregTech_API.sThaumcraftCompat.addResearch(tKey, "Zinc Transmutation", "Transformation of metals into zinc", new String[] { "TRANSTIN" }, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Zinc, 1L), 2, 1, 9, 13, Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 3L) }), null, new Object[] { "gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Zinc), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Zinc, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L) })) }); - - tKey = "GT_TRANSANTIMONY"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "You have discovered a way to multiply antimony by steeping antimony nuggets in metallum harvested from other metals."); - GregTech_API.sThaumcraftCompat.addResearch(tKey, "Antimony Transmutation", "Transformation of metals into antimony", new String[] { "GT_TRANSZINC", "TRANSLEAD" }, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Antimony, 1L), 2, 1, 9, 14, Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 3L) }), null, new Object[] { "gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Antimony), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Antimony, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L) })) }); - - tKey = "GT_TRANSNICKEL"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "You have discovered a way to multiply nickel by steeping nickel nuggets in metallum harvested from other metals."); - GregTech_API.sThaumcraftCompat.addResearch(tKey, "Nickel Transmutation", "Transformation of metals into nickel", new String[] { "TRANSLEAD" }, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Nickel, 1L), 2, 1, 9, 15, Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 3L) }), null, new Object[] { "gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Nickel), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Nickel, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })) }); - - tKey = "GT_TRANSCOBALT"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "You have discovered a way to multiply cobalt by steeping cobalt nuggets in metallum harvested from other metals."); - GregTech_API.sThaumcraftCompat.addResearch(tKey, "Cobalt Transmutation", "Transformation of metals into cobalt", new String[] { "GT_TRANSNICKEL" }, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Cobalt, 1L), 2, 1, 9, 16, Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 3L) }), null, new Object[] { "gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Cobalt), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Cobalt, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1L) })) }); - - tKey = "GT_TRANSBISMUTH"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "You have discovered a way to multiply bismuth by steeping bismuth nuggets in metallum harvested from other metals."); - GregTech_API.sThaumcraftCompat.addResearch(tKey, "Bismuth Transmutation", "Transformation of metals into bismuth", new String[] { "GT_TRANSCOBALT" }, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Bismuth, 1L), 2, 1, 11, 17, Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 3L) }), null, new Object[] { "gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Bismuth), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Bismuth, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1L) })) }); - - tKey = "GT_IRON_TO_STEEL"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "You have discovered a way of making Iron harder by just re-ordering its components.

This Method can be used to create a Material called Steel, which is used in many non-Thaumaturgic applications."); - GregTech_API.sThaumcraftCompat.addResearch(tKey, "Steel Transmutation", "Transforming iron to steel", new String[] { "TRANSIRON", "GT_WOOD_TO_CHARCOAL" }, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Steel, 1L), 3, 0, 13, 8, Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3L) }), null, new Object[] { "gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Iron), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Steel, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 1L) })) }); - - tKey = "GT_TRANSBRONZE"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "You have discovered a way of creating Alloys using the already known transmutations of Copper and Tin.

This Method can be used to create a Bronze directly without having to go through an alloying process."); - GregTech_API.sThaumcraftCompat.addResearch(tKey, "Bronze Transmutation", "Transformation of metals into bronze", new String[] { "TRANSTIN", "TRANSCOPPER" }, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Bronze, 1L), 2, 0, 13, 11, Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 3L) }), null, new Object[] { "gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Bronze), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Bronze, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1L) })) }); - - tKey = "GT_TRANSELECTRUM"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "Your discovery of Bronze Transmutation has lead you to the conclusion it works with other Alloys such as Electrum as well."); - GregTech_API.sThaumcraftCompat.addResearch(tKey, "Electrum Transmutation", "Transformation of metals into electrum", new String[] { "GT_TRANSBRONZE", "TRANSGOLD", "TRANSSILVER" }, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Electrum, 1L), 2, 1, 11, 11, Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 3L) }), null, new Object[] { "gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Electrum), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Electrum, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L) })) }); - - tKey = "GT_TRANSBRASS"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "Your discovery of Bronze Transmutation has lead you to the conclusion it works with other Alloys such as Brass as well."); - GregTech_API.sThaumcraftCompat.addResearch(tKey, "Brass Transmutation", "Transformation of metals into brass", new String[] { "GT_TRANSBRONZE", "GT_TRANSZINC" }, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Brass, 1L), 2, 1, 11, 12, Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 3L) }), null, new Object[] { "gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Brass), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Brass, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1L) })) }); - - tKey = "GT_TRANSINVAR"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "Your discovery of Bronze Transmutation has lead you to the conclusion it works with other Alloys such as Invar as well."); - GregTech_API.sThaumcraftCompat.addResearch(tKey, "Invar Transmutation", "Transformation of metals into invar", new String[] { "GT_TRANSBRONZE", "GT_TRANSNICKEL" }, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Invar, 1L), 2, 1, 11, 15, Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 3L) }), null, new Object[] { "gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Invar), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Invar, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L) })) }); - - tKey = "GT_TRANSCUPRONICKEL"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "Your discovery of Bronze Transmutation has lead you to the conclusion it works with other Alloys such as Cupronickel as well."); - GregTech_API.sThaumcraftCompat.addResearch(tKey, "Cupronickel Transmutation", "Transformation of metals into cupronickel", new String[] { "GT_TRANSBRONZE", "GT_TRANSNICKEL" }, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Cupronickel, 1L), 2, 1, 11, 16, Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 3L) }), null, new Object[] { "gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Cupronickel), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Cupronickel, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })) }); - - tKey = "GT_TRANSBATTERYALLOY"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "Your discovery of Bronze Transmutation has lead you to the conclusion it works with other Alloys such as Battery Alloy as well."); - GregTech_API.sThaumcraftCompat.addResearch(tKey, "Battery Alloy Transmutation", "Transformation of metals into battery alloy", new String[] { "GT_TRANSBRONZE", "GT_TRANSANTIMONY" }, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.BatteryAlloy, 1L), 2, 1, 11, 13, Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 3L) }), null, new Object[] { "gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.BatteryAlloy), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.BatteryAlloy, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 1L) })) }); - - tKey = "GT_TRANSSOLDERINGALLOY"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "Your discovery of Bronze Transmutation has lead you to the conclusion it works with other Alloys such as Soldering Alloy as well."); - GregTech_API.sThaumcraftCompat.addResearch(tKey, "Soldering Alloy Transmutation", "Transformation of metals into soldering alloy", new String[] { "GT_TRANSBRONZE", "GT_TRANSANTIMONY" }, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.SolderingAlloy, 1L), 2, 1, 11, 14, Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 3L) }), null, new Object[] { "gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.SolderingAlloy), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.SolderingAlloy, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L) })) }); - - tKey = "GT_ADVANCEDMETALLURGY"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "Now that you have discovered all the basic metals, you can finally move on to the next Level of magic metallurgy and create more advanced metals"); - GregTech_API.sThaumcraftCompat.addResearch(tKey, "Advanced Metallurgic Transmutation", "Mastering the basic metals", new String[] { "GT_TRANSBISMUTH", "GT_IRON_TO_STEEL", "GT_TRANSSOLDERINGALLOY", "GT_TRANSBATTERYALLOY", "GT_TRANSBRASS", "GT_TRANSELECTRUM", "GT_TRANSCUPRONICKEL", "GT_TRANSINVAR" }, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), 3, 0, 16, 14, Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 50L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 20L), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 20L), new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTIO, 20L), new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 20L), new TC_Aspects.TC_AspectStack(TC_Aspects.MAGNETO, 20L) }), null, new Object[] { "gt.research.page.1." + tKey }); - - tKey = "GT_TRANSALUMINIUM"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "You have discovered a way to multiply aluminium by steeping aluminium nuggets in metallum harvested from other metals.

This transmutation is slightly harder to achieve, because aluminium has special properties, which require more order to achieve the desired result."); - GregTech_API.sThaumcraftCompat.addResearch(tKey, "Aluminium Transmutation", "Transformation of metals into aluminium", new String[] { "GT_ADVANCEDMETALLURGY" }, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Aluminium, 1L), 4, 0, 19, 14, Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.VOLATUS, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 3L) }), null, new Object[] { "gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.nugget.get(Materials.Aluminium), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Aluminium, 3L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.VOLATUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L) })) }); - - tKey = "GT_CRYSTALLISATION"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "Sometimes when processing your Crystal Shards they become a pile of Dust instead of the mostly required Shard.

You have finally found a way to reverse this Process by using Vitreus Essentia for recrystallising the Shards."); - GregTech_API.sThaumcraftCompat.addResearch(tKey, "Shard Recrystallisation", "Fixing your precious crystals", new String[] { "ALCHEMICALMANUFACTURE" }, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedOrder, 1L), 3, 0, -11, -3, Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3L) }), null, new Object[] { "gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.dust.get(Materials.Amber), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Amber, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L) })), GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.dust.get(Materials.InfusedOrder), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedOrder, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L) })), GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.dust.get(Materials.InfusedEntropy), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedEntropy, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L) })), GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.dust.get(Materials.InfusedAir), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedAir, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L) })), GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.dust.get(Materials.InfusedEarth), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedEarth, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L) })), GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.dust.get(Materials.InfusedFire), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedFire, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L) })), GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.dust.get(Materials.InfusedWater), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedWater, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L) })) }); - - tKey = "GT_MAGICENERGY"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, - "While trying to find new ways to integrate magic into your industrial factories, you have discovered a way to convert magical energy into electrical power."); - GregTech_API.sThaumcraftCompat.addResearch(tKey, - "Magic Energy Conversion", - "Magic to Power", - new String[] {"ARCANEBORE"}, - "ARTIFICE", - ItemList.MagicEnergyConverter_LV.get(1L, new Object[0]), - 3, 0, -3, 10, - Arrays.asList(new TC_Aspects.TC_AspectStack[] { - new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 20L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)}), - null, new Object[] { "gt.research.page.1." + tKey, - GregTech_API.sThaumcraftCompat.addInfusionRecipe(tKey, - ItemList.Hull_LV.get(1L, new Object[0]), - new ItemStack[]{ - new ItemStack(Blocks.beacon), - GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Advanced, 1L), - GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Thaumium, 1L), - ItemList.Sensor_MV.get(2L, new Object[0]), - GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Advanced, 1L), - GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Thaumium, 1L), - ItemList.Sensor_MV.get(2L, new Object[0]) - }, - ItemList.MagicEnergyConverter_LV.get(1L, new Object[0]), - 5, - Arrays.asList(new TC_Aspects.TC_AspectStack[] { - new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 32L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), - new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 32L) }))}); - - tKey = "GT_MAGICENERGY2"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, - "Attempts to increase the output of your Magic Energy generators have resulted in significant improvements."); - GregTech_API.sThaumcraftCompat.addResearch(tKey, - "Adept Magic Energy Conversion", - "Magic to Power", - new String[] {"GT_MAGICENERGY"}, - "ARTIFICE", - ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]), - 1, 1, -4, 12, - Arrays.asList(new TC_Aspects.TC_AspectStack[] { - new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 20L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)}), - null, new Object[] { "gt.research.page.1." + tKey, - GregTech_API.sThaumcraftCompat.addInfusionRecipe(tKey, - ItemList.Hull_MV.get(1L, new Object[0]), - new ItemStack[]{ - new ItemStack(Blocks.beacon), - GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Data, 1L), - GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Thaumium, 1L), - ItemList.Sensor_HV.get(2L, new Object[0]), - GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Data, 1L), - GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Iridium, 1L), - ItemList.Sensor_HV.get(2L, new Object[0]) - }, - ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]), - 6, - Arrays.asList(new TC_Aspects.TC_AspectStack[] { - new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L), - new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 64L) }))}); - - tKey = "GT_MAGICENERGY3"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, - "Attempts to further increase the output of your Magic Energy generators have resulted in great improvements."); - GregTech_API.sThaumcraftCompat.addResearch(tKey, - "Master Magic Energy Conversion", - "Magic to Power", - new String[] {"GT_MAGICENERGY2"}, - "ARTIFICE", - ItemList.MagicEnergyConverter_HV.get(1L, new Object[0]), - 1, 1, -4, 14, - Arrays.asList(new TC_Aspects.TC_AspectStack[] { - new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 20L), - new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 20L), - new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 40L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 20L)}), - null, new Object[] { "gt.research.page.1." + tKey, - GregTech_API.sThaumcraftCompat.addInfusionRecipe(tKey, - ItemList.Hull_HV.get(1L, new Object[0]), - new ItemStack[]{ - new ItemStack(Blocks.beacon), - GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Elite, 1L), - GT_OreDictUnificator.get(OrePrefixes.plateDouble,Materials.Thaumium, 1L), - ItemList.Field_Generator_MV.get(1L, new Object[0]), - GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Elite, 1L), - GT_OreDictUnificator.get(OrePrefixes.plateDouble,Materials.Europium, 1L), - ItemList.Field_Generator_MV.get(1L, new Object[0]) - }, - ItemList.MagicEnergyConverter_HV.get(1L, new Object[0]), - 8, - Arrays.asList(new TC_Aspects.TC_AspectStack[] { - new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 128L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L), - new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 128L) }))}); - - - - - tKey = "GT_MAGICABSORB"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, - "Research into magical energy conversion methods has identified a way to convert surrounding energies into electrical power."); - GregTech_API.sThaumcraftCompat.addResearch(tKey, - "Magic Energy Absorption", - "Harvesting Magic", - new String[] {"GT_MAGICENERGY"}, - "ARTIFICE", - ItemList.MagicEnergyAbsorber_LV.get(1L, new Object[0]), - 3, 0, -2, 12, - Arrays.asList(new TC_Aspects.TC_AspectStack[] { - new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 20L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)}), - null, new Object[] { "gt.research.page.1." + tKey, - GregTech_API.sThaumcraftCompat.addInfusionRecipe(tKey, - ItemList.Hull_LV.get(1L, new Object[0]), - new ItemStack[]{ - ItemList.MagicEnergyConverter_LV.get(1L, new Object[0]), - GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Advanced, 1L), - GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Thaumium, 1L), - ItemList.Sensor_MV.get(2L, new Object[0]) - }, - ItemList.MagicEnergyAbsorber_LV.get(1L, new Object[0]), - 6, - Arrays.asList(new TC_Aspects.TC_AspectStack[] { - new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 32L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L), - new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 32L), - new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 16L), - new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 32L), - new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 4L) }))}); - - tKey = "GT_MAGICABSORB2"; - GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, - "Moar output! Drain all the Magic!"); - GregTech_API.sThaumcraftCompat.addResearch(tKey, - "Improved Magic Energy Absorption", - "Harvesting Magic", - new String[] {"GT_MAGICABSORB"}, - "ARTIFICE", - ItemList.MagicEnergyAbsorber_EV.get(1L, new Object[0]), - 3, 1, -2, 14, - Arrays.asList(new TC_Aspects.TC_AspectStack[] { - new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 20L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)}), - null, new Object[] { "gt.research.page.1." + tKey, - GregTech_API.sThaumcraftCompat.addInfusionRecipe(tKey, - ItemList.Hull_MV.get(1L, new Object[0]), - new ItemStack[]{ - ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]), - GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Advanced, 1L), - GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Thaumium, 1L), - ItemList.Sensor_HV.get(2L, new Object[0]), - GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Advanced, 1L), - GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Thaumium, 1L) - }, - ItemList.MagicEnergyAbsorber_MV.get(1L, new Object[0]), - 6, - Arrays.asList(new TC_Aspects.TC_AspectStack[] { - new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L), - new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 64L), - new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 32L), - new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 64L), - new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 8L) })) - - - - , GregTech_API.sThaumcraftCompat.addInfusionRecipe(tKey, - ItemList.Hull_HV.get(1L, new Object[0]), - new ItemStack[]{ - ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]), - GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Elite, 1L), - GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1, 16), - ItemList.Field_Generator_MV.get(1L, new Object[0]), - GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Elite, 1L), - GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1, 16) - }, - ItemList.MagicEnergyAbsorber_HV.get(1L, new Object[0]), - 8, - Arrays.asList(new TC_Aspects.TC_AspectStack[] { - new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 128L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L), - new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 128L), - new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 64L), - new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 128L), - new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 16L) })) - - - ,GregTech_API.sThaumcraftCompat.addInfusionRecipe(tKey, - ItemList.Hull_EV.get(1L, new Object[0]), - new ItemStack[]{ - ItemList.MagicEnergyConverter_HV.get(1L, new Object[0]), - GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Master, 1L), - GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1, 16), - ItemList.Field_Generator_HV.get(1L, new Object[0]), - GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Master, 1L), - GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1, 16) - }, - ItemList.MagicEnergyAbsorber_EV.get(1L, new Object[0]), - 10, - Arrays.asList(new TC_Aspects.TC_AspectStack[] { - new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 256L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 128L), - new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 256L), - new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 128L), - new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 256L), - new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 64L) })) - }); - - } - for (MaterialStack[] tMats : this.mAlloySmelterList) - { - ItemStack tDust1 = GT_OreDictUnificator.get(OrePrefixes.dust, tMats[0].mMaterial, tMats[0].mAmount); - ItemStack tDust2 = GT_OreDictUnificator.get(OrePrefixes.dust, tMats[1].mMaterial, tMats[1].mAmount); - ItemStack tIngot1 = GT_OreDictUnificator.get(OrePrefixes.ingot, tMats[0].mMaterial, tMats[0].mAmount); - ItemStack tIngot2 = GT_OreDictUnificator.get(OrePrefixes.ingot, tMats[1].mMaterial, tMats[1].mAmount); - ItemStack tOutputIngot = GT_OreDictUnificator.get(OrePrefixes.ingot, tMats[2].mMaterial, tMats[2].mAmount); - if (tOutputIngot != GT_Values.NI) - { - GT_ModHandler.addAlloySmelterRecipe(tIngot1, tDust2, tOutputIngot, (int)tMats[2].mAmount * 50, 16, false); - GT_ModHandler.addAlloySmelterRecipe(tIngot1, tIngot2, tOutputIngot, (int)tMats[2].mAmount * 50, 16, false); - GT_ModHandler.addAlloySmelterRecipe(tDust1, tIngot2, tOutputIngot, (int)tMats[2].mAmount * 50, 16, false); - GT_ModHandler.addAlloySmelterRecipe(tDust1, tDust2, tOutputIngot, (int)tMats[2].mAmount * 50, 16, false); - } - } - } - - private final MaterialStack[][] mAlloySmelterList = { { new MaterialStack(Materials.Tetrahedrite, 3L), new MaterialStack(Materials.Tin, 1L), new MaterialStack(Materials.Bronze, 3L) }, { new MaterialStack(Materials.Tetrahedrite, 3L), new MaterialStack(Materials.Zinc, 1L), new MaterialStack(Materials.Brass, 3L) }, { new MaterialStack(Materials.Copper, 3L), new MaterialStack(Materials.Tin, 1L), new MaterialStack(Materials.Bronze, 4L) }, { new MaterialStack(Materials.Copper, 3L), new MaterialStack(Materials.Zinc, 1L), new MaterialStack(Materials.Brass, 4L) }, { new MaterialStack(Materials.Copper, 1L), new MaterialStack(Materials.Nickel, 1L), new MaterialStack(Materials.Cupronickel, 2L) }, { new MaterialStack(Materials.Copper, 1L), new MaterialStack(Materials.Redstone, 4L), new MaterialStack(Materials.RedAlloy, 1L) }, { new MaterialStack(Materials.AnnealedCopper, 3L), new MaterialStack(Materials.Tin, 1L), new MaterialStack(Materials.Bronze, 4L) }, { new MaterialStack(Materials.AnnealedCopper, 3L), new MaterialStack(Materials.Zinc, 1L), new MaterialStack(Materials.Brass, 4L) }, { new MaterialStack(Materials.AnnealedCopper, 1L), new MaterialStack(Materials.Nickel, 1L), new MaterialStack(Materials.Cupronickel, 2L) }, { new MaterialStack(Materials.AnnealedCopper, 1L), new MaterialStack(Materials.Redstone, 4L), new MaterialStack(Materials.RedAlloy, 1L) }, { new MaterialStack(Materials.Iron, 1L), new MaterialStack(Materials.Tin, 1L), new MaterialStack(Materials.TinAlloy, 2L) }, { new MaterialStack(Materials.WroughtIron, 1L), new MaterialStack(Materials.Tin, 1L), new MaterialStack(Materials.TinAlloy, 2L) }, { new MaterialStack(Materials.Iron, 2L), new MaterialStack(Materials.Nickel, 1L), new MaterialStack(Materials.Invar, 3L) }, { new MaterialStack(Materials.WroughtIron, 2L), new MaterialStack(Materials.Nickel, 1L), new MaterialStack(Materials.Invar, 3L) }, { new MaterialStack(Materials.Tin, 9L), new MaterialStack(Materials.Antimony, 1L), new MaterialStack(Materials.SolderingAlloy, 10L) }, { new MaterialStack(Materials.Lead, 4L), new MaterialStack(Materials.Antimony, 1L), new MaterialStack(Materials.BatteryAlloy, 5L) }, { new MaterialStack(Materials.Gold, 1L), new MaterialStack(Materials.Silver, 1L), new MaterialStack(Materials.Electrum, 2L) }, { new MaterialStack(Materials.Magnesium, 1L), new MaterialStack(Materials.Aluminium, 2L), new MaterialStack(Materials.Magnalium, 3L) }, { new MaterialStack(Materials.Silver, 1L), new MaterialStack(Materials.Nikolite, 4L), new MaterialStack(Materials.BlueAlloy, 1L) } }; } diff --git a/src/main/java/gregtech/loaders/postload/GT_MinableRegistrator.java b/src/main/java/gregtech/loaders/postload/GT_MinableRegistrator.java index 46fb2aab..b96f0170 100644 --- a/src/main/java/gregtech/loaders/postload/GT_MinableRegistrator.java +++ b/src/main/java/gregtech/loaders/postload/GT_MinableRegistrator.java @@ -2,16 +2,13 @@ package gregtech.loaders.postload; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; -import java.io.PrintStream; import net.minecraft.init.Blocks; public class GT_MinableRegistrator - implements Runnable -{ - public void run() - { - GT_Log.out.println("GT_Mod: Adding Blocks to the Miners Valuable List."); - GT_ModHandler.addValuableOre(Blocks.glowstone, 0, 1); - GT_ModHandler.addValuableOre(Blocks.soul_sand, 0, 1); - } + implements Runnable { + public void run() { + GT_Log.out.println("GT_Mod: Adding Blocks to the Miners Valuable List."); + GT_ModHandler.addValuableOre(Blocks.glowstone, 0, 1); + GT_ModHandler.addValuableOre(Blocks.soul_sand, 0, 1); + } } diff --git a/src/main/java/gregtech/loaders/postload/GT_RecyclerBlacklistLoader.java b/src/main/java/gregtech/loaders/postload/GT_RecyclerBlacklistLoader.java index e90c65b6..e31cc399 100644 --- a/src/main/java/gregtech/loaders/postload/GT_RecyclerBlacklistLoader.java +++ b/src/main/java/gregtech/loaders/postload/GT_RecyclerBlacklistLoader.java @@ -2,63 +2,53 @@ package gregtech.loaders.postload; import gregtech.api.GregTech_API; import gregtech.api.enums.ConfigCategories; -import gregtech.api.enums.ConfigCategories.Recipes; import gregtech.api.enums.ItemList; -import gregtech.api.util.GT_Config; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; - -import java.io.PrintStream; - import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class GT_RecyclerBlacklistLoader - implements Runnable -{ - public void run() - { - GT_Log.out.println("GT_Mod: Adding Stuff to the Recycler Blacklist."); - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "easymobgrinderrecycling", true)) - { - GT_ModHandler.addToRecyclerBlackList(new ItemStack(Items.arrow, 1, 0)); - GT_ModHandler.addToRecyclerBlackList(new ItemStack(Items.bone, 1, 0)); - GT_ModHandler.addToRecyclerBlackList(ItemList.Dye_Bonemeal.get(1L, new Object[0])); - + implements Runnable { + public void run() { + GT_Log.out.println("GT_Mod: Adding Stuff to the Recycler Blacklist."); + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "easymobgrinderrecycling", true)) { + GT_ModHandler.addToRecyclerBlackList(new ItemStack(Items.arrow, 1, 0)); + GT_ModHandler.addToRecyclerBlackList(new ItemStack(Items.bone, 1, 0)); + GT_ModHandler.addToRecyclerBlackList(ItemList.Dye_Bonemeal.get(1L, new Object[0])); - GT_ModHandler.addToRecyclerBlackList(new ItemStack(Items.rotten_flesh, 1, 0)); - - GT_ModHandler.addToRecyclerBlackList(new ItemStack(Items.string, 1, 0)); - + GT_ModHandler.addToRecyclerBlackList(new ItemStack(Items.rotten_flesh, 1, 0)); - GT_ModHandler.addToRecyclerBlackList(new ItemStack(Items.egg, 1, 0)); + + GT_ModHandler.addToRecyclerBlackList(new ItemStack(Items.string, 1, 0)); + + + GT_ModHandler.addToRecyclerBlackList(new ItemStack(Items.egg, 1, 0)); + } + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "easystonerecycling", true)) { + ItemStack tStack = new ItemStack(Blocks.cobblestone, 1, 0); + while (tStack != null) { + GT_ModHandler.addToRecyclerBlackList(tStack); + tStack = GT_ModHandler.getRecipeOutput(new ItemStack[]{tStack, tStack, tStack, tStack, tStack, tStack, tStack, tStack, tStack}); + } + GT_ModHandler.addToRecyclerBlackList(new ItemStack(Blocks.cobblestone_wall, 1, 32767)); + GT_ModHandler.addToRecyclerBlackList(new ItemStack(Blocks.sandstone_stairs, 1, 32767)); + GT_ModHandler.addToRecyclerBlackList(new ItemStack(Blocks.stone_stairs, 1, 32767)); + GT_ModHandler.addToRecyclerBlackList(new ItemStack(Blocks.stone_brick_stairs, 1, 32767)); + GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getSmeltingOutput(new ItemStack(Blocks.stone, 1, 0), false, null)); + GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack[]{new ItemStack(Blocks.glass, 1, 0), null, null, new ItemStack(Blocks.glass, 1, 0)})); + GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack[]{new ItemStack(Blocks.stone, 1, 0), null, null, new ItemStack(Blocks.stone, 1, 0)})); + GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack[]{new ItemStack(Blocks.cobblestone, 1, 0), null, null, new ItemStack(Blocks.cobblestone, 1, 0)})); + GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack[]{new ItemStack(Blocks.stone, 1, 0), null, new ItemStack(Blocks.stone, 1, 0), null, new ItemStack(Blocks.stone, 1, 0)})); + GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack[]{new ItemStack(Blocks.stone, 1, 0), new ItemStack(Blocks.glass, 1, 0), new ItemStack(Blocks.stone, 1, 0)})); + GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack[]{new ItemStack(Blocks.cobblestone, 1, 0), new ItemStack(Blocks.glass, 1, 0), new ItemStack(Blocks.cobblestone, 1, 0)})); + GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack[]{new ItemStack(Blocks.sandstone, 1, 0), new ItemStack(Blocks.glass, 1, 0), new ItemStack(Blocks.sandstone, 1, 0)})); + GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack[]{new ItemStack(Blocks.sand, 1, 0), new ItemStack(Blocks.glass, 1, 0), new ItemStack(Blocks.sand, 1, 0)})); + GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack[]{new ItemStack(Blocks.sandstone, 1, 0), new ItemStack(Blocks.sandstone, 1, 0), new ItemStack(Blocks.sandstone, 1, 0), new ItemStack(Blocks.sandstone, 1, 0), new ItemStack(Blocks.sandstone, 1, 0), new ItemStack(Blocks.sandstone, 1, 0)})); + GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack[]{new ItemStack(Blocks.glass, 1, 0)})); + GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack[]{new ItemStack(Blocks.glass, 1, 0), new ItemStack(Blocks.glass, 1, 0)})); + } } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "easystonerecycling", true)) - { - ItemStack tStack = new ItemStack(Blocks.cobblestone, 1, 0); - while (tStack != null) - { - GT_ModHandler.addToRecyclerBlackList(tStack); - tStack = GT_ModHandler.getRecipeOutput(new ItemStack[] { tStack, tStack, tStack, tStack, tStack, tStack, tStack, tStack, tStack }); - } - GT_ModHandler.addToRecyclerBlackList(new ItemStack(Blocks.cobblestone_wall, 1, 32767)); - GT_ModHandler.addToRecyclerBlackList(new ItemStack(Blocks.sandstone_stairs, 1, 32767)); - GT_ModHandler.addToRecyclerBlackList(new ItemStack(Blocks.stone_stairs, 1, 32767)); - GT_ModHandler.addToRecyclerBlackList(new ItemStack(Blocks.stone_brick_stairs, 1, 32767)); - GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getSmeltingOutput(new ItemStack(Blocks.stone, 1, 0), false, null)); - GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack[] { new ItemStack(Blocks.glass, 1, 0), null, null, new ItemStack(Blocks.glass, 1, 0) })); - GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack[] { new ItemStack(Blocks.stone, 1, 0), null, null, new ItemStack(Blocks.stone, 1, 0) })); - GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack[] { new ItemStack(Blocks.cobblestone, 1, 0), null, null, new ItemStack(Blocks.cobblestone, 1, 0) })); - GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack[] { new ItemStack(Blocks.stone, 1, 0), null, new ItemStack(Blocks.stone, 1, 0), null, new ItemStack(Blocks.stone, 1, 0) })); - GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack[] { new ItemStack(Blocks.stone, 1, 0), new ItemStack(Blocks.glass, 1, 0), new ItemStack(Blocks.stone, 1, 0) })); - GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack[] { new ItemStack(Blocks.cobblestone, 1, 0), new ItemStack(Blocks.glass, 1, 0), new ItemStack(Blocks.cobblestone, 1, 0) })); - GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack[] { new ItemStack(Blocks.sandstone, 1, 0), new ItemStack(Blocks.glass, 1, 0), new ItemStack(Blocks.sandstone, 1, 0) })); - GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack[] { new ItemStack(Blocks.sand, 1, 0), new ItemStack(Blocks.glass, 1, 0), new ItemStack(Blocks.sand, 1, 0) })); - GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack[] { new ItemStack(Blocks.sandstone, 1, 0), new ItemStack(Blocks.sandstone, 1, 0), new ItemStack(Blocks.sandstone, 1, 0), new ItemStack(Blocks.sandstone, 1, 0), new ItemStack(Blocks.sandstone, 1, 0), new ItemStack(Blocks.sandstone, 1, 0) })); - GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack[] { new ItemStack(Blocks.glass, 1, 0) })); - GT_ModHandler.addToRecyclerBlackList(GT_ModHandler.getRecipeOutput(new ItemStack[] { new ItemStack(Blocks.glass, 1, 0), new ItemStack(Blocks.glass, 1, 0) })); - } - } } diff --git a/src/main/java/gregtech/loaders/postload/GT_ScrapboxDropLoader.java b/src/main/java/gregtech/loaders/postload/GT_ScrapboxDropLoader.java index 45765581..d84d5a4e 100644 --- a/src/main/java/gregtech/loaders/postload/GT_ScrapboxDropLoader.java +++ b/src/main/java/gregtech/loaders/postload/GT_ScrapboxDropLoader.java @@ -7,101 +7,97 @@ import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; - -import java.io.PrintStream; - import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class GT_ScrapboxDropLoader - implements Runnable -{ - public void run() - { - GT_Log.out.println("GT_Mod: (re-)adding Scrapbox Drops."); - - GT_ModHandler.addScrapboxDrop(9.5F, new ItemStack(Items.wooden_hoe)); - GT_ModHandler.addScrapboxDrop(2.0F, new ItemStack(Items.wooden_axe)); - GT_ModHandler.addScrapboxDrop(2.0F, new ItemStack(Items.wooden_sword)); - GT_ModHandler.addScrapboxDrop(2.0F, new ItemStack(Items.wooden_shovel)); - GT_ModHandler.addScrapboxDrop(2.0F, new ItemStack(Items.wooden_pickaxe)); - GT_ModHandler.addScrapboxDrop(2.0F, new ItemStack(Items.sign)); - GT_ModHandler.addScrapboxDrop(9.5F, new ItemStack(Items.stick)); - GT_ModHandler.addScrapboxDrop(5.0F, new ItemStack(Blocks.dirt)); - GT_ModHandler.addScrapboxDrop(3.0F, new ItemStack(Blocks.grass)); - GT_ModHandler.addScrapboxDrop(3.0F, new ItemStack(Blocks.gravel)); - GT_ModHandler.addScrapboxDrop(0.5F, new ItemStack(Blocks.pumpkin)); - GT_ModHandler.addScrapboxDrop(1.0F, new ItemStack(Blocks.soul_sand)); - GT_ModHandler.addScrapboxDrop(2.0F, new ItemStack(Blocks.netherrack)); - GT_ModHandler.addScrapboxDrop(1.0F, new ItemStack(Items.bone)); - GT_ModHandler.addScrapboxDrop(9.0F, new ItemStack(Items.rotten_flesh)); - GT_ModHandler.addScrapboxDrop(0.4F, new ItemStack(Items.cooked_porkchop)); - GT_ModHandler.addScrapboxDrop(0.4F, new ItemStack(Items.cooked_beef)); - GT_ModHandler.addScrapboxDrop(0.4F, new ItemStack(Items.cooked_chicken)); - GT_ModHandler.addScrapboxDrop(0.5F, new ItemStack(Items.apple)); - GT_ModHandler.addScrapboxDrop(0.5F, new ItemStack(Items.bread)); - GT_ModHandler.addScrapboxDrop(0.1F, new ItemStack(Items.cake)); - GT_ModHandler.addScrapboxDrop(1.0F, ItemList.IC2_Food_Can_Filled.get(1L, new Object[0])); - GT_ModHandler.addScrapboxDrop(2.0F, ItemList.IC2_Food_Can_Spoiled.get(1L, new Object[0])); - GT_ModHandler.addScrapboxDrop(0.2F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silicon, 1L)); - GT_ModHandler.addScrapboxDrop(1.0F, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Water, 1L)); - GT_ModHandler.addScrapboxDrop(2.0F, ItemList.Cell_Empty.get(1L, new Object[0])); - GT_ModHandler.addScrapboxDrop(5.0F, GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 1L)); - GT_ModHandler.addScrapboxDrop(1.0F, new ItemStack(Items.leather)); - GT_ModHandler.addScrapboxDrop(1.0F, new ItemStack(Items.feather)); - GT_ModHandler.addScrapboxDrop(0.7F, GT_ModHandler.getIC2Item("plantBall", 1L)); - GT_ModHandler.addScrapboxDrop(3.8F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L)); - GT_ModHandler.addScrapboxDrop(0.6F, new ItemStack(Items.slime_ball)); - GT_ModHandler.addScrapboxDrop(0.8F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Rubber, 1L)); - GT_ModHandler.addScrapboxDrop(2.7F, GT_ModHandler.getIC2Item("suBattery", 1L)); - GT_ModHandler.addScrapboxDrop(3.6F, ItemList.Circuit_Primitive.get(1L, new Object[0])); - GT_ModHandler.addScrapboxDrop(0.8F, ItemList.Circuit_Parts_Advanced.get(1L, new Object[0])); - GT_ModHandler.addScrapboxDrop(1.8F, ItemList.Circuit_Board_Basic.get(1L, new Object[0])); - GT_ModHandler.addScrapboxDrop(0.4F, ItemList.Circuit_Board_Advanced.get(1L, new Object[0])); - GT_ModHandler.addScrapboxDrop(0.2F, ItemList.Circuit_Board_Elite.get(1L, new Object[0])); - if(!GT_Mod.gregtechproxy.mDisableIC2Cables){ - GT_ModHandler.addScrapboxDrop(2.0F, GT_ModHandler.getIC2Item("insulatedCopperCableItem", 1L)); - GT_ModHandler.addScrapboxDrop(0.4F, GT_ModHandler.getIC2Item("insulatedGoldCableItem", 1L));} - GT_ModHandler.addScrapboxDrop(0.9F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L)); - GT_ModHandler.addScrapboxDrop(0.8F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L)); - GT_ModHandler.addScrapboxDrop(0.8F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L)); - GT_ModHandler.addScrapboxDrop(2.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Charcoal, 1L)); - GT_ModHandler.addScrapboxDrop(1.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1L)); - GT_ModHandler.addScrapboxDrop(1.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 1L)); - GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silver, 1L)); - GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Electrum, 1L)); - GT_ModHandler.addScrapboxDrop(1.2F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tin, 1L)); - GT_ModHandler.addScrapboxDrop(1.2F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Copper, 1L)); - GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bauxite, 1L)); - GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminium, 1L)); - GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lead, 1L)); - GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Nickel, 1L)); - GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Zinc, 1L)); - GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Brass, 1L)); - GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 1L)); - GT_ModHandler.addScrapboxDrop(1.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Obsidian, 1L)); - GT_ModHandler.addScrapboxDrop(1.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L)); - GT_ModHandler.addScrapboxDrop(2.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 1L)); - GT_ModHandler.addScrapboxDrop(2.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lazurite, 1L)); - GT_ModHandler.addScrapboxDrop(2.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Pyrite, 1L)); - GT_ModHandler.addScrapboxDrop(2.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 1L)); - GT_ModHandler.addScrapboxDrop(2.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodalite, 1L)); - GT_ModHandler.addScrapboxDrop(4.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Netherrack, 1L)); - GT_ModHandler.addScrapboxDrop(4.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Flint, 1L)); - GT_ModHandler.addScrapboxDrop(0.03F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Platinum, 1L)); - GT_ModHandler.addScrapboxDrop(0.03F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tungsten, 1L)); - GT_ModHandler.addScrapboxDrop(0.03F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chrome, 1L)); - GT_ModHandler.addScrapboxDrop(0.03F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Titanium, 1L)); - GT_ModHandler.addScrapboxDrop(0.03F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 1L)); - GT_ModHandler.addScrapboxDrop(0.03F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Endstone, 1L)); - GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GarnetRed, 1L)); - GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GarnetYellow, 1L)); - GT_ModHandler.addScrapboxDrop(0.05F, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Olivine, 1L)); - GT_ModHandler.addScrapboxDrop(0.05F, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L)); - GT_ModHandler.addScrapboxDrop(0.05F, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L)); - GT_ModHandler.addScrapboxDrop(0.05F, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GreenSapphire, 1L)); - GT_ModHandler.addScrapboxDrop(0.05F, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Emerald, 1L)); - GT_ModHandler.addScrapboxDrop(0.05F, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Diamond, 1L)); - } + implements Runnable { + public void run() { + GT_Log.out.println("GT_Mod: (re-)adding Scrapbox Drops."); + + GT_ModHandler.addScrapboxDrop(9.5F, new ItemStack(Items.wooden_hoe)); + GT_ModHandler.addScrapboxDrop(2.0F, new ItemStack(Items.wooden_axe)); + GT_ModHandler.addScrapboxDrop(2.0F, new ItemStack(Items.wooden_sword)); + GT_ModHandler.addScrapboxDrop(2.0F, new ItemStack(Items.wooden_shovel)); + GT_ModHandler.addScrapboxDrop(2.0F, new ItemStack(Items.wooden_pickaxe)); + GT_ModHandler.addScrapboxDrop(2.0F, new ItemStack(Items.sign)); + GT_ModHandler.addScrapboxDrop(9.5F, new ItemStack(Items.stick)); + GT_ModHandler.addScrapboxDrop(5.0F, new ItemStack(Blocks.dirt)); + GT_ModHandler.addScrapboxDrop(3.0F, new ItemStack(Blocks.grass)); + GT_ModHandler.addScrapboxDrop(3.0F, new ItemStack(Blocks.gravel)); + GT_ModHandler.addScrapboxDrop(0.5F, new ItemStack(Blocks.pumpkin)); + GT_ModHandler.addScrapboxDrop(1.0F, new ItemStack(Blocks.soul_sand)); + GT_ModHandler.addScrapboxDrop(2.0F, new ItemStack(Blocks.netherrack)); + GT_ModHandler.addScrapboxDrop(1.0F, new ItemStack(Items.bone)); + GT_ModHandler.addScrapboxDrop(9.0F, new ItemStack(Items.rotten_flesh)); + GT_ModHandler.addScrapboxDrop(0.4F, new ItemStack(Items.cooked_porkchop)); + GT_ModHandler.addScrapboxDrop(0.4F, new ItemStack(Items.cooked_beef)); + GT_ModHandler.addScrapboxDrop(0.4F, new ItemStack(Items.cooked_chicken)); + GT_ModHandler.addScrapboxDrop(0.5F, new ItemStack(Items.apple)); + GT_ModHandler.addScrapboxDrop(0.5F, new ItemStack(Items.bread)); + GT_ModHandler.addScrapboxDrop(0.1F, new ItemStack(Items.cake)); + GT_ModHandler.addScrapboxDrop(1.0F, ItemList.IC2_Food_Can_Filled.get(1L, new Object[0])); + GT_ModHandler.addScrapboxDrop(2.0F, ItemList.IC2_Food_Can_Spoiled.get(1L, new Object[0])); + GT_ModHandler.addScrapboxDrop(0.2F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silicon, 1L)); + GT_ModHandler.addScrapboxDrop(1.0F, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Water, 1L)); + GT_ModHandler.addScrapboxDrop(2.0F, ItemList.Cell_Empty.get(1L, new Object[0])); + GT_ModHandler.addScrapboxDrop(5.0F, GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 1L)); + GT_ModHandler.addScrapboxDrop(1.0F, new ItemStack(Items.leather)); + GT_ModHandler.addScrapboxDrop(1.0F, new ItemStack(Items.feather)); + GT_ModHandler.addScrapboxDrop(0.7F, GT_ModHandler.getIC2Item("plantBall", 1L)); + GT_ModHandler.addScrapboxDrop(3.8F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L)); + GT_ModHandler.addScrapboxDrop(0.6F, new ItemStack(Items.slime_ball)); + GT_ModHandler.addScrapboxDrop(0.8F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Rubber, 1L)); + GT_ModHandler.addScrapboxDrop(2.7F, GT_ModHandler.getIC2Item("suBattery", 1L)); + GT_ModHandler.addScrapboxDrop(3.6F, ItemList.Circuit_Primitive.get(1L, new Object[0])); + GT_ModHandler.addScrapboxDrop(0.8F, ItemList.Circuit_Parts_Advanced.get(1L, new Object[0])); + GT_ModHandler.addScrapboxDrop(1.8F, ItemList.Circuit_Board_Basic.get(1L, new Object[0])); + GT_ModHandler.addScrapboxDrop(0.4F, ItemList.Circuit_Board_Advanced.get(1L, new Object[0])); + GT_ModHandler.addScrapboxDrop(0.2F, ItemList.Circuit_Board_Elite.get(1L, new Object[0])); + if (!GT_Mod.gregtechproxy.mDisableIC2Cables) { + GT_ModHandler.addScrapboxDrop(2.0F, GT_ModHandler.getIC2Item("insulatedCopperCableItem", 1L)); + GT_ModHandler.addScrapboxDrop(0.4F, GT_ModHandler.getIC2Item("insulatedGoldCableItem", 1L)); + } + GT_ModHandler.addScrapboxDrop(0.9F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L)); + GT_ModHandler.addScrapboxDrop(0.8F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L)); + GT_ModHandler.addScrapboxDrop(0.8F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L)); + GT_ModHandler.addScrapboxDrop(2.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Charcoal, 1L)); + GT_ModHandler.addScrapboxDrop(1.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1L)); + GT_ModHandler.addScrapboxDrop(1.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 1L)); + GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silver, 1L)); + GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Electrum, 1L)); + GT_ModHandler.addScrapboxDrop(1.2F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tin, 1L)); + GT_ModHandler.addScrapboxDrop(1.2F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Copper, 1L)); + GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bauxite, 1L)); + GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Aluminium, 1L)); + GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lead, 1L)); + GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Nickel, 1L)); + GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Zinc, 1L)); + GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Brass, 1L)); + GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 1L)); + GT_ModHandler.addScrapboxDrop(1.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Obsidian, 1L)); + GT_ModHandler.addScrapboxDrop(1.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sulfur, 1L)); + GT_ModHandler.addScrapboxDrop(2.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 1L)); + GT_ModHandler.addScrapboxDrop(2.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lazurite, 1L)); + GT_ModHandler.addScrapboxDrop(2.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Pyrite, 1L)); + GT_ModHandler.addScrapboxDrop(2.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 1L)); + GT_ModHandler.addScrapboxDrop(2.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodalite, 1L)); + GT_ModHandler.addScrapboxDrop(4.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Netherrack, 1L)); + GT_ModHandler.addScrapboxDrop(4.0F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Flint, 1L)); + GT_ModHandler.addScrapboxDrop(0.03F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Platinum, 1L)); + GT_ModHandler.addScrapboxDrop(0.03F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tungsten, 1L)); + GT_ModHandler.addScrapboxDrop(0.03F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chrome, 1L)); + GT_ModHandler.addScrapboxDrop(0.03F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Titanium, 1L)); + GT_ModHandler.addScrapboxDrop(0.03F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 1L)); + GT_ModHandler.addScrapboxDrop(0.03F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Endstone, 1L)); + GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GarnetRed, 1L)); + GT_ModHandler.addScrapboxDrop(0.5F, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GarnetYellow, 1L)); + GT_ModHandler.addScrapboxDrop(0.05F, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Olivine, 1L)); + GT_ModHandler.addScrapboxDrop(0.05F, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L)); + GT_ModHandler.addScrapboxDrop(0.05F, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L)); + GT_ModHandler.addScrapboxDrop(0.05F, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.GreenSapphire, 1L)); + GT_ModHandler.addScrapboxDrop(0.05F, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Emerald, 1L)); + GT_ModHandler.addScrapboxDrop(0.05F, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Diamond, 1L)); + } } diff --git a/src/main/java/gregtech/loaders/postload/GT_UUMRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_UUMRecipeLoader.java index 7954ee93..a3a57879 100644 --- a/src/main/java/gregtech/loaders/postload/GT_UUMRecipeLoader.java +++ b/src/main/java/gregtech/loaders/postload/GT_UUMRecipeLoader.java @@ -1,7 +1,7 @@ package gregtech.loaders.postload; public class GT_UUMRecipeLoader - implements Runnable -{ - public void run() {} + implements Runnable { + public void run() { + } } diff --git a/src/main/java/gregtech/loaders/postload/GT_Worldgenloader.java b/src/main/java/gregtech/loaders/postload/GT_Worldgenloader.java index b8e1f430..082116cb 100644 --- a/src/main/java/gregtech/loaders/postload/GT_Worldgenloader.java +++ b/src/main/java/gregtech/loaders/postload/GT_Worldgenloader.java @@ -4,133 +4,130 @@ import cpw.mods.fml.common.Loader; import gregtech.api.GregTech_API; import gregtech.api.enums.ConfigCategories; import gregtech.api.enums.Materials; -import gregtech.api.util.GT_Config; import gregtech.common.GT_Worldgen_GT_Ore_Layer; import gregtech.common.GT_Worldgen_GT_Ore_SmallPieces; import gregtech.common.GT_Worldgen_Stone; import gregtech.common.GT_Worldgenerator; public class GT_Worldgenloader - implements Runnable -{ - public void run() - { - boolean tPFAA = (GregTech_API.sWorldgenFile.get(ConfigCategories.general, "AutoDetectPFAA", true)) && (Loader.isModLoaded("PFAAGeologica")); - - new GT_Worldgenerator(); - - new GT_Worldgen_Stone("overworld.stone.blackgranite.tiny", true, GregTech_API.sBlockGranites, 0, 0, 1, 50, 48, 0, 120, null, false); - new GT_Worldgen_Stone("overworld.stone.blackgranite.small", true, GregTech_API.sBlockGranites, 0, 0, 1, 100, 96, 0, 120, null, false); - new GT_Worldgen_Stone("overworld.stone.blackgranite.medium", true, GregTech_API.sBlockGranites, 0, 0, 1, 200, 144, 0, 120, null, false); - new GT_Worldgen_Stone("overworld.stone.blackgranite.large", true, GregTech_API.sBlockGranites, 0, 0, 1, 300, 192, 0, 120, null, false); - new GT_Worldgen_Stone("overworld.stone.blackgranite.huge", true, GregTech_API.sBlockGranites, 0, 0, 1, 400, 240, 0, 120, null, false); - new GT_Worldgen_Stone("overworld.stone.redgranite.tiny", true, GregTech_API.sBlockGranites, 8, 0, 1, 50, 48, 0, 120, null, false); - new GT_Worldgen_Stone("overworld.stone.redgranite.small", true, GregTech_API.sBlockGranites, 8, 0, 1, 100, 96, 0, 120, null, false); - new GT_Worldgen_Stone("overworld.stone.redgranite.medium", true, GregTech_API.sBlockGranites, 8, 0, 1, 200, 144, 0, 120, null, false); - new GT_Worldgen_Stone("overworld.stone.redgranite.large", true, GregTech_API.sBlockGranites, 8, 0, 1, 300, 192, 0, 120, null, false); - new GT_Worldgen_Stone("overworld.stone.redgranite.huge", true, GregTech_API.sBlockGranites, 8, 0, 1, 400, 240, 0, 120, null, false); - - new GT_Worldgen_Stone("nether.stone.blackgranite.tiny", false, GregTech_API.sBlockGranites, 0, -1, 1, 50, 48, 0, 120, null, false); - new GT_Worldgen_Stone("nether.stone.blackgranite.small", false, GregTech_API.sBlockGranites, 0, -1, 1, 100, 96, 0, 120, null, false); - new GT_Worldgen_Stone("nether.stone.blackgranite.medium", false, GregTech_API.sBlockGranites, 0, -1, 1, 200, 144, 0, 120, null, false); - new GT_Worldgen_Stone("nether.stone.blackgranite.large", false, GregTech_API.sBlockGranites, 0, -1, 1, 300, 192, 0, 120, null, false); - new GT_Worldgen_Stone("nether.stone.blackgranite.huge", false, GregTech_API.sBlockGranites, 0, -1, 1, 400, 240, 0, 120, null, false); - new GT_Worldgen_Stone("nether.stone.redgranite.tiny", false, GregTech_API.sBlockGranites, 8, -1, 1, 50, 48, 0, 120, null, false); - new GT_Worldgen_Stone("nether.stone.redgranite.small", false, GregTech_API.sBlockGranites, 8, -1, 1, 100, 96, 0, 120, null, false); - new GT_Worldgen_Stone("nether.stone.redgranite.medium", false, GregTech_API.sBlockGranites, 8, -1, 1, 200, 144, 0, 120, null, false); - new GT_Worldgen_Stone("nether.stone.redgranite.large", false, GregTech_API.sBlockGranites, 8, -1, 1, 300, 192, 0, 120, null, false); - new GT_Worldgen_Stone("nether.stone.redgranite.huge", false, GregTech_API.sBlockGranites, 8, -1, 1, 400, 240, 0, 120, null, false); - - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.copper", true, 60, 120, 32, !tPFAA, true, true, Materials.Copper); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.tin", true, 60, 120, 32, !tPFAA, true, true, Materials.Tin); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.bismuth", true, 80, 120, 8, !tPFAA, true, false, Materials.Bismuth); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.coal", true, 60, 100, 24, !tPFAA, false, false, Materials.Coal); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.iron", true, 40, 80, 16, !tPFAA, true, true, Materials.Iron); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.lead", true, 40, 80, 16, !tPFAA, true, true, Materials.Lead); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.zinc", true, 30, 60, 12, !tPFAA, true, true, Materials.Zinc); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.gold", true, 20, 40, 8, !tPFAA, true, true, Materials.Gold); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.silver", true, 20, 40, 8, !tPFAA, true, true, Materials.Silver); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.nickel", true, 20, 40, 8, !tPFAA, true, true, Materials.Nickel); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.lapis", true, 20, 40, 4, !tPFAA, false, false, Materials.Lapis); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.diamond", true, 5, 10, 2, !tPFAA, true, false, Materials.Diamond); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.emerald", true, 5, 250, 1, !tPFAA, true, false, Materials.Emerald); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.ruby", true, 5, 250, 1, !tPFAA, true, false, Materials.Ruby); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.sapphire", true, 5, 250, 1, !tPFAA, true, false, Materials.Sapphire); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.greensapphire", true, 5, 250, 1, !tPFAA, true, false, Materials.GreenSapphire); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.olivine", true, 5, 250, 1, !tPFAA, true, false, Materials.Olivine); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.topaz", true, 5, 250, 1, !tPFAA, true, false, Materials.Topaz); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.tanzanite", true, 5, 250, 1, !tPFAA, true, false, Materials.Tanzanite); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.amethyst", true, 5, 250, 1, !tPFAA, true, false, Materials.Amethyst); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.opal", true, 5, 250, 1, !tPFAA, true, false, Materials.Opal); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.jasper", true, 5, 250, 1, !tPFAA, true, false, Materials.Jasper); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.bluetopaz", true, 5, 250, 1, !tPFAA, true, false, Materials.BlueTopaz); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.amber", true, 5, 250, 1, !tPFAA, true, false, Materials.Amber); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.foolsruby", true, 5, 250, 1, !tPFAA, true, false, Materials.FoolsRuby); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.garnetred", true, 5, 250, 1, !tPFAA, true, false, Materials.GarnetRed); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.garnetyellow", true, 5, 250, 1, !tPFAA, true, false, Materials.GarnetYellow); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.redstone", true, 5, 20, 8, !tPFAA, true, false, Materials.Redstone); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.platinum", true, 20, 40, 8, false, false, true, Materials.Platinum); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.iridium", true, 20, 40, 8, false, false, true, Materials.Iridium); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.netherquartz", true, 30, 120, 64, false, true, false, Materials.NetherQuartz); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.saltpeter", true, 10, 60, 8, false, true, false, Materials.Saltpeter); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.sulfur_n", true, 10, 60, 32, false, true, false, Materials.Sulfur); - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.sulfur_o", true, 5, 15, 8, !tPFAA, false, false, Materials.Sulfur); - - int i = 0; - for (int j = GregTech_API.sWorldgenFile.get("worldgen", "AmountOfCustomSmallOreSlots", 16); i < j; i++) { - new GT_Worldgen_GT_Ore_SmallPieces("ore.small.custom." + (i < 10 ? "0" : "") + i, false, 0, 0, 0, false, false, false, Materials._NULL); + implements Runnable { + public void run() { + boolean tPFAA = (GregTech_API.sWorldgenFile.get(ConfigCategories.general, "AutoDetectPFAA", true)) && (Loader.isModLoaded("PFAAGeologica")); + + new GT_Worldgenerator(); + + new GT_Worldgen_Stone("overworld.stone.blackgranite.tiny", true, GregTech_API.sBlockGranites, 0, 0, 1, 50, 48, 0, 120, null, false); + new GT_Worldgen_Stone("overworld.stone.blackgranite.small", true, GregTech_API.sBlockGranites, 0, 0, 1, 100, 96, 0, 120, null, false); + new GT_Worldgen_Stone("overworld.stone.blackgranite.medium", true, GregTech_API.sBlockGranites, 0, 0, 1, 200, 144, 0, 120, null, false); + new GT_Worldgen_Stone("overworld.stone.blackgranite.large", true, GregTech_API.sBlockGranites, 0, 0, 1, 300, 192, 0, 120, null, false); + new GT_Worldgen_Stone("overworld.stone.blackgranite.huge", true, GregTech_API.sBlockGranites, 0, 0, 1, 400, 240, 0, 120, null, false); + new GT_Worldgen_Stone("overworld.stone.redgranite.tiny", true, GregTech_API.sBlockGranites, 8, 0, 1, 50, 48, 0, 120, null, false); + new GT_Worldgen_Stone("overworld.stone.redgranite.small", true, GregTech_API.sBlockGranites, 8, 0, 1, 100, 96, 0, 120, null, false); + new GT_Worldgen_Stone("overworld.stone.redgranite.medium", true, GregTech_API.sBlockGranites, 8, 0, 1, 200, 144, 0, 120, null, false); + new GT_Worldgen_Stone("overworld.stone.redgranite.large", true, GregTech_API.sBlockGranites, 8, 0, 1, 300, 192, 0, 120, null, false); + new GT_Worldgen_Stone("overworld.stone.redgranite.huge", true, GregTech_API.sBlockGranites, 8, 0, 1, 400, 240, 0, 120, null, false); + + new GT_Worldgen_Stone("nether.stone.blackgranite.tiny", false, GregTech_API.sBlockGranites, 0, -1, 1, 50, 48, 0, 120, null, false); + new GT_Worldgen_Stone("nether.stone.blackgranite.small", false, GregTech_API.sBlockGranites, 0, -1, 1, 100, 96, 0, 120, null, false); + new GT_Worldgen_Stone("nether.stone.blackgranite.medium", false, GregTech_API.sBlockGranites, 0, -1, 1, 200, 144, 0, 120, null, false); + new GT_Worldgen_Stone("nether.stone.blackgranite.large", false, GregTech_API.sBlockGranites, 0, -1, 1, 300, 192, 0, 120, null, false); + new GT_Worldgen_Stone("nether.stone.blackgranite.huge", false, GregTech_API.sBlockGranites, 0, -1, 1, 400, 240, 0, 120, null, false); + new GT_Worldgen_Stone("nether.stone.redgranite.tiny", false, GregTech_API.sBlockGranites, 8, -1, 1, 50, 48, 0, 120, null, false); + new GT_Worldgen_Stone("nether.stone.redgranite.small", false, GregTech_API.sBlockGranites, 8, -1, 1, 100, 96, 0, 120, null, false); + new GT_Worldgen_Stone("nether.stone.redgranite.medium", false, GregTech_API.sBlockGranites, 8, -1, 1, 200, 144, 0, 120, null, false); + new GT_Worldgen_Stone("nether.stone.redgranite.large", false, GregTech_API.sBlockGranites, 8, -1, 1, 300, 192, 0, 120, null, false); + new GT_Worldgen_Stone("nether.stone.redgranite.huge", false, GregTech_API.sBlockGranites, 8, -1, 1, 400, 240, 0, 120, null, false); + + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.copper", true, 60, 120, 32, !tPFAA, true, true, Materials.Copper); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.tin", true, 60, 120, 32, !tPFAA, true, true, Materials.Tin); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.bismuth", true, 80, 120, 8, !tPFAA, true, false, Materials.Bismuth); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.coal", true, 60, 100, 24, !tPFAA, false, false, Materials.Coal); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.iron", true, 40, 80, 16, !tPFAA, true, true, Materials.Iron); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.lead", true, 40, 80, 16, !tPFAA, true, true, Materials.Lead); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.zinc", true, 30, 60, 12, !tPFAA, true, true, Materials.Zinc); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.gold", true, 20, 40, 8, !tPFAA, true, true, Materials.Gold); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.silver", true, 20, 40, 8, !tPFAA, true, true, Materials.Silver); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.nickel", true, 20, 40, 8, !tPFAA, true, true, Materials.Nickel); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.lapis", true, 20, 40, 4, !tPFAA, false, false, Materials.Lapis); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.diamond", true, 5, 10, 2, !tPFAA, true, false, Materials.Diamond); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.emerald", true, 5, 250, 1, !tPFAA, true, false, Materials.Emerald); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.ruby", true, 5, 250, 1, !tPFAA, true, false, Materials.Ruby); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.sapphire", true, 5, 250, 1, !tPFAA, true, false, Materials.Sapphire); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.greensapphire", true, 5, 250, 1, !tPFAA, true, false, Materials.GreenSapphire); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.olivine", true, 5, 250, 1, !tPFAA, true, false, Materials.Olivine); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.topaz", true, 5, 250, 1, !tPFAA, true, false, Materials.Topaz); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.tanzanite", true, 5, 250, 1, !tPFAA, true, false, Materials.Tanzanite); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.amethyst", true, 5, 250, 1, !tPFAA, true, false, Materials.Amethyst); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.opal", true, 5, 250, 1, !tPFAA, true, false, Materials.Opal); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.jasper", true, 5, 250, 1, !tPFAA, true, false, Materials.Jasper); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.bluetopaz", true, 5, 250, 1, !tPFAA, true, false, Materials.BlueTopaz); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.amber", true, 5, 250, 1, !tPFAA, true, false, Materials.Amber); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.foolsruby", true, 5, 250, 1, !tPFAA, true, false, Materials.FoolsRuby); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.garnetred", true, 5, 250, 1, !tPFAA, true, false, Materials.GarnetRed); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.garnetyellow", true, 5, 250, 1, !tPFAA, true, false, Materials.GarnetYellow); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.redstone", true, 5, 20, 8, !tPFAA, true, false, Materials.Redstone); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.platinum", true, 20, 40, 8, false, false, true, Materials.Platinum); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.iridium", true, 20, 40, 8, false, false, true, Materials.Iridium); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.netherquartz", true, 30, 120, 64, false, true, false, Materials.NetherQuartz); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.saltpeter", true, 10, 60, 8, false, true, false, Materials.Saltpeter); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.sulfur_n", true, 10, 60, 32, false, true, false, Materials.Sulfur); + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.sulfur_o", true, 5, 15, 8, !tPFAA, false, false, Materials.Sulfur); + + int i = 0; + for (int j = GregTech_API.sWorldgenFile.get("worldgen", "AmountOfCustomSmallOreSlots", 16); i < j; i++) { + new GT_Worldgen_GT_Ore_SmallPieces("ore.small.custom." + (i < 10 ? "0" : "") + i, false, 0, 0, 0, false, false, false, Materials._NULL); + } + new GT_Worldgen_GT_Ore_Layer("ore.mix.naquadah", false, 10, 60, 10, 5, 32, false, false, true, Materials.Naquadah, Materials.Naquadah, Materials.Naquadah, Materials.NaquadahEnriched); + new GT_Worldgen_GT_Ore_Layer("ore.mix.lignite", true, 50, 130, 160, 8, 32, !tPFAA, false, false, Materials.Lignite, Materials.Lignite, Materials.Lignite, Materials.Coal); + new GT_Worldgen_GT_Ore_Layer("ore.mix.coal", true, 50, 80, 80, 6, 32, !tPFAA, false, false, Materials.Coal, Materials.Coal, Materials.Coal, Materials.Lignite); + new GT_Worldgen_GT_Ore_Layer("ore.mix.magnetite", true, 50, 120, 160, 3, 32, !tPFAA, true, false, Materials.Magnetite, Materials.Magnetite, Materials.Iron, Materials.VanadiumMagnetite); + new GT_Worldgen_GT_Ore_Layer("ore.mix.gold", true, 60, 80, 160, 3, 32, !tPFAA, false, false, Materials.Magnetite, Materials.Magnetite, Materials.VanadiumMagnetite, Materials.Gold); + new GT_Worldgen_GT_Ore_Layer("ore.mix.iron", true, 10, 40, 120, 4, 24, !tPFAA, true, false, Materials.BrownLimonite, Materials.YellowLimonite, Materials.BandedIron, Materials.Malachite); + new GT_Worldgen_GT_Ore_Layer("ore.mix.cassiterite", true, 40, 120, 50, 5, 24, !tPFAA, false, true, Materials.Tin, Materials.Tin, Materials.Cassiterite, Materials.Tin); + new GT_Worldgen_GT_Ore_Layer("ore.mix.tetrahedrite", true, 80, 120, 70, 4, 24, !tPFAA, true, false, Materials.Tetrahedrite, Materials.Tetrahedrite, Materials.Copper, Materials.Stibnite); + new GT_Worldgen_GT_Ore_Layer("ore.mix.netherquartz", true, 40, 80, 80, 5, 24, false, true, false, Materials.NetherQuartz, Materials.NetherQuartz, Materials.NetherQuartz, Materials.NetherQuartz); + new GT_Worldgen_GT_Ore_Layer("ore.mix.sulfur", true, 5, 20, 100, 5, 24, false, true, false, Materials.Sulfur, Materials.Sulfur, Materials.Pyrite, Materials.Sphalerite); + new GT_Worldgen_GT_Ore_Layer("ore.mix.copper", true, 10, 30, 80, 4, 24, !tPFAA, true, false, Materials.Chalcopyrite, Materials.Iron, Materials.Pyrite, Materials.Copper); + new GT_Worldgen_GT_Ore_Layer("ore.mix.bauxite", true, 50, 90, 80, 4, 24, !tPFAA, tPFAA, false, Materials.Bauxite, Materials.Bauxite, Materials.Aluminium, Materials.Ilmenite); + new GT_Worldgen_GT_Ore_Layer("ore.mix.salts", true, 50, 60, 50, 3, 24, !tPFAA, false, false, Materials.RockSalt, Materials.Salt, Materials.Lepidolite, Materials.Spodumene); + new GT_Worldgen_GT_Ore_Layer("ore.mix.redstone", true, 10, 40, 60, 3, 24, !tPFAA, true, false, Materials.Redstone, Materials.Redstone, Materials.Ruby, Materials.Cinnabar); + new GT_Worldgen_GT_Ore_Layer("ore.mix.soapstone", true, 10, 40, 40, 3, 16, !tPFAA, false, false, Materials.Soapstone, Materials.Talc, Materials.Glauconite, Materials.Pentlandite); + new GT_Worldgen_GT_Ore_Layer("ore.mix.nickel", true, 10, 40, 40, 3, 16, !tPFAA, true, true, Materials.Garnierite, Materials.Nickel, Materials.Cobaltite, Materials.Pentlandite); + new GT_Worldgen_GT_Ore_Layer("ore.mix.platinum", true, 40, 50, 5, 3, 16, !tPFAA, false, true, Materials.Cooperite, Materials.Palladium, Materials.Platinum, Materials.Iridium); + new GT_Worldgen_GT_Ore_Layer("ore.mix.pitchblende", true, 10, 40, 40, 3, 16, !tPFAA, false, false, Materials.Pitchblende, Materials.Pitchblende, Materials.Uranium, Materials.Uraninite); + new GT_Worldgen_GT_Ore_Layer("ore.mix.plutonium", true, 20, 30, 10, 3, 16, !tPFAA, false, false, Materials.Uraninite, Materials.Uraninite, Materials.Plutonium, Materials.Uranium); + new GT_Worldgen_GT_Ore_Layer("ore.mix.monazite", true, 20, 40, 30, 3, 16, !tPFAA, tPFAA, false, Materials.Bastnasite, Materials.Bastnasite, Materials.Monazite, Materials.Neodymium); + new GT_Worldgen_GT_Ore_Layer("ore.mix.molybdenum", true, 20, 50, 5, 3, 16, !tPFAA, false, true, Materials.Wulfenite, Materials.Molybdenite, Materials.Molybdenum, Materials.Powellite); + new GT_Worldgen_GT_Ore_Layer("ore.mix.tungstate", true, 20, 50, 10, 3, 16, !tPFAA, false, true, Materials.Scheelite, Materials.Scheelite, Materials.Tungstate, Materials.Lithium); + new GT_Worldgen_GT_Ore_Layer("ore.mix.sapphire", true, 10, 40, 60, 3, 16, !tPFAA, tPFAA, tPFAA, Materials.Almandine, Materials.Pyrope, Materials.Sapphire, Materials.GreenSapphire); + new GT_Worldgen_GT_Ore_Layer("ore.mix.manganese", true, 20, 30, 20, 3, 16, !tPFAA, false, true, Materials.Grossular, Materials.Spessartine, Materials.Pyrolusite, Materials.Tantalite); + new GT_Worldgen_GT_Ore_Layer("ore.mix.quartz", true, 40, 80, 60, 3, 16, !tPFAA, tPFAA, false, Materials.Quartzite, Materials.Barite, Materials.CertusQuartz, Materials.CertusQuartz); + new GT_Worldgen_GT_Ore_Layer("ore.mix.diamond", true, 5, 20, 40, 2, 16, !tPFAA, false, false, Materials.Graphite, Materials.Graphite, Materials.Diamond, Materials.Coal); + new GT_Worldgen_GT_Ore_Layer("ore.mix.olivine", true, 10, 40, 60, 3, 16, !tPFAA, false, true, Materials.Bentonite, Materials.Magnesite, Materials.Olivine, Materials.Glauconite); + new GT_Worldgen_GT_Ore_Layer("ore.mix.apatite", true, 40, 60, 60, 3, 16, !tPFAA, false, false, Materials.Apatite, Materials.Apatite, Materials.Phosphorus, Materials.Phosphate); + new GT_Worldgen_GT_Ore_Layer("ore.mix.galena", true, 30, 60, 40, 5, 16, !tPFAA, false, false, Materials.Galena, Materials.Galena, Materials.Silver, Materials.Lead); + new GT_Worldgen_GT_Ore_Layer("ore.mix.lapis", true, 20, 50, 40, 5, 16, !tPFAA, false, true, Materials.Lazurite, Materials.Sodalite, Materials.Lapis, Materials.Calcite); + new GT_Worldgen_GT_Ore_Layer("ore.mix.beryllium", true, 5, 30, 30, 3, 16, !tPFAA, false, true, Materials.Beryllium, Materials.Beryllium, Materials.Emerald, Materials.Thorium); + + i = 0; + for (int j = GregTech_API.sWorldgenFile.get("worldgen", "AmountOfCustomLargeVeinSlots", 16); i < j; i++) { + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom." + (i < 10 ? "0" : "") + i, false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + } + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.00", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.01", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.02", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.03", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.04", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.05", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.06", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.07", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.08", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.09", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.10", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.11", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.12", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.13", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.14", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.15", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); } - new GT_Worldgen_GT_Ore_Layer("ore.mix.naquadah", false, 10, 60, 10, 5, 32, false, false, true, Materials.Naquadah, Materials.Naquadah, Materials.Naquadah, Materials.NaquadahEnriched); - new GT_Worldgen_GT_Ore_Layer("ore.mix.lignite", true, 50, 130, 160, 8, 32, !tPFAA, false, false, Materials.Lignite, Materials.Lignite, Materials.Lignite, Materials.Coal); - new GT_Worldgen_GT_Ore_Layer("ore.mix.coal", true, 50, 80, 80, 6, 32, !tPFAA, false, false, Materials.Coal, Materials.Coal, Materials.Coal, Materials.Lignite); - new GT_Worldgen_GT_Ore_Layer("ore.mix.magnetite", true, 50, 120, 160, 3, 32, !tPFAA, true, false, Materials.Magnetite, Materials.Magnetite, Materials.Iron, Materials.VanadiumMagnetite); - new GT_Worldgen_GT_Ore_Layer("ore.mix.gold", true, 60, 80, 160, 3, 32, !tPFAA, false, false, Materials.Magnetite, Materials.Magnetite, Materials.VanadiumMagnetite, Materials.Gold); - new GT_Worldgen_GT_Ore_Layer("ore.mix.iron", true, 10, 40, 120, 4, 24, !tPFAA, true, false, Materials.BrownLimonite, Materials.YellowLimonite, Materials.BandedIron, Materials.Malachite); - new GT_Worldgen_GT_Ore_Layer("ore.mix.cassiterite", true, 40, 120, 50, 5, 24, !tPFAA, false, true, Materials.Tin, Materials.Tin, Materials.Cassiterite, Materials.Tin); - new GT_Worldgen_GT_Ore_Layer("ore.mix.tetrahedrite", true, 80, 120, 70, 4, 24, !tPFAA, true, false, Materials.Tetrahedrite, Materials.Tetrahedrite, Materials.Copper, Materials.Stibnite); - new GT_Worldgen_GT_Ore_Layer("ore.mix.netherquartz", true, 40, 80, 80, 5, 24, false, true, false, Materials.NetherQuartz, Materials.NetherQuartz, Materials.NetherQuartz, Materials.NetherQuartz); - new GT_Worldgen_GT_Ore_Layer("ore.mix.sulfur", true, 5, 20, 100, 5, 24, false, true, false, Materials.Sulfur, Materials.Sulfur, Materials.Pyrite, Materials.Sphalerite); - new GT_Worldgen_GT_Ore_Layer("ore.mix.copper", true, 10, 30, 80, 4, 24, !tPFAA, true, false, Materials.Chalcopyrite, Materials.Iron, Materials.Pyrite, Materials.Copper); - new GT_Worldgen_GT_Ore_Layer("ore.mix.bauxite", true, 50, 90, 80, 4, 24, !tPFAA, tPFAA, false, Materials.Bauxite, Materials.Bauxite, Materials.Aluminium, Materials.Ilmenite); - new GT_Worldgen_GT_Ore_Layer("ore.mix.salts", true, 50, 60, 50, 3, 24, !tPFAA, false, false, Materials.RockSalt, Materials.Salt, Materials.Lepidolite, Materials.Spodumene); - new GT_Worldgen_GT_Ore_Layer("ore.mix.redstone", true, 10, 40, 60, 3, 24, !tPFAA, true, false, Materials.Redstone, Materials.Redstone, Materials.Ruby, Materials.Cinnabar); - new GT_Worldgen_GT_Ore_Layer("ore.mix.soapstone", true, 10, 40, 40, 3, 16, !tPFAA, false, false, Materials.Soapstone, Materials.Talc, Materials.Glauconite, Materials.Pentlandite); - new GT_Worldgen_GT_Ore_Layer("ore.mix.nickel", true, 10, 40, 40, 3, 16, !tPFAA, true, true, Materials.Garnierite, Materials.Nickel, Materials.Cobaltite, Materials.Pentlandite); - new GT_Worldgen_GT_Ore_Layer("ore.mix.platinum", true, 40, 50, 5, 3, 16, !tPFAA, false, true, Materials.Cooperite, Materials.Palladium, Materials.Platinum, Materials.Iridium); - new GT_Worldgen_GT_Ore_Layer("ore.mix.pitchblende", true, 10, 40, 40, 3, 16, !tPFAA, false, false, Materials.Pitchblende, Materials.Pitchblende, Materials.Uranium, Materials.Uraninite); - new GT_Worldgen_GT_Ore_Layer("ore.mix.plutonium", true, 20, 30, 10, 3, 16, !tPFAA, false, false, Materials.Uraninite, Materials.Uraninite, Materials.Plutonium, Materials.Uranium); - new GT_Worldgen_GT_Ore_Layer("ore.mix.monazite", true, 20, 40, 30, 3, 16, !tPFAA, tPFAA, false, Materials.Bastnasite, Materials.Bastnasite, Materials.Monazite, Materials.Neodymium); - new GT_Worldgen_GT_Ore_Layer("ore.mix.molybdenum", true, 20, 50, 5, 3, 16, !tPFAA, false, true, Materials.Wulfenite, Materials.Molybdenite, Materials.Molybdenum, Materials.Powellite); - new GT_Worldgen_GT_Ore_Layer("ore.mix.tungstate", true, 20, 50, 10, 3, 16, !tPFAA, false, true, Materials.Scheelite, Materials.Scheelite, Materials.Tungstate, Materials.Lithium); - new GT_Worldgen_GT_Ore_Layer("ore.mix.sapphire", true, 10, 40, 60, 3, 16, !tPFAA, tPFAA, tPFAA, Materials.Almandine, Materials.Pyrope, Materials.Sapphire, Materials.GreenSapphire); - new GT_Worldgen_GT_Ore_Layer("ore.mix.manganese", true, 20, 30, 20, 3, 16, !tPFAA, false, true, Materials.Grossular, Materials.Spessartine, Materials.Pyrolusite, Materials.Tantalite); - new GT_Worldgen_GT_Ore_Layer("ore.mix.quartz", true, 40, 80, 60, 3, 16, !tPFAA, tPFAA, false, Materials.Quartzite, Materials.Barite, Materials.CertusQuartz, Materials.CertusQuartz); - new GT_Worldgen_GT_Ore_Layer("ore.mix.diamond", true, 5, 20, 40, 2, 16, !tPFAA, false, false, Materials.Graphite, Materials.Graphite, Materials.Diamond, Materials.Coal); - new GT_Worldgen_GT_Ore_Layer("ore.mix.olivine", true, 10, 40, 60, 3, 16, !tPFAA, false, true, Materials.Bentonite, Materials.Magnesite, Materials.Olivine, Materials.Glauconite); - new GT_Worldgen_GT_Ore_Layer("ore.mix.apatite", true, 40, 60, 60, 3, 16, !tPFAA, false, false, Materials.Apatite, Materials.Apatite, Materials.Phosphorus, Materials.Phosphate); - new GT_Worldgen_GT_Ore_Layer("ore.mix.galena", true, 30, 60, 40, 5, 16, !tPFAA, false, false, Materials.Galena, Materials.Galena, Materials.Silver, Materials.Lead); - new GT_Worldgen_GT_Ore_Layer("ore.mix.lapis", true, 20, 50, 40, 5, 16, !tPFAA, false, true, Materials.Lazurite, Materials.Sodalite, Materials.Lapis, Materials.Calcite); - new GT_Worldgen_GT_Ore_Layer("ore.mix.beryllium", true, 5, 30, 30, 3, 16, !tPFAA, false, true, Materials.Beryllium, Materials.Beryllium, Materials.Emerald, Materials.Thorium); - - i = 0; - for (int j = GregTech_API.sWorldgenFile.get("worldgen", "AmountOfCustomLargeVeinSlots", 16); i < j; i++) { - new GT_Worldgen_GT_Ore_Layer("ore.mix.custom." + (i < 10 ? "0" : "") + i, false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); - } - new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.00", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); - new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.01", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); - new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.02", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); - new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.03", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); - new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.04", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); - new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.05", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); - new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.06", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); - new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.07", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); - new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.08", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); - new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.09", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); - new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.10", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); - new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.11", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); - new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.12", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); - new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.13", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); - new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.14", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); - new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.15", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); - } } diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_CircuitBehaviors.java b/src/main/java/gregtech/loaders/preload/GT_Loader_CircuitBehaviors.java index 305b3b7b..d5b3352a 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_CircuitBehaviors.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_CircuitBehaviors.java @@ -1,33 +1,22 @@ package gregtech.loaders.preload; import gregtech.api.util.GT_Log; -import gregtech.common.redstonecircuits.GT_Circuit_BasicLogic; -import gregtech.common.redstonecircuits.GT_Circuit_BitAnd; -import gregtech.common.redstonecircuits.GT_Circuit_CombinationLock; -import gregtech.common.redstonecircuits.GT_Circuit_Equals; -import gregtech.common.redstonecircuits.GT_Circuit_Pulser; -import gregtech.common.redstonecircuits.GT_Circuit_Randomizer; -import gregtech.common.redstonecircuits.GT_Circuit_RedstoneMeter; -import gregtech.common.redstonecircuits.GT_Circuit_Repeater; -import gregtech.common.redstonecircuits.GT_Circuit_Timer; -import java.io.PrintStream; +import gregtech.common.redstonecircuits.*; public class GT_Loader_CircuitBehaviors - implements Runnable -{ - public void run() - { - GT_Log.out.println("GT_Mod: Register Redstone Circuit behaviours."); - new GT_Circuit_Timer(0); - new GT_Circuit_BasicLogic(1); - new GT_Circuit_Repeater(2); - new GT_Circuit_Pulser(3); - new GT_Circuit_RedstoneMeter(4); - - new GT_Circuit_Randomizer(8); - - new GT_Circuit_CombinationLock(16); - new GT_Circuit_BitAnd(17); - new GT_Circuit_Equals(18); - } + implements Runnable { + public void run() { + GT_Log.out.println("GT_Mod: Register Redstone Circuit behaviours."); + new GT_Circuit_Timer(0); + new GT_Circuit_BasicLogic(1); + new GT_Circuit_Repeater(2); + new GT_Circuit_Pulser(3); + new GT_Circuit_RedstoneMeter(4); + + new GT_Circuit_Randomizer(8); + + new GT_Circuit_CombinationLock(16); + new GT_Circuit_BitAnd(17); + new GT_Circuit_Equals(18); + } } diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_ItemData.java b/src/main/java/gregtech/loaders/preload/GT_Loader_ItemData.java index c0ceb5ea..c010c055 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_ItemData.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_ItemData.java @@ -9,171 +9,168 @@ import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; -import java.io.PrintStream; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class GT_Loader_ItemData - implements Runnable -{ - public void run() - { - GT_Log.out.println("GT_Mod: Loading Item Data Tags"); - GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("TwilightForest", "item.giantPick", 1L, 0), new ItemData(Materials.Stone, 696729600L, new MaterialStack[] { new MaterialStack(Materials.Wood, 464486400L) })); - GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("TwilightForest", "item.giantSword", 1L, 0), new ItemData(Materials.Stone, 464486400L, new MaterialStack[] { new MaterialStack(Materials.Wood, 232243200L) })); - GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("TwilightForest", "tile.GiantLog", 1L, 32767), new ItemData(Materials.Wood, 232243200L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("TwilightForest", "tile.GiantCobble", 1L, 32767), new ItemData(Materials.Stone, 232243200L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("TwilightForest", "tile.GiantObsidian", 1L, 32767), new ItemData(Materials.Obsidian, 232243200L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("TwilightForest", "item.minotaurAxe", 1L, 0), new ItemData(Materials.Diamond, 14515200L, new MaterialStack[] { new MaterialStack(Materials.Wood, OrePrefixes.stick.mMaterialAmount * 2L) })); - GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("TwilightForest", "item.armorShards", 1L, 0), new ItemData(Materials.Knightmetal, 403200L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("TwilightForest", "item.shardCluster", 1L, 0), new ItemData(Materials.Knightmetal, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(ItemList.TF_LiveRoot.get(1L, new Object[0]), new ItemData(Materials.LiveRoot, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 10), new ItemData(Materials.CertusQuartz, 1814400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 11), new ItemData(Materials.NetherQuartz, 1814400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 12), new ItemData(Materials.Fluix, 1814400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.quartz_block, 1, 32767), new ItemData(Materials.NetherQuartz, 14515200L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("appliedenergistics2", "tile.BlockQuartz", 1L, 32767), new ItemData(Materials.CertusQuartz, 14515200L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("appliedenergistics2", "tile.BlockQuartzPillar", 1L, 32767), new ItemData(Materials.CertusQuartz, 14515200L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("appliedenergistics2", "tile.BlockQuartzChiseled", 1L, 32767), new ItemData(Materials.CertusQuartz, 14515200L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Items.wheat, 1, 32767), new ItemData(Materials.Wheat, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.hay_block, 1, 32767), new ItemData(Materials.Wheat, 32659200L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Items.snowball, 1, 32767), new ItemData(Materials.Snow, 907200L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.snow, 1, 32767), new ItemData(Materials.Snow, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.glowstone, 1, 32767), new ItemData(Materials.Glowstone, 14515200L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.redstone_lamp, 1, 32767), new ItemData(Materials.Glowstone, 14515200L, new MaterialStack[] { new MaterialStack(Materials.Redstone, OrePrefixes.dust.mMaterialAmount * 4L) })); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.lit_redstone_lamp, 1, 32767), new ItemData(Materials.Glowstone, 14515200L, new MaterialStack[] { new MaterialStack(Materials.Redstone, OrePrefixes.dust.mMaterialAmount * 4L) })); - GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("Forestry", "craftingMaterial", 1L, 5), new ItemData(Materials.Ice, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.ice, 1, 32767), new ItemData(Materials.Ice, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.packed_ice, 1, 32767), new ItemData(Materials.Ice, 7257600L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Items.clay_ball, 1, 32767), new ItemData(Materials.Clay, 1814400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.clay, 1, 32767), new ItemData(Materials.Clay, 7257600L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.hardened_clay, 1, 32767), new ItemData(Materials.Clay, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stained_hardened_clay, 1, 32767), new ItemData(Materials.Clay, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.brick_block, 1, 32767), new ItemData(Materials.Clay, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(GT_ModHandler.getIC2Item("Uran238", 1L), new ItemData(Materials.Uranium, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(GT_ModHandler.getIC2Item("Uran235", 1L), new ItemData(Materials.Uranium235, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(GT_ModHandler.getIC2Item("Plutonium", 1L), new ItemData(Materials.Plutonium, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(GT_ModHandler.getIC2Item("smallUran235", 1L), new ItemData(Materials.Uranium235, 403200L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(GT_ModHandler.getIC2Item("smallPlutonium", 1L), new ItemData(Materials.Plutonium, 403200L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(ItemList.IC2_Item_Casing_Iron.get(1L, new Object[0]), new ItemData(Materials.Iron, 1814400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(ItemList.IC2_Item_Casing_Gold.get(1L, new Object[0]), new ItemData(Materials.Gold, 1814400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(ItemList.IC2_Item_Casing_Bronze.get(1L, new Object[0]), new ItemData(Materials.Bronze, 1814400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(ItemList.IC2_Item_Casing_Copper.get(1L, new Object[0]), new ItemData(Materials.Copper, 1814400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(ItemList.IC2_Item_Casing_Tin.get(1L, new Object[0]), new ItemData(Materials.Tin, 1814400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(ItemList.IC2_Item_Casing_Lead.get(1L, new Object[0]), new ItemData(Materials.Lead, 1814400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(ItemList.IC2_Item_Casing_Steel.get(1L, new Object[0]), new ItemData(Materials.Steel, 1814400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Items.book, 1, 32767), new ItemData(Materials.Paper, 10886400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Items.written_book, 1, 32767), new ItemData(Materials.Paper, 10886400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Items.writable_book, 1, 32767), new ItemData(Materials.Paper, 10886400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Items.enchanted_book, 1, 32767), new ItemData(Materials.Paper, 10886400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Items.golden_apple, 1, 1), new ItemData(Materials.Gold, OrePrefixes.block.mMaterialAmount * 8L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Items.golden_apple, 1, 0), new ItemData(Materials.Gold, OrePrefixes.ingot.mMaterialAmount * 8L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Items.golden_carrot, 1, 0), new ItemData(Materials.Gold, OrePrefixes.nugget.mMaterialAmount * 8L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Items.speckled_melon, 1, 0), new ItemData(Materials.Gold, OrePrefixes.nugget.mMaterialAmount * 8L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Items.minecart, 1), new ItemData(Materials.Iron, 18144000L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Items.iron_door, 1), new ItemData(Materials.Iron, 21772800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Items.cauldron, 1), new ItemData(Materials.Iron, 25401600L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.iron_bars, 8, 32767), new ItemData(Materials.Iron, 10886400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(GT_ModHandler.getIC2Item("ironFurnace", 1L), new ItemData(Materials.Iron, 18144000L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(ItemList.IC2_Food_Can_Empty.get(1L, new Object[0]), new ItemData(Materials.Tin, 1814400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(ItemList.IC2_Fuel_Rod_Empty.get(1L, new Object[0]), new ItemData(Materials.Iron, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(ItemList.IC2_Fuel_Can_Empty.get(1L, new Object[0]), new ItemData(Materials.Tin, 25401600L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.light_weighted_pressure_plate, 1, 32767), new ItemData(Materials.Gold, 7257600L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.heavy_weighted_pressure_plate, 1, 32767), new ItemData(Materials.Iron, 7257600L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("Railcraft", "tile.railcraft.anvil", 1L, 0), new ItemData(Materials.Steel, 108864000L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("Railcraft", "tile.railcraft.anvil", 1L, 1), new ItemData(Materials.Steel, 72576000L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("Railcraft", "tile.railcraft.anvil", 1L, 2), new ItemData(Materials.Steel, 36288000L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.anvil, 1, 0), new ItemData(Materials.Iron, 108864000L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.anvil, 1, 1), new ItemData(Materials.Iron, 72576000L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.anvil, 1, 2), new ItemData(Materials.Iron, 36288000L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.hopper, 1, 32767), new ItemData(Materials.Iron, 18144000L, new MaterialStack[] { new MaterialStack(Materials.Wood, 29030400L) })); - GT_OreDictUnificator.addItemData(ItemList.Cell_Universal_Fluid.get(1L, new Object[0]), new ItemData(Materials.Tin, 7257600L, new MaterialStack[] { new MaterialStack(Materials.Glass, 1360800L) })); - GT_OreDictUnificator.addItemData(ItemList.Cell_Empty.get(1L, new Object[0]), new ItemData(Materials.Tin, 7257600L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.tripwire_hook, 1, 32767), new ItemData(Materials.Iron, OrePrefixes.ring.mMaterialAmount * 2L, new MaterialStack[] { new MaterialStack(Materials.Wood, 3628800L) })); - GT_OreDictUnificator.addItemData(ItemList.Bottle_Empty.get(1L, new Object[0]), new ItemData(Materials.Glass, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Items.potionitem, 1, 32767), new ItemData(Materials.Glass, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stained_glass, 1, 32767), new ItemData(Materials.Glass, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.glass, 1, 32767), new ItemData(Materials.Glass, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stained_glass_pane, 1, 32767), new ItemData(Materials.Glass, 1360800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.glass_pane, 1, 32767), new ItemData(Materials.Glass, 1360800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Items.clock, 1, 32767), new ItemData(Materials.Gold, 14515200L, new MaterialStack[] { new MaterialStack(Materials.Redstone, 3628800L) })); - GT_OreDictUnificator.addItemData(new ItemStack(Items.compass, 1, 32767), new ItemData(Materials.Iron, 14515200L, new MaterialStack[] { new MaterialStack(Materials.Redstone, 3628800L) })); - GT_OreDictUnificator.addItemData(new ItemStack(Items.iron_horse_armor, 1, 32767), new ItemData(Materials.Iron, 29030400L, new MaterialStack[] { new MaterialStack(Materials.Leather, 21772800L) })); - GT_OreDictUnificator.addItemData(new ItemStack(Items.golden_horse_armor, 1, 32767), new ItemData(Materials.Gold, 29030400L, new MaterialStack[] { new MaterialStack(Materials.Leather, 21772800L) })); - GT_OreDictUnificator.addItemData(new ItemStack(Items.diamond_horse_armor, 1, 32767), new ItemData(Materials.Diamond, 29030400L, new MaterialStack[] { new MaterialStack(Materials.Leather, 21772800L) })); - GT_OreDictUnificator.addItemData(new ItemStack(Items.leather, 1, 32767), new ItemData(Materials.Leather, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.beacon, 1, 32767), new ItemData(Materials.NetherStar, 3628800L, new MaterialStack[] { new MaterialStack(Materials.Obsidian, 10886400L), new MaterialStack(Materials.Glass, 18144000L) })); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.enchanting_table, 1, 32767), new ItemData(Materials.Diamond, 7257600L, new MaterialStack[] { new MaterialStack(Materials.Obsidian, 14515200L), new MaterialStack(Materials.Paper, 10886400L) })); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.ender_chest, 1, 32767), new ItemData(Materials.EnderEye, 3628800L, new MaterialStack[] { new MaterialStack(Materials.Obsidian, 29030400L) })); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.bookshelf, 1, 32767), new ItemData(Materials.Paper, 32659200L, new MaterialStack[] { new MaterialStack(Materials.Wood, 21772800L) })); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.lever, 1, 32767), new ItemData(Materials.Stone, 3628800L, new MaterialStack[] { new MaterialStack(Materials.Wood, 1814400L) })); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.ice, 1, 32767), new ItemData(Materials.Ice, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.packed_ice, 1, 32767), new ItemData(Materials.Ice, 7257600L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.snow, 1, 32767), new ItemData(Materials.Snow, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Items.snowball, 1, 32767), new ItemData(Materials.Snow, 907200L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.snow_layer, 1, 32767), new ItemData(Materials.Snow, -1L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.sand, 1, 32767), new ItemData(Materials.Sand, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.sandstone, 1, 32767), new ItemData(Materials.Sand, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_slab, 1, 0), new ItemData(Materials.Stone, 1814400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_slab, 1, 8), new ItemData(Materials.Stone, 1814400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.double_stone_slab, 1, 0), new ItemData(Materials.Stone, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.double_stone_slab, 1, 8), new ItemData(Materials.Stone, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_slab, 1, 1), new ItemData(Materials.Sand, 1814400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_slab, 1, 9), new ItemData(Materials.Sand, 1814400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.double_stone_slab, 1, 1), new ItemData(Materials.Sand, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.double_stone_slab, 1, 9), new ItemData(Materials.Sand, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_slab, 1, 2), new ItemData(Materials.Wood, 1814400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_slab, 1, 10), new ItemData(Materials.Wood, 1814400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.double_stone_slab, 1, 2), new ItemData(Materials.Wood, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.double_stone_slab, 1, 10), new ItemData(Materials.Wood, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_slab, 1, 3), new ItemData(Materials.Stone, 1814400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_slab, 1, 11), new ItemData(Materials.Stone, 1814400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.double_stone_slab, 1, 3), new ItemData(Materials.Stone, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.double_stone_slab, 1, 11), new ItemData(Materials.Stone, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_slab, 1, 5), new ItemData(Materials.Stone, 1814400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_slab, 1, 13), new ItemData(Materials.Stone, 1814400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.double_stone_slab, 1, 5), new ItemData(Materials.Stone, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.double_stone_slab, 1, 13), new ItemData(Materials.Stone, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone, 1, 32767), new ItemData(Materials.Stone, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.furnace, 1, 32767), new ItemData(Materials.Stone, 29030400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.lit_furnace, 1, 32767), new ItemData(Materials.Stone, 29030400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stonebrick, 1, 32767), new ItemData(Materials.Stone, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.cobblestone, 1, 32767), new ItemData(Materials.Stone, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.mossy_cobblestone, 1, 32767), new ItemData(Materials.Stone, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_button, 1, 32767), new ItemData(Materials.Stone, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_pressure_plate, 1, 32767), new ItemData(Materials.Stone, 7257600L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.ladder, 1, 32767), new ItemData(Materials.Wood, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.wooden_button, 1, 32767), new ItemData(Materials.Wood, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.wooden_pressure_plate, 1, 32767), new ItemData(Materials.Wood, 7257600L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.fence, 1, 32767), new ItemData(Materials.Wood, 5443200L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Items.bowl, 1, 32767), new ItemData(Materials.Wood, 3628800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Items.sign, 1, 32767), new ItemData(Materials.Wood, 7257600L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Items.wooden_door, 1, 32767), new ItemData(Materials.Wood, 21772800L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.chest, 1, 32767), new ItemData(Materials.Wood, 29030400L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.trapped_chest, 1, 32767), new ItemData(Materials.Wood, 32659200L, new MaterialStack[] { new MaterialStack(Materials.Iron, OrePrefixes.ring.mMaterialAmount * 2L) })); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.unlit_redstone_torch, 1, 32767), new ItemData(Materials.Wood, 1814400L, new MaterialStack[] { new MaterialStack(Materials.Redstone, 3628800L) })); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.redstone_torch, 1, 32767), new ItemData(Materials.Wood, 1814400L, new MaterialStack[] { new MaterialStack(Materials.Redstone, 3628800L) })); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.noteblock, 1, 32767), new ItemData(Materials.Wood, 29030400L, new MaterialStack[] { new MaterialStack(Materials.Redstone, 3628800L) })); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.jukebox, 1, 32767), new ItemData(Materials.Wood, 29030400L, new MaterialStack[] { new MaterialStack(Materials.Diamond, 3628800L) })); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.crafting_table, 1, 32767), new ItemData(Materials.Wood, 14515200L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.piston, 1, 32767), new ItemData(Materials.Stone, 14515200L, new MaterialStack[] { new MaterialStack(Materials.Wood, 10886400L) })); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.sticky_piston, 1, 32767), new ItemData(Materials.Stone, 14515200L, new MaterialStack[] { new MaterialStack(Materials.Wood, 10886400L) })); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.dispenser, 1, 32767), new ItemData(Materials.Stone, 25401600L, new MaterialStack[] { new MaterialStack(Materials.Redstone, 3628800L) })); - GT_OreDictUnificator.addItemData(new ItemStack(Blocks.dropper, 1, 32767), new ItemData(Materials.Stone, 25401600L, new MaterialStack[] { new MaterialStack(Materials.Redstone, 3628800L) })); - GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("Thaumcraft", "ItemNuggetChicken", 1L, 32767), new ItemData(Materials.MeatCooked, 403200L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("Thaumcraft", "ItemNuggetBeef", 1L, 32767), new ItemData(Materials.MeatCooked, 403200L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("Thaumcraft", "ItemNuggetPork", 1L, 32767), new ItemData(Materials.MeatCooked, 403200L, new MaterialStack[0])); - GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("Thaumcraft", "ItemNuggetFish", 1L, 32767), new ItemData(Materials.MeatCooked, 403200L, new MaterialStack[0])); - for (ItemStack tItem : new ItemStack[] { GT_ModHandler.getModItem("TwilightForest", "item.meefRaw", 1L, 0), GT_ModHandler.getModItem("TwilightForest", "item.venisonRaw", 1L, 0), new ItemStack(Items.porkchop), new ItemStack(Items.beef), new ItemStack(Items.chicken), new ItemStack(Items.fish) }) { - if (tItem != null) { - GT_OreDictUnificator.addItemData(GT_Utility.copyMetaData(32767L, new Object[] { tItem }), new ItemData(Materials.MeatRaw, 3628800L, new MaterialStack[] { new MaterialStack(Materials.Bone, 403200L) })); - } + implements Runnable { + public void run() { + GT_Log.out.println("GT_Mod: Loading Item Data Tags"); + GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("TwilightForest", "item.giantPick", 1L, 0), new ItemData(Materials.Stone, 696729600L, new MaterialStack[]{new MaterialStack(Materials.Wood, 464486400L)})); + GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("TwilightForest", "item.giantSword", 1L, 0), new ItemData(Materials.Stone, 464486400L, new MaterialStack[]{new MaterialStack(Materials.Wood, 232243200L)})); + GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("TwilightForest", "tile.GiantLog", 1L, 32767), new ItemData(Materials.Wood, 232243200L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("TwilightForest", "tile.GiantCobble", 1L, 32767), new ItemData(Materials.Stone, 232243200L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("TwilightForest", "tile.GiantObsidian", 1L, 32767), new ItemData(Materials.Obsidian, 232243200L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("TwilightForest", "item.minotaurAxe", 1L, 0), new ItemData(Materials.Diamond, 14515200L, new MaterialStack[]{new MaterialStack(Materials.Wood, OrePrefixes.stick.mMaterialAmount * 2L)})); + GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("TwilightForest", "item.armorShards", 1L, 0), new ItemData(Materials.Knightmetal, 403200L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("TwilightForest", "item.shardCluster", 1L, 0), new ItemData(Materials.Knightmetal, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(ItemList.TF_LiveRoot.get(1L, new Object[0]), new ItemData(Materials.LiveRoot, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 10), new ItemData(Materials.CertusQuartz, 1814400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 11), new ItemData(Materials.NetherQuartz, 1814400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 12), new ItemData(Materials.Fluix, 1814400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.quartz_block, 1, 32767), new ItemData(Materials.NetherQuartz, 14515200L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("appliedenergistics2", "tile.BlockQuartz", 1L, 32767), new ItemData(Materials.CertusQuartz, 14515200L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("appliedenergistics2", "tile.BlockQuartzPillar", 1L, 32767), new ItemData(Materials.CertusQuartz, 14515200L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("appliedenergistics2", "tile.BlockQuartzChiseled", 1L, 32767), new ItemData(Materials.CertusQuartz, 14515200L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Items.wheat, 1, 32767), new ItemData(Materials.Wheat, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.hay_block, 1, 32767), new ItemData(Materials.Wheat, 32659200L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Items.snowball, 1, 32767), new ItemData(Materials.Snow, 907200L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.snow, 1, 32767), new ItemData(Materials.Snow, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.glowstone, 1, 32767), new ItemData(Materials.Glowstone, 14515200L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.redstone_lamp, 1, 32767), new ItemData(Materials.Glowstone, 14515200L, new MaterialStack[]{new MaterialStack(Materials.Redstone, OrePrefixes.dust.mMaterialAmount * 4L)})); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.lit_redstone_lamp, 1, 32767), new ItemData(Materials.Glowstone, 14515200L, new MaterialStack[]{new MaterialStack(Materials.Redstone, OrePrefixes.dust.mMaterialAmount * 4L)})); + GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("Forestry", "craftingMaterial", 1L, 5), new ItemData(Materials.Ice, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.ice, 1, 32767), new ItemData(Materials.Ice, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.packed_ice, 1, 32767), new ItemData(Materials.Ice, 7257600L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Items.clay_ball, 1, 32767), new ItemData(Materials.Clay, 1814400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.clay, 1, 32767), new ItemData(Materials.Clay, 7257600L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.hardened_clay, 1, 32767), new ItemData(Materials.Clay, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stained_hardened_clay, 1, 32767), new ItemData(Materials.Clay, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.brick_block, 1, 32767), new ItemData(Materials.Clay, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(GT_ModHandler.getIC2Item("Uran238", 1L), new ItemData(Materials.Uranium, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(GT_ModHandler.getIC2Item("Uran235", 1L), new ItemData(Materials.Uranium235, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(GT_ModHandler.getIC2Item("Plutonium", 1L), new ItemData(Materials.Plutonium, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(GT_ModHandler.getIC2Item("smallUran235", 1L), new ItemData(Materials.Uranium235, 403200L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(GT_ModHandler.getIC2Item("smallPlutonium", 1L), new ItemData(Materials.Plutonium, 403200L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(ItemList.IC2_Item_Casing_Iron.get(1L, new Object[0]), new ItemData(Materials.Iron, 1814400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(ItemList.IC2_Item_Casing_Gold.get(1L, new Object[0]), new ItemData(Materials.Gold, 1814400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(ItemList.IC2_Item_Casing_Bronze.get(1L, new Object[0]), new ItemData(Materials.Bronze, 1814400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(ItemList.IC2_Item_Casing_Copper.get(1L, new Object[0]), new ItemData(Materials.Copper, 1814400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(ItemList.IC2_Item_Casing_Tin.get(1L, new Object[0]), new ItemData(Materials.Tin, 1814400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(ItemList.IC2_Item_Casing_Lead.get(1L, new Object[0]), new ItemData(Materials.Lead, 1814400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(ItemList.IC2_Item_Casing_Steel.get(1L, new Object[0]), new ItemData(Materials.Steel, 1814400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Items.book, 1, 32767), new ItemData(Materials.Paper, 10886400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Items.written_book, 1, 32767), new ItemData(Materials.Paper, 10886400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Items.writable_book, 1, 32767), new ItemData(Materials.Paper, 10886400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Items.enchanted_book, 1, 32767), new ItemData(Materials.Paper, 10886400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Items.golden_apple, 1, 1), new ItemData(Materials.Gold, OrePrefixes.block.mMaterialAmount * 8L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Items.golden_apple, 1, 0), new ItemData(Materials.Gold, OrePrefixes.ingot.mMaterialAmount * 8L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Items.golden_carrot, 1, 0), new ItemData(Materials.Gold, OrePrefixes.nugget.mMaterialAmount * 8L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Items.speckled_melon, 1, 0), new ItemData(Materials.Gold, OrePrefixes.nugget.mMaterialAmount * 8L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Items.minecart, 1), new ItemData(Materials.Iron, 18144000L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Items.iron_door, 1), new ItemData(Materials.Iron, 21772800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Items.cauldron, 1), new ItemData(Materials.Iron, 25401600L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.iron_bars, 8, 32767), new ItemData(Materials.Iron, 10886400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(GT_ModHandler.getIC2Item("ironFurnace", 1L), new ItemData(Materials.Iron, 18144000L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(ItemList.IC2_Food_Can_Empty.get(1L, new Object[0]), new ItemData(Materials.Tin, 1814400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(ItemList.IC2_Fuel_Rod_Empty.get(1L, new Object[0]), new ItemData(Materials.Iron, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(ItemList.IC2_Fuel_Can_Empty.get(1L, new Object[0]), new ItemData(Materials.Tin, 25401600L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.light_weighted_pressure_plate, 1, 32767), new ItemData(Materials.Gold, 7257600L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.heavy_weighted_pressure_plate, 1, 32767), new ItemData(Materials.Iron, 7257600L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("Railcraft", "tile.railcraft.anvil", 1L, 0), new ItemData(Materials.Steel, 108864000L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("Railcraft", "tile.railcraft.anvil", 1L, 1), new ItemData(Materials.Steel, 72576000L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("Railcraft", "tile.railcraft.anvil", 1L, 2), new ItemData(Materials.Steel, 36288000L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.anvil, 1, 0), new ItemData(Materials.Iron, 108864000L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.anvil, 1, 1), new ItemData(Materials.Iron, 72576000L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.anvil, 1, 2), new ItemData(Materials.Iron, 36288000L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.hopper, 1, 32767), new ItemData(Materials.Iron, 18144000L, new MaterialStack[]{new MaterialStack(Materials.Wood, 29030400L)})); + GT_OreDictUnificator.addItemData(ItemList.Cell_Universal_Fluid.get(1L, new Object[0]), new ItemData(Materials.Tin, 7257600L, new MaterialStack[]{new MaterialStack(Materials.Glass, 1360800L)})); + GT_OreDictUnificator.addItemData(ItemList.Cell_Empty.get(1L, new Object[0]), new ItemData(Materials.Tin, 7257600L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.tripwire_hook, 1, 32767), new ItemData(Materials.Iron, OrePrefixes.ring.mMaterialAmount * 2L, new MaterialStack[]{new MaterialStack(Materials.Wood, 3628800L)})); + GT_OreDictUnificator.addItemData(ItemList.Bottle_Empty.get(1L, new Object[0]), new ItemData(Materials.Glass, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Items.potionitem, 1, 32767), new ItemData(Materials.Glass, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stained_glass, 1, 32767), new ItemData(Materials.Glass, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.glass, 1, 32767), new ItemData(Materials.Glass, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stained_glass_pane, 1, 32767), new ItemData(Materials.Glass, 1360800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.glass_pane, 1, 32767), new ItemData(Materials.Glass, 1360800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Items.clock, 1, 32767), new ItemData(Materials.Gold, 14515200L, new MaterialStack[]{new MaterialStack(Materials.Redstone, 3628800L)})); + GT_OreDictUnificator.addItemData(new ItemStack(Items.compass, 1, 32767), new ItemData(Materials.Iron, 14515200L, new MaterialStack[]{new MaterialStack(Materials.Redstone, 3628800L)})); + GT_OreDictUnificator.addItemData(new ItemStack(Items.iron_horse_armor, 1, 32767), new ItemData(Materials.Iron, 29030400L, new MaterialStack[]{new MaterialStack(Materials.Leather, 21772800L)})); + GT_OreDictUnificator.addItemData(new ItemStack(Items.golden_horse_armor, 1, 32767), new ItemData(Materials.Gold, 29030400L, new MaterialStack[]{new MaterialStack(Materials.Leather, 21772800L)})); + GT_OreDictUnificator.addItemData(new ItemStack(Items.diamond_horse_armor, 1, 32767), new ItemData(Materials.Diamond, 29030400L, new MaterialStack[]{new MaterialStack(Materials.Leather, 21772800L)})); + GT_OreDictUnificator.addItemData(new ItemStack(Items.leather, 1, 32767), new ItemData(Materials.Leather, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.beacon, 1, 32767), new ItemData(Materials.NetherStar, 3628800L, new MaterialStack[]{new MaterialStack(Materials.Obsidian, 10886400L), new MaterialStack(Materials.Glass, 18144000L)})); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.enchanting_table, 1, 32767), new ItemData(Materials.Diamond, 7257600L, new MaterialStack[]{new MaterialStack(Materials.Obsidian, 14515200L), new MaterialStack(Materials.Paper, 10886400L)})); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.ender_chest, 1, 32767), new ItemData(Materials.EnderEye, 3628800L, new MaterialStack[]{new MaterialStack(Materials.Obsidian, 29030400L)})); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.bookshelf, 1, 32767), new ItemData(Materials.Paper, 32659200L, new MaterialStack[]{new MaterialStack(Materials.Wood, 21772800L)})); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.lever, 1, 32767), new ItemData(Materials.Stone, 3628800L, new MaterialStack[]{new MaterialStack(Materials.Wood, 1814400L)})); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.ice, 1, 32767), new ItemData(Materials.Ice, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.packed_ice, 1, 32767), new ItemData(Materials.Ice, 7257600L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.snow, 1, 32767), new ItemData(Materials.Snow, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Items.snowball, 1, 32767), new ItemData(Materials.Snow, 907200L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.snow_layer, 1, 32767), new ItemData(Materials.Snow, -1L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.sand, 1, 32767), new ItemData(Materials.Sand, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.sandstone, 1, 32767), new ItemData(Materials.Sand, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_slab, 1, 0), new ItemData(Materials.Stone, 1814400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_slab, 1, 8), new ItemData(Materials.Stone, 1814400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.double_stone_slab, 1, 0), new ItemData(Materials.Stone, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.double_stone_slab, 1, 8), new ItemData(Materials.Stone, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_slab, 1, 1), new ItemData(Materials.Sand, 1814400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_slab, 1, 9), new ItemData(Materials.Sand, 1814400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.double_stone_slab, 1, 1), new ItemData(Materials.Sand, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.double_stone_slab, 1, 9), new ItemData(Materials.Sand, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_slab, 1, 2), new ItemData(Materials.Wood, 1814400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_slab, 1, 10), new ItemData(Materials.Wood, 1814400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.double_stone_slab, 1, 2), new ItemData(Materials.Wood, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.double_stone_slab, 1, 10), new ItemData(Materials.Wood, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_slab, 1, 3), new ItemData(Materials.Stone, 1814400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_slab, 1, 11), new ItemData(Materials.Stone, 1814400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.double_stone_slab, 1, 3), new ItemData(Materials.Stone, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.double_stone_slab, 1, 11), new ItemData(Materials.Stone, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_slab, 1, 5), new ItemData(Materials.Stone, 1814400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_slab, 1, 13), new ItemData(Materials.Stone, 1814400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.double_stone_slab, 1, 5), new ItemData(Materials.Stone, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.double_stone_slab, 1, 13), new ItemData(Materials.Stone, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone, 1, 32767), new ItemData(Materials.Stone, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.furnace, 1, 32767), new ItemData(Materials.Stone, 29030400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.lit_furnace, 1, 32767), new ItemData(Materials.Stone, 29030400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stonebrick, 1, 32767), new ItemData(Materials.Stone, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.cobblestone, 1, 32767), new ItemData(Materials.Stone, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.mossy_cobblestone, 1, 32767), new ItemData(Materials.Stone, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_button, 1, 32767), new ItemData(Materials.Stone, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.stone_pressure_plate, 1, 32767), new ItemData(Materials.Stone, 7257600L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.ladder, 1, 32767), new ItemData(Materials.Wood, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.wooden_button, 1, 32767), new ItemData(Materials.Wood, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.wooden_pressure_plate, 1, 32767), new ItemData(Materials.Wood, 7257600L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.fence, 1, 32767), new ItemData(Materials.Wood, 5443200L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Items.bowl, 1, 32767), new ItemData(Materials.Wood, 3628800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Items.sign, 1, 32767), new ItemData(Materials.Wood, 7257600L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Items.wooden_door, 1, 32767), new ItemData(Materials.Wood, 21772800L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.chest, 1, 32767), new ItemData(Materials.Wood, 29030400L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.trapped_chest, 1, 32767), new ItemData(Materials.Wood, 32659200L, new MaterialStack[]{new MaterialStack(Materials.Iron, OrePrefixes.ring.mMaterialAmount * 2L)})); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.unlit_redstone_torch, 1, 32767), new ItemData(Materials.Wood, 1814400L, new MaterialStack[]{new MaterialStack(Materials.Redstone, 3628800L)})); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.redstone_torch, 1, 32767), new ItemData(Materials.Wood, 1814400L, new MaterialStack[]{new MaterialStack(Materials.Redstone, 3628800L)})); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.noteblock, 1, 32767), new ItemData(Materials.Wood, 29030400L, new MaterialStack[]{new MaterialStack(Materials.Redstone, 3628800L)})); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.jukebox, 1, 32767), new ItemData(Materials.Wood, 29030400L, new MaterialStack[]{new MaterialStack(Materials.Diamond, 3628800L)})); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.crafting_table, 1, 32767), new ItemData(Materials.Wood, 14515200L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.piston, 1, 32767), new ItemData(Materials.Stone, 14515200L, new MaterialStack[]{new MaterialStack(Materials.Wood, 10886400L)})); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.sticky_piston, 1, 32767), new ItemData(Materials.Stone, 14515200L, new MaterialStack[]{new MaterialStack(Materials.Wood, 10886400L)})); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.dispenser, 1, 32767), new ItemData(Materials.Stone, 25401600L, new MaterialStack[]{new MaterialStack(Materials.Redstone, 3628800L)})); + GT_OreDictUnificator.addItemData(new ItemStack(Blocks.dropper, 1, 32767), new ItemData(Materials.Stone, 25401600L, new MaterialStack[]{new MaterialStack(Materials.Redstone, 3628800L)})); + GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("Thaumcraft", "ItemNuggetChicken", 1L, 32767), new ItemData(Materials.MeatCooked, 403200L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("Thaumcraft", "ItemNuggetBeef", 1L, 32767), new ItemData(Materials.MeatCooked, 403200L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("Thaumcraft", "ItemNuggetPork", 1L, 32767), new ItemData(Materials.MeatCooked, 403200L, new MaterialStack[0])); + GT_OreDictUnificator.addItemData(GT_ModHandler.getModItem("Thaumcraft", "ItemNuggetFish", 1L, 32767), new ItemData(Materials.MeatCooked, 403200L, new MaterialStack[0])); + for (ItemStack tItem : new ItemStack[]{GT_ModHandler.getModItem("TwilightForest", "item.meefRaw", 1L, 0), GT_ModHandler.getModItem("TwilightForest", "item.venisonRaw", 1L, 0), new ItemStack(Items.porkchop), new ItemStack(Items.beef), new ItemStack(Items.chicken), new ItemStack(Items.fish)}) { + if (tItem != null) { + GT_OreDictUnificator.addItemData(GT_Utility.copyMetaData(32767L, new Object[]{tItem}), new ItemData(Materials.MeatRaw, 3628800L, new MaterialStack[]{new MaterialStack(Materials.Bone, 403200L)})); + } + } + for (ItemStack tItem : new ItemStack[]{GT_ModHandler.getModItem("TwilightForest", "item.meefSteak", 1L, 0), GT_ModHandler.getModItem("TwilightForest", "item.venisonCooked", 1L, 0), new ItemStack(Items.cooked_porkchop), new ItemStack(Items.cooked_beef), new ItemStack(Items.cooked_chicken), new ItemStack(Items.cooked_fished)}) { + if (tItem != null) { + GT_OreDictUnificator.addItemData(GT_Utility.copyMetaData(32767L, new Object[]{tItem}), new ItemData(Materials.MeatCooked, 3628800L, new MaterialStack[]{new MaterialStack(Materials.Bone, 403200L)})); + } + } } - for (ItemStack tItem : new ItemStack[] { GT_ModHandler.getModItem("TwilightForest", "item.meefSteak", 1L, 0), GT_ModHandler.getModItem("TwilightForest", "item.venisonCooked", 1L, 0), new ItemStack(Items.cooked_porkchop), new ItemStack(Items.cooked_beef), new ItemStack(Items.cooked_chicken), new ItemStack(Items.cooked_fished) }) { - if (tItem != null) { - GT_OreDictUnificator.addItemData(GT_Utility.copyMetaData(32767L, new Object[] { tItem }), new ItemData(Materials.MeatCooked, 3628800L, new MaterialStack[] { new MaterialStack(Materials.Bone, 403200L) })); - } - } - } } diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java index 23cf902c..59821129 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java @@ -1,18 +1,11 @@ package gregtech.loaders.preload; import codechicken.nei.api.API; -import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.event.FMLInterModComms; import cpw.mods.fml.common.registry.GameRegistry; import gregtech.GT_Mod; import gregtech.api.GregTech_API; -import gregtech.api.enums.ConfigCategories; -import gregtech.api.enums.Dyes; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.SubTag; +import gregtech.api.enums.*; import gregtech.api.items.GT_Generic_Item; import gregtech.api.items.GT_RadioactiveCellIC_Item; import gregtech.api.metatileentity.BaseMetaPipeEntity; @@ -21,462 +14,432 @@ import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; -import gregtech.common.GT_Proxy; -import gregtech.common.blocks.GT_Block_Casings1; -import gregtech.common.blocks.GT_Block_Casings2; -import gregtech.common.blocks.GT_Block_Casings3; -import gregtech.common.blocks.GT_Block_Casings4; -import gregtech.common.blocks.GT_Block_Concretes; -import gregtech.common.blocks.GT_Block_Granites; -import gregtech.common.blocks.GT_Block_Machines; -import gregtech.common.blocks.GT_Block_Ores; -import gregtech.common.blocks.GT_TileEntity_Ores; -import gregtech.common.items.GT_DepletetCell_Item; -import gregtech.common.items.GT_FluidDisplayItem; -import gregtech.common.items.GT_IntegratedCircuit_Item; -import gregtech.common.items.GT_MetaGenerated_Item_01; -import gregtech.common.items.GT_MetaGenerated_Item_02; -import gregtech.common.items.GT_MetaGenerated_Item_03; -import gregtech.common.items.GT_MetaGenerated_Tool_01; -import gregtech.common.items.GT_NeutronReflector_Item; -import ic2.core.Ic2Items; -import ic2.core.item.ItemRadioactive; - -import java.io.PrintStream; - +import gregtech.common.blocks.*; +import gregtech.common.items.*; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidContainerRegistry; -import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; public class GT_Loader_Item_Block_And_Fluid - implements Runnable -{ - public void run() - { - Materials.Water.mFluid = (Materials.Ice.mFluid = GT_ModHandler.getWater(1000L).getFluid()); - Materials.Lava.mFluid = GT_ModHandler.getLava(1000L).getFluid(); - - GT_Log.out.println("GT_Mod: Register Books."); - - GT_Utility.getWrittenBook("Manual_Printer", "Printer Manual V2.0", "Gregorius Techneticies", new String[] { - "This Manual explains the different Functionalities the GregTech Printing Factory has built in, which are not in NEI. Most got NEI Support now, but there is still some left without it.", - "1. Coloring Items and Blocks: You know those Crafting Recipes, which have a dye surrounded by 8 Item to dye them? Or the ones which have just one Item and one Dye in the Grid? Those two Recipe Types can be cheaply automated using the Printer.", - "The Colorization Functionality even optimizes the Recipes, which normally require 8 Items + 1 Dye to 1 Item and an 8th of the normally used Dye in Fluid Form, isn't that awesome?", - "2. Copying Books: This Task got slightly harder. The first Step is putting the written and signed Book inside the Scanner with a Data Stick ready to receive the Data.", - "Now insert the Stick into the Data Slot of the Printer and add 3 pieces of Paper together with 144 Liters of actual Ink Fluid. Water mixed and chemical Dyes won't work on Paper without messing things up!", - "You got a stack of Pages for your new Book, just put them into the Assembler with some Glue and a piece of Leather for the Binding, and you receive an identical copy of the Book, which would stack together with the original.", - "3. Renaming Items: This Functionality is no longer Part of the Printer. There is now a Name Mold for the Forming Press to imprint a Name into an Item, just rename the Mold in an Anvil and use it in the Forming Press on any Item.", - "4. Crafting of Books, Maps, Nametags etc etc etc: Those Recipes moved to other Machines, just look them up in NEI." }); - - GT_Utility.getWrittenBook("Manual_Punch_Cards", "Punch Card Manual V0.0", "Gregorius Techneticies", new String[] { - "This Manual will explain the Functionality of the Punch Cards, once they are fully implemented. And no, they won't be like the IRL Punch Cards. This is just a current Idea Collection.", - "(i1&&i2)?o1=15:o1=0;=10", - "ignore all Whitespace Characters, use Long for saving the Numbers", - "&& || ^^ & | ^ ! ++ -- + - % / // * ** << >> >>> < > <= >= == != ~ ( ) ?: , ; ;= ;=X; = i0 i1 i2 i3 i4 i5 o0 o1 o2 o3 o4 o5 v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 m0 m1 m2 m3 m4 m5 m6 m7 m8 m9 A B C D E F", - "'0' = false, 'everything but 0' = true, '!' turns '0' into '1' and everything else into '0'", "',' is just a separator for multiple executed Codes in a row.", - "';' means that the Program waits until the next tick before continuing. ';=10' and ';=10;' both mean that it will wait 10 Ticks instead of 1. And ';=0' or anything < 0 will default to 0.", - "If the '=' Operator is used within Brackets, it returns the value the variable has been set to.", - "The Program saves the Char Index of the current Task, the 10 Variables (which reset to 0 as soon as the Program Loop stops), the 10 Member Variables and the remaining waiting Time in its NBT.", - "A = 10, B = 11, C = 12, D = 13, E = 14, F = 15, just for Hexadecimal Space saving, since Redstone has only 4 Bits.", - "For implementing Loops you just need 1 Punch Card per Loop, these Cards can restart once they are finished, depending on how many other Cards there are in the Program Loop you inserted your Card into, since it will process them procedurally.", - "A Punch Card Processor can run up to four Loops, each with the length of seven Punch Cards, parallel.", - "Why does the Punch Card need Ink to be made, you ask? Because the empty one needs to have some lines on, and the for the punched one it prints the Code to execute in a human readable format on the Card." }); + implements Runnable { + public void run() { + Materials.Water.mFluid = (Materials.Ice.mFluid = GT_ModHandler.getWater(1000L).getFluid()); + Materials.Lava.mFluid = GT_ModHandler.getLava(1000L).getFluid(); - GT_Utility.getWrittenBook("Manual_Microwave", "Microwave Oven Manual", "Kitchen Industries", new String[] { - "Congratulations, you inserted a random seemingly empty Book into the Microwave and these Letters appeared out of nowhere.", - "You just got a Microwave Oven and asked yourself 'why do I even need it?'. It's simple, the Microwave can cook for just 128 EU and at an insane speed. Not even a normal E-furnace can do it that fast and cheap!", - "This is the cheapest and fastest way to cook for you. That is why the Microwave Oven can be found in almost every Kitchen (see www.youwannabuyakitchen.ly).", - "Long time exposure to Microwaves can cause Cancer, but we doubt Steve lives long enough to die because of that.", - "Do not insert any Metals. It might result in an Explosion.", - "Do not dry Animals with it. It will result in a Hot Dog, no matter which Animal you put into it.", - "Do not insert inflammable Objects. The Oven will catch on Fire.", "Do not insert Explosives such as Eggs. Just don't." }); - - GT_Log.out.println("GT_Mod: Register Items."); - - new GT_IntegratedCircuit_Item(); - new GT_MetaGenerated_Item_01(); - new GT_MetaGenerated_Item_02(); - new GT_MetaGenerated_Item_03(); - new GT_MetaGenerated_Tool_01(); - - new GT_FluidDisplayItem(); - - Item tItem = (Item)GT_Utility.callConstructor("gregtech.common.items.GT_SensorCard_Item", 0, null, false, new Object[] { "sensorcard", "GregTech Sensor Card" }); - ItemList.NC_SensorCard.set(tItem == null ? new GT_Generic_Item("sensorcard", "GregTech Sensor Card", "Nuclear Control not installed", false) : tItem); + GT_Log.out.println("GT_Mod: Register Books."); - ItemList.Neutron_Reflector.set(new GT_NeutronReflector_Item("neutronreflector", "Iridium Neutron Reflector", 0)); - GT_ModHandler.addCraftingRecipe(ItemList.Neutron_Reflector.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE , new Object[] { "RRR", "RPR", "RRR",'R', GT_ModHandler.getIC2Item("reactorReflectorThick", 1L,1),'P', OrePrefixes.plateAlloy.get(Materials.Iridium) }); - - ItemList.Reactor_Coolant_He_1.set(GregTech_API.constructCoolantCellItem("60k_Helium_Coolantcell", "60k He Coolant Cell", 60000)); - GT_ModHandler.addCraftingRecipe(ItemList.Reactor_Coolant_He_1.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE , new Object[] { " P ", "PCP", " P ",'C', OrePrefixes.cell.get(Materials.Helium),'P', OrePrefixes.plate.get(Materials.Tin) }); - - ItemList.Reactor_Coolant_He_3.set(GregTech_API.constructCoolantCellItem("180k_Helium_Coolantcell", "180k He Coolant Cell", 180000)); - GT_ModHandler.addCraftingRecipe(ItemList.Reactor_Coolant_He_3.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE , new Object[] { "PCP", "PCP", "PCP",'C', ItemList.Reactor_Coolant_He_1,'P', OrePrefixes.plate.get(Materials.Tin)}); - - ItemList.Reactor_Coolant_He_6.set(GregTech_API.constructCoolantCellItem("360k_Helium_Coolantcell", "360k He Coolant Cell", 360000)); - GT_ModHandler.addCraftingRecipe(ItemList.Reactor_Coolant_He_6.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE , new Object[] { "PCP", "PDP", "PCP",'C', ItemList.Reactor_Coolant_He_3,'P', OrePrefixes.plate.get(Materials.Tin),'D',OrePrefixes.plateDense.get(Materials.Copper) }); - - ItemList.Reactor_Coolant_NaK_1.set(GregTech_API.constructCoolantCellItem("60k_NaK_Coolantcell", "60k NaK Coolantcell", 60000)); - GT_ModHandler.addCraftingRecipe(ItemList.Reactor_Coolant_NaK_1.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE , new Object[] { "TST", "PCP", "TST",'C', GT_ModHandler.getIC2Item("reactorCoolantSimple", 1L, 1),'T', OrePrefixes.plate.get(Materials.Tin) ,'S', OrePrefixes.dust.get(Materials.Sodium),'P', OrePrefixes.dust.get(Materials.Potassium)}); - - ItemList.Reactor_Coolant_NaK_3.set(GregTech_API.constructCoolantCellItem("180k_NaK_Coolantcell", "180k NaK Coolantcell", 180000)); - GT_ModHandler.addCraftingRecipe(ItemList.Reactor_Coolant_NaK_3.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE , new Object[] { "PCP", "PCP", "PCP",'C', ItemList.Reactor_Coolant_NaK_1,'P', OrePrefixes.plate.get(Materials.Tin)}); - - ItemList.Reactor_Coolant_NaK_6.set(GregTech_API.constructCoolantCellItem("360k_NaK_Coolantcell", "360k NaK Coolantcell", 360000)); - GT_ModHandler.addCraftingRecipe(ItemList.Reactor_Coolant_NaK_6.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE , new Object[] { "PCP", "PDP", "PCP",'C', ItemList.Reactor_Coolant_NaK_3,'P', OrePrefixes.plate.get(Materials.Tin),'D',OrePrefixes.plateDense.get(Materials.Copper) }); - - ItemList.ThoriumCell_1.set(new GT_RadioactiveCellIC_Item("Thoriumcell", "Fuel Rod (Thorium)", 1, 50000, 0.2F,0,0.25F)); - - ItemList.ThoriumCell_2.set(new GT_RadioactiveCellIC_Item("Double_Thoriumcell", "Double Fuel Rod (Thorium)", 2, 50000, 0.2F,0,0.25F)); - GT_ModHandler.addCraftingRecipe(ItemList.ThoriumCell_2.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE , new Object[] { "RPR", " ", " ",'R', ItemList.ThoriumCell_1 ,'P', OrePrefixes.plate.get(Materials.Iron) }); - - ItemList.ThoriumCell_4.set(new GT_RadioactiveCellIC_Item("Quad_Thoriumcell", "Quad Fuel Rod (Thorium)", 4, 50000, 0.2F,0,0.25F)); - GT_ModHandler.addCraftingRecipe(ItemList.ThoriumCell_4.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE , new Object[] { "RPR", "CPC", "RPR",'R', ItemList.ThoriumCell_1 ,'P', OrePrefixes.plate.get(Materials.Iron),'C', OrePrefixes.plate.get(Materials.Copper) }); - - ItemList.Depleted_Thorium_1.set(new GT_DepletetCell_Item("ThoriumcellDep","Fuel Rod (Depleted Thorium)",1)); - ItemList.Depleted_Thorium_2.set(new GT_DepletetCell_Item("Double_ThoriumcellDep","Dual Fuel Rod (Depleted Thorium)",2)); - ItemList.Depleted_Thorium_4.set(new GT_DepletetCell_Item("Quad_ThoriumcellDep","Quad Fuel Rod (Depleted Thorium)",4)); + GT_Utility.getWrittenBook("Manual_Printer", "Printer Manual V2.0", "Gregorius Techneticies", new String[]{ + "This Manual explains the different Functionalities the GregTech Printing Factory has built in, which are not in NEI. Most got NEI Support now, but there is still some left without it.", + "1. Coloring Items and Blocks: You know those Crafting Recipes, which have a dye surrounded by 8 Item to dye them? Or the ones which have just one Item and one Dye in the Grid? Those two Recipe Types can be cheaply automated using the Printer.", + "The Colorization Functionality even optimizes the Recipes, which normally require 8 Items + 1 Dye to 1 Item and an 8th of the normally used Dye in Fluid Form, isn't that awesome?", + "2. Copying Books: This Task got slightly harder. The first Step is putting the written and signed Book inside the Scanner with a Data Stick ready to receive the Data.", + "Now insert the Stick into the Data Slot of the Printer and add 3 pieces of Paper together with 144 Liters of actual Ink Fluid. Water mixed and chemical Dyes won't work on Paper without messing things up!", + "You got a stack of Pages for your new Book, just put them into the Assembler with some Glue and a piece of Leather for the Binding, and you receive an identical copy of the Book, which would stack together with the original.", + "3. Renaming Items: This Functionality is no longer Part of the Printer. There is now a Name Mold for the Forming Press to imprint a Name into an Item, just rename the Mold in an Anvil and use it in the Forming Press on any Item.", + "4. Crafting of Books, Maps, Nametags etc etc etc: Those Recipes moved to other Machines, just look them up in NEI."}); - GT_ModHandler.addThermalCentrifugeRecipe(ItemList.Depleted_Thorium_1.get(1, new Object[0]), 5000, new Object[]{ GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Lutetium, 1L),GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Thorium, 2L),GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1L)}); - GT_ModHandler.addThermalCentrifugeRecipe(ItemList.Depleted_Thorium_2.get(1, new Object[0]), 5000, new Object[]{ GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Lutetium, 2L),GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Thorium, 4L),GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 3L)}); - GT_ModHandler.addThermalCentrifugeRecipe(ItemList.Depleted_Thorium_4.get(1, new Object[0]), 5000, new Object[]{ GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Lutetium, 4L),GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Thorium, 8L),GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 6L)}); + GT_Utility.getWrittenBook("Manual_Punch_Cards", "Punch Card Manual V0.0", "Gregorius Techneticies", new String[]{ + "This Manual will explain the Functionality of the Punch Cards, once they are fully implemented. And no, they won't be like the IRL Punch Cards. This is just a current Idea Collection.", + "(i1&&i2)?o1=15:o1=0;=10", + "ignore all Whitespace Characters, use Long for saving the Numbers", + "&& || ^^ & | ^ ! ++ -- + - % / // * ** << >> >>> < > <= >= == != ~ ( ) ?: , ; ;= ;=X; = i0 i1 i2 i3 i4 i5 o0 o1 o2 o3 o4 o5 v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 m0 m1 m2 m3 m4 m5 m6 m7 m8 m9 A B C D E F", + "'0' = false, 'everything but 0' = true, '!' turns '0' into '1' and everything else into '0'", "',' is just a separator for multiple executed Codes in a row.", + "';' means that the Program waits until the next tick before continuing. ';=10' and ';=10;' both mean that it will wait 10 Ticks instead of 1. And ';=0' or anything < 0 will default to 0.", + "If the '=' Operator is used within Brackets, it returns the value the variable has been set to.", + "The Program saves the Char Index of the current Task, the 10 Variables (which reset to 0 as soon as the Program Loop stops), the 10 Member Variables and the remaining waiting Time in its NBT.", + "A = 10, B = 11, C = 12, D = 13, E = 14, F = 15, just for Hexadecimal Space saving, since Redstone has only 4 Bits.", + "For implementing Loops you just need 1 Punch Card per Loop, these Cards can restart once they are finished, depending on how many other Cards there are in the Program Loop you inserted your Card into, since it will process them procedurally.", + "A Punch Card Processor can run up to four Loops, each with the length of seven Punch Cards, parallel.", + "Why does the Punch Card need Ink to be made, you ask? Because the empty one needs to have some lines on, and the for the punched one it prints the Code to execute in a human readable format on the Card."}); - - - GT_Log.out.println("GT_Mod: Adding Blocks."); - GregTech_API.sBlockMachines = new GT_Block_Machines(); - GregTech_API.sBlockCasings1 = new GT_Block_Casings1(); - GregTech_API.sBlockCasings2 = new GT_Block_Casings2(); - GregTech_API.sBlockCasings3 = new GT_Block_Casings3(); - GregTech_API.sBlockCasings4 = new GT_Block_Casings4(); - GregTech_API.sBlockGranites = new GT_Block_Granites(); - GregTech_API.sBlockConcretes = new GT_Block_Concretes(); - GregTech_API.sBlockOres1 = new GT_Block_Ores(); - - GT_Log.out.println("GT_Mod: Register TileEntities."); - + GT_Utility.getWrittenBook("Manual_Microwave", "Microwave Oven Manual", "Kitchen Industries", new String[]{ + "Congratulations, you inserted a random seemingly empty Book into the Microwave and these Letters appeared out of nowhere.", + "You just got a Microwave Oven and asked yourself 'why do I even need it?'. It's simple, the Microwave can cook for just 128 EU and at an insane speed. Not even a normal E-furnace can do it that fast and cheap!", + "This is the cheapest and fastest way to cook for you. That is why the Microwave Oven can be found in almost every Kitchen (see www.youwannabuyakitchen.ly).", + "Long time exposure to Microwaves can cause Cancer, but we doubt Steve lives long enough to die because of that.", + "Do not insert any Metals. It might result in an Explosion.", + "Do not dry Animals with it. It will result in a Hot Dog, no matter which Animal you put into it.", + "Do not insert inflammable Objects. The Oven will catch on Fire.", "Do not insert Explosives such as Eggs. Just don't."}); + + GT_Log.out.println("GT_Mod: Register Items."); + + new GT_IntegratedCircuit_Item(); + new GT_MetaGenerated_Item_01(); + new GT_MetaGenerated_Item_02(); + new GT_MetaGenerated_Item_03(); + new GT_MetaGenerated_Tool_01(); + + new GT_FluidDisplayItem(); + + Item tItem = (Item) GT_Utility.callConstructor("gregtech.common.items.GT_SensorCard_Item", 0, null, false, new Object[]{"sensorcard", "GregTech Sensor Card"}); + ItemList.NC_SensorCard.set(tItem == null ? new GT_Generic_Item("sensorcard", "GregTech Sensor Card", "Nuclear Control not installed", false) : tItem); + + ItemList.Neutron_Reflector.set(new GT_NeutronReflector_Item("neutronreflector", "Iridium Neutron Reflector", 0)); + GT_ModHandler.addCraftingRecipe(ItemList.Neutron_Reflector.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RRR", "RPR", "RRR", 'R', GT_ModHandler.getIC2Item("reactorReflectorThick", 1L, 1), 'P', OrePrefixes.plateAlloy.get(Materials.Iridium)}); + + ItemList.Reactor_Coolant_He_1.set(GregTech_API.constructCoolantCellItem("60k_Helium_Coolantcell", "60k He Coolant Cell", 60000)); + GT_ModHandler.addCraftingRecipe(ItemList.Reactor_Coolant_He_1.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" P ", "PCP", " P ", 'C', OrePrefixes.cell.get(Materials.Helium), 'P', OrePrefixes.plate.get(Materials.Tin)}); + + ItemList.Reactor_Coolant_He_3.set(GregTech_API.constructCoolantCellItem("180k_Helium_Coolantcell", "180k He Coolant Cell", 180000)); + GT_ModHandler.addCraftingRecipe(ItemList.Reactor_Coolant_He_3.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"PCP", "PCP", "PCP", 'C', ItemList.Reactor_Coolant_He_1, 'P', OrePrefixes.plate.get(Materials.Tin)}); + + ItemList.Reactor_Coolant_He_6.set(GregTech_API.constructCoolantCellItem("360k_Helium_Coolantcell", "360k He Coolant Cell", 360000)); + GT_ModHandler.addCraftingRecipe(ItemList.Reactor_Coolant_He_6.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"PCP", "PDP", "PCP", 'C', ItemList.Reactor_Coolant_He_3, 'P', OrePrefixes.plate.get(Materials.Tin), 'D', OrePrefixes.plateDense.get(Materials.Copper)}); + + ItemList.Reactor_Coolant_NaK_1.set(GregTech_API.constructCoolantCellItem("60k_NaK_Coolantcell", "60k NaK Coolantcell", 60000)); + GT_ModHandler.addCraftingRecipe(ItemList.Reactor_Coolant_NaK_1.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"TST", "PCP", "TST", 'C', GT_ModHandler.getIC2Item("reactorCoolantSimple", 1L, 1), 'T', OrePrefixes.plate.get(Materials.Tin), 'S', OrePrefixes.dust.get(Materials.Sodium), 'P', OrePrefixes.dust.get(Materials.Potassium)}); + + ItemList.Reactor_Coolant_NaK_3.set(GregTech_API.constructCoolantCellItem("180k_NaK_Coolantcell", "180k NaK Coolantcell", 180000)); + GT_ModHandler.addCraftingRecipe(ItemList.Reactor_Coolant_NaK_3.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"PCP", "PCP", "PCP", 'C', ItemList.Reactor_Coolant_NaK_1, 'P', OrePrefixes.plate.get(Materials.Tin)}); + + ItemList.Reactor_Coolant_NaK_6.set(GregTech_API.constructCoolantCellItem("360k_NaK_Coolantcell", "360k NaK Coolantcell", 360000)); + GT_ModHandler.addCraftingRecipe(ItemList.Reactor_Coolant_NaK_6.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"PCP", "PDP", "PCP", 'C', ItemList.Reactor_Coolant_NaK_3, 'P', OrePrefixes.plate.get(Materials.Tin), 'D', OrePrefixes.plateDense.get(Materials.Copper)}); + + ItemList.ThoriumCell_1.set(new GT_RadioactiveCellIC_Item("Thoriumcell", "Fuel Rod (Thorium)", 1, 50000, 0.2F, 0, 0.25F)); + + ItemList.ThoriumCell_2.set(new GT_RadioactiveCellIC_Item("Double_Thoriumcell", "Double Fuel Rod (Thorium)", 2, 50000, 0.2F, 0, 0.25F)); + GT_ModHandler.addCraftingRecipe(ItemList.ThoriumCell_2.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RPR", " ", " ", 'R', ItemList.ThoriumCell_1, 'P', OrePrefixes.plate.get(Materials.Iron)}); + + ItemList.ThoriumCell_4.set(new GT_RadioactiveCellIC_Item("Quad_Thoriumcell", "Quad Fuel Rod (Thorium)", 4, 50000, 0.2F, 0, 0.25F)); + GT_ModHandler.addCraftingRecipe(ItemList.ThoriumCell_4.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RPR", "CPC", "RPR", 'R', ItemList.ThoriumCell_1, 'P', OrePrefixes.plate.get(Materials.Iron), 'C', OrePrefixes.plate.get(Materials.Copper)}); + + ItemList.Depleted_Thorium_1.set(new GT_DepletetCell_Item("ThoriumcellDep", "Fuel Rod (Depleted Thorium)", 1)); + ItemList.Depleted_Thorium_2.set(new GT_DepletetCell_Item("Double_ThoriumcellDep", "Dual Fuel Rod (Depleted Thorium)", 2)); + ItemList.Depleted_Thorium_4.set(new GT_DepletetCell_Item("Quad_ThoriumcellDep", "Quad Fuel Rod (Depleted Thorium)", 4)); + + GT_ModHandler.addThermalCentrifugeRecipe(ItemList.Depleted_Thorium_1.get(1, new Object[0]), 5000, new Object[]{GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Lutetium, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Thorium, 2L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1L)}); + GT_ModHandler.addThermalCentrifugeRecipe(ItemList.Depleted_Thorium_2.get(1, new Object[0]), 5000, new Object[]{GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Lutetium, 2L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Thorium, 4L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 3L)}); + GT_ModHandler.addThermalCentrifugeRecipe(ItemList.Depleted_Thorium_4.get(1, new Object[0]), 5000, new Object[]{GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Lutetium, 4L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Thorium, 8L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 6L)}); + + + GT_Log.out.println("GT_Mod: Adding Blocks."); + GregTech_API.sBlockMachines = new GT_Block_Machines(); + GregTech_API.sBlockCasings1 = new GT_Block_Casings1(); + GregTech_API.sBlockCasings2 = new GT_Block_Casings2(); + GregTech_API.sBlockCasings3 = new GT_Block_Casings3(); + GregTech_API.sBlockCasings4 = new GT_Block_Casings4(); + GregTech_API.sBlockGranites = new GT_Block_Granites(); + GregTech_API.sBlockConcretes = new GT_Block_Concretes(); + GregTech_API.sBlockOres1 = new GT_Block_Ores(); + + GT_Log.out.println("GT_Mod: Register TileEntities."); + + + BaseMetaTileEntity tBaseMetaTileEntity = GregTech_API.constructBaseMetaTileEntity(); + + GT_Log.out.println("GT_Mod: Testing BaseMetaTileEntity."); + if (tBaseMetaTileEntity == null) { + GT_Log.out.println("GT_Mod: Fatal Error ocurred while initializing TileEntities, crashing Minecraft."); + throw new RuntimeException(""); + } + GT_Log.out.println("GT_Mod: Registering the BaseMetaTileEntity."); + GameRegistry.registerTileEntity(tBaseMetaTileEntity.getClass(), "BaseMetaTileEntity"); + FMLInterModComms.sendMessage("appliedenergistics2", "whitelist-spatial", tBaseMetaTileEntity.getClass().getName()); + + GT_Log.out.println("GT_Mod: Registering the BaseMetaPipeEntity."); + GameRegistry.registerTileEntity(BaseMetaPipeEntity.class, "BaseMetaPipeEntity"); + FMLInterModComms.sendMessage("appliedenergistics2", "whitelist-spatial", BaseMetaPipeEntity.class.getName()); + + GT_Log.out.println("GT_Mod: Registering the Ore TileEntity."); + GameRegistry.registerTileEntity(GT_TileEntity_Ores.class, "GT_TileEntity_Ores"); + FMLInterModComms.sendMessage("appliedenergistics2", "whitelist-spatial", GT_TileEntity_Ores.class.getName()); + + GT_Log.out.println("GT_Mod: Registering Fluids."); + Materials.ConstructionFoam.mFluid = GT_Utility.getFluidForFilledItem(GT_ModHandler.getIC2Item("CFCell", 1L), true).getFluid(); + Materials.UUMatter.mFluid = GT_Utility.getFluidForFilledItem(GT_ModHandler.getIC2Item("uuMatterCell", 1L), true).getFluid(); - BaseMetaTileEntity tBaseMetaTileEntity = GregTech_API.constructBaseMetaTileEntity(); - - GT_Log.out.println("GT_Mod: Testing BaseMetaTileEntity."); - if (tBaseMetaTileEntity == null) - { - GT_Log.out.println("GT_Mod: Fatal Error ocurred while initializing TileEntities, crashing Minecraft."); - throw new RuntimeException(""); - } - GT_Log.out.println("GT_Mod: Registering the BaseMetaTileEntity."); - GameRegistry.registerTileEntity(tBaseMetaTileEntity.getClass(), "BaseMetaTileEntity"); - FMLInterModComms.sendMessage("appliedenergistics2", "whitelist-spatial", tBaseMetaTileEntity.getClass().getName()); - - GT_Log.out.println("GT_Mod: Registering the BaseMetaPipeEntity."); - GameRegistry.registerTileEntity(BaseMetaPipeEntity.class, "BaseMetaPipeEntity"); - FMLInterModComms.sendMessage("appliedenergistics2", "whitelist-spatial", BaseMetaPipeEntity.class.getName()); - - GT_Log.out.println("GT_Mod: Registering the Ore TileEntity."); - GameRegistry.registerTileEntity(GT_TileEntity_Ores.class, "GT_TileEntity_Ores"); - FMLInterModComms.sendMessage("appliedenergistics2", "whitelist-spatial", GT_TileEntity_Ores.class.getName()); - - GT_Log.out.println("GT_Mod: Registering Fluids."); - Materials.ConstructionFoam.mFluid = GT_Utility.getFluidForFilledItem(GT_ModHandler.getIC2Item("CFCell", 1L), true).getFluid(); - Materials.UUMatter.mFluid = GT_Utility.getFluidForFilledItem(GT_ModHandler.getIC2Item("uuMatterCell", 1L), true).getFluid(); - // GT_Mod.gregtechproxy.addFluid("HeliumPlasma", "Helium Plasma", Materials.Helium, 3, 10000, GT_OreDictUnificator.get(OrePrefixes.cellPlasma, Materials.Helium, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); // GT_Mod.gregtechproxy.addFluid("NitrogenPlasma", "Nitrogen Plasma", Materials.Nitrogen, 3, 10000, GT_OreDictUnificator.get(OrePrefixes.cellPlasma, Materials.Nitrogen, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - - GT_Mod.gregtechproxy.addFluid("Air", "Air", Materials.Air, 2, 295, ItemList.Cell_Air.get(1L, new Object[0]), ItemList.Cell_Empty.get(1L, new Object[0]), 2000); - GT_Mod.gregtechproxy.addFluid("Oxygen", "Oxygen", Materials.Oxygen, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("Hydrogen", "Hydrogen", Materials.Hydrogen, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("Deuterium", "Deuterium", Materials.Deuterium, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Deuterium, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("Tritium", "Tritium", Materials.Tritium, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Tritium, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("Helium", "Helium", Materials.Helium, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Helium, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("Fluorine", "Fluorine", Materials.Fluorine, 2, 53, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Fluorine, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("Air", "Air", Materials.Air, 2, 295, ItemList.Cell_Air.get(1L, new Object[0]), ItemList.Cell_Empty.get(1L, new Object[0]), 2000); + GT_Mod.gregtechproxy.addFluid("Oxygen", "Oxygen", Materials.Oxygen, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("Hydrogen", "Hydrogen", Materials.Hydrogen, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("Deuterium", "Deuterium", Materials.Deuterium, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Deuterium, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("Tritium", "Tritium", Materials.Tritium, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Tritium, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("Helium", "Helium", Materials.Helium, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Helium, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("Fluorine", "Fluorine", Materials.Fluorine, 2, 53, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Fluorine, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); // Materials.Lithium.mStandardMoltenFluid = new Fluid("lithium"); - GT_Mod.gregtechproxy.addFluid("Helium-3", "Helium-3", Materials.Helium_3, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Helium_3, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("Methane", "Methane", Materials.Methane, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Methane, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("Nitrogen", "Nitrogen", Materials.Nitrogen, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Nitrogen, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("NitrogenDioxide", "Nitrogen Dioxide", Materials.NitrogenDioxide, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.NitrogenDioxide, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("Steam", "Steam", Materials.Water, 2, 375); - Materials.Ice.mGas = Materials.Water.mGas; - Materials.Water.mGas.setTemperature(375).setGaseous(true); - + GT_Mod.gregtechproxy.addFluid("Helium-3", "Helium-3", Materials.Helium_3, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Helium_3, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("Methane", "Methane", Materials.Methane, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Methane, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("Nitrogen", "Nitrogen", Materials.Nitrogen, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Nitrogen, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("NitrogenDioxide", "Nitrogen Dioxide", Materials.NitrogenDioxide, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.NitrogenDioxide, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("Steam", "Steam", Materials.Water, 2, 375); + Materials.Ice.mGas = Materials.Water.mGas; + Materials.Water.mGas.setTemperature(375).setGaseous(true); - ItemList.sOilExtraHeavy = GT_Mod.gregtechproxy.addFluid("liquid_extra_heavy_oil", "Very Heavy Oil", null, 1, 295); - ItemList.sOilHeavy = GT_Mod.gregtechproxy.addFluid("liquid_heavy_oil", "Heavy Oil", null, 1, 295); - ItemList.sOilMedium = GT_Mod.gregtechproxy.addFluid("liquid_medium_oil", "Raw Oil", null, 1, 295); - ItemList.sOilLight = GT_Mod.gregtechproxy.addFluid("liquid_light_oil", "Light Oil", null, 1, 295); - ItemList.sNaturalGas = GT_Mod.gregtechproxy.addFluid("gas_natural_gas", "Natural Gas", null, 2, 295); - - GT_Mod.gregtechproxy.addFluid("UUAmplifier", "UU Amplifier", Materials.UUAmplifier, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.UUAmplifier, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("Chlorine", "Chlorine", Materials.Chlorine, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Chlorine, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("Mercury", "Mercury", Materials.Mercury, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Mercury, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("NitroFuel", "Nitro Diesel", Materials.NitroFuel, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.NitroFuel, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("SodiumPersulfate", "Sodium Persulfate", Materials.SodiumPersulfate, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SodiumPersulfate, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("Glyceryl", "Glyceryl Trinitrate", Materials.Glyceryl, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Glyceryl, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - - GT_Mod.gregtechproxy.addFluid("lubricant", "Lubricant", Materials.Lubricant, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Lubricant, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("creosote", "Creosote Oil", Materials.Creosote, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Creosote, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("seedoil", "Seed Oil", Materials.SeedOil, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SeedOil, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("fishoil", "Fish Oil", Materials.FishOil, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.FishOil, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("oil", "Oil", Materials.Oil, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oil, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("fuel", "Diesel", Materials.Fuel, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Fuel, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("for.honey", "Honey", Materials.Honey, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Honey, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("biomass", "Biomass", Materials.Biomass, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Biomass, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("bioethanol", "Bio Ethanol", Materials.Ethanol, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Ethanol, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("sulfuricacid", "Sulfuric Acid", Materials.SulfuricAcid, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SulfuricAcid, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("milk", "Milk", Materials.Milk, 1, 290, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Milk, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("mcguffium", "Mc Guffium 239", Materials.McGuffium239, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.McGuffium239, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("glue", "Glue", Materials.Glue, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Glue, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("hotfryingoil", "Hot Frying Oil", Materials.FryingOilHot, 1, 400, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.FryingOilHot, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - - GT_Mod.gregtechproxy.addFluid("fieryblood", "Fiery Blood", Materials.FierySteel, 1, 6400, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.FierySteel, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("holywater", "Holy Water", Materials.HolyWater, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.HolyWater, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - if (ItemList.TF_Vial_FieryBlood.get(1L, new Object[0]) != null) { - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(Materials.FierySteel.getFluid(250L), ItemList.TF_Vial_FieryBlood.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]))); - } - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(Materials.Milk.getFluid(1000L), GT_OreDictUnificator.get(OrePrefixes.bucket, Materials.Milk, 1L), GT_OreDictUnificator.get(OrePrefixes.bucket, Materials.Empty, 1L))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(Materials.Milk.getFluid(250L), ItemList.Bottle_Milk.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(Materials.HolyWater.getFluid(250L), ItemList.Bottle_Holy_Water.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(Materials.McGuffium239.getFluid(250L), ItemList.McGuffium_239.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(Materials.Fuel.getFluid(100L), ItemList.Tool_Lighter_Invar_Full.get(1L, new Object[0]), ItemList.Tool_Lighter_Invar_Empty.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(Materials.Fuel.getFluid(1000L), ItemList.Tool_Lighter_Platinum_Full.get(1L, new Object[0]), ItemList.Tool_Lighter_Platinum_Empty.get(1L, new Object[0]))); - - Dyes.dyeBlack.addFluidDye(GT_Mod.gregtechproxy.addFluid("squidink", "Squid Ink", null, 1, 295)); - Dyes.dyeBlue.addFluidDye(GT_Mod.gregtechproxy.addFluid("indigo", "Indigo Dye", null, 1, 295)); - for (byte i = 0; i < Dyes.VALUES.length; i = (byte)(i + 1)) - { - Dyes tDye = Dyes.VALUES[i]; - Fluid tFluid; - tDye.addFluidDye(tFluid = GT_Mod.gregtechproxy.addFluid("dye.watermixed." + tDye.name().toLowerCase(), "dyes", "Water Mixed " + tDye.mName + " Dye", null, tDye.getRGBA(), 1, 295, null, null, 0)); - tDye.addFluidDye(tFluid = GT_Mod.gregtechproxy.addFluid("dye.chemical." + tDye.name().toLowerCase(), "dyes", "Chemical " + tDye.mName + " Dye", null, tDye.getRGBA(), 1, 295, null, null, 0)); - FluidContainerRegistry.registerFluidContainer(new FluidStack(tFluid, 2304), ItemList.SPRAY_CAN_DYES[i].get(1L, new Object[0]), ItemList.Spray_Empty.get(1L, new Object[0])); - } - GT_Mod.gregtechproxy.addFluid("ice", "Crushed Ice", Materials.Ice, 0, 270, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Ice, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - Materials.Water.mSolid = Materials.Ice.mSolid; - + ItemList.sOilExtraHeavy = GT_Mod.gregtechproxy.addFluid("liquid_extra_heavy_oil", "Very Heavy Oil", null, 1, 295); + ItemList.sOilHeavy = GT_Mod.gregtechproxy.addFluid("liquid_heavy_oil", "Heavy Oil", null, 1, 295); + ItemList.sOilMedium = GT_Mod.gregtechproxy.addFluid("liquid_medium_oil", "Raw Oil", null, 1, 295); + ItemList.sOilLight = GT_Mod.gregtechproxy.addFluid("liquid_light_oil", "Light Oil", null, 1, 295); + ItemList.sNaturalGas = GT_Mod.gregtechproxy.addFluid("gas_natural_gas", "Natural Gas", null, 2, 295); + GT_Mod.gregtechproxy.addFluid("UUAmplifier", "UU Amplifier", Materials.UUAmplifier, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.UUAmplifier, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("Chlorine", "Chlorine", Materials.Chlorine, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Chlorine, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("Mercury", "Mercury", Materials.Mercury, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Mercury, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("NitroFuel", "Nitro Diesel", Materials.NitroFuel, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.NitroFuel, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("SodiumPersulfate", "Sodium Persulfate", Materials.SodiumPersulfate, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SodiumPersulfate, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("Glyceryl", "Glyceryl Trinitrate", Materials.Glyceryl, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Glyceryl, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("molten.glass", "Molten Glass", Materials.Glass, 4, 1500); - GT_Mod.gregtechproxy.addFluid("molten.redstone", "Molten Redstone", Materials.Redstone, 4, 500); - GT_Mod.gregtechproxy.addFluid("molten.blaze", "Molten Blaze", Materials.Blaze, 4, 6400); - GT_Mod.gregtechproxy.addFluid("molten.concrete", "Wet Concrete", Materials.Concrete, 4, 300); - for (Materials tMaterial : Materials.VALUES) { - if ((tMaterial.mStandardMoltenFluid == null) && (tMaterial.contains(SubTag.SMELTING_TO_FLUID)) && (!tMaterial.contains(SubTag.NO_SMELTING))) - { - GT_Mod.gregtechproxy.addAutogeneratedMoltenFluid(tMaterial); - if ((tMaterial.mSmeltInto != tMaterial) && (tMaterial.mSmeltInto.mStandardMoltenFluid == null)) { - GT_Mod.gregtechproxy.addAutogeneratedMoltenFluid(tMaterial.mSmeltInto); + GT_Mod.gregtechproxy.addFluid("lubricant", "Lubricant", Materials.Lubricant, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Lubricant, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("creosote", "Creosote Oil", Materials.Creosote, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Creosote, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("seedoil", "Seed Oil", Materials.SeedOil, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SeedOil, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("fishoil", "Fish Oil", Materials.FishOil, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.FishOil, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("oil", "Oil", Materials.Oil, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oil, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("fuel", "Diesel", Materials.Fuel, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Fuel, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("for.honey", "Honey", Materials.Honey, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Honey, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("biomass", "Biomass", Materials.Biomass, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Biomass, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("bioethanol", "Bio Ethanol", Materials.Ethanol, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Ethanol, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("sulfuricacid", "Sulfuric Acid", Materials.SulfuricAcid, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SulfuricAcid, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("milk", "Milk", Materials.Milk, 1, 290, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Milk, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("mcguffium", "Mc Guffium 239", Materials.McGuffium239, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.McGuffium239, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("glue", "Glue", Materials.Glue, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Glue, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("hotfryingoil", "Hot Frying Oil", Materials.FryingOilHot, 1, 400, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.FryingOilHot, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + + GT_Mod.gregtechproxy.addFluid("fieryblood", "Fiery Blood", Materials.FierySteel, 1, 6400, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.FierySteel, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("holywater", "Holy Water", Materials.HolyWater, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.HolyWater, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + if (ItemList.TF_Vial_FieryBlood.get(1L, new Object[0]) != null) { + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(Materials.FierySteel.getFluid(250L), ItemList.TF_Vial_FieryBlood.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]))); } - } - if(tMaterial.mElement!=null){ - GT_Mod.gregtechproxy.addAutogeneratedPlasmaFluid(tMaterial); - } - } - GT_Mod.gregtechproxy.addFluid("potion.awkward", "Awkward Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.thick", "Thick Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 32), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.mundane", "Mundane Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 64), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.damage", "Harming Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8204), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.damage.strong", "Strong Harming Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8236), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.damage.splash", "Splash Harming Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16396), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.damage.strong.splash", "Strong Splash Harming Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16428), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.health", "Healing Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8197), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.health.strong", "Strong Healing Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8229), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.health.splash", "Splash Healing Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16389), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.health.strong.splash", "Strong Splash Healing Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16421), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.speed", "Swiftness Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8194), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.speed.strong", "Strong Swiftness Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8226), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.speed.long", "Stretched Swiftness Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8258), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.speed.splash", "Splash Swiftness Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16386), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.speed.strong.splash", "Strong Splash Swiftness Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16418), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.speed.long.splash", "Stretched Splash Swiftness Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16450), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.strength", "Strength Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8201), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.strength.strong", "Strong Strength Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8233), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.strength.long", "Stretched Strength Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8265), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.strength.splash", "Splash Strength Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16393), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.strength.strong.splash", "Strong Splash Strength Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16425), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.strength.long.splash", "Stretched Splash Strength Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16457), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.regen", "Regenerating Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8193), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.regen.strong", "Strong Regenerating Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8225), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.regen.long", "Stretched Regenerating Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8257), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.regen.splash", "Splash Regenerating Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16385), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.regen.strong.splash", "Strong Splash Regenerating Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16417), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.regen.long.splash", "Stretched Splash Regenerating Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16449), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.poison", "Poisonous Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8196), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.poison.strong", "Strong Poisonous Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8228), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.poison.long", "Stretched Poisonous Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8260), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.poison.splash", "Splash Poisonous Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16388), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.poison.strong.splash", "Strong Splash Poisonous Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16420), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.poison.long.splash", "Stretched Splash Poisonous Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16452), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.fireresistance", "Fire Resistant Brew", null, 1, 375, new ItemStack(Items.potionitem, 1, 8195), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.fireresistance.long", "Stretched Fire Resistant Brew", null, 1, 375, new ItemStack(Items.potionitem, 1, 8259), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.fireresistance.splash", "Splash Fire Resistant Brew", null, 1, 375, new ItemStack(Items.potionitem, 1, 16387), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.fireresistance.long.splash", "Stretched Splash Fire Resistant Brew", null, 1, 375, new ItemStack(Items.potionitem, 1, 16451), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.nightvision", "Night Vision Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8198), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.nightvision.long", "Stretched Night Vision Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8262), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.nightvision.splash", "Splash Night Vision Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16390), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.nightvision.long.splash", "Stretched Splash Night Vision Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16454), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.weakness", "Weakening Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8200), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.weakness.long", "Stretched Weakening Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8264), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.weakness.splash", "Splash Weakening Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16392), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.weakness.long.splash", "Stretched Splash Weakening Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16456), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.slowness", "Lame Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8202), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.slowness.long", "Stretched Lame Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8266), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.slowness.splash", "Splash Lame Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16394), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.slowness.long.splash", "Stretched Splash Lame Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16458), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.waterbreathing", "Fishy Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8205), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.waterbreathing.long", "Stretched Fishy Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8269), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.waterbreathing.splash", "Splash Fishy Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16397), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.waterbreathing.long.splash", "Stretched Splash Fishy Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16461), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.invisibility", "Invisible Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8206), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.invisibility.long", "Stretched Invisible Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8270), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.invisibility.splash", "Splash Invisible Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16398), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.invisibility.long.splash", "Stretched Splash Invisible Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16462), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - - GT_Mod.gregtechproxy.addFluid("potion.purpledrink", "Purple Drink", null, 1, 275, ItemList.Bottle_Purple_Drink.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.grapejuice", "Grape Juice", null, 1, 295, ItemList.Bottle_Grape_Juice.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.wine", "Wine", null, 1, 295, ItemList.Bottle_Wine.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.vinegar", "Vinegar", null, 1, 295, ItemList.Bottle_Vinegar.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.potatojuice", "Potato Juice", null, 1, 295, ItemList.Bottle_Potato_Juice.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.vodka", "Vodka", null, 1, 275, ItemList.Bottle_Vodka.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.leninade", "Leninade", null, 1, 275, ItemList.Bottle_Leninade.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.mineralwater", "Mineral Water", null, 1, 275, ItemList.Bottle_Mineral_Water.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.saltywater", "Salty Water", null, 1, 275, ItemList.Bottle_Salty_Water.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.reedwater", "Reed Water", null, 1, 295, ItemList.Bottle_Reed_Water.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.rum", "Rum", null, 1, 295, ItemList.Bottle_Rum.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.piratebrew", "Pirate Brew", null, 1, 295, ItemList.Bottle_Pirate_Brew.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.hopsjuice", "Hops Juice", null, 1, 295, ItemList.Bottle_Hops_Juice.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.darkbeer", "Dark Beer", null, 1, 275, ItemList.Bottle_Dark_Beer.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.dragonblood", "Dragon Blood", null, 1, 375, ItemList.Bottle_Dragon_Blood.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.wheatyjuice", "Wheaty Juice", null, 1, 295, ItemList.Bottle_Wheaty_Juice.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.scotch", "Scotch", null, 1, 275, ItemList.Bottle_Scotch.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.glenmckenner", "Glen McKenner", null, 1, 275, ItemList.Bottle_Glen_McKenner.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.wheatyhopsjuice", "Wheaty Hops Juice", null, 1, 295, ItemList.Bottle_Wheaty_Hops_Juice.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.beer", "Beer", null, 1, 275, ItemList.Bottle_Beer.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.chillysauce", "Chilly Sauce", null, 1, 375, ItemList.Bottle_Chilly_Sauce.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.hotsauce", "Hot Sauce", null, 1, 380, ItemList.Bottle_Hot_Sauce.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.diabolosauce", "Diabolo Sauce", null, 1, 385, ItemList.Bottle_Diabolo_Sauce.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.diablosauce", "Diablo Sauce", null, 1, 390, ItemList.Bottle_Diablo_Sauce.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.diablosauce.strong", "Old Man Snitches glitched Diablo Sauce", null, 1, 999, ItemList.Bottle_Snitches_Glitch_Sauce.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.applejuice", "Apple Juice", null, 1, 295, ItemList.Bottle_Apple_Juice.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.cider", "Cider", null, 1, 295, ItemList.Bottle_Cider.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.goldenapplejuice", "Golden Apple Juice", null, 1, 295, ItemList.Bottle_Golden_Apple_Juice.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.goldencider", "Golden Cider", null, 1, 295, ItemList.Bottle_Golden_Cider.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.idunsapplejuice", "Idun's Apple Juice", null, 1, 295, ItemList.Bottle_Iduns_Apple_Juice.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.notchesbrew", "Notches Brew", null, 1, 295, ItemList.Bottle_Notches_Brew.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.lemonjuice", "Lemon Juice", null, 1, 295, ItemList.Bottle_Lemon_Juice.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.limoncello", "Limoncello", null, 1, 295, ItemList.Bottle_Limoncello.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.lemonade", "Lemonade", null, 1, 275, ItemList.Bottle_Lemonade.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.alcopops", "Alcopops", null, 1, 275, ItemList.Bottle_Alcopops.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.cavejohnsonsgrenadejuice", "Cave Johnsons Grenade Juice", null, 1, 295, ItemList.Bottle_Cave_Johnsons_Grenade_Juice.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); - - GT_Mod.gregtechproxy.addFluid("potion.darkcoffee", "Dark Coffee", null, 1, 295, ItemList.ThermosCan_Dark_Coffee.get(1L, new Object[0]), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.darkcafeaulait", "Dark Cafe au lait", null, 1, 295, ItemList.ThermosCan_Dark_Cafe_au_lait.get(1L, new Object[0]), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.coffee", "Coffee", null, 1, 295, ItemList.ThermosCan_Coffee.get(1L, new Object[0]), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.cafeaulait", "Cafe au lait", null, 1, 295, ItemList.ThermosCan_Cafe_au_lait.get(1L, new Object[0]), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.laitaucafe", "Lait au cafe", null, 1, 295, ItemList.ThermosCan_Lait_au_cafe.get(1L, new Object[0]), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.darkchocolatemilk", "Bitter Chocolate Milk", null, 1, 295, ItemList.ThermosCan_Dark_Chocolate_Milk.get(1L, new Object[0]), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.chocolatemilk", "Chocolate Milk", null, 1, 295, ItemList.ThermosCan_Chocolate_Milk.get(1L, new Object[0]), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.tea", "Tea", null, 1, 295, ItemList.ThermosCan_Tea.get(1L, new Object[0]), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.sweettea", "Sweet Tea", null, 1, 295, ItemList.ThermosCan_Sweet_Tea.get(1L, new Object[0]), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 250); - GT_Mod.gregtechproxy.addFluid("potion.icetea", "Ice Tea", null, 1, 255, ItemList.ThermosCan_Ice_Tea.get(1L, new Object[0]), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 250); - - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.poison.strong", 750), ItemList.IC2_Spray_WeedEx.get(1L, new Object[0]), ItemList.Spray_Empty.get(1L, new Object[0]))); - + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(Materials.Milk.getFluid(1000L), GT_OreDictUnificator.get(OrePrefixes.bucket, Materials.Milk, 1L), GT_OreDictUnificator.get(OrePrefixes.bucket, Materials.Empty, 1L))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(Materials.Milk.getFluid(250L), ItemList.Bottle_Milk.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(Materials.HolyWater.getFluid(250L), ItemList.Bottle_Holy_Water.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(Materials.McGuffium239.getFluid(250L), ItemList.McGuffium_239.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(Materials.Fuel.getFluid(100L), ItemList.Tool_Lighter_Invar_Full.get(1L, new Object[0]), ItemList.Tool_Lighter_Invar_Empty.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(Materials.Fuel.getFluid(1000L), ItemList.Tool_Lighter_Platinum_Full.get(1L, new Object[0]), ItemList.Tool_Lighter_Platinum_Empty.get(1L, new Object[0]))); - - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.poison", 125), ItemList.Arrow_Head_Glass_Poison.get(1L, new Object[0]), ItemList.Arrow_Head_Glass_Emtpy.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.poison.long", 125), ItemList.Arrow_Head_Glass_Poison_Long.get(1L, new Object[0]), ItemList.Arrow_Head_Glass_Emtpy.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.poison.strong", 125), ItemList.Arrow_Head_Glass_Poison_Strong.get(1L, new Object[0]), ItemList.Arrow_Head_Glass_Emtpy.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.slowness", 125), ItemList.Arrow_Head_Glass_Slowness.get(1L, new Object[0]), ItemList.Arrow_Head_Glass_Emtpy.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.slowness.long", 125), ItemList.Arrow_Head_Glass_Slowness_Long.get(1L, new Object[0]), ItemList.Arrow_Head_Glass_Emtpy.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.weakness", 125), ItemList.Arrow_Head_Glass_Weakness.get(1L, new Object[0]), ItemList.Arrow_Head_Glass_Emtpy.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.weakness.long", 125), ItemList.Arrow_Head_Glass_Weakness_Long.get(1L, new Object[0]), ItemList.Arrow_Head_Glass_Emtpy.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("holywater", 125), ItemList.Arrow_Head_Glass_Holy_Water.get(1L, new Object[0]), ItemList.Arrow_Head_Glass_Emtpy.get(1L, new Object[0]))); - - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.poison", 125), ItemList.Arrow_Wooden_Glass_Poison.get(1L, new Object[0]), ItemList.Arrow_Wooden_Glass_Emtpy.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.poison.long", 125), ItemList.Arrow_Wooden_Glass_Poison_Long.get(1L, new Object[0]), ItemList.Arrow_Wooden_Glass_Emtpy.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.poison.strong", 125), ItemList.Arrow_Wooden_Glass_Poison_Strong.get(1L, new Object[0]), ItemList.Arrow_Wooden_Glass_Emtpy.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.slowness", 125), ItemList.Arrow_Wooden_Glass_Slowness.get(1L, new Object[0]), ItemList.Arrow_Wooden_Glass_Emtpy.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.slowness.long", 125), ItemList.Arrow_Wooden_Glass_Slowness_Long.get(1L, new Object[0]), ItemList.Arrow_Wooden_Glass_Emtpy.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.weakness", 125), ItemList.Arrow_Wooden_Glass_Weakness.get(1L, new Object[0]), ItemList.Arrow_Wooden_Glass_Emtpy.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.weakness.long", 125), ItemList.Arrow_Wooden_Glass_Weakness_Long.get(1L, new Object[0]), ItemList.Arrow_Wooden_Glass_Emtpy.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("holywater", 125), ItemList.Arrow_Wooden_Glass_Holy_Water.get(1L, new Object[0]), ItemList.Arrow_Wooden_Glass_Emtpy.get(1L, new Object[0]))); - - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.poison", 125), ItemList.Arrow_Plastic_Glass_Poison.get(1L, new Object[0]), ItemList.Arrow_Plastic_Glass_Emtpy.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.poison.long", 125), ItemList.Arrow_Plastic_Glass_Poison_Long.get(1L, new Object[0]), ItemList.Arrow_Plastic_Glass_Emtpy.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.poison.strong", 125), ItemList.Arrow_Plastic_Glass_Poison_Strong.get(1L, new Object[0]), ItemList.Arrow_Plastic_Glass_Emtpy.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.slowness", 125), ItemList.Arrow_Plastic_Glass_Slowness.get(1L, new Object[0]), ItemList.Arrow_Plastic_Glass_Emtpy.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.slowness.long", 125), ItemList.Arrow_Plastic_Glass_Slowness_Long.get(1L, new Object[0]), ItemList.Arrow_Plastic_Glass_Emtpy.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.weakness", 125), ItemList.Arrow_Plastic_Glass_Weakness.get(1L, new Object[0]), ItemList.Arrow_Plastic_Glass_Emtpy.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.weakness.long", 125), ItemList.Arrow_Plastic_Glass_Weakness_Long.get(1L, new Object[0]), ItemList.Arrow_Plastic_Glass_Emtpy.get(1L, new Object[0]))); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("holywater", 125), ItemList.Arrow_Plastic_Glass_Holy_Water.get(1L, new Object[0]), ItemList.Arrow_Plastic_Glass_Emtpy.get(1L, new Object[0]))); - if (!GT_Values.D1) { - try - { - Class.forName("codechicken.nei.api.API"); - GT_Log.out.println("GT_Mod: Hiding certain Items from NEI."); - API.hideItem(ItemList.Display_Fluid.getWildcard(1L, new Object[0])); - } - catch (Throwable e) - { - if (GT_Values.D1) { - e.printStackTrace(GT_Log.err); + Dyes.dyeBlack.addFluidDye(GT_Mod.gregtechproxy.addFluid("squidink", "Squid Ink", null, 1, 295)); + Dyes.dyeBlue.addFluidDye(GT_Mod.gregtechproxy.addFluid("indigo", "Indigo Dye", null, 1, 295)); + for (byte i = 0; i < Dyes.VALUES.length; i = (byte) (i + 1)) { + Dyes tDye = Dyes.VALUES[i]; + Fluid tFluid; + tDye.addFluidDye(tFluid = GT_Mod.gregtechproxy.addFluid("dye.watermixed." + tDye.name().toLowerCase(), "dyes", "Water Mixed " + tDye.mName + " Dye", null, tDye.getRGBA(), 1, 295, null, null, 0)); + tDye.addFluidDye(tFluid = GT_Mod.gregtechproxy.addFluid("dye.chemical." + tDye.name().toLowerCase(), "dyes", "Chemical " + tDye.mName + " Dye", null, tDye.getRGBA(), 1, 295, null, null, 0)); + FluidContainerRegistry.registerFluidContainer(new FluidStack(tFluid, 2304), ItemList.SPRAY_CAN_DYES[i].get(1L, new Object[0]), ItemList.Spray_Empty.get(1L, new Object[0])); } - } + GT_Mod.gregtechproxy.addFluid("ice", "Crushed Ice", Materials.Ice, 0, 270, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Ice, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + Materials.Water.mSolid = Materials.Ice.mSolid; + + + GT_Mod.gregtechproxy.addFluid("molten.glass", "Molten Glass", Materials.Glass, 4, 1500); + GT_Mod.gregtechproxy.addFluid("molten.redstone", "Molten Redstone", Materials.Redstone, 4, 500); + GT_Mod.gregtechproxy.addFluid("molten.blaze", "Molten Blaze", Materials.Blaze, 4, 6400); + GT_Mod.gregtechproxy.addFluid("molten.concrete", "Wet Concrete", Materials.Concrete, 4, 300); + for (Materials tMaterial : Materials.VALUES) { + if ((tMaterial.mStandardMoltenFluid == null) && (tMaterial.contains(SubTag.SMELTING_TO_FLUID)) && (!tMaterial.contains(SubTag.NO_SMELTING))) { + GT_Mod.gregtechproxy.addAutogeneratedMoltenFluid(tMaterial); + if ((tMaterial.mSmeltInto != tMaterial) && (tMaterial.mSmeltInto.mStandardMoltenFluid == null)) { + GT_Mod.gregtechproxy.addAutogeneratedMoltenFluid(tMaterial.mSmeltInto); + } + } + if (tMaterial.mElement != null) { + GT_Mod.gregtechproxy.addAutogeneratedPlasmaFluid(tMaterial); + } + } + GT_Mod.gregtechproxy.addFluid("potion.awkward", "Awkward Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.thick", "Thick Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 32), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.mundane", "Mundane Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 64), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.damage", "Harming Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8204), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.damage.strong", "Strong Harming Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8236), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.damage.splash", "Splash Harming Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16396), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.damage.strong.splash", "Strong Splash Harming Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16428), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.health", "Healing Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8197), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.health.strong", "Strong Healing Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8229), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.health.splash", "Splash Healing Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16389), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.health.strong.splash", "Strong Splash Healing Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16421), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.speed", "Swiftness Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8194), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.speed.strong", "Strong Swiftness Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8226), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.speed.long", "Stretched Swiftness Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8258), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.speed.splash", "Splash Swiftness Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16386), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.speed.strong.splash", "Strong Splash Swiftness Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16418), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.speed.long.splash", "Stretched Splash Swiftness Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16450), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.strength", "Strength Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8201), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.strength.strong", "Strong Strength Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8233), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.strength.long", "Stretched Strength Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8265), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.strength.splash", "Splash Strength Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16393), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.strength.strong.splash", "Strong Splash Strength Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16425), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.strength.long.splash", "Stretched Splash Strength Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16457), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.regen", "Regenerating Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8193), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.regen.strong", "Strong Regenerating Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8225), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.regen.long", "Stretched Regenerating Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8257), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.regen.splash", "Splash Regenerating Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16385), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.regen.strong.splash", "Strong Splash Regenerating Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16417), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.regen.long.splash", "Stretched Splash Regenerating Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16449), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.poison", "Poisonous Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8196), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.poison.strong", "Strong Poisonous Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8228), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.poison.long", "Stretched Poisonous Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8260), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.poison.splash", "Splash Poisonous Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16388), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.poison.strong.splash", "Strong Splash Poisonous Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16420), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.poison.long.splash", "Stretched Splash Poisonous Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16452), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.fireresistance", "Fire Resistant Brew", null, 1, 375, new ItemStack(Items.potionitem, 1, 8195), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.fireresistance.long", "Stretched Fire Resistant Brew", null, 1, 375, new ItemStack(Items.potionitem, 1, 8259), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.fireresistance.splash", "Splash Fire Resistant Brew", null, 1, 375, new ItemStack(Items.potionitem, 1, 16387), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.fireresistance.long.splash", "Stretched Splash Fire Resistant Brew", null, 1, 375, new ItemStack(Items.potionitem, 1, 16451), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.nightvision", "Night Vision Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8198), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.nightvision.long", "Stretched Night Vision Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8262), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.nightvision.splash", "Splash Night Vision Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16390), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.nightvision.long.splash", "Stretched Splash Night Vision Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16454), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.weakness", "Weakening Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8200), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.weakness.long", "Stretched Weakening Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8264), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.weakness.splash", "Splash Weakening Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16392), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.weakness.long.splash", "Stretched Splash Weakening Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16456), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.slowness", "Lame Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8202), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.slowness.long", "Stretched Lame Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8266), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.slowness.splash", "Splash Lame Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16394), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.slowness.long.splash", "Stretched Splash Lame Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16458), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.waterbreathing", "Fishy Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8205), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.waterbreathing.long", "Stretched Fishy Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8269), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.waterbreathing.splash", "Splash Fishy Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16397), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.waterbreathing.long.splash", "Stretched Splash Fishy Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16461), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.invisibility", "Invisible Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8206), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.invisibility.long", "Stretched Invisible Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 8270), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.invisibility.splash", "Splash Invisible Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16398), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.invisibility.long.splash", "Stretched Splash Invisible Brew", null, 1, 295, new ItemStack(Items.potionitem, 1, 16462), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + + GT_Mod.gregtechproxy.addFluid("potion.purpledrink", "Purple Drink", null, 1, 275, ItemList.Bottle_Purple_Drink.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.grapejuice", "Grape Juice", null, 1, 295, ItemList.Bottle_Grape_Juice.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.wine", "Wine", null, 1, 295, ItemList.Bottle_Wine.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.vinegar", "Vinegar", null, 1, 295, ItemList.Bottle_Vinegar.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.potatojuice", "Potato Juice", null, 1, 295, ItemList.Bottle_Potato_Juice.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.vodka", "Vodka", null, 1, 275, ItemList.Bottle_Vodka.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.leninade", "Leninade", null, 1, 275, ItemList.Bottle_Leninade.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.mineralwater", "Mineral Water", null, 1, 275, ItemList.Bottle_Mineral_Water.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.saltywater", "Salty Water", null, 1, 275, ItemList.Bottle_Salty_Water.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.reedwater", "Reed Water", null, 1, 295, ItemList.Bottle_Reed_Water.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.rum", "Rum", null, 1, 295, ItemList.Bottle_Rum.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.piratebrew", "Pirate Brew", null, 1, 295, ItemList.Bottle_Pirate_Brew.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.hopsjuice", "Hops Juice", null, 1, 295, ItemList.Bottle_Hops_Juice.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.darkbeer", "Dark Beer", null, 1, 275, ItemList.Bottle_Dark_Beer.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.dragonblood", "Dragon Blood", null, 1, 375, ItemList.Bottle_Dragon_Blood.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.wheatyjuice", "Wheaty Juice", null, 1, 295, ItemList.Bottle_Wheaty_Juice.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.scotch", "Scotch", null, 1, 275, ItemList.Bottle_Scotch.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.glenmckenner", "Glen McKenner", null, 1, 275, ItemList.Bottle_Glen_McKenner.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.wheatyhopsjuice", "Wheaty Hops Juice", null, 1, 295, ItemList.Bottle_Wheaty_Hops_Juice.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.beer", "Beer", null, 1, 275, ItemList.Bottle_Beer.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.chillysauce", "Chilly Sauce", null, 1, 375, ItemList.Bottle_Chilly_Sauce.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.hotsauce", "Hot Sauce", null, 1, 380, ItemList.Bottle_Hot_Sauce.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.diabolosauce", "Diabolo Sauce", null, 1, 385, ItemList.Bottle_Diabolo_Sauce.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.diablosauce", "Diablo Sauce", null, 1, 390, ItemList.Bottle_Diablo_Sauce.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.diablosauce.strong", "Old Man Snitches glitched Diablo Sauce", null, 1, 999, ItemList.Bottle_Snitches_Glitch_Sauce.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.applejuice", "Apple Juice", null, 1, 295, ItemList.Bottle_Apple_Juice.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.cider", "Cider", null, 1, 295, ItemList.Bottle_Cider.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.goldenapplejuice", "Golden Apple Juice", null, 1, 295, ItemList.Bottle_Golden_Apple_Juice.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.goldencider", "Golden Cider", null, 1, 295, ItemList.Bottle_Golden_Cider.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.idunsapplejuice", "Idun's Apple Juice", null, 1, 295, ItemList.Bottle_Iduns_Apple_Juice.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.notchesbrew", "Notches Brew", null, 1, 295, ItemList.Bottle_Notches_Brew.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.lemonjuice", "Lemon Juice", null, 1, 295, ItemList.Bottle_Lemon_Juice.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.limoncello", "Limoncello", null, 1, 295, ItemList.Bottle_Limoncello.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.lemonade", "Lemonade", null, 1, 275, ItemList.Bottle_Lemonade.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.alcopops", "Alcopops", null, 1, 275, ItemList.Bottle_Alcopops.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.cavejohnsonsgrenadejuice", "Cave Johnsons Grenade Juice", null, 1, 295, ItemList.Bottle_Cave_Johnsons_Grenade_Juice.get(1L, new Object[0]), ItemList.Bottle_Empty.get(1L, new Object[0]), 250); + + GT_Mod.gregtechproxy.addFluid("potion.darkcoffee", "Dark Coffee", null, 1, 295, ItemList.ThermosCan_Dark_Coffee.get(1L, new Object[0]), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.darkcafeaulait", "Dark Cafe au lait", null, 1, 295, ItemList.ThermosCan_Dark_Cafe_au_lait.get(1L, new Object[0]), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.coffee", "Coffee", null, 1, 295, ItemList.ThermosCan_Coffee.get(1L, new Object[0]), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.cafeaulait", "Cafe au lait", null, 1, 295, ItemList.ThermosCan_Cafe_au_lait.get(1L, new Object[0]), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.laitaucafe", "Lait au cafe", null, 1, 295, ItemList.ThermosCan_Lait_au_cafe.get(1L, new Object[0]), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.darkchocolatemilk", "Bitter Chocolate Milk", null, 1, 295, ItemList.ThermosCan_Dark_Chocolate_Milk.get(1L, new Object[0]), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.chocolatemilk", "Chocolate Milk", null, 1, 295, ItemList.ThermosCan_Chocolate_Milk.get(1L, new Object[0]), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.tea", "Tea", null, 1, 295, ItemList.ThermosCan_Tea.get(1L, new Object[0]), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.sweettea", "Sweet Tea", null, 1, 295, ItemList.ThermosCan_Sweet_Tea.get(1L, new Object[0]), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 250); + GT_Mod.gregtechproxy.addFluid("potion.icetea", "Ice Tea", null, 1, 255, ItemList.ThermosCan_Ice_Tea.get(1L, new Object[0]), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 250); + + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.poison.strong", 750), ItemList.IC2_Spray_WeedEx.get(1L, new Object[0]), ItemList.Spray_Empty.get(1L, new Object[0]))); + + + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.poison", 125), ItemList.Arrow_Head_Glass_Poison.get(1L, new Object[0]), ItemList.Arrow_Head_Glass_Emtpy.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.poison.long", 125), ItemList.Arrow_Head_Glass_Poison_Long.get(1L, new Object[0]), ItemList.Arrow_Head_Glass_Emtpy.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.poison.strong", 125), ItemList.Arrow_Head_Glass_Poison_Strong.get(1L, new Object[0]), ItemList.Arrow_Head_Glass_Emtpy.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.slowness", 125), ItemList.Arrow_Head_Glass_Slowness.get(1L, new Object[0]), ItemList.Arrow_Head_Glass_Emtpy.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.slowness.long", 125), ItemList.Arrow_Head_Glass_Slowness_Long.get(1L, new Object[0]), ItemList.Arrow_Head_Glass_Emtpy.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.weakness", 125), ItemList.Arrow_Head_Glass_Weakness.get(1L, new Object[0]), ItemList.Arrow_Head_Glass_Emtpy.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.weakness.long", 125), ItemList.Arrow_Head_Glass_Weakness_Long.get(1L, new Object[0]), ItemList.Arrow_Head_Glass_Emtpy.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("holywater", 125), ItemList.Arrow_Head_Glass_Holy_Water.get(1L, new Object[0]), ItemList.Arrow_Head_Glass_Emtpy.get(1L, new Object[0]))); + + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.poison", 125), ItemList.Arrow_Wooden_Glass_Poison.get(1L, new Object[0]), ItemList.Arrow_Wooden_Glass_Emtpy.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.poison.long", 125), ItemList.Arrow_Wooden_Glass_Poison_Long.get(1L, new Object[0]), ItemList.Arrow_Wooden_Glass_Emtpy.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.poison.strong", 125), ItemList.Arrow_Wooden_Glass_Poison_Strong.get(1L, new Object[0]), ItemList.Arrow_Wooden_Glass_Emtpy.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.slowness", 125), ItemList.Arrow_Wooden_Glass_Slowness.get(1L, new Object[0]), ItemList.Arrow_Wooden_Glass_Emtpy.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.slowness.long", 125), ItemList.Arrow_Wooden_Glass_Slowness_Long.get(1L, new Object[0]), ItemList.Arrow_Wooden_Glass_Emtpy.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.weakness", 125), ItemList.Arrow_Wooden_Glass_Weakness.get(1L, new Object[0]), ItemList.Arrow_Wooden_Glass_Emtpy.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.weakness.long", 125), ItemList.Arrow_Wooden_Glass_Weakness_Long.get(1L, new Object[0]), ItemList.Arrow_Wooden_Glass_Emtpy.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("holywater", 125), ItemList.Arrow_Wooden_Glass_Holy_Water.get(1L, new Object[0]), ItemList.Arrow_Wooden_Glass_Emtpy.get(1L, new Object[0]))); + + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.poison", 125), ItemList.Arrow_Plastic_Glass_Poison.get(1L, new Object[0]), ItemList.Arrow_Plastic_Glass_Emtpy.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.poison.long", 125), ItemList.Arrow_Plastic_Glass_Poison_Long.get(1L, new Object[0]), ItemList.Arrow_Plastic_Glass_Emtpy.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.poison.strong", 125), ItemList.Arrow_Plastic_Glass_Poison_Strong.get(1L, new Object[0]), ItemList.Arrow_Plastic_Glass_Emtpy.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.slowness", 125), ItemList.Arrow_Plastic_Glass_Slowness.get(1L, new Object[0]), ItemList.Arrow_Plastic_Glass_Emtpy.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.slowness.long", 125), ItemList.Arrow_Plastic_Glass_Slowness_Long.get(1L, new Object[0]), ItemList.Arrow_Plastic_Glass_Emtpy.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.weakness", 125), ItemList.Arrow_Plastic_Glass_Weakness.get(1L, new Object[0]), ItemList.Arrow_Plastic_Glass_Emtpy.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("potion.weakness.long", 125), ItemList.Arrow_Plastic_Glass_Weakness_Long.get(1L, new Object[0]), ItemList.Arrow_Plastic_Glass_Emtpy.get(1L, new Object[0]))); + FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidRegistry.getFluidStack("holywater", 125), ItemList.Arrow_Plastic_Glass_Holy_Water.get(1L, new Object[0]), ItemList.Arrow_Plastic_Glass_Emtpy.get(1L, new Object[0]))); + if (!GT_Values.D1) { + try { + Class.forName("codechicken.nei.api.API"); + GT_Log.out.println("GT_Mod: Hiding certain Items from NEI."); + API.hideItem(ItemList.Display_Fluid.getWildcard(1L, new Object[0])); + } catch (Throwable e) { + if (GT_Values.D1) { + e.printStackTrace(GT_Log.err); + } + } + } + GT_ModHandler.addPulverisationRecipe(new ItemStack(Blocks.cobblestone, 1, 32767), new ItemStack(Blocks.sand, 1), null, 0, false); + //GT_ModHandler.addPulverisationRecipe(new ItemStack(Blocks.stone, 1, 32767), new ItemStack(Blocks.cobblestone, 1), null, 0, false); + GT_ModHandler.addPulverisationRecipe(new ItemStack(Blocks.gravel, 1, 32767), new ItemStack(Items.flint, 1), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Flint, 1L), 10, false); + GT_ModHandler.addPulverisationRecipe(new ItemStack(Blocks.furnace, 1, 32767), new ItemStack(Blocks.sand, 6), null, 0, false); + GT_ModHandler.addPulverisationRecipe(new ItemStack(Blocks.lit_furnace, 1, 32767), new ItemStack(Blocks.sand, 6), null, 0, false); + + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.FierySteel, GT_ModHandler.getModItem("TwilightForest", "item.fieryIngot", 1L, 0)); + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Knightmetal, GT_ModHandler.getModItem("TwilightForest", "item.knightMetal", 1L, 0)); + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Steeleaf, GT_ModHandler.getModItem("TwilightForest", "item.steeleafIngot", 1L, 0)); + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.IronWood, GT_ModHandler.getModItem("TwilightForest", "item.ironwoodIngot", 1L, 0)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.InfusedAir, GT_ModHandler.getModItem("Thaumcraft", "ItemShard", 1L, 0)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.InfusedFire, GT_ModHandler.getModItem("Thaumcraft", "ItemShard", 1L, 1)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.InfusedWater, GT_ModHandler.getModItem("Thaumcraft", "ItemShard", 1L, 2)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.InfusedEarth, GT_ModHandler.getModItem("Thaumcraft", "ItemShard", 1L, 3)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.InfusedOrder, GT_ModHandler.getModItem("Thaumcraft", "ItemShard", 1L, 4)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.InfusedEntropy, GT_ModHandler.getModItem("Thaumcraft", "ItemShard", 1L, 5)); + GT_OreDictUnificator.set(OrePrefixes.nugget, Materials.Mercury, GT_ModHandler.getModItem("Thaumcraft", "ItemNugget", 1L, 5)); + GT_OreDictUnificator.set(OrePrefixes.nugget, Materials.Thaumium, GT_ModHandler.getModItem("Thaumcraft", "ItemNugget", 1L, 6)); + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Thaumium, GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1L, 2)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Mercury, GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1L, 3)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Amber, GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1L, 6)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Firestone, GT_ModHandler.getModItem("Railcraft", "firestone.raw", 1L)); + + if (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + "railcraft", "plateIron", true)) { + GT_OreDictUnificator.set(OrePrefixes.plate, Materials.Iron, GT_ModHandler.getModItem("Railcraft", "part.plate", 1L, 0)); + } else { + GT_OreDictUnificator.set(OrePrefixes.plate, Materials.Iron, GT_ModHandler.getModItem("Railcraft", "part.plate", 1L, 0), false, false); + } + + if (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + "railcraft", "plateSteel", true)) { + GT_OreDictUnificator.set(OrePrefixes.plate, Materials.Steel, GT_ModHandler.getModItem("Railcraft", "part.plate", 1L, 1)); + } else { + GT_OreDictUnificator.set(OrePrefixes.plate, Materials.Steel, GT_ModHandler.getModItem("Railcraft", "part.plate", 1L, 1), false, false); + } + + if (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + "railcraft", "plateTinAlloy", true)) { + GT_OreDictUnificator.set(OrePrefixes.plate, Materials.TinAlloy, GT_ModHandler.getModItem("Railcraft", "part.plate", 1L, 2)); + } else { + GT_OreDictUnificator.set(OrePrefixes.plate, Materials.TinAlloy, GT_ModHandler.getModItem("Railcraft", "part.plate", 1L, 2), false, false); + } + + + if (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + "railcraft", "plateCopper", true)) { + GT_OreDictUnificator.set(OrePrefixes.plate, Materials.Copper, GT_ModHandler.getModItem("Railcraft", "part.plate", 1L, 3)); + } else { + GT_OreDictUnificator.set(OrePrefixes.plate, Materials.Copper, GT_ModHandler.getModItem("Railcraft", "part.plate", 1L, 3), false, false); + } + + + GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Cocoa, GT_ModHandler.getModItem("harvestcraft", "cocoapowderItem", 1L, 0)); + GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Coffee, ItemList.IC2_CoffeePowder.get(1L, new Object[0])); } - GT_ModHandler.addPulverisationRecipe(new ItemStack(Blocks.cobblestone, 1, 32767), new ItemStack(Blocks.sand, 1), null, 0, false); - //GT_ModHandler.addPulverisationRecipe(new ItemStack(Blocks.stone, 1, 32767), new ItemStack(Blocks.cobblestone, 1), null, 0, false); - GT_ModHandler.addPulverisationRecipe(new ItemStack(Blocks.gravel, 1, 32767), new ItemStack(Items.flint, 1), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Flint, 1L), 10, false); - GT_ModHandler.addPulverisationRecipe(new ItemStack(Blocks.furnace, 1, 32767), new ItemStack(Blocks.sand, 6), null, 0, false); - GT_ModHandler.addPulverisationRecipe(new ItemStack(Blocks.lit_furnace, 1, 32767), new ItemStack(Blocks.sand, 6), null, 0, false); - - GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.FierySteel, GT_ModHandler.getModItem("TwilightForest", "item.fieryIngot", 1L, 0)); - GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Knightmetal, GT_ModHandler.getModItem("TwilightForest", "item.knightMetal", 1L, 0)); - GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Steeleaf, GT_ModHandler.getModItem("TwilightForest", "item.steeleafIngot", 1L, 0)); - GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.IronWood, GT_ModHandler.getModItem("TwilightForest", "item.ironwoodIngot", 1L, 0)); - GT_OreDictUnificator.set(OrePrefixes.gem, Materials.InfusedAir, GT_ModHandler.getModItem("Thaumcraft", "ItemShard", 1L, 0)); - GT_OreDictUnificator.set(OrePrefixes.gem, Materials.InfusedFire, GT_ModHandler.getModItem("Thaumcraft", "ItemShard", 1L, 1)); - GT_OreDictUnificator.set(OrePrefixes.gem, Materials.InfusedWater, GT_ModHandler.getModItem("Thaumcraft", "ItemShard", 1L, 2)); - GT_OreDictUnificator.set(OrePrefixes.gem, Materials.InfusedEarth, GT_ModHandler.getModItem("Thaumcraft", "ItemShard", 1L, 3)); - GT_OreDictUnificator.set(OrePrefixes.gem, Materials.InfusedOrder, GT_ModHandler.getModItem("Thaumcraft", "ItemShard", 1L, 4)); - GT_OreDictUnificator.set(OrePrefixes.gem, Materials.InfusedEntropy, GT_ModHandler.getModItem("Thaumcraft", "ItemShard", 1L, 5)); - GT_OreDictUnificator.set(OrePrefixes.nugget, Materials.Mercury, GT_ModHandler.getModItem("Thaumcraft", "ItemNugget", 1L, 5)); - GT_OreDictUnificator.set(OrePrefixes.nugget, Materials.Thaumium, GT_ModHandler.getModItem("Thaumcraft", "ItemNugget", 1L, 6)); - GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Thaumium, GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1L, 2)); - GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Mercury, GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1L, 3)); - GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Amber, GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1L, 6)); - GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Firestone, GT_ModHandler.getModItem("Railcraft", "firestone.raw", 1L)); - - if(GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + "railcraft", "plateIron", true)){ - GT_OreDictUnificator.set(OrePrefixes.plate, Materials.Iron, GT_ModHandler.getModItem("Railcraft", "part.plate", 1L, 0));}else{ - GT_OreDictUnificator.set(OrePrefixes.plate, Materials.Iron, GT_ModHandler.getModItem("Railcraft", "part.plate", 1L, 0),false,false);} - - if(GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + "railcraft", "plateSteel", true)){ - GT_OreDictUnificator.set(OrePrefixes.plate, Materials.Steel, GT_ModHandler.getModItem("Railcraft", "part.plate", 1L, 1));}else{ - GT_OreDictUnificator.set(OrePrefixes.plate, Materials.Steel, GT_ModHandler.getModItem("Railcraft", "part.plate", 1L, 1),false,false);} - - if(GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + "railcraft", "plateTinAlloy", true)){ - GT_OreDictUnificator.set(OrePrefixes.plate, Materials.TinAlloy, GT_ModHandler.getModItem("Railcraft", "part.plate", 1L, 2));}else{ - GT_OreDictUnificator.set(OrePrefixes.plate, Materials.TinAlloy, GT_ModHandler.getModItem("Railcraft", "part.plate", 1L, 2),false,false);} - - - if(GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + "railcraft", "plateCopper", true)){ - GT_OreDictUnificator.set(OrePrefixes.plate, Materials.Copper, GT_ModHandler.getModItem("Railcraft", "part.plate", 1L, 3));}else{ - GT_OreDictUnificator.set(OrePrefixes.plate, Materials.Copper, GT_ModHandler.getModItem("Railcraft", "part.plate", 1L, 3),false,false);} - - - - - - GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Cocoa, GT_ModHandler.getModItem("harvestcraft", "cocoapowderItem", 1L, 0)); - GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Coffee, ItemList.IC2_CoffeePowder.get(1L, new Object[0])); - } } diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java index 5e24451c..f7ec3dc3 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java @@ -3,1273 +3,1199 @@ package gregtech.loaders.preload; import cpw.mods.fml.common.Loader; import gregtech.GT_Mod; import gregtech.api.GregTech_API; -import gregtech.api.enums.Dyes; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OreDictNames; -import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.*; import gregtech.api.interfaces.ITexture; -import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Cable; -import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Fluid; -import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Frame; -import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Item; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicBatteryBuffer; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicHull; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_GT_Recipe; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_GT_Recipe.X; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Dynamo; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Transformer; +import gregtech.api.metatileentity.implementations.*; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_ModHandler.RecipeBits; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; -import gregtech.common.GT_Proxy; -import gregtech.common.tileentities.automation.GT_MetaTileEntity_ChestBuffer; -import gregtech.common.tileentities.automation.GT_MetaTileEntity_Filter; -import gregtech.common.tileentities.automation.GT_MetaTileEntity_Regulator; -import gregtech.common.tileentities.automation.GT_MetaTileEntity_SuperBuffer; -import gregtech.common.tileentities.automation.GT_MetaTileEntity_TypeFilter; +import gregtech.common.tileentities.automation.*; import gregtech.common.tileentities.boilers.GT_MetaTileEntity_Boiler_Bronze; import gregtech.common.tileentities.boilers.GT_MetaTileEntity_Boiler_Lava; import gregtech.common.tileentities.boilers.GT_MetaTileEntity_Boiler_Solar; import gregtech.common.tileentities.boilers.GT_MetaTileEntity_Boiler_Steel; -import gregtech.common.tileentities.generators.GT_MetaTileEntity_DieselGenerator; -import gregtech.common.tileentities.generators.GT_MetaTileEntity_FluidNaquadahReactor; -import gregtech.common.tileentities.generators.GT_MetaTileEntity_GasTurbine; -import gregtech.common.tileentities.generators.GT_MetaTileEntity_MagicEnergyConverter; -import gregtech.common.tileentities.generators.GT_MetaTileEntity_MagicalEnergyAbsorber; -import gregtech.common.tileentities.generators.GT_MetaTileEntity_PlasmaGenerator; -import gregtech.common.tileentities.generators.GT_MetaTileEntity_SolidNaquadahReactor; -import gregtech.common.tileentities.generators.GT_MetaTileEntity_SteamTurbine; +import gregtech.common.tileentities.generators.*; import gregtech.common.tileentities.machines.GT_MetaTileEntity_BasicHull_Bronze; import gregtech.common.tileentities.machines.GT_MetaTileEntity_BasicHull_BronzeBricks; import gregtech.common.tileentities.machines.GT_MetaTileEntity_BasicHull_Steel; import gregtech.common.tileentities.machines.GT_MetaTileEntity_BasicHull_SteelBricks; -import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Boxinator; -import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Disassembler; -import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Massfabricator; -import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_MonsterRepellent; -import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_PotionBrewer; -import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Pump; -import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Replicator; -import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_RockBreaker; -import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Scanner; -import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Teleporter; +import gregtech.common.tileentities.machines.basic.*; import gregtech.common.tileentities.machines.multi.*; -import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_AlloySmelter_Bronze; -import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_AlloySmelter_Steel; -import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Compressor_Bronze; -import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Compressor_Steel; -import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Extractor_Bronze; -import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Extractor_Steel; -import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_ForgeHammer_Bronze; -import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_ForgeHammer_Steel; -import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Furnace_Bronze; -import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Furnace_Steel; -import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Macerator_Bronze; -import gregtech.common.tileentities.machines.steam.GT_MetaTileEntity_Macerator_Steel; +import gregtech.common.tileentities.machines.steam.*; import gregtech.common.tileentities.storage.GT_MetaTileEntity_Locker; import gregtech.common.tileentities.storage.GT_MetaTileEntity_QuantumChest; import gregtech.common.tileentities.storage.GT_MetaTileEntity_QuantumTank; - -import java.io.PrintStream; -import java.util.Map; - import net.minecraft.init.Blocks; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; -import net.minecraftforge.oredict.OreDictionary; public class GT_Loader_MetaTileEntities - implements Runnable -{ - public void run() - { - GT_Log.out.println("GT_Mod: Registering MetaTileEntities."); - run1(); - run2(); - run3(); - run4(); - } - - private static void run1() - { - GT_ModHandler.addCraftingRecipe(ItemList.Casing_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.WroughtIron) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Chrome) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Iridium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Osmium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Neutronium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_BronzePlatedBricks.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PhP", "PBP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('B'), new ItemStack(Blocks.brick_block, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_SolidSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_StableTitanium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Titanium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_HeatProof.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Invar), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Invar) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_FrostProof.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Aluminium), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_CleanStainlessSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.StainlessSteel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_RobustTungstenSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.TungstenSteel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Turbine.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Magnalium), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.BlueSteel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Pipe_Bronze.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PIP", "IFI", "PIP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Bronze), Character.valueOf('I'), OrePrefixes.pipeMedium.get(Materials.Bronze) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Pipe_Steel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PIP", "IFI", "PIP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Steel), Character.valueOf('I'), OrePrefixes.pipeMedium.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Pipe_Titanium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PIP", "IFI", "PIP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Titanium), Character.valueOf('I'), OrePrefixes.pipeMedium.get(Materials.Titanium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Pipe_TungstenSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PIP", "IFI", "PIP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.TungstenSteel), Character.valueOf('I'), OrePrefixes.pipeMedium.get(Materials.TungstenSteel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Gearbox_Bronze.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PhP", "GFG", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Bronze), Character.valueOf('G'), OrePrefixes.gearGt.get(Materials.Bronze) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Gearbox_Steel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PhP", "GFG", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Steel), Character.valueOf('G'), OrePrefixes.gearGt.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Gearbox_Titanium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PhP", "GFG", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGt.get(Materials.Titanium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Gearbox_TungstenSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PhP", "GFG", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGt.get(Materials.TungstenSteel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Firebox_Bronze.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PSP", "SFS", "PSP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Bronze), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Bronze) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Firebox_Steel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PSP", "SFS", "PSP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Steel), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Firebox_Titanium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PSP", "SFS", "PSP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Titanium), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Titanium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Firebox_TungstenSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PSP", "SFS", "PSP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.TungstenSteel), Character.valueOf('S'), OrePrefixes.stick.get(Materials.TungstenSteel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Coil_Cupronickel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.wireGt02.get(Materials.Cupronickel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Coil_Kanthal.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.wireGt02.get(Materials.Kanthal) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Coil_Nichrome.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.wireGt02.get(Materials.Nichrome) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Coil_Superconductor.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.wireGt02.get(Materials.Superconductor) }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Stripes_A.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "Y ", " M ", " B", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('Y'), Dyes.dyeYellow, Character.valueOf('B'), Dyes.dyeBlack }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Stripes_B.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " Y", " M ", "B ", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('Y'), Dyes.dyeYellow, Character.valueOf('B'), Dyes.dyeBlack }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_RadioactiveHazard.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " YB", " M ", " ", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('Y'), Dyes.dyeYellow, Character.valueOf('B'), Dyes.dyeBlack }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_BioHazard.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " Y ", " MB", " ", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('Y'), Dyes.dyeYellow, Character.valueOf('B'), Dyes.dyeBlack }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_ExplosionHazard.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " Y ", " M ", " B", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('Y'), Dyes.dyeYellow, Character.valueOf('B'), Dyes.dyeBlack }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_FireHazard.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " Y ", " M ", " B ", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('Y'), Dyes.dyeYellow, Character.valueOf('B'), Dyes.dyeBlack }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_AcidHazard.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " Y ", " M ", "B ", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('Y'), Dyes.dyeYellow, Character.valueOf('B'), Dyes.dyeBlack }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_MagicHazard.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " Y ", "BM ", " ", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('Y'), Dyes.dyeYellow, Character.valueOf('B'), Dyes.dyeBlack }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_FrostHazard.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "BY ", " M ", " ", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('Y'), Dyes.dyeYellow, Character.valueOf('B'), Dyes.dyeBlack }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_NoiseHazard.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " ", " M ", "BY ", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('Y'), Dyes.dyeYellow, Character.valueOf('B'), Dyes.dyeBlack }); - - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Casing_SolidSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { ItemList.Casing_Stripes_A }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Casing_SolidSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { ItemList.Casing_Stripes_B }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Casing_SolidSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { ItemList.Casing_RadioactiveHazard }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Casing_SolidSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { ItemList.Casing_BioHazard }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Casing_SolidSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { ItemList.Casing_ExplosionHazard }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Casing_SolidSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { ItemList.Casing_FireHazard }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Casing_SolidSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { ItemList.Casing_AcidHazard }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Casing_SolidSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { ItemList.Casing_MagicHazard }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Casing_SolidSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { ItemList.Casing_FrostHazard }); - GT_ModHandler.addShapelessCraftingRecipe(ItemList.Casing_SolidSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { ItemList.Casing_NoiseHazard }); - - ItemList.Hull_Bronze.set(new GT_MetaTileEntity_BasicHull_Bronze(1, "hull.bronze", "Bronze Hull", 0, "For your first Steam Machines").getStackForm(1L)); - ItemList.Hull_Bronze_Bricks.set(new GT_MetaTileEntity_BasicHull_BronzeBricks(2, "hull.bronze_bricked", "Bricked Bronze Hull", 0, "For your first Steam Machines").getStackForm(1L)); - ItemList.Hull_Steel.set(new GT_MetaTileEntity_BasicHull_Steel(3, "hull.steel", "Steel Hull", 0, "For improved Steam Machines").getStackForm(1L)); - ItemList.Hull_Steel_Bricks.set(new GT_MetaTileEntity_BasicHull_SteelBricks(4, "hull.steel_bricked", "Bricked Steel Hull", 0, "For improved Steam Machines").getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Hull_Bronze.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "PhP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hull_Bronze_Bricks.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "PhP", "BBB", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('B'), new ItemStack(Blocks.brick_block, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hull_Steel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "PhP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hull_Steel_Bricks.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "PhP", "BBB", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('B'), new ItemStack(Blocks.brick_block, 1) }); - - ItemList.Hull_ULV.set(new GT_MetaTileEntity_BasicHull(10, "hull.tier.00", "ULV Machine Hull", 0, EnumChatFormatting.RESET + "You just need " + EnumChatFormatting.DARK_PURPLE + "I" + EnumChatFormatting.LIGHT_PURPLE + "m" + EnumChatFormatting.DARK_RED + "a" + EnumChatFormatting.RED + "g" + EnumChatFormatting.YELLOW + "i" + EnumChatFormatting.GREEN + "n" + EnumChatFormatting.AQUA + "a" + EnumChatFormatting.DARK_AQUA + "t" + EnumChatFormatting.BLUE + "i" + EnumChatFormatting.DARK_BLUE + "o" + EnumChatFormatting.DARK_PURPLE + "n" + EnumChatFormatting.RESET + " to use this.", new ITexture[0]).getStackForm(1L)); - ItemList.Hull_LV.set(new GT_MetaTileEntity_BasicHull(11, "hull.tier.01", "LV Machine Hull", 1, EnumChatFormatting.RESET + "You just need " + EnumChatFormatting.DARK_PURPLE + "I" + EnumChatFormatting.LIGHT_PURPLE + "m" + EnumChatFormatting.DARK_RED + "a" + EnumChatFormatting.RED + "g" + EnumChatFormatting.YELLOW + "i" + EnumChatFormatting.GREEN + "n" + EnumChatFormatting.AQUA + "a" + EnumChatFormatting.DARK_AQUA + "t" + EnumChatFormatting.BLUE + "i" + EnumChatFormatting.DARK_BLUE + "o" + EnumChatFormatting.DARK_PURPLE + "n" + EnumChatFormatting.RESET + " to use this.", new ITexture[0]).getStackForm(1L)); - ItemList.Hull_MV.set(new GT_MetaTileEntity_BasicHull(12, "hull.tier.02", "MV Machine Hull", 2, EnumChatFormatting.RESET + "You just need " + EnumChatFormatting.DARK_PURPLE + "I" + EnumChatFormatting.LIGHT_PURPLE + "m" + EnumChatFormatting.DARK_RED + "a" + EnumChatFormatting.RED + "g" + EnumChatFormatting.YELLOW + "i" + EnumChatFormatting.GREEN + "n" + EnumChatFormatting.AQUA + "a" + EnumChatFormatting.DARK_AQUA + "t" + EnumChatFormatting.BLUE + "i" + EnumChatFormatting.DARK_BLUE + "o" + EnumChatFormatting.DARK_PURPLE + "n" + EnumChatFormatting.RESET + " to use this.", new ITexture[0]).getStackForm(1L)); - ItemList.Hull_HV.set(new GT_MetaTileEntity_BasicHull(13, "hull.tier.03", "HV Machine Hull", 3, EnumChatFormatting.RESET + "You just need " + EnumChatFormatting.DARK_PURPLE + "I" + EnumChatFormatting.LIGHT_PURPLE + "m" + EnumChatFormatting.DARK_RED + "a" + EnumChatFormatting.RED + "g" + EnumChatFormatting.YELLOW + "i" + EnumChatFormatting.GREEN + "n" + EnumChatFormatting.AQUA + "a" + EnumChatFormatting.DARK_AQUA + "t" + EnumChatFormatting.BLUE + "i" + EnumChatFormatting.DARK_BLUE + "o" + EnumChatFormatting.DARK_PURPLE + "n" + EnumChatFormatting.RESET + " to use this.", new ITexture[0]).getStackForm(1L)); - ItemList.Hull_EV.set(new GT_MetaTileEntity_BasicHull(14, "hull.tier.04", "EV Machine Hull", 4, EnumChatFormatting.RESET + "You just need " + EnumChatFormatting.DARK_PURPLE + "I" + EnumChatFormatting.LIGHT_PURPLE + "m" + EnumChatFormatting.DARK_RED + "a" + EnumChatFormatting.RED + "g" + EnumChatFormatting.YELLOW + "i" + EnumChatFormatting.GREEN + "n" + EnumChatFormatting.AQUA + "a" + EnumChatFormatting.DARK_AQUA + "t" + EnumChatFormatting.BLUE + "i" + EnumChatFormatting.DARK_BLUE + "o" + EnumChatFormatting.DARK_PURPLE + "n" + EnumChatFormatting.RESET + " to use this.", new ITexture[0]).getStackForm(1L)); - ItemList.Hull_IV.set(new GT_MetaTileEntity_BasicHull(15, "hull.tier.05", "IV Machine Hull", 5, EnumChatFormatting.RESET + "You just need " + EnumChatFormatting.DARK_PURPLE + "I" + EnumChatFormatting.LIGHT_PURPLE + "m" + EnumChatFormatting.DARK_RED + "a" + EnumChatFormatting.RED + "g" + EnumChatFormatting.YELLOW + "i" + EnumChatFormatting.GREEN + "n" + EnumChatFormatting.AQUA + "a" + EnumChatFormatting.DARK_AQUA + "t" + EnumChatFormatting.BLUE + "i" + EnumChatFormatting.DARK_BLUE + "o" + EnumChatFormatting.DARK_PURPLE + "n" + EnumChatFormatting.RESET + " to use this.", new ITexture[0]).getStackForm(1L)); - ItemList.Hull_LuV.set(new GT_MetaTileEntity_BasicHull(16, "hull.tier.06", "LuV Machine Hull", 6, EnumChatFormatting.RESET + "You just need " + EnumChatFormatting.DARK_PURPLE + "I" + EnumChatFormatting.LIGHT_PURPLE + "m" + EnumChatFormatting.DARK_RED + "a" + EnumChatFormatting.RED + "g" + EnumChatFormatting.YELLOW + "i" + EnumChatFormatting.GREEN + "n" + EnumChatFormatting.AQUA + "a" + EnumChatFormatting.DARK_AQUA + "t" + EnumChatFormatting.BLUE + "i" + EnumChatFormatting.DARK_BLUE + "o" + EnumChatFormatting.DARK_PURPLE + "n" + EnumChatFormatting.RESET + " to use this.", new ITexture[0]).getStackForm(1L)); - ItemList.Hull_ZPM.set(new GT_MetaTileEntity_BasicHull(17, "hull.tier.07", "ZPM Machine Hull", 7, EnumChatFormatting.RESET + "You just need " + EnumChatFormatting.DARK_PURPLE + "I" + EnumChatFormatting.LIGHT_PURPLE + "m" + EnumChatFormatting.DARK_RED + "a" + EnumChatFormatting.RED + "g" + EnumChatFormatting.YELLOW + "i" + EnumChatFormatting.GREEN + "n" + EnumChatFormatting.AQUA + "a" + EnumChatFormatting.DARK_AQUA + "t" + EnumChatFormatting.BLUE + "i" + EnumChatFormatting.DARK_BLUE + "o" + EnumChatFormatting.DARK_PURPLE + "n" + EnumChatFormatting.RESET + " to use this.", new ITexture[0]).getStackForm(1L)); - ItemList.Hull_UV.set(new GT_MetaTileEntity_BasicHull(18, "hull.tier.08", "UV Machine Hull", 8, EnumChatFormatting.RESET + "You just need " + EnumChatFormatting.DARK_PURPLE + "I" + EnumChatFormatting.LIGHT_PURPLE + "m" + EnumChatFormatting.DARK_RED + "a" + EnumChatFormatting.RED + "g" + EnumChatFormatting.YELLOW + "i" + EnumChatFormatting.GREEN + "n" + EnumChatFormatting.AQUA + "a" + EnumChatFormatting.DARK_AQUA + "t" + EnumChatFormatting.BLUE + "i" + EnumChatFormatting.DARK_BLUE + "o" + EnumChatFormatting.DARK_PURPLE + "n" + EnumChatFormatting.RESET + " to use this.", new ITexture[0]).getStackForm(1L)); - ItemList.Hull_MAX.set(new GT_MetaTileEntity_BasicHull(19, "hull.tier.09", "Max Machine Hull", 9, EnumChatFormatting.RESET + "You just need " + EnumChatFormatting.DARK_PURPLE + "I" + EnumChatFormatting.LIGHT_PURPLE + "m" + EnumChatFormatting.DARK_RED + "a" + EnumChatFormatting.RED + "g" + EnumChatFormatting.YELLOW + "i" + EnumChatFormatting.GREEN + "n" + EnumChatFormatting.AQUA + "a" + EnumChatFormatting.DARK_AQUA + "t" + EnumChatFormatting.BLUE + "i" + EnumChatFormatting.DARK_BLUE + "o" + EnumChatFormatting.DARK_PURPLE + "n" + EnumChatFormatting.RESET + " to use this.", new ITexture[0]).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Hull_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CMC", Character.valueOf('M'), ItemList.Casing_ULV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Lead) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hull_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CMC", Character.valueOf('M'), ItemList.Casing_LV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hull_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CMC", Character.valueOf('M'), ItemList.Casing_MV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.AnyCopper) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hull_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CMC", Character.valueOf('M'), ItemList.Casing_HV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Gold) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hull_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CMC", Character.valueOf('M'), ItemList.Casing_EV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hull_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CMC", Character.valueOf('M'), ItemList.Casing_IV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tungsten) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hull_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CMC", Character.valueOf('M'), ItemList.Casing_LuV, Character.valueOf('C'), OrePrefixes.cableGt04.get(Materials.Tungsten) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hull_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CMC", Character.valueOf('M'), ItemList.Casing_ZPM, Character.valueOf('C'), OrePrefixes.cableGt04.get(Materials.Osmium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hull_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CMC", Character.valueOf('M'), ItemList.Casing_UV, Character.valueOf('C'), OrePrefixes.wireGt16.get(Materials.Osmium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hull_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CMC", Character.valueOf('M'), ItemList.Casing_MAX, Character.valueOf('C'), OrePrefixes.wireGt01.get(Materials.Superconductor) }); - - ItemList.Transformer_LV_ULV.set(new GT_MetaTileEntity_Transformer(20, "transformer.tier.00", "Ultra Low Voltage Transformer", 0, "LV -> ULV (Use Soft Hammer to invert)").getStackForm(1L)); - ItemList.Transformer_MV_LV.set(new GT_MetaTileEntity_Transformer(21, "transformer.tier.01", "Low Voltage Transformer", 1, "MV -> LV (Use Soft Hammer to invert)").getStackForm(1L)); - ItemList.Transformer_HV_MV.set(new GT_MetaTileEntity_Transformer(22, "transformer.tier.02", "Medium Voltage Transformer", 2, "HV -> MV (Use Soft Hammer to invert)").getStackForm(1L)); - ItemList.Transformer_EV_HV.set(new GT_MetaTileEntity_Transformer(23, "transformer.tier.03", "High Voltage Transformer", 3, "EV -> HV (Use Soft Hammer to invert)").getStackForm(1L)); - ItemList.Transformer_IV_EV.set(new GT_MetaTileEntity_Transformer(24, "transformer.tier.04", "Extreme Transformer", 4, "IV -> EV (Use Soft Hammer to invert)").getStackForm(1L)); - ItemList.Transformer_LuV_IV.set(new GT_MetaTileEntity_Transformer(25, "transformer.tier.05", "Insane Transformer", 5, "LuV -> IV (Use Soft Hammer to invert)").getStackForm(1L)); - ItemList.Transformer_ZPM_LuV.set(new GT_MetaTileEntity_Transformer(26, "transformer.tier.06", "Ludicrous Transformer", 6, "ZPM -> LuV (Use Soft Hammer to invert)").getStackForm(1L)); - ItemList.Transformer_UV_ZPM.set(new GT_MetaTileEntity_Transformer(27, "transformer.tier.07", "ZPM Voltage Transformer", 7, "UV -> ZPM (Use Soft Hammer to invert)").getStackForm(1L)); - ItemList.Transformer_MAX_UV.set(new GT_MetaTileEntity_Transformer(28, "transformer.tier.08", "Ultimate Transformer", 8, "Any Voltage -> UV (Use Soft Hammer to invert)").getStackForm(1L)); - + implements Runnable { + private static void run1() { + GT_ModHandler.addCraftingRecipe(ItemList.Casing_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.WroughtIron)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Chrome)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Iridium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Osmium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Neutronium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_BronzePlatedBricks.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "PBP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('B'), new ItemStack(Blocks.brick_block, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_SolidSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_StableTitanium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Titanium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_HeatProof.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Invar), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Invar)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_FrostProof.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Aluminium), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_CleanStainlessSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.StainlessSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_RobustTungstenSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.TungstenSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Turbine.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Magnalium), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.BlueSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Pipe_Bronze.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PIP", "IFI", "PIP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Bronze), Character.valueOf('I'), OrePrefixes.pipeMedium.get(Materials.Bronze)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Pipe_Steel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PIP", "IFI", "PIP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Steel), Character.valueOf('I'), OrePrefixes.pipeMedium.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Pipe_Titanium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PIP", "IFI", "PIP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Titanium), Character.valueOf('I'), OrePrefixes.pipeMedium.get(Materials.Titanium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Pipe_TungstenSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PIP", "IFI", "PIP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.TungstenSteel), Character.valueOf('I'), OrePrefixes.pipeMedium.get(Materials.TungstenSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Gearbox_Bronze.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "GFG", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Bronze), Character.valueOf('G'), OrePrefixes.gearGt.get(Materials.Bronze)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Gearbox_Steel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "GFG", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Steel), Character.valueOf('G'), OrePrefixes.gearGt.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Gearbox_Titanium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "GFG", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGt.get(Materials.Titanium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Gearbox_TungstenSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "GFG", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGt.get(Materials.TungstenSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Firebox_Bronze.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PSP", "SFS", "PSP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Bronze), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Bronze)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Firebox_Steel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PSP", "SFS", "PSP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Steel), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Firebox_Titanium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PSP", "SFS", "PSP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Titanium), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Titanium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Firebox_TungstenSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PSP", "SFS", "PSP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.TungstenSteel), Character.valueOf('S'), OrePrefixes.stick.get(Materials.TungstenSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Coil_Cupronickel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.wireGt02.get(Materials.Cupronickel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Coil_Kanthal.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.wireGt02.get(Materials.Kanthal)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Coil_Nichrome.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.wireGt02.get(Materials.Nichrome)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Coil_Superconductor.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "PwP", "PPP", Character.valueOf('P'), OrePrefixes.wireGt02.get(Materials.Superconductor)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Stripes_A.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"Y ", " M ", " B", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('Y'), Dyes.dyeYellow, Character.valueOf('B'), Dyes.dyeBlack}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Stripes_B.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" Y", " M ", "B ", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('Y'), Dyes.dyeYellow, Character.valueOf('B'), Dyes.dyeBlack}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_RadioactiveHazard.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" YB", " M ", " ", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('Y'), Dyes.dyeYellow, Character.valueOf('B'), Dyes.dyeBlack}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_BioHazard.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" Y ", " MB", " ", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('Y'), Dyes.dyeYellow, Character.valueOf('B'), Dyes.dyeBlack}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_ExplosionHazard.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" Y ", " M ", " B", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('Y'), Dyes.dyeYellow, Character.valueOf('B'), Dyes.dyeBlack}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_FireHazard.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" Y ", " M ", " B ", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('Y'), Dyes.dyeYellow, Character.valueOf('B'), Dyes.dyeBlack}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_AcidHazard.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" Y ", " M ", "B ", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('Y'), Dyes.dyeYellow, Character.valueOf('B'), Dyes.dyeBlack}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_MagicHazard.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" Y ", "BM ", " ", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('Y'), Dyes.dyeYellow, Character.valueOf('B'), Dyes.dyeBlack}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_FrostHazard.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"BY ", " M ", " ", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('Y'), Dyes.dyeYellow, Character.valueOf('B'), Dyes.dyeBlack}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_NoiseHazard.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" ", " M ", "BY ", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('Y'), Dyes.dyeYellow, Character.valueOf('B'), Dyes.dyeBlack}); - GT_ModHandler.addCraftingRecipe(ItemList.Transformer_LV_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " BB", "CM ", " BB", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin), Character.valueOf('B'), OrePrefixes.cableGt01.get(Materials.Lead) }); - GT_ModHandler.addCraftingRecipe(ItemList.Transformer_MV_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " BB", "CM ", " BB", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.AnyCopper), Character.valueOf('B'), OrePrefixes.cableGt01.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.Transformer_HV_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " BB", "CM ", " BB", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Gold), Character.valueOf('B'), OrePrefixes.cableGt01.get(Materials.AnyCopper) }); - GT_ModHandler.addCraftingRecipe(ItemList.Transformer_EV_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " BB", "CM ", " BB", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Aluminium), Character.valueOf('B'), OrePrefixes.cableGt01.get(Materials.Gold) }); - GT_ModHandler.addCraftingRecipe(ItemList.Transformer_IV_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " BB", "CM ", " BB", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tungsten), Character.valueOf('B'), OrePrefixes.cableGt01.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Transformer_LuV_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[] { " BB", "CM ", " BB", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('C'), OrePrefixes.cableGt04.get(Materials.Tungsten), Character.valueOf('B'), OrePrefixes.cableGt01.get(Materials.Tungsten) }); - GT_ModHandler.addCraftingRecipe(ItemList.Transformer_ZPM_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " BB", "CM ", " BB", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('C'), OrePrefixes.cableGt04.get(Materials.Osmium), Character.valueOf('B'), OrePrefixes.cableGt04.get(Materials.Tungsten) }); - GT_ModHandler.addCraftingRecipe(ItemList.Transformer_UV_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " BB", "CM ", " BB", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('C'), OrePrefixes.wireGt16.get(Materials.Osmium), Character.valueOf('B'), OrePrefixes.cableGt04.get(Materials.Osmium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Transformer_MAX_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " BB", "CM ", " BB", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('C'), OrePrefixes.wireGt01.get(Materials.Superconductor), Character.valueOf('B'), OrePrefixes.wireGt16.get(Materials.Osmium) }); - - ItemList.Hatch_Dynamo_ULV.set(new GT_MetaTileEntity_Hatch_Dynamo(30, "hatch.dynamo.tier.00", "ULV Dynamo Hatch", 0).getStackForm(1L)); - ItemList.Hatch_Dynamo_LV.set(new GT_MetaTileEntity_Hatch_Dynamo(31, "hatch.dynamo.tier.01", "LV Dynamo Hatch", 1).getStackForm(1L)); - ItemList.Hatch_Dynamo_MV.set(new GT_MetaTileEntity_Hatch_Dynamo(32, "hatch.dynamo.tier.02", "MV Dynamo Hatch", 2).getStackForm(1L)); - ItemList.Hatch_Dynamo_HV.set(new GT_MetaTileEntity_Hatch_Dynamo(33, "hatch.dynamo.tier.03", "HV Dynamo Hatch", 3).getStackForm(1L)); - ItemList.Hatch_Dynamo_EV.set(new GT_MetaTileEntity_Hatch_Dynamo(34, "hatch.dynamo.tier.04", "EV Dynamo Hatch", 4).getStackForm(1L)); - ItemList.Hatch_Dynamo_IV.set(new GT_MetaTileEntity_Hatch_Dynamo(35, "hatch.dynamo.tier.05", "IV Dynamo Hatch", 5).getStackForm(1L)); - ItemList.Hatch_Dynamo_LuV.set(new GT_MetaTileEntity_Hatch_Dynamo(36, "hatch.dynamo.tier.06", "LuV Dynamo Hatch", 6).getStackForm(1L)); - ItemList.Hatch_Dynamo_ZPM.set(new GT_MetaTileEntity_Hatch_Dynamo(37, "hatch.dynamo.tier.07", "ZPM Dynamo Hatch", 7).getStackForm(1L)); - ItemList.Hatch_Dynamo_UV.set(new GT_MetaTileEntity_Hatch_Dynamo(38, "hatch.dynamo.tier.08", "UV Dynamo Hatch", 8).getStackForm(1L)); - ItemList.Hatch_Dynamo_MAX.set(new GT_MetaTileEntity_Hatch_Dynamo(39, "hatch.dynamo.tier.09", "Max Dynamo Hatch", 9).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Dynamo_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " MC", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Lead) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Dynamo_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " MC", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Dynamo_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " MC", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.AnyCopper) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Dynamo_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " MC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Gold) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Dynamo_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " MC", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Dynamo_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[] { " MC", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tungsten) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Dynamo_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " MC", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('C'), OrePrefixes.cableGt04.get(Materials.Tungsten) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Dynamo_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " MC", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('C'), OrePrefixes.cableGt04.get(Materials.Osmium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Dynamo_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " MC", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('C'), OrePrefixes.wireGt16.get(Materials.Osmium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Dynamo_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " MC", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('C'), OrePrefixes.wireGt01.get(Materials.Superconductor) }); - - ItemList.Hatch_Energy_ULV.set(new GT_MetaTileEntity_Hatch_Energy(40, "hatch.energy.tier.00", "ULV Energy Hatch", 0).getStackForm(1L)); - ItemList.Hatch_Energy_LV.set(new GT_MetaTileEntity_Hatch_Energy(41, "hatch.energy.tier.01", "LV Energy Hatch", 1).getStackForm(1L)); - ItemList.Hatch_Energy_MV.set(new GT_MetaTileEntity_Hatch_Energy(42, "hatch.energy.tier.02", "MV Energy Hatch", 2).getStackForm(1L)); - ItemList.Hatch_Energy_HV.set(new GT_MetaTileEntity_Hatch_Energy(43, "hatch.energy.tier.03", "HV Energy Hatch", 3).getStackForm(1L)); - ItemList.Hatch_Energy_EV.set(new GT_MetaTileEntity_Hatch_Energy(44, "hatch.energy.tier.04", "EV Energy Hatch", 4).getStackForm(1L)); - ItemList.Hatch_Energy_IV.set(new GT_MetaTileEntity_Hatch_Energy(45, "hatch.energy.tier.05", "IV Energy Hatch", 5).getStackForm(1L)); - ItemList.Hatch_Energy_LuV.set(new GT_MetaTileEntity_Hatch_Energy(46, "hatch.energy.tier.06", "LuV Energy Hatch", 6).getStackForm(1L)); - ItemList.Hatch_Energy_ZPM.set(new GT_MetaTileEntity_Hatch_Energy(47, "hatch.energy.tier.07", "ZPM Energy Hatch", 7).getStackForm(1L)); - ItemList.Hatch_Energy_UV.set(new GT_MetaTileEntity_Hatch_Energy(48, "hatch.energy.tier.08", "UV Energy Hatch", 8).getStackForm(1L)); - ItemList.Hatch_Energy_MAX.set(new GT_MetaTileEntity_Hatch_Energy(49, "hatch.energy.tier.09", "Max Energy Hatch", 9).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Energy_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CM ", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Lead) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Energy_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CM ", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Energy_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CM ", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.AnyCopper) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Energy_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CM ", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Gold) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Energy_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CM ", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Energy_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[] { "CM ", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tungsten) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Energy_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CM ", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('C'), OrePrefixes.cableGt04.get(Materials.Tungsten) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Energy_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CM ", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('C'), OrePrefixes.cableGt04.get(Materials.Osmium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Energy_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CM ", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('C'), OrePrefixes.wireGt16.get(Materials.Osmium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Energy_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CM ", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('C'), OrePrefixes.wireGt01.get(Materials.Superconductor) }); - - ItemList.Hatch_Input_ULV.set(new GT_MetaTileEntity_Hatch_Input(50, "hatch.input.tier.00", "Input Hatch (ULV)", 0).getStackForm(1L)); - ItemList.Hatch_Input_LV.set(new GT_MetaTileEntity_Hatch_Input(51, "hatch.input.tier.01", "Input Hatch (LV)", 1).getStackForm(1L)); - ItemList.Hatch_Input_MV.set(new GT_MetaTileEntity_Hatch_Input(52, "hatch.input.tier.02", "Input Hatch (MV)", 2).getStackForm(1L)); - ItemList.Hatch_Input_HV.set(new GT_MetaTileEntity_Hatch_Input(53, "hatch.input.tier.03", "Input Hatch (HV)", 3).getStackForm(1L)); - ItemList.Hatch_Input_EV.set(new GT_MetaTileEntity_Hatch_Input(54, "hatch.input.tier.04", "Input Hatch (EV)", 4).getStackForm(1L)); - ItemList.Hatch_Input_IV.set(new GT_MetaTileEntity_Hatch_Input(55, "hatch.input.tier.05", "Input Hatch (IV)", 5).getStackForm(1L)); - ItemList.Hatch_Input_LuV.set(new GT_MetaTileEntity_Hatch_Input(56, "hatch.input.tier.06", "Input Hatch (LuV)", 6).getStackForm(1L)); - ItemList.Hatch_Input_ZPM.set(new GT_MetaTileEntity_Hatch_Input(57, "hatch.input.tier.07", "Input Hatch (ZPM)", 7).getStackForm(1L)); - ItemList.Hatch_Input_UV.set(new GT_MetaTileEntity_Hatch_Input(58, "hatch.input.tier.08", "Input Hatch (UV)", 8).getStackForm(1L)); - ItemList.Hatch_Input_MAX.set(new GT_MetaTileEntity_Hatch_Input(59, "hatch.input.tier.09", "Input Hatch (MAX)", 9).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "G", "M", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "G", "M", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "G", "M", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "G", "M", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "G", "M", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_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[] { "G", "M", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "G", "M", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "G", "M", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "G", "M", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "G", "M", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Casing_SolidSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{ItemList.Casing_Stripes_A}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Casing_SolidSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{ItemList.Casing_Stripes_B}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Casing_SolidSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{ItemList.Casing_RadioactiveHazard}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Casing_SolidSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{ItemList.Casing_BioHazard}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Casing_SolidSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{ItemList.Casing_ExplosionHazard}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Casing_SolidSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{ItemList.Casing_FireHazard}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Casing_SolidSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{ItemList.Casing_AcidHazard}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Casing_SolidSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{ItemList.Casing_MagicHazard}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Casing_SolidSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{ItemList.Casing_FrostHazard}); + GT_ModHandler.addShapelessCraftingRecipe(ItemList.Casing_SolidSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{ItemList.Casing_NoiseHazard}); - ItemList.Hatch_Output_ULV.set(new GT_MetaTileEntity_Hatch_Output(60, "hatch.output.tier.00", "Output Hatch (ULV)", 0).getStackForm(1L)); - ItemList.Hatch_Output_LV.set(new GT_MetaTileEntity_Hatch_Output(61, "hatch.output.tier.01", "Output Hatch (LV)", 1).getStackForm(1L)); - ItemList.Hatch_Output_MV.set(new GT_MetaTileEntity_Hatch_Output(62, "hatch.output.tier.02", "Output Hatch (MV)", 2).getStackForm(1L)); - ItemList.Hatch_Output_HV.set(new GT_MetaTileEntity_Hatch_Output(63, "hatch.output.tier.03", "Output Hatch (HV)", 3).getStackForm(1L)); - ItemList.Hatch_Output_EV.set(new GT_MetaTileEntity_Hatch_Output(64, "hatch.output.tier.04", "Output Hatch (EV)", 4).getStackForm(1L)); - ItemList.Hatch_Output_IV.set(new GT_MetaTileEntity_Hatch_Output(65, "hatch.output.tier.05", "Output Hatch (IV)", 5).getStackForm(1L)); - ItemList.Hatch_Output_LuV.set(new GT_MetaTileEntity_Hatch_Output(66, "hatch.output.tier.06", "Output Hatch (LuV)", 6).getStackForm(1L)); - ItemList.Hatch_Output_ZPM.set(new GT_MetaTileEntity_Hatch_Output(67, "hatch.output.tier.07", "Output Hatch (ZPM)", 7).getStackForm(1L)); - ItemList.Hatch_Output_UV.set(new GT_MetaTileEntity_Hatch_Output(68, "hatch.output.tier.08", "Output Hatch (UV)", 8).getStackForm(1L)); - ItemList.Hatch_Output_MAX.set(new GT_MetaTileEntity_Hatch_Output(69, "hatch.output.tier.09", "Output Hatch (MAX)", 9).getStackForm(1L)); - - ItemList.Quantum_Tank_LV.set(new GT_MetaTileEntity_QuantumTank(120, "quantum.tank.tier.01", "Quantum Tank I", 1).getStackForm(1L)); - ItemList.Quantum_Tank_MV.set(new GT_MetaTileEntity_QuantumTank(121, "quantum.tank.tier.02", "Quantum Tank II", 2).getStackForm(1L)); - ItemList.Quantum_Tank_HV.set(new GT_MetaTileEntity_QuantumTank(122, "quantum.tank.tier.03", "Quantum Tank III", 3).getStackForm(1L)); - ItemList.Quantum_Tank_EV.set(new GT_MetaTileEntity_QuantumTank(123, "quantum.tank.tier.04", "Quantum Tank IV", 4).getStackForm(1L)); - ItemList.Quantum_Tank_IV.set(new GT_MetaTileEntity_QuantumTank(124, "quantum.tank.tier.05", "Quantum Tank V", 5).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Tank_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "DGD", "PMP","DPD", 'M', ItemList.Hull_LV, 'G', ItemList.Field_Generator_LV ,'D',ItemList.Circuit_Parts_Crystal_Chip_Elite,'P',OrePrefixes.plate.get(Materials.StainlessSteel)}); - GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Tank_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "DGD", "PMP","DPD", 'M', ItemList.Hull_MV, 'G', ItemList.Field_Generator_MV ,'D',ItemList.Circuit_Data,'P',OrePrefixes.plate.get(Materials.Titanium)}); - GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Tank_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "DGD", "PMP","DPD", 'M', ItemList.Hull_HV, 'G', ItemList.Field_Generator_HV ,'D',ItemList.Circuit_Elite,'P',OrePrefixes.plate.get(Materials.TungstenSteel)}); - GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Tank_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "DGD", "PMP","DPD", 'M', ItemList.Hull_EV, 'G', ItemList.Field_Generator_EV ,'D',ItemList.Circuit_Master,'P',OrePrefixes.plate.get(Materials.Europium)}); - GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Tank_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[] { "DGD", "PMP","DPD", 'M', ItemList.Hull_IV, 'G', ItemList.Field_Generator_IV ,'D',ItemList.Circuit_Master,'P',OrePrefixes.plate.get(Materials.Americium)}); - - ItemList.Quantum_Chest_LV.set(new GT_MetaTileEntity_QuantumChest(125, "quantum.chest.tier.01", "Quantum Chest I", 1).getStackForm(1L)); - ItemList.Quantum_Chest_MV.set(new GT_MetaTileEntity_QuantumChest(126, "quantum.chest.tier.02", "Quantum Chest II", 2).getStackForm(1L)); - ItemList.Quantum_Chest_HV.set(new GT_MetaTileEntity_QuantumChest(127, "quantum.chest.tier.03", "Quantum Chest III", 3).getStackForm(1L)); - ItemList.Quantum_Chest_EV.set(new GT_MetaTileEntity_QuantumChest(128, "quantum.chest.tier.04", "Quantum Chest IV", 4).getStackForm(1L)); - ItemList.Quantum_Chest_IV.set(new GT_MetaTileEntity_QuantumChest(129, "quantum.chest.tier.05", "Quantum Chest V", 5).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Chest_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "DPD", "PMP","DGD", 'M', ItemList.Hull_LV, 'G', ItemList.Field_Generator_LV ,'D',ItemList.Circuit_Parts_Crystal_Chip_Elite,'P',OrePrefixes.plate.get(Materials.StainlessSteel)}); - GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Chest_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "DPD", "PMP","DGD", 'M', ItemList.Hull_MV, 'G', ItemList.Field_Generator_MV ,'D',ItemList.Circuit_Data,'P',OrePrefixes.plate.get(Materials.Titanium)}); - GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Chest_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "DPD", "PMP","DGD", 'M', ItemList.Hull_HV, 'G', ItemList.Field_Generator_HV ,'D',ItemList.Circuit_Elite,'P',OrePrefixes.plate.get(Materials.TungstenSteel)}); - GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Chest_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "DPD", "PMP","DGD", 'M', ItemList.Hull_EV, 'G', ItemList.Field_Generator_EV ,'D',ItemList.Circuit_Master,'P',OrePrefixes.plate.get(Materials.Europium)}); - GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Chest_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[] { "DPD", "PMP","DGD", 'M', ItemList.Hull_IV, 'G', ItemList.Field_Generator_IV ,'D',ItemList.Circuit_Master,'P',OrePrefixes.plate.get(Materials.Americium)}); - - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "G", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "G", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "G", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "G", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "G", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_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[] { "M", "G", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "G", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "G", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "G", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "G", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - - ItemList.Hatch_Input_Bus_ULV.set(new GT_MetaTileEntity_Hatch_InputBus(70, "hatch.input_bus.tier.00", "Input Bus (ULV)", 0).getStackForm(1L)); - ItemList.Hatch_Input_Bus_LV.set(new GT_MetaTileEntity_Hatch_InputBus(71, "hatch.input_bus.tier.01", "Input Bus (LV)", 1).getStackForm(1L)); - ItemList.Hatch_Input_Bus_MV.set(new GT_MetaTileEntity_Hatch_InputBus(72, "hatch.input_bus.tier.02", "Input Bus (MV)", 2).getStackForm(1L)); - ItemList.Hatch_Input_Bus_HV.set(new GT_MetaTileEntity_Hatch_InputBus(73, "hatch.input_bus.tier.03", "Input Bus (HV)", 3).getStackForm(1L)); - ItemList.Hatch_Input_Bus_EV.set(new GT_MetaTileEntity_Hatch_InputBus(74, "hatch.input_bus.tier.04", "Input Bus (EV)", 4).getStackForm(1L)); - ItemList.Hatch_Input_Bus_IV.set(new GT_MetaTileEntity_Hatch_InputBus(75, "hatch.input_bus.tier.05", "Input Bus (IV)", 5).getStackForm(1L)); - ItemList.Hatch_Input_Bus_LuV.set(new GT_MetaTileEntity_Hatch_InputBus(76, "hatch.input_bus.tier.06", "Input Bus (LuV)", 6).getStackForm(1L)); - ItemList.Hatch_Input_Bus_ZPM.set(new GT_MetaTileEntity_Hatch_InputBus(77, "hatch.input_bus.tier.07", "Input Bus (ZPM)", 7).getStackForm(1L)); - ItemList.Hatch_Input_Bus_UV.set(new GT_MetaTileEntity_Hatch_InputBus(78, "hatch.input_bus.tier.08", "Input Bus (UV)", 8).getStackForm(1L)); - ItemList.Hatch_Input_Bus_MAX.set(new GT_MetaTileEntity_Hatch_InputBus(79, "hatch.input_bus.tier.09", "Input Bus (MAX)", 9).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_Bus_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "C", "M", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('C'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_Bus_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "C", "M", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('C'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_Bus_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "C", "M", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('C'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_Bus_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "C", "M", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('C'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_Bus_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "C", "M", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('C'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_Bus_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[] { "C", "M", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('C'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_Bus_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "C", "M", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('C'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_Bus_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "C", "M", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('C'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_Bus_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "C", "M", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('C'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_Bus_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "C", "M", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('C'), OreDictNames.craftingChest }); - - ItemList.Hatch_Output_Bus_ULV.set(new GT_MetaTileEntity_Hatch_OutputBus(80, "hatch.output_bus.tier.00", "Output Bus (ULV)", 0).getStackForm(1L)); - ItemList.Hatch_Output_Bus_LV.set(new GT_MetaTileEntity_Hatch_OutputBus(81, "hatch.output_bus.tier.01", "Output Bus (LV)", 1).getStackForm(1L)); - ItemList.Hatch_Output_Bus_MV.set(new GT_MetaTileEntity_Hatch_OutputBus(82, "hatch.output_bus.tier.02", "Output Bus (MV)", 2).getStackForm(1L)); - ItemList.Hatch_Output_Bus_HV.set(new GT_MetaTileEntity_Hatch_OutputBus(83, "hatch.output_bus.tier.03", "Output Bus (HV)", 3).getStackForm(1L)); - ItemList.Hatch_Output_Bus_EV.set(new GT_MetaTileEntity_Hatch_OutputBus(84, "hatch.output_bus.tier.04", "Output Bus (EV)", 4).getStackForm(1L)); - ItemList.Hatch_Output_Bus_IV.set(new GT_MetaTileEntity_Hatch_OutputBus(85, "hatch.output_bus.tier.05", "Output Bus (IV)", 5).getStackForm(1L)); - ItemList.Hatch_Output_Bus_LuV.set(new GT_MetaTileEntity_Hatch_OutputBus(86, "hatch.output_bus.tier.06", "Output Bus (LuV)", 6).getStackForm(1L)); - ItemList.Hatch_Output_Bus_ZPM.set(new GT_MetaTileEntity_Hatch_OutputBus(87, "hatch.output_bus.tier.07", "Output Bus (ZPM)", 7).getStackForm(1L)); - ItemList.Hatch_Output_Bus_UV.set(new GT_MetaTileEntity_Hatch_OutputBus(88, "hatch.output_bus.tier.08", "Output Bus (UV)", 8).getStackForm(1L)); - ItemList.Hatch_Output_Bus_MAX.set(new GT_MetaTileEntity_Hatch_OutputBus(89, "hatch.output_bus.tier.09", "Output Bus (MAX)", 9).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_Bus_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "C", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('C'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_Bus_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "C", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('C'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_Bus_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "C", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('C'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_Bus_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "C", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('C'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_Bus_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "C", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('C'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_Bus_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[] { "M", "C", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('C'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_Bus_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "C", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('C'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_Bus_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "C", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('C'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_Bus_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "C", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('C'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_Bus_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "C", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('C'), OreDictNames.craftingChest }); - - ItemList.Hatch_Maintenance.set(new GT_MetaTileEntity_Hatch_Maintenance(90, "hatch.maintenance", "Maintenance Hatch", 1).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Maintenance.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "dwx", "hMc", "fsr", Character.valueOf('M'), ItemList.Hull_LV }); - - ItemList.Hatch_Muffler_LV.set(new GT_MetaTileEntity_Hatch_Muffler(91, "hatch.muffler.tier.01", "Muffler Hatch (LV)", 1).getStackForm(1L)); - ItemList.Hatch_Muffler_MV.set(new GT_MetaTileEntity_Hatch_Muffler(92, "hatch.muffler.tier.02", "Muffler Hatch (MV)", 2).getStackForm(1L)); - ItemList.Hatch_Muffler_HV.set(new GT_MetaTileEntity_Hatch_Muffler(93, "hatch.muffler.tier.03", "Muffler Hatch (HV)", 3).getStackForm(1L)); - ItemList.Hatch_Muffler_EV.set(new GT_MetaTileEntity_Hatch_Muffler(94, "hatch.muffler.tier.04", "Muffler Hatch (EV)", 4).getStackForm(1L)); - ItemList.Hatch_Muffler_IV.set(new GT_MetaTileEntity_Hatch_Muffler(95, "hatch.muffler.tier.05", "Muffler Hatch (IV)", 5).getStackForm(1L)); - ItemList.Hatch_Muffler_LuV.set(new GT_MetaTileEntity_Hatch_Muffler(96, "hatch.muffler.tier.06", "Muffler Hatch (LuV)", 6).getStackForm(1L)); - ItemList.Hatch_Muffler_ZPM.set(new GT_MetaTileEntity_Hatch_Muffler(97, "hatch.muffler.tier.07", "Muffler Hatch (ZPM)", 7).getStackForm(1L)); - ItemList.Hatch_Muffler_UV.set(new GT_MetaTileEntity_Hatch_Muffler(98, "hatch.muffler.tier.08", "Muffler Hatch (UV)", 8).getStackForm(1L)); - ItemList.Hatch_Muffler_MAX.set(new GT_MetaTileEntity_Hatch_Muffler(99, "hatch.muffler.tier.09", "Muffler Hatch (MAX)", 9).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Muffler_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Muffler_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Muffler_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Muffler_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Muffler_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[] { "M", "P", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Muffler_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Muffler_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Muffler_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Muffler_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel) }); - + ItemList.Hull_Bronze.set(new GT_MetaTileEntity_BasicHull_Bronze(1, "hull.bronze", "Bronze Hull", 0, "For your first Steam Machines").getStackForm(1L)); + ItemList.Hull_Bronze_Bricks.set(new GT_MetaTileEntity_BasicHull_BronzeBricks(2, "hull.bronze_bricked", "Bricked Bronze Hull", 0, "For your first Steam Machines").getStackForm(1L)); + ItemList.Hull_Steel.set(new GT_MetaTileEntity_BasicHull_Steel(3, "hull.steel", "Steel Hull", 0, "For improved Steam Machines").getStackForm(1L)); + ItemList.Hull_Steel_Bricks.set(new GT_MetaTileEntity_BasicHull_SteelBricks(4, "hull.steel_bricked", "Bricked Steel Hull", 0, "For improved Steam Machines").getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Hull_Bronze.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "PhP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_Bronze_Bricks.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "PhP", "BBB", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('B'), new ItemStack(Blocks.brick_block, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_Steel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "PhP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_Steel_Bricks.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "PhP", "BBB", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('B'), new ItemStack(Blocks.brick_block, 1)}); + + ItemList.Hull_ULV.set(new GT_MetaTileEntity_BasicHull(10, "hull.tier.00", "ULV Machine Hull", 0, EnumChatFormatting.RESET + "You just need " + EnumChatFormatting.DARK_PURPLE + "I" + EnumChatFormatting.LIGHT_PURPLE + "m" + EnumChatFormatting.DARK_RED + "a" + EnumChatFormatting.RED + "g" + EnumChatFormatting.YELLOW + "i" + EnumChatFormatting.GREEN + "n" + EnumChatFormatting.AQUA + "a" + EnumChatFormatting.DARK_AQUA + "t" + EnumChatFormatting.BLUE + "i" + EnumChatFormatting.DARK_BLUE + "o" + EnumChatFormatting.DARK_PURPLE + "n" + EnumChatFormatting.RESET + " to use this.", new ITexture[0]).getStackForm(1L)); + ItemList.Hull_LV.set(new GT_MetaTileEntity_BasicHull(11, "hull.tier.01", "LV Machine Hull", 1, EnumChatFormatting.RESET + "You just need " + EnumChatFormatting.DARK_PURPLE + "I" + EnumChatFormatting.LIGHT_PURPLE + "m" + EnumChatFormatting.DARK_RED + "a" + EnumChatFormatting.RED + "g" + EnumChatFormatting.YELLOW + "i" + EnumChatFormatting.GREEN + "n" + EnumChatFormatting.AQUA + "a" + EnumChatFormatting.DARK_AQUA + "t" + EnumChatFormatting.BLUE + "i" + EnumChatFormatting.DARK_BLUE + "o" + EnumChatFormatting.DARK_PURPLE + "n" + EnumChatFormatting.RESET + " to use this.", new ITexture[0]).getStackForm(1L)); + ItemList.Hull_MV.set(new GT_MetaTileEntity_BasicHull(12, "hull.tier.02", "MV Machine Hull", 2, EnumChatFormatting.RESET + "You just need " + EnumChatFormatting.DARK_PURPLE + "I" + EnumChatFormatting.LIGHT_PURPLE + "m" + EnumChatFormatting.DARK_RED + "a" + EnumChatFormatting.RED + "g" + EnumChatFormatting.YELLOW + "i" + EnumChatFormatting.GREEN + "n" + EnumChatFormatting.AQUA + "a" + EnumChatFormatting.DARK_AQUA + "t" + EnumChatFormatting.BLUE + "i" + EnumChatFormatting.DARK_BLUE + "o" + EnumChatFormatting.DARK_PURPLE + "n" + EnumChatFormatting.RESET + " to use this.", new ITexture[0]).getStackForm(1L)); + ItemList.Hull_HV.set(new GT_MetaTileEntity_BasicHull(13, "hull.tier.03", "HV Machine Hull", 3, EnumChatFormatting.RESET + "You just need " + EnumChatFormatting.DARK_PURPLE + "I" + EnumChatFormatting.LIGHT_PURPLE + "m" + EnumChatFormatting.DARK_RED + "a" + EnumChatFormatting.RED + "g" + EnumChatFormatting.YELLOW + "i" + EnumChatFormatting.GREEN + "n" + EnumChatFormatting.AQUA + "a" + EnumChatFormatting.DARK_AQUA + "t" + EnumChatFormatting.BLUE + "i" + EnumChatFormatting.DARK_BLUE + "o" + EnumChatFormatting.DARK_PURPLE + "n" + EnumChatFormatting.RESET + " to use this.", new ITexture[0]).getStackForm(1L)); + ItemList.Hull_EV.set(new GT_MetaTileEntity_BasicHull(14, "hull.tier.04", "EV Machine Hull", 4, EnumChatFormatting.RESET + "You just need " + EnumChatFormatting.DARK_PURPLE + "I" + EnumChatFormatting.LIGHT_PURPLE + "m" + EnumChatFormatting.DARK_RED + "a" + EnumChatFormatting.RED + "g" + EnumChatFormatting.YELLOW + "i" + EnumChatFormatting.GREEN + "n" + EnumChatFormatting.AQUA + "a" + EnumChatFormatting.DARK_AQUA + "t" + EnumChatFormatting.BLUE + "i" + EnumChatFormatting.DARK_BLUE + "o" + EnumChatFormatting.DARK_PURPLE + "n" + EnumChatFormatting.RESET + " to use this.", new ITexture[0]).getStackForm(1L)); + ItemList.Hull_IV.set(new GT_MetaTileEntity_BasicHull(15, "hull.tier.05", "IV Machine Hull", 5, EnumChatFormatting.RESET + "You just need " + EnumChatFormatting.DARK_PURPLE + "I" + EnumChatFormatting.LIGHT_PURPLE + "m" + EnumChatFormatting.DARK_RED + "a" + EnumChatFormatting.RED + "g" + EnumChatFormatting.YELLOW + "i" + EnumChatFormatting.GREEN + "n" + EnumChatFormatting.AQUA + "a" + EnumChatFormatting.DARK_AQUA + "t" + EnumChatFormatting.BLUE + "i" + EnumChatFormatting.DARK_BLUE + "o" + EnumChatFormatting.DARK_PURPLE + "n" + EnumChatFormatting.RESET + " to use this.", new ITexture[0]).getStackForm(1L)); + ItemList.Hull_LuV.set(new GT_MetaTileEntity_BasicHull(16, "hull.tier.06", "LuV Machine Hull", 6, EnumChatFormatting.RESET + "You just need " + EnumChatFormatting.DARK_PURPLE + "I" + EnumChatFormatting.LIGHT_PURPLE + "m" + EnumChatFormatting.DARK_RED + "a" + EnumChatFormatting.RED + "g" + EnumChatFormatting.YELLOW + "i" + EnumChatFormatting.GREEN + "n" + EnumChatFormatting.AQUA + "a" + EnumChatFormatting.DARK_AQUA + "t" + EnumChatFormatting.BLUE + "i" + EnumChatFormatting.DARK_BLUE + "o" + EnumChatFormatting.DARK_PURPLE + "n" + EnumChatFormatting.RESET + " to use this.", new ITexture[0]).getStackForm(1L)); + ItemList.Hull_ZPM.set(new GT_MetaTileEntity_BasicHull(17, "hull.tier.07", "ZPM Machine Hull", 7, EnumChatFormatting.RESET + "You just need " + EnumChatFormatting.DARK_PURPLE + "I" + EnumChatFormatting.LIGHT_PURPLE + "m" + EnumChatFormatting.DARK_RED + "a" + EnumChatFormatting.RED + "g" + EnumChatFormatting.YELLOW + "i" + EnumChatFormatting.GREEN + "n" + EnumChatFormatting.AQUA + "a" + EnumChatFormatting.DARK_AQUA + "t" + EnumChatFormatting.BLUE + "i" + EnumChatFormatting.DARK_BLUE + "o" + EnumChatFormatting.DARK_PURPLE + "n" + EnumChatFormatting.RESET + " to use this.", new ITexture[0]).getStackForm(1L)); + ItemList.Hull_UV.set(new GT_MetaTileEntity_BasicHull(18, "hull.tier.08", "UV Machine Hull", 8, EnumChatFormatting.RESET + "You just need " + EnumChatFormatting.DARK_PURPLE + "I" + EnumChatFormatting.LIGHT_PURPLE + "m" + EnumChatFormatting.DARK_RED + "a" + EnumChatFormatting.RED + "g" + EnumChatFormatting.YELLOW + "i" + EnumChatFormatting.GREEN + "n" + EnumChatFormatting.AQUA + "a" + EnumChatFormatting.DARK_AQUA + "t" + EnumChatFormatting.BLUE + "i" + EnumChatFormatting.DARK_BLUE + "o" + EnumChatFormatting.DARK_PURPLE + "n" + EnumChatFormatting.RESET + " to use this.", new ITexture[0]).getStackForm(1L)); + ItemList.Hull_MAX.set(new GT_MetaTileEntity_BasicHull(19, "hull.tier.09", "Max Machine Hull", 9, EnumChatFormatting.RESET + "You just need " + EnumChatFormatting.DARK_PURPLE + "I" + EnumChatFormatting.LIGHT_PURPLE + "m" + EnumChatFormatting.DARK_RED + "a" + EnumChatFormatting.RED + "g" + EnumChatFormatting.YELLOW + "i" + EnumChatFormatting.GREEN + "n" + EnumChatFormatting.AQUA + "a" + EnumChatFormatting.DARK_AQUA + "t" + EnumChatFormatting.BLUE + "i" + EnumChatFormatting.DARK_BLUE + "o" + EnumChatFormatting.DARK_PURPLE + "n" + EnumChatFormatting.RESET + " to use this.", new ITexture[0]).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Hull_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_ULV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Lead)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_LV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_MV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.AnyCopper)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_HV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Gold)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_EV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_IV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tungsten)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_LuV, Character.valueOf('C'), OrePrefixes.cableGt04.get(Materials.Tungsten)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_ZPM, Character.valueOf('C'), OrePrefixes.cableGt04.get(Materials.Osmium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_UV, Character.valueOf('C'), OrePrefixes.wireGt16.get(Materials.Osmium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_MAX, Character.valueOf('C'), OrePrefixes.wireGt01.get(Materials.Superconductor)}); + + ItemList.Transformer_LV_ULV.set(new GT_MetaTileEntity_Transformer(20, "transformer.tier.00", "Ultra Low Voltage Transformer", 0, "LV -> ULV (Use Soft Hammer to invert)").getStackForm(1L)); + ItemList.Transformer_MV_LV.set(new GT_MetaTileEntity_Transformer(21, "transformer.tier.01", "Low Voltage Transformer", 1, "MV -> LV (Use Soft Hammer to invert)").getStackForm(1L)); + ItemList.Transformer_HV_MV.set(new GT_MetaTileEntity_Transformer(22, "transformer.tier.02", "Medium Voltage Transformer", 2, "HV -> MV (Use Soft Hammer to invert)").getStackForm(1L)); + ItemList.Transformer_EV_HV.set(new GT_MetaTileEntity_Transformer(23, "transformer.tier.03", "High Voltage Transformer", 3, "EV -> HV (Use Soft Hammer to invert)").getStackForm(1L)); + ItemList.Transformer_IV_EV.set(new GT_MetaTileEntity_Transformer(24, "transformer.tier.04", "Extreme Transformer", 4, "IV -> EV (Use Soft Hammer to invert)").getStackForm(1L)); + ItemList.Transformer_LuV_IV.set(new GT_MetaTileEntity_Transformer(25, "transformer.tier.05", "Insane Transformer", 5, "LuV -> IV (Use Soft Hammer to invert)").getStackForm(1L)); + ItemList.Transformer_ZPM_LuV.set(new GT_MetaTileEntity_Transformer(26, "transformer.tier.06", "Ludicrous Transformer", 6, "ZPM -> LuV (Use Soft Hammer to invert)").getStackForm(1L)); + ItemList.Transformer_UV_ZPM.set(new GT_MetaTileEntity_Transformer(27, "transformer.tier.07", "ZPM Voltage Transformer", 7, "UV -> ZPM (Use Soft Hammer to invert)").getStackForm(1L)); + ItemList.Transformer_MAX_UV.set(new GT_MetaTileEntity_Transformer(28, "transformer.tier.08", "Ultimate Transformer", 8, "Any Voltage -> UV (Use Soft Hammer to invert)").getStackForm(1L)); - ItemList.Machine_Bronze_Boiler.set(new GT_MetaTileEntity_Boiler_Bronze(100, "boiler.bronze", "Small Coal Boiler").getStackForm(1L)); - ItemList.Machine_Steel_Boiler.set(new GT_MetaTileEntity_Boiler_Steel(101, "boiler.steel", "High Pressure Coal Boiler").getStackForm(1L)); - ItemList.Machine_Steel_Boiler_Lava.set(new GT_MetaTileEntity_Boiler_Lava(102, "boiler.lava", "High Pressure Lava Boiler").getStackForm(1L)); - ItemList.Machine_Bronze_Boiler_Solar.set(new GT_MetaTileEntity_Boiler_Solar(105, "boiler.solar", "Simple Solar Boiler").getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_Boiler.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "P P", "BFB", Character.valueOf('F'), OreDictNames.craftingFurnace, Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('B'), new ItemStack(Blocks.brick_block, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Steel_Boiler.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "P P", "BFB", Character.valueOf('F'), OreDictNames.craftingFurnace, Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('B'), new ItemStack(Blocks.brick_block, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Steel_Boiler_Lava.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "GGG", "PMP", Character.valueOf('M'), ItemList.Hull_Steel_Bricks, Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_Boiler_Solar.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "GGG", "SSS", "PMP", Character.valueOf('M'), ItemList.Hull_Bronze_Bricks, Character.valueOf('P'), OrePrefixes.pipeSmall.get(Materials.Bronze), Character.valueOf('S'), OrePrefixes.plate.get(Materials.Silver), Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - - ItemList.Machine_Bronze_BlastFurnace.set(new GT_MetaTileEntity_BronzeBlastFurnace(108, "bronzemachine.blastfurnace", "Bronze Plated Blast Furnace").getStackForm(1L)); - if (!Loader.isModLoaded("terrafirmacraft")) { - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_BlastFurnace.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PFP", "FwF", "PFP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('F'), OreDictNames.craftingFurnace }); + GT_ModHandler.addCraftingRecipe(ItemList.Transformer_LV_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" BB", "CM ", " BB", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin), Character.valueOf('B'), OrePrefixes.cableGt01.get(Materials.Lead)}); + GT_ModHandler.addCraftingRecipe(ItemList.Transformer_MV_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" BB", "CM ", " BB", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.AnyCopper), Character.valueOf('B'), OrePrefixes.cableGt01.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.Transformer_HV_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" BB", "CM ", " BB", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Gold), Character.valueOf('B'), OrePrefixes.cableGt01.get(Materials.AnyCopper)}); + GT_ModHandler.addCraftingRecipe(ItemList.Transformer_EV_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" BB", "CM ", " BB", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Aluminium), Character.valueOf('B'), OrePrefixes.cableGt01.get(Materials.Gold)}); + GT_ModHandler.addCraftingRecipe(ItemList.Transformer_IV_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" BB", "CM ", " BB", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tungsten), Character.valueOf('B'), OrePrefixes.cableGt01.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Transformer_LuV_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[]{" BB", "CM ", " BB", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('C'), OrePrefixes.cableGt04.get(Materials.Tungsten), Character.valueOf('B'), OrePrefixes.cableGt01.get(Materials.Tungsten)}); + GT_ModHandler.addCraftingRecipe(ItemList.Transformer_ZPM_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" BB", "CM ", " BB", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('C'), OrePrefixes.cableGt04.get(Materials.Osmium), Character.valueOf('B'), OrePrefixes.cableGt04.get(Materials.Tungsten)}); + GT_ModHandler.addCraftingRecipe(ItemList.Transformer_UV_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" BB", "CM ", " BB", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('C'), OrePrefixes.wireGt16.get(Materials.Osmium), Character.valueOf('B'), OrePrefixes.cableGt04.get(Materials.Osmium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Transformer_MAX_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" BB", "CM ", " BB", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('C'), OrePrefixes.wireGt01.get(Materials.Superconductor), Character.valueOf('B'), OrePrefixes.wireGt16.get(Materials.Osmium)}); + + ItemList.Hatch_Dynamo_ULV.set(new GT_MetaTileEntity_Hatch_Dynamo(30, "hatch.dynamo.tier.00", "ULV Dynamo Hatch", 0).getStackForm(1L)); + ItemList.Hatch_Dynamo_LV.set(new GT_MetaTileEntity_Hatch_Dynamo(31, "hatch.dynamo.tier.01", "LV Dynamo Hatch", 1).getStackForm(1L)); + ItemList.Hatch_Dynamo_MV.set(new GT_MetaTileEntity_Hatch_Dynamo(32, "hatch.dynamo.tier.02", "MV Dynamo Hatch", 2).getStackForm(1L)); + ItemList.Hatch_Dynamo_HV.set(new GT_MetaTileEntity_Hatch_Dynamo(33, "hatch.dynamo.tier.03", "HV Dynamo Hatch", 3).getStackForm(1L)); + ItemList.Hatch_Dynamo_EV.set(new GT_MetaTileEntity_Hatch_Dynamo(34, "hatch.dynamo.tier.04", "EV Dynamo Hatch", 4).getStackForm(1L)); + ItemList.Hatch_Dynamo_IV.set(new GT_MetaTileEntity_Hatch_Dynamo(35, "hatch.dynamo.tier.05", "IV Dynamo Hatch", 5).getStackForm(1L)); + ItemList.Hatch_Dynamo_LuV.set(new GT_MetaTileEntity_Hatch_Dynamo(36, "hatch.dynamo.tier.06", "LuV Dynamo Hatch", 6).getStackForm(1L)); + ItemList.Hatch_Dynamo_ZPM.set(new GT_MetaTileEntity_Hatch_Dynamo(37, "hatch.dynamo.tier.07", "ZPM Dynamo Hatch", 7).getStackForm(1L)); + ItemList.Hatch_Dynamo_UV.set(new GT_MetaTileEntity_Hatch_Dynamo(38, "hatch.dynamo.tier.08", "UV Dynamo Hatch", 8).getStackForm(1L)); + ItemList.Hatch_Dynamo_MAX.set(new GT_MetaTileEntity_Hatch_Dynamo(39, "hatch.dynamo.tier.09", "Max Dynamo Hatch", 9).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Dynamo_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" MC", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Lead)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Dynamo_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" MC", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Dynamo_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" MC", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.AnyCopper)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Dynamo_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" MC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Gold)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Dynamo_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" MC", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Dynamo_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[]{" MC", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tungsten)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Dynamo_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" MC", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('C'), OrePrefixes.cableGt04.get(Materials.Tungsten)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Dynamo_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" MC", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('C'), OrePrefixes.cableGt04.get(Materials.Osmium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Dynamo_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" MC", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('C'), OrePrefixes.wireGt16.get(Materials.Osmium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Dynamo_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" MC", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('C'), OrePrefixes.wireGt01.get(Materials.Superconductor)}); + + ItemList.Hatch_Energy_ULV.set(new GT_MetaTileEntity_Hatch_Energy(40, "hatch.energy.tier.00", "ULV Energy Hatch", 0).getStackForm(1L)); + ItemList.Hatch_Energy_LV.set(new GT_MetaTileEntity_Hatch_Energy(41, "hatch.energy.tier.01", "LV Energy Hatch", 1).getStackForm(1L)); + ItemList.Hatch_Energy_MV.set(new GT_MetaTileEntity_Hatch_Energy(42, "hatch.energy.tier.02", "MV Energy Hatch", 2).getStackForm(1L)); + ItemList.Hatch_Energy_HV.set(new GT_MetaTileEntity_Hatch_Energy(43, "hatch.energy.tier.03", "HV Energy Hatch", 3).getStackForm(1L)); + ItemList.Hatch_Energy_EV.set(new GT_MetaTileEntity_Hatch_Energy(44, "hatch.energy.tier.04", "EV Energy Hatch", 4).getStackForm(1L)); + ItemList.Hatch_Energy_IV.set(new GT_MetaTileEntity_Hatch_Energy(45, "hatch.energy.tier.05", "IV Energy Hatch", 5).getStackForm(1L)); + ItemList.Hatch_Energy_LuV.set(new GT_MetaTileEntity_Hatch_Energy(46, "hatch.energy.tier.06", "LuV Energy Hatch", 6).getStackForm(1L)); + ItemList.Hatch_Energy_ZPM.set(new GT_MetaTileEntity_Hatch_Energy(47, "hatch.energy.tier.07", "ZPM Energy Hatch", 7).getStackForm(1L)); + ItemList.Hatch_Energy_UV.set(new GT_MetaTileEntity_Hatch_Energy(48, "hatch.energy.tier.08", "UV Energy Hatch", 8).getStackForm(1L)); + ItemList.Hatch_Energy_MAX.set(new GT_MetaTileEntity_Hatch_Energy(49, "hatch.energy.tier.09", "Max Energy Hatch", 9).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Energy_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CM ", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Lead)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Energy_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CM ", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Energy_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CM ", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.AnyCopper)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Energy_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CM ", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Gold)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Energy_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CM ", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Energy_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[]{"CM ", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tungsten)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Energy_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CM ", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('C'), OrePrefixes.cableGt04.get(Materials.Tungsten)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Energy_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CM ", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('C'), OrePrefixes.cableGt04.get(Materials.Osmium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Energy_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CM ", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('C'), OrePrefixes.wireGt16.get(Materials.Osmium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Energy_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CM ", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('C'), OrePrefixes.wireGt01.get(Materials.Superconductor)}); + + ItemList.Hatch_Input_ULV.set(new GT_MetaTileEntity_Hatch_Input(50, "hatch.input.tier.00", "Input Hatch (ULV)", 0).getStackForm(1L)); + ItemList.Hatch_Input_LV.set(new GT_MetaTileEntity_Hatch_Input(51, "hatch.input.tier.01", "Input Hatch (LV)", 1).getStackForm(1L)); + ItemList.Hatch_Input_MV.set(new GT_MetaTileEntity_Hatch_Input(52, "hatch.input.tier.02", "Input Hatch (MV)", 2).getStackForm(1L)); + ItemList.Hatch_Input_HV.set(new GT_MetaTileEntity_Hatch_Input(53, "hatch.input.tier.03", "Input Hatch (HV)", 3).getStackForm(1L)); + ItemList.Hatch_Input_EV.set(new GT_MetaTileEntity_Hatch_Input(54, "hatch.input.tier.04", "Input Hatch (EV)", 4).getStackForm(1L)); + ItemList.Hatch_Input_IV.set(new GT_MetaTileEntity_Hatch_Input(55, "hatch.input.tier.05", "Input Hatch (IV)", 5).getStackForm(1L)); + ItemList.Hatch_Input_LuV.set(new GT_MetaTileEntity_Hatch_Input(56, "hatch.input.tier.06", "Input Hatch (LuV)", 6).getStackForm(1L)); + ItemList.Hatch_Input_ZPM.set(new GT_MetaTileEntity_Hatch_Input(57, "hatch.input.tier.07", "Input Hatch (ZPM)", 7).getStackForm(1L)); + ItemList.Hatch_Input_UV.set(new GT_MetaTileEntity_Hatch_Input(58, "hatch.input.tier.08", "Input Hatch (UV)", 8).getStackForm(1L)); + ItemList.Hatch_Input_MAX.set(new GT_MetaTileEntity_Hatch_Input(59, "hatch.input.tier.09", "Input Hatch (MAX)", 9).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"G", "M", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"G", "M", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"G", "M", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"G", "M", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"G", "M", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_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[]{"G", "M", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"G", "M", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"G", "M", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"G", "M", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"G", "M", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + + ItemList.Hatch_Output_ULV.set(new GT_MetaTileEntity_Hatch_Output(60, "hatch.output.tier.00", "Output Hatch (ULV)", 0).getStackForm(1L)); + ItemList.Hatch_Output_LV.set(new GT_MetaTileEntity_Hatch_Output(61, "hatch.output.tier.01", "Output Hatch (LV)", 1).getStackForm(1L)); + ItemList.Hatch_Output_MV.set(new GT_MetaTileEntity_Hatch_Output(62, "hatch.output.tier.02", "Output Hatch (MV)", 2).getStackForm(1L)); + ItemList.Hatch_Output_HV.set(new GT_MetaTileEntity_Hatch_Output(63, "hatch.output.tier.03", "Output Hatch (HV)", 3).getStackForm(1L)); + ItemList.Hatch_Output_EV.set(new GT_MetaTileEntity_Hatch_Output(64, "hatch.output.tier.04", "Output Hatch (EV)", 4).getStackForm(1L)); + ItemList.Hatch_Output_IV.set(new GT_MetaTileEntity_Hatch_Output(65, "hatch.output.tier.05", "Output Hatch (IV)", 5).getStackForm(1L)); + ItemList.Hatch_Output_LuV.set(new GT_MetaTileEntity_Hatch_Output(66, "hatch.output.tier.06", "Output Hatch (LuV)", 6).getStackForm(1L)); + ItemList.Hatch_Output_ZPM.set(new GT_MetaTileEntity_Hatch_Output(67, "hatch.output.tier.07", "Output Hatch (ZPM)", 7).getStackForm(1L)); + ItemList.Hatch_Output_UV.set(new GT_MetaTileEntity_Hatch_Output(68, "hatch.output.tier.08", "Output Hatch (UV)", 8).getStackForm(1L)); + ItemList.Hatch_Output_MAX.set(new GT_MetaTileEntity_Hatch_Output(69, "hatch.output.tier.09", "Output Hatch (MAX)", 9).getStackForm(1L)); + + ItemList.Quantum_Tank_LV.set(new GT_MetaTileEntity_QuantumTank(120, "quantum.tank.tier.01", "Quantum Tank I", 1).getStackForm(1L)); + ItemList.Quantum_Tank_MV.set(new GT_MetaTileEntity_QuantumTank(121, "quantum.tank.tier.02", "Quantum Tank II", 2).getStackForm(1L)); + ItemList.Quantum_Tank_HV.set(new GT_MetaTileEntity_QuantumTank(122, "quantum.tank.tier.03", "Quantum Tank III", 3).getStackForm(1L)); + ItemList.Quantum_Tank_EV.set(new GT_MetaTileEntity_QuantumTank(123, "quantum.tank.tier.04", "Quantum Tank IV", 4).getStackForm(1L)); + ItemList.Quantum_Tank_IV.set(new GT_MetaTileEntity_QuantumTank(124, "quantum.tank.tier.05", "Quantum Tank V", 5).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Tank_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DGD", "PMP", "DPD", 'M', ItemList.Hull_LV, 'G', ItemList.Field_Generator_LV, 'D', ItemList.Circuit_Parts_Crystal_Chip_Elite, 'P', OrePrefixes.plate.get(Materials.StainlessSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Tank_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DGD", "PMP", "DPD", 'M', ItemList.Hull_MV, 'G', ItemList.Field_Generator_MV, 'D', ItemList.Circuit_Data, 'P', OrePrefixes.plate.get(Materials.Titanium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Tank_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DGD", "PMP", "DPD", 'M', ItemList.Hull_HV, 'G', ItemList.Field_Generator_HV, 'D', ItemList.Circuit_Elite, 'P', OrePrefixes.plate.get(Materials.TungstenSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Tank_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DGD", "PMP", "DPD", 'M', ItemList.Hull_EV, 'G', ItemList.Field_Generator_EV, 'D', ItemList.Circuit_Master, 'P', OrePrefixes.plate.get(Materials.Europium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Tank_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[]{"DGD", "PMP", "DPD", 'M', ItemList.Hull_IV, 'G', ItemList.Field_Generator_IV, 'D', ItemList.Circuit_Master, 'P', OrePrefixes.plate.get(Materials.Americium)}); + + ItemList.Quantum_Chest_LV.set(new GT_MetaTileEntity_QuantumChest(125, "quantum.chest.tier.01", "Quantum Chest I", 1).getStackForm(1L)); + ItemList.Quantum_Chest_MV.set(new GT_MetaTileEntity_QuantumChest(126, "quantum.chest.tier.02", "Quantum Chest II", 2).getStackForm(1L)); + ItemList.Quantum_Chest_HV.set(new GT_MetaTileEntity_QuantumChest(127, "quantum.chest.tier.03", "Quantum Chest III", 3).getStackForm(1L)); + ItemList.Quantum_Chest_EV.set(new GT_MetaTileEntity_QuantumChest(128, "quantum.chest.tier.04", "Quantum Chest IV", 4).getStackForm(1L)); + ItemList.Quantum_Chest_IV.set(new GT_MetaTileEntity_QuantumChest(129, "quantum.chest.tier.05", "Quantum Chest V", 5).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Chest_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DPD", "PMP", "DGD", 'M', ItemList.Hull_LV, 'G', ItemList.Field_Generator_LV, 'D', ItemList.Circuit_Parts_Crystal_Chip_Elite, 'P', OrePrefixes.plate.get(Materials.StainlessSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Chest_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DPD", "PMP", "DGD", 'M', ItemList.Hull_MV, 'G', ItemList.Field_Generator_MV, 'D', ItemList.Circuit_Data, 'P', OrePrefixes.plate.get(Materials.Titanium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Chest_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DPD", "PMP", "DGD", 'M', ItemList.Hull_HV, 'G', ItemList.Field_Generator_HV, 'D', ItemList.Circuit_Elite, 'P', OrePrefixes.plate.get(Materials.TungstenSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Chest_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DPD", "PMP", "DGD", 'M', ItemList.Hull_EV, 'G', ItemList.Field_Generator_EV, 'D', ItemList.Circuit_Master, 'P', OrePrefixes.plate.get(Materials.Europium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Chest_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[]{"DPD", "PMP", "DGD", 'M', ItemList.Hull_IV, 'G', ItemList.Field_Generator_IV, 'D', ItemList.Circuit_Master, 'P', OrePrefixes.plate.get(Materials.Americium)}); + + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "G", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "G", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "G", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "G", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "G", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_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[]{"M", "G", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "G", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "G", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "G", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "G", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + + ItemList.Hatch_Input_Bus_ULV.set(new GT_MetaTileEntity_Hatch_InputBus(70, "hatch.input_bus.tier.00", "Input Bus (ULV)", 0).getStackForm(1L)); + ItemList.Hatch_Input_Bus_LV.set(new GT_MetaTileEntity_Hatch_InputBus(71, "hatch.input_bus.tier.01", "Input Bus (LV)", 1).getStackForm(1L)); + ItemList.Hatch_Input_Bus_MV.set(new GT_MetaTileEntity_Hatch_InputBus(72, "hatch.input_bus.tier.02", "Input Bus (MV)", 2).getStackForm(1L)); + ItemList.Hatch_Input_Bus_HV.set(new GT_MetaTileEntity_Hatch_InputBus(73, "hatch.input_bus.tier.03", "Input Bus (HV)", 3).getStackForm(1L)); + ItemList.Hatch_Input_Bus_EV.set(new GT_MetaTileEntity_Hatch_InputBus(74, "hatch.input_bus.tier.04", "Input Bus (EV)", 4).getStackForm(1L)); + ItemList.Hatch_Input_Bus_IV.set(new GT_MetaTileEntity_Hatch_InputBus(75, "hatch.input_bus.tier.05", "Input Bus (IV)", 5).getStackForm(1L)); + ItemList.Hatch_Input_Bus_LuV.set(new GT_MetaTileEntity_Hatch_InputBus(76, "hatch.input_bus.tier.06", "Input Bus (LuV)", 6).getStackForm(1L)); + ItemList.Hatch_Input_Bus_ZPM.set(new GT_MetaTileEntity_Hatch_InputBus(77, "hatch.input_bus.tier.07", "Input Bus (ZPM)", 7).getStackForm(1L)); + ItemList.Hatch_Input_Bus_UV.set(new GT_MetaTileEntity_Hatch_InputBus(78, "hatch.input_bus.tier.08", "Input Bus (UV)", 8).getStackForm(1L)); + ItemList.Hatch_Input_Bus_MAX.set(new GT_MetaTileEntity_Hatch_InputBus(79, "hatch.input_bus.tier.09", "Input Bus (MAX)", 9).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_Bus_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"C", "M", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('C'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_Bus_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"C", "M", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('C'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_Bus_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"C", "M", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('C'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_Bus_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"C", "M", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('C'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_Bus_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"C", "M", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('C'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_Bus_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[]{"C", "M", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('C'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_Bus_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"C", "M", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('C'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_Bus_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"C", "M", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('C'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_Bus_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"C", "M", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('C'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Input_Bus_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"C", "M", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('C'), OreDictNames.craftingChest}); + + ItemList.Hatch_Output_Bus_ULV.set(new GT_MetaTileEntity_Hatch_OutputBus(80, "hatch.output_bus.tier.00", "Output Bus (ULV)", 0).getStackForm(1L)); + ItemList.Hatch_Output_Bus_LV.set(new GT_MetaTileEntity_Hatch_OutputBus(81, "hatch.output_bus.tier.01", "Output Bus (LV)", 1).getStackForm(1L)); + ItemList.Hatch_Output_Bus_MV.set(new GT_MetaTileEntity_Hatch_OutputBus(82, "hatch.output_bus.tier.02", "Output Bus (MV)", 2).getStackForm(1L)); + ItemList.Hatch_Output_Bus_HV.set(new GT_MetaTileEntity_Hatch_OutputBus(83, "hatch.output_bus.tier.03", "Output Bus (HV)", 3).getStackForm(1L)); + ItemList.Hatch_Output_Bus_EV.set(new GT_MetaTileEntity_Hatch_OutputBus(84, "hatch.output_bus.tier.04", "Output Bus (EV)", 4).getStackForm(1L)); + ItemList.Hatch_Output_Bus_IV.set(new GT_MetaTileEntity_Hatch_OutputBus(85, "hatch.output_bus.tier.05", "Output Bus (IV)", 5).getStackForm(1L)); + ItemList.Hatch_Output_Bus_LuV.set(new GT_MetaTileEntity_Hatch_OutputBus(86, "hatch.output_bus.tier.06", "Output Bus (LuV)", 6).getStackForm(1L)); + ItemList.Hatch_Output_Bus_ZPM.set(new GT_MetaTileEntity_Hatch_OutputBus(87, "hatch.output_bus.tier.07", "Output Bus (ZPM)", 7).getStackForm(1L)); + ItemList.Hatch_Output_Bus_UV.set(new GT_MetaTileEntity_Hatch_OutputBus(88, "hatch.output_bus.tier.08", "Output Bus (UV)", 8).getStackForm(1L)); + ItemList.Hatch_Output_Bus_MAX.set(new GT_MetaTileEntity_Hatch_OutputBus(89, "hatch.output_bus.tier.09", "Output Bus (MAX)", 9).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_Bus_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "C", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('C'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_Bus_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "C", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('C'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_Bus_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "C", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('C'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_Bus_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "C", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('C'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_Bus_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "C", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('C'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_Bus_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[]{"M", "C", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('C'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_Bus_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "C", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('C'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_Bus_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "C", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('C'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_Bus_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "C", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('C'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_Bus_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "C", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('C'), OreDictNames.craftingChest}); + + ItemList.Hatch_Maintenance.set(new GT_MetaTileEntity_Hatch_Maintenance(90, "hatch.maintenance", "Maintenance Hatch", 1).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Maintenance.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"dwx", "hMc", "fsr", Character.valueOf('M'), ItemList.Hull_LV}); + + ItemList.Hatch_Muffler_LV.set(new GT_MetaTileEntity_Hatch_Muffler(91, "hatch.muffler.tier.01", "Muffler Hatch (LV)", 1).getStackForm(1L)); + ItemList.Hatch_Muffler_MV.set(new GT_MetaTileEntity_Hatch_Muffler(92, "hatch.muffler.tier.02", "Muffler Hatch (MV)", 2).getStackForm(1L)); + ItemList.Hatch_Muffler_HV.set(new GT_MetaTileEntity_Hatch_Muffler(93, "hatch.muffler.tier.03", "Muffler Hatch (HV)", 3).getStackForm(1L)); + ItemList.Hatch_Muffler_EV.set(new GT_MetaTileEntity_Hatch_Muffler(94, "hatch.muffler.tier.04", "Muffler Hatch (EV)", 4).getStackForm(1L)); + ItemList.Hatch_Muffler_IV.set(new GT_MetaTileEntity_Hatch_Muffler(95, "hatch.muffler.tier.05", "Muffler Hatch (IV)", 5).getStackForm(1L)); + ItemList.Hatch_Muffler_LuV.set(new GT_MetaTileEntity_Hatch_Muffler(96, "hatch.muffler.tier.06", "Muffler Hatch (LuV)", 6).getStackForm(1L)); + ItemList.Hatch_Muffler_ZPM.set(new GT_MetaTileEntity_Hatch_Muffler(97, "hatch.muffler.tier.07", "Muffler Hatch (ZPM)", 7).getStackForm(1L)); + ItemList.Hatch_Muffler_UV.set(new GT_MetaTileEntity_Hatch_Muffler(98, "hatch.muffler.tier.08", "Muffler Hatch (UV)", 8).getStackForm(1L)); + ItemList.Hatch_Muffler_MAX.set(new GT_MetaTileEntity_Hatch_Muffler(99, "hatch.muffler.tier.09", "Muffler Hatch (MAX)", 9).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Muffler_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "P", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Muffler_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "P", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Muffler_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "P", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Muffler_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "P", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Muffler_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[]{"M", "P", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Muffler_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "P", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Muffler_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "P", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Muffler_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "P", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Muffler_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "P", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel)}); + + + ItemList.Machine_Bronze_Boiler.set(new GT_MetaTileEntity_Boiler_Bronze(100, "boiler.bronze", "Small Coal Boiler").getStackForm(1L)); + ItemList.Machine_Steel_Boiler.set(new GT_MetaTileEntity_Boiler_Steel(101, "boiler.steel", "High Pressure Coal Boiler").getStackForm(1L)); + ItemList.Machine_Steel_Boiler_Lava.set(new GT_MetaTileEntity_Boiler_Lava(102, "boiler.lava", "High Pressure Lava Boiler").getStackForm(1L)); + ItemList.Machine_Bronze_Boiler_Solar.set(new GT_MetaTileEntity_Boiler_Solar(105, "boiler.solar", "Simple Solar Boiler").getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_Boiler.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "P P", "BFB", Character.valueOf('F'), OreDictNames.craftingFurnace, Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('B'), new ItemStack(Blocks.brick_block, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Steel_Boiler.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "P P", "BFB", Character.valueOf('F'), OreDictNames.craftingFurnace, Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('B'), new ItemStack(Blocks.brick_block, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Steel_Boiler_Lava.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "GGG", "PMP", Character.valueOf('M'), ItemList.Hull_Steel_Bricks, Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_Boiler_Solar.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"GGG", "SSS", "PMP", Character.valueOf('M'), ItemList.Hull_Bronze_Bricks, Character.valueOf('P'), OrePrefixes.pipeSmall.get(Materials.Bronze), Character.valueOf('S'), OrePrefixes.plate.get(Materials.Silver), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + + ItemList.Machine_Bronze_BlastFurnace.set(new GT_MetaTileEntity_BronzeBlastFurnace(108, "bronzemachine.blastfurnace", "Bronze Plated Blast Furnace").getStackForm(1L)); + if (!Loader.isModLoaded("terrafirmacraft")) { + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_BlastFurnace.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PFP", "FwF", "PFP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('F'), OreDictNames.craftingFurnace}); + } + ItemList.Machine_Bronze_Furnace.set(new GT_MetaTileEntity_Furnace_Bronze(103, "bronzemachine.furnace", "Steam Furnace").getStackForm(1L)); + ItemList.Machine_Steel_Furnace.set(new GT_MetaTileEntity_Furnace_Steel(104, "steelmachine.furnace", "High Pressure Furnace").getStackForm(1L)); + ItemList.Machine_Bronze_Macerator.set(new GT_MetaTileEntity_Macerator_Bronze(106, "bronzemachine.macerator", "Steam Macerator").getStackForm(1L)); + ItemList.Machine_Steel_Macerator.set(new GT_MetaTileEntity_Macerator_Steel(107, "steelmachine.macerator", "High Pressure Macerator").getStackForm(1L)); + ItemList.Machine_Bronze_Extractor.set(new GT_MetaTileEntity_Extractor_Bronze(109, "bronzemachine.extractor", "Steam Extractor").getStackForm(1L)); + ItemList.Machine_Steel_Extractor.set(new GT_MetaTileEntity_Extractor_Steel(110, "steelmachine.extractor", "High Pressure Extractor").getStackForm(1L)); + ItemList.Machine_Bronze_Hammer.set(new GT_MetaTileEntity_ForgeHammer_Bronze(112, "bronzemachine.hammer", "Steam Forge Hammer").getStackForm(1L)); + ItemList.Machine_Steel_Hammer.set(new GT_MetaTileEntity_ForgeHammer_Steel(113, "steelmachine.hammer", "High Pressure Forge Hammer").getStackForm(1L)); + ItemList.Machine_Bronze_Compressor.set(new GT_MetaTileEntity_Compressor_Bronze(115, "bronzemachine.compressor", "Steam Compressor").getStackForm(1L)); + ItemList.Machine_Steel_Compressor.set(new GT_MetaTileEntity_Compressor_Steel(116, "steelmachine.compressor", "High Pressure Compressor").getStackForm(1L)); + ItemList.Machine_Bronze_AlloySmelter.set(new GT_MetaTileEntity_AlloySmelter_Bronze(118, "bronzemachine.alloysmelter", "Steam Alloy Smelter").getStackForm(1L)); + ItemList.Machine_Steel_AlloySmelter.set(new GT_MetaTileEntity_AlloySmelter_Steel(119, "steelmachine.alloysmelter", "High Pressure Alloy Smelter").getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_Furnace.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XXX", "XMX", "XFX", Character.valueOf('M'), ItemList.Hull_Bronze_Bricks, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Bronze), Character.valueOf('F'), OreDictNames.craftingFurnace}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Steel_Furnace.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XXX", "XMX", "XFX", Character.valueOf('M'), ItemList.Hull_Steel_Bricks, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Steel), Character.valueOf('F'), OreDictNames.craftingFurnace}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_Macerator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DXD", "XMX", "PXP", Character.valueOf('M'), ItemList.Hull_Bronze, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Bronze), Character.valueOf('P'), OreDictNames.craftingPiston, Character.valueOf('D'), OrePrefixes.gem.get(Materials.Diamond)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Steel_Macerator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DXD", "XMX", "PXP", Character.valueOf('M'), ItemList.Hull_Steel, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Steel), Character.valueOf('P'), OreDictNames.craftingPiston, Character.valueOf('D'), OrePrefixes.gem.get(Materials.Diamond)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_Extractor.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XXX", "PMG", "XXX", Character.valueOf('M'), ItemList.Hull_Bronze, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Bronze), Character.valueOf('P'), OreDictNames.craftingPiston, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Steel_Extractor.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XXX", "PMG", "XXX", Character.valueOf('M'), ItemList.Hull_Steel, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Steel), Character.valueOf('P'), OreDictNames.craftingPiston, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_Hammer.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XPX", "XMX", "XAX", Character.valueOf('M'), ItemList.Hull_Bronze, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Bronze), Character.valueOf('P'), OreDictNames.craftingPiston, Character.valueOf('A'), OreDictNames.craftingAnvil}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Steel_Hammer.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XPX", "XMX", "XAX", Character.valueOf('M'), ItemList.Hull_Steel, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Steel), Character.valueOf('P'), OreDictNames.craftingPiston, Character.valueOf('A'), OreDictNames.craftingAnvil}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_Compressor.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XXX", "PMP", "XXX", Character.valueOf('M'), ItemList.Hull_Bronze, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Bronze), Character.valueOf('P'), OreDictNames.craftingPiston}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Steel_Compressor.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XXX", "PMP", "XXX", Character.valueOf('M'), ItemList.Hull_Steel, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Steel), Character.valueOf('P'), OreDictNames.craftingPiston}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_AlloySmelter.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XXX", "FMF", "XXX", Character.valueOf('M'), ItemList.Hull_Bronze_Bricks, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Bronze), Character.valueOf('F'), OreDictNames.craftingFurnace}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Steel_AlloySmelter.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XXX", "FMF", "XXX", Character.valueOf('M'), ItemList.Hull_Steel_Bricks, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Steel), Character.valueOf('F'), OreDictNames.craftingFurnace}); + + + ItemList.Locker_ULV.set(new GT_MetaTileEntity_Locker(150, "locker.tier.00", "Ultra Low Voltage Locker", 0).getStackForm(1L)); + ItemList.Locker_LV.set(new GT_MetaTileEntity_Locker(151, "locker.tier.01", "Low Voltage Locker", 1).getStackForm(1L)); + ItemList.Locker_MV.set(new GT_MetaTileEntity_Locker(152, "locker.tier.02", "Medium Voltage Locker", 2).getStackForm(1L)); + ItemList.Locker_HV.set(new GT_MetaTileEntity_Locker(153, "locker.tier.03", "High Voltage Locker", 3).getStackForm(1L)); + ItemList.Locker_EV.set(new GT_MetaTileEntity_Locker(154, "locker.tier.04", "Extreme Voltage Locker", 4).getStackForm(1L)); + ItemList.Locker_IV.set(new GT_MetaTileEntity_Locker(155, "locker.tier.05", "Insane Voltage Locker", 5).getStackForm(1L)); + ItemList.Locker_LuV.set(new GT_MetaTileEntity_Locker(156, "locker.tier.06", "Ludicrous Voltage Locker", 6).getStackForm(1L)); + ItemList.Locker_ZPM.set(new GT_MetaTileEntity_Locker(157, "locker.tier.07", "ZPM Voltage Locker", 7).getStackForm(1L)); + ItemList.Locker_UV.set(new GT_MetaTileEntity_Locker(158, "locker.tier.08", "Ultimate Voltage Locker", 8).getStackForm(1L)); + ItemList.Locker_MAX.set(new GT_MetaTileEntity_Locker(159, "locker.tier.09", "MAX Voltage Locker", 9).getStackForm(1L)); + + ItemList.Battery_Buffer_1by1_ULV.set(new GT_MetaTileEntity_BasicBatteryBuffer(160, "batterybuffer.01.tier.00", "Ultra Low Voltage Battery Buffer", 0, "", 1).getStackForm(1L)); + ItemList.Battery_Buffer_1by1_LV.set(new GT_MetaTileEntity_BasicBatteryBuffer(161, "batterybuffer.01.tier.01", "Low Voltage Battery Buffer", 1, "", 1).getStackForm(1L)); + ItemList.Battery_Buffer_1by1_MV.set(new GT_MetaTileEntity_BasicBatteryBuffer(162, "batterybuffer.01.tier.02", "Medium Voltage Battery Buffer", 2, "", 1).getStackForm(1L)); + ItemList.Battery_Buffer_1by1_HV.set(new GT_MetaTileEntity_BasicBatteryBuffer(163, "batterybuffer.01.tier.03", "High Voltage Battery Buffer", 3, "", 1).getStackForm(1L)); + ItemList.Battery_Buffer_1by1_EV.set(new GT_MetaTileEntity_BasicBatteryBuffer(164, "batterybuffer.01.tier.04", "Extreme Voltage Battery Buffer", 4, "", 1).getStackForm(1L)); + ItemList.Battery_Buffer_1by1_IV.set(new GT_MetaTileEntity_BasicBatteryBuffer(165, "batterybuffer.01.tier.05", "Insane Voltage Battery Buffer", 5, "", 1).getStackForm(1L)); + ItemList.Battery_Buffer_1by1_LuV.set(new GT_MetaTileEntity_BasicBatteryBuffer(166, "batterybuffer.01.tier.06", "Ludicrous Voltage Battery Buffer", 6, "", 1).getStackForm(1L)); + ItemList.Battery_Buffer_1by1_ZPM.set(new GT_MetaTileEntity_BasicBatteryBuffer(167, "batterybuffer.01.tier.07", "ZPM Voltage Battery Buffer", 7, "", 1).getStackForm(1L)); + ItemList.Battery_Buffer_1by1_UV.set(new GT_MetaTileEntity_BasicBatteryBuffer(168, "batterybuffer.01.tier.08", "Ultimate Voltage Battery Buffer", 8, "", 1).getStackForm(1L)); + ItemList.Battery_Buffer_1by1_MAX.set(new GT_MetaTileEntity_BasicBatteryBuffer(169, "batterybuffer.01.tier.09", "MAX Voltage Battery Buffer", 9, "", 1).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_1by1_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.Lead), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_1by1_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.Tin), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_1by1_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.AnyCopper), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_1by1_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.Gold), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_1by1_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.Aluminium), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_1by1_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[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.Tungsten), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_1by1_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_1by1_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_1by1_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_1by1_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.Superconductor), Character.valueOf('T'), OreDictNames.craftingChest}); + + ItemList.Battery_Buffer_2by2_ULV.set(new GT_MetaTileEntity_BasicBatteryBuffer(170, "batterybuffer.04.tier.00", "Ultra Low Voltage Battery Buffer", 0, "", 4).getStackForm(1L)); + ItemList.Battery_Buffer_2by2_LV.set(new GT_MetaTileEntity_BasicBatteryBuffer(171, "batterybuffer.04.tier.01", "Low Voltage Battery Buffer", 1, "", 4).getStackForm(1L)); + ItemList.Battery_Buffer_2by2_MV.set(new GT_MetaTileEntity_BasicBatteryBuffer(172, "batterybuffer.04.tier.02", "Medium Voltage Battery Buffer", 2, "", 4).getStackForm(1L)); + ItemList.Battery_Buffer_2by2_HV.set(new GT_MetaTileEntity_BasicBatteryBuffer(173, "batterybuffer.04.tier.03", "High Voltage Battery Buffer", 3, "", 4).getStackForm(1L)); + ItemList.Battery_Buffer_2by2_EV.set(new GT_MetaTileEntity_BasicBatteryBuffer(174, "batterybuffer.04.tier.04", "Extreme Voltage Battery Buffer", 4, "", 4).getStackForm(1L)); + ItemList.Battery_Buffer_2by2_IV.set(new GT_MetaTileEntity_BasicBatteryBuffer(175, "batterybuffer.04.tier.05", "Insane Voltage Battery Buffer", 5, "", 4).getStackForm(1L)); + ItemList.Battery_Buffer_2by2_LuV.set(new GT_MetaTileEntity_BasicBatteryBuffer(176, "batterybuffer.04.tier.06", "Ludicrous Voltage Battery Buffer", 6, "", 4).getStackForm(1L)); + ItemList.Battery_Buffer_2by2_ZPM.set(new GT_MetaTileEntity_BasicBatteryBuffer(177, "batterybuffer.04.tier.07", "ZPM Voltage Battery Buffer", 7, "", 4).getStackForm(1L)); + ItemList.Battery_Buffer_2by2_UV.set(new GT_MetaTileEntity_BasicBatteryBuffer(178, "batterybuffer.04.tier.08", "Ultimate Voltage Battery Buffer", 8, "", 4).getStackForm(1L)); + ItemList.Battery_Buffer_2by2_MAX.set(new GT_MetaTileEntity_BasicBatteryBuffer(179, "batterybuffer.04.tier.09", "MAX Voltage Battery Buffer", 9, "", 4).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_2by2_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Lead), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_2by2_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Tin), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_2by2_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.AnyCopper), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_2by2_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Gold), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_2by2_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Aluminium), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_2by2_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[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Tungsten), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_2by2_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_2by2_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_2by2_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_2by2_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Superconductor), Character.valueOf('T'), OreDictNames.craftingChest}); + + ItemList.Battery_Buffer_3by3_ULV.set(new GT_MetaTileEntity_BasicBatteryBuffer(180, "batterybuffer.09.tier.00", "Ultra Low Voltage Battery Buffer", 0, "", 9).getStackForm(1L)); + ItemList.Battery_Buffer_3by3_LV.set(new GT_MetaTileEntity_BasicBatteryBuffer(181, "batterybuffer.09.tier.01", "Low Voltage Battery Buffer", 1, "", 9).getStackForm(1L)); + ItemList.Battery_Buffer_3by3_MV.set(new GT_MetaTileEntity_BasicBatteryBuffer(182, "batterybuffer.09.tier.02", "Medium Voltage Battery Buffer", 2, "", 9).getStackForm(1L)); + ItemList.Battery_Buffer_3by3_HV.set(new GT_MetaTileEntity_BasicBatteryBuffer(183, "batterybuffer.09.tier.03", "High Voltage Battery Buffer", 3, "", 9).getStackForm(1L)); + ItemList.Battery_Buffer_3by3_EV.set(new GT_MetaTileEntity_BasicBatteryBuffer(184, "batterybuffer.09.tier.04", "Extreme Voltage Battery Buffer", 4, "", 9).getStackForm(1L)); + ItemList.Battery_Buffer_3by3_IV.set(new GT_MetaTileEntity_BasicBatteryBuffer(185, "batterybuffer.09.tier.05", "Insane Voltage Battery Buffer", 5, "", 9).getStackForm(1L)); + ItemList.Battery_Buffer_3by3_LuV.set(new GT_MetaTileEntity_BasicBatteryBuffer(186, "batterybuffer.09.tier.06", "Ludicrous Voltage Battery Buffer", 6, "", 9).getStackForm(1L)); + ItemList.Battery_Buffer_3by3_ZPM.set(new GT_MetaTileEntity_BasicBatteryBuffer(187, "batterybuffer.09.tier.07", "ZPM Voltage Battery Buffer", 7, "", 9).getStackForm(1L)); + ItemList.Battery_Buffer_3by3_UV.set(new GT_MetaTileEntity_BasicBatteryBuffer(188, "batterybuffer.09.tier.08", "Ultimate Voltage Battery Buffer", 8, "", 9).getStackForm(1L)); + ItemList.Battery_Buffer_3by3_MAX.set(new GT_MetaTileEntity_BasicBatteryBuffer(189, "batterybuffer.09.tier.09", "MAX Voltage Battery Buffer", 9, "", 9).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_3by3_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.Lead), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_3by3_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.Tin), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_3by3_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.AnyCopper), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_3by3_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.Gold), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_3by3_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.Aluminium), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_3by3_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[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.Tungsten), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_3by3_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_3by3_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_3by3_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_3by3_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.Superconductor), Character.valueOf('T'), OreDictNames.craftingChest}); + + ItemList.Battery_Buffer_4by4_ULV.set(new GT_MetaTileEntity_BasicBatteryBuffer(190, "batterybuffer.16.tier.00", "Ultra Low Voltage Battery Buffer", 0, "", 16).getStackForm(1L)); + ItemList.Battery_Buffer_4by4_LV.set(new GT_MetaTileEntity_BasicBatteryBuffer(191, "batterybuffer.16.tier.01", "Low Voltage Battery Buffer", 1, "", 16).getStackForm(1L)); + ItemList.Battery_Buffer_4by4_MV.set(new GT_MetaTileEntity_BasicBatteryBuffer(192, "batterybuffer.16.tier.02", "Medium Voltage Battery Buffer", 2, "", 16).getStackForm(1L)); + ItemList.Battery_Buffer_4by4_HV.set(new GT_MetaTileEntity_BasicBatteryBuffer(193, "batterybuffer.16.tier.03", "High Voltage Battery Buffer", 3, "", 16).getStackForm(1L)); + ItemList.Battery_Buffer_4by4_EV.set(new GT_MetaTileEntity_BasicBatteryBuffer(194, "batterybuffer.16.tier.04", "Extreme Voltage Battery Buffer", 4, "", 16).getStackForm(1L)); + ItemList.Battery_Buffer_4by4_IV.set(new GT_MetaTileEntity_BasicBatteryBuffer(195, "batterybuffer.16.tier.05", "Insane Voltage Battery Buffer", 5, "", 16).getStackForm(1L)); + ItemList.Battery_Buffer_4by4_LuV.set(new GT_MetaTileEntity_BasicBatteryBuffer(196, "batterybuffer.16.tier.06", "Ludicrous Voltage Battery Buffer", 6, "", 16).getStackForm(1L)); + ItemList.Battery_Buffer_4by4_ZPM.set(new GT_MetaTileEntity_BasicBatteryBuffer(197, "batterybuffer.16.tier.07", "ZPM Voltage Battery Buffer", 7, "", 16).getStackForm(1L)); + ItemList.Battery_Buffer_4by4_UV.set(new GT_MetaTileEntity_BasicBatteryBuffer(198, "batterybuffer.16.tier.08", "Ultimate Voltage Battery Buffer", 8, "", 16).getStackForm(1L)); + ItemList.Battery_Buffer_4by4_MAX.set(new GT_MetaTileEntity_BasicBatteryBuffer(199, "batterybuffer.16.tier.09", "MAX Voltage Battery Buffer", 9, "", 16).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_4by4_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Lead), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_4by4_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Tin), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_4by4_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.AnyCopper), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_4by4_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Gold), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_4by4_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Aluminium), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_4by4_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[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Tungsten), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_4by4_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_4by4_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_4by4_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_4by4_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Superconductor), Character.valueOf('T'), OreDictNames.craftingChest}); + + GT_ModHandler.addCraftingRecipe(ItemList.Locker_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_ULV, Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Locker_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_LV, Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Locker_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_MV, Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Locker_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_HV, Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Locker_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_EV, Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Locker_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[]{"T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_IV, Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Locker_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_LuV, Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Locker_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_ZPM, Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Locker_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_UV, Character.valueOf('T'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Locker_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_MAX, Character.valueOf('T'), OreDictNames.craftingChest}); } - ItemList.Machine_Bronze_Furnace.set(new GT_MetaTileEntity_Furnace_Bronze(103, "bronzemachine.furnace", "Steam Furnace").getStackForm(1L)); - ItemList.Machine_Steel_Furnace.set(new GT_MetaTileEntity_Furnace_Steel(104, "steelmachine.furnace", "High Pressure Furnace").getStackForm(1L)); - ItemList.Machine_Bronze_Macerator.set(new GT_MetaTileEntity_Macerator_Bronze(106, "bronzemachine.macerator", "Steam Macerator").getStackForm(1L)); - ItemList.Machine_Steel_Macerator.set(new GT_MetaTileEntity_Macerator_Steel(107, "steelmachine.macerator", "High Pressure Macerator").getStackForm(1L)); - ItemList.Machine_Bronze_Extractor.set(new GT_MetaTileEntity_Extractor_Bronze(109, "bronzemachine.extractor", "Steam Extractor").getStackForm(1L)); - ItemList.Machine_Steel_Extractor.set(new GT_MetaTileEntity_Extractor_Steel(110, "steelmachine.extractor", "High Pressure Extractor").getStackForm(1L)); - ItemList.Machine_Bronze_Hammer.set(new GT_MetaTileEntity_ForgeHammer_Bronze(112, "bronzemachine.hammer", "Steam Forge Hammer").getStackForm(1L)); - ItemList.Machine_Steel_Hammer.set(new GT_MetaTileEntity_ForgeHammer_Steel(113, "steelmachine.hammer", "High Pressure Forge Hammer").getStackForm(1L)); - ItemList.Machine_Bronze_Compressor.set(new GT_MetaTileEntity_Compressor_Bronze(115, "bronzemachine.compressor", "Steam Compressor").getStackForm(1L)); - ItemList.Machine_Steel_Compressor.set(new GT_MetaTileEntity_Compressor_Steel(116, "steelmachine.compressor", "High Pressure Compressor").getStackForm(1L)); - ItemList.Machine_Bronze_AlloySmelter.set(new GT_MetaTileEntity_AlloySmelter_Bronze(118, "bronzemachine.alloysmelter", "Steam Alloy Smelter").getStackForm(1L)); - ItemList.Machine_Steel_AlloySmelter.set(new GT_MetaTileEntity_AlloySmelter_Steel(119, "steelmachine.alloysmelter", "High Pressure Alloy Smelter").getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_Furnace.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "XXX", "XMX", "XFX", Character.valueOf('M'), ItemList.Hull_Bronze_Bricks, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Bronze), Character.valueOf('F'), OreDictNames.craftingFurnace }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Steel_Furnace.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "XXX", "XMX", "XFX", Character.valueOf('M'), ItemList.Hull_Steel_Bricks, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Steel), Character.valueOf('F'), OreDictNames.craftingFurnace }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_Macerator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "DXD", "XMX", "PXP", Character.valueOf('M'), ItemList.Hull_Bronze, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Bronze), Character.valueOf('P'), OreDictNames.craftingPiston, Character.valueOf('D'), OrePrefixes.gem.get(Materials.Diamond) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Steel_Macerator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "DXD", "XMX", "PXP", Character.valueOf('M'), ItemList.Hull_Steel, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Steel), Character.valueOf('P'), OreDictNames.craftingPiston, Character.valueOf('D'), OrePrefixes.gem.get(Materials.Diamond) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_Extractor.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "XXX", "PMG", "XXX", Character.valueOf('M'), ItemList.Hull_Bronze, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Bronze), Character.valueOf('P'), OreDictNames.craftingPiston, Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Steel_Extractor.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "XXX", "PMG", "XXX", Character.valueOf('M'), ItemList.Hull_Steel, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Steel), Character.valueOf('P'), OreDictNames.craftingPiston, Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_Hammer.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "XPX", "XMX", "XAX", Character.valueOf('M'), ItemList.Hull_Bronze, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Bronze), Character.valueOf('P'), OreDictNames.craftingPiston, Character.valueOf('A'), OreDictNames.craftingAnvil }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Steel_Hammer.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "XPX", "XMX", "XAX", Character.valueOf('M'), ItemList.Hull_Steel, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Steel), Character.valueOf('P'), OreDictNames.craftingPiston, Character.valueOf('A'), OreDictNames.craftingAnvil }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_Compressor.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "XXX", "PMP", "XXX", Character.valueOf('M'), ItemList.Hull_Bronze, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Bronze), Character.valueOf('P'), OreDictNames.craftingPiston }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Steel_Compressor.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "XXX", "PMP", "XXX", Character.valueOf('M'), ItemList.Hull_Steel, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Steel), Character.valueOf('P'), OreDictNames.craftingPiston }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_AlloySmelter.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "XXX", "FMF", "XXX", Character.valueOf('M'), ItemList.Hull_Bronze_Bricks, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Bronze), Character.valueOf('F'), OreDictNames.craftingFurnace }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Steel_AlloySmelter.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "XXX", "FMF", "XXX", Character.valueOf('M'), ItemList.Hull_Steel_Bricks, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Steel), Character.valueOf('F'), OreDictNames.craftingFurnace }); - + private static void run2() { + ItemList.Machine_LV_AlloySmelter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(201, "basicmachine.alloysmelter.tier.01", "Basic Alloy Smelter", 1, "HighTech combination Smelter", GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes, 2, 1, 0, 0, 1, "AlloySmelter.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(208)), false, false, 0, "ALLOY_SMELTER", new Object[]{"ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE}).getStackForm(1L)); + ItemList.Machine_MV_AlloySmelter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(202, "basicmachine.alloysmelter.tier.02", "Advanced Alloy Smelter", 2, "HighTech combination Smelter", GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes, 2, 1, 0, 0, 1, "AlloySmelter.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(208)), false, false, 0, "ALLOY_SMELTER", new Object[]{"ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE}).getStackForm(1L)); + ItemList.Machine_HV_AlloySmelter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(203, "basicmachine.alloysmelter.tier.03", "Advanced Alloy Smelter II", 3, "HighTech combination Smelter", GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes, 2, 1, 0, 0, 1, "AlloySmelter.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(208)), false, false, 0, "ALLOY_SMELTER", new Object[]{"ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE}).getStackForm(1L)); + ItemList.Machine_EV_AlloySmelter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(204, "basicmachine.alloysmelter.tier.04", "Advanced Alloy Smelter III", 4, "HighTech combination Smelter", GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes, 2, 1, 0, 0, 1, "AlloySmelter.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(208)), false, false, 0, "ALLOY_SMELTER", new Object[]{"ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE}).getStackForm(1L)); + ItemList.Machine_IV_AlloySmelter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(205, "basicmachine.alloysmelter.tier.05", "Advanced Alloy Smelter IV", 5, "HighTech combination Smelter", GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes, 2, 1, 0, 0, 1, "AlloySmelter.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(208)), false, false, 0, "ALLOY_SMELTER", new Object[]{"ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE}).getStackForm(1L)); - ItemList.Locker_ULV.set(new GT_MetaTileEntity_Locker(150, "locker.tier.00", "Ultra Low Voltage Locker", 0).getStackForm(1L)); - ItemList.Locker_LV.set(new GT_MetaTileEntity_Locker(151, "locker.tier.01", "Low Voltage Locker", 1).getStackForm(1L)); - ItemList.Locker_MV.set(new GT_MetaTileEntity_Locker(152, "locker.tier.02", "Medium Voltage Locker", 2).getStackForm(1L)); - ItemList.Locker_HV.set(new GT_MetaTileEntity_Locker(153, "locker.tier.03", "High Voltage Locker", 3).getStackForm(1L)); - ItemList.Locker_EV.set(new GT_MetaTileEntity_Locker(154, "locker.tier.04", "Extreme Voltage Locker", 4).getStackForm(1L)); - ItemList.Locker_IV.set(new GT_MetaTileEntity_Locker(155, "locker.tier.05", "Insane Voltage Locker", 5).getStackForm(1L)); - ItemList.Locker_LuV.set(new GT_MetaTileEntity_Locker(156, "locker.tier.06", "Ludicrous Voltage Locker", 6).getStackForm(1L)); - ItemList.Locker_ZPM.set(new GT_MetaTileEntity_Locker(157, "locker.tier.07", "ZPM Voltage Locker", 7).getStackForm(1L)); - ItemList.Locker_UV.set(new GT_MetaTileEntity_Locker(158, "locker.tier.08", "Ultimate Voltage Locker", 8).getStackForm(1L)); - ItemList.Locker_MAX.set(new GT_MetaTileEntity_Locker(159, "locker.tier.09", "MAX Voltage Locker", 9).getStackForm(1L)); - - ItemList.Battery_Buffer_1by1_ULV.set(new GT_MetaTileEntity_BasicBatteryBuffer(160, "batterybuffer.01.tier.00", "Ultra Low Voltage Battery Buffer", 0, "", 1).getStackForm(1L)); - ItemList.Battery_Buffer_1by1_LV.set(new GT_MetaTileEntity_BasicBatteryBuffer(161, "batterybuffer.01.tier.01", "Low Voltage Battery Buffer", 1, "", 1).getStackForm(1L)); - ItemList.Battery_Buffer_1by1_MV.set(new GT_MetaTileEntity_BasicBatteryBuffer(162, "batterybuffer.01.tier.02", "Medium Voltage Battery Buffer", 2, "", 1).getStackForm(1L)); - ItemList.Battery_Buffer_1by1_HV.set(new GT_MetaTileEntity_BasicBatteryBuffer(163, "batterybuffer.01.tier.03", "High Voltage Battery Buffer", 3, "", 1).getStackForm(1L)); - ItemList.Battery_Buffer_1by1_EV.set(new GT_MetaTileEntity_BasicBatteryBuffer(164, "batterybuffer.01.tier.04", "Extreme Voltage Battery Buffer", 4, "", 1).getStackForm(1L)); - ItemList.Battery_Buffer_1by1_IV.set(new GT_MetaTileEntity_BasicBatteryBuffer(165, "batterybuffer.01.tier.05", "Insane Voltage Battery Buffer", 5, "", 1).getStackForm(1L)); - ItemList.Battery_Buffer_1by1_LuV.set(new GT_MetaTileEntity_BasicBatteryBuffer(166, "batterybuffer.01.tier.06", "Ludicrous Voltage Battery Buffer", 6, "", 1).getStackForm(1L)); - ItemList.Battery_Buffer_1by1_ZPM.set(new GT_MetaTileEntity_BasicBatteryBuffer(167, "batterybuffer.01.tier.07", "ZPM Voltage Battery Buffer", 7, "", 1).getStackForm(1L)); - ItemList.Battery_Buffer_1by1_UV.set(new GT_MetaTileEntity_BasicBatteryBuffer(168, "batterybuffer.01.tier.08", "Ultimate Voltage Battery Buffer", 8, "", 1).getStackForm(1L)); - ItemList.Battery_Buffer_1by1_MAX.set(new GT_MetaTileEntity_BasicBatteryBuffer(169, "batterybuffer.01.tier.09", "MAX Voltage Battery Buffer", 9, "", 1).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_1by1_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.Lead), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_1by1_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.Tin), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_1by1_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.AnyCopper), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_1by1_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.Gold), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_1by1_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.Aluminium), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_1by1_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[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.Tungsten), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_1by1_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_1by1_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_1by1_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_1by1_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.Superconductor), Character.valueOf('T'), OreDictNames.craftingChest }); - - ItemList.Battery_Buffer_2by2_ULV.set(new GT_MetaTileEntity_BasicBatteryBuffer(170, "batterybuffer.04.tier.00", "Ultra Low Voltage Battery Buffer", 0, "", 4).getStackForm(1L)); - ItemList.Battery_Buffer_2by2_LV.set(new GT_MetaTileEntity_BasicBatteryBuffer(171, "batterybuffer.04.tier.01", "Low Voltage Battery Buffer", 1, "", 4).getStackForm(1L)); - ItemList.Battery_Buffer_2by2_MV.set(new GT_MetaTileEntity_BasicBatteryBuffer(172, "batterybuffer.04.tier.02", "Medium Voltage Battery Buffer", 2, "", 4).getStackForm(1L)); - ItemList.Battery_Buffer_2by2_HV.set(new GT_MetaTileEntity_BasicBatteryBuffer(173, "batterybuffer.04.tier.03", "High Voltage Battery Buffer", 3, "", 4).getStackForm(1L)); - ItemList.Battery_Buffer_2by2_EV.set(new GT_MetaTileEntity_BasicBatteryBuffer(174, "batterybuffer.04.tier.04", "Extreme Voltage Battery Buffer", 4, "", 4).getStackForm(1L)); - ItemList.Battery_Buffer_2by2_IV.set(new GT_MetaTileEntity_BasicBatteryBuffer(175, "batterybuffer.04.tier.05", "Insane Voltage Battery Buffer", 5, "", 4).getStackForm(1L)); - ItemList.Battery_Buffer_2by2_LuV.set(new GT_MetaTileEntity_BasicBatteryBuffer(176, "batterybuffer.04.tier.06", "Ludicrous Voltage Battery Buffer", 6, "", 4).getStackForm(1L)); - ItemList.Battery_Buffer_2by2_ZPM.set(new GT_MetaTileEntity_BasicBatteryBuffer(177, "batterybuffer.04.tier.07", "ZPM Voltage Battery Buffer", 7, "", 4).getStackForm(1L)); - ItemList.Battery_Buffer_2by2_UV.set(new GT_MetaTileEntity_BasicBatteryBuffer(178, "batterybuffer.04.tier.08", "Ultimate Voltage Battery Buffer", 8, "", 4).getStackForm(1L)); - ItemList.Battery_Buffer_2by2_MAX.set(new GT_MetaTileEntity_BasicBatteryBuffer(179, "batterybuffer.04.tier.09", "MAX Voltage Battery Buffer", 9, "", 4).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_2by2_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Lead), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_2by2_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Tin), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_2by2_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.AnyCopper), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_2by2_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Gold), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_2by2_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Aluminium), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_2by2_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[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Tungsten), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_2by2_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_2by2_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_2by2_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_2by2_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Superconductor), Character.valueOf('T'), OreDictNames.craftingChest }); - - ItemList.Battery_Buffer_3by3_ULV.set(new GT_MetaTileEntity_BasicBatteryBuffer(180, "batterybuffer.09.tier.00", "Ultra Low Voltage Battery Buffer", 0, "", 9).getStackForm(1L)); - ItemList.Battery_Buffer_3by3_LV.set(new GT_MetaTileEntity_BasicBatteryBuffer(181, "batterybuffer.09.tier.01", "Low Voltage Battery Buffer", 1, "", 9).getStackForm(1L)); - ItemList.Battery_Buffer_3by3_MV.set(new GT_MetaTileEntity_BasicBatteryBuffer(182, "batterybuffer.09.tier.02", "Medium Voltage Battery Buffer", 2, "", 9).getStackForm(1L)); - ItemList.Battery_Buffer_3by3_HV.set(new GT_MetaTileEntity_BasicBatteryBuffer(183, "batterybuffer.09.tier.03", "High Voltage Battery Buffer", 3, "", 9).getStackForm(1L)); - ItemList.Battery_Buffer_3by3_EV.set(new GT_MetaTileEntity_BasicBatteryBuffer(184, "batterybuffer.09.tier.04", "Extreme Voltage Battery Buffer", 4, "", 9).getStackForm(1L)); - ItemList.Battery_Buffer_3by3_IV.set(new GT_MetaTileEntity_BasicBatteryBuffer(185, "batterybuffer.09.tier.05", "Insane Voltage Battery Buffer", 5, "", 9).getStackForm(1L)); - ItemList.Battery_Buffer_3by3_LuV.set(new GT_MetaTileEntity_BasicBatteryBuffer(186, "batterybuffer.09.tier.06", "Ludicrous Voltage Battery Buffer", 6, "", 9).getStackForm(1L)); - ItemList.Battery_Buffer_3by3_ZPM.set(new GT_MetaTileEntity_BasicBatteryBuffer(187, "batterybuffer.09.tier.07", "ZPM Voltage Battery Buffer", 7, "", 9).getStackForm(1L)); - ItemList.Battery_Buffer_3by3_UV.set(new GT_MetaTileEntity_BasicBatteryBuffer(188, "batterybuffer.09.tier.08", "Ultimate Voltage Battery Buffer", 8, "", 9).getStackForm(1L)); - ItemList.Battery_Buffer_3by3_MAX.set(new GT_MetaTileEntity_BasicBatteryBuffer(189, "batterybuffer.09.tier.09", "MAX Voltage Battery Buffer", 9, "", 9).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_3by3_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.Lead), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_3by3_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.Tin), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_3by3_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.AnyCopper), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_3by3_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.Gold), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_3by3_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.Aluminium), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_3by3_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[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.Tungsten), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_3by3_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_3by3_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_3by3_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_3by3_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.Superconductor), Character.valueOf('T'), OreDictNames.craftingChest }); - - ItemList.Battery_Buffer_4by4_ULV.set(new GT_MetaTileEntity_BasicBatteryBuffer(190, "batterybuffer.16.tier.00", "Ultra Low Voltage Battery Buffer", 0, "", 16).getStackForm(1L)); - ItemList.Battery_Buffer_4by4_LV.set(new GT_MetaTileEntity_BasicBatteryBuffer(191, "batterybuffer.16.tier.01", "Low Voltage Battery Buffer", 1, "", 16).getStackForm(1L)); - ItemList.Battery_Buffer_4by4_MV.set(new GT_MetaTileEntity_BasicBatteryBuffer(192, "batterybuffer.16.tier.02", "Medium Voltage Battery Buffer", 2, "", 16).getStackForm(1L)); - ItemList.Battery_Buffer_4by4_HV.set(new GT_MetaTileEntity_BasicBatteryBuffer(193, "batterybuffer.16.tier.03", "High Voltage Battery Buffer", 3, "", 16).getStackForm(1L)); - ItemList.Battery_Buffer_4by4_EV.set(new GT_MetaTileEntity_BasicBatteryBuffer(194, "batterybuffer.16.tier.04", "Extreme Voltage Battery Buffer", 4, "", 16).getStackForm(1L)); - ItemList.Battery_Buffer_4by4_IV.set(new GT_MetaTileEntity_BasicBatteryBuffer(195, "batterybuffer.16.tier.05", "Insane Voltage Battery Buffer", 5, "", 16).getStackForm(1L)); - ItemList.Battery_Buffer_4by4_LuV.set(new GT_MetaTileEntity_BasicBatteryBuffer(196, "batterybuffer.16.tier.06", "Ludicrous Voltage Battery Buffer", 6, "", 16).getStackForm(1L)); - ItemList.Battery_Buffer_4by4_ZPM.set(new GT_MetaTileEntity_BasicBatteryBuffer(197, "batterybuffer.16.tier.07", "ZPM Voltage Battery Buffer", 7, "", 16).getStackForm(1L)); - ItemList.Battery_Buffer_4by4_UV.set(new GT_MetaTileEntity_BasicBatteryBuffer(198, "batterybuffer.16.tier.08", "Ultimate Voltage Battery Buffer", 8, "", 16).getStackForm(1L)); - ItemList.Battery_Buffer_4by4_MAX.set(new GT_MetaTileEntity_BasicBatteryBuffer(199, "batterybuffer.16.tier.09", "MAX Voltage Battery Buffer", 9, "", 16).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_4by4_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Lead), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_4by4_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Tin), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_4by4_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.AnyCopper), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_4by4_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Gold), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_4by4_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Aluminium), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_4by4_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[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Tungsten), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_4by4_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_4by4_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_4by4_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_4by4_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Superconductor), Character.valueOf('T'), OreDictNames.craftingChest }); - - GT_ModHandler.addCraftingRecipe(ItemList.Locker_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_ULV, Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Locker_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_LV, Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Locker_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_MV, Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Locker_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_HV, Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Locker_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_EV, Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Locker_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[] { "T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_IV, Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Locker_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_LuV, Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Locker_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_ZPM, Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Locker_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_UV, Character.valueOf('T'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Locker_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_MAX, Character.valueOf('T'), OreDictNames.craftingChest }); - } - - private static void run2() - { - ItemList.Machine_LV_AlloySmelter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(201, "basicmachine.alloysmelter.tier.01", "Basic Alloy Smelter", 1, "HighTech combination Smelter", GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes, 2, 1, 0, 0, 1, "AlloySmelter.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(208)), false, false, 0, "ALLOY_SMELTER", new Object[] { "ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); - ItemList.Machine_MV_AlloySmelter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(202, "basicmachine.alloysmelter.tier.02", "Advanced Alloy Smelter", 2, "HighTech combination Smelter", GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes, 2, 1, 0, 0, 1, "AlloySmelter.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(208)), false, false, 0, "ALLOY_SMELTER", new Object[] { "ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); - ItemList.Machine_HV_AlloySmelter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(203, "basicmachine.alloysmelter.tier.03", "Advanced Alloy Smelter II", 3, "HighTech combination Smelter", GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes, 2, 1, 0, 0, 1, "AlloySmelter.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(208)), false, false, 0, "ALLOY_SMELTER", new Object[] { "ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); - ItemList.Machine_EV_AlloySmelter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(204, "basicmachine.alloysmelter.tier.04", "Advanced Alloy Smelter III", 4, "HighTech combination Smelter", GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes, 2, 1, 0, 0, 1, "AlloySmelter.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(208)), false, false, 0, "ALLOY_SMELTER", new Object[] { "ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); - ItemList.Machine_IV_AlloySmelter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(205, "basicmachine.alloysmelter.tier.05", "Advanced Alloy Smelter IV", 5, "HighTech combination Smelter", GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes, 2, 1, 0, 0, 1, "AlloySmelter.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(208)), false, false, 0, "ALLOY_SMELTER", new Object[] { "ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); - - ItemList.Machine_LV_Assembler.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(211, "basicmachine.assembler.tier.01", "Basic Assembling Machine", 1, "Avengers, Assemble!", GT_Recipe.GT_Recipe_Map.sAssemblerRecipes, 2, 1, 16000, 0, 1, "Assembler.png", "", false, false, 0, "ASSEMBLER", new Object[] { "ACA", "VMV", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('A'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_MV_Assembler.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(212, "basicmachine.assembler.tier.02", "Advanced Assembling Machine", 2, "Avengers, Assemble!", GT_Recipe.GT_Recipe_Map.sAssemblerRecipes, 2, 1, 16000, 0, 1, "Assembler.png", "", false, false, 0, "ASSEMBLER", new Object[] { "ACA", "VMV", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('A'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_HV_Assembler.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(213, "basicmachine.assembler.tier.03", "Advanced Assembling Machine II", 3, "Avengers, Assemble!", GT_Recipe.GT_Recipe_Map.sAssemblerRecipes, 2, 1, 16000, 0, 1, "Assembler.png", "", false, false, 0, "ASSEMBLER", new Object[] { "ACA", "VMV", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('A'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_EV_Assembler.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(214, "basicmachine.assembler.tier.04", "Advanced Assembling Machine III", 4, "Avengers, Assemble!", GT_Recipe.GT_Recipe_Map.sAssemblerRecipes, 2, 1, 16000, 0, 1, "Assembler.png", "", false, false, 0, "ASSEMBLER", new Object[] { "ACA", "VMV", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('A'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_IV_Assembler.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(215, "basicmachine.assembler.tier.05", "Advanced Assembling Machine IV", 5, "Avengers, Assemble!", GT_Recipe.GT_Recipe_Map.sAssemblerRecipes, 2, 1, 16000, 0, 1, "Assembler.png", "", false, false, 0, "ASSEMBLER", new Object[] { "ACA", "VMV", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('A'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - - ItemList.Machine_LV_Bender.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(221, "basicmachine.bender.tier.01", "Basic Bending Machine", 1, "Boo, he's bad! We want BENDER!!!", GT_Recipe.GT_Recipe_Map.sBenderRecipes, 2, 1, 0, 0, 1, "Bender.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "BENDER", new Object[] { "PWP", "CMC", "EWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_MV_Bender.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(222, "basicmachine.bender.tier.02", "Advanced Bending Machine", 2, "Boo, he's bad! We want BENDER!!!", GT_Recipe.GT_Recipe_Map.sBenderRecipes, 2, 1, 0, 0, 1, "Bender.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "BENDER", new Object[] { "PWP", "CMC", "EWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_HV_Bender.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(223, "basicmachine.bender.tier.03", "Advanced Bending Machine II", 3, "Boo, he's bad! We want BENDER!!!", GT_Recipe.GT_Recipe_Map.sBenderRecipes, 2, 1, 0, 0, 1, "Bender.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "BENDER", new Object[] { "PWP", "CMC", "EWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_EV_Bender.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(224, "basicmachine.bender.tier.04", "Advanced Bending Machine III", 4, "Boo, he's bad! We want BENDER!!!", GT_Recipe.GT_Recipe_Map.sBenderRecipes, 2, 1, 0, 0, 1, "Bender.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "BENDER", new Object[] { "PWP", "CMC", "EWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_IV_Bender.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(225, "basicmachine.bender.tier.05", "Advanced Bending Machine IV", 5, "Boo, he's bad! We want BENDER!!!", GT_Recipe.GT_Recipe_Map.sBenderRecipes, 2, 1, 0, 0, 1, "Bender.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "BENDER", new Object[] { "PWP", "CMC", "EWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - - ItemList.Machine_LV_Canner.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(231, "basicmachine.canner.tier.01", "Basic Canning Machine", 1, "Unmobile Food Canning Machine GTA4", GT_Recipe.GT_Recipe_Map.sCannerRecipes, 2, 2, 0, 0, 1, "Canner.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CANNER", new Object[] { "WPW", "CMC", "GGG", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_MV_Canner.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(232, "basicmachine.canner.tier.02", "Advanced Canning Machine", 2, "Unmobile Food Canning Machine GTA4", GT_Recipe.GT_Recipe_Map.sCannerRecipes, 2, 2, 0, 0, 1, "Canner.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CANNER", new Object[] { "WPW", "CMC", "GGG", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_HV_Canner.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(233, "basicmachine.canner.tier.03", "Advanced Canning Machine II", 3, "Unmobile Food Canning Machine GTA4", GT_Recipe.GT_Recipe_Map.sCannerRecipes, 2, 2, 0, 0, 1, "Canner.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CANNER", new Object[] { "WPW", "CMC", "GGG", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_EV_Canner.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(234, "basicmachine.canner.tier.04", "Advanced Canning Machine III", 4, "Unmobile Food Canning Machine GTA4", GT_Recipe.GT_Recipe_Map.sCannerRecipes, 2, 2, 0, 0, 1, "Canner.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CANNER", new Object[] { "WPW", "CMC", "GGG", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_IV_Canner.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(235, "basicmachine.canner.tier.05", "Advanced Canning Machine IV", 5, "Unmobile Food Canning Machine GTA4", GT_Recipe.GT_Recipe_Map.sCannerRecipes, 2, 2, 0, 0, 1, "Canner.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CANNER", new Object[] { "WPW", "CMC", "GGG", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - - ItemList.Machine_LV_Compressor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(241, "basicmachine.compressor.tier.01", "Basic Compressor", 1, "Compress-O-Matic C77", GT_Recipe.GT_Recipe_Map.sCompressorRecipes, 1, 1, 0, 0, 1, "Compressor.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "COMPRESSOR", new Object[] { " C ", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_MV_Compressor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(242, "basicmachine.compressor.tier.02", "Advanced Compressor", 2, "Compress-O-Matic C77", GT_Recipe.GT_Recipe_Map.sCompressorRecipes, 1, 1, 0, 0, 1, "Compressor.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "COMPRESSOR", new Object[] { " C ", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_HV_Compressor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(243, "basicmachine.compressor.tier.03", "Advanced Compressor II", 3, "Compress-O-Matic C77", GT_Recipe.GT_Recipe_Map.sCompressorRecipes, 1, 1, 0, 0, 1, "Compressor.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "COMPRESSOR", new Object[] { " C ", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_EV_Compressor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(244, "basicmachine.compressor.tier.04", "Advanced Compressor III", 4, "Compress-O-Matic C77", GT_Recipe.GT_Recipe_Map.sCompressorRecipes, 1, 1, 0, 0, 1, "Compressor.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "COMPRESSOR", new Object[] { " C ", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_IV_Compressor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(245, "basicmachine.compressor.tier.05", "Singularity Compressor", 5, "Compress-O-Matic C77", GT_Recipe.GT_Recipe_Map.sCompressorRecipes, 1, 1, 0, 0, 1, "Compressor.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "COMPRESSOR", new Object[] { " C ", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - - ItemList.Machine_LV_Cutter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(251, "basicmachine.cutter.tier.01", "Basic Cutting Machine", 1, "Slice'N Dice", GT_Recipe.GT_Recipe_Map.sCutterRecipes, 1, 2, 1000, 0, 1, "Cutter.png", "", false, false, 0, "CUTTER", new Object[] { "WCG", "VMB", "CWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingDiamondBlade }).getStackForm(1L)); - ItemList.Machine_MV_Cutter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(252, "basicmachine.cutter.tier.02", "Advanced Cutting Machine", 2, "Slice'N Dice", GT_Recipe.GT_Recipe_Map.sCutterRecipes, 1, 2, 1000, 0, 1, "Cutter.png", "", false, false, 0, "CUTTER", new Object[] { "WCG", "VMB", "CWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingDiamondBlade }).getStackForm(1L)); - ItemList.Machine_HV_Cutter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(253, "basicmachine.cutter.tier.03", "Advanced Cutting Machine II", 3, "Slice'N Dice", GT_Recipe.GT_Recipe_Map.sCutterRecipes, 1, 2, 1000, 0, 1, "Cutter.png", "", false, false, 0, "CUTTER", new Object[] { "WCG", "VMB", "CWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingDiamondBlade }).getStackForm(1L)); - ItemList.Machine_EV_Cutter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(254, "basicmachine.cutter.tier.04", "Advanced Cutting Machine III", 4, "Slice'N Dice", GT_Recipe.GT_Recipe_Map.sCutterRecipes, 1, 2, 1000, 0, 1, "Cutter.png", "", false, false, 0, "CUTTER", new Object[] { "WCG", "VMB", "CWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingDiamondBlade }).getStackForm(1L)); - ItemList.Machine_IV_Cutter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(255, "basicmachine.cutter.tier.05", "Advanced Cutting Machine IV", 5, "Slice'N Dice", GT_Recipe.GT_Recipe_Map.sCutterRecipes, 1, 2, 1000, 0, 1, "Cutter.png", "", false, false, 0, "CUTTER", new Object[] { "WCG", "VMB", "CWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingDiamondBlade }).getStackForm(1L)); - - ItemList.Machine_LV_E_Furnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(261, "basicmachine.e_furnace.tier.01", "Basic Electric Furnace", 1, "Not like using a Commodore 64", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_FURNACE", new Object[] { "ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING }).getStackForm(1L)); - ItemList.Machine_MV_E_Furnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(262, "basicmachine.e_furnace.tier.02", "Advanced Electric Furnace", 2, "Not like using a Commodore 64", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_FURNACE", new Object[] { "ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING }).getStackForm(1L)); - ItemList.Machine_HV_E_Furnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(263, "basicmachine.e_furnace.tier.03", "Advanced Electric Furnace II", 3, "Not like using a Commodore 64", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_FURNACE", new Object[] { "ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING }).getStackForm(1L)); - ItemList.Machine_EV_E_Furnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(264, "basicmachine.e_furnace.tier.04", "Advanced Electric Furnace III", 4, "Not like using a Commodore 64", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_FURNACE", new Object[] { "ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING }).getStackForm(1L)); - ItemList.Machine_IV_E_Furnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(265, "basicmachine.e_furnace.tier.05", "Electron Exitement Processor", 5, "Not like using a Commodore 64", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_FURNACE", new Object[] { "ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING }).getStackForm(1L)); - - ItemList.Machine_LV_Extractor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(271, "basicmachine.extractor.tier.01", "Basic Extractor", 1, "Dejuicer-Device of Doom - D123", GT_Recipe.GT_Recipe_Map.sExtractorRecipes, 1, 1, 0, 0, 1, "Extractor.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "EXTRACTOR", new Object[] { "GCG", "EMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_MV_Extractor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(272, "basicmachine.extractor.tier.02", "Advanced Extractor", 2, "Dejuicer-Device of Doom - D123", GT_Recipe.GT_Recipe_Map.sExtractorRecipes, 1, 1, 0, 0, 1, "Extractor.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "EXTRACTOR", new Object[] { "GCG", "EMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_HV_Extractor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(273, "basicmachine.extractor.tier.03", "Advanced Extractor II", 3, "Dejuicer-Device of Doom - D123", GT_Recipe.GT_Recipe_Map.sExtractorRecipes, 1, 1, 0, 0, 1, "Extractor.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "EXTRACTOR", new Object[] { "GCG", "EMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_EV_Extractor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(274, "basicmachine.extractor.tier.04", "Advanced Extractor III", 4, "Dejuicer-Device of Doom - D123", GT_Recipe.GT_Recipe_Map.sExtractorRecipes, 1, 1, 0, 0, 1, "Extractor.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "EXTRACTOR", new Object[] { "GCG", "EMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_IV_Extractor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(275, "basicmachine.extractor.tier.05", "Vacuum Extractor", 5, "Dejuicer-Device of Doom - D123", GT_Recipe.GT_Recipe_Map.sExtractorRecipes, 1, 1, 0, 0, 1, "Extractor.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "EXTRACTOR", new Object[] { "GCG", "EMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - - ItemList.Machine_LV_Extruder.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(281, "basicmachine.extruder.tier.01", "Basic Extruder", 1, "Universal Machine for Metal Working", GT_Recipe.GT_Recipe_Map.sExtruderRecipes, 2, 1, 0, 0, 1, "Extruder.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(208)), false, false, 0, "EXTRUDER", new Object[] { "CCE", "XMP", "CCE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('X'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); - ItemList.Machine_MV_Extruder.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(282, "basicmachine.extruder.tier.02", "Advanced Extruder", 2, "Universal Machine for Metal Working", GT_Recipe.GT_Recipe_Map.sExtruderRecipes, 2, 1, 0, 0, 1, "Extruder.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(208)), false, false, 0, "EXTRUDER", new Object[] { "CCE", "XMP", "CCE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('X'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); - ItemList.Machine_HV_Extruder.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(283, "basicmachine.extruder.tier.03", "Advanced Extruder II", 3, "Universal Machine for Metal Working", GT_Recipe.GT_Recipe_Map.sExtruderRecipes, 2, 1, 0, 0, 1, "Extruder.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(208)), false, false, 0, "EXTRUDER", new Object[] { "CCE", "XMP", "CCE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('X'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); - ItemList.Machine_EV_Extruder.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(284, "basicmachine.extruder.tier.04", "Advanced Extruder III", 4, "Universal Machine for Metal Working", GT_Recipe.GT_Recipe_Map.sExtruderRecipes, 2, 1, 0, 0, 1, "Extruder.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(208)), false, false, 0, "EXTRUDER", new Object[] { "CCE", "XMP", "CCE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('X'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); - ItemList.Machine_IV_Extruder.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(285, "basicmachine.extruder.tier.05", "Advanced Extruder IV", 5, "Universal Machine for Metal Working", GT_Recipe.GT_Recipe_Map.sExtruderRecipes, 2, 1, 0, 0, 1, "Extruder.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(208)), false, false, 0, "EXTRUDER", new Object[] { "CCE", "XMP", "CCE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('X'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); - - ItemList.Machine_LV_Lathe.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(291, "basicmachine.lathe.tier.01", "Basic Lathe", 1, "Produces Rods more efficiently", GT_Recipe.GT_Recipe_Map.sLatheRecipes, 1, 2, 0, 0, 1, "Lathe.png", "", false, false, 0, "LATHE", new Object[] { "WCW", "EMD", "CWP", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('D'), OrePrefixes.gem.get(Materials.Diamond) }).getStackForm(1L)); - ItemList.Machine_MV_Lathe.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(292, "basicmachine.lathe.tier.02", "Advanced Lathe", 2, "Produces Rods more efficiently", GT_Recipe.GT_Recipe_Map.sLatheRecipes, 1, 2, 0, 0, 1, "Lathe.png", "", false, false, 0, "LATHE", new Object[] { "WCW", "EMD", "CWP", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('D'), OreDictNames.craftingIndustrialDiamond }).getStackForm(1L)); - ItemList.Machine_HV_Lathe.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(293, "basicmachine.lathe.tier.03", "Advanced Lathe II", 3, "Produces Rods more efficiently", GT_Recipe.GT_Recipe_Map.sLatheRecipes, 1, 2, 0, 0, 1, "Lathe.png", "", false, false, 0, "LATHE", new Object[] { "WCW", "EMD", "CWP", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('D'), OreDictNames.craftingIndustrialDiamond }).getStackForm(1L)); - ItemList.Machine_EV_Lathe.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(294, "basicmachine.lathe.tier.04", "Advanced Lathe III", 4, "Produces Rods more efficiently", GT_Recipe.GT_Recipe_Map.sLatheRecipes, 1, 2, 0, 0, 1, "Lathe.png", "", false, false, 0, "LATHE", new Object[] { "WCW", "EMD", "CWP", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('D'), OreDictNames.craftingIndustrialDiamond }).getStackForm(1L)); - ItemList.Machine_IV_Lathe.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(295, "basicmachine.lathe.tier.05", "Advanced Lathe IV", 5, "Produces Rods more efficiently", GT_Recipe.GT_Recipe_Map.sLatheRecipes, 1, 2, 0, 0, 1, "Lathe.png", "", false, false, 0, "LATHE", new Object[] { "WCW", "EMD", "CWP", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('D'), OreDictNames.craftingIndustrialDiamond }).getStackForm(1L)); - - ItemList.Machine_LV_Macerator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(301, "basicmachine.macerator.tier.01", "Basic Macerator", 1, "Schreddering your Ores", GT_Recipe.GT_Recipe_Map.sMaceratorRecipes, 1, 1, 0, 0, 1, "Macerator1.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(201)), false, false, 1, "MACERATOR", new Object[] { "PEG", "WWM", "CCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OrePrefixes.gem.get(Materials.Diamond) }).getStackForm(1L)); - ItemList.Machine_MV_Macerator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(302, "basicmachine.macerator.tier.02", "Advanced Macerator", 2, "Schreddering your Ores", GT_Recipe.GT_Recipe_Map.sMaceratorRecipes, 1, 1, 0, 0, 1, "Macerator1.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(201)), false, false, 1, "MACERATOR", new Object[] { "PEG", "WWM", "CCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OreDictNames.craftingIndustrialDiamond }).getStackForm(1L)); - ItemList.Machine_HV_Macerator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(303, "basicmachine.macerator.tier.03", "Universal Macerator", 3, "Schreddering your Ores with Byproducts", GT_Recipe.GT_Recipe_Map.sMaceratorRecipes, 1, 2, 0, 0, 1, "Macerator2.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(201)), false, false, 1, "PULVERIZER", new Object[] { "PEG", "WWM", "CCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OreDictNames.craftingGrinder }).getStackForm(1L)); - ItemList.Machine_EV_Macerator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(304, "basicmachine.macerator.tier.04", "Universal Pulverizer", 4, "Schreddering your Ores with Byproducts", GT_Recipe.GT_Recipe_Map.sMaceratorRecipes, 1, 3, 0, 0, 1, "Macerator3.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(201)), false, false, 1, "PULVERIZER", new Object[] { "PEG", "WWM", "CCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OreDictNames.craftingGrinder }).getStackForm(1L)); - ItemList.Machine_IV_Macerator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(305, "basicmachine.macerator.tier.05", "Blend-O-Matic 9001", 5, "Schreddering your Ores with Byproducts", GT_Recipe.GT_Recipe_Map.sMaceratorRecipes, 1, 4, 0, 0, 1, "Macerator4.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(201)), false, false, 1, "PULVERIZER", new Object[] { "PEG", "WWM", "CCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OreDictNames.craftingGrinder }).getStackForm(1L)); - - ItemList.Machine_LV_Microwave.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(311, "basicmachine.microwave.tier.01", "Basic Microwave", 1, "Did you really read the instruction Manual?", GT_Recipe.GT_Recipe_Map.sMicrowaveRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "MICROWAVE", new Object[] { "LWC", "LMR", "LEC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('L'), OrePrefixes.plate.get(Materials.Lead) }).getStackForm(1L)); - ItemList.Machine_MV_Microwave.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(312, "basicmachine.microwave.tier.02", "Advanced Microwave", 2, "Did you really read the instruction Manual?", GT_Recipe.GT_Recipe_Map.sMicrowaveRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "MICROWAVE", new Object[] { "LWC", "LMR", "LEC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('L'), OrePrefixes.plate.get(Materials.Lead) }).getStackForm(1L)); - ItemList.Machine_HV_Microwave.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(313, "basicmachine.microwave.tier.03", "Advanced Microwave II", 3, "Did you really read the instruction Manual?", GT_Recipe.GT_Recipe_Map.sMicrowaveRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "MICROWAVE", new Object[] { "LWC", "LMR", "LEC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('L'), OrePrefixes.plate.get(Materials.Lead) }).getStackForm(1L)); - ItemList.Machine_EV_Microwave.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(314, "basicmachine.microwave.tier.04", "Advanced Microwave III", 4, "Did you really read the instruction Manual?", GT_Recipe.GT_Recipe_Map.sMicrowaveRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "MICROWAVE", new Object[] { "LWC", "LMR", "LEC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('L'), OrePrefixes.plate.get(Materials.Lead) }).getStackForm(1L)); - ItemList.Machine_IV_Microwave.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(315, "basicmachine.microwave.tier.05", "Advanced Microwave IV", 5, "Did you really read the instruction Manual?", GT_Recipe.GT_Recipe_Map.sMicrowaveRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "MICROWAVE", new Object[] { "LWC", "LMR", "LEC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('L'), OrePrefixes.plate.get(Materials.Lead) }).getStackForm(1L)); - - ItemList.Machine_LV_Printer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(321, "basicmachine.printer.tier.01", "Basic Printer", 1, "It can copy Books and paint Stuff", GT_Recipe.GT_Recipe_Map.sPrinterRecipes, 1, 1, 16000, 0, 1, "Printer.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 1, "PRINTER", new Object[] { "EWE", "CMC", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_MV_Printer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(322, "basicmachine.printer.tier.02", "Advanced Printer", 2, "It can copy Books and paint Stuff", GT_Recipe.GT_Recipe_Map.sPrinterRecipes, 1, 1, 16000, 0, 1, "Printer.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 1, "PRINTER", new Object[] { "EWE", "CMC", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_HV_Printer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(323, "basicmachine.printer.tier.03", "Advanced Printer II", 3, "It can copy Books and paint Stuff", GT_Recipe.GT_Recipe_Map.sPrinterRecipes, 1, 1, 16000, 0, 1, "Printer.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 1, "PRINTER", new Object[] { "EWE", "CMC", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_EV_Printer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(324, "basicmachine.printer.tier.04", "Advanced Printer III", 4, "It can copy Books and paint Stuff", GT_Recipe.GT_Recipe_Map.sPrinterRecipes, 1, 1, 16000, 0, 1, "Printer.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 1, "PRINTER", new Object[] { "EWE", "CMC", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_IV_Printer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(325, "basicmachine.printer.tier.05", "Advanced Printer IV", 5, "It can copy Books and paint Stuff", GT_Recipe.GT_Recipe_Map.sPrinterRecipes, 1, 1, 16000, 0, 1, "Printer.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 1, "PRINTER", new Object[] { "EWE", "CMC", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - - ItemList.Machine_LV_Recycler.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(331, "basicmachine.recycler.tier.01", "Basic Recycler", 1, "Compress, burn, obliterate and filter EVERYTHING", GT_Recipe.GT_Recipe_Map.sRecyclerRecipes, 1, 1, 0, 0, 1, "Recycler.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(204)), false, false, 0, "RECYCLER", new Object[] { "GCG", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OrePrefixes.dust.get(Materials.Glowstone) }).getStackForm(1L)); - ItemList.Machine_MV_Recycler.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(332, "basicmachine.recycler.tier.02", "Advanced Recycler", 2, "Compress, burn, obliterate and filter EVERYTHING", GT_Recipe.GT_Recipe_Map.sRecyclerRecipes, 1, 1, 0, 0, 1, "Recycler.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(204)), false, false, 0, "RECYCLER", new Object[] { "GCG", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OrePrefixes.dust.get(Materials.Glowstone) }).getStackForm(1L)); - ItemList.Machine_HV_Recycler.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(333, "basicmachine.recycler.tier.03", "Advanced Recycler II", 3, "Compress, burn, obliterate and filter EVERYTHING", GT_Recipe.GT_Recipe_Map.sRecyclerRecipes, 1, 1, 0, 0, 1, "Recycler.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(204)), false, false, 0, "RECYCLER", new Object[] { "GCG", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OrePrefixes.dust.get(Materials.Glowstone) }).getStackForm(1L)); - ItemList.Machine_EV_Recycler.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(334, "basicmachine.recycler.tier.04", "Advanced Recycler III", 4, "Compress, burn, obliterate and filter EVERYTHING", GT_Recipe.GT_Recipe_Map.sRecyclerRecipes, 1, 1, 0, 0, 1, "Recycler.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(204)), false, false, 0, "RECYCLER", new Object[] { "GCG", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OrePrefixes.dust.get(Materials.Glowstone) }).getStackForm(1L)); - ItemList.Machine_IV_Recycler.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(335, "basicmachine.recycler.tier.05", "The Oblitterator", 5, "Compress, burn, obliterate and filter EVERYTHING", GT_Recipe.GT_Recipe_Map.sRecyclerRecipes, 1, 1, 0, 0, 1, "Recycler.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(204)), false, false, 0, "RECYCLER", new Object[] { "GCG", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OrePrefixes.dust.get(Materials.Glowstone) }).getStackForm(1L)); - - ItemList.Machine_LV_Scanner.set(new GT_MetaTileEntity_Scanner(341, "basicmachine.scanner.tier.01", "Basic Scanner", 1).getStackForm(1L)); - ItemList.Machine_MV_Scanner.set(new GT_MetaTileEntity_Scanner(342, "basicmachine.scanner.tier.02", "Advanced Scanner", 2).getStackForm(1L)); - ItemList.Machine_HV_Scanner.set(new GT_MetaTileEntity_Scanner(343, "basicmachine.scanner.tier.03", "Advanced Scanner II", 3).getStackForm(1L)); - ItemList.Machine_EV_Scanner.set(new GT_MetaTileEntity_Scanner(344, "basicmachine.scanner.tier.04", "Advanced Scanner III", 4).getStackForm(1L)); - ItemList.Machine_IV_Scanner.set(new GT_MetaTileEntity_Scanner(345, "basicmachine.scanner.tier.05", "Advanced Scanner IV", 5).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Machine_LV_Scanner.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "WMW", "CRC", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('T'), ItemList.Emitter_LV, Character.valueOf('R'), ItemList.Sensor_LV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_MV_Scanner.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "WMW", "CRC", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('T'), ItemList.Emitter_MV, Character.valueOf('R'), ItemList.Sensor_MV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_HV_Scanner.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "WMW", "CRC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('T'), ItemList.Emitter_HV, Character.valueOf('R'), ItemList.Sensor_HV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Data), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_EV_Scanner.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "WMW", "CRC", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('T'), ItemList.Emitter_EV, Character.valueOf('R'), ItemList.Sensor_EV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_IV_Scanner.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "WMW", "CRC", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('T'), ItemList.Emitter_IV, Character.valueOf('R'), ItemList.Sensor_IV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Ultimate), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tungsten) }); - - ItemList.Machine_LV_Wiremill.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(351, "basicmachine.wiremill.tier.01", "Basic Wiremill", 1, "Produces Wires more efficiently", GT_Recipe.GT_Recipe_Map.sWiremillRecipes, 1, 1, 0, 0, 1, "Wiremill.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(204)), false, false, 0, "WIREMILL", new Object[] { "EWE", "CMC", "EWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_MV_Wiremill.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(352, "basicmachine.wiremill.tier.02", "Advanced Wiremill", 2, "Produces Wires more efficiently", GT_Recipe.GT_Recipe_Map.sWiremillRecipes, 1, 1, 0, 0, 1, "Wiremill.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(204)), false, false, 0, "WIREMILL", new Object[] { "EWE", "CMC", "EWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_HV_Wiremill.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(353, "basicmachine.wiremill.tier.03", "Advanced Wiremill II", 3, "Produces Wires more efficiently", GT_Recipe.GT_Recipe_Map.sWiremillRecipes, 1, 1, 0, 0, 1, "Wiremill.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(204)), false, false, 0, "WIREMILL", new Object[] { "EWE", "CMC", "EWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_EV_Wiremill.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(354, "basicmachine.wiremill.tier.04", "Advanced Wiremill III", 4, "Produces Wires more efficiently", GT_Recipe.GT_Recipe_Map.sWiremillRecipes, 1, 1, 0, 0, 1, "Wiremill.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(204)), false, false, 0, "WIREMILL", new Object[] { "EWE", "CMC", "EWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_IV_Wiremill.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(355, "basicmachine.wiremill.tier.05", "Advanced Wiremill IV", 5, "Produces Wires more efficiently", GT_Recipe.GT_Recipe_Map.sWiremillRecipes, 1, 1, 0, 0, 1, "Wiremill.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(204)), false, false, 0, "WIREMILL", new Object[] { "EWE", "CMC", "EWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - - ItemList.Machine_LV_Centrifuge.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(361, "basicmachine.centrifuge.tier.01", "Basic Centrifuge", 1, "Separating Molecules", GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes, 2, 6, 64000, 0, 1, "Centrifuge.png", "", false, false, 0, "CENTRIFUGE", new Object[] { "CEC", "WMW", "CEC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_MV_Centrifuge.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(362, "basicmachine.centrifuge.tier.02", "Advanced Centrifuge", 2, "Separating Molecules", GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes, 2, 6, 64000, 0, 1, "Centrifuge.png", "", false, false, 0, "CENTRIFUGE", new Object[] { "CEC", "WMW", "CEC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_HV_Centrifuge.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(363, "basicmachine.centrifuge.tier.03", "Turbo Centrifuge", 3, "Separating Molecules", GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes, 2, 6, 64000, 0, 1, "Centrifuge.png", "", false, false, 0, "CENTRIFUGE", new Object[] { "CEC", "WMW", "CEC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_EV_Centrifuge.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(364, "basicmachine.centrifuge.tier.04", "Molecular Separator", 4, "Separating Molecules", GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes, 2, 6, 64000, 0, 1, "Centrifuge.png", "", false, false, 0, "CENTRIFUGE", new Object[] { "CEC", "WMW", "CEC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_IV_Centrifuge.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(365, "basicmachine.centrifuge.tier.05", "Molecular Cyclone", 5, "Separating Molecules", GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes, 2, 6, 64000, 0, 1, "Centrifuge.png", "", false, false, 0, "CENTRIFUGE", new Object[] { "CEC", "WMW", "CEC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - - ItemList.Machine_LV_Electrolyzer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(371, "basicmachine.electrolyzer.tier.01", "Basic Electrolyzer", 1, "Electrolyzing Molecules", GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes, 2, 6, 64000, 0, 1, "Electrolyzer.png", "", false, false, 0, "ELECTROLYZER", new Object[] { "IGI", "IMI", "CWC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('I'), OrePrefixes.wireGt01.get(Materials.Gold), Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_MV_Electrolyzer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(372, "basicmachine.electrolyzer.tier.02", "Advanced Electrolyzer", 2, "Electrolyzing Molecules", GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes, 2, 6, 64000, 0, 1, "Electrolyzer.png", "", false, false, 0, "ELECTROLYZER", new Object[] { "IGI", "IMI", "CWC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('I'), OrePrefixes.wireGt01.get(Materials.Silver), Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_HV_Electrolyzer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(373, "basicmachine.electrolyzer.tier.03", "Advanced Electrolyzer II", 3, "Electrolyzing Molecules", GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes, 2, 6, 64000, 0, 1, "Electrolyzer.png", "", false, false, 0, "ELECTROLYZER", new Object[] { "IGI", "IMI", "CWC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('I'), OrePrefixes.wireGt01.get(Materials.Electrum), Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_EV_Electrolyzer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(374, "basicmachine.electrolyzer.tier.04", "Advanced Electrolyzer III", 4, "Electrolyzing Molecules", GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes, 2, 6, 64000, 0, 1, "Electrolyzer.png", "", false, false, 0, "ELECTROLYZER", new Object[] { "IGI", "IMI", "CWC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('I'), OrePrefixes.wireGt01.get(Materials.Platinum), Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_IV_Electrolyzer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(375, "basicmachine.electrolyzer.tier.05", "Molecular Disintegrator E-4908", 5, "Electrolyzing Molecules", GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes, 2, 6, 64000, 0, 1, "Electrolyzer.png", "", false, false, 0, "ELECTROLYZER", new Object[] { "IGI", "IMI", "CWC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('I'), OrePrefixes.wireGt01.get(Materials.Osmium), Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - - ItemList.Machine_LV_ThermalCentrifuge.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(381, "basicmachine.thermalcentrifuge.tier.01", "Basic Thermal Centrifuge", 1, "Separating Ores more precisely", GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes, 1, 3, 0, 0, 1, "ThermalCentrifuge.png", "", false, false, 0, "THERMAL_CENTRIFUGE", new Object[] { "CEC", "OMO", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); - ItemList.Machine_MV_ThermalCentrifuge.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(382, "basicmachine.thermalcentrifuge.tier.02", "Advanced Thermal Centrifuge", 2, "Separating Ores more precisely", GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes, 1, 3, 0, 0, 1, "ThermalCentrifuge.png", "", false, false, 0, "THERMAL_CENTRIFUGE", new Object[] { "CEC", "OMO", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); - ItemList.Machine_HV_ThermalCentrifuge.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(383, "basicmachine.thermalcentrifuge.tier.03", "Advanced Thermal Centrifuge II", 3, "Separating Ores more precisely", GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes, 1, 3, 0, 0, 1, "ThermalCentrifuge.png", "", false, false, 0, "THERMAL_CENTRIFUGE", new Object[] { "CEC", "OMO", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); - ItemList.Machine_EV_ThermalCentrifuge.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(384, "basicmachine.thermalcentrifuge.tier.04", "Advanced Thermal Centrifuge III", 4, "Separating Ores more precisely", GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes, 1, 3, 0, 0, 1, "ThermalCentrifuge.png", "", false, false, 0, "THERMAL_CENTRIFUGE", new Object[] { "CEC", "OMO", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); - ItemList.Machine_IV_ThermalCentrifuge.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(385, "basicmachine.thermalcentrifuge.tier.05", "Blaze Sweatshop T-6350", 5, "Separating Ores more precisely", GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes, 1, 3, 0, 0, 1, "ThermalCentrifuge.png", "", false, false, 0, "THERMAL_CENTRIFUGE", new Object[] { "CEC", "OMO", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE }).getStackForm(1L)); - - ItemList.Machine_LV_OreWasher.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(391, "basicmachine.orewasher.tier.01", "Basic Ore Washing Plant", 1, "Getting more Byproducts from your Ores", GT_Recipe.GT_Recipe_Map.sOreWasherRecipes, 1, 3, 16000, 0, 1, "OreWasher.png", "", false, false, 0, "ORE_WASHER", new Object[] { "RGR", "CEC", "WMW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_MV_OreWasher.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(392, "basicmachine.orewasher.tier.02", "Advanced Ore Washing Plant", 2, "Getting more Byproducts from your Ores", GT_Recipe.GT_Recipe_Map.sOreWasherRecipes, 1, 3, 16000, 0, 1, "OreWasher.png", "", false, false, 0, "ORE_WASHER", new Object[] { "RGR", "CEC", "WMW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_HV_OreWasher.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(393, "basicmachine.orewasher.tier.03", "Advanced Ore Washing Plant II", 3, "Getting more Byproducts from your Ores", GT_Recipe.GT_Recipe_Map.sOreWasherRecipes, 1, 3, 16000, 0, 1, "OreWasher.png", "", false, false, 0, "ORE_WASHER", new Object[] { "RGR", "CEC", "WMW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_EV_OreWasher.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(394, "basicmachine.orewasher.tier.04", "Advanced Ore Washing Plant III", 4, "Getting more Byproducts from your Ores", GT_Recipe.GT_Recipe_Map.sOreWasherRecipes, 1, 3, 16000, 0, 1, "OreWasher.png", "", false, false, 0, "ORE_WASHER", new Object[] { "RGR", "CEC", "WMW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_IV_OreWasher.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(395, "basicmachine.orewasher.tier.05", "Repurposed Laundry-Washer I-360", 5, "Getting more Byproducts from your Ores", GT_Recipe.GT_Recipe_Map.sOreWasherRecipes, 1, 3, 16000, 0, 1, "OreWasher.png", "", false, false, 0, "ORE_WASHER", new Object[] { "RGR", "CEC", "WMW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - - ItemList.Machine_LV_Boxinator.set(new GT_MetaTileEntity_Boxinator(401, "basicmachine.boxinator.tier.01", "Basic Packager", 1).getStackForm(1L)); - ItemList.Machine_MV_Boxinator.set(new GT_MetaTileEntity_Boxinator(402, "basicmachine.boxinator.tier.02", "Advanced Packager", 2).getStackForm(1L)); - ItemList.Machine_HV_Boxinator.set(new GT_MetaTileEntity_Boxinator(403, "basicmachine.boxinator.tier.03", "Advanced Packager II", 3).getStackForm(1L)); - ItemList.Machine_EV_Boxinator.set(new GT_MetaTileEntity_Boxinator(404, "basicmachine.boxinator.tier.04", "Advanced Packager III", 4).getStackForm(1L)); - ItemList.Machine_IV_Boxinator.set(new GT_MetaTileEntity_Boxinator(405, "basicmachine.boxinator.tier.05", "Boxinator", 5).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Machine_LV_Boxinator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "BCB", "RMV", "WCW", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('R'), ItemList.Robot_Arm_LV, Character.valueOf('V'), ItemList.Conveyor_Module_LV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin), Character.valueOf('B'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_MV_Boxinator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "BCB", "RMV", "WCW", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('R'), ItemList.Robot_Arm_MV, Character.valueOf('V'), ItemList.Conveyor_Module_MV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper), Character.valueOf('B'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_HV_Boxinator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "BCB", "RMV", "WCW", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('R'), ItemList.Robot_Arm_HV, Character.valueOf('V'), ItemList.Conveyor_Module_HV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold), Character.valueOf('B'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_EV_Boxinator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "BCB", "RMV", "WCW", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('R'), ItemList.Robot_Arm_EV, Character.valueOf('V'), ItemList.Conveyor_Module_EV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium), Character.valueOf('B'), OreDictNames.craftingChest }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_IV_Boxinator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "BCB", "RMV", "WCW", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('R'), ItemList.Robot_Arm_IV, Character.valueOf('V'), ItemList.Conveyor_Module_IV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tungsten), Character.valueOf('B'), OreDictNames.craftingChest }); - - ItemList.Machine_LV_Unboxinator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(411, "basicmachine.unboxinator.tier.01", "Basic Unpackager", 1, "Grabs things out of Boxes", GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes, 1, 2, 0, 0, 1, "Unpackager.png", "", false, false, 0, "UNBOXINATOR", new Object[] { "BCB", "VMR", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('B'), OreDictNames.craftingChest }).getStackForm(1L)); - ItemList.Machine_MV_Unboxinator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(412, "basicmachine.unboxinator.tier.02", "Advanced Unpackager", 2, "Grabs things out of Boxes", GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes, 1, 2, 0, 0, 1, "Unpackager.png", "", false, false, 0, "UNBOXINATOR", new Object[] { "BCB", "VMR", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('B'), OreDictNames.craftingChest }).getStackForm(1L)); - ItemList.Machine_HV_Unboxinator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(413, "basicmachine.unboxinator.tier.03", "Advanced Unpackager II", 3, "Grabs things out of Boxes", GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes, 1, 2, 0, 0, 1, "Unpackager.png", "", false, false, 0, "UNBOXINATOR", new Object[] { "BCB", "VMR", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('B'), OreDictNames.craftingChest }).getStackForm(1L)); - ItemList.Machine_EV_Unboxinator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(414, "basicmachine.unboxinator.tier.04", "Advanced Unpackager III", 4, "Grabs things out of Boxes", GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes, 1, 2, 0, 0, 1, "Unpackager.png", "", false, false, 0, "UNBOXINATOR", new Object[] { "BCB", "VMR", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('B'), OreDictNames.craftingChest }).getStackForm(1L)); - ItemList.Machine_IV_Unboxinator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(415, "basicmachine.unboxinator.tier.05", "Unboxinator", 5, "Grabs things out of Boxes", GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes, 1, 2, 0, 0, 1, "Unpackager.png", "", false, false, 0, "UNBOXINATOR", new Object[] { "BCB", "VMR", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('B'), OreDictNames.craftingChest }).getStackForm(1L)); - - ItemList.Machine_LV_ChemicalReactor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(421, "basicmachine.chemicalreactor.tier.01", "Basic Chemical Reactor", 1, "Letting Chemicals react with each other", GT_Recipe.GT_Recipe_Map.sChemicalRecipes, 2, 1, 16000, 0, 1, "ChemicalReactor.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CHEMICAL_REACTOR", new Object[] { "GRG", "WEW", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_MV_ChemicalReactor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(422, "basicmachine.chemicalreactor.tier.02", "Advanced Chemical Reactor", 2, "Letting Chemicals react with each other", GT_Recipe.GT_Recipe_Map.sChemicalRecipes, 2, 1, 16000, 0, 1, "ChemicalReactor.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CHEMICAL_REACTOR", new Object[] { "GRG", "WEW", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_HV_ChemicalReactor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(423, "basicmachine.chemicalreactor.tier.03", "Advanced Chemical Reactor II", 3, "Letting Chemicals react with each other", GT_Recipe.GT_Recipe_Map.sChemicalRecipes, 2, 1, 16000, 0, 1, "ChemicalReactor.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CHEMICAL_REACTOR", new Object[] { "GRG", "WEW", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_EV_ChemicalReactor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(424, "basicmachine.chemicalreactor.tier.04", "Advanced Chemical Reactor III", 4, "Letting Chemicals react with each other", GT_Recipe.GT_Recipe_Map.sChemicalRecipes, 2, 1, 16000, 0, 1, "ChemicalReactor.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CHEMICAL_REACTOR", new Object[] { "GRG", "WEW", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_IV_ChemicalReactor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(425, "basicmachine.chemicalreactor.tier.05", "Advanced Chemical Reactor IV", 5, "Letting Chemicals react with each other", GT_Recipe.GT_Recipe_Map.sChemicalRecipes, 2, 1, 16000, 0, 1, "ChemicalReactor.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CHEMICAL_REACTOR", new Object[] { "GRG", "WEW", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - - ItemList.Machine_LV_FluidCanner.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(431, "basicmachine.fluidcanner.tier.01", "Basic Fluid Canner", 1, "Puts Fluids into and out of Containers", GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes, 1, 1, 16000, 0, 1, "FluidCanner.png", "", true, false, 0, "FLUID_CANNER", new Object[] { "GCG", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_MV_FluidCanner.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(432, "basicmachine.fluidcanner.tier.02", "Advanced Fluid Canner", 2, "Puts Fluids into and out of Containers", GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes, 1, 1, 32000, 0, 1, "FluidCanner.png", "", true, false, 0, "FLUID_CANNER", new Object[] { "GCG", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_HV_FluidCanner.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(433, "basicmachine.fluidcanner.tier.03", "Quick Fluid Canner", 3, "Puts Fluids into and out of Containers", GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes, 1, 1, 48000, 0, 1, "FluidCanner.png", "", true, false, 0, "FLUID_CANNER", new Object[] { "GCG", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_EV_FluidCanner.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(434, "basicmachine.fluidcanner.tier.04", "Turbo Fluid Canner", 4, "Puts Fluids into and out of Containers", GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes, 1, 1, 64000, 0, 1, "FluidCanner.png", "", true, false, 0, "FLUID_CANNER", new Object[] { "GCG", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_IV_FluidCanner.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(435, "basicmachine.fluidcanner.tier.05", "Instant Fluid Canner", 5, "Puts Fluids into and out of Containers", GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes, 1, 1, 80000, 0, 1, "FluidCanner.png", "", true, false, 0, "FLUID_CANNER", new Object[] { "GCG", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - - ItemList.Machine_LV_RockBreaker.set(new GT_MetaTileEntity_RockBreaker(441, "basicmachine.rockbreaker.tier.01", "Basic Rock Breaker", 1).getStackForm(1L)); - ItemList.Machine_MV_RockBreaker.set(new GT_MetaTileEntity_RockBreaker(442, "basicmachine.rockbreaker.tier.02", "Advanced Rock Breaker", 2).getStackForm(1L)); - ItemList.Machine_HV_RockBreaker.set(new GT_MetaTileEntity_RockBreaker(443, "basicmachine.rockbreaker.tier.03", "Advanced Rock Breaker II", 3).getStackForm(1L)); - ItemList.Machine_EV_RockBreaker.set(new GT_MetaTileEntity_RockBreaker(444, "basicmachine.rockbreaker.tier.04", "Advanced Rock Breaker III", 4).getStackForm(1L)); - ItemList.Machine_IV_RockBreaker.set(new GT_MetaTileEntity_RockBreaker(445, "basicmachine.rockbreaker.tier.05", "Cryogenic Magma Solidifier R-8200", 5).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Machine_LV_RockBreaker.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PED", "WMW", "GGG", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('D'), OreDictNames.craftingGrinder, Character.valueOf('E'), ItemList.Electric_Motor_LV, Character.valueOf('P'), ItemList.Electric_Piston_LV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin), Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_MV_RockBreaker.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PED", "WMW", "GGG", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('D'), OreDictNames.craftingGrinder, Character.valueOf('E'), ItemList.Electric_Motor_MV, Character.valueOf('P'), ItemList.Electric_Piston_MV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper), Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_HV_RockBreaker.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PED", "WMW", "GGG", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('D'), OreDictNames.craftingGrinder, Character.valueOf('E'), ItemList.Electric_Motor_HV, Character.valueOf('P'), ItemList.Electric_Piston_HV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold), Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_EV_RockBreaker.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PED", "WMW", "GGG", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('D'), OreDictNames.craftingGrinder, Character.valueOf('E'), ItemList.Electric_Motor_EV, Character.valueOf('P'), ItemList.Electric_Piston_EV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium), Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_IV_RockBreaker.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PED", "WMW", "GGG", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('D'), OreDictNames.craftingGrinder, Character.valueOf('E'), ItemList.Electric_Motor_IV, Character.valueOf('P'), ItemList.Electric_Piston_IV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tungsten), Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - - ItemList.Machine_LV_Disassembler.set(new GT_MetaTileEntity_Disassembler(451, "basicmachine.disassembler.tier.01", "Basic Disassembler", 1).getStackForm(1L)); - ItemList.Machine_MV_Disassembler.set(new GT_MetaTileEntity_Disassembler(452, "basicmachine.disassembler.tier.02", "Advanced Disassembler", 2).getStackForm(1L)); - ItemList.Machine_HV_Disassembler.set(new GT_MetaTileEntity_Disassembler(453, "basicmachine.disassembler.tier.03", "Advanced Disassembler II", 3).getStackForm(1L)); - ItemList.Machine_EV_Disassembler.set(new GT_MetaTileEntity_Disassembler(454, "basicmachine.disassembler.tier.04", "Advanced Disassembler III", 4).getStackForm(1L)); - ItemList.Machine_IV_Disassembler.set(new GT_MetaTileEntity_Disassembler(455, "basicmachine.disassembler.tier.05", "Advanced Disassembler IV", 5).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Machine_LV_Disassembler.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "ACA", "WMW", "ACA", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('A'), ItemList.Robot_Arm_LV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_MV_Disassembler.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "ACA", "WMW", "ACA", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('A'), ItemList.Robot_Arm_MV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_HV_Disassembler.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "ACA", "WMW", "ACA", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('A'), ItemList.Robot_Arm_HV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_EV_Disassembler.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "ACA", "WMW", "ACA", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('A'), ItemList.Robot_Arm_EV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_IV_Disassembler.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "ACA", "WMW", "ACA", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('A'), ItemList.Robot_Arm_IV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tungsten) }); - - ItemList.Machine_LV_Massfab.set(new GT_MetaTileEntity_Massfabricator(461, "basicmachine.massfab.tier.01", "Basic Mass Fabricator", 1).getStackForm(1L)); - ItemList.Machine_MV_Massfab.set(new GT_MetaTileEntity_Massfabricator(462, "basicmachine.massfab.tier.02", "Advanced Mass Fabricator", 2).getStackForm(1L)); - ItemList.Machine_HV_Massfab.set(new GT_MetaTileEntity_Massfabricator(463, "basicmachine.massfab.tier.03", "Advanced Mass Fabricator II", 3).getStackForm(1L)); - ItemList.Machine_EV_Massfab.set(new GT_MetaTileEntity_Massfabricator(464, "basicmachine.massfab.tier.04", "Advanced Mass Fabricator III", 4).getStackForm(1L)); - ItemList.Machine_IV_Massfab.set(new GT_MetaTileEntity_Massfabricator(465, "basicmachine.massfab.tier.05", "Advanced Mass Fabricator IV", 5).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Machine_LV_Massfab.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CFC", "WMW", "CFC", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('F'), ItemList.Field_Generator_LV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_MV_Massfab.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CFC", "WMW", "CFC", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('F'), ItemList.Field_Generator_MV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.AnyCopper) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_HV_Massfab.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CFC", "WMW", "CFC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('F'), ItemList.Field_Generator_HV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Gold) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_EV_Massfab.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CFC", "WMW", "CFC", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('F'), ItemList.Field_Generator_EV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_IV_Massfab.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CFC", "WMW", "CFC", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('F'), ItemList.Field_Generator_IV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Ultimate), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Tungsten) }); - - ItemList.Machine_LV_Amplifab.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(471, "basicmachine.amplifab.tier.01", "Basic Amplifabricator", 1, "Extracting UU Amplifier", GT_Recipe.GT_Recipe_Map.sAmplifiers, 1, 1, 1000, 0, 1, "Amplifabricator.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "AMPLIFAB", new Object[] { "WPW", "PMP", "CPC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4 }).getStackForm(1L)); - ItemList.Machine_MV_Amplifab.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(472, "basicmachine.amplifab.tier.02", "Advanced Amplifabricator", 2, "Extracting UU Amplifier", GT_Recipe.GT_Recipe_Map.sAmplifiers, 1, 1, 1000, 0, 1, "Amplifabricator.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "AMPLIFAB", new Object[] { "WPW", "PMP", "CPC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4 }).getStackForm(1L)); - ItemList.Machine_HV_Amplifab.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(473, "basicmachine.amplifab.tier.03", "Advanced Amplifabricator II", 3, "Extracting UU Amplifier", GT_Recipe.GT_Recipe_Map.sAmplifiers, 1, 1, 1000, 0, 1, "Amplifabricator.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "AMPLIFAB", new Object[] { "WPW", "PMP", "CPC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4 }).getStackForm(1L)); - ItemList.Machine_EV_Amplifab.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(474, "basicmachine.amplifab.tier.04", "Advanced Amplifabricator III", 4, "Extracting UU Amplifier", GT_Recipe.GT_Recipe_Map.sAmplifiers, 1, 1, 1000, 0, 1, "Amplifabricator.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "AMPLIFAB", new Object[] { "WPW", "PMP", "CPC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4 }).getStackForm(1L)); - ItemList.Machine_IV_Amplifab.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(475, "basicmachine.amplifab.tier.05", "Advanced Amplifabricator IV", 5, "Extracting UU Amplifier", GT_Recipe.GT_Recipe_Map.sAmplifiers, 1, 1, 1000, 0, 1, "Amplifabricator.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "AMPLIFAB", new Object[] { "WPW", "PMP", "CPC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4 }).getStackForm(1L)); - - ItemList.Machine_LV_Replicator.set(new GT_MetaTileEntity_Replicator(481, "basicmachine.replicator.tier.01", "Basic Replicator", 1).getStackForm(1L)); - ItemList.Machine_MV_Replicator.set(new GT_MetaTileEntity_Replicator(482, "basicmachine.replicator.tier.02", "Advanced Replicator", 2).getStackForm(1L)); - ItemList.Machine_HV_Replicator.set(new GT_MetaTileEntity_Replicator(483, "basicmachine.replicator.tier.03", "Advanced Replicator II", 3).getStackForm(1L)); - ItemList.Machine_EV_Replicator.set(new GT_MetaTileEntity_Replicator(484, "basicmachine.replicator.tier.04", "Advanced Replicator III", 4).getStackForm(1L)); - ItemList.Machine_IV_Replicator.set(new GT_MetaTileEntity_Replicator(485, "basicmachine.replicator.tier.05", "Advanced Replicator IV", 5).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Machine_LV_Replicator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "EFE", "CMC", "EWE", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('F'), ItemList.Field_Generator_LV, Character.valueOf('E'), ItemList.Emitter_LV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_MV_Replicator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "EFE", "CMC", "EWE", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('F'), ItemList.Field_Generator_MV, Character.valueOf('E'), ItemList.Emitter_MV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.AnyCopper) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_HV_Replicator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "EFE", "CMC", "EWE", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('F'), ItemList.Field_Generator_HV, Character.valueOf('E'), ItemList.Emitter_HV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Gold) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_EV_Replicator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "EFE", "CMC", "EWE", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('F'), ItemList.Field_Generator_EV, Character.valueOf('E'), ItemList.Emitter_EV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_IV_Replicator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "EFE", "CMC", "EWE", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('F'), ItemList.Field_Generator_IV, Character.valueOf('E'), ItemList.Emitter_IV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Ultimate), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Tungsten) }); - - ItemList.Machine_LV_Brewery.set(new GT_MetaTileEntity_PotionBrewer(491, "basicmachine.brewery.tier.01", "Basic Brewery", 1).getStackForm(1L)); - ItemList.Machine_MV_Brewery.set(new GT_MetaTileEntity_PotionBrewer(492, "basicmachine.brewery.tier.02", "Advanced Brewery", 2).getStackForm(1L)); - ItemList.Machine_HV_Brewery.set(new GT_MetaTileEntity_PotionBrewer(493, "basicmachine.brewery.tier.03", "Advanced Brewery II", 3).getStackForm(1L)); - ItemList.Machine_EV_Brewery.set(new GT_MetaTileEntity_PotionBrewer(494, "basicmachine.brewery.tier.04", "Advanced Brewery III", 4).getStackForm(1L)); - ItemList.Machine_IV_Brewery.set(new GT_MetaTileEntity_PotionBrewer(495, "basicmachine.brewery.tier.05", "Advanced Brewery IV", 5).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Machine_LV_Brewery.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "GPG", "WMW", "CBC", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('P'), ItemList.Electric_Pump_LV, Character.valueOf('B'), OrePrefixes.stick.get(Materials.Blaze), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin), Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_MV_Brewery.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "GPG", "WMW", "CBC", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('P'), ItemList.Electric_Pump_MV, Character.valueOf('B'), OrePrefixes.stick.get(Materials.Blaze), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper), Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_HV_Brewery.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "GPG", "WMW", "CBC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('P'), ItemList.Electric_Pump_HV, Character.valueOf('B'), OrePrefixes.stick.get(Materials.Blaze), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold), Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_EV_Brewery.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "GPG", "WMW", "CBC", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('P'), ItemList.Electric_Pump_EV, Character.valueOf('B'), OrePrefixes.stick.get(Materials.Blaze), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium), Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_IV_Brewery.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "GPG", "WMW", "CBC", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('P'), ItemList.Electric_Pump_IV, Character.valueOf('B'), OrePrefixes.stick.get(Materials.Blaze), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tungsten), Character.valueOf('G'), new ItemStack(Blocks.glass, 1) }); - - ItemList.Machine_LV_Fermenter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(501, "basicmachine.fermenter.tier.01", "Basic Fermenter", 1, "Fermenting Fluids", GT_Recipe.GT_Recipe_Map.sFermentingRecipes, 1, 1, 1000, 0, 1, "Fermenter.png", "", false, false, 0, "FERMENTER", new Object[] { "WPW", "GMG", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_MV_Fermenter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(502, "basicmachine.fermenter.tier.02", "Advanced Fermenter", 2, "Fermenting Fluids", GT_Recipe.GT_Recipe_Map.sFermentingRecipes, 1, 1, 1000, 0, 1, "Fermenter.png", "", false, false, 0, "FERMENTER", new Object[] { "WPW", "GMG", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_HV_Fermenter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(503, "basicmachine.fermenter.tier.03", "Advanced Fermenter II", 3, "Fermenting Fluids", GT_Recipe.GT_Recipe_Map.sFermentingRecipes, 1, 1, 1000, 0, 1, "Fermenter.png", "", false, false, 0, "FERMENTER", new Object[] { "WPW", "GMG", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_EV_Fermenter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(504, "basicmachine.fermenter.tier.04", "Advanced Fermenter III", 4, "Fermenting Fluids", GT_Recipe.GT_Recipe_Map.sFermentingRecipes, 1, 1, 1000, 0, 1, "Fermenter.png", "", false, false, 0, "FERMENTER", new Object[] { "WPW", "GMG", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_IV_Fermenter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(505, "basicmachine.fermenter.tier.05", "Advanced Fermenter IV", 5, "Fermenting Fluids", GT_Recipe.GT_Recipe_Map.sFermentingRecipes, 1, 1, 1000, 0, 1, "Fermenter.png", "", false, false, 0, "FERMENTER", new Object[] { "WPW", "GMG", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - - ItemList.Machine_LV_FluidExtractor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(511, "basicmachine.fluidextractor.tier.01", "Basic Fluid Extractor", 1, "Extracting Fluids from Items", GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes, 1, 1, 16000, 0, 1, "FluidExtractor.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "FLUID_EXTRACTOR", new Object[] { "GCG", "PME", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_MV_FluidExtractor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(512, "basicmachine.fluidextractor.tier.02", "Advanced Fluid Extractor", 2, "Extracting Fluids from Items", GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes, 1, 1, 16000, 0, 1, "FluidExtractor.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "FLUID_EXTRACTOR", new Object[] { "GCG", "PME", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_HV_FluidExtractor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(513, "basicmachine.fluidextractor.tier.03", "Advanced Fluid Extractor II", 3, "Extracting Fluids from Items", GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes, 1, 1, 16000, 0, 1, "FluidExtractor.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "FLUID_EXTRACTOR", new Object[] { "GCG", "PME", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_EV_FluidExtractor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(514, "basicmachine.fluidextractor.tier.04", "Advanced Fluid Extractor III", 4, "Extracting Fluids from Items", GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes, 1, 1, 16000, 0, 1, "FluidExtractor.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "FLUID_EXTRACTOR", new Object[] { "GCG", "PME", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_IV_FluidExtractor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(515, "basicmachine.fluidextractor.tier.05", "Advanced Fluid Extractor IV", 5, "Extracting Fluids from Items", GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes, 1, 1, 16000, 0, 1, "FluidExtractor.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "FLUID_EXTRACTOR", new Object[] { "GCG", "PME", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - - ItemList.Machine_LV_FluidSolidifier.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(521, "basicmachine.fluidsolidifier.tier.01", "Basic Fluid Solidifier", 1, "Cools Fluids down to form Solids", GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes, 1, 1, 16000, 0, 1, "FluidSolidifier.png", "", false, false, 0, "FLUID_SOLIDIFIER", new Object[] { "PGP", "WMW", "CBC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingChest }).getStackForm(1L)); - ItemList.Machine_MV_FluidSolidifier.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(522, "basicmachine.fluidsolidifier.tier.02", "Advanced Fluid Solidifier", 2, "Cools Fluids down to form Solids", GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes, 1, 1, 16000, 0, 1, "FluidSolidifier.png", "", false, false, 0, "FLUID_SOLIDIFIER", new Object[] { "PGP", "WMW", "CBC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingChest }).getStackForm(1L)); - ItemList.Machine_HV_FluidSolidifier.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(523, "basicmachine.fluidsolidifier.tier.03", "Advanced Fluid Solidifier II", 3, "Cools Fluids down to form Solids", GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes, 1, 1, 16000, 0, 1, "FluidSolidifier.png", "", false, false, 0, "FLUID_SOLIDIFIER", new Object[] { "PGP", "WMW", "CBC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingChest }).getStackForm(1L)); - ItemList.Machine_EV_FluidSolidifier.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(524, "basicmachine.fluidsolidifier.tier.04", "Advanced Fluid Solidifier III", 4, "Cools Fluids down to form Solids", GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes, 1, 1, 16000, 0, 1, "FluidSolidifier.png", "", false, false, 0, "FLUID_SOLIDIFIER", new Object[] { "PGP", "WMW", "CBC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingChest }).getStackForm(1L)); - ItemList.Machine_IV_FluidSolidifier.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(525, "basicmachine.fluidsolidifier.tier.05", "Advanced Fluid Solidifier IV", 5, "Cools Fluids down to form Solids", GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes, 1, 1, 16000, 0, 1, "FluidSolidifier.png", "", false, false, 0, "FLUID_SOLIDIFIER", new Object[] { "PGP", "WMW", "CBC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingChest }).getStackForm(1L)); - - ItemList.Machine_LV_Distillery.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(531, "basicmachine.distillery.tier.01", "Basic Distillery", 1, "Extracting the most relevant Parts of Fluids", GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, 1, 0, 1000, 0, 1, "Distillery.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "DISTILLERY", new Object[] { "GBG", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('B'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_DISTILLATION, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_MV_Distillery.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(532, "basicmachine.distillery.tier.02", "Advanced Distillery", 2, "Extracting the most relevant Parts of Fluids", GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, 1, 0, 1000, 0, 1, "Distillery.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "DISTILLERY", new Object[] { "GBG", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('B'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_DISTILLATION, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_HV_Distillery.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(533, "basicmachine.distillery.tier.03", "Advanced Distillery II", 3, "Extracting the most relevant Parts of Fluids", GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, 1, 0, 1000, 0, 1, "Distillery.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "DISTILLERY", new Object[] { "GBG", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('B'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_DISTILLATION, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_EV_Distillery.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(534, "basicmachine.distillery.tier.04", "Advanced Distillery III", 4, "Extracting the most relevant Parts of Fluids", GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, 1, 0, 1000, 0, 1, "Distillery.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "DISTILLERY", new Object[] { "GBG", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('B'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_DISTILLATION, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_IV_Distillery.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(535, "basicmachine.distillery.tier.05", "Advanced Distillery IV", 5, "Extracting the most relevant Parts of Fluids", GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, 1, 0, 1000, 0, 1, "Distillery.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "DISTILLERY", new Object[] { "GBG", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('B'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_DISTILLATION, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - - ItemList.Machine_LV_ChemicalBath.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(541, "basicmachine.chemicalbath.tier.01", "Basic Chemical Bath", 1, "Bathing Ores in Chemicals to separate them", GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes, 1, 3, 8000, 0, 1, "ChemicalBath.png", "", false, true, 0, "CHEMICAL_BATH", new Object[] { "VGW", "PGV", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_MV_ChemicalBath.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(542, "basicmachine.chemicalbath.tier.02", "Advanced Chemical Bath", 2, "Bathing Ores in Chemicals to separate them", GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes, 1, 3, 8000, 0, 1, "ChemicalBath.png", "", false, true, 0, "CHEMICAL_BATH", new Object[] { "VGW", "PGV", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_HV_ChemicalBath.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(543, "basicmachine.chemicalbath.tier.03", "Advanced Chemical Bath II", 3, "Bathing Ores in Chemicals to separate them", GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes, 1, 3, 8000, 0, 1, "ChemicalBath.png", "", false, true, 0, "CHEMICAL_BATH", new Object[] { "VGW", "PGV", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_EV_ChemicalBath.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(544, "basicmachine.chemicalbath.tier.04", "Advanced Chemical Bath III", 4, "Bathing Ores in Chemicals to separate them", GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes, 1, 3, 8000, 0, 1, "ChemicalBath.png", "", false, true, 0, "CHEMICAL_BATH", new Object[] { "VGW", "PGV", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_IV_ChemicalBath.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(545, "basicmachine.chemicalbath.tier.05", "Advanced Chemical Bath IV", 5, "Bathing Ores in Chemicals to separate them", GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes, 1, 3, 8000, 0, 1, "ChemicalBath.png", "", false, true, 0, "CHEMICAL_BATH", new Object[] { "VGW", "PGV", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - - ItemList.Machine_LV_Polarizer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(551, "basicmachine.polarizer.tier.01", "Basic Polarizer", 1, "Bipolarising your Magnets", GT_Recipe.GT_Recipe_Map.sPolarizerRecipes, 1, 1, 0, 0, 1, "Polarizer.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "POLARIZER", new Object[] { "ZSZ", "WMW", "ZSZ", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('S'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, Character.valueOf('Z'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_MV_Polarizer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(552, "basicmachine.polarizer.tier.02", "Advanced Polarizer", 2, "Bipolarising your Magnets", GT_Recipe.GT_Recipe_Map.sPolarizerRecipes, 1, 1, 0, 0, 1, "Polarizer.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "POLARIZER", new Object[] { "ZSZ", "WMW", "ZSZ", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('S'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, Character.valueOf('Z'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_HV_Polarizer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(553, "basicmachine.polarizer.tier.03", "Advanced Polarizer II", 3, "Bipolarising your Magnets", GT_Recipe.GT_Recipe_Map.sPolarizerRecipes, 1, 1, 0, 0, 1, "Polarizer.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "POLARIZER", new Object[] { "ZSZ", "WMW", "ZSZ", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('S'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, Character.valueOf('Z'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_EV_Polarizer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(554, "basicmachine.polarizer.tier.04", "Advanced Polarizer III", 4, "Bipolarising your Magnets", GT_Recipe.GT_Recipe_Map.sPolarizerRecipes, 1, 1, 0, 0, 1, "Polarizer.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "POLARIZER", new Object[] { "ZSZ", "WMW", "ZSZ", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('S'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, Character.valueOf('Z'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_IV_Polarizer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(555, "basicmachine.polarizer.tier.05", "Advanced Polarizer IV", 5, "Bipolarising your Magnets", GT_Recipe.GT_Recipe_Map.sPolarizerRecipes, 1, 1, 0, 0, 1, "Polarizer.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "POLARIZER", new Object[] { "ZSZ", "WMW", "ZSZ", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('S'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, Character.valueOf('Z'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - - ItemList.Machine_LV_ElectromagneticSeparator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(561, "basicmachine.electromagneticseparator.tier.01", "Basic Electromagnetic Separator", 1, "Separating the magnetic Ores from the rest", GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes, 1, 3, 0, 0, 1, "ElectromagneticSeparator.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "ELECTROMAGNETIC_SEPARATOR", new Object[] { "VWZ", "WMS", "CWZ", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('S'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, Character.valueOf('Z'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_MV_ElectromagneticSeparator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(562, "basicmachine.electromagneticseparator.tier.02", "Advanced Electromagnetic Separator", 2, "Separating the magnetic Ores from the rest", GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes, 1, 3, 0, 0, 1, "ElectromagneticSeparator.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "ELECTROMAGNETIC_SEPARATOR", new Object[] { "VWZ", "WMS", "CWZ", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('S'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, Character.valueOf('Z'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_HV_ElectromagneticSeparator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(563, "basicmachine.electromagneticseparator.tier.03", "Advanced Electromagnetic Separator II", 3, "Separating the magnetic Ores from the rest", GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes, 1, 3, 0, 0, 1, "ElectromagneticSeparator.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "ELECTROMAGNETIC_SEPARATOR", new Object[] { "VWZ", "WMS", "CWZ", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('S'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, Character.valueOf('Z'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_EV_ElectromagneticSeparator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(564, "basicmachine.electromagneticseparator.tier.04", "Advanced Electromagnetic Separator III", 4, "Separating the magnetic Ores from the rest", GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes, 1, 3, 0, 0, 1, "ElectromagneticSeparator.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "ELECTROMAGNETIC_SEPARATOR", new Object[] { "VWZ", "WMS", "CWZ", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('S'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, Character.valueOf('Z'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_IV_ElectromagneticSeparator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(565, "basicmachine.electromagneticseparator.tier.05", "Advanced Electromagnetic Separator IV", 5, "Separating the magnetic Ores from the rest", GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes, 1, 3, 0, 0, 1, "ElectromagneticSeparator.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "ELECTROMAGNETIC_SEPARATOR", new Object[] { "VWZ", "WMS", "CWZ", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('S'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, Character.valueOf('Z'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - - ItemList.Machine_LV_Autoclave.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(571, "basicmachine.autoclave.tier.01", "Basic Autoclave", 1, "Crystallizing your Dusts", GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes, 1, 1, 8000, 0, 1, "Autoclave.png", "", false, false, 0, "AUTOCLAVE", new Object[] { "IGI", "IMI", "CPC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('I'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_MV_Autoclave.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(572, "basicmachine.autoclave.tier.02", "Advanced Autoclave", 2, "Crystallizing your Dusts", GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes, 1, 1, 8000, 0, 1, "Autoclave.png", "", false, false, 0, "AUTOCLAVE", new Object[] { "IGI", "IMI", "CPC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('I'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_HV_Autoclave.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(573, "basicmachine.autoclave.tier.03", "Advanced Autoclave II", 3, "Crystallizing your Dusts", GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes, 1, 1, 8000, 0, 1, "Autoclave.png", "", false, false, 0, "AUTOCLAVE", new Object[] { "IGI", "IMI", "CPC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('I'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_EV_Autoclave.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(574, "basicmachine.autoclave.tier.04", "Advanced Autoclave III", 4, "Crystallizing your Dusts", GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes, 1, 1, 8000, 0, 1, "Autoclave.png", "", false, false, 0, "AUTOCLAVE", new Object[] { "IGI", "IMI", "CPC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('I'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_IV_Autoclave.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(575, "basicmachine.autoclave.tier.05", "Advanced Autoclave IV", 5, "Crystallizing your Dusts", GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes, 1, 1, 8000, 0, 1, "Autoclave.png", "", false, false, 0, "AUTOCLAVE", new Object[] { "IGI", "IMI", "CPC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('I'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - - ItemList.Machine_LV_Mixer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(581, "basicmachine.mixer.tier.01", "Basic Mixer", 1, "Will it Blend?", GT_Recipe.GT_Recipe_Map.sMixerRecipes, 4, 1, 8000, 0, 1, "Mixer.png", "", false, false, 0, "MIXER", new Object[] { "GRG", "GEG", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_MV_Mixer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(582, "basicmachine.mixer.tier.02", "Advanced Mixer", 2, "Will it Blend?", GT_Recipe.GT_Recipe_Map.sMixerRecipes, 4, 1, 8000, 0, 1, "Mixer.png", "", false, false, 0, "MIXER", new Object[] { "GRG", "GEG", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_HV_Mixer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(583, "basicmachine.mixer.tier.03", "Advanced Mixer II", 3, "Will it Blend?", GT_Recipe.GT_Recipe_Map.sMixerRecipes, 4, 1, 8000, 0, 1, "Mixer.png", "", false, false, 0, "MIXER", new Object[] { "GRG", "GEG", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_EV_Mixer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(584, "basicmachine.mixer.tier.04", "Advanced Mixer III", 4, "Will it Blend?", GT_Recipe.GT_Recipe_Map.sMixerRecipes, 4, 1, 8000, 0, 1, "Mixer.png", "", false, false, 0, "MIXER", new Object[] { "GRG", "GEG", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_IV_Mixer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(585, "basicmachine.mixer.tier.05", "Advanced Mixer IV", 5, "Will it Blend?", GT_Recipe.GT_Recipe_Map.sMixerRecipes, 4, 1, 8000, 0, 1, "Mixer.png", "", false, false, 0, "MIXER", new Object[] { "GRG", "GEG", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - - ItemList.Machine_LV_LaserEngraver.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(591, "basicmachine.laserengraver.tier.01", "Basic Precision Laser Engraver", 1, "Don't look directly at the Laser", GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes, 2, 1, 0, 0, 1, "LaserEngraver.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "LASER_ENGRAVER", new Object[] { "PEP", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_MV_LaserEngraver.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(592, "basicmachine.laserengraver.tier.02", "Advanced Precision Laser Engraver", 2, "Don't look directly at the Laser", GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes, 2, 1, 0, 0, 1, "LaserEngraver.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "LASER_ENGRAVER", new Object[] { "PEP", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_HV_LaserEngraver.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(593, "basicmachine.laserengraver.tier.03", "Advanced Precision Laser Engraver II", 3, "Don't look directly at the Laser", GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes, 2, 1, 0, 0, 1, "LaserEngraver.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "LASER_ENGRAVER", new Object[] { "PEP", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_EV_LaserEngraver.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(594, "basicmachine.laserengraver.tier.04", "Advanced Precision Laser Engraver III", 4, "Don't look directly at the Laser", GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes, 2, 1, 0, 0, 1, "LaserEngraver.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "LASER_ENGRAVER", new Object[] { "PEP", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_IV_LaserEngraver.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(595, "basicmachine.laserengraver.tier.05", "Advanced Precision Laser Engraver IV", 5, "Don't look directly at the Laser", GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes, 2, 1, 0, 0, 1, "LaserEngraver.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "LASER_ENGRAVER", new Object[] { "PEP", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - - ItemList.Machine_LV_Press.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(601, "basicmachine.press.tier.01", "Basic Forming Press", 1, "Imprinting Images into things", GT_Recipe.GT_Recipe_Map.sPressRecipes, 2, 1, 0, 0, 1, "Press.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "PRESS", new Object[] { "WPW", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_MV_Press.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(602, "basicmachine.press.tier.02", "Advanced Forming Press", 2, "Imprinting Images into things", GT_Recipe.GT_Recipe_Map.sPressRecipes, 2, 1, 0, 0, 1, "Press.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "PRESS", new Object[] { "WPW", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_HV_Press.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(603, "basicmachine.press.tier.03", "Advanced Forming Press II", 3, "Imprinting Images into things", GT_Recipe.GT_Recipe_Map.sPressRecipes, 2, 1, 0, 0, 1, "Press.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "PRESS", new Object[] { "WPW", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_EV_Press.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(604, "basicmachine.press.tier.04", "Advanced Forming Press III", 4, "Imprinting Images into things", GT_Recipe.GT_Recipe_Map.sPressRecipes, 2, 1, 0, 0, 1, "Press.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "PRESS", new Object[] { "WPW", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_IV_Press.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(605, "basicmachine.press.tier.05", "Advanced Forming Press IV", 5, "Imprinting Images into things", GT_Recipe.GT_Recipe_Map.sPressRecipes, 2, 1, 0, 0, 1, "Press.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "PRESS", new Object[] { "WPW", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - - ItemList.Machine_LV_Hammer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(611, "basicmachine.hammer.tier.01", "Basic Forge Hammer", 1, "Stop, Hammertime!", GT_Recipe.GT_Recipe_Map.sHammerRecipes, 1, 1, 0, 6, 3, "Hammer.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(1)), false, false, 0, "HAMMER", new Object[] { "WPW", "CMC", "WAW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, Character.valueOf('A'), OreDictNames.craftingAnvil }).getStackForm(1L)); - ItemList.Machine_MV_Hammer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(612, "basicmachine.hammer.tier.02", "Advanced Forge Hammer", 2, "Stop, Hammertime!", GT_Recipe.GT_Recipe_Map.sHammerRecipes, 1, 1, 0, 6, 3, "Hammer.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(1)), false, false, 0, "HAMMER", new Object[] { "WPW", "CMC", "WAW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, Character.valueOf('A'), OreDictNames.craftingAnvil }).getStackForm(1L)); - ItemList.Machine_HV_Hammer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(613, "basicmachine.hammer.tier.03", "Advanced Forge Hammer II", 3, "Stop, Hammertime!", GT_Recipe.GT_Recipe_Map.sHammerRecipes, 1, 1, 0, 6, 3, "Hammer.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(1)), false, false, 0, "HAMMER", new Object[] { "WPW", "CMC", "WAW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, Character.valueOf('A'), OreDictNames.craftingAnvil }).getStackForm(1L)); - ItemList.Machine_EV_Hammer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(614, "basicmachine.hammer.tier.04", "Advanced Forge Hammer III", 4, "Stop, Hammertime!", GT_Recipe.GT_Recipe_Map.sHammerRecipes, 1, 1, 0, 6, 3, "Hammer.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(1)), false, false, 0, "HAMMER", new Object[] { "WPW", "CMC", "WAW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, Character.valueOf('A'), OreDictNames.craftingAnvil }).getStackForm(1L)); - ItemList.Machine_IV_Hammer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(615, "basicmachine.hammer.tier.05", "Advanced Forge Hammer IV", 5, "Stop, Hammertime!", GT_Recipe.GT_Recipe_Map.sHammerRecipes, 1, 1, 0, 6, 3, "Hammer.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(1)), false, false, 0, "HAMMER", new Object[] { "WPW", "CMC", "WAW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, Character.valueOf('A'), OreDictNames.craftingAnvil }).getStackForm(1L)); - - ItemList.Machine_LV_FluidHeater.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(621, "basicmachine.fluidheater.tier.01", "Basic Fluid Heater", 1, "Heating up your Fluids", GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes, 1, 0, 8000, 0, 1, "FluidHeater.png", "", false, false, 0, "FLUID_HEATER", new Object[] { "OGO", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_MV_FluidHeater.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(622, "basicmachine.fluidheater.tier.02", "Advanced Fluid Heater", 2, "Heating up your Fluids", GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes, 1, 0, 8000, 0, 1, "FluidHeater.png", "", false, false, 0, "FLUID_HEATER", new Object[] { "OGO", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_HV_FluidHeater.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(623, "basicmachine.fluidheater.tier.03", "Advanced Fluid Heater II", 3, "Heating up your Fluids", GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes, 1, 0, 8000, 0, 1, "FluidHeater.png", "", false, false, 0, "FLUID_HEATER", new Object[] { "OGO", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_EV_FluidHeater.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(624, "basicmachine.fluidheater.tier.04", "Advanced Fluid Heater III", 4, "Heating up your Fluids", GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes, 1, 0, 8000, 0, 1, "FluidHeater.png", "", false, false, 0, "FLUID_HEATER", new Object[] { "OGO", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - ItemList.Machine_IV_FluidHeater.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(625, "basicmachine.fluidheater.tier.05", "Advanced Fluid Heater IV", 5, "Heating up your Fluids", GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes, 1, 0, 8000, 0, 1, "FluidHeater.png", "", false, false, 0, "FLUID_HEATER", new Object[] { "OGO", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS }).getStackForm(1L)); - - ItemList.Machine_LV_Slicer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(631, "basicmachine.slicer.tier.01", "Basic Slicing Machine", 1, "Slice of Life", GT_Recipe.GT_Recipe_Map.sSlicerRecipes, 2, 1, 0, 0, 1, "Slicer.png", "", false, false, 0, "SLICER", new Object[] { "WCW", "PMV", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_MV_Slicer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(632, "basicmachine.slicer.tier.02", "Advanced Slicing Machine", 2, "Slice of Life", GT_Recipe.GT_Recipe_Map.sSlicerRecipes, 2, 1, 0, 0, 1, "Slicer.png", "", false, false, 0, "SLICER", new Object[] { "WCW", "PMV", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_HV_Slicer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(633, "basicmachine.slicer.tier.03", "Advanced Slicing Machine II", 3, "Slice of Life", GT_Recipe.GT_Recipe_Map.sSlicerRecipes, 2, 1, 0, 0, 1, "Slicer.png", "", false, false, 0, "SLICER", new Object[] { "WCW", "PMV", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_EV_Slicer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(634, "basicmachine.slicer.tier.04", "Advanced Slicing Machine III", 4, "Slice of Life", GT_Recipe.GT_Recipe_Map.sSlicerRecipes, 2, 1, 0, 0, 1, "Slicer.png", "", false, false, 0, "SLICER", new Object[] { "WCW", "PMV", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_IV_Slicer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(635, "basicmachine.slicer.tier.05", "Advanced Slicing Machine IV", 5, "Slice of Life", GT_Recipe.GT_Recipe_Map.sSlicerRecipes, 2, 1, 0, 0, 1, "Slicer.png", "", false, false, 0, "SLICER", new Object[] { "WCW", "PMV", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - - ItemList.Machine_LV_Sifter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(641, "basicmachine.sifter.tier.01", "Basic Sifting Machine", 1, "Stay calm and keep sifting", GT_Recipe.GT_Recipe_Map.sSifterRecipes, 1, 9, 0, 2, 5, "Sifter.png", "", false, false, 0, "SIFTER", new Object[] { "WFW", "PMP", "CFC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_MV_Sifter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(642, "basicmachine.sifter.tier.02", "Advanced Sifting Machine", 2, "Stay calm and keep sifting", GT_Recipe.GT_Recipe_Map.sSifterRecipes, 1, 9, 0, 2, 5, "Sifter.png", "", false, false, 0, "SIFTER", new Object[] { "WFW", "PMP", "CFC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_HV_Sifter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(643, "basicmachine.sifter.tier.03", "Advanced Sifting Machine II", 3, "Stay calm and keep sifting", GT_Recipe.GT_Recipe_Map.sSifterRecipes, 1, 9, 0, 2, 5, "Sifter.png", "", false, false, 0, "SIFTER", new Object[] { "WFW", "PMP", "CFC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_EV_Sifter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(644, "basicmachine.sifter.tier.04", "Advanced Sifting Machine III", 4, "Stay calm and keep sifting", GT_Recipe.GT_Recipe_Map.sSifterRecipes, 1, 9, 0, 2, 5, "Sifter.png", "", false, false, 0, "SIFTER", new Object[] { "WFW", "PMP", "CFC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - ItemList.Machine_IV_Sifter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(645, "basicmachine.sifter.tier.05", "Advanced Sifting Machine IV", 5, "Stay calm and keep sifting", GT_Recipe.GT_Recipe_Map.sSifterRecipes, 1, 9, 0, 2, 5, "Sifter.png", "", false, false, 0, "SIFTER", new Object[] { "WFW", "PMP", "CFC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE }).getStackForm(1L)); - - ItemList.Machine_LV_ArcFurnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(651, "basicmachine.arcfurnace.tier.01", "Basic Arc Furnace", 1, "", GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes, 1, 4, 16000, 0, 1, "ArcFurnace.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(202)), false, false, 0, "ARC_FURNACE", new Object[] { "WGW", "CMC", "PPP", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, Character.valueOf('G'), OrePrefixes.cell.get(Materials.Graphite) }).getStackForm(1L)); - ItemList.Machine_MV_ArcFurnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(652, "basicmachine.arcfurnace.tier.02", "Advanced Arc Furnace", 2, "", GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes, 1, 4, 16000, 0, 1, "ArcFurnace.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(202)), false, false, 0, "ARC_FURNACE", new Object[] { "WGW", "CMC", "PPP", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, Character.valueOf('G'), OrePrefixes.cell.get(Materials.Graphite) }).getStackForm(1L)); - ItemList.Machine_HV_ArcFurnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(653, "basicmachine.arcfurnace.tier.03", "Advanced Arc Furnace II", 3, "", GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes, 1, 4, 16000, 0, 1, "ArcFurnace.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(202)), false, false, 0, "ARC_FURNACE", new Object[] { "WGW", "CMC", "PPP", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, Character.valueOf('G'), OrePrefixes.cell.get(Materials.Graphite) }).getStackForm(1L)); - ItemList.Machine_EV_ArcFurnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(654, "basicmachine.arcfurnace.tier.04", "Advanced Arc Furnace III", 4, "", GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes, 1, 4, 16000, 0, 1, "ArcFurnace.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(202)), false, false, 0, "ARC_FURNACE", new Object[] { "WGW", "CMC", "PPP", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, Character.valueOf('G'), OrePrefixes.cell.get(Materials.Graphite) }).getStackForm(1L)); - ItemList.Machine_IV_ArcFurnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(655, "basicmachine.arcfurnace.tier.05", "Advanced Arc Furnace IV", 5, "", GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes, 1, 4, 16000, 0, 1, "ArcFurnace.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(202)), false, false, 0, "ARC_FURNACE", new Object[] { "WGW", "CMC", "PPP", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, Character.valueOf('G'), OrePrefixes.cell.get(Materials.Graphite) }).getStackForm(1L)); - - ItemList.Machine_LV_PlasmaArcFurnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(661, "basicmachine.plasmaarcfurnace.tier.01", "Basic Plasma Arc Furnace", 1, "", GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes, 1, 4, 1000, 0, 1, "PlasmaArcFurnace.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(202)), false, false, 0, "PLASMA_ARC_FURNACE", new Object[] { "WGW", "CMC", "TPT", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, Character.valueOf('T'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('G'), OrePrefixes.cell.get(Materials.Graphite) }).getStackForm(1L)); - ItemList.Machine_MV_PlasmaArcFurnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(662, "basicmachine.plasmaarcfurnace.tier.02", "Advanced Plasma Arc Furnace", 2, "", GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes, 1, 4, 1000, 0, 1, "PlasmaArcFurnace.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(202)), false, false, 0, "PLASMA_ARC_FURNACE", new Object[] { "WGW", "CMC", "TPT", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, Character.valueOf('T'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('G'), OrePrefixes.cell.get(Materials.Graphite) }).getStackForm(1L)); - ItemList.Machine_HV_PlasmaArcFurnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(663, "basicmachine.plasmaarcfurnace.tier.03", "Advanced Plasma Arc Furnace II", 3, "", GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes, 1, 4, 1000, 0, 1, "PlasmaArcFurnace.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(202)), false, false, 0, "PLASMA_ARC_FURNACE", new Object[] { "WGW", "CMC", "TPT", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, Character.valueOf('T'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('G'), OrePrefixes.cell.get(Materials.Graphite) }).getStackForm(1L)); - ItemList.Machine_EV_PlasmaArcFurnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(664, "basicmachine.plasmaarcfurnace.tier.04", "Advanced Plasma Arc Furnace III", 4, "", GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes, 1, 4, 1000, 0, 1, "PlasmaArcFurnace.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(202)), false, false, 0, "PLASMA_ARC_FURNACE", new Object[] { "WGW", "CMC", "TPT", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, Character.valueOf('T'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('G'), OrePrefixes.cell.get(Materials.Graphite) }).getStackForm(1L)); - ItemList.Machine_IV_PlasmaArcFurnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(665, "basicmachine.plasmaarcfurnace.tier.05", "Advanced Plasma Arc Furnace IV", 5, "", GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes, 1, 4, 1000, 0, 1, "PlasmaArcFurnace.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(202)), false, false, 0, "PLASMA_ARC_FURNACE", new Object[] { "WGW", "CMC", "TPT", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, Character.valueOf('T'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('G'), OrePrefixes.cell.get(Materials.Graphite) }).getStackForm(1L)); - - ItemList.Machine_LV_Oven.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(671, "basicmachine.e_oven.tier.01", "Basic Electric Oven", 1, "Just a Furnace with a different Design", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Oven.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_OVEN", new Object[] { "CEC", "CMC", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING }).getStackForm(1L)); - ItemList.Machine_MV_Oven.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(672, "basicmachine.e_oven.tier.02", "Advanced Electric Oven", 2, "Just a Furnace with a different Design", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Oven.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_OVEN", new Object[] { "CEC", "CMC", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING }).getStackForm(1L)); - ItemList.Machine_HV_Oven.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(673, "basicmachine.e_oven.tier.03", "Advanced Electric Oven II", 3, "Just a Furnace with a different Design", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Oven.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_OVEN", new Object[] { "CEC", "CMC", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING }).getStackForm(1L)); - ItemList.Machine_EV_Oven.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(674, "basicmachine.e_oven.tier.04", "Advanced Electric Oven III", 4, "Just a Furnace with a different Design", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Oven.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_OVEN", new Object[] { "CEC", "CMC", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING }).getStackForm(1L)); - ItemList.Machine_IV_Oven.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(675, "basicmachine.e_oven.tier.05", "Advanced Electric Oven IV", 5, "Just a Furnace with a different Design", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Oven.png", (String)GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_OVEN", new Object[] { "CEC", "CMC", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING }).getStackForm(1L)); - } - - private static void run3() - { - ItemList.Machine_Multi_BlastFurnace.set(new GT_MetaTileEntity_ElectricBlastFurnace(1000, "multimachine.blastfurnace", "Electric Blast Furnace").getStackForm(1L)); - ItemList.Machine_Multi_ImplosionCompressor.set(new GT_MetaTileEntity_ImplosionCompressor(1001, "multimachine.implosioncompressor", "Implosion Compressor").getStackForm(1L)); - ItemList.Machine_Multi_VacuumFreezer.set(new GT_MetaTileEntity_VacuumFreezer(1002, "multimachine.vacuumfreezer", "Vacuum Freezer").getStackForm(1L)); - ItemList.Machine_Multi_Furnace.set(new GT_MetaTileEntity_MultiFurnace(1003, "multimachine.multifurnace", "Multi Smelter").getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_BlastFurnace.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "FFF", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_HeatProof, Character.valueOf('F'), OreDictNames.craftingFurnace, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_VacuumFreezer.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PPP", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_FrostProof, Character.valueOf('P'), ItemList.Electric_Pump_HV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_ImplosionCompressor.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "OOO", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('O'), OrePrefixes.stone.get(Materials.Obsidian), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_Furnace.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "FFF", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_HeatProof, Character.valueOf('F'), OreDictNames.craftingFurnace, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnnealedCopper) }); - - ItemList.Machine_Multi_LargeBoiler_Bronze.set(new GT_MetaTileEntity_LargeBoiler_Bronze(1020, "multimachine.boiler.bronze", "Large Bronze Boiler").getStackForm(1L)); - ItemList.Machine_Multi_LargeBoiler_Steel.set(new GT_MetaTileEntity_LargeBoiler_Steel(1021, "multimachine.boiler.steel", "Large Steel Boiler").getStackForm(1L)); - ItemList.Machine_Multi_LargeBoiler_Titanium.set(new GT_MetaTileEntity_LargeBoiler_Titanium(1022, "multimachine.boiler.titanium", "Large Titanium Boiler").getStackForm(1L)); - ItemList.Machine_Multi_LargeBoiler_TungstenSteel.set(new GT_MetaTileEntity_LargeBoiler_TungstenSteel(1023, "multimachine.boiler.tungstensteel", "Large Tungstensteel Boiler").getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_LargeBoiler_Bronze.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WCW", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_Firebox_Bronze, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_LargeBoiler_Steel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WCW", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_Firebox_Steel, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_LargeBoiler_Titanium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WCW", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_Firebox_Titanium, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold) }); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_LargeBoiler_TungstenSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WCW", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_Firebox_TungstenSteel, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium) }); - + ItemList.Machine_LV_Assembler.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(211, "basicmachine.assembler.tier.01", "Basic Assembling Machine", 1, "Avengers, Assemble!", GT_Recipe.GT_Recipe_Map.sAssemblerRecipes, 2, 1, 16000, 0, 1, "Assembler.png", "", false, false, 0, "ASSEMBLER", new Object[]{"ACA", "VMV", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('A'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_MV_Assembler.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(212, "basicmachine.assembler.tier.02", "Advanced Assembling Machine", 2, "Avengers, Assemble!", GT_Recipe.GT_Recipe_Map.sAssemblerRecipes, 2, 1, 16000, 0, 1, "Assembler.png", "", false, false, 0, "ASSEMBLER", new Object[]{"ACA", "VMV", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('A'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_HV_Assembler.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(213, "basicmachine.assembler.tier.03", "Advanced Assembling Machine II", 3, "Avengers, Assemble!", GT_Recipe.GT_Recipe_Map.sAssemblerRecipes, 2, 1, 16000, 0, 1, "Assembler.png", "", false, false, 0, "ASSEMBLER", new Object[]{"ACA", "VMV", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('A'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_EV_Assembler.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(214, "basicmachine.assembler.tier.04", "Advanced Assembling Machine III", 4, "Avengers, Assemble!", GT_Recipe.GT_Recipe_Map.sAssemblerRecipes, 2, 1, 16000, 0, 1, "Assembler.png", "", false, false, 0, "ASSEMBLER", new Object[]{"ACA", "VMV", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('A'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_IV_Assembler.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(215, "basicmachine.assembler.tier.05", "Advanced Assembling Machine IV", 5, "Avengers, Assemble!", GT_Recipe.GT_Recipe_Map.sAssemblerRecipes, 2, 1, 16000, 0, 1, "Assembler.png", "", false, false, 0, "ASSEMBLER", new Object[]{"ACA", "VMV", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('A'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_LV_Bender.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(221, "basicmachine.bender.tier.01", "Basic Bending Machine", 1, "Boo, he's bad! We want BENDER!!!", GT_Recipe.GT_Recipe_Map.sBenderRecipes, 2, 1, 0, 0, 1, "Bender.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "BENDER", new Object[]{"PWP", "CMC", "EWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_MV_Bender.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(222, "basicmachine.bender.tier.02", "Advanced Bending Machine", 2, "Boo, he's bad! We want BENDER!!!", GT_Recipe.GT_Recipe_Map.sBenderRecipes, 2, 1, 0, 0, 1, "Bender.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "BENDER", new Object[]{"PWP", "CMC", "EWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_HV_Bender.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(223, "basicmachine.bender.tier.03", "Advanced Bending Machine II", 3, "Boo, he's bad! We want BENDER!!!", GT_Recipe.GT_Recipe_Map.sBenderRecipes, 2, 1, 0, 0, 1, "Bender.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "BENDER", new Object[]{"PWP", "CMC", "EWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_EV_Bender.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(224, "basicmachine.bender.tier.04", "Advanced Bending Machine III", 4, "Boo, he's bad! We want BENDER!!!", GT_Recipe.GT_Recipe_Map.sBenderRecipes, 2, 1, 0, 0, 1, "Bender.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "BENDER", new Object[]{"PWP", "CMC", "EWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_IV_Bender.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(225, "basicmachine.bender.tier.05", "Advanced Bending Machine IV", 5, "Boo, he's bad! We want BENDER!!!", GT_Recipe.GT_Recipe_Map.sBenderRecipes, 2, 1, 0, 0, 1, "Bender.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "BENDER", new Object[]{"PWP", "CMC", "EWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); - ItemList.Generator_Diesel_LV.set(new GT_MetaTileEntity_DieselGenerator(1110, "basicgenerator.diesel.tier.01", "Basic Diesel Generator", 1).getStackForm(1L)); - ItemList.Generator_Diesel_MV.set(new GT_MetaTileEntity_DieselGenerator(1111, "basicgenerator.diesel.tier.02", "Advanced Diesel Generator", 2).getStackForm(1L)); - ItemList.Generator_Diesel_HV.set(new GT_MetaTileEntity_DieselGenerator(1112, "basicgenerator.diesel.tier.03", "Turbo Diesel Generator", 3).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Generator_Diesel_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PCP", "EME", "GWG", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('P'), ItemList.Electric_Piston_LV, Character.valueOf('E'), ItemList.Electric_Motor_LV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin), Character.valueOf('G'), OrePrefixes.gearGt.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Generator_Diesel_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PCP", "EME", "GWG", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('P'), ItemList.Electric_Piston_MV, Character.valueOf('E'), ItemList.Electric_Motor_MV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper), Character.valueOf('G'), OrePrefixes.gearGt.get(Materials.Aluminium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Generator_Diesel_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PCP", "EME", "GWG", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('P'), ItemList.Electric_Piston_HV, Character.valueOf('E'), ItemList.Electric_Motor_HV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold), Character.valueOf('G'), OrePrefixes.gearGt.get(Materials.StainlessSteel) }); - - ItemList.Generator_Gas_Turbine_LV.set(new GT_MetaTileEntity_GasTurbine(1115, "basicgenerator.gasturbine.tier.01", "Basic Gas Turbine", 1).getStackForm(1L)); - ItemList.Generator_Gas_Turbine_MV.set(new GT_MetaTileEntity_GasTurbine(1116, "basicgenerator.gasturbine.tier.02", "Advanced Gas Turbine", 2).getStackForm(1L)); - ItemList.Generator_Gas_Turbine_HV.set(new GT_MetaTileEntity_GasTurbine(1117, "basicgenerator.gasturbine.tier.03", "Turbo Gas Turbine", 3).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Generator_Gas_Turbine_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CRC", "RMR", "EWE", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('E'), ItemList.Electric_Motor_LV, Character.valueOf('R'), OrePrefixes.rotor.get(Materials.Tin), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin) }); - GT_ModHandler.addCraftingRecipe(ItemList.Generator_Gas_Turbine_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CRC", "RMR", "EWE", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('E'), ItemList.Electric_Motor_MV, Character.valueOf('R'), OrePrefixes.rotor.get(Materials.Bronze), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper) }); - GT_ModHandler.addCraftingRecipe(ItemList.Generator_Gas_Turbine_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CRC", "RMR", "EWE", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('E'), ItemList.Electric_Motor_HV, Character.valueOf('R'), OrePrefixes.rotor.get(Materials.Steel), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold) }); - - ItemList.Generator_Steam_Turbine_LV.set(new GT_MetaTileEntity_SteamTurbine(1120, "basicgenerator.steamturbine.tier.01", "Basic Steam Turbine", 1).getStackForm(1L)); - ItemList.Generator_Steam_Turbine_MV.set(new GT_MetaTileEntity_SteamTurbine(1121, "basicgenerator.steamturbine.tier.02", "Advanced Steam Turbine", 2).getStackForm(1L)); - ItemList.Generator_Steam_Turbine_HV.set(new GT_MetaTileEntity_SteamTurbine(1122, "basicgenerator.steamturbine.tier.03", "Turbo Steam Turbine", 3).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Generator_Steam_Turbine_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PCP", "RMR", "EWE", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('E'), ItemList.Electric_Motor_LV, Character.valueOf('R'), OrePrefixes.rotor.get(Materials.Tin), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin), Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Bronze) }); - GT_ModHandler.addCraftingRecipe(ItemList.Generator_Steam_Turbine_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PCP", "RMR", "EWE", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('E'), ItemList.Electric_Motor_MV, Character.valueOf('R'), OrePrefixes.rotor.get(Materials.Bronze), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper), Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel) }); - GT_ModHandler.addCraftingRecipe(ItemList.Generator_Steam_Turbine_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PCP", "RMR", "EWE", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('E'), ItemList.Electric_Motor_HV, Character.valueOf('R'), OrePrefixes.rotor.get(Materials.Steel), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold), Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.StainlessSteel) }); - - ItemList.Generator_Naquadah_Mark_I.set(new GT_MetaTileEntity_SolidNaquadahReactor(1190, "basicgenerator.naquadah.tier.04", "Naquadah Reactor Mark I", 4).getStackForm(1L)); - ItemList.Generator_Naquadah_Mark_II.set(new GT_MetaTileEntity_SolidNaquadahReactor(1191, "basicgenerator.naquadah.tier.05", "Naquadah Reactor Mark II", 5).getStackForm(1L)); - ItemList.Generator_Naquadah_Fluid.set(new GT_MetaTileEntity_FluidNaquadahReactor(1192, "basicgenerator.naquadah.tier.06", "Naquadah Reactor Mark III", 6).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Generator_Naquadah_Mark_I.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "UCU", "FMF", "WCW", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('F'), ItemList.Field_Generator_EV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Aluminium), Character.valueOf('U'), OrePrefixes.stick.get(Materials.Uranium235) }); - GT_ModHandler.addCraftingRecipe(ItemList.Generator_Naquadah_Mark_II.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PCP", "FMF", "WCW", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('F'), ItemList.Field_Generator_IV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Tungsten), Character.valueOf('P'), OrePrefixes.stick.get(Materials.Plutonium241) }); - GT_ModHandler.addCraftingRecipe(ItemList.Generator_Naquadah_Fluid.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "NCN", "FMF", "WCW", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('F'), ItemList.Field_Generator_LuV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Osmium), Character.valueOf('N'), OrePrefixes.stick.get(Materials.NaquadahEnriched) }); - - ItemList.MagicEnergyConverter_LV.set(new GT_MetaTileEntity_MagicEnergyConverter(1123, "basicgenerator.magicenergyconverter.tier.01", "Novice Magic Energy Converter",1).getStackForm(1L)); - ItemList.MagicEnergyConverter_MV.set(new GT_MetaTileEntity_MagicEnergyConverter(1124, "basicgenerator.magicenergyconverter.tier.02", "Adept Magic Energy Converter",2).getStackForm(1L)); - ItemList.MagicEnergyConverter_HV.set(new GT_MetaTileEntity_MagicEnergyConverter(1125, "basicgenerator.magicenergyconverter.tier.03", "Master Magic Energy Converter",3).getStackForm(1L)); - - - ItemList.MagicEnergyAbsorber_LV.set(new GT_MetaTileEntity_MagicalEnergyAbsorber(1127, "basicgenerator.magicenergyabsorber.tier.01", "Novice Magic Energy Absorber",1).getStackForm(1L)); - ItemList.MagicEnergyAbsorber_MV.set(new GT_MetaTileEntity_MagicalEnergyAbsorber(1128, "basicgenerator.magicenergyabsorber.tier.02", "Adept Magic Energy Absorber",2).getStackForm(1L)); - ItemList.MagicEnergyAbsorber_HV.set(new GT_MetaTileEntity_MagicalEnergyAbsorber(1129, "basicgenerator.magicenergyabsorber.tier.03", "Master Magic Energy Absorber",3).getStackForm(1L)); - ItemList.MagicEnergyAbsorber_EV.set(new GT_MetaTileEntity_MagicalEnergyAbsorber(1130, "basicgenerator.magicenergyabsorber.tier.04", "Grandmaster Magic Energy Absorber",4).getStackForm(1L)); - if (!Loader.isModLoaded("Thaumcraft")){ - - GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyConverter_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('B'), new ItemStack(Blocks.beacon), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('T'), ItemList.Field_Generator_LV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Platinum) }); - GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('B'), new ItemStack(Blocks.beacon), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Data), Character.valueOf('T'), ItemList.Field_Generator_MV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Iridium) }); - GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyConverter_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('B'), new ItemStack(Blocks.beacon), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('T'), ItemList.Field_Generator_HV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Neutronium) }); - - GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyAbsorber_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('B'), ItemList.MagicEnergyConverter_LV.get(1L, new Object[0]), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('T'), ItemList.Field_Generator_LV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Platinum) }); - GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyAbsorber_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('B'), ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Data), Character.valueOf('T'), ItemList.Field_Generator_MV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Iridium) }); - GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyAbsorber_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('B'), ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('T'), ItemList.Field_Generator_HV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Europium) }); - GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyAbsorber_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('B'), ItemList.MagicEnergyConverter_HV.get(1L, new Object[0]), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('T'), ItemList.Field_Generator_EV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Neutronium) }); + ItemList.Machine_LV_Canner.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(231, "basicmachine.canner.tier.01", "Basic Canning Machine", 1, "Unmobile Food Canning Machine GTA4", GT_Recipe.GT_Recipe_Map.sCannerRecipes, 2, 2, 0, 0, 1, "Canner.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CANNER", new Object[]{"WPW", "CMC", "GGG", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_MV_Canner.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(232, "basicmachine.canner.tier.02", "Advanced Canning Machine", 2, "Unmobile Food Canning Machine GTA4", GT_Recipe.GT_Recipe_Map.sCannerRecipes, 2, 2, 0, 0, 1, "Canner.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CANNER", new Object[]{"WPW", "CMC", "GGG", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_HV_Canner.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(233, "basicmachine.canner.tier.03", "Advanced Canning Machine II", 3, "Unmobile Food Canning Machine GTA4", GT_Recipe.GT_Recipe_Map.sCannerRecipes, 2, 2, 0, 0, 1, "Canner.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CANNER", new Object[]{"WPW", "CMC", "GGG", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_EV_Canner.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(234, "basicmachine.canner.tier.04", "Advanced Canning Machine III", 4, "Unmobile Food Canning Machine GTA4", GT_Recipe.GT_Recipe_Map.sCannerRecipes, 2, 2, 0, 0, 1, "Canner.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CANNER", new Object[]{"WPW", "CMC", "GGG", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_IV_Canner.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(235, "basicmachine.canner.tier.05", "Advanced Canning Machine IV", 5, "Unmobile Food Canning Machine GTA4", GT_Recipe.GT_Recipe_Map.sCannerRecipes, 2, 2, 0, 0, 1, "Canner.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CANNER", new Object[]{"WPW", "CMC", "GGG", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + + ItemList.Machine_LV_Compressor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(241, "basicmachine.compressor.tier.01", "Basic Compressor", 1, "Compress-O-Matic C77", GT_Recipe.GT_Recipe_Map.sCompressorRecipes, 1, 1, 0, 0, 1, "Compressor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "COMPRESSOR", new Object[]{" C ", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_MV_Compressor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(242, "basicmachine.compressor.tier.02", "Advanced Compressor", 2, "Compress-O-Matic C77", GT_Recipe.GT_Recipe_Map.sCompressorRecipes, 1, 1, 0, 0, 1, "Compressor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "COMPRESSOR", new Object[]{" C ", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_HV_Compressor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(243, "basicmachine.compressor.tier.03", "Advanced Compressor II", 3, "Compress-O-Matic C77", GT_Recipe.GT_Recipe_Map.sCompressorRecipes, 1, 1, 0, 0, 1, "Compressor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "COMPRESSOR", new Object[]{" C ", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_EV_Compressor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(244, "basicmachine.compressor.tier.04", "Advanced Compressor III", 4, "Compress-O-Matic C77", GT_Recipe.GT_Recipe_Map.sCompressorRecipes, 1, 1, 0, 0, 1, "Compressor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "COMPRESSOR", new Object[]{" C ", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_IV_Compressor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(245, "basicmachine.compressor.tier.05", "Singularity Compressor", 5, "Compress-O-Matic C77", GT_Recipe.GT_Recipe_Map.sCompressorRecipes, 1, 1, 0, 0, 1, "Compressor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "COMPRESSOR", new Object[]{" C ", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + + ItemList.Machine_LV_Cutter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(251, "basicmachine.cutter.tier.01", "Basic Cutting Machine", 1, "Slice'N Dice", GT_Recipe.GT_Recipe_Map.sCutterRecipes, 1, 2, 1000, 0, 1, "Cutter.png", "", false, false, 0, "CUTTER", new Object[]{"WCG", "VMB", "CWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingDiamondBlade}).getStackForm(1L)); + ItemList.Machine_MV_Cutter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(252, "basicmachine.cutter.tier.02", "Advanced Cutting Machine", 2, "Slice'N Dice", GT_Recipe.GT_Recipe_Map.sCutterRecipes, 1, 2, 1000, 0, 1, "Cutter.png", "", false, false, 0, "CUTTER", new Object[]{"WCG", "VMB", "CWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingDiamondBlade}).getStackForm(1L)); + ItemList.Machine_HV_Cutter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(253, "basicmachine.cutter.tier.03", "Advanced Cutting Machine II", 3, "Slice'N Dice", GT_Recipe.GT_Recipe_Map.sCutterRecipes, 1, 2, 1000, 0, 1, "Cutter.png", "", false, false, 0, "CUTTER", new Object[]{"WCG", "VMB", "CWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingDiamondBlade}).getStackForm(1L)); + ItemList.Machine_EV_Cutter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(254, "basicmachine.cutter.tier.04", "Advanced Cutting Machine III", 4, "Slice'N Dice", GT_Recipe.GT_Recipe_Map.sCutterRecipes, 1, 2, 1000, 0, 1, "Cutter.png", "", false, false, 0, "CUTTER", new Object[]{"WCG", "VMB", "CWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingDiamondBlade}).getStackForm(1L)); + ItemList.Machine_IV_Cutter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(255, "basicmachine.cutter.tier.05", "Advanced Cutting Machine IV", 5, "Slice'N Dice", GT_Recipe.GT_Recipe_Map.sCutterRecipes, 1, 2, 1000, 0, 1, "Cutter.png", "", false, false, 0, "CUTTER", new Object[]{"WCG", "VMB", "CWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingDiamondBlade}).getStackForm(1L)); + + ItemList.Machine_LV_E_Furnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(261, "basicmachine.e_furnace.tier.01", "Basic Electric Furnace", 1, "Not like using a Commodore 64", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_FURNACE", new Object[]{"ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING}).getStackForm(1L)); + ItemList.Machine_MV_E_Furnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(262, "basicmachine.e_furnace.tier.02", "Advanced Electric Furnace", 2, "Not like using a Commodore 64", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_FURNACE", new Object[]{"ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING}).getStackForm(1L)); + ItemList.Machine_HV_E_Furnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(263, "basicmachine.e_furnace.tier.03", "Advanced Electric Furnace II", 3, "Not like using a Commodore 64", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_FURNACE", new Object[]{"ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING}).getStackForm(1L)); + ItemList.Machine_EV_E_Furnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(264, "basicmachine.e_furnace.tier.04", "Advanced Electric Furnace III", 4, "Not like using a Commodore 64", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_FURNACE", new Object[]{"ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING}).getStackForm(1L)); + ItemList.Machine_IV_E_Furnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(265, "basicmachine.e_furnace.tier.05", "Electron Exitement Processor", 5, "Not like using a Commodore 64", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_FURNACE", new Object[]{"ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING}).getStackForm(1L)); + + ItemList.Machine_LV_Extractor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(271, "basicmachine.extractor.tier.01", "Basic Extractor", 1, "Dejuicer-Device of Doom - D123", GT_Recipe.GT_Recipe_Map.sExtractorRecipes, 1, 1, 0, 0, 1, "Extractor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "EXTRACTOR", new Object[]{"GCG", "EMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_MV_Extractor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(272, "basicmachine.extractor.tier.02", "Advanced Extractor", 2, "Dejuicer-Device of Doom - D123", GT_Recipe.GT_Recipe_Map.sExtractorRecipes, 1, 1, 0, 0, 1, "Extractor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "EXTRACTOR", new Object[]{"GCG", "EMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_HV_Extractor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(273, "basicmachine.extractor.tier.03", "Advanced Extractor II", 3, "Dejuicer-Device of Doom - D123", GT_Recipe.GT_Recipe_Map.sExtractorRecipes, 1, 1, 0, 0, 1, "Extractor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "EXTRACTOR", new Object[]{"GCG", "EMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_EV_Extractor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(274, "basicmachine.extractor.tier.04", "Advanced Extractor III", 4, "Dejuicer-Device of Doom - D123", GT_Recipe.GT_Recipe_Map.sExtractorRecipes, 1, 1, 0, 0, 1, "Extractor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "EXTRACTOR", new Object[]{"GCG", "EMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_IV_Extractor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(275, "basicmachine.extractor.tier.05", "Vacuum Extractor", 5, "Dejuicer-Device of Doom - D123", GT_Recipe.GT_Recipe_Map.sExtractorRecipes, 1, 1, 0, 0, 1, "Extractor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "EXTRACTOR", new Object[]{"GCG", "EMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + + ItemList.Machine_LV_Extruder.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(281, "basicmachine.extruder.tier.01", "Basic Extruder", 1, "Universal Machine for Metal Working", GT_Recipe.GT_Recipe_Map.sExtruderRecipes, 2, 1, 0, 0, 1, "Extruder.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(208)), false, false, 0, "EXTRUDER", new Object[]{"CCE", "XMP", "CCE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('X'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE}).getStackForm(1L)); + ItemList.Machine_MV_Extruder.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(282, "basicmachine.extruder.tier.02", "Advanced Extruder", 2, "Universal Machine for Metal Working", GT_Recipe.GT_Recipe_Map.sExtruderRecipes, 2, 1, 0, 0, 1, "Extruder.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(208)), false, false, 0, "EXTRUDER", new Object[]{"CCE", "XMP", "CCE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('X'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE}).getStackForm(1L)); + ItemList.Machine_HV_Extruder.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(283, "basicmachine.extruder.tier.03", "Advanced Extruder II", 3, "Universal Machine for Metal Working", GT_Recipe.GT_Recipe_Map.sExtruderRecipes, 2, 1, 0, 0, 1, "Extruder.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(208)), false, false, 0, "EXTRUDER", new Object[]{"CCE", "XMP", "CCE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('X'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE}).getStackForm(1L)); + ItemList.Machine_EV_Extruder.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(284, "basicmachine.extruder.tier.04", "Advanced Extruder III", 4, "Universal Machine for Metal Working", GT_Recipe.GT_Recipe_Map.sExtruderRecipes, 2, 1, 0, 0, 1, "Extruder.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(208)), false, false, 0, "EXTRUDER", new Object[]{"CCE", "XMP", "CCE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('X'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE}).getStackForm(1L)); + ItemList.Machine_IV_Extruder.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(285, "basicmachine.extruder.tier.05", "Advanced Extruder IV", 5, "Universal Machine for Metal Working", GT_Recipe.GT_Recipe_Map.sExtruderRecipes, 2, 1, 0, 0, 1, "Extruder.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(208)), false, false, 0, "EXTRUDER", new Object[]{"CCE", "XMP", "CCE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('X'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE}).getStackForm(1L)); + + ItemList.Machine_LV_Lathe.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(291, "basicmachine.lathe.tier.01", "Basic Lathe", 1, "Produces Rods more efficiently", GT_Recipe.GT_Recipe_Map.sLatheRecipes, 1, 2, 0, 0, 1, "Lathe.png", "", false, false, 0, "LATHE", new Object[]{"WCW", "EMD", "CWP", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('D'), OrePrefixes.gem.get(Materials.Diamond)}).getStackForm(1L)); + ItemList.Machine_MV_Lathe.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(292, "basicmachine.lathe.tier.02", "Advanced Lathe", 2, "Produces Rods more efficiently", GT_Recipe.GT_Recipe_Map.sLatheRecipes, 1, 2, 0, 0, 1, "Lathe.png", "", false, false, 0, "LATHE", new Object[]{"WCW", "EMD", "CWP", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('D'), OreDictNames.craftingIndustrialDiamond}).getStackForm(1L)); + ItemList.Machine_HV_Lathe.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(293, "basicmachine.lathe.tier.03", "Advanced Lathe II", 3, "Produces Rods more efficiently", GT_Recipe.GT_Recipe_Map.sLatheRecipes, 1, 2, 0, 0, 1, "Lathe.png", "", false, false, 0, "LATHE", new Object[]{"WCW", "EMD", "CWP", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('D'), OreDictNames.craftingIndustrialDiamond}).getStackForm(1L)); + ItemList.Machine_EV_Lathe.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(294, "basicmachine.lathe.tier.04", "Advanced Lathe III", 4, "Produces Rods more efficiently", GT_Recipe.GT_Recipe_Map.sLatheRecipes, 1, 2, 0, 0, 1, "Lathe.png", "", false, false, 0, "LATHE", new Object[]{"WCW", "EMD", "CWP", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('D'), OreDictNames.craftingIndustrialDiamond}).getStackForm(1L)); + ItemList.Machine_IV_Lathe.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(295, "basicmachine.lathe.tier.05", "Advanced Lathe IV", 5, "Produces Rods more efficiently", GT_Recipe.GT_Recipe_Map.sLatheRecipes, 1, 2, 0, 0, 1, "Lathe.png", "", false, false, 0, "LATHE", new Object[]{"WCW", "EMD", "CWP", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('D'), OreDictNames.craftingIndustrialDiamond}).getStackForm(1L)); + + ItemList.Machine_LV_Macerator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(301, "basicmachine.macerator.tier.01", "Basic Macerator", 1, "Schreddering your Ores", GT_Recipe.GT_Recipe_Map.sMaceratorRecipes, 1, 1, 0, 0, 1, "Macerator1.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(201)), false, false, 1, "MACERATOR", new Object[]{"PEG", "WWM", "CCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OrePrefixes.gem.get(Materials.Diamond)}).getStackForm(1L)); + ItemList.Machine_MV_Macerator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(302, "basicmachine.macerator.tier.02", "Advanced Macerator", 2, "Schreddering your Ores", GT_Recipe.GT_Recipe_Map.sMaceratorRecipes, 1, 1, 0, 0, 1, "Macerator1.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(201)), false, false, 1, "MACERATOR", new Object[]{"PEG", "WWM", "CCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OreDictNames.craftingIndustrialDiamond}).getStackForm(1L)); + ItemList.Machine_HV_Macerator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(303, "basicmachine.macerator.tier.03", "Universal Macerator", 3, "Schreddering your Ores with Byproducts", GT_Recipe.GT_Recipe_Map.sMaceratorRecipes, 1, 2, 0, 0, 1, "Macerator2.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(201)), false, false, 1, "PULVERIZER", new Object[]{"PEG", "WWM", "CCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OreDictNames.craftingGrinder}).getStackForm(1L)); + ItemList.Machine_EV_Macerator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(304, "basicmachine.macerator.tier.04", "Universal Pulverizer", 4, "Schreddering your Ores with Byproducts", GT_Recipe.GT_Recipe_Map.sMaceratorRecipes, 1, 3, 0, 0, 1, "Macerator3.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(201)), false, false, 1, "PULVERIZER", new Object[]{"PEG", "WWM", "CCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OreDictNames.craftingGrinder}).getStackForm(1L)); + ItemList.Machine_IV_Macerator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(305, "basicmachine.macerator.tier.05", "Blend-O-Matic 9001", 5, "Schreddering your Ores with Byproducts", GT_Recipe.GT_Recipe_Map.sMaceratorRecipes, 1, 4, 0, 0, 1, "Macerator4.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(201)), false, false, 1, "PULVERIZER", new Object[]{"PEG", "WWM", "CCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OreDictNames.craftingGrinder}).getStackForm(1L)); + + ItemList.Machine_LV_Microwave.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(311, "basicmachine.microwave.tier.01", "Basic Microwave", 1, "Did you really read the instruction Manual?", GT_Recipe.GT_Recipe_Map.sMicrowaveRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "MICROWAVE", new Object[]{"LWC", "LMR", "LEC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('L'), OrePrefixes.plate.get(Materials.Lead)}).getStackForm(1L)); + ItemList.Machine_MV_Microwave.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(312, "basicmachine.microwave.tier.02", "Advanced Microwave", 2, "Did you really read the instruction Manual?", GT_Recipe.GT_Recipe_Map.sMicrowaveRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "MICROWAVE", new Object[]{"LWC", "LMR", "LEC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('L'), OrePrefixes.plate.get(Materials.Lead)}).getStackForm(1L)); + ItemList.Machine_HV_Microwave.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(313, "basicmachine.microwave.tier.03", "Advanced Microwave II", 3, "Did you really read the instruction Manual?", GT_Recipe.GT_Recipe_Map.sMicrowaveRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "MICROWAVE", new Object[]{"LWC", "LMR", "LEC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('L'), OrePrefixes.plate.get(Materials.Lead)}).getStackForm(1L)); + ItemList.Machine_EV_Microwave.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(314, "basicmachine.microwave.tier.04", "Advanced Microwave III", 4, "Did you really read the instruction Manual?", GT_Recipe.GT_Recipe_Map.sMicrowaveRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "MICROWAVE", new Object[]{"LWC", "LMR", "LEC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('L'), OrePrefixes.plate.get(Materials.Lead)}).getStackForm(1L)); + ItemList.Machine_IV_Microwave.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(315, "basicmachine.microwave.tier.05", "Advanced Microwave IV", 5, "Did you really read the instruction Manual?", GT_Recipe.GT_Recipe_Map.sMicrowaveRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "MICROWAVE", new Object[]{"LWC", "LMR", "LEC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('L'), OrePrefixes.plate.get(Materials.Lead)}).getStackForm(1L)); + + ItemList.Machine_LV_Printer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(321, "basicmachine.printer.tier.01", "Basic Printer", 1, "It can copy Books and paint Stuff", GT_Recipe.GT_Recipe_Map.sPrinterRecipes, 1, 1, 16000, 0, 1, "Printer.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 1, "PRINTER", new Object[]{"EWE", "CMC", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_MV_Printer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(322, "basicmachine.printer.tier.02", "Advanced Printer", 2, "It can copy Books and paint Stuff", GT_Recipe.GT_Recipe_Map.sPrinterRecipes, 1, 1, 16000, 0, 1, "Printer.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 1, "PRINTER", new Object[]{"EWE", "CMC", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_HV_Printer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(323, "basicmachine.printer.tier.03", "Advanced Printer II", 3, "It can copy Books and paint Stuff", GT_Recipe.GT_Recipe_Map.sPrinterRecipes, 1, 1, 16000, 0, 1, "Printer.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 1, "PRINTER", new Object[]{"EWE", "CMC", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_EV_Printer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(324, "basicmachine.printer.tier.04", "Advanced Printer III", 4, "It can copy Books and paint Stuff", GT_Recipe.GT_Recipe_Map.sPrinterRecipes, 1, 1, 16000, 0, 1, "Printer.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 1, "PRINTER", new Object[]{"EWE", "CMC", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_IV_Printer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(325, "basicmachine.printer.tier.05", "Advanced Printer IV", 5, "It can copy Books and paint Stuff", GT_Recipe.GT_Recipe_Map.sPrinterRecipes, 1, 1, 16000, 0, 1, "Printer.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 1, "PRINTER", new Object[]{"EWE", "CMC", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + + ItemList.Machine_LV_Recycler.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(331, "basicmachine.recycler.tier.01", "Basic Recycler", 1, "Compress, burn, obliterate and filter EVERYTHING", GT_Recipe.GT_Recipe_Map.sRecyclerRecipes, 1, 1, 0, 0, 1, "Recycler.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(204)), false, false, 0, "RECYCLER", new Object[]{"GCG", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OrePrefixes.dust.get(Materials.Glowstone)}).getStackForm(1L)); + ItemList.Machine_MV_Recycler.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(332, "basicmachine.recycler.tier.02", "Advanced Recycler", 2, "Compress, burn, obliterate and filter EVERYTHING", GT_Recipe.GT_Recipe_Map.sRecyclerRecipes, 1, 1, 0, 0, 1, "Recycler.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(204)), false, false, 0, "RECYCLER", new Object[]{"GCG", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OrePrefixes.dust.get(Materials.Glowstone)}).getStackForm(1L)); + ItemList.Machine_HV_Recycler.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(333, "basicmachine.recycler.tier.03", "Advanced Recycler II", 3, "Compress, burn, obliterate and filter EVERYTHING", GT_Recipe.GT_Recipe_Map.sRecyclerRecipes, 1, 1, 0, 0, 1, "Recycler.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(204)), false, false, 0, "RECYCLER", new Object[]{"GCG", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OrePrefixes.dust.get(Materials.Glowstone)}).getStackForm(1L)); + ItemList.Machine_EV_Recycler.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(334, "basicmachine.recycler.tier.04", "Advanced Recycler III", 4, "Compress, burn, obliterate and filter EVERYTHING", GT_Recipe.GT_Recipe_Map.sRecyclerRecipes, 1, 1, 0, 0, 1, "Recycler.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(204)), false, false, 0, "RECYCLER", new Object[]{"GCG", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OrePrefixes.dust.get(Materials.Glowstone)}).getStackForm(1L)); + ItemList.Machine_IV_Recycler.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(335, "basicmachine.recycler.tier.05", "The Oblitterator", 5, "Compress, burn, obliterate and filter EVERYTHING", GT_Recipe.GT_Recipe_Map.sRecyclerRecipes, 1, 1, 0, 0, 1, "Recycler.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(204)), false, false, 0, "RECYCLER", new Object[]{"GCG", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OrePrefixes.dust.get(Materials.Glowstone)}).getStackForm(1L)); + + ItemList.Machine_LV_Scanner.set(new GT_MetaTileEntity_Scanner(341, "basicmachine.scanner.tier.01", "Basic Scanner", 1).getStackForm(1L)); + ItemList.Machine_MV_Scanner.set(new GT_MetaTileEntity_Scanner(342, "basicmachine.scanner.tier.02", "Advanced Scanner", 2).getStackForm(1L)); + ItemList.Machine_HV_Scanner.set(new GT_MetaTileEntity_Scanner(343, "basicmachine.scanner.tier.03", "Advanced Scanner II", 3).getStackForm(1L)); + ItemList.Machine_EV_Scanner.set(new GT_MetaTileEntity_Scanner(344, "basicmachine.scanner.tier.04", "Advanced Scanner III", 4).getStackForm(1L)); + ItemList.Machine_IV_Scanner.set(new GT_MetaTileEntity_Scanner(345, "basicmachine.scanner.tier.05", "Advanced Scanner IV", 5).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Machine_LV_Scanner.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CTC", "WMW", "CRC", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('T'), ItemList.Emitter_LV, Character.valueOf('R'), ItemList.Sensor_LV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_MV_Scanner.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CTC", "WMW", "CRC", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('T'), ItemList.Emitter_MV, Character.valueOf('R'), ItemList.Sensor_MV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_HV_Scanner.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CTC", "WMW", "CRC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('T'), ItemList.Emitter_HV, Character.valueOf('R'), ItemList.Sensor_HV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Data), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_EV_Scanner.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CTC", "WMW", "CRC", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('T'), ItemList.Emitter_EV, Character.valueOf('R'), ItemList.Sensor_EV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_IV_Scanner.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CTC", "WMW", "CRC", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('T'), ItemList.Emitter_IV, Character.valueOf('R'), ItemList.Sensor_IV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Ultimate), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tungsten)}); + + ItemList.Machine_LV_Wiremill.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(351, "basicmachine.wiremill.tier.01", "Basic Wiremill", 1, "Produces Wires more efficiently", GT_Recipe.GT_Recipe_Map.sWiremillRecipes, 1, 1, 0, 0, 1, "Wiremill.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(204)), false, false, 0, "WIREMILL", new Object[]{"EWE", "CMC", "EWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_MV_Wiremill.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(352, "basicmachine.wiremill.tier.02", "Advanced Wiremill", 2, "Produces Wires more efficiently", GT_Recipe.GT_Recipe_Map.sWiremillRecipes, 1, 1, 0, 0, 1, "Wiremill.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(204)), false, false, 0, "WIREMILL", new Object[]{"EWE", "CMC", "EWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_HV_Wiremill.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(353, "basicmachine.wiremill.tier.03", "Advanced Wiremill II", 3, "Produces Wires more efficiently", GT_Recipe.GT_Recipe_Map.sWiremillRecipes, 1, 1, 0, 0, 1, "Wiremill.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(204)), false, false, 0, "WIREMILL", new Object[]{"EWE", "CMC", "EWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_EV_Wiremill.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(354, "basicmachine.wiremill.tier.04", "Advanced Wiremill III", 4, "Produces Wires more efficiently", GT_Recipe.GT_Recipe_Map.sWiremillRecipes, 1, 1, 0, 0, 1, "Wiremill.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(204)), false, false, 0, "WIREMILL", new Object[]{"EWE", "CMC", "EWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_IV_Wiremill.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(355, "basicmachine.wiremill.tier.05", "Advanced Wiremill IV", 5, "Produces Wires more efficiently", GT_Recipe.GT_Recipe_Map.sWiremillRecipes, 1, 1, 0, 0, 1, "Wiremill.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(204)), false, false, 0, "WIREMILL", new Object[]{"EWE", "CMC", "EWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + + ItemList.Machine_LV_Centrifuge.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(361, "basicmachine.centrifuge.tier.01", "Basic Centrifuge", 1, "Separating Molecules", GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes, 2, 6, 64000, 0, 1, "Centrifuge.png", "", false, false, 0, "CENTRIFUGE", new Object[]{"CEC", "WMW", "CEC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_MV_Centrifuge.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(362, "basicmachine.centrifuge.tier.02", "Advanced Centrifuge", 2, "Separating Molecules", GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes, 2, 6, 64000, 0, 1, "Centrifuge.png", "", false, false, 0, "CENTRIFUGE", new Object[]{"CEC", "WMW", "CEC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_HV_Centrifuge.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(363, "basicmachine.centrifuge.tier.03", "Turbo Centrifuge", 3, "Separating Molecules", GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes, 2, 6, 64000, 0, 1, "Centrifuge.png", "", false, false, 0, "CENTRIFUGE", new Object[]{"CEC", "WMW", "CEC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_EV_Centrifuge.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(364, "basicmachine.centrifuge.tier.04", "Molecular Separator", 4, "Separating Molecules", GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes, 2, 6, 64000, 0, 1, "Centrifuge.png", "", false, false, 0, "CENTRIFUGE", new Object[]{"CEC", "WMW", "CEC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_IV_Centrifuge.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(365, "basicmachine.centrifuge.tier.05", "Molecular Cyclone", 5, "Separating Molecules", GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes, 2, 6, 64000, 0, 1, "Centrifuge.png", "", false, false, 0, "CENTRIFUGE", new Object[]{"CEC", "WMW", "CEC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + + ItemList.Machine_LV_Electrolyzer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(371, "basicmachine.electrolyzer.tier.01", "Basic Electrolyzer", 1, "Electrolyzing Molecules", GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes, 2, 6, 64000, 0, 1, "Electrolyzer.png", "", false, false, 0, "ELECTROLYZER", new Object[]{"IGI", "IMI", "CWC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('I'), OrePrefixes.wireGt01.get(Materials.Gold), Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_MV_Electrolyzer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(372, "basicmachine.electrolyzer.tier.02", "Advanced Electrolyzer", 2, "Electrolyzing Molecules", GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes, 2, 6, 64000, 0, 1, "Electrolyzer.png", "", false, false, 0, "ELECTROLYZER", new Object[]{"IGI", "IMI", "CWC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('I'), OrePrefixes.wireGt01.get(Materials.Silver), Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_HV_Electrolyzer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(373, "basicmachine.electrolyzer.tier.03", "Advanced Electrolyzer II", 3, "Electrolyzing Molecules", GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes, 2, 6, 64000, 0, 1, "Electrolyzer.png", "", false, false, 0, "ELECTROLYZER", new Object[]{"IGI", "IMI", "CWC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('I'), OrePrefixes.wireGt01.get(Materials.Electrum), Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_EV_Electrolyzer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(374, "basicmachine.electrolyzer.tier.04", "Advanced Electrolyzer III", 4, "Electrolyzing Molecules", GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes, 2, 6, 64000, 0, 1, "Electrolyzer.png", "", false, false, 0, "ELECTROLYZER", new Object[]{"IGI", "IMI", "CWC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('I'), OrePrefixes.wireGt01.get(Materials.Platinum), Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_IV_Electrolyzer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(375, "basicmachine.electrolyzer.tier.05", "Molecular Disintegrator E-4908", 5, "Electrolyzing Molecules", GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes, 2, 6, 64000, 0, 1, "Electrolyzer.png", "", false, false, 0, "ELECTROLYZER", new Object[]{"IGI", "IMI", "CWC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('I'), OrePrefixes.wireGt01.get(Materials.Osmium), Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + + ItemList.Machine_LV_ThermalCentrifuge.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(381, "basicmachine.thermalcentrifuge.tier.01", "Basic Thermal Centrifuge", 1, "Separating Ores more precisely", GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes, 1, 3, 0, 0, 1, "ThermalCentrifuge.png", "", false, false, 0, "THERMAL_CENTRIFUGE", new Object[]{"CEC", "OMO", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE}).getStackForm(1L)); + ItemList.Machine_MV_ThermalCentrifuge.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(382, "basicmachine.thermalcentrifuge.tier.02", "Advanced Thermal Centrifuge", 2, "Separating Ores more precisely", GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes, 1, 3, 0, 0, 1, "ThermalCentrifuge.png", "", false, false, 0, "THERMAL_CENTRIFUGE", new Object[]{"CEC", "OMO", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE}).getStackForm(1L)); + ItemList.Machine_HV_ThermalCentrifuge.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(383, "basicmachine.thermalcentrifuge.tier.03", "Advanced Thermal Centrifuge II", 3, "Separating Ores more precisely", GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes, 1, 3, 0, 0, 1, "ThermalCentrifuge.png", "", false, false, 0, "THERMAL_CENTRIFUGE", new Object[]{"CEC", "OMO", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE}).getStackForm(1L)); + ItemList.Machine_EV_ThermalCentrifuge.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(384, "basicmachine.thermalcentrifuge.tier.04", "Advanced Thermal Centrifuge III", 4, "Separating Ores more precisely", GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes, 1, 3, 0, 0, 1, "ThermalCentrifuge.png", "", false, false, 0, "THERMAL_CENTRIFUGE", new Object[]{"CEC", "OMO", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE}).getStackForm(1L)); + ItemList.Machine_IV_ThermalCentrifuge.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(385, "basicmachine.thermalcentrifuge.tier.05", "Blaze Sweatshop T-6350", 5, "Separating Ores more precisely", GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes, 1, 3, 0, 0, 1, "ThermalCentrifuge.png", "", false, false, 0, "THERMAL_CENTRIFUGE", new Object[]{"CEC", "OMO", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE}).getStackForm(1L)); + + ItemList.Machine_LV_OreWasher.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(391, "basicmachine.orewasher.tier.01", "Basic Ore Washing Plant", 1, "Getting more Byproducts from your Ores", GT_Recipe.GT_Recipe_Map.sOreWasherRecipes, 1, 3, 16000, 0, 1, "OreWasher.png", "", false, false, 0, "ORE_WASHER", new Object[]{"RGR", "CEC", "WMW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_MV_OreWasher.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(392, "basicmachine.orewasher.tier.02", "Advanced Ore Washing Plant", 2, "Getting more Byproducts from your Ores", GT_Recipe.GT_Recipe_Map.sOreWasherRecipes, 1, 3, 16000, 0, 1, "OreWasher.png", "", false, false, 0, "ORE_WASHER", new Object[]{"RGR", "CEC", "WMW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_HV_OreWasher.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(393, "basicmachine.orewasher.tier.03", "Advanced Ore Washing Plant II", 3, "Getting more Byproducts from your Ores", GT_Recipe.GT_Recipe_Map.sOreWasherRecipes, 1, 3, 16000, 0, 1, "OreWasher.png", "", false, false, 0, "ORE_WASHER", new Object[]{"RGR", "CEC", "WMW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_EV_OreWasher.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(394, "basicmachine.orewasher.tier.04", "Advanced Ore Washing Plant III", 4, "Getting more Byproducts from your Ores", GT_Recipe.GT_Recipe_Map.sOreWasherRecipes, 1, 3, 16000, 0, 1, "OreWasher.png", "", false, false, 0, "ORE_WASHER", new Object[]{"RGR", "CEC", "WMW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_IV_OreWasher.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(395, "basicmachine.orewasher.tier.05", "Repurposed Laundry-Washer I-360", 5, "Getting more Byproducts from your Ores", GT_Recipe.GT_Recipe_Map.sOreWasherRecipes, 1, 3, 16000, 0, 1, "OreWasher.png", "", false, false, 0, "ORE_WASHER", new Object[]{"RGR", "CEC", "WMW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + + ItemList.Machine_LV_Boxinator.set(new GT_MetaTileEntity_Boxinator(401, "basicmachine.boxinator.tier.01", "Basic Packager", 1).getStackForm(1L)); + ItemList.Machine_MV_Boxinator.set(new GT_MetaTileEntity_Boxinator(402, "basicmachine.boxinator.tier.02", "Advanced Packager", 2).getStackForm(1L)); + ItemList.Machine_HV_Boxinator.set(new GT_MetaTileEntity_Boxinator(403, "basicmachine.boxinator.tier.03", "Advanced Packager II", 3).getStackForm(1L)); + ItemList.Machine_EV_Boxinator.set(new GT_MetaTileEntity_Boxinator(404, "basicmachine.boxinator.tier.04", "Advanced Packager III", 4).getStackForm(1L)); + ItemList.Machine_IV_Boxinator.set(new GT_MetaTileEntity_Boxinator(405, "basicmachine.boxinator.tier.05", "Boxinator", 5).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Machine_LV_Boxinator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"BCB", "RMV", "WCW", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('R'), ItemList.Robot_Arm_LV, Character.valueOf('V'), ItemList.Conveyor_Module_LV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin), Character.valueOf('B'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_MV_Boxinator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"BCB", "RMV", "WCW", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('R'), ItemList.Robot_Arm_MV, Character.valueOf('V'), ItemList.Conveyor_Module_MV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper), Character.valueOf('B'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_HV_Boxinator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"BCB", "RMV", "WCW", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('R'), ItemList.Robot_Arm_HV, Character.valueOf('V'), ItemList.Conveyor_Module_HV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold), Character.valueOf('B'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_EV_Boxinator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"BCB", "RMV", "WCW", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('R'), ItemList.Robot_Arm_EV, Character.valueOf('V'), ItemList.Conveyor_Module_EV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium), Character.valueOf('B'), OreDictNames.craftingChest}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_IV_Boxinator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"BCB", "RMV", "WCW", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('R'), ItemList.Robot_Arm_IV, Character.valueOf('V'), ItemList.Conveyor_Module_IV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tungsten), Character.valueOf('B'), OreDictNames.craftingChest}); + + ItemList.Machine_LV_Unboxinator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(411, "basicmachine.unboxinator.tier.01", "Basic Unpackager", 1, "Grabs things out of Boxes", GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes, 1, 2, 0, 0, 1, "Unpackager.png", "", false, false, 0, "UNBOXINATOR", new Object[]{"BCB", "VMR", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('B'), OreDictNames.craftingChest}).getStackForm(1L)); + ItemList.Machine_MV_Unboxinator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(412, "basicmachine.unboxinator.tier.02", "Advanced Unpackager", 2, "Grabs things out of Boxes", GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes, 1, 2, 0, 0, 1, "Unpackager.png", "", false, false, 0, "UNBOXINATOR", new Object[]{"BCB", "VMR", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('B'), OreDictNames.craftingChest}).getStackForm(1L)); + ItemList.Machine_HV_Unboxinator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(413, "basicmachine.unboxinator.tier.03", "Advanced Unpackager II", 3, "Grabs things out of Boxes", GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes, 1, 2, 0, 0, 1, "Unpackager.png", "", false, false, 0, "UNBOXINATOR", new Object[]{"BCB", "VMR", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('B'), OreDictNames.craftingChest}).getStackForm(1L)); + ItemList.Machine_EV_Unboxinator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(414, "basicmachine.unboxinator.tier.04", "Advanced Unpackager III", 4, "Grabs things out of Boxes", GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes, 1, 2, 0, 0, 1, "Unpackager.png", "", false, false, 0, "UNBOXINATOR", new Object[]{"BCB", "VMR", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('B'), OreDictNames.craftingChest}).getStackForm(1L)); + ItemList.Machine_IV_Unboxinator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(415, "basicmachine.unboxinator.tier.05", "Unboxinator", 5, "Grabs things out of Boxes", GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes, 1, 2, 0, 0, 1, "Unpackager.png", "", false, false, 0, "UNBOXINATOR", new Object[]{"BCB", "VMR", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('B'), OreDictNames.craftingChest}).getStackForm(1L)); + + ItemList.Machine_LV_ChemicalReactor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(421, "basicmachine.chemicalreactor.tier.01", "Basic Chemical Reactor", 1, "Letting Chemicals react with each other", GT_Recipe.GT_Recipe_Map.sChemicalRecipes, 2, 1, 16000, 0, 1, "ChemicalReactor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CHEMICAL_REACTOR", new Object[]{"GRG", "WEW", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_MV_ChemicalReactor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(422, "basicmachine.chemicalreactor.tier.02", "Advanced Chemical Reactor", 2, "Letting Chemicals react with each other", GT_Recipe.GT_Recipe_Map.sChemicalRecipes, 2, 1, 16000, 0, 1, "ChemicalReactor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CHEMICAL_REACTOR", new Object[]{"GRG", "WEW", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_HV_ChemicalReactor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(423, "basicmachine.chemicalreactor.tier.03", "Advanced Chemical Reactor II", 3, "Letting Chemicals react with each other", GT_Recipe.GT_Recipe_Map.sChemicalRecipes, 2, 1, 16000, 0, 1, "ChemicalReactor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CHEMICAL_REACTOR", new Object[]{"GRG", "WEW", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_EV_ChemicalReactor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(424, "basicmachine.chemicalreactor.tier.04", "Advanced Chemical Reactor III", 4, "Letting Chemicals react with each other", GT_Recipe.GT_Recipe_Map.sChemicalRecipes, 2, 1, 16000, 0, 1, "ChemicalReactor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CHEMICAL_REACTOR", new Object[]{"GRG", "WEW", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_IV_ChemicalReactor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(425, "basicmachine.chemicalreactor.tier.05", "Advanced Chemical Reactor IV", 5, "Letting Chemicals react with each other", GT_Recipe.GT_Recipe_Map.sChemicalRecipes, 2, 1, 16000, 0, 1, "ChemicalReactor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CHEMICAL_REACTOR", new Object[]{"GRG", "WEW", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + + ItemList.Machine_LV_FluidCanner.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(431, "basicmachine.fluidcanner.tier.01", "Basic Fluid Canner", 1, "Puts Fluids into and out of Containers", GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes, 1, 1, 16000, 0, 1, "FluidCanner.png", "", true, false, 0, "FLUID_CANNER", new Object[]{"GCG", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_MV_FluidCanner.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(432, "basicmachine.fluidcanner.tier.02", "Advanced Fluid Canner", 2, "Puts Fluids into and out of Containers", GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes, 1, 1, 32000, 0, 1, "FluidCanner.png", "", true, false, 0, "FLUID_CANNER", new Object[]{"GCG", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_HV_FluidCanner.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(433, "basicmachine.fluidcanner.tier.03", "Quick Fluid Canner", 3, "Puts Fluids into and out of Containers", GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes, 1, 1, 48000, 0, 1, "FluidCanner.png", "", true, false, 0, "FLUID_CANNER", new Object[]{"GCG", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_EV_FluidCanner.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(434, "basicmachine.fluidcanner.tier.04", "Turbo Fluid Canner", 4, "Puts Fluids into and out of Containers", GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes, 1, 1, 64000, 0, 1, "FluidCanner.png", "", true, false, 0, "FLUID_CANNER", new Object[]{"GCG", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_IV_FluidCanner.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(435, "basicmachine.fluidcanner.tier.05", "Instant Fluid Canner", 5, "Puts Fluids into and out of Containers", GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes, 1, 1, 80000, 0, 1, "FluidCanner.png", "", true, false, 0, "FLUID_CANNER", new Object[]{"GCG", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + + ItemList.Machine_LV_RockBreaker.set(new GT_MetaTileEntity_RockBreaker(441, "basicmachine.rockbreaker.tier.01", "Basic Rock Breaker", 1).getStackForm(1L)); + ItemList.Machine_MV_RockBreaker.set(new GT_MetaTileEntity_RockBreaker(442, "basicmachine.rockbreaker.tier.02", "Advanced Rock Breaker", 2).getStackForm(1L)); + ItemList.Machine_HV_RockBreaker.set(new GT_MetaTileEntity_RockBreaker(443, "basicmachine.rockbreaker.tier.03", "Advanced Rock Breaker II", 3).getStackForm(1L)); + ItemList.Machine_EV_RockBreaker.set(new GT_MetaTileEntity_RockBreaker(444, "basicmachine.rockbreaker.tier.04", "Advanced Rock Breaker III", 4).getStackForm(1L)); + ItemList.Machine_IV_RockBreaker.set(new GT_MetaTileEntity_RockBreaker(445, "basicmachine.rockbreaker.tier.05", "Cryogenic Magma Solidifier R-8200", 5).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Machine_LV_RockBreaker.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PED", "WMW", "GGG", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('D'), OreDictNames.craftingGrinder, Character.valueOf('E'), ItemList.Electric_Motor_LV, Character.valueOf('P'), ItemList.Electric_Piston_LV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_MV_RockBreaker.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PED", "WMW", "GGG", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('D'), OreDictNames.craftingGrinder, Character.valueOf('E'), ItemList.Electric_Motor_MV, Character.valueOf('P'), ItemList.Electric_Piston_MV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_HV_RockBreaker.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PED", "WMW", "GGG", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('D'), OreDictNames.craftingGrinder, Character.valueOf('E'), ItemList.Electric_Motor_HV, Character.valueOf('P'), ItemList.Electric_Piston_HV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_EV_RockBreaker.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PED", "WMW", "GGG", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('D'), OreDictNames.craftingGrinder, Character.valueOf('E'), ItemList.Electric_Motor_EV, Character.valueOf('P'), ItemList.Electric_Piston_EV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_IV_RockBreaker.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PED", "WMW", "GGG", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('D'), OreDictNames.craftingGrinder, Character.valueOf('E'), ItemList.Electric_Motor_IV, Character.valueOf('P'), ItemList.Electric_Piston_IV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tungsten), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + + ItemList.Machine_LV_Disassembler.set(new GT_MetaTileEntity_Disassembler(451, "basicmachine.disassembler.tier.01", "Basic Disassembler", 1).getStackForm(1L)); + ItemList.Machine_MV_Disassembler.set(new GT_MetaTileEntity_Disassembler(452, "basicmachine.disassembler.tier.02", "Advanced Disassembler", 2).getStackForm(1L)); + ItemList.Machine_HV_Disassembler.set(new GT_MetaTileEntity_Disassembler(453, "basicmachine.disassembler.tier.03", "Advanced Disassembler II", 3).getStackForm(1L)); + ItemList.Machine_EV_Disassembler.set(new GT_MetaTileEntity_Disassembler(454, "basicmachine.disassembler.tier.04", "Advanced Disassembler III", 4).getStackForm(1L)); + ItemList.Machine_IV_Disassembler.set(new GT_MetaTileEntity_Disassembler(455, "basicmachine.disassembler.tier.05", "Advanced Disassembler IV", 5).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Machine_LV_Disassembler.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"ACA", "WMW", "ACA", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('A'), ItemList.Robot_Arm_LV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_MV_Disassembler.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"ACA", "WMW", "ACA", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('A'), ItemList.Robot_Arm_MV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_HV_Disassembler.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"ACA", "WMW", "ACA", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('A'), ItemList.Robot_Arm_HV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_EV_Disassembler.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"ACA", "WMW", "ACA", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('A'), ItemList.Robot_Arm_EV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_IV_Disassembler.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"ACA", "WMW", "ACA", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('A'), ItemList.Robot_Arm_IV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tungsten)}); + + ItemList.Machine_LV_Massfab.set(new GT_MetaTileEntity_Massfabricator(461, "basicmachine.massfab.tier.01", "Basic Mass Fabricator", 1).getStackForm(1L)); + ItemList.Machine_MV_Massfab.set(new GT_MetaTileEntity_Massfabricator(462, "basicmachine.massfab.tier.02", "Advanced Mass Fabricator", 2).getStackForm(1L)); + ItemList.Machine_HV_Massfab.set(new GT_MetaTileEntity_Massfabricator(463, "basicmachine.massfab.tier.03", "Advanced Mass Fabricator II", 3).getStackForm(1L)); + ItemList.Machine_EV_Massfab.set(new GT_MetaTileEntity_Massfabricator(464, "basicmachine.massfab.tier.04", "Advanced Mass Fabricator III", 4).getStackForm(1L)); + ItemList.Machine_IV_Massfab.set(new GT_MetaTileEntity_Massfabricator(465, "basicmachine.massfab.tier.05", "Advanced Mass Fabricator IV", 5).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Machine_LV_Massfab.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CFC", "WMW", "CFC", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('F'), ItemList.Field_Generator_LV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_MV_Massfab.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CFC", "WMW", "CFC", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('F'), ItemList.Field_Generator_MV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.AnyCopper)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_HV_Massfab.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CFC", "WMW", "CFC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('F'), ItemList.Field_Generator_HV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Gold)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_EV_Massfab.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CFC", "WMW", "CFC", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('F'), ItemList.Field_Generator_EV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_IV_Massfab.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CFC", "WMW", "CFC", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('F'), ItemList.Field_Generator_IV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Ultimate), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Tungsten)}); + + ItemList.Machine_LV_Amplifab.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(471, "basicmachine.amplifab.tier.01", "Basic Amplifabricator", 1, "Extracting UU Amplifier", GT_Recipe.GT_Recipe_Map.sAmplifiers, 1, 1, 1000, 0, 1, "Amplifabricator.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "AMPLIFAB", new Object[]{"WPW", "PMP", "CPC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4}).getStackForm(1L)); + ItemList.Machine_MV_Amplifab.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(472, "basicmachine.amplifab.tier.02", "Advanced Amplifabricator", 2, "Extracting UU Amplifier", GT_Recipe.GT_Recipe_Map.sAmplifiers, 1, 1, 1000, 0, 1, "Amplifabricator.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "AMPLIFAB", new Object[]{"WPW", "PMP", "CPC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4}).getStackForm(1L)); + ItemList.Machine_HV_Amplifab.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(473, "basicmachine.amplifab.tier.03", "Advanced Amplifabricator II", 3, "Extracting UU Amplifier", GT_Recipe.GT_Recipe_Map.sAmplifiers, 1, 1, 1000, 0, 1, "Amplifabricator.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "AMPLIFAB", new Object[]{"WPW", "PMP", "CPC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4}).getStackForm(1L)); + ItemList.Machine_EV_Amplifab.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(474, "basicmachine.amplifab.tier.04", "Advanced Amplifabricator III", 4, "Extracting UU Amplifier", GT_Recipe.GT_Recipe_Map.sAmplifiers, 1, 1, 1000, 0, 1, "Amplifabricator.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "AMPLIFAB", new Object[]{"WPW", "PMP", "CPC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4}).getStackForm(1L)); + ItemList.Machine_IV_Amplifab.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(475, "basicmachine.amplifab.tier.05", "Advanced Amplifabricator IV", 5, "Extracting UU Amplifier", GT_Recipe.GT_Recipe_Map.sAmplifiers, 1, 1, 1000, 0, 1, "Amplifabricator.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "AMPLIFAB", new Object[]{"WPW", "PMP", "CPC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4}).getStackForm(1L)); + + ItemList.Machine_LV_Replicator.set(new GT_MetaTileEntity_Replicator(481, "basicmachine.replicator.tier.01", "Basic Replicator", 1).getStackForm(1L)); + ItemList.Machine_MV_Replicator.set(new GT_MetaTileEntity_Replicator(482, "basicmachine.replicator.tier.02", "Advanced Replicator", 2).getStackForm(1L)); + ItemList.Machine_HV_Replicator.set(new GT_MetaTileEntity_Replicator(483, "basicmachine.replicator.tier.03", "Advanced Replicator II", 3).getStackForm(1L)); + ItemList.Machine_EV_Replicator.set(new GT_MetaTileEntity_Replicator(484, "basicmachine.replicator.tier.04", "Advanced Replicator III", 4).getStackForm(1L)); + ItemList.Machine_IV_Replicator.set(new GT_MetaTileEntity_Replicator(485, "basicmachine.replicator.tier.05", "Advanced Replicator IV", 5).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Machine_LV_Replicator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EFE", "CMC", "EWE", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('F'), ItemList.Field_Generator_LV, Character.valueOf('E'), ItemList.Emitter_LV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_MV_Replicator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EFE", "CMC", "EWE", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('F'), ItemList.Field_Generator_MV, Character.valueOf('E'), ItemList.Emitter_MV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.AnyCopper)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_HV_Replicator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EFE", "CMC", "EWE", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('F'), ItemList.Field_Generator_HV, Character.valueOf('E'), ItemList.Emitter_HV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Gold)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_EV_Replicator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EFE", "CMC", "EWE", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('F'), ItemList.Field_Generator_EV, Character.valueOf('E'), ItemList.Emitter_EV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_IV_Replicator.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EFE", "CMC", "EWE", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('F'), ItemList.Field_Generator_IV, Character.valueOf('E'), ItemList.Emitter_IV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Ultimate), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Tungsten)}); + + ItemList.Machine_LV_Brewery.set(new GT_MetaTileEntity_PotionBrewer(491, "basicmachine.brewery.tier.01", "Basic Brewery", 1).getStackForm(1L)); + ItemList.Machine_MV_Brewery.set(new GT_MetaTileEntity_PotionBrewer(492, "basicmachine.brewery.tier.02", "Advanced Brewery", 2).getStackForm(1L)); + ItemList.Machine_HV_Brewery.set(new GT_MetaTileEntity_PotionBrewer(493, "basicmachine.brewery.tier.03", "Advanced Brewery II", 3).getStackForm(1L)); + ItemList.Machine_EV_Brewery.set(new GT_MetaTileEntity_PotionBrewer(494, "basicmachine.brewery.tier.04", "Advanced Brewery III", 4).getStackForm(1L)); + ItemList.Machine_IV_Brewery.set(new GT_MetaTileEntity_PotionBrewer(495, "basicmachine.brewery.tier.05", "Advanced Brewery IV", 5).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Machine_LV_Brewery.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"GPG", "WMW", "CBC", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('P'), ItemList.Electric_Pump_LV, Character.valueOf('B'), OrePrefixes.stick.get(Materials.Blaze), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_MV_Brewery.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"GPG", "WMW", "CBC", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('P'), ItemList.Electric_Pump_MV, Character.valueOf('B'), OrePrefixes.stick.get(Materials.Blaze), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_HV_Brewery.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"GPG", "WMW", "CBC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('P'), ItemList.Electric_Pump_HV, Character.valueOf('B'), OrePrefixes.stick.get(Materials.Blaze), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_EV_Brewery.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"GPG", "WMW", "CBC", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('P'), ItemList.Electric_Pump_EV, Character.valueOf('B'), OrePrefixes.stick.get(Materials.Blaze), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_IV_Brewery.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"GPG", "WMW", "CBC", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('P'), ItemList.Electric_Pump_IV, Character.valueOf('B'), OrePrefixes.stick.get(Materials.Blaze), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tungsten), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + + ItemList.Machine_LV_Fermenter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(501, "basicmachine.fermenter.tier.01", "Basic Fermenter", 1, "Fermenting Fluids", GT_Recipe.GT_Recipe_Map.sFermentingRecipes, 1, 1, 1000, 0, 1, "Fermenter.png", "", false, false, 0, "FERMENTER", new Object[]{"WPW", "GMG", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_MV_Fermenter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(502, "basicmachine.fermenter.tier.02", "Advanced Fermenter", 2, "Fermenting Fluids", GT_Recipe.GT_Recipe_Map.sFermentingRecipes, 1, 1, 1000, 0, 1, "Fermenter.png", "", false, false, 0, "FERMENTER", new Object[]{"WPW", "GMG", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_HV_Fermenter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(503, "basicmachine.fermenter.tier.03", "Advanced Fermenter II", 3, "Fermenting Fluids", GT_Recipe.GT_Recipe_Map.sFermentingRecipes, 1, 1, 1000, 0, 1, "Fermenter.png", "", false, false, 0, "FERMENTER", new Object[]{"WPW", "GMG", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_EV_Fermenter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(504, "basicmachine.fermenter.tier.04", "Advanced Fermenter III", 4, "Fermenting Fluids", GT_Recipe.GT_Recipe_Map.sFermentingRecipes, 1, 1, 1000, 0, 1, "Fermenter.png", "", false, false, 0, "FERMENTER", new Object[]{"WPW", "GMG", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_IV_Fermenter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(505, "basicmachine.fermenter.tier.05", "Advanced Fermenter IV", 5, "Fermenting Fluids", GT_Recipe.GT_Recipe_Map.sFermentingRecipes, 1, 1, 1000, 0, 1, "Fermenter.png", "", false, false, 0, "FERMENTER", new Object[]{"WPW", "GMG", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + + ItemList.Machine_LV_FluidExtractor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(511, "basicmachine.fluidextractor.tier.01", "Basic Fluid Extractor", 1, "Extracting Fluids from Items", GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes, 1, 1, 16000, 0, 1, "FluidExtractor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "FLUID_EXTRACTOR", new Object[]{"GCG", "PME", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_MV_FluidExtractor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(512, "basicmachine.fluidextractor.tier.02", "Advanced Fluid Extractor", 2, "Extracting Fluids from Items", GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes, 1, 1, 16000, 0, 1, "FluidExtractor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "FLUID_EXTRACTOR", new Object[]{"GCG", "PME", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_HV_FluidExtractor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(513, "basicmachine.fluidextractor.tier.03", "Advanced Fluid Extractor II", 3, "Extracting Fluids from Items", GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes, 1, 1, 16000, 0, 1, "FluidExtractor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "FLUID_EXTRACTOR", new Object[]{"GCG", "PME", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_EV_FluidExtractor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(514, "basicmachine.fluidextractor.tier.04", "Advanced Fluid Extractor III", 4, "Extracting Fluids from Items", GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes, 1, 1, 16000, 0, 1, "FluidExtractor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "FLUID_EXTRACTOR", new Object[]{"GCG", "PME", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_IV_FluidExtractor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(515, "basicmachine.fluidextractor.tier.05", "Advanced Fluid Extractor IV", 5, "Extracting Fluids from Items", GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes, 1, 1, 16000, 0, 1, "FluidExtractor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "FLUID_EXTRACTOR", new Object[]{"GCG", "PME", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + + ItemList.Machine_LV_FluidSolidifier.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(521, "basicmachine.fluidsolidifier.tier.01", "Basic Fluid Solidifier", 1, "Cools Fluids down to form Solids", GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes, 1, 1, 16000, 0, 1, "FluidSolidifier.png", "", false, false, 0, "FLUID_SOLIDIFIER", new Object[]{"PGP", "WMW", "CBC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingChest}).getStackForm(1L)); + ItemList.Machine_MV_FluidSolidifier.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(522, "basicmachine.fluidsolidifier.tier.02", "Advanced Fluid Solidifier", 2, "Cools Fluids down to form Solids", GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes, 1, 1, 16000, 0, 1, "FluidSolidifier.png", "", false, false, 0, "FLUID_SOLIDIFIER", new Object[]{"PGP", "WMW", "CBC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingChest}).getStackForm(1L)); + ItemList.Machine_HV_FluidSolidifier.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(523, "basicmachine.fluidsolidifier.tier.03", "Advanced Fluid Solidifier II", 3, "Cools Fluids down to form Solids", GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes, 1, 1, 16000, 0, 1, "FluidSolidifier.png", "", false, false, 0, "FLUID_SOLIDIFIER", new Object[]{"PGP", "WMW", "CBC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingChest}).getStackForm(1L)); + ItemList.Machine_EV_FluidSolidifier.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(524, "basicmachine.fluidsolidifier.tier.04", "Advanced Fluid Solidifier III", 4, "Cools Fluids down to form Solids", GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes, 1, 1, 16000, 0, 1, "FluidSolidifier.png", "", false, false, 0, "FLUID_SOLIDIFIER", new Object[]{"PGP", "WMW", "CBC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingChest}).getStackForm(1L)); + ItemList.Machine_IV_FluidSolidifier.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(525, "basicmachine.fluidsolidifier.tier.05", "Advanced Fluid Solidifier IV", 5, "Cools Fluids down to form Solids", GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes, 1, 1, 16000, 0, 1, "FluidSolidifier.png", "", false, false, 0, "FLUID_SOLIDIFIER", new Object[]{"PGP", "WMW", "CBC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingChest}).getStackForm(1L)); + + ItemList.Machine_LV_Distillery.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(531, "basicmachine.distillery.tier.01", "Basic Distillery", 1, "Extracting the most relevant Parts of Fluids", GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, 1, 0, 1000, 0, 1, "Distillery.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "DISTILLERY", new Object[]{"GBG", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('B'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_DISTILLATION, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_MV_Distillery.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(532, "basicmachine.distillery.tier.02", "Advanced Distillery", 2, "Extracting the most relevant Parts of Fluids", GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, 1, 0, 1000, 0, 1, "Distillery.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "DISTILLERY", new Object[]{"GBG", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('B'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_DISTILLATION, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_HV_Distillery.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(533, "basicmachine.distillery.tier.03", "Advanced Distillery II", 3, "Extracting the most relevant Parts of Fluids", GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, 1, 0, 1000, 0, 1, "Distillery.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "DISTILLERY", new Object[]{"GBG", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('B'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_DISTILLATION, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_EV_Distillery.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(534, "basicmachine.distillery.tier.04", "Advanced Distillery III", 4, "Extracting the most relevant Parts of Fluids", GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, 1, 0, 1000, 0, 1, "Distillery.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "DISTILLERY", new Object[]{"GBG", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('B'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_DISTILLATION, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_IV_Distillery.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(535, "basicmachine.distillery.tier.05", "Advanced Distillery IV", 5, "Extracting the most relevant Parts of Fluids", GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, 1, 0, 1000, 0, 1, "Distillery.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "DISTILLERY", new Object[]{"GBG", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('B'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_DISTILLATION, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + + ItemList.Machine_LV_ChemicalBath.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(541, "basicmachine.chemicalbath.tier.01", "Basic Chemical Bath", 1, "Bathing Ores in Chemicals to separate them", GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes, 1, 3, 8000, 0, 1, "ChemicalBath.png", "", false, true, 0, "CHEMICAL_BATH", new Object[]{"VGW", "PGV", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_MV_ChemicalBath.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(542, "basicmachine.chemicalbath.tier.02", "Advanced Chemical Bath", 2, "Bathing Ores in Chemicals to separate them", GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes, 1, 3, 8000, 0, 1, "ChemicalBath.png", "", false, true, 0, "CHEMICAL_BATH", new Object[]{"VGW", "PGV", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_HV_ChemicalBath.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(543, "basicmachine.chemicalbath.tier.03", "Advanced Chemical Bath II", 3, "Bathing Ores in Chemicals to separate them", GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes, 1, 3, 8000, 0, 1, "ChemicalBath.png", "", false, true, 0, "CHEMICAL_BATH", new Object[]{"VGW", "PGV", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_EV_ChemicalBath.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(544, "basicmachine.chemicalbath.tier.04", "Advanced Chemical Bath III", 4, "Bathing Ores in Chemicals to separate them", GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes, 1, 3, 8000, 0, 1, "ChemicalBath.png", "", false, true, 0, "CHEMICAL_BATH", new Object[]{"VGW", "PGV", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_IV_ChemicalBath.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(545, "basicmachine.chemicalbath.tier.05", "Advanced Chemical Bath IV", 5, "Bathing Ores in Chemicals to separate them", GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes, 1, 3, 8000, 0, 1, "ChemicalBath.png", "", false, true, 0, "CHEMICAL_BATH", new Object[]{"VGW", "PGV", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + + ItemList.Machine_LV_Polarizer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(551, "basicmachine.polarizer.tier.01", "Basic Polarizer", 1, "Bipolarising your Magnets", GT_Recipe.GT_Recipe_Map.sPolarizerRecipes, 1, 1, 0, 0, 1, "Polarizer.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "POLARIZER", new Object[]{"ZSZ", "WMW", "ZSZ", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('S'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, Character.valueOf('Z'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_MV_Polarizer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(552, "basicmachine.polarizer.tier.02", "Advanced Polarizer", 2, "Bipolarising your Magnets", GT_Recipe.GT_Recipe_Map.sPolarizerRecipes, 1, 1, 0, 0, 1, "Polarizer.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "POLARIZER", new Object[]{"ZSZ", "WMW", "ZSZ", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('S'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, Character.valueOf('Z'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_HV_Polarizer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(553, "basicmachine.polarizer.tier.03", "Advanced Polarizer II", 3, "Bipolarising your Magnets", GT_Recipe.GT_Recipe_Map.sPolarizerRecipes, 1, 1, 0, 0, 1, "Polarizer.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "POLARIZER", new Object[]{"ZSZ", "WMW", "ZSZ", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('S'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, Character.valueOf('Z'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_EV_Polarizer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(554, "basicmachine.polarizer.tier.04", "Advanced Polarizer III", 4, "Bipolarising your Magnets", GT_Recipe.GT_Recipe_Map.sPolarizerRecipes, 1, 1, 0, 0, 1, "Polarizer.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "POLARIZER", new Object[]{"ZSZ", "WMW", "ZSZ", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('S'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, Character.valueOf('Z'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_IV_Polarizer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(555, "basicmachine.polarizer.tier.05", "Advanced Polarizer IV", 5, "Bipolarising your Magnets", GT_Recipe.GT_Recipe_Map.sPolarizerRecipes, 1, 1, 0, 0, 1, "Polarizer.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "POLARIZER", new Object[]{"ZSZ", "WMW", "ZSZ", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('S'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, Character.valueOf('Z'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + + ItemList.Machine_LV_ElectromagneticSeparator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(561, "basicmachine.electromagneticseparator.tier.01", "Basic Electromagnetic Separator", 1, "Separating the magnetic Ores from the rest", GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes, 1, 3, 0, 0, 1, "ElectromagneticSeparator.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "ELECTROMAGNETIC_SEPARATOR", new Object[]{"VWZ", "WMS", "CWZ", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('S'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, Character.valueOf('Z'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_MV_ElectromagneticSeparator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(562, "basicmachine.electromagneticseparator.tier.02", "Advanced Electromagnetic Separator", 2, "Separating the magnetic Ores from the rest", GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes, 1, 3, 0, 0, 1, "ElectromagneticSeparator.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "ELECTROMAGNETIC_SEPARATOR", new Object[]{"VWZ", "WMS", "CWZ", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('S'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, Character.valueOf('Z'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_HV_ElectromagneticSeparator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(563, "basicmachine.electromagneticseparator.tier.03", "Advanced Electromagnetic Separator II", 3, "Separating the magnetic Ores from the rest", GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes, 1, 3, 0, 0, 1, "ElectromagneticSeparator.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "ELECTROMAGNETIC_SEPARATOR", new Object[]{"VWZ", "WMS", "CWZ", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('S'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, Character.valueOf('Z'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_EV_ElectromagneticSeparator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(564, "basicmachine.electromagneticseparator.tier.04", "Advanced Electromagnetic Separator III", 4, "Separating the magnetic Ores from the rest", GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes, 1, 3, 0, 0, 1, "ElectromagneticSeparator.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "ELECTROMAGNETIC_SEPARATOR", new Object[]{"VWZ", "WMS", "CWZ", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('S'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, Character.valueOf('Z'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_IV_ElectromagneticSeparator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(565, "basicmachine.electromagneticseparator.tier.05", "Advanced Electromagnetic Separator IV", 5, "Separating the magnetic Ores from the rest", GT_Recipe.GT_Recipe_Map.sElectroMagneticSeparatorRecipes, 1, 3, 0, 0, 1, "ElectromagneticSeparator.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "ELECTROMAGNETIC_SEPARATOR", new Object[]{"VWZ", "WMS", "CWZ", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('S'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC, Character.valueOf('Z'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + + ItemList.Machine_LV_Autoclave.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(571, "basicmachine.autoclave.tier.01", "Basic Autoclave", 1, "Crystallizing your Dusts", GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes, 1, 1, 8000, 0, 1, "Autoclave.png", "", false, false, 0, "AUTOCLAVE", new Object[]{"IGI", "IMI", "CPC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('I'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_MV_Autoclave.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(572, "basicmachine.autoclave.tier.02", "Advanced Autoclave", 2, "Crystallizing your Dusts", GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes, 1, 1, 8000, 0, 1, "Autoclave.png", "", false, false, 0, "AUTOCLAVE", new Object[]{"IGI", "IMI", "CPC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('I'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_HV_Autoclave.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(573, "basicmachine.autoclave.tier.03", "Advanced Autoclave II", 3, "Crystallizing your Dusts", GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes, 1, 1, 8000, 0, 1, "Autoclave.png", "", false, false, 0, "AUTOCLAVE", new Object[]{"IGI", "IMI", "CPC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('I'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_EV_Autoclave.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(574, "basicmachine.autoclave.tier.04", "Advanced Autoclave III", 4, "Crystallizing your Dusts", GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes, 1, 1, 8000, 0, 1, "Autoclave.png", "", false, false, 0, "AUTOCLAVE", new Object[]{"IGI", "IMI", "CPC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('I'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_IV_Autoclave.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(575, "basicmachine.autoclave.tier.05", "Advanced Autoclave IV", 5, "Crystallizing your Dusts", GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes, 1, 1, 8000, 0, 1, "Autoclave.png", "", false, false, 0, "AUTOCLAVE", new Object[]{"IGI", "IMI", "CPC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('I'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + + ItemList.Machine_LV_Mixer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(581, "basicmachine.mixer.tier.01", "Basic Mixer", 1, "Will it Blend?", GT_Recipe.GT_Recipe_Map.sMixerRecipes, 4, 1, 8000, 0, 1, "Mixer.png", "", false, false, 0, "MIXER", new Object[]{"GRG", "GEG", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_MV_Mixer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(582, "basicmachine.mixer.tier.02", "Advanced Mixer", 2, "Will it Blend?", GT_Recipe.GT_Recipe_Map.sMixerRecipes, 4, 1, 8000, 0, 1, "Mixer.png", "", false, false, 0, "MIXER", new Object[]{"GRG", "GEG", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_HV_Mixer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(583, "basicmachine.mixer.tier.03", "Advanced Mixer II", 3, "Will it Blend?", GT_Recipe.GT_Recipe_Map.sMixerRecipes, 4, 1, 8000, 0, 1, "Mixer.png", "", false, false, 0, "MIXER", new Object[]{"GRG", "GEG", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_EV_Mixer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(584, "basicmachine.mixer.tier.04", "Advanced Mixer III", 4, "Will it Blend?", GT_Recipe.GT_Recipe_Map.sMixerRecipes, 4, 1, 8000, 0, 1, "Mixer.png", "", false, false, 0, "MIXER", new Object[]{"GRG", "GEG", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_IV_Mixer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(585, "basicmachine.mixer.tier.05", "Advanced Mixer IV", 5, "Will it Blend?", GT_Recipe.GT_Recipe_Map.sMixerRecipes, 4, 1, 8000, 0, 1, "Mixer.png", "", false, false, 0, "MIXER", new Object[]{"GRG", "GEG", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + + ItemList.Machine_LV_LaserEngraver.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(591, "basicmachine.laserengraver.tier.01", "Basic Precision Laser Engraver", 1, "Don't look directly at the Laser", GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes, 2, 1, 0, 0, 1, "LaserEngraver.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "LASER_ENGRAVER", new Object[]{"PEP", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_MV_LaserEngraver.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(592, "basicmachine.laserengraver.tier.02", "Advanced Precision Laser Engraver", 2, "Don't look directly at the Laser", GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes, 2, 1, 0, 0, 1, "LaserEngraver.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "LASER_ENGRAVER", new Object[]{"PEP", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_HV_LaserEngraver.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(593, "basicmachine.laserengraver.tier.03", "Advanced Precision Laser Engraver II", 3, "Don't look directly at the Laser", GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes, 2, 1, 0, 0, 1, "LaserEngraver.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "LASER_ENGRAVER", new Object[]{"PEP", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_EV_LaserEngraver.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(594, "basicmachine.laserengraver.tier.04", "Advanced Precision Laser Engraver III", 4, "Don't look directly at the Laser", GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes, 2, 1, 0, 0, 1, "LaserEngraver.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "LASER_ENGRAVER", new Object[]{"PEP", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_IV_LaserEngraver.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(595, "basicmachine.laserengraver.tier.05", "Advanced Precision Laser Engraver IV", 5, "Don't look directly at the Laser", GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes, 2, 1, 0, 0, 1, "LaserEngraver.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(212)), false, false, 0, "LASER_ENGRAVER", new Object[]{"PEP", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + + ItemList.Machine_LV_Press.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(601, "basicmachine.press.tier.01", "Basic Forming Press", 1, "Imprinting Images into things", GT_Recipe.GT_Recipe_Map.sPressRecipes, 2, 1, 0, 0, 1, "Press.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "PRESS", new Object[]{"WPW", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_MV_Press.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(602, "basicmachine.press.tier.02", "Advanced Forming Press", 2, "Imprinting Images into things", GT_Recipe.GT_Recipe_Map.sPressRecipes, 2, 1, 0, 0, 1, "Press.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "PRESS", new Object[]{"WPW", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_HV_Press.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(603, "basicmachine.press.tier.03", "Advanced Forming Press II", 3, "Imprinting Images into things", GT_Recipe.GT_Recipe_Map.sPressRecipes, 2, 1, 0, 0, 1, "Press.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "PRESS", new Object[]{"WPW", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_EV_Press.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(604, "basicmachine.press.tier.04", "Advanced Forming Press III", 4, "Imprinting Images into things", GT_Recipe.GT_Recipe_Map.sPressRecipes, 2, 1, 0, 0, 1, "Press.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "PRESS", new Object[]{"WPW", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_IV_Press.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(605, "basicmachine.press.tier.05", "Advanced Forming Press IV", 5, "Imprinting Images into things", GT_Recipe.GT_Recipe_Map.sPressRecipes, 2, 1, 0, 0, 1, "Press.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(203)), false, false, 0, "PRESS", new Object[]{"WPW", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + + ItemList.Machine_LV_Hammer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(611, "basicmachine.hammer.tier.01", "Basic Forge Hammer", 1, "Stop, Hammertime!", GT_Recipe.GT_Recipe_Map.sHammerRecipes, 1, 1, 0, 6, 3, "Hammer.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(1)), false, false, 0, "HAMMER", new Object[]{"WPW", "CMC", "WAW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, Character.valueOf('A'), OreDictNames.craftingAnvil}).getStackForm(1L)); + ItemList.Machine_MV_Hammer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(612, "basicmachine.hammer.tier.02", "Advanced Forge Hammer", 2, "Stop, Hammertime!", GT_Recipe.GT_Recipe_Map.sHammerRecipes, 1, 1, 0, 6, 3, "Hammer.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(1)), false, false, 0, "HAMMER", new Object[]{"WPW", "CMC", "WAW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, Character.valueOf('A'), OreDictNames.craftingAnvil}).getStackForm(1L)); + ItemList.Machine_HV_Hammer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(613, "basicmachine.hammer.tier.03", "Advanced Forge Hammer II", 3, "Stop, Hammertime!", GT_Recipe.GT_Recipe_Map.sHammerRecipes, 1, 1, 0, 6, 3, "Hammer.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(1)), false, false, 0, "HAMMER", new Object[]{"WPW", "CMC", "WAW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, Character.valueOf('A'), OreDictNames.craftingAnvil}).getStackForm(1L)); + ItemList.Machine_EV_Hammer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(614, "basicmachine.hammer.tier.04", "Advanced Forge Hammer III", 4, "Stop, Hammertime!", GT_Recipe.GT_Recipe_Map.sHammerRecipes, 1, 1, 0, 6, 3, "Hammer.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(1)), false, false, 0, "HAMMER", new Object[]{"WPW", "CMC", "WAW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, Character.valueOf('A'), OreDictNames.craftingAnvil}).getStackForm(1L)); + ItemList.Machine_IV_Hammer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(615, "basicmachine.hammer.tier.05", "Advanced Forge Hammer IV", 5, "Stop, Hammertime!", GT_Recipe.GT_Recipe_Map.sHammerRecipes, 1, 1, 0, 6, 3, "Hammer.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(1)), false, false, 0, "HAMMER", new Object[]{"WPW", "CMC", "WAW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, Character.valueOf('A'), OreDictNames.craftingAnvil}).getStackForm(1L)); + + ItemList.Machine_LV_FluidHeater.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(621, "basicmachine.fluidheater.tier.01", "Basic Fluid Heater", 1, "Heating up your Fluids", GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes, 1, 0, 8000, 0, 1, "FluidHeater.png", "", false, false, 0, "FLUID_HEATER", new Object[]{"OGO", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_MV_FluidHeater.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(622, "basicmachine.fluidheater.tier.02", "Advanced Fluid Heater", 2, "Heating up your Fluids", GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes, 1, 0, 8000, 0, 1, "FluidHeater.png", "", false, false, 0, "FLUID_HEATER", new Object[]{"OGO", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_HV_FluidHeater.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(623, "basicmachine.fluidheater.tier.03", "Advanced Fluid Heater II", 3, "Heating up your Fluids", GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes, 1, 0, 8000, 0, 1, "FluidHeater.png", "", false, false, 0, "FLUID_HEATER", new Object[]{"OGO", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_EV_FluidHeater.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(624, "basicmachine.fluidheater.tier.04", "Advanced Fluid Heater III", 4, "Heating up your Fluids", GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes, 1, 0, 8000, 0, 1, "FluidHeater.png", "", false, false, 0, "FLUID_HEATER", new Object[]{"OGO", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_IV_FluidHeater.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(625, "basicmachine.fluidheater.tier.05", "Advanced Fluid Heater IV", 5, "Heating up your Fluids", GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes, 1, 0, 8000, 0, 1, "FluidHeater.png", "", false, false, 0, "FLUID_HEATER", new Object[]{"OGO", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('O'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + + ItemList.Machine_LV_Slicer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(631, "basicmachine.slicer.tier.01", "Basic Slicing Machine", 1, "Slice of Life", GT_Recipe.GT_Recipe_Map.sSlicerRecipes, 2, 1, 0, 0, 1, "Slicer.png", "", false, false, 0, "SLICER", new Object[]{"WCW", "PMV", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_MV_Slicer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(632, "basicmachine.slicer.tier.02", "Advanced Slicing Machine", 2, "Slice of Life", GT_Recipe.GT_Recipe_Map.sSlicerRecipes, 2, 1, 0, 0, 1, "Slicer.png", "", false, false, 0, "SLICER", new Object[]{"WCW", "PMV", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_HV_Slicer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(633, "basicmachine.slicer.tier.03", "Advanced Slicing Machine II", 3, "Slice of Life", GT_Recipe.GT_Recipe_Map.sSlicerRecipes, 2, 1, 0, 0, 1, "Slicer.png", "", false, false, 0, "SLICER", new Object[]{"WCW", "PMV", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_EV_Slicer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(634, "basicmachine.slicer.tier.04", "Advanced Slicing Machine III", 4, "Slice of Life", GT_Recipe.GT_Recipe_Map.sSlicerRecipes, 2, 1, 0, 0, 1, "Slicer.png", "", false, false, 0, "SLICER", new Object[]{"WCW", "PMV", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_IV_Slicer.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(635, "basicmachine.slicer.tier.05", "Advanced Slicing Machine IV", 5, "Slice of Life", GT_Recipe.GT_Recipe_Map.sSlicerRecipes, 2, 1, 0, 0, 1, "Slicer.png", "", false, false, 0, "SLICER", new Object[]{"WCW", "PMV", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + + ItemList.Machine_LV_Sifter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(641, "basicmachine.sifter.tier.01", "Basic Sifting Machine", 1, "Stay calm and keep sifting", GT_Recipe.GT_Recipe_Map.sSifterRecipes, 1, 9, 0, 2, 5, "Sifter.png", "", false, false, 0, "SIFTER", new Object[]{"WFW", "PMP", "CFC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_MV_Sifter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(642, "basicmachine.sifter.tier.02", "Advanced Sifting Machine", 2, "Stay calm and keep sifting", GT_Recipe.GT_Recipe_Map.sSifterRecipes, 1, 9, 0, 2, 5, "Sifter.png", "", false, false, 0, "SIFTER", new Object[]{"WFW", "PMP", "CFC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_HV_Sifter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(643, "basicmachine.sifter.tier.03", "Advanced Sifting Machine II", 3, "Stay calm and keep sifting", GT_Recipe.GT_Recipe_Map.sSifterRecipes, 1, 9, 0, 2, 5, "Sifter.png", "", false, false, 0, "SIFTER", new Object[]{"WFW", "PMP", "CFC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_EV_Sifter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(644, "basicmachine.sifter.tier.04", "Advanced Sifting Machine III", 4, "Stay calm and keep sifting", GT_Recipe.GT_Recipe_Map.sSifterRecipes, 1, 9, 0, 2, 5, "Sifter.png", "", false, false, 0, "SIFTER", new Object[]{"WFW", "PMP", "CFC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + ItemList.Machine_IV_Sifter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(645, "basicmachine.sifter.tier.05", "Advanced Sifting Machine IV", 5, "Stay calm and keep sifting", GT_Recipe.GT_Recipe_Map.sSifterRecipes, 1, 9, 0, 2, 5, "Sifter.png", "", false, false, 0, "SIFTER", new Object[]{"WFW", "PMP", "CFC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE}).getStackForm(1L)); + + ItemList.Machine_LV_ArcFurnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(651, "basicmachine.arcfurnace.tier.01", "Basic Arc Furnace", 1, "", GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes, 1, 4, 16000, 0, 1, "ArcFurnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(202)), false, false, 0, "ARC_FURNACE", new Object[]{"WGW", "CMC", "PPP", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, Character.valueOf('G'), OrePrefixes.cell.get(Materials.Graphite)}).getStackForm(1L)); + ItemList.Machine_MV_ArcFurnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(652, "basicmachine.arcfurnace.tier.02", "Advanced Arc Furnace", 2, "", GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes, 1, 4, 16000, 0, 1, "ArcFurnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(202)), false, false, 0, "ARC_FURNACE", new Object[]{"WGW", "CMC", "PPP", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, Character.valueOf('G'), OrePrefixes.cell.get(Materials.Graphite)}).getStackForm(1L)); + ItemList.Machine_HV_ArcFurnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(653, "basicmachine.arcfurnace.tier.03", "Advanced Arc Furnace II", 3, "", GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes, 1, 4, 16000, 0, 1, "ArcFurnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(202)), false, false, 0, "ARC_FURNACE", new Object[]{"WGW", "CMC", "PPP", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, Character.valueOf('G'), OrePrefixes.cell.get(Materials.Graphite)}).getStackForm(1L)); + ItemList.Machine_EV_ArcFurnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(654, "basicmachine.arcfurnace.tier.04", "Advanced Arc Furnace III", 4, "", GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes, 1, 4, 16000, 0, 1, "ArcFurnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(202)), false, false, 0, "ARC_FURNACE", new Object[]{"WGW", "CMC", "PPP", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, Character.valueOf('G'), OrePrefixes.cell.get(Materials.Graphite)}).getStackForm(1L)); + ItemList.Machine_IV_ArcFurnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(655, "basicmachine.arcfurnace.tier.05", "Advanced Arc Furnace IV", 5, "", GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes, 1, 4, 16000, 0, 1, "ArcFurnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(202)), false, false, 0, "ARC_FURNACE", new Object[]{"WGW", "CMC", "PPP", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, Character.valueOf('G'), OrePrefixes.cell.get(Materials.Graphite)}).getStackForm(1L)); + + ItemList.Machine_LV_PlasmaArcFurnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(661, "basicmachine.plasmaarcfurnace.tier.01", "Basic Plasma Arc Furnace", 1, "", GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes, 1, 4, 1000, 0, 1, "PlasmaArcFurnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(202)), false, false, 0, "PLASMA_ARC_FURNACE", new Object[]{"WGW", "CMC", "TPT", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, Character.valueOf('T'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('G'), OrePrefixes.cell.get(Materials.Graphite)}).getStackForm(1L)); + ItemList.Machine_MV_PlasmaArcFurnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(662, "basicmachine.plasmaarcfurnace.tier.02", "Advanced Plasma Arc Furnace", 2, "", GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes, 1, 4, 1000, 0, 1, "PlasmaArcFurnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(202)), false, false, 0, "PLASMA_ARC_FURNACE", new Object[]{"WGW", "CMC", "TPT", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, Character.valueOf('T'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('G'), OrePrefixes.cell.get(Materials.Graphite)}).getStackForm(1L)); + ItemList.Machine_HV_PlasmaArcFurnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(663, "basicmachine.plasmaarcfurnace.tier.03", "Advanced Plasma Arc Furnace II", 3, "", GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes, 1, 4, 1000, 0, 1, "PlasmaArcFurnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(202)), false, false, 0, "PLASMA_ARC_FURNACE", new Object[]{"WGW", "CMC", "TPT", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, Character.valueOf('T'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('G'), OrePrefixes.cell.get(Materials.Graphite)}).getStackForm(1L)); + ItemList.Machine_EV_PlasmaArcFurnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(664, "basicmachine.plasmaarcfurnace.tier.04", "Advanced Plasma Arc Furnace III", 4, "", GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes, 1, 4, 1000, 0, 1, "PlasmaArcFurnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(202)), false, false, 0, "PLASMA_ARC_FURNACE", new Object[]{"WGW", "CMC", "TPT", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, Character.valueOf('T'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('G'), OrePrefixes.cell.get(Materials.Graphite)}).getStackForm(1L)); + ItemList.Machine_IV_PlasmaArcFurnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(665, "basicmachine.plasmaarcfurnace.tier.05", "Advanced Plasma Arc Furnace IV", 5, "", GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes, 1, 4, 1000, 0, 1, "PlasmaArcFurnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(202)), false, false, 0, "PLASMA_ARC_FURNACE", new Object[]{"WGW", "CMC", "TPT", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, Character.valueOf('T'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('G'), OrePrefixes.cell.get(Materials.Graphite)}).getStackForm(1L)); + + ItemList.Machine_LV_Oven.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(671, "basicmachine.e_oven.tier.01", "Basic Electric Oven", 1, "Just a Furnace with a different Design", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Oven.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_OVEN", new Object[]{"CEC", "CMC", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING}).getStackForm(1L)); + ItemList.Machine_MV_Oven.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(672, "basicmachine.e_oven.tier.02", "Advanced Electric Oven", 2, "Just a Furnace with a different Design", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Oven.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_OVEN", new Object[]{"CEC", "CMC", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING}).getStackForm(1L)); + ItemList.Machine_HV_Oven.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(673, "basicmachine.e_oven.tier.03", "Advanced Electric Oven II", 3, "Just a Furnace with a different Design", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Oven.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_OVEN", new Object[]{"CEC", "CMC", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING}).getStackForm(1L)); + ItemList.Machine_EV_Oven.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(674, "basicmachine.e_oven.tier.04", "Advanced Electric Oven III", 4, "Just a Furnace with a different Design", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Oven.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_OVEN", new Object[]{"CEC", "CMC", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING}).getStackForm(1L)); + ItemList.Machine_IV_Oven.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(675, "basicmachine.e_oven.tier.05", "Advanced Electric Oven IV", 5, "Just a Furnace with a different Design", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Oven.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_OVEN", new Object[]{"CEC", "CMC", "WEW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING}).getStackForm(1L)); + } + + private static void run3() { + ItemList.Machine_Multi_BlastFurnace.set(new GT_MetaTileEntity_ElectricBlastFurnace(1000, "multimachine.blastfurnace", "Electric Blast Furnace").getStackForm(1L)); + ItemList.Machine_Multi_ImplosionCompressor.set(new GT_MetaTileEntity_ImplosionCompressor(1001, "multimachine.implosioncompressor", "Implosion Compressor").getStackForm(1L)); + ItemList.Machine_Multi_VacuumFreezer.set(new GT_MetaTileEntity_VacuumFreezer(1002, "multimachine.vacuumfreezer", "Vacuum Freezer").getStackForm(1L)); + ItemList.Machine_Multi_Furnace.set(new GT_MetaTileEntity_MultiFurnace(1003, "multimachine.multifurnace", "Multi Smelter").getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_BlastFurnace.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"FFF", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_HeatProof, Character.valueOf('F'), OreDictNames.craftingFurnace, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_VacuumFreezer.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_FrostProof, Character.valueOf('P'), ItemList.Electric_Pump_HV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_ImplosionCompressor.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"OOO", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('O'), OrePrefixes.stone.get(Materials.Obsidian), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_Furnace.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"FFF", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_HeatProof, Character.valueOf('F'), OreDictNames.craftingFurnace, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnnealedCopper)}); + + ItemList.Machine_Multi_LargeBoiler_Bronze.set(new GT_MetaTileEntity_LargeBoiler_Bronze(1020, "multimachine.boiler.bronze", "Large Bronze Boiler").getStackForm(1L)); + ItemList.Machine_Multi_LargeBoiler_Steel.set(new GT_MetaTileEntity_LargeBoiler_Steel(1021, "multimachine.boiler.steel", "Large Steel Boiler").getStackForm(1L)); + ItemList.Machine_Multi_LargeBoiler_Titanium.set(new GT_MetaTileEntity_LargeBoiler_Titanium(1022, "multimachine.boiler.titanium", "Large Titanium Boiler").getStackForm(1L)); + ItemList.Machine_Multi_LargeBoiler_TungstenSteel.set(new GT_MetaTileEntity_LargeBoiler_TungstenSteel(1023, "multimachine.boiler.tungstensteel", "Large Tungstensteel Boiler").getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_LargeBoiler_Bronze.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WCW", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_Firebox_Bronze, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_LargeBoiler_Steel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WCW", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_Firebox_Steel, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_LargeBoiler_Titanium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WCW", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_Firebox_Titanium, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_LargeBoiler_TungstenSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WCW", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_Firebox_TungstenSteel, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium)}); + + + ItemList.Generator_Diesel_LV.set(new GT_MetaTileEntity_DieselGenerator(1110, "basicgenerator.diesel.tier.01", "Basic Diesel Generator", 1).getStackForm(1L)); + ItemList.Generator_Diesel_MV.set(new GT_MetaTileEntity_DieselGenerator(1111, "basicgenerator.diesel.tier.02", "Advanced Diesel Generator", 2).getStackForm(1L)); + ItemList.Generator_Diesel_HV.set(new GT_MetaTileEntity_DieselGenerator(1112, "basicgenerator.diesel.tier.03", "Turbo Diesel Generator", 3).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Generator_Diesel_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PCP", "EME", "GWG", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('P'), ItemList.Electric_Piston_LV, Character.valueOf('E'), ItemList.Electric_Motor_LV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin), Character.valueOf('G'), OrePrefixes.gearGt.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Generator_Diesel_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PCP", "EME", "GWG", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('P'), ItemList.Electric_Piston_MV, Character.valueOf('E'), ItemList.Electric_Motor_MV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper), Character.valueOf('G'), OrePrefixes.gearGt.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Generator_Diesel_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PCP", "EME", "GWG", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('P'), ItemList.Electric_Piston_HV, Character.valueOf('E'), ItemList.Electric_Motor_HV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold), Character.valueOf('G'), OrePrefixes.gearGt.get(Materials.StainlessSteel)}); + + ItemList.Generator_Gas_Turbine_LV.set(new GT_MetaTileEntity_GasTurbine(1115, "basicgenerator.gasturbine.tier.01", "Basic Gas Turbine", 1).getStackForm(1L)); + ItemList.Generator_Gas_Turbine_MV.set(new GT_MetaTileEntity_GasTurbine(1116, "basicgenerator.gasturbine.tier.02", "Advanced Gas Turbine", 2).getStackForm(1L)); + ItemList.Generator_Gas_Turbine_HV.set(new GT_MetaTileEntity_GasTurbine(1117, "basicgenerator.gasturbine.tier.03", "Turbo Gas Turbine", 3).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Generator_Gas_Turbine_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CRC", "RMR", "EWE", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('E'), ItemList.Electric_Motor_LV, Character.valueOf('R'), OrePrefixes.rotor.get(Materials.Tin), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.Generator_Gas_Turbine_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CRC", "RMR", "EWE", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('E'), ItemList.Electric_Motor_MV, Character.valueOf('R'), OrePrefixes.rotor.get(Materials.Bronze), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper)}); + GT_ModHandler.addCraftingRecipe(ItemList.Generator_Gas_Turbine_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CRC", "RMR", "EWE", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('E'), ItemList.Electric_Motor_HV, Character.valueOf('R'), OrePrefixes.rotor.get(Materials.Steel), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold)}); + + ItemList.Generator_Steam_Turbine_LV.set(new GT_MetaTileEntity_SteamTurbine(1120, "basicgenerator.steamturbine.tier.01", "Basic Steam Turbine", 1).getStackForm(1L)); + ItemList.Generator_Steam_Turbine_MV.set(new GT_MetaTileEntity_SteamTurbine(1121, "basicgenerator.steamturbine.tier.02", "Advanced Steam Turbine", 2).getStackForm(1L)); + ItemList.Generator_Steam_Turbine_HV.set(new GT_MetaTileEntity_SteamTurbine(1122, "basicgenerator.steamturbine.tier.03", "Turbo Steam Turbine", 3).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Generator_Steam_Turbine_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PCP", "RMR", "EWE", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('E'), ItemList.Electric_Motor_LV, Character.valueOf('R'), OrePrefixes.rotor.get(Materials.Tin), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin), Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Bronze)}); + GT_ModHandler.addCraftingRecipe(ItemList.Generator_Steam_Turbine_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PCP", "RMR", "EWE", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('E'), ItemList.Electric_Motor_MV, Character.valueOf('R'), OrePrefixes.rotor.get(Materials.Bronze), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper), Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Generator_Steam_Turbine_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PCP", "RMR", "EWE", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('E'), ItemList.Electric_Motor_HV, Character.valueOf('R'), OrePrefixes.rotor.get(Materials.Steel), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold), Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.StainlessSteel)}); + + ItemList.Generator_Naquadah_Mark_I.set(new GT_MetaTileEntity_SolidNaquadahReactor(1190, "basicgenerator.naquadah.tier.04", "Naquadah Reactor Mark I", 4).getStackForm(1L)); + ItemList.Generator_Naquadah_Mark_II.set(new GT_MetaTileEntity_SolidNaquadahReactor(1191, "basicgenerator.naquadah.tier.05", "Naquadah Reactor Mark II", 5).getStackForm(1L)); + ItemList.Generator_Naquadah_Fluid.set(new GT_MetaTileEntity_FluidNaquadahReactor(1192, "basicgenerator.naquadah.tier.06", "Naquadah Reactor Mark III", 6).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Generator_Naquadah_Mark_I.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"UCU", "FMF", "WCW", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('F'), ItemList.Field_Generator_EV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Aluminium), Character.valueOf('U'), OrePrefixes.stick.get(Materials.Uranium235)}); + GT_ModHandler.addCraftingRecipe(ItemList.Generator_Naquadah_Mark_II.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PCP", "FMF", "WCW", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('F'), ItemList.Field_Generator_IV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Tungsten), Character.valueOf('P'), OrePrefixes.stick.get(Materials.Plutonium241)}); + GT_ModHandler.addCraftingRecipe(ItemList.Generator_Naquadah_Fluid.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"NCN", "FMF", "WCW", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('F'), ItemList.Field_Generator_LuV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Osmium), Character.valueOf('N'), OrePrefixes.stick.get(Materials.NaquadahEnriched)}); + + ItemList.MagicEnergyConverter_LV.set(new GT_MetaTileEntity_MagicEnergyConverter(1123, "basicgenerator.magicenergyconverter.tier.01", "Novice Magic Energy Converter", 1).getStackForm(1L)); + ItemList.MagicEnergyConverter_MV.set(new GT_MetaTileEntity_MagicEnergyConverter(1124, "basicgenerator.magicenergyconverter.tier.02", "Adept Magic Energy Converter", 2).getStackForm(1L)); + ItemList.MagicEnergyConverter_HV.set(new GT_MetaTileEntity_MagicEnergyConverter(1125, "basicgenerator.magicenergyconverter.tier.03", "Master Magic Energy Converter", 3).getStackForm(1L)); + + + ItemList.MagicEnergyAbsorber_LV.set(new GT_MetaTileEntity_MagicalEnergyAbsorber(1127, "basicgenerator.magicenergyabsorber.tier.01", "Novice Magic Energy Absorber", 1).getStackForm(1L)); + ItemList.MagicEnergyAbsorber_MV.set(new GT_MetaTileEntity_MagicalEnergyAbsorber(1128, "basicgenerator.magicenergyabsorber.tier.02", "Adept Magic Energy Absorber", 2).getStackForm(1L)); + ItemList.MagicEnergyAbsorber_HV.set(new GT_MetaTileEntity_MagicalEnergyAbsorber(1129, "basicgenerator.magicenergyabsorber.tier.03", "Master Magic Energy Absorber", 3).getStackForm(1L)); + ItemList.MagicEnergyAbsorber_EV.set(new GT_MetaTileEntity_MagicalEnergyAbsorber(1130, "basicgenerator.magicenergyabsorber.tier.04", "Grandmaster Magic Energy Absorber", 4).getStackForm(1L)); + if (!Loader.isModLoaded("Thaumcraft")) { + + GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyConverter_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('B'), new ItemStack(Blocks.beacon), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('T'), ItemList.Field_Generator_LV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Platinum)}); + GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('B'), new ItemStack(Blocks.beacon), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Data), Character.valueOf('T'), ItemList.Field_Generator_MV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Iridium)}); + GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyConverter_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('B'), new ItemStack(Blocks.beacon), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('T'), ItemList.Field_Generator_HV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Neutronium)}); + + GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyAbsorber_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('B'), ItemList.MagicEnergyConverter_LV.get(1L, new Object[0]), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('T'), ItemList.Field_Generator_LV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Platinum)}); + GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyAbsorber_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('B'), ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Data), Character.valueOf('T'), ItemList.Field_Generator_MV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Iridium)}); + GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyAbsorber_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('B'), ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('T'), ItemList.Field_Generator_HV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Europium)}); + GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyAbsorber_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('B'), ItemList.MagicEnergyConverter_HV.get(1L, new Object[0]), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('T'), ItemList.Field_Generator_EV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Neutronium)}); + } + + ItemList.FusionComputer_LuV.set(new GT_MetaTileEntity_FusionComputer1(1193, "fusioncomputer.tier.06", "Fusion Control Computer Mark I").getStackForm(1L)); + ItemList.FusionComputer_ZPMV.set(new GT_MetaTileEntity_FusionComputer2(1194, "fusioncomputer.tier.07", "Fusion Control Computer Mark II").getStackForm(1L)); + ItemList.FusionComputer_UV.set(new GT_MetaTileEntity_FusionComputer3(1195, "fusioncomputer.tier.08", "Fusion Control Computer Mark III").getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Fusion.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('F'), ItemList.Casing_LuV}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Fusion2.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Americium), Character.valueOf('F'), ItemList.Casing_Fusion}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Fusion_Coil.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CTC", "FMF", "CTC", 'M', ItemList.Casing_Coil_Superconductor, 'C', OrePrefixes.circuit.get(Materials.Master), 'F', ItemList.Field_Generator_MV, 'T', ItemList.Neutron_Reflector}); + + GT_ModHandler.addCraftingRecipe(ItemList.FusionComputer_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CTC", "FMF", "CBC", 'M', ItemList.Casing_Fusion_Coil, 'B', OrePrefixes.plate.get(Materials.NetherStar), 'C', OrePrefixes.circuit.get(Materials.Master), 'F', ItemList.Field_Generator_IV, 'T', OrePrefixes.plate.get(Materials.Plutonium241)}); + GT_ModHandler.addCraftingRecipe(ItemList.FusionComputer_ZPMV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CBC", "FMF", "CBC", 'M', ItemList.FusionComputer_LuV, 'C', OrePrefixes.circuit.get(Materials.Master), 'F', ItemList.Field_Generator_IV, 'B', OrePrefixes.plate.get(Materials.Europium)}); + GT_ModHandler.addCraftingRecipe(ItemList.FusionComputer_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CBC", "FMF", "CBC", 'M', ItemList.FusionComputer_ZPMV, 'C', OrePrefixes.circuit.get(Materials.Master), 'F', ItemList.Field_Generator_IV, 'B', OrePrefixes.plate.get(Materials.Americium)}); + + ItemList.Generator_Plasma_IV.set(new GT_MetaTileEntity_PlasmaGenerator(1196, "basicgenerator.plasmagenerator.tier.05", "Plasma Generator Mark I", 4).getStackForm(1L)); + ItemList.Generator_Plasma_LuV.set(new GT_MetaTileEntity_PlasmaGenerator(1197, "basicgenerator.plasmagenerator.tier.06", "Plasma Generator Mark II", 5).getStackForm(1L)); + ItemList.Generator_Plasma_ZPMV.set(new GT_MetaTileEntity_PlasmaGenerator(1198, "basicgenerator.plasmagenerator.tier.07", "Plasma Generator Mark III", 6).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Generator_Plasma_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[]{"UCU", "FMF", "WCW", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('F'), ItemList.Field_Generator_HV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Tungsten), Character.valueOf('U'), OrePrefixes.stick.get(Materials.Plutonium241)}); + GT_ModHandler.addCraftingRecipe(ItemList.Generator_Plasma_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"UCU", "FMF", "WCW", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('F'), ItemList.Field_Generator_EV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Superconductor), Character.valueOf('U'), OrePrefixes.stick.get(Materials.Europium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Generator_Plasma_ZPMV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"UCU", "FMF", "WCW", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('F'), ItemList.Field_Generator_IV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Superconductor), Character.valueOf('U'), OrePrefixes.stick.get(Materials.Americium)}); + + ItemList.Processing_Array.set(new GT_MetaTileEntity_ProcessingArray(1199, "multimachine.processingarray", "Processing Array").getStackForm(1L)); + GT_ModHandler.addCraftingRecipe(ItemList.Processing_Array.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CTC", "FMF", "CBC", 'M', ItemList.Hull_EV, 'B', OrePrefixes.pipeLarge.get(Materials.StainlessSteel), 'C', OrePrefixes.circuit.get(Materials.Master), 'F', ItemList.Robot_Arm_EV, 'T', ItemList.Energy_LapotronicOrb}); + + ItemList.Distillation_Tower.set(new GT_MetaTileEntity_DistillationTower(1126, "multimachine.distillationtower", "Distillation Tower").getStackForm(1L)); + GT_ModHandler.addCraftingRecipe(ItemList.Distillation_Tower.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CBC", "FMF", "CBC", 'M', ItemList.Hull_EV, 'B', OrePrefixes.pipeLarge.get(Materials.StainlessSteel), 'C', OrePrefixes.circuit.get(Materials.Master), 'F', ItemList.Electric_Pump_EV}); + + ItemList.LargeSteamTurbine.set(new GT_MetaTileEntity_LargeTurbine_Steam(1131, "multimachine.largeturbine", "Large Steam Turbine").getStackForm(1L)); + ItemList.LargeGasTurbine.set(new GT_MetaTileEntity_LargeTurbine_Gas(1151, "multimachine.largegasturbine", "Large Gas Turbine").getStackForm(1L)); + ItemList.LargeHPSteamTurbine.set(new GT_MetaTileEntity_LargeTurbine_HPSteam(1152, "multimachine.largehpturbine", "Large High Pressure Steam Turbine").getStackForm(1L)); + ItemList.LargePlasmaTurbine.set(new GT_MetaTileEntity_LargeTurbine_Plasma(1153, "multimachine.largeplasmaturbine", "Large Plasma Generator").getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.LargeSteamTurbine.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_HV, 'B', OrePrefixes.pipeLarge.get(Materials.StainlessSteel), 'C', OrePrefixes.circuit.get(Materials.Advanced), 'P', OrePrefixes.gearGt.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.LargeGasTurbine.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_EV, 'B', OrePrefixes.pipeLarge.get(Materials.Titanium), 'C', OrePrefixes.circuit.get(Materials.Elite), 'P', OrePrefixes.gearGt.get(Materials.Titanium)}); + GT_ModHandler.addCraftingRecipe(ItemList.LargeHPSteamTurbine.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.Master), 'P', OrePrefixes.gearGt.get(Materials.TungstenSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.LargePlasmaTurbine.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_UV, 'B', OrePrefixes.pipeHuge.get(Materials.TungstenSteel), 'C', OrePrefixes.circuit.get(Materials.Master), 'P', OrePrefixes.gearGt.get(Materials.TungstenSteel)}); + + + ItemList.Pump_LV.set(new GT_MetaTileEntity_Pump(1140, "basicmachine.pump.tier.01", "Basic Pump", 1).getStackForm(1L)); + ItemList.Pump_MV.set(new GT_MetaTileEntity_Pump(1141, "basicmachine.pump.tier.02", "Advanced Pump", 2).getStackForm(1L)); + ItemList.Pump_HV.set(new GT_MetaTileEntity_Pump(1142, "basicmachine.pump.tier.03", "Advanced Pump II", 3).getStackForm(1L)); + ItemList.Pump_EV.set(new GT_MetaTileEntity_Pump(1143, "basicmachine.pump.tier.04", "Advanced Pump III", 4).getStackForm(1L)); + ItemList.Pump_IV.set(new GT_MetaTileEntity_Pump(1144, "basicmachine.pump.tier.05", "Advanced Pump IV", 5).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Pump_LV.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_LV, 'B', OrePrefixes.pipeLarge.get(Materials.Bronze), 'C', OrePrefixes.circuit.get(Materials.Basic), 'P', ItemList.Electric_Pump_LV}); + GT_ModHandler.addCraftingRecipe(ItemList.Pump_MV.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_MV, 'B', OrePrefixes.pipeLarge.get(Materials.Steel), 'C', OrePrefixes.circuit.get(Materials.Good), 'P', ItemList.Electric_Pump_MV}); + GT_ModHandler.addCraftingRecipe(ItemList.Pump_HV.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_HV, 'B', OrePrefixes.pipeLarge.get(Materials.StainlessSteel), 'C', OrePrefixes.circuit.get(Materials.Advanced), 'P', ItemList.Electric_Pump_HV}); + GT_ModHandler.addCraftingRecipe(ItemList.Pump_EV.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_EV, 'B', OrePrefixes.pipeLarge.get(Materials.Titanium), 'C', OrePrefixes.circuit.get(Materials.Data), 'P', ItemList.Electric_Pump_EV}); + 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", "BCB", 'M', ItemList.Hull_LuV, 'B', ItemList.Tool_DataOrb, 'C', OrePrefixes.circuit.get(Materials.Master), 'P', ItemList.Field_Generator_EV}); + + ItemList.MobRep_LV.set(new GT_MetaTileEntity_MonsterRepellent(1146, "basicmachine.mobrep.tier.01", "Basic Monster Repellator", 1).getStackForm(1L)); + ItemList.MobRep_MV.set(new GT_MetaTileEntity_MonsterRepellent(1147, "basicmachine.mobrep.tier.02", "Advanced Monster Repellator", 2).getStackForm(1L)); + ItemList.MobRep_HV.set(new GT_MetaTileEntity_MonsterRepellent(1148, "basicmachine.mobrep.tier.03", "Advanced Monster Repellator II", 3).getStackForm(1L)); + ItemList.MobRep_EV.set(new GT_MetaTileEntity_MonsterRepellent(1149, "basicmachine.mobrep.tier.04", "Advanced Monster Repellator III", 4).getStackForm(1L)); + ItemList.MobRep_IV.set(new GT_MetaTileEntity_MonsterRepellent(1150, "basicmachine.mobrep.tier.05", "Advanced Monster Repellator IV", 5).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.MobRep_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EEE", " M ", "CCC", 'M', ItemList.Hull_LV, 'E', ItemList.Emitter_LV.get(1L, new Object[0]), 'C', OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.addCraftingRecipe(ItemList.MobRep_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EEE", " M ", "CCC", 'M', ItemList.Hull_MV, 'E', ItemList.Emitter_MV.get(1L, new Object[0]), 'C', OrePrefixes.circuit.get(Materials.Good)}); + GT_ModHandler.addCraftingRecipe(ItemList.MobRep_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EEE", " M ", "CCC", 'M', ItemList.Hull_HV, 'E', ItemList.Emitter_HV.get(1L, new Object[0]), 'C', OrePrefixes.circuit.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.MobRep_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EEE", " M ", "CCC", 'M', ItemList.Hull_EV, 'E', ItemList.Emitter_EV.get(1L, new Object[0]), 'C', OrePrefixes.circuit.get(Materials.Data)}); + GT_ModHandler.addCraftingRecipe(ItemList.MobRep_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[]{"EEE", " M ", "CCC", 'M', ItemList.Hull_IV, 'E', ItemList.Emitter_IV.get(1L, new Object[0]), 'C', OrePrefixes.circuit.get(Materials.Elite)}); + + ItemList.Machine_Multi_HeatExchanger.set(new GT_MetaTileEntity_HeatExchanger(1154, "multimachine.heatexchanger", "Large Heat Exchanger").getStackForm(1L)); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_HeatExchanger.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WCW", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_Pipe_Titanium, Character.valueOf('C'), OrePrefixes.pipeMedium.get(Materials.Titanium), Character.valueOf('W'), ItemList.Electric_Pump_EV}); + } + + private static void run4() { + for (int i = 0; i < GregTech_API.sGeneratedMaterials.length; i++) { + if (((GregTech_API.sGeneratedMaterials[i] != null) && ((GregTech_API.sGeneratedMaterials[i].mTypes & 0x2) != 0)) || (GregTech_API.sGeneratedMaterials[i] == Materials.Wood)) { + new GT_MetaPipeEntity_Frame(4096 + i, "GT_Frame_" + GregTech_API.sGeneratedMaterials[i], GregTech_API.sGeneratedMaterials[i].mDefaultLocalName + " Frame Box", GregTech_API.sGeneratedMaterials[i]); + } + } + boolean bEC = !GT_Mod.gregtechproxy.mHardcoreCables; + + makeWires(Materials.Cobalt, 1200, bEC ? 2L : 2L, bEC ? 4L : 4L, 2L, gregtech.api.enums.GT_Values.V[1], true, false); + makeWires(Materials.Lead, 1220, bEC ? 2L : 2L, bEC ? 4L : 4L, 2L, gregtech.api.enums.GT_Values.V[1], true, false); + makeWires(Materials.Tin, 1240, bEC ? 1L : 1L, bEC ? 2L : 2L, 1L, gregtech.api.enums.GT_Values.V[1], true, false); + makeWires(Materials.Zinc, 1260, bEC ? 1L : 1L, bEC ? 2L : 2L, 1L, gregtech.api.enums.GT_Values.V[1], true, false); + makeWires(Materials.SolderingAlloy, 1280, bEC ? 1L : 1L, bEC ? 2L : 2L, 1L, gregtech.api.enums.GT_Values.V[1], true, false); + + makeWires(Materials.Iron, 1300, bEC ? 3L : 4L, bEC ? 6L : 8L, 2L, gregtech.api.enums.GT_Values.V[2], true, false); + makeWires(Materials.Nickel, 1320, bEC ? 3L : 5L, bEC ? 6L : 10L, 3L, gregtech.api.enums.GT_Values.V[2], true, false); + makeWires(Materials.Cupronickel, 1340, bEC ? 3L : 4L, bEC ? 6L : 8L, 2L, gregtech.api.enums.GT_Values.V[2], true, false); + makeWires(Materials.Copper, 1360, bEC ? 2L : 3L, bEC ? 4L : 6L, 1L, gregtech.api.enums.GT_Values.V[2], true, false); + makeWires(Materials.AnnealedCopper, 1380, bEC ? 1L : 2L, bEC ? 2L : 4L, 1L, gregtech.api.enums.GT_Values.V[2], true, false); + + makeWires(Materials.Kanthal, 1400, bEC ? 3L : 8L, bEC ? 6L : 16L, 4L, gregtech.api.enums.GT_Values.V[3], true, false); + makeWires(Materials.Gold, 1420, bEC ? 2L : 6L, bEC ? 4L : 12L, 3L, gregtech.api.enums.GT_Values.V[3], true, false); + makeWires(Materials.Electrum, 1440, bEC ? 2L : 5L, bEC ? 4L : 10L, 2L, gregtech.api.enums.GT_Values.V[3], true, false); + makeWires(Materials.Silver, 1460, bEC ? 1L : 4L, bEC ? 2L : 8L, 1L, gregtech.api.enums.GT_Values.V[3], true, false); + makeWires(Materials.BlueAlloy, 1480, bEC ? 1L : 4L, bEC ? 2L : 8L, 2L, gregtech.api.enums.GT_Values.V[3], true, false); + + makeWires(Materials.Nichrome, 1500, bEC ? 4L : 32L, bEC ? 8L : 64L, 3L, gregtech.api.enums.GT_Values.V[4], true, false); + makeWires(Materials.Steel, 1520, bEC ? 2L : 16L, bEC ? 4L : 32L, 2L, gregtech.api.enums.GT_Values.V[4], true, false); + makeWires(Materials.TungstenSteel, 1540, bEC ? 2L : 14L, bEC ? 4L : 28L, 3L, gregtech.api.enums.GT_Values.V[4], true, false); + makeWires(Materials.Tungsten, 1560, bEC ? 2L : 12L, bEC ? 4L : 24L, 4L, gregtech.api.enums.GT_Values.V[4], true, false); + makeWires(Materials.Aluminium, 1580, bEC ? 1L : 8L, bEC ? 2L : 16L, 1L, gregtech.api.enums.GT_Values.V[4], true, false); + + makeWires(Materials.Graphene, 1600, bEC ? 1L : 16L, bEC ? 2L : 32L, 1L, gregtech.api.enums.GT_Values.V[5], false, true); + makeWires(Materials.Osmium, 1620, bEC ? 2L : 32L, bEC ? 4L : 64L, 4L, gregtech.api.enums.GT_Values.V[5], true, false); + makeWires(Materials.Platinum, 1640, bEC ? 1L : 16L, bEC ? 2L : 32L, 2L, gregtech.api.enums.GT_Values.V[5], true, false); + + makeWires(Materials.Naquadah, 1700, bEC ? 1L : 64L, bEC ? 2L : 128L, 4L, gregtech.api.enums.GT_Values.V[6], true, false); + makeWires(Materials.NiobiumTitanium, 1720, bEC ? 2L : 128L, bEC ? 4L : 256L, 4L, gregtech.api.enums.GT_Values.V[6], true, false); + makeWires(Materials.VanadiumGallium, 1740, bEC ? 2L : 128L, bEC ? 4L : 256L, 4L, gregtech.api.enums.GT_Values.V[6], true, false); + makeWires(Materials.YttriumBariumCuprate, 1760, bEC ? 4L : 256L, bEC ? 8L : 512L, 4L, gregtech.api.enums.GT_Values.V[6], true, false); + + makeWires(Materials.RedAlloy, 2000, 0L, 1L, 1L, gregtech.api.enums.GT_Values.V[0], true, false); + + makeWires(Materials.Superconductor, 2020, 1L, 1L, 4L, gregtech.api.enums.GT_Values.V[9], false, true); + if (!GT_Mod.gregtechproxy.mDisableIC2Cables) { + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("copperCableItem", 2L), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"xP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyCopper)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("goldCableItem", 4L), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"xP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Gold)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("ironCableItem", 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"xP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyIron)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("tinCableItem", 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"xP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Tin)}); + } + + + GT_OreDictUnificator.registerOre(OrePrefixes.pipeSmall.get(Materials.Wood), new GT_MetaPipeEntity_Fluid(5101, "GT_Pipe_Wood_Small", "Small Wooden Fluid Pipe", 0.375F, Materials.Wood, 10, 350, false).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Wood), new GT_MetaPipeEntity_Fluid(5102, "GT_Pipe_Wood", "Wooden Fluid Pipe", 0.5F, Materials.Wood, 30, 350, false).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.Wood), new GT_MetaPipeEntity_Fluid(5103, "GT_Pipe_Wood_Large", "Large Wooden Fluid Pipe", 0.75F, Materials.Wood, 60, 350, false).getStackForm(1L)); + + GT_OreDictUnificator.registerOre(OrePrefixes.pipeTiny.get(Materials.Copper), new GT_MetaPipeEntity_Fluid(5110, "GT_Pipe_Copper_Tiny", "Tiny Copper Fluid Pipe", 0.25F, Materials.Copper, 10, 1000, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeSmall.get(Materials.Copper), new GT_MetaPipeEntity_Fluid(5111, "GT_Pipe_Copper_Small", "Small Copper Fluid Pipe", 0.375F, Materials.Copper, 20, 1000, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Copper), new GT_MetaPipeEntity_Fluid(5112, "GT_Pipe_Copper", "Copper Fluid Pipe", 0.5F, Materials.Copper, 60, 1000, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.Copper), new GT_MetaPipeEntity_Fluid(5113, "GT_Pipe_Copper_Large", "Large Copper Fluid Pipe", 0.75F, Materials.Copper, 120, 1000, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.Copper), new GT_MetaPipeEntity_Fluid(5114, "GT_Pipe_Copper_Huge", "Huge Copper Fluid Pipe", 1.0F, Materials.Copper, 240, 1000, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeTiny.get(Materials.Bronze), new GT_MetaPipeEntity_Fluid(5120, "GT_Pipe_Bronze_Tiny", "Tiny Bronze Fluid Pipe", 0.25F, Materials.Bronze, 20, 2000, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeSmall.get(Materials.Bronze), new GT_MetaPipeEntity_Fluid(5121, "GT_Pipe_Bronze_Small", "Small Bronze Fluid Pipe", 0.375F, Materials.Bronze, 40, 2000, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Bronze), new GT_MetaPipeEntity_Fluid(5122, "GT_Pipe_Bronze", "Bronze Fluid Pipe", 0.5F, Materials.Bronze, 120, 2000, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.Bronze), new GT_MetaPipeEntity_Fluid(5123, "GT_Pipe_Bronze_Large", "Large Bronze Fluid Pipe", 0.75F, Materials.Bronze, 240, 2000, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.Bronze), new GT_MetaPipeEntity_Fluid(5124, "GT_Pipe_Bronze_Huge", "Huge Bronze Fluid Pipe", 1.0F, Materials.Bronze, 480, 2000, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeTiny.get(Materials.Steel), new GT_MetaPipeEntity_Fluid(5130, "GT_Pipe_Steel_Tiny", "Tiny Steel Fluid Pipe", 0.25F, Materials.Steel, 40, 2500, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeSmall.get(Materials.Steel), new GT_MetaPipeEntity_Fluid(5131, "GT_Pipe_Steel_Small", "Small Steel Fluid Pipe", 0.375F, Materials.Steel, 80, 2500, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Steel), new GT_MetaPipeEntity_Fluid(5132, "GT_Pipe_Steel", "Steel Fluid Pipe", 0.5F, Materials.Steel, 240, 2500, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.Steel), new GT_MetaPipeEntity_Fluid(5133, "GT_Pipe_Steel_Large", "Large Steel Fluid Pipe", 0.75F, Materials.Steel, 480, 2500, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.Steel), new GT_MetaPipeEntity_Fluid(5134, "GT_Pipe_Steel_Huge", "Huge Steel Fluid Pipe", 1.0F, Materials.Steel, 960, 2500, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeTiny.get(Materials.StainlessSteel), new GT_MetaPipeEntity_Fluid(5140, "GT_Pipe_StainlessSteel_Tiny", "Tiny Stainless Steel Fluid Pipe", 0.25F, Materials.StainlessSteel, 60, 3000, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeSmall.get(Materials.StainlessSteel), new GT_MetaPipeEntity_Fluid(5141, "GT_Pipe_StainlessSteel_Small", "Small Stainless Steel Fluid Pipe", 0.375F, Materials.StainlessSteel, 120, 3000, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.StainlessSteel), new GT_MetaPipeEntity_Fluid(5142, "GT_Pipe_StainlessSteel", "Stainless Steel Fluid Pipe", 0.5F, Materials.StainlessSteel, 360, 3000, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.StainlessSteel), new GT_MetaPipeEntity_Fluid(5143, "GT_Pipe_StainlessSteel_Large", "Large Stainless Steel Fluid Pipe", 0.75F, Materials.StainlessSteel, 720, 3000, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.StainlessSteel), new GT_MetaPipeEntity_Fluid(5144, "GT_Pipe_StainlessSteel_Huge", "Huge Stainless Steel Fluid Pipe", 1.0F, Materials.StainlessSteel, 1440, 3000, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeTiny.get(Materials.Titanium), new GT_MetaPipeEntity_Fluid(5150, "GT_Pipe_Titanium_Tiny", "Tiny Titanium Fluid Pipe", 0.25F, Materials.Titanium, 80, 5000, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeSmall.get(Materials.Titanium), new GT_MetaPipeEntity_Fluid(5151, "GT_Pipe_Titanium_Small", "Small Titanium Fluid Pipe", 0.375F, Materials.Titanium, 160, 5000, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Titanium), new GT_MetaPipeEntity_Fluid(5152, "GT_Pipe_Titanium", "Titanium Fluid Pipe", 0.5F, Materials.Titanium, 480, 5000, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.Titanium), new GT_MetaPipeEntity_Fluid(5153, "GT_Pipe_Titanium_Large", "Large Titanium Fluid Pipe", 0.75F, Materials.Titanium, 960, 5000, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.Titanium), new GT_MetaPipeEntity_Fluid(5154, "GT_Pipe_Titanium_Huge", "Huge Titanium Fluid Pipe", 1.0F, Materials.Titanium, 1920, 5000, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeTiny.get(Materials.TungstenSteel), new GT_MetaPipeEntity_Fluid(5160, "GT_Pipe_TungstenSteel_Tiny", "Tiny Tungstensteel Fluid Pipe", 0.25F, Materials.TungstenSteel, 100, 12500, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeSmall.get(Materials.TungstenSteel), new GT_MetaPipeEntity_Fluid(5161, "GT_Pipe_TungstenSteel_Small", "Small Tungstensteel Fluid Pipe", 0.375F, Materials.TungstenSteel, 200, 12500, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.TungstenSteel), new GT_MetaPipeEntity_Fluid(5162, "GT_Pipe_TungstenSteel", "Tungstensteel Fluid Pipe", 0.5F, Materials.TungstenSteel, 600, 12500, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.TungstenSteel), new GT_MetaPipeEntity_Fluid(5163, "GT_Pipe_TungstenSteel_Large", "Large Tungstensteel Fluid Pipe", 0.75F, Materials.TungstenSteel, 1200, 12500, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.TungstenSteel), new GT_MetaPipeEntity_Fluid(5164, "GT_Pipe_TungstenSteel_Huge", "Huge Tungstensteel Fluid Pipe", 1.0F, Materials.TungstenSteel, 2400, 12500, true).getStackForm(1L)); + + + GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Brass), new GT_MetaPipeEntity_Item(5602, "GT_Pipe_Brass", "Brass Item Pipe", 0.5F, Materials.Brass, 1, 32768, false).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.Brass), new GT_MetaPipeEntity_Item(5603, "GT_Pipe_Brass_Large", "Large Brass Item Pipe", 0.75F, Materials.Brass, 2, 16384, false).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.Brass), new GT_MetaPipeEntity_Item(5604, "GT_Pipe_Brass_Huge", "Huge Brass Item Pipe", 1.0F, Materials.Brass, 4, 8192, false).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveMedium.get(Materials.Brass), new GT_MetaPipeEntity_Item(5607, "GT_Pipe_Restrictive_Brass", "Restrictive Brass Item Pipe", 0.5F, Materials.Brass, 1, 3276800, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveLarge.get(Materials.Brass), new GT_MetaPipeEntity_Item(5608, "GT_Pipe_Restrictive_Brass_Large", "Large Restrictive Brass Item Pipe", 0.75F, Materials.Brass, 2, 1638400, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveHuge.get(Materials.Brass), new GT_MetaPipeEntity_Item(5609, "GT_Pipe_Restrictive_Brass_Huge", "Huge Restrictive Brass Item Pipe", 1.0F, Materials.Brass, 4, 819200, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Electrum), new GT_MetaPipeEntity_Item(5612, "GT_Pipe_Electrum", "Electrum Item Pipe", 0.5F, Materials.Electrum, 2, 16384, false).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.Electrum), new GT_MetaPipeEntity_Item(5613, "GT_Pipe_Electrum_Large", "Large Electrum Item Pipe", 0.75F, Materials.Electrum, 4, 8192, false).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.Electrum), new GT_MetaPipeEntity_Item(5614, "GT_Pipe_Electrum_Huge", "Huge Electrum Item Pipe", 1.0F, Materials.Electrum, 8, 4096, false).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveMedium.get(Materials.Electrum), new GT_MetaPipeEntity_Item(5617, "GT_Pipe_Restrictive_Electrum", "Restrictive Electrum Item Pipe", 0.5F, Materials.Electrum, 2, 1638400, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveLarge.get(Materials.Electrum), new GT_MetaPipeEntity_Item(5618, "GT_Pipe_Restrictive_Electrum_Large", "Large Restrictive Electrum Item Pipe", 0.75F, Materials.Electrum, 4, 819200, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveHuge.get(Materials.Electrum), new GT_MetaPipeEntity_Item(5619, "GT_Pipe_Restrictive_Electrum_Huge", "Huge Restrictive Electrum Item Pipe", 1.0F, Materials.Electrum, 8, 409600, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Platinum), new GT_MetaPipeEntity_Item(5622, "GT_Pipe_Platinum", "Platinum Item Pipe", 0.5F, Materials.Platinum, 4, 8192, false).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.Platinum), new GT_MetaPipeEntity_Item(5623, "GT_Pipe_Platinum_Large", "Large Platinum Item Pipe", 0.75F, Materials.Platinum, 8, 4096, false).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.Platinum), new GT_MetaPipeEntity_Item(5624, "GT_Pipe_Platinum_Huge", "Huge Platinum Item Pipe", 1.0F, Materials.Platinum, 16, 2048, false).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveMedium.get(Materials.Platinum), new GT_MetaPipeEntity_Item(5627, "GT_Pipe_Restrictive_Platinum", "Restrictive Platinum Item Pipe", 0.5F, Materials.Platinum, 4, 819200, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveLarge.get(Materials.Platinum), new GT_MetaPipeEntity_Item(5628, "GT_Pipe_Restrictive_Platinum_Large", "Large Restrictive Platinum Item Pipe", 0.75F, Materials.Platinum, 8, 409600, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveHuge.get(Materials.Platinum), new GT_MetaPipeEntity_Item(5629, "GT_Pipe_Restrictive_Platinum_Huge", "Huge Restrictive Platinum Item Pipe", 1.0F, Materials.Platinum, 16, 204800, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Osmium), new GT_MetaPipeEntity_Item(5632, "GT_Pipe_Osmium", "Osmium Item Pipe", 0.5F, Materials.Osmium, 8, 4096, false).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.Osmium), new GT_MetaPipeEntity_Item(5633, "GT_Pipe_Osmium_Large", "Large Osmium Item Pipe", 0.75F, Materials.Osmium, 16, 2048, false).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.Osmium), new GT_MetaPipeEntity_Item(5634, "GT_Pipe_Osmium_Huge", "Huge Osmium Item Pipe", 1.0F, Materials.Osmium, 32, 1024, false).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveMedium.get(Materials.Osmium), new GT_MetaPipeEntity_Item(5637, "GT_Pipe_Restrictive_Osmium", "Restrictive Osmium Item Pipe", 0.5F, Materials.Osmium, 8, 409600, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveLarge.get(Materials.Osmium), new GT_MetaPipeEntity_Item(5638, "GT_Pipe_Restrictive_Osmium_Large", "Large Restrictive Osmium Item Pipe", 0.75F, Materials.Osmium, 16, 204800, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveHuge.get(Materials.Osmium), new GT_MetaPipeEntity_Item(5639, "GT_Pipe_Restrictive_Osmium_Huge", "Huge Restrictive Osmium Item Pipe", 1.0F, Materials.Osmium, 32, 102400, true).getStackForm(1L)); + + + ItemList.Automation_ChestBuffer_ULV.set(new GT_MetaTileEntity_ChestBuffer(9230, "automation.chestbuffer.tier.00", "Ultra Low Voltage Chest Buffer", 0).getStackForm(1L)); + ItemList.Automation_ChestBuffer_LV.set(new GT_MetaTileEntity_ChestBuffer(9231, "automation.chestbuffer.tier.01", "Low Voltage Chest Buffer", 1).getStackForm(1L)); + ItemList.Automation_ChestBuffer_MV.set(new GT_MetaTileEntity_ChestBuffer(9232, "automation.chestbuffer.tier.02", "Medium Voltage Chest Buffer", 2).getStackForm(1L)); + ItemList.Automation_ChestBuffer_HV.set(new GT_MetaTileEntity_ChestBuffer(9233, "automation.chestbuffer.tier.03", "High Voltage Chest Buffer", 3).getStackForm(1L)); + ItemList.Automation_ChestBuffer_EV.set(new GT_MetaTileEntity_ChestBuffer(9234, "automation.chestbuffer.tier.04", "Extreme Voltage Chest Buffer", 4).getStackForm(1L)); + ItemList.Automation_ChestBuffer_IV.set(new GT_MetaTileEntity_ChestBuffer(9235, "automation.chestbuffer.tier.05", "Insane Voltage Chest Buffer", 5).getStackForm(1L)); + ItemList.Automation_ChestBuffer_LuV.set(new GT_MetaTileEntity_ChestBuffer(9236, "automation.chestbuffer.tier.06", "Ludicrous Voltage Chest Buffer", 6).getStackForm(1L)); + ItemList.Automation_ChestBuffer_ZPM.set(new GT_MetaTileEntity_ChestBuffer(9237, "automation.chestbuffer.tier.07", "ZPM Voltage Chest Buffer", 7).getStackForm(1L)); + ItemList.Automation_ChestBuffer_UV.set(new GT_MetaTileEntity_ChestBuffer(9238, "automation.chestbuffer.tier.08", "Ultimate Voltage Chest Buffer", 8).getStackForm(1L)); + ItemList.Automation_ChestBuffer_MAX.set(new GT_MetaTileEntity_ChestBuffer(9239, "automation.chestbuffer.tier.09", "MAX Voltage Chest Buffer", 9).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Automation_ChestBuffer_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMV", " X ", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('V'), ItemList.Conveyor_Module_LV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_ChestBuffer_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMV", " X ", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('V'), ItemList.Conveyor_Module_LV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_ChestBuffer_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMV", " X ", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('V'), ItemList.Conveyor_Module_MV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_ChestBuffer_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMV", " X ", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('V'), ItemList.Conveyor_Module_HV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_ChestBuffer_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMV", " X ", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('V'), ItemList.Conveyor_Module_EV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_ChestBuffer_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[]{"CMV", " X ", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('V'), ItemList.Conveyor_Module_IV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_ChestBuffer_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMV", " X ", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('V'), ItemList.Conveyor_Module_LuV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_ChestBuffer_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMV", " X ", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('V'), ItemList.Conveyor_Module_ZPM, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_ChestBuffer_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMV", " X ", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('V'), ItemList.Conveyor_Module_UV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_ChestBuffer_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMV", " X ", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('V'), ItemList.Conveyor_Module_UV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic)}); + + ItemList.Automation_Filter_ULV.set(new GT_MetaTileEntity_Filter(9240, "automation.filter.tier.00", "Ultra Low Voltage Item Filter", 0).getStackForm(1L)); + ItemList.Automation_Filter_LV.set(new GT_MetaTileEntity_Filter(9241, "automation.filter.tier.01", "Low Voltage Item Filter", 1).getStackForm(1L)); + ItemList.Automation_Filter_MV.set(new GT_MetaTileEntity_Filter(9242, "automation.filter.tier.02", "Medium Voltage Item Filter", 2).getStackForm(1L)); + ItemList.Automation_Filter_HV.set(new GT_MetaTileEntity_Filter(9243, "automation.filter.tier.03", "High Voltage Item Filter", 3).getStackForm(1L)); + ItemList.Automation_Filter_EV.set(new GT_MetaTileEntity_Filter(9244, "automation.filter.tier.04", "Extreme Voltage Item Filter", 4).getStackForm(1L)); + ItemList.Automation_Filter_IV.set(new GT_MetaTileEntity_Filter(9245, "automation.filter.tier.05", "Insane Voltage Item Filter", 5).getStackForm(1L)); + ItemList.Automation_Filter_LuV.set(new GT_MetaTileEntity_Filter(9246, "automation.filter.tier.06", "Ludicrous Voltage Item Filter", 6).getStackForm(1L)); + ItemList.Automation_Filter_ZPM.set(new GT_MetaTileEntity_Filter(9247, "automation.filter.tier.07", "ZPM Voltage Item Filter", 7).getStackForm(1L)); + ItemList.Automation_Filter_UV.set(new GT_MetaTileEntity_Filter(9248, "automation.filter.tier.08", "Ultimate Voltage Item Filter", 8).getStackForm(1L)); + ItemList.Automation_Filter_MAX.set(new GT_MetaTileEntity_Filter(9249, "automation.filter.tier.09", "MAX Voltage Item Filter", 9).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Automation_Filter_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('V'), ItemList.Conveyor_Module_LV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_Filter_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('V'), ItemList.Conveyor_Module_LV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_Filter_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('V'), ItemList.Conveyor_Module_MV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_Filter_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('V'), ItemList.Conveyor_Module_HV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_Filter_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('V'), ItemList.Conveyor_Module_EV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_Filter_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[]{" F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('V'), ItemList.Conveyor_Module_IV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_Filter_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('V'), ItemList.Conveyor_Module_LuV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_Filter_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('V'), ItemList.Conveyor_Module_ZPM, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_Filter_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('V'), ItemList.Conveyor_Module_UV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_Filter_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('V'), ItemList.Conveyor_Module_UV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic)}); + + ItemList.Automation_TypeFilter_ULV.set(new GT_MetaTileEntity_TypeFilter(9250, "automation.typefilter.tier.00", "Ultra Low Voltage Type Filter", 0).getStackForm(1L)); + ItemList.Automation_TypeFilter_LV.set(new GT_MetaTileEntity_TypeFilter(9251, "automation.typefilter.tier.01", "Low Voltage Type Filter", 1).getStackForm(1L)); + ItemList.Automation_TypeFilter_MV.set(new GT_MetaTileEntity_TypeFilter(9252, "automation.typefilter.tier.02", "Medium Voltage Type Filter", 2).getStackForm(1L)); + ItemList.Automation_TypeFilter_HV.set(new GT_MetaTileEntity_TypeFilter(9253, "automation.typefilter.tier.03", "High Voltage Type Filter", 3).getStackForm(1L)); + ItemList.Automation_TypeFilter_EV.set(new GT_MetaTileEntity_TypeFilter(9254, "automation.typefilter.tier.04", "Extreme Voltage Type Filter", 4).getStackForm(1L)); + ItemList.Automation_TypeFilter_IV.set(new GT_MetaTileEntity_TypeFilter(9255, "automation.typefilter.tier.05", "Insane Voltage Type Filter", 5).getStackForm(1L)); + ItemList.Automation_TypeFilter_LuV.set(new GT_MetaTileEntity_TypeFilter(9256, "automation.typefilter.tier.06", "Ludicrous Voltage Type Filter", 6).getStackForm(1L)); + ItemList.Automation_TypeFilter_ZPM.set(new GT_MetaTileEntity_TypeFilter(9257, "automation.typefilter.tier.07", "ZPM Voltage Type Filter", 7).getStackForm(1L)); + ItemList.Automation_TypeFilter_UV.set(new GT_MetaTileEntity_TypeFilter(9258, "automation.typefilter.tier.08", "Ultimate Voltage Type Filter", 8).getStackForm(1L)); + ItemList.Automation_TypeFilter_MAX.set(new GT_MetaTileEntity_TypeFilter(9259, "automation.typefilter.tier.09", "MAX Voltage Type Filter", 9).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Automation_TypeFilter_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('V'), ItemList.Conveyor_Module_LV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_TypeFilter_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('V'), ItemList.Conveyor_Module_LV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_TypeFilter_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('V'), ItemList.Conveyor_Module_MV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_TypeFilter_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('V'), ItemList.Conveyor_Module_HV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_TypeFilter_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('V'), ItemList.Conveyor_Module_EV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_TypeFilter_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[]{" F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('V'), ItemList.Conveyor_Module_IV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_TypeFilter_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('V'), ItemList.Conveyor_Module_LuV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_TypeFilter_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('V'), ItemList.Conveyor_Module_ZPM, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_TypeFilter_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('V'), ItemList.Conveyor_Module_UV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_TypeFilter_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{" F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('V'), ItemList.Conveyor_Module_UV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced)}); + + ItemList.Automation_Regulator_ULV.set(new GT_MetaTileEntity_Regulator(9270, "automation.regulator.tier.00", "Ultra Low Voltage Regulator", 0).getStackForm(1L)); + ItemList.Automation_Regulator_LV.set(new GT_MetaTileEntity_Regulator(9271, "automation.regulator.tier.01", "Low Voltage Regulator", 1).getStackForm(1L)); + ItemList.Automation_Regulator_MV.set(new GT_MetaTileEntity_Regulator(9272, "automation.regulator.tier.02", "Medium Voltage Regulator", 2).getStackForm(1L)); + ItemList.Automation_Regulator_HV.set(new GT_MetaTileEntity_Regulator(9273, "automation.regulator.tier.03", "High Voltage Regulator", 3).getStackForm(1L)); + ItemList.Automation_Regulator_EV.set(new GT_MetaTileEntity_Regulator(9274, "automation.regulator.tier.04", "Extreme Voltage Regulator", 4).getStackForm(1L)); + ItemList.Automation_Regulator_IV.set(new GT_MetaTileEntity_Regulator(9275, "automation.regulator.tier.05", "Insane Voltage Regulator", 5).getStackForm(1L)); + ItemList.Automation_Regulator_LuV.set(new GT_MetaTileEntity_Regulator(9276, "automation.regulator.tier.06", "Ludicrous Voltage Regulator", 6).getStackForm(1L)); + ItemList.Automation_Regulator_ZPM.set(new GT_MetaTileEntity_Regulator(9277, "automation.regulator.tier.07", "ZPM Voltage Regulator", 7).getStackForm(1L)); + ItemList.Automation_Regulator_UV.set(new GT_MetaTileEntity_Regulator(9278, "automation.regulator.tier.08", "Ultimate Voltage Regulator", 8).getStackForm(1L)); + ItemList.Automation_Regulator_MAX.set(new GT_MetaTileEntity_Regulator(9279, "automation.regulator.tier.09", "MAX Voltage Regulator", 9).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Automation_Regulator_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XFX", "VMV", "XCX", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('V'), ItemList.Robot_Arm_LV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_Regulator_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XFX", "VMV", "XCX", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('V'), ItemList.Robot_Arm_LV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_Regulator_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XFX", "VMV", "XCX", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('V'), ItemList.Robot_Arm_MV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_Regulator_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XFX", "VMV", "XCX", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('V'), ItemList.Robot_Arm_HV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_Regulator_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XFX", "VMV", "XCX", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('V'), ItemList.Robot_Arm_EV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_Regulator_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[]{"XFX", "VMV", "XCX", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('V'), ItemList.Robot_Arm_IV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_Regulator_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XFX", "VMV", "XCX", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('V'), ItemList.Robot_Arm_LuV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_Regulator_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XFX", "VMV", "XCX", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('V'), ItemList.Robot_Arm_ZPM, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_Regulator_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XFX", "VMV", "XCX", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('V'), ItemList.Robot_Arm_UV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_Regulator_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XFX", "VMV", "XCX", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('V'), ItemList.Robot_Arm_UV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced)}); + + ItemList.Automation_SuperBuffer_ULV.set(new GT_MetaTileEntity_SuperBuffer(9300, "automation.superbuffer.tier.00", "Ultra Low Voltage Super Buffer", 0).getStackForm(1L)); + ItemList.Automation_SuperBuffer_LV.set(new GT_MetaTileEntity_SuperBuffer(9301, "automation.superbuffer.tier.01", "Low Voltage Super Buffer", 1).getStackForm(1L)); + ItemList.Automation_SuperBuffer_MV.set(new GT_MetaTileEntity_SuperBuffer(9302, "automation.superbuffer.tier.02", "Medium Voltage Super Buffer", 2).getStackForm(1L)); + ItemList.Automation_SuperBuffer_HV.set(new GT_MetaTileEntity_SuperBuffer(9303, "automation.superbuffer.tier.03", "High Voltage Super Buffer", 3).getStackForm(1L)); + ItemList.Automation_SuperBuffer_EV.set(new GT_MetaTileEntity_SuperBuffer(9304, "automation.superbuffer.tier.04", "Extreme Voltage Super Buffer", 4).getStackForm(1L)); + ItemList.Automation_SuperBuffer_IV.set(new GT_MetaTileEntity_SuperBuffer(9305, "automation.superbuffer.tier.05", "Insane Voltage Super Buffer", 5).getStackForm(1L)); + ItemList.Automation_SuperBuffer_LuV.set(new GT_MetaTileEntity_SuperBuffer(9306, "automation.superbuffer.tier.06", "Ludicrous Voltage Super Buffer", 6).getStackForm(1L)); + ItemList.Automation_SuperBuffer_ZPM.set(new GT_MetaTileEntity_SuperBuffer(9307, "automation.superbuffer.tier.07", "ZPM Voltage Super Buffer", 7).getStackForm(1L)); + ItemList.Automation_SuperBuffer_UV.set(new GT_MetaTileEntity_SuperBuffer(9308, "automation.superbuffer.tier.08", "Ultimate Voltage Super Buffer", 8).getStackForm(1L)); + ItemList.Automation_SuperBuffer_MAX.set(new GT_MetaTileEntity_SuperBuffer(9309, "automation.superbuffer.tier.09", "MAX Voltage Super Buffer", 9).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Automation_SuperBuffer_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DMV", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('V'), ItemList.Conveyor_Module_LV, Character.valueOf('D'), ItemList.Tool_DataOrb}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_SuperBuffer_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DMV", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('V'), ItemList.Conveyor_Module_LV, Character.valueOf('D'), ItemList.Tool_DataOrb}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_SuperBuffer_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DMV", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('V'), ItemList.Conveyor_Module_MV, Character.valueOf('D'), ItemList.Tool_DataOrb}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_SuperBuffer_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DMV", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('V'), ItemList.Conveyor_Module_HV, Character.valueOf('D'), ItemList.Tool_DataOrb}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_SuperBuffer_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DMV", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('V'), ItemList.Conveyor_Module_EV, Character.valueOf('D'), ItemList.Tool_DataOrb}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_SuperBuffer_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[]{"DMV", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('V'), ItemList.Conveyor_Module_IV, Character.valueOf('D'), ItemList.Tool_DataOrb}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_SuperBuffer_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DMV", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('V'), ItemList.Conveyor_Module_LuV, Character.valueOf('D'), ItemList.Tool_DataOrb}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_SuperBuffer_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DMV", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('V'), ItemList.Conveyor_Module_ZPM, Character.valueOf('D'), ItemList.Tool_DataOrb}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_SuperBuffer_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DMV", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('V'), ItemList.Conveyor_Module_UV, Character.valueOf('D'), ItemList.Tool_DataOrb}); + GT_ModHandler.addCraftingRecipe(ItemList.Automation_SuperBuffer_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DMV", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('V'), ItemList.Conveyor_Module_UV, Character.valueOf('D'), ItemList.Tool_DataOrb}); + } + + private static void makeWires(Materials aMaterial, int aStartID, long aLossInsulated, long aLoss, long aAmperage, long aVoltage, boolean aInsulatable, boolean aAutoInsulated) { + GT_OreDictUnificator.registerOre(OrePrefixes.wireGt01, aMaterial, new GT_MetaPipeEntity_Cable(aStartID + 0, "wire." + aMaterial.name().toLowerCase() + ".01", "1x " + aMaterial.mDefaultLocalName + " Wire", 0.125F, aMaterial, aLoss, 1L * aAmperage, aVoltage, false, !aAutoInsulated).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.wireGt02, aMaterial, new GT_MetaPipeEntity_Cable(aStartID + 1, "wire." + aMaterial.name().toLowerCase() + ".02", "2x " + aMaterial.mDefaultLocalName + " Wire", 0.25F, aMaterial, aLoss, 2L * aAmperage, aVoltage, false, !aAutoInsulated).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.wireGt04, aMaterial, new GT_MetaPipeEntity_Cable(aStartID + 2, "wire." + aMaterial.name().toLowerCase() + ".04", "4x " + aMaterial.mDefaultLocalName + " Wire", 0.375F, aMaterial, aLoss, 4L * aAmperage, aVoltage, false, !aAutoInsulated).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.wireGt08, aMaterial, new GT_MetaPipeEntity_Cable(aStartID + 3, "wire." + aMaterial.name().toLowerCase() + ".08", "8x " + aMaterial.mDefaultLocalName + " Wire", 0.5F, aMaterial, aLoss, 8L * aAmperage, aVoltage, false, !aAutoInsulated).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.wireGt12, aMaterial, new GT_MetaPipeEntity_Cable(aStartID + 4, "wire." + aMaterial.name().toLowerCase() + ".12", "12x " + aMaterial.mDefaultLocalName + " Wire", 0.75F, aMaterial, aLoss, 12L * aAmperage, aVoltage, false, !aAutoInsulated).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.wireGt16, aMaterial, new GT_MetaPipeEntity_Cable(aStartID + 5, "wire." + aMaterial.name().toLowerCase() + ".16", "16x " + aMaterial.mDefaultLocalName + " Wire", 1.0F, aMaterial, aLoss, 16L * aAmperage, aVoltage, false, !aAutoInsulated).getStackForm(1L)); + if (aInsulatable) { + GT_OreDictUnificator.registerOre(OrePrefixes.cableGt01, aMaterial, new GT_MetaPipeEntity_Cable(aStartID + 6, "cable." + aMaterial.name().toLowerCase() + ".01", "1x " + aMaterial.mDefaultLocalName + " Cable", 0.25F, aMaterial, aLossInsulated, 1L * aAmperage, aVoltage, true, false).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.cableGt02, aMaterial, new GT_MetaPipeEntity_Cable(aStartID + 7, "cable." + aMaterial.name().toLowerCase() + ".02", "2x " + aMaterial.mDefaultLocalName + " Cable", 0.375F, aMaterial, aLossInsulated, 2L * aAmperage, aVoltage, true, false).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.cableGt04, aMaterial, new GT_MetaPipeEntity_Cable(aStartID + 8, "cable." + aMaterial.name().toLowerCase() + ".04", "4x " + aMaterial.mDefaultLocalName + " Cable", 0.5F, aMaterial, aLossInsulated, 4L * aAmperage, aVoltage, true, false).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.cableGt08, aMaterial, new GT_MetaPipeEntity_Cable(aStartID + 9, "cable." + aMaterial.name().toLowerCase() + ".08", "8x " + aMaterial.mDefaultLocalName + " Cable", 0.75F, aMaterial, aLossInsulated, 8L * aAmperage, aVoltage, true, false).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.cableGt12, aMaterial, new GT_MetaPipeEntity_Cable(aStartID + 10, "cable." + aMaterial.name().toLowerCase() + ".12", "12x " + aMaterial.mDefaultLocalName + " Cable", 1.0F, aMaterial, aLossInsulated, 12L * aAmperage, aVoltage, true, false).getStackForm(1L)); + } + } + + public void run() { + GT_Log.out.println("GT_Mod: Registering MetaTileEntities."); + run1(); + run2(); + run3(); + run4(); } - - ItemList.FusionComputer_LuV.set(new GT_MetaTileEntity_FusionComputer1(1193, "fusioncomputer.tier.06", "Fusion Control Computer Mark I").getStackForm(1L)); - ItemList.FusionComputer_ZPMV.set(new GT_MetaTileEntity_FusionComputer2(1194, "fusioncomputer.tier.07", "Fusion Control Computer Mark II").getStackForm(1L)); - ItemList.FusionComputer_UV.set(new GT_MetaTileEntity_FusionComputer3(1195, "fusioncomputer.tier.08", "Fusion Control Computer Mark III").getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Fusion.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('F'), ItemList.Casing_LuV }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Fusion2.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Americium), Character.valueOf('F'), ItemList.Casing_Fusion }); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Fusion_Coil.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "FMF", "CTC", 'M', ItemList.Casing_Coil_Superconductor, 'C', OrePrefixes.circuit.get(Materials.Master), 'F', ItemList.Field_Generator_MV, 'T', ItemList.Neutron_Reflector }); - - GT_ModHandler.addCraftingRecipe(ItemList.FusionComputer_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "FMF", "CBC", 'M', ItemList.Casing_Fusion_Coil, 'B', OrePrefixes.plate.get(Materials.NetherStar), 'C', OrePrefixes.circuit.get(Materials.Master), 'F', ItemList.Field_Generator_IV, 'T', OrePrefixes.plate.get(Materials.Plutonium241) }); - GT_ModHandler.addCraftingRecipe(ItemList.FusionComputer_ZPMV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CBC", "FMF", "CBC", 'M', ItemList.FusionComputer_LuV, 'C', OrePrefixes.circuit.get(Materials.Master), 'F', ItemList.Field_Generator_IV, 'B', OrePrefixes.plate.get(Materials.Europium) }); - GT_ModHandler.addCraftingRecipe(ItemList.FusionComputer_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CBC", "FMF", "CBC", 'M', ItemList.FusionComputer_ZPMV, 'C', OrePrefixes.circuit.get(Materials.Master), 'F', ItemList.Field_Generator_IV, 'B', OrePrefixes.plate.get(Materials.Americium) }); - - ItemList.Generator_Plasma_IV.set(new GT_MetaTileEntity_PlasmaGenerator(1196, "basicgenerator.plasmagenerator.tier.05", "Plasma Generator Mark I",4).getStackForm(1L)); - ItemList.Generator_Plasma_LuV.set(new GT_MetaTileEntity_PlasmaGenerator(1197, "basicgenerator.plasmagenerator.tier.06", "Plasma Generator Mark II",5).getStackForm(1L)); - ItemList.Generator_Plasma_ZPMV.set(new GT_MetaTileEntity_PlasmaGenerator(1198, "basicgenerator.plasmagenerator.tier.07", "Plasma Generator Mark III",6).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Generator_Plasma_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[] { "UCU", "FMF", "WCW", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('F'), ItemList.Field_Generator_HV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Tungsten), Character.valueOf('U'), OrePrefixes.stick.get(Materials.Plutonium241) }); - GT_ModHandler.addCraftingRecipe(ItemList.Generator_Plasma_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "UCU", "FMF", "WCW", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('F'), ItemList.Field_Generator_EV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Superconductor), Character.valueOf('U'), OrePrefixes.stick.get(Materials.Europium) }); - GT_ModHandler.addCraftingRecipe(ItemList.Generator_Plasma_ZPMV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "UCU", "FMF", "WCW", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('F'), ItemList.Field_Generator_IV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Superconductor), Character.valueOf('U'), OrePrefixes.stick.get(Materials.Americium) }); - - ItemList.Processing_Array.set(new GT_MetaTileEntity_ProcessingArray(1199,"multimachine.processingarray","Processing Array").getStackForm(1L)); - GT_ModHandler.addCraftingRecipe(ItemList.Processing_Array.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "FMF", "CBC", 'M', ItemList.Hull_EV, 'B', OrePrefixes.pipeLarge.get(Materials.StainlessSteel), 'C', OrePrefixes.circuit.get(Materials.Master), 'F', ItemList.Robot_Arm_EV, 'T', ItemList.Energy_LapotronicOrb }); - - ItemList.Distillation_Tower.set(new GT_MetaTileEntity_DistillationTower(1126, "multimachine.distillationtower", "Distillation Tower").getStackForm(1L)); - GT_ModHandler.addCraftingRecipe(ItemList.Distillation_Tower.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CBC", "FMF", "CBC", 'M', ItemList.Hull_EV, 'B', OrePrefixes.pipeLarge.get(Materials.StainlessSteel), 'C', OrePrefixes.circuit.get(Materials.Master), 'F', ItemList.Electric_Pump_EV}); - - ItemList.LargeSteamTurbine.set(new GT_MetaTileEntity_LargeTurbine_Steam(1131, "multimachine.largeturbine", "Large Steam Turbine").getStackForm(1L)); - ItemList.LargeGasTurbine.set(new GT_MetaTileEntity_LargeTurbine_Gas(1151, "multimachine.largegasturbine", "Large Gas Turbine").getStackForm(1L)); - ItemList.LargeHPSteamTurbine.set(new GT_MetaTileEntity_LargeTurbine_HPSteam(1152, "multimachine.largehpturbine", "Large High Pressure Steam Turbine").getStackForm(1L)); - ItemList.LargePlasmaTurbine.set(new GT_MetaTileEntity_LargeTurbine_Plasma(1153, "multimachine.largeplasmaturbine", "Large Plasma Generator").getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.LargeSteamTurbine.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_HV, 'B', OrePrefixes.pipeLarge.get(Materials.StainlessSteel), 'C', OrePrefixes.circuit.get(Materials.Advanced), 'P', OrePrefixes.gearGt.get(Materials.Steel)}); - GT_ModHandler.addCraftingRecipe(ItemList.LargeGasTurbine.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_EV, 'B', OrePrefixes.pipeLarge.get(Materials.Titanium), 'C', OrePrefixes.circuit.get(Materials.Elite), 'P', OrePrefixes.gearGt.get(Materials.Titanium)}); - GT_ModHandler.addCraftingRecipe(ItemList.LargeHPSteamTurbine.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.Master), 'P', OrePrefixes.gearGt.get(Materials.TungstenSteel)}); - GT_ModHandler.addCraftingRecipe(ItemList.LargePlasmaTurbine.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_UV, 'B', OrePrefixes.pipeHuge.get(Materials.TungstenSteel), 'C', OrePrefixes.circuit.get(Materials.Master), 'P', OrePrefixes.gearGt.get(Materials.TungstenSteel)}); - - - ItemList.Pump_LV.set(new GT_MetaTileEntity_Pump(1140, "basicmachine.pump.tier.01", "Basic Pump",1).getStackForm(1L)); - ItemList.Pump_MV.set(new GT_MetaTileEntity_Pump(1141, "basicmachine.pump.tier.02", "Advanced Pump",2).getStackForm(1L)); - ItemList.Pump_HV.set(new GT_MetaTileEntity_Pump(1142, "basicmachine.pump.tier.03", "Advanced Pump II",3).getStackForm(1L)); - ItemList.Pump_EV.set(new GT_MetaTileEntity_Pump(1143, "basicmachine.pump.tier.04", "Advanced Pump III",4).getStackForm(1L)); - ItemList.Pump_IV.set(new GT_MetaTileEntity_Pump(1144, "basicmachine.pump.tier.05", "Advanced Pump IV",5).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Pump_LV.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_LV, 'B', OrePrefixes.pipeLarge.get(Materials.Bronze), 'C', OrePrefixes.circuit.get(Materials.Basic), 'P', ItemList.Electric_Pump_LV}); - GT_ModHandler.addCraftingRecipe(ItemList.Pump_MV.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_MV, 'B', OrePrefixes.pipeLarge.get(Materials.Steel), 'C', OrePrefixes.circuit.get(Materials.Good), 'P', ItemList.Electric_Pump_MV}); - GT_ModHandler.addCraftingRecipe(ItemList.Pump_HV.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_HV, 'B', OrePrefixes.pipeLarge.get(Materials.StainlessSteel), 'C', OrePrefixes.circuit.get(Materials.Advanced), 'P', ItemList.Electric_Pump_HV}); - GT_ModHandler.addCraftingRecipe(ItemList.Pump_EV.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_EV, 'B', OrePrefixes.pipeLarge.get(Materials.Titanium), 'C', OrePrefixes.circuit.get(Materials.Data), 'P', ItemList.Electric_Pump_EV}); - 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", "BCB", 'M', ItemList.Hull_LuV, 'B', ItemList.Tool_DataOrb, 'C', OrePrefixes.circuit.get(Materials.Master), 'P', ItemList.Field_Generator_EV}); - - ItemList.MobRep_LV.set(new GT_MetaTileEntity_MonsterRepellent(1146, "basicmachine.mobrep.tier.01", "Basic Monster Repellator",1).getStackForm(1L)); - ItemList.MobRep_MV.set(new GT_MetaTileEntity_MonsterRepellent(1147, "basicmachine.mobrep.tier.02", "Advanced Monster Repellator",2).getStackForm(1L)); - ItemList.MobRep_HV.set(new GT_MetaTileEntity_MonsterRepellent(1148, "basicmachine.mobrep.tier.03", "Advanced Monster Repellator II",3).getStackForm(1L)); - ItemList.MobRep_EV.set(new GT_MetaTileEntity_MonsterRepellent(1149, "basicmachine.mobrep.tier.04", "Advanced Monster Repellator III",4).getStackForm(1L)); - ItemList.MobRep_IV.set(new GT_MetaTileEntity_MonsterRepellent(1150, "basicmachine.mobrep.tier.05", "Advanced Monster Repellator IV",5).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.MobRep_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "EEE", " M ", "CCC", 'M', ItemList.Hull_LV, 'E', ItemList.Emitter_LV.get(1L, new Object[0]), 'C', OrePrefixes.circuit.get(Materials.Basic)}); - GT_ModHandler.addCraftingRecipe(ItemList.MobRep_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "EEE", " M ", "CCC", 'M', ItemList.Hull_MV, 'E', ItemList.Emitter_MV.get(1L, new Object[0]), 'C', OrePrefixes.circuit.get(Materials.Good)}); - GT_ModHandler.addCraftingRecipe(ItemList.MobRep_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "EEE", " M ", "CCC", 'M', ItemList.Hull_HV, 'E', ItemList.Emitter_HV.get(1L, new Object[0]), 'C', OrePrefixes.circuit.get(Materials.Advanced)}); - GT_ModHandler.addCraftingRecipe(ItemList.MobRep_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "EEE", " M ", "CCC", 'M', ItemList.Hull_EV, 'E', ItemList.Emitter_EV.get(1L, new Object[0]), 'C', OrePrefixes.circuit.get(Materials.Data)}); - GT_ModHandler.addCraftingRecipe(ItemList.MobRep_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[] { "EEE", " M ", "CCC", 'M', ItemList.Hull_IV, 'E', ItemList.Emitter_IV.get(1L, new Object[0]), 'C', OrePrefixes.circuit.get(Materials.Elite)}); - - ItemList.Machine_Multi_HeatExchanger.set(new GT_MetaTileEntity_HeatExchanger(1154, "multimachine.heatexchanger", "Large Heat Exchanger").getStackForm(1L)); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_HeatExchanger.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WCW", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_Pipe_Titanium, Character.valueOf('C'), OrePrefixes.pipeMedium.get(Materials.Titanium), Character.valueOf('W'), ItemList.Electric_Pump_EV}); -} - - private static void run4() - { - for (int i = 0; i < GregTech_API.sGeneratedMaterials.length; i++) { - if (((GregTech_API.sGeneratedMaterials[i] != null) && ((GregTech_API.sGeneratedMaterials[i].mTypes & 0x2) != 0)) || (GregTech_API.sGeneratedMaterials[i] == Materials.Wood)) { - new GT_MetaPipeEntity_Frame(4096 + i, "GT_Frame_" + GregTech_API.sGeneratedMaterials[i], GregTech_API.sGeneratedMaterials[i].mDefaultLocalName + " Frame Box", GregTech_API.sGeneratedMaterials[i]); - } - } - boolean bEC = !GT_Mod.gregtechproxy.mHardcoreCables; - - makeWires(Materials.Cobalt, 1200, bEC ? 2L : 2L, bEC ? 4L : 4L, 2L, gregtech.api.enums.GT_Values.V[1], true, false); - makeWires(Materials.Lead, 1220, bEC ? 2L : 2L, bEC ? 4L : 4L, 2L, gregtech.api.enums.GT_Values.V[1], true, false); - makeWires(Materials.Tin, 1240, bEC ? 1L : 1L, bEC ? 2L : 2L, 1L, gregtech.api.enums.GT_Values.V[1], true, false); - makeWires(Materials.Zinc, 1260, bEC ? 1L : 1L, bEC ? 2L : 2L, 1L, gregtech.api.enums.GT_Values.V[1], true, false); - makeWires(Materials.SolderingAlloy, 1280, bEC ? 1L : 1L, bEC ? 2L : 2L, 1L, gregtech.api.enums.GT_Values.V[1], true, false); - - makeWires(Materials.Iron, 1300, bEC ? 3L : 4L, bEC ? 6L : 8L, 2L, gregtech.api.enums.GT_Values.V[2], true, false); - makeWires(Materials.Nickel, 1320, bEC ? 3L : 5L, bEC ? 6L : 10L, 3L, gregtech.api.enums.GT_Values.V[2], true, false); - makeWires(Materials.Cupronickel, 1340, bEC ? 3L : 4L, bEC ? 6L : 8L, 2L, gregtech.api.enums.GT_Values.V[2], true, false); - makeWires(Materials.Copper, 1360, bEC ? 2L : 3L, bEC ? 4L : 6L, 1L, gregtech.api.enums.GT_Values.V[2], true, false); - makeWires(Materials.AnnealedCopper, 1380, bEC ? 1L : 2L, bEC ? 2L : 4L, 1L, gregtech.api.enums.GT_Values.V[2], true, false); - - makeWires(Materials.Kanthal, 1400, bEC ? 3L : 8L, bEC ? 6L : 16L, 4L, gregtech.api.enums.GT_Values.V[3], true, false); - makeWires(Materials.Gold, 1420, bEC ? 2L : 6L, bEC ? 4L : 12L, 3L, gregtech.api.enums.GT_Values.V[3], true, false); - makeWires(Materials.Electrum, 1440, bEC ? 2L : 5L, bEC ? 4L : 10L, 2L, gregtech.api.enums.GT_Values.V[3], true, false); - makeWires(Materials.Silver, 1460, bEC ? 1L : 4L, bEC ? 2L : 8L, 1L, gregtech.api.enums.GT_Values.V[3], true, false); - makeWires(Materials.BlueAlloy, 1480, bEC ? 1L : 4L, bEC ? 2L : 8L, 2L, gregtech.api.enums.GT_Values.V[3], true, false); - - makeWires(Materials.Nichrome, 1500, bEC ? 4L : 32L, bEC ? 8L : 64L, 3L, gregtech.api.enums.GT_Values.V[4], true, false); - makeWires(Materials.Steel, 1520, bEC ? 2L : 16L, bEC ? 4L : 32L, 2L, gregtech.api.enums.GT_Values.V[4], true, false); - makeWires(Materials.TungstenSteel, 1540, bEC ? 2L : 14L, bEC ? 4L : 28L, 3L, gregtech.api.enums.GT_Values.V[4], true, false); - makeWires(Materials.Tungsten, 1560, bEC ? 2L : 12L, bEC ? 4L : 24L, 4L, gregtech.api.enums.GT_Values.V[4], true, false); - makeWires(Materials.Aluminium, 1580, bEC ? 1L : 8L, bEC ? 2L : 16L, 1L, gregtech.api.enums.GT_Values.V[4], true, false); - - makeWires(Materials.Graphene, 1600, bEC ? 1L : 16L, bEC ? 2L : 32L, 1L, gregtech.api.enums.GT_Values.V[5], false, true); - makeWires(Materials.Osmium, 1620, bEC ? 2L : 32L, bEC ? 4L : 64L, 4L, gregtech.api.enums.GT_Values.V[5], true, false); - makeWires(Materials.Platinum, 1640, bEC ? 1L : 16L, bEC ? 2L : 32L, 2L, gregtech.api.enums.GT_Values.V[5], true, false); - - makeWires(Materials.Naquadah, 1700, bEC ? 1L : 64L, bEC ? 2L : 128L, 4L, gregtech.api.enums.GT_Values.V[6], true, false); - makeWires(Materials.NiobiumTitanium, 1720, bEC ? 2L : 128L, bEC ? 4L : 256L, 4L, gregtech.api.enums.GT_Values.V[6], true, false); - makeWires(Materials.VanadiumGallium, 1740, bEC ? 2L : 128L, bEC ? 4L : 256L, 4L, gregtech.api.enums.GT_Values.V[6], true, false); - makeWires(Materials.YttriumBariumCuprate, 1760, bEC ? 4L : 256L, bEC ? 8L : 512L, 4L, gregtech.api.enums.GT_Values.V[6], true, false); - - makeWires(Materials.RedAlloy, 2000, 0L, 1L, 1L, gregtech.api.enums.GT_Values.V[0], true, false); - - makeWires(Materials.Superconductor, 2020, 1L, 1L, 4L, gregtech.api.enums.GT_Values.V[9], false, true); - if(!GT_Mod.gregtechproxy.mDisableIC2Cables){ - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("copperCableItem", 2L), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "xP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyCopper) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("goldCableItem", 4L), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "xP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Gold) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("ironCableItem", 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "xP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.AnyIron) }); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("tinCableItem", 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "xP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Tin) }); - } - - - GT_OreDictUnificator.registerOre(OrePrefixes.pipeSmall.get(Materials.Wood), new GT_MetaPipeEntity_Fluid(5101, "GT_Pipe_Wood_Small", "Small Wooden Fluid Pipe", 0.375F, Materials.Wood, 10, 350, false).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Wood), new GT_MetaPipeEntity_Fluid(5102, "GT_Pipe_Wood", "Wooden Fluid Pipe", 0.5F, Materials.Wood, 30, 350, false).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.Wood), new GT_MetaPipeEntity_Fluid(5103, "GT_Pipe_Wood_Large", "Large Wooden Fluid Pipe", 0.75F, Materials.Wood, 60, 350, false).getStackForm(1L)); - - GT_OreDictUnificator.registerOre(OrePrefixes.pipeTiny.get(Materials.Copper), new GT_MetaPipeEntity_Fluid(5110, "GT_Pipe_Copper_Tiny", "Tiny Copper Fluid Pipe", 0.25F, Materials.Copper, 10, 1000, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeSmall.get(Materials.Copper), new GT_MetaPipeEntity_Fluid(5111, "GT_Pipe_Copper_Small", "Small Copper Fluid Pipe", 0.375F, Materials.Copper, 20, 1000, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Copper), new GT_MetaPipeEntity_Fluid(5112, "GT_Pipe_Copper", "Copper Fluid Pipe", 0.5F, Materials.Copper, 60, 1000, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.Copper), new GT_MetaPipeEntity_Fluid(5113, "GT_Pipe_Copper_Large", "Large Copper Fluid Pipe", 0.75F, Materials.Copper, 120, 1000, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.Copper), new GT_MetaPipeEntity_Fluid(5114, "GT_Pipe_Copper_Huge", "Huge Copper Fluid Pipe", 1.0F, Materials.Copper, 240, 1000, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeTiny.get(Materials.Bronze), new GT_MetaPipeEntity_Fluid(5120, "GT_Pipe_Bronze_Tiny", "Tiny Bronze Fluid Pipe", 0.25F, Materials.Bronze, 20, 2000, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeSmall.get(Materials.Bronze), new GT_MetaPipeEntity_Fluid(5121, "GT_Pipe_Bronze_Small", "Small Bronze Fluid Pipe", 0.375F, Materials.Bronze, 40, 2000, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Bronze), new GT_MetaPipeEntity_Fluid(5122, "GT_Pipe_Bronze", "Bronze Fluid Pipe", 0.5F, Materials.Bronze, 120, 2000, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.Bronze), new GT_MetaPipeEntity_Fluid(5123, "GT_Pipe_Bronze_Large", "Large Bronze Fluid Pipe", 0.75F, Materials.Bronze, 240, 2000, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.Bronze), new GT_MetaPipeEntity_Fluid(5124, "GT_Pipe_Bronze_Huge", "Huge Bronze Fluid Pipe", 1.0F, Materials.Bronze, 480, 2000, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeTiny.get(Materials.Steel), new GT_MetaPipeEntity_Fluid(5130, "GT_Pipe_Steel_Tiny", "Tiny Steel Fluid Pipe", 0.25F, Materials.Steel, 40, 2500, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeSmall.get(Materials.Steel), new GT_MetaPipeEntity_Fluid(5131, "GT_Pipe_Steel_Small", "Small Steel Fluid Pipe", 0.375F, Materials.Steel, 80, 2500, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Steel), new GT_MetaPipeEntity_Fluid(5132, "GT_Pipe_Steel", "Steel Fluid Pipe", 0.5F, Materials.Steel, 240, 2500, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.Steel), new GT_MetaPipeEntity_Fluid(5133, "GT_Pipe_Steel_Large", "Large Steel Fluid Pipe", 0.75F, Materials.Steel, 480, 2500, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.Steel), new GT_MetaPipeEntity_Fluid(5134, "GT_Pipe_Steel_Huge", "Huge Steel Fluid Pipe", 1.0F, Materials.Steel, 960, 2500, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeTiny.get(Materials.StainlessSteel), new GT_MetaPipeEntity_Fluid(5140, "GT_Pipe_StainlessSteel_Tiny", "Tiny Stainless Steel Fluid Pipe", 0.25F, Materials.StainlessSteel, 60, 3000, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeSmall.get(Materials.StainlessSteel), new GT_MetaPipeEntity_Fluid(5141, "GT_Pipe_StainlessSteel_Small", "Small Stainless Steel Fluid Pipe", 0.375F, Materials.StainlessSteel, 120, 3000, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.StainlessSteel), new GT_MetaPipeEntity_Fluid(5142, "GT_Pipe_StainlessSteel", "Stainless Steel Fluid Pipe", 0.5F, Materials.StainlessSteel, 360, 3000, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.StainlessSteel), new GT_MetaPipeEntity_Fluid(5143, "GT_Pipe_StainlessSteel_Large", "Large Stainless Steel Fluid Pipe", 0.75F, Materials.StainlessSteel, 720, 3000, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.StainlessSteel), new GT_MetaPipeEntity_Fluid(5144, "GT_Pipe_StainlessSteel_Huge", "Huge Stainless Steel Fluid Pipe", 1.0F, Materials.StainlessSteel, 1440, 3000, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeTiny.get(Materials.Titanium), new GT_MetaPipeEntity_Fluid(5150, "GT_Pipe_Titanium_Tiny", "Tiny Titanium Fluid Pipe", 0.25F, Materials.Titanium, 80, 5000, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeSmall.get(Materials.Titanium), new GT_MetaPipeEntity_Fluid(5151, "GT_Pipe_Titanium_Small", "Small Titanium Fluid Pipe", 0.375F, Materials.Titanium, 160, 5000, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Titanium), new GT_MetaPipeEntity_Fluid(5152, "GT_Pipe_Titanium", "Titanium Fluid Pipe", 0.5F, Materials.Titanium, 480, 5000, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.Titanium), new GT_MetaPipeEntity_Fluid(5153, "GT_Pipe_Titanium_Large", "Large Titanium Fluid Pipe", 0.75F, Materials.Titanium, 960, 5000, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.Titanium), new GT_MetaPipeEntity_Fluid(5154, "GT_Pipe_Titanium_Huge", "Huge Titanium Fluid Pipe", 1.0F, Materials.Titanium, 1920, 5000, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeTiny.get(Materials.TungstenSteel), new GT_MetaPipeEntity_Fluid(5160, "GT_Pipe_TungstenSteel_Tiny", "Tiny Tungstensteel Fluid Pipe", 0.25F, Materials.TungstenSteel, 100, 12500, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeSmall.get(Materials.TungstenSteel), new GT_MetaPipeEntity_Fluid(5161, "GT_Pipe_TungstenSteel_Small", "Small Tungstensteel Fluid Pipe", 0.375F, Materials.TungstenSteel, 200, 12500, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.TungstenSteel), new GT_MetaPipeEntity_Fluid(5162, "GT_Pipe_TungstenSteel", "Tungstensteel Fluid Pipe", 0.5F, Materials.TungstenSteel, 600, 12500, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.TungstenSteel), new GT_MetaPipeEntity_Fluid(5163, "GT_Pipe_TungstenSteel_Large", "Large Tungstensteel Fluid Pipe", 0.75F, Materials.TungstenSteel, 1200, 12500, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.TungstenSteel), new GT_MetaPipeEntity_Fluid(5164, "GT_Pipe_TungstenSteel_Huge", "Huge Tungstensteel Fluid Pipe", 1.0F, Materials.TungstenSteel, 2400, 12500, true).getStackForm(1L)); - - - - GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Brass), new GT_MetaPipeEntity_Item(5602, "GT_Pipe_Brass", "Brass Item Pipe", 0.5F, Materials.Brass, 1, 32768, false).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.Brass), new GT_MetaPipeEntity_Item(5603, "GT_Pipe_Brass_Large", "Large Brass Item Pipe", 0.75F, Materials.Brass, 2, 16384, false).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.Brass), new GT_MetaPipeEntity_Item(5604, "GT_Pipe_Brass_Huge", "Huge Brass Item Pipe", 1.0F, Materials.Brass, 4, 8192, false).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveMedium.get(Materials.Brass), new GT_MetaPipeEntity_Item(5607, "GT_Pipe_Restrictive_Brass", "Restrictive Brass Item Pipe", 0.5F, Materials.Brass, 1, 3276800, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveLarge.get(Materials.Brass), new GT_MetaPipeEntity_Item(5608, "GT_Pipe_Restrictive_Brass_Large", "Large Restrictive Brass Item Pipe", 0.75F, Materials.Brass, 2, 1638400, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveHuge.get(Materials.Brass), new GT_MetaPipeEntity_Item(5609, "GT_Pipe_Restrictive_Brass_Huge", "Huge Restrictive Brass Item Pipe", 1.0F, Materials.Brass, 4, 819200, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Electrum), new GT_MetaPipeEntity_Item(5612, "GT_Pipe_Electrum", "Electrum Item Pipe", 0.5F, Materials.Electrum, 2, 16384, false).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.Electrum), new GT_MetaPipeEntity_Item(5613, "GT_Pipe_Electrum_Large", "Large Electrum Item Pipe", 0.75F, Materials.Electrum, 4, 8192, false).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.Electrum), new GT_MetaPipeEntity_Item(5614, "GT_Pipe_Electrum_Huge", "Huge Electrum Item Pipe", 1.0F, Materials.Electrum, 8, 4096, false).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveMedium.get(Materials.Electrum), new GT_MetaPipeEntity_Item(5617, "GT_Pipe_Restrictive_Electrum", "Restrictive Electrum Item Pipe", 0.5F, Materials.Electrum, 2, 1638400, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveLarge.get(Materials.Electrum), new GT_MetaPipeEntity_Item(5618, "GT_Pipe_Restrictive_Electrum_Large", "Large Restrictive Electrum Item Pipe", 0.75F, Materials.Electrum, 4, 819200, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveHuge.get(Materials.Electrum), new GT_MetaPipeEntity_Item(5619, "GT_Pipe_Restrictive_Electrum_Huge", "Huge Restrictive Electrum Item Pipe", 1.0F, Materials.Electrum, 8, 409600, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Platinum), new GT_MetaPipeEntity_Item(5622, "GT_Pipe_Platinum", "Platinum Item Pipe", 0.5F, Materials.Platinum, 4, 8192, false).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.Platinum), new GT_MetaPipeEntity_Item(5623, "GT_Pipe_Platinum_Large", "Large Platinum Item Pipe", 0.75F, Materials.Platinum, 8, 4096, false).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.Platinum), new GT_MetaPipeEntity_Item(5624, "GT_Pipe_Platinum_Huge", "Huge Platinum Item Pipe", 1.0F, Materials.Platinum, 16, 2048, false).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveMedium.get(Materials.Platinum), new GT_MetaPipeEntity_Item(5627, "GT_Pipe_Restrictive_Platinum", "Restrictive Platinum Item Pipe", 0.5F, Materials.Platinum, 4, 819200, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveLarge.get(Materials.Platinum), new GT_MetaPipeEntity_Item(5628, "GT_Pipe_Restrictive_Platinum_Large", "Large Restrictive Platinum Item Pipe", 0.75F, Materials.Platinum, 8, 409600, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveHuge.get(Materials.Platinum), new GT_MetaPipeEntity_Item(5629, "GT_Pipe_Restrictive_Platinum_Huge", "Huge Restrictive Platinum Item Pipe", 1.0F, Materials.Platinum, 16, 204800, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Osmium), new GT_MetaPipeEntity_Item(5632, "GT_Pipe_Osmium", "Osmium Item Pipe", 0.5F, Materials.Osmium, 8, 4096, false).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.Osmium), new GT_MetaPipeEntity_Item(5633, "GT_Pipe_Osmium_Large", "Large Osmium Item Pipe", 0.75F, Materials.Osmium, 16, 2048, false).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.Osmium), new GT_MetaPipeEntity_Item(5634, "GT_Pipe_Osmium_Huge", "Huge Osmium Item Pipe", 1.0F, Materials.Osmium, 32, 1024, false).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveMedium.get(Materials.Osmium), new GT_MetaPipeEntity_Item(5637, "GT_Pipe_Restrictive_Osmium", "Restrictive Osmium Item Pipe", 0.5F, Materials.Osmium, 8, 409600, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveLarge.get(Materials.Osmium), new GT_MetaPipeEntity_Item(5638, "GT_Pipe_Restrictive_Osmium_Large", "Large Restrictive Osmium Item Pipe", 0.75F, Materials.Osmium, 16, 204800, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeRestrictiveHuge.get(Materials.Osmium), new GT_MetaPipeEntity_Item(5639, "GT_Pipe_Restrictive_Osmium_Huge", "Huge Restrictive Osmium Item Pipe", 1.0F, Materials.Osmium, 32, 102400, true).getStackForm(1L)); - - - - ItemList.Automation_ChestBuffer_ULV.set(new GT_MetaTileEntity_ChestBuffer(9230, "automation.chestbuffer.tier.00", "Ultra Low Voltage Chest Buffer", 0).getStackForm(1L)); - ItemList.Automation_ChestBuffer_LV.set(new GT_MetaTileEntity_ChestBuffer(9231, "automation.chestbuffer.tier.01", "Low Voltage Chest Buffer", 1).getStackForm(1L)); - ItemList.Automation_ChestBuffer_MV.set(new GT_MetaTileEntity_ChestBuffer(9232, "automation.chestbuffer.tier.02", "Medium Voltage Chest Buffer", 2).getStackForm(1L)); - ItemList.Automation_ChestBuffer_HV.set(new GT_MetaTileEntity_ChestBuffer(9233, "automation.chestbuffer.tier.03", "High Voltage Chest Buffer", 3).getStackForm(1L)); - ItemList.Automation_ChestBuffer_EV.set(new GT_MetaTileEntity_ChestBuffer(9234, "automation.chestbuffer.tier.04", "Extreme Voltage Chest Buffer", 4).getStackForm(1L)); - ItemList.Automation_ChestBuffer_IV.set(new GT_MetaTileEntity_ChestBuffer(9235, "automation.chestbuffer.tier.05", "Insane Voltage Chest Buffer", 5).getStackForm(1L)); - ItemList.Automation_ChestBuffer_LuV.set(new GT_MetaTileEntity_ChestBuffer(9236, "automation.chestbuffer.tier.06", "Ludicrous Voltage Chest Buffer", 6).getStackForm(1L)); - ItemList.Automation_ChestBuffer_ZPM.set(new GT_MetaTileEntity_ChestBuffer(9237, "automation.chestbuffer.tier.07", "ZPM Voltage Chest Buffer", 7).getStackForm(1L)); - ItemList.Automation_ChestBuffer_UV.set(new GT_MetaTileEntity_ChestBuffer(9238, "automation.chestbuffer.tier.08", "Ultimate Voltage Chest Buffer", 8).getStackForm(1L)); - ItemList.Automation_ChestBuffer_MAX.set(new GT_MetaTileEntity_ChestBuffer(9239, "automation.chestbuffer.tier.09", "MAX Voltage Chest Buffer", 9).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Automation_ChestBuffer_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CMV", " X ", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('V'), ItemList.Conveyor_Module_LV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_ChestBuffer_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CMV", " X ", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('V'), ItemList.Conveyor_Module_LV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_ChestBuffer_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CMV", " X ", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('V'), ItemList.Conveyor_Module_MV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_ChestBuffer_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CMV", " X ", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('V'), ItemList.Conveyor_Module_HV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_ChestBuffer_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CMV", " X ", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('V'), ItemList.Conveyor_Module_EV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_ChestBuffer_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[] { "CMV", " X ", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('V'), ItemList.Conveyor_Module_IV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_ChestBuffer_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CMV", " X ", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('V'), ItemList.Conveyor_Module_LuV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_ChestBuffer_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CMV", " X ", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('V'), ItemList.Conveyor_Module_ZPM, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_ChestBuffer_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CMV", " X ", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('V'), ItemList.Conveyor_Module_UV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_ChestBuffer_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CMV", " X ", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('V'), ItemList.Conveyor_Module_UV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic) }); - - ItemList.Automation_Filter_ULV.set(new GT_MetaTileEntity_Filter(9240, "automation.filter.tier.00", "Ultra Low Voltage Item Filter", 0).getStackForm(1L)); - ItemList.Automation_Filter_LV.set(new GT_MetaTileEntity_Filter(9241, "automation.filter.tier.01", "Low Voltage Item Filter", 1).getStackForm(1L)); - ItemList.Automation_Filter_MV.set(new GT_MetaTileEntity_Filter(9242, "automation.filter.tier.02", "Medium Voltage Item Filter", 2).getStackForm(1L)); - ItemList.Automation_Filter_HV.set(new GT_MetaTileEntity_Filter(9243, "automation.filter.tier.03", "High Voltage Item Filter", 3).getStackForm(1L)); - ItemList.Automation_Filter_EV.set(new GT_MetaTileEntity_Filter(9244, "automation.filter.tier.04", "Extreme Voltage Item Filter", 4).getStackForm(1L)); - ItemList.Automation_Filter_IV.set(new GT_MetaTileEntity_Filter(9245, "automation.filter.tier.05", "Insane Voltage Item Filter", 5).getStackForm(1L)); - ItemList.Automation_Filter_LuV.set(new GT_MetaTileEntity_Filter(9246, "automation.filter.tier.06", "Ludicrous Voltage Item Filter", 6).getStackForm(1L)); - ItemList.Automation_Filter_ZPM.set(new GT_MetaTileEntity_Filter(9247, "automation.filter.tier.07", "ZPM Voltage Item Filter", 7).getStackForm(1L)); - ItemList.Automation_Filter_UV.set(new GT_MetaTileEntity_Filter(9248, "automation.filter.tier.08", "Ultimate Voltage Item Filter", 8).getStackForm(1L)); - ItemList.Automation_Filter_MAX.set(new GT_MetaTileEntity_Filter(9249, "automation.filter.tier.09", "MAX Voltage Item Filter", 9).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Automation_Filter_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('V'), ItemList.Conveyor_Module_LV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_Filter_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('V'), ItemList.Conveyor_Module_LV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_Filter_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('V'), ItemList.Conveyor_Module_MV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_Filter_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('V'), ItemList.Conveyor_Module_HV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_Filter_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('V'), ItemList.Conveyor_Module_EV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_Filter_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[] { " F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('V'), ItemList.Conveyor_Module_IV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_Filter_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('V'), ItemList.Conveyor_Module_LuV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_Filter_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('V'), ItemList.Conveyor_Module_ZPM, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_Filter_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('V'), ItemList.Conveyor_Module_UV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_Filter_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('V'), ItemList.Conveyor_Module_UV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Basic) }); - - ItemList.Automation_TypeFilter_ULV.set(new GT_MetaTileEntity_TypeFilter(9250, "automation.typefilter.tier.00", "Ultra Low Voltage Type Filter", 0).getStackForm(1L)); - ItemList.Automation_TypeFilter_LV.set(new GT_MetaTileEntity_TypeFilter(9251, "automation.typefilter.tier.01", "Low Voltage Type Filter", 1).getStackForm(1L)); - ItemList.Automation_TypeFilter_MV.set(new GT_MetaTileEntity_TypeFilter(9252, "automation.typefilter.tier.02", "Medium Voltage Type Filter", 2).getStackForm(1L)); - ItemList.Automation_TypeFilter_HV.set(new GT_MetaTileEntity_TypeFilter(9253, "automation.typefilter.tier.03", "High Voltage Type Filter", 3).getStackForm(1L)); - ItemList.Automation_TypeFilter_EV.set(new GT_MetaTileEntity_TypeFilter(9254, "automation.typefilter.tier.04", "Extreme Voltage Type Filter", 4).getStackForm(1L)); - ItemList.Automation_TypeFilter_IV.set(new GT_MetaTileEntity_TypeFilter(9255, "automation.typefilter.tier.05", "Insane Voltage Type Filter", 5).getStackForm(1L)); - ItemList.Automation_TypeFilter_LuV.set(new GT_MetaTileEntity_TypeFilter(9256, "automation.typefilter.tier.06", "Ludicrous Voltage Type Filter", 6).getStackForm(1L)); - ItemList.Automation_TypeFilter_ZPM.set(new GT_MetaTileEntity_TypeFilter(9257, "automation.typefilter.tier.07", "ZPM Voltage Type Filter", 7).getStackForm(1L)); - ItemList.Automation_TypeFilter_UV.set(new GT_MetaTileEntity_TypeFilter(9258, "automation.typefilter.tier.08", "Ultimate Voltage Type Filter", 8).getStackForm(1L)); - ItemList.Automation_TypeFilter_MAX.set(new GT_MetaTileEntity_TypeFilter(9259, "automation.typefilter.tier.09", "MAX Voltage Type Filter", 9).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Automation_TypeFilter_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('V'), ItemList.Conveyor_Module_LV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_TypeFilter_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('V'), ItemList.Conveyor_Module_LV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_TypeFilter_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('V'), ItemList.Conveyor_Module_MV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_TypeFilter_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('V'), ItemList.Conveyor_Module_HV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_TypeFilter_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('V'), ItemList.Conveyor_Module_EV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_TypeFilter_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[] { " F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('V'), ItemList.Conveyor_Module_IV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_TypeFilter_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('V'), ItemList.Conveyor_Module_LuV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_TypeFilter_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('V'), ItemList.Conveyor_Module_ZPM, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_TypeFilter_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('V'), ItemList.Conveyor_Module_UV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_TypeFilter_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { " F ", "CMV", " X ", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('V'), ItemList.Conveyor_Module_UV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced) }); - - ItemList.Automation_Regulator_ULV.set(new GT_MetaTileEntity_Regulator(9270, "automation.regulator.tier.00", "Ultra Low Voltage Regulator", 0).getStackForm(1L)); - ItemList.Automation_Regulator_LV.set(new GT_MetaTileEntity_Regulator(9271, "automation.regulator.tier.01", "Low Voltage Regulator", 1).getStackForm(1L)); - ItemList.Automation_Regulator_MV.set(new GT_MetaTileEntity_Regulator(9272, "automation.regulator.tier.02", "Medium Voltage Regulator", 2).getStackForm(1L)); - ItemList.Automation_Regulator_HV.set(new GT_MetaTileEntity_Regulator(9273, "automation.regulator.tier.03", "High Voltage Regulator", 3).getStackForm(1L)); - ItemList.Automation_Regulator_EV.set(new GT_MetaTileEntity_Regulator(9274, "automation.regulator.tier.04", "Extreme Voltage Regulator", 4).getStackForm(1L)); - ItemList.Automation_Regulator_IV.set(new GT_MetaTileEntity_Regulator(9275, "automation.regulator.tier.05", "Insane Voltage Regulator", 5).getStackForm(1L)); - ItemList.Automation_Regulator_LuV.set(new GT_MetaTileEntity_Regulator(9276, "automation.regulator.tier.06", "Ludicrous Voltage Regulator", 6).getStackForm(1L)); - ItemList.Automation_Regulator_ZPM.set(new GT_MetaTileEntity_Regulator(9277, "automation.regulator.tier.07", "ZPM Voltage Regulator", 7).getStackForm(1L)); - ItemList.Automation_Regulator_UV.set(new GT_MetaTileEntity_Regulator(9278, "automation.regulator.tier.08", "Ultimate Voltage Regulator", 8).getStackForm(1L)); - ItemList.Automation_Regulator_MAX.set(new GT_MetaTileEntity_Regulator(9279, "automation.regulator.tier.09", "MAX Voltage Regulator", 9).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Automation_Regulator_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "XFX", "VMV", "XCX", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('V'), ItemList.Robot_Arm_LV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_Regulator_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "XFX", "VMV", "XCX", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('V'), ItemList.Robot_Arm_LV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_Regulator_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "XFX", "VMV", "XCX", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('V'), ItemList.Robot_Arm_MV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_Regulator_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "XFX", "VMV", "XCX", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('V'), ItemList.Robot_Arm_HV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_Regulator_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "XFX", "VMV", "XCX", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('V'), ItemList.Robot_Arm_EV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_Regulator_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[] { "XFX", "VMV", "XCX", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('V'), ItemList.Robot_Arm_IV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_Regulator_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "XFX", "VMV", "XCX", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('V'), ItemList.Robot_Arm_LuV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_Regulator_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "XFX", "VMV", "XCX", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('V'), ItemList.Robot_Arm_ZPM, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_Regulator_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "XFX", "VMV", "XCX", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('V'), ItemList.Robot_Arm_UV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced) }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_Regulator_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "XFX", "VMV", "XCX", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('V'), ItemList.Robot_Arm_UV, Character.valueOf('C'), OreDictNames.craftingChest, Character.valueOf('F'), OreDictNames.craftingFilter, Character.valueOf('X'), OrePrefixes.circuit.get(Materials.Advanced) }); - - ItemList.Automation_SuperBuffer_ULV.set(new GT_MetaTileEntity_SuperBuffer(9300, "automation.superbuffer.tier.00", "Ultra Low Voltage Super Buffer", 0).getStackForm(1L)); - ItemList.Automation_SuperBuffer_LV.set(new GT_MetaTileEntity_SuperBuffer(9301, "automation.superbuffer.tier.01", "Low Voltage Super Buffer", 1).getStackForm(1L)); - ItemList.Automation_SuperBuffer_MV.set(new GT_MetaTileEntity_SuperBuffer(9302, "automation.superbuffer.tier.02", "Medium Voltage Super Buffer", 2).getStackForm(1L)); - ItemList.Automation_SuperBuffer_HV.set(new GT_MetaTileEntity_SuperBuffer(9303, "automation.superbuffer.tier.03", "High Voltage Super Buffer", 3).getStackForm(1L)); - ItemList.Automation_SuperBuffer_EV.set(new GT_MetaTileEntity_SuperBuffer(9304, "automation.superbuffer.tier.04", "Extreme Voltage Super Buffer", 4).getStackForm(1L)); - ItemList.Automation_SuperBuffer_IV.set(new GT_MetaTileEntity_SuperBuffer(9305, "automation.superbuffer.tier.05", "Insane Voltage Super Buffer", 5).getStackForm(1L)); - ItemList.Automation_SuperBuffer_LuV.set(new GT_MetaTileEntity_SuperBuffer(9306, "automation.superbuffer.tier.06", "Ludicrous Voltage Super Buffer", 6).getStackForm(1L)); - ItemList.Automation_SuperBuffer_ZPM.set(new GT_MetaTileEntity_SuperBuffer(9307, "automation.superbuffer.tier.07", "ZPM Voltage Super Buffer", 7).getStackForm(1L)); - ItemList.Automation_SuperBuffer_UV.set(new GT_MetaTileEntity_SuperBuffer(9308, "automation.superbuffer.tier.08", "Ultimate Voltage Super Buffer", 8).getStackForm(1L)); - ItemList.Automation_SuperBuffer_MAX.set(new GT_MetaTileEntity_SuperBuffer(9309, "automation.superbuffer.tier.09", "MAX Voltage Super Buffer", 9).getStackForm(1L)); - - GT_ModHandler.addCraftingRecipe(ItemList.Automation_SuperBuffer_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "DMV", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('V'), ItemList.Conveyor_Module_LV, Character.valueOf('D'), ItemList.Tool_DataOrb }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_SuperBuffer_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "DMV", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('V'), ItemList.Conveyor_Module_LV, Character.valueOf('D'), ItemList.Tool_DataOrb }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_SuperBuffer_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "DMV", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('V'), ItemList.Conveyor_Module_MV, Character.valueOf('D'), ItemList.Tool_DataOrb }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_SuperBuffer_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "DMV", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('V'), ItemList.Conveyor_Module_HV, Character.valueOf('D'), ItemList.Tool_DataOrb }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_SuperBuffer_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "DMV", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('V'), ItemList.Conveyor_Module_EV, Character.valueOf('D'), ItemList.Tool_DataOrb }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_SuperBuffer_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[] { "DMV", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('V'), ItemList.Conveyor_Module_IV, Character.valueOf('D'), ItemList.Tool_DataOrb }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_SuperBuffer_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "DMV", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('V'), ItemList.Conveyor_Module_LuV, Character.valueOf('D'), ItemList.Tool_DataOrb }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_SuperBuffer_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "DMV", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('V'), ItemList.Conveyor_Module_ZPM, Character.valueOf('D'), ItemList.Tool_DataOrb }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_SuperBuffer_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "DMV", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('V'), ItemList.Conveyor_Module_UV, Character.valueOf('D'), ItemList.Tool_DataOrb }); - GT_ModHandler.addCraftingRecipe(ItemList.Automation_SuperBuffer_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "DMV", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('V'), ItemList.Conveyor_Module_UV, Character.valueOf('D'), ItemList.Tool_DataOrb }); - } - - private static void makeWires(Materials aMaterial, int aStartID, long aLossInsulated, long aLoss, long aAmperage, long aVoltage, boolean aInsulatable, boolean aAutoInsulated) - { - GT_OreDictUnificator.registerOre(OrePrefixes.wireGt01, aMaterial, new GT_MetaPipeEntity_Cable(aStartID + 0, "wire." + aMaterial.name().toLowerCase() + ".01", "1x " + aMaterial.mDefaultLocalName + " Wire", 0.125F, aMaterial, aLoss, 1L * aAmperage, aVoltage, false, !aAutoInsulated).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.wireGt02, aMaterial, new GT_MetaPipeEntity_Cable(aStartID + 1, "wire." + aMaterial.name().toLowerCase() + ".02", "2x " + aMaterial.mDefaultLocalName + " Wire", 0.25F, aMaterial, aLoss, 2L * aAmperage, aVoltage, false, !aAutoInsulated).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.wireGt04, aMaterial, new GT_MetaPipeEntity_Cable(aStartID + 2, "wire." + aMaterial.name().toLowerCase() + ".04", "4x " + aMaterial.mDefaultLocalName + " Wire", 0.375F, aMaterial, aLoss, 4L * aAmperage, aVoltage, false, !aAutoInsulated).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.wireGt08, aMaterial, new GT_MetaPipeEntity_Cable(aStartID + 3, "wire." + aMaterial.name().toLowerCase() + ".08", "8x " + aMaterial.mDefaultLocalName + " Wire", 0.5F, aMaterial, aLoss, 8L * aAmperage, aVoltage, false, !aAutoInsulated).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.wireGt12, aMaterial, new GT_MetaPipeEntity_Cable(aStartID + 4, "wire." + aMaterial.name().toLowerCase() + ".12", "12x " + aMaterial.mDefaultLocalName + " Wire", 0.75F, aMaterial, aLoss, 12L * aAmperage, aVoltage, false, !aAutoInsulated).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.wireGt16, aMaterial, new GT_MetaPipeEntity_Cable(aStartID + 5, "wire." + aMaterial.name().toLowerCase() + ".16", "16x " + aMaterial.mDefaultLocalName + " Wire", 1.0F, aMaterial, aLoss, 16L * aAmperage, aVoltage, false, !aAutoInsulated).getStackForm(1L)); - if (aInsulatable) - { - GT_OreDictUnificator.registerOre(OrePrefixes.cableGt01, aMaterial, new GT_MetaPipeEntity_Cable(aStartID + 6, "cable." + aMaterial.name().toLowerCase() + ".01", "1x " + aMaterial.mDefaultLocalName + " Cable", 0.25F, aMaterial, aLossInsulated, 1L * aAmperage, aVoltage, true, false).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.cableGt02, aMaterial, new GT_MetaPipeEntity_Cable(aStartID + 7, "cable." + aMaterial.name().toLowerCase() + ".02", "2x " + aMaterial.mDefaultLocalName + " Cable", 0.375F, aMaterial, aLossInsulated, 2L * aAmperage, aVoltage, true, false).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.cableGt04, aMaterial, new GT_MetaPipeEntity_Cable(aStartID + 8, "cable." + aMaterial.name().toLowerCase() + ".04", "4x " + aMaterial.mDefaultLocalName + " Cable", 0.5F, aMaterial, aLossInsulated, 4L * aAmperage, aVoltage, true, false).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.cableGt08, aMaterial, new GT_MetaPipeEntity_Cable(aStartID + 9, "cable." + aMaterial.name().toLowerCase() + ".08", "8x " + aMaterial.mDefaultLocalName + " Cable", 0.75F, aMaterial, aLossInsulated, 8L * aAmperage, aVoltage, true, false).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.cableGt12, aMaterial, new GT_MetaPipeEntity_Cable(aStartID + 10, "cable." + aMaterial.name().toLowerCase() + ".12", "12x " + aMaterial.mDefaultLocalName + " Cable", 1.0F, aMaterial, aLossInsulated, 12L * aAmperage, aVoltage, true, false).getStackForm(1L)); - } - } } diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_OreDictionary.java b/src/main/java/gregtech/loaders/preload/GT_Loader_OreDictionary.java index 5b6c29b4..d7136791 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_OreDictionary.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_OreDictionary.java @@ -8,200 +8,197 @@ import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; -import java.io.PrintStream; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class GT_Loader_OreDictionary - implements Runnable -{ - public void run() - { - GT_Log.out.println("GT_Mod: Register OreDict Entries of Non-GT-Items."); - GT_OreDictUnificator.set(OrePrefixes.cell, Materials.Empty, ItemList.Cell_Empty.get(1L, new Object[0])); - GT_OreDictUnificator.set(OrePrefixes.cell, Materials.Lava, ItemList.Cell_Lava.get(1L, new Object[0])); - GT_OreDictUnificator.set(OrePrefixes.cell, Materials.Lava, GT_ModHandler.getIC2Item("lavaCell", 1L)); - GT_OreDictUnificator.set(OrePrefixes.cell, Materials.Water, ItemList.Cell_Water.get(1L, new Object[0])); - GT_OreDictUnificator.set(OrePrefixes.cell, Materials.Water, GT_ModHandler.getIC2Item("waterCell", 1L)); - GT_OreDictUnificator.set(OrePrefixes.cell, Materials.Creosote, GT_ModHandler.getModItem("Railcraft", "fluid.creosote.cell", 1L)); - + implements Runnable { + public void run() { + GT_Log.out.println("GT_Mod: Register OreDict Entries of Non-GT-Items."); + GT_OreDictUnificator.set(OrePrefixes.cell, Materials.Empty, ItemList.Cell_Empty.get(1L, new Object[0])); + GT_OreDictUnificator.set(OrePrefixes.cell, Materials.Lava, ItemList.Cell_Lava.get(1L, new Object[0])); + GT_OreDictUnificator.set(OrePrefixes.cell, Materials.Lava, GT_ModHandler.getIC2Item("lavaCell", 1L)); + GT_OreDictUnificator.set(OrePrefixes.cell, Materials.Water, ItemList.Cell_Water.get(1L, new Object[0])); + GT_OreDictUnificator.set(OrePrefixes.cell, Materials.Water, GT_ModHandler.getIC2Item("waterCell", 1L)); + GT_OreDictUnificator.set(OrePrefixes.cell, Materials.Creosote, GT_ModHandler.getModItem("Railcraft", "fluid.creosote.cell", 1L)); - GT_OreDictUnificator.set(OrePrefixes.cell, Materials.UUMatter, GT_ModHandler.getIC2Item("uuMatterCell", 1L)); - GT_OreDictUnificator.set(OrePrefixes.cell, Materials.ConstructionFoam, GT_ModHandler.getIC2Item("CFCell", 1L)); - - GT_OreDictUnificator.set(OrePrefixes.bucket, Materials.Empty, new ItemStack(Items.bucket, 1, 0)); - GT_OreDictUnificator.set(OrePrefixes.bucket, Materials.Water, new ItemStack(Items.water_bucket, 1, 0)); - GT_OreDictUnificator.set(OrePrefixes.bucket, Materials.Lava, new ItemStack(Items.lava_bucket, 1, 0)); - GT_OreDictUnificator.set(OrePrefixes.bucket, Materials.Milk, new ItemStack(Items.milk_bucket, 1, 0)); - - GT_OreDictUnificator.set(OrePrefixes.bottle, Materials.Empty, new ItemStack(Items.glass_bottle, 1, 0)); - GT_OreDictUnificator.set(OrePrefixes.bottle, Materials.Water, new ItemStack(Items.potionitem, 1, 0)); - - GT_OreDictUnificator.set(OrePrefixes.plateAlloy, Materials.Iridium, GT_ModHandler.getIC2Item("iridiumPlate", 1L)); - GT_OreDictUnificator.set(OrePrefixes.plateAlloy, Materials.Advanced, GT_ModHandler.getIC2Item("advancedAlloy", 1L)); - GT_OreDictUnificator.set(OrePrefixes.plateAlloy, Materials.Carbon, GT_ModHandler.getIC2Item("carbonPlate", 1L)); - - GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Coal, new ItemStack(Blocks.coal_ore, 1)); - GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Iron, new ItemStack(Blocks.iron_ore, 1)); - GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Lapis, new ItemStack(Blocks.lapis_ore, 1)); - GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Redstone, new ItemStack(Blocks.redstone_ore, 1)); - GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Redstone, new ItemStack(Blocks.lit_redstone_ore, 1)); - GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Gold, new ItemStack(Blocks.gold_ore, 1)); - GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Diamond, new ItemStack(Blocks.diamond_ore, 1)); - GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Emerald, new ItemStack(Blocks.emerald_ore, 1)); - GT_OreDictUnificator.set(OrePrefixes.ore, Materials.NetherQuartz, new ItemStack(Blocks.quartz_ore, 1)); - GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Copper, GT_ModHandler.getIC2Item("copperIngot", 1L)); - GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Tin, GT_ModHandler.getIC2Item("tinIngot", 1L)); - GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Lead, GT_ModHandler.getIC2Item("leadIngot", 1L)); - GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Bronze, GT_ModHandler.getIC2Item("bronzeIngot", 1L)); - GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Silver, GT_ModHandler.getIC2Item("silverIngot", 1L)); - GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Iridium, GT_ModHandler.getIC2Item("iridiumOre", 1L)); - GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Lapis, new ItemStack(Items.dye, 1, 4)); - GT_OreDictUnificator.set(OrePrefixes.gem, Materials.EnderEye, new ItemStack(Items.ender_eye, 1)); - GT_OreDictUnificator.set(OrePrefixes.gem, Materials.EnderPearl, new ItemStack(Items.ender_pearl, 1)); - GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Diamond, new ItemStack(Items.diamond, 1)); - GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Emerald, new ItemStack(Items.emerald, 1)); - GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Coal, new ItemStack(Items.coal, 1, 0)); - GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Charcoal, new ItemStack(Items.coal, 1, 1)); - GT_OreDictUnificator.set(OrePrefixes.gem, Materials.NetherQuartz, new ItemStack(Items.quartz, 1)); - GT_OreDictUnificator.set(OrePrefixes.gem, Materials.NetherStar, new ItemStack(Items.nether_star, 1)); - GT_OreDictUnificator.set(OrePrefixes.nugget, Materials.Gold, new ItemStack(Items.gold_nugget, 1)); - GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Gold, new ItemStack(Items.gold_ingot, 1)); - GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Iron, new ItemStack(Items.iron_ingot, 1)); - GT_OreDictUnificator.set(OrePrefixes.plate, Materials.Paper, new ItemStack(Items.paper, 1)); - GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Sugar, new ItemStack(Items.sugar, 1)); - GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Bone, ItemList.Dye_Bonemeal.get(1L, new Object[0])); - GT_OreDictUnificator.set(OrePrefixes.stick, Materials.Wood, new ItemStack(Items.stick, 1)); - GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Redstone, new ItemStack(Items.redstone, 1)); - GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Gunpowder, new ItemStack(Items.gunpowder, 1)); - GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Glowstone, new ItemStack(Items.glowstone_dust, 1)); - GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Blaze, new ItemStack(Items.blaze_powder, 1)); - GT_OreDictUnificator.set(OrePrefixes.stick, Materials.Blaze, new ItemStack(Items.blaze_rod, 1)); - GT_OreDictUnificator.set(OrePrefixes.block, Materials.Iron, new ItemStack(Blocks.iron_block, 1, 0)); - GT_OreDictUnificator.set(OrePrefixes.block, Materials.Gold, new ItemStack(Blocks.gold_block, 1, 0)); - GT_OreDictUnificator.set(OrePrefixes.block, Materials.Diamond, new ItemStack(Blocks.diamond_block, 1, 0)); - GT_OreDictUnificator.set(OrePrefixes.block, Materials.Emerald, new ItemStack(Blocks.emerald_block, 1, 0)); - GT_OreDictUnificator.set(OrePrefixes.block, Materials.Lapis, new ItemStack(Blocks.lapis_block, 1, 0)); - GT_OreDictUnificator.set(OrePrefixes.block, Materials.Coal, new ItemStack(Blocks.coal_block, 1, 0)); - GT_OreDictUnificator.set(OrePrefixes.block, Materials.Redstone, new ItemStack(Blocks.redstone_block, 1, 0)); - if (Blocks.ender_chest != null) { - GT_OreDictUnificator.registerOre(OreDictNames.enderChest, new ItemStack(Blocks.ender_chest, 1)); + + GT_OreDictUnificator.set(OrePrefixes.cell, Materials.UUMatter, GT_ModHandler.getIC2Item("uuMatterCell", 1L)); + GT_OreDictUnificator.set(OrePrefixes.cell, Materials.ConstructionFoam, GT_ModHandler.getIC2Item("CFCell", 1L)); + + GT_OreDictUnificator.set(OrePrefixes.bucket, Materials.Empty, new ItemStack(Items.bucket, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.bucket, Materials.Water, new ItemStack(Items.water_bucket, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.bucket, Materials.Lava, new ItemStack(Items.lava_bucket, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.bucket, Materials.Milk, new ItemStack(Items.milk_bucket, 1, 0)); + + GT_OreDictUnificator.set(OrePrefixes.bottle, Materials.Empty, new ItemStack(Items.glass_bottle, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.bottle, Materials.Water, new ItemStack(Items.potionitem, 1, 0)); + + GT_OreDictUnificator.set(OrePrefixes.plateAlloy, Materials.Iridium, GT_ModHandler.getIC2Item("iridiumPlate", 1L)); + GT_OreDictUnificator.set(OrePrefixes.plateAlloy, Materials.Advanced, GT_ModHandler.getIC2Item("advancedAlloy", 1L)); + GT_OreDictUnificator.set(OrePrefixes.plateAlloy, Materials.Carbon, GT_ModHandler.getIC2Item("carbonPlate", 1L)); + + GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Coal, new ItemStack(Blocks.coal_ore, 1)); + GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Iron, new ItemStack(Blocks.iron_ore, 1)); + GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Lapis, new ItemStack(Blocks.lapis_ore, 1)); + GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Redstone, new ItemStack(Blocks.redstone_ore, 1)); + GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Redstone, new ItemStack(Blocks.lit_redstone_ore, 1)); + GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Gold, new ItemStack(Blocks.gold_ore, 1)); + GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Diamond, new ItemStack(Blocks.diamond_ore, 1)); + GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Emerald, new ItemStack(Blocks.emerald_ore, 1)); + GT_OreDictUnificator.set(OrePrefixes.ore, Materials.NetherQuartz, new ItemStack(Blocks.quartz_ore, 1)); + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Copper, GT_ModHandler.getIC2Item("copperIngot", 1L)); + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Tin, GT_ModHandler.getIC2Item("tinIngot", 1L)); + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Lead, GT_ModHandler.getIC2Item("leadIngot", 1L)); + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Bronze, GT_ModHandler.getIC2Item("bronzeIngot", 1L)); + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Silver, GT_ModHandler.getIC2Item("silverIngot", 1L)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Iridium, GT_ModHandler.getIC2Item("iridiumOre", 1L)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Lapis, new ItemStack(Items.dye, 1, 4)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.EnderEye, new ItemStack(Items.ender_eye, 1)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.EnderPearl, new ItemStack(Items.ender_pearl, 1)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Diamond, new ItemStack(Items.diamond, 1)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Emerald, new ItemStack(Items.emerald, 1)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Coal, new ItemStack(Items.coal, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Charcoal, new ItemStack(Items.coal, 1, 1)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.NetherQuartz, new ItemStack(Items.quartz, 1)); + GT_OreDictUnificator.set(OrePrefixes.gem, Materials.NetherStar, new ItemStack(Items.nether_star, 1)); + GT_OreDictUnificator.set(OrePrefixes.nugget, Materials.Gold, new ItemStack(Items.gold_nugget, 1)); + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Gold, new ItemStack(Items.gold_ingot, 1)); + GT_OreDictUnificator.set(OrePrefixes.ingot, Materials.Iron, new ItemStack(Items.iron_ingot, 1)); + GT_OreDictUnificator.set(OrePrefixes.plate, Materials.Paper, new ItemStack(Items.paper, 1)); + GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Sugar, new ItemStack(Items.sugar, 1)); + GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Bone, ItemList.Dye_Bonemeal.get(1L, new Object[0])); + GT_OreDictUnificator.set(OrePrefixes.stick, Materials.Wood, new ItemStack(Items.stick, 1)); + GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Redstone, new ItemStack(Items.redstone, 1)); + GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Gunpowder, new ItemStack(Items.gunpowder, 1)); + GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Glowstone, new ItemStack(Items.glowstone_dust, 1)); + GT_OreDictUnificator.set(OrePrefixes.dust, Materials.Blaze, new ItemStack(Items.blaze_powder, 1)); + GT_OreDictUnificator.set(OrePrefixes.stick, Materials.Blaze, new ItemStack(Items.blaze_rod, 1)); + GT_OreDictUnificator.set(OrePrefixes.block, Materials.Iron, new ItemStack(Blocks.iron_block, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.block, Materials.Gold, new ItemStack(Blocks.gold_block, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.block, Materials.Diamond, new ItemStack(Blocks.diamond_block, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.block, Materials.Emerald, new ItemStack(Blocks.emerald_block, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.block, Materials.Lapis, new ItemStack(Blocks.lapis_block, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.block, Materials.Coal, new ItemStack(Blocks.coal_block, 1, 0)); + GT_OreDictUnificator.set(OrePrefixes.block, Materials.Redstone, new ItemStack(Blocks.redstone_block, 1, 0)); + if (Blocks.ender_chest != null) { + GT_OreDictUnificator.registerOre(OreDictNames.enderChest, new ItemStack(Blocks.ender_chest, 1)); + } + GT_OreDictUnificator.registerOre(OreDictNames.craftingAnvil, new ItemStack(Blocks.anvil, 1)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingAnvil, GT_ModHandler.getModItem("Railcraft", "tile.railcraft.anvil", 1L, 0)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingIndustrialDiamond, ItemList.IC2_Industrial_Diamond.get(1L, new Object[0])); + GT_OreDictUnificator.registerOre(OrePrefixes.dust, Materials.Wood, GT_ModHandler.getModItem("ThermalExpansion", "sawdust", 1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.glass, Materials.Reinforced, GT_ModHandler.getIC2Item("reinforcedGlass", 1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.glass, Materials.Reinforced, GT_ModHandler.getModItem("ThermalExpansion", "glassHardened", 1L)); + + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Basalt, GT_ModHandler.getModItem("Railcraft", "tile.railcraft.cube", 1L, 6)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Marble, GT_ModHandler.getModItem("Railcraft", "tile.railcraft.cube", 1L, 7)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Basalt, GT_ModHandler.getModItem("Railcraft", "tile.railcraft.brick.abyssal", 1L, 32767)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Marble, GT_ModHandler.getModItem("Railcraft", "tile.railcraft.brick.quarried", 1L, 32767)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Obsidian, new ItemStack(Blocks.obsidian, 1, 32767)); + GT_OreDictUnificator.registerOre(OrePrefixes.stoneMossy, new ItemStack(Blocks.mossy_cobblestone, 1, 32767)); + GT_OreDictUnificator.registerOre(OrePrefixes.stoneCobble, new ItemStack(Blocks.mossy_cobblestone, 1, 32767)); + GT_OreDictUnificator.registerOre(OrePrefixes.stoneCobble, new ItemStack(Blocks.cobblestone, 1, 32767)); + GT_OreDictUnificator.registerOre(OrePrefixes.stoneSmooth, new ItemStack(Blocks.stone, 1, 32767)); + GT_OreDictUnificator.registerOre(OrePrefixes.stoneBricks, new ItemStack(Blocks.stonebrick, 1, 32767)); + GT_OreDictUnificator.registerOre(OrePrefixes.stoneMossy, new ItemStack(Blocks.stonebrick, 1, 1)); + GT_OreDictUnificator.registerOre(OrePrefixes.stoneCracked, new ItemStack(Blocks.stonebrick, 1, 2)); + GT_OreDictUnificator.registerOre(OrePrefixes.stoneChiseled, new ItemStack(Blocks.stonebrick, 1, 3)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Sand, new ItemStack(Blocks.sandstone, 1, 32767)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Netherrack, new ItemStack(Blocks.netherrack, 1, 32767)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.NetherBrick, new ItemStack(Blocks.nether_brick, 1, 32767)); + GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Endstone, new ItemStack(Blocks.end_stone, 1, 32767)); + + GT_OreDictUnificator.registerOre("paperResearchFragment", GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1L, 9)); + GT_OreDictUnificator.registerOre("itemCertusQuartz", GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 1)); + GT_OreDictUnificator.registerOre("itemNetherQuartz", GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 10)); + GT_OreDictUnificator.registerOre("itemCertusQuartz", GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 11)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingQuartz, GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 1)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingQuartz, GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 10)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingQuartz, GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 11)); + GT_OreDictUnificator.registerOre("cropLemon", ItemList.FR_Lemon.get(1L, new Object[0])); + GT_OreDictUnificator.registerOre("cropCoffee", ItemList.IC2_CoffeeBeans.get(1L, new Object[0])); + GT_OreDictUnificator.registerOre("cropPotato", ItemList.Food_Raw_Potato.get(1L, new Object[0])); + GT_OreDictUnificator.registerOre("calclavia:BATTERY", GT_ModHandler.getIC2Item("reBattery", 1L)); + GT_OreDictUnificator.registerOre("calclavia:BATTERY", GT_ModHandler.getIC2Item("chargedReBattery", 1L, 32767)); + GT_OreDictUnificator.registerOre(OrePrefixes.battery, Materials.Basic, GT_ModHandler.getIC2Item("reBattery", 1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.battery, Materials.Basic, GT_ModHandler.getIC2Item("chargedReBattery", 1L, 32767)); + GT_OreDictUnificator.registerOre(OrePrefixes.battery, Materials.Advanced, GT_ModHandler.getIC2Item("advBattery", 1L, 32767)); + GT_OreDictUnificator.registerOre(OrePrefixes.battery, Materials.Elite, GT_ModHandler.getIC2Item("energyCrystal", 1L, 32767)); + GT_OreDictUnificator.registerOre(OrePrefixes.battery, Materials.Master, GT_ModHandler.getIC2Item("lapotronCrystal", 1L, 32767)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingWireCopper, GT_ModHandler.getIC2Item("insulatedCopperCableItem", 1L)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingWireGold, GT_ModHandler.getIC2Item("insulatedGoldCableItem", 1L)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingWireIron, GT_ModHandler.getIC2Item("insulatedIronCableItem", 1L)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingWireTin, GT_ModHandler.getIC2Item("insulatedTinCableItem", 1L, GT_ModHandler.getIC2Item("insulatedCopperCableItem", 1L))); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingRedstoneTorch, new ItemStack(Blocks.redstone_torch, 1, 32767)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingRedstoneTorch, new ItemStack(Blocks.unlit_redstone_torch, 1, 32767)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingWorkBench, new ItemStack(Blocks.crafting_table, 1)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingWorkBench, new ItemStack(GregTech_API.sBlockMachines, 1, 16)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingPiston, new ItemStack(Blocks.piston, 1, 32767)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingPiston, new ItemStack(Blocks.sticky_piston, 1, 32767)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingSafe, new ItemStack(GregTech_API.sBlockMachines, 1, 45)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingSafe, GT_ModHandler.getIC2Item("personalSafe", 1L)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingChest, new ItemStack(Blocks.chest, 1, 32767)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingChest, new ItemStack(Blocks.trapped_chest, 1, 32767)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingFurnace, new ItemStack(Blocks.furnace, 1, 32767)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingFurnace, new ItemStack(Blocks.lit_furnace, 1, 32767)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingPump, GT_ModHandler.getIC2Item("pump", 1L)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingElectromagnet, GT_ModHandler.getIC2Item("magnetizer", 1L)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingTeleporter, GT_ModHandler.getIC2Item("teleporter", 1L)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingMacerator, GT_ModHandler.getIC2Item("macerator", 1L)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingMacerator, new ItemStack(GregTech_API.sBlockMachines, 1, 50)); + + + GT_OreDictUnificator.registerOre(OreDictNames.craftingExtractor, GT_ModHandler.getIC2Item("extractor", 1L)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingExtractor, new ItemStack(GregTech_API.sBlockMachines, 1, 51)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingCompressor, GT_ModHandler.getIC2Item("compressor", 1L)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingCompressor, new ItemStack(GregTech_API.sBlockMachines, 1, 52)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingRecycler, GT_ModHandler.getIC2Item("recycler", 1L)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingRecycler, new ItemStack(GregTech_API.sBlockMachines, 1, 53)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingIronFurnace, GT_ModHandler.getIC2Item("ironFurnace", 1L)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingCentrifuge, new ItemStack(GregTech_API.sBlockMachines, 1, 62)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingInductionFurnace, GT_ModHandler.getIC2Item("inductionFurnace", 1L)); + + + GT_OreDictUnificator.registerOre(OreDictNames.craftingElectricFurnace, GT_ModHandler.getIC2Item("electroFurnace", 1L)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingElectricFurnace, new ItemStack(GregTech_API.sBlockMachines, 1, 54)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingGenerator, GT_ModHandler.getIC2Item("generator", 1L)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingGeothermalGenerator, GT_ModHandler.getIC2Item("geothermalGenerator", 1L)); + + GT_OreDictUnificator.registerOre(OreDictNames.craftingFeather, new ItemStack(Items.feather, 1, 32767)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingFeather, GT_ModHandler.getModItem("TwilightForest", "item.tfFeather", 1L, 32767)); + + GT_OreDictUnificator.registerOre("itemWheat", new ItemStack(Items.wheat, 1, 32767)); + GT_OreDictUnificator.registerOre("paperEmpty", new ItemStack(Items.paper, 1, 32767)); + GT_OreDictUnificator.registerOre("paperMap", new ItemStack(Items.map, 1, 32767)); + GT_OreDictUnificator.registerOre("paperMap", new ItemStack(Items.filled_map, 1, 32767)); + GT_OreDictUnificator.registerOre("bookEmpty", new ItemStack(Items.book, 1, 32767)); + GT_OreDictUnificator.registerOre("bookWritable", new ItemStack(Items.writable_book, 1, 32767)); + GT_OreDictUnificator.registerOre("bookWritten", new ItemStack(Items.written_book, 1, 32767)); + GT_OreDictUnificator.registerOre("bookEnchanted", new ItemStack(Items.enchanted_book, 1, 32767)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingBook, new ItemStack(Items.book, 1, 32767)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingBook, new ItemStack(Items.writable_book, 1, 32767)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingBook, new ItemStack(Items.written_book, 1, 32767)); + GT_OreDictUnificator.registerOre(OreDictNames.craftingBook, new ItemStack(Items.enchanted_book, 1, 32767)); + + GT_OreDictUnificator.registerOre(OrePrefixes.circuit, Materials.Basic, GT_ModHandler.getIC2Item("electronicCircuit", 1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.circuit, Materials.Advanced, GT_ModHandler.getIC2Item("advancedCircuit", 1L)); } - GT_OreDictUnificator.registerOre(OreDictNames.craftingAnvil, new ItemStack(Blocks.anvil, 1)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingAnvil, GT_ModHandler.getModItem("Railcraft", "tile.railcraft.anvil", 1L, 0)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingIndustrialDiamond, ItemList.IC2_Industrial_Diamond.get(1L, new Object[0])); - GT_OreDictUnificator.registerOre(OrePrefixes.dust, Materials.Wood, GT_ModHandler.getModItem("ThermalExpansion", "sawdust", 1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.glass, Materials.Reinforced, GT_ModHandler.getIC2Item("reinforcedGlass", 1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.glass, Materials.Reinforced, GT_ModHandler.getModItem("ThermalExpansion", "glassHardened", 1L)); - - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Basalt, GT_ModHandler.getModItem("Railcraft", "tile.railcraft.cube", 1L, 6)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Marble, GT_ModHandler.getModItem("Railcraft", "tile.railcraft.cube", 1L, 7)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Basalt, GT_ModHandler.getModItem("Railcraft", "tile.railcraft.brick.abyssal", 1L, 32767)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Marble, GT_ModHandler.getModItem("Railcraft", "tile.railcraft.brick.quarried", 1L, 32767)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Obsidian, new ItemStack(Blocks.obsidian, 1, 32767)); - GT_OreDictUnificator.registerOre(OrePrefixes.stoneMossy, new ItemStack(Blocks.mossy_cobblestone, 1, 32767)); - GT_OreDictUnificator.registerOre(OrePrefixes.stoneCobble, new ItemStack(Blocks.mossy_cobblestone, 1, 32767)); - GT_OreDictUnificator.registerOre(OrePrefixes.stoneCobble, new ItemStack(Blocks.cobblestone, 1, 32767)); - GT_OreDictUnificator.registerOre(OrePrefixes.stoneSmooth, new ItemStack(Blocks.stone, 1, 32767)); - GT_OreDictUnificator.registerOre(OrePrefixes.stoneBricks, new ItemStack(Blocks.stonebrick, 1, 32767)); - GT_OreDictUnificator.registerOre(OrePrefixes.stoneMossy, new ItemStack(Blocks.stonebrick, 1, 1)); - GT_OreDictUnificator.registerOre(OrePrefixes.stoneCracked, new ItemStack(Blocks.stonebrick, 1, 2)); - GT_OreDictUnificator.registerOre(OrePrefixes.stoneChiseled, new ItemStack(Blocks.stonebrick, 1, 3)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Sand, new ItemStack(Blocks.sandstone, 1, 32767)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Netherrack, new ItemStack(Blocks.netherrack, 1, 32767)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.NetherBrick, new ItemStack(Blocks.nether_brick, 1, 32767)); - GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Endstone, new ItemStack(Blocks.end_stone, 1, 32767)); - - GT_OreDictUnificator.registerOre("paperResearchFragment", GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1L, 9)); - GT_OreDictUnificator.registerOre("itemCertusQuartz", GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 1)); - GT_OreDictUnificator.registerOre("itemNetherQuartz", GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 10)); - GT_OreDictUnificator.registerOre("itemCertusQuartz", GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 11)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingQuartz, GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 1)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingQuartz, GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 10)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingQuartz, GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 11)); - GT_OreDictUnificator.registerOre("cropLemon", ItemList.FR_Lemon.get(1L, new Object[0])); - GT_OreDictUnificator.registerOre("cropCoffee", ItemList.IC2_CoffeeBeans.get(1L, new Object[0])); - GT_OreDictUnificator.registerOre("cropPotato", ItemList.Food_Raw_Potato.get(1L, new Object[0])); - GT_OreDictUnificator.registerOre("calclavia:BATTERY", GT_ModHandler.getIC2Item("reBattery", 1L)); - GT_OreDictUnificator.registerOre("calclavia:BATTERY", GT_ModHandler.getIC2Item("chargedReBattery", 1L, 32767)); - GT_OreDictUnificator.registerOre(OrePrefixes.battery, Materials.Basic, GT_ModHandler.getIC2Item("reBattery", 1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.battery, Materials.Basic, GT_ModHandler.getIC2Item("chargedReBattery", 1L, 32767)); - GT_OreDictUnificator.registerOre(OrePrefixes.battery, Materials.Advanced, GT_ModHandler.getIC2Item("advBattery", 1L, 32767)); - GT_OreDictUnificator.registerOre(OrePrefixes.battery, Materials.Elite, GT_ModHandler.getIC2Item("energyCrystal", 1L, 32767)); - GT_OreDictUnificator.registerOre(OrePrefixes.battery, Materials.Master, GT_ModHandler.getIC2Item("lapotronCrystal", 1L, 32767)); - - GT_OreDictUnificator.registerOre(OreDictNames.craftingWireCopper, GT_ModHandler.getIC2Item("insulatedCopperCableItem", 1L)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingWireGold, GT_ModHandler.getIC2Item("insulatedGoldCableItem", 1L)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingWireIron, GT_ModHandler.getIC2Item("insulatedIronCableItem", 1L)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingWireTin, GT_ModHandler.getIC2Item("insulatedTinCableItem", 1L, GT_ModHandler.getIC2Item("insulatedCopperCableItem", 1L))); - - GT_OreDictUnificator.registerOre(OreDictNames.craftingRedstoneTorch, new ItemStack(Blocks.redstone_torch, 1, 32767)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingRedstoneTorch, new ItemStack(Blocks.unlit_redstone_torch, 1, 32767)); - - GT_OreDictUnificator.registerOre(OreDictNames.craftingWorkBench, new ItemStack(Blocks.crafting_table, 1)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingWorkBench, new ItemStack(GregTech_API.sBlockMachines, 1, 16)); - - GT_OreDictUnificator.registerOre(OreDictNames.craftingPiston, new ItemStack(Blocks.piston, 1, 32767)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingPiston, new ItemStack(Blocks.sticky_piston, 1, 32767)); - - GT_OreDictUnificator.registerOre(OreDictNames.craftingSafe, new ItemStack(GregTech_API.sBlockMachines, 1, 45)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingSafe, GT_ModHandler.getIC2Item("personalSafe", 1L)); - - GT_OreDictUnificator.registerOre(OreDictNames.craftingChest, new ItemStack(Blocks.chest, 1, 32767)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingChest, new ItemStack(Blocks.trapped_chest, 1, 32767)); - - GT_OreDictUnificator.registerOre(OreDictNames.craftingFurnace, new ItemStack(Blocks.furnace, 1, 32767)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingFurnace, new ItemStack(Blocks.lit_furnace, 1, 32767)); - - GT_OreDictUnificator.registerOre(OreDictNames.craftingPump, GT_ModHandler.getIC2Item("pump", 1L)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingElectromagnet, GT_ModHandler.getIC2Item("magnetizer", 1L)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingTeleporter, GT_ModHandler.getIC2Item("teleporter", 1L)); - - GT_OreDictUnificator.registerOre(OreDictNames.craftingMacerator, GT_ModHandler.getIC2Item("macerator", 1L)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingMacerator, new ItemStack(GregTech_API.sBlockMachines, 1, 50)); - - - GT_OreDictUnificator.registerOre(OreDictNames.craftingExtractor, GT_ModHandler.getIC2Item("extractor", 1L)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingExtractor, new ItemStack(GregTech_API.sBlockMachines, 1, 51)); - - GT_OreDictUnificator.registerOre(OreDictNames.craftingCompressor, GT_ModHandler.getIC2Item("compressor", 1L)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingCompressor, new ItemStack(GregTech_API.sBlockMachines, 1, 52)); - - GT_OreDictUnificator.registerOre(OreDictNames.craftingRecycler, GT_ModHandler.getIC2Item("recycler", 1L)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingRecycler, new ItemStack(GregTech_API.sBlockMachines, 1, 53)); - - GT_OreDictUnificator.registerOre(OreDictNames.craftingIronFurnace, GT_ModHandler.getIC2Item("ironFurnace", 1L)); - - GT_OreDictUnificator.registerOre(OreDictNames.craftingCentrifuge, new ItemStack(GregTech_API.sBlockMachines, 1, 62)); - - GT_OreDictUnificator.registerOre(OreDictNames.craftingInductionFurnace, GT_ModHandler.getIC2Item("inductionFurnace", 1L)); - - - GT_OreDictUnificator.registerOre(OreDictNames.craftingElectricFurnace, GT_ModHandler.getIC2Item("electroFurnace", 1L)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingElectricFurnace, new ItemStack(GregTech_API.sBlockMachines, 1, 54)); - - GT_OreDictUnificator.registerOre(OreDictNames.craftingGenerator, GT_ModHandler.getIC2Item("generator", 1L)); - - GT_OreDictUnificator.registerOre(OreDictNames.craftingGeothermalGenerator, GT_ModHandler.getIC2Item("geothermalGenerator", 1L)); - - GT_OreDictUnificator.registerOre(OreDictNames.craftingFeather, new ItemStack(Items.feather, 1, 32767)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingFeather, GT_ModHandler.getModItem("TwilightForest", "item.tfFeather", 1L, 32767)); - - GT_OreDictUnificator.registerOre("itemWheat", new ItemStack(Items.wheat, 1, 32767)); - GT_OreDictUnificator.registerOre("paperEmpty", new ItemStack(Items.paper, 1, 32767)); - GT_OreDictUnificator.registerOre("paperMap", new ItemStack(Items.map, 1, 32767)); - GT_OreDictUnificator.registerOre("paperMap", new ItemStack(Items.filled_map, 1, 32767)); - GT_OreDictUnificator.registerOre("bookEmpty", new ItemStack(Items.book, 1, 32767)); - GT_OreDictUnificator.registerOre("bookWritable", new ItemStack(Items.writable_book, 1, 32767)); - GT_OreDictUnificator.registerOre("bookWritten", new ItemStack(Items.written_book, 1, 32767)); - GT_OreDictUnificator.registerOre("bookEnchanted", new ItemStack(Items.enchanted_book, 1, 32767)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingBook, new ItemStack(Items.book, 1, 32767)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingBook, new ItemStack(Items.writable_book, 1, 32767)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingBook, new ItemStack(Items.written_book, 1, 32767)); - GT_OreDictUnificator.registerOre(OreDictNames.craftingBook, new ItemStack(Items.enchanted_book, 1, 32767)); - - GT_OreDictUnificator.registerOre(OrePrefixes.circuit, Materials.Basic, GT_ModHandler.getIC2Item("electronicCircuit", 1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.circuit, Materials.Advanced, GT_ModHandler.getIC2Item("advancedCircuit", 1L)); - } } diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_OreProcessing.java b/src/main/java/gregtech/loaders/preload/GT_Loader_OreProcessing.java index be1226f8..7fda6468 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_OreProcessing.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_OreProcessing.java @@ -1,195 +1,102 @@ package gregtech.loaders.preload; import gregtech.api.util.GT_Log; -import gregtech.loaders.oreprocessing.ProcessingAll; -import gregtech.loaders.oreprocessing.ProcessingArrows; -import gregtech.loaders.oreprocessing.ProcessingBattery; -import gregtech.loaders.oreprocessing.ProcessingBeans; -import gregtech.loaders.oreprocessing.ProcessingBlock; -import gregtech.loaders.oreprocessing.ProcessingBolt; -import gregtech.loaders.oreprocessing.ProcessingCell; -import gregtech.loaders.oreprocessing.ProcessingCellPlasma; -import gregtech.loaders.oreprocessing.ProcessingCircuit; -import gregtech.loaders.oreprocessing.ProcessingCompressed; -import gregtech.loaders.oreprocessing.ProcessingCrafting; -import gregtech.loaders.oreprocessing.ProcessingCrop; -import gregtech.loaders.oreprocessing.ProcessingCrushedCentrifuged; -import gregtech.loaders.oreprocessing.ProcessingCrushedPurified; -import gregtech.loaders.oreprocessing.ProcessingCrystallized; -import gregtech.loaders.oreprocessing.ProcessingDirty; -import gregtech.loaders.oreprocessing.ProcessingDust; -import gregtech.loaders.oreprocessing.ProcessingDustImpure; -import gregtech.loaders.oreprocessing.ProcessingDustSmall; -import gregtech.loaders.oreprocessing.ProcessingDustTiny; -import gregtech.loaders.oreprocessing.ProcessingDye; -import gregtech.loaders.oreprocessing.ProcessingFoil; -import gregtech.loaders.oreprocessing.ProcessingFood; -import gregtech.loaders.oreprocessing.ProcessingGear; -import gregtech.loaders.oreprocessing.ProcessingGearSmall; -import gregtech.loaders.oreprocessing.ProcessingGem; -import gregtech.loaders.oreprocessing.ProcessingGemChipped; -import gregtech.loaders.oreprocessing.ProcessingGemExquisite; -import gregtech.loaders.oreprocessing.ProcessingGemFlawed; -import gregtech.loaders.oreprocessing.ProcessingGemFlawless; -import gregtech.loaders.oreprocessing.ProcessingIngot1; -import gregtech.loaders.oreprocessing.ProcessingIngot2; -import gregtech.loaders.oreprocessing.ProcessingIngot3; -import gregtech.loaders.oreprocessing.ProcessingIngot4; -import gregtech.loaders.oreprocessing.ProcessingIngot5; -import gregtech.loaders.oreprocessing.ProcessingIngotHot; -import gregtech.loaders.oreprocessing.ProcessingItem; -import gregtech.loaders.oreprocessing.ProcessingLeaves; -import gregtech.loaders.oreprocessing.ProcessingLens; -import gregtech.loaders.oreprocessing.ProcessingLog; -import gregtech.loaders.oreprocessing.ProcessingNugget; -import gregtech.loaders.oreprocessing.ProcessingOre; -import gregtech.loaders.oreprocessing.ProcessingOrePoor; -import gregtech.loaders.oreprocessing.ProcessingOreSmelting; -import gregtech.loaders.oreprocessing.ProcessingPipeLarge; -import gregtech.loaders.oreprocessing.ProcessingPipeMedium; -import gregtech.loaders.oreprocessing.ProcessingPipeRestrictive; -import gregtech.loaders.oreprocessing.ProcessingPipeSmall; -import gregtech.loaders.oreprocessing.ProcessingPlank; -import gregtech.loaders.oreprocessing.ProcessingPlate1; -import gregtech.loaders.oreprocessing.ProcessingPlate2; -import gregtech.loaders.oreprocessing.ProcessingPlate3; -import gregtech.loaders.oreprocessing.ProcessingPlate4; -import gregtech.loaders.oreprocessing.ProcessingPlate5; -import gregtech.loaders.oreprocessing.ProcessingPlate9; -import gregtech.loaders.oreprocessing.ProcessingPlateAlloy; -import gregtech.loaders.oreprocessing.ProcessingPure; -import gregtech.loaders.oreprocessing.ProcessingRecycling; -import gregtech.loaders.oreprocessing.ProcessingSand; -import gregtech.loaders.oreprocessing.ProcessingSaplings; -import gregtech.loaders.oreprocessing.ProcessingShaping; -import gregtech.loaders.oreprocessing.ProcessingSlab; -import gregtech.loaders.oreprocessing.ProcessingStick; -import gregtech.loaders.oreprocessing.ProcessingStickLong; -import gregtech.loaders.oreprocessing.ProcessingStone; -import gregtech.loaders.oreprocessing.ProcessingStoneCobble; -import gregtech.loaders.oreprocessing.ProcessingStoneVarious; -import gregtech.loaders.oreprocessing.ProcessingToolHeadArrow; -import gregtech.loaders.oreprocessing.ProcessingToolHeadAxe; -import gregtech.loaders.oreprocessing.ProcessingToolHeadBuzzSaw; -import gregtech.loaders.oreprocessing.ProcessingToolHeadChainsaw; -import gregtech.loaders.oreprocessing.ProcessingToolHeadDrill; -import gregtech.loaders.oreprocessing.ProcessingToolHeadFile; -import gregtech.loaders.oreprocessing.ProcessingToolHeadHammer; -import gregtech.loaders.oreprocessing.ProcessingToolHeadHoe; -import gregtech.loaders.oreprocessing.ProcessingToolHeadPickaxe; -import gregtech.loaders.oreprocessing.ProcessingToolHeadPlow; -import gregtech.loaders.oreprocessing.ProcessingToolHeadSaw; -import gregtech.loaders.oreprocessing.ProcessingToolHeadSense; -import gregtech.loaders.oreprocessing.ProcessingToolHeadShovel; -import gregtech.loaders.oreprocessing.ProcessingToolHeadSword; -import gregtech.loaders.oreprocessing.ProcessingToolHeadUniversalSpade; -import gregtech.loaders.oreprocessing.ProcessingToolHeadWrench; -import gregtech.loaders.oreprocessing.ProcessingTransforming; -import gregtech.loaders.oreprocessing.ProcessingWax; -import gregtech.loaders.oreprocessing.ProcessingWire01; -import gregtech.loaders.oreprocessing.ProcessingWire02; -import gregtech.loaders.oreprocessing.ProcessingWire04; -import gregtech.loaders.oreprocessing.ProcessingWire08; -import gregtech.loaders.oreprocessing.ProcessingWire12; -import gregtech.loaders.oreprocessing.ProcessingWire16; -import java.io.PrintStream; +import gregtech.loaders.oreprocessing.*; public class GT_Loader_OreProcessing - implements Runnable -{ - public void run() - { - GT_Log.out.println("GT_Mod: Register Ore processing."); - new ProcessingAll(); - new ProcessingArrows(); - new ProcessingBattery(); - new ProcessingBeans(); - new ProcessingBlock(); - new ProcessingBolt(); - new ProcessingCell(); - new ProcessingCellPlasma(); - new ProcessingCircuit(); - new ProcessingCompressed(); - new ProcessingCrafting(); - new ProcessingCrop(); - new ProcessingCrushedPurified(); - new ProcessingCrushedCentrifuged(); - new ProcessingCrystallized(); - new ProcessingDirty(); - new ProcessingDust(); - new ProcessingDustImpure(); - new ProcessingDustSmall(); - new ProcessingDustTiny(); - new ProcessingDye(); - new ProcessingFoil(); - new ProcessingFood(); - new ProcessingLens(); - new ProcessingShaping(); - new ProcessingGemChipped(); - new ProcessingGemFlawed(); - new ProcessingGem(); - new ProcessingGemFlawless(); - new ProcessingGemExquisite(); - new ProcessingGear(); - new ProcessingGearSmall(); - new ProcessingIngot1(); - new ProcessingIngot2(); - new ProcessingIngot3(); - new ProcessingIngot4(); - new ProcessingIngot5(); - new ProcessingIngotHot(); - new ProcessingItem(); - new ProcessingLeaves(); - new ProcessingLog(); - new ProcessingTransforming(); - new ProcessingNugget(); - new ProcessingOre(); - new ProcessingOrePoor(); - new ProcessingOreSmelting(); - new ProcessingPipeSmall(); - new ProcessingPipeMedium(); - new ProcessingPipeLarge(); - new ProcessingPipeRestrictive(); - new ProcessingPlank(); - new ProcessingPlate1(); - new ProcessingPlate2(); - new ProcessingPlate3(); - new ProcessingPlate4(); - new ProcessingPlate5(); - new ProcessingPlate9(); - new ProcessingPlateAlloy(); - new ProcessingPure(); - new ProcessingRecycling(); - new ProcessingSand(); - new ProcessingSaplings(); - new ProcessingSlab(); - new ProcessingStick(); - new ProcessingStickLong(); - new ProcessingStone(); - new ProcessingStoneCobble(); - new ProcessingStoneVarious(); - new ProcessingToolHeadArrow(); - new ProcessingToolHeadAxe(); - new ProcessingToolHeadBuzzSaw(); - new ProcessingToolHeadFile(); - new ProcessingToolHeadHammer(); - new ProcessingToolHeadHoe(); - new ProcessingToolHeadPickaxe(); - new ProcessingToolHeadSaw(); - new ProcessingToolHeadSense(); - new ProcessingToolHeadShovel(); - new ProcessingToolHeadSword(); - new ProcessingToolHeadPlow(); - new ProcessingToolHeadDrill(); - new ProcessingToolHeadChainsaw(); - new ProcessingToolHeadWrench(); - new ProcessingToolHeadUniversalSpade(); - new ProcessingWax(); - new ProcessingWire01(); - new ProcessingWire02(); - new ProcessingWire04(); - new ProcessingWire08(); - new ProcessingWire12(); - new ProcessingWire16(); - } + implements Runnable { + public void run() { + GT_Log.out.println("GT_Mod: Register Ore processing."); + new ProcessingAll(); + new ProcessingArrows(); + new ProcessingBattery(); + new ProcessingBeans(); + new ProcessingBlock(); + new ProcessingBolt(); + new ProcessingCell(); + new ProcessingCellPlasma(); + new ProcessingCircuit(); + new ProcessingCompressed(); + new ProcessingCrafting(); + new ProcessingCrop(); + new ProcessingCrushedPurified(); + new ProcessingCrushedCentrifuged(); + new ProcessingCrystallized(); + new ProcessingDirty(); + new ProcessingDust(); + new ProcessingDustImpure(); + new ProcessingDustSmall(); + new ProcessingDustTiny(); + new ProcessingDye(); + new ProcessingFoil(); + new ProcessingFood(); + new ProcessingLens(); + new ProcessingShaping(); + new ProcessingGemChipped(); + new ProcessingGemFlawed(); + new ProcessingGem(); + new ProcessingGemFlawless(); + new ProcessingGemExquisite(); + new ProcessingGear(); + new ProcessingGearSmall(); + new ProcessingIngot1(); + new ProcessingIngot2(); + new ProcessingIngot3(); + new ProcessingIngot4(); + new ProcessingIngot5(); + new ProcessingIngotHot(); + new ProcessingItem(); + new ProcessingLeaves(); + new ProcessingLog(); + new ProcessingTransforming(); + new ProcessingNugget(); + new ProcessingOre(); + new ProcessingOrePoor(); + new ProcessingOreSmelting(); + new ProcessingPipeSmall(); + new ProcessingPipeMedium(); + new ProcessingPipeLarge(); + new ProcessingPipeRestrictive(); + new ProcessingPlank(); + new ProcessingPlate1(); + new ProcessingPlate2(); + new ProcessingPlate3(); + new ProcessingPlate4(); + new ProcessingPlate5(); + new ProcessingPlate9(); + new ProcessingPlateAlloy(); + new ProcessingPure(); + new ProcessingRecycling(); + new ProcessingSand(); + new ProcessingSaplings(); + new ProcessingSlab(); + new ProcessingStick(); + new ProcessingStickLong(); + new ProcessingStone(); + new ProcessingStoneCobble(); + new ProcessingStoneVarious(); + new ProcessingToolHeadArrow(); + new ProcessingToolHeadAxe(); + new ProcessingToolHeadBuzzSaw(); + new ProcessingToolHeadFile(); + new ProcessingToolHeadHammer(); + new ProcessingToolHeadHoe(); + new ProcessingToolHeadPickaxe(); + new ProcessingToolHeadSaw(); + new ProcessingToolHeadSense(); + new ProcessingToolHeadShovel(); + new ProcessingToolHeadSword(); + new ProcessingToolHeadPlow(); + new ProcessingToolHeadDrill(); + new ProcessingToolHeadChainsaw(); + new ProcessingToolHeadWrench(); + new ProcessingToolHeadUniversalSpade(); + new ProcessingWax(); + new ProcessingWire01(); + new ProcessingWire02(); + new ProcessingWire04(); + new ProcessingWire08(); + new ProcessingWire12(); + new ProcessingWire16(); + } } diff --git a/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java b/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java index 54fa81a7..545bfd83 100644 --- a/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java +++ b/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java @@ -9,850 +9,787 @@ import codechicken.nei.recipe.GuiCraftingRecipe; import codechicken.nei.recipe.GuiRecipe; import codechicken.nei.recipe.GuiUsageRecipe; import codechicken.nei.recipe.TemplateRecipeHandler; -import codechicken.nei.recipe.TemplateRecipeHandler.CachedRecipe; -import codechicken.nei.recipe.TemplateRecipeHandler.RecipeTransferRect; - -import com.google.common.collect.ListMultimap; - import cpw.mods.fml.common.event.FMLInterModComms; import gregtech.api.enums.GT_Values; import gregtech.api.enums.OrePrefixes; import gregtech.api.gui.GT_GUIContainer_BasicMachine; import gregtech.api.objects.ItemData; -import gregtech.api.objects.MaterialStack; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; import gregtech.common.gui.GT_GUIContainer_FusionReactor; - -import java.awt.Point; -import java.awt.Rectangle; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; - import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidContainerRegistry; -import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData; import net.minecraftforge.fluids.FluidStack; - import org.lwjgl.opengl.GL11; +import java.awt.*; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + public class GT_NEI_DefaultHandler - extends TemplateRecipeHandler -{ - protected final GT_Recipe.GT_Recipe_Map mRecipeMap; - public static final int sOffsetX = 5; - public static final int sOffsetY = 11; - - public GT_NEI_DefaultHandler(GT_Recipe.GT_Recipe_Map aRecipeMap) - { - this.mRecipeMap = aRecipeMap; - this.transferRects.add(new TemplateRecipeHandler.RecipeTransferRect(new Rectangle(65, 13, 36, 18), getOverlayIdentifier(), new Object[0])); - if (!NEI_GT_Config.sIsAdded) - { - FMLInterModComms.sendRuntimeMessage(GT_Values.GT, "NEIPlugins", "register-crafting-handler", "gregtech@" + getRecipeName() + "@" + getOverlayIdentifier()); - GuiCraftingRecipe.craftinghandlers.add(this); - GuiUsageRecipe.usagehandlers.add(this); + extends TemplateRecipeHandler { + public static final int sOffsetX = 5; + public static final int sOffsetY = 11; + + static { + GuiContainerManager.addInputHandler(new GT_RectHandler()); + GuiContainerManager.addTooltipHandler(new GT_RectHandler()); } - } - - public TemplateRecipeHandler newInstance() - { - return new GT_NEI_DefaultHandler(this.mRecipeMap); - } - - public class FixedPositionedStack - extends PositionedStack - { - public boolean permutated = false; - public final int mChance; - - public FixedPositionedStack(Object object, int x, int y) - { - this(object, x, y, 0); + + protected final GT_Recipe.GT_Recipe_Map mRecipeMap; + + public GT_NEI_DefaultHandler(GT_Recipe.GT_Recipe_Map aRecipeMap) { + this.mRecipeMap = aRecipeMap; + this.transferRects.add(new TemplateRecipeHandler.RecipeTransferRect(new Rectangle(65, 13, 36, 18), getOverlayIdentifier(), new Object[0])); + if (!NEI_GT_Config.sIsAdded) { + FMLInterModComms.sendRuntimeMessage(GT_Values.GT, "NEIPlugins", "register-crafting-handler", "gregtech@" + getRecipeName() + "@" + getOverlayIdentifier()); + GuiCraftingRecipe.craftinghandlers.add(this); + GuiUsageRecipe.usagehandlers.add(this); + } } - - public FixedPositionedStack(Object object, int x, int y, int aChance) - { - super(object,x, y, true); - this.mChance = aChance; + + public static void drawText(int aX, int aY, String aString, int aColor) { + Minecraft.getMinecraft().fontRenderer.drawString(aString, aX, aY, aColor); } - - public void generatePermutations() - { - if (this.permutated) { - return; - } - ArrayList tDisplayStacks = new ArrayList(); - for (ItemStack tStack : this.items) { - if (GT_Utility.isStackValid(tStack)) { - if (tStack.getItemDamage() == 32767) - { - List permutations = codechicken.nei.ItemList.itemMap.get(tStack.getItem()); - if (!permutations.isEmpty()) - { - ItemStack stack; - for (Iterator i$ = permutations.iterator(); i$.hasNext(); tDisplayStacks.add(GT_Utility.copyAmount(tStack.stackSize, new Object[] { stack }))) { - stack = (ItemStack)i$.next(); - } + + public TemplateRecipeHandler newInstance() { + return new GT_NEI_DefaultHandler(this.mRecipeMap); + } + + public void loadCraftingRecipes(String outputId, Object... results) { + if (outputId.equals(getOverlayIdentifier())) { + for (GT_Recipe tRecipe : this.mRecipeMap.mRecipeList) { + if (!tRecipe.mHidden) { + this.arecipes.add(new CachedDefaultRecipe(tRecipe)); + } } - else - { - ItemStack base = new ItemStack(tStack.getItem(), tStack.stackSize); - base.stackTagCompound = tStack.stackTagCompound; - tDisplayStacks.add(base); + } else { + super.loadCraftingRecipes(outputId, results); + } + } + + public void loadCraftingRecipes(ItemStack aResult) { + ItemData tPrefixMaterial = GT_OreDictUnificator.getAssociation(aResult); + + ArrayList tResults = new ArrayList(); + tResults.add(aResult); + tResults.add(GT_OreDictUnificator.get(true, aResult)); + if ((tPrefixMaterial != null) && (!tPrefixMaterial.mBlackListed) && (!tPrefixMaterial.mPrefix.mFamiliarPrefixes.isEmpty())) { + for (OrePrefixes tPrefix : tPrefixMaterial.mPrefix.mFamiliarPrefixes) { + tResults.add(GT_OreDictUnificator.get(tPrefix, tPrefixMaterial.mMaterial.mMaterial, 1L)); } - } - else - { - tDisplayStacks.add(GT_Utility.copy(new Object[] { tStack })); - } } - } - this.items = ((ItemStack[])tDisplayStacks.toArray(new ItemStack[0])); - if (this.items.length == 0) { - this.items = new ItemStack[] { new ItemStack(Blocks.fire) }; - } - this.permutated = true; - setPermutationToRender(0); + FluidStack tFluid = GT_Utility.getFluidForFilledItem(aResult, true); + if (tFluid != null) { + tResults.add(GT_Utility.getFluidDisplayStack(tFluid, false)); + for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry.getRegisteredFluidContainerData()) { + if (tData.fluid.isFluidEqual(tFluid)) { + tResults.add(GT_Utility.copy(new Object[]{tData.filledContainer})); + } + } + } + for (GT_Recipe tRecipe : this.mRecipeMap.mRecipeList) { + if (!tRecipe.mHidden) { + CachedDefaultRecipe tNEIRecipe = new CachedDefaultRecipe(tRecipe); + for (ItemStack tStack : tResults) { + if (tNEIRecipe.contains(tNEIRecipe.mOutputs, tStack)) { + this.arecipes.add(tNEIRecipe); + break; + } + } + } + } + CachedDefaultRecipe tNEIRecipe; } - } - - public class CachedDefaultRecipe - extends TemplateRecipeHandler.CachedRecipe - { - public final GT_Recipe mRecipe; - public final List mOutputs = new ArrayList(); - public final List mInputs = new ArrayList(); - - public List getIngredients() - { - return getCycledIngredients(GT_NEI_DefaultHandler.this.cycleticks / 10, this.mInputs); + + public void loadUsageRecipes(ItemStack aInput) { + ItemData tPrefixMaterial = GT_OreDictUnificator.getAssociation(aInput); + + ArrayList tInputs = new ArrayList(); + tInputs.add(aInput); + tInputs.add(GT_OreDictUnificator.get(false, aInput)); + if ((tPrefixMaterial != null) && (!tPrefixMaterial.mPrefix.mFamiliarPrefixes.isEmpty())) { + for (OrePrefixes tPrefix : tPrefixMaterial.mPrefix.mFamiliarPrefixes) { + tInputs.add(GT_OreDictUnificator.get(tPrefix, tPrefixMaterial.mMaterial.mMaterial, 1L)); + } + } + FluidStack tFluid = GT_Utility.getFluidForFilledItem(aInput, true); + if (tFluid != null) { + tInputs.add(GT_Utility.getFluidDisplayStack(tFluid, false)); + for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry.getRegisteredFluidContainerData()) { + if (tData.fluid.isFluidEqual(tFluid)) { + tInputs.add(GT_Utility.copy(new Object[]{tData.filledContainer})); + } + } + } + for (GT_Recipe tRecipe : this.mRecipeMap.mRecipeList) { + if (!tRecipe.mHidden) { + CachedDefaultRecipe tNEIRecipe = new CachedDefaultRecipe(tRecipe); + for (ItemStack tStack : tInputs) { + if (tNEIRecipe.contains(tNEIRecipe.mInputs, tStack)) { + this.arecipes.add(tNEIRecipe); + break; + } + } + } + } + CachedDefaultRecipe tNEIRecipe; } - - public PositionedStack getResult() - { - return null; + + public String getOverlayIdentifier() { + return this.mRecipeMap.mNEIName; } - - public List getOtherStacks() - { - return this.mOutputs; + + public void drawBackground(int recipe) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GuiDraw.changeTexture(getGuiTexture()); + GuiDraw.drawTexturedModalRect(-4, -8, 1, 3, 174, 78); } - - public CachedDefaultRecipe(GT_Recipe aRecipe) - { - super(); - this.mRecipe = aRecipe; - - int tStartIndex = 0; - switch (GT_NEI_DefaultHandler.this.mRecipeMap.mUsualInputCount) - { - case 0: - break; - case 1: - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 48, 14)); - } - tStartIndex++; - break; - case 2: - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 30, 14)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 48, 14)); - } - tStartIndex++; - break; - case 3: - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 12, 14)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 30, 14)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 48, 14)); - } - tStartIndex++; - break; - case 4: - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 30, 5)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 48, 5)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 30, 23)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 48, 23)); - } - tStartIndex++; - break; - case 5: - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 12, 5)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 30, 5)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 48, 5)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 30, 23)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 48, 23)); - } - tStartIndex++; - break; - case 6: - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 12, 5)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 30, 5)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 48, 5)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 12, 23)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 30, 23)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 48, 23)); - } - tStartIndex++; - break; - case 7: - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 12, -4)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 30, -4)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 48, -4)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 12, 14)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 30, 14)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 48, 14)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 12, 32)); - } - tStartIndex++; - break; - case 8: - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 12, -4)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 30, -4)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 48, -4)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 12, 14)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 30, 14)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 48, 14)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 12, 32)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 30, 32)); - } - tStartIndex++; - break; - default: - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 12, -4)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 30, -4)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 48, -4)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 12, 14)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 30, 14)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 48, 14)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 12, 32)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 30, 32)); - } - tStartIndex++; - if (aRecipe.getRepresentativeInput(tStartIndex) != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.getRepresentativeInput(tStartIndex), 48, 32)); - } - tStartIndex++; - } - if (aRecipe.mSpecialItems != null) { - this.mInputs.add(new FixedPositionedStack( aRecipe.mSpecialItems, 120, 52)); - } - tStartIndex = 0; - switch (GT_NEI_DefaultHandler.this.mRecipeMap.mUsualOutputCount) - { - case 0: - break; - case 1: - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 102, 14, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - break; - case 2: - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 102, 14, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 120, 14, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - break; - case 3: - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 102, 14, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 120, 14, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 138, 14, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - break; - case 4: - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 102, 5, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 120, 5, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 102, 23, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 120, 23, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - break; - case 5: - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 102, 5, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 120, 5, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 138, 5, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 102, 23, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 120, 23, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - break; - case 6: - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 102, 5, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 120, 5, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 138, 5, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 102, 23, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 120, 23, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 138, 23, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - break; - case 7: - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 102, -4, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 120, -4, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 138, -4, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 102, 14, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 120, 14, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 138, 14, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 102, 32, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - break; - case 8: - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 102, -4, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 120, -4, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 138, -4, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 102, 14, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 120, 14, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 138, 14, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 102, 32, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 120, 32, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - break; - default: - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 102, -4, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 120, -4, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 138, -4, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 102, 14, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 120, 14, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 138, 14, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 102, 32, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 120, 32, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - if (aRecipe.getOutput(tStartIndex) != null) { - this.mOutputs.add(new FixedPositionedStack( aRecipe.getOutput(tStartIndex), 138, 32, aRecipe.getOutputChance(tStartIndex))); - } - tStartIndex++; - } - if ((aRecipe.mFluidInputs.length > 0) && (aRecipe.mFluidInputs[0] != null) && (aRecipe.mFluidInputs[0].getFluid() != null)) { - this.mInputs.add(new FixedPositionedStack( GT_Utility.getFluidDisplayStack(aRecipe.mFluidInputs[0], true), 48, 52)); - if((aRecipe.mFluidInputs.length > 1) && (aRecipe.mFluidInputs[1] != null) && (aRecipe.mFluidInputs[1].getFluid() != null)){ - this.mInputs.add(new FixedPositionedStack( GT_Utility.getFluidDisplayStack(aRecipe.mFluidInputs[1], true), 30, 52)); - } - } - if(aRecipe.mFluidOutputs.length>1){ - if(aRecipe.mFluidOutputs[0]!=null && (aRecipe.mFluidOutputs[0].getFluid() != null)){ - this.mOutputs.add(new FixedPositionedStack( GT_Utility.getFluidDisplayStack(aRecipe.mFluidOutputs[0], true), 120, 5)); - } - if(aRecipe.mFluidOutputs[1]!=null && (aRecipe.mFluidOutputs[1].getFluid() != null)){ - this.mOutputs.add(new FixedPositionedStack( GT_Utility.getFluidDisplayStack(aRecipe.mFluidOutputs[1], true), 138, 5)); - } - if(aRecipe.mFluidOutputs.length>2&&aRecipe.mFluidOutputs[2]!=null && (aRecipe.mFluidOutputs[2].getFluid() != null)){ - this.mOutputs.add(new FixedPositionedStack( GT_Utility.getFluidDisplayStack(aRecipe.mFluidOutputs[2], true), 102, 23)); - } - if(aRecipe.mFluidOutputs.length>3&&aRecipe.mFluidOutputs[3]!=null && (aRecipe.mFluidOutputs[3].getFluid() != null)){ - this.mOutputs.add(new FixedPositionedStack( GT_Utility.getFluidDisplayStack(aRecipe.mFluidOutputs[3], true), 120, 23)); - } - if(aRecipe.mFluidOutputs.length>4&&aRecipe.mFluidOutputs[4]!=null && (aRecipe.mFluidOutputs[4].getFluid() != null)){ - this.mOutputs.add(new FixedPositionedStack( GT_Utility.getFluidDisplayStack(aRecipe.mFluidOutputs[4], true), 138, 23)); - } - }else if ((aRecipe.mFluidOutputs.length > 0) && (aRecipe.mFluidOutputs[0] != null) && (aRecipe.mFluidOutputs[0].getFluid() != null)) { - this.mOutputs.add(new FixedPositionedStack( GT_Utility.getFluidDisplayStack(aRecipe.mFluidOutputs[0], true), 102, 52)); - } + + public int recipiesPerPage() { + return 1; } - } - - static - { - GuiContainerManager.addInputHandler(new GT_RectHandler()); - GuiContainerManager.addTooltipHandler(new GT_RectHandler()); - } - - public static class GT_RectHandler - implements IContainerInputHandler, IContainerTooltipHandler - { - public boolean mouseClicked(GuiContainer gui, int mousex, int mousey, int button) - { - if (canHandle(gui)) - { - if (button == 0) { - return transferRect(gui, false); - } - if (button == 1) { - return transferRect(gui, true); - } - } - return false; + + public String getRecipeName() { + return GT_LanguageManager.getTranslation(this.mRecipeMap.mUnlocalizedName); } - - public boolean lastKeyTyped(GuiContainer gui, char keyChar, int keyCode) - { - return false; - } - - public boolean canHandle(GuiContainer gui) - { - return (((gui instanceof GT_GUIContainer_BasicMachine)) && (GT_Utility.isStringValid(((GT_GUIContainer_BasicMachine)gui).mNEI))||((gui instanceof GT_GUIContainer_FusionReactor)) && (GT_Utility.isStringValid(((GT_GUIContainer_FusionReactor)gui).mNEI))); - } - - public List handleTooltip(GuiContainer gui, int mousex, int mousey, List currenttip) - { - if ((canHandle(gui)) && (currenttip.isEmpty())){ - if(gui instanceof GT_GUIContainer_BasicMachine && new Rectangle(65, 13, 36, 18).contains(new Point(GuiDraw.getMousePosition().x - ((GT_GUIContainer_BasicMachine)gui).getLeft() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[0], GuiDraw.getMousePosition().y - ((GT_GUIContainer_BasicMachine)gui).getTop() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[1]))) - {currenttip.add("Recipes"); - }else if(gui instanceof GT_GUIContainer_FusionReactor && new Rectangle(145, 0, 24, 24).contains(new Point(GuiDraw.getMousePosition().x - ((GT_GUIContainer_FusionReactor)gui).getLeft() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[0], GuiDraw.getMousePosition().y - ((GT_GUIContainer_FusionReactor)gui).getTop() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[1]))) - {currenttip.add("Recipes"); - } - - } - return currenttip; - } - - private boolean transferRect(GuiContainer gui, boolean usage) - { - if(gui instanceof GT_GUIContainer_BasicMachine){ - return (canHandle(gui)) && (new Rectangle(65, 13, 36, 18).contains(new Point(GuiDraw.getMousePosition().x - ((GT_GUIContainer_BasicMachine)gui).getLeft() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[0], GuiDraw.getMousePosition().y - ((GT_GUIContainer_BasicMachine)gui).getTop() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[1]))) && (usage ? GuiUsageRecipe.openRecipeGui(((GT_GUIContainer_BasicMachine)gui).mNEI, new Object[0]) : GuiCraftingRecipe.openRecipeGui(((GT_GUIContainer_BasicMachine)gui).mNEI, new Object[0])); - }else if(gui instanceof GT_GUIContainer_FusionReactor){ - return (canHandle(gui)) && (new Rectangle(145, 0, 24, 24).contains(new Point(GuiDraw.getMousePosition().x - ((GT_GUIContainer_FusionReactor)gui).getLeft() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[0], GuiDraw.getMousePosition().y - ((GT_GUIContainer_FusionReactor)gui).getTop() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[1]))) && (usage ? GuiUsageRecipe.openRecipeGui(((GT_GUIContainer_FusionReactor)gui).mNEI, new Object[0]) : GuiCraftingRecipe.openRecipeGui(((GT_GUIContainer_FusionReactor)gui).mNEI, new Object[0])); - } - return false; - } - - public List handleItemDisplayName(GuiContainer gui, ItemStack itemstack, List currenttip) - { - return currenttip; - } - - public List handleItemTooltip(GuiContainer gui, ItemStack itemstack, int mousex, int mousey, List currenttip) - { - return currenttip; - } - - public boolean keyTyped(GuiContainer gui, char keyChar, int keyCode) - { - return false; - } - - public void onKeyTyped(GuiContainer gui, char keyChar, int keyID) {} - - public void onMouseClicked(GuiContainer gui, int mousex, int mousey, int button) {} - - public void onMouseUp(GuiContainer gui, int mousex, int mousey, int button) {} - - public boolean mouseScrolled(GuiContainer gui, int mousex, int mousey, int scrolled) - { - return false; - } - - public void onMouseScrolled(GuiContainer gui, int mousex, int mousey, int scrolled) {} - - public void onMouseDragged(GuiContainer gui, int mousex, int mousey, int button, long heldTime) {} - } - - public void loadCraftingRecipes(String outputId, Object... results) - { - if (outputId.equals(getOverlayIdentifier())) { - for (GT_Recipe tRecipe : this.mRecipeMap.mRecipeList) { - if (!tRecipe.mHidden) { - this.arecipes.add(new CachedDefaultRecipe(tRecipe)); - } - } - } else { - super.loadCraftingRecipes(outputId, results); - } - } - - public void loadCraftingRecipes(ItemStack aResult) - { - ItemData tPrefixMaterial = GT_OreDictUnificator.getAssociation(aResult); - - ArrayList tResults = new ArrayList(); - tResults.add(aResult); - tResults.add(GT_OreDictUnificator.get(true, aResult)); - if ((tPrefixMaterial != null) && (!tPrefixMaterial.mBlackListed) && (!tPrefixMaterial.mPrefix.mFamiliarPrefixes.isEmpty())) { - for (OrePrefixes tPrefix : tPrefixMaterial.mPrefix.mFamiliarPrefixes) { - tResults.add(GT_OreDictUnificator.get(tPrefix, tPrefixMaterial.mMaterial.mMaterial, 1L)); - } - } - FluidStack tFluid = GT_Utility.getFluidForFilledItem(aResult, true); - if (tFluid != null) - { - tResults.add(GT_Utility.getFluidDisplayStack(tFluid, false)); - for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry.getRegisteredFluidContainerData()) { - if (tData.fluid.isFluidEqual(tFluid)) { - tResults.add(GT_Utility.copy(new Object[] { tData.filledContainer })); - } - } - } - for (GT_Recipe tRecipe : this.mRecipeMap.mRecipeList) { - if (!tRecipe.mHidden) - { - CachedDefaultRecipe tNEIRecipe = new CachedDefaultRecipe(tRecipe); - for (ItemStack tStack : tResults) { - if (tNEIRecipe.contains(tNEIRecipe.mOutputs, tStack)) - { - this.arecipes.add(tNEIRecipe); - break; - } - } - } - } - CachedDefaultRecipe tNEIRecipe; - } - - public void loadUsageRecipes(ItemStack aInput) - { - ItemData tPrefixMaterial = GT_OreDictUnificator.getAssociation(aInput); - - ArrayList tInputs = new ArrayList(); - tInputs.add(aInput); - tInputs.add(GT_OreDictUnificator.get(false, aInput)); - if ((tPrefixMaterial != null) && (!tPrefixMaterial.mPrefix.mFamiliarPrefixes.isEmpty())) { - for (OrePrefixes tPrefix : tPrefixMaterial.mPrefix.mFamiliarPrefixes) { - tInputs.add(GT_OreDictUnificator.get(tPrefix, tPrefixMaterial.mMaterial.mMaterial, 1L)); - } - } - FluidStack tFluid = GT_Utility.getFluidForFilledItem(aInput, true); - if (tFluid != null) - { - tInputs.add(GT_Utility.getFluidDisplayStack(tFluid, false)); - for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry.getRegisteredFluidContainerData()) { - if (tData.fluid.isFluidEqual(tFluid)) { - tInputs.add(GT_Utility.copy(new Object[] { tData.filledContainer })); - } - } - } - for (GT_Recipe tRecipe : this.mRecipeMap.mRecipeList) { - if (!tRecipe.mHidden) - { - CachedDefaultRecipe tNEIRecipe = new CachedDefaultRecipe(tRecipe); - for (ItemStack tStack : tInputs) { - if (tNEIRecipe.contains(tNEIRecipe.mInputs, tStack)) - { - this.arecipes.add(tNEIRecipe); - break; - } - } - } - } - CachedDefaultRecipe tNEIRecipe; - } - - public String getOverlayIdentifier() - { - return this.mRecipeMap.mNEIName; - } - - public void drawBackground(int recipe) - { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GuiDraw.changeTexture(getGuiTexture()); - GuiDraw.drawTexturedModalRect(-4, -8, 1, 3, 174, 78); - } - - public static void drawText(int aX, int aY, String aString, int aColor) - { - Minecraft.getMinecraft().fontRenderer.drawString(aString, aX, aY, aColor); - } - - public int recipiesPerPage() - { - return 1; - } - - public String getRecipeName() - { - return GT_LanguageManager.getTranslation(this.mRecipeMap.mUnlocalizedName); - } - - public String getGuiTexture() - { + + public String getGuiTexture() { // return "gregtech:textures/gui/" + this.mRecipeMap.mUnlocalizedName + ".png"; - return this.mRecipeMap.mNEIGUIPath; - } - - public List handleItemTooltip(GuiRecipe gui, ItemStack aStack, List currenttip, int aRecipeIndex) - { - TemplateRecipeHandler.CachedRecipe tObject = (TemplateRecipeHandler.CachedRecipe)this.arecipes.get(aRecipeIndex); - if ((tObject instanceof CachedDefaultRecipe)) - { - CachedDefaultRecipe tRecipe = (CachedDefaultRecipe)tObject; - for (PositionedStack tStack : tRecipe.mOutputs) { - if (aStack == tStack.item) - { - if ((!(tStack instanceof FixedPositionedStack)) || (((FixedPositionedStack)tStack).mChance <= 0) || (((FixedPositionedStack)tStack).mChance == 10000)) { - break; - } - currenttip.add("Chance: " + ((FixedPositionedStack)tStack).mChance / 100 + "." + (((FixedPositionedStack)tStack).mChance % 100 < 10 ? "0" + ((FixedPositionedStack)tStack).mChance % 100 : Integer.valueOf(((FixedPositionedStack)tStack).mChance % 100)) + "%"); break; + return this.mRecipeMap.mNEIGUIPath; + } + + public List handleItemTooltip(GuiRecipe gui, ItemStack aStack, List currenttip, int aRecipeIndex) { + TemplateRecipeHandler.CachedRecipe tObject = (TemplateRecipeHandler.CachedRecipe) this.arecipes.get(aRecipeIndex); + if ((tObject instanceof CachedDefaultRecipe)) { + CachedDefaultRecipe tRecipe = (CachedDefaultRecipe) tObject; + for (PositionedStack tStack : tRecipe.mOutputs) { + if (aStack == tStack.item) { + if ((!(tStack instanceof FixedPositionedStack)) || (((FixedPositionedStack) tStack).mChance <= 0) || (((FixedPositionedStack) tStack).mChance == 10000)) { + break; + } + currenttip.add("Chance: " + ((FixedPositionedStack) tStack).mChance / 100 + "." + (((FixedPositionedStack) tStack).mChance % 100 < 10 ? "0" + ((FixedPositionedStack) tStack).mChance % 100 : Integer.valueOf(((FixedPositionedStack) tStack).mChance % 100)) + "%"); + break; + } + } + for (PositionedStack tStack : tRecipe.mInputs) { + if (aStack == tStack.item) { + if ((gregtech.api.enums.ItemList.Display_Fluid.isStackEqual(tStack.item, true, true)) || + (tStack.item.stackSize != 0)) { + break; + } + currenttip.add("Does not get consumed in the process"); + break; + } + } } - } - for (PositionedStack tStack : tRecipe.mInputs) { - if (aStack == tStack.item) - { - if ((gregtech.api.enums.ItemList.Display_Fluid.isStackEqual(tStack.item, true, true)) || - (tStack.item.stackSize != 0)) { - break; - } - currenttip.add("Does not get consumed in the process"); break; + return currenttip; + } + + public void drawExtras(int aRecipeIndex) { + int tEUt = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mEUt; + int tDuration = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mDuration; + if (tEUt != 0) { + drawText(10, 73, "Total: " + tDuration * tEUt + " EU", -16777216); + drawText(10, 83, "Usage: " + tEUt + " EU/t", -16777216); + if (this.mRecipeMap.mShowVoltageAmperageInNEI) { + drawText(10, 93, "Voltage: " + tEUt / this.mRecipeMap.mAmperage + " EU", -16777216); + drawText(10, 103, "Amperage: " + this.mRecipeMap.mAmperage, -16777216); + } else { + drawText(10, 93, "Voltage: unspecified", -16777216); + drawText(10, 103, "Amperage: unspecified", -16777216); + } + } + if (tDuration > 0) { + drawText(10, 113, "Time: " + (tDuration < 20 ? "< 1" : Integer.valueOf(tDuration / 20)) + " secs", -16777216); + } + if ((GT_Utility.isStringValid(this.mRecipeMap.mNEISpecialValuePre)) || (GT_Utility.isStringValid(this.mRecipeMap.mNEISpecialValuePost))) { + drawText(10, 123, this.mRecipeMap.mNEISpecialValuePre + ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mSpecialValue * this.mRecipeMap.mNEISpecialValueMultiplier + this.mRecipeMap.mNEISpecialValuePost, -16777216); } - } } - return currenttip; - } - - public void drawExtras(int aRecipeIndex) - { - int tEUt = ((CachedDefaultRecipe)this.arecipes.get(aRecipeIndex)).mRecipe.mEUt; - int tDuration = ((CachedDefaultRecipe)this.arecipes.get(aRecipeIndex)).mRecipe.mDuration; - if (tEUt != 0) - { - drawText(10, 73, "Total: " + tDuration * tEUt + " EU", -16777216); - drawText(10, 83, "Usage: " + tEUt + " EU/t", -16777216); - if (this.mRecipeMap.mShowVoltageAmperageInNEI) - { - drawText(10, 93, "Voltage: " + tEUt / this.mRecipeMap.mAmperage + " EU", -16777216); - drawText(10, 103, "Amperage: " + this.mRecipeMap.mAmperage, -16777216); - } - else - { - drawText(10, 93, "Voltage: unspecified", -16777216); - drawText(10, 103, "Amperage: unspecified", -16777216); - } + + public static class GT_RectHandler + implements IContainerInputHandler, IContainerTooltipHandler { + public boolean mouseClicked(GuiContainer gui, int mousex, int mousey, int button) { + if (canHandle(gui)) { + if (button == 0) { + return transferRect(gui, false); + } + if (button == 1) { + return transferRect(gui, true); + } + } + return false; + } + + public boolean lastKeyTyped(GuiContainer gui, char keyChar, int keyCode) { + return false; + } + + public boolean canHandle(GuiContainer gui) { + return (((gui instanceof GT_GUIContainer_BasicMachine)) && (GT_Utility.isStringValid(((GT_GUIContainer_BasicMachine) gui).mNEI)) || ((gui instanceof GT_GUIContainer_FusionReactor)) && (GT_Utility.isStringValid(((GT_GUIContainer_FusionReactor) gui).mNEI))); + } + + public List handleTooltip(GuiContainer gui, int mousex, int mousey, List currenttip) { + if ((canHandle(gui)) && (currenttip.isEmpty())) { + if (gui instanceof GT_GUIContainer_BasicMachine && new Rectangle(65, 13, 36, 18).contains(new Point(GuiDraw.getMousePosition().x - ((GT_GUIContainer_BasicMachine) gui).getLeft() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[0], GuiDraw.getMousePosition().y - ((GT_GUIContainer_BasicMachine) gui).getTop() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[1]))) { + currenttip.add("Recipes"); + } else if (gui instanceof GT_GUIContainer_FusionReactor && new Rectangle(145, 0, 24, 24).contains(new Point(GuiDraw.getMousePosition().x - ((GT_GUIContainer_FusionReactor) gui).getLeft() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[0], GuiDraw.getMousePosition().y - ((GT_GUIContainer_FusionReactor) gui).getTop() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[1]))) { + currenttip.add("Recipes"); + } + + } + return currenttip; + } + + private boolean transferRect(GuiContainer gui, boolean usage) { + if (gui instanceof GT_GUIContainer_BasicMachine) { + return (canHandle(gui)) && (new Rectangle(65, 13, 36, 18).contains(new Point(GuiDraw.getMousePosition().x - ((GT_GUIContainer_BasicMachine) gui).getLeft() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[0], GuiDraw.getMousePosition().y - ((GT_GUIContainer_BasicMachine) gui).getTop() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[1]))) && (usage ? GuiUsageRecipe.openRecipeGui(((GT_GUIContainer_BasicMachine) gui).mNEI, new Object[0]) : GuiCraftingRecipe.openRecipeGui(((GT_GUIContainer_BasicMachine) gui).mNEI, new Object[0])); + } else if (gui instanceof GT_GUIContainer_FusionReactor) { + return (canHandle(gui)) && (new Rectangle(145, 0, 24, 24).contains(new Point(GuiDraw.getMousePosition().x - ((GT_GUIContainer_FusionReactor) gui).getLeft() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[0], GuiDraw.getMousePosition().y - ((GT_GUIContainer_FusionReactor) gui).getTop() - codechicken.nei.recipe.RecipeInfo.getGuiOffset(gui)[1]))) && (usage ? GuiUsageRecipe.openRecipeGui(((GT_GUIContainer_FusionReactor) gui).mNEI, new Object[0]) : GuiCraftingRecipe.openRecipeGui(((GT_GUIContainer_FusionReactor) gui).mNEI, new Object[0])); + } + return false; + } + + public List handleItemDisplayName(GuiContainer gui, ItemStack itemstack, List currenttip) { + return currenttip; + } + + public List handleItemTooltip(GuiContainer gui, ItemStack itemstack, int mousex, int mousey, List currenttip) { + return currenttip; + } + + public boolean keyTyped(GuiContainer gui, char keyChar, int keyCode) { + return false; + } + + public void onKeyTyped(GuiContainer gui, char keyChar, int keyID) { + } + + public void onMouseClicked(GuiContainer gui, int mousex, int mousey, int button) { + } + + public void onMouseUp(GuiContainer gui, int mousex, int mousey, int button) { + } + + public boolean mouseScrolled(GuiContainer gui, int mousex, int mousey, int scrolled) { + return false; + } + + public void onMouseScrolled(GuiContainer gui, int mousex, int mousey, int scrolled) { + } + + public void onMouseDragged(GuiContainer gui, int mousex, int mousey, int button, long heldTime) { + } } - if (tDuration > 0) { - drawText(10, 113, "Time: " + (tDuration < 20 ? "< 1" : Integer.valueOf(tDuration / 20)) + " secs", -16777216); + + public class FixedPositionedStack + extends PositionedStack { + public final int mChance; + public boolean permutated = false; + + public FixedPositionedStack(Object object, int x, int y) { + this(object, x, y, 0); + } + + public FixedPositionedStack(Object object, int x, int y, int aChance) { + super(object, x, y, true); + this.mChance = aChance; + } + + public void generatePermutations() { + if (this.permutated) { + return; + } + ArrayList tDisplayStacks = new ArrayList(); + for (ItemStack tStack : this.items) { + if (GT_Utility.isStackValid(tStack)) { + if (tStack.getItemDamage() == 32767) { + List permutations = codechicken.nei.ItemList.itemMap.get(tStack.getItem()); + if (!permutations.isEmpty()) { + ItemStack stack; + for (Iterator i$ = permutations.iterator(); i$.hasNext(); tDisplayStacks.add(GT_Utility.copyAmount(tStack.stackSize, new Object[]{stack}))) { + stack = (ItemStack) i$.next(); + } + } else { + ItemStack base = new ItemStack(tStack.getItem(), tStack.stackSize); + base.stackTagCompound = tStack.stackTagCompound; + tDisplayStacks.add(base); + } + } else { + tDisplayStacks.add(GT_Utility.copy(new Object[]{tStack})); + } + } + } + this.items = ((ItemStack[]) tDisplayStacks.toArray(new ItemStack[0])); + if (this.items.length == 0) { + this.items = new ItemStack[]{new ItemStack(Blocks.fire)}; + } + this.permutated = true; + setPermutationToRender(0); + } } - if ((GT_Utility.isStringValid(this.mRecipeMap.mNEISpecialValuePre)) || (GT_Utility.isStringValid(this.mRecipeMap.mNEISpecialValuePost))) { - drawText(10, 123, this.mRecipeMap.mNEISpecialValuePre + ((CachedDefaultRecipe)this.arecipes.get(aRecipeIndex)).mRecipe.mSpecialValue * this.mRecipeMap.mNEISpecialValueMultiplier + this.mRecipeMap.mNEISpecialValuePost, -16777216); + + public class CachedDefaultRecipe + extends TemplateRecipeHandler.CachedRecipe { + public final GT_Recipe mRecipe; + public final List mOutputs = new ArrayList(); + public final List mInputs = new ArrayList(); + + public CachedDefaultRecipe(GT_Recipe aRecipe) { + super(); + this.mRecipe = aRecipe; + + int tStartIndex = 0; + switch (GT_NEI_DefaultHandler.this.mRecipeMap.mUsualInputCount) { + case 0: + break; + case 1: + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 48, 14)); + } + tStartIndex++; + break; + case 2: + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 30, 14)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 48, 14)); + } + tStartIndex++; + break; + case 3: + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 12, 14)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 30, 14)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 48, 14)); + } + tStartIndex++; + break; + case 4: + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 30, 5)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 48, 5)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 30, 23)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 48, 23)); + } + tStartIndex++; + break; + case 5: + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 12, 5)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 30, 5)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 48, 5)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 30, 23)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 48, 23)); + } + tStartIndex++; + break; + case 6: + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 12, 5)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 30, 5)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 48, 5)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 12, 23)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 30, 23)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 48, 23)); + } + tStartIndex++; + break; + case 7: + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 12, -4)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 30, -4)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 48, -4)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 12, 14)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 30, 14)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 48, 14)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 12, 32)); + } + tStartIndex++; + break; + case 8: + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 12, -4)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 30, -4)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 48, -4)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 12, 14)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 30, 14)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 48, 14)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 12, 32)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 30, 32)); + } + tStartIndex++; + break; + default: + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 12, -4)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 30, -4)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 48, -4)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 12, 14)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 30, 14)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 48, 14)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 12, 32)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 30, 32)); + } + tStartIndex++; + if (aRecipe.getRepresentativeInput(tStartIndex) != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.getRepresentativeInput(tStartIndex), 48, 32)); + } + tStartIndex++; + } + if (aRecipe.mSpecialItems != null) { + this.mInputs.add(new FixedPositionedStack(aRecipe.mSpecialItems, 120, 52)); + } + tStartIndex = 0; + switch (GT_NEI_DefaultHandler.this.mRecipeMap.mUsualOutputCount) { + case 0: + break; + case 1: + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 102, 14, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + break; + case 2: + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 102, 14, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 120, 14, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + break; + case 3: + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 102, 14, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 120, 14, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 138, 14, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + break; + case 4: + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 102, 5, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 120, 5, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 102, 23, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 120, 23, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + break; + case 5: + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 102, 5, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 120, 5, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 138, 5, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 102, 23, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 120, 23, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + break; + case 6: + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 102, 5, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 120, 5, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 138, 5, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 102, 23, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 120, 23, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 138, 23, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + break; + case 7: + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 102, -4, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 120, -4, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 138, -4, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 102, 14, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 120, 14, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 138, 14, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 102, 32, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + break; + case 8: + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 102, -4, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 120, -4, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 138, -4, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 102, 14, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 120, 14, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 138, 14, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 102, 32, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 120, 32, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + break; + default: + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 102, -4, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 120, -4, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 138, -4, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 102, 14, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 120, 14, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 138, 14, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 102, 32, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 120, 32, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + if (aRecipe.getOutput(tStartIndex) != null) { + this.mOutputs.add(new FixedPositionedStack(aRecipe.getOutput(tStartIndex), 138, 32, aRecipe.getOutputChance(tStartIndex))); + } + tStartIndex++; + } + if ((aRecipe.mFluidInputs.length > 0) && (aRecipe.mFluidInputs[0] != null) && (aRecipe.mFluidInputs[0].getFluid() != null)) { + this.mInputs.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(aRecipe.mFluidInputs[0], true), 48, 52)); + if ((aRecipe.mFluidInputs.length > 1) && (aRecipe.mFluidInputs[1] != null) && (aRecipe.mFluidInputs[1].getFluid() != null)) { + this.mInputs.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(aRecipe.mFluidInputs[1], true), 30, 52)); + } + } + if (aRecipe.mFluidOutputs.length > 1) { + if (aRecipe.mFluidOutputs[0] != null && (aRecipe.mFluidOutputs[0].getFluid() != null)) { + this.mOutputs.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(aRecipe.mFluidOutputs[0], true), 120, 5)); + } + if (aRecipe.mFluidOutputs[1] != null && (aRecipe.mFluidOutputs[1].getFluid() != null)) { + this.mOutputs.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(aRecipe.mFluidOutputs[1], true), 138, 5)); + } + if (aRecipe.mFluidOutputs.length > 2 && aRecipe.mFluidOutputs[2] != null && (aRecipe.mFluidOutputs[2].getFluid() != null)) { + this.mOutputs.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(aRecipe.mFluidOutputs[2], true), 102, 23)); + } + if (aRecipe.mFluidOutputs.length > 3 && aRecipe.mFluidOutputs[3] != null && (aRecipe.mFluidOutputs[3].getFluid() != null)) { + this.mOutputs.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(aRecipe.mFluidOutputs[3], true), 120, 23)); + } + if (aRecipe.mFluidOutputs.length > 4 && aRecipe.mFluidOutputs[4] != null && (aRecipe.mFluidOutputs[4].getFluid() != null)) { + this.mOutputs.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(aRecipe.mFluidOutputs[4], true), 138, 23)); + } + } else if ((aRecipe.mFluidOutputs.length > 0) && (aRecipe.mFluidOutputs[0] != null) && (aRecipe.mFluidOutputs[0].getFluid() != null)) { + this.mOutputs.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(aRecipe.mFluidOutputs[0], true), 102, 52)); + } + } + + public List getIngredients() { + return getCycledIngredients(GT_NEI_DefaultHandler.this.cycleticks / 10, this.mInputs); + } + + public PositionedStack getResult() { + return null; + } + + public List getOtherStacks() { + return this.mOutputs; + } } - } } diff --git a/src/main/java/gregtech/nei/NEI_GT_Config.java b/src/main/java/gregtech/nei/NEI_GT_Config.java index c0d5c80c..8eab6877 100644 --- a/src/main/java/gregtech/nei/NEI_GT_Config.java +++ b/src/main/java/gregtech/nei/NEI_GT_Config.java @@ -4,28 +4,24 @@ import codechicken.nei.api.IConfigureNEI; import gregtech.api.util.GT_Recipe; public class NEI_GT_Config - implements IConfigureNEI -{ - public static boolean sIsAdded = true; - - public void loadConfig() - { - sIsAdded = false; - for (GT_Recipe.GT_Recipe_Map tMap : GT_Recipe.GT_Recipe_Map.sMappings) { - if (tMap.mNEIAllowed) { - new GT_NEI_DefaultHandler(tMap); - } + implements IConfigureNEI { + public static boolean sIsAdded = true; + + public void loadConfig() { + sIsAdded = false; + for (GT_Recipe.GT_Recipe_Map tMap : GT_Recipe.GT_Recipe_Map.sMappings) { + if (tMap.mNEIAllowed) { + new GT_NEI_DefaultHandler(tMap); + } + } + sIsAdded = true; + } + + public String getName() { + return "GregTech NEI Plugin"; + } + + public String getVersion() { + return "(5.03a)"; } - sIsAdded = true; - } - - public String getName() - { - return "GregTech NEI Plugin"; - } - - public String getVersion() - { - return "(5.03a)"; - } } diff --git a/src/main/resources/assets/ic2/sounds.json b/src/main/resources/assets/ic2/sounds.json index d525428f..3c87f1c2 100644 --- a/src/main/resources/assets/ic2/sounds.json +++ b/src/main/resources/assets/ic2/sounds.json @@ -1,52 +1,389 @@ { -"machines.ExtractorOp":{"category":"master", "sounds":[{"name":"ExtractorOp", "stream":false}]}, -"machines.CompressorOp":{"category":"master", "sounds":[{"name":"CompressorOp", "stream":false}]}, -"machines.ElectroFurnaceLoop":{"category":"master", "sounds":[{"name":"ElectroFurnaceLoop", "stream":false}]}, -"machines.InductionLoop":{"category":"master", "sounds":[{"name":"InductionLoop", "stream":false}]}, -"machines.InterruptOne":{"category":"master", "sounds":[{"name":"InterruptOne", "stream":false}]}, -"machines.IronFurnaceOp":{"category":"master", "sounds":[{"name":"IronFurnaceOp", "stream":false}]}, -"machines.KaChing":{"category":"master", "sounds":[{"name":"KaChing", "stream":false}]}, -"machines.MaceratorOp":{"category":"master", "sounds":[{"name":"MaceratorOp", "stream":false}]}, -"machines.MachineOverload":{"category":"master", "sounds":[{"name":"MachineOverload", "stream":false}]}, -"machines.MagnetizerLoop":{"category":"master", "sounds":[{"name":"MagnetizerLoop", "stream":false}]}, -"machines.MinerOp":{"category":"master", "sounds":[{"name":"MinerOp", "stream":false}]}, -"machines.PumpOp":{"category":"master", "sounds":[{"name":"PumpOp", "stream":false}]}, -"machines.RecyclerOp":{"category":"master", "sounds":[{"name":"RecyclerOp", "stream":false}]}, - -"tools.BatteryUse":{"category":"master", "sounds":[{"name":"BatteryUse", "stream":false}]}, -"tools.Dynamiteomote":{"category":"master", "sounds":[{"name":"Dynamiteomote", "stream":false}]}, -"tools.InsulationCutters":{"category":"master", "sounds":[{"name":"InsulationCutters", "stream":false}]}, -"tools.NukeExplosion":{"category":"master", "sounds":[{"name":"NukeExplosion", "stream":false}]}, -"tools.ODScanner":{"category":"master", "sounds":[{"name":"ODScanner", "stream":false}]}, -"tools.Painter":{"category":"master", "sounds":[{"name":"Painter", "stream":false}]}, -"tools.RubberTrampoline":{"category":"master", "sounds":[{"name":"RubberTrampoline", "stream":false}]}, -"tools.Treetap":{"category":"master", "sounds":[{"name":"Treetap", "stream":false}]}, -"tools.Wrench":{"category":"master", "sounds":[{"name":"Wrench", "stream":false}]}, - -"tools.chainsaw.ChainsawIdle":{"category":"master", "sounds":[{"name":"ChainsawIdle", "stream":false}]}, -"tools.chainsaw.ChainsawStop":{"category":"master", "sounds":[{"name":"ChainsawStop", "stream":false}]}, -"tools.chainsaw.ChainsawUseOne":{"category":"master", "sounds":[{"name":"ChainsawUseOne", "stream":false}]}, -"tools.chainsaw.ChainsawUseTwo":{"category":"master", "sounds":[{"name":"ChainsawUseTwo", "stream":false}]}, - -"tools.drill.DrillHard":{"category":"master", "sounds":[{"name":"DrillHard", "stream":false}]}, -"tools.drill.DrillSoft":{"category":"master", "sounds":[{"name":"DrillSoft", "stream":false}]}, -"tools.drill.DrillUseLoop":{"category":"master", "sounds":[{"name":"DrillUseLoop", "stream":false}]}, - -"tools.jetpack.JetpackFire":{"category":"master", "sounds":[{"name":"JetpackFire", "stream":false}]}, -"tools.jetpack.JetpackLoop":{"category":"master", "sounds":[{"name":"JetpackLoop", "stream":false}]}, - -"tools.mininglaser.MiningLaser":{"category":"master", "sounds":[{"name":"MiningLaser", "stream":false}]}, -"tools.mininglaser.MiningLaserExplosive":{"category":"master", "sounds":[{"name":"MiningLaserExplosive", "stream":false}]}, -"tools.mininglaser.MiningLaserLongRange":{"category":"master", "sounds":[{"name":"MiningLaserLongRange", "stream":false}]}, -"tools.mininglaser.MiningLaserLowFocus":{"category":"master", "sounds":[{"name":"MiningLaserLowFocus", "stream":false}]}, -"tools.mininglaser.MiningLaserScatter":{"category":"master", "sounds":[{"name":"MiningLaserScatter", "stream":false}]}, - -"tools.nanosabre.NanosabreIdle":{"category":"master", "sounds":[{"name":"NanosabreIdle", "stream":false}]}, -"tools.nanosabre.NanosabrePowerup":{"category":"master", "sounds":[{"name":"NanosabrePowerup", "stream":false}]}, -"tools.nanosabre.NanosabreSwing1":{"category":"master", "sounds":[{"name":"NanosabreSwing1", "stream":false}]}, -"tools.nanosabre.NanosabreSwing2":{"category":"master", "sounds":[{"name":"NanosabreSwing2", "stream":false}]}, -"tools.nanosabre.NanosabreSwing3":{"category":"master", "sounds":[{"name":"NanosabreSwing3", "stream":false}]}, - -"tools.quantumsuit.HelmetLoop":{"category":"master", "sounds":[{"name":"HelmetLoop", "stream":false}]}, -"tools.quantumsuit.QuantumsuitBoots":{"category":"master", "sounds":[{"name":"QuantumsuitBoots", "stream":false}]} + "machines.ExtractorOp": { + "category": "master", + "sounds": [ + { + "name": "ExtractorOp", + "stream": false + } + ] + }, + "machines.CompressorOp": { + "category": "master", + "sounds": [ + { + "name": "CompressorOp", + "stream": false + } + ] + }, + "machines.ElectroFurnaceLoop": { + "category": "master", + "sounds": [ + { + "name": "ElectroFurnaceLoop", + "stream": false + } + ] + }, + "machines.InductionLoop": { + "category": "master", + "sounds": [ + { + "name": "InductionLoop", + "stream": false + } + ] + }, + "machines.InterruptOne": { + "category": "master", + "sounds": [ + { + "name": "InterruptOne", + "stream": false + } + ] + }, + "machines.IronFurnaceOp": { + "category": "master", + "sounds": [ + { + "name": "IronFurnaceOp", + "stream": false + } + ] + }, + "machines.KaChing": { + "category": "master", + "sounds": [ + { + "name": "KaChing", + "stream": false + } + ] + }, + "machines.MaceratorOp": { + "category": "master", + "sounds": [ + { + "name": "MaceratorOp", + "stream": false + } + ] + }, + "machines.MachineOverload": { + "category": "master", + "sounds": [ + { + "name": "MachineOverload", + "stream": false + } + ] + }, + "machines.MagnetizerLoop": { + "category": "master", + "sounds": [ + { + "name": "MagnetizerLoop", + "stream": false + } + ] + }, + "machines.MinerOp": { + "category": "master", + "sounds": [ + { + "name": "MinerOp", + "stream": false + } + ] + }, + "machines.PumpOp": { + "category": "master", + "sounds": [ + { + "name": "PumpOp", + "stream": false + } + ] + }, + "machines.RecyclerOp": { + "category": "master", + "sounds": [ + { + "name": "RecyclerOp", + "stream": false + } + ] + }, + "tools.BatteryUse": { + "category": "master", + "sounds": [ + { + "name": "BatteryUse", + "stream": false + } + ] + }, + "tools.Dynamiteomote": { + "category": "master", + "sounds": [ + { + "name": "Dynamiteomote", + "stream": false + } + ] + }, + "tools.InsulationCutters": { + "category": "master", + "sounds": [ + { + "name": "InsulationCutters", + "stream": false + } + ] + }, + "tools.NukeExplosion": { + "category": "master", + "sounds": [ + { + "name": "NukeExplosion", + "stream": false + } + ] + }, + "tools.ODScanner": { + "category": "master", + "sounds": [ + { + "name": "ODScanner", + "stream": false + } + ] + }, + "tools.Painter": { + "category": "master", + "sounds": [ + { + "name": "Painter", + "stream": false + } + ] + }, + "tools.RubberTrampoline": { + "category": "master", + "sounds": [ + { + "name": "RubberTrampoline", + "stream": false + } + ] + }, + "tools.Treetap": { + "category": "master", + "sounds": [ + { + "name": "Treetap", + "stream": false + } + ] + }, + "tools.Wrench": { + "category": "master", + "sounds": [ + { + "name": "Wrench", + "stream": false + } + ] + }, + "tools.chainsaw.ChainsawIdle": { + "category": "master", + "sounds": [ + { + "name": "ChainsawIdle", + "stream": false + } + ] + }, + "tools.chainsaw.ChainsawStop": { + "category": "master", + "sounds": [ + { + "name": "ChainsawStop", + "stream": false + } + ] + }, + "tools.chainsaw.ChainsawUseOne": { + "category": "master", + "sounds": [ + { + "name": "ChainsawUseOne", + "stream": false + } + ] + }, + "tools.chainsaw.ChainsawUseTwo": { + "category": "master", + "sounds": [ + { + "name": "ChainsawUseTwo", + "stream": false + } + ] + }, + "tools.drill.DrillHard": { + "category": "master", + "sounds": [ + { + "name": "DrillHard", + "stream": false + } + ] + }, + "tools.drill.DrillSoft": { + "category": "master", + "sounds": [ + { + "name": "DrillSoft", + "stream": false + } + ] + }, + "tools.drill.DrillUseLoop": { + "category": "master", + "sounds": [ + { + "name": "DrillUseLoop", + "stream": false + } + ] + }, + "tools.jetpack.JetpackFire": { + "category": "master", + "sounds": [ + { + "name": "JetpackFire", + "stream": false + } + ] + }, + "tools.jetpack.JetpackLoop": { + "category": "master", + "sounds": [ + { + "name": "JetpackLoop", + "stream": false + } + ] + }, + "tools.mininglaser.MiningLaser": { + "category": "master", + "sounds": [ + { + "name": "MiningLaser", + "stream": false + } + ] + }, + "tools.mininglaser.MiningLaserExplosive": { + "category": "master", + "sounds": [ + { + "name": "MiningLaserExplosive", + "stream": false + } + ] + }, + "tools.mininglaser.MiningLaserLongRange": { + "category": "master", + "sounds": [ + { + "name": "MiningLaserLongRange", + "stream": false + } + ] + }, + "tools.mininglaser.MiningLaserLowFocus": { + "category": "master", + "sounds": [ + { + "name": "MiningLaserLowFocus", + "stream": false + } + ] + }, + "tools.mininglaser.MiningLaserScatter": { + "category": "master", + "sounds": [ + { + "name": "MiningLaserScatter", + "stream": false + } + ] + }, + "tools.nanosabre.NanosabreIdle": { + "category": "master", + "sounds": [ + { + "name": "NanosabreIdle", + "stream": false + } + ] + }, + "tools.nanosabre.NanosabrePowerup": { + "category": "master", + "sounds": [ + { + "name": "NanosabrePowerup", + "stream": false + } + ] + }, + "tools.nanosabre.NanosabreSwing1": { + "category": "master", + "sounds": [ + { + "name": "NanosabreSwing1", + "stream": false + } + ] + }, + "tools.nanosabre.NanosabreSwing2": { + "category": "master", + "sounds": [ + { + "name": "NanosabreSwing2", + "stream": false + } + ] + }, + "tools.nanosabre.NanosabreSwing3": { + "category": "master", + "sounds": [ + { + "name": "NanosabreSwing3", + "stream": false + } + ] + }, + "tools.quantumsuit.HelmetLoop": { + "category": "master", + "sounds": [ + { + "name": "HelmetLoop", + "stream": false + } + ] + }, + "tools.quantumsuit.QuantumsuitBoots": { + "category": "master", + "sounds": [ + { + "name": "QuantumsuitBoots", + "stream": false + } + ] + } } \ No newline at end of file